/* =====================================================
   Domaine de l'Aube — feuille de style commune
   ===================================================== */

:root{
  --bg:#F5F1E8;
  --bg-alt:#ECE4D2;
  --surface:#FFFDF9;
  --text:#1B1712;
  --text-muted:#6E6455;
  --accent:#B5762B;
  --accent-soft:#C68A3D;
  --accent2:#4B5636;
  --line:rgba(27,23,18,0.14);
  --scrim-top:rgba(12,10,7,0.05);
  --scrim-bottom:rgba(12,10,7,0.72);
  --nav-bg:rgba(245,241,232,0.82);
  --shadow:0 30px 60px -30px rgba(20,16,10,0.35);
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --bg:#15120E;
    --bg-alt:#1E1912;
    --surface:#221C15;
    --text:#EDE6D6;
    --text-muted:#A89D8A;
    --accent:#D69A4E;
    --accent-soft:#C68A3D;
    --accent2:#8B9A66;
    --line:rgba(237,230,214,0.16);
    --scrim-top:rgba(0,0,0,0.15);
    --scrim-bottom:rgba(6,5,3,0.82);
    --nav-bg:rgba(21,18,14,0.82);
    --shadow:0 30px 60px -30px rgba(0,0,0,0.6);
  }
}
:root[data-theme="dark"]{
  --bg:#15120E;
  --bg-alt:#1E1912;
  --surface:#221C15;
  --text:#EDE6D6;
  --text-muted:#A89D8A;
  --accent:#D69A4E;
  --accent-soft:#C68A3D;
  --accent2:#8B9A66;
  --line:rgba(237,230,214,0.16);
  --scrim-top:rgba(0,0,0,0.15);
  --scrim-bottom:rgba(6,5,3,0.82);
  --nav-bg:rgba(21,18,14,0.82);
  --shadow:0 30px 60px -30px rgba(0,0,0,0.6);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:0.001ms !important;animation-iteration-count:1 !important;transition-duration:0.001ms !important;scroll-behavior:auto !important;}
}

body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:"Public Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

.serif{font-family:"Instrument Serif","Iowan Old Style",Georgia,serif;}
.mono{font-family:"Space Mono","SFMono-Regular",Consolas,monospace;}

img{max-width:100%;display:block;}
a{color:inherit;}
button{font-family:inherit;}

h1,h2,h3{margin:0;font-weight:400;text-wrap:balance;}

.wrap{max-width:1240px;margin:0 auto;padding:0 clamp(20px,5vw,64px);}

.eyebrow{
  font-family:"Space Mono",monospace;
  font-size:12px;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--accent);
  display:flex;
  align-items:center;
  gap:10px;
}
.eyebrow::before{content:"";width:28px;height:1px;background:var(--accent);display:inline-block;}

