/* ============================================================
   NAPA BLACK CAR SERVICE — editorial luxury stylesheet
   Hand-written, no framework. Mobile-first.
   ============================================================ */

:root{
  /* Palette */
  --ink:#0E0E10;
  --ink-2:#1A1A1D;
  --ink-3:#26262A;
  --ivory:#F5F0E6;
  --paper:#FBF8F1;
  --paper-2:#F1ECDE;
  --gold:#C8A35C;
  --gold-deep:#B0894A;
  --gold-soft:#E1C896;
  --line:rgba(200,163,92,0.35);
  --line-ink:rgba(14,14,16,0.14);
  --line-cream:rgba(245,240,230,0.18);
  --muted-ink:rgba(14,14,16,0.66);
  --muted-cream:rgba(245,240,230,0.7);
  --shadow-lift:0 30px 80px -30px rgba(0,0,0,0.55);

  /* Type scale */
  --display:'Cormorant Garamond', 'Times New Roman', serif;
  --sans:'Inter', system-ui, -apple-system, 'Helvetica Neue', Arial, sans-serif;
  --mono:'Italiana', 'Cormorant Garamond', serif;
  --ease:cubic-bezier(0.22, 0.61, 0.36, 1);

  /* Spacing rhythm */
  --gutter:clamp(1.25rem, 3vw, 2.25rem);
  --bleed:clamp(1.5rem, 5vw, 5rem);
  --section-y:clamp(4.5rem, 9vw, 8.5rem);
  --maxw:1320px;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  font-weight:400;
  font-size:16px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img,svg,video{ max-width:100%; height:auto; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; cursor:pointer; border:none; background:none; color:inherit; }

::selection{ background:var(--gold); color:var(--ink); }

/* ---------- Type ---------- */
h1,h2,h3,h4,h5{
  font-family:var(--display);
  font-weight:500;
  letter-spacing:-0.01em;
  line-height:1.04;
  margin:0 0 0.5em;
  color:inherit;
}
h1{ font-size:clamp(2.6rem, 6vw, 5.5rem); font-weight:500; letter-spacing:-0.02em; }
h2{ font-size:clamp(2.1rem, 4.4vw, 3.8rem); }
h3{ font-size:clamp(1.6rem, 2.6vw, 2.4rem); }
h4{ font-size:clamp(1.2rem, 1.8vw, 1.5rem); }
p{ margin:0 0 1em; }
em,.italic{ font-style:italic; }

.eyebrow{
  font-family:var(--sans);
  font-size:.72rem;
  font-weight:500;
  text-transform:uppercase;
  letter-spacing:0.28em;
  color:var(--gold-deep);
  display:inline-flex;
  align-items:center;
  gap:.75rem;
}
.eyebrow .num{
  font-family:var(--display); font-style:italic; font-weight:400;
  letter-spacing:0; font-size:1rem; color:var(--gold);
}
.eyebrow::before{
  content:""; display:inline-block; width:42px; height:1px; background:var(--gold);
  opacity:.9;
}
.eyebrow.no-rule::before{ display:none; }

.italiana{ font-family:var(--mono); letter-spacing:0.08em; }
.lede{ font-size:clamp(1.05rem, 1.4vw, 1.2rem); line-height:1.6; color:var(--muted-ink); max-width:42ch; }
section.dark .lede{ color:var(--muted-cream); }

.dropcap::first-letter{
  font-family:var(--display);
  font-weight:500;
  font-size:4.2em;
  line-height:.85;
  float:left;
  padding:.18em .14em 0 0;
  color:var(--gold);
}

.rule{ height:1px; background:var(--line); border:0; margin:1.5rem 0; }
.rule.ink{ background:var(--line-ink); }
.rule.cream{ background:var(--line-cream); }

/* ---------- Layout ---------- */
.wrap{ max-width:var(--maxw); margin:0 auto; padding:0 var(--bleed); }
section{ padding:var(--section-y) 0; position:relative; }
section.dark{ background:var(--ink); color:var(--ivory); }
section.ink-2{ background:var(--ink-2); color:var(--ivory); }
section.cream{ background:var(--paper); color:var(--ink); }
section.ivory{ background:var(--ivory); color:var(--ink); }

.grid{ display:grid; gap:var(--gutter); }
.cols-2{ grid-template-columns:1fr; }
.cols-3{ grid-template-columns:1fr; }
.cols-4{ grid-template-columns:1fr; }
@media (min-width:780px){
  .cols-2{ grid-template-columns:repeat(2,1fr); }
  .cols-3{ grid-template-columns:repeat(3,1fr); }
  .cols-4{ grid-template-columns:repeat(4,1fr); }
}

.split{
  display:grid;
  gap:clamp(2rem, 5vw, 5rem);
  grid-template-columns:1fr;
  align-items:start;
}
@media (min-width:960px){
  .split.l-5-7{ grid-template-columns:5fr 7fr; }
  .split.l-7-5{ grid-template-columns:7fr 5fr; }
  .split.l-4-8{ grid-template-columns:4fr 8fr; }
  .split.l-8-4{ grid-template-columns:8fr 4fr; }
  .split.l-1-1{ grid-template-columns:1fr 1fr; }
}

/* ---------- Header ---------- */
.site-header{
  position:fixed; top:0; left:0; right:0; z-index:60;
  padding:1.1rem 0;
  transition:background .35s var(--ease), padding .35s var(--ease), border-color .35s var(--ease);
  background:rgba(14,14,16,0); color:var(--ivory);
  border-bottom:1px solid transparent;
}
.site-header.solid{
  background:rgba(14,14,16,0.92);
  backdrop-filter:blur(14px) saturate(1.1);
  -webkit-backdrop-filter:blur(14px) saturate(1.1);
  padding:.7rem 0;
  border-bottom-color:var(--line-cream);
}
body.light-header .site-header:not(.solid){ color:var(--ink); }
.site-header .bar{
  display:flex; align-items:center; justify-content:space-between; gap:2rem;
}
.brand{ display:inline-flex; align-items:center; gap:.85rem; }
.brand .logo{ width:46px; height:46px; flex:0 0 46px; }
.brand .wordmark{
  font-family:var(--display); font-weight:500; letter-spacing:.18em;
  text-transform:uppercase; font-size:.92rem; line-height:1; color:inherit;
}
.brand .wordmark .sub{
  display:block; font-family:var(--sans); font-size:.58rem;
  letter-spacing:.45em; margin-top:.4rem; opacity:.7;
}
.nav-main{ display:none; }
@media (min-width:1100px){
  .nav-main{ display:flex; gap:2rem; align-items:center; }
}
.nav-main a{
  font-size:.78rem; font-weight:500; letter-spacing:.18em; text-transform:uppercase;
  position:relative; padding:.4rem 0; transition:color .25s var(--ease);
}
.nav-main a::after{
  content:""; position:absolute; left:0; right:100%; bottom:0; height:1px;
  background:var(--gold); transition:right .35s var(--ease);
}
.nav-main a:hover{ color:var(--gold-soft); }
.nav-main a:hover::after{ right:0; }
.nav-main a.is-active{ color:var(--gold); }
.nav-main a.is-active::after{ right:0; }

.header-cta{ display:flex; align-items:center; gap:1rem; }
.tel-pill{
  display:none;
  font-family:var(--sans); font-size:.78rem; letter-spacing:.14em; text-transform:uppercase;
  color:inherit; opacity:.86;
}
@media (min-width:780px){ .tel-pill{ display:inline-flex; align-items:center; gap:.45rem; } }
.tel-pill .label{ font-size:.6rem; letter-spacing:.36em; opacity:.65; display:block; }
.tel-pill .num{ font-family:var(--display); font-size:1.04rem; letter-spacing:.04em; }

.btn{
  display:inline-flex; align-items:center; gap:.7rem;
  padding:.95rem 1.6rem;
  font-size:.74rem; letter-spacing:.28em; text-transform:uppercase; font-weight:500;
  border:1px solid var(--gold);
  background:var(--gold); color:var(--ink);
  transition:background .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease), transform .3s var(--ease);
  border-radius:999px;
}
.btn:hover{ background:transparent; color:var(--gold); }
.btn.ghost{
  background:transparent; color:var(--gold);
}
.btn.ghost:hover{ background:var(--gold); color:var(--ink); }
.btn.ghost-ivory{
  background:transparent; color:var(--ivory); border-color:var(--ivory);
}
.btn.ghost-ivory:hover{ background:var(--ivory); color:var(--ink); border-color:var(--ivory); }
.btn .arrow{ width:14px; height:10px; transition:transform .35s var(--ease); flex-shrink:0; }
.more{ display:inline-flex; align-items:center; gap:.6rem; }
.btn:hover .arrow{ transform:translateX(4px); }
.btn.small{ padding:.7rem 1.1rem; font-size:.66rem; }

