/* Hallmark · macrostructure: Marquee Hero (split, full-bleed) · theme: studied-DNA (source: image — référence Pinterest "Food Burger")
 * nav: wordmark + liens + CTA commande · footer: 4 colonnes NAP · enrichment: Tier C image + vidéo générées (Higgsfield)
 * paper: oklch(97.5% 0.012 85) · brand: vert Steakn'Smash #26582F / #0B3A12 / #3DC644 · accent: orange logo #D9873A
 * display: Lilita One · body: Nunito · studied: yes · DNA-source: image · tone: playful/appétissant · anchor hue: vert 135°
 * Hallmark · pre-emit critique: P4 H5 E4 S5 R4 V4 */

/* ---------- Fonts ---------- */
@font-face{font-family:"Lilita One";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/LilitaOne.woff2") format("woff2")}
@font-face{font-family:"Nunito";font-style:normal;font-weight:200 1000;font-display:swap;src:url("../fonts/Nunito-var.woff2") format("woff2")}
@font-face{font-family:"Nunito";font-style:italic;font-weight:200 1000;font-display:swap;src:url("../fonts/Nunito-italic.woff2") format("woff2")}

/* ---------- Tokens ---------- */
:root{
  --green-950:#062A0C;--green-900:#0B3A12;--green-800:#164A1F;--green-700:#26582F;--green-600:#2F6B39;--green-500:#3A8A48;--green-400:#3DC644;--green-100:#DCEBDF;--green-50:#EEF5EF;
  --orange-500:#D9873A;--orange-600:#B96D27;--orange-400:#F0A35A;--orange-100:#FBE8D3;--orange-50:#FDF4EA;
  --cream-50:#FBF7EF;--cream-100:#F4EDDF;--cream-200:#E9DFCB;--cream-300:#D8CBB0;
  --ink:#10200F;--ink-2:#3F4F3D;--muted:#71806F;--white:#FFFFFF;
  --ok:#2E7D4F;--bad:#B03A2E;--ok-bg:#E9F5EC;--bad-bg:#FBEAE8;--bad-ink:#7C2A21;--bad-field-bg:#FDF3F2;
  --font-display:"Lilita One","Nunito",system-ui,sans-serif;--font-body:"Nunito",system-ui,-apple-system,"Segoe UI",sans-serif;
  --text-sm:.875rem;--text-base:1.0625rem;--text-md:1.1875rem;--text-lg:1.4rem;--text-xl:1.9rem;--text-2xl:2.6rem;--text-display:clamp(3rem,7.2vw,5.6rem);
  --space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:72px;--space-9:104px;
  --radius-pill:999px;--radius-sm:12px;--radius-md:18px;--radius-lg:24px;--radius-xl:40px;--radius-band:96px;
  --ease-out:cubic-bezier(.2,.7,.2,1);--ease-in:cubic-bezier(.5,0,.8,.4);--ease-in-out:cubic-bezier(.65,0,.35,1);
  --dur-fast:160ms;--dur-base:320ms;--dur-slow:520ms;
  --shadow-card:0 12px 32px -14px rgba(11,58,18,.28);--shadow-lift:0 26px 44px -20px rgba(11,58,18,.4);
  --container:1280px;--head-h:88px;
}

/* ---------- Reset / base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;overflow-x:clip}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--cream-50);color:var(--ink);font-family:var(--font-body);font-size:var(--text-base);line-height:1.6;overflow-x:clip;-webkit-font-smoothing:antialiased}
img,svg,video{max-width:100%;height:auto;display:block}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:400;font-style:normal;line-height:1.02;margin:0 0 var(--space-3);color:var(--green-800);text-wrap:balance;overflow-wrap:anywhere;min-width:0;letter-spacing:.005em}
h1{font-size:var(--text-display)}h2{font-size:clamp(2.1rem,4vw,3.1rem)}h3{font-size:var(--text-lg)}
p{margin:0 0 var(--space-4)}
a{color:var(--green-700);text-decoration-thickness:1px;text-underline-offset:2px}
a:hover{color:var(--orange-600)}
:focus-visible{outline:3px solid var(--orange-500);outline-offset:3px;border-radius:4px}
button{font:inherit;cursor:pointer}
ul[role="list"],.nav ul,.socials,.bento-thumbs,.track,.hours{list-style:none;margin:0;padding:0}
.sr-only,.screen-reader-text{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}
.screen-reader-text:focus{position:static;width:auto;height:auto;clip:auto;clip-path:none;margin:0}
.skip{position:absolute;left:-999px;top:8px;background:var(--orange-500);color:var(--white);padding:8px 14px;border-radius:var(--radius-pill);z-index:100}
.skip:focus{left:8px}
.container{width:min(100% - var(--space-7),var(--container));margin-inline:auto}
.container.narrow{max-width:860px}
.center{text-align:center}
.small{font-size:var(--text-sm);color:var(--muted)}
.ico{width:1.15em;height:1.15em;flex:none;vertical-align:-.2em}
strong{font-weight:800}
.page-card{width:100%}

/* ---------- Buttons (8 états) ---------- */
.btn{--bg:var(--orange-500);--fg:var(--white);display:inline-flex;align-items:center;gap:.5em;padding:.85em 1.5em;border-radius:var(--radius-pill);background:var(--bg);color:var(--fg);font-family:var(--font-body);font-weight:800;font-size:var(--text-base);line-height:1;text-decoration:none;border:2px solid transparent;white-space:nowrap;box-shadow:0 6px 16px -8px rgba(185,109,39,.55);transition:transform var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}
.btn:hover,.btn.is-hover{--bg:var(--orange-600);color:var(--white);transform:translateY(-2px);box-shadow:0 12px 22px -10px rgba(185,109,39,.7)}
.btn:active,.btn.is-active{transform:translateY(1px);box-shadow:none}
.btn:disabled,.btn[aria-disabled="true"]{opacity:.55;cursor:not-allowed;transform:none}
.btn[data-state="loading"]{pointer-events:none;opacity:.8}
.btn[data-state="loading"] .ico{animation:spin .8s linear infinite}
.btn[data-state="success"]{--bg:var(--ok)}
.btn[data-state="error"]{--bg:var(--bad)}
.btn-lg{font-size:var(--text-md);padding:1em 1.8em}
.btn-sm{font-size:var(--text-sm);padding:.65em 1.05em}
.btn-white{--bg:var(--white);--fg:var(--green-800);box-shadow:0 8px 18px -10px rgba(0,0,0,.35)}
.btn-white:hover{--bg:var(--cream-100);color:var(--green-900)}
.btn-outline{--bg:transparent;--fg:var(--green-800);border-color:var(--green-800);box-shadow:none}
.btn-outline:hover{--bg:var(--green-800);color:var(--white);box-shadow:none}
.btn-ghost{--bg:transparent;--fg:var(--green-700);padding-inline:.6em;box-shadow:none}
.btn-ghost:hover{--bg:var(--green-100);color:var(--green-900);box-shadow:none;transform:none}
.btn-ghost-light{--bg:transparent;--fg:var(--white);border-color:rgba(255,255,255,.6);box-shadow:none}
.btn-ghost-light:hover{--bg:rgba(255,255,255,.14);color:var(--white);box-shadow:none}
@keyframes spin{to{transform:rotate(360deg)}}

/* ---------- Header ---------- */
.site-head{position:sticky;top:0;z-index:50;background:var(--green-800);color:var(--white);transition:box-shadow var(--dur-base) var(--ease-out),background var(--dur-base)}
.site-head.on-hero{position:absolute;left:0;right:0;background:transparent}
.site-head.is-stuck{position:fixed;background:var(--green-900);box-shadow:0 8px 24px -12px rgba(0,0,0,.5)}
.head-in{display:flex;align-items:center;gap:var(--space-5);min-height:var(--head-h)}
.brand{display:inline-flex;align-items:center;gap:var(--space-3);color:var(--white);text-decoration:none;font-family:var(--font-display);font-size:1.5rem;letter-spacing:.01em}
.brand img{width:60px;height:60px;border-radius:50%;background:var(--white);padding:2px}
.brand .n{color:var(--orange-400)}
.nav{margin-left:auto}
.nav ul{display:flex;gap:var(--space-5);align-items:center}
.nav a{color:var(--white);text-decoration:none;font-weight:800;font-size:var(--text-sm);letter-spacing:.01em;padding:6px 2px;border-bottom:2px solid transparent;white-space:nowrap;display:inline-flex;align-items:center;gap:.35em}
.nav a:hover,.nav a[aria-current="page"]{border-bottom-color:var(--green-400);color:var(--white)}
.nav-phone a{background:rgba(255,255,255,.12);border-radius:var(--radius-pill);padding:7px 13px}
.nav-phone a:hover{border-bottom-color:transparent;background:rgba(255,255,255,.22)}
.head-actions{display:flex;align-items:center;gap:var(--space-3)}
.open-pill{display:inline-flex;align-items:center;gap:6px;font-size:.72rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase;padding:7px 11px;border-radius:var(--radius-pill);background:rgba(255,255,255,.12)}
.open-pill .dot{width:8px;height:8px;border-radius:50%;background:var(--orange-400)}
.open-pill.is-open .dot{background:var(--green-400);box-shadow:0 0 0 3px rgba(61,198,68,.3)}
.btn-cart{position:relative}
.btn-cart .count{position:absolute;top:-7px;right:-7px;min-width:22px;height:22px;padding:0 6px;border-radius:var(--radius-pill);background:var(--white);color:var(--orange-600);font-size:.75rem;font-weight:900;display:grid;place-items:center;border:2px solid var(--orange-500)}
.nav-toggle{display:none;background:transparent;border:2px solid rgba(255,255,255,.45);color:var(--white);border-radius:var(--radius-pill);width:44px;height:44px;place-items:center}
.nav-toggle .ico{width:22px;height:22px}
.nav-toggle .i-close,.nav-toggle[aria-expanded="true"] .i-open{display:none}
.nav-toggle[aria-expanded="true"] .i-close{display:block}
.closed-bar{background:var(--orange-100);color:var(--orange-600);font-weight:800;font-size:var(--text-sm);text-align:center;padding:8px var(--space-4);display:flex;gap:.5em;justify-content:center;align-items:center;flex-wrap:wrap}
/* Entre 1100 et 1280 px la rangée complète ne tient pas : on resserre avant de casser. */
@media (max-width:1279px) and (min-width:1100px){
  .nav ul{gap:var(--space-4)}
  .open-pill{display:none}
}
/* La feuille mobile reste jusqu'à ce que la rangée bureau tienne vraiment (1100 px). */
@media (max-width:1099px){
  .nav-toggle{display:grid}
  .btn-cart .btn-label{display:none}
  .btn-cart{padding:.85em}
  .nav{position:fixed;inset:var(--head-h) 0 auto 0;background:var(--green-900);padding:var(--space-4) var(--space-5) var(--space-6);transform:translateY(-8px);opacity:0;visibility:hidden;transition:opacity var(--dur-base) var(--ease-out),transform var(--dur-base) var(--ease-out),visibility 0s var(--dur-base);border-bottom-left-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg);box-shadow:0 30px 40px -20px rgba(0,0,0,.6)}
  .nav.is-open{opacity:1;transform:none;visibility:visible;transition-delay:0s}
  .nav ul{flex-direction:column;align-items:stretch;gap:0}
  .nav a{display:flex;align-items:center;min-height:52px;padding:12px 4px;font-size:var(--text-md);border-bottom:1px solid rgba(255,255,255,.12);white-space:nowrap}
  .nav-phone a{margin-top:var(--space-3);justify-content:center;gap:.5em}
  .open-pill{display:none}
}

/* Écrans tactiles : aucune cible sous 44 px (WCAG 2.2 AA). */
@media (pointer:coarse){
  .btn,.woocommerce .button,.woocommerce button.button,.woocommerce a.button,
  .cat-nav a,.cart-empty-links a,.bento-thumbs a,.socials a,.faq-item summary,
  .coupon-toggle summary,.woocommerce a.remove,.qty button{min-height:44px}
  .btn-sm{padding-block:.85em}
  .woocommerce a.remove{width:44px;height:44px}
  .socials a{width:46px;height:46px}
  .pcard-title a,.foot-col a,.crumbs a{display:inline-block;padding-block:3px}
}
/* Pastilles de diaporama : 10 px à l'œil, 44 px sous le doigt. */
.hero-dots button,.dots button{position:relative}
.hero-dots button::after,.dots button::after{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:44px;height:44px}
@media (max-width:480px){
  .brand{gap:8px;font-size:1.15rem}
  .brand img{width:46px;height:46px}
  .head-in{gap:var(--space-3)}
  .head-actions{gap:8px;margin-left:auto}
}

