/* =========================================================
   LE QUAI BRASSERIE — Design System v3
   Direction : gastronomique sombre & cinématique
   Palette conservée : Orange terracotta · Vert sauge (accent) · Noir · Crème
   ========================================================= */

:root {
  --bg:        #0B0F0E;   /* near-black, légère nuance verte chaude */
  --bg-2:      #101514;
  --bg-3:      #151B19;
  --cream:     #ECE6DC;   /* texte principal chaud */
  --muted:     #9A9488;   /* texte secondaire */
  --faint:     #6A665C;
  --orange:    #E0674C;   /* accent principal (le "Quai", filets) */
  --orange-d:  #C2543B;
  --sage:      #C6DEC6;   /* accent secondaire, doses infimes */
  --line:      rgba(236,230,220,.12);
  --line-2:    rgba(236,230,220,.06);

  --serif: "Cormorant Garamond", Georgia, serif;
  --sans:  "Jost", "Helvetica Neue", Arial, sans-serif;
  --ease:  cubic-bezier(.19,1,.22,1);
  --ease-io: cubic-bezier(.83,0,.17,1);
  --wrap: 1180px;
}

/* ---------- Thème clair ---------- */
:root[data-theme="light"] {
  --bg:      #F7F4EF;   /* blanc chaud */
  --bg-2:    #FFFFFF;
  --bg-3:    #EFEAE2;
  --cream:   #1A1512;   /* texte principal (foncé) */
  --muted:   #5F594F;
  --faint:   #A29A8C;
  --line:    rgba(26,21,18,.14);
  --line-2:  rgba(26,21,18,.06);
}