/* ============ GRAIN (fixed, whole-site) ============ */
.grain-overlay{
  position:fixed;inset:0;z-index:1000;
  opacity:0.035;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='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ============ REVEAL: fade/rise ============ */
.reveal{opacity:0;transform:translateY(28px);transition:opacity 0.9s cubic-bezier(.2,.7,.2,1),transform 0.9s cubic-bezier(.2,.7,.2,1);}
.reveal.in{opacity:1;transform:translateY(0);}
.reveal-stagger > *{opacity:0;transform:translateY(24px);transition:opacity 0.7s ease,transform 0.7s ease;}
.reveal-stagger.in > *{opacity:1;transform:translateY(0);}
.reveal-stagger.in > *:nth-child(1){transition-delay:0.05s;}
.reveal-stagger.in > *:nth-child(2){transition-delay:0.15s;}
.reveal-stagger.in > *:nth-child(3){transition-delay:0.25s;}
.reveal-stagger.in > *:nth-child(4){transition-delay:0.35s;}

/* ============ REVEAL: text apparition (word-by-word) ============ */
.word-reveal{overflow:visible;}
.word-reveal .word{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:0.08em;margin-bottom:-0.08em;}
.word-reveal .word span{
  display:inline-block;
  white-space:pre;
  transform:translateY(112%);
  transition:transform 0.85s cubic-bezier(.2,.7,.15,1);
}
.word-reveal.in .word span{transform:translateY(0);}

/* ============ NAV ============ */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  display:flex;align-items:center;justify-content:space-between;
  padding:22px clamp(20px,5vw,64px);
  transition:background 0.4s ease,padding 0.4s ease,border-color 0.4s ease,backdrop-filter 0.4s ease;
  border-bottom:1px solid transparent;
}
.nav.scrolled,.nav.solid{
  background:var(--nav-bg);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  padding-top:14px;padding-bottom:14px;
  border-bottom:1px solid var(--line);
}
.nav-mark{
  font-family:"Instrument Serif",serif;
  font-size:22px;letter-spacing:0.02em;
  color:#fff;text-decoration:none;
  transition:color 0.4s ease;
}
.nav.scrolled .nav-mark,.nav.solid .nav-mark{color:var(--text);}
.nav-links{display:flex;align-items:center;gap:36px;list-style:none;margin:0;padding:0;}
.nav-links a:not(.nav-cta){
  text-decoration:none;font-size:13px;letter-spacing:0.08em;text-transform:uppercase;
  color:rgba(255,255,255,0.88);
  transition:color 0.4s ease,opacity 0.2s ease;
  position:relative;padding-bottom:5px;
}
.nav-links a:not(.nav-cta)::after{
  content:"";position:absolute;left:0;bottom:0;width:0;height:1px;
  background:var(--accent-soft);transition:width 0.35s cubic-bezier(.2,.7,.2,1);
}
.nav-links a:not(.nav-cta):hover::after,
.nav-links a.active:not(.nav-cta)::after{width:100%;}
.nav.scrolled .nav-links a:not(.nav-cta),.nav.solid .nav-links a:not(.nav-cta){color:var(--text-muted);}
.nav-links a:hover{opacity:1;color:var(--accent-soft) !important;}
.nav-links a.active{color:var(--accent-soft) !important;}
.nav-cta{
  font-size:12px;letter-spacing:0.08em;text-transform:uppercase;
  padding:11px 20px;border-radius:2px;
  border:1px solid rgba(255,255,255,0.55);
  color:#fff;text-decoration:none;
  transition:all 0.4s ease;white-space:nowrap;
}
.nav.scrolled .nav-cta,.nav.solid .nav-cta{border-color:var(--text);color:var(--text);}
.nav-cta:hover{background:var(--accent);border-color:var(--accent);color:#1B1712 !important;}
.nav-toggle{display:none;background:none;border:none;cursor:pointer;padding:6px;z-index:120;}
.nav-toggle span{display:block;width:22px;height:1.5px;background:#fff;margin:5px 0;transition:all 0.3s ease;}
.nav.scrolled .nav-toggle span,.nav.solid .nav-toggle span{background:var(--text);}
.nav-toggle.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg);}
.nav-toggle.open span:nth-child(2){opacity:0;}
.nav-toggle.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg);}

@media (max-width:820px){
  .nav-links{
    position:fixed;inset:0;background:var(--bg);
    flex-direction:column;justify-content:center;gap:28px;
    transform:translateX(100%);
    transition:transform 0.5s cubic-bezier(.2,.7,.2,1);
  }
  .nav-links.open{transform:translateX(0);}
  .nav-links a:not(.nav-cta){color:var(--text) !important;font-size:20px;}
  .nav-cta{display:none;}
  .nav-toggle{display:block;}
}

/* ============ HERO (home, full screen) ============ */
.hero{
  position:relative;height:100svh;min-height:600px;
  display:flex;align-items:flex-end;overflow:hidden;background:#0c0a07;
}
.hero-media{
  position:absolute;inset:-6% -2% -2% -2%;
  background-size:cover;background-position:center 62%;will-change:transform;
}
.hero-scrim{
  position:absolute;inset:0;
  background:
    linear-gradient(to bottom, var(--scrim-top) 0%, rgba(12,10,7,0.28) 45%, var(--scrim-bottom) 100%),
    linear-gradient(to right, rgba(8,6,4,0.4) 0%, rgba(8,6,4,0) 35%, rgba(8,6,4,0) 65%, rgba(8,6,4,0.4) 100%);
}
.hero-inner{
  position:relative;z-index:2;width:100%;
  padding:0 clamp(20px,5vw,64px) clamp(48px,7vw,88px);
  color:#F7F2E7;
}
.hero-eyebrow{
  font-family:"Space Mono",monospace;font-size:12px;letter-spacing:0.2em;text-transform:uppercase;
  color:rgba(247,242,231,0.85);margin-bottom:22px;
  opacity:0;animation:heroUp 1s cubic-bezier(.2,.7,.2,1) 0.3s forwards;
}
.hero-title{
  font-family:"Instrument Serif",serif;font-weight:400;
  font-size:clamp(52px,10vw,132px);line-height:0.96;letter-spacing:-0.01em;
  margin:0 0 22px;
  opacity:0;animation:heroUp 1.1s cubic-bezier(.2,.7,.2,1) 0.45s forwards;
}
.hero-title em{font-style:italic;color:var(--accent-soft);}
.hero-sub{
  max-width:520px;font-size:clamp(15px,1.6vw,18px);color:rgba(247,242,231,0.82);
  line-height:1.65;margin:0 0 38px;
  opacity:0;animation:heroUp 1.1s cubic-bezier(.2,.7,.2,1) 0.6s forwards;
}
.hero-actions{
  display:flex;gap:16px;flex-wrap:wrap;align-items:center;
  opacity:0;animation:heroUp 1.1s cubic-bezier(.2,.7,.2,1) 0.75s forwards;
}
@keyframes heroUp{from{opacity:0;transform:translateY(22px);}to{opacity:1;transform:translateY(0);}}

