*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--blanc);color:var(--noir);font-family:var(--police);font-size:16px;line-height:1.5}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
h1,h2,h3,h4{margin:0;font-stretch:118%;font-weight:800;letter-spacing:-.02em;text-wrap:balance}
p{margin:0}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--ocre);outline-offset:3px}
.wrap{max-width:var(--max);margin:0 auto;padding:0 18px}

header{position:relative;z-index:20;background:var(--rouge);color:var(--blanc)}
.barre{max-width:var(--max);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px}
.marque{display:inline-flex;align-items:center;min-height:48px}
.plaque-logo{display:inline-flex;padding:7px 10px;background:var(--blanc)}
.plaque-logo img{width:auto;height:34px}
.menu-bouton{min-height:44px;min-width:72px;padding:0 16px;border:2px solid var(--blanc);border-radius:999px;background:transparent;color:var(--blanc);font:700 15px var(--police);cursor:pointer}
.menu-bouton[aria-expanded="true"]{background:var(--blanc);color:var(--rouge)}
#menu{display:flex;align-items:center;gap:4px}
#menu a{display:inline-flex;align-items:center;min-height:44px;padding:0 12px;font-weight:700;text-decoration:none}
#menu a[aria-current="page"]{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:6px}
#menu a.cta{margin-left:8px;padding:0 18px;border-radius:999px;background:var(--blanc);color:var(--rouge)}
@media(hover:hover){#menu a:not(.cta):hover{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:6px}#menu a.cta:hover{background:var(--noir);color:var(--blanc)}}
@media(min-width:821px){.menu-bouton{display:none}}
@media(max-width:820px){
  #menu{position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:stretch;gap:0;padding:4px 18px 18px;background:var(--rouge);border-top:1px solid rgba(255,255,255,.25)}
  #menu a{min-height:52px;border-bottom:1px solid rgba(255,255,255,.2);font-size:17px}
  #menu a.cta{justify-content:center;margin:14px 0 0;border-bottom:0}
}

.disques{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.disque{display:inline-grid;justify-items:center;align-content:center;gap:4px;flex:none;width:104px;height:104px;padding:0 10px;border-radius:50%;background:var(--blanc);color:var(--rouge);font-size:15px;font-weight:800;line-height:1.1;text-align:center;text-decoration:none;transition:transform .2s ease}
.disque svg{width:22px;height:22px}
.disque.noir{background:var(--noir);color:var(--blanc)}
.disque.trait{background:transparent;color:var(--blanc);box-shadow:inset 0 0 0 2px var(--blanc)}
.disque.trait-noir{background:transparent;color:var(--noir);box-shadow:inset 0 0 0 2px var(--noir)}
.disque.grand{width:124px;height:124px}
.disque:active{transform:scale(.95)}
@media(hover:hover){.disque:hover{transform:rotate(-8deg)}}
.fleche{display:inline-flex;align-items:center;min-height:44px;font-weight:700;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px}

.accueil{overflow:hidden;background:var(--rouge);color:var(--blanc)}
.accueil-grille{max-width:var(--max);margin:0 auto}
.table-vue{position:relative;height:300px;overflow:hidden}
.plateau{position:absolute;left:50%;bottom:26px;width:430px;height:430px;margin-left:-215px;overflow:hidden;border-radius:50%;box-shadow:0 0 0 10px var(--creme),0 28px 40px -14px rgba(0,0,0,.55)}
.plateau img{width:100%;height:100%;object-fit:cover;object-position:55% 50%}
.ouverture{padding:6px 18px 44px}
.lieu{display:flex;flex-wrap:wrap;align-items:center;gap:4px 16px;margin-bottom:10px;font-size:14.5px}
.lieu a{display:inline-flex;align-items:center;min-height:44px;font-weight:700;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px}
.ouvert-badge{display:inline-flex;align-items:center;gap:8px;font-weight:600}
.ouvert-badge .pastille{width:10px;height:10px;border-radius:50%;background:var(--vert)}
.ouvert-badge.ferme .pastille{background:var(--ocre)}
.ouvert-badge .detail{font-weight:400}
.accueil h1{margin-bottom:16px;font-size:clamp(34px,8.6vw,84px);line-height:1.02}
.ouverture .texte{max-width:34em;margin-bottom:24px;font-size:17px}
.infos-courtes{list-style:none;display:flex;flex-wrap:wrap;gap:8px 20px;margin:26px 0 0;padding:16px 0 0;border-top:1px solid rgba(255,255,255,.35);font-size:14.5px}
.credit{margin-top:14px;font-size:12.5px;opacity:.8}

.journee{position:relative;background:var(--noir);color:var(--blanc)}
.fixe{display:flex;flex-direction:column;overflow:hidden;padding:36px 0 24px}
.journee-tete{width:100%;max-width:var(--max);margin:0 auto;padding:0 18px}
.journee h2{margin-bottom:8px;font-size:clamp(28px,4.6vw,56px);line-height:1.04}
.journee-tete p{max-width:40em;color:#CFC8BF;font-size:15px}
.axe{position:relative;height:46px;margin:22px 26px 16px}
.axe .rail{position:absolute;left:0;right:0;top:10px;height:3px;background:#3A3632}
.axe .etape{position:absolute;top:5px;width:13px;height:13px;margin-left:-6.5px;border-radius:50%;background:var(--noir);box-shadow:inset 0 0 0 3px var(--ocre)}
.axe .heure{position:absolute;top:24px;transform:translateX(-50%);color:var(--gris-clair);font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap}
.axe [data-x="0"]{left:0}
.axe [data-x="6.67"]{left:6.67%}
.axe [data-x="20"]{left:20%}
.axe [data-x="30"]{left:30%}
.axe [data-x="40"]{left:40%}
.axe [data-x="50"]{left:50%}
.axe [data-x="60"]{left:60%}
.axe [data-x="80"]{left:80%}
.axe [data-x="100"]{left:100%}
.axe .maintenant{position:absolute;top:-9px;width:0;height:0;margin-left:-7px;border:7px solid transparent;border-top:9px solid var(--blanc)}
.axe .maintenant span{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);font-size:11.5px;font-weight:700;white-space:nowrap}
.piste{list-style:none;display:flex;flex:1;gap:12px;min-height:0;margin:0;padding:0 18px 6px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
.piste::-webkit-scrollbar{display:none}
.piste li{position:relative;display:flex;flex-direction:column;flex:0 0 80%;background:var(--nuit);scroll-snap-align:start}
.piste figure{flex:1;min-height:160px;margin:0}
.piste img{width:100%;height:100%;object-fit:cover}
.piste .cadre-poisson{object-position:62% 50%}
.piste .cadre-colombo{object-position:38% 52%}
.piste .sans{justify-content:flex-end}
.piste .ocre{background:var(--ocre);color:var(--noir)}
.piste .blanc{background:var(--blanc);color:var(--noir)}
.piste .rouge{background:var(--rouge)}
.piste .mot{padding:16px 16px 20px}
.piste time{display:block;margin-bottom:8px;color:var(--ocre);font-stretch:125%;font-size:34px;font-weight:800;line-height:1;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.piste .sans time{color:inherit;font-size:64px}
.piste h3{margin-bottom:6px;font-size:21px;line-height:1.1}
.piste p{font-size:15px}
.piste p a{font-weight:700}
.piste small{display:block;margin-top:8px;font-size:12px;opacity:.75}
.encemoment{position:absolute;top:12px;left:12px;padding:5px 10px;border-radius:999px;background:var(--blanc);color:var(--rouge);font-size:12.5px;font-weight:800}
.journee.pilotee .fixe{position:sticky;top:0}
.journee.pilotee .piste{overflow:visible;scroll-snap-type:none;will-change:transform}

.semaine{padding:56px 0 52px;background:var(--rouge);color:var(--blanc)}
.semaine-grille{display:grid;gap:30px}
.semaine h2,.table h2,.avis h2,.fin-rouge h2{margin-bottom:10px;font-size:clamp(28px,4.6vw,56px);line-height:1.04}
.semaine p{max-width:30em}
.assiettes{position:relative;height:210px;margin-top:26px}
.assiettes img{position:absolute;width:170px;height:170px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 7px var(--creme),0 20px 30px -12px rgba(0,0,0,.5)}
.assiettes .a1{left:6px;top:10px;object-position:50% 72%}
.assiettes .a2{left:136px;top:28px;object-position:45% 55%}
.plats{list-style:none;margin:0 0 10px;padding:0;border-top:2px solid currentColor}
.plats li{display:grid;grid-template-columns:1fr auto;gap:2px 12px;padding:14px 0;border-bottom:2px solid currentColor}
.plats b{font-size:18px;font-weight:700}
.plats span{font-size:17px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.plats em{grid-column:1/-1;font-style:normal;font-size:14.5px;opacity:.88}

.table{padding:56px 0 50px;background:var(--blanc);color:var(--noir)}
.table-grille{display:grid;gap:26px}
.table-grille>div:first-child>p{max-width:30em;color:var(--gris);font-size:15.5px}
.regle{margin-top:12px;color:var(--gris);font-size:13.5px}
fieldset{min-width:0;margin:0 0 18px;padding:0;border:0}
legend{margin:0 0 8px;padding:0;font-size:15px;font-weight:700}
.ronds{display:flex;flex-wrap:wrap;gap:8px}
.rond{display:inline-grid;place-content:center;justify-items:center;width:62px;height:62px;padding:0;border:2px solid var(--noir);border-radius:50%;background:var(--blanc);color:var(--noir);font:600 12.5px/1.1 var(--police);cursor:pointer}
.rond b{font-stretch:118%;font-size:19px;font-weight:800}
.rond.mot-seul{width:72px;height:72px;font-size:15px;font-weight:800}
.rond[aria-pressed="true"]{background:var(--rouge);border-color:var(--rouge);color:var(--blanc);animation:tampon .3s ease-out}
.rond:disabled{opacity:.32;cursor:not-allowed}
@keyframes tampon{0%{transform:scale(1.16) rotate(-6deg)}100%{transform:none}}
.compteur{display:flex;align-items:center;gap:12px}
.compteur .rond{width:52px;height:52px;font-size:24px;font-weight:700}
.compteur output{min-width:2.2ch;text-align:center;font-stretch:125%;font-size:36px;font-weight:800;line-height:1;font-variant-numeric:tabular-nums}
.bulle{max-width:30em;margin:4px 0 18px;padding:14px 16px;border-radius:18px 18px 18px 4px;background:var(--bulle);font-size:15.5px}
.apres{margin-top:12px;color:var(--gris);font-size:13.5px}

.avis{padding:56px 0 50px;background:var(--noir);color:var(--blanc)}
.avis .chapeau{margin-bottom:24px;color:var(--gris-clair)}
.avis-grille{display:grid;gap:22px}
.avis blockquote{margin:0}
.avis blockquote p{margin-bottom:8px;font-size:15.5px}
.avis .grand p{font-stretch:110%;font-size:21px;font-weight:600;line-height:1.3}
.avis cite{color:var(--ocre);font-style:normal;font-size:14px;font-weight:700}
.note-avis{max-width:46em;margin-top:26px;color:var(--gris-clair);font-size:13px}

.infos{padding:52px 0 56px;background:var(--rouge);color:var(--blanc)}
.infos-grille{display:grid;gap:34px}
.infos h2,.contact h2{margin-bottom:12px;font-size:clamp(24px,3.4vw,36px)}
.horaires{margin:0}
.horaires div{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;padding:10px 0;border-bottom:1px solid var(--filet-h,rgba(255,255,255,.3))}
.horaires dt{font-weight:700}
.horaires dd{margin:0;text-align:right}
.horaires dd a{display:inline-flex;align-items:center;justify-content:flex-end;min-height:44px;font-weight:700}
.horaires .ferme dd{opacity:.65}
.adresse{margin-bottom:18px;font-size:16.5px}

.haut-page{padding:44px 0 46px;background:var(--rouge);color:var(--blanc)}
.haut-page h1{margin-bottom:14px;font-size:clamp(34px,7vw,76px);line-height:1.02}
.haut-page .texte{max-width:36em;font-size:17px}
.haut-page .disques{margin-top:24px}

.sommaire{position:sticky;top:0;z-index:10;background:var(--blanc);border-bottom:2px solid var(--noir)}
.sommaire .wrap{display:flex;gap:8px;overflow-x:auto;padding-top:10px;padding-bottom:10px;scrollbar-width:none}
.sommaire .wrap::-webkit-scrollbar{display:none}
.sommaire a{display:inline-flex;align-items:center;flex:none;min-height:44px;padding:0 16px;border:2px solid var(--noir);border-radius:999px;font-size:15px;font-weight:700;text-decoration:none;white-space:nowrap}
.sommaire a[aria-current="true"]{background:var(--rouge);border-color:var(--rouge);color:var(--blanc)}
.feuille{padding:20px 0 50px}
.rubrique{padding-top:34px;scroll-margin-top:72px}
.rubrique h2{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px;font-size:clamp(26px,4vw,44px)}
.rubrique h2 span{color:var(--rouge);font-size:.7em}
.rubrique .note{margin-bottom:8px;color:var(--gris);font-size:14.5px}
.feuille .plats span{color:var(--rouge)}
.feuille .plats em{color:var(--gris);opacity:1}
.allergie{max-width:44em;margin-top:28px;color:var(--gris);font-size:14.5px}
.fin-rouge{padding:52px 0 56px;background:var(--rouge);color:var(--blanc)}
.fin-rouge p{max-width:34em;margin-bottom:22px}

.contact{padding:30px 0 60px}
.salle{margin:0 0 34px}
.salle img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:999px}
.contact-grille{display:grid;gap:44px}
.contact h2.second{margin-top:30px}
.contact .horaires{--filet-h:#E3DDD6}
.contact .disques{margin-top:18px}
.duo{display:grid;gap:0 16px}
.champ{margin-bottom:16px}
.champ label{display:block;margin-bottom:6px;font-size:15px;font-weight:700}
input[type=text],input[type=tel],input[type=email],input[type=date],select,textarea{width:100%;min-height:50px;padding:10px 14px;border:2px solid var(--noir);border-radius:16px;background:var(--blanc);color:var(--noir);font:16px var(--police)}
textarea{min-height:120px;resize:vertical}
.envoyer{min-height:56px;padding:0 28px;border:0;border-radius:999px;background:var(--rouge);color:var(--blanc);font:800 16px var(--police);cursor:pointer}
@media(hover:hover){.envoyer:hover{background:var(--rouge-fonce)}}
.piege{display:none}
.consentement{display:flex;align-items:flex-start;gap:12px;margin:4px 0 20px}
.consentement input{flex:none;width:22px;height:22px;margin-top:2px;accent-color:var(--rouge)}
.consentement span{color:var(--gris);font-size:14px;line-height:1.5}
.consentement a{color:var(--noir);font-weight:600}
.reponse{margin-top:16px;padding:14px 16px;border-radius:16px;font-size:15px;line-height:1.5}
.reponse.ok{background:#E7F3EC;color:#1D4D33}
.reponse.ko{background:#FBEDE6;color:#7A2410}
.note-form{margin-top:14px;color:var(--gris);font-size:13.5px}

.legal{padding:44px 0 64px}
.legal .wrap{max-width:820px}
.legal h1{margin-bottom:20px;font-size:clamp(30px,5vw,52px)}
.legal h2{margin-top:32px;font-size:22px}
.legal p,.legal ul{margin-top:10px;font-size:15.5px}
.legal ul{padding-left:20px}
.legal li{margin-top:6px}
.avertissement{padding:14px 18px;border-radius:16px;background:var(--bulle);font-size:15px}

footer{padding:48px 0 30px;background:var(--noir);color:#CFCAC3;font-size:14.5px}
.cols{display:grid;gap:28px}
footer h4{margin-bottom:8px;color:var(--blanc);font-size:17px}
footer ul{list-style:none;margin:0;padding:0}
footer a{display:inline-flex;align-items:center;min-height:44px;color:var(--blanc);text-decoration:underline;text-decoration-color:var(--rouge);text-decoration-thickness:2px;text-underline-offset:4px}
footer .demo{margin-top:28px;padding-top:18px;border-top:1px solid rgba(255,255,255,.15);font-size:13.5px}
footer .demo a{display:inline;min-height:0}
.social-demo{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:12px;margin-top:26px;padding-top:22px;border-top:1px solid rgba(255,255,255,.15)}
.social-demo__lien,.social-demo__partage{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:9px 14px;border:1px solid rgba(255,255,255,.3);border-radius:999px;background:transparent;color:inherit;font:inherit;font-size:14px;cursor:pointer;transition:border-color .25s,background .25s}
.social-demo__lien{padding:9px 12px}
.social-demo__lien svg,.social-demo__partage svg{width:18px;height:18px;fill:currentColor}
.social-demo__partage svg{fill:none}
.social-demo__mot{flex-basis:100%;min-height:1.2em;margin:6px 0 0;text-align:center;font-size:14px}
@media(hover:hover){.social-demo__lien:hover,.social-demo__partage:hover{border-color:currentColor;background:rgba(255,255,255,.07)}}

.flotte{display:none}

@media(min-width:620px){.duo{grid-template-columns:1fr 1fr}}
@media(max-width:820px){
  .flotte{position:fixed;right:14px;bottom:calc(14px + env(safe-area-inset-bottom,0px));z-index:30;display:block;opacity:0;transform:scale(.6);pointer-events:none;transition:opacity .25s ease,transform .25s ease}
  .flotte.voit{opacity:1;transform:none;pointer-events:auto}
  .flotte .disque{width:78px;height:78px;font-size:13px;box-shadow:0 8px 22px rgba(0,0,0,.35)}
  .flotte .disque svg{width:18px;height:18px}
}
@media(min-width:820px){.cols{grid-template-columns:1.4fr 1fr 1fr;gap:40px}}
@media(min-width:900px){
  .accueil-grille{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);align-items:center;min-height:min(86vh,760px)}
  .table-vue{order:2;height:100%;min-height:600px;overflow:visible}
  .plateau{left:auto;right:-120px;top:50%;bottom:auto;width:min(46vw,640px);height:min(46vw,640px);margin:-320px 0 0;margin-top:calc(min(46vw,640px) / -2)}
  .ouverture{padding:56px 24px 64px 32px}
  .wrap{padding:0 32px}
  .journee-tete{padding:0 32px}
  .axe{margin:26px max(32px,calc((100% - 1200px) / 2 + 32px)) 20px}
  .piste{padding:0 32px 6px max(32px,calc((100% - 1200px) / 2 + 32px))}
  .piste li{flex-basis:34vw;max-width:460px}
  .piste time{font-size:44px}
  .piste .sans time{font-size:88px}
  .semaine,.table,.avis{padding:100px 0}
  .semaine-grille{grid-template-columns:1fr 1fr;gap:64px;align-items:center}
  .assiettes{height:310px}
  .assiettes img{width:250px;height:250px}
  .assiettes .a2{left:196px;top:44px}
  .table-grille{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:64px}
  .avis-grille{grid-template-columns:1.4fr 1fr 1fr;gap:36px}
  .avis .grand p{font-size:26px}
  .infos-grille{grid-template-columns:1fr 1fr;gap:64px}
  .feuille .wrap{max-width:860px}
}
@media(min-width:960px){.contact-grille{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:64px;align-items:start}}
@media(prefers-reduced-motion:reduce){
  .rond[aria-pressed="true"]{animation:none}
  .disque,.flotte{transition:none}
}