/* ---------- Hero (S1) — full-bleed ---------- */
.hero{position:relative;background:var(--green-700);color:var(--white);padding:calc(var(--head-h) + var(--space-5)) 0 var(--space-6);min-height:100vh;min-height:100svh;display:flex;align-items:center;overflow:clip;isolation:isolate}
.hero-in{align-self:center}
.sunburst{position:absolute;inset:-30% -20% -30% -20%;z-index:-2;background:repeating-conic-gradient(from 0deg at 68% 52%,var(--green-600) 0deg 9deg,var(--green-700) 9deg 18deg)}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(55% 60% at 68% 52%,rgba(217,135,58,.30),transparent 68%),linear-gradient(90deg,rgba(11,58,18,.55) 0%,rgba(11,58,18,.15) 45%,transparent 70%)}
.hero .deco{position:absolute;z-index:1;filter:drop-shadow(0 12px 16px rgba(0,0,0,.35));animation:float 9s var(--ease-in-out) infinite;pointer-events:none}
.deco-1{left:36%;top:11%;width:clamp(56px,7vw,120px)}
.deco-2{right:3%;top:16%;width:clamp(48px,6vw,96px);animation-delay:-3s}
.deco-3{left:2%;bottom:9%;width:clamp(40px,5vw,78px);animation-delay:-6s}
@keyframes float{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-14px) rotate(6deg)}}
.hero-in{display:grid;position:relative;width:min(100% - var(--space-7),var(--container));margin-inline:auto}
.hero-slide{grid-area:1/1;display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:var(--space-6);align-items:center;opacity:0;pointer-events:none;transition:opacity 340ms var(--ease-in)}
.hero-slide[hidden]{display:none}
.hero-slide.is-active{opacity:1;pointer-events:auto;transition:opacity 300ms var(--ease-out)}
.hero-slide.is-entering .hero-copy>*{animation:rise 620ms var(--ease-out) backwards}
.hero-slide.is-entering .hero-copy>:nth-child(1){animation-delay:60ms}
.hero-slide.is-entering .hero-copy>:nth-child(2){animation-delay:140ms}
.hero-slide.is-entering .hero-copy>:nth-child(3){animation-delay:220ms}
.hero-slide.is-entering .hero-copy>:nth-child(4){animation-delay:300ms}
.hero-slide.is-entering .hero-copy>:nth-child(5){animation-delay:380ms}
.hero-slide.is-entering .hero-visual img{animation:pop 780ms cubic-bezier(.22,1.15,.36,1) backwards;animation-delay:120ms}
.hero-slide.is-leaving .hero-visual img{animation:leave 320ms var(--ease-in) both}
.eyebrow{display:flex;align-items:center;gap:10px}
.halal-badge{width:44px;height:44px;border-radius:50%;background:var(--white);padding:3px;box-shadow:0 6px 14px -6px rgba(0,0,0,.5);flex:none}
@media (max-width:900px){.eyebrow{justify-content:center}.halal-badge{width:38px;height:38px}}
@keyframes rise{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
@keyframes pop{from{opacity:0;transform:translateY(40px) scale(.86) rotate(-4deg)}to{opacity:1;transform:none}}
@keyframes leave{from{opacity:1;transform:none}to{opacity:0;transform:translateY(-24px) scale(.94)}}
@media (prefers-reduced-motion:reduce){.hero-slide.is-entering .hero-copy>*,.hero-slide.is-entering .hero-visual img,.hero-slide.is-leaving .hero-visual img{animation:none}}
.eyebrow{font-family:var(--font-body);font-weight:900;color:var(--green-400);letter-spacing:.12em;text-transform:uppercase;font-size:.8rem;margin-bottom:var(--space-3)}
.hero h1,.hero .h1{color:var(--white);font-family:var(--font-display);font-weight:400;font-size:var(--text-display);line-height:.94;margin:0 0 var(--space-4);text-shadow:0 4px 24px rgba(0,0,0,.25)}
.hero h1 span,.hero .h1 span{display:block;color:var(--orange-400);font-size:1.18em;letter-spacing:-.005em}
.hero h1 small{display:block;font-family:var(--font-body);font-size:.3em;font-weight:700;color:rgba(255,255,255,.9);margin-top:.6em;letter-spacing:.02em;text-shadow:none}
.hero-text{font-size:var(--text-md);max-width:44ch;color:rgba(255,255,255,.9)}
.hero-cta{display:flex;flex-wrap:wrap;gap:var(--space-3);margin:var(--space-5) 0 var(--space-4)}
.hero-proof{display:flex;align-items:center;flex-wrap:wrap;gap:.5em;font-size:var(--text-sm);color:rgba(255,255,255,.88);margin:0}
.hero-proof .ok{color:var(--green-400)}.hero-proof .ko{color:var(--orange-400)}
.stars{display:inline-flex;gap:1px;color:rgba(255,255,255,.35)}
.stars .star.on{color:var(--orange-400)}
.stars .ico{width:1em;height:1em;fill:currentColor;stroke:none}
.hero-visual{position:relative;display:grid;place-items:center;min-height:320px}
.hero-visual img{width:min(100%,720px);max-height:calc(100svh - var(--head-h) - 140px);object-fit:contain;filter:drop-shadow(0 34px 44px rgba(0,0,0,.5));transition:opacity var(--dur-slow)}
@media (max-height:760px) and (min-width:901px){.hero h1,.hero .h1{font-size:clamp(2.6rem,5.6vw,4.4rem)}.hero-text{font-size:var(--text-base)}.hero-cta{margin:var(--space-4) 0 var(--space-3)}}
.hero-dots,.dots{display:flex;justify-content:center;gap:8px;margin-top:var(--space-5)}
.sec .carousel+.center{margin-top:var(--space-7)}
.sec .center{margin-bottom:0}
.hero-dots button,.dots button{width:10px;height:10px;border-radius:var(--radius-pill);border:0;padding:0;background:rgba(255,255,255,.4);transition:width var(--dur-base) var(--ease-out),background var(--dur-base)}
.hero-dots button[aria-selected="true"],.dots button[aria-selected="true"]{width:30px;background:var(--orange-400)}
.dots button{background:var(--cream-300)}
.dots button[aria-selected="true"]{background:var(--orange-500)}
@media (max-width:900px){
  .hero{padding-top:calc(var(--head-h) + var(--space-3));padding-bottom:var(--space-5)}
  .hero-slide{grid-template-columns:minmax(0,1fr);text-align:center;gap:var(--space-4)}
  .hero h1,.hero .h1{font-size:clamp(2.4rem,11vw,3.6rem)}
  .hero h1 small{font-size:.38em}
  .hero-text{margin-inline:auto;font-size:var(--text-base)}
  .hero-cta{margin:var(--space-4) 0 var(--space-3)}
  .hero-cta,.hero-proof{justify-content:center}
  .hero-visual{order:-1;min-height:0}
  .hero-visual img{width:min(72%,400px);max-height:34svh}
  .hero-dots{margin-top:var(--space-3)}
  .sunburst{background:repeating-conic-gradient(from 0deg at 50% 30%,var(--green-600) 0deg 9deg,var(--green-700) 9deg 18deg)}
  .hero::after{background:radial-gradient(60% 40% at 50% 30%,rgba(217,135,58,.3),transparent 70%)}
  .deco-1{left:5%;top:13%}.deco-2{right:5%;top:11%}.deco-3{display:none}
}
@media (max-width:480px){.hero-cta .btn{width:100%;justify-content:center}}

/* ---------- Sections ---------- */
.sec{padding:var(--space-8) 0}
.sec-head{margin-bottom:var(--space-6)}
.sec-head.center{text-align:center}
.sec-sub{color:var(--ink-2);font-size:var(--text-md);max-width:60ch;margin:0}
.sec-head.center .sec-sub{margin-inline:auto}
[data-reveal]{transition:opacity var(--dur-slow) var(--ease-out),transform var(--dur-slow) var(--ease-out)}
.js [data-reveal]:not(.in){opacity:.001;transform:translateY(18px)}
@media (prefers-reduced-motion:reduce){[data-reveal],.js [data-reveal]:not(.in){opacity:1;transform:none;transition:none}.hero .deco{animation:none}}

/* ---------- Bento (S2) ---------- */
.bento{padding-top:var(--space-8)}
.bento-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);grid-template-rows:auto auto;gap:var(--space-4)}
.bento-big{grid-row:1/3;position:relative;display:block;background:radial-gradient(80% 70% at 50% 40%,var(--green-600),var(--green-900));border-radius:var(--radius-lg);overflow:clip;min-height:360px;box-shadow:var(--shadow-card);transition:transform var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out)}
.bento-big:hover{transform:translateY(-3px);box-shadow:var(--shadow-lift)}
.bento-big img{width:100%;height:100%;object-fit:contain;padding:8%;filter:drop-shadow(0 20px 30px rgba(0,0,0,.5));transition:transform var(--dur-slow) var(--ease-out)}
.bento-big:hover img{transform:scale(1.04)}
.bento-tag{position:absolute;left:var(--space-4);bottom:var(--space-4);display:inline-flex;align-items:center;gap:.4em;background:rgba(255,255,255,.14);backdrop-filter:blur(6px);color:var(--white);padding:9px 15px;border-radius:var(--radius-pill);font-weight:800;font-size:var(--text-sm)}
.bento-promo{position:relative;background:var(--orange-500);color:var(--white);border-radius:var(--radius-lg);padding:var(--space-6);overflow:clip;isolation:isolate}
.bento-promo h3{color:var(--white);font-size:var(--text-xl);margin-bottom:var(--space-2)}
.bento-promo p{max-width:38ch;color:rgba(255,255,255,.94)}
.bento-promo .deco{position:absolute;z-index:-1;opacity:.9;filter:drop-shadow(0 10px 12px rgba(0,0,0,.25))}
.deco-p1{right:6%;top:-14px;width:64px}.deco-p2{right:-30px;bottom:-30px;width:140px}
.bento-thumbs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-4)}
.bento-thumbs a{display:block;background:var(--white);border:1px solid var(--cream-200);border-radius:var(--radius-md);padding:var(--space-3);text-align:center;text-decoration:none;color:var(--green-800);font-weight:800;font-size:var(--text-sm);transition:transform var(--dur-fast) var(--ease-out),background var(--dur-fast)}
.bento-thumbs a:hover{transform:translateY(-3px);background:var(--orange-100)}
.bento-thumbs img{aspect-ratio:1;object-fit:contain;margin-bottom:var(--space-2);border-radius:var(--radius-sm)}
@media (max-width:767px){.bento-grid{grid-template-columns:minmax(0,1fr)}.bento-big{grid-row:auto;min-height:280px}.bento-thumbs{gap:var(--space-2)}}

/* ---------- About band (S3) — full-bleed ---------- */
.about-band{padding:0;margin-top:var(--space-6)}
.about-in{background:var(--green-700);color:var(--white);border-radius:var(--radius-band) 0 var(--radius-band) 0;padding:var(--space-9) 0;width:100%;position:relative;overflow:clip;isolation:isolate}
.about-in::before{content:"";position:absolute;inset:0;z-index:-1;background:repeating-conic-gradient(from 0deg at 78% 50%,rgba(255,255,255,.035) 0deg 9deg,transparent 9deg 18deg)}
.about-grid{width:min(100% - var(--space-7),var(--container));margin-inline:auto;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:var(--space-7);align-items:center}
.about-copy h2{color:var(--white)}
.about-copy p{color:rgba(255,255,255,.92);max-width:54ch;font-size:var(--text-md)}
.about-points{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3) var(--space-4);margin:var(--space-5) 0 0;font-weight:800}
.about-copy .btn{margin-top:var(--space-6)}
.about-points li{display:flex;align-items:center;gap:.5em}
.about-points .ico{color:var(--green-400)}
.about-visual{position:relative;display:grid;place-items:center;min-height:300px}
.about-visual .halo{position:absolute;width:min(100%,520px);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(217,135,58,.6),rgba(217,135,58,.14) 55%,transparent 72%)}
.about-visual img{position:relative;width:min(90%,520px);filter:drop-shadow(0 30px 40px rgba(0,0,0,.5))}
@media (max-width:900px){.about-in{border-radius:var(--radius-xl) 0 var(--radius-xl) 0;padding:var(--space-8) 0}.about-grid{grid-template-columns:minmax(0,1fr);text-align:center}.about-copy p{margin-inline:auto}.about-points{text-align:left;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.about-visual{order:-1}}
@media (max-width:480px){.about-points{grid-template-columns:minmax(0,1fr)}}

/* ---------- Carousels ---------- */
.carousel{position:relative}
.track{display:flex;gap:var(--space-4);overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding:0 var(--space-4);padding:var(--space-2) var(--space-1) var(--space-4);scrollbar-width:none;-webkit-overflow-scrolling:touch}
.track::-webkit-scrollbar{display:none}
.slide{flex:0 0 calc((100% - 2*var(--space-4))/3);scroll-snap-align:start;min-width:0}
@media (max-width:900px){.slide{flex-basis:calc((100% - var(--space-4))/2)}}
@media (max-width:600px){.slide{flex-basis:84%}}

/* ---------- Product card (S4) ---------- */
.pcard{background:var(--cream-100);border-radius:var(--radius-lg);padding:var(--space-4);height:100%;display:flex;flex-direction:column;transition:transform var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out)}
.pcard:hover{transform:translateY(-4px);box-shadow:var(--shadow-lift)}
.pcard-img{display:block;aspect-ratio:1;border-radius:var(--radius-md);overflow:clip;background:radial-gradient(60% 55% at 50% 60%,rgba(217,135,58,.18),transparent 70%),var(--cream-50)}
.pcard-img img{width:100%;height:100%;object-fit:contain;padding:6%;filter:drop-shadow(0 18px 22px rgba(11,58,18,.28));transition:transform var(--dur-slow) var(--ease-out)}
.pcard:hover .pcard-img img{transform:scale(1.05)}
.pcard-body{display:flex;flex-direction:column;gap:var(--space-2);padding-top:var(--space-3);flex:1}
.pcard-title{font-size:var(--text-lg);margin:0;text-align:center}
.pcard-title a{text-decoration:none;color:var(--green-800)}
.pcard-desc{font-size:var(--text-sm);color:var(--ink-2);margin:0;text-align:center;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pcard-foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding-top:var(--space-2)}
.price{font-family:var(--font-display);font-size:var(--text-lg);color:var(--orange-600);font-variant-numeric:tabular-nums}
.price del{color:var(--muted);font-size:.8em;margin-right:.3em}
.price ins{text-decoration:none}

/* ---------- Reviews — full-bleed band ---------- */
.reviews{background:var(--cream-100)}
.review-card{background:var(--white);border-radius:var(--radius-lg);padding:var(--space-5);height:100%;display:flex;flex-direction:column;gap:var(--space-2);position:relative;box-shadow:var(--shadow-card)}
.review-card .quote{position:absolute;right:var(--space-4);top:var(--space-4);width:34px;height:34px;color:var(--orange-100)}
.review-text{font-size:var(--text-base);color:var(--ink);flex:1;margin:0}
.review-card footer{display:flex;flex-direction:column;font-size:var(--text-sm)}
.review-card footer strong{color:var(--green-800)}
.review-card .src{color:var(--muted)}
.reviews .center{margin-top:var(--space-4);display:flex;gap:var(--space-2);justify-content:center;flex-wrap:wrap}

/* ---------- Find / hours ---------- */
.find-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:var(--space-7);align-items:center}
.find-addr{font-size:var(--text-md)}
.find-info p{display:flex;gap:.5em;align-items:flex-start}
.find-info .ico{color:var(--orange-500);margin-top:.2em}
.hours{margin:var(--space-4) 0;display:grid;gap:6px;font-size:var(--text-sm)}
.hours div{display:flex;justify-content:space-between;gap:var(--space-3);border-bottom:1px dashed var(--cream-300);padding-bottom:4px}
.hours dt{font-weight:800;margin:0}.hours dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}
.find-cta{display:flex;gap:var(--space-2);flex-wrap:wrap}
/* aspect-ratio + min-height se battent : la hauteur minimale gonflait la largeur à 453 px
   et faisait sortir la carte de l'écran. La largeur commande, la hauteur suit. */
.map-box{position:relative;width:100%;max-width:100%;border-radius:var(--radius-lg);overflow:clip;background:var(--cream-200);aspect-ratio:4/3;min-height:0;box-shadow:var(--shadow-card);border:4px solid var(--white)}
@media (min-width:901px){.map-box{min-height:340px}}
.map-box iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
@media (max-width:900px){.find-grid{grid-template-columns:minmax(0,1fr)}}

/* ---------- FAQ ---------- */
.faq-list{display:grid;gap:var(--space-2)}
.faq-item{background:var(--white);border:1px solid var(--cream-200);border-radius:var(--radius-md);padding:0 var(--space-4)}
.faq-item summary{cursor:pointer;font-weight:800;font-size:var(--text-md);padding:var(--space-4) 0;list-style:none;display:flex;justify-content:space-between;gap:var(--space-3);color:var(--green-800)}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+";font-family:var(--font-display);font-size:1.5em;line-height:1;color:var(--orange-500);flex:none;transition:transform var(--dur-fast)}
.faq-item[open] summary::after{transform:rotate(45deg)}
.faq-a{padding:0 0 var(--space-4);color:var(--ink-2);max-width:70ch}

/* ---------- Footer (S5) — full-bleed ---------- */
.site-foot{background:var(--green-900);color:rgba(255,255,255,.86);margin-top:var(--space-8);border-top-left-radius:var(--radius-xl);border-top-right-radius:var(--radius-xl);padding:var(--space-8) 0 var(--space-5)}
.foot-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1.2fr;gap:var(--space-6)}
.foot-brand img{width:76px;height:76px;border-radius:50%;background:var(--white);padding:2px;margin-bottom:var(--space-3)}
.foot-brand p{max-width:40ch;font-size:var(--text-sm)}
.socials{display:flex;gap:var(--space-2)}
.socials a{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.1);color:var(--white)}
.socials a:hover{background:var(--orange-500)}
.foot-col h2{color:var(--white);font-size:var(--text-lg);margin-bottom:var(--space-3)}
.foot-col ul{display:grid;gap:7px}
.foot-col a{color:rgba(255,255,255,.86);text-decoration:none;font-size:var(--text-sm)}
.foot-col a:hover{color:var(--green-400)}
.foot-nap p{display:flex;gap:.5em;align-items:flex-start;font-size:var(--text-sm);margin-bottom:var(--space-2)}
.foot-nap .ico{color:var(--green-400);margin-top:.15em}
.foot-nap .hours{margin-top:var(--space-3);font-size:.8rem}
.foot-nap .hours div{border-color:rgba(255,255,255,.15)}
.foot-bottom{display:flex;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap;border-top:1px solid rgba(255,255,255,.12);margin-top:var(--space-6);padding-top:var(--space-4);font-size:.8rem;color:rgba(255,255,255,.62)}
.foot-bottom p{margin:0}.foot-bottom a{color:inherit}
.foot-bottom .halal{display:flex;align-items:center;gap:.4em;color:var(--green-400);font-weight:800}
@media (max-width:900px){.foot-grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.foot-grid{grid-template-columns:minmax(0,1fr)}.site-foot{border-radius:var(--radius-lg) var(--radius-lg) 0 0}}
/* Déclaré avant sa surcharge mobile : placé après, il l’annulait et les pages
 * gardaient 72 px de marge haute et basse sur téléphone. */