/* Mobile menu */
.burger{
  display:inline-flex; flex-direction:column; gap:5px;
  padding:.6rem; margin-right:-.4rem;
}
@media (min-width:1100px){ .burger{ display:none; } }
.burger span{ display:block; width:24px; height:1px; background:currentColor; transition:transform .3s var(--ease), opacity .3s var(--ease); }
.burger.open span:nth-child(1){ transform:translateY(6px) rotate(45deg); }
.burger.open span:nth-child(2){ opacity:0; }
.burger.open span:nth-child(3){ transform:translateY(-6px) rotate(-45deg); }

.mobile-nav{
  position:fixed; inset:0; z-index:55;
  background:var(--ink); color:var(--ivory);
  padding:6rem var(--bleed) 3rem;
  display:flex; flex-direction:column; gap:1.4rem;
  transform:translateY(-100%); transition:transform .5s var(--ease);
  overflow-y:auto;
}
.mobile-nav.open{ transform:translateY(0); }
.mobile-nav a{
  font-family:var(--display); font-size:2rem; letter-spacing:.01em;
  padding-bottom:.6rem; border-bottom:1px solid var(--line-cream);
}
.mobile-nav a:hover{ color:var(--gold); }
.mobile-nav .mobile-foot{
  margin-top:auto; display:flex; flex-direction:column; gap:.7rem;
  font-size:.85rem; letter-spacing:.04em;
}
.mobile-nav .mobile-foot .eyebrow{ color:var(--gold-soft); margin-bottom:.2rem; }

