:root{
  /* fonds : blanc / pierre claire pour les sections claires, noir pour les sections sombres (pas de bleu) */
  --bg:#FFFFFF; --sand-50:#F8F6F1; --sand-100:#F1ECE3; --sand-200:#E3DBCC; --sand-300:#CFC4B2; --sand-500:#A89B86; --sand-700:#6B6154;
  --night:#0A0A0A; --night-2:#141414; --night-3:#1C1C1C; --line-dark:rgba(255,255,255,.1); --line-dark-strong:rgba(255,255,255,.22);
  --ink:#161616; --fg:#161616; --muted:#5F5B55; --honey:#C9A24B; --white:#FFFFFF;
  --olive-700:#5A6633; --olive-600:#6E7B3F; --olive-500:#8A9A55; --olive-300:#B9C48F; --olive-100:#E9EDD9;
  --aegean-400:#6B9BC9;
  --font-display:"Cormorant Garamond", Georgia, "Times New Roman", serif;
  --font-body:"Jost", "Helvetica Neue", Arial, sans-serif;
  --header-h:5rem;
}

/* ----- Base ----- */
html{ scroll-behavior:smooth; scroll-padding-top:var(--header-h); overflow-x:hidden; overflow-x:clip; }
body{ background:var(--bg); color:var(--ink); font-family:var(--font-body); font-size:1rem; line-height:1.65; overflow-x:hidden; overflow-x:clip; -webkit-font-smoothing:antialiased; }
body h1, body h2, body h3, body h4{ font-family:var(--font-display); font-weight:600; line-height:1.08; text-wrap:balance; color:inherit; }
body h1{ font-size:clamp(2.75rem, 7vw, 5.5rem); line-height:.98; letter-spacing:-.005em; }
body h2{ font-size:clamp(2.1rem, 4.4vw, 3.4rem); }
body h3{ font-size:clamp(1.5rem, 2.6vw, 2.1rem); }
body strong{ font-weight:600; }
body a{ text-underline-offset:.2em; }
.measure{ max-width:62ch; }
:focus-visible{ outline:2px solid var(--honey); outline-offset:3px; }
.skip-link{ position:absolute; left:1rem; top:-5rem; z-index:100; background:var(--night); color:#fff; padding:.6rem 1rem; border-radius:999px; font-size:.85rem; transition:top .2s; }
.skip-link:focus{ top:calc(1rem + env(safe-area-inset-top, 0px)); }
.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; }

/* ----- Icônes (sprite SVG) ----- */
.ico{ width:1.2em; height:1.2em; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; flex:none; }
.ico--fill{ fill:currentColor; stroke:none; }
.ico--sm{ width:1em; height:1em; }