.content{padding:var(--space-8) 0}
/* ---------- Inner pages ---------- */
.page-hero{background:var(--green-700);color:var(--white);padding:var(--space-8) 0 var(--space-7);position:relative;overflow:clip;isolation:isolate}
.page-hero::before{content:"";position:absolute;inset:-30% -10% -30% 30%;z-index:-1;background:repeating-conic-gradient(from 0deg at 85% 50%,var(--green-600) 0deg 9deg,var(--green-700) 9deg 18deg);-webkit-mask-image:radial-gradient(ellipse at 85% 50%,#000 20%,transparent 65%);mask-image:radial-gradient(ellipse at 85% 50%,#000 20%,transparent 65%)}
.page-hero h1{color:var(--white);font-size:clamp(2.4rem,5vw,4rem);margin-bottom:var(--space-2)}
.page-hero .lead{color:rgba(255,255,255,.92);font-size:var(--text-md);max-width:64ch;margin:0}
@media (max-width:767px){.page-hero{padding:var(--space-6) 0 var(--space-5)}.page-hero h1{font-size:clamp(2rem,9vw,2.8rem)}.page-hero .lead{font-size:var(--text-base)}.content{padding:var(--space-6) 0}.sec{padding:var(--space-7) 0}.container{width:min(100% - var(--space-5),var(--container))}.hero-in,.about-grid{width:min(100% - var(--space-5),var(--container))}h2{font-size:clamp(1.8rem,7vw,2.4rem)}}
.crumbs{font-size:var(--text-sm);margin-bottom:var(--space-3)}
.crumbs ol{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.4em}
.crumbs li+li::before{content:"›";margin-right:.4em;opacity:.6}
.page-hero .crumbs a{color:rgba(255,255,255,.82)}
.page-hero .crumbs span{color:var(--white)}
.prose{max-width:72ch}
.prose h2{margin-top:var(--space-6)}
.prose ul,.prose ol{padding-left:1.3em}
.prose img{border-radius:var(--radius-md)}
.prose figure{margin:var(--space-5) 0}
.two-col{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);gap:var(--space-7);align-items:start}
@media (max-width:900px){.two-col{grid-template-columns:minmax(0,1fr)}}

/* --- Contact : le formulaire seul, puis les infos pratiques en blocs -----------
 * Hallmark · macrostructure: Bento (blocs pratiques) · genre: playful · theme: studied-DNA
 * Le bloc « joindre » est vert, pleine largeur, avec le numéro en grand ; les
 * suivants se rangent en grille ; le dernier porte l'accent orange et l'action.
 * Hallmark · pre-emit critique: P5 H5 E5 S5 R4 V4 */
/* --- Fiche produit : les chapitres du texte en blocs illustrés --------------------
 * Hallmark · macrostructure: Catalogue (fiche) · genre: playful · theme: studied-DNA
 * recette (crème, photo + ingrédients) · seul ou en menu (vert, produit jumeau)
 * · avec quoi le prendre (crème 2, cartes) · commander (orange, prix + repères).
 * Hallmark · pre-emit critique: P5 H5 E5 S5 R4 V5 */
.product-story{background:var(--cream-100);border-block:1px solid var(--cream-200)}
.pstory{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-5)}
.ps{position:relative;display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-5);padding:var(--space-5);background:var(--cream-50);border:1px solid var(--cream-200);border-radius:var(--radius-lg);min-width:0;overflow:clip;isolation:isolate}
.ps-head{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-3)}
.ps-head h2{margin:0;font-size:clamp(1.35rem,4vw,1.85rem)}
.ps-mark{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:var(--radius-pill);background:var(--green-100);color:var(--green-700);box-shadow:0 0 0 1px var(--cream-300)}
.ps-mark .ico{width:22px;height:22px;vertical-align:0;stroke-width:2}
.ps-body p{margin:0 0 var(--space-3);color:var(--ink-2);max-width:64ch}
.ps-body p:last-child{margin-bottom:0}
.ps-body a{color:var(--green-700);font-weight:800;text-decoration:underline;text-underline-offset:3px}
.ps-body a:hover{color:var(--orange-600)}
/* 1. Recette : la photo à gauche, les ingrédients en pastilles. */
.ps-visual{display:grid;place-items:center;padding:var(--space-4);background:radial-gradient(circle at 50% 55%,var(--cream-100) 0,transparent 68%)}
.ps-visual img{width:min(100%,320px);height:auto;filter:drop-shadow(0 18px 24px rgba(11,58,18,.22))}
.ps-chips{list-style:none;margin:0 0 var(--space-4);padding:0;display:flex;flex-wrap:wrap;gap:8px}
.ps-chips li{padding:7px 12px;border-radius:var(--radius-pill);background:var(--white);border:1px solid var(--cream-300);font-size:var(--text-sm);font-weight:800;color:var(--green-900)}
.ps-chips li::first-letter{text-transform:uppercase}
/* 2. Seul ou en menu : bande verte, le jumeau en carte. */
.ps--twin{background:var(--green-700);border-color:var(--green-700);color:var(--white)}
.ps--twin::before{content:"";position:absolute;inset:-40% -10% -40% 55%;z-index:-1;background:repeating-conic-gradient(from 0deg at 85% 50%,var(--green-600) 0deg 9deg,var(--green-700) 9deg 18deg);-webkit-mask-image:radial-gradient(ellipse at 85% 50%,#000 18%,transparent 62%);mask-image:radial-gradient(ellipse at 85% 50%,#000 18%,transparent 62%)}
.ps--twin .ps-head h2{color:var(--white)}
.ps--twin .ps-mark{background:rgba(255,255,255,.14);color:var(--white);box-shadow:none}
.ps--twin .ps-body p{color:rgba(255,255,255,.9)}
.ps--twin .ps-body a{color:var(--white)}
.ps-aside{display:grid;align-content:center}
.ps-aside>img{width:100%;max-width:360px;height:auto;justify-self:center;border-radius:var(--radius-md)}
/* Les produits cités reprennent la mini-carte commune (.mini-card, plus haut). */
.ps-aside .mini-card,.ps-cards .mini-card{box-shadow:var(--shadow-card)}
/* 3. Avec quoi le prendre : les produits cités, en cartes. */
.ps--pairs{background:var(--cream-100)}
.ps-cards{display:grid;gap:var(--space-3);align-content:start}
/* 4. Commander : bande orange, le prix en grand, le seul bouton de la section. */
.ps--order{background:var(--orange-50);border-color:var(--orange-100)}
.ps--order .ps-mark{background:var(--orange-100);color:var(--orange-600)}
.ps-order{display:grid;gap:var(--space-4);align-content:center;padding:var(--space-5);background:var(--white);border:1px solid var(--orange-100);border-radius:var(--radius-md)}
.ps-price{margin:0;display:grid;gap:2px}
.ps-price span{font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;font-weight:800;color:var(--muted)}
/* Le prix vient de wc_price() avec ses propres balises : on force la taille jusqu'au chiffre. */
.ps-price strong,.ps-price strong .amount,.ps-price strong bdi{font-family:var(--font-display);font-weight:400;font-size:var(--text-2xl);line-height:1;color:var(--orange-600);font-variant-numeric:tabular-nums}
.ps-facts{list-style:none;margin:0;padding:0;display:grid;gap:8px;font-size:var(--text-sm);color:var(--ink-2)}
.ps-facts li{display:flex;align-items:flex-start;gap:.5em}
.ps-facts .ico{color:var(--green-700);flex:none;margin-top:.15em}
.ps-order .btn{justify-self:start;white-space:nowrap}
/* Sur téléphone la colonne est étroite : le bouton prend toute la largeur plutôt que de passer sur deux lignes. */
@media (max-width:520px){.ps-order{padding:var(--space-4)}.ps-order .btn{justify-self:stretch;justify-content:center;padding-inline:1em}}
@media (min-width:760px){
	.ps{padding:var(--space-6);grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center}
	.ps--recipe{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}
	.ps--twin{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr)}
	.ps--pairs{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}
	.ps--order{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}
}
@media (prefers-reduced-motion:reduce){.pmini{transition:none}.pmini:hover{transform:none}}

/* --- Page « Le restaurant » : cinq chapitres, cinq compositions -------------------
 * Hallmark · macrostructure: Split Studio (diptyques alternés) · genre: playful · theme: studied-DNA
 * Histoire (texte | burger éclaté) · carte (4 tuiles photo) · service (bande verte | menu)
 * · avis (note + 3 citations) · infos (texte | carte NAP). Aucun visuel inventé :
 * les photos sont celles du site, les avis ceux de Google.
 * Hallmark · pre-emit critique: P5 H5 E5 S5 R4 V5 */
.rb{display:grid;gap:var(--space-7)}
.rb h2{margin:0 0 var(--space-3);font-size:clamp(1.6rem,4.5vw,2.3rem)}
.rb p{color:var(--ink-2);max-width:62ch}
.rb a:not(.btn){color:var(--green-700);font-weight:800;text-decoration:underline;text-underline-offset:3px}
.rb a:not(.btn):hover{color:var(--orange-600)}
/* 0 · histoire : texte + burger en vue éclatée */
.rb-story{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-5);align-items:center}
.rb-story-copy p:last-child{margin-bottom:0}
.rb-story-visual{position:relative;margin:0;width:100%;max-width:420px;justify-self:center}
.rb-story-visual>img:first-child{width:100%;height:auto;filter:drop-shadow(0 22px 30px rgba(11,58,18,.22))}
.rb-seal{position:absolute;right:4%;bottom:6%;width:80px;height:80px;border-radius:var(--radius-pill);background:var(--cream-50);box-shadow:var(--shadow-card);padding:8px}
/* 1 · la carte : une tuile par famille */
.rb-carte h2{margin-bottom:var(--space-5)}
.rb-tiles{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-4)}
.rb-tile{display:grid;grid-template-columns:104px minmax(0,1fr);gap:var(--space-4);align-items:center;background:var(--cream-50);border:1px solid var(--cream-200);border-radius:var(--radius-lg);padding:var(--space-4);min-width:0;transition:transform var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}
@media (hover:hover){.rb-tile:hover{transform:translateY(-2px);box-shadow:var(--shadow-card)}}
.rb-tile-img{display:block;aspect-ratio:1;border-radius:var(--radius-md);background:var(--cream-100);overflow:clip}
.rb-tile-img img{width:100%;height:100%;object-fit:contain;padding:6px}
.rb-tile-body p{margin:0 0 var(--space-2);font-size:var(--text-sm);max-width:none}
.rb-tile-body strong{color:var(--green-900);font-size:var(--text-base)}
.rb-tile-link{display:inline-flex;align-items:center;gap:.3em;font-size:var(--text-sm);white-space:nowrap}
/* 2 · le service : bande verte */
.rb-service{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-5);align-items:center;background:var(--green-700);color:var(--white);border-radius:var(--radius-lg);padding:var(--space-6) var(--space-5);position:relative;overflow:clip;isolation:isolate}
.rb-service::before{content:"";position:absolute;inset:-40% -10% -40% 55%;z-index:-1;background:repeating-conic-gradient(from 0deg at 85% 50%,var(--green-600) 0deg 9deg,var(--green-700) 9deg 18deg);-webkit-mask-image:radial-gradient(ellipse at 85% 50%,#000 18%,transparent 62%);mask-image:radial-gradient(ellipse at 85% 50%,#000 18%,transparent 62%)}
.rb-service h2,.rb-service p{color:var(--white)}
.rb-service p{color:rgba(255,255,255,.9)}
.rb-service a:not(.btn){color:var(--white)}
.rb-cta{display:flex;flex-wrap:wrap;gap:var(--space-3);margin:var(--space-4) 0 0}
.rb-cta .btn{white-space:nowrap}
.rb-service-visual{margin:0;width:100%;max-width:440px;justify-self:center}
.rb-service-visual img{width:100%;height:auto;border-radius:var(--radius-md)}
/* 3 · les avis : la note et trois citations */
.rb-avis{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-5)}
.rb-avis-head p:last-child{margin-bottom:0}
.rb-rating{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3) var(--space-4);background:var(--cream-50);border:1px solid var(--cream-200);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5)}
.rb-rating-num{margin:0;font-family:var(--font-display);font-size:2.6rem;line-height:1;color:var(--green-900);font-variant-numeric:tabular-nums}
.rb-rating-num small{font-size:1.1rem;color:var(--muted);margin-left:2px}
.rb-rating .stars{color:var(--orange-500)}
.rb-rating-count{margin:0;font-weight:800;color:var(--ink-2)}
.rb-rating-link{margin-left:auto;display:inline-flex;align-items:center;gap:.3em;white-space:nowrap}
.rb-quotes{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-4)}
.rb-quote{position:relative;background:var(--cream-100);border-radius:var(--radius-lg);padding:var(--space-5);min-width:0}
.rb-quote .ico{position:absolute;top:14px;right:16px;width:28px;height:28px;color:var(--orange-500);opacity:.7}
.rb-quote p{margin:0 0 var(--space-3);font-size:var(--text-base);color:var(--ink);padding-right:28px}
.rb-quote footer{font-size:var(--text-sm);font-weight:800;color:var(--muted)}
/* 4 · infos pratiques : texte + carte NAP */
.rb-infos{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-5);align-items:start}
.rb-infos-card{background:var(--cream-50);border:1px solid var(--cream-200);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-card)}
.rb-infos-line{display:flex;align-items:flex-start;gap:.5em;margin:0 0 var(--space-3);color:var(--ink)}
.rb-infos-line .ico{color:var(--green-700);margin-top:.2em}
.rb-infos-card .hours{margin:var(--space-3) 0 var(--space-4)}
.rb-infos-cta{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:0}
.rb-infos-cta .btn{white-space:nowrap}
@media (min-width:640px){
	.rb-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}
	.rb-quotes{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (min-width:900px){
	.rb{gap:var(--space-8)}
	.rb-story{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:var(--space-7)}
	.rb-service{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:var(--space-7);padding:var(--space-7)}
	.rb-avis{grid-template-columns:minmax(0,1fr) 300px;align-items:center}
	.rb-avis .rb-quotes{grid-column:1/-1}
	.rb-rating{flex-direction:column;align-items:flex-start;gap:var(--space-2)}
	.rb-rating-link{margin-left:0}
	.rb-infos{grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:var(--space-7)}
}
@media (prefers-reduced-motion:reduce){.rb-tile{transition:none}.rb-tile:hover{transform:none}}

/* --- Formulaire de contact -----------------------------------------------------
 * Hallmark · component: form · genre: playful · theme: studied-DNA
 * states: default · hover · focus · active · disabled · loading · error · success
 * contrast: pass (encre 8:1, vert 7,5:1, rouge d'erreur 5,9:1 sur crème) */
.contact-write{max-width:800px;background:var(--cream-50);border:1px solid var(--cream-200);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-card)}
.contact-write-head{display:flex;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-5)}
.contact-write-head h2{margin:0 0 var(--space-2);font-size:clamp(1.6rem,4vw,2.1rem)}
.contact-write-head .sec-sub{margin:0;font-size:var(--text-base)}
.contact-write-head .sec-sub a{color:var(--green-700);font-weight:800;text-decoration:underline;text-underline-offset:3px}
.contact-write-head .sec-sub a:hover{color:var(--orange-600)}
.contact-write-mark{display:inline-grid;place-items:center;flex:none;width:48px;height:48px;border-radius:var(--radius-pill);background:var(--green-700);color:var(--white)}
.contact-write-mark .ico{width:28px;height:28px;vertical-align:0}
.cform-trap{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.cform-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:0 var(--space-4)}
.cform-field{margin:0 0 var(--space-4);display:block;min-width:0}
.cform-field label{display:flex;align-items:baseline;gap:.4em}
.cform-field .req{color:var(--orange-600);font-weight:800}
.cform-field .opt{margin-left:auto;font-weight:400;font-size:.78rem;color:var(--muted)}
.cform input,.cform textarea{width:100%;padding:13px 14px;border:1.5px solid var(--cream-300);border-radius:var(--radius-sm);background:var(--white);color:var(--ink);font:inherit;line-height:1.4;transition:border-color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}
.cform textarea{min-height:140px;resize:vertical}
.cform ::placeholder{color:var(--muted);opacity:1}
@media (hover:hover){.cform input:hover,.cform textarea:hover{border-color:var(--green-500)}}
.cform input:focus-visible,.cform textarea:focus-visible{outline:3px solid var(--orange-500);outline-offset:2px;border-color:var(--green-700)}
.cform input:active,.cform textarea:active{border-color:var(--green-700)}
.cform input:disabled,.cform textarea:disabled,.cform[data-state="loading"] input,.cform[data-state="loading"] textarea{background:var(--cream-100);color:var(--muted);cursor:not-allowed}
/* Erreur : seulement une fois que le champ a été touché, jamais à l'ouverture. */
.cform-err{display:none;margin-top:6px;font-size:var(--text-sm);font-weight:800;color:var(--bad-ink)}
.cform input:user-invalid,.cform textarea:user-invalid,.cform.is-checked input:invalid,.cform.is-checked textarea:invalid{border-color:var(--bad);background:var(--bad-field-bg)}
.cform-field:has(input:user-invalid) .cform-err,.cform-field:has(textarea:user-invalid) .cform-err,.cform.is-checked .cform-field:has(:invalid) .cform-err{display:block}
.cform input:not(:placeholder-shown):valid,.cform textarea:not(:placeholder-shown):valid{border-color:var(--green-500)}
/* Sujet : des pastilles, comme le choix retrait / livraison. */
.cform-subject{border:0;padding:0;margin:0 0 var(--space-4);min-width:0}
.cform-subject legend{padding:0;margin-bottom:8px;font-weight:800;font-size:var(--text-sm);color:var(--green-900)}
.cform-chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{position:relative}
.chip input{position:absolute;opacity:0;width:1px;height:1px}
.chip label{display:inline-block;padding:9px 14px;border:1.5px solid var(--cream-300);border-radius:var(--radius-pill);background:var(--white);color:var(--green-900);font-weight:800;font-size:var(--text-sm);cursor:pointer;white-space:nowrap;transition:border-color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}
@media (hover:hover){.chip label:hover{border-color:var(--green-500);background:var(--cream-50)}}
.chip label:active{transform:translateY(1px)}
.chip input:checked+label{border-color:var(--orange-500);background:var(--orange-500);color:var(--white)}
.chip input:focus-visible+label{outline:3px solid var(--orange-500);outline-offset:2px}
.chip input:disabled+label{opacity:.55;cursor:not-allowed}
/* Pied : confidentialité à gauche, action à droite. */
.cform-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3) var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--cream-200)}
.cform-privacy{margin:0;font-size:.8125rem;color:var(--muted);max-width:44ch}
.cform-privacy a{color:var(--green-700)}
.cform-submit{white-space:nowrap}
.cform-submit[data-state="loading"]{pointer-events:none;opacity:.85}
.cform-submit[data-state="loading"] .ico{animation:cform-spin .9s linear infinite}
@keyframes cform-spin{to{transform:rotate(360deg)}}
/* Retour : succès en vert, échec en rouge, même forme. */
.cform-note{display:flex;align-items:flex-start;gap:.6em;margin:0 0 var(--space-5);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-sm);line-height:1.5}
.cform-note .ico{flex:none;margin-top:.15em}
.cform-note--ok{background:var(--ok-bg);color:var(--green-900);border:1px solid var(--green-100)}
.cform-note--ok .ico{color:var(--ok)}
.cform-note--bad{background:var(--bad-bg);color:var(--bad-ink);border:1px solid color-mix(in srgb,var(--bad) 30%,var(--white))}
.cform-note--bad .ico{color:var(--bad)}
.cform-note--bad a{color:var(--bad-ink);font-weight:800}
@media (min-width:640px){
	.contact-write{padding:var(--space-6) var(--space-7)}
	.cform-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
	.cform-field--wide{grid-column:1/-1}
}
@media (max-width:420px){.chip label{white-space:normal}}
@media (prefers-reduced-motion:reduce){.cform input,.cform textarea,.chip label{transition:none}.cform-submit[data-state="loading"] .ico{animation:none}}
.contact-info{background:var(--cream-100);border-block:1px solid var(--cream-200)}
.contact-blocks{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-5)}
.cb{position:relative;background:var(--cream-50);border:1px solid var(--cream-200);border-radius:var(--radius-lg);padding:var(--space-5);min-width:0}
.cb-head{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-3)}
.cb-head h2{margin:0;font-size:clamp(1.35rem,4vw,1.8rem)}
.cb-mark{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:var(--radius-pill);background:var(--green-100);color:var(--green-700);box-shadow:0 0 0 1px var(--cream-300)}
.cb-mark .ico{width:22px;height:22px;vertical-align:0;stroke-width:2}
.cb-body p{margin:0 0 var(--space-3);color:var(--ink-2);max-width:64ch}
.cb-body p:last-child{margin-bottom:0}
.cb-body a{color:var(--green-700);font-weight:800;text-decoration:underline;text-underline-offset:3px}
.cb-body a:hover{color:var(--orange-600)}
/* Bloc vert : joindre le restaurant. */
.cb--lead{background:var(--green-700);border-color:var(--green-700);color:var(--white);overflow:clip;isolation:isolate}
.cb--lead::before{content:"";position:absolute;inset:-40% -10% -40% 60%;z-index:-1;background:repeating-conic-gradient(from 0deg at 85% 50%,var(--green-600) 0deg 9deg,var(--green-700) 9deg 18deg);-webkit-mask-image:radial-gradient(ellipse at 85% 50%,#000 18%,transparent 62%);mask-image:radial-gradient(ellipse at 85% 50%,#000 18%,transparent 62%)}
.cb--lead .cb-head h2{color:var(--white)}
.cb--lead .cb-mark{background:rgba(255,255,255,.14);color:var(--white);box-shadow:none}
.cb--lead .cb-body p{color:rgba(255,255,255,.9);max-width:60ch}
.cb--lead .cb-body a{color:var(--white)}
.cb-phone{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-2) var(--space-4);margin:var(--space-4) 0 0}
.cb-phone a{display:inline-flex;align-items:center;gap:.35em;font-family:var(--font-display);font-size:clamp(1.7rem,4.5vw,2.4rem);line-height:1;color:var(--white);text-decoration:none;font-variant-numeric:tabular-nums}
.cb-phone a:hover{color:var(--orange-400)}
.cb-phone a .ico{width:.8em;height:.8em}
.cb-phone-note{font-size:var(--text-sm);color:rgba(255,255,255,.75)}
/* Bloc orange : commandes de groupe, le seul appel à l'action de la section. */
.cb--accent{background:var(--orange-50);border-color:var(--orange-100)}
.cb--accent .cb-mark{background:var(--orange-100);color:var(--orange-600)}
.cb-cta{margin:var(--space-4) 0 0}
.cb-cta .btn{white-space:nowrap}
@media (min-width:760px){
	.contact-blocks{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-6)}
	.cb{padding:var(--space-6)}
	.cb--lead{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:var(--space-6);align-items:center}
	.cb--lead .cb-head{grid-column:1}
	.cb--lead .cb-body{grid-column:1}
	.cb--lead .cb-phone{grid-column:2;grid-row:1/3;flex-direction:column;align-items:flex-start;justify-self:end;margin:0}
}
.aside-card{background:var(--green-50);border:1px solid var(--green-100);border-radius:var(--radius-lg);padding:var(--space-5);position:sticky;top:calc(var(--head-h) + 12px)}
.aside-card h2,.aside-card h3{font-size:var(--text-lg)}
.aside-card .btn{width:100%;justify-content:center;margin-top:var(--space-3)}
.badge-row{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:var(--space-3) 0}
.badge{display:inline-flex;align-items:center;gap:.35em;background:var(--green-100);color:var(--green-900);padding:6px 12px;border-radius:var(--radius-pill);font-size:var(--text-sm);font-weight:800}
.badge .ico{color:var(--orange-600)}
.steps-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-4);counter-reset:s}
.step{background:var(--white);border:1px solid var(--cream-200);border-radius:var(--radius-lg);padding:var(--space-5);counter-increment:s}
.step::before{content:counter(s);display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--orange-500);color:var(--white);font-family:var(--font-display);font-size:1.2rem;margin-bottom:var(--space-3)}
.step h3{font-size:var(--text-md)}
@media (max-width:767px){.steps-grid{grid-template-columns:minmax(0,1fr)}}