/* ---------- Hero ---------- */
.hero{
  position:relative; min-height:100vh; min-height:100svh;
  display:flex; align-items:flex-end;
  color:var(--ivory);
  overflow:hidden;
  isolation:isolate;
}
.hero .bg{
  position:absolute; inset:-6%;
  background-size:cover; background-position:center;
  z-index:-2; will-change:transform;
  transform:scale(1.06);
}
.hero .bg::after{
  content:""; position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(14,14,16,0.55) 0%, rgba(14,14,16,0.25) 35%, rgba(14,14,16,0.85) 100%),
    linear-gradient(90deg, rgba(14,14,16,0.55) 0%, rgba(14,14,16,0.0) 55%);
}
.hero .wrap{ position:relative; z-index:1; padding-top:9rem; padding-bottom:5rem; width:100%; }
.hero .meta-top{
  position:absolute; top:7.5rem; left:var(--bleed); right:var(--bleed);
  display:flex; justify-content:space-between; align-items:flex-end;
  font-size:.72rem; letter-spacing:.32em; text-transform:uppercase; color:var(--ivory);
  opacity:.85;
}
.hero .meta-top .l, .hero .meta-top .r{ display:flex; gap:1.2rem; align-items:center; }
.hero .meta-top .r{ display:none; }
@media (min-width:780px){ .hero .meta-top .r{ display:flex; } }

.hero h1{
  font-size:clamp(3.2rem, 9.6vw, 8.6rem);
  font-weight:400;
  line-height:.96;
  letter-spacing:-0.025em;
  max-width:14ch;
  margin-bottom:0;
}
.hero h1 .it{ font-style:italic; font-weight:400; color:var(--gold-soft); }
.hero .kicker{
  font-family:var(--sans);
  font-size:.78rem; letter-spacing:.36em; text-transform:uppercase;
  color:var(--gold);
  margin-bottom:1.5rem;
  display:inline-flex; gap:.8rem; align-items:center;
}
.hero .kicker::before{ content:""; width:46px; height:1px; background:var(--gold); }
.hero .sub{
  margin-top:2rem; max-width:46ch; color:var(--muted-cream);
  font-size:clamp(1rem,1.3vw,1.15rem); line-height:1.65;
}
.hero .ctas{ margin-top:2.5rem; display:flex; gap:1rem; flex-wrap:wrap; }
.hero .scroll-cue{
  position:absolute; right:var(--bleed); bottom:2.4rem;
  font-size:.6rem; letter-spacing:.5em; text-transform:uppercase; opacity:.75;
  writing-mode:vertical-rl; transform:rotate(180deg);
  display:none;
}
@media (min-width:960px){ .hero .scroll-cue{ display:block; } }

/* Inner hero (smaller, for sub-pages) */
.hero.inner{ min-height:72vh; min-height:72svh; }
.hero.inner h1{ font-size:clamp(2.6rem, 7vw, 6rem); }

/* ---------- Marquee ---------- */
.marquee{
  background:var(--ink); color:var(--ivory);
  padding:1.4rem 0;
  overflow:hidden;
  border-top:1px solid var(--line-cream);
  border-bottom:1px solid var(--line-cream);
}
.marquee.cream{ background:var(--paper-2); color:var(--ink); border-color:var(--line-ink); }
.marquee .track{
  display:flex; gap:3.5rem; white-space:nowrap;
  animation:marquee 48s linear infinite;
  align-items:center;
  width:max-content;
}
.marquee .item{
  font-family:var(--display); font-size:1.4rem; letter-spacing:.04em;
  display:inline-flex; align-items:center; gap:1.6rem;
  opacity:.92;
}
.marquee .item .star{ color:var(--gold); }
.marquee .item .y{ font-family:var(--sans); font-size:.65rem; letter-spacing:.3em; opacity:.55; text-transform:uppercase; }
@keyframes marquee{
  0%{ transform:translateX(0); }
  100%{ transform:translateX(-50%); }
}
.marquee.paused .track{ animation-play-state:paused; }

/* ---------- Editorial number sections ---------- */
.numbered{
  display:grid;
  gap:clamp(2rem, 5vw, 4.5rem);
  align-items:start;
}
@media (min-width:960px){
  .numbered.l-side{ grid-template-columns:1fr 2fr; }
}
.numbered .num{
  font-family:var(--display); font-weight:400; font-style:italic;
  font-size:clamp(2rem, 4vw, 3.4rem); color:var(--gold);
  line-height:1; display:flex; align-items:baseline; gap:.6rem;
}
.numbered .num::after{
  content:""; width:60px; height:1px; background:var(--gold); display:inline-block;
}

.figure-card{ position:relative; }
.figure-card .cap{
  font-size:.7rem; letter-spacing:.3em; text-transform:uppercase;
  color:var(--gold-deep); margin-top:.9rem;
}
.figure-card img{
  width:100%; height:100%; object-fit:cover;
  filter:saturate(.95) contrast(1.02);
  transition:transform 1.2s var(--ease);
}
.figure-card.hoverzoom{ overflow:hidden; }
.figure-card.hoverzoom:hover img{ transform:scale(1.04); }

/* ---------- Service items (editorial 01/02/03/04) ---------- */
.svc-row{
  display:grid; gap:2.5rem;
  grid-template-columns:1fr;
  padding:3rem 0;
  border-top:1px solid var(--line-ink);
  align-items:start;
}
section.dark .svc-row{ border-color:var(--line-cream); }
@media (min-width:900px){
  .svc-row{ grid-template-columns:90px 1.4fr 1fr 1.2fr; gap:3rem; padding:4rem 0; }
}
.svc-row .num{
  font-family:var(--display); font-style:italic; color:var(--gold);
  font-size:2rem;
}
.svc-row h3{ margin:0; }
.svc-row .descr{ color:var(--muted-ink); font-size:.98rem; }
section.dark .svc-row .descr{ color:var(--muted-cream); }
.svc-row .ill{ display:flex; justify-content:flex-start; align-items:center; min-height:80px; }
.svc-row .ill svg{ width:96px; height:96px; }
.svc-row .more{
  display:inline-flex; align-items:center; gap:.6rem;
  font-size:.7rem; letter-spacing:.28em; text-transform:uppercase;
  color:var(--gold); padding-bottom:.3rem;
  border-bottom:1px solid var(--line);
  transition:border-color .3s var(--ease), color .3s var(--ease);
}
.svc-row .more:hover{ color:var(--gold-soft); border-color:var(--gold-soft); }
.svc-row .more .arrow, .more .arrow{ width:14px; height:10px; flex-shrink:0; }

