/* =========================================================
   LYD'ÎLE — Restaurant Traiteur Créole
   Luxury 5★ experience · style.css
   ========================================================= */

:root{
  --bg:        #ece0c5;   /* beige chaud (nettement moins blanc) */
  --bg-2:      #e3d4b6;
  --panel:     #fffdf9;
  --ivory:     #221f18;   /* encre — texte principal */
  --ivory-dim: #56503f;   /* texte secondaire */
  --muted:     #8b8574;   /* texte tertiaire */
  --gold:      #a9812f;   /* or, assombri pour fond clair */
  --gold-soft: #9c7526;
  --emerald:   #1f5c3f;
  --ember:     #cf5227;
  --line:      rgba(33,30,24,.14);
  --serif: "Cormorant Garamond", Georgia, serif;
  --display: "Marcellus", "Cormorant Garamond", serif;
  --sans: "Jost", "Helvetica Neue", Arial, sans-serif;
  --ease: cubic-bezier(.7,0,.2,1);
}

*{ margin:0; padding:0; box-sizing:border-box; }
html{ -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
body{
  background:var(--bg);
  color:var(--ivory);
  font-family:var(--sans);
  font-weight:300;
  line-height:1.6;
  overflow-x:hidden;
  cursor:auto;
}
::selection{ background:var(--gold); color:#0c1410; }
img{ display:block; width:100%; height:100%; object-fit:cover; }
a{ color:inherit; text-decoration:none; }
em{ font-style:italic; }

/* Lenis */
html.lenis,html.lenis body{ height:auto; }
.lenis.lenis-smooth{ scroll-behavior:auto !important; }

/* ---------- Typo helpers ---------- */
.section-label{
  display:inline-block;
  font-family:var(--sans);
  font-size:.72rem;
  letter-spacing:.34em;
  text-transform:uppercase;
  color:var(--gold);
  margin-bottom:1.6rem;
}
h1,h2,h3,h4{ font-weight:400; line-height:1.04; }

/* line reveal wrapper — padding haut/bas pour ne pas rogner accents (Î, À…) ni jambages (g, y, p) */
.line{ display:block; overflow:hidden; padding:.2em 0 .16em; margin:-.2em 0 -.16em; }
.line > span{ display:block; will-change:transform; }

/* ---------- Buttons ---------- */
.btn{
  position:relative;
  display:inline-flex; align-items:center; justify-content:center;
  padding:1.05em 2.4em;
  font-family:var(--sans);
  font-size:.78rem; letter-spacing:.22em; text-transform:uppercase;
  border-radius:60px;
  overflow:hidden;
  transition:color .35s var(--ease), background-color .35s var(--ease),
             border-color .35s var(--ease), transform .35s var(--ease), box-shadow .35s var(--ease);
}
.btn span{ position:relative; z-index:2; }
/* reflet discret qui balaie le bouton au survol (remplace l'ancien remplissage vertical) */
.btn::after{
  content:""; position:absolute; top:0; left:-60%; z-index:1;
  width:45%; height:100%;
  background:linear-gradient(100deg, transparent, rgba(255,253,249,.42), transparent);
  transform:skewX(-18deg);
  transition:left .7s var(--ease);
  pointer-events:none;
}
.btn:hover::after{ left:130%; }

.btn--solid{ background:var(--gold); color:#fffdf9; box-shadow:0 6px 18px -12px rgba(33,30,24,.5); }
.btn--solid:hover{
  background:var(--gold-soft);
  transform:translateY(-2px);
  box-shadow:0 14px 26px -14px rgba(169,129,47,.75);
}
.btn--ghost{ border:1px solid var(--line); color:var(--ivory); }
.btn--ghost:hover{
  color:var(--gold);
  border-color:var(--gold);
  background:rgba(169,129,47,.08);
  transform:translateY(-2px);
}
.btn:active{ transform:translateY(0); }
@media (prefers-reduced-motion:reduce){
  .btn,.btn:hover{ transform:none; }
  .btn::after{ display:none; }
}
.btn--lg{ padding:1.25em 3em; margin-top:2.6rem; }

/* ---------- Custom cursor ---------- */
.cursor{
  position:fixed; top:0; left:0; width:44px; height:44px;
  border:1px solid var(--gold); border-radius:50%;
  transform:translate(-50%,-50%); pointer-events:none; z-index:9999;
  transition:width .35s var(--ease),height .35s var(--ease),background .35s var(--ease),border-color .35s var(--ease),opacity .3s;
  mix-blend-mode:difference;
}
.cursor-dot{
  position:fixed; top:0; left:0; width:5px; height:5px; border-radius:50%;
  background:var(--gold); transform:translate(-50%,-50%);
  pointer-events:none; z-index:9999;
}
.cursor.is-hover{ width:74px; height:74px; background:rgba(201,164,76,.12); border-color:transparent; }
.cursor.is-hide{ opacity:0; }
@media (hover:none){ .cursor,.cursor-dot{ display:none; } body{ cursor:auto; } }

/* ---------- Scroll progress ---------- */
.scroll-progress{
  position:fixed; top:0; left:0; height:2px; width:0%;
  background:linear-gradient(90deg,var(--gold),var(--ember));
  z-index:9000;
}

/* ---------- Preloader ---------- */
.preloader{
  position:fixed; inset:0; z-index:10000;
  background:var(--bg);
  display:grid; place-items:center;
}
.preloader__inner{ text-align:center; }
.preloader__brand{
  font-family:var(--display);
  font-size:clamp(2.6rem,8vw,5rem); letter-spacing:.04em;
}
.preloader__accent{ color:var(--gold); }
.preloader__sub{
  margin-top:.4rem; font-size:.74rem; letter-spacing:.4em;
  text-transform:uppercase; color:var(--muted);
}
.preloader__bar{
  width:min(280px,60vw); height:1px; background:var(--line);
  margin:2.4rem auto 1rem; overflow:hidden;
}
.preloader__fill{ display:block; height:100%; width:0%; background:var(--gold); }
.preloader__pct{ font-size:.72rem; letter-spacing:.3em; color:var(--muted); }

/* Intro déjà vue (arrivée depuis index.html) : aucun second écran de chargement,
   la page se révèle simplement en fondu. */
html.no-preloader .preloader{ display:none !important; }
html.no-preloader body{ animation:pageIn .55s var(--ease) both; }
@keyframes pageIn{ from{ opacity:0; } to{ opacity:1; } }
@media (prefers-reduced-motion:reduce){
  html.no-preloader body{ animation:none; }
}

/* ---------- NAV ---------- */
.nav{
  position:fixed; top:0; left:0; width:100%;
  display:flex; align-items:center; justify-content:space-between;
  padding:.85rem clamp(1.2rem,4vw,3.4rem);
  z-index:1000;
  /* barre toujours claire, y compris par-dessus le hero */
  background:rgba(255,253,249,.94);
  backdrop-filter:blur(16px);
  border-bottom:1px solid var(--line);
  transition:padding .5s var(--ease),box-shadow .5s var(--ease);
}
.nav.is-scrolled{
  padding-top:.6rem; padding-bottom:.6rem;
  box-shadow:0 10px 30px -18px rgba(33,30,24,.4);
}
.nav__logo{
  font-family:var(--display); font-size:1.5rem; letter-spacing:.05em;
  line-height:1; position:relative; display:flex; flex-direction:column;
}
.nav__logo span{ color:var(--gold); }
.nav__logo-img{ width:auto; height:30px; object-fit:contain; transition:height .5s var(--ease); }
.nav.is-scrolled .nav__logo-img{ height:26px; }
.nav__logo em{
  display:block; font-family:var(--sans); font-style:normal;
  font-size:.5rem; letter-spacing:.32em; text-transform:uppercase;
  color:var(--muted); margin-top:.22rem;
}
.nav__links{ display:flex; gap:2.4rem; }
.nav__links a{
  position:relative; font-size:.82rem; letter-spacing:.12em;
  text-transform:uppercase; color:var(--ivory-dim);
  padding:.3rem 0; transition:color .4s;
}
.nav__links a::after{
  content:""; position:absolute; left:0; bottom:0; width:0; height:1px;
  background:var(--gold); transition:width .4s var(--ease);
}
.nav__links a:hover{ color:var(--ivory); }
.nav__links a:hover::after{ width:100%; }
.nav__cta{
  font-size:.74rem; letter-spacing:.2em; text-transform:uppercase;
  border:1px solid var(--gold); color:var(--gold);
  padding:.6em 1.45em; border-radius:40px; transition:.45s var(--ease);
}
.nav__cta:hover{ background:var(--gold); color:#0c1410; }
.nav__burger{ display:none; background:none; border:none; width:34px; height:20px; position:relative; cursor:pointer; }
.nav__burger span{ position:absolute; left:0; width:100%; height:1.5px; background:var(--ivory); transition:.4s var(--ease); }
.nav__burger span:first-child{ top:4px; }
.nav__burger span:last-child{ bottom:4px; }
.nav.is-open .nav__burger span:first-child{ top:9px; transform:rotate(45deg); }
.nav.is-open .nav__burger span:last-child{ bottom:9px; transform:rotate(-45deg); }

/* ---------- HERO ---------- */
.hero{ position:relative; height:100svh; min-height:640px; overflow:hidden; display:flex; align-items:center; }
.hero__media{ position:absolute; inset:0; z-index:0; }
.hero__img{ position:absolute; inset:-8% 0; height:116%; transform:scale(1.12); will-change:transform; filter:brightness(1) saturate(1.05) contrast(1.02); }
.hero__overlay{
  position:absolute; inset:0;
  background:
    radial-gradient(120% 95% at 50% 32%, rgba(247,242,234,.32), rgba(247,242,234,.72) 62%, rgba(247,242,234,.97)),
    linear-gradient(to top, var(--bg) 3%, transparent 42%);
}
.hero__grain{
  position:absolute; inset:0; opacity:.05; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.hero__content{
  position:relative; z-index:3;
  width:100%; padding:0 clamp(1.4rem,5vw,4rem);
  text-align:center;
}
.hero__eyebrow{
  font-size:.78rem; letter-spacing:.34em; text-transform:uppercase;
  color:var(--gold-soft); margin-bottom:1.8rem;
}
.hero__bird{ color:var(--ember); display:inline-block; transform:rotate(45deg); }
.hero__title{
  font-family:var(--display);
  font-size:clamp(4.2rem,17vw,15rem);
  letter-spacing:.02em; line-height:.92;
}
.hero__title em{ color:var(--gold); font-style:normal; }
.hero__tag{
  font-family:var(--serif); font-style:italic;
  font-size:clamp(1.2rem,3vw,2rem); color:var(--ivory-dim);
  margin-top:1.4rem;
}
.hero__actions{ display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; margin-top:2.8rem; }
.hero__scroll{
  position:absolute; bottom:7.5rem; left:50%; transform:translateX(-50%);
  z-index:3; display:flex; flex-direction:column; align-items:center; gap:.8rem;
  font-size:.66rem; letter-spacing:.3em; text-transform:uppercase; color:var(--muted);
}
.hero__scroll-line{ width:1px; height:54px; background:var(--line); position:relative; overflow:hidden; }
.hero__scroll-line i{ position:absolute; top:-50%; left:0; width:100%; height:50%; background:var(--gold); animation:scrollDown 2s var(--ease) infinite; }
@keyframes scrollDown{ 0%{ top:-50%; } 60%,100%{ top:100%; } }

.hero__marquee{ position:absolute; bottom:0; left:0; width:100%; z-index:3; padding:1.1rem 0; border-top:1px solid var(--line); background:rgba(255,253,249,.62); backdrop-filter:blur(6px); overflow:hidden; }
.marquee__track{ display:flex; gap:2.4rem; white-space:nowrap; width:max-content; will-change:transform; }
.marquee__track span{ font-family:var(--serif); font-size:1.3rem; letter-spacing:.02em; color:var(--ivory-dim); }
.marquee__track .dot{ color:var(--gold); }

/* ---------- generic section ---------- */
section{ position:relative; }
.story,.flavors,.menu,.chef,.gallery,.contact{ padding:clamp(5rem,12vw,10rem) clamp(1.4rem,5vw,5rem); }

/* ---------- STORY ---------- */
.story__grid{ max-width:1320px; margin:0 auto; display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(2rem,6vw,6rem); align-items:center; }
.story__title{ font-family:var(--display); font-size:clamp(2.4rem,6vw,5rem); margin-bottom:2rem; }
.story__title em{ color:var(--gold); }
.story__lead{ font-size:1.18rem; color:var(--ivory); margin-bottom:1.4rem; max-width:46ch; }
.story__body{ color:var(--ivory-dim); max-width:48ch; }
.story__stats{ display:flex; gap:2.6rem; margin-top:3rem; flex-wrap:wrap; align-items:flex-start; }
.stat{ display:block; }
.stat__num{ font-family:var(--display); font-size:3rem; color:var(--gold); line-height:1; }
.stat__suffix{ font-family:var(--display); font-size:1.6rem; color:var(--gold); margin-left:.05em; }
.stat__lbl{ display:block; font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; color:var(--muted); margin-top:.6rem; }

.story__media{ position:relative; height:clamp(420px,52vw,640px); }
.story__img-wrap{ position:absolute; inset:0 12% 12% 0; border-radius:6px; overflow:hidden; }
.story__img-wrap img{ transform:scale(1.15); will-change:transform; filter:saturate(1.03) contrast(1.02); }
.story__img-float img{ filter:saturate(1.03); }
.story__img-float{ position:absolute; right:0; bottom:0; width:46%; height:46%; border-radius:6px; overflow:hidden; border:6px solid var(--bg); box-shadow:0 30px 60px -20px rgba(33,30,24,.22); }
.story__badge{
  position:absolute; top:-2.2rem; right:8%; z-index:3;
  width:118px; height:118px; border-radius:50%;
  background:var(--gold); color:#0c1410;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center; line-height:1.2;
  animation:spin 16s linear infinite;
}
.story__badge span{ font-size:.6rem; letter-spacing:.18em; text-transform:uppercase; }
.story__badge strong{ font-family:var(--display); font-size:1.5rem; font-weight:400; margin:.1rem 0; }
@keyframes spin{ to{ transform:rotate(360deg); } }

/* ---------- FLAVORS ---------- */
.flavors{ background:linear-gradient(var(--bg),var(--bg-2)); }
.flavors__head{ max-width:1320px; margin:0 auto 4rem; }
.flavors__title{ font-family:var(--display); font-size:clamp(2.2rem,5.5vw,4.6rem); }
.flavors__title em{ color:var(--gold); }
.flavors__grid{ max-width:1320px; margin:0 auto; display:grid; grid-template-columns:repeat(4,1fr); gap:1.2rem; }
.flavor-card{
  position:relative; padding:2.4rem 1.8rem 2.6rem;
  border:1px solid var(--line); border-radius:8px;
  background:var(--panel);
  overflow:hidden; transition:transform .6s var(--ease),border-color .6s,background .6s;
}
.flavor-card::before{
  content:""; position:absolute; inset:0; z-index:0;
  background:radial-gradient(120% 140% at 50% 120%, rgba(201,164,76,.18), transparent 60%);
  opacity:0; transition:opacity .6s;
}
.flavor-card:hover{ transform:translateY(-10px); border-color:rgba(201,164,76,.4); }
.flavor-card:hover::before{ opacity:1; }
.flavor-card__no{ font-family:var(--display); font-size:.9rem; color:var(--gold); letter-spacing:.2em; }
.flavor-card h3{ font-family:var(--serif); font-size:1.7rem; margin:1.4rem 0 .9rem; position:relative; z-index:1; }
.flavor-card p{ font-size:.95rem; color:var(--ivory-dim); position:relative; z-index:1; }

/* ---------- MENU ---------- */
.menu{ background:var(--bg-2); overflow:hidden; }
.menu__bg-text{
  position:absolute; top:6%; left:50%; transform:translateX(-50%);
  font-family:var(--display); font-size:clamp(5rem,18vw,18rem);
  color:rgba(33,30,24,.03); white-space:nowrap; pointer-events:none; letter-spacing:.06em;
}
.menu__head{ max-width:760px; margin:0 auto 3rem; text-align:center; position:relative; z-index:2; }
.menu__title{ font-family:var(--display); font-size:clamp(3rem,9vw,6.5rem); }
.menu__title em{ color:var(--gold); }
.menu__note{ color:var(--ivory-dim); margin-top:1.4rem; font-size:1.02rem; }
.menu__tabs{ display:flex; justify-content:center; flex-wrap:wrap; gap:.6rem; margin-bottom:3.4rem; position:relative; z-index:2; }
.menu__tab{
  font-family:var(--sans); font-size:.78rem; letter-spacing:.16em; text-transform:uppercase;
  color:var(--ivory-dim); background:none; border:1px solid var(--line);
  padding:.85em 1.7em; border-radius:40px; cursor:pointer; transition:.45s var(--ease);
}
.menu__tab:hover{ color:var(--ivory); border-color:var(--gold); }
.menu__tab.is-active{ background:var(--gold); color:#0c1410; border-color:var(--gold); }
.menu__panels{ max-width:920px; margin:0 auto; position:relative; z-index:2; }
.menu__panel{ display:none; }
.menu__panel.is-active{ display:block; }
.menu-item{ padding:1.6rem 0; border-bottom:1px solid var(--line); }
.menu-item__head{ display:flex; align-items:baseline; gap:1rem; }
.menu-item__head h4{ font-family:var(--serif); font-size:1.6rem; white-space:nowrap; }
.menu-item__head .dots{ flex:1; border-bottom:1px dotted rgba(33,30,24,.2); transform:translateY(-4px); }
.menu-item__head .price{ font-family:var(--display); font-size:1.3rem; color:var(--gold); white-space:nowrap; }
.menu-item p{ color:var(--muted); font-size:.96rem; margin-top:.5rem; max-width:62ch; }
.menu__footer{ max-width:920px; margin:3.4rem auto 0; display:flex; align-items:center; justify-content:space-between; gap:1.6rem; flex-wrap:wrap; padding-top:2.2rem; border-top:1px solid var(--line); position:relative; z-index:2; }
.menu__footer p{ color:var(--gold-soft); font-family:var(--serif); font-style:italic; font-size:1.15rem; }

/* ---------- CHEF ---------- */
.chef{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,6vw,6rem); align-items:center; max-width:1320px; margin:0 auto; }
.chef__media{ position:relative; height:clamp(420px,50vw,620px); border-radius:6px; overflow:hidden; }
.chef__media img{ transform:scale(1.14); will-change:transform; filter:brightness(.62) saturate(1.05) contrast(1.04); }
.chef__title{ font-family:var(--display); font-size:clamp(2.4rem,6vw,5rem); margin-bottom:1.8rem; }
.chef__title em{ color:var(--gold); }
.chef__content p{ color:var(--ivory-dim); font-size:1.1rem; max-width:46ch; }
.chef__sign{ font-family:var(--serif); font-style:italic; font-size:1.4rem; color:var(--gold); margin-top:2rem; }

/* ---------- GALLERY ---------- */
.gallery__head{ max-width:1320px; margin:0 auto 3rem; text-align:center; }
.gallery__title{ font-family:var(--display); font-size:clamp(2.4rem,7vw,5.5rem); }
.gallery__title em{ color:var(--gold); }
.gallery__grid{ max-width:1320px; margin:0 auto; display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:240px; gap:1rem; }
.g-item{ overflow:hidden; border-radius:6px; position:relative; }
.g-item img{ transition:transform 1s var(--ease),filter 1s; filter:saturate(.95) brightness(.72) contrast(1.04); }
.g-item:hover img{ transform:scale(1.1); filter:saturate(1.05) brightness(.95); }
.g-item--tall{ grid-row:span 2; }
.g-item--wide{ grid-column:span 2; }

/* ---------- CONTACT ---------- */
.contact{ background:linear-gradient(var(--bg-2),var(--bg)); }
.contact__inner{ max-width:1320px; margin:0 auto; display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(2.4rem,6vw,6rem); align-items:start; }
.contact__title{ font-family:var(--display); font-size:clamp(2.6rem,7vw,5.6rem); margin-bottom:2.6rem; }
.contact__title em{ color:var(--gold); }
.contact__rows{ border-top:1px solid var(--line); margin-bottom:.5rem; }
.c-row{ display:block; padding:1.35rem 0 1.35rem 1.4rem; border-bottom:1px solid var(--line); border-left:2px solid transparent; transition:border-color .45s var(--ease), padding-left .45s var(--ease); }
.c-row:hover{ border-left-color:var(--gold); padding-left:1.9rem; }
.c-row__lbl{ display:block; font-size:.66rem; letter-spacing:.24em; text-transform:uppercase; color:var(--gold); margin-bottom:.55rem; }
.c-row a{ font-family:var(--serif); font-size:1.5rem; color:var(--ivory); transition:color .4s; line-height:1.25; }
.c-row a:hover{ color:var(--gold); }
.contact__services{ display:flex; flex-wrap:wrap; gap:.6rem; margin-top:2.4rem; }
.contact__services span{ font-size:.74rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ivory-dim); border:1px solid var(--line); border-radius:40px; padding:.55em 1.1em; }

.contact__right{ position:relative; }
.hours{ background:var(--panel); border:1px solid var(--line); border-radius:10px; padding:clamp(1.8rem,4vw,2.8rem); }
.hours h3{ font-family:var(--serif); font-size:1.7rem; margin-bottom:1.6rem; color:var(--gold-soft); }
.hours__list{ list-style:none; }
.hours__list li{ display:flex; justify-content:space-between; align-items:baseline; gap:1rem; padding:.85rem 0; border-bottom:1px solid var(--line); font-size:.95rem; }
.hours__list li span{ color:var(--ivory); }
.hours__list li em{ color:var(--ivory-dim); font-style:normal; font-size:.86rem; }
.hours__list li.is-closed em{ color:var(--ember); letter-spacing:.1em; text-transform:uppercase; font-size:.74rem; }
.hours__pay{ display:flex; flex-wrap:wrap; gap:.5rem; margin-top:1.6rem; }
.hours__pay span{ font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); border:1px solid var(--line); border-radius:30px; padding:.4em .9em; }

/* ---------- FOOTER ---------- */
.footer{ position:relative; padding:clamp(3.5rem,8vw,6rem) clamp(1.4rem,5vw,5rem) 2.4rem; border-top:1px solid var(--line); overflow:hidden; }
.footer__big{
  position:absolute; left:0; right:0; top:50%; transform:translateY(-50%);
  font-family:var(--display); text-align:center; white-space:nowrap;
  font-size:clamp(6rem,27vw,24rem); line-height:.8;
  color:rgba(33,30,24,.06); letter-spacing:.04em; pointer-events:none;
  z-index:0; margin:0;
}
.footer__cols{ position:relative; z-index:1; max-width:1320px; margin:0 auto; display:grid; grid-template-columns:1.5fr 1fr 1.5fr 1.5fr; gap:clamp(2rem,4vw,3.4rem); padding-bottom:2.8rem; border-bottom:1px solid var(--line); }
.footer__h{ font-family:var(--sans); font-weight:400; font-size:.72rem; letter-spacing:.26em; text-transform:uppercase; color:var(--gold); margin-bottom:1.5rem; }
.footer__logo{ width:auto; height:40px; object-fit:contain; display:block; margin-bottom:1rem; }
.footer__brand strong{ font-family:var(--display); font-size:1.9rem; font-weight:400; letter-spacing:.04em; display:block; }
.footer__brand span{ font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; color:var(--muted); }
.footer__slogan{ font-family:var(--serif); font-style:italic; font-size:1.25rem; color:var(--gold-soft); margin-top:1.2rem; max-width:30ch; }

.footer__nav{ display:flex; flex-direction:column; align-items:flex-start; gap:.85rem; }
.footer__nav a{ position:relative; font-size:.82rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ivory-dim); padding:.1rem 0; transition:color .4s; }
.footer__nav a::before{ content:""; position:absolute; left:0; bottom:-2px; width:0; height:1px; background:var(--gold); transition:width .45s var(--ease); }
.footer__nav a:hover{ color:var(--ivory); }
.footer__nav a:hover::before{ width:100%; }

.footer__info{ list-style:none; display:flex; flex-direction:column; gap:1.1rem; }
.footer__info li{ display:flex; flex-direction:column; gap:.25rem; }
.footer__info li > span{ font-size:.64rem; letter-spacing:.22em; text-transform:uppercase; color:var(--muted); }
.footer__info li a,.footer__info li em{ font-family:var(--serif); font-style:normal; font-size:1.18rem; color:var(--ivory); transition:color .4s; line-height:1.3; }
.footer__info li a:hover{ color:var(--gold); }

.footer__hours{ list-style:none; display:flex; flex-direction:column; gap:.7rem; }
.footer__hours li{ display:flex; flex-direction:column; gap:.1rem; }
.footer__hours li > span{ font-size:.64rem; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); }
.footer__hours li em{ font-style:normal; font-size:.92rem; color:var(--ivory-dim); }
.footer__hours li.is-closed em{ color:var(--ember); }

.footer__pay{ display:flex; flex-wrap:wrap; gap:.5rem; margin-top:1.6rem; }
.footer__pay span{ font-size:.66rem; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); border:1px solid var(--line); border-radius:30px; padding:.42em .9em; }

