/* iOS: without this, Safari inflates tiny/hidden text (ex. the font-size:0 wordmark
   trick), which opened a visible gap inside "the First Look" on real iPhones. */
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }

/* Landing redesign preview. Product behavior remains in index.html. */
:root {
  --landing-ink: #1f1d1a;
  --landing-body: #554f48;
  --landing-muted: #8b8178;
  --landing-gold: #9b7441;
  --landing-gold-dark: #76532d;
  --landing-paper: #fbfaf7;
  --landing-cream: #f6f0e7;
  --landing-line: #e8e0d6;
  --type-section: 42px;
  --type-card: 24px;
  --type-body: 15px;
  --type-meta: 13px;
  --type-label: 13px;
}

body {
  background: var(--landing-paper);
  color: var(--landing-ink);
  font-family: 'Instrument Sans', sans-serif;
}
.shell { background: var(--landing-paper); }
.content { overflow: hidden; }
.rail { background: var(--landing-paper); border-right-color: var(--landing-line); padding: 36px 20px 28px; }
.rail-brand { margin-bottom: 54px; }
/* Real spans, not pseudo-elements around hidden text: iOS inflated the hidden
   font-size:0 text node and split the mark apart on real iPhones. */
.rail-brand .wm {
  display: block;
  max-width: 110px;
  line-height: .9;
}
.rail-brand .wm-the {
  display: block;
  font-family: 'Cormorant Garamond', serif;
  font-size: 18px;
  font-style: italic;
  font-weight: 500;
}
.rail-brand .wm-name {
  display: block;
  font-family: 'Cormorant Garamond', serif;
  font-size: 27px;
  font-weight: 500;
  white-space: nowrap;
}
.rail-nav { gap: 17px; font-size: 12px; }
.rail-nav a:first-child { color: var(--landing-gold-dark); font-weight: 600; }
.rail-tag { font-size: 11.5px; line-height: 1.6; }