/* ---------- Fleet tabs ---------- */
.fleet-tabs{ display:grid; gap:2rem; }
.fleet-tabs .tablist{
  display:flex; gap:0; flex-wrap:wrap;
  border-bottom:1px solid var(--line-cream);
}
section.cream .fleet-tabs .tablist{ border-color:var(--line-ink); }
.fleet-tabs .tab{
  padding:1.1rem 1.4rem; font-size:.75rem; letter-spacing:.28em; text-transform:uppercase;
  color:var(--muted-cream); position:relative; transition:color .3s var(--ease);
}
section.cream .fleet-tabs .tab{ color:var(--muted-ink); }
.fleet-tabs .tab .idx{
  font-family:var(--display); font-style:italic; font-size:.85rem;
  color:var(--gold); margin-right:.5rem; letter-spacing:0;
}
.fleet-tabs .tab::after{
  content:""; position:absolute; left:0; right:100%; bottom:-1px;
  height:1px; background:var(--gold); transition:right .4s var(--ease);
}
.fleet-tabs .tab[aria-selected="true"]{ color:var(--ivory); }
section.cream .fleet-tabs .tab[aria-selected="true"]{ color:var(--ink); }
.fleet-tabs .tab[aria-selected="true"]::after{ right:0; }

.fleet-panel{ display:none; grid-template-columns:1fr; gap:clamp(2rem,4vw,3.5rem); align-items:start; }
.fleet-panel.is-active{ display:grid; }
@media (min-width:960px){ .fleet-panel{ grid-template-columns:7fr 5fr; } }
.fleet-panel .img{ overflow:hidden; }
.fleet-panel .img img{ width:100%; height:100%; object-fit:cover; aspect-ratio:16/11; }
.fleet-panel .spec h3{ font-size:clamp(2rem, 3.4vw, 2.8rem); margin-top:.2rem; }
.fleet-panel .spec .name-it{ font-style:italic; color:var(--gold-soft); }
.fleet-panel .spec dl{ display:grid; grid-template-columns:1fr 1fr; gap:0; margin:1.6rem 0 0; border-top:1px solid var(--line-cream); }
section.cream .fleet-panel .spec dl{ border-color:var(--line-ink); }
.fleet-panel .spec .pair{ padding:.95rem 0; border-bottom:1px solid var(--line-cream); }
section.cream .fleet-panel .spec .pair{ border-color:var(--line-ink); }
.fleet-panel .spec dt{
  font-size:.6rem; letter-spacing:.32em; text-transform:uppercase;
  color:var(--gold-deep); margin-bottom:.3rem;
}
.fleet-panel .spec dd{ margin:0; font-family:var(--display); font-size:1.2rem; }

/* ---------- Stats strip ---------- */
.stats{
  display:grid; grid-template-columns:repeat(2,1fr); gap:0;
  border-top:1px solid var(--line-cream);
  border-bottom:1px solid var(--line-cream);
}
@media (min-width:780px){ .stats{ grid-template-columns:repeat(4,1fr); } }
.stat{
  padding:clamp(2rem,4vw,3.4rem) clamp(1.4rem,2vw,2rem);
  border-right:1px solid var(--line-cream);
  position:relative;
}
section.cream .stats, section.cream .stat{ border-color:var(--line-ink); }
.stat:last-child{ border-right:none; }
@media (max-width:779px){
  .stat:nth-child(2){ border-right:none; }
  .stat:nth-child(1), .stat:nth-child(2){ border-bottom:1px solid var(--line-cream); }
  section.cream .stat:nth-child(1), section.cream .stat:nth-child(2){ border-bottom:1px solid var(--line-ink); }
}
.stat .num{ font-family:var(--display); font-weight:500; font-size:clamp(2.6rem,4.4vw,3.8rem); line-height:1; color:var(--gold); }
.stat .num .plus{ font-style:italic; }
.stat .label{ margin-top:.7rem; font-size:.72rem; letter-spacing:.3em; text-transform:uppercase; }

/* ---------- Pull quote ---------- */
.pullquote{
  padding:var(--section-y) 0;
  background:var(--ink); color:var(--ivory); position:relative;
}
.pullquote .quote{
  font-family:var(--display); font-style:italic; font-weight:400;
  font-size:clamp(1.7rem, 3.8vw, 3.3rem);
  line-height:1.18; letter-spacing:-0.005em;
  max-width:22ch; margin:0 auto; text-align:left;
}
.pullquote .quote::before{
  content:"“"; font-size:5rem; color:var(--gold); display:block; line-height:.6; margin-bottom:.4rem;
}
.pullquote .who{
  margin-top:2.2rem; font-size:.72rem; letter-spacing:.32em; text-transform:uppercase;
  color:var(--gold-soft);
}
.pullquote .who .name{ color:var(--ivory); }