.btn{
  display:inline-flex;align-items:center;gap:10px;padding:15px 26px;
  font-size:13px;letter-spacing:0.06em;text-transform:uppercase;
  text-decoration:none;border-radius:2px;transition:all 0.35s ease;cursor:pointer;
  border:1px solid transparent;
}
.btn-primary{background:var(--accent);color:#1B1712;}
.btn-primary:hover{background:var(--accent-soft);transform:translateY(-2px);}
.btn-ghost{border-color:rgba(247,242,231,0.5);color:#F7F2E7;background:transparent;}
.btn-ghost:hover{border-color:#F7F2E7;background:rgba(247,242,231,0.08);}
.btn-ghost.dark{border-color:var(--line);color:var(--text);}
.btn-ghost.dark:hover{border-color:var(--accent);color:var(--accent);background:transparent;}

.scroll-cue{
  position:absolute;right:clamp(20px,5vw,64px);bottom:36px;z-index:2;
  display:flex;flex-direction:column;align-items:center;gap:12px;color:rgba(247,242,231,0.75);
}
.scroll-cue span{font-family:"Space Mono",monospace;font-size:10px;letter-spacing:0.2em;text-transform:uppercase;writing-mode:vertical-rl;}
.scroll-line{width:1px;height:52px;background:rgba(247,242,231,0.3);position:relative;overflow:hidden;}
.scroll-line::after{content:"";position:absolute;top:-100%;left:0;width:100%;height:100%;background:#F7F2E7;animation:scrollDrip 2.2s ease-in-out infinite;}
@keyframes scrollDrip{0%{top:-100%;}60%{top:100%;}100%{top:100%;}}

/* ============ PAGE HERO (interior pages, shorter banner) ============ */
.page-hero{
  position:relative;height:52svh;min-height:360px;
  display:flex;align-items:flex-end;overflow:hidden;background:#0c0a07;
}
.page-hero-media{position:absolute;inset:-6% -2% -2% -2%;background-size:cover;background-position:center;}
.page-hero-scrim{
  position:absolute;inset:0;
  background:linear-gradient(to bottom, rgba(12,10,7,0.15) 0%, rgba(12,10,7,0.35) 45%, rgba(12,10,7,0.82) 100%);
}
.page-hero-inner{
  position:relative;z-index:2;width:100%;
  padding:0 clamp(20px,5vw,64px) clamp(40px,6vw,64px);
  color:#F7F2E7;
}
.page-hero-eyebrow{
  font-family:"Space Mono",monospace;font-size:12px;letter-spacing:0.18em;text-transform:uppercase;
  color:rgba(247,242,231,0.85);margin-bottom:16px;
}
.page-hero-title{
  font-family:"Instrument Serif",serif;font-weight:400;font-style:italic;
  font-size:clamp(40px,7vw,84px);line-height:1;margin:0;
}

/* ============ TICKER ============ */
.ticker{background:var(--text);color:var(--bg);overflow:hidden;white-space:nowrap;padding:16px 0;border-bottom:1px solid var(--line);}
.ticker-track{display:inline-flex;animation:tickerMove 32s linear infinite;}
.ticker:hover .ticker-track{animation-play-state:paused;}
.ticker-item{
  font-family:"Space Mono",monospace;font-size:12px;letter-spacing:0.14em;text-transform:uppercase;
  padding:0 22px;display:inline-flex;align-items:center;gap:22px;opacity:0.85;
}
.ticker-item::after{content:"•";color:var(--accent-soft);margin-left:22px;}
@keyframes tickerMove{from{transform:translateX(0);}to{transform:translateX(-50%);}}

/* ============ SECTIONS ============ */
.section{padding:clamp(90px,12vw,150px) 0;}
.section.tight{padding:clamp(60px,8vw,100px) 0;}
.section-head{
  display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:64px;
  border-bottom:1px solid var(--line);padding-bottom:32px;flex-wrap:wrap;
}
.section-head h2{font-family:"Instrument Serif",serif;font-size:clamp(34px,4.4vw,56px);line-height:1.05;max-width:640px;}
.section-head .section-note{max-width:320px;color:var(--text-muted);font-size:14px;line-height:1.6;}

/* ---- Home: preview grid ---- */
.preview-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);}
.preview-card{
  background:var(--surface);padding:0;text-decoration:none;color:var(--text);
  display:flex;flex-direction:column;position:relative;overflow:hidden;
}
.preview-card-media{aspect-ratio:4/5;overflow:hidden;}
.preview-card-media img{width:100%;height:100%;object-fit:cover;transition:transform 0.7s cubic-bezier(.2,.7,.2,1);}
.preview-card:hover .preview-card-media img{transform:scale(1.06);}
.preview-card-body{padding:26px 26px 30px;flex:1;display:flex;flex-direction:column;}
.preview-card-num{font-family:"Space Mono",monospace;font-size:11px;color:var(--accent);letter-spacing:0.1em;margin-bottom:12px;}
.preview-card-title{font-family:"Instrument Serif",serif;font-size:26px;margin:0 0 10px;}
.preview-card-desc{color:var(--text-muted);font-size:14px;line-height:1.6;margin:0 0 20px;flex:1;}
.preview-card-link{
  font-family:"Space Mono",monospace;font-size:11px;letter-spacing:0.08em;text-transform:uppercase;
  display:inline-flex;align-items:center;gap:8px;color:var(--text);
}
.preview-card-link .arrow{transition:transform 0.35s ease;}
.preview-card:hover .preview-card-link .arrow{transform:translateX(6px);}
@media (max-width:900px){.preview-grid{grid-template-columns:1fr;}}

/* ---- Home: featured cuvee band ---- */
.feature-band{background:var(--bg-alt);padding:clamp(70px,10vw,120px) 0;}
.feature-band-grid{display:grid;grid-template-columns:0.9fr 1.1fr;gap:clamp(30px,6vw,80px);align-items:center;}
.feature-band-media{aspect-ratio:4/3;overflow:hidden;border-radius:2px;box-shadow:var(--shadow);}
.feature-band-media img{width:100%;height:100%;object-fit:cover;transition:transform 0.9s ease;}
.feature-band-media:hover img{transform:scale(1.04);}
.feature-band-copy .cuvee-kind{margin-bottom:14px;}
.feature-band-copy h3{font-family:"Instrument Serif",serif;font-style:italic;font-size:clamp(32px,4vw,48px);margin:0 0 16px;}
.feature-band-copy p{color:var(--text-muted);font-size:16px;line-height:1.75;max-width:48ch;margin:0 0 26px;}
@media (max-width:820px){.feature-band-grid{grid-template-columns:1fr;}}

/* ---- CTA band ---- */
.cta-band{
  background:var(--text);color:var(--bg);padding:clamp(70px,9vw,110px) 0;
  text-align:center;
}
.cta-band h2{font-family:"Instrument Serif",serif;font-style:italic;font-size:clamp(32px,5vw,58px);margin:0 0 28px;text-wrap:balance;}
.cta-band .btn-primary{background:var(--accent);color:#1B1712;}

/* ---- Histoire ---- */
.histoire-grid{display:grid;grid-template-columns:1.05fr 0.95fr;gap:clamp(40px,6vw,90px);align-items:start;}
.histoire-copy p{max-width:60ch;color:var(--text-muted);font-size:16.5px;line-height:1.75;margin:0 0 22px;}
.histoire-copy p:first-of-type{color:var(--text);font-size:19px;line-height:1.6;}
.timeline{list-style:none;margin:44px 0 0;padding:0;display:flex;flex-direction:column;gap:0;border-top:1px solid var(--line);}
.timeline li{display:grid;grid-template-columns:80px 1fr;gap:20px;padding:16px 0;border-bottom:1px solid var(--line);font-size:14px;}
.timeline .yr{font-family:"Space Mono",monospace;color:var(--accent);font-size:14px;}
.timeline .desc{color:var(--text-muted);}
.histoire-media{position:sticky;top:110px;}
.histoire-media figure{margin:0;}
.histoire-media img{border-radius:2px;box-shadow:var(--shadow);}
.histoire-media figcaption{
  font-family:"Space Mono",monospace;font-size:11.5px;letter-spacing:0.04em;color:var(--text-muted);
  margin-top:14px;line-height:1.5;padding-left:16px;border-left:1px solid var(--accent);
}
.values-row{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:70px;}
.value-tile{background:var(--surface);padding:32px 28px;transition:background 0.4s ease;}
.value-tile:hover{background:var(--bg-alt);}
.value-tile .num{font-family:"Space Mono",monospace;font-size:11px;color:var(--accent);letter-spacing:0.1em;margin-bottom:14px;}
.value-tile h4{font-family:"Instrument Serif",serif;font-size:21px;margin:0 0 10px;font-weight:400;}
.value-tile p{color:var(--text-muted);font-size:13.5px;line-height:1.6;margin:0;}
@media (max-width:760px){.values-row{grid-template-columns:1fr;}}

/* ---- Parallax break ---- */
.parallax-break{position:relative;height:74vh;min-height:460px;display:flex;align-items:center;justify-content:center;overflow:hidden;}
.parallax-media{position:absolute;inset:-10% 0;background-size:cover;background-position:center;background-attachment:fixed;will-change:transform;}
@media (max-width:820px){.parallax-media{background-attachment:scroll;}}
.parallax-scrim{position:absolute;inset:0;background:linear-gradient(rgba(10,8,5,0.35),rgba(10,8,5,0.6));}
.parallax-quote{position:relative;z-index:2;max-width:820px;text-align:center;padding:0 28px;color:#F7F2E7;}
.parallax-quote blockquote{font-family:"Instrument Serif",serif;font-style:italic;font-size:clamp(24px,3.6vw,44px);line-height:1.32;margin:0 0 26px;text-wrap:balance;}
.parallax-quote cite{font-family:"Space Mono",monospace;font-style:normal;font-size:12px;letter-spacing:0.14em;text-transform:uppercase;opacity:0.8;}

/* ---- Cuvees ---- */
.cuvees-intro{display:grid;grid-template-columns:0.9fr 1.1fr;gap:clamp(30px,5vw,70px);align-items:end;margin-bottom:56px;}
.cuvees-intro img{border-radius:2px;box-shadow:var(--shadow);aspect-ratio:4/3;object-fit:cover;}
.cuvees-intro-copy p{color:var(--text-muted);font-size:16px;line-height:1.75;max-width:52ch;}
.cuvee-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line);}
.cuvee-card{background:var(--surface);padding:38px clamp(24px,3vw,40px);position:relative;transition:background 0.4s ease;}
.cuvee-card:hover{background:var(--bg-alt);}
.cuvee-kind{font-family:"Space Mono",monospace;font-size:11px;letter-spacing:0.14em;text-transform:uppercase;color:var(--accent);margin-bottom:16px;}
.cuvee-name{font-family:"Instrument Serif",serif;font-style:italic;font-size:clamp(26px,2.6vw,32px);margin:0 0 6px;}
.cuvee-grapes{color:var(--text-muted);font-size:13.5px;margin-bottom:22px;}
.cuvee-note{font-size:14.5px;line-height:1.7;color:var(--text-muted);margin:0 0 26px;max-width:44ch;}
.cuvee-specs{display:flex;gap:26px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:18px;font-family:"Space Mono",monospace;font-size:11.5px;}
.cuvee-specs div{display:flex;flex-direction:column;gap:4px;}
.cuvee-specs .k{color:var(--text-muted);letter-spacing:0.08em;text-transform:uppercase;font-size:10px;}
.cuvee-specs .v{color:var(--text);}
@media (max-width:760px){.cuvee-grid{grid-template-columns:1fr;} .cuvees-intro{grid-template-columns:1fr;}}

.pairing-note{
  margin-top:20px;padding-top:16px;border-top:1px dashed var(--line);
  font-size:13px;color:var(--text-muted);
}
.pairing-note strong{color:var(--text);font-weight:500;font-family:"Space Mono",monospace;font-size:10.5px;letter-spacing:0.08em;text-transform:uppercase;display:block;margin-bottom:6px;}

/* ---- Showcase: 3D bottle carousel ----
   Background is sampled from the bottle photos' own backdrop so each
   bottle appears to float on the same surface, without a visible frame. */
.showcase{
  /* Fixed light "product photography" surface, independent of the site's
     light/dark toggle — like the footer's fixed dark band, but inverted.
     Text inside uses the --sc-* tokens below rather than the page's
     theme-flipping tokens, since this surface never gets dark. */
  --sc-bg:#DCD4C9;
  --sc-ink:#1B1712;
  --sc-ink-muted:#6E6455;
  --sc-accent:#B5762B;
  --sc-line:rgba(27,23,18,0.14);
  background:var(--sc-bg);
  padding:clamp(50px,7vw,80px) 0 clamp(64px,8vw,96px);
  overflow:hidden;
}
/* Two columns: the reading side stays left and still, the bottles travel
   on the right half only. The right column runs to the viewport edge, so
   the neighbouring bottles slide off-screen rather than into a margin. */
.showcase-split{
  display:grid;
  grid-template-columns:minmax(0,0.82fr) minmax(0,1.18fr);
  gap:clamp(20px,4vw,56px);
  align-items:center;
  max-width:1680px;
  margin:0 auto;
  padding-left:clamp(20px,5vw,64px);
}
.showcase-panel{
  display:flex;flex-direction:column;gap:clamp(22px,3vw,34px);
  padding-right:clamp(0px,2vw,20px);
}
.showcase-head{display:flex;justify-content:space-between;align-items:baseline;gap:20px;flex-wrap:wrap;}
.showcase-head .eyebrow{margin-bottom:0;color:var(--sc-accent);}
.showcase-head .eyebrow::before{background:var(--sc-accent);}
.showcase-count{font-family:"Space Mono",monospace;font-size:13px;color:var(--sc-ink-muted);letter-spacing:0.04em;}
.showcase-count .cur{color:var(--sc-ink);font-weight:700;}

.showcase-stage{
  position:relative;
  height:clamp(430px,42vw,600px);
  perspective:2000px;
  touch-action:pan-y;
  cursor:grab;
  outline:none;
}
.showcase-stage:active{cursor:grabbing;}
.showcase-track{position:relative;width:100%;height:100%;transform-style:preserve-3d;}
.showcase-item{
  position:absolute;top:50%;left:50%;
  /* Sized by HEIGHT, not width: the bottle render is tall and narrow, so
     height is the dimension that has to fit the stage — width follows. */
  height:clamp(360px,37vw,520px);
  /* Long, gently decelerating travel — no bounce, no snap. */
  transition:transform 1.25s cubic-bezier(.25,.8,.25,1),
             opacity 1s cubic-bezier(.25,.8,.25,1);
  will-change:transform,opacity;
}
.showcase-item img{
  height:100%;width:auto;display:block;
  filter:drop-shadow(0 26px 34px rgba(20,16,10,0.34));
  pointer-events:none;user-select:none;-webkit-user-drag:none;
}
/* Barely-there drift on the bottle in focus, so the stage never feels frozen. */
.showcase-item.is-active img{animation:bottleFloat 7s ease-in-out infinite;}
@keyframes bottleFloat{
  0%,100%{transform:translateY(0);}
  50%{transform:translateY(-10px);}
}

.showcase-controls{
  display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;
  padding-top:clamp(20px,2.5vw,28px);border-top:1px solid var(--sc-line);
}
.showcase-arrows{display:flex;gap:12px;}
.showcase-arrow{
  width:46px;height:46px;border-radius:50%;
  border:1px solid var(--sc-line);background:transparent;
  display:flex;align-items:center;justify-content:center;
  font-size:16px;color:var(--sc-ink);cursor:pointer;
  transition:background 0.45s ease,color 0.45s ease,border-color 0.45s ease,transform 0.45s ease;
}
.showcase-arrow:hover{background:var(--sc-ink);color:var(--sc-bg);border-color:var(--sc-ink);transform:translateY(-2px);}
@media (max-width:700px){.showcase-arrow{width:40px;height:40px;font-size:14px;}}

.showcase-info-text{
  transition:opacity 0.5s cubic-bezier(.25,.8,.25,1), transform 0.5s cubic-bezier(.25,.8,.25,1);
}
.showcase-info-text.fade{opacity:0;transform:translateY(10px);}
.showcase-kind{font-family:"Space Mono",monospace;font-size:11px;letter-spacing:0.14em;text-transform:uppercase;color:var(--sc-accent);margin:0 0 12px;}
.showcase-name{font-family:"Instrument Serif",serif;font-style:italic;font-size:clamp(32px,3.8vw,52px);line-height:1.05;margin:0 0 18px;color:var(--sc-ink);}
.showcase-note{font-size:15.5px;line-height:1.75;color:var(--sc-ink-muted);margin:0 0 26px;max-width:46ch;}
.showcase-specs{display:flex;gap:30px;flex-wrap:wrap;font-family:"Space Mono",monospace;font-size:11.5px;}
.showcase-specs div{display:flex;flex-direction:column;gap:4px;}
.showcase-specs .k{color:var(--sc-ink-muted);letter-spacing:0.08em;text-transform:uppercase;font-size:10px;}
.showcase-specs .v{color:var(--sc-ink);}

.showcase-dots{display:flex;gap:10px;flex-shrink:0;}
.showcase-dots button{
  width:9px;height:9px;border-radius:50%;padding:0;
  border:1px solid var(--sc-ink-muted);background:transparent;cursor:pointer;
  transition:all 0.5s cubic-bezier(.25,.8,.25,1);
}
.showcase-dots button.active{background:var(--sc-accent);border-color:var(--sc-accent);width:26px;border-radius:5px;}

@media (max-width:880px){
  .showcase-split{
    grid-template-columns:1fr;
    gap:clamp(24px,4vw,40px);
    padding-left:0;
  }
  .showcase-panel{order:2;padding:0 clamp(20px,5vw,64px);}
  .showcase-stage{order:1;height:clamp(380px,78vw,480px);}
  .showcase-item{height:clamp(310px,64vw,400px);}
}

/* ---- Visites ---- */
.visites-layout{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,5vw,70px);align-items:stretch;}
.visites-media{position:relative;border-radius:2px;overflow:hidden;min-height:420px;box-shadow:var(--shadow);}
.visites-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 0.9s ease;}
.visites-media:hover img{transform:scale(1.04);}
.visites-media-scrim{position:absolute;inset:0;background:linear-gradient(to top,rgba(10,8,5,0.55),transparent 55%);}
.visites-media-caption{position:absolute;left:24px;bottom:22px;color:#F7F2E7;font-family:"Space Mono",monospace;font-size:11.5px;letter-spacing:0.06em;max-width:260px;}
.offer-list{display:flex;flex-direction:column;gap:0;}
.offer{display:grid;grid-template-columns:1fr auto;gap:16px;padding:26px 0;border-bottom:1px solid var(--line);transition:padding-left 0.35s ease,border-color 0.35s ease;border-left:2px solid transparent;}
.offer:hover{padding-left:16px;border-left-color:var(--accent);}
.offer:first-child{padding-top:0;}
.offer-name{font-family:"Instrument Serif",serif;font-size:22px;margin:0 0 8px;}
.offer-meta{font-family:"Space Mono",monospace;font-size:11.5px;color:var(--text-muted);letter-spacing:0.04em;margin-bottom:10px;}
.offer-desc{color:var(--text-muted);font-size:14px;line-height:1.6;max-width:46ch;margin:0;}
.offer-price{font-family:"Space Mono",monospace;font-size:15px;color:var(--accent);white-space:nowrap;text-align:right;padding-top:2px;}
.visites-practical{
  margin-top:30px;padding-top:26px;border-top:1px solid var(--line);
  display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:13.5px;color:var(--text-muted);
}
.visites-practical strong{color:var(--text);font-weight:500;}
.faq-row{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:60px;}
.faq-tile{background:var(--surface);padding:28px 26px;transition:background 0.4s ease;}
.faq-tile:hover{background:var(--bg-alt);}
.faq-tile h4{font-family:"Instrument Serif",serif;font-weight:400;font-size:19px;margin:0 0 10px;}
.faq-tile p{color:var(--text-muted);font-size:13.5px;line-height:1.6;margin:0;}
@media (max-width:760px){.faq-row{grid-template-columns:1fr;}}

/* ---- Contact ---- */
.contact-layout{display:grid;grid-template-columns:0.85fr 1.15fr;gap:clamp(40px,6vw,90px);}
.contact-info dl{margin:32px 0 0;display:flex;flex-direction:column;gap:22px;}
.contact-info dt{font-family:"Space Mono",monospace;font-size:11px;letter-spacing:0.1em;text-transform:uppercase;color:var(--accent);margin-bottom:6px;}
.contact-info dd{margin:0;font-size:16px;line-height:1.55;}
.contact-info dd a{text-decoration:none;border-bottom:1px solid var(--line);}
.contact-info dd a:hover{border-color:var(--accent);color:var(--accent);}
.contact-lede{font-size:19px;line-height:1.6;max-width:42ch;color:var(--text);font-family:"Instrument Serif",serif;font-style:italic;}

.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px;}
.field{display:flex;flex-direction:column;gap:8px;margin-bottom:20px;}
.field label{font-family:"Space Mono",monospace;font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--text-muted);}
.field input,.field textarea,.field select{
  background:transparent;border:none;border-bottom:1px solid var(--line);padding:11px 2px;
  font-family:"Public Sans",sans-serif;font-size:15px;color:var(--text);outline:none;
  transition:border-color 0.3s ease;resize:vertical;
}
.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--accent);}
.field textarea{min-height:96px;}
.contact-form .btn-primary{margin-top:8px;border:none;}
.form-note{font-size:12.5px;color:var(--text-muted);margin-top:14px;}
.form-success{
  display:none;padding:20px 22px;border:1px solid var(--accent);border-radius:2px;
  color:var(--text);font-size:14.5px;margin-top:18px;background:var(--bg-alt);
}
.form-success.show{display:block;}
@media (max-width:760px){
  .histoire-grid,.contact-layout,.visites-layout,.feature-band-grid{grid-template-columns:1fr;}
  .histoire-media{position:static;order:-1;}
  .form-row{grid-template-columns:1fr;}
}

