/* Satiō · feuille du site. Le premier écran (nav, hero) est aussi dans src/styles/critique.css. */
:root{
  --vert:#124644;--vert-2:#0B3533;--citron:#E3FB7A;
  --rouge:#D63C3C;--rouge-texte:#C93030;
  --encre:#131313;--gris:#5B6866;--fond:#FFFFFF;--fond-2:#F4F6F2;
  --filet:rgba(18,70,68,.16);--filet-clair:rgba(255,255,255,.18);
  --titres:'Schibsted Grotesk',system-ui,sans-serif;--texte:'Instrument Sans',system-ui,sans-serif;
  --r:10px;--gutter:clamp(20px,5vw,72px);--max:1440px;
  /* Jetons lus par l'admin, la connexion et le mode édition */
  --paper:#FFFFFF;--paper-2:#F4F6F2;--cream:#FFFFFF;--wine:#C93030;--green-ink:#124644;--ink:#131313;--muted:#5B6866;
  --display:'Schibsted Grotesk',system-ui,sans-serif;--ui:'Instrument Sans',system-ui,sans-serif;--body:'Instrument Sans',system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--texte);color:var(--encre);background:var(--fond);line-height:1.55;font-size:17px;overflow-x:hidden}
img,picture,video{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit}
:focus-visible{outline:2px solid var(--rouge-texte);outline-offset:3px;border-radius:4px}
h1,h2,h3{font-family:var(--titres);font-weight:600;letter-spacing:-.02em;line-height:1.04;color:var(--vert)}
.wrap{padding-inline:var(--gutter);max-width:var(--max);margin-inline:auto}
.kicker{display:block;font-family:var(--texte);font-weight:600;text-transform:uppercase;font-size:.78rem;letter-spacing:.14em;line-height:1.4;color:var(--rouge-texte)}
/* Le chiffre en exposant après un titre : signature du site actuel, gardée comme compteur réel */
.n{font-family:var(--texte);font-weight:600;font-size:.32em;letter-spacing:0;vertical-align:super;margin-left:.2em;color:var(--rouge-texte);line-height:0}
.n::before{content:attr(data-n)}