/* ----- Eyebrow, frise, pastilles ----- */
.eyebrow{ display:inline-flex; align-items:center; gap:.75rem; font-size:.72rem; font-weight:500; letter-spacing:.24em; text-transform:uppercase; color:var(--olive-600); }
.eyebrow::before{ content:""; width:2rem; height:1px; background:currentColor; opacity:.7; }
.eyebrow--light{ color:var(--olive-300); }
.meander{ height:16px; width:min(100%, 12rem); background-repeat:repeat-x; background-size:32px 16px; opacity:.85;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 16'%3E%3Cpath d='M0 15.5h32M2 15.5V1h28v11H8V5h18v3.5H12' fill='none' stroke='%23C9A24B' stroke-width='1.2'/%3E%3C/svg%3E"); }
.pill{ display:inline-flex; align-items:center; gap:.55rem; border:1px solid rgba(255,255,255,.35); background:rgba(255,255,255,.08); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); border-radius:999px; padding:.5rem 1rem; font-size:.78rem; letter-spacing:.06em; color:#fff; transition:background-color .25s, border-color .25s; }
.pill::before{ content:""; width:6px; height:6px; border-radius:50%; background:var(--honey); flex:none; }
.pill:hover{ background:rgba(255,255,255,.18); border-color:rgba(255,255,255,.6); }
.badge{ display:inline-flex; align-items:center; gap:.4rem; border-radius:999px; padding:.42rem .85rem; font-size:.66rem; letter-spacing:.16em; text-transform:uppercase; font-weight:500; }
.badge-honey{ background:var(--honey); color:var(--night); }
.badge-light{ background:rgba(255,255,255,.92); color:var(--night); }
.badge-olive{ background:var(--olive-100); color:var(--olive-700); }
.tag{ font-size:.62rem; letter-spacing:.14em; text-transform:uppercase; padding:.28rem .6rem; border-radius:999px; background:var(--sand-100); color:var(--sand-700); }
.tag--signature{ background:var(--honey); color:var(--night); }
.tag--vege{ background:var(--olive-100); color:var(--olive-700); }
.tag--nouveau{ background:var(--night); color:#fff; }

/* ----- Boutons ----- */
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:.6rem; border-radius:999px; padding:.9rem 1.6rem; font-size:.8rem; font-weight:500; letter-spacing:.12em; text-transform:uppercase; border:1px solid transparent; cursor:pointer; white-space:nowrap; transition:transform .25s ease, background-color .25s, color .25s, border-color .25s, box-shadow .25s; }
.btn:hover{ transform:translateY(-2px); }
.btn-light{ background:#fff; color:var(--night); box-shadow:0 14px 30px -14px rgba(0,0,0,.7); }
.btn-light:hover{ background:var(--sand-100); }
.btn-dark{ background:var(--night); color:#fff; box-shadow:0 14px 30px -14px rgba(0,0,0,.7); }
.btn-dark:hover{ background:#2A2A2A; }
.btn-honey{ background:var(--honey); color:var(--night); }
.btn-honey:hover{ background:#d8b25c; }
.btn-outline{ border-color:rgba(255,255,255,.7); background:transparent; color:#fff; }
.btn-outline:hover{ background:rgba(255,255,255,.12); }
.btn-outline-dark{ border-color:var(--night); background:transparent; color:var(--night); }
.btn-outline-dark:hover{ background:var(--night); color:#fff; }

/* ----- Header : transparent puis opaque au scroll ----- */
.site-header{ position:fixed; top:0; left:0; right:0; z-index:60; padding-top:env(safe-area-inset-top, 0px); color:#fff; background:transparent; transition:background-color .35s ease, color .35s ease, box-shadow .35s ease; }
.site-header.is-scrolled{ background:rgba(255,255,255,.9); color:var(--night); box-shadow:0 1px 0 rgba(0,0,0,.06), 0 14px 30px -24px rgba(0,0,0,.35); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); }
.site-header.is-open{ background:var(--night); color:#fff; box-shadow:none; backdrop-filter:none; }
.hdr-bar{ transition:height .35s ease; }
.site-header.is-scrolled:not(.is-open) .hdr-bar{ height:4.25rem; }
.brand{ display:inline-flex; align-items:center; gap:.7rem; color:inherit; }
.brand__logo{ height:2.9rem; width:auto; display:block; transition:height .35s ease; }
.brand__logo--dark{ display:none; }
.site-header.is-scrolled:not(.is-open) .brand__logo--light{ display:none; }
.site-header.is-scrolled:not(.is-open) .brand__logo--dark{ display:block; }
.site-header.is-scrolled:not(.is-open) .brand__logo{ height:2.4rem; }
.brand__name{ font-family:var(--font-display); font-size:1.15rem; font-weight:600; letter-spacing:.2em; text-transform:uppercase; line-height:1; }
.brand__city{ font-size:.62rem; letter-spacing:.3em; text-transform:uppercase; opacity:.8; }
.nav-link{ position:relative; font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; font-weight:500; opacity:.9; padding:.25rem 0; color:inherit; }
.nav-link::after{ content:""; position:absolute; left:0; right:0; bottom:-4px; height:1px; background:currentColor; transform:scaleX(0); transform-origin:left; transition:transform .3s ease; }
.nav-link:hover::after, .nav-link[aria-current="true"]::after{ transform:scaleX(1); }
.btn-hdr{ border-color:rgba(255,255,255,.7); color:#fff; background:transparent; padding:.7rem 1.25rem; }
.btn-hdr:hover{ background:rgba(255,255,255,.12); }
.site-header.is-scrolled .btn-hdr{ background:var(--night); color:#fff; border-color:var(--night); }
.site-header.is-scrolled .btn-hdr:hover{ background:#2A2A2A; }
.hdr-tel{ font-size:.8rem; letter-spacing:.08em; opacity:.9; color:inherit; }
.burger{ width:2.75rem; height:2.75rem; display:inline-grid; place-items:center; border-radius:999px; border:1px solid currentColor; color:inherit; background:transparent; }
@media (min-width:1024px){ .burger{ display:none; } }
@media (max-width:639.98px){ .btn-hdr{ display:none; } }
.hdr-bar{ position:relative; z-index:2; }
.mobile-nav[hidden]{ display:none; }
.mobile-nav{ position:fixed; inset:0; z-index:1; background:var(--night); color:#fff; padding:calc(var(--header-h) + env(safe-area-inset-top, 0px) + 1.5rem) 1.5rem calc(2rem + env(safe-area-inset-bottom, 0px)); display:flex; flex-direction:column; gap:1rem; overflow:auto; }
.mobile-nav a.big{ font-family:var(--font-display); font-size:2.3rem; font-weight:500; line-height:1.1; color:#fff; }
.mobile-nav a.big:hover{ color:var(--honey); }

/* ----- Hero : panneau bleu nuit + photo (parallaxe par transform) ----- */
.hero{ display:grid; grid-template-columns:1fr; background:var(--night); color:#fff; }
.hero__panel{ order:1; display:flex; align-items:center; padding:3rem 1.25rem 3.5rem; }
.hero__panel-inner{ max-width:31rem; }
.hero__media{ order:0; position:relative; overflow:hidden; aspect-ratio:4/3; max-height:62vh; background:#111; }
@media (min-width:640px){ .hero__panel{ padding-inline:2rem; } }
@media (min-width:1024px){
  .hero{ grid-template-columns:5fr 7fr; min-height:min(90vh, 56rem); min-height:min(90svh, 56rem); }
  .hero__panel{ order:0; padding:calc(var(--header-h) + env(safe-area-inset-top, 0px) + 3rem) 3.5rem 4rem clamp(2rem, 6vw, 6rem); }
  .hero__media{ order:1; aspect-ratio:auto; max-height:none; }
}
.hero h1{ font-size:clamp(2.6rem, 4.4vw, 4.25rem); font-weight:500; line-height:1.02; letter-spacing:-.01em; }
.hero__link{ display:inline-flex; align-items:center; gap:.6rem; color:#fff; font-size:.78rem; font-weight:500; letter-spacing:.14em; text-transform:uppercase; padding-bottom:.3rem; border-bottom:1px solid rgba(255,255,255,.35); transition:color .25s, border-color .25s; }
.hero__link:hover{ color:var(--honey); border-color:var(--honey); }
.hero__link .ico, .news__link .ico{ transition:transform .3s cubic-bezier(.2,.7,.2,1); }
.hero__link:hover .ico, .news__link:hover .ico{ transform:translateX(5px); }
.hero__bg{ position:absolute; inset:-20% 0; z-index:0; will-change:transform; }
.hero__ph{ position:absolute; inset:0;
  background:
    radial-gradient(60% 50% at 72% 18%, rgba(201,162,75,.28), transparent 62%),
    radial-gradient(45% 40% at 18% 85%, rgba(31,90,138,.65), transparent 70%),
    linear-gradient(180deg, #0A0A0A 0%, #161616 50%, #2A2A2A 100%); }
.hero__ph::after{ content:""; position:absolute; inset:0; opacity:.07; background-size:48px 24px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 16'%3E%3Cpath d='M0 15.5h32M2 15.5V1h28v11H8V5h18v3.5H12' fill='none' stroke='white' stroke-width='1.2'/%3E%3C/svg%3E"); }
.hero__bg img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 38%; }
.hero__ph-label{ display:none; position:absolute; right:1.25rem; bottom:14%; font-size:.66rem; letter-spacing:.16em; text-transform:uppercase; opacity:.5; }
.hero__bg.is-missing img{ display:none; }
@media (min-width:768px){ .hero__bg.is-missing .hero__ph-label{ display:block; } }
/* voile en haut de la photo, pour que le header transparent reste lisible */
.hero__shade{ position:absolute; inset:0 0 auto 0; height:11rem; z-index:1; background:linear-gradient(180deg, rgba(10,10,10,.75) 0%, rgba(10,10,10,.25) 55%, transparent 100%); pointer-events:none; }
@media (prefers-reduced-motion:no-preference){
  .hero__media{ animation:hero-wipe 1.4s cubic-bezier(.76,0,.24,1) both; }
  .hero__bg{ animation:kenburns 28s ease-in-out 1.4s infinite alternate; }
  .hero__bg img{ animation:hero-zoom 2.4s cubic-bezier(.2,.7,.2,1) both; }
  .hero-in{ animation:hero-in .9s cubic-bezier(.2,.7,.2,1) both; }
  .hero-in-2{ animation-delay:.15s; }
  .hero-in-3{ animation-delay:.6s; }
  .hero .meander{ animation:hero-in .9s cubic-bezier(.2,.7,.2,1) both, meander-flow 6s linear 1s infinite; }
}
@keyframes kenburns{ from{ scale:1; } to{ scale:1.06; } }
@keyframes hero-in{ from{ opacity:0; transform:translateY(22px); } to{ opacity:1; transform:none; } }
@keyframes hero-wipe{ from{ clip-path:inset(0 100% 0 0); } to{ clip-path:inset(0 0 0 0); } }
@keyframes hero-zoom{ from{ transform:scale(1.14); } to{ transform:none; } }
@keyframes meander-flow{ to{ background-position-x:-32px; } }

/* ----- Motion : apparitions au scroll (IntersectionObserver), titres mot à mot ----- */
/* Les états cachés n'existent que si <html class="js-motion"> : sans JS ou avec
   « réduire les animations », tout est visible d'emblée. */
html.js-motion .reveal, html.js-motion .reveal-item{ opacity:0; translate:0 28px; transition:opacity .9s cubic-bezier(.2,.7,.2,1), translate .9s cubic-bezier(.2,.7,.2,1), scale .9s cubic-bezier(.2,.7,.2,1); }
html.js-motion .reveal-scale > .reveal-item{ scale:.95; }
html.js-motion .reveal-item{ transition-delay:calc(var(--i, 0) * 110ms); }
html.js-motion .reveal.is-visible, html.js-motion .reveal-item.is-visible{ opacity:1; translate:0 0; scale:1; }
html.js-motion .reveal .eyebrow::before{ transform:scaleX(0); transform-origin:left; transition:transform .9s .25s cubic-bezier(.2,.7,.2,1); }
html.js-motion .reveal.is-visible .eyebrow::before{ transform:none; }
.split .w{ display:inline-block; overflow:hidden; vertical-align:top; padding:.08em 0 .14em; margin:-.08em 0 -.14em; }
.split .w > span{ display:inline-block; }
html.js-motion .split .w > span{ translate:0 125%; transition:translate .85s cubic-bezier(.2,.7,.2,1); transition-delay:calc(var(--w, 0) * 45ms); }
html.js-motion .split.is-visible .w > span{ translate:0 0; }
html.js-motion .reveal-line{ transform:scaleX(0); transition:transform 1s .35s cubic-bezier(.2,.7,.2,1); }
html.js-motion .reveal-line.is-visible{ transform:none; }
@media print{ html.js-motion .reveal, html.js-motion .reveal-item, html.js-motion .split .w > span, html.js-motion .reveal-line{ opacity:1; translate:none; scale:none; transform:none; } }

/* ----- Bandeau défilant ----- */
.ticker{ overflow:hidden; background:var(--honey); color:var(--night); padding-block:.75rem; }
.ticker__track{ display:flex; width:max-content; }
.ticker__half{ display:flex; align-items:center; gap:2.5rem; padding-right:2.5rem; font-family:var(--font-display); font-style:italic; font-size:1.25rem; letter-spacing:.02em; white-space:nowrap; }
.ticker__half i{ width:.35rem; height:.35rem; border-radius:50%; background:currentColor; opacity:.55; flex:none; }
@media (prefers-reduced-motion:no-preference){
  .ticker__track{ animation:ticker 55s linear infinite; }
  .ticker:hover .ticker__track{ animation-play-state:paused; }
}
@keyframes ticker{ to{ transform:translateX(-50%); } }

/* ----- Sections ----- */
.section{ padding-block:clamp(4.5rem, 9vw, 8rem); }
.section--light{ background:var(--sand-50); }
.section--black{ background:var(--night); color:#fff; }
.site-footer{ background:var(--night); }

/* ----- Fenêtres photo en parallaxe entre les sections (transform + rAF, voir JS) ----- */
.px-band{ --vt:rgba(10,10,10,.42); --vb:rgba(10,10,10,.42); position:relative; overflow:hidden; height:clamp(14rem, 42vh, 27rem); background:#111; }
.px-band--tall{ height:auto; min-height:clamp(18rem, 54vh, 34rem); display:grid; place-items:center; }
.px-band--from-black{ --vt:rgba(10,10,10,.92); }
.px-band--to-black{ --vb:rgba(10,10,10,.92); }
.px-band__bg{ position:absolute; inset:-30% 0; will-change:transform; }
.px-band__bg img{ width:100%; height:100%; object-fit:cover; object-position:var(--pos, 50% 50%); display:block; }
.px-band__veil{ position:absolute; inset:0; background:linear-gradient(180deg, var(--vt) 0%, rgba(10,10,10,.42) 40%, rgba(10,10,10,.42) 60%, var(--vb) 100%); }
.px-band__cap{ position:relative; z-index:1; text-align:center; padding:4.5rem 1.25rem; max-width:48rem; margin-inline:auto; }
.px-band__txt{ font-family:var(--font-display); font-style:italic; font-size:clamp(1.5rem, 2.8vw, 2.25rem); line-height:1.2; color:#fff; text-wrap:balance; }
.band-quote__line{ display:block; width:6rem; height:1px; margin:1.4rem auto 1.1rem; background:var(--honey); }
/* parallaxe douce des photos dans leur cadre */
.ph--px img{ position:absolute; left:0; top:-12%; width:100%; height:124%; will-change:transform; }

/* ----- Placeholders photo (affichés tant que l'image manque) ----- */
.ph{ position:relative; overflow:hidden; background:linear-gradient(135deg, var(--sand-200), var(--sand-300)); }
.ph img{ width:100%; height:100%; object-fit:cover; display:block; }
.ph__label{ display:none; position:absolute; inset:auto 0 0 0; padding:.6rem .9rem; font-size:.64rem; letter-spacing:.14em; text-transform:uppercase; color:var(--sand-700); background:rgba(255,255,255,.75); }
.ph__motif{ display:none; position:absolute; inset:0; margin:auto; width:42%; height:42%; color:#fff; opacity:.55; }
.ph.is-missing img{ display:none; }
.ph.is-missing .ph__label, .ph.is-missing .ph__motif{ display:block; }
.ph-story{ aspect-ratio:4/5; border-radius:1.5rem; box-shadow:0 40px 80px -40px rgba(0,0,0,.55);
  background:radial-gradient(60% 50% at 30% 25%, rgba(255,255,255,.45), transparent 60%), linear-gradient(160deg, #CFC4B2, #A89B86 60%, #6B6154); }
.ph-buffet{ background:radial-gradient(70% 60% at 30% 30%, rgba(255,255,255,.28), transparent 60%), linear-gradient(135deg, #7A5E22, #C9A24B 55%, #E3DBCC); }
.ph-lunch{ background:radial-gradient(70% 60% at 70% 30%, rgba(255,255,255,.22), transparent 60%), linear-gradient(135deg, #0A0A0A, #3A3A3A 60%, #6B6154); }

/* ----- Histoire ----- */
.story-figure{ position:relative; }
.story-figure__caption{ position:absolute; right:-.5rem; bottom:2rem; background:var(--night); color:#fff; border-radius:1rem; padding:1rem 1.25rem; display:flex; gap:.85rem; align-items:center; font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; line-height:1.35; box-shadow:0 20px 40px -20px rgba(11,35,64,.7); }
.story-figure__caption b{ font-family:var(--font-display); font-weight:600; font-size:2.6rem; line-height:1; letter-spacing:0; color:var(--honey); }
@media (min-width:1024px){ .story-figure__caption{ right:-2rem; } }
.fact dt{ font-size:.66rem; letter-spacing:.2em; text-transform:uppercase; color:var(--olive-600); }
.fact dd{ font-family:var(--font-display); font-size:1.75rem; font-weight:600; color:var(--night); margin-top:.25rem; line-height:1.15; }

/* ----- Formules ----- */
.offer{ background:#fff; color:var(--ink); border-radius:1.5rem; overflow:hidden; box-shadow:0 40px 70px -40px rgba(0,0,0,.45); border:1px solid var(--sand-200); display:flex; flex-direction:column; }
.offer__media{ position:relative; aspect-ratio:16/10; overflow:hidden; }
.offer__media .ph{ position:absolute; inset:-12% 0; will-change:transform; }
.offer__media img{ transition:transform 1.6s cubic-bezier(.2,.7,.2,1); }
.offer:hover .offer__media img{ transform:scale(1.05); }
.offer__media::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(7,26,46,.15) 0%, transparent 35%, transparent 55%, rgba(7,26,46,.75) 100%); pointer-events:none; }
.offer__media .badge{ position:absolute; top:1.1rem; left:1.1rem; z-index:1; }
.offer__price{ z-index:1; }
.offer__price{ position:absolute; left:1.5rem; bottom:1.25rem; font-family:var(--font-display); font-size:clamp(3rem, 6vw, 4.6rem); font-weight:600; line-height:1; color:#fff; text-shadow:0 2px 24px rgba(0,0,0,.4); }
.offer__price small{ display:block; font-family:var(--font-body); font-weight:500; font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; margin-top:.4rem; opacity:.95; }
.offer h3{ font-size:clamp(1.6rem, 2.4vw, 2.1rem); }
.offer__list{ display:grid; gap:.65rem; font-size:.95rem; }
.offer__list li{ display:flex; gap:.75rem; align-items:flex-start; }
.offer__list .ico{ color:var(--olive-600); margin-top:.2rem; }
.offer__next{ display:inline-flex; align-items:center; gap:.5rem; background:var(--sand-50); border:1px dashed var(--sand-300); border-radius:.75rem; padding:.6rem .9rem; font-size:.82rem; color:var(--night); }

/* ----- Paniers ----- */
.tier{ background:#fff; border:1px solid transparent; border-radius:1.25rem; padding:1.6rem .75rem; text-align:center; display:grid; gap:.35rem; box-shadow:0 30px 50px -30px rgba(0,0,0,.9); }
.tier__price{ font-family:var(--font-display); font-weight:600; font-size:clamp(2.1rem, 5vw, 3.2rem); line-height:1; color:var(--night); }
.tier__label{ font-size:.64rem; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); }
.tier--mid{ background:var(--honey); color:var(--night); transform:translateY(-.6rem); }
.tier--mid .tier__price{ color:var(--night); }
.tier--mid .tier__label{ color:rgba(10,10,10,.65); }
.produit{ display:flex; align-items:center; gap:.6rem; background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.18); border-radius:.9rem; padding:.7rem .9rem; font-size:.9rem; color:#fff; }
.produit .ico{ color:var(--olive-300); }

/* ----- Carte ----- */
.tabs{ position:relative; display:flex; gap:.25rem; overflow-x:auto; scrollbar-width:none; border-bottom:1px solid var(--sand-300); -webkit-overflow-scrolling:touch; }
.tabs__ind{ position:absolute; left:0; bottom:-1px; height:2px; width:0; background:var(--honey); transition:transform .4s cubic-bezier(.2,.7,.2,1), width .4s cubic-bezier(.2,.7,.2,1); }
.tabs.has-ind .tab[aria-selected="true"]{ border-color:transparent; }
.tabs::-webkit-scrollbar{ display:none; }
.tab{ flex:none; padding:.95rem 1.1rem; font-size:.76rem; letter-spacing:.18em; text-transform:uppercase; font-weight:500; color:var(--muted); border-bottom:2px solid transparent; margin-bottom:-1px; background:none; cursor:pointer; transition:color .2s, border-color .2s; }
.tab:hover{ color:var(--night); }
.tab[aria-selected="true"]{ color:var(--night); border-color:var(--honey); }
.dish{ display:flex; flex-direction:column; background:#fff; border-radius:1.25rem; overflow:hidden; border:1px solid var(--sand-200); transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease; }
.dish:hover{ transform:translateY(-4px); box-shadow:0 26px 40px -26px rgba(0,0,0,.4); border-color:var(--honey); }
.dish__media{ aspect-ratio:4/3; overflow:hidden; background:var(--sand-100); }
.dish__media img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s ease; }
.dish:hover .dish__media img{ transform:scale(1.04); }
.dish__name{ font-size:1.35rem; line-height:1.15; }
.dish__price{ font-family:var(--font-display); font-weight:600; font-size:1.45rem; color:var(--night); white-space:nowrap; font-variant-numeric:tabular-nums; }
.dish__price--long{ font-size:1.05rem; line-height:1.3; white-space:normal; text-align:right; max-width:9.5rem; }
.panel-enter .dish{ animation:fade .55s cubic-bezier(.2,.7,.2,1) both; animation-delay:calc(var(--i, 0) * 45ms); }
@keyframes fade{ from{ opacity:0; transform:translateY(14px); } to{ opacity:1; transform:none; } }
.extra{ border-radius:1.25rem; padding:1.75rem; background:var(--sand-50); border:1px solid var(--sand-200); display:flex; flex-direction:column; gap:.75rem; }
.extra h3{ font-size:1.6rem; }
.extra--table{ background:var(--night); color:#fff; border-color:transparent; }
.extra__price{ font-family:var(--font-display); font-weight:600; font-size:1.6rem; color:var(--honey); }

/* ----- Galerie (mur de photos) ----- */
.wall{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); grid-auto-rows:9.5rem; grid-auto-flow:dense; gap:.6rem; }
@media (min-width:768px){ .wall{ grid-template-columns:repeat(4, minmax(0,1fr)); grid-auto-rows:12rem; gap:.85rem; } }
.wall__item{ position:relative; overflow:hidden; border-radius:1rem; cursor:zoom-in; background:var(--sand-200); padding:0; border:0; text-align:left; display:block; width:100%; height:100%; }
.wall__item.is-large{ grid-column:span 2; grid-row:span 2; }
.wall__item img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .7s ease; }
.wall__item:hover img{ transform:scale(1.05); }
.wall__meta{ position:absolute; inset:auto 0 0 0; padding:.9rem; color:#fff; background:linear-gradient(180deg, transparent, rgba(0,0,0,.8)); display:flex; justify-content:space-between; align-items:flex-end; gap:.75rem; font-size:.76rem; opacity:0; transform:translateY(6px); transition:opacity .3s, transform .3s; }
.wall__meta span{ display:inline-flex; align-items:center; gap:.3rem; }
.wall__item:hover .wall__meta, .wall__item:focus-visible .wall__meta{ opacity:1; transform:none; }
@media (hover:none){ .wall__meta{ opacity:1; transform:none; } }
.fb{ display:inline-grid; place-items:center; width:1.5rem; height:1.5rem; border-radius:50%; background:#fff; color:var(--night); font-family:var(--font-display); font-weight:700; font-size:1.05rem; line-height:1; }

/* ----- News ----- */
.news{ background:#fff; border:1px solid var(--sand-200); border-radius:1.25rem; padding:1.75rem; display:flex; flex-direction:column; gap:.9rem; }
.news h3{ font-size:1.55rem; }
.news--chef{ background:var(--night); color:#fff; border-color:transparent; }
.news--chef .news__tag{ background:var(--honey); color:var(--night); }
.news__tag{ align-self:flex-start; }
.news__date{ font-size:.68rem; letter-spacing:.18em; text-transform:uppercase; opacity:.65; }
.news__link{ display:inline-flex; align-items:center; gap:.4rem; font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; font-weight:500; margin-top:auto; color:inherit; }
.news__link:hover{ color:var(--honey); }

/* ----- Footer / infos ----- */
.ft-title{ font-size:1.5rem; }
.tel-big{ font-family:var(--font-display); font-weight:600; font-size:clamp(2rem, 5vw, 2.75rem); line-height:1; color:#fff; letter-spacing:.02em; }
.tel-big:hover{ color:var(--honey); }
.hours{ width:100%; border-collapse:collapse; font-variant-numeric:tabular-nums; }
.hours th, .hours td{ padding:.6rem .35rem; border-bottom:1px solid rgba(255,255,255,.12); text-align:left; font-weight:400; font-size:.92rem; vertical-align:top; }
.hours td{ white-space:nowrap; }
.hours thead th{ font-size:.64rem; letter-spacing:.18em; text-transform:uppercase; opacity:.6; padding-top:0; }
.hours tbody th{ font-weight:500; }
.hours .closed{ opacity:.45; }
.hours tr.is-today th, .hours tr.is-today td{ color:var(--honey); font-weight:500; }
.hours tr.is-today th::after{ content:" · aujourd'hui"; font-size:.64em; letter-spacing:.14em; text-transform:uppercase; }
.status{ display:inline-flex; align-items:center; gap:.55rem; font-size:.84rem; color:rgba(255,255,255,.85); }
.status::before{ content:""; width:.5rem; height:.5rem; border-radius:50%; background:var(--olive-300); box-shadow:0 0 0 4px rgba(185,196,143,.2); }
.status.is-closed::before{ background:var(--sand-500); box-shadow:0 0 0 4px rgba(168,155,134,.2); }
.map{ position:relative; aspect-ratio:4/3; border-radius:1.25rem; overflow:hidden; background:#E6E6E6; border:1px solid var(--line-dark); }
.map__img{ width:100%; height:100%; object-fit:cover; display:block; }
.map__overlay{ position:absolute; inset:auto 0 0 0; display:flex; flex-wrap:wrap; gap:.6rem; justify-content:center; padding:1rem; background:linear-gradient(180deg, transparent, rgba(10,10,10,.75)); }
.map iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; display:block; }
.map.is-live .map__img, .map.is-live .map__overlay{ display:none; }

/* ----- Dialogs (réservation, lightbox) ----- */
.dlg{ border:0; padding:0; background:transparent; width:min(92vw, 34rem); max-width:92vw; margin:auto; }
.dlg--wide{ width:min(94vw, 62rem); max-width:94vw; }
.dlg::backdrop{ background:rgba(0,0,0,.8); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); }
.dlg[open]{ animation:fade .3s ease both; }
.dlg-card{ position:relative; background:#fff; color:var(--ink); border-radius:1.5rem; padding:2rem; }
@media (min-width:640px){ .dlg-card{ padding:2.5rem; } }
.dlg-card h2{ font-size:2.1rem; }
.dlg-close{ position:absolute; top:1rem; right:1rem; width:2.5rem; height:2.5rem; border-radius:50%; display:grid; place-items:center; background:var(--sand-100); color:var(--night); z-index:2; }
.dlg-close:hover{ background:var(--sand-200); }
.dlg-close--light{ background:rgba(255,255,255,.92); }
.tel-dlg{ display:block; font-family:var(--font-display); font-weight:600; font-size:clamp(2.4rem, 8vw, 3.4rem); line-height:1; color:var(--night); letter-spacing:.02em; margin-top:1.25rem; }
.tel-dlg:hover{ color:var(--olive-600); }
.lightbox{ position:relative; }
.lightbox__fig{ background:#fff; border-radius:1.25rem; overflow:hidden; }
.lightbox__fig img{ width:100%; max-height:68vh; object-fit:cover; display:block; background:var(--sand-200); }
.lb-nav{ position:absolute; top:38%; width:2.75rem; height:2.75rem; border-radius:50%; background:rgba(255,255,255,.92); color:var(--night); display:grid; place-items:center; box-shadow:0 10px 20px -10px rgba(0,0,0,.5); }
.lb-nav:hover{ background:#fff; }
.lb-nav--prev{ left:.75rem; } .lb-nav--next{ right:.75rem; }

/* ----- Bouton d'appel flottant (mobile) ----- */
/* ----- Crédit ArtWhere (pied de page) ----- */
.credit{ display:inline-flex; align-items:center; gap:.4rem; color:inherit; transition:color .25s; }
.credit:hover{ color:#fff; }
.credit__heart{ width:.95em; height:.95em; fill:#E0245E; flex:none; transform-origin:50% 55%; }
.credit__logo{ width:22px; height:22px; border-radius:5px; flex:none; margin-left:.15rem; }
@media (prefers-reduced-motion:no-preference){ .credit:hover .credit__heart{ animation:heartbeat 1s ease-in-out infinite; } }
@keyframes heartbeat{ 0%,100%{ transform:scale(1); } 30%{ transform:scale(1.25); } 50%{ transform:scale(1); } 70%{ transform:scale(1.18); } }

.fab-call{ position:fixed; right:1rem; bottom:calc(1rem + env(safe-area-inset-bottom, 0px)); z-index:50; display:inline-flex; gap:.5rem; align-items:center; background:var(--night); color:#fff; border-radius:999px; padding:.85rem 1.2rem; box-shadow:0 14px 30px -10px rgba(11,35,64,.7); font-size:.76rem; letter-spacing:.12em; text-transform:uppercase; font-weight:500; }
html.js .fab-call{ opacity:0; translate:0 1.5rem; pointer-events:none; transition:opacity .35s, translate .35s cubic-bezier(.2,.7,.2,1); }
html.js .fab-call.is-shown{ opacity:1; translate:0 0; pointer-events:auto; }
@media (min-width:768px){ .fab-call{ display:none; } }

@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  .btn:hover, .dish:hover{ transform:none; }
  .dish__media img, .wall__item img{ transition:none; }
}