/* ---------- Shop / category ---------- */
.cat-nav{position:sticky;top:var(--head-h);z-index:20;background:var(--cream-50);padding:var(--space-3) 0;border-bottom:1px solid var(--cream-200)}
.cat-nav ul{list-style:none;margin:0;padding:0 var(--space-1);display:flex;gap:var(--space-2);overflow-x:auto;scrollbar-width:none}
.cat-nav ul::-webkit-scrollbar{display:none}
.cat-nav a{display:inline-block;white-space:nowrap;padding:9px 15px;border-radius:var(--radius-pill);background:var(--white);border:1px solid var(--cream-200);text-decoration:none;font-weight:800;font-size:var(--text-sm);color:var(--green-800)}
.cat-nav a:hover,.cat-nav a.is-active{background:var(--green-700);color:var(--white);border-color:var(--green-700)}
.cat-section{padding:var(--space-6) 0;scroll-margin-top:calc(var(--head-h) + 70px)}
.cat-section h2{display:flex;align-items:baseline;gap:var(--space-3);flex-wrap:wrap}
.cat-section h2 small{font-family:var(--font-body);font-weight:600;font-size:var(--text-sm);color:var(--muted)}
.cat-intro{max-width:70ch;color:var(--ink-2)}
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:var(--space-4);list-style:none;padding:0;margin:var(--space-4) 0 0}
@media (max-width:480px){.pgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2)}.pcard{padding:var(--space-2)}.pcard-foot{flex-direction:column;align-items:stretch}.pcard-foot .btn{justify-content:center}}

/* ---------- Single product ---------- */
.product-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-7);align-items:start;padding:var(--space-6) 0}
.product-media{background:radial-gradient(60% 55% at 50% 60%,rgba(217,135,58,.22),transparent 70%),var(--cream-100);border-radius:var(--radius-xl);padding:var(--space-5);position:sticky;top:calc(var(--head-h) + 12px)}
.product-media img{width:100%;aspect-ratio:1;object-fit:contain;filter:drop-shadow(0 26px 34px rgba(11,58,18,.3))}
.product-info h1{font-size:clamp(2.2rem,4.5vw,3.4rem)}
.product-info .price{font-size:var(--text-2xl)}
.product-info .short{font-size:var(--text-md);color:var(--ink-2)}
.qty-row{display:flex;align-items:center;gap:var(--space-3);margin:var(--space-5) 0;flex-wrap:wrap}
.qty{display:inline-flex;align-items:center;border:2px solid var(--cream-300);border-radius:var(--radius-pill);overflow:clip;background:var(--white)}
.qty button{width:44px;height:44px;border:0;background:transparent;font-size:1.3rem;color:var(--green-800)}
.qty button:hover{background:var(--cream-100)}
.qty input{width:52px;text-align:center;border:0;font:inherit;font-weight:800;font-size:var(--text-md);-moz-appearance:textfield}
.qty input::-webkit-inner-spin-button,.qty input::-webkit-outer-spin-button{appearance:none}
.product-desc{margin-top:var(--space-6)}
.related{padding:var(--space-7) 0}
@media (max-width:900px){.product-hero{grid-template-columns:minmax(0,1fr)}.product-media{position:static}}

/* ===================================================================
   Pages transactionnelles — famille Workbench (voir design.md)
   Plan de travail à gauche, rail de récapitulatif collant à droite.
   Aucun enrichissement : l'accent ne sert qu'au total et à l'action.
   =================================================================== */

/* --- Boutons WooCommerce : même voix que .btn (pilule pleine orange) --- */
.woocommerce .button,.woocommerce button.button,.woocommerce a.button,.woocommerce input.button,.woocommerce button.button.alt,.woocommerce a.button.alt{
  display:inline-flex;align-items:center;justify-content:center;gap:.5em;padding:.85em 1.5em;border-radius:var(--radius-pill);
  background:var(--orange-500);color:var(--white);font-family:var(--font-body);font-weight:800;font-size:var(--text-base);line-height:1;
  text-decoration:none;border:2px solid transparent;white-space:nowrap;cursor:pointer;box-shadow:0 6px 16px -8px rgba(185,109,39,.55);
  transition:transform var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}
@media (hover:hover){.woocommerce .button:hover,.woocommerce button.button:hover,.woocommerce a.button:hover,.woocommerce button.button.alt:hover{background:var(--orange-600);color:var(--white);transform:translateY(-2px);box-shadow:0 12px 22px -10px rgba(185,109,39,.7)}}
.woocommerce .button:active,.woocommerce button.button:active{transform:translateY(1px);box-shadow:none}
.woocommerce .button:focus-visible,.woocommerce button.button:focus-visible,.woocommerce a.button:focus-visible{outline:3px solid var(--orange-500);outline-offset:3px}
.woocommerce .button:disabled,.woocommerce button.button:disabled,.woocommerce .button[aria-disabled="true"]{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none}
.woocommerce button.button[name="apply_coupon"],.woocommerce button.button[name="update_cart"]{background:transparent;color:var(--green-800);border-color:var(--green-800);box-shadow:none}
@media (hover:hover){.woocommerce button.button[name="apply_coupon"]:hover{background:var(--green-800);color:var(--white)}}

/* --- Fil d'étapes (ordinal : panier → paiement → retrait) --- */
.steps-bar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-2);list-style:none;margin:0 0 var(--space-6);padding:0}
.steps-bar li{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:var(--radius-pill);background:var(--white);border:1px solid var(--cream-200);color:var(--muted);font-weight:800;font-size:var(--text-sm);min-width:0}
.steps-bar .dot{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--cream-100);color:var(--muted);flex:none}
.steps-bar .lbl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.steps-bar li.current{border-color:var(--orange-500);color:var(--green-900);background:var(--orange-50)}
.steps-bar li.current .dot{background:var(--orange-500);color:var(--white)}
.steps-bar li.done{color:var(--green-800)}
.steps-bar li.done .dot{background:var(--green-500);color:var(--white)}
@media (max-width:700px){.steps-bar{gap:6px}.steps-bar li{flex-direction:column;text-align:center;padding:10px 6px;font-size:.7rem;border-radius:var(--radius-md);gap:6px}.steps-bar .lbl{white-space:normal}}

/* --- Bandeau de réassurance --- */
.reassure{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-3);list-style:none;margin:var(--space-7) 0 0;padding:0}
.reassure li{display:flex;gap:10px;align-items:flex-start;border-top:2px solid var(--cream-200);padding-top:var(--space-3);font-size:var(--text-sm);color:var(--ink-2)}
.reassure .ico{color:var(--green-600);flex:none;margin-top:2px}
.reassure strong{color:var(--green-800)}

/* --- Plan de travail : colonne principale + rail --- */
.woo-wrap{padding:0}
.woocommerce-cart .woo-wrap>.woocommerce{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,.55fr);gap:var(--space-6);align-items:start}
.woocommerce-cart .woo-wrap .woocommerce-notices-wrapper{grid-column:1/-1}
.woocommerce-cart .woo-wrap .cart-collaterals{margin:0}
@media (max-width:900px){.woocommerce-cart .woo-wrap>.woocommerce{grid-template-columns:minmax(0,1fr)}}

/* --- Le registre : une ligne = un produit --- */
.ledger{list-style:none;margin:0;padding:0;border-top:2px solid var(--cream-200)}
.ledger-row{display:grid;grid-template-columns:88px minmax(0,1fr) auto auto 36px;align-items:center;gap:var(--space-4);padding:var(--space-4) 0;border-bottom:1px solid var(--cream-200)}
.ledger-thumb img{width:88px;height:88px;object-fit:contain;border-radius:var(--radius-sm);background:radial-gradient(58% 52% at 50% 62%,rgba(217,135,58,.18),transparent 70%),var(--cream-100)}
.ledger-name{min-width:0}
.ledger-name h3{font-size:var(--text-md);margin:0 0 2px}
.ledger-name a{color:var(--green-800);text-decoration:none}
.ledger-name a:hover{color:var(--orange-600);text-decoration:underline}
.ledger-unit{margin:0;font-size:var(--text-sm);color:var(--muted);font-variant-numeric:tabular-nums}
.ledger-line{margin:0;font-family:var(--font-display);font-size:var(--text-md);color:var(--green-900);font-variant-numeric:tabular-nums;min-width:5.5ch;text-align:right}
.ledger-remove{justify-self:end}
.is-busy .ledger-row{opacity:.55;pointer-events:none;transition:opacity var(--dur-fast) var(--ease-out)}
@media (max-width:700px){
  .ledger-row{grid-template-columns:72px minmax(0,1fr) auto;grid-template-areas:"thumb name remove" "thumb qty line";gap:6px var(--space-3);padding:var(--space-4) 0}
  .ledger-thumb{grid-area:thumb}.ledger-thumb img{width:72px;height:72px}
  .ledger-name{grid-area:name}
  .ledger-qty{grid-area:qty;align-self:end}
  .ledger-line{grid-area:line;align-self:end}
  .ledger-remove{grid-area:remove}
}

/* --- Quantité : hauteur identique aux boutons, pas de saut au focus --- */
.woocommerce .quantity{display:inline-flex}
.woocommerce .quantity .qty,.ledger-qty-input{width:78px;height:44px;padding:0 10px;border:1px solid var(--cream-300);outline:2px solid transparent;outline-offset:1px;border-radius:var(--radius-pill);text-align:center;font:inherit;font-weight:800;background:var(--white);color:var(--ink);font-variant-numeric:tabular-nums;-moz-appearance:textfield}
.woocommerce .quantity .qty::-webkit-inner-spin-button{opacity:1}
@media (hover:hover){.woocommerce .quantity .qty:hover{background:var(--cream-50)}}
.woocommerce .quantity .qty:focus-visible{outline-color:var(--orange-500);border-color:var(--green-700)}
.woocommerce a.remove{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:transparent;border:1px solid var(--cream-300);color:var(--ink-2)!important;font-size:1.15rem;line-height:1;text-decoration:none;position:relative}
.woocommerce a.remove::before{content:"";position:absolute;inset:-6px}
@media (hover:hover){.woocommerce a.remove:hover{background:var(--bad);border-color:var(--bad);color:var(--white)!important}}
.woocommerce a.remove:focus-visible{outline:3px solid var(--orange-500);outline-offset:2px}

/* --- Actions du registre --- */
.ledger-actions{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center;padding-top:var(--space-4)}
.js .cart-update{display:none}
.coupon-toggle summary{cursor:pointer;font-weight:800;font-size:var(--text-sm);color:var(--green-800);list-style:none;padding:8px 0}
.coupon-toggle summary::-webkit-details-marker{display:none}
.coupon-toggle summary::before{content:"+ ";color:var(--orange-500)}
.coupon-toggle[open] summary::before{content:"− "}
.coupon-toggle summary:focus-visible{outline:3px solid var(--orange-500);outline-offset:3px;border-radius:4px}
.coupon-toggle .coupon{display:flex;gap:var(--space-2);flex-wrap:wrap;align-items:center;padding-bottom:var(--space-2)}
.coupon-toggle .coupon input{width:auto;min-width:190px;height:44px}