/* ---------- Atlas (wine country) ---------- */
.atlas{ display:grid; gap:2rem; }
@media (min-width:900px){ .atlas{ grid-template-columns:1fr 1fr; gap:3rem; } }
.atlas .col h4{ font-size:1.05rem; letter-spacing:.04em; }
.atlas .pill-list{
  display:flex; flex-wrap:wrap; gap:.45rem; margin-top:.8rem;
}
.pill{
  font-family:var(--sans); font-size:.7rem; letter-spacing:.18em; text-transform:uppercase;
  padding:.5rem .85rem; border:1px solid var(--line); border-radius:999px;
  color:inherit; opacity:.92;
  transition:background .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease);
}
.pill:hover{ background:var(--gold); color:var(--ink); border-color:var(--gold); }

/* ---------- FAQ accordion ---------- */
.faq{ border-top:1px solid var(--line-ink); }
section.dark .faq{ border-color:var(--line-cream); }
.faq details{
  border-bottom:1px solid var(--line-ink);
  padding:1.4rem 0;
}
section.dark .faq details{ border-color:var(--line-cream); }
.faq summary{
  list-style:none; cursor:pointer;
  display:flex; justify-content:space-between; align-items:flex-start; gap:2rem;
  font-family:var(--display); font-size:clamp(1.15rem,1.8vw,1.55rem);
  font-weight:500;
  line-height:1.25;
  transition:color .3s var(--ease);
}
.faq summary::-webkit-details-marker{ display:none; }
.faq summary:hover{ color:var(--gold-deep); }
section.dark .faq summary:hover{ color:var(--gold-soft); }
.faq summary .plus{
  flex:0 0 auto; width:34px; height:34px; border:1px solid var(--line);
  border-radius:50%; display:grid; place-items:center; color:var(--gold);
  transition:transform .4s var(--ease), background .3s var(--ease), color .3s var(--ease);
  font-family:var(--display); font-size:1rem; font-style:italic;
}
.faq details[open] summary .plus{ transform:rotate(45deg); background:var(--gold); color:var(--ink); }
.faq .ans{
  padding-top:1.1rem; max-width:80ch; font-size:1rem; line-height:1.7;
  color:var(--muted-ink);
}
section.dark .faq .ans{ color:var(--muted-cream); }

/* ---------- CTA band ---------- */
.cta-band{
  padding:clamp(4rem, 8vw, 7rem) 0;
  background:var(--ink); color:var(--ivory);
  position:relative; overflow:hidden;
}
.cta-band .wrap{
  display:grid; gap:2.4rem; align-items:end;
}
@media (min-width:900px){ .cta-band .wrap{ grid-template-columns:1.4fr 1fr; gap:5rem; } }
.cta-band h2{ font-size:clamp(2.2rem, 4.8vw, 4rem); margin:0; max-width:14ch; }
.cta-band h2 em{ color:var(--gold-soft); }
.cta-band .right{ display:flex; flex-direction:column; gap:1.4rem; align-items:flex-start; }
.cta-band .contact-line{
  font-family:var(--display); font-size:1.4rem; letter-spacing:.02em;
}
.cta-band .contact-line .eyebrow{ display:block; margin-bottom:.3rem; color:var(--gold-soft); }
.cta-band .contact-line a{ color:var(--ivory); }
.cta-band .contact-line a:hover{ color:var(--gold); }

/* ---------- Footer ---------- */
footer.site-footer{
  background:var(--ink); color:var(--ivory);
  padding:clamp(4rem,7vw,6.5rem) 0 2rem;
  position:relative; overflow:hidden;
}
footer .top{
  display:grid; gap:3rem; padding-bottom:3rem;
  border-bottom:1px solid var(--line-cream);
}
@media (min-width:900px){ footer .top{ grid-template-columns:1.4fr 1fr 1fr 1fr; gap:3.5rem; } }
footer .col h5{
  font-family:var(--sans); font-size:.66rem; letter-spacing:.32em; text-transform:uppercase;
  color:var(--gold); margin:0 0 1.2rem; font-weight:500;
}
footer .col ul{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:.6rem; }
footer .col a{
  font-size:.92rem; letter-spacing:.02em; color:var(--muted-cream);
  position:relative; padding-bottom:1px;
  transition:color .3s var(--ease);
}
footer .col a:hover{ color:var(--gold); }
footer .brand-block .wordmark{ color:var(--ivory); }
footer .brand-block p{ color:var(--muted-cream); max-width:32ch; font-size:.95rem; }
footer .area-pills{ display:flex; flex-wrap:wrap; gap:.4rem; margin-top:.7rem; }
footer .area-pills .pill{
  font-size:.62rem; letter-spacing:.22em; padding:.35rem .7rem;
  border-color:var(--line-cream); color:var(--muted-cream);
}
footer .bottom{
  display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap;
  padding-top:2rem;
  font-size:.72rem; letter-spacing:.18em; text-transform:uppercase;
  color:var(--muted-cream);
}
footer .bottom a:hover{ color:var(--gold); }
footer .watermark{
  position:absolute; right:-2rem; bottom:-3rem;
  font-family:var(--mono); font-size:clamp(8rem, 18vw, 18rem);
  color:var(--ivory); opacity:.03; letter-spacing:.05em;
  pointer-events:none; line-height:1;
}