/* BOUTONS : un seul gabarit, rayon des blocs. Fond clair : survol blanc à contour encre ; fond sombre : survol blanc. */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:12px 24px;border-radius:var(--r);background:var(--rouge);color:#fff;font-family:var(--texte);font-weight:600;text-transform:uppercase;font-size:.8rem;letter-spacing:.14em;line-height:1.2;border:0;box-shadow:inset 0 0 0 1px var(--rouge);cursor:pointer;transition:background .2s,color .2s,box-shadow .2s}
.btn:hover{background:#fff;color:var(--encre);box-shadow:inset 0 0 0 1px var(--encre)}
.btn.ghost{background:transparent;color:var(--vert);box-shadow:inset 0 0 0 1px var(--vert)}
.btn.ghost:hover{background:var(--vert);color:#fff;box-shadow:inset 0 0 0 1px var(--vert)}
.sombre .btn:hover,.nav .btn:hover{background:#fff;color:var(--vert);box-shadow:inset 0 0 0 1px #fff}
.sombre .btn.ghost{color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.8)}
.sombre .btn.ghost:hover{background:#fff;color:var(--vert);box-shadow:inset 0 0 0 1px #fff}
.lien{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-weight:600;text-transform:uppercase;font-size:.78rem;letter-spacing:.14em;color:var(--vert);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:6px;transition:color .2s}
.lien:hover{color:var(--rouge-texte)}
.sombre .lien{color:#fff}.sombre .lien:hover{color:var(--citron)}

/* NAV */
.nav{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px var(--gutter);color:#fff;background:transparent;transition:background .3s,padding .3s}
.nav.on{background:var(--vert);padding-block:10px}
.brand{display:flex;align-items:center;min-height:44px}
.brand img{height:44px;width:auto;transition:height .3s}
.nav.on .brand img{height:38px}
.nav nav ul{display:flex;gap:6px;list-style:none;font-family:var(--texte);font-weight:600;text-transform:uppercase;font-size:.78rem;letter-spacing:.14em}
.nav nav ul a{position:relative;display:inline-flex;align-items:center;min-height:44px;padding:0 14px}
.nav nav ul a::after{content:"";position:absolute;left:14px;right:14px;bottom:8px;height:2px;background:var(--citron);transform:scaleX(0);transform-origin:left;transition:transform .3s cubic-bezier(.4,0,.2,1)}
.nav nav ul a:hover::after,.nav nav ul a[aria-current]::after{transform:scaleX(1)}
.nav nav ul li.m{display:none}
.nav-r{display:flex;align-items:center;gap:10px}
.burger{display:none}

/* HERO */
.hero{position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:flex-end;color:#fff;overflow:hidden;padding:0}
.hero.sombre{background:#061413}
.hero-img{position:absolute;inset:0}
.hero-img picture,.hero-img img{width:100%;height:100%}
.hero-img img{object-fit:cover;object-position:0% 50%}
.hero-img::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,20,19,.9) 0%,rgba(6,20,19,.74) 34%,rgba(6,20,19,.2) 62%,rgba(6,20,19,0) 100%)}
.hero-copy{position:relative;width:100%;max-width:var(--max);margin-inline:auto;padding:140px var(--gutter) clamp(56px,10vh,112px)}
.hero h1{color:#fff;font-size:clamp(2.6rem,4.6vw,4.4rem);letter-spacing:-.025em}
.hero h1 .l{display:block}
.hero h1 .kicker{color:var(--citron);margin-bottom:22px}
.hero h1 .n{color:var(--citron)}
.hero .lead{margin-top:22px;max-width:44ch;font-size:1.12rem;color:rgba(255,255,255,.86)}
.hero .actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.preuve{display:flex;align-items:center;gap:10px;margin-top:28px;font-size:.92rem;color:rgba(255,255,255,.86)}
.preuve b{font-family:var(--titres);font-weight:600;font-size:1.05rem;color:#fff}
.preuve a{text-decoration:underline;text-underline-offset:3px;display:inline-flex;min-height:44px;align-items:center}

/* SECTIONS */
section{padding-block:clamp(72px,9vw,128px)}
.titre{font-size:clamp(2.2rem,4.4vw,4rem);max-width:18ch;text-wrap:balance}
.valeurs-g{position:sticky;top:100px}
.titre+.intro,.tete .intro{margin-top:20px;max-width:56ch;font-size:1.08rem;color:var(--gris)}
.tete{margin-bottom:clamp(36px,5vw,64px)}
.tete .kicker{margin-bottom:16px}
.sombre{background:var(--vert);color:#fff}
.sombre h2,.sombre h3{color:#fff}
.sombre .kicker,.sombre .n{color:var(--citron)}
.sombre .intro{color:rgba(255,255,255,.8)}
.clair{background:var(--fond-2)}

/* EN-TÊTE DES PAGES INTÉRIEURES (photo du client, voile sombre dense côté texte) */
.entete{position:relative;min-height:min(78vh,760px);display:flex;align-items:flex-end;color:#fff;background:var(--vert-2);overflow:hidden;padding:0}
.entete-img{position:absolute;inset:0}
.entete-img picture,.entete-img img{width:100%;height:100%}
.entete-img img{object-fit:cover;object-position:70% 0%}
.entete.sombre{background:#061413}
.entete-img::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,20,19,.9) 0%,rgba(6,20,19,.78) 40%,rgba(6,20,19,.3) 66%,rgba(6,20,19,.1) 100%)}
.entete-copy{position:relative;width:100%;padding-top:150px;padding-bottom:clamp(48px,8vh,96px)}
.entete h1{color:#fff;font-size:clamp(2.8rem,6vw,5rem)}
.entete h1 .kicker{color:var(--citron);margin-bottom:18px}
.entete h1 .saison{display:block;font-family:var(--texte);font-weight:400;font-size:clamp(1.05rem,1.6vw,1.3rem);letter-spacing:0;color:rgba(255,255,255,.86);margin-top:14px}
.entete .lead{margin-top:20px;max-width:52ch;font-size:1.08rem;color:rgba(255,255,255,.86)}
.entete .actions,.fin .actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}

/* MENUS (deux formules) */
.carte-menus{padding-block:clamp(56px,7vw,96px) 0}
.menus-titre{font-size:clamp(1.8rem,3vw,2.6rem);margin-bottom:24px}
.menus-liste{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.menu{border:1px solid var(--filet);border-radius:var(--r);padding:28px 30px;background:#fff}
.menu-l{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding-bottom:14px;border-bottom:1px solid var(--filet);margin-bottom:14px}
.menu h3{font-size:1.5rem}
.menu-prix{font-family:var(--titres);font-weight:600;font-size:2rem;letter-spacing:-.02em;color:var(--rouge-texte);white-space:nowrap}
.menu p{color:var(--gris);max-width:54ch}
.menus-note{margin-top:16px;color:var(--gris);font-size:.95rem}

/* CARTE : onglets radio, groupes, lignes à filets, prix alignés à droite */
.carte input[type=radio]{position:absolute;opacity:0;pointer-events:none}
.tabs{display:flex;gap:8px;margin-bottom:clamp(36px,5vw,56px);border-bottom:1px solid var(--filet)}
.tabs label{position:relative;display:inline-flex;align-items:center;min-height:48px;padding:0 18px;font-weight:600;text-transform:uppercase;font-size:.8rem;letter-spacing:.14em;color:var(--gris);cursor:pointer;transition:color .2s}
.tabs label::after{content:"";position:absolute;left:18px;right:18px;bottom:-1px;height:2px;background:var(--rouge);transform:scaleX(0);transform-origin:left;transition:transform .3s cubic-bezier(.4,0,.2,1)}
.tabs label:hover{color:var(--vert)}
.carte input:focus-visible+input,.carte input:focus-visible~.tabs label{outline:none}
.panel{display:none}
#t-1:checked~.tabs label[for=t-1],#t-2:checked~.tabs label[for=t-2],#t-3:checked~.tabs label[for=t-3],#t-4:checked~.tabs label[for=t-4],#t-5:checked~.tabs label[for=t-5],#t-6:checked~.tabs label[for=t-6]{color:var(--vert)}
#t-1:checked~.tabs label[for=t-1]::after,#t-2:checked~.tabs label[for=t-2]::after,#t-3:checked~.tabs label[for=t-3]::after,#t-4:checked~.tabs label[for=t-4]::after,#t-5:checked~.tabs label[for=t-5]::after,#t-6:checked~.tabs label[for=t-6]::after{transform:scaleX(1)}
#t-1:focus-visible~.tabs label[for=t-1],#t-2:focus-visible~.tabs label[for=t-2],#t-3:focus-visible~.tabs label[for=t-3],#t-4:focus-visible~.tabs label[for=t-4],#t-5:focus-visible~.tabs label[for=t-5],#t-6:focus-visible~.tabs label[for=t-6]{outline:2px solid var(--rouge-texte);outline-offset:-2px;border-radius:4px}
#t-1:checked~#p-1,#t-2:checked~#p-2,#t-3:checked~#p-3,#t-4:checked~#p-4,#t-5:checked~#p-5,#t-6:checked~#p-6{display:block}
.grp{display:grid;grid-template-columns:minmax(220px,1fr) 2.4fr;gap:clamp(24px,4vw,64px);padding-block:36px;border-top:1px solid var(--filet)}
.grp:first-child{border-top:0;padding-top:0}
.grp-tete{position:sticky;top:96px;align-self:start}
.grp-tete h2{font-size:clamp(1.5rem,2.4vw,2rem)}
.grp-tete p{margin-top:10px;color:var(--gris);font-size:.95rem;max-width:30ch}
.items{display:grid;grid-template-columns:1fr 1fr;column-gap:48px}
.grp-plats .items{grid-template-columns:1fr}
.item{padding:16px 0;border-bottom:1px solid var(--filet)}
.item .l{display:flex;justify-content:space-between;align-items:baseline;gap:16px}
.item h3{font-size:1.08rem;letter-spacing:-.01em;color:var(--encre)}
.item .prix{font-weight:600;white-space:nowrap;color:var(--vert);font-variant-numeric:tabular-nums}
.item p{margin-top:4px;font-size:.95rem;color:var(--gris);line-height:1.5}
.item.avec-photo{display:grid;grid-template-columns:132px 1fr;gap:24px;align-items:center;padding:18px 0}
.item-photo{border-radius:var(--r);overflow:hidden;aspect-ratio:1}
.item-photo picture,.item-photo img{width:100%;height:100%}
.item-photo img{object-fit:cover}
.item.avec-photo h3{font-size:1.3rem}
.tag{display:inline-block;margin-right:8px;padding:4px 8px;border-radius:999px;font-size:.72rem;line-height:1.1;font-weight:600;letter-spacing:.06em;text-transform:uppercase;vertical-align:1px;background:var(--fond-2);color:var(--vert)}
.tag.v{background:#E9F3D2;color:#2F5A1E}
.tag.s{background:#E6EFEE;color:var(--vert)}
.tag.p,.tag.pp{background:#FBE5E3;color:#A62A27}
.mentions{margin-top:32px;padding-top:20px;border-top:1px solid var(--filet);display:grid;gap:6px;font-size:.88rem;color:var(--gris)}

/* ACCUEIL */
[id]{scroll-margin-top:72px}
.texte{font-size:1.12rem;line-height:1.6;max-width:52ch}

/* Plats : cinq colonnes égales, photo carrée qui s'ouvre en cercle */
.plats-liste{list-style:none;display:grid;grid-template-columns:repeat(5,1fr);gap:clamp(16px,2vw,28px)}
.plat-photo{aspect-ratio:1;border-radius:var(--r);overflow:hidden;background:var(--fond-2)}
.plat-photo picture,.plat-photo img{width:100%;height:100%}
.plat-photo img{object-fit:cover}
.plat{display:flex;flex-direction:column}
.plat-txt{padding-top:18px;flex:1;display:flex;flex-direction:column}
.plat-txt .plat-prix{margin-top:auto!important;padding-top:12px}
.plat h3{font-size:1.25rem;color:var(--encre)}
.plat-txt p{margin-top:8px;font-size:.95rem;color:var(--gris);line-height:1.5}
.plat-txt .tags{display:flex;flex-wrap:wrap;align-items:flex-start;gap:6px;min-height:22px;margin-top:8px;line-height:1}
.plat-txt .tags .tag{margin:0}
.plat-txt .plat-prix{margin-top:12px;font-weight:600;color:var(--vert);font-variant-numeric:tabular-nums}
.plat-prix span{font-weight:400;color:var(--gris)}
.plats-liens{margin-top:40px}

/* Menus sur vert */
.menus-grille{display:grid;grid-template-columns:1fr 2fr;gap:clamp(32px,5vw,80px);align-items:start}
.menus-grille .tete,.faq-grille .tete,.avis-note{margin-bottom:0}
.sombre .menu{background:transparent;border-color:var(--filet-clair)}
.sombre .menu-l{border-color:var(--filet-clair)}
.sombre .menu h3{color:#fff}
.sombre .menu-prix{color:var(--citron)}
.sombre .menu p{color:rgba(255,255,255,.8)}
.mention{margin-top:20px;font-size:.85rem;color:rgba(255,255,255,.7);max-width:34ch}

/* Avis : la note en grand, trois citations à filets */
.avis-grille{display:grid;grid-template-columns:1fr 2fr;gap:clamp(32px,5vw,80px);align-items:start}
.score{display:flex;align-items:baseline;gap:12px;margin-top:28px}
.score-n{font-family:var(--titres);font-weight:600;font-size:clamp(4.5rem,8vw,6.5rem);line-height:.9;letter-spacing:-.04em;color:var(--vert)}
.score-s{font-family:var(--titres);font-weight:600;font-size:1.4rem;color:var(--vert)}
.score-l{margin:8px 0 6px;color:var(--gris)}
.citations{list-style:none}
.citations li{padding:28px 0;border-top:1px solid var(--filet)}
.citations li:last-child{border-bottom:1px solid var(--filet)}
.citations blockquote p{font-size:clamp(1.15rem,1.6vw,1.4rem);line-height:1.45;color:var(--encre);max-width:46ch}
.citations blockquote p::before{content:"« "}.citations blockquote p::after{content:" »"}
.auteur{margin-top:12px;font-weight:600;text-transform:uppercase;font-size:.76rem;letter-spacing:.14em;color:var(--rouge-texte)}

/* Valeurs sur vert, vidéo au clic */
.valeurs-grille{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,96px);align-items:start}
.video{position:relative;aspect-ratio:16/9;border-radius:var(--r);overflow:hidden;background:var(--vert-2)}
.video picture,.video img,.video video{width:100%;height:100%}
.video img,.video video{object-fit:cover}
.video::after{content:"";position:absolute;inset:auto 0 0 0;height:45%;background:linear-gradient(180deg,rgba(6,20,19,0) 0%,rgba(6,20,19,.7) 100%);pointer-events:none}
.video.lit::after{content:none}
.lecture{z-index:1;position:absolute;left:20px;bottom:20px;display:inline-flex;align-items:center;gap:14px;min-height:48px;padding:0;border:0;background:transparent;color:#fff;font-weight:600;text-transform:uppercase;font-size:.78rem;letter-spacing:.14em;cursor:pointer}
.lecture .rond{display:grid;place-items:center;width:60px;height:60px;border-radius:50%;background:#fff;color:var(--vert);padding-left:4px;transition:background .2s,color .2s}
.lecture:hover .rond{background:var(--citron)}
.valeurs-liste{list-style:none}
.valeurs-liste li{padding:28px 0;border-top:1px solid var(--filet-clair)}
.valeurs-liste li:first-child{border-top:0;padding-top:0}
.valeurs-liste h3{font-size:clamp(1.4rem,2vw,1.75rem);color:var(--citron)}
.valeurs-liste p{margin-top:10px;color:rgba(255,255,255,.84);max-width:54ch}
.valeurs-liste .lien{margin-top:6px}

/* Origines et équipes */
.origines-grille{display:grid;grid-template-columns:1fr 1.15fr;gap:clamp(40px,6vw,96px);align-items:center}
.origines-txt .texte{margin-top:24px}
.collage{position:relative;padding-bottom:18%}
.collage-a,.collage-b,.equipes-photo,.devanture{border-radius:var(--r);overflow:hidden}
.collage picture,.collage img,.equipes-photo picture,.equipes-photo img,.devanture picture,.devanture img{width:100%;height:100%}
.collage img,.equipes-photo img,.devanture img{object-fit:cover}
.collage-a{width:82%;aspect-ratio:3/2}
.collage-b{position:absolute;right:0;bottom:0;width:50%;aspect-ratio:3/2;box-shadow:0 0 0 8px #fff}
.equipes-grille{display:grid;grid-template-columns:1.15fr 1fr;gap:clamp(40px,6vw,96px);align-items:center;margin-top:clamp(80px,10vw,144px)}
.equipes-photo{aspect-ratio:4/3}
.equipes-txt .texte{margin-top:24px}
.merci{margin-top:18px;font-family:var(--titres);font-weight:600;font-size:1.35rem;color:var(--vert)}
.adresses-titre{margin-top:40px;font-family:var(--texte);font-weight:600;text-transform:uppercase;font-size:.76rem;letter-spacing:.14em;color:var(--gris)}
.adresses{list-style:none;margin-top:12px}
.adresses a{display:grid;grid-template-columns:minmax(150px,1fr) 1.4fr 20px;gap:16px;align-items:center;min-height:56px;border-top:1px solid var(--filet);transition:color .2s}
.adresses li:last-child a{border-bottom:1px solid var(--filet)}
.adr-nom{font-family:var(--titres);font-weight:600;font-size:1.1rem;color:var(--vert)}
.adr-lieu{color:var(--gris);font-size:.95rem}
.adresses a:hover .adr-nom,.adresses a:hover .fleche{color:var(--rouge-texte)}
.fleche{color:var(--vert);transition:color .2s}

/* Horaires et accès */
.horaires-grille{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(40px,6vw,96px);align-items:center}
.jours{list-style:none;margin-top:28px;max-width:520px}
.jours li{display:grid;grid-template-columns:120px 1fr;gap:16px;padding:11px 0;border-top:1px solid var(--filet);font-variant-numeric:tabular-nums}
.jours li:last-child{border-bottom:1px solid var(--filet)}
.jours b{font-weight:600;text-transform:uppercase;font-size:.76rem;letter-spacing:.14em;align-self:center;color:var(--vert)}
.jours li.off{color:var(--gris)}
.fermeture{margin-top:12px;font-weight:600;color:var(--rouge-texte)}
.regle{margin-top:14px;color:var(--gris);max-width:52ch}
.regle+.regle{margin-top:4px}
.adresse{margin-top:24px;font-family:var(--titres);font-weight:600;font-size:1.3rem;line-height:1.4;color:var(--vert)}
.adresse a{color:var(--rouge-texte)}
.adresse a:hover{text-decoration:underline;text-underline-offset:4px}
.horaires .actions,.demande .actions{display:flex;flex-wrap:wrap;gap:12px;margin:28px 0 8px}
.devanture{aspect-ratio:4/5}

/* Questions fréquentes : un seul ouvert, ouverture douce */
.faq-grille{display:grid;grid-template-columns:1fr 1.7fr;gap:clamp(32px,5vw,80px);align-items:start}
.faq details{border-top:1px solid var(--filet)}
.faq details:last-child{border-bottom:1px solid var(--filet)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:64px;padding:16px 0;font-family:var(--titres);font-weight:600;font-size:1.12rem;line-height:1.35;letter-spacing:-.01em;color:var(--vert)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";flex:none;width:30px;height:30px;display:grid;place-items:center;color:var(--rouge-texte);font-family:var(--texte);font-weight:400;font-size:1.6rem;transition:transform .25s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details.ferme summary::after{transform:none}
.faq details>div{overflow:hidden}
.faq details>div>p{padding:0 46px 22px 0;color:var(--gris);max-width:64ch}

/* Réserver et formulaire */
.demande-grille{display:grid;grid-template-columns:1fr 1.2fr;gap:clamp(40px,6vw,96px);align-items:start}
.demande .intro a{color:var(--rouge-texte);font-weight:600}
.question{margin-top:48px;padding-top:32px;border-top:1px solid var(--filet)}
.question h3{font-size:1.6rem}
.question p{margin-top:12px;color:var(--gris);max-width:48ch}
.form .champs{display:grid;grid-template-columns:1fr 1fr;gap:16px 18px}
.form label{display:flex;flex-direction:column;gap:8px;font-weight:600;text-transform:uppercase;font-size:.74rem;letter-spacing:.12em;color:var(--vert)}
.form .facultatif{text-transform:none;letter-spacing:0;font-weight:400;color:var(--gris)}
.form .large{grid-column:1/-1}
.form input,.form textarea{font:inherit;font-family:var(--texte);font-size:16px;font-weight:400;text-transform:none;letter-spacing:0;color:var(--encre);background:#fff;border:1px solid rgba(18,70,68,.28);border-radius:var(--r);padding:13px 14px;width:100%;transition:border-color .2s}
.form textarea{resize:vertical;min-height:132px}
.form input:hover,.form textarea:hover{border-color:var(--vert)}
.form input:focus,.form textarea:focus{outline:2px solid var(--rouge-texte);outline-offset:1px;border-color:var(--vert)}
.form ::placeholder{color:#6B7775}
.form .btn{margin-top:20px;width:100%}
.form .btn[disabled]{opacity:.6;cursor:wait}
.piege{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.rgpd{margin-top:14px;font-size:.86rem;color:var(--gris)}
.rgpd a{text-decoration:underline;text-underline-offset:3px}
.erreur{margin-top:14px;font-weight:600;color:var(--rouge-texte)}
p.envoye{white-space:pre-line;font-family:var(--titres);font-weight:600;font-size:1.5rem;line-height:1.35;color:var(--vert);padding:32px;border:1px solid var(--filet);border-radius:var(--r);background:#fff}

/* FIN DE PAGE : envie de réserver */
.fin{text-align:left}
.fin-in{display:grid;justify-items:start}
.fin .intro a{color:var(--rouge-texte);font-weight:600}
.fin-liens{display:flex;flex-wrap:wrap;gap:8px 28px;margin-top:28px}

/* BARRE MOBILE */
.mbar{display:none}

/* FOOTER */
footer.site{background:var(--vert);color:rgba(255,255,255,.82);padding:clamp(56px,7vw,88px) var(--gutter) 28px}
.foot{max-width:var(--max);margin-inline:auto;display:grid;grid-template-columns:1.3fr 1fr 1fr .8fr;gap:40px}
.foot h2{font-family:var(--texte);font-weight:600;text-transform:uppercase;font-size:.74rem;letter-spacing:.14em;line-height:1.4;color:#fff;margin-bottom:16px}
.foot img{height:44px;width:auto;margin-bottom:18px}
.foot p,.foot li{font-size:.94rem;line-height:1.6}
.foot ul{list-style:none}
.foot a{display:inline-flex;align-items:center;min-height:32px}
.foot a:hover{color:var(--citron)}
.foot .hrs li{display:grid;grid-template-columns:76px 1fr;gap:12px}
.foot .rs{display:flex;gap:18px;margin-top:10px}
.bottom{max-width:var(--max);margin:48px auto 0;padding-top:22px;border-top:1px solid var(--filet-clair);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;font-size:.84rem}
.bottom nav{display:flex;gap:18px;flex-wrap:wrap}
.bottom a{display:inline-flex;align-items:center;min-height:44px}
.bottom a:hover{color:var(--citron)}

/* PAGES LÉGALES */
.page{padding:150px var(--gutter) 96px;max-width:920px;margin-inline:auto}
.page h1{font-size:clamp(2.2rem,4vw,3.4rem);margin-bottom:12px}
.page .lead{color:var(--gris);margin-bottom:36px;max-width:62ch;font-size:1.08rem}
.page h2{font-size:1.35rem;margin:36px 0 10px}
.page p{margin-bottom:12px;max-width:72ch}
.page a{text-decoration:underline;text-underline-offset:3px}
.page a:hover{color:var(--rouge-texte)}

@media(max-width:960px){
  .nav{padding:12px 16px}
  .nav.on{padding-block:8px}
  .brand img{height:38px}
  .nav.on .brand img{height:34px}
  /* Menu mobile : burger à droite qui devient croix, plein écran vert qui glisse depuis la droite en 0,35 s */
  .burger{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:0;background:transparent;color:inherit;cursor:pointer}
  .burger span{position:relative;display:block;width:22px;height:2px;background:currentColor;transition:background .2s}
  .burger span::before,.burger span::after{content:"";position:absolute;left:0;width:22px;height:2px;background:currentColor;transition:transform .25s,top .25s}
  .burger span::before{top:-7px}.burger span::after{top:7px}
  .nav.open .burger span{background:transparent}
  .nav.open .burger span::before{top:0;transform:rotate(45deg)}
  .nav.open .burger span::after{top:0;transform:rotate(-45deg)}
  .nav.open{background:var(--vert)}
  .nav nav ul{display:flex;flex-direction:column;gap:0;position:fixed;top:0;right:0;bottom:0;width:100%;background:var(--vert);padding:92px 24px calc(80px + env(safe-area-inset-bottom));font-family:var(--titres);text-transform:none;font-size:1.3rem;letter-spacing:-.01em;z-index:-1;overflow-y:auto;overscroll-behavior:contain;transform:translateX(100%);visibility:hidden;transition:transform .35s cubic-bezier(.4,0,.2,1),visibility 0s .35s}
  .nav.open nav ul{transform:none;visibility:visible;transition:transform .35s cubic-bezier(.4,0,.2,1)}
  .nav nav ul li.m{display:block}
  .nav nav ul a{display:flex;justify-content:space-between;align-items:center;padding:16px 0;border-bottom:1px solid var(--filet-clair)}
  .nav nav ul a::after{content:"›";position:static;height:auto;background:none;transform:none;font-family:var(--texte);font-size:1.6rem;line-height:1;color:var(--citron)}
  .nav nav ul a[aria-current]{color:var(--citron)}
  .nav nav ul li.rs{display:flex;gap:20px;margin-top:auto;padding-top:20px}
  .nav nav ul li.rs a{border:0;padding:8px 0;font-family:var(--texte);font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.14em}
  .nav nav ul li.rs a::after{content:none}
  .nav.open .brand{position:absolute;left:50%;transform:translateX(-50%)}
  .nav.open .nav-r{margin-left:auto}
  .nav-r .btn{display:none}
  .foot{grid-template-columns:1fr 1fr}
  .grp{grid-template-columns:1fr;gap:16px}
  .grp-tete p{max-width:none}
  .items{grid-template-columns:1fr}
  .menus-liste{grid-template-columns:1fr}
  .plats-liste{grid-template-columns:repeat(3,1fr)}
  .menus-grille,.avis-grille,.valeurs-grille,.origines-grille,.equipes-grille,.horaires-grille,.faq-grille,.demande-grille{grid-template-columns:1fr}
  .valeurs-g{position:static}
  .collage{max-width:640px}
  .devanture{max-width:520px;aspect-ratio:4/5}
}
@media(max-width:640px){
  body{font-size:16px;padding-bottom:calc(56px + env(safe-area-inset-bottom))}
  .mbar{display:grid;grid-template-columns:1fr 1fr 1fr;position:fixed;bottom:0;left:0;right:0;z-index:60;background:var(--rouge);color:#fff;font-family:var(--texte);font-weight:600;text-transform:uppercase;font-size:.74rem;letter-spacing:.12em;text-align:center;padding-bottom:env(safe-area-inset-bottom)}
  .mbar a{display:flex;align-items:center;justify-content:center;min-height:56px;padding:0 6px;border-right:1px solid rgba(255,255,255,.22)}
  .mbar a:last-child{border:0}
  .mbar a{transition:background .2s}
  .mbar a:hover,.mbar a:active{background:#B32F2F}
  .foot{grid-template-columns:1fr;gap:36px}
  .foot li{overflow-wrap:anywhere}
  .bottom{flex-direction:column;align-items:flex-start;gap:4px}
  /* Hero téléphone : l'image 9:16 en haut, le bol dans le tiers haut ; le texte dessous, sur un voile accroché au bloc de texte */
  .hero{min-height:auto;display:block}
  .hero-img{bottom:auto;height:calc(100vw * 16 / 9)}
  .hero-img img{object-position:50% 0%}
  .hero-img::after{background:linear-gradient(180deg,rgba(6,20,19,.45) 0%,rgba(6,20,19,0) 22%)}
  .hero-copy{z-index:1;padding:86vw 20px 40px}
  .hero-copy::before{content:"";position:absolute;inset:calc(86vw - 140px) 0 0 0;z-index:-1;background:linear-gradient(180deg,rgba(6,20,19,0) 0,rgba(6,20,19,.82) 140px,rgba(6,20,19,.96) 260px)}
  .hero h1{font-size:clamp(1.75rem,8.4vw,2.6rem)}
  .hero .lead{font-size:1.02rem}
  .hero .actions .btn{flex:1 1 100%}
  .grp-tete{position:static}
  /* En-tête téléphone : comme le hero, image portrait (le plat dans le tiers haut), le texte posé sur la photo,
     voile accroché au bloc de texte ; ancré par le haut, il ne bouge pas quand la police arrive */
  .entete{display:block;min-height:auto}
  .entete-img{top:56px;bottom:auto;height:calc(100vw * 16 / 9)}
  .entete-img img{object-position:50% 0%}
  .entete-img::after{content:none}
  .entete-copy{z-index:1;padding-top:calc(56px + 92vw);padding-bottom:48px}
  .entete-copy::before{content:"";position:absolute;inset:calc(56px + 92vw - 140px) 0 0 0;z-index:-1;background:linear-gradient(180deg,rgba(6,20,19,0) 0,rgba(6,20,19,.82) 140px,rgba(6,20,19,.96) 260px)}
  .entete .actions .btn,.fin .actions .btn{flex:1 1 100%}
  .tabs{display:grid;grid-template-columns:1fr 1fr;gap:0 8px}
  .tabs label{justify-content:center;padding:0 8px;border-bottom:1px solid var(--filet)}
  .tabs label::after{left:8px;right:8px}
  .plats-liste{grid-template-columns:1fr;gap:0}
  .plat{display:grid;grid-template-columns:88px 1fr;gap:16px;align-items:start;padding:16px 0;border-top:1px solid var(--filet)}
  .plat:last-child{border-bottom:1px solid var(--filet)}
  .plat-txt{padding-top:0}
  .plat-txt .tags{min-height:0;margin-top:4px}
  .plat-txt .tags:empty{display:none}
  .plat-txt .plat-prix{padding-top:6px}
  .plat h3{font-size:1.12rem}
  .plat-txt p{margin-top:4px;font-size:.92rem}
  .plat-txt .plat-prix{margin-top:6px}
  .score-n{font-size:4.5rem}
  .citations li{padding:22px 0}
  .lecture{left:14px;bottom:14px}
  .lecture .rond{width:52px;height:52px}
  .collage{padding-bottom:22%}
  .collage-a{width:88%}
  .collage-b{width:56%;box-shadow:0 0 0 6px #fff}
  .adresses a{grid-template-columns:1fr 20px;gap:2px 12px;padding:12px 0}
  .adr-lieu{grid-column:1;grid-row:2}
  .fleche{grid-column:2;grid-row:1/3}
  .jours li{grid-template-columns:96px 1fr}
  .horaires .actions .btn,.demande .actions .btn{flex:1 1 100%}
  .faq details>div>p{padding-right:0}
  .form .champs{grid-template-columns:1fr}
  .item.avec-photo{grid-template-columns:96px 1fr;gap:16px;align-items:start}
  .item.avec-photo h3{font-size:1.15rem}
  .menu{padding:22px}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
[data-cle]{white-space:pre-line}
