body{font-family:'Space Grotesk',system-ui,sans-serif;background:var(--sable);color:var(--ink);line-height:1.5;-webkit-font-smoothing:antialiased}
button{font-family:inherit;cursor:pointer;border:none;background:none}
.container{max-width:1240px;margin:0 auto;padding:0 24px}
a:focus-visible, button:focus-visible{outline:3px solid var(--terre);outline-offset:2px}
.marquee{background:var(--nuit);color:var(--ink);overflow:hidden;padding:7px 0}
@media(prefers-reduced-motion:reduce){.marquee .track{animation:none}}

/* Bandeau "0 FR à la commande / Livraison gratuite", à la place du grand
   titre marketing d'une fiche produit classique — juste sous l'en-tête,
   au-dessus du fil d'Ariane (qui garde son rôle de navigation). */
.pf-hero{padding:22px 0 6px}
.pf-hero-title{font-family:'Space Grotesk',system-ui,sans-serif;font-weight:700;font-size:clamp(26px,4.4vw,38px);line-height:1.14;letter-spacing:-.01em;color:var(--ink)}

/* Barre du haut : bouton retour rond (réf. maquette FurniGo) + fil d'Ariane. */
.p-topbar{max-width:460px;margin:0 auto;display:flex;align-items:center;gap:12px;padding-top:14px}
.p-topbar .crumb-row{margin:0}
.p-back{width:40px;height:40px;flex-shrink:0;border-radius:50%;background:var(--white);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--ink);transition:background .15s,border-color .15s}
.p-back:hover{background:var(--sable-d);border-color:var(--muted)}

/* Sélecteur de quantité type « stepper » (réf. FurniGo) : conteneur pilule
   gris clair, − discret et + plein. Scopé à la fiche (.qty-control-wrap) pour
   ne pas toucher le stepper de la modale de commande (.recap-qty). */
.qty-control-wrap .qty-control{display:flex;align-items:center;gap:4px;background:var(--sable-d);border:none;border-radius:999px;padding:4px;overflow:visible}
.qty-control-wrap .qty-control button{width:34px;height:34px;border-radius:50%;font-size:17px;font-weight:700;color:var(--ink);display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s}
.qty-control-wrap .qty-control button:first-child{background:var(--white)}
.qty-control-wrap .qty-control button:last-child{background:var(--terre);color:var(--on-terre)}
.qty-control-wrap .qty-control button:hover{filter:brightness(.94)}
.qty-control-wrap .qty-control span{min-width:28px;width:auto;text-align:center;font-family:'JetBrains Mono',monospace;font-weight:700;font-size:15px}
.sec-head h2{font-family:'Bebas Neue',sans-serif;font-size:28px;letter-spacing:.02em}
.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
@media(max-width:980px){.grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){.grid{grid-template-columns:repeat(2,1fr);gap:12px}}
.cod-tag{position:absolute;top:10px;left:10px;background:var(--nuit);color:#fff;font-family:'JetBrains Mono',monospace;font-size:9.5px;font-weight:700;letter-spacing:.04em;padding:5px 9px;border-radius:999px}
.card-cat{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:5px}
.card-body h3{font-weight:600;font-size:14.5px;margin-bottom:10px;line-height:1.3;min-height:37px}
footer{background:var(--nuit);color:rgba(255,255,255,.7);padding:54px 0 26px}
.foot-grid{display:grid;grid-template-columns:1.6fr repeat(3,1fr);gap:30px;margin-bottom:38px}
@media(max-width:760px){.foot-grid{grid-template-columns:repeat(2,1fr)}}
.foot-col h4{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--or);margin-bottom:14px}
.foot-col a{display:block;font-size:13.5px;padding:5px 0;color:rgba(255,255,255,.72);transition:color .15s}
.foot-bottom{border-top:1px solid rgba(255,255,255,.12);padding-top:22px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;font-size:12.5px;color:rgba(255,255,255,.5)}
.reveal{opacity:0;transform:translateY(28px);transition:opacity .65s cubic-bezier(.22,1,.36,1),transform .65s cubic-bezier(.22,1,.36,1)}
.divider{height:1.5px;background:var(--line);margin:4px 24px 18px}
.field{margin-bottom:16px}
.field label{display:block;font-size:12.5px;font-weight:700;color:var(--ink);margin-bottom:7px;letter-spacing:.01em}
.overlay{display:none}
.overlay.open{display:flex}
.badge.stock.out{background:var(--terre)}
.p-stock.out{color:var(--terre)}
.p-stock.out::before{background:var(--terre)}
.form-error{background:rgba(193,68,14,.12);border:1px solid rgba(193,68,14,.4);color:var(--terre);font-size:12.5px;font-weight:600;border-radius:10px;padding:10px 14px;margin-bottom:16px}
.confirm-btn[disabled]{opacity:.6;cursor:not-allowed}

/* Fiche produit en carte unique centrée (image en haut, infos en dessous,
   largeur type mobile) plutôt qu'en deux colonnes — structure demandée pour
   coller à la maquette de référence, sur toutes les tailles d'écran. */
.product-grid{display:block;max-width:460px;margin:0 auto}
.gallery{position:static}
.gal-main{border-radius:26px}
.gal-main img{transition:opacity .24s ease,transform .32s cubic-bezier(.2,.7,.2,1)}
.gal-main img.is-switching{opacity:.42;transform:scale(.985)}
@media(prefers-reduced-motion:reduce){.gal-main img{transition:none}.gal-main img.is-switching{opacity:1;transform:none}}
.gal-thumbs{display:none}
/* Flèches du carrousel : deux ronds foncés côte à côte, centrés sous la
   photo (réf. maquette FurniGo). */