/* ---------- Floating Book Now pill ---------- */
.book-fab{
  position:fixed; z-index:50;
  right:1.4rem; bottom:1.6rem;
  display:inline-flex; align-items:center; gap:.6rem;
  padding:1.05rem 1.6rem;
  background:var(--gold); color:var(--ink);
  font-size:.72rem; letter-spacing:.28em; text-transform:uppercase; font-weight:500;
  border-radius:999px;
  box-shadow:0 18px 50px -10px rgba(200,163,92,0.45), 0 6px 18px -4px rgba(0,0,0,.45);
  transition:transform .35s var(--ease), background .3s var(--ease), color .3s var(--ease);
}
.book-fab:hover{ background:var(--ink); color:var(--gold); transform:translateY(-2px); }
.book-fab .dot{
  width:8px; height:8px; border-radius:50%; background:var(--ink);
}
.book-fab:hover .dot{ background:var(--gold); }
@media (max-width:640px){
  .book-fab{ right:50%; transform:translateX(50%); bottom:1.1rem; padding:.95rem 1.2rem; font-size:.65rem; }
  .book-fab:hover{ transform:translateX(50%) translateY(-2px); }
}

/* ---------- Tables (airport) ---------- */
.air-table{
  width:100%; border-collapse:collapse; margin-top:1.6rem;
  font-size:.95rem;
}
.air-table th, .air-table td{
  text-align:left; padding:1.1rem .8rem;
  border-bottom:1px solid var(--line-ink);
}
section.dark .air-table th, section.dark .air-table td{ border-color:var(--line-cream); }
.air-table th{
  font-family:var(--sans); font-size:.66rem; letter-spacing:.28em; text-transform:uppercase;
  font-weight:500; color:var(--gold-deep);
}
.air-table td.code{ font-family:var(--display); font-size:1.3rem; color:var(--gold); letter-spacing:.05em; }
.air-table td.name{ font-family:var(--display); font-size:1.1rem; }

/* ---------- Checklist ---------- */
.checklist{ list-style:none; padding:0; margin:1.5rem 0 0; display:grid; gap:.95rem; }
.checklist li{
  display:flex; gap:1rem; align-items:flex-start;
  padding-bottom:.95rem; border-bottom:1px solid var(--line-ink);
  font-size:.98rem;
}
section.dark .checklist li{ border-color:var(--line-cream); }
.checklist .check{
  flex:0 0 auto; width:22px; height:22px; border:1px solid var(--gold);
  border-radius:50%; display:grid; place-items:center; color:var(--gold);
  margin-top:.15rem;
}

/* ---------- Timeline (wine tours sample itinerary) ---------- */
.timeline{ position:relative; padding-left:0; }
.timeline .step{
  display:grid; grid-template-columns:90px 1fr; gap:2rem;
  padding:2rem 0; border-bottom:1px solid var(--line-ink);
  align-items:start;
}
section.dark .timeline .step{ border-color:var(--line-cream); }
.timeline .step .time{
  font-family:var(--display); font-style:italic; color:var(--gold);
  font-size:1.5rem; letter-spacing:.01em;
}
.timeline .step h4{ margin-bottom:.4rem; font-size:1.3rem; }
.timeline .step p{ margin:0; color:var(--muted-ink); }
section.dark .timeline .step p{ color:var(--muted-cream); }

/* ---------- Contact ---------- */
.contact-grid{
  display:grid; gap:clamp(2rem,4vw,3.5rem);
  grid-template-columns:1fr; align-items:start;
}
@media (min-width:900px){ .contact-grid{ grid-template-columns:1fr 1fr; } }
.contact-block{
  padding:2rem 0;
  border-top:1px solid var(--line-ink);
}
section.dark .contact-block{ border-color:var(--line-cream); }
.contact-block .eyebrow{ margin-bottom:.6rem; }
.contact-block .big{
  font-family:var(--display); font-size:clamp(1.6rem,2.6vw,2.2rem);
  line-height:1.18; letter-spacing:.01em;
  display:block;
}
.contact-block .big a:hover{ color:var(--gold); }
.map-frame{ aspect-ratio:16/10; width:100%; border:none; }

