@font-face {
  font-family: 'Barlow';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/barlow-400.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Barlow';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/barlow-500.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Barlow';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/barlow-600.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Barlow';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/barlow-700.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/barlow-condensed-600.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/barlow-condensed-700.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Caveat Brush';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/caveat-brush-400.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Knewave';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/knewave-400.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Lilita One';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/lilita-one-400.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
:root{
  --rouge:#9B1925; --rouge-fonce:#7A111B; --jaune:#F1B202; --or:#E5A93A;
  --parchemin:#EBD5A6; --creme:#FFF4DC; --bois:#22150D; --bois-clair:#3A2416; --noir:#0E0A07; --ardoise:#2B2A2B;
  --f-titre:'Lilita One',Impact,'Arial Black',sans-serif;
  --f-pinceau:'Knewave','Caveat Brush',cursive;
  --f-main:'Caveat Brush','Segoe Print',cursive;
  --f-texte:'Barlow',system-ui,-apple-system,'Segoe UI',sans-serif;
  --f-etroit:'Barlow Condensed','Barlow',sans-serif;
  --marge:clamp(18px,5vw,72px); --larg:1240px; --top:68px;
  --grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .3 0 0 0 0 .17 0 0 0 0 .06 0 0 0 .5 -.1'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  --taches:url(../img/taches.webp) 0 0/1100px;
  --veines:url(../img/veines.webp) 0 0/1300px 650px;
  --veines-r:url(../img/veines-rouge.webp) 0 0/1300px 650px;
  --dents:conic-gradient(from -45deg at bottom,#0000,#000 1deg 89deg,#0000 90deg) 50%/26px 100%;
}
*,*::before,*::after{box-sizing:border-box}
html{overflow-x:clip;scroll-behavior:smooth;scroll-padding-top:calc(var(--top) + 58px);-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bois);color:var(--creme);font:500 1.0625rem/1.5 var(--f-texte);overflow-x:clip}
img{display:block;max-width:100%;height:auto}
h1,h2,h3,p,ul,dl,figure{margin:0}
ul{padding:0;list-style:none}
a{color:inherit}
:focus-visible{outline:3px solid var(--jaune);outline-offset:3px;border-radius:4px}
.skip{position:absolute;left:-999px;top:8px;z-index:100;background:var(--jaune);color:var(--noir);padding:10px 16px;border-radius:8px;font-weight:700}
.skip:focus{left:8px}

/* Boutons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55em;min-height:50px;padding:.7em 1.5em;border-radius:999px;border:2px solid transparent;font:400 1.125rem/1 var(--f-titre);letter-spacing:.02em;text-decoration:none;cursor:pointer;transition:transform .25s cubic-bezier(.3,1.6,.5,1),background-color .2s,color .2s,box-shadow .25s}
.btn:hover{transform:translateY(-3px) rotate(-1.2deg)}
.btn:active{transform:translateY(0) scale(.97)}
.btn-jaune{background:var(--jaune);color:var(--noir);box-shadow:0 6px 0 #a87a00}
.btn-jaune:hover{box-shadow:0 9px 0 #a87a00}
.btn-rouge{background:var(--rouge);color:#fff;box-shadow:0 6px 0 var(--rouge-fonce);width:100%}
.btn-ligne{border-color:currentColor;color:inherit}
.btn-ligne:hover{background:var(--creme);color:var(--rouge);border-color:var(--creme)}
.btn-tel{background:var(--creme);color:var(--rouge);min-height:44px;padding:.5em 1.1em;font-size:1.05rem}
.btn-tel svg{width:1.1em;height:1.1em}

/* Barre du haut */
.top{position:fixed;inset:0 0 auto;z-index:50;height:var(--top);display:flex;align-items:center;gap:clamp(12px,2.4vw,32px);padding:0 var(--marge);transition:background-color .35s,box-shadow .35s}
.top.is-colle{background:var(--rouge);box-shadow:0 6px 24px #0007}
.top-logo{flex:none;width:54px;transition:transform .4s cubic-bezier(.3,1.6,.5,1)}
.top-logo:hover{transform:rotate(-10deg) scale(1.08)}
.top:not(.is-colle) .top-logo{opacity:0;pointer-events:none}
.logo{display:block;width:100%;height:auto}
.top-nav{display:flex;gap:clamp(14px,2vw,30px);margin-right:auto;font:400 1.05rem var(--f-titre);letter-spacing:.02em}
.top-nav a{text-decoration:none;padding:.4em 0;background:linear-gradient(var(--jaune),var(--jaune)) 0 100%/0 3px no-repeat;transition:background-size .3s}
.top-nav a:hover{background-size:100% 3px}
.statut{appearance:none;border:0;background:none;color:inherit;cursor:pointer;margin:0;padding:0;display:inline-flex;align-items:center;gap:.5em;font:600 1rem var(--f-etroit);letter-spacing:.03em;white-space:nowrap}
.top .statut{padding:.45em .9em;border-radius:999px;background:#0e0a07cc;color:#fff}
.statut i{width:10px;height:10px;border-radius:50%;background:#9a8f80;flex:none}
.statut.is-ouvert i{background:#57d163;box-shadow:0 0 0 0 #57d16399;animation:pouls 2s infinite}
.statut.is-ferme i{background:#ff6a5c}
@keyframes pouls{70%{box-shadow:0 0 0 9px #57d16300}100%{box-shadow:0 0 0 0 #57d16300}}

.statut-chevron{width:11px;height:8px;flex:none;opacity:.8;transition:transform .3s}
.statut:hover .statut-chevron{transform:translateY(2px)}
.top .statut{transition:background-color .2s,transform .3s cubic-bezier(.3,1.6,.5,1)}
.top .statut:hover{background:#000;transform:translateY(-1px)}
.statut-grand{padding:.5em 1em;border:2px solid #fff3;border-radius:999px;transition:border-color .2s,background-color .2s}
.statut-grand:hover{border-color:var(--jaune);background:#fff1}

/* Panneau des horaires */
.horaires-dialogue{padding:0;border:0;background:none;color:#2a1a10;max-width:min(92vw,400px);width:100%;overflow:visible}
.horaires-dialogue::backdrop{background:#0e0a07cc;backdrop-filter:blur(3px)}
.horaires-papier{position:relative;padding:30px 26px 44px;background:var(--grain),var(--taches),var(--parchemin);rotate:-1.2deg;box-shadow:0 30px 70px #000c;-webkit-mask:var(--dents),linear-gradient(#000 0 0) top/100% calc(100% - 13px) no-repeat;mask:var(--dents),linear-gradient(#000 0 0) top/100% calc(100% - 13px) no-repeat}
.horaires-dialogue[open] .horaires-papier{animation:pose .5s cubic-bezier(.3,1.4,.5,1)}
.horaires-dialogue[open]::backdrop{animation:voile .3s}
@keyframes pose{from{opacity:0;transform:translateY(-40px) rotate(6deg) scale(.92)}}
@keyframes voile{from{opacity:0}}
.horaires-papier h2{font:400 2.6rem/1 var(--f-titre);text-transform:uppercase;color:var(--rouge)}
.horaires-etat{margin:4px 0 14px;font:400 1.5rem/1.1 var(--f-main);color:#8a3a1c}
.horaires-etat.is-ouvert{color:#2f7d3a}
.horaires-fermer{position:absolute;top:10px;right:12px;width:44px;height:44px;border:0;border-radius:50%;background:none;color:#5a3a22;font:400 2rem/1 var(--f-titre);cursor:pointer;transition:background-color .2s,transform .3s}
.horaires-fermer:hover{background:#0001;transform:rotate(90deg)}
.semaine{display:grid;margin-bottom:20px;border-top:2px dashed #2a1a1044}
.semaine li{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:8px 10px;border-bottom:2px dashed #2a1a1044;font-size:1.05rem}
.semaine span{font:400 1.2rem/1 var(--f-pinceau);text-transform:uppercase;color:#5a3a22}
.semaine b{font:700 1.15rem/1.25 var(--f-etroit);letter-spacing:.02em;text-align:right;white-space:nowrap}
.semaine .is-auj{background:var(--rouge);color:#fff;border-radius:8px;border-bottom-color:transparent}
.semaine .is-auj span{color:var(--jaune)}
.semaine .is-auj span::after{content:" aujourd'hui";font:400 .85em var(--f-main);text-transform:none;color:#fff;margin-left:.3em}

/* Hero */
.hero{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.08fr);min-height:min(100svh,900px);background:#d9b98a}
.hero-txt{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:center;gap:clamp(14px,2.2vh,24px);padding:calc(var(--top) + 24px) clamp(30px,5vw,80px) 56px var(--marge);margin-right:-26px;background:var(--veines-r),radial-gradient(120% 90% at 20% 10%,#b3202e,var(--rouge) 45%,var(--rouge-fonce));-webkit-mask:conic-gradient(from -135deg at right,#0000,#000 1deg 89deg,#0000 90deg) 0 50%/100% 52px;mask:conic-gradient(from -135deg at right,#0000,#000 1deg 89deg,#0000 90deg) 0 50%/100% 52px}
.hero-h1{display:flex;flex-direction:column;gap:clamp(14px,2.2vh,24px);font:inherit}
.hero-lieu{order:-1;display:block;font:400 clamp(1.5rem,2.2vw,2rem)/1 var(--f-main);color:var(--jaune);transform:rotate(-3deg);transform-origin:left}
.hero-titre{display:block;font:400 clamp(4.4rem,11.5vw,10.5rem)/.84 var(--f-titre);text-transform:uppercase;letter-spacing:-.01em;color:#fff;text-shadow:0 .05em 0 #0003}
.ligne{display:block;overflow:hidden;padding:.06em 0 .04em}
.ligne>span{display:block}
.hero-accroche{font:400 clamp(1.7rem,3vw,2.6rem)/1.05 var(--f-main);color:var(--creme);max-width:16ch}
.hero-cta{display:flex;flex-wrap:wrap;gap:14px;margin-top:6px}
.hero-points{display:flex;flex-wrap:wrap;gap:8px 22px;font:600 1.05rem var(--f-etroit);letter-spacing:.04em;color:#f6d9b6}
.hero-points li{display:flex;align-items:center;gap:.5em}
.hero-points li::before{content:"";width:7px;height:7px;background:var(--jaune);transform:rotate(45deg)}
.hero-photo{position:relative;overflow:hidden}
.hero-img{position:absolute;inset:-6% 0 -6% 0;will-change:transform}
.hero-img img{width:100%;height:100%;object-fit:cover;object-position:50% 60%}
.note{position:absolute;top:calc(var(--top) + 26px);right:clamp(16px,5vw,64px);display:grid;justify-items:center;gap:2px;padding:20px 26px 22px;background:var(--grain),var(--taches),var(--parchemin);color:#5a3a22;font:400 clamp(1.25rem,1.7vw,1.55rem)/1.15 var(--f-pinceau);transform:rotate(4deg);transform-origin:50% -10px;box-shadow:0 14px 30px #0006;clip-path:polygon(2% 3%,30% 0,62% 2%,99% 1%,100% 40%,98% 97%,60% 100%,25% 98%,0 100%,1% 55%)}
.note strong{font:400 clamp(1.5rem,2vw,1.9rem)/1.1 var(--f-titre);text-transform:uppercase;color:var(--rouge);letter-spacing:.03em}

/* Séquence d'ouverture */
.js .ligne>span{transform:translateY(105%)}
.js .hero-lieu,.js .hero-accroche,.js .hero-cta,.js .hero-points{opacity:0;transform:translateY(18px)}
.js .hero-lieu{transform:rotate(-3deg) translateY(18px)}
.js .hero-img{clip-path:inset(0 0 0 100%)}
.js .hero-img img{transform:scale(1.18)}
.js .note{opacity:0;transform:translateY(-140%) rotate(-14deg)}
.pret .ligne>span{transform:none;transition:transform .9s cubic-bezier(.2,.9,.2,1)}
.pret .ligne:nth-child(2)>span{transition-delay:.12s}
.pret .hero-lieu,.pret .hero-accroche,.pret .hero-cta,.pret .hero-points{opacity:1;transform:none;transition:opacity .6s,transform .7s cubic-bezier(.2,.9,.2,1)}
.pret .hero-lieu{transform:rotate(-3deg);transition-delay:.05s}
.pret .hero-accroche{transition-delay:.5s}.pret .hero-cta{transition-delay:.65s}.pret .hero-points{transition-delay:.8s}
.pret .hero-img{clip-path:inset(0);transition:clip-path 1.2s cubic-bezier(.7,0,.2,1) .15s}
.pret .hero-img img{transform:none;transition:transform 2.2s cubic-bezier(.2,.8,.2,1) .15s}
.pret .note{opacity:1;transform:rotate(4deg);animation:chute 1.1s cubic-bezier(.3,1.4,.5,1) 1.1s backwards}
@keyframes chute{0%{opacity:0;transform:translateY(-140%) rotate(-14deg)}55%{opacity:1;transform:translateY(0) rotate(9deg)}75%{transform:rotate(1deg)}100%{transform:rotate(4deg)}}

/* Bande défilante des sauces */
.defile{position:relative;z-index:3;background:var(--jaune);color:var(--noir);overflow:hidden;transform:rotate(-1.2deg) scale(1.03);margin:-14px 0 -10px;box-shadow:0 8px 24px #0006}
.defile-piste{display:flex;width:max-content;animation:defile 46s linear infinite}
.defile span{display:flex;align-items:center;padding:13px 0;font:400 1.35rem/1 var(--f-titre);text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}
.defile span::after{content:"";width:9px;height:9px;margin:0 22px;background:var(--rouge);transform:rotate(45deg)}
@keyframes defile{to{transform:translateX(-50%)}}

/* Rubriques collantes */
.carte-ancre{scroll-margin-top:var(--top)}
.rayons{position:sticky;top:var(--top);z-index:40;background:var(--noir);border-bottom:3px solid var(--jaune)}
.rayons ul{display:flex;gap:6px;overflow-x:auto;padding:9px var(--marge);scrollbar-width:none;max-width:calc(var(--larg) + 2*var(--marge));margin:auto}
.rayons ul::-webkit-scrollbar{display:none}
.rayons a{display:block;padding:.5em 1em;border-radius:999px;font:600 1.05rem/1.1 var(--f-etroit);letter-spacing:.03em;text-decoration:none;white-space:nowrap;color:#e9d9bd;transition:background-color .25s,color .25s}
.rayons a:hover{color:#fff;background:#fff2}
.rayons a.is-actif{background:var(--jaune);color:var(--noir)}

/* Sections de carte */
.rayon{position:relative;padding:0 0 clamp(56px,8vw,104px)}
.rayon>*:not(.bandeau){max-width:var(--larg);margin-inline:auto;padding-inline:var(--marge)}
.bois{background:var(--veines),linear-gradient(#2a190e,#1b100a);color:var(--creme)}
.parchemin{background:var(--grain),var(--taches),var(--parchemin);color:#3b2616}
.ardoise{background:var(--grain),linear-gradient(#323032,#1d1c1d)}
.rouge{background:var(--veines-r),var(--rouge)}
.jaune{background:var(--jaune);color:var(--noir);padding-block:clamp(48px,7vw,84px);-webkit-mask:var(--dents),linear-gradient(#000 0 0) top/100% calc(100% - 13px) no-repeat;mask:var(--dents),linear-gradient(#000 0 0) top/100% calc(100% - 13px) no-repeat;z-index:2;margin-bottom:-13px}
.suite{padding-top:0}

.bandeau{display:flex;flex-wrap:wrap;align-items:center;gap:8px clamp(14px,2.5vw,34px);padding:clamp(18px,2.6vw,30px) max(var(--marge),calc((100vw - var(--larg))/2 + var(--marge)));margin-bottom:clamp(30px,5vw,60px);background:var(--veines-r),var(--rouge);color:#fff;box-shadow:0 8px 22px #0005;position:relative}
.rouge .bandeau{background:var(--noir)}
.bandeau h2{font:400 clamp(2.6rem,7vw,5.4rem)/.9 var(--f-titre);text-transform:uppercase;letter-spacing:0}
.bandeau h2 em{font:400 .5em/1 var(--f-main);text-transform:none;color:var(--jaune);display:inline-block;transform:rotate(-6deg);margin:0 .1em}
.bandeau-note{display:inline-flex;align-items:center;gap:10px;font:400 clamp(1.3rem,2.2vw,1.9rem)/.95 var(--f-main);transform:rotate(-3deg);max-width:13em}
.ico-frites{width:34px;height:42px;flex:none}
.griffe{font:400 clamp(2.4rem,5vw,4rem)/1 var(--f-main);color:var(--jaune);transform:rotate(-7deg);position:absolute;right:max(var(--marge),calc((100vw - var(--larg))/2 + var(--marge)));bottom:-.5em;z-index:2;text-shadow:0 3px 0 #0006}
.js .bandeau h2,.js .bandeau-note,.js .griffe{opacity:0}
.js .bandeau h2{transform:translateX(-40px)}
.bandeau.vu h2{opacity:1;transform:none;transition:opacity .5s,transform .7s cubic-bezier(.2,.9,.2,1)}
.bandeau.vu .bandeau-note{opacity:1;transition:opacity .5s .3s}
.bandeau.vu .griffe{opacity:1;animation:tampon .6s cubic-bezier(.3,1.5,.5,1) .45s backwards}
@keyframes tampon{0%{opacity:0;transform:scale(2.4) rotate(8deg)}60%{opacity:1}100%{transform:scale(1) rotate(-7deg)}}

.rayon-intro{font-size:1.2rem;margin-bottom:clamp(24px,3vw,40px);color:#e8d5b5}
.rayon-intro.sombre{color:#5a3a22}
.manuscrit{font:400 1.45em/1 var(--f-main);color:var(--jaune)}
.manuscrit.grand{font-size:clamp(2.2rem,4.4vw,3.6rem);display:block;transform:rotate(-3deg);transform-origin:left}
.or{color:var(--or);font:700 1.2rem var(--f-etroit);letter-spacing:.06em;text-transform:uppercase}

/* Liste de plats */
.plats{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:clamp(22px,2.6vw,38px) clamp(24px,3.5vw,56px)}
.plats.trois{grid-template-columns:repeat(auto-fill,minmax(min(100%,270px),1fr))}
.plat{display:flex;align-items:center;justify-content:space-between;gap:16px}
.plat-txt{min-width:0}
.plat h3{font:400 clamp(1.45rem,2vw,1.75rem)/1 var(--f-pinceau);color:var(--rouge);text-transform:uppercase;letter-spacing:.01em}
.clair .plat h3{color:#fff}
.plat p{margin-top:5px;font-size:1rem;line-height:1.3;color:#5d4127;max-width:34ch}
.clair .plat p{color:#dcc7a4}
.nouveau{display:inline-block;margin-left:.4em;font:400 .68em/1 var(--f-main);text-transform:none;color:#fff;background:var(--rouge);padding:.25em .55em .3em;border-radius:6px;transform:rotate(-5deg) translateY(-.35em)}
.prix{flex:none;display:inline-grid;grid-auto-flow:column;align-items:start;justify-content:center;align-content:center;width:66px;height:66px;border-radius:50%;background:var(--noir);color:#fff;font:700 1.9rem/1 var(--f-etroit);box-shadow:0 0 0 3px #fff2,0 6px 14px #0006;transition:transform .35s cubic-bezier(.3,1.7,.5,1),background-color .25s}
.prix-c{font-size:.42em;margin:.18em 0 0 1px}
.plat:hover .prix,.case-ligne:hover .prix{transform:scale(1.14) rotate(-10deg);background:var(--rouge)}
.bois .plat:hover .prix,.rouge .case-ligne:hover .prix{background:var(--jaune);color:var(--noir)}
.prix-xl{width:104px;height:104px;font-size:3.1rem;background:var(--jaune);color:var(--noir);box-shadow:0 8px 20px #0007}
.prix-geant{width:clamp(130px,20vw,190px);height:clamp(130px,20vw,190px);font-size:clamp(4rem,9vw,6rem);background:var(--rouge);color:#fff;transform:rotate(8deg)}

/* Apparitions */
.js [data-reveal]:not(.plats){opacity:0;transform:translateY(26px)}
.js [data-reveal].vu:not(.plats){opacity:1;transform:none;transition:opacity .6s calc(var(--i,0)*90ms),transform .8s cubic-bezier(.2,.9,.2,1) calc(var(--i,0)*90ms)}
.js .plats[data-reveal] .plat-txt{opacity:0;clip-path:inset(0 100% 0 0)}
.js .plats[data-reveal] .prix{opacity:0;transform:scale(2) rotate(25deg)}
.js .plats.vu .plat-txt{opacity:1;clip-path:inset(-10% -5% -10% -5%);transition:clip-path .7s cubic-bezier(.6,0,.2,1) calc(var(--i)*70ms),opacity .2s calc(var(--i)*70ms)}
.js .plats.vu .prix{opacity:1;transform:none;transition:opacity .2s calc(var(--i)*70ms + .35s),transform .45s cubic-bezier(.3,1.7,.5,1) calc(var(--i)*70ms + .35s),background-color .25s}
.js .plats.vu.fini .prix{transition:transform .35s cubic-bezier(.3,1.7,.5,1),background-color .25s}
.js .plats.vu .plat:hover .prix{transform:scale(1.14) rotate(-10deg)}

/* Photos */
.avec-photo{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,360px);gap:clamp(28px,5vw,72px);align-items:center}
.avec-photo.inverse{grid-template-columns:minmax(220px,400px) minmax(0,1fr)}
.avec-photo .plats{grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr))}
.photo{border:8px solid var(--creme);box-shadow:0 22px 44px #0008;overflow:hidden;background:var(--creme)}
.photo img{width:100%;aspect-ratio:1/1;object-fit:cover;transition:transform .9s cubic-bezier(.2,.8,.2,1)}
.photo:hover img{transform:scale(1.07)}
.penche-d{rotate:3.5deg}.penche-g{rotate:-3deg}
.inverse .photo img,.couscous .photo img{aspect-ratio:4/3}

/* Atelier tacos */
.atelier{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,360px);gap:clamp(28px,4vw,64px);align-items:start}
.atelier-etapes{display:grid;gap:clamp(26px,3vw,40px);min-width:0}
.duo{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.duo-btn{position:relative;padding:0;border:4px solid transparent;border-radius:18px;overflow:hidden;background:#000;cursor:pointer;color:#fff;aspect-ratio:16/9;transition:border-color .25s,transform .3s cubic-bezier(.3,1.5,.5,1)}
.duo-btn img{width:100%;height:100%;object-fit:cover;opacity:.55;transition:opacity .3s,transform .8s cubic-bezier(.2,.8,.2,1)}
.duo-btn span{position:absolute;left:16px;bottom:10px;font:400 clamp(1.8rem,4vw,3rem)/1 var(--f-titre);text-transform:uppercase;text-shadow:0 3px 12px #000}
.duo-btn:hover img{opacity:.8;transform:scale(1.06)}
.duo-btn.is-on{border-color:var(--jaune);transform:rotate(-1deg)}
.duo-btn.is-on img{opacity:1}
.etape-titre{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5em;margin-bottom:16px;padding:.5em .9em;background:#6b4a2e99;color:var(--or);font:700 clamp(1.25rem,2vw,1.6rem)/1.1 var(--f-etroit);letter-spacing:.09em;text-transform:uppercase;width:fit-content}
.etape-titre b{display:grid;place-items:center;width:1.5em;height:1.5em;border-radius:50%;background:var(--or);color:var(--bois);font:400 1em/1 var(--f-titre)}
.etape-titre small{font:500 .7em var(--f-texte);letter-spacing:0;text-transform:none;color:var(--creme)}
.tailles{display:grid;grid-template-columns:repeat(auto-fit,minmax(104px,1fr));gap:10px}
.taille{display:grid;justify-items:center;gap:2px;padding:12px 6px 10px;border:3px solid #fff2;border-radius:14px;background:#0006;color:#fff;cursor:pointer;font-family:var(--f-etroit);transition:border-color .2s,background-color .2s,transform .3s cubic-bezier(.3,1.6,.5,1)}
.taille b{font-size:1.05rem;font-weight:700;letter-spacing:.06em;color:var(--or)}
.taille strong{font-size:2.5rem;line-height:.95;font-weight:700}
.taille span{font-size:.92rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:#d9c6a4}
.taille:hover{transform:translateY(-4px);border-color:#fff6}
.taille.is-on{background:var(--jaune);border-color:var(--jaune);color:var(--noir);transform:translateY(-4px) rotate(-2deg)}
.taille.is-on b,.taille.is-on span{color:var(--noir)}
.gratine{display:inline-flex;align-items:center;gap:10px;margin-top:16px;font:600 1.15rem var(--f-etroit);letter-spacing:.05em;text-transform:uppercase;cursor:pointer}
.gratine input{appearance:none;width:26px;height:26px;margin:0;border:3px solid var(--or);border-radius:7px;display:grid;place-items:center;cursor:pointer;transition:background-color .2s}
.gratine input:checked{background:var(--or)}
.gratine input:checked::after{content:"";width:12px;height:7px;border:solid var(--bois);border-width:0 0 3px 3px;transform:rotate(-45deg) translate(1px,-1px)}
.gratine em{font-style:normal;color:var(--or);font-size:1.3rem}
.gratine[hidden]{display:none}
.choix{display:flex;flex-wrap:wrap;gap:9px}
.pastille{position:relative;padding:.5em 1em;min-height:44px;border:2px solid #fff3;border-radius:999px;background:#0005;color:var(--creme);font:600 1.02rem var(--f-texte);cursor:pointer;transition:background-color .2s,border-color .2s,color .2s,transform .3s cubic-bezier(.3,1.7,.5,1)}
.pastille:hover{border-color:var(--or);transform:translateY(-2px)}
.pastille.is-on{background:var(--creme);border-color:var(--creme);color:var(--rouge);transform:rotate(-1.5deg) scale(1.04)}
.pastille[data-n]:not([data-n="0"])::after{content:"×" attr(data-n);position:absolute;top:-10px;right:-8px;min-width:26px;padding:3px 6px;border-radius:999px;background:var(--rouge);color:#fff;font:700 .85rem/1.2 var(--f-etroit)}
.pastille.refus{animation:non .35s}
@keyframes non{25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}
.ticket{position:sticky;top:calc(var(--top) + 74px)}
.ticket-papier{padding:26px 24px 40px;background:var(--grain),#fbf3df;color:#2a1a10;rotate:1.5deg;box-shadow:0 24px 50px #000a;-webkit-mask:var(--dents),linear-gradient(#000 0 0) top/100% calc(100% - 13px) no-repeat;mask:var(--dents),linear-gradient(#000 0 0) top/100% calc(100% - 13px) no-repeat}
.ticket-entete{font:400 1.6rem/1 var(--f-main);color:var(--rouge)}
.ticket-nom{font:400 2.2rem/1 var(--f-titre);text-transform:uppercase;margin:4px 0 14px}
.ticket-lignes{display:grid;gap:7px;padding:14px 0;border-block:2px dashed #2a1a1055;font-size:1rem;min-height:64px}
.ticket-lignes div{display:flex;justify-content:space-between;gap:12px;animation:ligne .35s cubic-bezier(.2,.9,.2,1)}
.ticket-lignes dt{font-weight:600}.ticket-lignes dd{margin:0;font-weight:700;white-space:nowrap}
.ticket-lignes .vide{color:#7a6248;font-style:italic;font-weight:500}
@keyframes ligne{from{opacity:0;transform:translateX(-10px)}}
.ticket-total{display:flex;justify-content:space-between;align-items:baseline;margin:14px 0 18px;font:700 1.2rem var(--f-etroit);letter-spacing:.08em;text-transform:uppercase}
.ticket-total strong{font:400 2.6rem/1 var(--f-titre);color:var(--rouge);display:inline-block}
.ticket-total strong.saute{animation:saute .4s cubic-bezier(.3,1.7,.5,1)}
@keyframes saute{40%{transform:scale(1.22) rotate(-4deg)}}
.ticket-aide{margin-top:14px;font-size:.92rem;line-height:1.35;color:#6b5238}

/* Riz crousty */
.vedette{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:clamp(24px,5vw,72px);align-items:center}
.vedette-photo{position:relative}
.vedette-photo img{width:100%;border-radius:50% 50% 46% 54%/56% 52% 48% 44%;aspect-ratio:1.25;object-fit:cover;box-shadow:0 30px 60px #000a;border:8px solid var(--creme)}
.vedette-photo .prix{position:absolute;left:2%;bottom:4%;rotate:-10deg}
.vedette-txt{display:grid;gap:16px;font-size:1.25rem;max-width:26em}
.tasty{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(16px,3vw,40px);margin-top:clamp(40px,6vw,80px)!important}
.tasty figure{position:relative;border-radius:20px;overflow:hidden;background:#000}
.tasty img{width:100%;aspect-ratio:2.1/1;object-fit:cover;transition:transform .9s cubic-bezier(.2,.8,.2,1)}
.tasty figure:hover img{transform:scale(1.06)}
.tasty figcaption{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 18px;background:var(--noir)}
.tasty h3{font:400 clamp(1.3rem,2.6vw,2rem)/1 var(--f-titre);text-transform:uppercase}

/* Salades */
.salades{margin-top:clamp(48px,7vw,90px)!important}
.salades-tete{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}
.titre-vert,.titre-bleu,.titre-rouge,.titre-brun{font:400 clamp(2.4rem,6vw,4.4rem)/.9 var(--f-titre);text-transform:uppercase}
.titre-vert{color:#c6d63a}.titre-bleu{color:#1d2c6e}.titre-rouge{color:var(--rouge)}.titre-brun{color:#5a3418}
.titre-vert span,.titre-bleu span{font:400 .42em/1 var(--f-main);text-transform:none;display:inline-block;transform:rotate(-4deg);color:inherit;opacity:.9}
.liste-salades{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:18px 40px}
.liste-salades li{padding-left:16px;border-left:4px solid #c6d63a}
.liste-salades h3{font:700 1.4rem/1.1 var(--f-etroit);letter-spacing:.06em;text-transform:uppercase;color:#c6d63a}
.liste-salades p{color:#d8d2c6;font-size:1rem;line-height:1.35}

/* Cases snacks */
.cases{align-items:start;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:clamp(16px,2.2vw,28px)}
.case{display:grid;align-content:start;gap:12px;padding:24px;border-radius:20px;background:#0000004d;border:2px solid #ffffff1f;transition:transform .4s cubic-bezier(.3,1.4,.5,1),border-color .3s}
.case:hover{transform:translateY(-6px) rotate(-.6deg);border-color:var(--jaune)}
.case-photo img{width:calc(100% + 48px);max-width:none;margin:-24px -24px 6px;aspect-ratio:16/9;object-fit:cover;border-radius:18px 18px 0 0}
.case-titre{font:400 2.1rem/1 var(--f-titre);text-transform:uppercase;color:var(--jaune)}
.case-titre small{font:400 .62em var(--f-main);text-transform:none;color:#fff;margin-left:.3em}
.case-ligne{display:flex;align-items:center;justify-content:space-between;gap:14px;font-size:1.05rem;line-height:1.25}
.case-ligne b{font:700 1.2em var(--f-etroit);letter-spacing:.04em;color:var(--jaune);margin-right:.25em}
.case .prix{width:58px;height:58px;font-size:1.65rem}
.puces{display:flex;flex-wrap:wrap;gap:7px}
.puces li{padding:.3em .8em;border-radius:999px;background:#ffffff1c;font:600 .98rem var(--f-etroit);letter-spacing:.04em}
.grille{width:100%;border-collapse:collapse;font-size:1.08rem}
.grille th,.grille td{padding:9px 6px;text-align:right;border-bottom:1px dashed #fff4}
.grille thead th{font:600 .95rem var(--f-etroit);letter-spacing:.08em;text-transform:uppercase;color:#f2cfa8}
.grille tbody th{text-align:left;font:400 1.35rem/1 var(--f-pinceau);text-transform:uppercase}
.grille td{font:700 1.3rem var(--f-etroit)}

/* Menu enfant */
.enfant{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:clamp(20px,5vw,60px)}
.enfant h2{font:400 clamp(3rem,9vw,6.5rem)/.85 var(--f-titre);text-transform:uppercase;color:#fff;text-shadow:0 5px 0 #c98f00;margin-bottom:18px}
.enfant-choix{font:400 clamp(1.3rem,2.6vw,2rem)/1.1 var(--f-pinceau);text-transform:uppercase;color:var(--rouge);max-width:22em}
.enfant-plus{font:400 3rem/.8 var(--f-titre);color:var(--rouge)}

/* Couscous, boissons, desserts */
.couscous{display:grid;grid-template-columns:minmax(220px,420px) minmax(0,1fr);gap:clamp(28px,6vw,80px);align-items:center;padding-top:clamp(64px,9vw,110px)}
.couscous .plats{grid-template-columns:1fr;max-width:420px;margin:22px 0}
.sombre-nom .plat h3{color:var(--rouge)}
.etiquette{display:inline-block;padding:.45em 1.1em;border-radius:999px;background:var(--rouge);color:#fff;font:700 1.1rem var(--f-etroit);letter-spacing:.06em;text-transform:uppercase;rotate:-2deg}
.fin{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:clamp(32px,6vw,90px);padding-top:clamp(20px,4vw,50px);border-top:4px dotted #9b192566}
.lignes{display:grid;gap:10px;margin-top:18px;font-size:1.15rem}
.lignes li{display:flex;align-items:baseline;gap:10px}
.lignes li::after{content:"";order:1;flex:1;border-bottom:2px dotted #3b261688}
.lignes b{order:2;font:700 1.4rem var(--f-etroit);color:var(--rouge)}
.parfums{margin-top:14px;max-width:30em;color:#5d4127}

/* À propos et questions */
.apropos{padding-top:clamp(56px,8vw,100px)}
.apropos-grille{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(32px,6vw,90px);align-items:start}
.apropos-grille h2{font-size:clamp(2rem,4.4vw,3.2rem);margin-bottom:18px}
.apropos-grille p{max-width:38em;margin-bottom:14px;font-size:1.12rem;line-height:1.55}
.apropos-grille a{color:var(--rouge);font-weight:700;text-decoration-thickness:2px;text-underline-offset:3px}
.apropos-grille a:hover{color:var(--rouge-fonce);background:#9b192518}
.faq{border-top:2px dashed #3b261655}
.faq details{border-bottom:2px dashed #3b261655}
.faq summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 4px;cursor:pointer;list-style:none;font:700 1.25rem/1.2 var(--f-etroit);letter-spacing:.02em;color:#3b2616;transition:color .2s}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--noir);color:#fff;font:400 1.4rem/1 var(--f-titre);transition:transform .35s cubic-bezier(.3,1.6,.5,1),background-color .25s}
.faq summary:hover{color:var(--rouge)}
.faq details[open] summary::after{transform:rotate(45deg);background:var(--rouge)}
.faq details p{margin:0;padding:0 50px 16px 4px;max-width:none;font-size:1.08rem}
.faq details[open] p{animation:ligne .35s cubic-bezier(.2,.9,.2,1)}
.lien-fiche{font-weight:600;text-underline-offset:3px;color:#e9d9bd}
.lien-fiche:hover{color:var(--jaune)}
.pied a{color:inherit}

/* Infos */
.infos{background:var(--veines),linear-gradient(#1b100a,#0e0805);padding:clamp(64px,9vw,120px) var(--marge)}
.infos-grille{max-width:var(--larg);margin:auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(28px,4vw,56px)}
.infos-appel{grid-column:1/-1;display:grid;justify-items:start;gap:10px;padding-bottom:clamp(28px,4vw,48px);border-bottom:2px dashed #fff3}
.numero{font:400 clamp(3.2rem,12.5vw,10rem)/.9 var(--f-titre);color:var(--rouge);text-decoration:none;letter-spacing:-.01em;-webkit-text-stroke:2px var(--creme);paint-order:stroke fill;transition:color .3s,letter-spacing .5s cubic-bezier(.2,.9,.2,1)}
.numero:hover{color:var(--jaune);letter-spacing:.02em}
.statut-grand{font-size:1.3rem}
.infos-bloc{display:grid;align-content:start;justify-items:start;gap:10px;font-size:1.15rem}
.infos-bloc h2{font:400 1.7rem/1 var(--f-titre);text-transform:uppercase;color:var(--jaune)}
.infos-bloc address{font-style:normal}
.horaires{display:grid;gap:4px;font:700 2rem/1.1 var(--f-etroit)}
.horaires li{display:flex;align-items:center;gap:12px}
.horaires .is-now{color:#7fe38a}
.horaires .is-now::after{content:"en ce moment";font:400 1.25rem var(--f-main);color:#7fe38a;rotate:-3deg}
.halal{padding:.35em 1em;border:2px solid var(--or);border-radius:999px;color:var(--or);font:700 1.05rem var(--f-etroit);letter-spacing:.08em;text-transform:uppercase}

.pied{display:grid;justify-items:center;gap:8px;padding:44px var(--marge) 110px;background:var(--noir);text-align:center;color:#cdbb9d}
.pied .logo{width:92px;margin-bottom:8px}
.pied-petit{font-size:.9rem;color:#8d7c63}
.pied-credit{margin-top:10px;font-size:.95rem;color:#a8967a}
.pied-credit a{color:var(--jaune);font-weight:700;text-decoration:none;background:linear-gradient(var(--jaune),var(--jaune)) 0 100%/100% 2px no-repeat;padding-bottom:2px;transition:color .2s}
.pied-credit a:hover{color:#fff}

.appel-fixe{position:fixed;inset:auto 12px calc(12px + env(safe-area-inset-bottom,0px)) 12px;z-index:60;display:none;align-items:center;justify-content:space-between;gap:12px;padding:13px 20px;border-radius:999px;background:var(--jaune);color:var(--noir);text-decoration:none;box-shadow:0 10px 30px #000a;font:600 1.05rem var(--f-etroit);letter-spacing:.04em;text-transform:uppercase;transform:translateY(150%);transition:transform .5s cubic-bezier(.3,1.3,.5,1)}
.appel-fixe strong{font:400 1.4rem/1 var(--f-titre)}
.appel-fixe.is-la{transform:none}

/* Page 404 */
.page-404{min-height:100svh;display:grid;place-items:center;background:var(--veines-r),radial-gradient(120% 90% at 20% 10%,#b3202e,var(--rouge) 45%,var(--rouge-fonce))}
.perdu{display:grid;justify-items:center;gap:16px;padding:40px var(--marge);text-align:center;max-width:640px}
.perdu .logo{width:130px}
.perdu h1{font:400 clamp(2.6rem,9vw,5rem)/.9 var(--f-titre);text-transform:uppercase}
.perdu .manuscrit.grand{transform-origin:center}
.perdu .hero-cta{justify-content:center}

/* Tablette et mobile */
@media (max-width:980px){
  .top-nav{display:none}.top .statut{margin-left:auto}
  .atelier{grid-template-columns:1fr}
  .ticket{position:static}.ticket-papier{rotate:0deg}
  .infos-grille{grid-template-columns:1fr 1fr}
}
@media (max-width:760px){
  :root{--top:58px}
  .top-logo{width:44px}.top .btn-tel span{display:none}.top .btn-tel{padding:0;width:44px}
  .top .statut{font-size:.95rem}
  .hero{grid-template-columns:1fr;min-height:0}
  .hero-txt{margin:0 0 -26px;padding:calc(var(--top) + 22px) var(--marge) 64px;-webkit-mask:conic-gradient(from -45deg at bottom,#0000,#000 1deg 89deg,#0000 90deg) 50%/52px 100%;mask:conic-gradient(from -45deg at bottom,#0000,#000 1deg 89deg,#0000 90deg) 50%/52px 100%}
  .hero-titre{font-size:clamp(4.6rem,25vw,8rem)}
  .hero-photo{height:78vw;min-height:300px}
  .note{top:auto;bottom:22px;right:14px;padding:14px 18px 16px}
  .js:not(.pret) .hero-img{clip-path:inset(100% 0 0 0)}
  .griffe{position:static;margin-left:auto}
  .tailles{grid-template-columns:repeat(auto-fit,minmax(74px,1fr));gap:7px}
  .taille strong{font-size:1.9rem}.taille span{font-size:.8rem}
  .avec-photo,.avec-photo.inverse,.vedette,.couscous{grid-template-columns:1fr}
  .avec-photo .photo{max-width:320px;margin-inline:auto;order:-1}
  .couscous .photo{max-width:340px}
  .tasty{grid-template-columns:1fr}
  .infos-grille{grid-template-columns:1fr}
  .apropos-grille{grid-template-columns:1fr}
  .appel-fixe{display:flex}
  .enfant{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-delay:0s!important}
  .defile-piste{animation:none;flex-wrap:wrap;width:auto;justify-content:center}
}