.gal-arrow{top:auto;bottom:14px;translate:none;width:38px;height:38px;background:var(--terre);border:none;color:var(--on-terre);box-shadow:0 6px 16px rgba(0,0,0,.20)}
.gal-arrow:hover{background:var(--terre-d)}
.gal-arrow.prev{left:calc(50% - 44px)}
.gal-arrow.next{right:auto;left:calc(50% + 6px)}
.badge.cod{background:var(--white);color:var(--ink);border:1px solid var(--line);box-shadow:0 2px 8px rgba(0,0,0,.08)}

.p-cat{margin-top:2px}
.p-title{font-family:'Space Grotesk',system-ui,sans-serif;font-weight:700;font-size:clamp(24px,5vw,30px);line-height:1.2;letter-spacing:-.01em;text-transform:none}
.p-rating #pRatingText{background:var(--sable-d);padding:4px 10px;border-radius:999px;font-weight:600;font-size:12px;color:var(--ink)}
.p-rating .stars{font-size:14px}
/* (Le masquage de [hidden] est désormais garanti globalement dans base.css.) */
.p-desc{color:var(--muted)}

.price-qty-row{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:6px 0 18px}
.price-qty-row .p-price{margin:0;font-size:clamp(26px,7vw,34px)}
.price-qty-row .p-price small{font-size:13px}
.qty-control-wrap{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.qty-control-wrap .qty-label{font-size:10.5px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}

/* Pastilles de couleur — juste sous l'image, cliquer change image + prix */
.couleur-swatches{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:2px 0 14px}
.couleur-swatch{width:30px;height:30px;border-radius:50%;border:2px solid var(--line);cursor:pointer;position:relative;transition:transform .15s,box-shadow .15s;padding:0}
.couleur-swatch:hover{transform:scale(1.08)}
.couleur-swatch.active{box-shadow:0 0 0 2px var(--white),0 0 0 4px var(--terre)}
.couleur-swatch.unavailable{opacity:.35;cursor:not-allowed}
.couleur-swatch.unavailable:hover{transform:none}
.couleur-swatch.unavailable::after{content:"";position:absolute;inset:-2px;border-radius:50%;background:linear-gradient(to top right,transparent 47%,var(--terre) 49%,var(--terre) 51%,transparent 53%)}
.couleur-swatch-fallback{width:auto;height:auto;border-radius:999px;padding:7px 14px;font-size:12px;font-weight:600;color:var(--ink);background:var(--sable)}
.couleur-swatch-fallback.unavailable::after{border-radius:999px}

/* Sélecteur de variantes (chaque combinaison a son propre prix + stock) */
.variant-dim{margin-bottom:16px}
.variant-dim .vd-label{font-size:12px;font-weight:700;color:var(--ink);margin-bottom:8px;display:block}
.variant-dim .vd-options{display:flex;flex-wrap:wrap;gap:8px}
.variant-pill{border:1.5px solid var(--line);border-radius:999px;padding:8px 16px;font-size:13px;font-weight:600;color:var(--ink);transition:border-color .15s,background .15s}
.variant-pill:hover{background:var(--sable-d)}
.variant-pill.active{border-color:var(--terre);background:rgba(var(--terre-rgb),.08);color:var(--terre)}
.variant-pill.unavailable{opacity:.55;cursor:not-allowed;display:flex;flex-direction:column;align-items:center;gap:1px;padding:6px 14px}
.variant-pill.unavailable .vp-val{text-decoration:line-through}
.variant-pill.unavailable .vp-tag{font-size:8.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--terre);font-weight:700}
.order-cta[disabled]{opacity:.5;cursor:not-allowed}

/* Barre d'action fixe en bas d'écran (réf. maquette FurniGo) : deux boutons
   DISTINCTS côte à côte — « Ajouter au panier » (secondaire, contour) et
   « Commander » (primaire, plein). Le corps de page réserve la place via
   body{padding-bottom} plus bas. */
.order-bar{position:fixed;left:0;right:0;bottom:0;z-index:40;background:var(--sable);border-top:1px solid var(--line);padding:12px 16px calc(12px + env(safe-area-inset-bottom))}
.order-actions{max-width:460px;margin:0 auto;display:flex;gap:10px}
.order-actions .cart-cta,
.order-actions .order-cta{flex:1;margin:0;padding:15px 6px;border-radius:14px;font-family:'Bebas Neue',sans-serif;font-size:clamp(14px,3.6vw,18px);letter-spacing:.02em;display:flex;align-items:center;justify-content:center;gap:8px;text-align:center}
.cart-cta{background:var(--white);color:var(--ink);border:1.5px solid var(--ink);transition:background .15s}
.cart-cta:hover{background:var(--sable-d)}
.cart-cta.added{background:var(--palme);border-color:var(--palme);color:#fff}
.cart-cta[disabled]{opacity:.5;cursor:not-allowed}
.order-cta:hover{transform:none}
body{padding-bottom:84px}
@media(max-width:420px){
  .order-actions .cart-cta,.order-actions .order-cta{padding:14px 4px}
  body{padding-bottom:80px}
}

/* Avis clients sur la fiche produit */
.p-reviews{padding:44px 0 20px}
.p-reviews .t-list{padding:0 0 20px}
.reviews-more-btn{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;border:1px solid var(--line);color:var(--ink);font-family:'Bebas Neue',sans-serif;font-size:15px;letter-spacing:.03em;padding:13px 0;border-radius:12px;transition:background .15s}
.reviews-more-btn:hover{background:var(--sable-d)}