/* ---------- Awards block ---------- */
.awards-grid{
  display:grid; gap:0;
  grid-template-columns:1fr;
  border-top:1px solid var(--line-ink);
}
section.dark .awards-grid{ border-color:var(--line-cream); }
@media (min-width:780px){ .awards-grid{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1100px){ .awards-grid{ grid-template-columns:repeat(4,1fr); } }
.award{
  padding:1.8rem 1.4rem 2rem 0;
  border-bottom:1px solid var(--line-ink);
  border-right:none;
}
section.dark .award{ border-color:var(--line-cream); }
@media (min-width:780px){
  .award{ padding:2rem 1.6rem 2.2rem; border-right:1px solid var(--line-ink); }
  section.dark .award{ border-right-color:var(--line-cream); }
  .award:nth-child(2n){ border-right:none; }
}
@media (min-width:1100px){
  .award:nth-child(2n){ border-right:1px solid var(--line-ink); }
  section.dark .award:nth-child(2n){ border-right-color:var(--line-cream); }
  .award:last-child{ border-right:none; }
}
.award .year{ font-family:var(--display); font-style:italic; color:var(--gold); font-size:1.2rem; }
.award .name{ font-family:var(--display); font-size:1.25rem; margin-top:.6rem; line-height:1.3; }
.award .org{ margin-top:.7rem; font-size:.7rem; letter-spacing:.28em; text-transform:uppercase; opacity:.7; }

/* ---------- Breadcrumb ---------- */
.crumbs{
  font-size:.7rem; letter-spacing:.28em; text-transform:uppercase;
  padding:6.5rem 0 0; color:var(--muted-cream);
}
body.light-header .crumbs{ color:var(--muted-ink); }
.crumbs a:hover{ color:var(--gold); }
.crumbs .sep{ margin:0 .7rem; opacity:.5; }
.crumbs .here{ color:var(--gold); }

/* ---------- Page hero (inner) ---------- */
.page-head{
  padding:9rem 0 5rem;
  border-bottom:1px solid var(--line-ink);
}
section.dark.page-head{ border-color:var(--line-cream); }
.page-head .lede{ max-width:54ch; margin-top:1.6rem; }

/* ---------- Reveal animation ---------- */
.reveal{ opacity:0; transform:translateY(28px); transition:opacity .9s var(--ease), transform .9s var(--ease); }
.reveal.in{ opacity:1; transform:none; }
.reveal.d1{ transition-delay:.05s; }
.reveal.d2{ transition-delay:.12s; }
.reveal.d3{ transition-delay:.2s; }
.reveal.d4{ transition-delay:.28s; }

/* ---------- Skip link / a11y ---------- */
.skip{
  position:absolute; left:1rem; top:1rem; padding:.5rem 1rem;
  background:var(--gold); color:var(--ink); border-radius:4px;
  transform:translateY(-200%); transition:transform .25s var(--ease);
  z-index:100; font-size:.78rem; letter-spacing:.18em; text-transform:uppercase;
}
.skip:focus{ transform:translateY(0); }
:focus-visible{ outline:2px solid var(--gold); outline-offset:3px; }

/* ---------- Compact utility ---------- */
.center{ text-align:center; }
.tac{ text-align:center; }
.mt-0{ margin-top:0!important; } .mt-1{ margin-top:1rem; } .mt-2{ margin-top:2rem; } .mt-3{ margin-top:3rem; }
.mb-0{ margin-bottom:0!important; }
.hide-mob{ display:none; } @media (min-width:780px){ .hide-mob{ display:revert; } }
.show-mob{ display:revert; } @media (min-width:780px){ .show-mob{ display:none; } }

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:.001s!important; animation-delay:0s!important;
    transition-duration:.001s!important; scroll-behavior:auto!important;
  }
  .reveal{ opacity:1; transform:none; }
  .marquee .track{ animation:none; }
}

/* ---------- Scrollable fleet tab strip (6 tabs) ---------- */
.fleet-tabs .tablist.scrollable{
  flex-wrap:nowrap; overflow-x:auto; overflow-y:hidden;
  scrollbar-width:thin; -webkit-overflow-scrolling:touch;
  scroll-snap-type:x mandatory;
}
.fleet-tabs .tablist.scrollable .tab{
  flex:0 0 auto; scroll-snap-align:start; white-space:nowrap;
  padding:1rem 1.1rem;
}
@media (max-width:780px){
  .fleet-tabs .tablist.scrollable .tab{ font-size:.68rem; padding:.85rem .9rem; letter-spacing:.22em; }
  .fleet-tabs .tablist.scrollable .tab .idx{ font-size:.75rem; margin-right:.35rem; }
}
.fleet-tabs .tablist.scrollable::-webkit-scrollbar{ height:4px; }
.fleet-tabs .tablist.scrollable::-webkit-scrollbar-thumb{ background:var(--gold); border-radius:2px; }

/* ---------- Boutique winery grid (clickable) ---------- */
.winery-grid{
  display:grid; gap:.2rem 2rem;
  grid-template-columns:1fr;
  border-top:1px solid var(--line-ink);
}
section.dark .winery-grid, section.ink-2 .winery-grid{ border-color:var(--line-cream); }
@media (min-width:760px){ .winery-grid{ grid-template-columns:1fr 1fr; } }

.winery-row{
  display:flex; flex-direction:column; gap:.15rem;
  padding:1.1rem .25rem 1.05rem; border-bottom:1px solid var(--line-ink);
  position:relative; transition:background .25s var(--ease), color .25s var(--ease), padding .25s var(--ease);
}
section.dark .winery-row, section.ink-2 .winery-row{ border-color:var(--line-cream); }
.winery-row .name{
  font-family:var(--display); font-size:1.35rem; line-height:1.2; color:var(--ink);
  position:relative; display:inline-block;
}
section.dark .winery-row .name, section.ink-2 .winery-row .name{ color:var(--ivory); }
.winery-row .name::after{
  content:""; position:absolute; left:0; right:100%; bottom:-2px;
  height:1px; background:var(--gold); transition:right .35s var(--ease);
}
.winery-row .app{
  font-size:.62rem; letter-spacing:.28em; text-transform:uppercase;
  color:var(--muted-ink); opacity:.75;
}
section.dark .winery-row .app, section.ink-2 .winery-row .app{ color:var(--muted-cream); }
.winery-row:hover{ padding-left:.85rem; color:var(--gold-deep); }
.winery-row:hover .name{ color:var(--gold-deep); }
.winery-row:hover .name::after{ right:0; }
section.dark .winery-row:hover .name, section.ink-2 .winery-row:hover .name{ color:var(--gold); }

