:root {
  --ink: #0b0a0b;
  --ink-soft: #171416;
  --paper: #ffffff;
  --mist: #f5f3ef;
  --line: rgba(11, 10, 11, 0.12);
  --gold: #b99458;
  --gold-light: #d9bd87;
  --hugo: #007f4e;
  --mango: #d39416;
  --kir: #8f1538;
  --muted: #69636a;
  --radius-sm: 12px;
  --radius: 22px;
  --radius-lg: 36px;
  --shadow: 0 24px 70px rgba(10, 8, 9, 0.12);
  --container: min(1180px, calc(100% - 40px));
  --header-h: 82px;
  --transition: 220ms cubic-bezier(.2,.8,.2,1);
  font-synthesis: none;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--ink); }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: "Avenir Next", Avenir, "Segoe UI", Helvetica, Arial, sans-serif;
  font-size: 16px;
  line-height: 1.6;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
body.menu-open,
html.age-check body { overflow: hidden; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
button, input, textarea { font: inherit; }
button { cursor: pointer; }
::selection { background: var(--gold-light); color: var(--ink); }

.skip-link {
  position: fixed; z-index: 9999; top: 8px; left: 8px;
  padding: 10px 14px; background: #fff; color: #000; border-radius: 8px;
  transform: translateY(-140%); transition: transform var(--transition);
}
.skip-link:focus { transform: translateY(0); }

.container { width: var(--container); margin-inline: auto; }
.section { padding: 110px 0; position: relative; }
.section-sm { padding: 72px 0; }
.eyebrow {
  display: inline-flex; gap: 10px; align-items: center;
  font-size: .76rem; font-weight: 800; letter-spacing: .18em; text-transform: uppercase;
  color: var(--gold);
}
.eyebrow::before { content: ""; width: 32px; height: 1px; background: currentColor; }
.display {
  margin: 14px 0 18px;
  font-size: clamp(3rem, 8vw, 7.2rem);
  line-height: .88;
  letter-spacing: -.065em;
  font-weight: 800;
  text-transform: uppercase;
}
.h1 {
  margin: 12px 0 20px;
  font-size: clamp(2.8rem, 6vw, 5.8rem);
  line-height: .94;
  letter-spacing: -.055em;
  font-weight: 800;
  text-transform: uppercase;
}
.h2 {
  margin: 12px 0 20px;
  font-size: clamp(2.2rem, 5vw, 4.5rem);
  line-height: .98;
  letter-spacing: -.045em;
  font-weight: 800;
  text-transform: uppercase;
}
.h3 {
  margin: 0 0 10px;
  font-size: clamp(1.35rem, 2.6vw, 2rem);
  line-height: 1.08;
  letter-spacing: -.025em;
}
.lead { font-size: clamp(1.08rem, 2vw, 1.35rem); line-height: 1.65; color: #4d484d; max-width: 760px; }
.kicker { font-size: .88rem; letter-spacing: .15em; text-transform: uppercase; font-weight: 800; }
.muted { color: var(--muted); }
.text-white { color: #fff; }
.text-gold { color: var(--gold-light); }

.btn {
  --btn-bg: var(--ink); --btn-fg: #fff; --btn-border: var(--ink);
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 52px; padding: 13px 22px;
  border-radius: 999px; border: 1px solid var(--btn-border);
  background: var(--btn-bg); color: var(--btn-fg);
  font-weight: 800; font-size: .82rem; letter-spacing: .08em; text-transform: uppercase;
  transition: transform var(--transition), background var(--transition), color var(--transition), border-color var(--transition);
}
.btn:hover, .btn:focus-visible { transform: translateY(-2px); }
.btn-light { --btn-bg: #fff; --btn-fg: var(--ink); --btn-border: #fff; }
.btn-outline { --btn-bg: transparent; --btn-fg: var(--ink); --btn-border: rgba(11,10,11,.28); }
.btn-outline-light { --btn-bg: transparent; --btn-fg: #fff; --btn-border: rgba(255,255,255,.45); }
.btn-gold { --btn-bg: var(--gold); --btn-fg: #0d0b0a; --btn-border: var(--gold); }
.btn-arrow::after { content: "→"; font-size: 1.1em; }
.button-row { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }

/* Header */
.site-header {
  position: fixed; z-index: 1000; top: 0; left: 0; right: 0; height: var(--header-h);
  transition: background var(--transition), box-shadow var(--transition), height var(--transition);
  color: #fff;
}
.site-header.is-scrolled, body:not(.home) .site-header {
  background: rgba(10,9,10,.95); backdrop-filter: blur(18px); box-shadow: 0 1px 0 rgba(255,255,255,.08);
}
.nav-wrap { height: 100%; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.brand { display: flex; align-items: center; flex: 0 0 auto; }
.brand img { width: 64px; height: 64px; object-fit: contain; }
.site-nav { display: flex; align-items: center; gap: 30px; }
.site-nav a { font-size: .78rem; font-weight: 800; letter-spacing: .105em; text-transform: uppercase; color: rgba(255,255,255,.88); position: relative; }
.site-nav a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -7px; height: 1px; background: var(--gold-light); transition: right var(--transition); }
.site-nav a:hover::after, .site-nav a[aria-current="page"]::after { right: 0; }
.nav-actions { display: flex; align-items: center; gap: 10px; }
.nav-actions .btn { min-height: 44px; padding: 10px 16px; }
.menu-toggle { display: none; width: 44px; height: 44px; border: 0; background: transparent; color: #fff; padding: 8px; }
.menu-toggle span { display: block; width: 24px; height: 2px; background: currentColor; margin: 5px auto; transition: transform var(--transition), opacity var(--transition); }
.menu-open .menu-toggle span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.menu-open .menu-toggle span:nth-child(2) { opacity: 0; }
.menu-open .menu-toggle span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* Age gate */
.age-gate {
  position: fixed;
  z-index: 10000;
  inset: 0;
  background: #fff;
  color: var(--ink);
  opacity: 1;
  visibility: visible;
  transition: opacity 250ms ease, visibility 250ms ease;
}
.age-gate[hidden] { display: none; }
.age-shell {
  display: grid;
  grid-template-columns: minmax(420px, .9fr) 1.1fr;
  width: 100%;
  height: 100svh;
  min-height: 620px;
}
.age-panel {
  display: grid;
  place-items: center;
  padding: clamp(36px, 6vw, 86px);
  background: #fff;
}
.age-panel-inner { width: min(480px, 100%); }
.age-logo { width: 118px; margin: 0 0 42px; }
.age-kicker {
  margin: 0 0 10px;
  color: var(--gold);
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.age-card h1,
.age-panel h1 {
  margin: 0 0 18px;
  font-size: clamp(2.35rem, 4.8vw, 4.8rem);
  line-height: .96;
  letter-spacing: -.055em;
  text-transform: uppercase;
}
.age-copy { margin: 0; max-width: 440px; color: #5e585e; font-size: 1.03rem; }
.age-actions { margin-top: 30px; }
.age-enter {
  --btn-bg: var(--ink);
  --btn-fg: #fff;
  --btn-border: var(--ink);
  min-height: 54px;
}
.age-exit-link {
  display: inline-block;
  margin-top: 20px;
  padding: 0;
  border: 0;
  border-bottom: 1px solid rgba(11,10,11,.45);
  background: transparent;
  color: #4d484d;
  font-size: .83rem;
  font-weight: 700;
}
.age-note {
  margin: 36px 0 0 !important;
  max-width: 430px;
  color: #8a8489 !important;
  font-size: .76rem;
  line-height: 1.55;
}
.age-photo { position: relative; overflow: hidden; background: #eee; }
.age-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 48%; }
.age-photo::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(0,0,0,.08), transparent 34%);
  pointer-events: none;
}

/* Home hero */
.hero {
  position: relative;
  min-height: 100svh;
  padding: 0;
  overflow: hidden;
  display: flex;
  align-items: stretch;
  color: #fff;
  background: #171417;
}
.hero-media { position: absolute; inset: 0; }
.hero-media img { width: 100%; height: 100%; object-fit: cover; object-position: center 46%; }
.hero-shade {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(10,9,10,.78) 0%, rgba(10,9,10,.58) 34%, rgba(10,9,10,.19) 65%, rgba(10,9,10,.08) 100%),
    linear-gradient(0deg, rgba(10,9,10,.35) 0%, rgba(10,9,10,0) 34%);
}
.hero-content {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  width: 100%;
  min-height: 100svh;
  padding-top: calc(var(--header-h) + 64px);
  padding-bottom: 145px;
}
.hero-copy { width: min(640px, 58vw); padding: 0; }
.hero-kicker {
  display: block;
  margin-bottom: 18px;
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: rgba(255,255,255,.78);
}
.hero-title {
  margin: 0 0 24px;
  font-size: clamp(4rem, 7.3vw, 7.3rem);
  line-height: .9;
  letter-spacing: -.065em;
  font-weight: 800;
  text-transform: uppercase;
  text-wrap: balance;
}
.hero-copy p { max-width: 590px; margin: 0; color: rgba(255,255,255,.82); font-size: clamp(1.05rem, 1.55vw, 1.22rem); line-height: 1.65; }
.hero-copy .button-row { align-items: center; margin-top: 32px; }
.hero-text-link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 48px;
  padding: 0 4px;
  border-bottom: 1px solid rgba(255,255,255,.55);
  color: #fff;
  font-size: .8rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.hero-text-link span { transition: transform var(--transition); }
.hero-text-link:hover span { transform: translateX(4px); }
.hero-proof {
  position: absolute;
  z-index: 3;
  left: 0;
  right: 0;
  bottom: 0;
  border-top: 1px solid rgba(255,255,255,.2);
  background: rgba(10,9,10,.46);
  backdrop-filter: blur(12px);
}
.hero-proof-inner { display: grid; grid-template-columns: repeat(4, 1fr); }
.hero-proof span {
  min-height: 88px;
  padding: 22px 24px;
  border-right: 1px solid rgba(255,255,255,.16);
  color: rgba(255,255,255,.68);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.hero-proof span:last-child { border-right: 0; }
.hero-proof strong { display: block; margin-bottom: 2px; color: #fff; font-size: 1.22rem; letter-spacing: -.02em; text-transform: none; }

.brand-strip {
  position: relative;
  overflow: hidden;
  background: #0b0a0b;
  color: #fff;
}
.brand-strip::before {
  content: "";
  position: absolute;
  inset: 0;
  background: url("../img/skyline-stars.png?v=20260901142902") center 24% / 900px auto repeat-x;
  opacity: .1;
  pointer-events: none;
}
.brand-strip-inner {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(24px, 5vw, 70px);
  min-height: 92px;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(255,255,255,.72);
}
.brand-strip-inner span { display: inline-flex; align-items: center; gap: clamp(24px, 5vw, 70px); }
.brand-strip-inner span:not(:last-child)::after { content: "•"; color: var(--gold-light); }

/* Intro marquee */
.marquee { overflow: hidden; border-block: 1px solid var(--line); background: #fff; }
.marquee-track { display: flex; width: max-content; animation: marquee 28s linear infinite; }
.marquee span { display: inline-flex; align-items: center; gap: 22px; padding: 18px 20px; font-size: .8rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; white-space: nowrap; }
.marquee span::after { content: "✦"; color: var(--gold); }
@keyframes marquee { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .marquee-track { animation: none; } }

/* Product feature */
.product-intro { text-align: center; max-width: 820px; margin: 0 auto 56px; }
.product-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.product-card { position: relative; overflow: hidden; min-height: 610px; border-radius: var(--radius-lg); background: #f7f6f3; border: 1px solid rgba(0,0,0,.05); display: flex; flex-direction: column; padding: 26px; transition: transform var(--transition), box-shadow var(--transition); }
.product-card:hover { transform: translateY(-8px); box-shadow: var(--shadow); }
.product-card::after { content: ""; position: absolute; inset: auto -10% -28% 35%; aspect-ratio: 1; border-radius: 50%; background: var(--accent, var(--gold)); opacity: .11; filter: blur(6px); }
.product-card .product-meta { position: relative; z-index: 2; display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; }
.product-card h3 { font-size: 1.4rem; text-transform: uppercase; max-width: 160px; }
.product-card .sugar { font-size: .7rem; text-align: right; letter-spacing: .08em; text-transform: uppercase; font-weight: 800; color: var(--accent, var(--gold)); }
.product-card .sugar strong { display: block; font-size: 1.45rem; line-height: 1; }
.product-card img { position: relative; z-index: 1; width: 88%; max-height: 445px; object-fit: contain; margin: 16px auto -54px; filter: drop-shadow(0 22px 22px rgba(0,0,0,.15)); }
.product-card .card-link { position: relative; z-index: 3; margin-top: auto; align-self: flex-start; font-size: .78rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; border-bottom: 1px solid currentColor; }
.product-card.original { --accent: var(--gold); }
.product-card.hugo { --accent: var(--hugo); }
.product-card.mango { --accent: var(--mango); }
.product-card.kir { --accent: var(--kir); }

/* Lifestyle */
.moments-section { background: #f6f3ed; }
.moments-head {
  display: grid;
  grid-template-columns: 1fr .78fr;
  gap: 70px;
  align-items: end;
  margin-bottom: 52px;
}
.moments-head .lead { margin: 0 0 10px; }
.moments-grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  grid-auto-rows: 96px;
  gap: 18px;
}
.moment { margin: 0; min-width: 0; }
.moment-wide { grid-column: span 7; grid-row: span 5; }
.moment-tall { grid-column: span 5; grid-row: span 7; }
.moment:nth-child(3) { grid-column: 1 / span 5; }
.moment:nth-child(4) { grid-column: 6 / span 7; }
.moment-image { position: relative; height: calc(100% - 72px); min-height: 240px; overflow: hidden; background: #ddd; }
.moment-image img { width: 100%; height: 100%; object-fit: cover; transition: transform 650ms cubic-bezier(.16,1,.3,1); }
.moment:hover .moment-image img { transform: scale(1.018); }
.moment figcaption { display: flex; justify-content: space-between; gap: 18px; align-items: baseline; padding: 15px 2px 0; }
.moment figcaption strong { font-size: .9rem; letter-spacing: .04em; text-transform: uppercase; }
.moment figcaption span { color: #777176; font-size: .84rem; text-align: right; }


/* Story / split */
.split { display: grid; grid-template-columns: 1fr 1fr; gap: 70px; align-items: center; }
.split-media { border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow); min-height: 620px; position: relative; }
.split-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.split-media.short { min-height: 520px; }
.detail-list { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 0 28px; margin-top: 28px; }
.detail-item { border-top: 1px solid var(--line); padding: 18px 0; }
.detail-item strong { display: block; font-size: 1.2rem; }
.detail-item span { color: var(--muted); font-size: .9rem; }

/* Wine strip */
.wine-strip { background: #f3f0ea; }
.wine-stat-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: rgba(0,0,0,.1); border: 1px solid rgba(0,0,0,.1); border-radius: var(--radius); overflow: hidden; }
.wine-stat { background: #fff; padding: 28px; min-height: 150px; }
.wine-stat strong { display: block; font-size: clamp(2.1rem, 4vw, 3.6rem); line-height: 1; letter-spacing: -.05em; }
.wine-stat span { display: block; margin-top: 12px; color: var(--muted); font-size: .86rem; }

/* Where to buy teaser */
.map-teaser { background: #f5f3ef; border-radius: var(--radius-lg); overflow: hidden; display: grid; grid-template-columns: .9fr 1.1fr; min-height: 520px; }
.map-copy { padding: clamp(42px, 7vw, 86px); display: flex; flex-direction: column; justify-content: center; }
.map-visual { position: relative; overflow: hidden; min-height: 480px; }
.map-visual img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.map-visual::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(245,243,239,.14), transparent 35%); }
.map-pin { position: absolute; z-index: 2; left: 58%; top: 34%; width: 74px; height: 74px; border-radius: 50% 50% 50% 0; background: var(--kir); transform: rotate(-45deg); box-shadow: 0 18px 36px rgba(0,0,0,.24); }
.map-pin::after { content: ""; position: absolute; width: 24px; height: 24px; background: #fff; border-radius: 50%; left: 25px; top: 25px; }

/* Newsletter */
.newsletter { background: var(--ink); color: #fff; overflow: hidden; }
.newsletter::before { content: ""; position: absolute; inset: auto 0 0; height: 58%; background: url("../img/skyline-stars.png?v=20260901142902") center bottom / cover no-repeat; opacity: .42; }
.newsletter-inner { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr .85fr; gap: 70px; align-items: center; }
.newsletter p { color: rgba(255,255,255,.67); }
.newsletter-form { display: flex; gap: 10px; padding: 9px; border: 1px solid rgba(255,255,255,.22); border-radius: 999px; background: rgba(255,255,255,.06); }
.newsletter-form input { flex: 1; min-width: 0; padding: 10px 14px; background: transparent; border: 0; outline: 0; color: #fff; }
.newsletter-form input::placeholder { color: rgba(255,255,255,.48); }
.form-status { margin: 10px 6px 0; min-height: 1.2em; font-size: .8rem; color: var(--gold-light); }

/* Page hero */
.page-hero { min-height: 590px; padding: calc(var(--header-h) + 92px) 0 90px; display: flex; align-items: flex-end; background: var(--ink); color: #fff; overflow: hidden; }
.page-hero::before { content: ""; position: absolute; inset: auto 0 0; height: 78%; background: url("../img/skyline-stars.png?v=20260901142902") center bottom / cover no-repeat; opacity: .62; }
.page-hero::after { content: ""; position: absolute; width: 580px; height: 580px; right: -120px; top: -160px; border-radius: 50%; background: radial-gradient(circle, rgba(185,148,88,.2), transparent 68%); }
.page-hero .container { position: relative; z-index: 1; }
.page-hero p { max-width: 690px; color: rgba(255,255,255,.68); font-size: 1.16rem; }

/* Wines page */
.wine-feature { display: grid; grid-template-columns: .86fr 1.14fr; align-items: center; gap: 80px; padding: 82px 0; border-bottom: 1px solid var(--line); }
.wine-feature:nth-child(even) { grid-template-columns: 1.14fr .86fr; }
.wine-feature:nth-child(even) .wine-can-wrap { order: 2; }
.wine-can-wrap { min-height: 640px; border-radius: var(--radius-lg); position: relative; overflow: hidden; background: #f6f4f0; }
.wine-can-wrap::before { display: none; }
.wine-can-wrap img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.wine-copy .flavour { color: var(--accent); }
.wine-copy .facts { display: flex; gap: 8px; flex-wrap: wrap; margin: 22px 0; }
.wine-copy .facts span { border: 1px solid var(--line); padding: 7px 12px; border-radius: 999px; font-size: .75rem; text-transform: uppercase; font-weight: 800; letter-spacing: .08em; }
.wine-feature.original { --accent: var(--gold); }
.wine-feature.hugo { --accent: var(--hugo); }
.wine-feature.mango { --accent: var(--mango); }
.wine-feature.kir { --accent: var(--kir); }
.sommelier-note { padding: 22px 0 0 24px; border-left: 2px solid var(--gold); color: #4d484d; font-style: italic; }
.sommelier-note cite { display: block; margin-top: 12px; font-style: normal; color: var(--ink); font-weight: 700; font-size: .86rem; }

/* Cocktail cards */
.cocktail-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.cocktail-card { border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; background: #fff; transition: transform var(--transition), box-shadow var(--transition); }
.cocktail-card:hover { transform: translateY(-6px); box-shadow: var(--shadow); }
.cocktail-image { aspect-ratio: 4 / 3; overflow: hidden; background: #eee; }
.cocktail-image img { width: 100%; height: 100%; object-fit: cover; transition: transform 500ms cubic-bezier(.16,1,.3,1); }
.cocktail-card:hover img { transform: scale(1.035); }
.cocktail-body { padding: 24px; }
.cocktail-body h2 { font-size: 1.55rem; margin: 0 0 6px; line-height: 1.05; text-transform: uppercase; letter-spacing: -.02em; }
.cocktail-type { font-size: .72rem; color: var(--gold); letter-spacing: .12em; text-transform: uppercase; font-weight: 800; }
.recipe-toggle { margin-top: 16px; border: 0; border-bottom: 1px solid currentColor; padding: 0 0 2px; background: none; font-weight: 800; font-size: .76rem; letter-spacing: .08em; text-transform: uppercase; }
.recipe { display: none; padding-top: 16px; border-top: 1px solid var(--line); margin-top: 16px; }
.cocktail-card.is-open .recipe { display: block; }
.recipe h3 { font-size: .76rem; text-transform: uppercase; letter-spacing: .11em; margin: 0 0 8px; }
.recipe ul { margin: 0 0 16px; padding-left: 18px; color: #514c51; }
.recipe p { margin: 0; color: #514c51; font-size: .92rem; }

/* Map page */
.map-shell { border: 1px solid var(--line); border-radius: var(--radius-lg); overflow: hidden; min-height: 620px; background: #ebe9e4; position: relative; }
.map-placeholder { position: absolute; inset: 0; display: grid; place-items: center; text-align: center; padding: 40px; background-image: linear-gradient(rgba(255,255,255,.48), rgba(255,255,255,.48)), repeating-linear-gradient(45deg, transparent 0 30px, rgba(0,0,0,.025) 30px 31px); }
.map-placeholder .inner { max-width: 570px; }
.map-placeholder .pin { width: 70px; height: 70px; margin: 0 auto 24px; border-radius: 50% 50% 50% 0; transform: rotate(-45deg); background: var(--kir); position: relative; }
.map-placeholder .pin::after { content: ""; position: absolute; width: 22px; height: 22px; background: #fff; border-radius: 50%; left: 24px; top: 24px; }
.integration-note { margin-top: 20px; padding: 14px 16px; border-radius: 12px; background: rgba(185,148,88,.12); color: #5a451e; font-size: .86rem; }
.retail-photo-grid { display: grid; grid-template-columns: 1.25fr .75fr; gap: 18px; margin-top: 30px; }
.retail-photo-grid figure { margin: 0; border-radius: var(--radius); overflow: hidden; min-height: 420px; position: relative; }
.retail-photo-grid img { width: 100%; height: 100%; object-fit: cover; position: absolute; }

/* About */
.photo-mosaic { display: grid; grid-template-columns: 1.25fr .75fr; grid-template-rows: 320px 320px; gap: 18px; }
.photo-mosaic figure { margin: 0; position: relative; overflow: hidden; border-radius: var(--radius); }
.photo-mosaic figure:first-child { grid-row: 1 / 3; }
.photo-mosaic img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }

/* Forms */
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.field { display: grid; gap: 7px; }
.field.full { grid-column: 1 / -1; }
.field label { font-size: .74rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.field input, .field textarea, .field select {
  width: 100%; border: 1px solid rgba(0,0,0,.18); border-radius: 12px; padding: 14px 15px; background: #fff; color: var(--ink); outline: 0;
  transition: border-color var(--transition), box-shadow var(--transition);
}
.field textarea { min-height: 150px; resize: vertical; }
.field input:focus, .field textarea:focus, .field select:focus { border-color: var(--gold); box-shadow: 0 0 0 3px rgba(185,148,88,.15); }
.contact-grid { display: grid; grid-template-columns: .78fr 1.22fr; gap: 70px; align-items: start; }
.contact-card { background: #f5f3ef; border-radius: var(--radius); padding: 30px; }
.contact-card + .contact-card { margin-top: 16px; }
.contact-card a { font-weight: 800; border-bottom: 1px solid currentColor; }

/* Legal */
.legal-content { max-width: 850px; }
.legal-content h2 { margin-top: 48px; font-size: 1.55rem; }
.legal-content h3 { margin-top: 28px; font-size: 1.15rem; }
.legal-content p, .legal-content li { color: #514c51; }

/* Footer */
.site-footer { background: #090809; color: #fff; padding: 76px 0 30px; }
.footer-grid { display: grid; grid-template-columns: 1.3fr .7fr .7fr .9fr; gap: 42px; }
.footer-brand img { width: 110px; margin-bottom: 18px; }
.footer-brand p { color: rgba(255,255,255,.56); max-width: 320px; }
.footer-col h2 { font-size: .75rem; text-transform: uppercase; letter-spacing: .12em; color: var(--gold-light); margin: 0 0 16px; }
.footer-links { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.footer-links a { color: rgba(255,255,255,.72); font-size: .9rem; }
.footer-links a:hover { color: #fff; }
.footer-bottom { display: flex; justify-content: space-between; gap: 20px; align-items: center; border-top: 1px solid rgba(255,255,255,.1); margin-top: 50px; padding-top: 24px; color: rgba(255,255,255,.48); font-size: .78rem; }
.responsible { text-transform: uppercase; letter-spacing: .12em; }

/* Reveal */
.reveal { opacity: 0; transform: translateY(24px); transition: opacity 700ms ease, transform 700ms cubic-bezier(.16,1,.3,1); }
.reveal.in-view { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
}

/* Responsive */
@media (max-width: 1080px) {
  :root { --header-h: 74px; }
  .site-nav { gap: 18px; }
  .nav-actions .btn { display: none; }
  .hero-grid { grid-template-columns: 1fr 1fr; }
  .hero-products { min-height: 520px; }
  .product-grid { grid-template-columns: repeat(2, 1fr); }
  .product-card { min-height: 590px; }
  .cocktail-grid { grid-template-columns: repeat(2, 1fr); }
  .wine-feature, .wine-feature:nth-child(even) { gap: 50px; }
  .footer-grid { grid-template-columns: 1.2fr .8fr .8fr; }
  .footer-grid .footer-col:last-child { grid-column: 1 / -1; }
}

@media (max-width: 820px) {
  :root { --container: min(100% - 30px, 720px); }
  .section { padding: 82px 0; }
  .site-nav {
    position: fixed; inset: var(--header-h) 0 0; background: rgba(9,8,9,.985); padding: 42px 30px; display: flex; flex-direction: column; align-items: flex-start; gap: 25px;
    transform: translateX(100%); transition: transform 300ms cubic-bezier(.16,1,.3,1);
  }
  .menu-open .site-nav { transform: translateX(0); }
  .site-nav a { font-size: 1.25rem; letter-spacing: .06em; }
  .menu-toggle { display: block; }
  .hero { min-height: auto; padding-top: calc(var(--header-h) + 50px); }
  .hero-grid { grid-template-columns: 1fr; }
  .hero-copy { padding: 10px 0 0; }
  .hero-products { height: 560px; min-height: 0; }
  .hero-products .can { width: clamp(150px, 31vw, 220px); }
  .hero-products .can-original { left: 1%; }
  .hero-products .can-kir { left: 23%; }
  .hero-products .can-hugo { right: 23%; }
  .hero-products .can-mango { right: -1%; }
  .hero-stamp { width: 125px; height: 125px; top: -8%; font-size: .58rem; }
  .hero-stamp strong { font-size: 2rem; }
  .split, .lifestyle-grid, .map-teaser, .newsletter-inner, .contact-grid { grid-template-columns: 1fr; }
  .lifestyle-image { min-height: 520px; }
  .lifestyle-copy { padding: 70px 30px; }
  .map-visual { min-height: 480px; }
  .wine-stat-grid { grid-template-columns: repeat(2, 1fr); }
  .wine-feature, .wine-feature:nth-child(even) { grid-template-columns: 1fr; gap: 38px; padding: 60px 0; }
  .wine-feature:nth-child(even) .wine-can-wrap { order: 0; }
  .wine-can-wrap { min-height: 560px; }
  .wine-can-wrap img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
  .retail-photo-grid { grid-template-columns: 1fr; }
  .photo-mosaic { grid-template-columns: 1fr 1fr; grid-template-rows: 420px 250px; }
  .photo-mosaic figure:first-child { grid-column: 1 / -1; grid-row: 1; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-brand { grid-column: 1 / -1; }
  .footer-grid .footer-col:last-child { grid-column: auto; }
}

@media (max-width: 560px) {
  :root { --container: calc(100% - 24px); }
  .section { padding: 68px 0; }
  .brand img { width: 54px; height: 54px; }
  .hero-title { font-size: clamp(3.3rem, 18vw, 5rem); }
  .hero-products { height: 450px; }
  .hero-products .can { width: 35vw; }
  .hero-products .can-original { left: -3%; }
  .hero-products .can-kir { left: 19%; }
  .hero-products .can-hugo { right: 19%; }
  .hero-products .can-mango { right: -3%; }
  .hero-stamp { display: none; }
  .product-grid, .cocktail-grid, .form-grid { grid-template-columns: 1fr; }
  .product-card { min-height: 600px; }
  .field.full { grid-column: auto; }
  .occasion-list, .detail-list { grid-template-columns: 1fr; }
  .wine-stat-grid { grid-template-columns: 1fr 1fr; }
  .newsletter-form { border-radius: var(--radius); flex-direction: column; align-items: stretch; }
  .page-hero { min-height: 500px; padding-bottom: 65px; }
  .wine-can-wrap { min-height: 500px; }
  .wine-can-wrap img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
  .cocktail-grid { gap: 16px; }
  .photo-mosaic { display: grid; grid-template-columns: 1fr; grid-template-rows: 420px 280px 280px; }
  .photo-mosaic figure:first-child { grid-column: auto; grid-row: auto; }
  .footer-grid { grid-template-columns: 1fr; }
  .footer-brand, .footer-grid .footer-col:last-child { grid-column: auto; }
  .footer-bottom { flex-direction: column; align-items: flex-start; }
  .age-actions .btn { width: 100%; }
}


/* Homepage v2 responsive overrides */
@media (max-width: 900px) {
  .age-shell { grid-template-columns: 1fr 1fr; }
  .age-panel { padding: 40px; }
  .hero { min-height: 820px; padding: 0; }
  .hero-content { min-height: 820px; padding-top: calc(var(--header-h) + 48px); padding-bottom: 150px; }
  .hero-copy { width: min(620px, 76vw); }
  .hero-media img { object-position: 58% center; }
  .hero-shade { background: linear-gradient(90deg, rgba(10,9,10,.79) 0%, rgba(10,9,10,.55) 50%, rgba(10,9,10,.12) 100%); }
  .moments-head { grid-template-columns: 1fr; gap: 14px; }
  .moments-grid { grid-template-columns: 1fr 1fr; grid-auto-rows: auto; }
  .moment-wide, .moment-tall, .moment:nth-child(3), .moment:nth-child(4) { grid-column: auto; grid-row: auto; }
  .moment-image { height: 440px; }
}

@media (max-width: 700px) {
  .age-shell { display: block; min-height: 0; overflow-y: auto; background: #fff; }
  .age-photo { height: 34svh; min-height: 210px; }
  .age-photo img { object-position: center 40%; }
  .age-panel { min-height: 66svh; padding: 34px 24px 42px; place-items: start; }
  .age-panel-inner { margin: 0 auto; }
  .age-logo { width: 86px; margin-bottom: 24px; }
  .age-panel h1 { font-size: clamp(2.35rem, 12vw, 3.7rem); }
  .age-actions .btn { width: 100%; }
  .age-note { margin-top: 26px !important; }

  .hero { min-height: 760px; }
  .hero-content { align-items: flex-end; min-height: 760px; padding-top: calc(var(--header-h) + 30px); padding-bottom: 166px; }
  .hero-copy { width: 100%; }
  .hero-title { font-size: clamp(3.35rem, 16vw, 5.2rem); line-height: .9; }
  .hero-media img { object-position: 66% center; }
  .hero-shade { background: linear-gradient(0deg, rgba(10,9,10,.87) 0%, rgba(10,9,10,.55) 52%, rgba(10,9,10,.1) 100%); }
  .hero-copy p { max-width: 500px; font-size: 1rem; }
  .hero-proof-inner { grid-template-columns: 1fr 1fr; }
  .hero-proof span { min-height: 68px; padding: 13px 16px; }
  .hero-proof span:nth-child(2) { border-right: 0; }
  .hero-proof span:nth-child(-n+2) { border-bottom: 1px solid rgba(255,255,255,.14); }
  .hero-proof strong { font-size: 1rem; }
  .brand-strip-inner { justify-content: flex-start; overflow: hidden; gap: 30px; min-height: 78px; }
  .brand-strip-inner span { flex: 0 0 auto; gap: 30px; }
  .moments-grid { grid-template-columns: 1fr; }
  .moment-image { height: 390px; }
  .moment figcaption { align-items: flex-start; }
}

@media (max-width: 480px) {
  .hero-content { padding-bottom: 170px; }
  .hero-copy .button-row { align-items: flex-start; flex-direction: column; }
  .hero-copy .btn { width: auto; }
  .hero-text-link { min-height: 40px; }
  .moment-image { height: 340px; }
}

/* ==============================================================
   Homepage v3 — quieter, editorial, lifestyle-led
   ============================================================== */

.home-v3 { background: #fff; }
.home-v3 .section { padding-block: clamp(88px, 9vw, 132px); }

/* Light, stable home navigation */
.home-v3 .site-header,
.home-v3 .site-header.is-scrolled {
  background: rgba(248, 245, 239, .96);
  color: var(--ink);
  box-shadow: 0 1px 0 rgba(11,10,11,.08);
  backdrop-filter: blur(18px);
}
.home-v3 .site-nav a { color: rgba(11,10,11,.82); }
.home-v3 .site-nav a::after { background: var(--gold); }
.home-v3 .nav-actions .btn-outline-light {
  --btn-bg: transparent;
  --btn-fg: var(--ink);
  --btn-border: rgba(11,10,11,.28);
}
.home-v3 .menu-toggle { color: var(--ink); }

/* Minimal legal gate */
.age-gate-minimal {
  display: grid;
  place-items: center;
  overflow: hidden;
  background: #f5f1e8;
}
.age-gate-minimal::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -8px;
  height: min(26vh, 240px);
  background: url("../img/skyline-stars.png?v=20260901142902") center bottom / cover no-repeat;
  opacity: .045;
  pointer-events: none;
}
.age-minimal-inner {
  position: relative;
  z-index: 2;
  width: min(620px, calc(100% - 44px));
  text-align: center;
  padding: 44px 24px;
}
.age-minimal-logo {
  width: 112px;
  margin: 0 auto 34px;
}
.age-minimal-overline {
  margin: 0 0 13px;
  color: var(--gold);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.age-minimal-copy h1 {
  margin: 0 auto 18px;
  max-width: 590px;
  font-size: clamp(2.35rem, 5.6vw, 4.9rem);
  line-height: .98;
  letter-spacing: -.055em;
  text-transform: uppercase;
}
.age-minimal-copy > p:not(.age-minimal-overline):not(.age-minimal-note) {
  margin: 0 auto;
  max-width: 520px;
  color: #5d5759;
  font-size: 1rem;
}
.age-minimal-actions {
  display: flex;
  justify-content: center;
  gap: 10px;
  margin-top: 30px;
}
.age-minimal-actions .btn { min-width: 142px; }
.age-minimal-exit { background: transparent; }
.age-minimal-note {
  margin: 26px auto 0;
  max-width: 510px;
  color: #858083;
  font-size: .74rem;
  line-height: 1.55;
}

/* Editorial split hero */
.home-hero {
  margin-top: var(--header-h);
  background: #f5f1e8;
  overflow: hidden;
}
.home-hero-grid {
  display: grid;
  grid-template-columns: minmax(430px, .84fr) minmax(0, 1.16fr);
  min-height: calc(100svh - var(--header-h));
}
.home-hero-copy-panel {
  display: flex;
  align-items: center;
  padding: clamp(64px, 8vw, 120px) clamp(34px, 6vw, 92px);
}
.home-hero-copy {
  width: min(570px, 100%);
  margin-left: max(0px, calc((100vw - 1180px) / 2));
}
.home-hero-overline {
  display: block;
  margin-bottom: 20px;
  color: #7f6640;
  font-size: .74rem;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.home-hero-copy h1 {
  margin: 0 0 26px;
  font-size: clamp(4.1rem, 7.25vw, 7.7rem);
  line-height: .86;
  letter-spacing: -.066em;
  text-transform: uppercase;
  text-wrap: balance;
}
.home-hero-copy > p {
  max-width: 560px;
  margin: 0;
  color: #4d4749;
  font-size: clamp(1.05rem, 1.45vw, 1.22rem);
  line-height: 1.68;
}
.home-hero-link {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  min-height: 52px;
  padding: 0 2px;
  border-bottom: 1px solid rgba(11,10,11,.45);
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.home-hero-link span { transition: transform var(--transition); }
.home-hero-link:hover span { transform: translateX(4px); }
.home-hero-specs {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-top: clamp(44px, 6vh, 72px);
  padding-top: 22px;
  border-top: 1px solid rgba(11,10,11,.16);
}
.home-hero-specs span {
  color: #777073;
  font-size: .72rem;
  line-height: 1.35;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.home-hero-specs strong {
  display: block;
  margin-bottom: 3px;
  color: var(--ink);
  font-size: 1.05rem;
  letter-spacing: -.02em;
  text-transform: none;
}
.home-hero-photo {
  position: relative;
  margin: 0;
  min-height: 640px;
  overflow: hidden;
  background: #d9d3c6;
}
.home-hero-photo img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 53% center;
}
.home-hero-photo::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(0,0,0,.05), transparent 28%), linear-gradient(0deg, rgba(0,0,0,.18), transparent 30%);
}
.home-hero-photo figcaption {
  position: absolute;
  z-index: 2;
  right: clamp(24px, 4vw, 54px);
  bottom: 28px;
  color: rgba(255,255,255,.92);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .13em;
  text-transform: uppercase;
}

/* Calm product fact bar */
.home-factbar {
  border-block: 1px solid var(--line);
  background: #fff;
}
.home-factbar-inner {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
}
.home-factbar span {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 72px;
  padding: 18px 22px;
  border-right: 1px solid var(--line);
  color: #5b5558;
  text-align: center;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.home-factbar span:last-child { border-right: 0; }

/* Cleaner product treatment */
.home-lineup { background: #fff; }
.home-v3 .product-intro { margin-bottom: 64px; }
.home-v3 .product-grid { gap: 1px; background: rgba(11,10,11,.11); border: 1px solid rgba(11,10,11,.11); }
.home-v3 .product-card {
  min-height: 590px;
  border: 0;
  border-radius: 0;
  background: #f8f7f4;
  padding: 26px 24px 28px;
  box-shadow: none;
  transition: background var(--transition);
}
.home-v3 .product-card:hover {
  transform: none;
  box-shadow: none;
  background: #fff;
}
.home-v3 .product-card::after {
  inset: auto 0 0 0;
  width: 100%;
  height: 4px;
  aspect-ratio: auto;
  border-radius: 0;
  background: var(--accent, var(--gold));
  opacity: 1;
  filter: none;
}
.home-v3 .product-card img {
  width: 82%;
  max-height: 425px;
  margin: 24px auto -42px;
  filter: drop-shadow(0 18px 18px rgba(0,0,0,.11));
}
.home-v3 .product-card h3 { font-size: 1.22rem; }
.home-v3 .product-card .card-link { border-bottom-color: rgba(11,10,11,.35); }

/* Lifestyle as editorial storytelling, not a tile wall */
.home-lifestyle { background: #f3efe7; }
.lifestyle-editorial-head {
  display: grid;
  grid-template-columns: .95fr 1.05fr;
  column-gap: 72px;
  align-items: end;
  margin-bottom: clamp(48px, 6vw, 76px);
}
.lifestyle-editorial-head .eyebrow { grid-column: 1 / -1; }
.lifestyle-editorial-head .h2 { margin-bottom: 0; }
.lifestyle-editorial-head .lead { margin: 0 0 7px; }
.lifestyle-feature {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(330px, .72fr);
  background: #fff;
}
.lifestyle-feature-media {
  position: relative;
  margin: 0;
  min-height: 660px;
  overflow: hidden;
}
.lifestyle-feature-media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 48%;
}
.lifestyle-feature-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(46px, 5vw, 76px);
}
.editorial-label {
  display: block;
  margin-bottom: 18px;
  color: #967748;
  font-size: .7rem;
  font-weight: 800;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.lifestyle-feature-copy h3,
.lifestyle-card-copy h3,
.city-moment-copy h3 {
  margin: 0 0 18px;
  font-size: clamp(2.1rem, 4vw, 4rem);
  line-height: .98;
  letter-spacing: -.045em;
  text-transform: uppercase;
}
.lifestyle-feature-copy p,
.lifestyle-card-copy p,
.city-moment-copy p {
  margin: 0;
  color: #5b5558;
  line-height: 1.68;
}
.editorial-link {
  display: inline-flex;
  align-self: flex-start;
  gap: 9px;
  margin-top: 26px;
  padding-bottom: 3px;
  border-bottom: 1px solid rgba(11,10,11,.35);
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.lifestyle-duo {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  margin-top: 24px;
}
.lifestyle-card {
  display: grid;
  grid-template-rows: minmax(420px, 58vw) auto;
  max-height: 850px;
  background: #fff;
}
.lifestyle-card figure {
  position: relative;
  margin: 0;
  min-height: 420px;
  overflow: hidden;
}
.lifestyle-card figure img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.lifestyle-card:first-child figure img { object-position: center 45%; }
.lifestyle-card:nth-child(2) figure img { object-position: center 38%; }
.lifestyle-card-copy { padding: 34px 36px 40px; }
.lifestyle-card-copy h3 { font-size: clamp(1.8rem, 3vw, 3rem); }
.city-moment {
  display: grid;
  grid-template-columns: .72fr 1.28fr;
  align-items: stretch;
  margin-top: 24px;
  background: #0d0c0d;
  color: #fff;
}
.city-moment figure {
  position: relative;
  margin: 0;
  min-height: 520px;
  overflow: hidden;
}
.city-moment figure img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 56%;
}
.city-moment-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(46px, 6vw, 92px);
}
.city-moment-copy h3 { color: #fff; }
.city-moment-copy p { color: rgba(255,255,255,.68); max-width: 600px; }
.city-moment .editorial-label { color: var(--gold-light); }

.home-wine-details { background: #fff; }
.home-v3 .wine-stat-grid { border-radius: 0; }
.home-v3 .wine-stat { min-height: 165px; }
.home-v3 .map-teaser { border-radius: 0; }
.home-v3 .map-pin { display: none; }
.home-v3 .cocktail-card { border-radius: 0; }
.home-v3 .cocktail-image { border-radius: 0; }

/* Keep the star / skyline asset atmospheric, not dominant */
.home-newsletter::before { opacity: .12; height: 48%; }
.home-v3 .site-footer {
  position: relative;
  overflow: hidden;
  padding-top: 104px;
}
.home-v3 .site-footer::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 76px;
  background: url("../img/skyline-stars.png?v=20260901142902") center 54% / 760px auto repeat-x;
  opacity: .12;
  pointer-events: none;
}
.home-v3 .site-footer > .container { position: relative; z-index: 1; }

@media (max-width: 1100px) {
  .home-hero-grid { grid-template-columns: minmax(380px, .9fr) 1.1fr; }
  .home-hero-copy-panel { padding-inline: 34px; }
  .home-hero-copy { margin-left: 0; }
  .lifestyle-feature { grid-template-columns: 1.35fr .8fr; }
}

@media (max-width: 900px) {
  .home-v3 .site-nav {
    background: rgba(248,245,239,.985);
  }
  .home-v3 .site-nav a { color: var(--ink); }
  .home-hero-grid { grid-template-columns: 1fr; }
  .home-hero-copy-panel { min-height: auto; padding: 72px var(--container); }
  .home-hero-copy { width: 100%; }
  .home-hero-photo { min-height: 680px; }
  .home-hero-photo img { object-position: 50% 44%; }
  .home-factbar-inner { grid-template-columns: repeat(2, 1fr); }
  .home-factbar span:nth-child(2) { border-right: 0; }
  .home-factbar span:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .lifestyle-editorial-head { grid-template-columns: 1fr; gap: 18px; }
  .lifestyle-feature { grid-template-columns: 1fr; }
  .lifestyle-feature-media { min-height: 600px; }
  .lifestyle-duo { grid-template-columns: 1fr; }
  .lifestyle-card { grid-template-rows: 560px auto; max-height: none; }
  .city-moment { grid-template-columns: 1fr 1fr; }
  .city-moment figure { min-height: 500px; }
}

@media (max-width: 620px) {
  .age-minimal-inner { width: min(100% - 28px, 560px); padding-inline: 10px; }
  .age-minimal-logo { width: 92px; margin-bottom: 26px; }
  .age-minimal-actions { flex-direction: column; }
  .age-minimal-actions .btn { width: 100%; }
  .home-hero-copy-panel { padding: 58px 24px 62px; }
  .home-hero-copy h1 { font-size: clamp(3.5rem, 18vw, 5.5rem); }
  .home-hero-specs { grid-template-columns: 1fr; gap: 11px; }
  .home-hero-specs span { padding-bottom: 11px; border-bottom: 1px solid rgba(11,10,11,.09); }
  .home-hero-photo { min-height: 510px; }
  .home-hero-photo img { object-position: 53% center; }
  .home-hero-photo figcaption { left: 20px; right: 20px; bottom: 20px; }
  .home-factbar-inner { grid-template-columns: 1fr; }
  .home-factbar span,
  .home-factbar span:nth-child(2) { border-right: 0; border-bottom: 1px solid var(--line); min-height: 60px; }
  .home-factbar span:last-child { border-bottom: 0; }
  .home-v3 .product-grid { grid-template-columns: 1fr; }
  .home-v3 .product-card { min-height: 560px; }
  .lifestyle-feature-media { min-height: 470px; }
  .lifestyle-feature-copy,
  .lifestyle-card-copy,
  .city-moment-copy { padding: 34px 24px 40px; }
  .lifestyle-card { grid-template-rows: 440px auto; }
  .lifestyle-duo { gap: 16px; margin-top: 16px; }
  .city-moment { grid-template-columns: 1fr; margin-top: 16px; }
  .city-moment figure { min-height: 430px; }
  .city-moment figure img { object-position: center 58%; }
}

/* v3 layout corrections after first render pass */
.home-hero-grid { grid-template-columns: minmax(520px, 1.05fr) minmax(0, .95fr); }
.home-hero-copy-panel {
  padding-left: max(34px, calc((100vw - 1180px) / 2));
  padding-right: clamp(34px, 5vw, 76px);
}
.home-hero-copy { margin-left: 0; }
.home-hero-copy h1 { font-size: clamp(4rem, 6.1vw, 6.55rem); }
@media (max-width: 1100px) {
  .home-hero-grid { grid-template-columns: 1fr 1fr; }
  .home-hero-copy-panel { padding-left: 34px; padding-right: 34px; }
}
@media (max-width: 900px) {
  .home-hero-grid { grid-template-columns: 1fr; }
  .home-hero-copy-panel { padding: 72px 30px; }
}
@media (max-width: 620px) {
  .home-hero-copy-panel { padding: 58px 24px 62px; }
}

/* ==============================================================
   Homepage v4 — more visual punch without returning to gimmicks
   ============================================================== */
@media (min-width: 901px) {
  .home-v3 .home-hero {
    position: relative;
    min-height: calc(100svh - var(--header-h));
    background: var(--ink);
  }
  .home-v3 .home-hero-grid {
    position: relative;
    display: block;
    min-height: calc(100svh - var(--header-h));
  }
  .home-v3 .home-hero-photo {
    position: absolute;
    inset: 0;
    min-height: 0;
    background: #9f927b;
  }
  .home-v3 .home-hero-photo img {
    object-position: 51% 48%;
  }
  .home-v3 .home-hero-photo::after {
    background:
      linear-gradient(90deg, rgba(11,10,11,.28) 0%, rgba(11,10,11,.08) 40%, rgba(11,10,11,.02) 72%),
      linear-gradient(0deg, rgba(11,10,11,.32) 0%, transparent 38%);
  }
  .home-v3 .home-hero-copy-panel {
    position: relative;
    z-index: 3;
    width: min(620px, calc(100% - 80px));
    min-height: 0;
    margin-left: max(40px, calc((100vw - 1180px) / 2));
    margin-top: clamp(54px, 7vh, 92px);
    margin-bottom: clamp(54px, 7vh, 92px);
    padding: clamp(48px, 5.2vw, 74px);
    align-items: center;
    background: rgba(248,245,239,.965);
    border-top: 6px solid var(--gold);
    box-shadow: 0 34px 90px rgba(0,0,0,.24);
    backdrop-filter: blur(8px);
  }
  .home-v3 .home-hero-copy {
    width: 100%;
    margin: 0;
  }
  .home-v3 .home-hero-copy h1 {
    font-size: clamp(4.5rem, 6.5vw, 7.2rem);
    line-height: .84;
    margin-bottom: 28px;
  }
  .home-v3 .home-hero-copy h1 span {
    display: block;
  }
  .home-v3 .home-hero-copy h1 .hero-life-line {
    color: #9b7740;
  }
  .home-v3 .home-hero-photo figcaption {
    right: max(30px, calc((100vw - 1180px) / 2));
    bottom: 30px;
  }
}

.home-v3 .hero-sugar-spec small {
  display: block;
  margin-top: 4px;
  color: #777073;
  font-size: .67rem;
  font-weight: 700;
  letter-spacing: .035em;
  text-transform: none;
  white-space: nowrap;
}
.home-v3 .hero-sugar-spec small b {
  color: var(--ink);
  font-weight: 900;
}

.home-v3 .home-factbar {
  position: relative;
  overflow: hidden;
  border: 0;
  background: var(--ink);
}
.home-v3 .home-factbar::before {
  content: "";
  position: absolute;
  inset: 0;
  background: url("../img/skyline-stars.png?v=20260901142902") center 62% / 920px auto repeat-x;
  opacity: .07;
  pointer-events: none;
}
.home-v3 .home-factbar-inner { position: relative; z-index: 1; }
.home-v3 .home-factbar span {
  min-height: 82px;
  color: rgba(255,255,255,.9);
  border-right-color: rgba(255,255,255,.14);
}

.home-v3 .product-intro {
  display: grid;
  grid-template-columns: minmax(0, .95fr) minmax(320px, .8fr);
  column-gap: clamp(44px, 7vw, 100px);
  align-items: end;
}
.home-v3 .product-intro .eyebrow { grid-column: 1 / -1; }
.home-v3 .product-intro .h2 { margin-bottom: 0; }
.home-v3 .product-intro .lead { margin: 0 0 7px; }

.home-v3 .product-card {
  min-height: 610px;
  padding-top: 28px;
}
.home-v3 .product-card .product-meta {
  min-height: 68px;
  align-items: flex-start;
}
.home-v3 .product-card h3 {
  font-size: 1.3rem;
  line-height: 1.08;
}
.home-v3 .product-card img {
  width: 126%;
  max-width: none;
  max-height: 438px;
  margin: 12px -13% -35px;
  align-self: center;
  filter: drop-shadow(0 22px 22px rgba(0,0,0,.13));
}
.home-v3 .product-card.original { background: linear-gradient(155deg, #fbf5e9 0%, #f8f7f4 55%); }
.home-v3 .product-card.hugo { background: linear-gradient(155deg, #edf8f2 0%, #f8f7f4 55%); }
.home-v3 .product-card.mango { background: linear-gradient(155deg, #fff5df 0%, #f8f7f4 55%); }
.home-v3 .product-card.kir { background: linear-gradient(155deg, #f9edf1 0%, #f8f7f4 55%); }
.home-v3 .product-card:hover { background-color: #fff; }

.home-v3 .home-wine-details {
  position: relative;
  overflow: hidden;
}
.home-v3 .home-wine-details::before {
  content: "";
  position: absolute;
  width: 420px;
  height: 420px;
  right: -210px;
  top: -205px;
  border: 1px solid rgba(185,148,88,.24);
  border-radius: 50%;
  box-shadow: 0 0 0 52px rgba(185,148,88,.035), 0 0 0 104px rgba(185,148,88,.022);
  pointer-events: none;
}
.home-v3 .wine-stat-grid {
  box-shadow: 0 18px 44px rgba(11,10,11,.06);
}
.home-v3 .wine-stat:nth-child(3) strong { color: #9b7740; }
.home-v3 .wine-stat:nth-child(4) strong { color: var(--hugo); }

@media (max-width: 900px) {
  .home-v3 .home-hero-copy h1 span { display: block; }
  .home-v3 .home-hero-copy h1 .hero-life-line { color: #9b7740; }
  .home-v3 .home-factbar span { border-color: rgba(255,255,255,.14); }
  .home-v3 .product-intro { grid-template-columns: 1fr; gap: 18px; }
  .home-v3 .product-intro .eyebrow { grid-column: auto; }
  .home-v3 .product-card img { width: 112%; margin-left: -6%; margin-right: -6%; }
}

@media (max-width: 620px) {
  .home-v3 .hero-sugar-spec small { white-space: normal; }
  .home-v3 .home-hero-copy h1 .hero-life-line { color: #8f6f3f; }
  .home-v3 .product-card .product-meta { min-height: 62px; }
  .home-v3 .product-card img { width: 118%; margin-left: -9%; margin-right: -9%; }
}

/* ==============================================================
   Homepage v4.1 — hero placement + Kir alignment
   ============================================================== */
@media (min-width: 901px) {
  .home-v3 .home-hero-copy-panel {
    width: min(560px, calc(100% - 80px));
    margin-left: auto;
    margin-right: max(40px, calc((100vw - 1180px) / 2));
    background: rgba(248,245,239,.88);
    box-shadow: 0 30px 78px rgba(0,0,0,.18);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
  }
  .home-v3 .home-hero-photo img {
    object-position: 47% 48%;
  }
  .home-v3 .home-hero-photo::after {
    background:
      linear-gradient(270deg, rgba(11,10,11,.08) 0%, rgba(11,10,11,.015) 38%, transparent 62%),
      linear-gradient(0deg, rgba(11,10,11,.25) 0%, transparent 34%);
  }
}

/* Kir artwork has the same canvas as the other cans, but its visible can sits
   slightly higher inside that canvas. Offset only the artwork so all four
   can tops and bottoms read on one baseline. */
.home-v3 .product-card.kir img {
  transform: translateY(16px);
}

@media (max-width: 900px) {
  .home-v3 .product-card.kir img {
    transform: translateY(10px);
  }
}

/* ==============================================================
   Homepage v4.1 — hero moved clear of people + Kir alignment fix
   ============================================================== */
@media (min-width: 901px) {
  .home-v3 .home-hero-photo img {
    object-position: 41% 48%;
  }

  .home-v3 .home-hero-copy-panel {
    width: min(560px, calc(100% - 64px));
    margin-left: auto;
    margin-right: max(32px, calc((100vw - 1180px) / 2));
    margin-top: clamp(42px, 6vh, 74px);
    margin-bottom: clamp(42px, 6vh, 74px);
    padding: clamp(42px, 4.6vw, 68px);
    background: rgba(248,245,239,.84);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
  }

  .home-v3 .home-hero-copy h1 {
    font-size: clamp(4.15rem, 5.85vw, 6.35rem);
  }
}

.home-v3 .product-card {
  display: grid;
  grid-template-rows: minmax(78px, auto) minmax(360px, 1fr) auto;
  align-items: start;
}

.home-v3 .product-card .product-meta {
  min-height: 0;
}

.home-v3 .product-card img {
  align-self: end;
  justify-self: center;
}

.home-v3 .product-card.kir img {
  width: 129%;
  margin-left: -14.5%;
  margin-right: -14.5%;
  transform: translateY(10px);
}

@media (max-width: 620px) {
  .home-v3 .product-card {
    grid-template-rows: minmax(66px, auto) minmax(320px, 1fr) auto;
  }
  .home-v3 .product-card.kir img {
    width: 121%;
    margin-left: -10.5%;
    margin-right: -10.5%;
    transform: translateY(8px);
  }
}


/* ==============================================================
   Homepage v4.2 — hero repositioning + stronger endline emphasis
   ============================================================== */
@media (min-width: 901px) {
  .home-v3 .home-hero-photo img {
    object-position: 61% 48%;
  }

  .home-v3 .home-hero-copy-panel {
    width: min(510px, calc(100% - 32px));
    margin-left: auto;
    margin-right: max(8px, calc((100vw - 1180px) / 2));
    margin-top: clamp(34px, 5.2vh, 64px);
    margin-bottom: clamp(34px, 5.2vh, 64px);
    padding: clamp(38px, 4.2vw, 60px);
    background: rgba(248,245,239,.76);
    box-shadow: 0 26px 66px rgba(0,0,0,.16);
    backdrop-filter: blur(13px);
    -webkit-backdrop-filter: blur(13px);
  }

  .home-v3 .home-hero-copy h1 {
    font-size: clamp(3.85rem, 5.2vw, 5.9rem);
    margin-bottom: 24px;
  }

  .home-v3 .home-hero-copy > p {
    font-size: clamp(1rem, 1.18vw, 1.1rem);
    line-height: 1.62;
  }
}

.home-v3 .home-hero-specs {
  gap: 14px;
  margin-top: clamp(34px, 4.4vh, 48px);
  padding-top: 18px;
}

.home-v3 .home-hero-specs span {
  font-size: .63rem;
  line-height: 1.28;
  letter-spacing: .045em;
}

.home-v3 .home-hero-specs strong {
  font-size: .95rem;
  margin-bottom: 2px;
}

.home-v3 .hero-sugar-spec small {
  margin-top: 3px;
  font-size: .58rem;
  line-height: 1.34;
  letter-spacing: .01em;
}

.home-v3 .home-hero-endline {
  margin: 22px 0 0;
  color: #9b7740;
  font-size: 1.08rem;
  font-weight: 900;
  line-height: 1.2;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.home-v3 .home-hero-photo figcaption {
  display: none;
}

@media (max-width: 900px) {
  .home-v3 .home-hero-endline {
    font-size: .94rem;
    letter-spacing: .11em;
  }
}


/* ==============================================================
   Homepage v4.3 — right-edge hero card + large external endline
   ============================================================== */
@media (min-width: 901px) {
  .home-v3 .home-hero-photo img {
    object-position: 66% 48%;
  }

  .home-v3 .home-hero-copy-panel {
    width: min(510px, calc(100% - 24px));
    margin-left: auto;
    margin-right: 12px;
    margin-top: clamp(34px, 5vh, 62px);
    margin-bottom: clamp(88px, 10vh, 126px);
    padding: clamp(38px, 4.1vw, 58px);
    background: rgba(248,245,239,.75);
    box-shadow: 0 24px 62px rgba(0,0,0,.15);
    backdrop-filter: blur(13px);
    -webkit-backdrop-filter: blur(13px);
  }

  .home-v3 .home-hero-photo figcaption {
    display: block;
    right: clamp(24px, 3vw, 46px);
    bottom: clamp(24px, 3.2vh, 38px);
    max-width: min(720px, 72vw);
    color: #fff;
    font-size: clamp(1.65rem, 2.15vw, 2.25rem);
    font-weight: 900;
    line-height: 1.05;
    letter-spacing: .055em;
    text-align: right;
    text-shadow: 0 2px 18px rgba(0,0,0,.28);
    text-transform: uppercase;
  }
}

.home-v3 .home-hero-specs {
  gap: 18px;
  margin-top: clamp(34px, 4.4vh, 48px);
  padding-top: 20px;
}

.home-v3 .home-hero-specs span {
  font-size: .94rem;
  line-height: 1.25;
  letter-spacing: .035em;
}

.home-v3 .home-hero-specs strong {
  margin-bottom: 3px;
  font-size: 1.42rem;
  line-height: 1;
}

.home-v3 .hero-sugar-spec small {
  margin-top: 5px;
  font-size: .86rem;
  line-height: 1.3;
  letter-spacing: 0;
}

.home-v3 .home-hero-endline {
  display: none !important;
}

@media (max-width: 900px) {
  .home-v3 .home-hero-photo figcaption {
    display: block;
    font-size: clamp(1.15rem, 4vw, 1.55rem);
    letter-spacing: .05em;
  }
  .home-v3 .home-hero-specs span { font-size: .8rem; }
  .home-v3 .home-hero-specs strong { font-size: 1.2rem; }
  .home-v3 .hero-sugar-spec small { font-size: .72rem; }
}

/* ==============================================================
   Homepage v4.4 — 112px hero inset + one-line external endline
   ============================================================== */
@media (min-width: 901px) {
  .home-v3 .home-hero-copy-panel {
    margin-right: 112px;
  }

  .home-v3 .home-hero-photo figcaption {
    right: clamp(28px, 3vw, 48px);
    max-width: none;
    width: auto;
    white-space: nowrap;
    font-size: clamp(1.55rem, 2vw, 2.1rem);
  }
}

/* ==============================================================
   Homepage v4.5 — compact fact band + larger labels
   ============================================================== */
.home-v3 .home-factbar span {
  min-height: 34px;
  padding: 5px 14px;
  font-size: 1.08rem;
  line-height: 1.08;
  letter-spacing: .07em;
}

@media (max-width: 900px) {
  .home-v3 .home-factbar span {
    min-height: 44px;
    padding: 8px 12px;
    font-size: .92rem;
  }
}

/* ==============================================================
   Homepage v4.6 — explicit desktop fact-band height reduction
   ============================================================== */
@media (min-width: 901px) {
  .home-v3 .home-factbar {
    height: 132px;
    min-height: 132px;
  }

  .home-v3 .home-factbar-inner {
    height: 100%;
    align-items: stretch;
  }

  .home-v3 .home-factbar span {
    height: 100%;
    min-height: 0;
    padding: 0 18px;
    display: flex;
    align-items: center;
    justify-content: center;
  }
}

/* ==============================================================
   Homepage v4.7 — hero height correction (remove dead black space)
   ============================================================== */
@media (min-width: 901px) {
  .home-v3 .home-hero {
    min-height: 0;
    height: auto;
    background: #9f927b;
  }

  .home-v3 .home-hero-grid {
    min-height: 720px;
    height: auto;
    padding: 36px 0 78px;
    overflow: hidden;
  }

  .home-v3 .home-hero-photo {
    inset: 0;
    height: 100%;
  }

  .home-v3 .home-hero-copy-panel {
    margin-top: 0;
    margin-bottom: 0;
  }

  .home-v3 .home-hero-photo figcaption {
    bottom: 26px;
  }
}

@media (min-width: 1500px) {
  .home-v3 .home-hero-grid {
    min-height: 760px;
  }
}


/* ==============================================================
   Homepage v4.8 — lineup, mobile nav, cocktail + lifestyle balance
   ============================================================== */

/* Lock every wine name to the same two-line rhythm and make sugar the
   primary callout while keeping / 355 mL compact on one line. */
.home-v3 .product-card .product-meta {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 14px;
  align-items: start;
  min-height: 74px;
}

.home-v3 .product-card h3 {
  max-width: none;
  min-height: 2.18em;
  margin: 0;
  line-height: 1.06;
}

.home-v3 .product-card h3 > span {
  display: block;
  white-space: nowrap;
}

.home-v3 .product-card .sugar {
  min-width: 112px;
  text-align: right;
  white-space: nowrap;
}

.home-v3 .product-card .sugar strong {
  display: flex;
  align-items: baseline;
  justify-content: flex-end;
  gap: 6px;
  font-size: 1.72rem;
  line-height: .95;
  letter-spacing: -.025em;
}

.home-v3 .product-card .sugar .sugar-word {
  font-size: .88rem;
  line-height: 1;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.home-v3 .product-card .sugar small {
  display: block;
  margin-top: 5px;
  font-size: .7rem;
  font-weight: 800;
  line-height: 1;
  letter-spacing: .07em;
  text-transform: uppercase;
  white-space: nowrap;
}

/* Desktop hero caption follows the exact same 112px right guide as the card. */
@media (min-width: 901px) {
  .home-v3 .home-hero-photo figcaption {
    right: 112px;
  }

  /* Equal image and copy geometry on the two lifestyle cards. */
  .home-v3 .lifestyle-duo {
    align-items: stretch;
  }

  .home-v3 .lifestyle-card {
    grid-template-rows: clamp(470px, 35vw, 600px) 1fr;
    max-height: none;
    min-height: 770px;
  }

  .home-v3 .lifestyle-card figure {
    height: 100%;
    min-height: 0;
  }

  .home-v3 .lifestyle-card-copy {
    display: grid;
    grid-template-rows: auto minmax(2.15em, auto) 1fr;
    align-content: start;
    min-height: 245px;
  }

  .home-v3 .lifestyle-card-copy h3,
  .home-v3 .lifestyle-card-copy p {
    margin-bottom: 0;
  }
}

/* The fourth cocktail is specifically for the 2-column/tablet/mobile layout. */
.home-v3 .mobile-balance-card {
  display: none;
}

@media (max-width: 1080px) {
  .home-v3 .mobile-balance-card {
    display: block;
  }
}

/* Give the open mobile menu a real branded surface instead of letting the
   hero remain visible behind the navigation. */
@media (max-width: 820px) {
  .home-v3 .site-nav {
    z-index: 1200;
    min-height: calc(100dvh - var(--header-h));
    overflow-y: auto;
    background-color: #0b0a0b;
    background-image:
      linear-gradient(rgba(11,10,11,.95), rgba(11,10,11,.95)),
      url("../img/skyline-stars.png?v=20260901142902");
    background-position: center, center bottom;
    background-size: auto, 900px auto;
    background-repeat: no-repeat, repeat-x;
    box-shadow: 0 24px 60px rgba(0,0,0,.28);
  }

  .home-v3 .site-nav a {
    color: #fff;
  }

  .home-v3 .site-nav a::after {
    background: var(--gold-light);
  }
}

@media (max-width: 620px) {
  .home-v3 .product-card .product-meta {
    min-height: 68px;
  }

  .home-v3 .product-card .sugar strong {
    font-size: 1.55rem;
  }

  .home-v3 .product-card .sugar .sugar-word {
    font-size: .8rem;
  }
}


/* ==============================================================
   V4.11 — wines page stacking + global mobile menu hardening
   ============================================================== */

/* Keep the decorative wines/page hero artwork inside the hero. Without an
   explicit positioning context the pseudo-elements can paint into the first
   product section and intercept pointer events. */
.page-hero {
  position: relative;
  isolation: isolate;
  z-index: 0;
}
.page-hero::before,
.page-hero::after {
  z-index: 0;
  pointer-events: none;
}
.page-hero .container {
  position: relative;
  z-index: 2;
}
.wines-page .section-sm,
.wines-page .wine-feature,
.wines-page .wine-copy,
.wines-page .wine-copy .button-row {
  position: relative;
  z-index: 1;
}
.wines-page .wine-copy .button-row a {
  position: relative;
  z-index: 3;
  pointer-events: auto;
}

/* Use an unused lifestyle image in the final wines-page moment and crop it
   around the people/dog rather than the large area of sky in the source. */
.wines-page .wines-moment-photo img {
  object-position: center 67%;
}

/* Mobile navigation must be an opaque application surface on every page,
   not only the homepage. */
@media (max-width: 820px) {
  body.menu-open .site-header,
  body.menu-open .site-header.is-scrolled,
  body.menu-open:not(.home) .site-header {
    z-index: 2200;
    background: #0b0a0b !important;
    color: #fff !important;
    box-shadow: 0 1px 0 rgba(255,255,255,.1);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }

  body.menu-open .menu-toggle {
    color: #fff !important;
  }

  body.menu-open .site-nav {
    position: fixed;
    z-index: 2100;
    inset: var(--header-h) 0 0 0;
    width: 100%;
    min-height: calc(100dvh - var(--header-h));
    padding: 44px 30px 70px;
    overflow-y: auto;
    transform: translateX(0) !important;
    background-color: #0b0a0b !important;
    background-image:
      linear-gradient(rgba(11,10,11,.94), rgba(11,10,11,.94)),
      url("../img/skyline-stars.png?v=20260901142902") !important;
    background-position: center, center bottom !important;
    background-size: auto, 900px auto !important;
    background-repeat: no-repeat, repeat-x !important;
    box-shadow: none;
    isolation: isolate;
  }

  body.menu-open .site-nav::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: #0b0a0b;
  }

  body.menu-open .site-nav a {
    color: #fff !important;
  }

  body.menu-open .site-nav a::after {
    background: var(--gold-light) !important;
  }
}

/* ==============================================================
   V4.12 — homepage heading alignment + expanded details grid
   ============================================================== */

/* Match the left-justified editorial heading treatment used in the
   Elevated Leisure section. Keep the supporting copy in the right column. */
.home-v3 .home-lineup .product-intro,
.home-v3 .home-cocktails .product-intro {
  max-width: none;
  margin: 0 0 64px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, .82fr);
  column-gap: clamp(48px, 8vw, 112px);
  align-items: center;
  text-align: left;
}

.home-v3 .home-lineup .product-intro .eyebrow,
.home-v3 .home-cocktails .product-intro .eyebrow {
  grid-column: 1 / -1;
  justify-self: start;
  margin-left: 0;
  margin-right: 0;
  text-align: left;
}

.home-v3 .home-lineup .product-intro .h2,
.home-v3 .home-cocktails .product-intro .h2 {
  justify-self: start;
  width: min(100%, 610px);
  margin: 0;
  text-align: left;
  text-wrap: balance;
}

.home-v3 .home-lineup .product-intro .lead,
.home-v3 .home-cocktails .product-intro .lead {
  justify-self: start;
  width: min(100%, 500px);
  margin: 0;
  text-align: left;
}

/* Expanded product-detail facts. This is ready for seven stat cards:
   7%, 355 mL, 0g, 3g, Gluten Free, Recycled Aluminum Can,
   and Niagara/Ontario Grown Grapes. */
.home-v3 .home-wine-details .wine-stat-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  align-self: start;
  overflow: hidden;
  border: 1px solid rgba(11,10,11,.12);
  border-radius: 0;
  background: rgba(11,10,11,.12);
  box-shadow: 0 18px 44px rgba(11,10,11,.06);
}

.home-v3 .home-wine-details .wine-stat {
  min-height: 154px;
  padding: 26px 24px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: #fff;
}

.home-v3 .home-wine-details .wine-stat strong {
  display: block;
  margin: 0;
  font-size: clamp(2.25rem, 3.8vw, 3.6rem);
  line-height: .95;
  letter-spacing: -.055em;
}

.home-v3 .home-wine-details .wine-stat span {
  display: block;
  margin-top: 12px;
  color: var(--muted);
  font-size: .82rem;
  line-height: 1.45;
}

.home-v3 .home-wine-details .wine-stat:nth-child(3) strong {
  color: #9b7740;
}

.home-v3 .home-wine-details .wine-stat:nth-child(4) strong {
  color: var(--hugo);
}

.home-v3 .home-wine-details .wine-stat:nth-child(5) strong {
  color: var(--ink);
}

.home-v3 .home-wine-details .wine-stat:nth-child(6) strong {
  color: #9b7740;
}

.home-v3 .home-wine-details .wine-stat:nth-child(7) {
  grid-column: span 2;
}

.home-v3 .home-wine-details .wine-stat:nth-child(7) strong {
  color: var(--hugo);
}

@media (max-width: 900px) {
  .home-v3 .home-lineup .product-intro,
  .home-v3 .home-cocktails .product-intro {
    grid-template-columns: 1fr;
    gap: 22px;
    margin-bottom: 48px;
  }

  .home-v3 .home-lineup .product-intro .eyebrow,
  .home-v3 .home-cocktails .product-intro .eyebrow {
    grid-column: auto;
  }

  .home-v3 .home-lineup .product-intro .lead,
  .home-v3 .home-cocktails .product-intro .lead {
    max-width: 620px;
  }

  .home-v3 .home-wine-details .wine-stat-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .home-v3 .home-wine-details .wine-stat:nth-child(7) {
    grid-column: span 2;
  }
}

@media (max-width: 560px) {
  .home-v3 .home-lineup .product-intro,
  .home-v3 .home-cocktails .product-intro {
    gap: 18px;
    margin-bottom: 38px;
  }

  .home-v3 .home-lineup .product-intro .h2,
  .home-v3 .home-cocktails .product-intro .h2 {
    width: 100%;
  }

  .home-v3 .home-wine-details .wine-stat {
    min-height: 132px;
    padding: 22px 18px;
  }

  .home-v3 .home-wine-details .wine-stat strong {
    font-size: clamp(2rem, 11vw, 3rem);
  }

  .home-v3 .home-wine-details .wine-stat span {
    font-size: .75rem;
  }
}


/* ==============================================================
   FINAL HOMEPAGE ALIGNMENT + DETAILS OVERRIDES
   ============================================================== */

/* The lineup and cocktails intros should use the same left-aligned editorial
   rhythm as the Elevated Leisure section. Earlier rules inherited the base
   .product-intro text-align:center, so explicitly reset every child here. */
.home-v3 .home-lineup .product-intro,
.home-v3 .home-cocktails .product-intro {
  max-width: none;
  margin: 0 0 64px;
  display: grid;
  grid-template-columns: minmax(0, .95fr) minmax(320px, .8fr);
  column-gap: clamp(44px, 7vw, 100px);
  align-items: end;
  justify-items: start;
  text-align: left;
}

.home-v3 .home-lineup .product-intro .eyebrow,
.home-v3 .home-cocktails .product-intro .eyebrow {
  grid-column: 1 / -1;
  justify-self: start;
  text-align: left;
}

.home-v3 .home-lineup .product-intro .h2,
.home-v3 .home-lineup .product-intro .lead,
.home-v3 .home-cocktails .product-intro .h2,
.home-v3 .home-cocktails .product-intro .lead {
  justify-self: start;
  text-align: left;
  margin-left: 0;
  margin-right: 0;
}

.home-v3 .home-lineup .product-intro .h2,
.home-v3 .home-cocktails .product-intro .h2 {
  margin-bottom: 0;
}

.home-v3 .home-lineup .product-intro .lead,
.home-v3 .home-cocktails .product-intro .lead {
  max-width: 34rem;
  margin-bottom: 7px;
}

/* Ensure the gold lead-in rule appears consistently on editorial eyebrows,
   including Elevated Leisure. */
.home-v3 .lifestyle-editorial-head .eyebrow,
.home-v3 .home-lineup .product-intro .eyebrow,
.home-v3 .home-cocktails .product-intro .eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

.home-v3 .lifestyle-editorial-head .eyebrow::before,
.home-v3 .home-lineup .product-intro .eyebrow::before,
.home-v3 .home-cocktails .product-intro .eyebrow::before {
  content: "";
  display: block;
  flex: 0 0 32px;
  width: 32px;
  height: 1px;
  background: currentColor;
}

/* Details section: give the copy a little less width and let the seven facts
   form a balanced 4-over-3 grid. */
.home-v3 .home-wine-details .split {
  grid-template-columns: minmax(330px, .78fr) minmax(0, 1.22fr);
  gap: clamp(44px, 6vw, 76px);
  align-items: center;
}

.home-v3 .home-wine-details .wine-stat-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 1px;
  overflow: hidden;
  border: 1px solid rgba(11,10,11,.12);
  background: rgba(11,10,11,.12);
  box-shadow: 0 18px 44px rgba(11,10,11,.06);
}

.home-v3 .home-wine-details .wine-stat {
  grid-column: span 3;
  min-height: 158px;
  padding: 24px 20px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: #fff;
}

.home-v3 .home-wine-details .wine-stat:nth-child(n+5) {
  grid-column: span 4;
}

.home-v3 .home-wine-details .wine-stat strong {
  font-size: clamp(2rem, 3.2vw, 3.35rem);
  line-height: .95;
}

.home-v3 .home-wine-details .wine-stat span {
  margin-top: 10px;
  font-size: .78rem;
  line-height: 1.45;
}

.home-v3 .home-wine-details .wine-stat.word-stat strong {
  font-size: clamp(1.25rem, 2vw, 1.85rem);
  line-height: 1.02;
  letter-spacing: -.035em;
  text-transform: uppercase;
}

.home-v3 .home-wine-details .wine-stat:nth-child(3) strong { color: #9b7740; }
.home-v3 .home-wine-details .wine-stat:nth-child(4) strong { color: var(--hugo); }
.home-v3 .home-wine-details .wine-stat:nth-child(5) strong { color: var(--ink); }
.home-v3 .home-wine-details .wine-stat:nth-child(6) strong { color: #7f6640; }
.home-v3 .home-wine-details .wine-stat:nth-child(7) strong { color: var(--kir); }

@media (max-width: 900px) {
  .home-v3 .home-lineup .product-intro,
  .home-v3 .home-cocktails .product-intro {
    grid-template-columns: 1fr;
    gap: 18px;
    text-align: left;
  }

  .home-v3 .home-lineup .product-intro .eyebrow,
  .home-v3 .home-cocktails .product-intro .eyebrow {
    grid-column: auto;
  }

  .home-v3 .home-wine-details .split {
    grid-template-columns: 1fr;
  }

  .home-v3 .home-wine-details .wine-stat-grid {
    grid-template-columns: repeat(2, minmax(0,1fr));
  }

  .home-v3 .home-wine-details .wine-stat,
  .home-v3 .home-wine-details .wine-stat:nth-child(n+5) {
    grid-column: auto;
  }

  .home-v3 .home-wine-details .wine-stat:last-child {
    grid-column: 1 / -1;
  }
}

@media (max-width: 560px) {
  .home-v3 .home-wine-details .wine-stat-grid {
    grid-template-columns: 1fr 1fr;
  }

  .home-v3 .home-wine-details .wine-stat {
    min-height: 136px;
    padding: 20px 16px;
  }

  .home-v3 .home-wine-details .wine-stat:last-child {
    grid-column: 1 / -1;
  }
}
/* ==============================================================
   V4.13 — guaranteed eyebrow rules + readable seven-stat layout
   ============================================================== */

/* These three editorial headings sit inside CSS grid layouts. Use an
   absolutely-positioned rule instead of relying on the generic flex
   pseudo-element so the gold line is always visible. */
.home-v3 .lifestyle-editorial-head .eyebrow,
.home-v3 .home-lineup .product-intro .eyebrow,
.home-v3 .home-cocktails .product-intro .eyebrow {
  position: relative;
  display: inline-block;
  width: max-content;
  padding-left: 44px;
  overflow: visible;
}

.home-v3 .lifestyle-editorial-head .eyebrow::before,
.home-v3 .home-lineup .product-intro .eyebrow::before,
.home-v3 .home-cocktails .product-intro .eyebrow::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 32px;
  height: 1px;
  margin: 0;
  background: var(--gold);
  transform: translateY(-50%);
}

/* Give the seven facts more horizontal room. The first four stay compact;
   the bottom three each receive one third of the full stats column. */
.home-v3 .home-wine-details .split {
  grid-template-columns: minmax(300px, .62fr) minmax(0, 1.38fr);
  gap: clamp(42px, 5vw, 64px);
  align-items: center;
}

.home-v3 .home-wine-details .wine-stat-grid {
  width: 100%;
  grid-template-columns: repeat(12, minmax(0, 1fr));
}

.home-v3 .home-wine-details .wine-stat {
  grid-column: span 3;
  min-width: 0;
  min-height: 158px;
  padding: 24px 20px;
  overflow: visible;
}

.home-v3 .home-wine-details .wine-stat:nth-child(n+5) {
  grid-column: span 4;
  min-height: 178px;
  padding: 26px 22px;
}

.home-v3 .home-wine-details .wine-stat.word-stat strong {
  max-width: 100%;
  font-size: clamp(1.12rem, 1.55vw, 1.5rem);
  line-height: 1.08;
  letter-spacing: -.025em;
  text-transform: none;
  white-space: normal;
  overflow-wrap: normal;
  word-break: normal;
}

.home-v3 .home-wine-details .wine-stat.word-stat span {
  font-size: .76rem;
  line-height: 1.42;
}

@media (max-width: 1050px) {
  .home-v3 .home-wine-details .split {
    grid-template-columns: 1fr;
  }

  .home-v3 .home-wine-details .wine-stat-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .home-v3 .home-wine-details .wine-stat,
  .home-v3 .home-wine-details .wine-stat:nth-child(n+5) {
    grid-column: auto;
    min-height: 145px;
  }

  .home-v3 .home-wine-details .wine-stat:last-child {
    grid-column: 1 / -1;
  }
}

@media (max-width: 560px) {
  .home-v3 .lifestyle-editorial-head .eyebrow,
  .home-v3 .home-lineup .product-intro .eyebrow,
  .home-v3 .home-cocktails .product-intro .eyebrow {
    padding-left: 38px;
  }

  .home-v3 .lifestyle-editorial-head .eyebrow::before,
  .home-v3 .home-lineup .product-intro .eyebrow::before,
  .home-v3 .home-cocktails .product-intro .eyebrow::before {
    width: 27px;
  }

  .home-v3 .home-wine-details .wine-stat-grid {
    grid-template-columns: 1fr 1fr;
  }

  .home-v3 .home-wine-details .wine-stat,
  .home-v3 .home-wine-details .wine-stat:nth-child(n+5) {
    min-height: 132px;
    padding: 20px 16px;
  }

  .home-v3 .home-wine-details .wine-stat.word-stat strong {
    font-size: 1.05rem;
  }
}

/* ==============================================================
   V4.14 — definitive editorial rules, seven-stat fit, reversed logo
   ============================================================== */

/* Do not rely on ::before inside the editorial CSS grids. Paint the gold
   rule as part of the eyebrow background so it cannot disappear. */
.home-v3 .home-lineup .product-intro .eyebrow,
.home-v3 .lifestyle-editorial-head .eyebrow,
.home-v3 .home-cocktails .product-intro .eyebrow {
  display: inline-block !important;
  position: relative !important;
  width: max-content !important;
  padding-left: 44px !important;
  background-image: linear-gradient(var(--gold), var(--gold)) !important;
  background-repeat: no-repeat !important;
  background-position: left 50% !important;
  background-size: 32px 1px !important;
  text-align: left !important;
}

.home-v3 .home-lineup .product-intro .eyebrow::before,
.home-v3 .lifestyle-editorial-head .eyebrow::before,
.home-v3 .home-cocktails .product-intro .eyebrow::before {
  display: none !important;
  content: none !important;
}

/* Keep the Lineup and Cocktails intros on the same left-aligned editorial
   rhythm as Elevated Leisure. */
.home-v3 .home-lineup .product-intro,
.home-v3 .home-cocktails .product-intro {
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  text-align: left !important;
}

.home-v3 .home-lineup .product-intro .h2,
.home-v3 .home-lineup .product-intro .lead,
.home-v3 .home-cocktails .product-intro .h2,
.home-v3 .home-cocktails .product-intro .lead {
  text-align: left !important;
  justify-self: start !important;
}

/* Give the seven details more room. Top row remains four compact facts;
   lower row is three equal cards with word-sized type rather than stat type. */
.home-v3 .home-wine-details .split {
  grid-template-columns: minmax(285px, .52fr) minmax(0, 1.48fr) !important;
  gap: clamp(36px, 4vw, 54px) !important;
  align-items: center !important;
}

.home-v3 .home-wine-details .wine-stat-grid {
  width: 100% !important;
  display: grid !important;
  grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
  gap: 1px !important;
  overflow: hidden !important;
}

.home-v3 .home-wine-details .wine-stat {
  grid-column: span 3 !important;
  min-width: 0 !important;
  min-height: 150px !important;
  padding: 22px 18px !important;
  overflow: hidden !important;
}

.home-v3 .home-wine-details .wine-stat:nth-child(n+5) {
  grid-column: span 4 !important;
  min-height: 165px !important;
  padding: 24px 22px !important;
}

.home-v3 .home-wine-details .wine-stat.word-stat strong {
  display: block !important;
  max-width: 100% !important;
  font-size: clamp(1.05rem, 1.35vw, 1.38rem) !important;
  line-height: 1.08 !important;
  letter-spacing: -.02em !important;
  text-transform: none !important;
  white-space: normal !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
}

.home-v3 .home-wine-details .wine-stat.word-stat span {
  margin-top: 10px !important;
  font-size: .74rem !important;
  line-height: 1.4 !important;
}

/* Reversed logo supplied for every dark header/menu/footer surface. The
   normal dark logo remains on the homepage cream header. */
body:not(.home) .site-header .brand,
body.menu-open .site-header .brand {
  width: 64px;
  height: 64px;
  background: url("../img/logo-White.webp?v=20260901142902") center / contain no-repeat;
}

body:not(.home) .site-header .brand img,
body.menu-open .site-header .brand img {
  opacity: 0 !important;
}

.site-footer .footer-brand img {
  display: none !important;
}

.site-footer .footer-brand::before {
  content: "";
  display: block;
  width: 110px;
  height: 120px;
  margin: 0 0 18px;
  background: url("../img/logo-White.webp?v=20260901142902") center / contain no-repeat;
}

@media (max-width: 1050px) {
  .home-v3 .home-wine-details .split {
    grid-template-columns: 1fr !important;
  }

  .home-v3 .home-wine-details .wine-stat-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .home-v3 .home-wine-details .wine-stat,
  .home-v3 .home-wine-details .wine-stat:nth-child(n+5) {
    grid-column: auto !important;
    min-height: 142px !important;
  }

  .home-v3 .home-wine-details .wine-stat:last-child {
    grid-column: 1 / -1 !important;
  }
}

@media (max-width: 820px) {
  body:not(.home) .site-header .brand,
  body.menu-open .site-header .brand {
    width: 54px;
    height: 54px;
  }
}

@media (max-width: 560px) {
  .home-v3 .home-lineup .product-intro .eyebrow,
  .home-v3 .lifestyle-editorial-head .eyebrow,
  .home-v3 .home-cocktails .product-intro .eyebrow {
    padding-left: 38px !important;
    background-size: 27px 1px !important;
  }

  .home-v3 .home-wine-details .wine-stat-grid {
    grid-template-columns: 1fr 1fr !important;
  }

  .home-v3 .home-wine-details .wine-stat,
  .home-v3 .home-wine-details .wine-stat:nth-child(n+5) {
    min-height: 128px !important;
    padding: 18px 14px !important;
  }

  .home-v3 .home-wine-details .wine-stat.word-stat strong {
    font-size: 1rem !important;
  }
}


/* ==============================================================
   V4.15 — right-aligned 85% detail grid + stacked feature labels
   ============================================================== */
@media (min-width: 1051px) {
  .home-v3 .home-wine-details .wine-stat-grid {
    width: 85% !important;
    max-width: 85% !important;
    margin-left: auto !important;
    margin-right: 0 !important;
    justify-self: end !important;
  }
}

.home-v3 .home-wine-details .wine-stat:nth-child(n+5) {
  min-height: 205px !important;
  padding: 26px 20px !important;
}

.home-v3 .home-wine-details .wine-stat.word-stat strong {
  display: block !important;
  max-width: none !important;
  margin: 0 !important;
  font-size: clamp(2.75rem, 1.35vw, 1.38rem) !important;
  line-height: .92 !important;
  letter-spacing: -.055em !important;
  font-weight: 800 !important;
  text-transform: none !important;
  white-space: normal !important;
  overflow: visible !important;
  word-break: keep-all !important;
  overflow-wrap: normal !important;
  hyphens: none !important;
}

.home-v3 .home-wine-details .wine-stat.word-stat span {
  margin-top: 16px !important;
  font-size: .78rem !important;
  line-height: 1.4 !important;
}

@media (max-width: 1050px) {
  .home-v3 .home-wine-details .wine-stat-grid {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  .home-v3 .home-wine-details .wine-stat:nth-child(n+5) {
    min-height: 175px !important;
  }
}

@media (max-width: 560px) {
  .home-v3 .home-wine-details .wine-stat.word-stat strong {
    font-size: clamp(1.65rem, 8vw, 2.3rem) !important;
  }

  .home-v3 .home-wine-details .wine-stat:nth-child(n+5) {
    min-height: 150px !important;
  }
}

/* ==============================================================
   V4.17 — non-home hero eyebrow rule + skyline text clearance
   ============================================================== */

/* Every interior page hero gets the same visible gold lead-in rule. Use a
   background rule rather than the generic pseudo-element so later layout
   rules cannot hide it. */
body:not(.home) .page-hero .eyebrow {
  display: inline-block !important;
  position: relative !important;
  width: max-content !important;
  padding-left: 44px !important;
  color: var(--gold-light) !important;
  background-image: linear-gradient(var(--gold-light), var(--gold-light)) !important;
  background-repeat: no-repeat !important;
  background-position: left 50% !important;
  background-size: 32px 1px !important;
}

body:not(.home) .page-hero .eyebrow::before {
  display: none !important;
  content: none !important;
}

/* Give the headline/paragraph a clean dark field before the skyline begins. */
body:not(.home) .page-hero {
  min-height: 660px !important;
  padding-top: calc(var(--header-h) + 92px) !important;
  padding-bottom: 165px !important;
}

body:not(.home) .page-hero::before {
  height: 64% !important;
  background-position: center bottom !important;
}

body:not(.home) .page-hero .container {
  max-width: 1180px;
}

body:not(.home) .page-hero p {
  position: relative;
  z-index: 3;
  max-width: 720px;
  margin-bottom: 0;
  color: rgba(255,255,255,.72);
}

@media (max-width: 820px) {
  body:not(.home) .page-hero {
    min-height: 590px !important;
    padding-top: calc(var(--header-h) + 76px) !important;
    padding-bottom: 132px !important;
  }

  body:not(.home) .page-hero::before {
    height: 58% !important;
  }

  body:not(.home) .page-hero .eyebrow {
    padding-left: 38px !important;
    background-size: 27px 1px !important;
  }
}

/* ==============================================================
   V4.18 — compact interior-page heroes on mobile
   ============================================================== */
@media (max-width: 820px) {
  body:not(.home) .page-hero {
    min-height: 0 !important;
    height: auto !important;
    padding: calc(var(--header-h) + 30px) 0 92px !important;
    align-items: flex-start !important;
    overflow: hidden !important;
  }

  /* Let the star field occupy the full hero so there is no dead black band
     above the skyline; the buildings remain anchored at the bottom. */
  body:not(.home) .page-hero::before {
    inset: 0 !important;
    height: 100% !important;
    background-position: center bottom !important;
    background-size: cover !important;
    opacity: .58 !important;
  }

  body:not(.home) .page-hero::after {
    width: 340px !important;
    height: 340px !important;
    right: -150px !important;
    top: -160px !important;
    opacity: .42 !important;
  }

  body:not(.home) .page-hero .container {
    width: min(100% - 34px, 720px) !important;
    max-width: none !important;
  }

  body:not(.home) .page-hero .eyebrow {
    margin: 0 0 9px !important;
    padding-left: 36px !important;
    background-size: 26px 1px !important;
    font-size: .67rem !important;
    line-height: 1.1 !important;
  }

  body:not(.home) .page-hero .h1 {
    margin: 7px 0 14px !important;
    max-width: 100% !important;
    font-size: clamp(2.25rem, 9.7vw, 3.35rem) !important;
    line-height: .92 !important;
    letter-spacing: -.05em !important;
  }

  body:not(.home) .page-hero p {
    max-width: 96% !important;
    margin: 0 !important;
    font-size: .96rem !important;
    line-height: 1.48 !important;
    color: rgba(255,255,255,.76) !important;
  }
}

@media (max-width: 560px) {
  body:not(.home) .page-hero {
    padding: calc(var(--header-h) + 22px) 0 82px !important;
  }

  body:not(.home) .page-hero .container {
    width: calc(100% - 28px) !important;
  }

  body:not(.home) .page-hero .h1 {
    font-size: clamp(2.05rem, 9.4vw, 2.75rem) !important;
    line-height: .93 !important;
  }

  body:not(.home) .page-hero p {
    max-width: 100% !important;
    font-size: .92rem !important;
    line-height: 1.44 !important;
  }
}

/* ==============================================================
   V4.19 — compact desktop interior-page heroes
   ============================================================== */
@media (min-width: 821px) {
  body:not(.home) .page-hero {
    min-height: 560px !important;
    height: auto !important;
    padding-top: calc(var(--header-h) + 48px) !important;
    padding-bottom: 140px !important;
  }

  /* Carry the star field through the full hero instead of leaving a
     featureless black band above the skyline. Buildings remain at bottom. */
  body:not(.home) .page-hero::before {
    inset: 0 !important;
    height: 100% !important;
    background-position: center bottom !important;
    background-size: cover !important;
    opacity: .58 !important;
  }
}

/* ==============================================================
   V4.20 — live Google My Maps retailer locator
   ============================================================== */
.map-shell > iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  min-height: 100%;
  border: 0;
  display: block;
}

@media (max-width: 820px) {
  .map-shell {
    min-height: 540px;
  }
}

@media (max-width: 560px) {
  .map-shell {
    min-height: 500px;
    border-radius: 18px;
  }
}


/* ==============================================================
   V4.21 — My Maps full-bleed viewport / hide embed title chrome
   Google My Maps is cross-origin, so its internal title bar cannot be
   styled directly. Crop that chrome outside the visible map window.
   ============================================================== */
.map-shell {
  --map-chrome-crop: 70px;
  height: 620px !important;
  min-height: 0 !important;
  overflow: hidden !important;
  position: relative;
  background: #ebe9e4;
}

.map-shell > iframe {
  position: absolute !important;
  left: 0 !important;
  top: calc(-1 * var(--map-chrome-crop)) !important;
  width: 100% !important;
  max-width: none !important;
  height: calc(100% + var(--map-chrome-crop)) !important;
  min-height: 0 !important;
  border: 0 !important;
  display: block !important;
}

@media (max-width: 820px) {
  .map-shell {
    --map-chrome-crop: 64px;
    height: 540px !important;
    min-height: 0 !important;
  }
}

@media (max-width: 560px) {
  .map-shell {
    --map-chrome-crop: 60px;
    height: 500px !important;
    min-height: 0 !important;
    border-radius: 18px;
  }
}

/* ==============================================================
   V4.22 — definitive interior hero fill + My Maps chrome crop
   ============================================================== */

/* Force the skyline/stars artwork to start at the very top of every
   interior hero. Longhand edges intentionally override older inset rules. */
body:not(.home) .page-hero::before {
  top: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  left: 0 !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
  background-position: center bottom !important;
  background-size: cover !important;
}

/* Google My Maps owns the iframe UI, so crop its title/header chrome by
   moving the entire iframe upward inside our overflow-hidden viewport.
   Use explicit pixel values instead of calc(-1 * var()), which can be
   ignored by some Safari versions. */
.map-shell {
  overflow: hidden !important;
  position: relative !important;
}

.map-shell > iframe {
  top: -116px !important;
  bottom: auto !important;
  left: 0 !important;
  right: auto !important;
  width: 100% !important;
  height: calc(100% + 116px) !important;
  min-height: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  transform: none !important;
}

@media (max-width: 820px) {
  .map-shell > iframe {
    top: -110px !important;
    height: calc(100% + 110px) !important;
  }
}

@media (max-width: 560px) {
  .map-shell > iframe {
    top: -104px !important;
    height: calc(100% + 104px) !important;
  }
}


/* DNN PERF_AI START */
/* Performance: let the browser skip layout/paint for substantial off-screen sections. */
main > .section,
.site-footer {
  content-visibility: auto;
  contain-intrinsic-size: auto 800px;
}
img { height: auto; }

/* Keyboard and browser-agent accessibility. */
:where(a, button, input, select, textarea, summary):focus-visible {
  outline: 3px solid var(--gold-light, #d9bd87);
  outline-offset: 3px;
}
[role="status"] { min-height: 1.5em; }
.map-access-link { margin: 18px 0 0; }

.retailer-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  margin-top: 38px;
}
.retailer-entry {
  padding: 28px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--paper);
}
.retailer-entry h2 { margin: 0 0 10px; font-size: 1.3rem; line-height: 1.15; }
.retailer-entry p { margin: 0 0 14px; color: var(--muted); }

@media (max-width: 760px) {
  .retailer-list { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  .reveal { opacity: 1 !important; transform: none !important; }
}
/* DNN PERF_AI END */
