/* =========================================================
   DEUX FRÈRES FAST FOOD — Pontault-Combault
   Typo : Unbounded (display) + Figtree (texte) + Gochi Hand (accent)
   ========================================================= */

:root{
  --ink:        #0B0908;
  --cream:      #FBF3E7;
  --cream-dim:  #B9AC9E;
  --red:        #E2231A;
  --orange:     #FF6B18;
  --yellow:     #FFC220;

  --grad-fire:  linear-gradient(100deg, var(--yellow), var(--orange) 45%, var(--red));

  --font-head:  'Unbounded', 'Bricolage Grotesque', 'Segoe UI', sans-serif;
  --font-body:  'Figtree', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-hand:  'Gochi Hand', cursive;

  --wrap: 1140px;
  --r:    20px;
  --r-sm: 13px;

  --ease: cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{ box-sizing:border-box; }

/* overflow-x sur <html> ET <body> : sur iOS Safari, le poser sur body
   seul est ignoré, et le moindre débordement élargit le viewport de
   mise en page — ce qui dézoome toute la page. */
html{
  scroll-behavior:smooth;
  -webkit-text-size-adjust:100%; text-size-adjust:100%;
  overflow-x:hidden; overflow-x:clip;
}

body{
  margin:0; background:var(--ink); color:var(--cream);
  font-family:var(--font-body); font-size:16px; line-height:1.65;
  max-width:100vw; overflow-x:hidden; overflow-x:clip;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; }
::selection{ background:var(--red); color:#fff; }

.wrap{ width:min(100% - 2.5rem, var(--wrap)); margin-inline:auto; }

/* =========================================================
   ÉCRAN D'ENTRÉE — ~1,5 s
   Uniquement opacity + transform : le GPU compose, rien n'est
   repeint. L'écran est ensuite retiré du DOM par app.js.
   ========================================================= */
.intro{
  position:fixed; inset:0; z-index:10000;
  display:grid; place-items:center;
  background:radial-gradient(70% 55% at 50% 45%, #2A1206 0%, transparent 70%), var(--ink);
  pointer-events:none; contain:strict;
  animation:introOut .5s cubic-bezier(.7,0,.3,1) 1.14s forwards;
}
.no-intro .intro{ display:none; }
@keyframes introOut{ to{ transform:translateY(-101%); visibility:hidden; } }

.intro__stage{ text-align:center; padding:1.5rem; }
.intro__mark{ width:min(28vw,108px); height:auto; margin:0 auto .8rem; display:block; overflow:visible; }

.in__fork, .in__knife{ opacity:0; }
.in__fork{
  transform:translate3d(-22px,0,0) rotate(-12deg); transform-origin:20% 90%;
  animation:cutlery .46s cubic-bezier(.2,.9,.3,1) .2s forwards;
}
.in__knife{
  transform:translate3d(22px,0,0) rotate(12deg); transform-origin:80% 90%;
  animation:cutlery .46s cubic-bezier(.2,.9,.3,1) .26s forwards;
}
@keyframes cutlery{ to{ opacity:1; transform:none; } }

.in__flame{
  opacity:0; transform:translate3d(0,10px,0) scale(.55); transform-origin:50% 62%;
  animation:flameUp .48s cubic-bezier(.2,1.4,.4,1) .04s forwards;
}
@keyframes flameUp{ to{ opacity:1; transform:none; } }

.intro__name{
  margin:0; font:800 clamp(1.8rem,7.5vw,2.8rem)/.92 var(--font-head);
  letter-spacing:-.055em; color:var(--yellow);
}
.intro__name span{
  display:block; opacity:0; transform:translate3d(0,14px,0);
  animation:introUp .42s cubic-bezier(.2,.9,.3,1) forwards;
}
.intro__name span:nth-child(1){ animation-delay:.4s; }
.intro__name span:nth-child(2){ animation-delay:.48s; color:var(--orange); }
@keyframes introUp{ to{ opacity:1; transform:none; } }

.intro__tag{
  display:inline-block; margin:.65rem 0 0; padding:.3em 1.1em; border-radius:999px;
  background:var(--red); color:#FFF3CF;
  font:800 .6rem/1 var(--font-body); letter-spacing:.34em;
  opacity:0; transform:scale(.85);
  animation:introTag .38s cubic-bezier(.2,1.5,.4,1) .62s forwards;
}
@keyframes introTag{ to{ opacity:1; transform:none; } }

@media (prefers-reduced-motion:reduce){ .intro{ display:none; } }

/* =========================================================
   AVIS
   ========================================================= */
.avis{
  display:grid; gap:1rem;
  grid-template-columns:repeat(auto-fit,minmax(290px,1fr));
  max-width:840px; margin-inline:auto;
}
.avis__c{
  display:flex; align-items:center; gap:1rem;
  padding:1.4rem 1.5rem; border-radius:var(--r);
  border:1px solid rgba(251,243,231,.12);
  background:rgba(251,243,231,.04);
  text-decoration:none; color:var(--cream);
  transition:transform .4s var(--ease), border-color .4s, box-shadow .4s;
  contain:layout style;
}
.avis__c:hover{ transform:translateY(-6px); box-shadow:0 22px 50px -24px rgba(0,0,0,.7); }
.avis__c--google:hover{ border-color:rgba(66,133,244,.5); }
.avis__c--uber:hover{ border-color:rgba(6,193,103,.5); }

.avis__logo{
  display:grid; place-items:center; flex:none;
  width:46px; height:46px; border-radius:13px;
  background:#fff;
}
.avis__logo svg{ width:24px; height:24px; }
.avis__logo--uber{
  background:#06C167; color:#04231A;
  font:700 .62rem/1 var(--font-body); letter-spacing:-.01em;
}
.avis__logo--uber b{ font-weight:800; }

.avis__txt{ flex:1; min-width:0; }
.avis__txt b{ display:block; font:700 1.02rem/1.2 var(--font-head); letter-spacing:-.035em; }
.avis__txt em{ display:block; font-style:normal; font-size:.78rem; color:var(--cream-dim); margin-top:.2rem; }
.avis__stars{ flex:none; color:var(--yellow); letter-spacing:.06em; font-size:.9rem; }

@media (max-width:520px){
  .avis__c{ padding:1.1rem 1.15rem; gap:.8rem; }
  .avis__stars{ display:none; }
}

/* accès direct à la carte, sous les offres du moment */
.offers__more{
  display:flex; flex-wrap:wrap; gap:.7rem; justify-content:center;
  margin:2rem 1.25rem 0;
}

.grain{
  position:fixed; inset:0; z-index:9999; pointer-events:none; opacity:.045;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ============ FOND ============
   Dégradés peints une fois, sans animation : un flou de 90 px animé en
   continu occupe le GPU en permanence et fait chauffer le téléphone. */
.bg{
  position:fixed; inset:0; z-index:-1; overflow:hidden; pointer-events:none;
  background:
    radial-gradient(58% 42% at 12% 4%,  rgba(176,53,10,.42), transparent 70%),
    radial-gradient(52% 38% at 92% 46%, rgba(140,17,9,.40), transparent 70%),
    radial-gradient(46% 32% at 38% 96%, rgba(122,74,5,.28), transparent 70%),
    var(--ink);
}
.bg__orb{ display:none; }

/* ============ MOUVEMENT ============
   Volontairement sobre : uniquement opacity + translate, tous deux
   composités par le GPU sans repeindre quoi que ce soit.
   Aucun filter:blur() pendant le scroll — c'est ce qui saturait
   le téléphone et rendait le texte illisible. */
[data-anim]{ opacity:0; }
[data-anim="fade"]{ transform:translate3d(0,10px,0); transition:opacity .5s var(--ease), transform .5s var(--ease); }
[data-anim="up"]  { transform:translate3d(0,22px,0); transition:opacity .55s var(--ease), transform .55s var(--ease); }
[data-anim].is-in { opacity:1; transform:none; }

.offers > *:nth-child(2), .order > *:nth-child(2){ transition-delay:.06s; }
.offers > *:nth-child(3), .order > *:nth-child(3){ transition-delay:.12s; }
.offers > *:nth-child(4){ transition-delay:.18s; }

/* titres animés mot par mot */
.word{ display:inline-block; }
.word > i{
  display:inline-block; font-style:inherit;
  opacity:0; transform:translate3d(0,.3em,0);
  transition:opacity .5s var(--ease), transform .5s var(--ease);
  transition-delay:calc(var(--i) * 45ms);
}
.is-in .word > i{ opacity:1; transform:none; }

/* ============ BOUTONS ============ */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.6em;
  padding:.85em 1.5em; border:0; border-radius:999px;
  background:transparent; color:var(--cream);
  font:600 .95rem/1 var(--font-body); text-decoration:none; cursor:pointer;
  transition:transform .3s var(--ease), box-shadow .3s var(--ease), color .3s, border-color .3s;
}
.btn svg{ width:1.15em; height:1.15em; fill:currentColor; flex:none; }
.btn:hover{ transform:translateY(-3px) scale(1.02); }
.btn:active{ transform:translateY(0) scale(.98); }
.btn:focus-visible{ outline:3px solid var(--yellow); outline-offset:3px; }
.btn--primary{ background:var(--grad-fire); color:#1A0B04; font-weight:800; box-shadow:0 10px 30px -8px rgba(226,35,26,.6); }
.btn--primary:hover{ box-shadow:0 18px 44px -10px rgba(255,107,24,.75); }
.btn--ghost{ border:1.5px solid rgba(251,243,231,.26); }
.btn--ghost:hover{ border-color:var(--yellow); color:var(--yellow); }
.btn--xl{ padding:1.05em 2.1em; font-size:1rem; }
.btn--block{ display:flex; width:100%; }

/* pilule d'état */
.pill{
  display:inline-flex; align-items:center; gap:.55em;
  margin:0 0 1.3rem; padding:.5em 1.1em; border-radius:999px;
  border:1px solid rgba(251,243,231,.16); background:rgba(251,243,231,.05);
  backdrop-filter:blur(10px);
  font-size:.78rem; font-weight:600; color:var(--cream-dim); letter-spacing:.02em;
}
.pill i{ width:7px; height:7px; border-radius:50%; background:#3FD07A; box-shadow:0 0 0 0 rgba(63,208,122,.6); animation:live 2.4s ease-out infinite; }
@keyframes live{ 70%{ box-shadow:0 0 0 8px rgba(63,208,122,0); } 100%{ box-shadow:0 0 0 0 rgba(63,208,122,0); } }
.pill--closed i{ background:var(--red); animation:none; }

/* =========================================================
   NAV — pilule flottante
   ========================================================= */
/* Centrée par marges auto et NON par translateX(-50%) : un ancêtre
   transformé devient le bloc conteneur des enfants position:fixed,
   ce qui décalait le menu déroulant hors de l'écran. */
.nav{
  position:fixed; top:14px; left:0; right:0; margin-inline:auto; z-index:100;
  display:flex; align-items:center; gap:1.4rem;
  width:max-content; max-width:calc(100% - 1.6rem);
  padding:.5rem .5rem .5rem 1.1rem;
  border-radius:999px;
  border:1px solid rgba(251,243,231,.14);
  background:rgba(18,14,13,.72);
  /* valeur fixe : un backdrop-filter recalculé à chaque frame de scroll
     était l'un des principaux postes de chauffe */
  backdrop-filter:blur(18px) saturate(1.4);
  box-shadow:0 10px 34px rgba(0,0,0,.45), inset 0 1px 0 rgba(251,243,231,.09);
  transition:background .4s var(--ease), border-color .4s, box-shadow .4s, top .4s var(--ease);
}
.nav.is-stuck{
  top:10px; background:rgba(18,14,13,.86);
  box-shadow:0 14px 40px rgba(0,0,0,.6), inset 0 1px 0 rgba(251,243,231,.1);
}
.nav__logo{ display:flex; align-items:center; gap:.5rem; text-decoration:none; flex:none; color:inherit; }
.nav__logo img{ width:26px; height:auto; }
.nav__logo span{ font:700 .86rem/1 var(--font-head); letter-spacing:-.03em; white-space:nowrap; }
/* bouton « Accueil » : mobile uniquement */
.nav__menubtn{ display:none; }
.nav__chev{ width:15px; height:15px; opacity:.75; transition:transform .3s var(--ease); }
.nav.is-open .nav__chev{ transform:rotate(180deg); }

.nav__links{ display:flex; gap:1.5rem; }
.nav__links a{
  position:relative; text-decoration:none; font-weight:500; font-size:.87rem;
  color:var(--cream-dim); white-space:nowrap; transition:color .25s;
}
.nav__links a::after{
  content:''; position:absolute; left:50%; translate:-50% 0; bottom:-7px;
  width:16px; height:2px; border-radius:2px; background:var(--yellow);
  transform:scaleX(0); transition:transform .3s var(--ease);
}
.nav__links a:hover{ color:var(--cream); }
.nav__links a:hover::after{ transform:scaleX(1); }
/* page courante : repérable d'un coup d'œil */
.nav__links a.is-current{ color:var(--cream); font-weight:700; }
.nav__links a.is-current::after{ transform:scaleX(1); }

/* ---- choix de la plateforme de commande ---- */
.nav__order{ position:relative; flex:none; }
.ordermenu{
  position:absolute; top:calc(100% + 12px); right:0;
  width:min(84vw, 290px); padding:.55rem;
  border-radius:20px; border:1px solid rgba(251,243,231,.14);
  background:rgba(18,14,13,.96); backdrop-filter:blur(20px);
  box-shadow:0 22px 54px rgba(0,0,0,.65);
  opacity:0; visibility:hidden; transform:translateY(-8px) scale(.97);
  transform-origin:top right;
  transition:opacity .26s var(--ease), transform .26s var(--ease), visibility .26s;
  z-index:5;
}
.ordermenu[hidden]{ display:block; }          /* on anime, on ne coupe pas */
.nav.is-order .ordermenu{ opacity:1; visibility:visible; transform:none; }
.ordermenu__t{
  margin:.35rem .6rem .55rem; font-size:.66rem; font-weight:800;
  letter-spacing:.16em; text-transform:uppercase; color:var(--orange);
}
.ordermenu__opt{
  display:block; padding:.7rem .8rem; border-radius:13px;
  text-decoration:none; color:var(--cream);
  transition:background .22s var(--ease), transform .22s var(--ease);
}
.ordermenu__opt span{ display:block; font:700 .92rem/1.2 var(--font-body); }
.ordermenu__opt em{ display:block; font-style:normal; font-size:.72rem; color:var(--cream-dim); margin-top:.15rem; }
.ordermenu__opt:hover, .ordermenu__opt:focus-visible{ background:rgba(251,243,231,.08); transform:translateX(3px); outline:none; }
.ordermenu__opt--uber span{ color:#3FD07A; }
.ordermenu__opt--deliveroo span{ color:#00CCBC; }
.ordermenu__opt--tel span{ color:var(--yellow); }
.nav.is-order .nav__cta{ filter:saturate(1.15); }

.nav__cta{
  display:inline-flex; align-items:center; gap:.5em; flex:none;
  border:0; cursor:pointer; font-family:var(--font-body);
  padding:.6em 1.1em; border-radius:999px;
  background:var(--grad-fire); color:#1A0B04;
  font:800 .84rem/1 var(--font-body); text-decoration:none; white-space:nowrap;
  transition:transform .3s var(--ease), box-shadow .3s;
}
.nav__cta svg{ width:.95em; height:.95em; fill:currentColor; }
.nav__cta:hover{ transform:scale(1.04); box-shadow:0 8px 22px -6px rgba(255,107,24,.7); }

.nav__burger{ display:none; flex-direction:column; gap:5px; background:none; border:0; padding:9px; cursor:pointer; }
.nav__burger span{ width:20px; height:2px; background:var(--cream); border-radius:2px; transition:transform .3s var(--ease), opacity .3s; }
.nav.is-open .nav__burger span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav.is-open .nav__burger span:nth-child(2){ opacity:0; }
.nav.is-open .nav__burger span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

/* =========================================================
   HERO
   ========================================================= */
.hero{
  position:relative; min-height:100svh;
  display:flex; align-items:center; justify-content:center;
  text-align:center; padding:8rem 1.25rem 5rem;
}
.hero__inner{ width:min(100%, 780px); }

.hero__logo{
  display:block; width:min(66vw, 270px); height:auto; margin:0 auto 1.4rem;
  opacity:0; transform:translateY(-8px);
  animation:logoIn .55s var(--ease) 1.28s forwards;
}
/* pas d'écran d'entrée à jouer → le logo apparaît tout de suite */
.no-intro .hero__logo{ animation-delay:.05s; }
@keyframes logoIn{ to{ opacity:1; transform:none; } }
.logo-word{ font-family:var(--font-head); font-weight:800; font-size:72px; letter-spacing:-3px; }
.logo-sub{ font-family:var(--font-body); font-weight:800; font-size:13.5px; letter-spacing:4.4px; }
/* Pas d'animation sur la flamme : une transform CSS écrasait l'attribut
   transform="translate(210 74)" du SVG et la faisait partir hors du logo. */

.hero__title{
  margin:0; font-family:var(--font-head); font-weight:800;
  font-size:clamp(2rem, 5.2vw, 3.7rem); line-height:1.08; letter-spacing:-.055em;
}
/* Couleur pleine, pas de background-clip:text : les mots à l'intérieur
   sont animés (transform + filter), ce qui casse le découpage du dégradé
   sur WebKit et rend le texte totalement invisible sur iPhone. */
.hero__title .hl{
  font-family:var(--font-hand); font-weight:400; font-size:1.3em; letter-spacing:0;
  color:var(--yellow);
  display:inline-block; transform:rotate(-2.5deg);
}

.hero__sub{ margin:1.5rem auto 2.1rem; max-width:44ch; font-size:clamp(.98rem,1.7vw,1.12rem); color:var(--cream-dim); transition-delay:.1s; }
.hero__sub strong{ color:var(--cream); }
.hero__actions{ display:flex; flex-wrap:wrap; gap:.9rem; justify-content:center; transition-delay:.18s; }

.hero__trust{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:.5rem;
  margin:2.4rem 0 0; font-size:.84rem; color:var(--cream-dim); transition-delay:.26s;
}
.hero__trust b{ color:var(--cream); font-weight:800; }
.hero__trust em{ font-style:normal; opacity:.4; }
.stars{ color:var(--yellow); letter-spacing:.1em; }

/* =========================================================
   SECTIONS
   ========================================================= */
.section{ padding:clamp(4.5rem,10vw,7.5rem) 0; position:relative; }
.section--menu{ background:linear-gradient(180deg, transparent, rgba(20,16,16,.86) 10%, rgba(20,16,16,.86) 90%, transparent); }
/* le carrousel place ses cartes en absolu bien au-delà de l'écran :
   sans ce clip, il élargit le document et dézoome toute la page */
.section--menus{ padding-bottom:clamp(3rem,7vw,4.5rem); overflow-x:hidden; overflow-x:clip; }

.shead{ max-width:56ch; margin:0 auto clamp(2.4rem,5vw,3.4rem); text-align:center; padding-inline:1.25rem; }
.shead__kicker{ margin:0 0 .8rem; font-size:.7rem; font-weight:800; letter-spacing:.28em; text-transform:uppercase; color:var(--orange); }
.shead__title{
  margin:0; font-family:var(--font-head); font-weight:800;
  font-size:clamp(1.7rem,4.4vw,2.9rem); line-height:1.1; letter-spacing:-.055em;
}
.shead__title .hl{
  font-family:var(--font-hand); font-weight:400; font-size:1.3em; letter-spacing:0;
  color:var(--yellow);
  display:inline-block; transform:rotate(-2deg);
}
.shead__lead{ margin:1.1rem 0 0; color:var(--cream-dim); font-size:.93rem; }
.shead__pdf{ margin-top:1.3rem; font-size:.86rem; padding:.7em 1.3em; }
.shead__pdf svg{ width:1.05em; height:1.05em; fill:var(--yellow); }

/* =========================================================
   CARROUSEL 3D (coverflow)
   ========================================================= */
.coverflow{ position:relative; }
.cf__stage{
  position:relative; height:clamp(420px, 52vw, 560px);
  perspective:1500px; transform-style:preserve-3d;
  cursor:grab; touch-action:pan-y;
}
.cf__stage.is-drag{ cursor:grabbing; }
.cf__stage:focus-visible{ outline:none; }
.cf__stage:focus-visible .cf__card[data-pos="0"]{ box-shadow:0 0 0 3px var(--yellow), 0 30px 60px -20px rgba(0,0,0,.8); }

.cf__card{
  position:absolute; left:50%; top:50%;
  /* plus large que haut-format-téléphone : ratio ~4/5 */
  width:clamp(280px, 74vw, 420px); height:clamp(370px, 48vw, 510px);
  border-radius:36px; overflow:hidden;
  border:1px solid rgba(251,243,231,.14);
  background:#171211;
  transform:translate(-50%,-50%);
  transition:transform .55s var(--ease), opacity .55s var(--ease), filter .55s var(--ease);
  will-change:transform;
  backface-visibility:hidden;
}
.cf__card img{ width:100%; height:100%; object-fit:cover; filter:saturate(1.08) contrast(1.06); }
.cf__card::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(to top, rgba(9,7,6,.96) 12%, rgba(9,7,6,.35) 48%, transparent 72%);
}
.cf__card[data-pos="0"]{ box-shadow:0 30px 60px -20px rgba(0,0,0,.8), 0 0 0 1px rgba(255,194,32,.28); }
.cf__card:not([data-pos="0"]){ filter:brightness(.62) saturate(.85); }
.cf__card[data-pos="0"] .cf__body{ opacity:1; transform:none; }

.cf__body{
  position:absolute; left:1.8rem; right:1.8rem; bottom:1.7rem; z-index:2;
  opacity:0; transform:translateY(10px);
  transition:opacity .5s var(--ease) .1s, transform .5s var(--ease) .1s;
}
.cf__tag{
  display:inline-block; margin:0 0 .5rem; padding:.28em .8em; border-radius:999px;
  background:rgba(255,107,24,.2); color:var(--yellow);
  font-size:.62rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase;
  backdrop-filter:blur(6px);
}
.cf__body h3{ margin:0 0 .3rem; font:700 clamp(1.25rem,2.4vw,1.6rem)/1.12 var(--font-head); letter-spacing:-.045em; }
.cf__price{ margin:0; font-size:.9rem; font-weight:600; color:var(--yellow); }

.cf__controls{ display:flex; align-items:center; justify-content:center; gap:1.4rem; margin-top:2rem; }
.cf__nav{
  width:46px; height:46px; border-radius:50%; display:grid; place-items:center; flex:none;
  border:1px solid rgba(251,243,231,.2); background:rgba(251,243,231,.05);
  backdrop-filter:blur(8px); color:var(--cream); cursor:pointer;
  transition:background .3s, color .3s, transform .3s var(--ease);
}
.cf__nav svg{ width:20px; height:20px; }
.cf__nav:hover{ background:var(--grad-fire); color:#1A0B04; transform:scale(1.08); border-color:transparent; }
.cf__nav:focus-visible{ outline:3px solid var(--yellow); outline-offset:2px; }

.cf__dots{ display:flex; gap:.45rem; }
.cf__dot{
  width:8px; height:8px; padding:0; border:0; border-radius:50%; cursor:pointer;
  background:rgba(251,243,231,.24); transition:all .35s var(--ease);
}
.cf__dot.is-on{ width:26px; border-radius:5px; background:var(--grad-fire); }
.cf__dot:focus-visible{ outline:2px solid var(--yellow); outline-offset:3px; }

/* =========================================================
   OFFRES
   ========================================================= */
/* 3 colonnes fixes : sans ça, la 4e carte se retrouvait seule et
   décalée à gauche au lieu d'occuper toute la largeur */
.offers{
  display:grid; gap:1.1rem;
  grid-template-columns:repeat(3,1fr);
  align-items:stretch;
}
.offer{
  display:flex; flex-direction:column; overflow:hidden;
  border-radius:var(--r); border:1px solid rgba(251,243,231,.11);
  background:linear-gradient(160deg, rgba(251,243,231,.06), rgba(251,243,231,.015));
  transition:transform .45s var(--ease), border-color .45s, box-shadow .45s;
  contain:layout style;
}
.offer:hover{ transform:translateY(-8px); border-color:rgba(255,194,32,.45); box-shadow:0 26px 60px -26px rgba(255,107,24,.5); }

/* la photo du produit */
.offer__media{ position:relative; overflow:hidden; background:#171211; }
.offer__media img{ width:100%; height:190px; object-fit:cover; transition:transform .55s var(--ease); }
.offer:hover .offer__media img{ transform:scale(1.06); }
.offer__media::after{
  content:''; position:absolute; inset:auto 0 0 0; height:55%;
  background:linear-gradient(to top, rgba(11,9,8,.9), transparent);
  pointer-events:none;
}
.offer__badge{
  position:absolute; right:.8rem; bottom:.7rem; z-index:2;
  padding:.35em .85em; border-radius:999px;
  background:var(--grad-fire); color:#1A0B04;
  font:800 1.05rem/1 var(--font-head); letter-spacing:-.04em;
  box-shadow:0 8px 22px -6px rgba(226,35,26,.7);
}

.offer__body{ display:flex; flex-direction:column; flex:1; padding:1.3rem 1.4rem 1.5rem; text-align:center; }
.offer__tag{
  display:inline-block; margin:0 auto .6rem; padding:.3em .85em; border-radius:999px;
  background:rgba(255,107,24,.14); color:var(--orange);
  font-size:.6rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase;
}
.offer h3{ margin:0 0 .5rem; font:700 1.18rem/1.15 var(--font-head); letter-spacing:-.045em; }
.offer__note{ margin:0; font-size:.83rem; color:var(--cream-dim); }
.offer__link{
  margin-top:auto; padding-top:1rem; font-size:.83rem; font-weight:700; color:var(--yellow);
  text-decoration:none; transition:letter-spacing .3s var(--ease);
}
.offer__link:hover{ letter-spacing:.03em; }

/* Pizza Lovers : carte large, photo à gauche sur grand écran */
/* Pizza Lovers : bandeau pleine largeur, sous les trois autres */
.offer--wide{
  grid-column:1 / -1;
  background:linear-gradient(150deg, rgba(226,35,26,.26), rgba(255,107,24,.05));
  border-color:rgba(226,35,26,.45);
}
.offer__hero{
  margin:.4rem 0 .7rem; font:400 1.5rem/1.15 var(--font-hand); color:var(--cream);
}
.offer__hero span{
  font:800 2.6rem/1 var(--font-head); letter-spacing:-.06em;
  background:var(--grad-fire); -webkit-background-clip:text; background-clip:text; color:transparent;
  vertical-align:-.06em; margin-right:.1em;
}
.offer__hero em{ font-style:normal; color:var(--yellow); }

@media (min-width:900px){
  .offer--wide{ flex-direction:row; align-items:stretch; }
  .offer--wide .offer__media{ flex:1 1 46%; }
  .offer--wide .offer__media img{ height:100%; min-height:300px; }
  /* le bloc de texte est centré verticalement d'un seul tenant :
     sans annuler le margin-top:auto du lien, celui-ci était plaqué
     tout en bas et creusait un grand vide au milieu de la carte */
  .offer--wide .offer__body{
    flex:1 1 54%; justify-content:center;
    padding-block:2.5rem;
  }
  .offer--wide .offer__link{ margin-top:0; padding-top:1.4rem; }
}
@media (max-width:860px){
  .offers{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:600px){
  .offers{ grid-template-columns:1fr; }
  .offer__media img{ height:165px; }
}

/* =========================================================
   CARTE
   ========================================================= */
.tabs{
  display:flex; gap:1.6rem; margin-bottom:2.4rem; justify-content:flex-start;
  overflow-x:auto; padding:0 .2rem .9rem; scrollbar-width:none;
}
.tabs::-webkit-scrollbar{ display:none; }
@media (min-width:940px){ .tabs{ justify-content:center; flex-wrap:wrap; overflow:visible; } }

.tab{
  position:relative; flex:0 0 auto; padding:.3em 0 .55em;
  border:0; background:none; color:var(--cream-dim);
  font:600 .93rem/1 var(--font-body); cursor:pointer; white-space:nowrap;
  transition:color .3s var(--ease);
}
.tab::after{
  content:''; position:absolute; left:50%; translate:-50% 0; bottom:0;
  width:18px; height:3px; border-radius:3px; background:var(--yellow);
  transform:scaleX(0); opacity:0;
  transition:transform .38s var(--ease), opacity .38s var(--ease);
}
.tab:hover{ color:var(--cream); }
.tab.is-active{ color:var(--cream); font-weight:800; }
.tab.is-active::after{ transform:scaleX(1); opacity:1; }
.tab:focus-visible{ outline:2px solid var(--yellow); outline-offset:4px; border-radius:4px; }

.panel[hidden]{ display:none; }
.panel{ animation:panelIn .3s var(--ease); }
@keyframes panelIn{ from{ opacity:0; transform:translateY(8px);} to{ opacity:1; transform:none;} }

.panel__title{
  display:flex; align-items:baseline; justify-content:center; flex-wrap:wrap; gap:.7rem;
  margin:2.8rem 0 1.3rem; padding-bottom:.8rem; text-align:center;
  border-bottom:1px solid rgba(251,243,231,.13);
  font:700 1.1rem/1.15 var(--font-head); letter-spacing:-.045em; text-transform:uppercase;
}
.panel__title:first-child{ margin-top:0; }
.panel__title em{ font:500 .8rem/1 var(--font-body); font-style:normal; color:var(--orange); text-transform:none; letter-spacing:0; }
.panel__note{ margin:-.5rem 0 1.5rem; font-size:.82rem; color:var(--cream-dim); text-align:center; }
.tacos__visual{
  display:flex; align-items:center; justify-content:center; gap:.75rem;
  margin:-.35rem 0 1.25rem; color:var(--cream-dim); font-size:.82rem;
}
.tacos__visual img{
  width:min(100%, 360px); height:118px; object-fit:cover; border-radius:14px;
  border:1px solid rgba(255,194,32,.3);
}
.tacos__visual figcaption{ display:none; }

.dishes{
  list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap;
  justify-content:center; gap:.1rem 2.6rem;
}
.dishes--tight{ gap:.1rem 1.5rem; }

/* listes courtes (1 à 3 plats) : centrées au lieu d'être collées à gauche */
.dishes--few{ justify-content:center; }
.dishes--few .dish{ text-align:left; }

.dish{
  /* vignette | nom + description | prix */
  display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:.2rem .7rem;
  padding:.55rem .6rem; border-radius:12px;
  flex:0 1 calc((100% - 5.2rem) / 3); min-width:340px;
  transition:background .3s var(--ease), transform .3s var(--ease);
}
.dishes--tight .dish{ flex-basis:calc((100% - 4.5rem) / 4); min-width:215px; }
.dish__n{ grid-column:2; grid-row:1; }
.dish__p{ grid-column:3; grid-row:1; }
/* vignette carrée à gauche de chaque plat */
.dish__ico{
  grid-column:1; grid-row:1 / span 2;
  display:grid; place-items:center; flex:none;
  /* Format légèrement plus généreux : les vraies photos restent lisibles
     sans déséquilibrer le nom, la description et le prix. */
  width:56px; height:56px; border-radius:13px;
  background:rgba(251,243,231,.06);
  border:1px solid rgba(251,243,231,.1);
  overflow:hidden;
}
.dish__ico svg{ width:30px; height:30px; display:block; }
/* vignette photo : elle remplit tout le carré */
.dish__ico--photo{ background:#171211; padding:0; }
.dish__ico--photo img{
  width:100%; height:100%; object-fit:cover; display:block;
  filter:saturate(1.06) contrast(1.04);
}
.dish:hover .dish__ico{ background:rgba(255,194,32,.12); border-color:rgba(255,194,32,.28); }
.dish:hover{ background:rgba(251,243,231,.055); transform:translateX(5px); }
.dish__n{ font-weight:700; font-size:.96rem; }
.dish__d{ grid-column:2 / -1; grid-row:2; min-width:20px; color:var(--cream-dim); font-size:.78rem; line-height:1.35; transform:none; }
.dish__p{ font:700 1rem/1 var(--font-head); letter-spacing:-.05em; color:var(--yellow); white-space:nowrap; }

/* 3 tailles = 3 colonnes, toujours. En auto-fit on obtenait 2 + 1
   orpheline en bas à gauche. */
.sizes{ display:grid; grid-template-columns:repeat(3,1fr); gap:.9rem; margin-bottom:1.8rem; }
.size{
  padding:1.4rem 1rem; text-align:center; border-radius:var(--r-sm);
  border:1px solid rgba(251,243,231,.13); background:rgba(251,243,231,.04);
  transition:transform .4s var(--ease), border-color .4s;
}
.size:hover{ transform:translateY(-6px); border-color:var(--orange); }
.size b{ display:block; font:700 1.55rem/1 var(--font-head); letter-spacing:-.05em; }
.size span{ display:block; font-size:.71rem; color:var(--cream-dim); margin-top:.3rem; }
.size em{ display:block; margin-top:.7rem; font:700 1.35rem/1 var(--font-head); letter-spacing:-.05em; font-style:normal; color:var(--yellow); }
.size__alt{ margin-top:.4rem !important; font-size:.69rem !important; color:var(--orange) !important; }

.cols{ display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:1.6rem; margin-bottom:.5rem; text-align:center; }
.col__t{ display:flex; align-items:center; justify-content:center; gap:.6rem; margin:0 0 .7rem; font:700 .95rem/1 var(--font-head); letter-spacing:-.04em; text-transform:uppercase; }
.col__t span{ display:grid; place-items:center; width:26px; height:26px; border-radius:50%; background:var(--red); color:#fff; font:800 .78rem/1 var(--font-body); }
.chips{ margin:0; font-size:.85rem; color:var(--cream-dim); line-height:1.9; }

/* =========================================================
   ENCART SERVICE LIVRAISON — bas de la page Carte
   ========================================================= */
.livbox{
  display:grid; grid-template-columns:auto 1fr; gap:1.6rem 2.2rem; align-items:center;
  margin-top:3rem; padding:1.6rem 1.8rem; border-radius:var(--r);
  border:1px solid rgba(226,35,26,.4);
  background:linear-gradient(150deg, rgba(226,35,26,.2), rgba(255,107,24,.04));
}
.livbox__t{ text-align:center; }
.livbox__k{
  margin:0 0 .4rem; font-size:.64rem; font-weight:800;
  letter-spacing:.2em; text-transform:uppercase; color:var(--orange);
}
.livbox__t h3{ margin:0 0 .7rem; font:700 1.15rem/1.1 var(--font-head); letter-spacing:-.045em; }
.livbox__tel{
  display:inline-block; padding:.6em 1.3em; border-radius:999px;
  background:var(--grad-fire); color:#1A0B04; text-decoration:none;
  font:800 1.05rem/1 var(--font-head); letter-spacing:-.02em;
  transition:transform .3s var(--ease), box-shadow .3s var(--ease);
}
.livbox__tel:hover{ transform:translateY(-2px); box-shadow:0 12px 28px -8px rgba(226,35,26,.7); }
.livbox__l{
  list-style:none; margin:0; padding:0;
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.9rem 1.4rem;
}
.livbox__l li{ display:flex; flex-direction:column; gap:.15rem; text-align:center; }
.livbox__l li:last-child{ grid-column:2; }
.livbox__l b{ font:700 1.05rem/1 var(--font-head); letter-spacing:-.04em; color:var(--yellow); }
.livbox__l span{ font-size:.78rem; color:var(--cream-dim); line-height:1.35; }

@media (max-width:760px){
  .livbox{ grid-template-columns:1fr; gap:1.2rem; padding:1.3rem 1.2rem; text-align:center; }
  .livbox__l{ grid-template-columns:1fr; }
  .livbox__l li:last-child{ grid-column:auto; }
  .livbox__l li{ align-items:center; }
}

.menu__legal{ margin-top:3rem; font-size:.74rem; color:rgba(185,172,158,.6); text-align:center; }

/* =========================================================
   COMMANDER — cartes de hauteur identique
   ========================================================= */
.order{ display:grid; grid-template-columns:repeat(auto-fit,minmax(275px,1fr)); gap:1.2rem; align-items:stretch; }
.ocard{
  display:flex; flex-direction:column; text-align:center;
  padding:2rem 1.7rem; border-radius:var(--r);
  border:1px solid rgba(251,243,231,.12); background:rgba(251,243,231,.04);
  backdrop-filter:blur(4px);
  transition:transform .45s var(--ease), border-color .45s;
}
.ocard:hover{ transform:translateY(-6px); border-color:rgba(251,243,231,.3); }
.ocard--main{ background:linear-gradient(160deg, rgba(226,35,26,.22), rgba(11,9,8,.2)); border-color:rgba(226,35,26,.45); }
.ocard__label{ margin:0 0 .8rem; font-size:.64rem; font-weight:800; letter-spacing:.2em; text-transform:uppercase; color:var(--orange); }
.ocard h3{ margin:0 0 .7rem; font:700 1.3rem/1.1 var(--font-head); letter-spacing:-.045em; }
.ocard p{ margin:0 0 1.2rem; font-size:.89rem; color:var(--cream-dim); }
.ocard address{ font-style:normal; margin-bottom:1.2rem; font-size:.92rem; line-height:1.8; }
.ocard address b{ color:var(--yellow); }
.ocard__list{ list-style:none; margin:0 0 1.2rem; padding:0; display:grid; gap:.6rem; font-size:.83rem; color:var(--cream-dim); text-align:left; }
.ocard__list li{ padding-left:1.2rem; position:relative; }
.ocard__list li::before{ content:'▸'; position:absolute; left:0; color:var(--orange); }
.ocard__list b{ color:var(--cream); }
.ocard__btn{ margin-top:auto !important; }
.ocard__fine{ font-size:.72rem !important; opacity:.7; margin-bottom:0 !important; }

.platforms{ display:grid; gap:.6rem; margin-bottom:1.2rem; }
.plat{
  display:flex; align-items:center; justify-content:space-between;
  padding:.9em 1.2em; border-radius:var(--r-sm);
  text-decoration:none; font-weight:800; font-size:.93rem;
  transition:transform .3s var(--ease), filter .3s;
}
.plat::after{ content:'↗'; font-weight:400; opacity:.75; }
.plat:hover{ transform:translateX(5px); filter:brightness(1.1); }
.plat--uber{ background:#06C167; color:#04231A; }
.plat--deliveroo{ background:#00CCBC; color:#00252A; }
.ocard__note{
  margin:0 0 1rem !important; padding:.7rem .9rem; border-radius:10px;
  background:rgba(6,193,103,.1); border:1px solid rgba(6,193,103,.28);
  font-size:.76rem !important; color:var(--cream) !important; line-height:1.5;
}

/* =========================================================
   INFOS
   ========================================================= */
.infos{ display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:clamp(1.6rem,4vw,3rem); align-items:start; }
.facts{ margin:0; display:grid; gap:1.05rem; }
.facts div{ display:grid; gap:.15rem; padding-bottom:1.05rem; border-bottom:1px solid rgba(251,243,231,.09); }
.facts dt{ font-size:.66rem; font-weight:800; letter-spacing:.18em; text-transform:uppercase; color:var(--orange); }
.facts dd{ margin:0; font-size:.93rem; }
.facts a{ color:var(--yellow); text-decoration:none; border-bottom:1px solid currentColor; }

.rating{
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  padding:1.8rem; margin-bottom:1.2rem; border-radius:var(--r);
  background:linear-gradient(150deg, rgba(255,194,32,.14), rgba(251,243,231,.02));
  border:1px solid rgba(255,194,32,.28);
}
.rating__score{ margin:0; font:800 3.4rem/1 var(--font-head); letter-spacing:-.06em; background:var(--grad-fire); -webkit-background-clip:text; background-clip:text; color:transparent; }
.rating__score span{ font-size:1.2rem; }
.rating__stars{ margin:.35rem 0 .2rem; color:var(--yellow); letter-spacing:.22em; font-size:1.05rem; }
.rating__meta{ margin:0; font-size:.81rem; color:var(--cream-dim); }

.map{ position:relative; border-radius:var(--r); overflow:hidden; border:1px solid rgba(255,194,32,.25); background:#1c2922; box-shadow:0 18px 42px -26px rgba(0,0,0,.9); }
.map::before{ content:""; position:absolute; inset:0; z-index:1; pointer-events:none; background:linear-gradient(145deg,rgba(11,9,8,.32),transparent 42%,rgba(11,9,8,.23)),radial-gradient(circle at 50% 48%,transparent 0 18%,rgba(11,9,8,.2) 72%,rgba(11,9,8,.58)); mix-blend-mode:multiply; }
.map::after{ content:""; position:absolute; inset:0; z-index:1; pointer-events:none; border:1px solid rgba(255,255,255,.06); border-radius:inherit; }
.map iframe{ display:block; width:100%; height:300px; border:0; filter:grayscale(.62) sepia(.22) saturate(.8) contrast(1.12) brightness(.86); }
.map__place{ position:absolute; z-index:2; top:14px; left:14px; display:flex; align-items:center; gap:.55rem; padding:.58rem .78rem .58rem .58rem; border:1px solid rgba(255,224,122,.42); border-radius:12px; background:rgba(11,9,8,.87); box-shadow:0 10px 22px rgba(0,0,0,.28); color:var(--cream); font-size:.78rem; line-height:1.15; pointer-events:none; }
.map__place b,.map__place small{ display:block; }.map__place b{ font-size:.82rem; }.map__place small{ margin-top:.15rem; color:var(--cream-dim); font-size:.68rem; }.map__pin{ display:grid; place-items:center; width:1.9rem; height:1.9rem; border-radius:50%; background:var(--grad-fire); color:#250d04; box-shadow:0 0 0 4px rgba(226,35,26,.18); }.map__pin svg{ width:1.05rem; height:1.05rem; fill:currentColor; }
.map__cta{
  position:absolute; left:50%; bottom:14px; translate:-50% 0;
  display:inline-flex; align-items:center; gap:.5em;
  padding:.7em 1.2em; border-radius:999px;
  background:rgba(11,9,8,.86); backdrop-filter:blur(10px);
  border:1px solid rgba(251,243,231,.18);
  color:var(--cream); font:700 .82rem/1 var(--font-body); text-decoration:none;
  transition:background .3s, color .3s, transform .3s var(--ease);
}
.map__cta svg{ width:1.1em; height:1.1em; fill:var(--orange); transition:fill .3s; }
.map__cta:hover{ background:var(--grad-fire); color:#1A0B04; transform:translate(-50%,-3px); border-color:transparent; }
.map__cta:hover svg{ fill:#1A0B04; }

/* ============ BOUTON D'APPEL FLOTTANT ============
   Mobile uniquement. Apparaît une fois le hero dépassé. */
.fab{ position:fixed; right:16px; bottom:16px; z-index:150; display:none; transition:bottom .45s var(--ease); }
.fab.is-up{ bottom:104px; }

.callfab{
  display:inline-flex; align-items:center; gap:.55em;
  padding:.95em 1.35em; border:0; border-radius:999px; cursor:pointer;
  background:var(--grad-fire); color:#1A0B04;
  font:800 .92rem/1 var(--font-body); font-family:var(--font-body);
  box-shadow:0 12px 32px -8px rgba(226,35,26,.75), 0 0 0 4px rgba(11,9,8,.5);
  opacity:0; transform:translateY(90px) scale(.9); pointer-events:none;
  transition:opacity .4s var(--ease), transform .4s var(--ease);
  -webkit-tap-highlight-color:transparent;
}
.callfab svg{ width:1.25em; height:1.25em; fill:currentColor; flex:none; }
.callfab .fab__close{ display:none; }
.callfab.is-in{ opacity:1; transform:none; pointer-events:auto; }
.callfab:active{ transform:scale(.96); }
.fab.is-open .callfab .fab__ico{ display:none; }
.fab.is-open .callfab .fab__close{ display:block; }

/* la feuille de choix, ancrée au-dessus du bouton */
.fab__sheet{
  position:absolute; right:0; bottom:calc(100% + 12px);
  width:min(78vw, 290px); padding:.55rem;
  border-radius:20px; border:1px solid rgba(251,243,231,.14);
  background:rgba(18,14,13,.97); backdrop-filter:blur(20px);
  box-shadow:0 22px 54px rgba(0,0,0,.7);
  opacity:0; visibility:hidden; transform:translateY(10px) scale(.96);
  transform-origin:bottom right;
  transition:opacity .26s var(--ease), transform .26s var(--ease), visibility .26s;
}
.fab__sheet[hidden]{ display:block; }        /* on anime, on ne coupe pas */
.fab.is-open .fab__sheet{ opacity:1; visibility:visible; transform:none; }

.fab__t{
  margin:.35rem .6rem .55rem; font-size:.66rem; font-weight:800;
  letter-spacing:.14em; text-transform:uppercase; color:var(--orange);
}
.fab__opt{
  display:flex; align-items:center; gap:.7rem;
  padding:.7rem .8rem; border-radius:13px;
  text-decoration:none; color:var(--cream);
  transition:background .2s var(--ease), transform .2s var(--ease);
}
.fab__opt svg{ width:20px; height:20px; fill:currentColor; flex:none; opacity:.9; }
.fab__opt span{ display:block; font:700 .92rem/1.2 var(--font-body); }
.fab__opt em{ display:block; font-style:normal; font-weight:500; font-size:.72rem; color:var(--cream-dim); margin-top:.15rem; }
.fab__opt:active{ background:rgba(251,243,231,.1); transform:translateX(3px); }
.fab__opt--tel{ color:var(--yellow); }
.fab__opt--uber{ color:#3FD07A; }
.fab__opt--deliveroo{ color:#00CCBC; }

@media (max-width:900px){
  .fab{ display:block; }
  /* pas deux boutons de commande à l'écran : le caddie de la barre
     s'efface dès que le bouton flottant est disponible */
  body.fab-on .nav__order{ opacity:0; visibility:hidden; pointer-events:none;
    transition:opacity .3s var(--ease), visibility .3s; }
}

/* ============ BANDEAU COOKIES (informatif) ============ */
/* Centrage par marges auto, pas par translate : cumuler la propriété
   `translate` et un `transform: translate()` décalait le bandeau
   d'une largeur entière hors de l'écran. */
.cookie{
  position:fixed; left:0; right:0; bottom:16px; margin-inline:auto; z-index:200;
  width:min(calc(100vw - 2rem), 560px);
  display:flex; align-items:center; gap:1rem; flex-wrap:wrap;
  padding:.9rem 1.1rem; border-radius:18px;
  border:1px solid rgba(251,243,231,.14);
  background:rgba(18,14,13,.94); backdrop-filter:blur(18px) saturate(1.4);
  box-shadow:0 18px 44px rgba(0,0,0,.6);
  transform:translateY(140%); opacity:0;
  transition:transform .5s var(--ease), opacity .5s var(--ease);
}
.cookie.is-in{ transform:none; opacity:1; }
.cookie p{ flex:1 1 240px; margin:0; font-size:.78rem; line-height:1.5; color:var(--cream-dim); }
.cookie b{ color:var(--cream); font-weight:700; }
.cookie a{ color:var(--yellow); }
.cookie__ok{
  flex:none; padding:.65em 1.3em; border:0; border-radius:999px; cursor:pointer;
  background:var(--grad-fire); color:#1A0B04; font:800 .8rem/1 var(--font-body);
  transition:transform .3s var(--ease);
}
.cookie__ok:hover{ transform:scale(1.04); }
.cookie__ok:focus-visible{ outline:3px solid var(--yellow); outline-offset:3px; }

/* =========================================================
   CTA
   ========================================================= */
.cta{ padding:clamp(4rem,9vw,6.5rem) 0; text-align:center; border-top:1px solid rgba(251,243,231,.08); }
.cta h2{ margin:0 0 .5rem; font:800 clamp(1.7rem,4.6vw,2.8rem)/1.1 var(--font-head); letter-spacing:-.055em; }
.cta p{ margin:0 0 2rem; color:var(--cream-dim); }

/* =========================================================
   FOOTER
   ========================================================= */
.foot{ background:rgba(11,9,8,.9); border-top:1px solid rgba(251,243,231,.09); padding:3.5rem 0 1.5rem; }
.foot__grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:2.2rem; }
.foot__logo{ display:flex; align-items:center; gap:.55rem; margin:0 0 1rem; font:700 1rem/1 var(--font-head); letter-spacing:-.04em; text-transform:uppercase; }
.foot__logo img{ width:28px; height:auto; }
.foot__logo em{ font:700 .5rem/1 var(--font-body); letter-spacing:.3em; color:var(--orange); font-style:normal; }
.foot__addr{ margin:0; font-size:.85rem; color:var(--cream-dim); line-height:1.8; }
.foot__addr a{ color:var(--yellow); text-decoration:none; }
.foot__t{ margin:0 0 .9rem; font-size:.64rem; font-weight:800; letter-spacing:.2em; text-transform:uppercase; color:var(--orange); }
.foot nav a{ display:block; margin-bottom:.5rem; font-size:.85rem; color:var(--cream-dim); text-decoration:none; transition:color .25s, transform .25s; }
.foot nav a:hover{ color:var(--yellow); transform:translateX(4px); }
.foot__credit{ margin:0; font-size:.83rem; color:var(--cream-dim); line-height:1.8; }
.foot__credit a{ color:var(--cream); text-decoration:none; border-bottom:1px solid var(--orange); }
.foot__credit a:hover{ color:var(--yellow); }
.foot__credit span{ font-size:.74rem; opacity:.7; }
.foot__bottom{
  width:min(100% - 2.5rem, var(--wrap)); margin:2.8rem auto 0; padding-top:1.4rem;
  border-top:1px solid rgba(251,243,231,.08);
  font-size:.74rem; color:rgba(185,172,158,.6); text-align:center;
}

/* =========================================================
   PAGE LÉGALE
   ========================================================= */
.legal{ padding:9rem 0 5rem; }
.legal h1{ font:800 clamp(1.8rem,4.6vw,2.8rem)/1.1 var(--font-head); letter-spacing:-.055em; margin:0 0 .6rem; }
.legal__intro{ color:var(--cream-dim); margin:0 0 3rem; }
.legal section{ margin-bottom:2.8rem; scroll-margin-top:6rem; }
.legal h2{ font:700 1.15rem/1.15 var(--font-head); letter-spacing:-.045em; text-transform:uppercase; margin:0 0 .9rem; padding-bottom:.6rem; border-bottom:1px solid rgba(251,243,231,.13); }
.legal h3{ font-size:1rem; margin:1.6rem 0 .4rem; color:var(--yellow); }
.legal p, .legal li{ font-size:.92rem; color:var(--cream-dim); }
.legal a{ color:var(--yellow); }
.legal ul{ padding-left:1.2rem; }
.legal .back{ display:inline-block; margin-top:2rem; }

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width:900px){
  /* Pilule compacte mais pleine largeur : le menu déroulant peut alors
     se centrer dessus (la barre est un bloc conteneur à cause du
     backdrop-filter, donc le menu ne peut pas viser le viewport). */
  .nav{
    top:10px; gap:.45rem; padding:.3rem .3rem .3rem .8rem;
    width:auto; max-width:none; left:.7rem; right:.7rem; margin-inline:0;
    justify-content:space-between;
  }
  .nav.is-stuck{ top:8px; }
  /* logo à gauche · « Accueil » au centre · caddie à droite */
  .nav__logo{ flex:0 0 auto; }
  .nav__logo img{ width:26px; }
  .nav__logo span{ display:none; }        /* le logo seul suffit */

  .nav__menubtn{
    display:inline-flex; align-items:center; gap:.4rem;
    padding:.42rem .85rem; border-radius:999px; cursor:pointer;
    border:1px solid rgba(251,243,231,.18);
    background:rgba(251,243,231,.06); color:var(--cream);
    font:700 .84rem/1 var(--font-head); letter-spacing:-.02em;
    -webkit-tap-highlight-color:transparent;
  }
  .nav__menubtn:active{ background:rgba(251,243,231,.14); }

  .nav__cta span{ display:none; }
  .nav__cta{ width:34px; height:34px; padding:0; justify-content:center; }
  .nav__cta svg{ width:16px; height:16px; }

  .nav__links{
    position:absolute; top:calc(100% + 9px); left:0; right:0; margin-inline:auto;
    width:min(100%, 300px);
    flex-direction:column; align-items:stretch; gap:.15rem;
    padding:.5rem; border-radius:20px;
    border:1px solid rgba(251,243,231,.14);
    background:rgba(18,14,13,.96); backdrop-filter:blur(20px);
    box-shadow:0 20px 50px rgba(0,0,0,.65);
    opacity:0; visibility:hidden; transform:translateY(-8px) scale(.97);
    transform-origin:top center;
    transition:opacity .28s var(--ease), transform .28s var(--ease), visibility .28s;
  }
  .nav.is-open .nav__links{ opacity:1; visibility:visible; transform:none; }
  .nav__links a{
    display:block; width:100%; padding:.78rem .9rem; text-align:center;
    font:700 .95rem/1 var(--font-head); letter-spacing:-.03em;
    color:var(--cream); border-radius:13px;
  }
  .nav__links a:active{ background:rgba(251,243,231,.08); }
  .nav__links a::after{ display:none; }

  /* léger dézoom d'ensemble */
  body{ font-size:15px; }
  .hero{ min-height:auto; padding:5.5rem 1.1rem 3.5rem; }
  .hero__title{ font-size:clamp(1.75rem,7.6vw,2.3rem); }
  .shead__title{ font-size:clamp(1.5rem,6.4vw,2rem); }
  .section{ padding:3.6rem 0; }

  /* tailles : 3 colonnes serrées, sauf les pizzas dont les libellés
     sont trop longs → une par ligne */
  .sizes{ gap:.5rem; }
  .size{ padding:1rem .5rem; }
  .size b{ font-size:1.3rem; }
  .size span{ font-size:.62rem; }
  .size em{ font-size:1.05rem; margin-top:.5rem; }
  .sizes--pizza{ grid-template-columns:1fr; }
  .sizes--pizza .size{ display:flex; align-items:baseline; justify-content:center; gap:.6rem; flex-wrap:wrap; padding:.85rem 1rem; }
  .sizes--pizza .size b{ font-size:1.05rem; }
  .sizes--pizza .size span{ margin-top:0; }
  .sizes--pizza .size em{ margin-top:0; font-size:1.15rem; }

  /* chaque backdrop-filter est une passe de rendu supplémentaire :
     on ne les garde que là où ils comptent (barre, menu, bandeau) */
  .offer, .ocard, .pill, .cf__tag{ backdrop-filter:none; }
  .grain{ display:none; }

  .dishes{ display:flex !important; }
  /* nom + prix sur la 1re ligne, description en dessous */
  .dish{ grid-template-columns:auto 1fr auto; gap:.6rem; flex:0 0 100%; min-width:0; }
  .dish__ico{ grid-column:1; grid-row:1 / span 2; width:38px; height:38px; border-radius:10px; }
  .dish__ico svg{ width:27px; height:27px; }
  .dish__n{ grid-column:2; grid-row:1; }
  .dish__p{ grid-column:3; grid-row:1; }
  .dish__d{ grid-column:2 / -1; grid-row:2; border:0; transform:none; margin-top:.1rem; }
  .dish__d:empty{ display:none; }
  .shead{ padding-inline:1.1rem; }
  .wrap{ width:calc(100% - 2.2rem); }
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
  html{ scroll-behavior:auto; }
  [data-anim], .word > i, .hero__logo{ opacity:1 !important; transform:none !important; }
}

/* Vues dédiées : même identité visuelle, mais plus de page interminable. */
/* ---- ACCUEIL : hero + carrousel + offres + rappel ---- */
body:not(.page-carte):not(.page-restaurant) #carte,
body:not(.page-carte):not(.page-restaurant) #livraison,
body:not(.page-carte):not(.page-restaurant) #infos{ display:none; }

/* ---- LA CARTE ---- */
body.page-carte .hero, body.page-carte #menus, body.page-carte #offres, 
body.page-carte #livraison, body.page-carte #infos, body.page-carte #avis, body.page-carte .cta{ display:none; }

/* ---- LE RESTAURANT : infos ET commande.
   #livraison était masqué sur les trois vues : la section « Commander »
   n'apparaissait donc nulle part sur le site. ---- */
body.page-restaurant .hero, body.page-restaurant #menus,
body.page-restaurant #offres, body.page-restaurant #avis, body.page-restaurant #carte{ display:none; }

body.page-carte #carte, body.page-restaurant #livraison{ padding-top:9.5rem; min-height:auto; }