.footer__base{ position:relative; z-index:1; max-width:1320px; margin:1.8rem auto 0; display:flex; justify-content:space-between; flex-wrap:wrap; gap:1rem; font-size:.72rem; letter-spacing:.08em; color:var(--muted); }

@media (max-width:900px){
  .footer__cols{ grid-template-columns:1fr 1fr; gap:2.6rem; }
  .footer__brand{ grid-column:1 / -1; }
}
@media (max-width:560px){
  /* Footer compact mobile : marque pleine largeur, nav horizontale, Contact/Horaires côte à côte */
  .footer{ padding-top:clamp(2.4rem,8vw,3.4rem); }
  .footer__cols{ grid-template-columns:1fr 1fr; gap:1.7rem 1.3rem; padding-bottom:2rem; }
  .footer__brand{ grid-column:1 / -1; }
  .footer__cols > .footer__col:nth-of-type(2){ grid-column:1 / -1; } /* Navigation pleine largeur */
  .footer__nav{ flex-direction:row; flex-wrap:wrap; gap:.5rem 1.2rem; }
  .footer__nav a{ font-size:.82rem; }
  .footer__h{ margin-bottom:1rem; }
  .footer__info{ gap:.8rem; }
  .footer__hours{ gap:.5rem; }
  .footer__big{ font-size:34vw; }
  .footer__base{ margin-top:1.4rem; gap:.4rem; }
}

