/* Les polices Google sont chargées dynamiquement par le layout (<link> css2)
   selon les polices choisies dans le thème — cf. apps/storefront/src/render.ts. */
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);line-height:1.6;display:flex;flex-direction:column;min-height:100vh}#main-content{flex:1 0 auto}img{display:block;max-width:100%}a{color:inherit;text-decoration:none}button,input,select{font:inherit}h1,h2,h3{font-family:var(--font-heading);line-height:1.15}.container{width:min(1180px,calc(100% - 32px));margin-inline:auto}.site-header{position:sticky;top:0;z-index:20;background:var(--color-primary);color:#fff}.header-row{min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand img{max-height:38px;max-width:180px}.desktop-nav{display:flex;gap:28px}.desktop-nav a:hover{text-decoration:underline}.header-actions{display:flex;gap:10px}.icon-button{border:1px solid #ffffff55;background:#ffffff15;color:#fff;border-radius:999px;padding:8px 13px;cursor:pointer}.cart-link{position:relative}.cart-link span{display:inline-grid;place-items:center;margin-left:5px;background:#fff;color:var(--color-primary);width:22px;height:22px;border-radius:50%}.menu-toggle{display:none}.mobile-nav{padding:16px;background:var(--color-surface);color:var(--color-text)}.mobile-nav a{display:block;padding:10px 16px}.hero{display:grid;grid-template-columns:1.1fr .9fr;min-height:380px;margin-top:40px;background:var(--color-hero);border-radius:var(--radius);overflow:hidden}.hero-copy{padding:54px;align-self:center}.hero-copy h1{font-size:clamp(2.3rem,5vw,4rem);margin:.25em 0}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.75rem}.hero-media{display:grid;place-items:center;padding:28px}.hero-media img{max-height:340px;object-fit:contain}.button-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}.button{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--color-primary);border-radius:999px;background:var(--color-primary);color:#fff;padding:11px 20px;font-weight:600;cursor:pointer}.button.secondary{background:transparent;color:var(--color-primary)}.advantages{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:28px}.advantages article,.product-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden}.advantages article{padding:22px}.advantages h2{font-size:1.15rem}.advantage-icon{font-size:1.4rem}.section,.page-section{margin-top:72px;margin-bottom:72px}.section>h2,.section-heading h2{font-size:2rem;margin-bottom:8px}.section-intro{color:var(--color-muted);max-width:720px}.universe-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:28px}.universe-grid a{display:flex;flex-direction:column;min-height:160px;padding:24px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);transition:.2s}.universe-grid a:hover,.product-card:hover{transform:translateY(-4px);box-shadow:0 16px 34px #00000012}.universe-grid strong{font-family:var(--font-heading);font-size:1.35rem}.universe-grid span{margin-top:10px;color:var(--color-muted)}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:20px}.section-heading a{text-decoration:underline}.product-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}.product-image{height:250px;display:grid;place-items:center;background:#f4f1ec;color:var(--color-muted)}.product-image img{width:100%;height:100%;object-fit:cover}.product-card-body{padding:18px}.product-card-body h3{font-size:1.25rem;margin:0}.muted{color:var(--color-muted)}.price{font-weight:700;margin-bottom:0}.price small{font-weight:400;color:var(--color-muted)}.approach{display:grid;grid-template-columns:1.2fr .8fr;gap:32px;align-items:center}.approach aside{background:var(--color-primary);color:#fff;padding:32px;border-radius:var(--radius)}.delivery{display:flex;justify-content:space-between;align-items:center;gap:28px;padding:32px;background:var(--color-hero);border-radius:var(--radius);margin-block:72px}.sort-form{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--color-border);padding-bottom:18px;margin:28px 0}.sort-form select{padding:10px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-surface)}.product-detail{display:grid;grid-template-columns:1fr 1fr;gap:48px}.gallery-main{width:100%;height:480px;object-fit:cover;background:var(--color-surface);border-radius:var(--radius)}.thumbnails{display:flex;gap:12px;margin-top:14px}.thumbnails button{border:1px solid var(--color-border);padding:0;background:none;border-radius:10px;overflow:hidden}.thumbnails img{width:72px;height:72px;object-fit:cover}.product-info h1{font-size:2.5rem}.product-price{font-size:1.6rem;font-weight:700}.specs{display:grid;grid-template-columns:1fr 1fr;gap:12px}.specs div{padding:10px;background:var(--color-surface);border-radius:10px}.specs dt{color:var(--color-muted);font-size:.85rem}.specs dd{margin:0;font-weight:600}.add-form fieldset{border:0;padding:0;margin:26px 0}.add-form label{display:inline-block;margin:8px 10px 8px 0;padding:8px 12px;border:1px solid var(--color-border);border-radius:999px}.product-description{margin-bottom:72px;white-space:pre-line}.related{grid-template-columns:repeat(3,1fr)}.cart-lines{display:grid;gap:16px}.cart-line{display:grid;grid-template-columns:80px 1fr auto auto;align-items:center;gap:20px;padding:16px;background:var(--color-surface);border-radius:var(--radius)}.cart-line img{width:80px;height:80px;object-fit:cover;border-radius:10px}.cart-line h2{font-size:1.1rem;margin:0}.cart-line input{width:64px}.cart-line button{display:block;margin-top:6px}.cart-total{display:flex;justify-content:flex-end;gap:40px;font-size:1.3rem;margin:28px 0}.empty-state{text-align:center;padding-block:70px}.site-footer{margin-top:80px;background:var(--color-primary);color:#fff}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:40px;padding-block:52px}.footer-grid a{display:block;margin:8px 0;color:#ffffffcc}.copyright{text-align:center;margin:0;padding:16px;border-top:1px solid #ffffff22}.site-footer h2,.site-footer h3{margin-top:0}@media(max-width:900px){.desktop-nav{display:none}.menu-toggle{display:inline-block}.hero,.product-detail,.approach{grid-template-columns:1fr}.advantages,.universe-grid,.product-grid{grid-template-columns:repeat(2,1fr)}.footer-grid{grid-template-columns:1fr 1fr}.cart-line{grid-template-columns:64px 1fr}.cart-line form,.cart-line>strong{grid-column:2}}@media(max-width:560px){.container{width:min(100% - 22px,1180px)}.hero-copy{padding:30px 22px}.advantages,.universe-grid,.product-grid,.footer-grid{grid-template-columns:1fr}.delivery{align-items:flex-start;flex-direction:column}.product-image{height:300px}.header-row{min-height:64px}.icon-button{font-size:.8rem}.gallery-main{height:360px}}
.storefront-editor-mode [data-editor-section]{position:relative;cursor:pointer;outline:2px solid transparent;outline-offset:4px;transition:outline-color .15s,background-color .15s}.storefront-editor-mode [data-editor-section]:hover{outline-color:#55917f;background-color:color-mix(in srgb,#55917f 5%,transparent)}.storefront-editor-mode [data-editor-path]{cursor:text;border-radius:4px;background-color:color-mix(in srgb,#55917f 10%,transparent);box-shadow:inset 0 -2px 0 rgba(85,145,127,.5);text-decoration:underline dashed rgba(85,145,127,.85);text-decoration-thickness:2px;text-underline-offset:4px;transition:background-color .15s,box-shadow .15s,text-decoration-color .15s}.storefront-editor-mode [data-editor-path]:hover{outline:2px dashed #55917f;outline-offset:3px;text-decoration-color:#55917f;background-color:color-mix(in srgb,#55917f 18%,transparent)}.storefront-editor-mode [data-editor-path][contenteditable]{cursor:text;outline:3px solid #55917f;background:#fff;color:#1f2937;border-radius:4px;text-decoration:none;box-shadow:0 0 0 6px rgba(85,145,127,.16)}

/* Defensive layout rules for tenant-provided content. */
.header-row>*{min-width:0}.brand{display:flex;align-items:center;max-width:min(280px,32vw);min-width:80px}.brand strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.desktop-nav{gap:clamp(14px,2vw,28px);white-space:nowrap}.header-actions{flex-shrink:0}
.advantages,.universe-grid,.product-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.advantages article,.universe-grid a,.product-card,.product-card-link,.product-card-body{min-width:0}.advantages article{display:flex;flex-direction:column;gap:10px;padding:24px}.advantages h2,.advantages p{margin:0}.advantages h2,.universe-grid strong,.product-card-body h3,.approach strong{overflow-wrap:anywhere;word-break:normal}.advantages p,.universe-grid span,.product-card-body p,.approach p,.delivery p{overflow-wrap:anywhere}.advantages p,.universe-grid span{line-height:1.55}.product-card-link{display:flex;height:100%;flex-direction:column}.product-card-body{display:flex;flex:1;flex-direction:column;gap:8px;padding:20px}.product-card-body h3,.product-card-body p{margin:0}.product-card-body .price{margin-top:auto;padding-top:4px}.button{max-width:100%;line-height:1.3;text-align:center;white-space:normal}.section-heading>*{min-width:0}.section-heading h2{overflow-wrap:anywhere}.delivery>div{min-width:0}.specs div{min-width:0}.specs dd{overflow-wrap:anywhere}
.product-image{position:relative;isolation:isolate;flex:0 0 auto;width:100%;height:auto;aspect-ratio:1/1;min-height:0;overflow:hidden}.product-image img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover}.product-card-body{position:relative;z-index:1;background:var(--color-surface)}
@media(max-width:1050px){.header-row{gap:14px}.brand{max-width:220px}.desktop-nav{gap:14px}.icon-button{padding-inline:11px}}
@media(max-width:900px){.brand{max-width:min(60vw,280px)}.advantages,.universe-grid,.product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.brand{max-width:48vw}.advantages,.universe-grid,.product-grid{grid-template-columns:minmax(0,1fr)}.advantages article,.universe-grid a,.product-card-body{padding:20px}.section-heading{align-items:flex-start;flex-direction:column;gap:8px}}