/* --- Rail de récapitulatif --- */
.summary-rail{background:var(--cream-100);border-radius:var(--radius-lg);padding:var(--space-5);position:sticky;top:calc(var(--head-h) + 12px)}
.summary-rail h2{font-size:var(--text-lg);margin:0 0 var(--space-4)}
.summary-lines{margin:0;display:grid;gap:0}
.summary-lines>div{display:flex;justify-content:space-between;gap:var(--space-3);align-items:baseline;padding:10px 0;border-bottom:1px dashed var(--cream-300)}
.summary-lines dt{margin:0;font-size:var(--text-sm);color:var(--ink-2)}
.summary-lines dt .muted{color:var(--muted)}
.summary-lines dd{margin:0;font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}
.summary-lines .pickup-line dd{color:var(--green-600)}
.summary-total{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-3);margin:var(--space-4) 0 var(--space-4);font-weight:800}
.summary-total strong{font-family:var(--font-display);font-weight:400;font-size:var(--text-xl);color:var(--orange-600);font-variant-numeric:tabular-nums}
.summary-note{display:flex;gap:10px;align-items:flex-start;font-size:var(--text-sm);color:var(--ink-2);margin:var(--space-3) 0 0}
.summary-note .ico{color:var(--green-600);flex:none;margin-top:3px}
.wc-proceed-to-checkout{margin:0}
.wc-proceed-to-checkout .checkout-button{width:100%;justify-content:center;font-size:var(--text-md);padding:1em}

/* --- Panier vide (trois temps : quoi, pourquoi, une action) --- */
.cart-empty-state{text-align:center;padding:var(--space-8) var(--space-4);border:2px dashed var(--cream-300);border-radius:var(--radius-lg)}
.cart-empty-state h2{margin-bottom:var(--space-2)}
.cart-empty-state p{color:var(--ink-2);max-width:52ch;margin-inline:auto}
.cart-empty-cta{margin-top:var(--space-5)}
.cart-empty-links{list-style:none;display:flex;flex-wrap:wrap;gap:var(--space-2);justify-content:center;padding:0;margin:var(--space-5) 0 0}
.cart-empty-links a{display:inline-block;padding:7px 14px;border-radius:var(--radius-pill);border:1px solid var(--cream-300);text-decoration:none;font-weight:800;font-size:var(--text-sm);color:var(--green-800)}
.cart-empty-links a:hover{background:var(--green-700);border-color:var(--green-700);color:var(--white)}
.woocommerce .return-to-shop{display:none}

/* --- Rappel de commande (cross-sell maison) --- */
.addons{margin-top:var(--space-8)}
.addons h2{font-size:var(--text-lg);margin-bottom:var(--space-2)}
.addons p.sec-sub{margin-bottom:var(--space-4)}

/* --- Paiement : formulaire --- */
/* Le choix du mode occupe sa propre rangée, en tête de la colonne de gauche.
 * Sans zone nommée, la grille le plaçait automatiquement après les autres —
 * c'est-à-dire tout en bas du formulaire. */
.woocommerce-checkout form.checkout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,.6fr);grid-template-areas:"mode review" "details review";gap:0 var(--space-6);align-items:start}
.woocommerce-checkout form.checkout .sns-mode{grid-area:mode;min-width:0}
.woocommerce-checkout form.checkout #customer_details{grid-area:details;min-width:0}
/* Le titre et le récapitulatif ne font qu'une colonne (voir woocommerce/checkout/form-checkout.php) :
 * c'est ce qui donne au rail la hauteur nécessaire pour rester en place au défilement. */
.woocommerce-checkout form.checkout .sns-review-col{grid-area:review;min-width:0;position:sticky;top:calc(var(--head-h) + 12px)}
.woocommerce-checkout form.checkout #order_review_heading{margin:0 0 var(--space-4);font-size:var(--text-lg)}
.woocommerce-checkout form.checkout #order_review{background:var(--cream-100);border-radius:var(--radius-lg);padding:var(--space-4)}

/* --- Choix du mode, en tête du formulaire (colonne de gauche) ---------------
 * Il était dans le rail de droite, où il chargeait la colonne et écrasait les
 * totaux. C'est une décision, pas un récapitulatif : sa place est dans le
 * formulaire, avant les coordonnées. */
.sns-mode{background:var(--cream-100);border:1px solid var(--cream-200);border-radius:var(--radius-lg);padding:var(--space-5);margin-bottom:var(--space-6)}
.sns-mode h3{display:flex;align-items:center;gap:.4em;margin:0 0 var(--space-2);font-size:var(--text-md)}
.sns-mode>p{margin:0 0 var(--space-4);font-size:var(--text-sm);color:var(--ink-2)}
.sns-mode ul#shipping_method{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.sns-mode ul#shipping_method label{padding:14px 16px}
@media (max-width:520px){.sns-mode ul#shipping_method{grid-template-columns:minmax(0,1fr)}}
/* Le mode retenu, rappelé en clair dans le récapitulatif. */
.sns-ship-chosen{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3)}
.sns-ship-chosen .amount{font-weight:800;font-variant-numeric:tabular-nums}
/* Minimum de livraison : la pastille reste visible mais fermée, avec ce qu'il manque. */
.sns-mode-min{display:flex;align-items:flex-start;gap:.5em;margin:0 0 var(--space-4)!important;padding:var(--space-3) var(--space-4);background:var(--white);border:1px solid var(--cream-200);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--ink-2)}
.sns-mode-min .ico{color:var(--green-700);margin-top:.15em}
.woocommerce ul#shipping_method label.is-off{background:var(--cream-100);border-style:dashed;color:var(--muted);cursor:not-allowed}
.woocommerce ul#shipping_method label.is-off .m-cost{color:var(--muted)}

/* --- Fidélité ---------------------------------------------------------------
 * Un bloc d'information, jamais une deuxième décision : le seul contrôle est la
 * case « menu offert », et elle n'apparaît qu'une fois le droit acquis. */
.loyalty-box{background:var(--green-50);border:1px solid var(--green-100);border-radius:var(--radius-lg);padding:var(--space-5);margin-top:var(--space-5)}
.loyalty-box h3{display:flex;align-items:center;gap:.4em;margin:0 0 var(--space-2);font-size:var(--text-md)}
.loyalty-box h3 .ico{color:var(--orange-500)}
.loyalty-status{margin:0 0 var(--space-3);font-size:var(--text-sm);color:var(--ink-2)}
.loyalty-figure{margin:0 0 var(--space-2);font-size:var(--text-base);color:var(--ink-2)}
.loyalty-figure strong{font-size:var(--text-xl);color:var(--green-900);font-variant-numeric:tabular-nums;margin-right:.15em}
.loyalty-delta{display:inline-block;margin-left:var(--space-2);padding:2px 10px;border-radius:var(--radius-pill);background:var(--green-100);color:var(--green-800);font-size:var(--text-sm);font-weight:800}
.loyalty-bar{height:8px;border-radius:var(--radius-pill);background:var(--green-100);overflow:hidden;margin:0 0 var(--space-3)}
.loyalty-bar span{display:block;height:100%;background:var(--green-500);border-radius:var(--radius-pill);transition:width var(--dur-slow) var(--ease-out)}
.loyalty-redeem{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);margin:0 0 var(--space-3);background:var(--white);border:1px solid var(--cream-300);border-radius:var(--radius-md);cursor:pointer;font-weight:800;color:var(--green-900);transition:border-color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out)}
.loyalty-redeem input{accent-color:var(--orange-500);width:20px;height:20px;margin:2px 0 0;flex:none}
.loyalty-redeem:has(input:checked){border-color:var(--orange-500);background:var(--orange-50)}
.loyalty-redeem:has(input:focus-visible){outline:3px solid var(--orange-500);outline-offset:2px}
.loyalty-rule{margin:0;font-size:.8125rem;color:var(--muted)}
.loyalty-box--receipt{margin:var(--space-6) 0}
@media (prefers-reduced-motion:reduce){.loyalty-bar span,.loyalty-redeem{transition:none}}
.woocommerce-checkout h3{font-size:var(--text-lg);margin:var(--space-6) 0 var(--space-3)}
.woocommerce-checkout #customer_details .col-1>h3:first-child{margin-top:0}
.woocommerce-checkout .col2-set{display:grid;grid-template-columns:minmax(0,1fr);gap:0}
@media (max-width:900px){
	.woocommerce-checkout form.checkout{grid-template-columns:minmax(0,1fr);grid-template-areas:"mode" "details" "review"}
	/* Sur mobile le rail redevient une section : ni collant, ni scroll interne. */
	.woocommerce-checkout form.checkout .sns-review-col{position:static}
	.woocommerce-checkout form.checkout #order_review{max-height:none;overflow:visible;padding:var(--space-4)}
	.woocommerce-checkout form.checkout #order_review_heading{margin-top:var(--space-6)}
}

/* --- Champs : bordure constante, anneau réservé, huit états --- */
.woocommerce form .form-row{margin-bottom:var(--space-4);display:grid}
.woocommerce form .form-row label,.sns-form label{font-weight:800;font-size:var(--text-sm);display:block;margin-bottom:6px;color:var(--green-900)}
.woocommerce form .form-row .required{color:var(--bad);text-decoration:none}
.woocommerce form .form-row input.input-text,.woocommerce form .form-row textarea,.woocommerce form .form-row select,
.woocommerce input[type="text"],.woocommerce input[type="email"],.woocommerce input[type="tel"],.woocommerce textarea,.woocommerce select,
.sns-form input,.sns-form textarea,.sns-form select{
  width:100%;min-height:48px;padding:12px 14px;border:1px solid var(--cream-300);outline:2px solid transparent;outline-offset:1px;
  border-radius:var(--radius-sm);background:var(--white);font:inherit;color:var(--ink);transition:background var(--dur-fast) var(--ease-out)}
.woocommerce form .form-row textarea,.sns-form textarea{min-height:96px;line-height:1.5}
@media (hover:hover){.woocommerce form .form-row input.input-text:hover,.woocommerce form .form-row textarea:hover,.woocommerce form .form-row select:hover,.sns-form input:hover,.sns-form textarea:hover,.sns-form select:hover{background:var(--cream-50)}}
.woocommerce form .form-row input.input-text:focus-visible,.woocommerce form .form-row textarea:focus-visible,.woocommerce form .form-row select:focus-visible,
.sns-form input:focus-visible,.sns-form textarea:focus-visible,.sns-form select:focus-visible{outline-color:var(--orange-500);border-color:var(--green-700)}
.woocommerce form .form-row.woocommerce-invalid input.input-text,.woocommerce form .form-row.woocommerce-invalid select,.woocommerce form .form-row.woocommerce-invalid textarea{border-color:var(--bad);background:var(--bad-field-bg)}
.woocommerce form .form-row.woocommerce-validated input.input-text{border-color:var(--green-500)}
.woocommerce form .form-row input:disabled,.woocommerce form .form-row select:disabled{opacity:.55;cursor:not-allowed}
.woocommerce form .form-row ::placeholder{color:var(--muted)}
.woocommerce .woocommerce-input-wrapper{width:100%}
.woocommerce form .form-row-first,.woocommerce form .form-row-last{width:100%;float:none}
@media (min-width:601px){.woocommerce #customer_details .woocommerce-billing-fields__field-wrapper{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 var(--space-4)}
.woocommerce #customer_details .woocommerce-billing-fields__field-wrapper>.form-row{grid-column:span 2}
.woocommerce #customer_details .woocommerce-billing-fields__field-wrapper>#billing_first_name_field,
.woocommerce #customer_details .woocommerce-billing-fields__field-wrapper>#billing_last_name_field{grid-column:span 1}}

/* --- Mode de traitement : retrait ou livraison --- */
.woocommerce ul#shipping_method{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.woocommerce ul#shipping_method li{margin:0;position:relative}
.woocommerce ul#shipping_method input[type="radio"]{position:absolute;opacity:0;width:1px;height:1px}
.woocommerce ul#shipping_method label{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 14px;background:var(--white);border:1px solid var(--cream-300);border-radius:var(--radius-md);cursor:pointer;font-weight:800;color:var(--green-900)}
.woocommerce ul#shipping_method input[type="radio"]:checked+label{border-color:var(--orange-500);background:var(--orange-50)}
.woocommerce ul#shipping_method input[type="radio"]:focus-visible+label{outline:3px solid var(--orange-500);outline-offset:2px}
/* Nom à gauche, prix à droite : chacun sur une seule ligne, jusqu'à 320 px. */
.woocommerce ul#shipping_method label .m-name{min-width:0;overflow-wrap:anywhere}
.woocommerce ul#shipping_method label .m-cost{flex:none;white-space:nowrap;color:var(--green-700)}
.woocommerce ul#shipping_method input[type="radio"]:checked+label .m-cost{color:var(--orange-600)}
@media (max-width:380px){.woocommerce ul#shipping_method label{font-size:var(--text-sm);padding:12px}}
/* La ligne du mode occupe les deux colonnes (voir woocommerce/cart/cart-shipping.php) :
 * l'intitulé au-dessus, les pastilles en dessous, sur toute la largeur du rail. */
.sns-shipping-cell{text-align:left!important;white-space:normal!important;font-weight:400!important;padding:var(--space-2) 0 var(--space-3)!important}
.sns-shipping-label{display:block;margin-bottom:var(--space-2);color:var(--ink-2)}
.sns-shipping-note{margin:0;font-size:var(--text-sm);color:var(--ink-2)}
.sns-delivery-only[hidden]{display:none!important}
.pickup-box-intro{margin:0 0 var(--space-3)}

/* --- Créneau de retrait ou de livraison --- */
.pickup-box{background:var(--green-50);border:1px solid var(--green-100);border-radius:var(--radius-lg);padding:var(--space-5);margin-top:var(--space-5)}
.pickup-box h3{display:flex;align-items:center;gap:.4em;margin:0 0 var(--space-2);font-size:var(--text-md)}
.pickup-box>p{font-size:var(--text-sm);color:var(--ink-2)}
.pickup-box .form-row{margin-bottom:0}
/* Les deux intitulés sont rendus ensemble : le mode choisi décide lequel s'affiche,
 * sans attendre un aller-retour serveur. */
.pickup-box[data-fulfilment="pickup"] .pickup-title--delivery,
.pickup-box[data-fulfilment="pickup"] .pickup-intro--delivery,
.pickup-box[data-fulfilment="pickup"] .slotcal-legend--delivery,
.pickup-box[data-fulfilment="delivery"] .pickup-title--pickup,
.pickup-box[data-fulfilment="delivery"] .pickup-intro--pickup,
.pickup-box[data-fulfilment="delivery"] .slotcal-legend--pickup{display:none}

/* --- Heure de retrait : le jour même, rien d'autre à choisir --- */
.slotcal{border:0;padding:0;margin:var(--space-4) 0 0;min-width:0}
.slotcal-legend{padding:0;margin-bottom:var(--space-3);font-weight:800;font-size:var(--text-base);color:var(--green-900)}
.slotcal-tz{font-weight:400;color:var(--muted);font-size:var(--text-sm)}
.slotcal-empty{margin:var(--space-3) 0 0;font-size:var(--text-sm);color:var(--ink-2)}
.pickup-asap{display:flex;align-items:flex-start;gap:.5em;margin:var(--space-3) 0 0;padding:var(--space-3) var(--space-4);background:var(--white);border:1px solid var(--green-100);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--ink-2)}
.pickup-asap .ico{color:var(--green-700);margin-top:.15em}
.pickup-asap strong{color:var(--green-900)}
.slotcal-slots{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(74px,1fr));gap:var(--space-2)}
.slotcal-slots li{margin:0;position:relative;min-width:0}
.slotcal-slots input{position:absolute;opacity:0;width:1px;height:1px}
.slotcal-slots label{display:block;padding:11px 6px;text-align:center;background:var(--white);border:1px solid var(--cream-300);border-radius:var(--radius-sm);cursor:pointer;font-weight:800;font-size:var(--text-sm);font-variant-numeric:tabular-nums;color:var(--green-900);white-space:nowrap;transition:border-color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out)}
@media (hover:hover){.slotcal-slots label:hover{background:var(--cream-50);border-color:var(--green-500)}}
.slotcal-slots label:active{transform:translateY(1px)}
.slotcal-slots input:checked+label{border-color:var(--orange-500);background:var(--orange-500);color:var(--white);box-shadow:0 6px 14px -8px rgba(185,109,39,.7)}
.slotcal-slots input:focus-visible+label{outline:3px solid var(--orange-500);outline-offset:2px}
.slotcal-slots input:disabled+label{background:var(--cream-100);border-color:var(--cream-200);color:var(--muted);cursor:not-allowed;text-decoration:line-through}
@media (max-width:400px){.slotcal-slots{grid-template-columns:repeat(auto-fill,minmax(64px,1fr))}}
@media (prefers-reduced-motion:reduce){.slotcal-slots label{transition:none}.slotcal-slots label:active{transform:none}}

/* --- Récapitulatif de commande (colonne droite) --- */
.woocommerce-checkout-review-order-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}
.woocommerce-checkout-review-order-table th,.woocommerce-checkout-review-order-table td{padding:10px 0;border-bottom:1px dashed var(--cream-300);text-align:left;font-weight:400;color:var(--ink)}
.woocommerce-checkout-review-order-table td{text-align:right;font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}
.woocommerce-checkout-review-order-table thead{display:none}
.woocommerce-checkout-review-order-table .product-name{font-weight:700}
.woocommerce-checkout-review-order-table .product-quantity{color:var(--muted);font-weight:400}
.woocommerce-checkout-review-order-table tfoot .order-total th,.woocommerce-checkout-review-order-table tfoot .order-total td{border-bottom:0;padding-top:var(--space-3)}
.woocommerce-checkout-review-order-table tfoot .order-total td{font-family:var(--font-display);font-weight:400;font-size:var(--text-xl);color:var(--orange-600)}