.landing-hero { display: none !important; }
.legacy-hero {
  position: relative;
  isolation: isolate;
  display: grid !important;
  grid-template-columns: minmax(360px, 43%) minmax(0, 57%);
  grid-template-rows: auto 1fr;
  gap: 0 28px;
  min-height: 720px;
  align-items: center;
  padding: 70px 28px 64px clamp(44px, 5vw, 72px);
  border-bottom: 0;
  overflow: hidden;
  background: #D7C3A9 url('/images/venue-stock/stock-blossom-ballroom.webp') center / cover no-repeat;
}
.legacy-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    linear-gradient(90deg, #FBFAF7 0%, rgba(251,250,247,.99) 34%, rgba(251,250,247,.90) 46%, rgba(251,250,247,.34) 67%, rgba(251,250,247,.10) 100%),
    linear-gradient(0deg, rgba(47,34,22,.15), transparent 45%);
}
.legacy-hero > h1 {
  grid-column: 1;
  grid-row: 1;
  align-self: end;
  position: relative;
  z-index: 1;
  max-width: none;
  margin: 0;
  font-size: clamp(61px, 5.15vw, 79px);
  font-weight: 500;
  line-height: .89;
  letter-spacing: -.048em;
  white-space: nowrap;
}
.legacy-hero > h1 .ital { color: var(--landing-gold); font-weight: 400; }
.legacy-hero > h1::after { display: none; }
.legacy-hero .hgrid { display: contents; }
.legacy-hero .hgrid > * { min-width: 0; }
.legacy-hero .hgrid > div {
  grid-column: 1;
  grid-row: 2;
  align-self: start;
  position: relative;
  z-index: 1;
  padding-top: 30px;
}
.legacy-hero .hero-sub {
  max-width: 350px;
  margin-bottom: 24px;
  color: var(--landing-body);
  font-size: 14.5px;
  line-height: 1.65;
}
.legacy-hero .hero-start { margin-bottom: 25px; }
.legacy-hero .btn-sq { padding: 15px 22px; }
.legacy-hero .hero-cities-lbl { margin-bottom: 11px; font-size: 11.5px; letter-spacing: .15em; }
.legacy-hero .hero-cities { gap: 8px 17px; font-size: 14px; }
.legacy-hero .hero-cities a { padding: 0; border: 0; color: #786F66; }
.legacy-hero .hero-cities a:hover { color: var(--landing-gold-dark); }
.legacy-hero .hero-all { margin-top: 20px; font-size: 13px; }
.legacy-hero .widget {
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: center;
  justify-self: end;
  position: relative;
  z-index: 2;
  width: min(100%, 710px);
  border-color: #DED5C9;
  border-radius: 5px;
  background: rgba(255,253,249,.98);
  box-shadow: 0 2px 5px rgba(61,46,31,.09), 0 34px 76px -25px rgba(55,37,22,.44), 0 80px 140px -70px rgba(55,37,22,.40);
}
.legacy-hero .widget:hover {
  box-shadow: 0 2px 5px rgba(61,46,31,.09), 0 32px 70px -28px rgba(76,54,34,.38), 0 76px 140px -62px rgba(76,54,34,.34);
}
.legacy-hero .w-bar { gap: 12px; padding: 15px 16px; border-bottom-color: var(--landing-line); background: rgba(255,253,249,.98); }
.legacy-hero .w-search { min-height: 44px; padding: 0 15px; border-color: #E5DDD2; border-radius: 4px; background: #F8F4ED; font-size: 12px; }
.legacy-hero .w-toggle { border-color: #E5DDD2; border-radius: 4px; background: #F8F4ED; }
.legacy-hero .w-toggle span { padding: 7px 16px; border-radius: 2px; font-size: 11px; }
.legacy-hero .w-fbar { gap: 7px; padding: 11px 14px; border-bottom-color: var(--landing-line); background: rgba(255,253,249,.98); }
.legacy-hero .w-fbar .wf { min-width: 0; padding: 7px 9px 8px; border-color: #E4DBCF; border-radius: 30px; box-shadow: none; }
.legacy-hero .w-fbar .wfl { font-size: 6.5px; letter-spacing: .08em; }
.legacy-hero .w-fbar .wfv { overflow: hidden; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.legacy-hero .w-stage { height: 438px; }
.legacy-hero .w-area {
  position: absolute;
  z-index: 2;
  min-width: 69px;
  min-height: 47px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border: 1px solid #E2D8CB;
  border-radius: 13px;
  background: rgba(255,253,249,.96);
  box-shadow: 0 10px 22px -13px rgba(54,39,25,.42);
  color: var(--landing-ink);
}
.legacy-hero .w-area strong { font-family: 'Instrument Sans', sans-serif; font-size: 12px; font-weight: 600; line-height: 1; }
.legacy-hero .w-area small { margin-top: 5px; color: #7E766D; font-size: 7px; }
.legacy-hero .w-selected-pin {
  position: absolute;
  z-index: 2;
  width: 15px;
  height: 15px;
  border: 3px solid rgba(255,253,249,.96);
  border-radius: 50% 50% 50% 0;
  background: var(--landing-gold);
  box-shadow: 0 4px 12px rgba(68,48,28,.24);
  transform: rotate(-45deg);
}
.legacy-hero .w-quotes { left: 18px; bottom: 18px; width: 202px; padding: 13px 15px 12px; border-radius: 5px; }
.legacy-hero .w-proof-head { display: flex; align-items: center; gap: 6px; margin-bottom: 5px; color: #76634A; font-family: 'Instrument Sans', sans-serif; font-size: 8px; letter-spacing: .08em; text-transform: uppercase; }
.legacy-hero .w-proof-icon { font-size: 12px; }
.legacy-hero .w-qrow { padding: 7px 0 6px; }
.legacy-hero .w-qamt { font-size: 16px; }
.legacy-hero .w-qmeta { font-size: 8px; }
.legacy-hero .w-qfoot { padding-top: 7px; font-size: 7.5px; }
.legacy-hero .w-venue { right: 18px; bottom: 18px; width: 280px; border-radius: 5px; }
.legacy-hero .w-venue .w-photo { height: 84px; }
.legacy-hero .w-vbody { padding: 13px 15px 14px; }
.legacy-hero .w-dname { font-size: 22px; font-weight: 500; }
.legacy-hero .w-dmeta { margin: 3px 0 10px; font-size: 8px; }
.legacy-hero .w-price-line,
.legacy-hero .w-dbench { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; }
.legacy-hero .w-price-line > span,
.legacy-hero .w-dbench > span { color: #7C746A; font-family: 'Instrument Sans', sans-serif; font-size: 7.5px; line-height: 1.25; }
.legacy-hero .w-price-line > span { text-transform: uppercase; letter-spacing: .08em; }
.legacy-hero .w-price-line small { display: block; margin-top: 3px; color: #8C847A; font-size: 7px; letter-spacing: 0; text-transform: none; }
.legacy-hero .w-price-line strong { color: #8B7355; font-family: 'Cormorant Garamond', serif; font-size: 25px; font-weight: 500; line-height: .9; }
.legacy-hero .w-dbench { margin-top: 9px; padding-top: 8px; border-top: 1px solid #EDE5DB; }
.legacy-hero .w-dbench strong { color: #5C7A4A; font-family: 'Instrument Sans', sans-serif; font-size: 8px; white-space: nowrap; }
.legacy-hero .w-personal { margin-top: 8px; padding-top: 8px; border-top: 1px solid #EDE5DB; }
.legacy-hero .w-personal strong { color: var(--landing-ink); font-size: 19px; }
.legacy-hero .w-signals { display: flex; gap: 10px; margin-top: 10px; color: #655E56; font-family: 'Instrument Sans', sans-serif; font-size: 7.5px; }

/* Approved hero product vignette: architectural map slab with a pinned command rail. */
.legacy-hero .widget-slab {
  width: min(100%, 690px);
  height: 540px;
  display: grid;
  grid-template-columns: 76px minmax(0, 1fr);
  align-items: stretch;
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.legacy-hero .widget-slab:hover { box-shadow: none; }
.v-command {
  position: relative;
  z-index: 5;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 28px 10px;
  border: 1px solid #e5ddd2;
  border-right: 0;
  border-radius: 15px 0 0 15px;
  background: rgba(255,253,249,.98);
  box-shadow: -18px 30px 55px -34px rgba(55,37,22,.48);
}
.v-command-item,
.v-command-filter {
  width: 52px;
  min-height: 70px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 7px;
  color: #625c55;
  font-family: 'Instrument Sans', sans-serif;
  font-size: 11px;
  font-weight: 500;
}
.v-command-item svg,
.v-command-filter svg {
  width: 22px;
  height: 22px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.v-command-item.active {
  border: 1px solid #b89460;
  border-radius: 24px;
  color: #2c2c2c;
  background: #fffdf9;
}
.v-command-item + .v-command-item { margin-top: 18px; }
.v-command-rule { width: 36px; height: 1px; margin: 20px 0 13px; background: #e9e1d7; }
.v-command-filter { min-height: 48px; }
.legacy-hero .widget-slab .w-stage {
  height: 540px;
  overflow: visible;
  border: 1px solid #e5ddd2;
  border-radius: 0 15px 15px 0;
  background: #eeeae1;
  box-shadow: 0 2px 5px rgba(61,46,31,.08), 0 38px 78px -30px rgba(55,37,22,.48), 0 90px 145px -72px rgba(55,37,22,.44);
}
.legacy-hero .widget-slab .w-map {
  z-index: 0;
  overflow: hidden;
  border-radius: 0 14px 14px 0;
  background: #e9e5dd;
  pointer-events: none;
}
.legacy-hero .widget-slab .w-stage > .w-price,
.legacy-hero .widget-slab .w-stage > .v-count { z-index: 2; }
.legacy-hero .widget-slab .w-stage > .w-venue { z-index: 4; }
.legacy-hero .widget-slab .leaflet-tile-pane { filter: saturate(.78) sepia(.035) brightness(1.045) contrast(.96); }
.legacy-hero .widget-slab .leaflet-control-attribution {
  padding: 1px 3px;
  background: rgba(255,253,249,.72);
  color: #938a80;
  font: 5px/1.2 'Instrument Sans', sans-serif;
}
.legacy-hero .widget-slab .leaflet-control-attribution a { color: inherit; }
.legacy-hero .widget-slab .w-price {
  z-index: 2;
  min-width: 58px;
  min-height: 58px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 10px;
  border: 1px solid #ddd3c6;
  border-radius: 50%;
  background: rgba(255,253,249,.98);
  box-shadow: 0 12px 25px -15px rgba(53,39,26,.55);
  font-size: 13px;
  font-weight: 600;
}
.legacy-hero .widget-slab .w-price.selected {
  color: #fffdf9;
  border-color: #a77d48;
  background: #a77d48;
  box-shadow: 0 0 0 7px rgba(167,125,72,.12), 0 12px 25px -13px rgba(72,46,21,.58);
}
.v-price-a { top: 13%; left: 15%; }
.v-price-b { top: 12%; right: 10%; }
.v-price-c { top: 30%; left: 55%; }
.v-price-d { top: 55%; left: 26%; }
.v-price-e { top: 51%; right: 11%; }
.v-count {
  position: absolute;
  z-index: 2;
  width: 35px;
  height: 35px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #ddcfba;
  border-radius: 50%;
  background: rgba(251,247,239,.96);
  box-shadow: 0 8px 18px -13px rgba(53,39,26,.5);
  color: #8b6d45;
  font-family: 'Instrument Sans', sans-serif;
  font-size: 11px;
  font-weight: 600;
}
.v-count-a { top: 29%; left: 29%; }
.v-count-b { top: 67%; left: 14%; }
.v-count-c { top: 73%; left: 38%; }
.v-count-d { top: 38%; right: 20%; }
.v-pin {
  position: absolute;
  z-index: 2;
  width: 17px;
  height: 17px;
  border: 3px solid rgba(255,253,249,.96);
  border-radius: 50% 50% 50% 0;
  background: #b58a4f;
  box-shadow: 0 5px 12px rgba(61,43,24,.24);
  transform: rotate(-45deg);
}
.v-pin-a { top: 20%; left: 42%; }
.v-pin-b { top: 34%; left: 71%; }
.v-pin-c { top: 48%; left: 38%; }
/* Density pass (owner ask 2026-07-19): NYC coverage is deep, the vignette should look it.
   Extra pins stay in the visible zones (top strip + left column, the venue card covers the rest). */
.v-pin-d { top: 9%; left: 33%; }
.v-pin-e { top: 16%; left: 60%; }
.v-pin-f { top: 24%; left: 22%; }
.v-pin-g { top: 40%; left: 12%; }
.v-pin-h { top: 37%; left: 24%; }
.v-pin-i { top: 57%; left: 7%; }
.v-pin-j { top: 26%; left: 47%; }
.v-pin-k { top: 70%; left: 9%; }
.v-count-e { top: 52%; left: 8%; }
.v-count-f { top: 82%; left: 12%; }
.legacy-hero .widget-slab .w-venue {
  z-index: 4;
  right: -14px;
  bottom: 16px;
  width: min(430px, 74%);
  overflow: hidden;
  border-radius: 13px;
  box-shadow: 0 2px 4px rgba(60,50,40,.10), 0 28px 58px -24px rgba(55,37,22,.48);
}
.legacy-hero .widget-slab .w-venue .w-photo { height: 122px; background-position: center 57%; }
.legacy-hero .widget-slab .w-vbody { padding: 18px 20px 17px; }
.legacy-hero .widget-slab .w-dname { font-size: 29px; line-height: 1; }
.legacy-hero .widget-slab .w-dmeta { margin: 7px 0 18px; font-size: 13.5px; }
.legacy-hero .widget-slab .w-price-line { align-items: flex-end; }
.legacy-hero .widget-slab .w-price-line > span { font-size: 11.5px; font-weight: 600; letter-spacing: .1em; }
.legacy-hero .widget-slab .w-price-line small { margin-top: 5px; font-size: 12.5px; font-weight: 400; }
.legacy-hero .widget-slab .w-price-line strong { font-size: 39px; font-weight: 600; }
.legacy-hero .widget-slab .w-facts {
  display: flex;
  align-items: center;
  gap: 22px;
  padding: 0 0 9px;
  color: #2c2c2c;
  font-family: 'Instrument Sans', sans-serif;
}
.legacy-hero .widget-slab .w-facts > span { display: flex; align-items: baseline; gap: 5px; }
.legacy-hero .widget-slab .w-facts strong { font-size: 15px; font-weight: 600; }
.legacy-hero .widget-slab .w-facts small { color: #847c73; font-size: 10px; }
.legacy-hero .widget-slab .w-dbench > span { font-size: 13px; }
.legacy-hero .widget-slab .w-dbench { margin-top: 14px; padding-top: 12px; }
.legacy-hero .widget-slab .w-dbench strong { font-size: 13px; }
.legacy-hero .widget-slab .w-personal { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin-top: 12px; padding-top: 12px; }
.legacy-hero .widget-slab .w-personal > span { color: #7C746A; font-family: 'Instrument Sans', sans-serif; font-size: 11.5px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.legacy-hero .widget-slab .w-personal strong { font-family: 'Cormorant Garamond', serif; font-size: 27px; font-weight: 600; }
.legacy-hero .widget-slab .w-signals {
  justify-content: space-between;
  gap: 12px;
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid #ede5db;
  font-size: 12px;
  white-space: nowrap;
}
.landing-hero .hero-layout {
  position: relative;
  min-height: 690px;
  display: block;
  overflow: hidden;
}
.hero-copy {
  position: relative;
  z-index: 2;
  width: 64%;
  min-height: 690px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 68px clamp(46px, 5vw, 80px) 58px;
  background: linear-gradient(90deg, var(--landing-paper) 0%, rgba(251,250,247,.99) 64%, rgba(251,250,247,.91) 82%, rgba(251,250,247,0) 100%);
}
.hero-kicker {
  margin-bottom: 23px;
  color: var(--landing-gold-dark);
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: .19em;
  text-transform: uppercase;
}
.landing-hero h1 {
  max-width: 480px;
  margin: 0 0 30px;
  color: var(--landing-ink);
  font-size: clamp(68px, 5.25vw, 82px);
  font-weight: 500;
  line-height: .91;
  letter-spacing: -.047em;
}
.landing-hero h1::after { display: none; }
.landing-hero h1 .ital {
  display: block;
  margin-top: 7px;
  color: var(--landing-gold);
  font-weight: 400;
  letter-spacing: -.04em;
}
.landing-hero .hero-sub {
  max-width: 430px;
  margin-bottom: 28px;
  color: var(--landing-body);
  font-size: 15.5px;
  line-height: 1.65;
}
.landing-hero .hero-start { margin-bottom: 28px; }
.landing-hero .btn-sq { padding: 15px 23px; background: var(--landing-gold); }
.landing-hero .btn-sq:hover { background: var(--landing-gold-dark); }
.hero-search {
  box-sizing: border-box;
  width: min(390px, 100%);
  min-height: 52px;
  margin: 0 0 19px;
  padding: 0 17px 0 19px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border: 1px solid #ddd3c7;
  border-radius: 7px;
  background: rgba(255,255,255,.82);
  box-shadow: 0 10px 26px rgba(83,62,39,.08);
  color: #746d65;
  font-size: 11.5px;
  text-decoration: none;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
.hero-search svg { width: 17px; height: 17px; fill: none; stroke: var(--landing-ink); stroke-width: 1.5; }
.hero-search:hover { border-color: #c7b49d; }
.landing-hero .hero-cities-lbl { margin-bottom: 9px; font-size: 9.5px; letter-spacing: .18em; }
.landing-hero .hero-cities { gap: 6px 14px; max-width: 440px; font-size: 12px; }
.landing-hero .hero-cities a { border: 0; color: #736c64; padding: 0; }
.landing-hero .hero-cities a:hover { color: var(--landing-gold-dark); }
.hero-paths {
  display: flex;
  gap: 9px;
  margin-top: 30px;
  padding-top: 8px;
  color: var(--landing-muted);
  font-size: 11.5px;
}
.hero-paths a { color: var(--landing-gold-dark); font-weight: 600; text-decoration: none; }

.hero-visual {
  position: absolute;
  inset: 0;
  min-width: 0;
  overflow: hidden;
  color: inherit;
  text-decoration: none;
  background: #ded5ca;
}
.hero-visual::before {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
  background: linear-gradient(90deg, rgba(45,34,24,.05), transparent 18%, transparent 70%, rgba(35,25,18,.09));
  pointer-events: none;
}
.hero-visual::after {
  content: "";
  position: absolute;
  z-index: 1;
  inset: auto 0 0;
  height: 35%;
  background: linear-gradient(0deg, rgba(36,25,18,.22), transparent);
  pointer-events: none;
}
.hero-visual > img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: 72% 47%;
  filter: saturate(.9) contrast(1.01) brightness(.98);
  transform: scale(1.002);
  transition: transform 1.1s cubic-bezier(.22,1,.36,1), filter .5s ease;
}
.hero-visual:hover > img { transform: scale(1.018); filter: saturate(.96) contrast(1.02) brightness(.99); }
.hero-photo-label {
  position: absolute;
  z-index: 2;
  top: 28px;
  right: 30px;
  min-width: 142px;
  padding: 12px 17px;
  border-radius: 30px;
  background: rgba(146,101,49,.92);
  color: #fff;
  font-size: 9.5px;
  font-weight: 600;
  letter-spacing: .17em;
  text-transform: uppercase;
  text-shadow: 0 1px 8px rgba(20,12,8,.25);
}
.hero-teaser {
  position: absolute;
  z-index: 3;
  right: clamp(24px, 4vw, 54px);
  bottom: 35px;
  width: min(370px, calc(100% - 48px));
  padding: 21px 22px 18px;
  border: 1px solid rgba(237,230,220,.92);
  border-radius: 8px;
  background: rgba(253,251,247,.97);
  box-shadow: 0 3px 7px rgba(49,36,24,.08), 0 24px 58px rgba(43,30,20,.25);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.teaser-sample {
  margin-bottom: 12px;
  color: var(--landing-gold-dark);
  font-size: 8.5px;
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.teaser-heading { display: flex; justify-content: space-between; gap: 16px; }
.teaser-name { font-family: 'Cormorant Garamond', serif; font-size: 23px; font-weight: 600; line-height: 1.05; }
.teaser-city { margin-top: 4px; color: var(--landing-muted); font-size: 11px; }
.teaser-pricing { margin-top: 16px; }
.teaser-price-label { color: var(--landing-muted); font-size: 9.5px; }
.teaser-price {
  margin-top: 1px;
  font-family: 'Cormorant Garamond', serif;
  color: var(--landing-ink);
  font-size: 29px;
  font-weight: 600;
  line-height: 1.08;
}
.teaser-price span { margin-left: 6px; font-family: 'Instrument Sans', sans-serif; color: var(--landing-muted); font-size: 9.5px; font-weight: 400; }
.teaser-benchmark { margin-top: 5px; color: #5C7A4A; font-size: 10px; font-weight: 600; }
.teaser-personal { display: flex; justify-content: space-between; gap: 12px; margin-top: 10px; color: var(--landing-muted); font-size: 10px; }
.teaser-personal strong { font-family: 'Cormorant Garamond', serif; color: var(--landing-ink); font-size: 16px; font-weight: 600; }
.teaser-meta { display: flex; gap: 16px; margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--landing-line); color: #655f58; font-size: 10.5px; }

/* Whitespace, not repeated rules, separates the story. */
.statshead { padding: 31px 50px 14px; color: var(--landing-gold-dark); font-size: 13px; letter-spacing: .14em; }
.stats { max-width: 1030px; padding: 8px 50px 30px; }
.stats > div { flex: 1 1 150px; position: relative; }
.stats > div + div::before {
  content: "";
  position: absolute;
  left: -10px;
  top: 7px;
  width: 1px;
  height: 36px;
  background: var(--landing-line);
}
.stat-num { color: var(--landing-ink); font-size: 32px; }
.stat-lbl { font-size: 13.5px; letter-spacing: .1em; }
.stats-link { padding-bottom: 38px; }
.stats-link a { font-size: 14.5px; }

/* The mock's editorial middle: real venues, then the emotional promise. */
.popular-venues { padding: 58px clamp(34px, 4.5vw, 68px) 70px; background: #F8F4EE; }
.section-heading-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 24px; }
.section-heading-row .eyebrow { margin-bottom: 8px; }
.section-heading-row h2,
.how-copy > h2 { margin: 0; font-family: 'Cormorant Garamond', serif; font-size: 35px; font-weight: 500; line-height: 1.05; letter-spacing: -.025em; }
.section-heading-row > a { flex: 0 0 auto; color: var(--landing-body); font-size: 11px; font-weight: 600; text-decoration: none; }
.section-heading-row > a:hover { color: var(--landing-gold-dark); }
.popular-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 13px; }
.popular-card { min-width: 0; overflow: hidden; border: 1px solid #E5DDD2; border-radius: 8px; background: #FCFBF8; color: inherit; text-decoration: none; box-shadow: 0 14px 34px -30px rgba(74,54,34,.38); transition: transform .35s cubic-bezier(.22,1,.36,1), box-shadow .35s ease; }
.popular-card:hover { transform: translateY(-3px); box-shadow: 0 18px 38px -25px rgba(74,54,34,.42); }
.popular-card > img { width: 100%; aspect-ratio: 1.18; display: block; object-fit: cover; filter: saturate(.86) contrast(.99); transition: transform .7s cubic-bezier(.22,1,.36,1), filter .35s ease; }
.popular-card:hover > img { transform: scale(1.025); filter: saturate(.94) contrast(1); }
.popular-body { padding: 14px 14px 16px; }
.popular-body h3 { margin: 0; font-family: 'Cormorant Garamond', serif; font-size: 21px; font-weight: 600; line-height: 1.05; }
.popular-body > p { margin: 4px 0 16px; color: var(--landing-muted); font-size: 10.5px; }
.popular-signals { display: flex; flex-wrap: wrap; gap: 8px 13px; color: #5D574F; font-size: 10.5px; font-weight: 500; }
.popular-signals span { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.popular-signals svg { width: 14px; height: 14px; flex: 0 0 auto; fill: none; stroke: #393632; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

.journey-editorial { padding: 0; background: var(--landing-paper); }
.finally-strip {
  display: grid;
  grid-template-columns: 1.08fr repeat(4, minmax(0, 1fr));
  align-items: stretch;
  gap: 0;
  padding: 28px clamp(34px, 4.5vw, 68px) 30px;
  background: var(--landing-paper);
}
.finally-intro,
.finally-item { min-width: 0; }
.finally-intro { display: flex; align-items: center; padding-right: clamp(18px, 2.4vw, 34px); }
.finally-intro h2 { margin: 0; font-family: 'Cormorant Garamond', serif; font-size: clamp(46px, 3.8vw, 56px); font-weight: 500; line-height: .9; letter-spacing: -.045em; }
.finally-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 13px;
  padding: 2px clamp(16px, 2.3vw, 32px);
  text-align: center;
}
.finally-item + .finally-item,
.finally-intro + .finally-item { border-left: 1px solid var(--landing-line); }
.finally-item svg { width: 28px; height: 28px; fill: none; stroke: var(--landing-gold); stroke-width: 1.35; stroke-linecap: round; stroke-linejoin: round; }
.finally-item p { max-width: 170px; margin: 0; color: var(--landing-ink); font-size: 12.5px; line-height: 1.45; }

.how-editorial {
  min-height: 0;
  margin: 0;
  padding: 34px clamp(34px, 4.5vw, 68px) 38px;
  background: #F8F4EE;
}
.how-copy { display: grid; grid-template-columns: .92fr 4.35fr; gap: clamp(24px, 3vw, 42px); align-items: start; padding: 0; }
.how-copy > h2 { margin: 0; font-size: 36px; }
.how-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(24px, 3.2vw, 46px); }
.how-step { min-width: 0; }
.how-step > span { display: block; margin-bottom: 10px; font-family: 'Instrument Sans', sans-serif; color: var(--landing-gold); font-size: 9px; font-weight: 600; letter-spacing: .15em; }
.how-step h3 { margin: 0 0 8px; font-family: 'Cormorant Garamond', serif; font-size: 20px; font-weight: 600; line-height: 1.08; }
.how-step p { max-width: 215px; margin: 0; color: var(--landing-body); font-size: 13px; line-height: 1.55; }

/* Landing type scale. The two families keep one job each across every section. */
.eyebrow,
.hero-cities-lbl,
.statshead,
.how-step > span,
.teaser-sample,
.qf-label {
  font-family: 'Instrument Sans', sans-serif;
  font-weight: 600;
  letter-spacing: .15em;
  text-transform: uppercase;
}
.eyebrow { font-size: var(--type-label); }
.hero-cities-lbl,
.how-step > span,
.teaser-sample,
.qf-label { font-size: var(--type-label); }
.h2 { font-family: 'Cormorant Garamond', serif; font-size: var(--type-section); font-weight: 500; line-height: 1.06; letter-spacing: -.025em; }
.lead { font-family: 'Instrument Sans', sans-serif; font-size: var(--type-body); line-height: 1.65; }
.section-heading-row h2,
.how-copy > h2 { font-size: var(--type-section); font-weight: 500; line-height: 1.05; letter-spacing: -.025em; }
.popular-body h3 { font-size: var(--type-card); font-weight: 500; }
.popular-body > p { font-size: var(--type-meta); line-height: 1.45; }
.popular-signals { font-size: var(--type-meta); }
.section-heading-row > a { font-size: var(--type-meta); }
.finally-item p { font-size: var(--type-body); line-height: 1.5; }
.how-step h3 { font-size: var(--type-card); font-weight: 500; }
.how-step p { font-size: var(--type-body); line-height: 1.58; }
.say-q { font-size: 21px; font-weight: 400; line-height: 1.5; }
.say-attr { font-size: var(--type-label); }
.pricing-intro { font-size: var(--type-body); line-height: 1.6; }
.pcard-name { font-size: 30px; font-weight: 500; }
.pcard p { font-size: var(--type-body); }
.pcards-2 { align-items: stretch; }
.pcards-2 .pcard { min-height: 430px; display: flex; flex-direction: column; padding: 38px 34px 32px; }
.pcards-2 .pcard.best { background: #FBF5E9; box-shadow: 0 24px 52px -30px rgba(112,78,38,.48); }
.pcards-2 .pcard-kick { order: 0; margin: 0 0 18px; color: #9B7441; font-size: var(--type-label); font-weight: 600; letter-spacing: .15em; }
.pcard-price-row { order: 1; display: flex; align-items: flex-end; gap: 18px; padding-bottom: 23px; border-bottom: 1px solid #E9DFD2; }
.pcard-price-row > strong { font-family: 'Cormorant Garamond', serif; color: var(--landing-ink); font-size: 58px; font-weight: 500; line-height: .82; letter-spacing: -.035em; }
.pcard-price-row > span { color: var(--landing-ink); font-family: 'Cormorant Garamond', serif; font-size: 27px; font-weight: 500; line-height: 1; }
.pcard-price-row small { display: block; margin-top: 7px; color: var(--landing-muted); font-family: 'Instrument Sans', sans-serif; font-size: var(--type-label); font-weight: 500; letter-spacing: .11em; text-transform: uppercase; }
.pcards-2 .pcard > p { order: 2; margin: 22px 0 17px; color: #625C55; line-height: 1.6; }
.pcard-benefits { order: 3; margin: 0 0 28px; padding: 0; list-style: none; }
.pcard-benefits li { position: relative; padding: 7px 0 7px 18px; color: #48433D; font-size: var(--type-body); line-height: 1.35; }
.pcard-benefits li::before { content: ''; position: absolute; left: 1px; top: 17px; width: 5px; height: 5px; border-radius: 50%; background: #B18A57; }
.pcards-2 .pcard > .btn-ghost,
.pcards-2 .pcard > .btn-sq { order: 4; align-self: flex-start; margin-top: auto; }
.price-contrib { font-size: var(--type-meta); }
.price-foot { font-size: var(--type-meta); }
.capture .h2 { font-size: var(--type-section); }
.qf-meta { font-size: var(--type-meta); }
.pcard-badge { font-size: 12px; }

.sec { border-top: 0; padding: 68px clamp(44px, 5vw, 76px); }
.sec + .sec:not(.cream) { padding-top: 60px; }
.cream { background: var(--landing-cream); }
.h2 { max-width: 760px; font-size: var(--type-section); letter-spacing: -.025em; }
.lead { max-width: 760px; }
.g2 { gap: 52px 70px; }
.feat { padding: 0; border: 0; }
.say-grid { gap: 0; }
.say-grid > div { padding: 0 34px; }
.say-grid > div:first-child { padding-left: 0; }
.say-grid > div + div { border-left: 1px solid var(--landing-line); }
.pcard { border-radius: 4px; }
.closing { border-top: 0; padding: 110px 60px; background: var(--landing-cream); }
.closing h2 { font-size: 64px; letter-spacing: -.035em; }

@media (max-width: 1100px) {
  .legacy-hero {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto auto auto;
    gap: 28px;
    min-height: 0;
    padding: 58px clamp(30px, 5vw, 52px) 62px;
    background-position: 66% center;
  }
  .legacy-hero::before {
    background: linear-gradient(180deg, #FBFAF7 0%, rgba(251,250,247,.99) 34%, rgba(251,250,247,.82) 50%, rgba(251,250,247,.22) 100%);
  }
  .legacy-hero > h1 { grid-column: 1; grid-row: 1; max-width: 700px; font-size: clamp(54px, 7vw, 68px); white-space: normal; }
  .legacy-hero .hgrid > div { grid-column: 1; grid-row: 2; padding-top: 0; }
  .legacy-hero .hero-sub { max-width: 470px; }
  .legacy-hero .widget { grid-column: 1; grid-row: 3; justify-self: stretch; width: 100%; max-width: 760px; }
  .legacy-hero .widget-slab { height: 520px; }
  .legacy-hero .widget-slab .w-stage { height: 520px; }
  .legacy-hero .widget-slab .w-venue { right: 14px; width: min(430px, calc(100% - 28px)); }
  .landing-hero .hero-layout { min-height: 640px; }
  .hero-copy { width: 67%; min-height: 640px; }
  .hero-copy { padding-inline: 42px; }
  .landing-hero h1 { font-size: 64px; }
  .hero-teaser { width: 320px; }
  .popular-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .finally-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 34px 26px; padding-block: 44px 46px; }
  .finally-intro { grid-column: 1 / -1; padding: 0; }
  .finally-item { align-items: flex-start; padding: 0; text-align: left; }
  .finally-item + .finally-item,
  .finally-intro + .finally-item { border-left: 0; }
  .how-copy { grid-template-columns: 1fr; gap: 30px; }
  .how-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 34px clamp(34px, 7vw, 72px); }
  .how-step p { max-width: 290px; }
  .cap-grid { grid-template-columns: minmax(0, 620px); gap: 34px; align-items: start; }
  .capture-section { padding-top: 60px; padding-bottom: 60px; }
  .qfeed { width: 100%; box-sizing: border-box; }
}

@media (max-width: 900px) and (min-width: 769px) {
  /* One column: each quote + attribution reads as its own block — tight inside the
     pair, generous between pairs (gap 0 here made it a wall of italic text on phones). */
  .say-grid { grid-template-columns: 1fr; gap: 44px; }
  .say-grid > div { padding: 28px 0; border-left: 0 !important; border-top: 1px solid var(--landing-line); }
  .say-grid > div:first-child { padding-top: 0; border-top: 0; }
  .say-grid > div:last-child { padding-bottom: 0; }
  .say-q { max-width: 34em; }
}

@media (max-width: 768px) {
  :root { --type-section: 36px; }
  /* Testimonials stack: kill the desktop column dividers and give each quote +
     attribution pair real air — gap 0 read as one wall of italic text on phones. */
  .say-grid { grid-template-columns: 1fr; gap: 44px; }
  .say-grid > div { padding: 0; }
  .say-grid > div + div { border-left: 0; }
  .rail-brand { padding: 15px 20px 14px; background: rgba(251,250,247,.94); }
  .rail-brand .wm { max-width: none; }
  .rail-brand .wm-the { display: inline; margin-right: 5px; font-size: 19px; }
  .rail-brand .wm-name { display: inline; font-size: 23px; }
  .legacy-hero {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto auto auto;
    gap: 28px;
    min-height: 0;
    padding: 48px 20px 54px;
    background-position: 64% center;
  }
  .legacy-hero::before { background: linear-gradient(180deg, #FBFAF7 0%, rgba(251,250,247,.98) 39%, rgba(251,250,247,.74) 58%, rgba(251,250,247,.18) 100%); }
  .legacy-hero > h1 { grid-column: 1; grid-row: 1; max-width: none; font-size: clamp(44px, 11.5vw, 58px); }
  .legacy-hero .hgrid > div { grid-column: 1; grid-row: 2; padding: 0; }
  .legacy-hero .hero-sub { max-width: 34ch; font-size: 15px; }
  .legacy-hero .widget { grid-column: 1; grid-row: 3; width: 100%; }
  .legacy-hero .widget-slab { width: calc(100vw - 40px); max-width: 100%; min-width: 0; height: 440px; grid-template-columns: 60px minmax(0, 1fr); }
  .v-command { padding: 17px 5px; border-radius: 12px 0 0 12px; }
  .v-command-item, .v-command-filter { width: 46px; min-height: 60px; font-size: 10px; }
  .v-command-item svg, .v-command-filter svg { width: 19px; height: 19px; }
  .v-command-item + .v-command-item { margin-top: 10px; }
  .v-command-rule { width: 30px; margin: 13px 0 8px; }
  .legacy-hero .widget-slab .w-stage { min-width: 0; height: 440px; border-radius: 0 12px 12px 0; }
  .legacy-hero .widget-slab .w-price { min-width: 47px; min-height: 47px; font-size: 11px; }
  .v-price-e, .v-count-d, .v-map-label { display: none; }
  .legacy-hero .widget-slab .w-venue { right: 8px; bottom: 8px; width: min(286px, calc(100% - 16px)); }
  .legacy-hero .widget-slab .w-venue .w-photo { height: 82px; }
  .legacy-hero .widget-slab .w-vbody { padding: 13px 14px 14px; }
  .legacy-hero .widget-slab .w-dname { font-size: 21px; }
  .legacy-hero .widget-slab .w-dmeta { margin: 5px 0 11px; font-size: 11.5px; }
  .legacy-hero .widget-slab .w-price-line > span { font-size: 11px; }
  .legacy-hero .widget-slab .w-price-line small { margin-top: 3px; font-size: 11px; }
  .legacy-hero .widget-slab .w-price-line strong { font-size: 30px; }
  .legacy-hero .widget-slab .w-dbench > span { font-size: 11px; }
  .legacy-hero .widget-slab .w-dbench { margin-top: 9px; padding-top: 9px; }
  .legacy-hero .widget-slab .w-dbench strong { font-size: 11px; }
  .legacy-hero .widget-slab .w-personal { margin-top: 9px; padding-top: 9px; }
  .legacy-hero .widget-slab .w-personal > span { font-size: 11px; }
  .legacy-hero .widget-slab .w-personal strong { font-size: 22px; }
  .legacy-hero .widget-slab .w-signals { gap: 7px; margin-top: 9px; padding-top: 9px; font-size: 10.5px; }
  .legacy-hero .w-bar { padding: 12px; }
  .legacy-hero .w-search { min-height: 40px; }
  .legacy-hero .w-toggle span { padding: 6px 11px; }
  .legacy-hero .w-fbar { padding: 10px 12px; overflow: hidden; }
  .legacy-hero .w-fbar .wf-member { display: none; }
  .legacy-hero .w-stage { height: 330px; }
  .legacy-hero .w-quotes { display: none; }
  .legacy-hero .w-area { min-width: 60px; min-height: 42px; }
  .legacy-hero .w-area strong { font-size: 10px; }
  .legacy-hero .w-area small { font-size: 6.5px; }
  .legacy-hero .w-venue { right: 9px; bottom: 9px; width: min(224px, calc(100% - 46px)); }
  .legacy-hero .w-venue .w-photo { height: 62px; }
  .legacy-hero .w-vbody { padding: 10px 11px 11px; }
  .legacy-hero .w-dname { font-size: 18px; }
  .legacy-hero .w-price-line strong { font-size: 20px; }
  .legacy-hero .w-personal strong { font-size: 16px; }
  .legacy-hero .w-signals { gap: 7px; font-size: 6.5px; }
  .landing-hero { padding: 0; }
  .landing-hero .hero-layout { min-height: 0; display: flex; flex-direction: column; overflow: visible; }
  .hero-copy { width: 100%; min-height: 0; padding: 50px 22px 42px; background: var(--landing-paper); }
  .hero-kicker { margin-bottom: 18px; }
  .landing-hero h1 { max-width: 9.5ch; margin-bottom: 24px; font-size: clamp(48px, 14vw, 64px); line-height: .94; }
  .landing-hero .hero-sub { font-size: 15px; }
  .hero-paths { margin-top: 26px; flex-wrap: wrap; }
  .hero-visual { position: relative; inset: auto; min-height: 500px; }
  .hero-visual > img { position: absolute; inset: 0; }
  .hero-photo-label { display: none; }
  .hero-teaser { right: 18px; bottom: 18px; width: calc(100% - 36px); padding: 18px; }
  .teaser-name { font-size: 21px; }
  .statshead { padding: 26px 20px 14px; }
  .stats { padding: 8px 16px 27px; }
  .stats > div { flex: 0 0 33.333%; }
  .stats > div + div::before { display: none; }
  .popular-venues { padding: 48px 20px 54px; }
  .section-heading-row { align-items: flex-start; }
  .section-heading-row h2 { font-size: var(--type-section); }
  .popular-grid { display: flex; gap: 12px; margin-right: -20px; padding-right: 20px; overflow-x: auto; scroll-snap-type: x mandatory; }
  .popular-card { flex: 0 0 min(76vw, 300px); scroll-snap-align: start; }
  .journey-editorial { padding: 0; }
  .finally-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 34px 28px; padding: 48px 20px 52px; }
  .finally-intro { grid-column: 1 / -1; padding: 0 0 8px; }
  .finally-intro h2 { font-size: 46px; }
  .finally-item { padding: 0; border: 0 !important; }
  .finally-item p { font-size: 15px; }
  .how-editorial { margin: 0; padding: 40px 20px 44px; }
  .how-copy { grid-template-columns: 1fr; gap: 28px; padding: 0; }
  .how-copy > h2 { font-size: var(--type-section); }
  .how-steps { grid-template-columns: 1fr 1fr; gap: 30px 24px; }
  .how-step p { font-size: 15px; }
  .popular-body > p { font-size: 15px; }
  .popular-signals { font-size: 14px; }
  .pcards-2 .pcard { min-height: 420px; padding: 34px 26px 28px; }
  .pcard-price-row > strong { font-size: 52px; }
  .pcard-price-row > span { font-size: 25px; }
  .pcard-benefits li { font-size: var(--type-body); }
  .sec, .sec + .sec:not(.cream) { padding: 52px 22px; }
  .h2, .capture .h2 { font-size: var(--type-section); }
  .say-grid > div { padding: 0; border: 0 !important; }
  .closing { padding: 72px 22px; }
  .closing h2 { font-size: 48px; }
}

@media (max-width: 420px) {
  .legacy-hero .widget-slab { height: 420px; grid-template-columns: 54px minmax(0, 1fr); }
  .legacy-hero .widget-slab .w-stage { height: 420px; }
  .v-command-item, .v-command-filter { width: 42px; }
  .legacy-hero .widget-slab .w-venue { left: auto; right: 6px; width: min(270px, calc(100% - 12px)); max-width: none; bottom: 6px; transform: none; }
  .legacy-hero .widget-slab .w-signals { flex-direction: column; gap: 3px; white-space: normal; }
  .hero-visual { min-height: 455px; }
  .hero-photo-label { display: none; }
  .teaser-meta { gap: 10px; font-size: 9.5px; }
  .stats > div { flex-basis: 50%; }
  .finally-strip { grid-template-columns: 1fr; }
  .finally-item { min-height: 0; border: 0 !important; }
  .how-editorial { padding: 36px 20px 40px; }
  .how-steps { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .hero-visual > img { transition: none; }
}
