*{box-sizing:border-box;margin:0}
:root{--vert:#0B2318;--vert2:#123826;--nuit:#06120C;--orange:#EB6A12;--orange2:#FF8A2A;--creme:#FFF4E6;--encre:#1A140F;--doux:#6B5E52;--diet:#1E9A50;--titre:'Shrikhand',Georgia,serif;--corps:'Poppins',system-ui,sans-serif;--marge:clamp(18px,5vw,72px)}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{background:var(--nuit);color:var(--creme);font:400 16px/1.55 var(--corps);overflow-x:clip}
html.bloque{overflow:hidden}
a{color:inherit}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
ul,ol{list-style:none;padding:0}
img{max-width:100%;display:block}
[hidden]{display:none!important}
h1,h2,h3{font-weight:400}
.sur{font-size:.78rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase}
:focus-visible{outline:2px solid var(--orange2);outline-offset:3px}

/* En-tête */
.barre{position:fixed;inset:0 0 auto;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px var(--marge);transition:background .35s,box-shadow .35s}
.barre.fonce{background:rgba(6,18,12,.82);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 1px 0 rgba(255,244,230,.08)}
.marque{position:relative;display:flex;align-items:center;gap:8px;min-width:0;text-decoration:none;font:400 clamp(1.05rem,4.6vw,1.3rem)/1 var(--titre);color:var(--creme);white-space:nowrap}
.marque img{width:40px;height:40px;border-radius:50%}
.commander{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 18px;border-radius:99px;background:var(--orange);color:#fff;font-weight:600;font-size:.92rem;box-shadow:0 8px 24px -10px var(--orange);transition:transform .2s}
.commander:active{transform:scale(.97)}
.compte{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:99px;background:var(--creme);color:var(--orange);font-size:.78rem;font-weight:700}

/* Ouverture : la nuit de braise */
.nuit{position:relative;display:grid;grid-template-rows:auto 1fr auto;align-items:center;justify-items:center;min-height:100vh;min-height:100svh;padding:84px var(--marge) 28px;overflow:hidden;text-align:center;background:radial-gradient(70% 55% at 50% 70%,#3A1606 0%,#1A0B04 38%,var(--nuit) 78%)}
.braises{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.nuit-texte{position:relative;z-index:2}
.nuit .sur{color:var(--orange2)}
h1{margin-top:8px;font:400 clamp(4rem,19vw,10rem)/.82 var(--titre);color:var(--orange);text-shadow:0 0 40px rgba(235,106,18,.45),0 6px 0 #7A2C04;letter-spacing:.01em}
.l{display:inline-block}
.l2{color:var(--creme);text-shadow:0 0 34px rgba(255,170,90,.35),0 6px 0 #5C2603}
.scene-bol{position:relative;z-index:1;width:min(84vw,46svh,540px);aspect-ratio:1;margin:clamp(6px,2svh,24px) 0}
.halo{position:absolute;inset:-18%;border-radius:50%;background:radial-gradient(circle,rgba(255,120,30,.55),rgba(235,106,18,.18) 45%,transparent 70%);filter:blur(6px);animation:souffle 4.5s ease-in-out infinite}
.bol{position:relative;width:100%;height:100%;border-radius:50%;filter:drop-shadow(0 28px 40px rgba(0,0,0,.6))}
.nuit .bol{animation:tourne 70s linear infinite}
.nuit-bas{position:relative;z-index:2;display:grid;gap:16px;justify-items:center}
.phrase{font-size:clamp(1.02rem,1.6vw,1.25rem);line-height:1.45;color:rgba(255,244,230,.88)}
.actions{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 22px}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:54px;padding:0 28px;border-radius:99px;background:var(--orange);color:#fff;font-weight:600;text-decoration:none;box-shadow:0 12px 30px -12px var(--orange);transition:transform .2s}
.btn:active{transform:scale(.97)}
.lien{display:inline-flex;align-items:center;min-height:44px;font-weight:500;text-underline-offset:5px}

/* Fin */
.fin{padding:clamp(60px,10vh,110px) var(--marge) 0;background:var(--nuit)}
.faits{display:grid;gap:18px}
.faits li{display:grid;gap:2px;padding-bottom:16px;border-bottom:1px solid rgba(255,244,230,.12)}
.faits strong{font:400 clamp(1.8rem,6vw,2.6rem)/1.05 var(--titre);color:var(--orange2)}
.faits span{color:rgba(255,244,230,.75)}
.fin-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px 22px;margin:30px 0 40px}
.pied{display:flex;flex-wrap:wrap;align-items:center;gap:4px 22px;padding:14px 0 max(14px,env(safe-area-inset-bottom));border-top:1px solid rgba(255,244,230,.12);font-size:.86rem;color:rgba(255,244,230,.7)}
.pied span{margin-right:auto}
.pied a{display:inline-flex;align-items:center;min-height:44px}

/* La commande */
.panier{--titre:'Shrikhand',Georgia,serif;--encre:#1A140F;--taupe:#6B5E52;--ivoire:#FFF4E6;--sn-police:'Poppins',system-ui,sans-serif;position:fixed;inset:auto 0 0;width:min(540px,100%);max-width:100%;max-height:92vh;max-height:92svh;margin:0 auto;padding:22px clamp(16px,4vw,28px) 0;border:0;border-radius:22px 22px 0 0;overflow:hidden auto;overscroll-behavior:contain;background:var(--creme);color:var(--encre)}
.panier::backdrop{background:rgba(4,10,7,.75)}
.fermer{position:absolute;top:10px;right:10px;width:44px;height:44px;border-radius:50%;font-size:1.5rem;line-height:1}
.fermer:focus:not(:focus-visible){outline:0}
.panier h2{font-size:2.1rem;color:var(--orange);padding-right:44px}
.vide p{margin:10px 0 12px;color:var(--doux)}
.choix-rapides{display:grid;gap:8px;padding-bottom:20px}
.rapide{min-height:48px;padding:10px 16px;border-radius:14px;text-align:left;font-weight:500;box-shadow:inset 0 0 0 1px #D9CBB8;transition:background .2s}
.rapide:active{background:#F3E4CF}
.lignes{margin-top:10px}
.lignes li{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid #E5D8C6}
.ligne-nom{font-weight:600;overflow-wrap:anywhere}
.ligne-nom small{display:block;font-weight:400;font-size:.84rem;color:var(--doux)}
.ligne-prix{font-weight:600;white-space:nowrap}
.ligne-moins{width:44px;height:44px;border-radius:50%;box-shadow:inset 0 0 0 1px #D9CBB8;font-size:1.1rem}
.total{margin:12px 0 4px;font:400 1.6rem/1.2 var(--titre);color:var(--vert)}
.creneau-info{font-size:.9rem;color:var(--doux)}
.envoi{margin:16px calc(clamp(16px,4vw,28px)*-1) 0;padding:12px clamp(16px,4vw,28px) max(14px,env(safe-area-inset-bottom));border-top:1px solid #E5D8C6}
.lieu-choisi{font-size:.9rem;text-align:center;overflow-wrap:anywhere}
.envoyer{display:flex;align-items:center;justify-content:center;min-height:54px;margin-top:8px;border-radius:99px;background:#1E7D45;color:#fff;font-weight:600;text-decoration:none}
.panier .vide[hidden],.panier .plein[hidden]{display:none}

/* Petits liens : la zone du doigt grandit, sans rien déplacer. */
.marque::after{content:"";position:absolute;inset:-4px -4px}

@keyframes tourne{to{transform:rotate(360deg)}}
@keyframes souffle{0%,100%{opacity:.75;transform:scale(1)}50%{opacity:1;transform:scale(1.06)}}

@media (min-width:900px){
  .nuit{grid-template-columns:1.1fr 1fr;grid-template-rows:1fr auto;text-align:left;justify-items:start;column-gap:4vw}
  .nuit-texte{grid-column:1;grid-row:1;align-self:end}
  .nuit-bas{grid-column:1;grid-row:2;justify-items:start;align-self:start;margin-top:22px}
  .actions{justify-content:flex-start}
  .scene-bol{grid-column:2;grid-row:1/3;width:min(40vw,70svh,620px);justify-self:center}
  .faits{grid-template-columns:repeat(3,1fr)}
  .faits li{border-bottom:0;border-left:1px solid rgba(255,244,230,.12);padding:0 0 0 18px}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}html{scroll-behavior:auto}}

/* La borne de commande, comme au restaurant */
h2{font:400 clamp(2.6rem,10vw,5rem)/.95 var(--titre)}
.intro{margin:14px 0 0;color:rgba(255,244,230,.8);max-width:32em}
.borne-section{padding:clamp(70px,12vh,120px) var(--marge) clamp(60px,10vh,100px);background:linear-gradient(180deg,var(--nuit),var(--vert) 40%,var(--vert))}
.borne-tete .sur{color:var(--orange2)}
.borne-tete h2{margin-top:8px;color:var(--creme)}
.borne{position:relative;max-width:860px;margin:32px auto 0;padding:10px;border-radius:34px;background:linear-gradient(150deg,#2E2E2E,#0C0C0C 60%);box-shadow:0 0 0 1px #444,inset 0 1px 0 rgba(255,255,255,.14),0 50px 90px -30px rgba(0,0,0,.85)}
.borne-ecran{position:relative;border-radius:26px;overflow:clip;background:#FFF8F0;color:var(--encre)}
.b-tete{display:flex;align-items:center;gap:10px;padding:10px 16px;background:var(--orange);color:#fff}
.b-tete img{width:36px;height:36px;border-radius:50%;background:#fff}
.b-nom{font:400 1.2rem/1 var(--titre)}
.b-heure{margin-left:auto;font-weight:600;font-variant-numeric:tabular-nums;opacity:.92}
.b-cats{display:flex;gap:8px;overflow-x:auto;padding:12px;background:#fff;border-bottom:1px solid #F1E4D3;scrollbar-width:none}
.b-cats::-webkit-scrollbar{display:none}
.b-cats button{flex:1 0 auto;display:flex;align-items:center;gap:8px;min-height:56px;padding:6px 14px 6px 6px;border-radius:16px;background:#FFF1E2;color:var(--encre);font-weight:600;font-size:.92rem;white-space:nowrap;transition:background .25s,color .25s,box-shadow .25s}
.b-cats img{width:44px;height:44px;border-radius:12px;object-fit:cover}
.b-cats [aria-selected=true]{background:var(--orange);color:#fff;box-shadow:0 10px 22px -12px var(--orange)}
.b-contenu{padding:14px}
.b-banniere{position:relative;display:grid;align-items:center;border-radius:22px;overflow:hidden;color:#fff}
.braise-ban{grid-template-columns:minmax(0,1fr) 128px;min-height:150px;padding:18px 0 18px 18px;background:radial-gradient(120% 140% at 100% 50%,#FF8A2A,var(--orange) 45%,#B84A06)}
.braise-ban img{position:relative;width:190px;max-width:none;margin-left:-20px;border-radius:50%;filter:drop-shadow(0 18px 24px rgba(0,0,0,.35));animation:tourne 60s linear infinite}
.b-ban-texte{position:relative;z-index:1;display:grid;gap:4px}
.b-ban-sur{font-size:.74rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;opacity:.9}
.b-ban-texte strong{font:400 clamp(1.6rem,6vw,2.3rem)/1 var(--titre)}
.b-ban-texte span:last-child{font-size:.9rem;opacity:.92}
.abo-ban{gap:14px;padding:18px;background:radial-gradient(120% 140% at 100% 0%,#1E5A3E,var(--vert) 60%)}
.b-ban-texte .b-ban-prix{font:400 clamp(1.8rem,7vw,2.4rem)/1 var(--titre);color:var(--orange2);opacity:1}
.b-ban-prix small{font:500 .95rem var(--corps);color:#fff;opacity:.8}
.b-ban-btn{justify-self:start;min-height:48px;padding:0 20px;border-radius:99px;background:var(--creme);color:var(--vert);font-weight:700}
.b-titre-grille{margin:18px 2px 0;font-weight:700;font-size:1.02rem}
.b-grille{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}
.b-case{position:relative;display:grid;align-content:start;text-align:left;border-radius:18px;background:#fff;overflow:hidden;box-shadow:0 12px 26px -16px rgba(80,40,0,.4),inset 0 0 0 1px #F2E6D6;transition:transform .15s,box-shadow .2s}
.b-case:active{transform:scale(.97)}
@media (hover:hover){.b-case:hover{box-shadow:0 16px 30px -14px rgba(80,40,0,.5),inset 0 0 0 2px var(--orange)}}
.b-case-photo{position:relative;display:block;aspect-ratio:1;overflow:hidden;background:#F4E9DA}
.b-case-photo img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
@media (hover:hover){.b-case:hover img{transform:scale(1.05)}}
.b-case-badge{position:absolute;left:8px;top:8px;padding:3px 9px;border-radius:99px;background:var(--orange);color:#fff;font-size:.7rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}
.b-case-texte{display:grid;gap:2px;padding:10px 50px 14px 12px}
.b-case-texte strong{font-size:.98rem;font-weight:700;line-height:1.25}
.b-case-sous{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:.8rem;line-height:1.3;color:var(--doux)}
.b-case-prix{font:400 1.2rem/1.1 var(--titre);color:var(--orange)}
.b-plus{position:absolute;right:10px;bottom:10px;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--orange);color:#fff;font-size:1.4rem;line-height:1;box-shadow:0 8px 16px -8px var(--orange)}
.b-barre{position:sticky;bottom:0;z-index:2;display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--vert);color:#fff}
.b-total{display:grid;gap:1px;min-width:0}
.b-nombre{font-size:.86rem;opacity:.85}
.b-somme{font:400 1.35rem/1 var(--titre);color:var(--orange2)}
.b-voir{flex:none;margin-left:auto;min-height:48px;padding:0 20px;border-radius:99px;background:var(--orange);color:#fff;font-weight:700}
.b-voir:disabled{opacity:.4;cursor:default}
.sans-js{margin-top:20px;display:grid;gap:6px}

/* La fiche plat, ouverte en touchant une case */
.fiche{--titre:'Shrikhand',Georgia,serif;position:fixed;inset:auto 0 0;width:min(520px,100%);max-width:100%;max-height:92vh;max-height:92svh;margin:0 auto;padding:0;border:0;border-radius:24px 24px 0 0;overflow:hidden auto;overscroll-behavior:contain;background:#FFF8F0;color:var(--encre)}
.fiche::backdrop{background:rgba(4,10,7,.75)}
.fiche .fermer{z-index:2;background:rgba(255,255,255,.9)}
.fiche-photo{aspect-ratio:4/3;overflow:hidden;background:#F4E9DA}
.fiche-photo img{width:100%;height:100%;object-fit:cover}
.fiche-corps{display:grid;gap:8px;padding:18px clamp(16px,4vw,26px) max(18px,env(safe-area-inset-bottom))}
.fiche-badge{justify-self:start;padding:3px 10px;border-radius:99px;background:var(--orange);color:#fff;font-size:.72rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}
.fiche-titre{font:400 clamp(1.6rem,6vw,2.1rem)/1.05 var(--titre);color:var(--vert)}
.fiche-texte{color:var(--doux)}
.fiche-prix{font:400 1.6rem/1 var(--titre);color:var(--orange)}
.pas{display:flex;align-items:center;justify-self:start;border-radius:99px;box-shadow:inset 0 0 0 1px #D9CBB8}
.pas button{width:48px;height:48px;font-size:1.3rem}
.pas output{min-width:24px;text-align:center;font-weight:700}
.fiche-ajouter{min-height:56px;margin-top:6px;border-radius:99px;background:var(--orange);color:#fff;font-weight:700;font-size:1rem;box-shadow:0 12px 26px -12px var(--orange)}

@media (min-width:900px){
  .borne::after{content:"";position:absolute;left:50%;bottom:-74px;width:34%;height:74px;transform:translateX(-50%);border-radius:0 0 18px 18px;background:linear-gradient(90deg,#141414,#2F2F2F 50%,#141414);z-index:-1}
  .borne-section{padding-bottom:150px}
  .borne-ecran{display:grid;grid-template-columns:210px minmax(0,1fr);grid-template-areas:"tete tete" "cats contenu" "barre barre"}
  .b-tete{grid-area:tete}
  .b-cats{grid-area:cats;flex-direction:column;border-bottom:0;border-right:1px solid #F1E4D3;overflow:visible}
  .b-cats button{flex:none}
  .b-contenu{grid-area:contenu;padding:18px}
  .b-barre{grid-area:barre}
  .b-grille{grid-template-columns:repeat(3,minmax(0,1fr))}
  .braise-ban{grid-template-columns:minmax(0,1fr) 220px;min-height:200px}
  .braise-ban img{width:280px}
}
.braise-ban .b-ban-texte{grid-column:1;grid-row:1}
.braise-ban img{grid-column:2;grid-row:1;align-self:center;height:auto;aspect-ratio:1}
@media (min-width:900px){.braise-ban img{height:auto}}

/* Les plats de la semaine en liste : vignette nette, plat en titre, jour en étiquette */
.b-liste{display:grid;gap:8px;margin-top:10px}
.b-ligne{display:grid;grid-template-columns:64px minmax(0,1fr) auto;align-items:center;gap:12px;padding:8px 12px 8px 8px;border-radius:16px;background:#fff;text-align:left;box-shadow:inset 0 0 0 1px #F2E6D6;transition:transform .15s,box-shadow .2s}
.b-ligne:active{transform:scale(.98)}
@media (hover:hover){.b-ligne:hover{box-shadow:inset 0 0 0 2px var(--orange)}}
.b-ligne img{width:64px;height:64px;border-radius:12px;object-fit:cover}
.b-ligne-texte{display:grid;gap:2px;min-width:0}
.b-ligne-jour{justify-self:start;padding:1px 8px;border-radius:99px;background:#FFF1E2;color:var(--orange);font-size:.7rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}
.b-ligne.jour{box-shadow:inset 0 0 0 2px var(--orange)}
.b-ligne.jour .b-ligne-jour{background:var(--orange);color:#fff}
.b-ligne strong{font-size:.98rem;font-weight:600;line-height:1.3}
.b-ligne-fleche{font-size:1.6rem;line-height:1;color:var(--orange)}
.fiche.petite .fiche-photo{width:min(200px,52vw);aspect-ratio:1;margin:22px auto 0;border-radius:22px;box-shadow:0 18px 30px -16px rgba(80,40,0,.5)}
@media (min-width:900px){.b-liste{grid-template-columns:repeat(2,minmax(0,1fr))}}
.b-nombre{white-space:nowrap}
.abo-ban .b-ban-texte .b-ban-prix{font:400 clamp(1.8rem,7vw,2.4rem)/1 var(--titre);color:var(--orange2);opacity:1}