/* =========================================================
   REVIEWS CAROUSEL · SCROLLABLE TABS · MOBILE MENU · INTRO
   ========================================================= */

/* ---------- Reviews carousel ---------- */
.reviews__carousel{ position:relative; overflow:hidden; -webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent); mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent); }
.reviews__track{ display:flex; gap:1.4rem; width:max-content; will-change:transform; }
.reviews__carousel .review-card{ width:min(400px,84vw); flex:0 0 auto; }

/* ---------- Scrollable category tabs (mobile) ---------- */
@media (max-width:900px){
  .menu__tabs{ flex-wrap:nowrap; overflow-x:auto; justify-content:flex-start;
    scroll-snap-type:x proximity; -webkit-overflow-scrolling:touch;
    padding:0 clamp(1.4rem,5vw,5rem) 1rem; margin-left:calc(-1 * clamp(1.4rem,5vw,5rem)); margin-right:calc(-1 * clamp(1.4rem,5vw,5rem));
    scrollbar-width:none; -ms-overflow-style:none; }
  .menu__tabs::-webkit-scrollbar{ display:none; }
  .menu__tab{ flex:0 0 auto; scroll-snap-align:center; }
}

/* ---------- Menu items on mobile ---------- */
@media (max-width:560px){
  .menu-item{ padding:1.25rem 0; }
  .menu-item__head{ flex-wrap:wrap; align-items:baseline; gap:.25rem .6rem; }
  .menu-item__head .dots{ display:none; }
  .menu-item__head h4{ white-space:normal; flex:1 1 70%; font-size:1.3rem; line-height:1.25; }
  .menu-item__head .price{ margin-left:auto; font-size:1.15rem; }
  .menu-item p{ font-size:.92rem; }
  .menu-sub{ font-size:1.55rem; }
  .legend{ padding:1.1rem; }
  .allergens__grid{ grid-template-columns:repeat(2,1fr); text-align:left; }
  .allergen{ justify-content:flex-start; }
}