/* ---------- Michelin restaurant list ---------- */
.rest-grid{
  display:grid; gap:.2rem 2rem;
  grid-template-columns:1fr;
  border-top:1px solid var(--line-ink);
}
@media (min-width:760px){ .rest-grid{ grid-template-columns:1fr 1fr; } }
.rest-row{
  display:flex; flex-direction:column; gap:.2rem;
  padding:1.15rem .25rem 1.1rem;
  border-bottom:1px solid var(--line-ink);
  transition:background .25s var(--ease), padding .25s var(--ease), color .25s var(--ease);
  position:relative;
}
.rest-row .name{
  font-family:var(--display); font-size:1.5rem; line-height:1.2; color:var(--ink); font-style:italic;
  position:relative; display:inline-block;
}
.rest-row .name::after{
  content:""; position:absolute; left:0; right:100%; bottom:-2px;
  height:1px; background:var(--gold); transition:right .35s var(--ease);
}
.rest-row .meta{
  font-size:.62rem; letter-spacing:.3em; text-transform:uppercase;
  color:var(--muted-ink);
}
.rest-row .stars{ color:var(--gold-deep); font-weight:600; letter-spacing:.22em; }
.rest-row:hover{ padding-left:.85rem; }
.rest-row:hover .name{ color:var(--gold-deep); }
.rest-row:hover .name::after{ right:0; }

/* ---------- Events list (corporate) ---------- */
.events-list{
  display:grid; grid-template-columns:1fr; gap:0;
  border-top:1px solid var(--line-ink);
}
.event-row{
  display:flex; flex-direction:column; gap:.45rem;
  padding:1.6rem .4rem 1.5rem; border-bottom:1px solid var(--line-ink);
  transition:background .25s var(--ease), padding .25s var(--ease);
}
.event-row .head{ display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.event-row .ev-name{
  font-family:var(--display); font-size:1.5rem; color:var(--ink); font-style:italic;
}
.event-row .ev-arrow{ color:var(--gold); transition:transform .25s var(--ease); }
.event-row .ev-when{
  font-size:.62rem; letter-spacing:.3em; text-transform:uppercase; color:var(--gold-deep);
}
.event-row .ev-desc{ font-size:.95rem; color:var(--muted-ink); max-width:72ch; line-height:1.6; }
.event-row:hover{ padding-left:1.2rem; background:rgba(200,163,92,.05); }
.event-row:hover .ev-name{ color:var(--gold-deep); }
.event-row:hover .ev-arrow{ transform:translateX(4px); }

/* ---------- Airport notes column ---------- */
.air-table td.notes{ font-size:.78rem; color:var(--muted-ink); max-width:34ch; line-height:1.55; }
@media (max-width:780px){
  .air-table th, .air-table td{ padding:.7rem .5rem; font-size:.82rem; }
  .air-table td.notes{ font-size:.72rem; }
}

/* ---------- Floating WhatsApp button ---------- */
.wa-fab{
  position:fixed; z-index:50;
  right:1.4rem; bottom:5.5rem;
  display:inline-flex; align-items:center; gap:.55rem;
  padding:.85rem 1.15rem .85rem .95rem;
  background:#25D366; color:#ffffff;
  font-size:.7rem; letter-spacing:.26em; text-transform:uppercase; font-weight:600;
  border-radius:999px;
  box-shadow:0 18px 50px -10px rgba(37,211,102,0.55), 0 6px 18px -4px rgba(0,0,0,.4);
  transition:transform .35s var(--ease), background .3s var(--ease), box-shadow .3s var(--ease);
}
.wa-fab .wa-icon{
  width:22px; height:22px; flex-shrink:0;
  background:#128C7E; border-radius:50%; padding:1px;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.1);
}
.wa-fab .wa-label{ display:inline-block; line-height:1; }
.wa-fab:hover{ background:#128C7E; transform:translateY(-2px); }
@media (max-width:640px){
  /* mobile: stack WhatsApp BELOW Book Now (book = primary action, WhatsApp = secondary). */
  /* Book Now stays centered at bottom, WhatsApp icon-only chip floats lower-right. */
  .wa-fab{
    right:1rem; bottom:1rem;
    padding:.7rem; gap:0;
    font-size:0; letter-spacing:0;
  }
  .wa-fab .wa-label{ display:none; }
  .wa-fab .wa-icon{ width:24px; height:24px; }
}

/* ===== AT-A-GLANCE entity block (Local SEO + LLM overview) ===== */
.at-a-glance{ padding-block: 4.5rem; border-top:1px solid rgba(14,14,16,.08); border-bottom:1px solid rgba(14,14,16,.08); }
.at-a-glance h2{ font-family:var(--display); font-weight:500; font-size:clamp(2rem,3.4vw,2.8rem); line-height:1.05; letter-spacing:-.01em; }
.at-a-glance h2 em{ font-style:italic; color:var(--gold); }
.glance-grid{ display:grid; grid-template-columns:1.05fr 1fr; gap:3.5rem; align-items:start; }
@media (max-width:880px){ .glance-grid{ grid-template-columns:1fr; gap:2.4rem; } }
.facts{ margin:0; padding:0; display:flex; flex-direction:column; }
.facts > div{ display:grid; grid-template-columns:9.5rem 1fr; gap:1.2rem; padding:1rem 0; border-top:1px solid rgba(14,14,16,.1); }
.facts > div:first-child{ border-top:0; padding-top:0; }
.facts dt{ font-family:var(--mono, 'Inter', sans-serif); font-size:.66rem; letter-spacing:.22em; text-transform:uppercase; color:var(--muted-ink); padding-top:.15rem; }
.facts dd{ margin:0; font-size:.96rem; line-height:1.55; color:var(--ink); }
@media (max-width:520px){ .facts > div{ grid-template-columns:1fr; gap:.3rem; } }