/* --- Modes de paiement : cartes radio --- */
.woocommerce #payment{background:transparent;padding:0;margin-top:var(--space-3)}
.woocommerce ul.payment_methods{list-style:none;padding:0;margin:0 0 var(--space-3);display:grid;gap:8px;border:0!important}
.woocommerce ul.payment_methods li{padding:0;background:transparent;margin:0;position:relative}
.woocommerce ul.payment_methods li>input[type="radio"]{position:absolute;opacity:0;width:1px;height:1px}
.woocommerce ul.payment_methods li>label{display:flex;align-items:center;gap:10px;padding:12px 14px;background:var(--white);border:1px solid var(--cream-300);border-radius:var(--radius-md);cursor:pointer;font-weight:800;font-size:var(--text-base);color:var(--green-900);transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}
.woocommerce ul.payment_methods li>label::before{content:"";width:20px;height:20px;border-radius:50%;border:2px solid var(--cream-300);flex:none}
@media (hover:hover){.woocommerce ul.payment_methods li>label:hover{background:var(--cream-50)}}
.woocommerce ul.payment_methods li>input[type="radio"]:checked+label{border-color:var(--orange-500);background:var(--orange-50)}
.woocommerce ul.payment_methods li>input[type="radio"]:checked+label::before{border-color:var(--orange-500);box-shadow:inset 0 0 0 4px var(--orange-500)}
.woocommerce ul.payment_methods li>input[type="radio"]:focus-visible+label{outline:3px solid var(--orange-500);outline-offset:2px}
.woocommerce ul.payment_methods li label img{max-height:22px;width:auto;margin-left:auto}
.woocommerce .payment_box{background:transparent;border-left:2px solid var(--green-100);border-radius:0;padding:2px 0 2px var(--space-4);margin:10px 0 0 var(--space-4);font-size:var(--text-sm);color:var(--ink-2)}
/* Un seul moyen de paiement : ce n'est plus un choix mais une information, et
 * son intitulé répète le mode déjà retenu en haut du formulaire. On garde le
 * libellé pour les lecteurs d'écran et on ne montre que l'explication.
 * Dès qu'un second moyen existe (Stripe activé), les cartes de choix reviennent. */
.woocommerce ul.payment_methods li:only-child>label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.woocommerce ul.payment_methods li:only-child .payment_box{margin:0}
.woocommerce .payment_box p:last-child{margin:0}
.woocommerce .place-order{margin-top:var(--space-3)}
.woocommerce #place_order{width:100%;justify-content:center;font-size:var(--text-md);padding:1em}
/* Mention légale obligatoire, mais elle ne doit pas repousser le bouton :
 * corps réduit, interligne serré, marge minimale. */
.woocommerce-privacy-policy-text{font-size:.8125rem;line-height:1.4;color:var(--muted)}
.woocommerce-privacy-policy-text p{margin:0 0 var(--space-3)}
/* La liste des modes est stylée plus haut (« Mode de traitement »). Ces règles
 * ne gardent que le strict nécessaire : un `display:flex` sur le <li> empêchait
 * la pastille de prendre toute la largeur de la cellule. */
.woocommerce-shipping-methods{list-style:none;padding:0;margin:0}
.woocommerce-shipping-methods li input{accent-color:var(--orange-500)}

/* --- Notices --- */
.woocommerce-error,.woocommerce-message,.woocommerce-info,.notice-box{border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);margin:0 0 var(--space-4);list-style:none;background:var(--cream-100);border-left:3px solid var(--green-600);font-size:var(--text-sm)}
.woocommerce-error{border-left-color:var(--bad);background:var(--bad-bg);color:var(--bad-ink)}
.woocommerce-message{border-left-color:var(--green-500);background:var(--ok-bg)}
.woocommerce-error li,.woocommerce-message li,.woocommerce-info li{margin:0}
.woocommerce-error a,.woocommerce-message a{color:inherit}

/* --- Confirmation : le ticket --- */
.receipt{max-width:760px}
.receipt-head{background:var(--green-700);color:var(--white);border-radius:var(--radius-lg);padding:var(--space-6);position:relative;overflow:clip;isolation:isolate}
.receipt-head::before{content:"";position:absolute;inset:-40% -10% -40% 55%;z-index:-1;background:repeating-conic-gradient(from 0deg at 85% 50%,var(--green-600) 0deg 9deg,var(--green-700) 9deg 18deg);-webkit-mask-image:radial-gradient(ellipse at 85% 50%,#000 18%,transparent 62%);mask-image:radial-gradient(ellipse at 85% 50%,#000 18%,transparent 62%)}
.receipt-kicker{display:flex;align-items:center;gap:8px;font-weight:800;font-size:var(--text-sm);color:var(--green-400);margin:0 0 var(--space-3);letter-spacing:.02em}
.receipt-when{font-family:var(--font-display);font-size:clamp(2rem,5vw,3.2rem);line-height:1.02;color:var(--white);margin:0 0 var(--space-2)}
.receipt-where{color:rgba(255,255,255,.9);margin:0 0 var(--space-5)}
.receipt-actions{display:flex;gap:var(--space-2);flex-wrap:wrap;margin:0}
.receipt-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:0 var(--space-5);margin:var(--space-6) 0}
.receipt-meta>div{padding:var(--space-3) 0;border-bottom:1px solid var(--cream-200)}
.receipt-meta dt{margin:0 0 2px;font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:800}
.receipt-meta dd{margin:0;font-weight:800;color:var(--green-900);font-variant-numeric:tabular-nums}
.receipt-next{color:var(--ink-2);max-width:60ch}
.receipt-failed{background:var(--bad-bg);border-radius:var(--radius-lg);padding:var(--space-6)}
.receipt-failed h2{color:var(--bad-ink)}
.receipt .woocommerce-order-details,.receipt .woocommerce-customer-details{margin-top:var(--space-6)}
.receipt .woocommerce-order-details__title,.receipt .woocommerce-column__title{font-size:var(--text-lg);margin-bottom:var(--space-3)}
.receipt table.woocommerce-table--order-details{width:100%;border-collapse:collapse;font-size:var(--text-sm)}
.receipt table.woocommerce-table--order-details th,.receipt table.woocommerce-table--order-details td{padding:10px 0;border-bottom:1px solid var(--cream-200);text-align:left}
.receipt table.woocommerce-table--order-details td:last-child,.receipt table.woocommerce-table--order-details th:last-child{text-align:right;font-variant-numeric:tabular-nums}
.receipt table.woocommerce-table--order-details tfoot tr:last-child td{font-family:var(--font-display);font-size:var(--text-md);color:var(--orange-600)}
.receipt address{font-style:normal;color:var(--ink-2)}
.receipt .woocommerce-order-overview{display:none}

.pcard-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.pcard-foot{flex-wrap:wrap}
@media (max-width:1100px){.pcard-foot{flex-direction:column;align-items:stretch;gap:8px}.pcard-actions{justify-content:stretch}.pcard-actions .btn{flex:1;justify-content:center}}

/* ---------- Toast ---------- */
.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);background:var(--green-900);color:var(--white);padding:12px 18px;border-radius:var(--radius-pill);font-weight:800;font-size:var(--text-sm);box-shadow:var(--shadow-lift);z-index:200;opacity:0;transition:opacity var(--dur-base) var(--ease-out),transform var(--dur-base) var(--ease-out);display:flex;gap:.6em;align-items:center;max-width:calc(100% - 32px)}
.toast.show{opacity:1;transform:translate(-50%,0)}
.toast a{color:var(--green-400)}

/* ---------- Blog ---------- */
.post-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-4);list-style:none;padding:0;margin:0}
.post-card{background:var(--white);border:1px solid var(--cream-200);border-radius:var(--radius-lg);overflow:clip;display:flex;flex-direction:column}
.post-card img{aspect-ratio:16/10;object-fit:cover;width:100%}
.post-card .body{padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-2)}
.post-card h2{font-size:var(--text-lg);margin:0}
.post-card time{font-size:.8rem;color:var(--muted)}
.wp-block-image img{border-radius:var(--radius-md)}

/* ---------- 404 ---------- */
.err{padding:var(--space-9) 0;text-align:center}
.err h1{font-size:var(--text-2xl)}

/* --- Texte éditorial SEO (accueil, boutique) --- */
.seo-text{padding-top:var(--space-7)}
.seo-text .prose h2{font-size:clamp(1.5rem,3vw,2rem);margin-top:var(--space-6)}
.seo-text .prose h2:first-child{margin-top:0}
.seo-text .prose p{color:var(--ink-2)}
.seo-text .prose a{color:var(--green-700);text-decoration:underline;text-underline-offset:2px}
.seo-text .prose a:hover{color:var(--orange-600)}

/* --- La carte : chiffres réels puis bandes alternées texte / photo --------------
 * Hallmark · macrostructure: Split Studio (bandes alternées) · genre: playful
 * theme: studied-DNA Steakn'Smash · enrichment: photos produit du thème + tomate/frites
 * Écart assumé à design.md (« pages catalogue : aucune décoration hors photo produit ») :
 * à la demande du client, deux découpes de tomate et de frites accompagnent les photos.
 * Hallmark · pre-emit critique: P5 H5 E5 S5 R4 V5 */
.carte-editorial{background:var(--cream-100);border-block:1px solid var(--cream-200)}
.carte-figures{list-style:none;margin:0 0 var(--space-6);padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}
.carte-figures li{display:grid;gap:2px;padding:var(--space-4) var(--space-5);background:var(--cream-50);border:1px solid var(--cream-200);border-radius:var(--radius-md)}
.carte-figures strong{font-family:var(--font-display);font-weight:400;font-size:clamp(1.6rem,3vw,2.2rem);line-height:1;color:var(--green-800);font-variant-numeric:tabular-nums}
.carte-figures span{font-size:var(--text-sm);color:var(--ink-2)}
.carte-lead{max-width:66ch;margin:0 0 var(--space-6);font-size:var(--text-md);color:var(--ink-2)}
.carte-lead p{margin:0}
.carte-lead strong{color:var(--green-900)}
.carte-blocks{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-5)}
.kb{position:relative;overflow:clip;isolation:isolate;display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-lg);border:1px solid var(--cream-200);background:var(--cream-50)}
.kb-copy{min-width:0}
.kb-copy h2{margin:0 0 var(--space-3);font-size:clamp(1.5rem,3.4vw,2.1rem)}
.kb-copy p{margin:0 0 var(--space-3);color:var(--ink-2);max-width:60ch}
.kb-copy p:last-child{margin-bottom:0}
.kb-copy a{color:var(--green-700);font-weight:800;text-decoration:underline;text-underline-offset:3px}
.kb-copy a:hover{color:var(--orange-600)}
.kb-cta{margin-top:var(--space-4)!important}
.kb-cta .btn{white-space:nowrap}
.kb-visual{position:relative;margin:0;display:grid;place-items:center;min-width:0}
.kb-visual img{width:min(100%,360px);height:auto;filter:drop-shadow(0 18px 24px rgba(11,58,18,.22))}
.kb-visual .kb-deco{position:absolute;width:88px;height:auto;filter:drop-shadow(0 8px 10px rgba(11,58,18,.2));z-index:1}
.kb .kb-deco{left:-14px;bottom:-10px;transform:rotate(-14deg)}
.kb--flip .kb-deco{right:-10px;left:auto;top:-8px;bottom:auto;transform:rotate(12deg)}
/* Les surfaces : crème, vert, orange pâle, crème 2. */
.kb--green{background:var(--green-700);border-color:var(--green-700);color:var(--white)}
.kb--green::before{content:"";position:absolute;inset:-40% -10% -40% 55%;z-index:-1;background:repeating-conic-gradient(from 0deg at 85% 50%,var(--green-600) 0deg 9deg,var(--green-700) 9deg 18deg);-webkit-mask-image:radial-gradient(ellipse at 85% 50%,#000 18%,transparent 62%);mask-image:radial-gradient(ellipse at 85% 50%,#000 18%,transparent 62%)}
.kb--green .kb-copy h2{color:var(--white)}
.kb--green .kb-copy p{color:rgba(255,255,255,.9)}
.kb--green .kb-copy a{color:var(--white)}
.kb--green .kb-copy a:hover{color:var(--orange-400)}
.kb--orange{background:var(--orange-50);border-color:var(--orange-100)}
.kb--orange .kb-copy h2{color:var(--orange-600)}
.kb--cream-2{background:var(--cream-100)}
@media (max-width:699px){.kb-visual .kb-deco{display:none}.kb-visual img{width:min(100%,260px)}}
@media (min-width:700px){
	.carte-figures{grid-template-columns:repeat(4,minmax(0,1fr))}
	.kb{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:center;gap:var(--space-6);padding:var(--space-6) var(--space-7)}
	.kb--flip .kb-copy{order:2}
	.kb--flip .kb-visual{order:1}
}
@media (min-width:1000px){.carte-blocks{gap:var(--space-6)}.kb{padding:var(--space-7) var(--space-8)}.kb-visual img{width:min(100%,400px)}}
@media (prefers-reduced-motion:reduce){.kb-visual img{filter:none}}

/* --- Fiche produit : les chapitres montrent ce qu'ils disent -------------------
 * Hallmark · macrostructure: Bento (4 bandes, 2 demies + 2 pleines) · genre: playful
 * theme: studied-DNA · enrichment: photo du produit, cartes des produits cités, sceau halal
 * Hallmark · pre-emit critique: P5 H5 E5 S5 R4 V4 */
.product-story{background:var(--cream-100);border-block:1px solid var(--cream-200)}
.story{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-5)}
.sb{position:relative;overflow:clip;isolation:isolate;display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-4);padding:var(--space-5);background:var(--cream-50);border:1px solid var(--cream-200);border-radius:var(--radius-lg);min-width:0}
.sb-copy{min-width:0}
.sb-copy h2{margin:0 0 var(--space-3);font-size:clamp(1.4rem,3vw,1.9rem)}
.sb-copy p{margin:0 0 var(--space-3);color:var(--ink-2);max-width:60ch}
.sb-copy p:last-child{margin-bottom:0}
.sb-copy a{color:var(--green-700);font-weight:800;text-decoration:underline;text-underline-offset:3px}
.sb-copy a:hover{color:var(--orange-600)}
/* Ce qu'il y a dedans : pastilles issues de la description courte. */
.sb-chips{list-style:none;margin:0 0 var(--space-4);padding:0;display:flex;flex-wrap:wrap;gap:8px}
.sb-chips li{padding:6px 12px;border-radius:var(--radius-pill);background:var(--green-50);border:1px solid var(--green-100);color:var(--green-900);font-weight:800;font-size:var(--text-sm)}
.sb-visual{position:relative;margin:0;display:grid;place-items:center;min-width:0}
.sb-visual img:not(.sb-seal){width:min(100%,300px);height:auto;filter:drop-shadow(0 18px 24px rgba(11,58,18,.22))}
.sb-seal{position:absolute;right:0;top:0;width:56px;height:56px}
/* Le jumeau en menu : bande verte, carte du produit à droite. */
.sb--menu{background:var(--green-700);border-color:var(--green-700);color:var(--white)}
.sb--menu::before{content:"";position:absolute;inset:-40% -10% -40% 55%;z-index:-1;background:repeating-conic-gradient(from 0deg at 85% 50%,var(--green-600) 0deg 9deg,var(--green-700) 9deg 18deg);-webkit-mask-image:radial-gradient(ellipse at 85% 50%,#000 18%,transparent 62%);mask-image:radial-gradient(ellipse at 85% 50%,#000 18%,transparent 62%)}
.sb--menu .sb-copy h2{color:var(--white)}
.sb--menu .sb-copy p{color:rgba(255,255,255,.9)}
.sb--menu .sb-copy a{color:var(--white)}
.sb--menu .sb-copy a:hover{color:var(--orange-400)}
.sb-aside{display:grid;gap:var(--space-2);align-content:center;justify-items:center;min-width:0}
.sb-aside img{width:min(100%,320px);height:auto;filter:drop-shadow(0 18px 24px rgba(0,0,0,.3))}
.sb-aside-label{margin:0;font-size:var(--text-sm);font-weight:800;color:rgba(255,255,255,.8);letter-spacing:.04em;text-transform:uppercase}
/* Cartes compactes des produits cités. */
.mini-card{display:grid;grid-template-columns:72px minmax(0,1fr);grid-template-rows:auto auto;column-gap:var(--space-3);align-items:center;padding:10px 12px;background:var(--white);border:1px solid var(--cream-300);border-radius:var(--radius-md);color:var(--green-900);text-decoration:none;min-width:0;transition:transform var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}
.mini-card img{grid-row:1/3;width:72px;height:72px;object-fit:contain}
.mini-name{font-weight:800;line-height:1.2}
.mini-price{font-size:var(--text-sm);color:var(--orange-600);font-weight:800;font-variant-numeric:tabular-nums}
@media (hover:hover){.mini-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-card)}}
.mini-card:focus-visible{outline:3px solid var(--orange-500);outline-offset:2px}
.sb--menu .mini-card{width:min(100%,320px)}
.sb--pair{background:var(--cream-100)}
.sb-cards{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-3);align-content:start}
/* Commander : bande orange pâle, prix, trois modes, bouton. */
.sb--order{background:var(--orange-50);border-color:var(--orange-100)}
.sb--order .sb-copy h2{color:var(--orange-600)}
.sb-order{display:grid;gap:var(--space-3);align-content:center;min-width:0}
.sb-price{margin:0;font-family:var(--font-display);font-size:clamp(2rem,5vw,3rem);line-height:1;color:var(--orange-600);font-variant-numeric:tabular-nums}
.sb-facts{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.sb-facts li{display:flex;gap:.6em;align-items:flex-start;font-size:var(--text-sm);color:var(--ink-2)}
.sb-facts .ico{flex:none;color:var(--green-700);margin-top:.15em}
.sb-facts strong{color:var(--green-900)}
.sb-order .btn{justify-self:start;white-space:normal;text-align:left}
.sb-closed{margin:0;display:flex;gap:.5em;align-items:center;font-size:var(--text-sm);color:var(--ink-2)}
@media (min-width:720px){
	.story{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-6)}
	.sb{padding:var(--space-6)}
	.sb--recipe{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);align-items:center}
	.sb--menu{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);align-items:center}
	.sb--pair{grid-column:1/-1;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:center}
	.sb-cards{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
	.sb--order{grid-column:1/-1;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:center}
}
@media (min-width:1100px){.sb{padding:var(--space-7)}.sb-visual img:not(.sb-seal){width:min(100%,340px)}}
@media (prefers-reduced-motion:reduce){.mini-card{transition:none}.mini-card:hover{transform:none}}