/* ---------- Intro / Loader page (minimal) ---------- */
.entry-body{ height:100svh; overflow:hidden; cursor:auto; background:var(--bg); }
.entry{ position:relative; height:100svh; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.entry__grain{ position:absolute; inset:0; opacity:.04; mix-blend-mode:overlay; pointer-events:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
.loader{ position:relative; z-index:2; width:min(460px,82vw); display:flex; flex-direction:column; align-items:center; padding:0 1.4rem; }
.loader__logo{ width:auto; height:66px; object-fit:contain; margin-bottom:2.8rem; opacity:0; animation:entryUp .8s var(--ease) .1s forwards; }
.loader__bar{ position:relative; width:100%; height:1px; background:rgba(33,30,24,.16); overflow:hidden; opacity:0; animation:entryUp .7s var(--ease) .3s forwards; }
.loader__fill{ position:absolute; top:0; left:0; bottom:0; width:0; background:var(--gold); }
.loader__meta{ display:flex; justify-content:space-between; width:100%; margin-top:1.15rem; font-size:.68rem; letter-spacing:.28em; text-transform:uppercase; color:var(--muted); opacity:0; animation:entryUp .7s var(--ease) .42s forwards; }
.loader__pct{ color:var(--gold); }
@keyframes entryUp{ from{ opacity:0; transform:translateY(20px); } to{ opacity:1; transform:translateY(0); } }
body.is-leaving{ animation:fadeOut .5s var(--ease) forwards; }
@keyframes fadeOut{ to{ opacity:0; } }
@media (prefers-reduced-motion:reduce){
  .loader__logo,.loader__bar,.loader__meta{ animation:none; opacity:1; }
}

/* ---------- reveal defaults (JS animates) ---------- */
.reveal-up{ opacity:0; transform:translateY(28px); }

/* =========================================================
   MULTI-PAGE COMPONENTS
   ========================================================= */

/* ---------- Page header (subpages) ---------- */
.page-head{ position:relative; height:62vh; min-height:440px; display:flex; align-items:center; overflow:hidden; }
.page-head__media{ position:absolute; inset:0; }
.page-head__media img{ transform:scale(1.08); filter:brightness(1) saturate(1.04) contrast(1.02); }
.page-head__overlay{ position:absolute; inset:0; background:radial-gradient(120% 100% at 50% 12%, rgba(247,242,234,.4), rgba(247,242,234,.8) 68%, var(--bg)); }
.page-head__content{ position:relative; z-index:2; width:100%; text-align:center; padding:6rem clamp(1.4rem,5vw,4rem) 0; }
.page-head__title{ font-family:var(--display); font-size:clamp(3rem,11vw,8rem); line-height:.95; }
.page-head__crumb{ margin-top:1.4rem; font-size:.74rem; letter-spacing:.24em; text-transform:uppercase; color:var(--muted); }
.page-head__crumb a{ color:var(--gold); }
.page-head__crumb span{ margin:0 .5rem; }

/* ---------- Intro teaser ---------- */
.intro{ padding:clamp(5rem,12vw,9rem) clamp(1.4rem,5vw,5rem); text-align:center; }
.intro__inner{ max-width:880px; margin:0 auto; }
.intro__title{ font-family:var(--display); font-size:clamp(2.2rem,5.5vw,4.4rem); margin-bottom:1.8rem; }
.intro__title em{ color:var(--gold); }
.intro__text{ font-size:1.15rem; color:var(--ivory-dim); max-width:60ch; margin:0 auto; }
.link-arrow{ display:inline-flex; align-items:center; gap:.7rem; margin-top:2.4rem; font-size:.82rem; letter-spacing:.2em; text-transform:uppercase; color:var(--gold); }
.link-arrow span{ transition:transform .4s var(--ease); }
.link-arrow:hover span{ transform:translateX(8px); }

/* ---------- Signature dishes ---------- */
.signature{ padding:clamp(4rem,9vw,7rem) clamp(1.4rem,5vw,5rem); }
.signature__head{ text-align:center; max-width:760px; margin:0 auto 3.4rem; }
.signature__title{ font-family:var(--display); font-size:clamp(2.2rem,6vw,4.4rem); }
.signature__title em{ color:var(--gold); }
.signature__grid{ max-width:1320px; margin:0 auto; display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem; }
.sig-card{ display:block; border:1px solid var(--line); border-radius:10px; overflow:hidden; background:var(--panel); transition:transform .6s var(--ease),border-color .6s; }
.sig-card:hover{ transform:translateY(-10px); border-color:rgba(201,164,76,.4); }
.sig-card__img{ height:260px; overflow:hidden; }
.sig-card__img img{ transition:transform 1s var(--ease),filter 1s; filter:saturate(1.02) contrast(1.02); }
.sig-card:hover .sig-card__img img{ transform:scale(1.08); filter:brightness(1.03); }
.sig-card__body{ padding:1.6rem 1.6rem 1.8rem; position:relative; }
.sig-card__body h3{ font-family:var(--serif); font-size:1.6rem; }
.sig-card__body p{ color:var(--muted); font-size:.92rem; margin-top:.5rem; padding-right:3.5rem; }
.sig-card__price{ position:absolute; top:1.6rem; right:1.6rem; font-family:var(--display); font-size:1.3rem; color:var(--gold); }
.signature__cta{ text-align:center; margin-top:3rem; }

/* ---------- Google Reviews ---------- */
.reviews{ padding:clamp(5rem,11vw,8.5rem) clamp(1.4rem,5vw,5rem); background:linear-gradient(var(--bg),var(--bg-2)); }
.reviews__head{ text-align:center; max-width:760px; margin:0 auto 3.4rem; }
.reviews__title{ font-family:var(--display); font-size:clamp(2.2rem,6vw,4.4rem); }
.reviews__title em{ color:var(--gold); }
.reviews__badge{ display:inline-flex; align-items:center; gap:.9rem; margin-top:1.8rem; padding:.9rem 1.6rem; border:1px solid var(--line); border-radius:60px; background:var(--panel); }
.reviews__badge strong{ font-family:var(--display); font-size:1.4rem; display:block; line-height:1; }
.reviews__badge span{ font-size:.74rem; letter-spacing:.06em; color:var(--gold-soft); }
.reviews__grid{ max-width:1320px; margin:0 auto; display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem; }
.review-card{ border:1px solid var(--line); border-radius:12px; padding:2rem 1.9rem; background:var(--panel); transition:transform .6s var(--ease),border-color .6s; }
.review-card:hover{ transform:translateY(-8px); border-color:rgba(201,164,76,.35); }
.review-card__stars{ color:var(--gold); letter-spacing:.15em; font-size:1rem; margin-bottom:1rem; }
.review-card blockquote{ font-family:var(--serif); font-style:italic; font-size:1.2rem; line-height:1.5; color:var(--ivory); }
.review-card figcaption{ display:flex; align-items:center; gap:.9rem; margin-top:1.6rem; padding-top:1.2rem; border-top:1px solid var(--line); }
.review-card__avatar{ width:42px; height:42px; border-radius:50%; display:grid; place-items:center; background:var(--emerald); color:#f7f2ea; font-family:var(--display); font-size:1.2rem; flex-shrink:0; }
.review-card figcaption strong{ display:block; font-weight:400; font-size:.98rem; }
.review-card figcaption em{ font-style:normal; font-size:.74rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); }

/* ---------- CTA band ---------- */
.cta-band{ position:relative; padding:clamp(6rem,14vw,11rem) clamp(1.4rem,5vw,5rem); text-align:center; overflow:hidden; }
.cta-band__bg{ position:absolute; inset:-12% 0; }
.cta-band__bg img{ height:124%; }
.cta-band__bg img{ filter:brightness(1) saturate(1.04); }
.cta-band__overlay{ position:absolute; inset:0; background:linear-gradient(rgba(247,242,234,.78), rgba(247,242,234,.92)); }
.cta-band__content{ position:relative; z-index:2; }
.cta-band__content h2{ font-family:var(--display); font-size:clamp(2.6rem,8vw,6rem); }
.cta-band__content p{ color:var(--ivory-dim); font-size:1.15rem; margin-top:1.2rem; }
.cta-band__actions{ display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; margin-top:2.4rem; }

/* ---------- Menu legend / tags ---------- */
.legend{ max-width:920px; margin:0 auto 2.6rem; display:flex; flex-wrap:wrap; align-items:center; gap:.7rem 1rem; justify-content:center; position:relative; z-index:2; padding:1.2rem 1.4rem; border:1px solid var(--line); border-radius:12px; background:var(--panel); }
.legend__note{ flex-basis:100%; text-align:center; font-size:.82rem; color:var(--muted); margin-top:.4rem; line-height:1.5; }
.tag{ display:inline-flex; align-items:center; font-style:normal; font-size:.66rem; letter-spacing:.05em; text-transform:uppercase; border:1px solid var(--line); border-radius:30px; padding:.18em .6em; color:var(--ivory-dim); vertical-align:middle; }
.tag--spicy{ color:#e8794f; border-color:rgba(212,88,43,.4); }
.tag--vegan{ color:#7fcf9b; border-color:rgba(31,92,63,.6); }
.tag--togo{ color:var(--gold-soft); border-color:rgba(201,164,76,.4); }
.menu-item__head h4 .tag{ font-size:.6rem; margin-left:.4rem; }
.allergens{ max-width:920px; margin:0 auto 3rem; padding:2.4rem 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); text-align:center; position:relative; z-index:2; }
.allergens__title{ font-family:var(--sans); font-weight:400; font-size:.72rem; letter-spacing:.28em; text-transform:uppercase; color:var(--gold); margin-bottom:.9rem; }
.allergens__intro{ font-size:.92rem; color:var(--muted); line-height:1.6; margin:0 auto 1.8rem; max-width:62ch; }
.allergens__grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(120px,1fr)); gap:1.1rem .6rem; max-width:760px; margin:0 auto; }
.allergen{ display:flex; align-items:center; justify-content:center; gap:.6rem; font-family:var(--serif); font-size:1.1rem; color:var(--ivory-dim); }
.allergen b{ display:inline-grid; place-items:center; width:1.9em; height:1.9em; border-radius:50%; border:1px solid rgba(201,164,76,.5); color:var(--gold); font-family:var(--sans); font-size:.7rem; font-weight:500; flex-shrink:0; }

.menu-sub{ font-family:var(--serif); font-size:1.9rem; color:var(--gold-soft); margin:2.6rem 0 .4rem; padding-top:1.6rem; border-top:1px solid var(--line); }
.menu-sub:first-child{ margin-top:0; padding-top:0; border-top:none; }
.menu-sub small{ font-family:var(--sans); font-size:.7rem; letter-spacing:.15em; text-transform:uppercase; color:var(--muted); }
.menu-intro{ color:var(--muted); font-size:.95rem; max-width:70ch; margin-bottom:1rem; line-height:1.6; }
.menu-item__head .price small{ font-size:.7rem; color:var(--muted); }
.menu-item__head h4 small{ font-family:var(--sans); font-size:.72rem; letter-spacing:.05em; color:var(--muted); }
.badge-day{ font-family:var(--sans); font-size:.62rem; letter-spacing:.12em; text-transform:uppercase; color:#0c1410; background:var(--gold); border-radius:30px; padding:.25em .7em; margin-left:.5rem; white-space:nowrap; }
.allerg{ display:inline-block; font-size:.74rem; letter-spacing:.04em; text-transform:uppercase; color:var(--ember); margin-left:.2rem; }

/* ---------- Services strip (about) ---------- */
.services-strip{ padding:clamp(4rem,10vw,8rem) clamp(1.4rem,5vw,5rem); background:var(--bg-2); }
.services-strip__inner{ max-width:1320px; margin:0 auto; }
.services-strip__title{ font-family:var(--display); font-size:clamp(2rem,5vw,4rem); margin-bottom:3rem; }
.services-strip__title em{ color:var(--gold); }
.services-strip__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.4rem; }
.srv{ padding:1.8rem 1.6rem; border:1px solid var(--line); border-radius:10px; transition:.5s var(--ease); }
.srv:hover{ border-color:rgba(201,164,76,.4); transform:translateY(-6px); }
.srv strong{ display:block; font-family:var(--serif); font-size:1.4rem; font-weight:500; margin-bottom:.5rem; color:var(--gold-soft); }
.srv span{ color:var(--ivory-dim); font-size:.92rem; }

/* ---------- Services full (contact) ---------- */
.services-full{ padding:clamp(4rem,10vw,7rem) clamp(1.4rem,5vw,5rem); }
.services-full__head{ text-align:center; max-width:760px; margin:0 auto 3rem; }
.services-full__title{ font-family:var(--display); font-size:clamp(2rem,5.5vw,4rem); }
.services-full__title em{ color:var(--gold); }
.services-full__grid{ max-width:1320px; margin:0 auto; display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; }
.svc{ display:flex; flex-direction:column; gap:.3rem; padding:1.6rem 1.4rem; border:1px solid var(--line); border-radius:10px; background:var(--panel); transition:.5s var(--ease); }
.svc:hover{ transform:translateY(-6px); border-color:rgba(201,164,76,.4); }
.svc__ico{ font-size:1.6rem; margin-bottom:.5rem; }
.svc strong{ font-weight:400; font-family:var(--serif); font-size:1.3rem; }
.svc span{ font-size:.82rem; color:var(--muted); }

/* ---------- Coupon ---------- */
.coupon-wrap{ padding:clamp(2.5rem,6vw,4rem) clamp(1.4rem,5vw,5rem) 0; }
.coupon{ max-width:1100px; margin:0 auto; display:grid; grid-template-columns:1fr auto 1.3fr; align-items:stretch; border-radius:16px; overflow:hidden; background:linear-gradient(135deg,#fffdf9,#efe8db); border:1px solid rgba(169,129,47,.35); box-shadow:0 30px 70px -30px rgba(33,30,24,.3); }
.coupon__left{ background:var(--gold); color:#0c1410; padding:2.4rem 2rem; display:flex; flex-direction:column; justify-content:center; text-align:center; }
.coupon__tag{ font-size:.72rem; letter-spacing:.3em; text-transform:uppercase; opacity:.7; }
.coupon__deal{ font-family:var(--display); font-size:clamp(2rem,4vw,2.8rem); margin:.4rem 0; line-height:1; }
.coupon__cond{ font-size:.86rem; line-height:1.4; }
.coupon__perfo{ width:2px; background:repeating-linear-gradient(to bottom, transparent 0 8px, rgba(33,30,24,.2) 8px 16px); }
.coupon__right{ padding:2.2rem 2.2rem; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:.8rem; }
.coupon__warn{ font-size:.8rem; letter-spacing:.2em; text-transform:uppercase; color:var(--ember); font-weight:500; }
.coupon__right p{ color:var(--ivory-dim); font-size:.96rem; line-height:1.55; }
.coupon__right .btn{ margin-top:.6rem; }

/* ---------- Map ---------- */
.map-section{ padding:clamp(3rem,8vw,6rem) clamp(1.4rem,5vw,5rem) clamp(4rem,10vw,7rem); }
.map-section__head{ text-align:center; max-width:760px; margin:0 auto 2.4rem; }
.map-section__title{ font-family:var(--display); font-size:clamp(1.8rem,4.5vw,3.4rem); }
.map-section__title em{ color:var(--gold); }
.map-frame{ max-width:1320px; margin:0 auto; border-radius:14px; overflow:hidden; border:1px solid var(--line); filter:grayscale(.3) contrast(1.05); }
.map-frame iframe{ display:block; }

.c-row__static{ font-family:var(--serif); font-size:1.2rem; color:var(--ivory-dim); }

/* ---------- Payments ---------- */
.payments{ max-width:1320px; margin:3rem auto 0; text-align:center; padding-top:2.4rem; border-top:1px solid var(--line); }
.payments__title{ font-family:var(--serif); font-size:1.5rem; color:var(--gold-soft); margin-bottom:1.4rem; }
.payments__list{ display:flex; flex-wrap:wrap; justify-content:center; gap:.7rem; }
.payments__list span{ font-size:.74rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ivory-dim); border:1px solid var(--line); border-radius:40px; padding:.6em 1.3em; }

/* tighter gallery preview → reduce gap before reviews */
.gallery--preview{ padding-bottom:clamp(2.5rem,5vw,4rem); }

/* compact the contact page (scoped) */
body[data-page="contact"] .page-head{ height:46vh; min-height:340px; }
body[data-page="contact"] .contact{ padding-top:clamp(2.6rem,6vw,4rem); padding-bottom:clamp(2.6rem,6vw,4rem); }
body[data-page="contact"] .services-full{ padding-top:clamp(2.6rem,6vw,4rem); padding-bottom:clamp(2.6rem,6vw,4rem); }
body[data-page="contact"] .services-full__head{ margin-bottom:2rem; }
body[data-page="contact"] .map-section{ padding-top:clamp(2rem,5vw,3rem); padding-bottom:clamp(3rem,7vw,5rem); }
body[data-page="contact"] .coupon-wrap{ padding-top:clamp(2rem,5vw,3rem); }
body[data-page="contact"] .map-frame iframe{ height:380px; }

/* mobile: align the 3 stats evenly */
@media (max-width:560px){
  .story__stats{ display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; text-align:center; align-items:start; }
  .stat__num{ font-size:2.1rem; }
  .stat__suffix{ font-size:1.1rem; }
  .stat__lbl{ font-size:.6rem; letter-spacing:.12em; }
}

/* ---------- responsive additions ---------- */
@media (max-width:1024px){
  .signature__grid{ grid-template-columns:1fr; max-width:560px; }
  .reviews__grid{ grid-template-columns:repeat(2,1fr); }
  .services-strip__grid,.services-full__grid{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:820px){
  .coupon{ grid-template-columns:1fr; }
  .coupon__perfo{ width:auto; height:2px; background:repeating-linear-gradient(to right, transparent 0 8px, rgba(33,30,24,.2) 8px 16px); }
  .reviews__grid{ grid-template-columns:1fr; max-width:520px; }
}
@media (max-width:560px){
  .services-strip__grid,.services-full__grid{ grid-template-columns:1fr; }
  .page-head{ height:54vh; }
}

/* ===================== RESPONSIVE ===================== */
@media (max-width:1024px){
  .flavors__grid{ grid-template-columns:repeat(2,1fr); }
  .gallery__grid{ grid-template-columns:repeat(2,1fr); }
  .g-item--wide{ grid-column:span 2; }
}
@media (max-width:820px){
  .nav{ padding:1.1rem clamp(1.2rem,4vw,3.4rem); }
  .nav.is-open{ background:transparent; backdrop-filter:none; border-bottom-color:transparent; }
  .nav__logo{ position:relative; z-index:3; font-size:1.3rem; }
  .nav__links{
    position:fixed; inset:0; height:100dvh; flex-direction:column; justify-content:center;
    align-items:center; gap:1.8rem; background:rgba(247,242,234,.98);
    backdrop-filter:blur(20px); transform:translateY(-100%);
    transition:transform .6s var(--ease); z-index:1; opacity:0; pointer-events:none;
  }
  .nav.is-open .nav__links{ transform:translateY(0); opacity:1; pointer-events:auto; }
  .nav__links a{ font-size:1.5rem; color:var(--ivory); }
  .nav__links a::after{ display:none; }
  .nav__cta{ display:none; }
  .nav__burger{ display:block; position:relative; z-index:4; }
  .story__grid{ grid-template-columns:1fr; }
  .story__media{ height:70vw; margin-top:2rem; }
  .chef{ grid-template-columns:1fr; }
  .chef__media{ height:80vw; }
  .contact__inner{ grid-template-columns:1fr; }
  .menu__footer{ flex-direction:column; align-items:flex-start; text-align:left; }
}
@media (max-width:560px){
  .flavors__grid{ grid-template-columns:1fr; }
  .gallery__grid{ grid-template-columns:1fr; grid-auto-rows:62vw; }
  .g-item--wide,.g-item--tall{ grid-column:auto; grid-row:auto; }
  .story__stats{ gap:1.6rem; }
  .menu-item__head{ flex-wrap:wrap; }
  .menu-item__head .dots{ display:none; }
  .c-row{ flex-direction:column; gap:.3rem; }
}

@media (prefers-reduced-motion:reduce){
  *{ animation-duration:.001ms !important; transition-duration:.1ms !important; }
  .reveal-up{ opacity:1; transform:none; }
}

/* =========================================================
   CARTE « STYLE PDF » — carrousel clair éditorial
   (nourrie par js/menu-data.js → source unique)
   ========================================================= */
.carte{
  --c-ink:#211e18; --c-soft:#6f685b; --c-faint:#9a9384;
  --c-line:rgba(33,30,24,.12); --c-gold:#a9812f;
  background:linear-gradient(180deg,#f6f1e8 0%,#efe8da 100%);
  color:var(--c-ink); position:relative;
  padding:clamp(2.4rem,5vw,4rem) clamp(1.1rem,5vw,5rem) clamp(3rem,6vw,5rem);
}
.carte__intro{ max-width:760px; margin:0 auto clamp(1.4rem,3vw,2rem); text-align:center; }
.carte__intro .section-label{ color:var(--c-gold); margin-bottom:.9rem; }
.carte__title{ font-family:var(--display); font-size:clamp(2rem,5vw,3.2rem); color:var(--c-ink); line-height:1.02; }
.carte__legend{ margin-top:.7rem; color:var(--c-soft); font-size:.9rem; max-width:56ch; margin-inline:auto; }

/* ---- Carte façon PDF : une "page" (feuille) blanche par catégorie ---- */
.carte__stage{ max-width:640px; margin:0 auto; }
.carte-card{ display:none; background:#fffdf9; border:1px solid rgba(33,30,24,.06);
  border-radius:18px; box-shadow:0 26px 64px -36px rgba(33,30,24,.42), 0 2px 8px -5px rgba(33,30,24,.16);
  padding:clamp(1.7rem,4vw,2.9rem) clamp(1.4rem,4.5vw,2.8rem); }
.carte-card.is-active{ display:block; animation:carteFade .42s var(--ease); }
@keyframes carteFade{ from{ opacity:0; transform:translateY(10px); } to{ opacity:1; transform:none; } }
.carte-card__cat{ text-align:center; font-family:var(--sans); font-weight:500; font-size:.82rem;
  letter-spacing:.32em; text-transform:uppercase; color:var(--c-ink); }
.carte-card__cat::after{ content:""; display:block; width:30px; height:1px; margin:.9rem auto 0; background:var(--c-gold); }
.carte-card__intro{ text-align:center; color:var(--c-soft); font-size:.85rem; margin-top:1rem; }

.carte-sec{ margin-top:1.7rem; }
.carte-sec:first-of-type{ margin-top:1.9rem; }
.carte-sec__title{ text-align:center; font-family:var(--sans); font-weight:500; font-size:.66rem; letter-spacing:.24em;
  text-transform:uppercase; color:var(--c-gold); margin-bottom:.6rem; }

.carte-list{ list-style:none; }
.carte-row{ display:flex; gap:1rem; align-items:center; padding:1.05rem 0; border-bottom:1px solid var(--c-line); }
.carte-row:last-child{ border-bottom:0; }
.carte-row__thumb{ flex:0 0 auto; width:56px; height:56px; border-radius:11px; overflow:hidden;
  background:#efe8da; box-shadow:inset 0 0 0 1px rgba(33,30,24,.05); }
.carte-row__thumb img{ width:100%; height:100%; object-fit:cover; }
.carte-row__thumb--ph{ display:flex; align-items:center; justify-content:center; }
.carte-row__thumb--ph span{ font-family:var(--display); font-size:1.4rem; color:var(--c-gold); opacity:.5; }
.carte-row__body{ flex:1 1 auto; min-width:0; }
.carte-row__name{ display:block; font-family:var(--sans); font-weight:500; font-size:.78rem; letter-spacing:.12em;
  text-transform:uppercase; color:var(--c-ink); line-height:1.35; }
.carte-row__desc{ display:block; font-family:var(--serif); font-style:italic; font-size:1.02rem; line-height:1.4;
  color:var(--c-soft); margin-top:.3rem; }
.carte-row__price{ display:block; font-family:var(--sans); font-size:.72rem; letter-spacing:.16em;
  text-transform:uppercase; color:var(--c-soft); margin-top:.45rem; }
.carte-row__price small{ font-size:.82em; letter-spacing:.06em; text-transform:none; color:var(--c-faint); }

.ptag{ font-style:normal; font-size:.9em; margin-left:.1em; }
.carte-row.is-out{ opacity:.5; }
.carte-row.is-out .carte-row__name{ text-decoration:line-through; }
.carte-row.is-out .carte-row__thumb img{ filter:grayscale(1); }
.carte-row__out{ display:inline-block; margin-left:.4em; font-size:.56rem; letter-spacing:.16em;
  text-transform:uppercase; color:#fff; background:var(--ember); border-radius:20px; padding:.24em .6em; vertical-align:middle; }

/* carte encadrée par les flèches gauche / droite */
.carte__viewport{ position:relative; max-width:780px; margin:0 auto; padding-inline:clamp(38px,6vw,68px); }
.carte__arrow{ position:absolute; top:50%; transform:translateY(-50%); z-index:6;
  width:46px; height:46px; border-radius:50%; border:1px solid var(--c-line);
  background:#fffdf9; color:var(--c-ink); display:flex; align-items:center; justify-content:center;
  font-size:1.25rem; line-height:1; cursor:pointer; box-shadow:0 12px 30px -16px rgba(33,30,24,.4);
  transition:.35s var(--ease); }
.carte__arrow:hover{ border-color:var(--c-gold); color:var(--c-gold); transform:translateY(-50%) scale(1.07); }
.carte__arrow--prev{ left:0; }
.carte__arrow--next{ right:0; }

/* pastilles + légende — sous la carte */
.carte__controls{ max-width:640px; margin:1.5rem auto 0; text-align:center; }
.carte__dots{ display:flex; gap:.55rem; align-items:center; flex-wrap:wrap; justify-content:center; max-width:70vw; }
.carte__dot{ width:9px; height:9px; border-radius:50%; border:0; padding:0;
  background:rgba(33,30,24,.2); transition:.35s var(--ease); }
.carte__dot:hover{ background:rgba(33,30,24,.36); }
.carte__dot.is-active{ background:var(--c-gold); transform:scale(1.3); }
.carte__hint{ margin-top:1rem; font-family:var(--serif); font-style:italic; font-size:.92rem; color:var(--c-faint); }

.carte__footer{ max-width:640px; margin:clamp(2rem,4vw,3rem) auto 0; padding-top:1.6rem;
  border-top:1px solid var(--c-line); display:flex; align-items:center; justify-content:space-between;
  gap:1.2rem; flex-wrap:wrap; }
.carte__footer p{ font-family:var(--serif); font-style:italic; font-size:1rem; color:var(--c-soft); }
.carte .btn--solid{ background:var(--c-ink); color:#f6f1e8; }

/* Page carte : curseur natif (le curseur doré est invisible sur fond clair) */
body[data-page="carte"]{ cursor:auto; }
body[data-page="carte"] a,
body[data-page="carte"] button,
body[data-page="carte"] [data-cursor="hover"],
body[data-page="carte"] .carte__dot,
body[data-page="carte"] .carte__arrow,
body[data-page="carte"] .nav__burger{ cursor:pointer; }
body[data-page="carte"] .cursor,
body[data-page="carte"] .cursor-dot{ display:none !important; }

@media (max-width:600px){
  .carte-row{ padding:.9rem 0; gap:.8rem; }
  .carte-row__thumb{ width:48px; height:48px; }
  .carte-row__desc{ font-size:.98rem; }
  .carte__viewport{ padding-inline:30px; }
  .carte__arrow{ width:36px; height:36px; font-size:1.05rem; }
  .carte__footer{ flex-direction:column; align-items:flex-start; }
}


/* ===== Thème CLAIR premium — finitions ===== */
.flavor-card,.sig-card,.review-card,.svc,.srv,.reviews__badge,.legend{
  box-shadow:0 18px 42px -30px rgba(33,30,24,.4);
}
.cursor,.cursor-dot{ display:none !important; }
a,button,[data-cursor="hover"],.nav__burger,.carte__tab,.carte__dot,.carte__arrow{ cursor:pointer; }

/* ---- Carte : bloc message de redirection (commande en ligne) ---- */
.carte__cta{ max-width:640px; margin:0 auto; text-align:center; }
.carte__cta-title{ font-family:var(--display); font-size:clamp(2rem,5vw,3.4rem); color:var(--c-ink); line-height:1.06; margin-top:.5rem; }
.carte__cta-text{ margin:1.3rem auto 0; color:var(--c-soft); font-size:1.05rem; line-height:1.6; max-width:52ch; }
.carte__cta-actions{ display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; margin-top:2.4rem; }
.carte__cta-note{ margin-top:1.9rem; font-family:var(--serif); font-style:italic; color:var(--c-faint); font-size:.95rem; }

/* Contact : boutons réserver/appeler côte à côte */
.contact__cta{ display:flex; gap:.8rem; flex-wrap:wrap; margin-top:2.4rem; }
.contact__cta .btn--lg{ margin-top:0; }

/* ===== Hero éditorial : photo de la salle en bannière, texte centré ===== */
.hero__img{ filter:brightness(.98) saturate(1.04); object-position:center 42%; }
.hero__overlay{
  background:
    radial-gradient(115% 100% at 50% 40%, rgba(10,6,2,.30), rgba(10,6,2,.52) 55%, rgba(10,6,2,.80)),
    linear-gradient(to top, var(--bg) 0.5%, rgba(10,6,2,.30) 20%, transparent 52%);
}
.sr-only{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

body[data-page="home"] .hero{ align-items:center; }
body[data-page="home"] .hero__content{ text-align:center; }
body[data-page="home"] .hero__actions{ justify-content:center; }

/* eyebrow avec filets latéraux */
.hero__eyebrow{
  display:flex; align-items:center; justify-content:center;
  font-size:.8rem; letter-spacing:.36em; text-transform:uppercase;
  color:#e9d4a0; margin-bottom:1.7rem; font-weight:400;
  text-shadow:0 1px 14px rgba(0,0,0,.5);
}
.hero__eyebrow i{ display:inline-block; width:clamp(24px,6vw,52px); height:1px;
  background:currentColor; opacity:.55; margin:0 clamp(.7em,2vw,1.2em); }

/* Marque géante */
.hero__brand{
  font-family:var(--display);
  font-size:clamp(4.4rem,18vw,15rem);
  line-height:.9; letter-spacing:.01em; color:#fdf6e6;
  text-shadow:0 6px 44px rgba(0,0,0,.42);
}
.hero__brand em{ font-style:normal; color:#e7c579; }

.hero__tag--solo{
  margin:1.6rem auto 0; max-width:30ch;
  color:#f6ead2; font-family:var(--serif); font-style:italic; font-weight:400;
  font-size:clamp(1.35rem,3.1vw,2.15rem); line-height:1.3;
  text-shadow:0 2px 22px rgba(0,0,0,.55);
}
.hero__actions{ margin-top:2.8rem; }
.hero__actions .btn--ghost{ border-color:rgba(255,247,234,.6); color:#fff7ea; }
.hero__actions .btn--ghost:hover{ color:#0c1410; border-color:var(--gold); }

.hero__title{ color:#fff7ea; }
.hero__title em{ color:#e7cd8a; }
.hero__tag{ color:rgba(255,247,234,.9); }
.hero__scroll{ color:rgba(255,247,234,.72); }
.hero__scroll-line{ background:rgba(255,247,234,.32); }

@media (max-width:820px){
  body[data-page="home"] .hero{ min-height:auto; height:88svh; }
  .hero__img{ object-position:center; }
  .hero__scroll{ display:none; }
}

/* =========================================================
   DESIGN ELEVATION v2 — bannière + finitions modernes
   (surcharge additive, chargée en dernier)
   ========================================================= */

/* ---------- HERO : bannière vivante & impactante ---------- */
/* Ken Burns doux sur le média (n'entre pas en conflit avec le parallax GSAP de .hero__img) */
.hero__media{ animation:heroKen 26s ease-in-out infinite alternate; will-change:transform; }
@keyframes heroKen{ from{ transform:scale(1); } to{ transform:scale(1.075); } }

/* Overlay plus riche : dégradé chaud + vignette + voile haut/bas pour la profondeur */
.hero__overlay{
  background:
    linear-gradient(to bottom, rgba(8,5,1,.5), transparent 26%),
    radial-gradient(118% 92% at 50% 40%, rgba(10,6,2,.24), rgba(10,6,2,.52) 55%, rgba(10,6,2,.82)),
    radial-gradient(150% 130% at 50% 46%, transparent 50%, rgba(0,0,0,.52)),
    linear-gradient(to top, var(--bg) 0.5%, rgba(10,6,2,.28) 19%, transparent 50%);
}

/* Reflet doré animé sur l'accent de la marque */
.hero__brand em{
  background:linear-gradient(100deg,#e7c579 18%,#fff2cf 44%,#d9b45f 60%,#e7c579 82%);
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:transparent;
  background-size:220% auto; animation:heroShimmer 7s linear infinite;
}
@keyframes heroShimmer{ to{ background-position:-220% center; } }

.hero__eyebrow{ animation:fadeSoft 1.4s var(--ease) both; }
@keyframes fadeSoft{ from{ opacity:0; } to{ opacity:1; } }

/* ---------- Étiquettes de section : petit filet doré ---------- */
.section-label{ display:inline-flex; align-items:center; }
.section-label::before{
  content:""; width:clamp(20px,4vw,32px); height:1px;
  background:currentColor; opacity:.7; margin-right:.85em;
}

/* ---------- Profondeur des cartes ---------- */
.sig-card,.review-card,.flavor-card,.srv,.svc,.hours,.coupon{
  box-shadow:0 20px 46px -34px rgba(33,30,24,.55);
}
.sig-card:hover,.review-card:hover,.flavor-card:hover{
  box-shadow:0 46px 80px -38px rgba(33,30,24,.6);
}

/* Boutons pleins : halo doré subtil */
.btn--solid{ box-shadow:0 16px 34px -18px rgba(169,129,47,.85); }

/* ---------- Plats signature : présentation plus élégante ---------- */
.sig-card{ border-radius:14px; }
.sig-card__img{ position:relative; height:300px; }
.sig-card__img::after{
  content:""; position:absolute; inset:0; z-index:1;
  background:linear-gradient(to top, rgba(12,8,3,.42), transparent 46%);
  opacity:0; transition:opacity .6s var(--ease);
}
.sig-card:hover .sig-card__img::after{ opacity:1; }
.sig-card__img img{ filter:saturate(1.05) contrast(1.03); }
/* Prix en pastille, à cheval sur la jointure image / texte */
.sig-card__price{
  top:0; right:1.4rem; bottom:auto; transform:translateY(-50%);
  background:var(--gold); color:#0c1410; z-index:3;
  font-size:1.05rem; line-height:1; padding:.5em .85em; border-radius:40px;
  box-shadow:0 12px 24px -10px rgba(33,30,24,.6);
}
.sig-card__body{ padding-top:1.9rem; }
.sig-card__body p{ padding-right:0; }
.sig-card__body h3{ transition:color .4s var(--ease); }
.sig-card:hover .sig-card__body h3{ color:var(--gold-soft); }

/* ---------- Galerie : images lumineuses + cadre doré au survol ---------- */
.g-item{ border-radius:10px; }
.g-item img{ filter:saturate(1.04) brightness(.84) contrast(1.03); }
.g-item:hover img{ transform:scale(1.08); filter:saturate(1.1) brightness(1); }
.g-item::before{
  content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(to top, rgba(12,8,3,.4), transparent 48%);
  opacity:0; transition:opacity .6s var(--ease);
}
.g-item::after{
  content:""; position:absolute; inset:12px; z-index:2; pointer-events:none;
  border:1px solid rgba(231,197,121,0); border-radius:4px;
  transition:border-color .55s var(--ease), inset .55s var(--ease);
}
.g-item:hover::before{ opacity:1; }
.g-item:hover::after{ inset:14px; border-color:rgba(231,197,121,.75); }

/* ---------- Story : média mieux mis en valeur ---------- */
.story__img-wrap{ box-shadow:0 46px 90px -46px rgba(33,30,24,.45); }
.story__img-wrap::after{
  content:""; position:absolute; inset:0; z-index:2; pointer-events:none;
  border:1px solid rgba(231,197,121,.28); border-radius:6px;
}
.story__img-float{ box-shadow:0 34px 64px -26px rgba(33,30,24,.4); }

/* ---------- Bandeau CTA : image un peu plus présente ---------- */
.cta-band__overlay{ background:linear-gradient(rgba(247,242,234,.72), rgba(247,242,234,.9)); }

/* ---------- Réglages fins de mise en page ---------- */
.signature__head,.gallery__head,.reviews__head{ margin-bottom:3.8rem; }
.story__lead{ font-size:1.22rem; line-height:1.55; }
.page-head__title{ letter-spacing:.01em; }
.page-head__media img{ animation:heroKen 30s ease-in-out infinite alternate; }

/* ---------- Respect des préférences de mouvement ---------- */
@media (prefers-reduced-motion:reduce){
  .hero__media,.hero__brand em,.page-head__media img,.hero__eyebrow{ animation:none; }
  .hero__brand em{ -webkit-text-fill-color:#e7c579; color:#e7c579; }
}

/* ---------- HERO : halo de lisibilité derrière le texte ---------- */
body[data-page="home"] .hero__content{ position:relative; }
body[data-page="home"] .hero__content::before{
  content:""; position:absolute; z-index:-1;
  left:50%; top:50%; transform:translate(-50%,-50%);
  width:min(1200px,96vw); height:min(800px,88vh);
  background:radial-gradient(60% 62% at 50% 50%, rgba(6,4,1,.68), rgba(6,4,1,.36) 50%, transparent 78%);
  pointer-events:none;
}
.hero__eyebrow{ color:#f7ead0; text-shadow:0 2px 24px rgba(0,0,0,.9), 0 0 40px rgba(0,0,0,.5); }
.hero__eyebrow i{ opacity:.75; }
.hero__tag--solo{ color:#fef5e0; }

/* =========================================================
   CARROUSEL D'IMAGES (accueil) — défilement continu
   ========================================================= */
.img-carousel{
  position:relative; overflow:hidden;
  margin:1rem calc(-1 * clamp(1.4rem,5vw,5rem)) 0;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
}
.img-carousel__track{
  display:flex; gap:1.3rem; width:max-content; will-change:transform;
  padding:1.8rem clamp(1.4rem,5vw,5rem);
}
.ic-item{
  position:relative; flex:0 0 auto;
  width:clamp(280px,32vw,430px); height:clamp(220px,24vw,320px);
  border-radius:14px; overflow:hidden;
  box-shadow:0 26px 54px -32px rgba(33,30,24,.55);
}
.ic-item img{ width:100%; height:100%; object-fit:cover;
  transition:transform 1.1s var(--ease), filter 1s; filter:saturate(1.05) brightness(.9) contrast(1.03); }
.ic-item:hover img{ transform:scale(1.07); filter:saturate(1.12) brightness(1); }
.ic-item::before{
  content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(to top, rgba(12,8,3,.42), transparent 52%);
  opacity:0; transition:opacity .55s var(--ease);
}
.ic-item::after{
  content:""; position:absolute; inset:12px; z-index:2; pointer-events:none;
  border:1px solid rgba(231,197,121,0); border-radius:6px;
  transition:border-color .55s var(--ease), inset .55s var(--ease);
}
.ic-item:hover::before{ opacity:1; }
.ic-item:hover::after{ inset:14px; border-color:rgba(231,197,121,.78); }

@media (max-width:560px){
  .img-carousel__track{ gap:.9rem; padding:1.4rem 1.2rem; }
  .ic-item{ width:78vw; height:56vw; }
}

/* =========================================================
   GALERIE SHOWCASE (accueil) — mosaïque éditoriale immersive
   ========================================================= */
.gallery--showcase{ padding:clamp(4rem,9vw,7rem) clamp(1.4rem,5vw,5rem); overflow:hidden; }
.showcase__head{ text-align:center; max-width:720px; margin:0 auto clamp(2.6rem,5vw,3.8rem); }
.showcase__intro{ color:var(--ivory-dim); font-size:1.08rem; margin-top:1.2rem; line-height:1.6; }

.showcase{
  max-width:1280px; margin:0 auto;
  display:grid; gap:clamp(.7rem,1.1vw,1.15rem);
  grid-template-columns:repeat(4,1fr);
  grid-template-rows:repeat(3, clamp(166px,17vw,232px));
  grid-template-areas:
    "a a b c"
    "a a d d"
    "e f g g";
}
.showcase > :nth-child(1){ grid-area:a; }
.showcase > :nth-child(2){ grid-area:b; }
.showcase > :nth-child(3){ grid-area:c; }
.showcase > :nth-child(4){ grid-area:d; }
.showcase > :nth-child(5){ grid-area:e; }
.showcase > :nth-child(6){ grid-area:f; }
.showcase > :nth-child(7){ grid-area:g; }

.show-item{
  position:relative; overflow:hidden; border-radius:16px; margin:0;
  box-shadow:0 26px 54px -34px rgba(33,30,24,.6);
  transition:transform .6s var(--ease), box-shadow .6s var(--ease);
}
.show-item img{
  width:100%; height:100%; object-fit:cover;
  transition:transform 1.2s var(--ease), filter 1s;
  filter:saturate(1.05) brightness(.8) contrast(1.03);
}
.show-item:hover{ transform:translateY(-5px); box-shadow:0 52px 88px -40px rgba(33,30,24,.66); }
.show-item:hover img{ transform:scale(1.07); filter:saturate(1.12) brightness(.95); }

/* voile dégradé pour la lisibilité des légendes */
.show-item__shade{
  position:absolute; inset:0; z-index:2; pointer-events:none;
  background:linear-gradient(to top, rgba(8,5,1,.84) 2%, rgba(8,5,1,.3) 36%, transparent 64%);
  opacity:.92; transition:opacity .55s var(--ease);
}
.show-item:hover .show-item__shade{ opacity:1; }

/* cadre doré qui se dessine au survol */
.show-item__frame{
  position:absolute; inset:12px; z-index:3; pointer-events:none;
  border:1px solid rgba(231,197,121,0); border-radius:7px;
  transition:border-color .55s var(--ease), inset .55s var(--ease);
}
.show-item:hover .show-item__frame{ inset:15px; border-color:rgba(231,197,121,.72); }

/* légende */
.show-item__cap{
  position:absolute; left:0; right:0; bottom:0; z-index:4;
  padding:clamp(1rem,1.8vw,1.6rem);
  display:flex; flex-direction:column; gap:.42rem;
  transform:translateY(10px); transition:transform .55s var(--ease);
}
.show-item:hover .show-item__cap{ transform:translateY(0); }
.show-item__meta{ display:flex; align-items:center; gap:.7rem; }
.show-item__idx{ font-family:var(--display); font-style:normal; font-size:.92rem; color:#e7c579; }
.show-item__cat{ font-size:.6rem; letter-spacing:.28em; text-transform:uppercase; color:rgba(255,247,234,.82); }
.show-item__name{
  font-family:var(--serif); font-weight:500; line-height:1.08; color:#fff7ea;
  font-size:clamp(1.15rem,1.6vw,1.5rem);
}
.show-item--feature .show-item__name{ font-size:clamp(1.7rem,2.7vw,2.5rem); }
.show-item__name::after{
  content:""; display:block; width:0; height:1px; margin-top:.55rem;
  background:linear-gradient(90deg,#e7c579,transparent);
  transition:width .6s var(--ease);
}
.show-item:hover .show-item__name::after{ width:66px; }
.show-item__line{
  font-size:.84rem; color:rgba(255,247,234,.78); line-height:1.4;
  max-height:0; opacity:0; overflow:hidden;
  transition:max-height .55s var(--ease), opacity .5s var(--ease);
}
.show-item:hover .show-item__line{ max-height:4em; opacity:1; }

/* ---- responsive ---- */
@media (max-width:900px){
  .showcase{
    grid-template-columns:repeat(2,1fr);
    grid-template-rows:repeat(6, clamp(148px,26vw,210px));
    grid-template-areas:
      "a a"
      "a a"
      "b c"
      "d d"
      "e f"
      "g g";
  }
}
@media (max-width:560px){
  .showcase{
    grid-template-columns:1fr;
    grid-template-rows:none; grid-auto-rows:60vw;
    grid-template-areas:none;
  }
  .showcase > *{ grid-area:auto !important; }
  .show-item__line{ max-height:4em; opacity:1; }
  .show-item__cap{ transform:none; }
}

/* À propos : bannière d'en-tête encadrée (moins large, bords arrondis) */
body[data-page="about"] .page-head{
  margin:1.4rem clamp(1rem,4vw,3.4rem) 0;
  border-radius:22px;
  height:52vh; min-height:390px;
}

/* ---------- Pages légales (mentions légales · confidentialité) ---------- */
body[data-page="legal"] .page-head{ height:40vh; min-height:300px; }
.legal{ padding:clamp(3rem,7vw,5.5rem) clamp(1.4rem,5vw,4rem) clamp(4rem,9vw,7rem); }
.legal__inner{ max-width:820px; margin:0 auto; }
.legal__inner h2{ font-family:var(--display); font-size:clamp(1.5rem,3vw,2.1rem); margin:2.8rem 0 1rem; }
.legal__inner h2:first-child{ margin-top:0; }
.legal__inner p{ color:var(--ivory-dim); line-height:1.75; margin-bottom:1rem; }
.legal__inner ul{ list-style:none; margin:0 0 1.2rem; padding:0; display:flex; flex-direction:column; gap:.55rem; }
.legal__inner li{ color:var(--ivory-dim); line-height:1.6; padding-left:1.2rem; position:relative; }
.legal__inner li::before{ content:"—"; position:absolute; left:0; color:var(--gold); }
.legal__inner strong{ color:var(--ivory); font-weight:500; }
.legal__inner a{ color:var(--gold); transition:color .35s; }
.legal__inner a:hover{ color:var(--ivory); }

/* Liens de la barre basse du footer (mentions · confidentialité · powered by) */
.footer__base a{ color:inherit; transition:color .35s; }
.footer__base a:hover{ color:var(--gold); }