* { margin:0; padding:0; box-sizing:border-box; }
html { -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
body {
  font-family:var(--sans);
  background:var(--bg);
  color:var(--cream);
  font-size:17px;
  line-height:1.75;
  font-weight:300;
  overflow-x:clip;
  transition:background-color .6s var(--ease), color .6s var(--ease);
}
.hgal, .cat-nav, .nav, .footer, #reserver, .menu-cat__h h3, .mi__n, .footer p, .footer a,
.hrow, .cline .v, .split__txt .serif-lead, .lead, p { transition:background-color .6s var(--ease), color .6s var(--ease), border-color .6s var(--ease); }
:root[data-theme="light"] body::after { opacity:.03; }
img { max-width:100%; display:block; }
a { color:inherit; text-decoration:none; }
::selection { background:var(--orange); color:#fff; }

/* Grain overlay (cinématique) */
body::after {
  content:""; position:fixed; inset:0; z-index:9998; 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='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ---------- Typographie ---------- */
h1,h2,h3,h4 { font-family:var(--serif); font-weight:400; line-height:1.02; letter-spacing:.005em; }
.display { font-size:clamp(3.2rem, 9vw, 8rem); line-height:.94; font-weight:400; }
.h-xl { font-size:clamp(2.6rem, 5.5vw, 5rem); font-weight:400; }
.h-lg { font-size:clamp(2rem, 4vw, 3.4rem); }
.serif-lead { font-family:var(--serif); font-size:clamp(1.5rem,2.6vw,2.4rem); line-height:1.35; font-weight:300; color:var(--cream); }
.lead { font-size:clamp(1.02rem,1.35vw,1.2rem); color:var(--muted); font-weight:300; line-height:1.85; }
.ital { font-style:italic; }
.q { color:var(--orange); font-style:italic; }
p { color:var(--muted); }

.label {
  font-family:var(--sans); font-size:.7rem; font-weight:400;
  letter-spacing:.4em; text-transform:uppercase; color:var(--orange);
  display:inline-flex; align-items:center; gap:.9em;
}
.label::before { content:""; width:34px; height:1px; background:var(--orange); opacity:.7; }
.label.plain::before { display:none; }
.label.muted { color:var(--muted); }
.label.muted::before { background:var(--muted); }

/* ---------- Layout ---------- */
.wrap { width:min(var(--wrap),88vw); margin-inline:auto; }
.wrap-wide { width:min(1420px,92vw); margin-inline:auto; }
section { position:relative; }
.pad { padding-block:clamp(6rem,13vw,11rem); }
.center { text-align:center; }
.hairline { height:1px; background:var(--line); border:0; }

/* ---------- Custom cursor ---------- */
.cur { position:fixed; top:0; left:0; z-index:9999; pointer-events:none; border-radius:50%; }
.cur-dot { width:6px; height:6px; background:var(--orange); transform:translate(-50%,-50%); }
.cur-ring { width:40px; height:40px; border:1px solid rgba(236,230,220,.35); transform:translate(-50%,-50%); transition:width .35s var(--ease), height .35s var(--ease), border-color .35s, background .35s; }
.cur-ring.on { width:74px; height:74px; border-color:var(--orange); background:rgba(224,103,76,.06); }
@media (hover:none){ .cur{ display:none; } }

/* ---------- Buttons / links ---------- */
.btn {
  display:inline-flex; align-items:center; gap:.9em;
  font-family:var(--sans); font-size:.72rem; letter-spacing:.28em; text-transform:uppercase; font-weight:400;
  color:var(--cream); padding-bottom:.7em; position:relative;
}
.btn::after { content:""; position:absolute; left:0; bottom:0; width:100%; height:1px; background:var(--line); }
.btn::before { content:""; position:absolute; left:0; bottom:0; width:0; height:1px; background:var(--orange); transition:width .5s var(--ease); z-index:1; }
.btn:hover::before { width:100%; }
.btn .arw { color:var(--orange); transition:transform .4s var(--ease); }
.btn:hover .arw { transform:translateX(6px); }
.btn-solid {
  padding:1.1em 2.6em; border:1px solid var(--orange); color:var(--cream);
  letter-spacing:.24em; overflow:hidden; z-index:0;
}
.btn-solid::after{ display:none; }
.btn-solid::before { content:""; position:absolute; inset:0; background:var(--orange); transform:translateY(101%); transition:transform .5s var(--ease); z-index:-1; width:100%; height:100%; }
.btn-solid:hover::before { transform:translateY(0); }

/* ---------- Nav ---------- */
.nav {
  position:fixed; inset:0 0 auto 0; z-index:200;
  display:flex; align-items:center; justify-content:space-between;
  padding:1.8rem clamp(1.3rem,5vw,3.5rem);
  transition:padding .6s var(--ease), background .6s var(--ease), border-color .6s;
  border-bottom:1px solid transparent;
}
.nav { --nav-fg:#ECE6DC; }
.nav.solid { background:rgba(11,15,14,.82); backdrop-filter:blur(16px); padding-block:1.1rem; border-color:var(--line-2); }
:root[data-theme="light"] .nav.solid { --nav-fg:#1A1512; background:rgba(247,244,239,.9); }
.nav__logo { display:block; line-height:0; }
.nav__logo img { height:44px; width:auto; display:block; transition:height .5s var(--ease); }
.nav.solid .nav__logo img { height:36px; }
@media (max-width:640px){ .nav__logo img{ height:36px; } }
/* bascule des logos selon thème + état */
.nav__logo .lg-dark { display:none; }
:root[data-theme="light"] .nav.solid .lg-cream { display:none; }
:root[data-theme="light"] .nav.solid .lg-dark { display:block; }
/* bouton thème */
.theme-btn { width:38px; height:38px; display:grid; place-items:center; border:1px solid; border-color:color-mix(in srgb, var(--nav-fg) 45%, transparent); border-radius:50%; background:transparent; color:var(--nav-fg); cursor:pointer; margin-left:1.6rem; transition:.4s var(--ease); }
.theme-btn:hover { border-color:var(--orange); color:var(--orange); transform:rotate(-15deg); }
.theme-btn svg { width:16px; height:16px; }
.theme-btn .i-sun { display:block; }
.theme-btn .i-moon { display:none; }
:root[data-theme="light"] .theme-btn .i-sun { display:none; }
:root[data-theme="light"] .theme-btn .i-moon { display:block; }
@media (max-width:960px){ .theme-btn{ margin-left:0; margin-right:1.1rem; } }
.nav__links { display:flex; align-items:center; gap:2.4rem; margin-left:auto; }
.nav__links a { font-family:var(--sans); font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; color:var(--nav-fg); position:relative; padding-block:.4em; opacity:.85; transition:opacity .3s, color .5s var(--ease); }
.nav__links a:hover { opacity:1; }
.nav__links a::after { content:""; position:absolute; left:0; bottom:0; width:0; height:1px; background:var(--orange); transition:width .4s var(--ease); }
.nav__links a:hover::after, .nav__links a.active::after { width:100%; }
.nav__links a.active { opacity:1; }
.nav__cta { border:1px solid color-mix(in srgb, var(--nav-fg) 30%, transparent); padding:.75em 1.5em !important; border-radius:1px; color:var(--nav-fg) !important; transition:border-color .4s, color .4s, background .4s; }
.nav__cta::after { display:none !important; }
.nav__cta:hover { border-color:var(--orange); color:var(--orange); }
.burger { display:none; flex-direction:column; gap:6px; background:none; border:0; cursor:pointer; z-index:110; }
.burger span { width:26px; height:1px; background:var(--nav-fg); transition:.45s var(--ease); }
.burger.is-open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.burger.is-open span:nth-child(2){ opacity:0; }
.burger.is-open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

.mobile-menu { position:fixed; inset:0; z-index:105; background:var(--bg); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1.5rem; opacity:0; visibility:hidden; transition:.55s var(--ease); }
/* menu mobile ouvert : garder le X cliquable au-dessus de l'overlay, masquer logo/toggle */
.nav.nav--open { z-index:200; --nav-fg:#ECE6DC; }
:root[data-theme="light"] .nav.nav--open { --nav-fg:#1A1512; }
.nav--open .nav__logo, .nav--open .theme-btn { opacity:0; pointer-events:none; }
.mobile-menu.open { opacity:1; visibility:visible; }
.mobile-menu a { font-family:var(--serif); font-size:2.2rem; color:var(--cream); }
.mobile-menu a.reserve { color:var(--orange); font-style:italic; font-size:1.6rem; }

/* ---------- Hero ---------- */
/* Hero & page-hero restent sur image sombre → texte toujours clair, quel que soit le thème */
.hero, .phero, .band { --cream:#ECE6DC; --muted:#C7C1B5; --line:rgba(236,230,220,.35); color:var(--cream); }
.phero__in .display, .hero__inner .display { color:#fff; }
.phero::after { background:linear-gradient(rgba(11,15,14,.28), rgba(11,15,14,.55) 55%, rgba(11,15,14,.92)); }
:root[data-theme="light"] .burger.is-open span { background:#1A1512; }
.hero { height:100svh; min-height:640px; position:relative; display:flex; align-items:flex-end; overflow:hidden; }
.hero__media { position:absolute; inset:0; will-change:transform; }
.hero__media img, .hero__media video { width:100%; height:100%; object-fit:cover; transform:scale(1.14); }
.hero__media::after { content:""; position:absolute; inset:0; background:
  linear-gradient(180deg, rgba(11,15,14,.55) 0%, rgba(11,15,14,.15) 35%, rgba(11,15,14,.35) 60%, rgba(11,15,14,.92) 100%),
  radial-gradient(120% 80% at 50% 40%, transparent 40%, rgba(11,15,14,.5) 100%); }
.hero__inner { position:relative; z-index:2; width:min(var(--wrap),88vw); margin-inline:auto; padding-bottom:clamp(4rem,9vw,8rem); }
.hero__inner .display { color:#fff; }
.line-mask { display:block; overflow:hidden; padding-bottom:.02em; }
.line-mask > span { display:block; will-change:transform; }
.hero__meta { position:absolute; z-index:2; bottom:clamp(4rem,9vw,8rem); right:clamp(1.3rem,5vw,3.5rem); text-align:right; color:var(--muted); font-size:.72rem; letter-spacing:.24em; text-transform:uppercase; line-height:2; }
.hero__meta b { color:var(--cream); font-weight:400; }
.hero__scroll { position:absolute; bottom:2rem; left:50%; transform:translateX(-50%); z-index:2; color:var(--cream); font-size:.62rem; letter-spacing:.35em; text-transform:uppercase; display:flex; flex-direction:column; align-items:center; gap:.9rem; opacity:.7; }
.hero__scroll .l { width:1px; height:44px; background:linear-gradient(var(--orange),transparent); animation:drop 2.4s var(--ease) infinite; }
@keyframes drop { 0%{transform:scaleY(0);transform-origin:top} 45%{transform:scaleY(1);transform-origin:top} 55%{transform-origin:bottom} 100%{transform:scaleY(0);transform-origin:bottom} }
@media (max-width:640px){ .hero__meta{ display:none; } .hero__scroll{ display:none; } .hero__inner{ padding-bottom:clamp(3rem,10vw,5rem); } }

/* ---------- Reveals ---------- */
[data-rise] { opacity:0; transform:translateY(40px); transition:opacity 1.1s var(--ease), transform 1.1s var(--ease); }
[data-rise].in { opacity:1; transform:none; }
[data-stagger] > * { opacity:0; transform:translateY(34px); transition:opacity 1s var(--ease), transform 1s var(--ease); }
[data-stagger].in > * { opacity:1; transform:none; }
.clip { clip-path:inset(0 0 100% 0); transition:clip-path 1.3s var(--ease-io); }
.clip.in { clip-path:inset(0 0 0 0); }

/* ---------- Marquee ---------- */
.marquee { overflow:hidden; padding-block:2rem; border-block:1px solid var(--line-2); }
.marquee__t { display:flex; gap:0; width:max-content; animation:mq 40s linear infinite; }
.marquee__t span { font-family:var(--serif); font-style:italic; font-size:clamp(1.6rem,3vw,2.6rem); color:var(--cream); white-space:nowrap; display:inline-flex; align-items:center; opacity:.9; }
.marquee__t span::after { content:"✦"; font-style:normal; font-size:.5em; color:var(--orange); margin-inline:1.4em; opacity:.8; }
@keyframes mq { to { transform:translateX(-50%); } }

/* ---------- Editorial split ---------- */
.split { display:grid; grid-template-columns:1fr 1fr; gap:clamp(2.5rem,7vw,7rem); align-items:center; }
.split.reverse .split__media { order:2; }
.split__txt .serif-lead { margin-block:1.6rem 1.4rem; }
.split__media { position:relative; overflow:hidden; }
.split__media img { width:100%; aspect-ratio:4/5; object-fit:cover; }
.idx { font-family:var(--serif); font-size:1rem; color:var(--orange); letter-spacing:.1em; }

/* ---------- Full-bleed band ---------- */
.band { height:88vh; min-height:560px; position:relative; display:flex; align-items:center; justify-content:center; overflow:hidden; text-align:center; background:#0B0F0E; }
.band__media { position:absolute; inset:-11% 0; will-change:transform; }
.band__media img { width:100%; height:100%; object-fit:cover; }
.band::after { content:""; position:absolute; inset:0; background:rgba(11,15,14,.55); }
.band__in { position:relative; z-index:2; width:min(760px,86vw); }
.band__in .serif-lead { color:#fff; }

/* ---------- Signatures : liste + image flottante ---------- */
.sig { display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(2rem,6vw,6rem); align-items:start; }
.sig__list { display:flex; flex-direction:column; }
.sig__row { display:grid; grid-template-columns:auto 1fr auto; align-items:baseline; gap:1.4rem; padding:1.8rem 0; border-top:1px solid var(--line); cursor:pointer; transition:padding-left .5s var(--ease); }
.sig__row:last-child { border-bottom:1px solid var(--line); }
.sig__row .n { font-family:var(--serif); font-size:.95rem; color:var(--faint); transition:color .4s; }
.sig__row .nm { font-family:var(--serif); font-size:clamp(1.5rem,2.4vw,2.1rem); color:var(--muted); transition:color .5s var(--ease); line-height:1.1; }
.sig__row .nm small { display:block; font-family:var(--sans); font-size:.8rem; letter-spacing:.02em; color:var(--faint); margin-top:.35em; font-weight:300; }
.sig__row .pr { font-family:var(--serif); font-size:1.3rem; color:var(--orange); }
.sig__row:hover { padding-left:1.4rem; }
.sig__row:hover .nm { color:var(--cream); }
.sig__row:hover .n { color:var(--orange); }
.sig__media { position:sticky; top:18vh; aspect-ratio:4/5; overflow:hidden; }
.sig__media img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transform:scale(1.06); transition:opacity .7s var(--ease), transform 1.2s var(--ease); }
.sig__media img.show { opacity:1; transform:scale(1); }
@media (max-width:860px){
  .sig{ grid-template-columns:1fr; }
  .sig__media{ display:none; }
  .sig__row{ grid-template-columns:auto 1fr; }
  .sig__row .pr{ grid-column:2; text-align:right; }
}

/* ---------- Horizontal gallery (pinned) ---------- */
.hgal { position:relative; overflow:hidden; background:var(--bg); }
.hgal__pin { height:100vh; display:flex; align-items:center; }
.hgal__track { display:flex; gap:clamp(1.2rem,2vw,2rem); padding-inline:9vw; will-change:transform; align-items:center; }
.hslide { position:relative; flex:0 0 auto; width:min(38vw,500px); height:72vh; overflow:hidden; }
.hslide.tall { height:80vh; }
.hslide.short { width:min(26vw,330px); height:58vh; }
.hslide img { width:100%; height:100%; object-fit:cover; will-change:transform; }
.hslide::after { content:""; position:absolute; inset:0; background:linear-gradient(transparent 55%, rgba(11,15,14,.75)); }
.hslide__cap { position:absolute; left:1.6rem; bottom:1.5rem; z-index:2; }
.hslide__cap .n { font-family:var(--sans); font-size:.62rem; letter-spacing:.32em; text-transform:uppercase; color:var(--orange); }
.hslide__cap .t { font-family:var(--serif); font-size:1.5rem; color:#fff; margin-top:.25em; }
.hgal__intro { flex:0 0 auto; width:min(30vw,340px); padding-right:2vw; }
.hgal__prog { position:absolute; bottom:6vh; left:9vw; right:9vw; height:1px; background:var(--line); z-index:3; }
.hgal__prog i { display:block; height:100%; width:0; background:var(--orange); }
@media (max-width:900px){
  .hgal__pin{ height:auto; padding-block:5rem; }
  .hgal__track{ overflow-x:auto; scroll-snap-type:x mandatory; transform:none !important; padding-inline:6vw; }
  .hslide,.hslide.tall,.hslide.short{ width:78vw; height:62vh; scroll-snap-align:center; }
  .hgal__intro{ width:78vw; }
  .hgal__prog{ display:none; }
}

/* ---------- Menu (carte) ---------- */
.cat-nav { position:sticky; top:68px; z-index:40; background:color-mix(in srgb, var(--bg) 92%, transparent); backdrop-filter:blur(12px); border-bottom:1px solid var(--line-2); }
@media (max-width:640px){ .cat-nav{ top:60px; } }
.cat-nav__in { display:flex; gap:.5rem; justify-content:center; flex-wrap:wrap; overflow-x:auto; padding:1rem 0; scrollbar-width:none; }
@media (max-width:640px){ .cat-nav__in{ flex-wrap:nowrap; justify-content:flex-start; } }
.cat-nav__in::-webkit-scrollbar{ display:none; }
.cat-nav a { font-size:.68rem; letter-spacing:.18em; text-transform:uppercase; padding:.6em 1.2em; border:1px solid var(--line); border-radius:100px; white-space:nowrap; color:var(--muted); transition:.4s; }
.cat-nav a:hover, .cat-nav a.active { background:var(--orange); border-color:var(--orange); color:#fff; }
.menu-cat { margin-bottom:4.5rem; }
.menu-cat__h { display:flex; align-items:center; gap:1.5rem; margin-bottom:2.2rem; }
.menu-cat__h h3 { font-size:clamp(1.8rem,3vw,2.6rem); color:var(--cream); white-space:nowrap; }
.menu-cat__h .r { flex:1; height:1px; background:var(--line); }
.menu-list { display:grid; gap:1.3rem; }
.mi { display:grid; grid-template-columns:1fr auto; align-items:baseline; gap:1.2rem; }
.mi__n { font-family:var(--serif); font-size:1.35rem; color:var(--cream); }
.mi__n small { display:block; font-family:var(--sans); font-size:.82rem; color:var(--faint); margin-top:.15em; font-weight:300; text-transform:none; letter-spacing:.01em; }
.mi__p { font-family:var(--serif); font-size:1.25rem; color:var(--orange); white-space:nowrap; }
.menu-cols { display:grid; grid-template-columns:1fr 1fr; gap:2.5rem 5rem; }
.note { font-size:.84rem; color:var(--faint); font-style:italic; }

/* ---------- Page hero ---------- */
.phero { height:64vh; min-height:440px; position:relative; display:flex; align-items:flex-end; overflow:hidden; }
.phero img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; will-change:transform; }
.phero::after { content:""; position:absolute; inset:0; background:linear-gradient(rgba(11,15,14,.35),rgba(11,15,14,.9)); }
.phero__in { position:relative; z-index:2; width:min(var(--wrap),88vw); margin-inline:auto; padding-bottom:clamp(2.5rem,6vw,5rem); }
.crumb { font-size:.68rem; letter-spacing:.26em; text-transform:uppercase; color:var(--muted); margin-bottom:1.1rem; }
.crumb b { color:var(--orange); font-weight:400; }

/* ---------- Hours / contact ---------- */
.info-grid { display:grid; grid-template-columns:1.1fr 1fr; gap:clamp(2rem,6vw,5rem); }
.hrow { display:flex; justify-content:space-between; padding:1rem 0; border-bottom:1px solid var(--line); font-size:.98rem; color:var(--cream); }
.hrow.closed { color:var(--faint); }
.hrow strong { font-weight:400; letter-spacing:.03em; }
.cline { display:flex; gap:1.2rem; padding:1.1rem 0; border-bottom:1px solid var(--line); }
.cline .k { color:var(--orange); font-size:.66rem; letter-spacing:.24em; text-transform:uppercase; min-width:100px; padding-top:.4em; }
.cline .v { font-size:1.05rem; color:var(--cream); }
.resa-wrap { background:#fff; padding:clamp(1rem,3vw,2rem); }
.resa-frame { width:100%; min-height:780px; border:0; background:#fff; }

/* ---------- Footer ---------- */
.footer { border-top:1px solid var(--line); padding-block:clamp(4rem,8vw,6rem) 2.5rem; }
.footer__grid { display:grid; grid-template-columns:1.5fr 1fr 1fr; gap:3rem; padding-bottom:3.5rem; }
.footer h4 { font-size:.72rem; letter-spacing:.28em; text-transform:uppercase; font-family:var(--sans); font-weight:400; color:var(--orange); margin-bottom:1.4rem; }
.footer__logo { font-family:var(--serif); font-size:2.6rem; margin-bottom:1.1rem; letter-spacing:.04em; }
.footer__logo .q { color:var(--orange); font-style:italic; }
.footer__logo-img { height:58px; width:auto; margin-bottom:1.3rem; }
.footer__logo-img.lg-dark { display:none; }
:root[data-theme="light"] .footer__logo-img.lg-cream { display:none; }
:root[data-theme="light"] .footer__logo-img.lg-dark { display:inline-block; }
.footer p, .footer a { color:var(--muted); font-size:.94rem; line-height:1.95; }
.footer a:hover { color:var(--orange); }
.footer__bot { display:flex; justify-content:space-between; align-items:center; padding-top:2rem; border-top:1px solid var(--line-2); font-size:.76rem; color:var(--faint); flex-wrap:wrap; gap:1rem; letter-spacing:.04em; }
.socials { display:flex; gap:.8rem; }
.socials a { width:38px; height:38px; border:1px solid var(--line); border-radius:50%; display:grid; place-items:center; font-size:.68rem; letter-spacing:.1em; transition:.4s; }
.socials a:hover { border-color:var(--orange); color:var(--orange); }

/* ---------- La Maison : intro surdimensionnée ---------- */
.intro-xl { max-width:20ch; font-family:var(--serif); font-weight:300; font-size:clamp(2.4rem,5.5vw,4.6rem); line-height:1.05; }
.intro-cols { display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,6vw,6rem); align-items:end; }
@media (max-width:860px){ .intro-cols{ grid-template-columns:1fr; gap:2rem; align-items:start; } }

/* ---------- Composition d'images décalées ---------- */
.duo { display:grid; grid-template-columns:1fr 1fr; gap:clamp(1.2rem,3vw,2.6rem); align-items:start; }
.duo figure { overflow:hidden; position:relative; }
.duo figure img { width:100%; height:100%; object-fit:cover; transition:transform 1.2s var(--ease); }
.duo figure:hover img { transform:scale(1.05); }
.duo .a { aspect-ratio:3/4; margin-top:14%; }
.duo .b { aspect-ratio:4/5; }
.duo .cap { position:absolute; left:1.2rem; bottom:1.1rem; font-family:var(--sans); font-size:.62rem; letter-spacing:.28em; text-transform:uppercase; color:#fff; z-index:2; }
.duo figure::after { content:""; position:absolute; inset:0; background:linear-gradient(transparent 60%, rgba(11,15,14,.55)); }
@media (max-width:640px){ .duo .a{ margin-top:0; } }

/* ---------- Convictions illustrées ---------- */
.conv-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1.5rem,3vw,2.8rem); }
.conv { }
.conv figure { aspect-ratio:5/6; overflow:hidden; margin-bottom:1.6rem; }
.conv figure img { width:100%; height:100%; object-fit:cover; transition:transform 1.2s var(--ease); }
.conv:hover figure img { transform:scale(1.06); }
.conv .idx { display:block; margin-bottom:.6rem; }
.conv h3 { font-size:1.7rem; margin-bottom:.5rem; }
.conv p { font-size:.96rem; }
@media (max-width:860px){ .conv-grid{ grid-template-columns:1fr; gap:2.5rem; } .conv{ display:grid; grid-template-columns:120px 1fr; gap:1.4rem; align-items:center; } .conv figure{ aspect-ratio:1; margin-bottom:0; } }

/* ---------- Focus chef ---------- */
.chef { display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(2rem,6vw,5rem); align-items:center; }
.chef__media { aspect-ratio:4/5; overflow:hidden; }
.chef__media img { width:100%; height:100%; object-fit:cover; }
.chef__q { font-family:var(--serif); font-style:italic; font-size:clamp(1.6rem,2.6vw,2.4rem); line-height:1.3; color:var(--cream); }
.chef__q .mark { color:var(--orange); }
@media (max-width:860px){ .chef{ grid-template-columns:1fr; } .chef__media{ aspect-ratio:16/11; } }

/* ---------- Utilities ---------- */
.mt-1{margin-top:1rem}.mt-2{margin-top:2rem}.mt-3{margin-top:3rem}
.mb-2{margin-bottom:2rem}
.maxw{max-width:44ch}

@media (max-width:960px){
  .nav__links{ display:none; }
  .burger{ display:flex; }
  .split{ grid-template-columns:1fr; gap:2.5rem; }
  .split.reverse .split__media{ order:0; }
  .split__media img{ aspect-ratio:16/11; }
  .info-grid{ grid-template-columns:1fr; }
  .menu-cols{ grid-template-columns:1fr; }
  .footer__grid{ grid-template-columns:1fr; gap:2.5rem; }
}
@media (prefers-reduced-motion:reduce){
  *{ animation-duration:.001ms !important; transition-duration:.001ms !important; }
  [data-rise],[data-stagger]>*{ opacity:1 !important; transform:none !important; }
  .clip{ clip-path:none !important; }
  /* Galerie : repli en défilement horizontal manuel (le pin GSAP est désactivé) */
  .hgal__pin{ height:auto; padding-block:4rem; }
  .hgal__track{ overflow-x:auto; transform:none !important; scroll-snap-type:x mandatory; padding-inline:6vw; }
  .hslide,.hslide.tall,.hslide.short{ scroll-snap-align:center; }
  .hgal__prog{ display:none; }
}

/* ---------- Bannière cookies ---------- */
.cookie-banner[hidden]{ display:none !important; }
.cookie-banner{ position:fixed; left:50%; bottom:1.2rem; transform:translateX(-50%); z-index:300;
  width:min(680px,94vw); background:rgba(16,21,20,.96); backdrop-filter:blur(14px);
  border:1px solid var(--line); border-radius:4px; padding:1.2rem 1.4rem;
  display:flex; align-items:center; gap:1.2rem; flex-wrap:wrap; box-shadow:0 20px 60px -20px rgba(0,0,0,.6); }
:root[data-theme="light"] .cookie-banner{ background:rgba(255,255,255,.97); }
.cookie-banner p{ flex:1 1 300px; margin:0; font-size:.86rem; line-height:1.6; color:var(--cream); }
.cookie-banner a{ color:var(--orange); }
.cookie-banner .cb-actions{ display:flex; gap:.6rem; flex:0 0 auto; }
.cookie-banner button{ font-family:var(--sans); font-size:.68rem; letter-spacing:.16em; text-transform:uppercase;
  padding:.85em 1.3em; border-radius:2px; cursor:pointer; border:1px solid var(--line); background:transparent; color:var(--cream); transition:.3s; }
.cookie-banner button[data-accept]{ background:var(--orange); border-color:var(--orange); color:#fff; }
.cookie-banner button[data-accept]:hover{ filter:brightness(1.08); }
.cookie-banner button[data-refuse]:hover{ border-color:var(--orange); color:var(--orange); }
@media (max-width:560px){ .cookie-banner{ bottom:0; border-radius:0; width:100%; } .cookie-banner .cb-actions{ width:100%; } .cookie-banner button{ flex:1; } }

/* ---------- Pages légales ---------- */
.legal{ max-width:760px; }
.legal h2{ font-size:clamp(1.5rem,2.6vw,2rem); margin:2.4rem 0 .8rem; color:var(--cream); }
.legal h2:first-of-type{ margin-top:0; }
.legal p, .legal li{ color:var(--muted); font-size:1rem; line-height:1.8; margin-bottom:.9rem; }
.legal a{ color:var(--orange); }
.legal ul{ padding-left:1.2rem; margin-bottom:1rem; }
.legal .updated{ font-size:.82rem; color:var(--faint); font-style:italic; margin-bottom:2rem; }