/* --- Chapitres éditoriaux (accueil) -----------------------------------------
 * Hallmark · macrostructure: Long Document (chapitres à surfaces) · genre: playful
 * theme: studied-DNA Steakn'Smash · enrichment: aucun (sceau halal du thème)
 * écart assumé : le séparateur est une carte, pas un blanc ; le rythme vient de
 * la variation de taille (1 large + 2 demies), pas de la colonne unique.
 * Hallmark · pre-emit critique: P5 H5 E5 S5 R5 V4 · slop test 58/58
 * -------------------------------------------------------------------------- */
.editorial{background:var(--cream-100);border-block:1px solid var(--cream-200)}
.editorial>.container{max-width:1120px}
.editorial .ed-intro{max-width:66ch;margin-bottom:var(--space-6);color:var(--ink-2)}

.ed-stack{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-5)}
.ed-ch{position:relative;overflow:clip;background:var(--cream-50);border:1px solid var(--cream-200);border-radius:var(--radius-lg);padding:var(--space-5)}
.ed-ch--lead{border-color:var(--cream-300);box-shadow:var(--shadow-card)}

.ed-head{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-4)}
.ed-head h2{margin:0;font-size:clamp(1.45rem,4.6vw,2.05rem)}
.ed-ch--lead .ed-head h2{font-size:clamp(1.7rem,5.6vw,2.7rem)}
.ed-mark{display:inline-grid;place-items:center;width:48px;height:48px;border-radius:var(--radius-pill);background:var(--green-100);color:var(--green-700);box-shadow:0 0 0 1px var(--cream-300)}
.ed-ch--accent .ed-mark{background:var(--orange-100);color:var(--orange-600)}
.ed-mark .ico{width:24px;height:24px;vertical-align:0;stroke-width:2}

.ed-body p{color:var(--ink-2);margin:0 0 var(--space-4);max-width:64ch}
.ed-body p:last-child{margin-bottom:0}
/* L'attaque se distingue par la taille et le contraste ; le gras reste tenu,
 * un paragraphe entier en 800 devient illisible sur un écran étroit. */
.ed-body .ed-lead{color:var(--ink);font-size:var(--text-md);font-weight:700;line-height:1.45;max-width:46ch}
.ed-body a{color:var(--green-700);font-weight:800;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.ed-body a:hover{color:var(--orange-600);text-decoration-thickness:2px}

/* Sceau halal : un seul élément graphique, sur le chapitre qui en parle. */
.ed-seal{position:absolute;right:calc(var(--space-6)*-1);bottom:calc(var(--space-6)*-1);width:150px;height:auto;opacity:.09;mix-blend-mode:multiply;pointer-events:none}

@media (min-width:700px){
	.ed-ch{padding:var(--space-7)}
	.ed-seal{width:190px;right:calc(var(--space-7)*-1);bottom:calc(var(--space-7)*-1)}
}
@media (min-width:960px){
	.ed-stack{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-6)}
	.ed-ch--lead{grid-column:1/-1}
	/* Attaque à gauche, suite à droite : le chapitre d'ouverture respire sur deux colonnes. */
	.ed-ch--lead .ed-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-7);align-items:start}
	.ed-ch--lead .ed-body p{margin:0;max-width:52ch}
	.ed-ch--lead .ed-body .ed-lead{font-size:var(--text-lg);font-weight:800;line-height:1.35}
	/* Le filet remplace le blanc : c'est lui qui sépare l'attaque de la suite. */
	.ed-ch--lead .ed-body p:not(.ed-lead){border-left:1px solid var(--cream-200);padding-left:var(--space-7)}
}

/* --- Page « Avis clients » ------------------------------------------------------
 * Hallmark · genre: playful · macrostructure: Stat-Led (la note d'abord) ·
 * design-system: design.md · designed-as-app
 * Blocs : note (chiffre | intro) · plats cités (texte | tuiles produit comptées) ·
 * ce que nous corrigeons (bande sobre, sans photo) · tous les avis (grille, la
 * première carte en large) · laisser votre avis (bande verte | baguette).
 * Aucun chiffre inventé : la note et le total viennent de la configuration, les
 * comptes « cité dans N avis » sont calculés sur les avis affichés.
 * Hallmark · pre-emit critique: P5 H5 E5 S5 R4 V5 */
.av{display:grid;gap:var(--space-7)}
.av h2{margin:0 0 var(--space-3);font-size:clamp(1.6rem,4.5vw,2.3rem);overflow-wrap:anywhere;min-width:0}
.av p{color:var(--ink-2);max-width:62ch}
.av a:not(.btn){color:var(--green-700);font-weight:800;text-decoration:underline;text-underline-offset:3px}
.av a:not(.btn):hover{color:var(--orange-600)}
.av .stars{color:var(--cream-300)}
.av .stars .star.on{color:var(--orange-500)}
.av .btn{white-space:nowrap}
/* 0 · la note */
.av-score{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-5);align-items:center;background:var(--cream-50);border:1px solid var(--cream-200);border-radius:var(--radius-lg);padding:var(--space-5)}
.av-score-num{display:grid;justify-items:start;gap:var(--space-2)}
.av-num{margin:0;font-family:var(--font-display);font-size:clamp(3.4rem,10vw,5rem);line-height:1;color:var(--green-900);font-variant-numeric:tabular-nums}
.av-num small{font-size:.32em;color:var(--muted);margin-left:.1em}
.av-score .stars .ico{width:1.35em;height:1.35em}
.av-count{margin:0 0 var(--space-2);font-weight:800;color:var(--ink)}
.av-score-copy p{margin:0;font-size:var(--text-md)}
.av-score-copy strong{color:var(--green-900)}
/* 1 · les plats cités */
.av-cited{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-5);align-items:start}
.av-cited-copy p:last-child{margin-bottom:0}
.av-dishes{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}
.av-dish{min-width:0}
.av-dish a{display:grid;gap:var(--space-2);height:100%;background:var(--cream-50);border:1px solid var(--cream-200);border-radius:var(--radius-lg);padding:var(--space-3);text-decoration:none;color:var(--ink);transition:transform var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}
.av-dish a:hover{color:var(--ink);transform:translateY(-2px);box-shadow:var(--shadow-card)}
.av-dish a:focus-visible{outline:3px solid var(--orange-500);outline-offset:3px}
.av-dish-img{display:block;aspect-ratio:1;border-radius:var(--radius-md);background:var(--cream-100);overflow:clip}
.av-dish-img img{width:100%;height:100%;object-fit:contain;padding:6px}
.av-dish-body{display:grid;gap:2px;min-width:0}
.av-dish-body strong{color:var(--green-900);font-size:var(--text-sm);line-height:1.25}
.av-dish-n{display:inline-flex;align-items:center;gap:.3em;font-size:var(--text-sm);color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.av-dish-n .ico{display:none;width:14px;height:14px;color:var(--orange-500)}
@media (min-width:380px){.av-dish-n .ico{display:block}}
.av-dish--lead{grid-column:1/-1}
.av-dish--lead a{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:center;background:var(--green-700);border-color:var(--green-700);color:var(--white)}
.av-dish--lead a:hover{color:var(--white)}
.av-dish--lead .av-dish-img{background:color-mix(in srgb,var(--white) 12%,transparent)}
.av-dish--lead .av-dish-body strong{color:var(--white);font-size:var(--text-md)}
.av-dish--lead .av-dish-n{color:color-mix(in srgb,var(--white) 82%,transparent)}
.av-dish--lead .av-dish-n .ico{color:var(--orange-400)}
/* 3 · tous les avis */
.av-all-head{margin-bottom:var(--space-5)}
.av-all-head p{margin:0}
.av-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-4)}
.av-card{min-width:0}
.av-card article{height:100%;display:flex;flex-direction:column;gap:var(--space-2);background:var(--white);border:1px solid var(--cream-200);border-radius:var(--radius-lg);padding:var(--space-5)}
.av-card-text{margin:0;color:var(--ink);flex:1}
.av-card--lead article{background:var(--cream-100);border-color:var(--cream-100)}
.av-card--lead .av-card-text{font-size:var(--text-md)}
.av-card footer{display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-sm)}
.av-card footer>span:last-child{display:grid;line-height:1.3}
.av-card footer strong{color:var(--green-800)}
.av-card-src{color:var(--muted)}
.av-avatar{flex:0 0 auto;display:grid;place-items:center;width:38px;height:38px;border-radius:var(--radius-pill);background:var(--green-700);color:var(--white);font-family:var(--font-display);font-size:var(--text-base);letter-spacing:.02em}
/* 4 · laisser votre avis */
.av-cta{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-5);align-items:center;background:var(--green-700);color:var(--white);border-radius:var(--radius-lg);padding:var(--space-6) var(--space-5);position:relative;overflow:clip;isolation:isolate}
.av-cta::before{content:"";position:absolute;inset:-40% -10% -40% 55%;z-index:-1;background:repeating-conic-gradient(from 0deg at 85% 50%,var(--green-600) 0deg 9deg,var(--green-700) 9deg 18deg);-webkit-mask-image:radial-gradient(ellipse at 85% 50%,#000 18%,transparent 62%);mask-image:radial-gradient(ellipse at 85% 50%,#000 18%,transparent 62%)}
.av-cta h2,.av-cta p{color:var(--white)}
.av-cta p{color:rgba(255,255,255,.9)}
.av-cta a:not(.btn){color:var(--white)}
.av-cta-btns{display:flex;flex-wrap:wrap;gap:var(--space-3);margin:var(--space-4) 0 0}
.av-cta-visual{margin:0;width:100%;max-width:440px;justify-self:center}
.av-cta-visual img{width:100%;height:auto;border-radius:var(--radius-md)}
@media (min-width:640px){
	.av-dishes{grid-template-columns:repeat(4,minmax(0,1fr))}
	.av-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
	.av-card--lead{grid-column:1/-1}
}
@media (min-width:900px){
	.av{gap:var(--space-8)}
	.av-score{grid-template-columns:auto minmax(0,1fr);gap:var(--space-7);padding:var(--space-6) var(--space-7)}
	.av-score-num{padding-right:var(--space-7);border-right:1px solid var(--cream-200)}
	.av-cited{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:var(--space-7)}
	.av-dish--lead a{grid-template-columns:minmax(0,.5fr) minmax(0,1fr)}
	.av-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
	.av-card--lead{grid-column:span 2}
	.av-cta{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:var(--space-7);padding:var(--space-7)}
}
@media (prefers-reduced-motion:reduce){.av-dish a{transition:none}.av-dish a:hover{transform:none}}

/* --- Options des menus : fiche produit et volet ---------------------------------
 * Hallmark · component: option picker · genre: playful · theme: design.md
 * states: default · hover · focus · active · disabled (plafond atteint) · loading · error · success
 * Le vert porte le choix, l'orange reste à l'action principale et au total (design.md).
 * Même formulaire dans la fiche et dans le volet ; seule la mise en page change :
 * cartes sur la fiche, liste à filets dans le volet (plus dense).
 * Hallmark · pre-emit critique: P5 H5 E5 S5 R5 V4 */
.opts{display:grid;gap:var(--space-4);margin:var(--space-5) 0 var(--space-3)}
.opts-body{display:grid;gap:var(--space-3);min-width:0}
.opts-group{margin:0;padding:var(--space-4);border:1.5px solid var(--cream-200);border-radius:var(--radius-lg);background:var(--white);min-width:0;transition:border-color var(--dur-fast) var(--ease-out)}
.opts-legend{float:left;display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:2px var(--space-3);width:100%;padding:0;margin:0 0 var(--space-3)}
/* Légende flottante : sinon le navigateur la pose dans la bordure du fieldset et le rembourrage passe dessous. */
.opts-legend+*{clear:both}
.opts-title{font-weight:800;font-size:var(--text-base);color:var(--green-900)}
.opts-rule{font-size:.8125rem;color:var(--muted)}
.opts-rule--req{color:var(--orange-600);font-weight:800}
.opts-group.is-invalid{border-color:var(--bad);background:var(--bad-field-bg)}
.opts-group.is-invalid .opts-rule{color:var(--bad-ink)}
.opts-err{margin:var(--space-2) 0 0;font-size:var(--text-sm);font-weight:800;color:var(--bad-ink)}
/* Pastilles (boisson, sauces, crudités, viandes) */
.opt-chips{display:flex;flex-wrap:wrap;gap:var(--space-2)}
.opt-chip{position:relative;min-width:0}
.opt-chip input{position:absolute;opacity:0;width:1px;height:1px}
.opt-chip label{display:inline-flex;align-items:center;gap:.35em;min-height:44px;padding:8px 14px;border:1.5px solid var(--cream-300);border-radius:var(--radius-pill);background:var(--white);color:var(--green-900);font-weight:800;font-size:var(--text-sm);line-height:1.2;cursor:pointer;user-select:none;transition:border-color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}
.opt-chip label .ico{width:0;height:1em;margin-right:-.35em;transition:width var(--dur-fast) var(--ease-out),margin var(--dur-fast) var(--ease-out)}
.opt-chip label small{font-weight:400;color:var(--muted)}
@media (hover:hover){.opt-chip label:hover{border-color:var(--green-500);background:var(--green-50)}}
.opt-chip label:active{transform:translateY(1px)}
.opt-chip input:checked+label{border-color:var(--green-700);background:var(--green-700);color:var(--white)}
.opt-chip input:checked+label small{color:color-mix(in srgb,var(--white) 80%,transparent)}
.opt-chip input:checked+label .ico{width:1em;margin-right:0}
.opt-chip input:focus-visible+label{outline:3px solid var(--orange-500);outline-offset:2px}
.opt-chip input:disabled+label{opacity:.45;cursor:not-allowed;transform:none;background:var(--cream-100)}
/* Lignes (frites : le prix compte, il s'aligne à droite) */
.opt-rows{display:grid;gap:6px}
.opt-row{position:relative}
.opt-row input{position:absolute;opacity:0;width:1px;height:1px}
.opt-row label{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--space-3);min-height:48px;padding:8px 14px;border:1.5px solid var(--cream-200);border-radius:var(--radius-md);background:var(--white);cursor:pointer;transition:border-color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out)}
.opt-dot{width:20px;height:20px;border-radius:50%;border:2px solid var(--cream-300);background:var(--white);transition:border var(--dur-fast) var(--ease-out)}
.opt-row-name{font-weight:800;font-size:var(--text-sm);color:var(--green-900);line-height:1.25}
.opt-row-price{font-size:var(--text-sm);font-weight:800;color:var(--ink-2);font-variant-numeric:tabular-nums;white-space:nowrap}
@media (hover:hover){.opt-row label:hover{border-color:var(--green-500)}}
.opt-row input:checked+label{border-color:var(--green-700);background:var(--green-50)}
.opt-row input:checked+label .opt-dot{border:6px solid var(--green-700)}
.opt-row input:focus-visible+label{outline:3px solid var(--orange-500);outline-offset:2px}
/* Le burger à 5 € : une vraie proposition, avec la photo du burger */
.opts-group--extra{padding:0;border:0;background:transparent}
.opt-upsell-input{position:absolute;opacity:0;width:1px;height:1px}
.opt-upsell{display:grid;grid-template-columns:56px minmax(0,1fr) auto 28px;align-items:center;gap:var(--space-3);padding:10px 14px 10px 10px;border:2px dashed var(--orange-400);border-radius:var(--radius-lg);background:var(--orange-50);cursor:pointer;transition:border-color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out)}
.opt-upsell-img{display:block;width:56px;height:56px;border-radius:var(--radius-sm);background:var(--white);overflow:clip}
.opt-upsell-img img{width:100%;height:100%;object-fit:contain;padding:3px}
.opt-upsell-txt{display:grid;gap:1px;min-width:0}
.opt-upsell-txt strong{color:var(--green-900);font-size:var(--text-sm);line-height:1.25}
.opt-upsell-txt span{font-size:.8125rem;color:var(--ink-2);line-height:1.3}
.opt-upsell-price{font-weight:800;color:var(--orange-600);font-variant-numeric:tabular-nums;white-space:nowrap}
.opt-upsell-box{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;border:2px solid var(--orange-400);background:var(--white);color:transparent}
.opt-upsell-box .ico{width:18px;height:18px}
@media (hover:hover){.opt-upsell:hover{border-style:solid}}
.opt-upsell-input:checked+.opt-upsell{border-style:solid;border-color:var(--green-700);background:var(--green-50)}
.opt-upsell-input:checked+.opt-upsell .opt-upsell-box{background:var(--green-700);border-color:var(--green-700);color:var(--white)}
.opt-upsell-input:focus-visible+.opt-upsell{outline:3px solid var(--orange-500);outline-offset:2px}
/* Commentaire */
.opt-text{width:100%;min-height:46px;padding:11px 14px;border:1.5px solid var(--cream-300);border-radius:var(--radius-sm);background:var(--white);color:var(--ink);font:inherit;font-size:var(--text-base)}
.opt-text::placeholder{color:var(--muted);opacity:1}
@media (hover:hover){.opt-text:hover{border-color:var(--green-500)}}
.opt-text:focus-visible{outline:3px solid var(--orange-500);outline-offset:2px;border-color:var(--green-700)}
/* Pied : quantité + actions ; sur mobile il reste sous le pouce tant que le formulaire est à l'écran */
.opts-foot{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-3)}
.opts-note{flex:1 1 100%;margin:0;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--bad-bg);color:var(--bad-ink);font-size:var(--text-sm);font-weight:800}
.opts-total{font-variant-numeric:tabular-nums}
.opts-go{justify-content:center}
.opts--page .opts-foot{position:sticky;bottom:0;z-index:5;margin:0 calc(-1 * var(--space-3));padding:var(--space-3);background:color-mix(in srgb,var(--cream-50) 94%,transparent);backdrop-filter:blur(6px);border-top:1px solid var(--cream-200)}
.opts--page .opts-foot .add-to-cart{flex:1 1 auto;justify-content:center}
.opts--page .opts-go{flex:1 1 100%}
@media (min-width:640px){
	.opts--page .opts-go{flex:1 1 auto}
}
@media (min-width:900px){
	.opts--page .opts-foot{position:static;margin:0;padding:0;background:none;backdrop-filter:none;border:0}
}