/* ============ FOOTER ============
   The footer is a fixed dark brand band — intentionally constant
   across the light/dark toggle, like a printed back cover. */
.footer{
  --f-bg:#1B1712;
  --f-text:#F5F1E8;
  --f-muted:rgba(245,241,232,0.62);
  --f-line:rgba(245,241,232,0.14);
  --f-accent:#D69A4E;
  background:var(--f-bg);color:var(--f-text);
  padding:clamp(56px,7vw,84px) 0 0;
}
.footer .wrap{display:flex;flex-direction:column;}

.footer-newsletter{
  display:flex;justify-content:space-between;align-items:center;gap:30px;flex-wrap:wrap;
  padding-bottom:clamp(40px,6vw,56px);margin-bottom:clamp(40px,6vw,56px);
  border-bottom:1px solid var(--f-line);
}
.footer-newsletter-label{
  font-family:"Space Mono",monospace;font-size:11px;letter-spacing:0.12em;text-transform:uppercase;
  color:var(--f-accent);margin:0 0 10px;
}
.footer-newsletter h3{
  font-family:"Instrument Serif",serif;font-weight:400;font-size:clamp(19px,2.2vw,25px);
  line-height:1.4;max-width:480px;margin:0;color:var(--f-text);text-wrap:balance;
}
.footer-newsletter-form{display:flex;gap:18px;align-items:flex-end;flex-wrap:wrap;}
.footer-newsletter-form input{
  background:transparent;border:none;border-bottom:1px solid var(--f-line);
  padding:11px 2px;font-family:"Public Sans",sans-serif;font-size:14px;color:var(--f-text);
  min-width:230px;outline:none;transition:border-color 0.3s ease;
}
.footer-newsletter-form input::placeholder{color:var(--f-muted);}
.footer-newsletter-form input:focus{border-color:var(--f-accent);}
.footer-newsletter-form .btn-primary{padding:12px 22px;font-size:12px;background:var(--f-accent);color:#1B1712;flex-shrink:0;}
.footer-newsletter-form .btn-primary:hover{background:#C68A3D;}
.footer-newsletter-note{
  flex-basis:100%;font-size:11.5px;color:var(--f-muted);margin:2px 0 0;display:none;
}
.footer-newsletter-note.show{display:block;}

.footer-grid{
  display:grid;grid-template-columns:1.4fr 0.8fr 1fr 0.9fr;gap:40px;
  padding-bottom:clamp(40px,6vw,56px);
}
.footer-col-brand .footer-mark{
  font-family:"Instrument Serif",serif;font-style:italic;font-size:clamp(24px,2.6vw,30px);
  line-height:1.1;text-decoration:none;color:var(--f-text);display:inline-block;margin-bottom:16px;
}
.footer-tagline{font-size:14px;line-height:1.75;color:var(--f-muted);max-width:34ch;margin:0 0 22px;}
.footer-social{display:flex;gap:18px;flex-wrap:wrap;}
.footer-social span{
  font-family:"Space Mono",monospace;font-size:11px;letter-spacing:0.08em;text-transform:uppercase;
  color:var(--f-muted);
}
.footer-col-title{
  font-family:"Space Mono",monospace;font-size:11px;letter-spacing:0.12em;text-transform:uppercase;
  color:var(--f-muted);margin:0 0 20px;
}
.footer-links{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px;}
.footer-links li{font-size:14px;line-height:1.6;color:var(--f-muted);}
.footer-links a{text-decoration:none;color:var(--f-text);transition:color 0.3s ease;}
.footer-links a:hover{color:var(--f-accent);}

.footer-bottom{
  display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;
  padding:24px 0;border-top:1px solid var(--f-line);font-size:12px;color:var(--f-muted);
}
.footer-bottom a{text-decoration:underline;color:inherit;}
.to-top{
  background:none;border:1px solid var(--f-line);color:var(--f-text);width:38px;height:38px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all 0.3s ease;font-size:14px;
  flex-shrink:0;
}
.to-top:hover{border-color:var(--f-accent);color:var(--f-accent);transform:translateY(-3px);}

@media (max-width:900px){
  .footer-grid{grid-template-columns:1fr 1fr;row-gap:36px;}
}
@media (max-width:560px){
  .footer-grid{grid-template-columns:1fr;}
  .footer-newsletter-form{width:100%;}
  .footer-newsletter-form input{min-width:0;flex:1 1 auto;}
}

:focus-visible{outline:2px solid var(--accent);outline-offset:3px;}