.checkout-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:32px;align-items:start}.checkout-form{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:24px;display:grid;gap:22px}.checkout-form fieldset{border:0;margin:0;padding:0}.checkout-form legend{font-family:var(--font-heading);font-weight:600;font-size:1.2rem;margin-bottom:12px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.checkout-form label{display:grid;gap:6px;font-weight:600;color:var(--color-text)}.checkout-form input,.checkout-form select,.checkout-form textarea{width:100%;border:1px solid var(--color-border);border-radius:10px;background:#fff;color:var(--color-text);padding:10px 12px}.checkout-form .full{grid-column:1/-1}.checkout-checkbox{display:flex;flex-direction:row;align-items:center;gap:10px;font-weight:600;cursor:pointer}.checkout-checkbox input{width:auto;margin:0}.shipping-options{display:grid;gap:10px}.shipping-option{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid var(--color-border);border-radius:12px;background:#fff;padding:12px;cursor:pointer}.shipping-option.active{border-color:var(--color-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-primary) 18%,transparent)}.shipping-option span{display:grid}.shipping-option small{color:var(--color-muted)}.checkout-hint{font-size:.9rem;color:var(--color-muted);margin:.5rem 0 0}.pickup-panel{border:1px solid var(--color-border);border-radius:12px;background:#fff;padding:14px;margin-top:12px}.pickup-header{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:12px}.pickup-list{display:grid;gap:8px;max-height:340px;overflow:auto}.pickup-point{display:grid;gap:3px;text-align:left;border:1px solid var(--color-border);border-radius:10px;background:var(--color-surface);padding:10px;cursor:pointer}.pickup-point.active{border-color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 8%,#fff)}.pickup-point span,.pickup-point small{color:var(--color-muted)}.checkout-summary{border-top:1px solid var(--color-border);padding-top:14px;display:grid;gap:8px}.checkout-summary div{display:flex;justify-content:space-between;gap:16px}.checkout-grand-total{font-size:1.25rem;font-weight:700}.checkout-submit{width:100%}.payment-result{max-width:720px;text-align:center}.payment-result .button{margin-top:18px}.promo-code{display:grid;gap:10px;margin-top:18px}.promo-form{display:flex;gap:10px;align-items:end}.promo-form label{display:grid;gap:6px;font-weight:600;flex:1}.promo-form input{width:100%;border:1px solid var(--color-border);border-radius:10px;background:#fff;color:var(--color-text);padding:10px 12px;text-transform:uppercase}.promo-applied{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--color-primary);border-radius:10px;background:color-mix(in srgb,var(--color-primary) 8%,#fff)}.promo-feedback{margin:0;font-size:.9rem}.promo-feedback.is-ok{color:var(--color-primary)}.promo-feedback.is-error{color:#b3261e}.checkout-discount{color:var(--color-primary)}
@media(max-width:900px){.checkout-layout{grid-template-columns:1fr}.checkout-form{padding:18px}.form-grid{grid-template-columns:1fr}}
.auth-page,.account-page{max-width:560px}.auth-form{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:24px;display:grid;gap:18px;margin-top:18px}.auth-form label{display:grid;gap:6px;font-weight:600}.auth-form input{width:100%;border:1px solid var(--color-border);border-radius:10px;background:#fff;color:var(--color-text);padding:10px 12px}.auth-form .full{grid-column:1/-1}.auth-form .button{width:100%}.auth-switch{margin-top:16px}.auth-switch a{text-decoration:underline}.form-error{background:color-mix(in srgb,#d6453c 12%,#fff);border:1px solid #d6453c;color:#a32a22;border-radius:10px;padding:10px 12px;margin:0 0 4px}.account-header{display:flex;justify-content:space-between;align-items:center;gap:16px}.account-identity{color:var(--color-muted)}.account-orders{width:100%;border-collapse:collapse;margin-top:14px}.account-orders th,.account-orders td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--color-border)}.account-orders th{font-size:.85rem;color:var(--color-muted)}
.button-google{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;margin-top:18px;border:1px solid #dadce0;border-radius:999px;background:#fff;color:#3c4043;padding:11px 20px;font-weight:600;cursor:pointer}.button-google:hover{background:#f7f8f8}.button-google__icon{width:18px;height:18px;flex-shrink:0}.auth-divider{display:flex;align-items:center;gap:12px;color:var(--color-muted);margin:18px 0;font-size:.85rem}.auth-divider::before,.auth-divider::after{content:"";flex:1;height:1px;background:var(--color-border)}
.cart-toast{position:fixed;right:20px;bottom:20px;z-index:60;display:flex;align-items:center;gap:12px;max-width:min(360px,calc(100vw - 32px));background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);border-left:4px solid var(--color-primary);border-radius:12px;padding:14px 18px;box-shadow:0 16px 40px #00000026;font-weight:600;opacity:0;transform:translateY(16px);pointer-events:none;transition:opacity .25s ease,transform .25s ease}.cart-toast.visible{opacity:1;transform:translateY(0);pointer-events:auto}.cart-toast-icon{display:inline-grid;place-items:center;flex:0 0 auto;width:24px;height:24px;border-radius:50%;background:var(--color-primary);color:#fff;font-size:.85rem}.cart-toast a{margin-left:auto;color:var(--color-primary);font-weight:600;text-decoration:underline;white-space:nowrap}@media(max-width:560px){.cart-toast{left:16px;right:16px;bottom:16px;max-width:none}}@media(prefers-reduced-motion:reduce){.cart-toast{transition:opacity .2s ease}}
.form-success{background:color-mix(in srgb,#1f9d55 12%,#fff);border:1px solid #1f9d55;color:#136a3a;border-radius:10px;padding:10px 12px;margin:0 0 4px}.account-setting{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:20px 24px;margin-top:18px}.account-setting h3{margin:0 0 12px}.account-setting .auth-form{margin-top:0;border:0;padding:0;background:none}.account-hint{color:var(--color-muted);font-size:.9rem;margin:0 0 12px}.account-danger{border-color:#d6453c}.button.danger{background:#d6453c;border-color:#d6453c;color:#fff}.button.danger:hover{background:#b8392f}