/* Le volet : feuille du bas sur téléphone, fenêtre centrée au-delà */
html.has-sheet,html.has-sheet body{overflow:hidden}
/* Le fond du volet : un élément à part, l'ancien ::backdrop dépendait de <dialog>. */
.opt-backdrop{position:fixed;inset:0;z-index:399;background:color-mix(in srgb,var(--green-950) 58%,transparent);background:rgba(6,42,12,.58)}
.opt-backdrop[hidden],.opt-sheet[hidden]{display:none}
.opt-sheet{position:fixed;z-index:400;display:flex;flex-direction:column;inset:auto 0 0 0;margin:0;width:100%;max-width:100%;max-height:92vh;max-height:92dvh;padding:0;border:0;border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:var(--cream-50);color:var(--ink);box-shadow:var(--shadow-lift);overflow:hidden}
.opt-sheet:not([hidden]){animation:sheet-up var(--dur-base) var(--ease-out)}

@keyframes sheet-up{from{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}
.opts--sheet{display:flex;flex-direction:column;flex:1;min-height:0;margin:0;gap:0}
.opts-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-4) var(--space-3);border-bottom:1px solid var(--cream-200);background:var(--white)}
.opts-head-img{display:block;width:56px;height:56px;border-radius:var(--radius-sm);background:var(--cream-100);overflow:clip}
.opts-head-img img{width:100%;height:100%;object-fit:contain;padding:3px}
.opts-head-txt{min-width:0}
.opts-head h2{margin:0;font-size:1.35rem;line-height:1.1;color:var(--green-900)}
.opts-head p{margin:2px 0 0;font-size:.8125rem;line-height:1.35;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.opts-close{display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:50%;background:var(--cream-100);color:var(--green-900);align-self:start}
.opts-close:hover{background:var(--cream-200)}
.opts-close:active{transform:translateY(1px)}
.opts--sheet .opts-body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;gap:0;padding:0 var(--space-4)}
.opts--sheet .opts-group{padding:var(--space-4) 0;border:0;border-bottom:1px solid var(--cream-200);border-radius:0;background:transparent}
.opts--sheet .opts-group:last-child{border-bottom:0}
.opts--sheet .opts-group.is-invalid{background:transparent}
.opts--sheet .opts-group.is-invalid .opts-legend{color:var(--bad-ink)}
.opts--sheet .opts-group--extra{padding:var(--space-4) 0}
.opts--sheet .opts-foot{padding:var(--space-3) var(--space-4) calc(var(--space-3) + env(safe-area-inset-bottom));border-top:1px solid var(--cream-200);background:var(--white)}
.opts--sheet .opts-go{flex:1 1 170px;font-size:var(--text-base);padding-inline:1.1em}
.opts-qty button{width:40px;height:44px}
.opts-qty input{width:40px}
@media (min-width:640px){
	/* Centré sans dépendre de height:fit-content : translate, compris partout. */
	.opt-sheet{inset:50% auto auto 50%;transform:translate(-50%,-50%);margin:0;width:min(560px,100% - var(--space-7));max-height:min(88vh,860px);max-height:min(88dvh,860px);border-radius:var(--radius-lg)}
	.opt-sheet:not([hidden]){animation-name:sheet-in}
	@keyframes sheet-in{from{transform:translate(-50%,-50%) scale(.97);opacity:0}to{transform:translate(-50%,-50%);opacity:1}}
	.opts-head{padding:var(--space-5) var(--space-5) var(--space-4)}
	.opts--sheet .opts-body{padding:0 var(--space-5)}
	.opts--sheet .opts-foot{padding:var(--space-4) var(--space-5)}
}
@media (max-width:380px){.opts--sheet .opts-go .ico{display:none}}
@media (prefers-reduced-motion:reduce){
	.opt-sheet:not([hidden]){animation:fade-in 150ms linear}
	@keyframes fade-in{from{opacity:0}to{opacity:1}}
	.opt-chip label,.opt-row label,.opt-upsell,.opts-group{transition:none}
}

/* Les choix, relus dans le panier et le récapitulatif */
.ledger-name dl.variation,.woocommerce-checkout-review-order-table dl.variation{display:grid;grid-template-columns:auto minmax(0,1fr);gap:0 .4em;margin:4px 0 0;font-size:.8125rem;line-height:1.4;color:var(--ink-2)}
dl.variation dt{font-weight:800;color:var(--green-900)}
dl.variation dd{margin:0;min-width:0}
dl.variation dd p{margin:0}

/* --- Panier et commande : lecture sur téléphone (14/09/2026) -------------------
 * Hallmark · genre: playful · macrostructure: Workbench · design-system: design.md
 * Le récapitulatif montre une vraie ligne produit (vignette, nom, choix, prix) ;
 * sur mobile la ligne du panier s'ouvre sur toute la largeur pour les choix du
 * menu, la quantité se règle au pouce (− / +), l'action principale prend la largeur.
 * Hallmark · pre-emit critique: P5 H5 E5 S4 R5 V4 */

/* Récapitulatif */
.sns-review td.product-name{text-align:left;white-space:normal;font-weight:400;padding:12px 0}
.sns-review td.product-total{vertical-align:top;padding:12px 0 12px var(--space-3)}
.rv-item{display:grid;grid-template-columns:48px minmax(0,1fr);gap:10px;align-items:start}
.rv-thumb{display:block;width:48px;height:48px;border-radius:var(--radius-sm);background:var(--cream-50);overflow:clip}
.rv-thumb img{width:100%;height:100%;object-fit:contain;padding:2px}
.rv-txt{min-width:0}
.rv-name{display:block;font-weight:800;color:var(--green-900);line-height:1.3}
.rv-name .product-quantity{font-weight:800;color:var(--muted);white-space:nowrap}
.sns-review dl.variation{margin-top:4px}
.sns-review tfoot th{font-weight:400}
.sns-review tr.cart_item:last-of-type td{border-bottom:2px solid var(--cream-300)}
dl.variation dt{white-space:nowrap}

/* Titres de la commande : la règle générale des h3 ne doit pas pousser les blocs */
.woocommerce-checkout .sns-mode h3,.woocommerce-checkout .pickup-box h3,.woocommerce-checkout .loyalty-box h3{margin:0 0 var(--space-2)}
.sns-mode h3,.pickup-box h3,.loyalty-box h3{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;text-wrap:pretty}

/* Action principale du panier */
.woocommerce-cart .summary-rail a.checkout-button{display:flex;width:100%;justify-content:center;margin:0}

@media (max-width:700px){
	/* Ligne du panier : nom + prix unitaire à côté de la vignette, choix sur toute la largeur, quantité et total en bas */
	.ledger-row{grid-template-columns:64px minmax(0,1fr) auto;grid-template-areas:"thumb title remove" "thumb unit remove" "meta meta meta" "qty qty line";gap:2px var(--space-3);align-items:center}
	.ledger-thumb img{width:64px;height:64px}
	.ledger-name{display:contents}
	.ledger-name h3{grid-area:title;align-self:end;margin:0;font-size:var(--text-base)}
	.ledger-unit{grid-area:unit;align-self:start}
	.ledger-name dl.variation{grid-area:meta;margin:var(--space-2) 0 var(--space-1);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--cream-100)}
	.ledger-qty{grid-area:qty;align-self:center;margin-top:var(--space-2)}
	.ledger-line{grid-area:line;align-self:center;margin-top:var(--space-2)}
	.ledger-remove{grid-area:remove;align-self:start;justify-self:end}

	/* Commande */
	.woocommerce-checkout h3{font-size:1.3rem}
	.sns-mode,.pickup-box,.loyalty-box{padding:var(--space-4);border-radius:var(--radius-md)}
	.sns-mode{margin-bottom:var(--space-5)}
	.woocommerce-checkout form.checkout #order_review{padding:var(--space-3) var(--space-4)}
	.woocommerce form .form-row{margin-bottom:var(--space-3)}
	.steps-bar{margin-bottom:var(--space-5)}
	.steps-bar li{flex-direction:row;justify-content:center;padding:8px 6px;gap:6px;border-radius:var(--radius-pill)}
	.steps-bar li:not(.current) .lbl{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
	.steps-bar .dot{width:26px;height:26px}
	.steps-bar li.current{flex:1}
	.steps-bar{display:flex}
	.steps-bar li:not(.current){flex:none;width:44px}
}
@media (max-width:400px){
	.ledger-row{grid-template-columns:56px minmax(0,1fr) auto}
	.ledger-thumb img{width:56px;height:56px}
}

/* Quantité du panier : − / + ajoutés par le script, l'input reste la source */
.qty-steps{display:inline-flex;align-items:center;border:1.5px solid var(--cream-300);border-radius:var(--radius-pill);background:var(--white);overflow:clip}
.qty-steps button{width:40px;height:42px;border:0;background:transparent;color:var(--green-800);font-size:1.25rem;line-height:1}
@media (hover:hover){.qty-steps button:hover{background:var(--cream-100)}}
.qty-steps button:active{background:var(--cream-200)}
.qty-steps button:focus-visible{outline:3px solid var(--orange-500);outline-offset:-3px}
.qty-steps button:disabled{opacity:.4;cursor:not-allowed}
.qty-steps .quantity .qty.ledger-qty-input{width:44px;height:42px;padding:0;border:0;border-radius:0;background:transparent}
/* Dans le récapitulatif la colonne est étroite : chaque choix sur sa ligne, « Boisson : Coca ». */
.sns-review dl.variation{display:block}
.sns-review dl.variation dt{display:inline;white-space:normal}
.sns-review dl.variation dd{display:inline}
.sns-review dl.variation dd p{display:inline}
.sns-review dl.variation dd::after{content:"\A";white-space:pre}

/* --- Options illustrées : boissons en tuiles, frites en lignes avec image (14/09/2026) ---
 * Hallmark · component: option tiles · genre: playful · theme: design.md
 * states: default · hover · focus · active · disabled · checked (vert + coche) · error (groupe) · loading (bouton)
 * Mobile d'abord : 3 tuiles par rangée au pouce, 4 dès 480 px. Les images sont des
 * illustrations du thème, remplaçables par une photo du même nom (.webp). */
.opt-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-2)}
.opt-tile{position:relative;min-width:0}
.opt-tile input{position:absolute;opacity:0;width:1px;height:1px}
.opt-tile label{position:relative;display:grid;justify-items:center;align-content:start;gap:2px;height:100%;padding:var(--space-2) var(--space-1) 10px;border:1.5px solid var(--cream-200);border-radius:var(--radius-md);background:var(--white);text-align:center;cursor:pointer;user-select:none;-webkit-tap-highlight-color:transparent;transition:border-color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}
.opt-tile-img{display:block;width:64px;height:64px}
.opt-tile-img img{width:100%;height:100%;transition:transform var(--dur-base) var(--ease-out)}
.opt-tile-name{font-weight:800;font-size:.8125rem;line-height:1.2;color:var(--green-900);overflow-wrap:anywhere}
.opt-tile small{font-size:.75rem;color:var(--muted)}
.opt-check{position:absolute;top:6px;right:6px;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--green-700);color:var(--white);transform:scale(0);transition:transform var(--dur-fast) var(--ease-out)}
.opt-check .ico{width:13px;height:13px;stroke-width:3}
@media (hover:hover){.opt-tile label:hover{border-color:var(--green-500);box-shadow:var(--shadow-card)}}
.opt-tile label:active{transform:scale(.97)}
.opt-tile input:checked+label{border-color:var(--green-700);background:var(--green-50);box-shadow:inset 0 0 0 1px var(--green-700)}
.opt-tile input:checked+label .opt-check{transform:scale(1)}
.opt-tile input:checked+label .opt-tile-img img{transform:translateY(-3px) rotate(-4deg)}
.opt-tile input:focus-visible+label{outline:3px solid var(--orange-500);outline-offset:2px}
.opt-tile input:disabled+label{opacity:.45;cursor:not-allowed}
.opts-group.is-invalid .opt-tile label{border-color:color-mix(in srgb,var(--bad) 45%,var(--cream-200))}
@media (min-width:480px){.opt-tiles{grid-template-columns:repeat(4,minmax(0,1fr))}.opt-tile-img{width:72px;height:72px}}
/* Frites : l'image remplace la pastille radio, le prix reste à droite */
.opt-row--img label{grid-template-columns:60px minmax(0,1fr) auto;padding:6px 14px 6px 6px;min-height:72px}
.opt-row-img{position:relative;display:block;width:60px;height:60px;border-radius:var(--radius-sm);background:var(--cream-50)}
.opt-row-img img{width:100%;height:100%;transition:transform var(--dur-base) var(--ease-out)}
.opt-row-img .opt-check{top:-4px;right:-4px}
.opt-row--img input:checked+label .opt-check{transform:scale(1)}
.opt-row--img input:checked+label .opt-row-img img{transform:scale(1.06)}
.opt-row--img input:checked+label .opt-row-price{color:var(--green-800)}
.opt-row label:active{transform:scale(.99)}
@media (prefers-reduced-motion:reduce){.opt-tile label,.opt-tile-img img,.opt-row-img img,.opt-check{transition:none}.opt-tile input:checked+label .opt-tile-img img{transform:none}}
/* Récapitulatif du produit, comme sur l'ancien site : prix, suppléments, total */
.opts-sum{display:grid;gap:2px;margin:0;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--cream-100);font-size:var(--text-sm);font-variant-numeric:tabular-nums}
.opts-sum>div{display:flex;justify-content:space-between;gap:var(--space-3)}
.opts-sum dt{color:var(--ink-2)}
.opts-sum dd{margin:0;font-weight:800;color:var(--ink)}
.opts-sum-total{margin-top:2px;padding-top:4px;border-top:1px dashed var(--cream-300)}
.opts-sum-total dt,.opts-sum-total dd{font-weight:800;color:var(--green-900)}
/* Dans le volet, une seule ligne au-dessus du bouton (le total est déjà sur le bouton). */
.opts--sheet .opts-sum{display:flex;flex-wrap:wrap;justify-content:space-between;gap:2px var(--space-4);margin:0;padding:var(--space-2) var(--space-4);border-radius:0;border-top:1px solid var(--cream-200);background:var(--cream-100)}
.opts--sheet .opts-sum>div{gap:.4em}
.opts--sheet .opts-sum-total{display:none}
