/* ===========================================
   BELLO HOMES — DESIGN SYSTEM
   =========================================== */

:root {
  /* Deep, slightly-warm navy (hierarchy + contrast with cream) */
  --navy-950: #0a1520;
  --navy-900: #101f30;
  --navy-800: #172d47;
  --navy-700: #1e3d62;
  /* Warm gold — toned to sit calmly with the beige brand bg */
  --gold-500: #c9a06a;
  --gold-400: #d9b684;
  --gold-300: #e8d0ab;
  /* Brand canvas — matches the logo's warm beige background */
  --canvas:    #ece1c9;
  /* Cream scale: light → deep (cards, alt sections, dividers) */
  --cream-50:  #faf5eb;   /* near-white for elevated cards/forms */
  --cream-100: #f4ead6;   /* alt section bg (testimonials, etc) */
  --cream-200: #e2d5b8;
  --sand-300:  #c9ba9b;
  /* Warm ink — slightly softer than pure black, pairs with beige */
  --ink-900: #1c1812;
  --ink-600: #4a443a;
  --ink-400: #7a7368;

  --font-display: 'Fraunces', Georgia, serif;
  --font-body: 'Inter', system-ui, -apple-system, sans-serif;

  --shadow-sm: 0 2px 8px rgba(10, 22, 40, 0.06);
  --shadow-md: 0 8px 24px rgba(10, 22, 40, 0.08);
  --shadow-lg: 0 20px 60px rgba(10, 22, 40, 0.12);
  --shadow-xl: 0 30px 80px rgba(10, 22, 40, 0.18);

  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --ease-in-out: cubic-bezier(0.83, 0, 0.17, 1);
}

* { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; }

body {
  font-family: var(--font-body);
  color: var(--ink-900);
  background: var(--canvas);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  /* overflow-x: clip keeps horizontal scrollbars from appearing without
     breaking position: sticky inside descendant ancestors (as "hidden"
     would). Matters for .faq-aside on packages.html + contact.html. */
  overflow-x: clip;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-display);
  font-weight: 500;
  letter-spacing: -0.02em;
  line-height: 1.15;
  color: var(--navy-900);
}

img { max-width: 100%; display: block; }

a { color: inherit; text-decoration: none; transition: color 0.3s var(--ease-out); }

.container {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 1.5rem;
}

/* ===========================================
   NAVBAR
   =========================================== */
.navbar {
  /* Always visible, anchored to viewport top, follows the user as they
     scroll. `position: fixed` is the right tool for this job — it
     doesn't take layout space (so heroes still start at y=0) and
     doesn't depend on a sticky parent. The translate3d/will-change
     incantations below force the navbar onto its own GPU layer,
     which is what keeps iOS Safari from glitching it during URL-bar
     collapse. */
  position: fixed;
  top: 0;
  left: 0; right: 0;
  z-index: 100;
  padding: 1.25rem 0;
  transition: background-color 0.4s var(--ease-out),
              padding 0.4s var(--ease-out),
              box-shadow 0.4s var(--ease-out);
  background: transparent;
  -webkit-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
  will-change: transform;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}
.navbar.scrolled {
  background: rgba(236, 225, 201, 0.92);
  -webkit-backdrop-filter: blur(16px);
  backdrop-filter: blur(16px);
  box-shadow: var(--shadow-sm);
}
/* Pages with a light-colored top section (e.g. estimator, 404) opt into
   a permanently-solid navbar by adding class="nav-solid" on <body>.
   Without this the cream-on-cream text is invisible until the scroll
   handler kicks in. Scroll toggling of .scrolled continues to work —
   it just becomes visually idempotent here. */
body.nav-solid .navbar {
  background: rgba(236, 225, 201, 0.92);
  -webkit-backdrop-filter: blur(16px);
  backdrop-filter: blur(16px);
  box-shadow: var(--shadow-sm);
}
body.nav-solid .navbar .nav-links a { color: var(--navy-900); }
body.nav-solid .navbar .nav-toggle { color: var(--navy-900); }
.nav-inner {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 1.5rem;
}
.logo {
  display: inline-flex;
  align-items: center;
  /* Fixed box keeps the navbar logo at exactly the same visual size whether
     we're showing the light variant (over hero) or the dark variant (over
     cream). Both child imgs use object-fit: contain so their differing
     internal aspect ratios fit identically inside this box. */
  width: 106px;
  height: 60px;
  font-size: 0;
  line-height: 0;
  justify-self: start;
}
.logo-img {
  position: absolute;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: left center;
  transition: opacity 0.25s var(--ease-out);
}
.logo { position: relative; }
/* Default state (top of page, dark hero behind) → light logo visible */
.logo-img--dark { opacity: 0; }
/* Scrolled past hero, or pages with light top sections → swap to dark logo */
.navbar.scrolled .logo-img--light,
body.nav-solid .navbar .logo-img--light { opacity: 0; }
.navbar.scrolled .logo-img--dark,
body.nav-solid .navbar .logo-img--dark { opacity: 1; }
@media (max-width: 860px) {
  .logo { width: 78px; height: 44px; }
}

.nav-links {
  display: flex;
  gap: 2.25rem;
  list-style: none;
  align-items: center;
  margin: 0;
  padding: 0;
  justify-self: center;
}
.nav-links a {
  color: var(--cream-50);
  font-size: 0.95rem;
  font-weight: 500;
  position: relative;
  padding: 0.5rem 0;
  transition: color 0.3s var(--ease-out);
}
.navbar.scrolled .nav-links a { color: var(--navy-900); }
.nav-links a::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 0;
  height: 2px;
  background: var(--gold-500);
  transition: width 0.3s var(--ease-out);
}
.nav-links a:hover::after,
.nav-links a.active::after { width: 100%; }
.nav-links a:hover { color: var(--gold-500); }

/* ===== Premium CTA ===== */
.nav-cta {
  display: inline-flex !important;
  align-items: center;
  gap: 0.55rem;
  padding: 0.72rem 1.35rem 0.72rem 1.55rem !important;
  background: linear-gradient(135deg, #e4c78e 0%, #c9a06a 55%, #a5834f 100%) !important;
  color: var(--navy-950, #0a1520) !important;
  font: 600 0.88rem/1 var(--font-body) !important;
  letter-spacing: 0.025em !important;
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 999px !important;
  position: relative;
  overflow: hidden;
  isolation: isolate;
  box-shadow:
    0 1px 0 rgba(255,255,255,.4) inset,
    0 -1px 0 rgba(0,0,0,.18) inset,
    0 6px 18px -8px rgba(201,160,106,.8);
  transition: transform .35s var(--ease-out), box-shadow .35s var(--ease-out), background .35s var(--ease-out);
  justify-self: end;
  text-decoration: none;
}
.nav-cta::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(255,255,255,.28), transparent 55%);
  opacity: 0;
  transition: opacity .35s var(--ease-out);
  pointer-events: none;
  z-index: -1;
}
.nav-cta:hover {
  background: linear-gradient(135deg, #f1d9a4 0%, #d9b684 55%, #b48a50 100%) !important;
  transform: translateY(-1.5px);
  box-shadow:
    0 1px 0 rgba(255,255,255,.5) inset,
    0 -1px 0 rgba(0,0,0,.18) inset,
    0 12px 28px -6px rgba(201,160,106,.9);
}
.nav-cta:hover::before { opacity: 1; }
.nav-cta::after { display: none !important; }
.navbar.scrolled .nav-cta,
body.nav-solid .navbar .nav-cta { color: var(--navy-950, #0a1520) !important; }
.nav-cta-arrow {
  display: inline-block;
  transition: transform .35s var(--ease-out);
  flex-shrink: 0;
}
.nav-cta:hover .nav-cta-arrow { transform: translateX(3px); }

/* ===========================================
   NAV TOGGLE (mobile hamburger)
   The button is hidden on desktop. On mobile it morphs from a
   three-bar hamburger into an X using only CSS — see the
   `.nav-toggle__bars` rules below. The bars element is injected
   into the button by main.js on init so we don't have to edit
   every page's <button> markup.
   =========================================== */
.nav-toggle {
  display: none;
  align-items: center;
  justify-content: center;
  background: none;
  border: 1px solid transparent;
  border-radius: 999px;
  cursor: pointer;
  color: var(--cream-50);
  width: 44px;
  height: 44px;
  padding: 0;
  justify-self: end;
  -webkit-tap-highlight-color: transparent;
  transition: background-color 0.3s var(--ease-out), border-color 0.3s var(--ease-out), color 0.3s var(--ease-out), transform 0.3s var(--ease-out);
}
.nav-toggle:hover { background: rgba(244, 234, 214, 0.08); border-color: rgba(244, 234, 214, 0.18); }
.nav-toggle:focus-visible {
  outline: 0;
  border-color: var(--gold-500);
  box-shadow: 0 0 0 3px rgba(201, 160, 106, 0.28);
}
.navbar.scrolled .nav-toggle { color: var(--navy-900); }
.navbar.scrolled .nav-toggle:hover { background: rgba(10, 21, 32, 0.06); border-color: rgba(10, 21, 32, 0.12); }

/* Three-bar icon. Layered absolute spans so we can morph each one
   independently into the upper / lower limbs of an X. */
.nav-toggle__bars {
  position: relative;
  display: inline-block;
  width: 22px;
  height: 16px;
}
.nav-toggle__bars span {
  position: absolute;
  left: 0; right: 0;
  height: 2px;
  background: currentColor;
  border-radius: 2px;
  transition: top 0.32s var(--ease-out), transform 0.32s var(--ease-out), opacity 0.2s var(--ease-out), width 0.32s var(--ease-out);
  transform-origin: 50% 50%;
}
.nav-toggle__bars span:nth-child(1) { top: 0; }
.nav-toggle__bars span:nth-child(2) { top: 7px; }
.nav-toggle__bars span:nth-child(3) { top: 14px; }
/* Open state: morph hamburger → X. Slight extension via width:110% so
   the X has the optical mass of the bars. */
.nav-toggle.is-open { color: var(--cream-50); }
.nav-toggle.is-open .nav-toggle__bars span:nth-child(1) {
  top: 7px;
  transform: rotate(45deg);
}
.nav-toggle.is-open .nav-toggle__bars span:nth-child(2) {
  opacity: 0;
  transform: scaleX(0.4);
}
.nav-toggle.is-open .nav-toggle__bars span:nth-child(3) {
  top: 7px;
  transform: rotate(-45deg);
}
/* When the drawer is open, force the toggle to be visible against
   the dark drawer regardless of the navbar's scrolled state. */
body.nav-drawer-open .nav-toggle { color: var(--cream-50); }
body.nav-drawer-open .nav-toggle:hover { background: rgba(244, 234, 214, 0.10); border-color: rgba(244, 234, 214, 0.22); }

@media (max-width: 860px) {
  .nav-inner {
    display: flex;
    align-items: center;
    gap: 0.75rem;
  }
  .logo { order: 1; }
  .nav-cta { order: 2; margin-left: auto; }
  .nav-toggle { order: 3; display: inline-flex; margin-left: auto; }

  .nav-cta {
    padding: 0.55rem 1.1rem !important;
    font-size: 0.82rem !important;
  }
  .nav-cta .nav-cta-arrow { display: none; }

  /* When the CTA pill is visible (≥521px), it grabs `margin-left: auto`
     and the toggle sits flush after it. When it's hidden (≤520px), the
     toggle still has its own `margin-left: auto` above so it pins right. */
}

/* ===========================================
   MOBILE NAV DRAWER (premium)
   Slide-in panel from the right with a navy gradient, a brand +
   close-button header, large editorial link typography with gold
   accents, and a blurred backdrop. Fully closeable via the X
   button, backdrop tap, Escape key, link click, or hamburger
   re-tap. main.js injects `.nav-drawer__head` and `.nav-backdrop`
   on init so all pages get this for free.
   =========================================== */
/* main.js injects `.nav-drawer__head` into every page's <ul.nav-links>
   so the mobile drawer has its brand+close header. On desktop the
   element has no business being there — keep it hidden. The media
   query below flips it back to display:flex on mobile. */
.nav-drawer__head { display: none; }

@media (max-width: 860px) {
  .nav-links {
    position: fixed;
    /* Anchor at right:0 and translate the drawer offscreen + visibility:hidden
       so the offscreen drawer doesn't inflate documentElement.scrollWidth.
       (Earlier we used `right: -100%`; Chromium reports translated AND
       right-offset fixed elements in scrollWidth even with body overflow-x:clip,
       which leaked a horizontal page scroll at viewport widths ≤ 760px.
       `visibility: hidden` removes it from layout completely while closed.) */
    top: 0; right: 0;
    width: min(86%, 380px);
    height: 100vh;
    height: 100dvh;
    /* Fully-opaque gradient. Earlier this used a translucent gold
       overlay on top of the navy gradient, which interacted badly with
       the backdrop-filter on iOS Safari and rendered the whole drawer
       blurry on phones. Solid colors only here. */
    background: linear-gradient(165deg, #0d1c2c 0%, #0a1520 48%, #050b13 100%);
    flex-direction: column;
    padding: 0;
    gap: 0;
    /* Visibility transitions after the transform finishes when closing,
       so the slide-out animation still plays. When opening (.open),
       visibility flips to visible immediately (0s delay). */
    transition: transform 0.45s var(--ease-out), box-shadow 0.45s var(--ease-out), visibility 0s linear 0.45s;
    align-items: stretch;
    justify-self: auto;
    z-index: 102;
    overflow-y: auto;
    overscroll-behavior: contain;
    box-shadow: none;
    /* translate3d both pushes the drawer offscreen AND pins it to its own
       GPU layer (iOS Safari needs that with any backdrop-filter on siblings). */
    transform: translate3d(100%, 0, 0);
    -webkit-transform: translate3d(100%, 0, 0);
    visibility: hidden;
    will-change: transform;
    isolation: isolate;
    /* Subtle inner edge so the drawer reads as a discrete panel,
       not a flat fill, when sitting against the dark hero. */
    border-left: 1px solid rgba(244, 234, 214, 0.06);
    /* Respect iOS safe-area at the bottom (notch / home-indicator). */
    padding-bottom: env(safe-area-inset-bottom);
  }
  .nav-links.open {
    transform: translate3d(0, 0, 0);
    -webkit-transform: translate3d(0, 0, 0);
    visibility: visible;
    transition: transform 0.45s var(--ease-out), box-shadow 0.45s var(--ease-out), visibility 0s;
    box-shadow:
      -1px 0 0 rgba(201, 160, 106, 0.10) inset,
      -28px 0 60px -10px rgba(0, 0, 0, 0.55);
  }

  /* Header strip at the top: brand wordmark + close button. The
     brand mirrors the navbar logo so the drawer feels continuous
     with the page chrome. */
  .nav-drawer__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.4rem 1.5rem 1rem;
    border-bottom: 1px solid rgba(244, 234, 214, 0.08);
  }
  .nav-drawer__brand {
    display: inline-flex;
    align-items: center;
    height: 56px;
    line-height: 0;
  }
  .nav-drawer__brand img {
    display: block;
    height: 100%;
    width: auto;
    max-width: 180px;
    object-fit: contain;
    object-position: left center;
  }
  .nav-drawer__close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 999px;
    background: rgba(244, 234, 214, 0.06);
    border: 1px solid rgba(244, 234, 214, 0.14);
    color: var(--cream-50);
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: background-color 0.25s var(--ease-out), border-color 0.25s var(--ease-out), transform 0.25s var(--ease-out), color 0.25s var(--ease-out);
  }
  .nav-drawer__close:hover {
    background: rgba(201, 160, 106, 0.18);
    border-color: rgba(201, 160, 106, 0.4);
    color: var(--gold-500);
  }
  .nav-drawer__close:active { transform: scale(0.94); }
  .nav-drawer__close:focus-visible {
    outline: 0;
    border-color: var(--gold-500);
    box-shadow: 0 0 0 3px rgba(201, 160, 106, 0.32);
  }

  /* List of links: editorial spacing, gold underline accent on
     hover/active, slight stagger animation when the drawer opens. */
  .nav-links {
    list-style: none;
  }
  .nav-links > li {
    list-style: none;
    padding: 0;
    margin: 0;
    border-bottom: 1px solid rgba(244, 234, 214, 0.05);
    /* Stagger entry: each item fades + slides in slightly behind
       the previous one. Initial state set here, animated when the
       drawer has the `.open` class (see below). */
    opacity: 0;
    transform: translateX(14px);
    transition: opacity 0.4s var(--ease-out), transform 0.4s var(--ease-out);
  }
  .nav-links.open > li {
    opacity: 1;
    transform: translateX(0);
  }
  .nav-links.open > li:nth-of-type(1) { transition-delay: 0.10s; }
  .nav-links.open > li:nth-of-type(2) { transition-delay: 0.16s; }
  .nav-links.open > li:nth-of-type(3) { transition-delay: 0.22s; }
  .nav-links.open > li:nth-of-type(4) { transition-delay: 0.28s; }
  .nav-links.open > li:nth-of-type(5) { transition-delay: 0.34s; }
  .nav-links.open > li:nth-of-type(6) { transition-delay: 0.40s; }
  .nav-links.open > li:nth-of-type(7) { transition-delay: 0.46s; }

  .nav-links > li > a {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 1.1rem 1.75rem;
    /* Force a high-contrast cream against the navy gradient. The
       !important + explicit hex (rather than var) wins over any
       desktop rule the cascade might pull in if a stale CSS file
       slips through. */
    color: #faf5eb !important;
    font-family: var(--font-display);
    font-size: 1.45rem;
    font-weight: 400;
    letter-spacing: -0.015em;
    line-height: 1.1;
    position: relative;
    min-height: 56px; /* generous tap target — iOS HIG minimum is 44 */
    text-decoration: none;
    -webkit-tap-highlight-color: rgba(201, 160, 106, 0.25);
    transition: color 0.25s var(--ease-out), padding-left 0.3s var(--ease-out), background-color 0.25s var(--ease-out);
  }
  /* Suppress the desktop underline-on-hover treatment in the drawer
     (we replace it with a vertical gold marker on the left). */
  .nav-links > li > a::after { display: none; }
  .nav-links > li > a::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    height: 0;
    width: 3px;
    background: var(--gold-500);
    border-radius: 0 2px 2px 0;
    transform: translateY(-50%);
    transition: height 0.3s var(--ease-out);
  }
  /* Hover state only on devices that actually have a hover capability.
     Without this guard, iOS Safari's "sticky :hover" leaves whatever
     was last tapped in the gold-tinted state, making the menu look
     dim. Touch devices fall through to the .active style only. */
  @media (hover: hover) {
    .nav-links > li > a:hover {
      color: var(--gold-500) !important;
      background: rgba(201, 160, 106, 0.06);
      padding-left: 2rem;
    }
    .nav-links > li > a:hover::before { height: 70%; }
  }
  .nav-links > li > a.active {
    color: var(--gold-500) !important;
    background: rgba(201, 160, 106, 0.06);
    padding-left: 2rem;
  }
  .nav-links > li > a.active::before { height: 70%; }

  /* Drawer footer hosts the gold "Get in Touch" CTA and any meta
     copy. The wrapping <li class="nav-drawer-contact"> already exists
     in the markup; we restyle it as a footer block here. */
  .nav-links > li.nav-drawer-contact {
    margin-top: auto;
    border-bottom: 0;
    border-top: 1px solid rgba(244, 234, 214, 0.08);
    padding: 1.25rem 1.5rem 1.5rem;
  }
  .nav-links > li.nav-drawer-contact > a {
    padding: 0.95rem 1.25rem;
  }

  /* The "Get in Touch" pill inside the drawer (existing
     .nav-links-cta rule lives later in this file under the
     overrides section — we override only what we need to). */
  .nav-links .nav-links-cta {
    box-shadow:
      0 1px 0 rgba(255, 255, 255, 0.32) inset,
      0 -1px 0 rgba(0, 0, 0, 0.18) inset,
      0 18px 38px -12px rgba(201, 160, 106, 0.55) !important;
  }
}

/* Backdrop: dark overlay covering the page when the drawer is open.
   Click-to-close is wired in main.js. Hidden by default.
   z-index 99 sits BELOW the navbar (z-index 100). The drawer lives
   inside the navbar so it's part of the navbar's stacking context
   (parent z-index applies). Putting the backdrop above 100 placed
   it on top of the drawer, which is what was making the menu look
   dim and intercepting all the link taps. */
.nav-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(5, 11, 19, 0.78);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.4s var(--ease-out);
  z-index: 99;
}
/* When the drawer is open, push the navbar above the backdrop in the
   body's stacking context. Combined with the lower z-index above this
   keeps the drawer visually on top while the backdrop dims everything
   else. */
body.nav-drawer-open .navbar { z-index: 200; }
.nav-backdrop.is-open {
  opacity: 1;
  pointer-events: auto;
}

/* Body scroll lock while the drawer is open so the page underneath
   doesn't scroll when the user swipes inside the drawer. */
body.nav-drawer-open {
  overflow: hidden;
  /* Prevent layout shift from scrollbar removal on desktop browsers
     that fall through this media query. */
  padding-right: var(--bh-scrollbar-comp, 0);
}

/* ===========================================
   BUTTONS
   =========================================== */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  padding: 1rem 2rem;
  border-radius: 999px;
  font-weight: 600;
  font-size: 0.95rem;
  cursor: pointer;
  border: none;
  transition: all 0.3s var(--ease-out);
  font-family: var(--font-body);
}
.btn-primary {
  background: var(--gold-500);
  color: var(--navy-900);
}
.btn-primary:hover {
  background: var(--gold-400);
  transform: translateY(-2px);
  box-shadow: var(--shadow-lg);
}
.btn-secondary {
  background: transparent;
  color: var(--cream-50);
  border: 1.5px solid rgba(253, 249, 243, 0.35);
}
.btn-secondary:hover {
  background: rgba(253, 249, 243, 0.1);
  border-color: var(--cream-50);
}
.btn-dark {
  background: var(--navy-900);
  color: var(--cream-50);
}
.btn-dark:hover {
  background: var(--navy-800);
  transform: translateY(-2px);
  box-shadow: var(--shadow-lg);
}

/* ===========================================
   HERO — See the inline <style> block in index.html for the Cinematic Grand
   Tour hero. All .hero__* rules, Ken Burns slides, letterbox, custom cursor,
   intro/aperture, and scene strip live inline so the CSS is scoped to the
   landing page only and does not bloat styles.css for other pages.
   =========================================== */

/* ===========================================
   STATS / PROOF BAR — wraps the homepage proof panel that overlaps the hero.
   The legacy `.stats-badge`, `.stat-item`, `.stat-icon`, `.stat-number`, and
   `.stat-label` block was removed when the proof bar replaced it. Only the
   shared `.stats-section` wrapper remains; everything else lives below.
   =========================================== */
.stats-section {
  margin-top: -90px;
  position: relative;
  z-index: 25;
  padding: 0 1.25rem 0;
}

/* ===========================================
   PROOF BAR — floating proof-of-trust panel
   =========================================== */
.proof-bar {
  position: relative;
  max-width: 1180px;
  margin: 0 auto;
  padding: clamp(1.6rem, 3vw, 2.4rem) clamp(1.4rem, 3.5vw, 2.6rem);
  background: linear-gradient(180deg, #fffaf0 0%, var(--cream-50) 100%);
  border: 1px solid rgba(201, 160, 106, 0.45);
  border-radius: 18px;
  box-shadow:
    0 30px 60px -22px rgba(10, 22, 40, 0.45),
    0 12px 32px rgba(10, 22, 40, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.6);
  isolation: isolate;
}
/* Inner gold border detail */
.proof-bar::before {
  content: '';
  position: absolute;
  inset: 6px;
  border: 1px solid rgba(201, 160, 106, 0.22);
  border-radius: 13px;
  pointer-events: none;
}

.proof-bar__head {
  text-align: center;
  margin-bottom: 1.25rem;
  padding-bottom: 1.2rem;
  border-bottom: 1px solid rgba(201, 160, 106, 0.22);
}
.proof-bar__title {
  margin: 0;
  font-family: var(--font-display);
  font-weight: 500;
  font-size: clamp(1.35rem, 2.4vw, 1.85rem);
  line-height: 1.15;
  color: var(--navy-900);
  letter-spacing: -0.012em;
}
.proof-bar__title em {
  font-style: italic;
  color: var(--gold-500);
  font-weight: 400;
}
.proof-bar__lede {
  margin: 0.45rem auto 0;
  max-width: 56ch;
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 400;
  font-size: 0.95rem;
  color: rgba(16, 31, 48, 0.62);
}

.proof-bar__stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  list-style: none;
  margin: 0;
  padding: 0;
}
.proof-stat {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 0.4rem 0.85rem;
  border-radius: 10px;
  transition: background 0.35s var(--ease-out);
}
.proof-stat:hover {
  background: rgba(232, 208, 171, 0.08);
}
.proof-stat:hover .proof-stat__icon {
  transform: translateY(-2px);
  opacity: 1;
}
/* Vertical gold dividers between stats (desktop) */
.proof-stat + .proof-stat::before {
  content: '';
  position: absolute;
  left: 0;
  top: 18%;
  bottom: 18%;
  width: 1px;
  background: linear-gradient(180deg, transparent, rgba(201, 160, 106, 0.5) 25%, rgba(201, 160, 106, 0.5) 75%, transparent);
}

.proof-stat__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  margin-bottom: 0.55rem;
  color: var(--gold-500);
  opacity: 0.78;
  transition: transform 0.35s var(--ease-out), opacity 0.35s var(--ease-out);
}
.proof-stat__icon svg { width: 100%; height: 100%; display: block; }

.proof-stat__num {
  display: inline-flex;
  align-items: flex-start;
  font-family: var(--font-display);
  font-weight: 400;
  font-size: clamp(2rem, 3.4vw, 2.85rem);
  line-height: 1;
  color: var(--navy-900);
  letter-spacing: -0.02em;
  margin-bottom: 0.55rem;
  font-variant-numeric: tabular-nums;
}
.proof-stat__num sup {
  font-size: 0.5em;
  color: var(--gold-500);
  font-weight: 400;
  margin-top: 0.14em;
  margin-left: 0.08em;
  vertical-align: super;
}
.proof-stat__star {
  color: var(--gold-500);
  font-size: 0.5em;
  margin-left: 0.18em;
  align-self: center;
  font-style: normal;
}
.proof-stat__label {
  font-family: var(--font-body);
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(16, 31, 48, 0.78);
}
.proof-stat__sub {
  margin-top: 0.32rem;
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 400;
  font-size: 0.78rem;
  color: rgba(16, 31, 48, 0.55);
  line-height: 1.35;
}

/* Reveal animation */
.proof-bar {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.85s var(--ease-out), transform 0.85s var(--ease-out);
}
.proof-bar.in {
  opacity: 1;
  transform: translateY(0);
}
.proof-stat {
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 0.7s var(--ease-out), transform 0.7s var(--ease-out), background 0.35s var(--ease-out);
}
.proof-bar.in .proof-stat:nth-child(1) { transition-delay: 0.18s; }
.proof-bar.in .proof-stat:nth-child(2) { transition-delay: 0.28s; }
.proof-bar.in .proof-stat:nth-child(3) { transition-delay: 0.38s; }
.proof-bar.in .proof-stat:nth-child(4) { transition-delay: 0.48s; }
.proof-bar.in .proof-stat { opacity: 1; transform: translateY(0); }

.proof-stat__icon {
  opacity: 0;
  transition: transform 0.35s var(--ease-out), opacity 0.6s var(--ease-out);
}
.proof-bar.in .proof-stat__icon { opacity: 0.78; transition-delay: 0.6s; }
.proof-bar.in .proof-stat:nth-child(2) .proof-stat__icon { transition-delay: 0.7s; }
.proof-bar.in .proof-stat:nth-child(3) .proof-stat__icon { transition-delay: 0.8s; }
.proof-bar.in .proof-stat:nth-child(4) .proof-stat__icon { transition-delay: 0.9s; }

/* Tablet — 2x2 grid with horizontal dividers between rows */
@media (max-width: 860px) {
  .stats-section { margin-top: -64px; }
  .proof-bar { padding: 1.6rem 1.4rem; }
  .proof-bar__stats { grid-template-columns: repeat(2, 1fr); row-gap: 1.4rem; }
  .proof-stat:nth-child(odd)::before { display: none; }
  .proof-stat:nth-child(3),
  .proof-stat:nth-child(4) { padding-top: 1.4rem; }
  .proof-stat:nth-child(3)::after,
  .proof-stat:nth-child(4)::after {
    content: '';
    position: absolute;
    left: 16%;
    right: 16%;
    top: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(201, 160, 106, 0.5) 30%, rgba(201, 160, 106, 0.5) 70%, transparent);
  }
}

/* Mobile — compact 2x2 */
@media (max-width: 520px) {
  .stats-section { margin-top: -52px; padding: 0 1rem; }
  .proof-bar { padding: 1.3rem 1rem; border-radius: 14px; }
  .proof-bar::before { inset: 5px; border-radius: 11px; }
  .proof-bar__head { margin-bottom: 1rem; padding-bottom: 1rem; }
  .proof-bar__title { font-size: 1.2rem; }
  .proof-bar__lede { font-size: 0.85rem; }
  .proof-stat { padding: 0.3rem 0.4rem; }
  .proof-stat__num { font-size: 1.85rem; margin-bottom: 0.4rem; }
  .proof-stat__icon { width: 22px; height: 22px; margin-bottom: 0.4rem; }
  .proof-stat__sub { font-size: 0.74rem; }
}

/* Reduced motion — show final state instantly */
@media (prefers-reduced-motion: reduce) {
  .proof-bar, .proof-stat, .proof-stat__icon {
    opacity: 1 !important; transform: none !important; transition: none !important;
  }
  .proof-stat__icon { opacity: 0.78 !important; }
  .proof-stat:hover { background: transparent; }
  .proof-stat:hover .proof-stat__icon { transform: none; }
}

/* ===========================================
   SECTIONS
   =========================================== */
section { padding: 7rem 0; position: relative; }
section.section-tight { padding: 5rem 0; }

.section-head {
  text-align: center;
  max-width: 720px;
  margin: 0 auto 4rem;
}
.section-head.left { text-align: left; margin-left: 0; }
.section-eyebrow {
  display: inline-block;
  color: var(--gold-500);
  font-size: 0.8rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  font-weight: 600;
  margin-bottom: 1rem;
}
.section-head h2 {
  font-size: clamp(2rem, 4vw, 3.2rem);
  margin-bottom: 1rem;
}
.section-head h2 em { font-style: italic; color: var(--gold-500); font-weight: 300; }
.section-head p {
  color: var(--ink-600);
  font-size: 1.08rem;
}

/* ===========================================
   MAPS SECTION
   =========================================== */
.maps-section {
  background: linear-gradient(180deg, var(--cream-50) 0%, var(--cream-100) 100%);
}
.map-wrapper {
  position: relative;
  max-width: 1200px;
  margin: 0 auto;
}
@keyframes fadeIn {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0); }
}
/* (Removed: legacy `.map-tabs`, `.map-tab`, `.map-panel`, `.map-container`,
   `.map-legend`, `.map-legend-title`, `.legend-item`, `.legend-dot` — those
   classes belonged to the original tabbed map UI. The Portfolio Atlas now
   uses `.atlas-*` classes; legacy ones were unreferenced.) */

/* ===========================================
   ATLAS — Framed map + editorial index
   =========================================== */

/* Dark navy frame wrapping the map */
.atlas-frame {
  position: relative;
  padding: 3.2rem 1.5rem 1.5rem;
  background:
    radial-gradient(ellipse 70% 40% at 50% 0%, rgba(201, 160, 106, 0.1), transparent 60%),
    linear-gradient(180deg, #0f1f31 0%, #091321 100%);
  border-radius: 20px;
  box-shadow:
    0 40px 100px -25px rgba(10, 22, 40, 0.5),
    0 0 0 1px rgba(201, 160, 106, 0.22),
    inset 0 1px 0 rgba(201, 160, 106, 0.24);
  margin-bottom: 3.2rem;
  isolation: isolate;
}
.atlas-frame::after {
  content: '';
  position: absolute;
  inset: 14px;
  border: 1px solid rgba(201, 160, 106, 0.16);
  border-radius: 14px;
  pointer-events: none;
  z-index: 0;
}

/* Brass plaque with BH monogram, centered on the top rail */
.atlas-plaque {
  position: absolute;
  top: -22px;
  left: 50%;
  transform: translateX(-50%);
  display: inline-flex;
  align-items: center;
  gap: 0.9rem;
  padding: 0.55rem 1.5rem;
  background: linear-gradient(180deg, #d9b684 0%, #a0814f 100%);
  color: var(--navy-900);
  border-radius: 999px;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.32),
    inset 0 -1px 0 rgba(0, 0, 0, 0.22),
    0 8px 22px rgba(0, 0, 0, 0.32);
  z-index: 3;
  max-width: calc(100% - 120px);
}
.atlas-plaque-mark {
  font-family: var(--font-display);
  font-weight: 500;
  font-style: italic;
  font-size: 1rem;
  padding: 0.12em 0.5em;
  border: 1px solid rgba(10, 22, 40, 0.4);
  border-radius: 4px;
}
.atlas-plaque-text {
  font-family: var(--font-body);
  font-size: 0.7rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  font-weight: 600;
  white-space: nowrap;
}
.atlas-plaque-text em {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 400;
  text-transform: none;
  letter-spacing: 0.02em;
  font-size: 1.15em;
  margin-left: 0.3em;
}
.atlas-plaque-line {
  width: 16px;
  height: 1px;
  background: rgba(10, 22, 40, 0.42);
}

/* Gold L-brackets on the outer frame */
.atlas-corner {
  position: absolute;
  width: 30px;
  height: 30px;
  border-color: var(--gold-500);
  border-style: solid;
  z-index: 2;
  pointer-events: none;
}
.atlas-corner.tl { top: 10px; left: 10px; border-width: 2px 0 0 2px; border-top-left-radius: 6px; }
.atlas-corner.tr { top: 10px; right: 10px; border-width: 2px 2px 0 0; border-top-right-radius: 6px; }
.atlas-corner.bl { bottom: 10px; left: 10px; border-width: 0 0 2px 2px; border-bottom-left-radius: 6px; }
.atlas-corner.br { bottom: 10px; right: 10px; border-width: 0 2px 2px 0; border-bottom-right-radius: 6px; }

/* Compass rose watermark inside the map */
.atlas-compass {
  position: absolute;
  bottom: 1.4rem;
  right: 1.4rem;
  width: 88px;
  height: 88px;
  color: var(--gold-300);
  z-index: 500;
  pointer-events: none;
  filter: drop-shadow(0 2px 6px rgba(10, 22, 40, 0.35));
}
.atlas-compass svg { width: 100%; height: 100%; display: block; }
/* (Removed: `.atlas-frame .map-container`, `.atlas-frame .map-legend`,
   `.map-legend-head`, `.map-legend-glyph`, `.atlas-frame .legend-item`,
   `.legend-count`, `.map-legend-foot` — legacy framed-map rules. The
   Portfolio Atlas now lives inside `.atlas-map-wrap` + `.atlas-rail`.) */

/* (Removed: editorial I./II. section openers — `.atlas-section-head*` rules.
   They were tied to the Flagship Destinations + Market Atlas chip list,
   both of which were deleted from the homepage.) */

/* ===========================================
   PORTFOLIO ATLAS — premium map showcase
   =========================================== */

/* Editorial header stats row */
.atlas-head__stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.5rem;
  list-style: none;
  margin: 1.85rem auto 0;
  padding: 1.4rem 0.5rem;
  max-width: 720px;
  border-top: 1px solid rgba(201, 160, 106, 0.28);
  border-bottom: 1px solid rgba(201, 160, 106, 0.28);
}
.atlas-head__stat {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.3rem;
  text-align: center;
}
.atlas-head__stat + .atlas-head__stat::before {
  content: '';
  position: absolute;
  left: 0;
  top: 18%;
  bottom: 18%;
  width: 1px;
  background: rgba(201, 160, 106, 0.28);
}
.atlas-head__stat-num {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: clamp(1.55rem, 2.6vw, 2rem);
  line-height: 1;
  color: var(--navy-900);
  letter-spacing: -0.01em;
}
.atlas-head__stat-num sup {
  font-size: 0.55em;
  color: var(--gold-500);
  margin-left: 1px;
  vertical-align: super;
  font-weight: 500;
}
.atlas-head__stat-lbl {
  font-family: var(--font-body);
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(16, 31, 48, 0.6);
}

/* Showcase wrapper */
.atlas-showcase {
  position: relative;
  margin-bottom: 3.2rem;
}
.atlas-frame--showcase { padding: 3.2rem 1.5rem 1.5rem; }

/* Filter bar */
.atlas-filters {
  position: relative;
  z-index: 2;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  padding: 0.4rem;
  margin-bottom: 1.2rem;
  background: rgba(10, 22, 40, 0.45);
  border: 1px solid rgba(201, 160, 106, 0.22);
  border-radius: 999px;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}
.atlas-filter {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.55rem 1.05rem;
  font-family: var(--font-body);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(245, 235, 215, 0.72);
  background: transparent;
  border: 1px solid transparent;
  border-radius: 999px;
  cursor: pointer;
  white-space: nowrap;
  transition: color 0.3s var(--ease-out), background 0.3s var(--ease-out), border-color 0.3s var(--ease-out), box-shadow 0.3s var(--ease-out), transform 0.3s var(--ease-out);
}
.atlas-filter:hover {
  color: var(--cream-50);
  background: rgba(201, 160, 106, 0.12);
  border-color: rgba(201, 160, 106, 0.32);
}
.atlas-filter:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(201, 160, 106, 0.4);
}
.atlas-filter.is-active {
  background: linear-gradient(180deg, var(--gold-400) 0%, var(--gold-500) 100%);
  color: var(--navy-900);
  border-color: var(--gold-500);
  box-shadow: 0 6px 16px rgba(201, 160, 106, 0.28), inset 0 1px 0 rgba(255, 255, 255, 0.35);
}
.atlas-filter__dot {
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--gold-500);
  box-shadow: 0 0 0 3px rgba(201, 160, 106, 0.25);
}
.atlas-filter.is-active .atlas-filter__dot {
  background: var(--navy-900);
  box-shadow: 0 0 0 3px rgba(10, 22, 40, 0.18);
}
.atlas-filter--accent svg { color: currentColor; opacity: 0.85; }

/* Showcase split grid */
.atlas-grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1.85fr) minmax(280px, 1fr);
  gap: 1.25rem;
  align-items: stretch;
}

/* Map area */
.atlas-map-wrap {
  position: relative;
  height: 580px;
  border-radius: 12px;
  overflow: hidden;
  background: #0b1a2e;
  box-shadow:
    0 22px 50px rgba(0, 0, 0, 0.32),
    0 0 0 1px rgba(201, 160, 106, 0.32),
    inset 0 0 0 4px rgba(10, 22, 40, 0.4);
}
.atlas-map-wrap::after {
  /* faint inner vignette */
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 410;
  box-shadow: inset 0 0 80px 16px rgba(10, 22, 40, 0.45);
  border-radius: inherit;
}
.atlas-map { width: 100%; height: 100%; background: #0b1a2e; }

/* Custom map controls */
.atlas-controls {
  position: absolute;
  top: 1rem;
  right: 1rem;
  z-index: 600;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}
.atlas-ctrl {
  width: 38px; height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(253, 249, 243, 0.96);
  color: var(--navy-900);
  border: 1px solid rgba(201, 160, 106, 0.5);
  border-radius: 12px;
  cursor: pointer;
  box-shadow: 0 6px 14px rgba(10, 22, 40, 0.25);
  transition: background 0.25s var(--ease-out), color 0.25s var(--ease-out), border-color 0.25s var(--ease-out), transform 0.25s var(--ease-out);
}
.atlas-ctrl:hover {
  background: var(--gold-500);
  color: var(--navy-900);
  border-color: var(--gold-500);
  transform: translateY(-1px);
}
.atlas-ctrl:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(201, 160, 106, 0.5);
}
.atlas-ctrl[disabled] { opacity: 0.5; cursor: not-allowed; }

/* Compass watermark — adjust for new wrapper */
.atlas-map-wrap .atlas-compass {
  position: absolute;
  bottom: 1.1rem;
  right: 1.1rem;
  width: 78px; height: 78px;
  color: var(--gold-300);
  z-index: 500;
  pointer-events: none;
  filter: drop-shadow(0 2px 6px rgba(10, 22, 40, 0.4));
  opacity: 0.7;
}

/* Right-side Portfolio Index rail */
.atlas-rail {
  position: relative;
  z-index: 1;
  background: linear-gradient(180deg, var(--cream-50) 0%, #fffaf0 100%);
  border: 1px solid rgba(201, 160, 106, 0.35);
  border-radius: 14px;
  padding: 1.5rem 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
  box-shadow: 0 18px 40px rgba(10, 22, 40, 0.22), inset 0 1px 0 rgba(255, 255, 255, 0.5);
}
.atlas-rail__head { display: flex; flex-direction: column; gap: 0.4rem; }
.atlas-rail__kicker {
  font-family: var(--font-body);
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--gold-500);
}
.atlas-rail__title {
  margin: 0;
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 1.55rem;
  line-height: 1.15;
  color: var(--navy-900);
  letter-spacing: -0.012em;
}
.atlas-rail__title em { font-style: italic; color: var(--gold-500); font-weight: 400; }
.atlas-rail__intro {
  margin: 0;
  font-size: 0.85rem;
  line-height: 1.55;
  color: rgba(16, 31, 48, 0.7);
}

/* Legend */
.atlas-rail__legend {
  list-style: none;
  margin: 0;
  padding: 0.85rem 0;
  border-top: 1px solid rgba(201, 160, 106, 0.25);
  border-bottom: 1px solid rgba(201, 160, 106, 0.25);
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}
.atlas-legend-item {
  display: grid;
  grid-template-columns: 18px 1fr auto;
  align-items: center;
  gap: 0.65rem;
  font-size: 0.78rem;
  color: var(--navy-900);
}
.atlas-legend-item__label {
  font-family: var(--font-body);
  font-weight: 500;
  letter-spacing: 0.01em;
}
.atlas-legend-item__count {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 500;
  font-size: 0.95rem;
  color: var(--gold-500);
  font-variant-numeric: tabular-nums;
}
.atlas-dot {
  width: 12px; height: 12px;
  border-radius: 50%;
  display: inline-block;
  box-shadow: 0 0 0 3px rgba(201, 160, 106, 0.18);
}
.atlas-dot--hq {
  background: var(--gold-500);
  box-shadow: 0 0 0 3px rgba(201, 160, 106, 0.4), 0 0 0 6px rgba(201, 160, 106, 0.16);
}
.atlas-dot--nc { background: var(--gold-400); }
.atlas-dot--us { background: var(--gold-500); box-shadow: 0 0 0 2px rgba(201, 160, 106, 0.18), 0 0 0 4px rgba(10,22,40,0.06); }
.atlas-dot--intl {
  background: linear-gradient(135deg, #6f93ba 0%, #b29b6e 100%);
  box-shadow: 0 0 0 3px rgba(111, 147, 186, 0.18);
}

/* Selected-market card */
.atlas-card {
  position: relative;
  padding: 1.1rem 1.1rem 1.2rem;
  background: linear-gradient(180deg, #fffaf0 0%, var(--cream-50) 100%);
  border: 1px solid rgba(201, 160, 106, 0.32);
  border-radius: 12px;
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  transition: border-color 0.4s var(--ease-out), box-shadow 0.4s var(--ease-out);
}
.atlas-card.is-selected {
  border-color: rgba(201, 160, 106, 0.6);
  box-shadow: 0 14px 32px rgba(201, 160, 106, 0.18);
}
.atlas-card__rule {
  display: block;
  width: 30px;
  height: 1px;
  background: var(--gold-500);
  opacity: 0.85;
  margin-bottom: 0.2rem;
}
.atlas-card__kicker {
  font-family: var(--font-body);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--gold-500);
}
.atlas-card__title {
  margin: 0;
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 1.2rem;
  line-height: 1.2;
  color: var(--navy-900);
}
.atlas-card__title em { font-style: italic; color: var(--gold-500); font-weight: 400; }
.atlas-card__desc {
  margin: 0;
  font-size: 0.82rem;
  line-height: 1.55;
  color: rgba(16, 31, 48, 0.72);
}
.atlas-card__region {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  align-self: flex-start;
  padding: 0.3rem 0.65rem;
  font-family: var(--font-body);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--gold-500);
  background: rgba(201, 160, 106, 0.12);
  border-radius: 999px;
}
.atlas-card__tag {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  align-self: flex-start;
  padding: 0.32rem 0.7rem;
  background: var(--gold-500);
  color: var(--cream-50);
  font-family: var(--font-body);
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  border-radius: 999px;
}
.atlas-card__tag::before {
  content: '';
  width: 5px; height: 5px;
  border-radius: 50%;
  background: var(--cream-50);
  box-shadow: 0 0 0 2px rgba(255,255,255,0.45);
  animation: bhPulseTiny 2s ease-out infinite;
}
@keyframes bhPulseTiny {
  0%, 100% { box-shadow: 0 0 0 2px rgba(255,255,255,0.45); }
  50%      { box-shadow: 0 0 0 4px rgba(255,255,255,0.18); }
}
.atlas-card__cta {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  align-self: flex-start;
  margin-top: 0.4rem;
  padding: 0.55rem 0.95rem;
  font-family: var(--font-body);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--cream-50);
  background: var(--navy-900);
  border: 1px solid var(--navy-900);
  border-radius: 999px;
  text-decoration: none;
  cursor: pointer;
  transition: background 0.3s var(--ease-out), transform 0.3s var(--ease-out);
}
.atlas-card__cta:hover { background: var(--gold-500); border-color: var(--gold-500); color: var(--navy-900); transform: translateY(-1px); }
.atlas-card__cta svg { transition: transform 0.3s var(--ease-out); }
.atlas-card__cta:hover svg { transform: translateX(2px); }

/* Default-state meta row */
.atlas-card__meta {
  list-style: none;
  margin: 0.4rem 0 0;
  padding: 0.6rem 0 0;
  border-top: 1px dashed rgba(201, 160, 106, 0.32);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.5rem;
}
.atlas-card__meta li { display: flex; flex-direction: column; gap: 0.15rem; align-items: flex-start; }
.atlas-card__meta-num {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: 1.15rem;
  line-height: 1;
  color: var(--navy-900);
}
.atlas-card__meta-num sup { font-size: 0.55em; color: var(--gold-500); margin-left: 1px; vertical-align: super; }
.atlas-card__meta-lbl {
  font-family: var(--font-body);
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(16, 31, 48, 0.55);
}

/* Bottom CTA */
.atlas-cta {
  margin-top: 1.5rem;
  padding: 1.4rem clamp(1.25rem, 2.5vw, 2rem);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem 1.5rem;
  background: linear-gradient(180deg, var(--cream-50) 0%, #f7ecd6 100%);
  border: 1px solid rgba(201, 160, 106, 0.32);
  border-radius: 16px;
  box-shadow: 0 10px 28px rgba(10, 22, 40, 0.06);
}
.atlas-cta__text {
  margin: 0;
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 400;
  font-size: 1.05rem;
  color: var(--navy-900);
  max-width: 60ch;
  line-height: 1.45;
}
.atlas-cta__btn {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.85rem 1.5rem;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  border-radius: 999px;
  white-space: nowrap;
  text-decoration: none;
}
.atlas-cta__btn svg { transition: transform 0.3s var(--ease-out); }
.atlas-cta__btn:hover svg { transform: translateX(3px); }

/* Reveal animations */
.atlas-showcase {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.8s var(--ease-out), transform 0.8s var(--ease-out);
}
.atlas-showcase.in,
.map-wrapper.in .atlas-showcase { opacity: 1; transform: translateY(0); }
.atlas-head__stats { opacity: 0; transform: translateY(8px); transition: opacity 0.7s var(--ease-out) 0.1s, transform 0.7s var(--ease-out) 0.1s; }
.atlas-head.in .atlas-head__stats { opacity: 1; transform: translateY(0); }

@media (prefers-reduced-motion: reduce) {
  .atlas-showcase, .atlas-head__stats {
    opacity: 1; transform: none; transition: none;
  }
  .atlas-card__tag::before { animation: none; }
}

/* ============================================
   PREMIUM MAP MARKERS (divIcon based)
   ============================================ */
.bh-pin-host { background: transparent; border: none; }

.bh-pin {
  --bh-pin-bg: var(--gold-500);
  --bh-pin-ring: rgba(201, 160, 106, 0.35);
  --bh-pin-core: var(--cream-50);
  position: relative;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--bh-pin-bg);
  box-shadow:
    0 0 0 3px var(--bh-pin-ring),
    0 4px 10px rgba(10, 22, 40, 0.35);
  cursor: pointer;
  transition: transform 0.25s var(--ease-out), box-shadow 0.3s var(--ease-out), opacity 0.4s var(--ease-out);
}
.bh-pin::after {
  content: '';
  position: absolute; inset: 6px;
  border-radius: 50%;
  background: var(--bh-pin-core);
  box-shadow: 0 1px 2px rgba(10, 22, 40, 0.25);
}
.bh-pin:hover {
  transform: scale(1.15);
  box-shadow:
    0 0 0 5px var(--bh-pin-ring),
    0 0 0 9px rgba(201, 160, 106, 0.12),
    0 8px 20px rgba(10, 22, 40, 0.45);
}

/* Headquarters / flagship */
.bh-pin--hq {
  --bh-pin-bg: var(--gold-500);
  --bh-pin-ring: rgba(232, 208, 171, 0.55);
  width: 30px; height: 30px;
  box-shadow:
    0 0 0 4px rgba(232, 208, 171, 0.45),
    0 0 0 9px rgba(201, 160, 106, 0.18),
    0 6px 16px rgba(10, 22, 40, 0.45);
}
.bh-pin--hq::after { inset: 8px; }
.bh-pin--hq::before {
  content: '';
  position: absolute; inset: -4px;
  border-radius: 50%;
  border: 1px solid rgba(232, 208, 171, 0.55);
  animation: bhPinPulse 2.4s ease-out infinite;
  pointer-events: none;
}
@keyframes bhPinPulse {
  0%   { transform: scale(0.9); opacity: 0.85; }
  70%  { transform: scale(1.6); opacity: 0; }
  100% { transform: scale(1.6); opacity: 0; }
}

.bh-pin--us {
  --bh-pin-bg: var(--gold-500);
  --bh-pin-ring: rgba(201, 160, 106, 0.28);
  width: 18px; height: 18px;
}
.bh-pin--us::after { inset: 5px; }

.bh-pin--mx {
  --bh-pin-bg: linear-gradient(135deg, #6f93ba 0%, #b29b6e 100%);
  --bh-pin-ring: rgba(111, 147, 186, 0.32);
  --bh-pin-core: var(--cream-50);
  width: 26px; height: 26px;
  background: linear-gradient(135deg, #6f93ba 0%, #b29b6e 100%);
}
.bh-pin--mx::after { inset: 7px; }

.bh-pin--co {
  --bh-pin-bg: linear-gradient(135deg, #7c9a6f 0%, #b29b6e 100%);
  --bh-pin-ring: rgba(124, 154, 111, 0.32);
  --bh-pin-core: var(--cream-50);
  width: 26px; height: 26px;
  background: linear-gradient(135deg, #7c9a6f 0%, #b29b6e 100%);
}
.bh-pin--co::after { inset: 7px; }

/* Active marker */
.bh-pin--active {
  transform: scale(1.2);
  box-shadow:
    0 0 0 5px rgba(232, 208, 171, 0.55),
    0 0 0 11px rgba(201, 160, 106, 0.18),
    0 10px 22px rgba(10, 22, 40, 0.5);
  z-index: 1100 !important;
}
.bh-pin--active::before {
  content: '';
  position: absolute; inset: -5px;
  border-radius: 50%;
  border: 1px solid rgba(232, 208, 171, 0.7);
  animation: bhPinPulse 2.4s ease-out infinite;
  pointer-events: none;
}
.bh-pin--dim { opacity: 0.18; pointer-events: auto; }

/* Country medallion (Mexico/Colombia at low zoom) */
.bh-country {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.45rem 0.85rem;
  background: linear-gradient(180deg, rgba(245, 235, 215, 0.96) 0%, rgba(232, 208, 171, 0.92) 100%);
  color: var(--navy-900);
  border: 1px solid rgba(201, 160, 106, 0.6);
  border-radius: 999px;
  font-family: var(--font-body);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  box-shadow:
    0 8px 20px rgba(10, 22, 40, 0.4),
    inset 0 1px 0 rgba(255, 255, 255, 0.55);
  white-space: nowrap;
  cursor: pointer;
  transition: transform 0.3s var(--ease-out), box-shadow 0.3s var(--ease-out);
}
.bh-country:hover {
  transform: translateY(-2px) scale(1.03);
  box-shadow: 0 14px 30px rgba(10, 22, 40, 0.5), inset 0 1px 0 rgba(255, 255, 255, 0.55);
}
.bh-country__dot {
  width: 9px; height: 9px;
  border-radius: 50%;
}
.bh-country--mx .bh-country__dot { background: linear-gradient(135deg, #6f93ba 0%, #b29b6e 100%); box-shadow: 0 0 0 2px rgba(111,147,186,0.3); }
.bh-country--co .bh-country__dot { background: linear-gradient(135deg, #7c9a6f 0%, #b29b6e 100%); box-shadow: 0 0 0 2px rgba(124,154,111,0.3); }

/* Restyle Leaflet popup as elegant ivory card */
.atlas-map-wrap .leaflet-popup-content-wrapper {
  background: var(--cream-50);
  color: var(--navy-900);
  border: 1px solid rgba(201, 160, 106, 0.45);
  border-radius: 12px;
  box-shadow: 0 14px 30px rgba(10, 22, 40, 0.35);
  padding: 0;
  overflow: hidden;
}
.atlas-map-wrap .leaflet-popup-content {
  margin: 0.85rem 1rem;
  font-family: var(--font-body);
  font-size: 0.82rem;
  line-height: 1.5;
  color: rgba(16, 31, 48, 0.78);
}
.atlas-map-wrap .leaflet-popup-content strong {
  display: block;
  margin-bottom: 0.1rem;
  font-family: var(--font-display);
  font-style: normal;
  font-weight: 500;
  font-size: 1.05rem;
  color: var(--navy-900);
}
.atlas-map-wrap .leaflet-popup-content .pop-kicker {
  display: inline-block;
  margin-bottom: 0.35rem;
  font-family: var(--font-body);
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--gold-500);
}
.atlas-map-wrap .leaflet-popup-tip { background: var(--cream-50); border: 1px solid rgba(201, 160, 106, 0.45); border-top: 0; border-left: 0; }
.atlas-map-wrap .leaflet-container a.leaflet-popup-close-button {
  color: rgba(16, 31, 48, 0.45);
  padding: 6px 8px;
}
.atlas-map-wrap .leaflet-container a.leaflet-popup-close-button:hover { color: var(--gold-500); }

/* Hide default Leaflet zoom controls (we render our own) */
.atlas-map-wrap .leaflet-control-zoom,
.atlas-map-wrap .leaflet-control-attribution { display: none; }

/* ---- Premium hover tooltip (overrides Leaflet default) ---- */
.atlas-map-wrap .leaflet-tooltip.bh-tip {
  padding: 0.55rem 0.8rem;
  background: var(--cream-50);
  color: var(--navy-900);
  border: 1px solid rgba(201, 160, 106, 0.55);
  border-radius: 10px;
  box-shadow: 0 12px 28px rgba(10, 22, 40, 0.42);
  font-family: var(--font-body);
  font-size: 0.78rem;
  line-height: 1.25;
  white-space: nowrap;
  pointer-events: none;
}
.atlas-map-wrap .leaflet-tooltip.bh-tip::before {
  border-top-color: var(--cream-50);
  border-width: 6px 6px 0;
}
.bh-tip .bh-tip__eye {
  display: block;
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--gold-500);
  margin-bottom: 2px;
}
.bh-tip .bh-tip__name {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 0.95rem;
  letter-spacing: 0;
  color: var(--navy-900);
  display: block;
}

/* ---- Custom cluster medallion (Leaflet.markercluster icon) ---- */
.bh-cluster-host { background: transparent; border: none; }
.bh-cluster {
  position: relative;
  width: 50px; height: 50px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: transform 0.25s var(--ease-out);
}
.bh-cluster:hover { transform: scale(1.08); }
.bh-cluster__ring {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: radial-gradient(closest-side, rgba(232,208,171,0.45), rgba(201,160,106,0.18) 60%, transparent 75%);
  animation: bhClusterPulse 2.6s ease-out infinite;
}
@keyframes bhClusterPulse {
  0%   { transform: scale(0.85); opacity: 0.85; }
  70%  { transform: scale(1.15); opacity: 0; }
  100% { transform: scale(1.15); opacity: 0; }
}
.bh-cluster__core {
  position: relative;
  width: 36px; height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: linear-gradient(180deg, var(--gold-300) 0%, var(--gold-500) 60%, #a07e4a 100%);
  border: 1px solid rgba(232, 208, 171, 0.7);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.45),
    inset 0 -1px 0 rgba(10,22,40,0.25),
    0 6px 16px rgba(10, 22, 40, 0.55);
}
.bh-cluster__core::before {
  content: '';
  position: absolute; inset: 3px;
  border-radius: 50%;
  border: 1px solid rgba(10, 22, 40, 0.18);
}
.bh-cluster__count {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 14px;
  color: var(--navy-900);
  letter-spacing: -0.01em;
  text-shadow: 0 1px 0 rgba(255,255,255,0.35);
  font-variant-numeric: tabular-nums;
}

/* Subtle gold route arcs */
.atlas-map-wrap .leaflet-overlay-pane path.bh-route {
  filter: drop-shadow(0 0 4px rgba(201, 160, 106, 0.35));
}

/* Responsive: tablet — drop the rail under the map and shrink the map a bit. */
@media (max-width: 1024px) {
  .atlas-grid { grid-template-columns: 1fr; }
  .atlas-map-wrap { height: 520px; }
  .atlas-rail { padding: 1.25rem 1.1rem; }
}
/* Mid-tablet (~860px) — settle into the same height the previous design used. */
@media (max-width: 900px) {
  .atlas-map-wrap { height: 480px; }
}

/* Responsive: mobile */
@media (max-width: 720px) {
  .atlas-frame--showcase { padding: 2.6rem 1rem 1rem; }
  .atlas-filters {
    flex-wrap: nowrap;
    overflow-x: auto;
    scrollbar-width: none;
    border-radius: 14px;
  }
  .atlas-filters::-webkit-scrollbar { display: none; }
  .atlas-filter { padding: 0.5rem 0.85rem; font-size: 0.66rem; letter-spacing: 0.14em; }
  .atlas-map-wrap { height: 440px; }
  .atlas-rail__title { font-size: 1.35rem; }
  .atlas-rail__legend { padding: 0.7rem 0; }
  .atlas-cta { flex-direction: column; align-items: flex-start; padding: 1.25rem; }
  .atlas-cta__btn { width: 100%; justify-content: center; }
  .atlas-head__stats {
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem 0.5rem;
    padding: 1.2rem 0.4rem;
  }
  .atlas-head__stat:nth-child(odd)::before { display: none; }
  .atlas-controls { top: 0.75rem; right: 0.75rem; }
  .atlas-ctrl { width: 36px; height: 36px; }
}

@media (max-width: 780px) {
  .atlas-frame { padding: 2.6rem 1rem 1rem; border-radius: 14px; }
  .atlas-plaque { gap: 0.5rem; padding: 0.4rem 1rem; }
  .atlas-plaque-line { display: none; }
  .atlas-plaque-text { font-size: 0.6rem; letter-spacing: 0.16em; }
  .atlas-compass { width: 60px; height: 60px; bottom: 1rem; right: 1rem; }
}


/* Custom Leaflet marker */
.custom-pin {
  background: transparent;
  border: none;
}
.pin-marker {
  position: relative;
  width: 24px;
  height: 24px;
}
.pin-marker::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: var(--gold-500);
  box-shadow: 0 0 0 6px rgba(212, 165, 116, 0.25), 0 4px 12px rgba(10, 22, 40, 0.3);
}
.pin-marker::after {
  content: '';
  position: absolute;
  inset: 6px;
  border-radius: 50%;
  background: var(--cream-50);
}
.pin-marker.pulse::before { animation: pinPulse 2s ease-out infinite; }
@keyframes pinPulse {
  0%   { box-shadow: 0 0 0 4px rgba(212, 165, 116, 0.4), 0 4px 12px rgba(10, 22, 40, 0.3); }
  70%  { box-shadow: 0 0 0 18px rgba(212, 165, 116, 0), 0 4px 12px rgba(10, 22, 40, 0.3); }
  100% { box-shadow: 0 0 0 4px rgba(212, 165, 116, 0), 0 4px 12px rgba(10, 22, 40, 0.3); }
}

.leaflet-popup-content-wrapper {
  border-radius: 12px;
  box-shadow: var(--shadow-lg);
  background: var(--navy-900);
  color: var(--cream-50);
}
.leaflet-popup-content {
  margin: 0.9rem 1.1rem;
  font-family: var(--font-body);
  font-size: 0.9rem;
}
.leaflet-popup-content strong {
  color: var(--gold-400);
  font-family: var(--font-display);
  font-size: 1.05rem;
  display: block;
  margin-bottom: 0.15rem;
}
.leaflet-popup-tip { background: var(--navy-900); }
.leaflet-container { background: #0b1a2e; font-family: var(--font-body); }

/* ===========================================
   SERVICES
   =========================================== */
.services-section { background: var(--navy-950); color: var(--cream-50); position: relative; overflow: hidden; }
.services-section::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at top, rgba(212, 165, 116, 0.15) 0%, transparent 60%);
}
.services-section .section-head h2 { color: var(--cream-50); }
.services-section .section-head p { color: rgba(253, 249, 243, 0.7); }

.services-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(290px, 1fr));
  gap: 1.5rem;
  position: relative;
  z-index: 2;
}
.service-card {
  padding: 2.5rem 2rem;
  background: rgba(253, 249, 243, 0.04);
  border: 1px solid rgba(253, 249, 243, 0.1);
  border-radius: 20px;
  transition: all 0.5s var(--ease-out);
  position: relative;
  overflow: hidden;
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
}
.service-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(212, 165, 116, 0.12) 0%, transparent 60%);
  opacity: 0;
  transition: opacity 0.5s var(--ease-out);
}
.service-card:hover {
  transform: translateY(-6px);
  border-color: rgba(212, 165, 116, 0.5);
  background: rgba(253, 249, 243, 0.06);
}
.service-card:hover::before { opacity: 1; }

.service-icon {
  width: 56px; height: 56px;
  border-radius: 14px;
  background: linear-gradient(135deg, var(--gold-500), var(--gold-400));
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1.5rem;
  font-size: 1.6rem;
  color: var(--navy-900);
  position: relative;
  z-index: 1;
}
.service-card h3 {
  color: var(--cream-50);
  font-size: 1.35rem;
  margin-bottom: 0.75rem;
  position: relative; z-index: 1;
}
.service-card p {
  color: rgba(253, 249, 243, 0.7);
  font-size: 0.95rem;
  line-height: 1.65;
  position: relative; z-index: 1;
}

/* ---- BENTO VARIANT (home page) ---- */
.services-grid.bento {
  grid-template-columns: repeat(4, 1fr);
}
@media (max-width: 980px) {
  .services-grid.bento { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
  .services-grid.bento { grid-template-columns: 1fr; }
}

.services-grid.bento .service-card {
  min-height: 260px;
  display: flex;
  flex-direction: column;
  padding: 2.25rem 1.75rem;
}

/* Italic gold numeral, top-right */
.services-grid.bento .service-num {
  position: absolute;
  top: 1.1rem;
  right: 1.3rem;
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 400;
  font-size: 1rem;
  color: var(--gold-500);
  letter-spacing: 0.05em;
  opacity: 0.75;
  z-index: 2;
  transition: opacity 0.4s var(--ease-out), transform 0.4s var(--ease-out);
}
.services-grid.bento .service-card:hover .service-num {
  opacity: 1;
  transform: translateY(-2px);
}

/* Left accent line on hover */
.services-grid.bento .service-card::after {
  content: '';
  position: absolute;
  left: 0; top: 2.25rem; bottom: 2.25rem;
  width: 2px;
  background: linear-gradient(180deg, transparent, var(--gold-500), transparent);
  transform: scaleY(0);
  transform-origin: top;
  transition: transform 0.55s var(--ease-out);
  border-radius: 2px;
  z-index: 2;
}
.services-grid.bento .service-card:hover::after { transform: scaleY(1); }

/* Icon polish */
.services-grid.bento .service-icon {
  transition: transform 0.5s var(--ease-out), box-shadow 0.5s var(--ease-out);
  box-shadow: 0 8px 24px rgba(201, 160, 106, 0.18);
}
.services-grid.bento .service-card:hover .service-icon {
  transform: translateY(-3px) scale(1.04);
  box-shadow: 0 14px 32px rgba(201, 160, 106, 0.35);
}

/* Highlight dollar-amount in AirCover copy */
.services-grid.bento .service-card p strong {
  color: var(--gold-400);
  font-weight: 600;
}

/* ---- FLAGSHIP TILE ---- */
.services-grid.bento .service-card.flagship {
  grid-column: span 2;
  grid-row: span 1;
  padding: 2.75rem 2.5rem;
  background: rgba(253, 249, 243, 0.055);
  border-color: rgba(212, 165, 116, 0.3);
}
.services-grid.bento .service-card.flagship::before {
  background:
    radial-gradient(circle at top right, rgba(212, 165, 116, 0.22) 0%, transparent 55%),
    linear-gradient(135deg, rgba(212, 165, 116, 0.08) 0%, transparent 60%);
  opacity: 1;
}
.services-grid.bento .service-card.flagship .service-num {
  font-size: 1.2rem;
  top: 1.5rem;
  right: 1.75rem;
  opacity: 0.9;
}
.services-grid.bento .service-icon.halo {
  width: 68px; height: 68px;
  border-radius: 18px;
  margin-bottom: 1.75rem;
  box-shadow:
    0 0 0 8px rgba(201, 160, 106, 0.10),
    0 0 0 16px rgba(201, 160, 106, 0.05),
    0 14px 34px rgba(201, 160, 106, 0.30);
}
.services-grid.bento .service-card.flagship h3 {
  font-size: 1.7rem;
  margin-bottom: 0.5rem;
}
.services-grid.bento .service-card.flagship .service-lede {
  font-size: 1.05rem;
  color: rgba(253, 249, 243, 0.85);
  margin-bottom: 1.4rem;
  max-width: 46ch;
  line-height: 1.55;
  position: relative; z-index: 1;
}
.service-bullets {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  position: relative;
  z-index: 1;
}
.service-bullets li {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  color: rgba(253, 249, 243, 0.78);
  font-size: 0.93rem;
}
.service-bullets svg {
  color: var(--gold-400);
  flex-shrink: 0;
}

@media (max-width: 980px) {
  .services-grid.bento .service-card.flagship { grid-column: span 2; }
}
@media (max-width: 560px) {
  .services-grid.bento .service-card.flagship { grid-column: span 1; }
  .services-grid.bento .service-card.flagship h3 { font-size: 1.45rem; }
}

/* =============================================================
   SERVICES · EDITORIAL SHOWCASE (home page)
   Replaces the old bento grid with a two-column editorial layout:
   (1) a flagship feature panel with a subtle styled-room backdrop,
   (2) a refined "magazine index" list for services 02–07.
   ============================================================= */
.services-showcase {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
  gap: 3rem;
  align-items: stretch;
  position: relative;
  z-index: 2;
}
@media (max-width: 980px) {
  .services-showcase { grid-template-columns: 1fr; gap: 2.5rem; }
}

/* ── FLAGSHIP FEATURE PANEL ── */
.service-feature {
  position: relative;
  padding: 3rem 2.75rem 2.75rem;
  border-radius: 24px;
  border: 1px solid rgba(212, 165, 116, 0.28);
  background: linear-gradient(180deg, rgba(253, 249, 243, 0.04), rgba(253, 249, 243, 0.015));
  overflow: hidden;
  isolation: isolate;
  min-height: 100%;
}
/* Subtle interior photo under a dark gradient — reinforces "styled homes" */
.service-feature-photo {
  position: absolute;
  inset: 0;
  z-index: -1;
  overflow: hidden;
  border-radius: inherit;
}
.service-feature-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.22;
  filter: saturate(0.9) contrast(1.05);
  transform: scale(1.02);
  transition: opacity 0.8s var(--ease-out), transform 10s var(--ease-out);
}
.service-feature-photo::after {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at 15% 100%, rgba(212, 165, 116, 0.22), transparent 55%),
    linear-gradient(135deg, rgba(10, 22, 40, 0.72) 0%, rgba(10, 22, 40, 0.94) 65%, rgba(10, 22, 40, 0.98) 100%);
}
.service-feature:hover .service-feature-photo img {
  opacity: 0.28;
  transform: scale(1.06);
}

/* Watermark numeral — italic, stroke only */
.service-feature-num {
  position: absolute;
  top: 1.4rem;
  right: 2rem;
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 300;
  font-size: clamp(5.5rem, 9vw, 8.5rem);
  line-height: 1;
  color: transparent;
  -webkit-text-stroke: 1px rgba(212, 165, 116, 0.38);
  opacity: 0.7;
  pointer-events: none;
  z-index: 0;
}

.service-feature-content { position: relative; z-index: 1; }

.service-feature-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--gold-400);
  margin-bottom: 1.4rem;
}
.service-feature-eyebrow::before {
  content: '';
  width: 28px;
  height: 1px;
  background: var(--gold-500);
  opacity: 0.8;
}

.service-feature-title {
  font-family: var(--font-display);
  font-size: clamp(2rem, 2.8vw, 2.55rem);
  font-weight: 300;
  line-height: 1.1;
  color: var(--cream-50);
  margin: 0 0 1rem;
  max-width: 14ch;
  letter-spacing: -0.01em;
}
.service-feature-title em {
  font-style: italic;
  font-weight: 300;
  color: var(--gold-400);
}

.service-feature-lede {
  color: rgba(253, 249, 243, 0.82);
  font-size: 1.03rem;
  line-height: 1.6;
  max-width: 40ch;
  margin: 0 0 1.6rem;
}

.service-feature-bullets {
  list-style: none;
  padding: 1.4rem 0 0;
  margin: 0 0 1.9rem;
  display: grid;
  gap: 0.65rem;
  border-top: 1px dashed rgba(212, 165, 116, 0.3);
}
.service-feature-bullets li {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  color: rgba(253, 249, 243, 0.86);
  font-size: 0.93rem;
  line-height: 1.5;
}
.service-feature-bullets svg {
  flex-shrink: 0;
  width: 14px;
  height: 14px;
  color: var(--gold-400);
  margin-top: 0.28rem;
}

.service-feature-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.85rem 1.45rem;
  border-radius: 999px;
  background: var(--gold-500);
  color: var(--navy-900);
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 0.88rem;
  letter-spacing: 0.01em;
  text-decoration: none;
  transition: background 0.3s var(--ease-out), transform 0.3s var(--ease-out),
              box-shadow 0.3s var(--ease-out);
}
.service-feature-cta svg { transition: transform 0.3s var(--ease-out); }
.service-feature-cta:hover {
  background: var(--gold-400);
  transform: translateY(-2px);
  box-shadow: 0 14px 30px rgba(201, 160, 106, 0.35);
}
.service-feature-cta:hover svg { transform: translateX(3px); }

/* ── CREDIBILITY CLOSER · Superhost badge + lifetime stats ── */
.service-feature-proof {
  margin-top: 2rem;
  padding-top: 1.6rem;
  border-top: 1px dashed rgba(212, 165, 116, 0.3);
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

/* Airbnb Superhost "credential chip" */
.service-feature-badge {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.85rem;
  padding: 0.7rem 1.1rem;
  width: 100%;
  align-self: stretch;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 56, 92, 0.28);
  border-radius: 14px;
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
}
.service-feature-badge-mark {
  flex: 0 0 auto;
  width: 34px;
  height: 34px;
  border-radius: 10px;
  background: rgba(255, 56, 92, 0.12);
  color: #FF385C;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.service-feature-badge-text {
  display: flex;
  flex-direction: column;
  gap: 0.18rem;
}
.service-feature-badge-title {
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 0.9rem;
  letter-spacing: 0;
  color: var(--cream-50);
  line-height: 1.15;
}
.service-feature-badge-title em {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 400;
  color: var(--gold-300);
  letter-spacing: 0;
}
.service-feature-badge-stars {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  color: var(--gold-400);
  line-height: 1;
}

/* Lifetime stats trio — thin gold vertical separators, no boxes */
.service-feature-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  margin: 0;
  padding: 0;
}
.service-feature-stat {
  padding: 0 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  border-left: 1px solid rgba(212, 165, 116, 0.22);
}
.service-feature-stat:first-child {
  padding-left: 0;
  border-left: 0;
}
.service-feature-stat dt {
  order: 2;
  font-family: var(--font-body);
  font-size: 0.66rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(253, 249, 243, 0.55);
  line-height: 1.2;
}
.service-feature-stat dd {
  order: 1;
  font-family: var(--font-display);
  font-weight: 400;
  font-size: clamp(1.45rem, 2.2vw, 1.8rem);
  line-height: 1;
  color: var(--cream-50);
  letter-spacing: -0.01em;
  margin: 0;
  display: inline-flex;
  align-items: baseline;
  gap: 0.18rem;
}
.service-feature-stat-star {
  color: var(--gold-400);
  font-size: 0.78em;
  line-height: 1;
}

@media (max-width: 640px) {
  .service-feature-proof { gap: 1rem; }
  .service-feature-stat { padding: 0 0.7rem; }
  .service-feature-stat dd { font-size: 1.35rem; }
  .service-feature-stat dt { font-size: 0.6rem; letter-spacing: 0.14em; }
}

/* ── EDITORIAL LIST · 02–07 ── */
.service-list {
  list-style: none;
  counter-reset: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
}
.service-list-item {
  position: relative;
  display: grid;
  grid-template-columns: 44px 1fr;
  column-gap: 1.1rem;
  padding: 1.4rem 4.5rem 1.4rem 1.2rem;
  border-bottom: 1px dashed rgba(212, 165, 116, 0.2);
  transition: background 0.45s var(--ease-out), padding 0.45s var(--ease-out);
}
.service-list-item:first-child {
  border-top: 1px dashed rgba(212, 165, 116, 0.2);
}
/* Gold accent line that slides in from the left on hover */
.service-list-item::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%) scaleY(0);
  transform-origin: center;
  width: 2px;
  height: 68%;
  background: linear-gradient(180deg, transparent, var(--gold-500), transparent);
  border-radius: 2px;
  transition: transform 0.5s var(--ease-out);
}
.service-list-item:hover {
  background: rgba(212, 165, 116, 0.045);
  padding-left: 1.6rem;
  padding-right: 4.1rem;
}
.service-list-item:hover::before { transform: translateY(-50%) scaleY(1); }

/* Italic gold numeral, pushed to the right edge as a quiet counter */
.service-list-num {
  position: absolute;
  top: 50%;
  right: 1rem;
  transform: translateY(-50%);
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 300;
  font-size: 2.2rem;
  line-height: 1;
  color: var(--gold-500);
  opacity: 0.42;
  letter-spacing: 0.01em;
  transition: opacity 0.4s var(--ease-out), transform 0.4s var(--ease-out);
}
.service-list-item:hover .service-list-num {
  opacity: 1;
  transform: translateY(-50%) translateX(-4px);
}

.service-list-icon {
  width: 44px;
  height: 44px;
  border-radius: 11px;
  background: rgba(212, 165, 116, 0.08);
  border: 1px solid rgba(212, 165, 116, 0.26);
  color: var(--gold-400);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.4s var(--ease-out), border-color 0.4s var(--ease-out),
              transform 0.4s var(--ease-out), color 0.4s var(--ease-out);
}
.service-list-item:hover .service-list-icon {
  background: rgba(212, 165, 116, 0.18);
  border-color: rgba(212, 165, 116, 0.6);
  color: var(--gold-300);
  transform: scale(1.06) rotate(-2deg);
}

.service-list-body h4 {
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 1.05rem;
  color: var(--cream-50);
  margin: 0 0 0.32rem;
  line-height: 1.25;
  letter-spacing: -0.005em;
}
.service-list-body h4 em {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 400;
  color: var(--gold-300);
  letter-spacing: 0;
}
.service-list-body p {
  color: rgba(253, 249, 243, 0.66);
  font-size: 0.88rem;
  line-height: 1.55;
  margin: 0;
}
.service-list-body p strong {
  color: var(--gold-400);
  font-weight: 600;
}

/* Mobile adjustments */
@media (max-width: 640px) {
  .service-feature { padding: 2.25rem 1.75rem 2rem; }
  .service-feature-num { font-size: 5rem; top: 1rem; right: 1.25rem; }
  .service-list-item {
    padding: 1.2rem 3.2rem 1.2rem 0.8rem;
    grid-template-columns: 40px 1fr;
    column-gap: 0.9rem;
  }
  .service-list-item:hover {
    padding-left: 1.1rem;
    padding-right: 2.9rem;
  }
  .service-list-num { font-size: 1.8rem; right: 0.6rem; }
  .service-list-icon { width: 40px; height: 40px; }
}

/* ===========================================
   CORE SERVICES (services.html)
   =========================================== */
.core-services {
  background:
    radial-gradient(ellipse at 85% 8%, rgba(201, 160, 106, 0.1), transparent 55%),
    radial-gradient(ellipse at 5% 92%, rgba(16, 31, 48, 0.05), transparent 55%),
    var(--cream-50);
  position: relative;
  overflow: hidden;
  padding: 7rem 0 5rem;
}
.core-services::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(var(--sand-300) 1px, transparent 1px),
    linear-gradient(90deg, var(--sand-300) 1px, transparent 1px);
  background-size: 100px 100px;
  opacity: 0.055;
  pointer-events: none;
}

.core-service {
  position: relative;
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  gap: 5rem;
  align-items: center;
  padding: 4.5rem 0;
}
.core-service + .core-service {
  border-top: 1px solid rgba(201, 160, 106, 0.22);
  margin-top: 1rem;
}
.core-service.reverse { grid-template-columns: 1fr 1.05fr; }
.core-service.reverse .core-service-media { order: 2; }
.core-service.reverse .core-service-body  { order: 1; }

/* Large italic numeral watermark */
.core-service-number {
  position: absolute;
  top: -1.5rem;
  left: -0.5rem;
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 300;
  font-size: clamp(7rem, 14vw, 12rem);
  line-height: 1;
  color: transparent;
  -webkit-text-stroke: 1.5px rgba(201, 160, 106, 0.3);
  pointer-events: none;
  z-index: 0;
  letter-spacing: -0.04em;
  user-select: none;
}
.core-service.reverse .core-service-number { left: auto; right: -0.5rem; }

@supports (animation-timeline: view()) {
  .core-service-number {
    animation: coreNumberDrift linear both;
    animation-timeline: view();
    animation-range: entry 0% exit 100%;
  }
  @keyframes coreNumberDrift {
    from { transform: translateY(70px) rotate(-2.5deg); opacity: 0.2; }
    45%  { opacity: 1; }
    55%  { opacity: 1; }
    to   { transform: translateY(-70px) rotate(2.5deg); opacity: 0.2; }
  }
}

/* Media — single hero image with rotated gold ring */
.core-service-media {
  position: relative;
  aspect-ratio: 5 / 4;
  z-index: 1;
}
.core-service-media-ring {
  position: absolute;
  inset: -14px -14px -14px 18px;
  border-radius: 24px;
  border: 2px solid var(--gold-500);
  transform: rotate(-1.5deg);
  opacity: 0.65;
  z-index: 0;
  transition: transform 0.8s var(--ease-out), opacity 0.6s var(--ease-out);
}
.core-service-media-ring::before {
  content: '';
  position: absolute;
  inset: 8px;
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(201, 160, 106, 0.22), rgba(201, 160, 106, 0.04));
  opacity: 0.8;
  mix-blend-mode: multiply;
}
.core-service.reverse .core-service-media-ring {
  inset: -14px 18px -14px -14px;
  transform: rotate(1.5deg);
}
.core-service:hover .core-service-media-ring {
  transform: rotate(0deg);
  opacity: 0.85;
}

.core-service-media-frame {
  position: relative;
  z-index: 2;
  width: 100%;
  height: 100%;
  border-radius: 20px;
  overflow: hidden;
  box-shadow:
    0 28px 58px rgba(10, 21, 32, 0.28),
    0 0 0 1px rgba(253, 249, 243, 0.55);
  transition: transform 0.6s var(--ease-out);
}
.core-service-media-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  will-change: transform;
}
.core-service:hover .core-service-media-frame { transform: translateY(-4px); }

@supports (animation-timeline: view()) {
  .core-service-media-frame img {
    animation: coreImgParallax linear both;
    animation-timeline: view();
    animation-range: cover 0% cover 100%;
  }
  @keyframes coreImgParallax {
    from { transform: translateY(-5%) scale(1.12); }
    to   { transform: translateY(5%)  scale(1.12); }
  }
}

/* Deliverable stamp (floating) */
.core-service-media-stamp {
  position: absolute;
  bottom: -18px;
  right: -14px;
  z-index: 3;
  display: flex;
  align-items: center;
  gap: 0.7rem;
  padding: 0.85rem 1.1rem;
  background: var(--navy-900);
  color: var(--cream-50);
  border-radius: 14px;
  border: 1.5px solid var(--gold-500);
  box-shadow: 0 16px 34px rgba(10, 21, 32, 0.3);
}
.core-service.reverse .core-service-media-stamp {
  right: auto;
  left: -14px;
}
.core-service-media-stamp svg {
  color: var(--gold-400);
  flex-shrink: 0;
  filter: drop-shadow(0 2px 6px rgba(201, 160, 106, 0.35));
}
.core-service-media-stamp-text {
  display: flex;
  flex-direction: column;
  line-height: 1.1;
  gap: 0.15rem;
}
.core-service-media-stamp-value {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 1.15rem;
  color: var(--gold-400);
  letter-spacing: -0.01em;
  line-height: 1;
}
.core-service-media-stamp-label {
  font-size: 0.62rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(253, 249, 243, 0.78);
  font-weight: 600;
}

/* Body */
.core-service-body {
  position: relative;
  z-index: 1;
}

.core-service-tag {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.45rem 1rem 0.45rem 0.55rem;
  margin-bottom: 1.35rem;
  background: linear-gradient(90deg, rgba(201, 160, 106, 0.16), rgba(201, 160, 106, 0.05));
  border: 1px solid rgba(201, 160, 106, 0.28);
  border-radius: 999px;
  font-size: 0.72rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--gold-500);
}
.core-service-tag-num {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 0.95rem;
  font-weight: 500;
  color: var(--navy-900);
  background: var(--cream-50);
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(201, 160, 106, 0.35);
  letter-spacing: -0.02em;
}
.core-service-tag-divider {
  width: 1px;
  height: 14px;
  background: rgba(201, 160, 106, 0.4);
}

.core-service-body h3 {
  font-size: clamp(2rem, 3.6vw, 2.85rem);
  line-height: 1.08;
  margin-bottom: 1.35rem;
  color: var(--navy-900);
  font-weight: 400;
  letter-spacing: -0.02em;
}
.core-service-body h3 em {
  font-style: italic;
  color: var(--gold-500);
  font-weight: 300;
}
.core-service-lede {
  font-size: 1.08rem;
  color: var(--navy-900);
  line-height: 1.7;
  margin-bottom: 1.75rem;
  font-weight: 450;
  max-width: 560px;
}

/* Inclusions grid */
.core-service-inclusions {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.7rem 0.85rem;
}
.core-service-inclusions li {
  position: relative;
  display: flex;
  align-items: center;
  gap: 0.7rem;
  padding: 0.8rem 1rem 0.8rem 0.85rem;
  background: #fff;
  border: 1px solid rgba(201, 160, 106, 0.18);
  border-radius: 10px;
  font-size: 0.9rem;
  line-height: 1.4;
  color: var(--navy-900);
  box-shadow: 0 3px 10px rgba(10, 21, 32, 0.04);
  transition: transform 0.35s var(--ease-out), border-color 0.35s var(--ease-out), box-shadow 0.35s var(--ease-out);
  overflow: hidden;
  font-weight: 500;
}
.core-service-inclusions li::before {
  content: '';
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 3px;
  background: var(--gold-500);
  transform: scaleY(0);
  transform-origin: top;
  transition: transform 0.4s var(--ease-out);
}
.core-service-inclusions li:hover {
  transform: translateY(-2px);
  border-color: rgba(201, 160, 106, 0.48);
  box-shadow: 0 10px 22px rgba(10, 21, 32, 0.08);
}
.core-service-inclusions li:hover::before { transform: scaleY(1); }
.core-service-inclusion-check {
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  padding: 6px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--gold-400), var(--gold-300));
  color: var(--navy-900);
  box-shadow: 0 3px 8px rgba(201, 160, 106, 0.32);
}

/* Responsive */
@media (max-width: 960px) {
  .core-services { padding: 5rem 0 3.5rem; }
  .core-service,
  .core-service.reverse { grid-template-columns: 1fr; gap: 3rem; padding: 3rem 0; }
  .core-service.reverse .core-service-media { order: -1; }
  .core-service.reverse .core-service-body { order: 0; }
  .core-service-media { max-width: 520px; margin: 0 auto; width: 100%; }
  .core-service-media-stamp { right: 0; }
  .core-service.reverse .core-service-media-stamp { left: 0; }
  .core-service-number { font-size: clamp(5.5rem, 22vw, 8rem); top: -0.5rem; }
}
@media (max-width: 560px) {
  .core-service-inclusions { grid-template-columns: 1fr; }
  .core-service-media-stamp { padding: 0.7rem 0.85rem; gap: 0.5rem; }
  .core-service-media-stamp-value { font-size: 1rem; }
  .core-service-media-stamp-label { font-size: 0.56rem; letter-spacing: 0.16em; }
}

/* ===========================================
   AIRCOVER / DAMAGE PROTECTION
   =========================================== */
.aircover-section {
  background: var(--cream-100);
  position: relative;
  overflow: hidden;
}
.aircover-section::before {
  content: '';
  position: absolute;
  top: -140px; right: -140px;
  width: 460px; height: 460px;
  background: radial-gradient(circle, rgba(201, 160, 106, 0.22) 0%, transparent 70%);
  pointer-events: none;
}
.aircover-section::after {
  content: '';
  position: absolute;
  bottom: -160px; left: -120px;
  width: 420px; height: 420px;
  background: radial-gradient(circle, rgba(30, 61, 98, 0.10) 0%, transparent 70%);
  pointer-events: none;
}
.aircover-grid {
  display: grid;
  grid-template-columns: 1fr 1.15fr;
  gap: 1.75rem;
  align-items: stretch;
  position: relative;
  z-index: 1;
}
@media (max-width: 900px) {
  .aircover-grid { grid-template-columns: 1fr; }
}

/* LEFT — big stat card */
.aircover-stat {
  background: linear-gradient(160deg, var(--navy-900) 0%, var(--navy-800) 100%);
  color: var(--cream-50);
  border-radius: 24px;
  padding: 3rem 2.25rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
  box-shadow: var(--shadow-lg);
  min-height: 340px;
}
.aircover-stat::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at top, rgba(201, 160, 106, 0.28) 0%, transparent 60%);
  pointer-events: none;
}
.aircover-shield {
  color: var(--gold-400);
  margin-bottom: 1.25rem;
  position: relative; z-index: 1;
  filter: drop-shadow(0 4px 12px rgba(201, 160, 106, 0.35));
}
.aircover-upto {
  font-size: 0.78rem;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--gold-300);
  margin-bottom: 0.55rem;
  position: relative; z-index: 1;
}
.aircover-amount {
  font-family: var(--font-display);
  font-size: clamp(3.25rem, 6.5vw, 5rem);
  font-weight: 500;
  line-height: 1;
  color: var(--gold-400);
  display: inline-flex;
  align-items: flex-start;
  letter-spacing: -0.02em;
  position: relative; z-index: 1;
}
.aircover-currency {
  font-size: 0.55em;
  margin-top: 0.35em;
  margin-right: 0.08em;
  color: var(--gold-300);
}
.aircover-amount-label {
  margin-top: 1rem;
  font-size: 0.98rem;
  color: rgba(253, 249, 243, 0.78);
  white-space: nowrap;
  position: relative; z-index: 1;
}
.aircover-brand {
  margin-top: 1.5rem;
  padding-top: 1.25rem;
  border-top: 1px solid rgba(253, 249, 243, 0.15);
  width: 100%;
  font-size: 0.75rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(253, 249, 243, 0.55);
  position: relative; z-index: 1;
}

/* RIGHT — 3-step flow */
.aircover-steps {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.9rem;
  position: relative;
  padding: 0;
  margin: 0;
}
.aircover-step {
  background: var(--cream-50);
  border: 1px solid rgba(201, 160, 106, 0.28);
  border-radius: 18px;
  padding: 1.5rem 1.75rem;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 1.25rem;
  align-items: start;
  transition: transform 0.4s var(--ease-out), border-color 0.4s var(--ease-out), box-shadow 0.4s var(--ease-out);
}
.aircover-step:hover {
  transform: translateX(4px);
  border-color: var(--gold-500);
  box-shadow: var(--shadow-md);
}
.aircover-step-num {
  font-family: var(--font-display);
  font-size: 1.85rem;
  font-weight: 500;
  color: var(--gold-500);
  line-height: 1;
  min-width: 2.5rem;
  font-style: italic;
}
.aircover-step-body h3 {
  font-family: var(--font-display);
  font-size: 1.4rem;
  font-weight: 500;
  margin-bottom: 0.35rem;
  color: var(--navy-900);
}
.aircover-step-body p {
  color: var(--ink-600);
  font-size: 0.95rem;
  line-height: 1.65;
  margin: 0;
}

/* BOTTOM — trust pills */
.aircover-pills {
  margin-top: 2.25rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem;
  justify-content: center;
  position: relative; z-index: 1;
}
.aircover-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.65rem 1.15rem;
  background: var(--cream-50);
  border: 1px solid rgba(10, 21, 32, 0.08);
  border-radius: 999px;
  font-size: 0.9rem;
  font-weight: 500;
  color: var(--navy-900);
  box-shadow: var(--shadow-sm);
  transition: transform 0.3s var(--ease-out), border-color 0.3s var(--ease-out);
}
.aircover-pill:hover {
  transform: translateY(-2px);
  border-color: var(--gold-500);
}
.aircover-pill svg {
  color: var(--gold-500);
  flex-shrink: 0;
}

/* ===========================================
   TRANSPARENCY / OWNER ACCESS
   =========================================== */
.transparency-section {
  background: var(--cream-50);
  position: relative;
  overflow: hidden;
}
.transparency-section::before {
  content: '';
  position: absolute;
  top: -180px; left: -120px;
  width: 480px; height: 480px;
  background: radial-gradient(circle, rgba(201, 160, 106, 0.18) 0%, transparent 70%);
  pointer-events: none;
}
.transparency-grid {
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  gap: 2.5rem;
  align-items: stretch;
  position: relative;
  z-index: 1;
}
@media (max-width: 960px) {
  .transparency-grid { grid-template-columns: 1fr; gap: 2rem; }
}

/* ---- LEFT: browser mock ---- */
.transparency-visual { position: relative; }
.mock-window {
  background: var(--cream-50);
  border-radius: 18px;
  box-shadow: var(--shadow-xl);
  overflow: hidden;
  border: 1px solid rgba(10, 21, 32, 0.06);
  transform: perspective(1200px) rotateY(-2deg) rotateX(1deg);
  transition: transform 0.6s var(--ease-out);
}
.mock-window:hover { transform: perspective(1200px) rotateY(0) rotateX(0); }
.mock-chrome {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.75rem 1rem;
  background: #f0e7d3;
  border-bottom: 1px solid rgba(10, 21, 32, 0.06);
}
.mock-chrome span {
  width: 10px; height: 10px; border-radius: 50%;
  display: inline-block;
}
.mock-dot-r { background: #ed6a5e; }
.mock-dot-y { background: #f5bf4f; }
.mock-dot-g { background: #62c554; }
.mock-url {
  margin-left: 0.75rem;
  font-size: 0.72rem;
  color: var(--ink-400);
  background: var(--canvas);
  padding: 0.25rem 0.85rem;
  border-radius: 999px;
  font-family: var(--font-body);
  letter-spacing: 0.02em;
}
.mock-body { padding: 1.5rem 1.5rem 1.75rem; }
.mock-header {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 0.9rem;
  align-items: center;
  padding-bottom: 1.25rem;
  border-bottom: 1px solid rgba(10, 21, 32, 0.08);
}
.mock-avatar {
  width: 44px; height: 44px;
  border-radius: 12px;
  background: linear-gradient(135deg, var(--navy-800), var(--navy-900));
  color: var(--gold-400);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 1.05rem;
  letter-spacing: -0.02em;
}
.mock-title {
  font-weight: 600;
  color: var(--navy-900);
  font-size: 0.98rem;
  margin-bottom: 0.15rem;
}
.mock-sub { font-size: 0.8rem; color: var(--ink-400); }
.mock-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  background: rgba(201, 160, 106, 0.15);
  color: var(--gold-500);
  padding: 0.35rem 0.7rem;
  border-radius: 999px;
  font-size: 0.82rem;
  font-weight: 600;
}
.mock-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.75rem;
  margin: 1.25rem 0 1.4rem;
}
.mock-stats > div {
  background: var(--canvas);
  border-radius: 12px;
  padding: 0.75rem 0.5rem;
  text-align: center;
}
.mock-stats span {
  display: block;
  font-family: var(--font-display);
  font-size: 1.35rem;
  font-weight: 500;
  color: var(--navy-900);
  line-height: 1.1;
  margin-bottom: 0.15rem;
}
.mock-stats small {
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--ink-400);
}
.mock-feed {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}
.mock-feed-item {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 0.75rem;
  align-items: center;
  padding: 0.75rem 0.9rem;
  background: var(--canvas);
  border-radius: 12px;
}
.mock-feed-item .mock-dot {
  width: 10px; height: 10px;
  border-radius: 50%;
  background: var(--gold-500);
  flex-shrink: 0;
}
.mock-feed-item .mock-dot.blue { background: #3b82c4; }
.mock-feed-item .mock-dot.green { background: #7c9f6f; }
.mock-feed-item .mock-dot.gold { background: var(--gold-500); }
.mock-feed-text strong {
  display: block;
  font-size: 0.85rem;
  color: var(--navy-900);
  margin-bottom: 0.1rem;
}
.mock-feed-text span {
  font-size: 0.78rem;
  color: var(--ink-400);
}
.mock-time {
  font-size: 0.72rem;
  color: var(--ink-400);
  letter-spacing: 0.06em;
}
.mock-caption {
  margin-top: 1.25rem;
  font-size: 0.88rem;
  color: var(--ink-600);
  text-align: center;
  max-width: 38ch;
  margin-left: auto;
  margin-right: auto;
  line-height: 1.55;
  font-style: italic;
}

/* ---- RIGHT: access list ---- */
.transparency-access {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding: 0;
  margin: 0;
  height: 100%;
}
.access-item {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 1.1rem;
  align-items: center;
  flex: 1;
  padding: 1.3rem 1.5rem;
  background: var(--canvas);
  border-radius: 16px;
  border: 1px solid transparent;
  transition: transform 0.4s var(--ease-out), border-color 0.4s var(--ease-out), box-shadow 0.4s var(--ease-out), background 0.4s var(--ease-out);
}
.access-item:hover {
  transform: translateX(4px);
  border-color: rgba(201, 160, 106, 0.4);
  box-shadow: var(--shadow-md);
  background: var(--cream-50);
}
.access-icon {
  width: 46px; height: 46px;
  border-radius: 12px;
  background: linear-gradient(135deg, var(--gold-500), var(--gold-400));
  color: var(--navy-900);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.access-item h3 {
  font-family: var(--font-display);
  font-size: 1.2rem;
  font-weight: 500;
  color: var(--navy-900);
  margin-bottom: 0.25rem;
}
.access-item p {
  color: var(--ink-600);
  font-size: 0.93rem;
  line-height: 1.6;
  margin: 0;
}

/* ---- BOTTOM: involvement stance ---- */
.transparency-stance {
  margin-top: 3.5rem;
  position: relative;
  z-index: 1;
}
.stance-head {
  text-align: center;
  max-width: 640px;
  margin: 0 auto 2rem;
}
.stance-head h3 {
  font-family: var(--font-display);
  font-size: clamp(1.6rem, 3vw, 2.1rem);
  font-weight: 500;
  color: var(--navy-900);
  line-height: 1.2;
}
.stance-head h3 em { font-style: italic; color: var(--gold-500); font-weight: 300; }
.stance-grid {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 1.5rem;
  align-items: stretch;
  max-width: 960px;
  margin: 0 auto;
}
@media (max-width: 720px) {
  .stance-grid { grid-template-columns: 1fr; }
  .stance-divider { display: none; }
}
.stance-card {
  background: var(--canvas);
  border: 1px solid rgba(201, 160, 106, 0.25);
  border-radius: 18px;
  padding: 1.75rem 1.75rem;
  transition: transform 0.4s var(--ease-out), border-color 0.4s var(--ease-out), box-shadow 0.4s var(--ease-out);
}
.stance-card:hover {
  transform: translateY(-4px);
  border-color: var(--gold-500);
  box-shadow: var(--shadow-md);
}
.stance-label {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-family: var(--font-display);
  font-size: 1.25rem;
  font-weight: 500;
  color: var(--navy-900);
  margin-bottom: 0.6rem;
}
.stance-label svg { color: var(--gold-500); }
.stance-card p {
  color: var(--ink-600);
  font-size: 0.95rem;
  line-height: 1.6;
  margin: 0;
}
.stance-divider {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}
.stance-divider span {
  font-family: var(--font-display);
  font-style: italic;
  color: var(--gold-500);
  background: var(--cream-50);
  padding: 0.4rem 0.85rem;
  font-size: 1rem;
  position: relative;
  z-index: 2;
}
.stance-divider::before {
  content: '';
  position: absolute;
  top: 50%; left: 50%;
  width: 1px; height: 60%;
  background: rgba(10, 21, 32, 0.12);
  transform: translate(-50%, -50%);
}

/* ===========================================
   TESTIMONIALS
   =========================================== */
.testimonials-section { background: var(--cream-100); }

.testimonials-track {
  display: flex;
  gap: 1.75rem;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  padding: 1rem 0.5rem 3rem;
  scrollbar-width: thin;
  scrollbar-color: var(--gold-500) transparent;
  -webkit-overflow-scrolling: touch;
}
.testimonials-track::-webkit-scrollbar { height: 6px; }
.testimonials-track::-webkit-scrollbar-thumb { background: var(--gold-500); border-radius: 3px; }

.testimonial-card {
  flex: 0 0 380px;
  background: var(--cream-50);
  padding: 2.25rem;
  border-radius: 20px;
  box-shadow: var(--shadow-sm);
  scroll-snap-align: start;
  transition: all 0.4s var(--ease-out);
  border: 1px solid rgba(217, 197, 160, 0.3);
  display: flex;
  flex-direction: column;
}
.testimonial-card:hover {
  box-shadow: var(--shadow-lg);
  transform: translateY(-4px);
  border-color: var(--gold-500);
}
.testimonial-stars {
  color: var(--gold-500);
  margin-bottom: 1rem;
  font-size: 1rem;
  letter-spacing: 0.1em;
}
.testimonial-text {
  color: var(--ink-900);
  font-size: 1rem;
  line-height: 1.7;
  margin-bottom: 1.5rem;
  font-style: italic;
  flex: 1;
}
.testimonial-author {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--sand-300);
}
.testimonial-avatar {
  width: 44px; height: 44px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--gold-500), var(--navy-800));
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--cream-50);
  font-weight: 600;
}
.testimonial-name { font-weight: 600; color: var(--navy-900); font-size: 0.95rem; }
.testimonial-role { font-size: 0.82rem; color: var(--ink-400); }

.testimonial-nav {
  display: flex;
  justify-content: center;
  gap: 0.75rem;
  margin-top: 1rem;
}
.testimonial-nav button {
  width: 44px; height: 44px;
  border-radius: 50%;
  background: var(--cream-50);
  border: 1px solid var(--sand-300);
  cursor: pointer;
  transition: all 0.3s var(--ease-out);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--navy-900);
}
.testimonial-nav button:hover {
  background: var(--navy-900);
  border-color: var(--navy-900);
  color: var(--cream-50);
}

/* ===========================================
   CTA BANNER
   =========================================== */
.cta-banner {
  background: var(--navy-900);
  color: var(--cream-50);
  position: relative;
  overflow: hidden;
  padding-bottom: 4.5rem;
}
.cta-banner::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at top left, rgba(212, 165, 116, 0.2) 0%, transparent 50%),
    radial-gradient(ellipse at bottom right, rgba(59, 130, 196, 0.15) 0%, transparent 50%);
}
.cta-banner .container {
  text-align: center;
  position: relative;
  z-index: 1;
}
.cta-banner h2 {
  color: var(--cream-50);
  font-size: clamp(2rem, 4vw, 3rem);
  margin-bottom: 1.25rem;
  max-width: 16ch;
  margin-left: auto; margin-right: auto;
}
.cta-banner h2 em { font-style: italic; color: var(--gold-400); }
.cta-banner p {
  color: rgba(253, 249, 243, 0.78);
  font-size: 1.1rem;
  max-width: 520px;
  margin: 0 auto 2.5rem;
}
.cta-ctas { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; }

/* ---- Proof stat below CTAs ---- */
.cta-proof {
  margin: 2.5rem auto 0;
  max-width: 640px;
  display: flex;
  align-items: center;
  gap: 1.5rem;
  padding: 1.25rem 1.5rem 1.25rem 1.25rem;
  background: rgba(253, 249, 243, 0.04);
  border: 1px solid rgba(212, 165, 116, 0.28);
  border-radius: 999px;
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  text-align: left;
  box-shadow: 0 12px 40px rgba(10, 21, 32, 0.35);
  position: relative;
}
.cta-proof::before {
  content: '';
  position: absolute;
  inset: -1px;
  border-radius: inherit;
  background: linear-gradient(90deg, transparent, rgba(212, 165, 116, 0.4), transparent);
  opacity: 0;
  transition: opacity 0.5s var(--ease-out);
  pointer-events: none;
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask-composite: exclude;
  -webkit-mask-composite: xor;
  padding: 1px;
}
.cta-proof:hover::before { opacity: 1; }

.cta-proof-badge {
  flex-shrink: 0;
  width: 74px; height: 74px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--gold-500), var(--gold-400));
  color: var(--navy-900);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-display);
  font-weight: 600;
  box-shadow:
    0 0 0 6px rgba(201, 160, 106, 0.12),
    0 0 0 12px rgba(201, 160, 106, 0.06),
    0 10px 24px rgba(201, 160, 106, 0.35);
  letter-spacing: -0.04em;
  line-height: 1;
}
.cta-proof-num {
  font-size: 2.3rem;
  line-height: 1;
}
.cta-proof-x {
  font-size: 1.35rem;
  font-style: italic;
  font-weight: 400;
  margin-left: 0.08em;
  opacity: 0.85;
  line-height: 1;
  align-self: center;
}

.cta-proof-text {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  line-height: 1.45;
}
.cta-proof-text strong {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 1.15rem;
  color: var(--cream-50);
  letter-spacing: -0.01em;
}
.cta-proof-text span {
  font-size: 0.92rem;
  color: rgba(253, 249, 243, 0.72);
  line-height: 1.5;
}
.cta-proof-text em {
  font-style: italic;
  color: var(--gold-400);
  font-weight: 600;
}

@media (max-width: 640px) {
  .cta-proof {
    flex-direction: column;
    border-radius: 24px;
    text-align: center;
    padding: 1.75rem 1.5rem;
    gap: 1.1rem;
  }
  .cta-proof-text { align-items: center; }
  .cta-proof-badge { width: 64px; height: 64px; }
  .cta-proof-num { font-size: 2.1rem; }
  .cta-proof-x { font-size: 1.4rem; }
}

/* ===========================================
   FOOTER
   =========================================== */
.footer {
  background: var(--navy-950);
  color: rgba(253, 249, 243, 0.7);
  padding: 5rem 0 2rem;
}
.footer-grid {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1.2fr;
  gap: 3rem;
  margin-bottom: 3rem;
}
.footer-brand {
  margin-bottom: 1rem;
  font-size: 0;
  line-height: 0;
}
.footer-logo-img {
  display: block;
  width: auto;
  height: 160px;
  max-width: 100%;
}
.footer-about { font-size: 0.92rem; line-height: 1.7; max-width: 320px; }
.footer h4 {
  color: var(--cream-50);
  font-family: var(--font-body);
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  margin-bottom: 1.25rem;
}
.footer ul { list-style: none; }
.footer li { margin-bottom: 0.6rem; }
.footer a { font-size: 0.92rem; transition: color 0.3s var(--ease-out); }
.footer a:hover { color: var(--gold-500); }
.footer-social {
  display: flex;
  gap: 0.75rem;
  margin-top: 1rem;
}
.footer-social a {
  width: 40px; height: 40px;
  border-radius: 50%;
  background: rgba(253, 249, 243, 0.08);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.3s var(--ease-out);
}
.footer-social a:hover {
  background: var(--gold-500);
  color: var(--navy-900);
  transform: translateY(-2px);
}
.footer-bottom {
  border-top: 1px solid rgba(253, 249, 243, 0.1);
  padding-top: 2rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.85rem;
  flex-wrap: wrap;
  gap: 1rem;
}
@media (max-width: 860px) {
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 2rem; }
}
@media (max-width: 520px) {
  .footer-grid { grid-template-columns: 1fr; }
}

/* ===========================================
   SCROLL REVEAL

   Scoped under html.js so the hide-then-fade-in effect only applies when
   JS is actually running. If the inline gate script fails (ancient browser,
   blocked scripts, CSP), `html.js` is never added and `.reveal` elements
   render as plain visible content — the page can never be left blank by a
   non-firing IntersectionObserver.
   =========================================== */
html.js .reveal {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.8s var(--ease-out), transform 0.8s var(--ease-out);
}
html.js .reveal.in { opacity: 1; transform: translateY(0); }
html.js .reveal.delay-1 { transition-delay: 0.1s; }
html.js .reveal.delay-2 { transition-delay: 0.2s; }
html.js .reveal.delay-3 { transition-delay: 0.3s; }
html.js .reveal.delay-4 { transition-delay: 0.4s; }

/* ===========================================
   PAGE HEADERS — premium editorial hero (sub-pages)
   =========================================== */
.page-header {
  position: relative;
  padding: clamp(8.5rem, 14vw, 12rem) 0 clamp(4.5rem, 7vw, 7rem);
  background: linear-gradient(180deg, var(--navy-950) 0%, #061024 55%, var(--navy-900) 100%);
  color: var(--cream-50);
  overflow: hidden;
  isolation: isolate;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: clamp(520px, 78vh, 720px);
}

/* Layered backdrop */
.page-header-glow {
  position: absolute;
  top: -15%;
  right: -20%;
  width: 780px;
  height: 780px;
  background: radial-gradient(circle at center, rgba(201, 160, 106, 0.22) 0%, transparent 55%);
  pointer-events: none;
  z-index: 0;
}
.page-header-glow::after {
  content: "";
  position: absolute;
  bottom: -30%;
  left: -40%;
  width: 440px;
  height: 440px;
  background: radial-gradient(circle at center, rgba(201, 160, 106, 0.12) 0%, transparent 55%);
}
.page-header-grid {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(to right, rgba(201, 160, 106, 0.06) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(201, 160, 106, 0.06) 1px, transparent 1px);
  background-size: 80px 80px;
  mask-image: linear-gradient(180deg, transparent 0%, black 20%, black 70%, transparent 100%);
  -webkit-mask-image: linear-gradient(180deg, transparent 0%, black 20%, black 70%, transparent 100%);
  opacity: 0.55;
  pointer-events: none;
  z-index: 0;
}
.page-header-watermark {
  position: absolute;
  bottom: -4rem;
  right: -1.5rem;
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 300;
  font-size: clamp(16rem, 28vw, 28rem);
  line-height: 0.85;
  color: transparent;
  -webkit-text-stroke: 1.5px rgba(201, 160, 106, 0.14);
  letter-spacing: -0.04em;
  pointer-events: none;
  user-select: none;
  z-index: 0;
}

.page-header .container { position: relative; z-index: 2; }
.page-header-inner {
  max-width: 1120px;
  display: flex;
  flex-direction: column;
}

/* Kicker pill */
.page-header-kicker {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.5rem 1rem 0.5rem 0.8rem;
  background: rgba(201, 160, 106, 0.08);
  border: 1px solid rgba(201, 160, 106, 0.25);
  border-radius: 999px;
  margin-bottom: 1.75rem;
  width: fit-content;
  opacity: 0;
  transform: translateY(12px);
  animation: pageHeaderIn 0.8s cubic-bezier(0.22, 1, 0.36, 1) 0.1s forwards;
}
.page-header-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--gold-500);
  box-shadow: 0 0 0 4px rgba(201, 160, 106, 0.2);
  animation: pageHeaderDotPulse 2.6s ease-in-out infinite;
}
@keyframes pageHeaderDotPulse {
  0%, 100% { box-shadow: 0 0 0 4px rgba(201, 160, 106, 0.22); opacity: 1; }
  50%     { box-shadow: 0 0 0 9px rgba(201, 160, 106, 0.05); opacity: 0.65; }
}
.page-header-eyebrow {
  font-family: var(--font-body);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--gold-400);
}
.page-header-index {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 500;
  font-size: 0.82rem;
  color: var(--gold-500);
  padding-left: 0.65rem;
  margin-left: 0.15rem;
  border-left: 1px solid rgba(201, 160, 106, 0.3);
}

/* Title */
.page-header h1 {
  color: var(--cream-50);
  font-family: var(--font-display);
  font-weight: 400;
  font-size: clamp(2.6rem, 5.6vw, 4.6rem);
  line-height: 1.03;
  letter-spacing: -0.02em;
  max-width: 18ch;
  margin: 0 0 1.5rem;
  opacity: 0;
  transform: translateY(18px);
  animation: pageHeaderIn 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.25s forwards;
}
.page-header h1 em {
  font-style: italic;
  color: var(--gold-400);
  font-weight: 300;
}

.page-header-rule {
  display: block;
  width: 72px;
  height: 2px;
  background: linear-gradient(to right, var(--gold-500), transparent);
  margin: 0 0 1.5rem;
  opacity: 0;
  transform: scaleX(0.3);
  transform-origin: left;
  animation: pageHeaderRule 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.4s forwards;
}
@keyframes pageHeaderRule {
  to { opacity: 1; transform: scaleX(1); }
}

.page-header p {
  color: rgba(253, 249, 243, 0.78);
  font-size: clamp(1rem, 1.15vw, 1.12rem);
  line-height: 1.65;
  max-width: 620px;
  margin: 0 0 2.25rem;
  opacity: 0;
  transform: translateY(14px);
  animation: pageHeaderIn 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.5s forwards;
}

@keyframes pageHeaderIn {
  to { opacity: 1; transform: translateY(0); }
}

/* Stats strip */
.page-header-strip {
  list-style: none;
  padding: 0;
  margin: 0 0 2.5rem;
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 0;
  opacity: 0;
  transform: translateY(14px);
  animation: pageHeaderIn 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.65s forwards;
}
.page-header-strip li {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  padding: 0 1.5rem;
  border-right: 1px solid rgba(201, 160, 106, 0.2);
}
.page-header-strip li:first-child { padding-left: 0; }
.page-header-strip li:last-child { border-right: none; }
.page-header-strip strong {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: clamp(1.45rem, 1.9vw, 1.85rem);
  color: var(--gold-400);
  line-height: 1;
  letter-spacing: -0.01em;
}
.page-header-strip strong em {
  font-style: italic;
  font-weight: 300;
  font-size: 0.6em;
  color: var(--gold-500);
  margin-left: 0.05em;
}
.page-header-strip span {
  font-family: var(--font-body);
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(253, 249, 243, 0.55);
}

/* Scroll cue */
.page-header-scroll {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.25rem 0;
  font-family: var(--font-body);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(253, 249, 243, 0.6);
  text-decoration: none;
  width: fit-content;
  margin-top: auto;
  transition: color 0.3s, gap 0.3s;
  opacity: 0;
  animation: pageHeaderIn 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.85s forwards;
}
.page-header-scroll:hover { color: var(--gold-400); gap: 1rem; }
.page-header-scroll-chev {
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  border: 1px solid rgba(201, 160, 106, 0.35);
  color: var(--gold-400);
  background: rgba(201, 160, 106, 0.08);
  animation: pageHeaderChev 2.2s ease-in-out infinite;
}
@keyframes pageHeaderChev {
  0%, 100% { transform: translateY(0); box-shadow: 0 0 0 0 rgba(201, 160, 106, 0.2); }
  50%     { transform: translateY(5px); box-shadow: 0 0 0 6px rgba(201, 160, 106, 0); }
}

.breadcrumbs {
  display: none; /* hidden site-wide per design direction; HTML kept for SEO/accessibility */
}

/* Responsive */
@media (max-width: 760px) {
  .page-header {
    min-height: auto;
    padding: 7rem 0 3.5rem;
  }
  .page-header-watermark { font-size: clamp(14rem, 40vw, 18rem); bottom: -2.5rem; right: -2rem; }
  .page-header-strip { margin-bottom: 2rem; }
  .page-header-strip li {
    flex: 1 1 calc(50% - 0.5rem);
    padding: 0.75rem 0;
    border-right: none;
    border-bottom: 1px solid rgba(201, 160, 106, 0.15);
  }
  .page-header-strip li:first-child { padding-left: 0; }
  .page-header-strip li:nth-last-child(-n+2) { border-bottom: none; }
}
@media (max-width: 480px) {
  .page-header-kicker { font-size: 0.85em; padding: 0.4rem 0.8rem; }
  .page-header h1 { max-width: 100%; }
  .page-header-strip li { flex: 1 1 100%; border-bottom: 1px solid rgba(201, 160, 106, 0.15); }
  .page-header-strip li:last-child { border-bottom: none; }
}

/* ===========================================
   PROPERTIES GRID
   =========================================== */
.properties-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 2rem;
}
.property-card {
  background: var(--cream-50);
  border-radius: 20px;
  overflow: hidden;
  box-shadow: var(--shadow-sm);
  transition: all 0.4s var(--ease-out);
  cursor: pointer;
}
.property-card:hover {
  transform: translateY(-8px);
  box-shadow: var(--shadow-xl);
}
.property-image {
  position: relative;
  height: 240px;
  overflow: hidden;
  background: var(--navy-800);
}
.property-image img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform 0.6s var(--ease-out);
}
.property-card:hover .property-image img { transform: scale(1.08); }
.property-badge {
  position: absolute;
  top: 1rem; left: 1rem;
  background: var(--gold-500);
  color: var(--navy-900);
  padding: 0.4rem 0.85rem;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.05em;
}
.property-body { padding: 1.5rem; }
.property-location {
  font-size: 0.82rem;
  color: var(--ink-400);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin-bottom: 0.4rem;
}
.property-card h3 {
  font-size: 1.3rem;
  margin-bottom: 0.75rem;
  font-weight: 500;
}
.property-meta {
  display: flex;
  gap: 1.25rem;
  font-size: 0.88rem;
  color: var(--ink-600);
  padding-top: 1rem;
  border-top: 1px solid var(--sand-300);
}
.property-meta span { display: inline-flex; align-items: center; gap: 0.35rem; }

/* ===========================================
   FEATURE SPLIT (alternating about/services rows)
   =========================================== */
.feature-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: center;
  margin-bottom: 5rem;
}
.feature-split:last-child { margin-bottom: 0; }
.feature-split.reverse { direction: rtl; }
.feature-split.reverse > * { direction: ltr; }
.feature-media {
  position: relative;
  border-radius: 24px;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  box-shadow: var(--shadow-xl);
}
.feature-media img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform 1.2s var(--ease-out);
}
.feature-split:hover .feature-media img { transform: scale(1.05); }
.feature-media::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 60%, rgba(10, 22, 40, 0.3));
  z-index: 1;
}
.feature-content h3 {
  font-size: clamp(1.8rem, 3vw, 2.4rem);
  margin-bottom: 1.25rem;
}
.feature-content p {
  color: var(--ink-600);
  font-size: 1.02rem;
  margin-bottom: 1.25rem;
  line-height: 1.75;
}
.feature-list { list-style: none; margin-top: 1.5rem; }
.feature-list li {
  display: flex;
  align-items: flex-start;
  gap: 0.85rem;
  margin-bottom: 0.85rem;
  color: var(--ink-600);
}
.feature-list .check {
  flex-shrink: 0;
  width: 22px; height: 22px;
  border-radius: 50%;
  background: var(--gold-300);
  color: var(--navy-900);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.75rem;
  font-weight: 700;
  margin-top: 2px;
}
@media (max-width: 860px) {
  .feature-split { grid-template-columns: 1fr; gap: 2rem; }
  .feature-split.reverse { direction: ltr; }
}

/* ===========================================
   GALLERY
   =========================================== */
.gallery-filters {
  display: flex;
  justify-content: center;
  gap: 0.5rem;
  margin-bottom: 3rem;
  flex-wrap: wrap;
}
.gallery-filter {
  padding: 0.65rem 1.4rem;
  background: transparent;
  border: 1px solid var(--sand-300);
  color: var(--ink-600);
  border-radius: 999px;
  font-weight: 500;
  font-size: 0.88rem;
  cursor: pointer;
  transition: all 0.3s var(--ease-out);
  font-family: var(--font-body);
}
.gallery-filter:hover { border-color: var(--gold-500); color: var(--navy-900); }
.gallery-filter.active {
  background: var(--navy-900);
  color: var(--cream-50);
  border-color: var(--navy-900);
}
.gallery-filter-featured {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  border-color: var(--gold-500);
  color: var(--gold-500);
  font-style: italic;
  font-family: var(--font-display);
}
.gallery-filter-featured:hover { color: var(--navy-900); }
.gallery-filter-featured.active {
  background: linear-gradient(135deg, var(--gold-500), var(--gold-400));
  color: var(--navy-900);
  border-color: var(--gold-500);
}
.gallery-filter-featured.active svg { color: var(--navy-900); }
.gallery-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  grid-auto-rows: 260px;
  grid-auto-flow: dense;
  gap: 1rem;
}
.gallery-item {
  position: relative;
  overflow: hidden;
  border-radius: 16px;
  cursor: pointer;
  box-shadow: var(--shadow-sm);
  transition: all 0.4s var(--ease-out);
  background: var(--navy-800);
}
.gallery-item.tall { grid-row: span 2; }
.gallery-item.wide { grid-column: span 2; }
.gallery-item img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform 0.7s var(--ease-out);
}
.gallery-item:hover img { transform: scale(1.08); }
.gallery-item::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 50%, rgba(10, 22, 40, 0.65));
  opacity: 0;
  transition: opacity 0.4s var(--ease-out);
}
.gallery-item:hover::after { opacity: 1; }
.gallery-caption {
  position: absolute;
  bottom: 1.25rem;
  left: 1.25rem;
  right: 1.25rem;
  color: var(--cream-50);
  z-index: 2;
  opacity: 0;
  transform: translateY(12px);
  transition: all 0.4s var(--ease-out);
}
.gallery-item:hover .gallery-caption { opacity: 1; transform: translateY(0); }
.gallery-caption strong { display: block; font-family: var(--font-display); font-size: 1.15rem; margin-bottom: 0.15rem; }
.gallery-caption span { font-size: 0.82rem; color: rgba(253, 249, 243, 0.75); }
@media (max-width: 640px) {
  .gallery-item.wide { grid-column: span 1; }
}

/* ===========================================
   CONTACT
   =========================================== */
.contact-grid {
  display: grid;
  grid-template-columns: 1fr 1.3fr;
  gap: 4rem;
  align-items: start;
}
.contact-info h2 { font-size: clamp(2rem, 3.5vw, 2.8rem); margin-bottom: 1rem; }
.contact-info > p { color: var(--ink-600); margin-bottom: 2.5rem; font-size: 1.05rem; }
.contact-method {
  display: flex;
  gap: 1rem;
  align-items: flex-start;
  padding: 1.25rem 0;
  border-bottom: 1px solid var(--sand-300);
}
.contact-method:last-child { border-bottom: none; }
.contact-icon {
  flex-shrink: 0;
  width: 48px; height: 48px;
  border-radius: 12px;
  background: var(--cream-100);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--gold-500);
}
.contact-method-title {
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--ink-400);
  margin-bottom: 0.25rem;
  font-weight: 600;
}
.contact-method-value {
  color: var(--navy-900);
  font-weight: 500;
  font-size: 1.05rem;
}
.contact-method-value a:hover { color: var(--gold-500); }

.contact-form {
  background: var(--cream-50);
  padding: 2.75rem;
  border-radius: 24px;
  box-shadow: var(--shadow-lg);
  border: 1px solid var(--sand-300);
}
.form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.25rem;
  margin-bottom: 1.25rem;
}
.form-group { margin-bottom: 1.25rem; }
.form-group label {
  display: block;
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--navy-900);
  margin-bottom: 0.5rem;
  letter-spacing: 0.05em;
}
.form-group input,
.form-group textarea,
.form-group select {
  width: 100%;
  padding: 0.95rem 1.1rem;
  background: var(--cream-100);
  border: 1.5px solid transparent;
  border-radius: 12px;
  font-family: var(--font-body);
  font-size: 0.95rem;
  color: var(--navy-900);
  transition: all 0.3s var(--ease-out);
}
.form-group textarea { resize: vertical; min-height: 140px; }
.form-group input:focus,
.form-group textarea:focus,
.form-group select:focus {
  outline: none;
  border-color: var(--gold-500);
  background: var(--cream-50);
  box-shadow: 0 0 0 4px rgba(212, 165, 116, 0.15);
}
.form-message {
  margin-top: 1rem;
  padding: 0.85rem 1rem;
  border-radius: 10px;
  font-size: 0.9rem;
  display: none;
}
.form-message.success { display: block; background: #e7f4e8; color: #2d6a33; }
.form-message.error { display: block; background: #fbeaea; color: #8a2f2f; }

@media (max-width: 860px) {
  .contact-grid { grid-template-columns: 1fr; gap: 2.5rem; }
  .form-row { grid-template-columns: 1fr; }
  .contact-form { padding: 1.75rem; }
}

/* ===========================================
   HOME STAGING SECTION (index.html)
   =========================================== */
.staging-section {
  background:
    radial-gradient(ellipse at 20% 0%, rgba(201, 160, 106, 0.10), transparent 55%),
    radial-gradient(ellipse at 100% 100%, rgba(16, 31, 48, 0.05), transparent 50%),
    var(--cream-50);
  position: relative;
}
.staging-section::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(var(--sand-300) 1px, transparent 1px),
    linear-gradient(90deg, var(--sand-300) 1px, transparent 1px);
  background-size: 80px 80px;
  opacity: 0.08;
  pointer-events: none;
}
.staging-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4.5rem;
  align-items: start;
  position: relative;
  z-index: 1;
}
/* Tablet: tighten the gap so columns don't squeeze. */
@media (max-width: 900px) {
  .staging-layout { gap: 2.5rem; }
}
/* Mobile: stack the two columns. */
@media (max-width: 720px) {
  .staging-layout {
    grid-template-columns: 1fr;
    gap: 2rem;
  }
}

/* Staging media column — The Bello Method storyboard */
.staging-media {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 1.75rem;
}

/* Designer credit chip */
.staging-designer-chip {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  padding: 0.85rem 1.1rem;
  background: var(--cream-50);
  border: 1px solid rgba(201, 160, 106, 0.35);
  border-left: 3px solid var(--gold-500);
  border-radius: 14px;
  box-shadow: var(--shadow-sm);
  position: relative;
  overflow: hidden;
}
.staging-designer-chip::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(201, 160, 106, 0.08), transparent 60%);
  pointer-events: none;
}
.staging-designer-avatar {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--gold-500), var(--gold-400));
  color: var(--navy-900);
  display: grid;
  place-items: center;
  flex-shrink: 0;
  box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.35);
  z-index: 1;
}
.staging-designer-text {
  display: flex;
  flex-direction: column;
  line-height: 1.3;
  z-index: 1;
}
.staging-designer-text strong {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 0.98rem;
  color: var(--navy-900);
  letter-spacing: -0.005em;
}
.staging-designer-text small {
  font-size: 0.76rem;
  color: var(--ink-400, #7a7368);
  letter-spacing: 0.01em;
  margin-top: 0.15rem;
}

/* Method storyboard */
.staging-method {
  position: relative;
  background: #ffffff;
  border: 1px solid rgba(201, 160, 106, 0.25);
  border-radius: 22px;
  padding: 1.75rem 1.5rem 1.5rem;
  box-shadow: var(--shadow-lg);
}
.staging-method::before {
  content: '';
  position: absolute;
  top: 0; left: 10%;
  right: 10%;
  height: 3px;
  background: linear-gradient(90deg, transparent, var(--gold-500), transparent);
  border-radius: 0 0 3px 3px;
}

.staging-method-header {
  text-align: center;
  padding: 0 0.5rem 1.25rem;
  border-bottom: 1px dashed rgba(201, 160, 106, 0.35);
  margin-bottom: 1.5rem;
}
.staging-method-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--gold-500);
  margin-bottom: 0.75rem;
}
.staging-method-eyebrow-mark {
  width: 22px;
  height: 1px;
  background: var(--gold-500);
  display: block;
}
.staging-method-title {
  font-family: var(--font-display);
  font-size: clamp(1.35rem, 2.2vw, 1.7rem);
  font-weight: 400;
  color: var(--navy-900);
  line-height: 1.2;
  margin: 0 0 0.6rem;
  letter-spacing: -0.01em;
}
.staging-method-title em {
  font-style: italic;
  color: var(--gold-500);
  font-weight: 300;
}
.staging-method-sub {
  font-size: 0.88rem;
  color: var(--ink-400, #7a7368);
  line-height: 1.55;
  max-width: 340px;
  margin: 0 auto;
}

/* 4-step grid */
.staging-method-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  list-style: none;
  padding: 0;
  margin: 0;
  position: relative;
}

.staging-method-step {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  z-index: 1;
}
.staging-method-step-num {
  position: absolute;
  top: -8px;
  left: -4px;
  z-index: 3;
  font-family: var(--font-display);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  color: var(--navy-900);
  background: var(--cream-50);
  border: 1.5px solid var(--gold-500);
  border-radius: 50%;
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  box-shadow: var(--shadow-sm);
}
.staging-method-step-frame {
  position: relative;
  aspect-ratio: 4 / 3;
  border-radius: 14px;
  overflow: hidden;
  background: var(--cream-50);
  border: 1px solid rgba(201, 160, 106, 0.3);
  box-shadow: 0 8px 20px rgba(10, 22, 40, 0.08);
  transition: transform 0.5s var(--ease-out), box-shadow 0.5s var(--ease-out);
}
.staging-method-step:hover .staging-method-step-frame {
  transform: translateY(-3px);
  box-shadow: 0 14px 28px rgba(10, 22, 40, 0.14);
}
.staging-method-step-frame img,
.staging-method-step-frame svg {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.staging-method-step-frame svg { padding: 0; }

.staging-method-step-frame-empty {
  background:
    repeating-linear-gradient(45deg, transparent 0 8px, rgba(201, 160, 106, 0.04) 8px 9px),
    var(--cream-50);
}
.staging-method-step-frame-design {
  background: #fbf6ec;
}

.staging-method-step-caption {
  display: flex;
  flex-direction: column;
  padding: 0 0.15rem;
  line-height: 1.35;
}
.staging-method-step-caption strong {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 1rem;
  color: var(--navy-900);
  letter-spacing: -0.005em;
}
.staging-method-step-caption strong::after {
  content: '';
  display: inline-block;
  width: 18px;
  height: 1px;
  background: var(--gold-500);
  vertical-align: middle;
  margin-left: 0.5rem;
  opacity: 0.7;
}
.staging-method-step-caption span {
  font-size: 0.8rem;
  color: var(--ink-400, #7a7368);
  margin-top: 0.15rem;
}

/* Final step badge (100% turnkey) */
.staging-method-step-04 .staging-method-step-frame {
  border-color: var(--gold-500);
  box-shadow: 0 10px 28px rgba(201, 160, 106, 0.25), 0 0 0 1px rgba(201, 160, 106, 0.2);
}
.staging-method-badge {
  position: absolute;
  bottom: 8px;
  right: 8px;
  background: var(--navy-900);
  color: var(--cream-50);
  padding: 0.55rem 0.7rem;
  border-radius: 10px;
  border: 1.5px solid var(--gold-500);
  display: flex;
  align-items: center;
  gap: 0.5rem;
  box-shadow: var(--shadow-md);
  line-height: 1;
}
.staging-method-badge-num {
  font-family: var(--font-display);
  font-size: 1.15rem;
  color: var(--gold-400);
  font-weight: 500;
}
.staging-method-badge-txt {
  font-size: 0.6rem;
  letter-spacing: 0.05em;
  color: rgba(253, 249, 243, 0.85);
  line-height: 1.2;
  text-transform: uppercase;
}

/* Portfolio strip */
.staging-portfolio {
  padding: 1.1rem 1.25rem 1.25rem;
  background: var(--cream-50);
  border: 1px solid rgba(201, 160, 106, 0.22);
  border-radius: 16px;
  box-shadow: var(--shadow-sm);
}
.staging-portfolio-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 0.85rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px dashed rgba(201, 160, 106, 0.3);
}
.staging-portfolio-label {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--gold-500);
}
.staging-portfolio-meta {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 0.85rem;
  color: var(--ink-400, #7a7368);
}
.staging-portfolio-strip {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.6rem;
}
.staging-portfolio-thumb {
  position: relative;
  margin: 0;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  border-radius: 10px;
  cursor: default;
  transition: transform 0.4s var(--ease-out);
}
.staging-portfolio-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s var(--ease-out);
}
.staging-portfolio-thumb::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 55%, rgba(16, 31, 48, 0.7) 100%);
  opacity: 0;
  transition: opacity 0.4s var(--ease-out);
}
.staging-portfolio-thumb figcaption {
  position: absolute;
  left: 8px;
  bottom: 6px;
  color: var(--cream-50);
  font-family: var(--font-display);
  font-size: 0.78rem;
  font-style: italic;
  letter-spacing: 0.02em;
  z-index: 2;
  opacity: 0;
  transform: translateY(4px);
  transition: opacity 0.4s var(--ease-out), transform 0.4s var(--ease-out);
}
.staging-portfolio-thumb:hover img { transform: scale(1.08); }
.staging-portfolio-thumb:hover::after { opacity: 1; }
.staging-portfolio-thumb:hover figcaption { opacity: 1; transform: translateY(0); }

.staging-portfolio-link {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  margin-top: 1rem;
  padding: 0.55rem 1rem;
  font-family: var(--font-display);
  font-size: 0.88rem;
  font-style: italic;
  color: var(--navy-900);
  text-decoration: none;
  border: 1px solid rgba(201, 160, 106, 0.5);
  border-radius: 999px;
  background: transparent;
  transition: background 0.3s var(--ease-out), color 0.3s var(--ease-out), border-color 0.3s var(--ease-out);
}
.staging-portfolio-link svg {
  transition: transform 0.3s var(--ease-out);
  color: var(--gold-500);
}
.staging-portfolio-link:hover {
  background: var(--navy-900);
  color: var(--cream-50);
  border-color: var(--navy-900);
}
.staging-portfolio-link:hover svg {
  transform: translateX(3px);
  color: var(--gold-400);
}

/* Content side */
.staging-content h2 {
  font-size: clamp(2rem, 4vw, 3rem);
  margin-bottom: 1.25rem;
  line-height: 1.1;
}
.staging-content h2 em {
  font-style: italic;
  color: var(--gold-500);
  font-weight: 300;
}
.staging-lead {
  color: var(--ink-600);
  font-size: 1.08rem;
  line-height: 1.75;
  margin-bottom: 2.25rem;
  max-width: 620px;
}

.staging-benefits {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem 2rem;
  margin-bottom: 2.5rem;
}
.staging-benefit {
  display: flex;
  gap: 0.9rem;
  align-items: flex-start;
}
.staging-benefit-icon {
  flex-shrink: 0;
  width: 40px; height: 40px;
  border-radius: 10px;
  background: var(--gold-300);
  color: var(--navy-900);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 12px rgba(201, 160, 106, 0.25);
}
.staging-benefit h4 {
  font-family: var(--font-body);
  font-size: 0.98rem;
  font-weight: 700;
  color: var(--navy-900);
  margin-bottom: 0.3rem;
  letter-spacing: -0.01em;
}
.staging-benefit p {
  font-size: 0.88rem;
  color: var(--ink-600);
  line-height: 1.55;
}

.staging-ctas {
  display: flex;
  gap: 0.85rem;
  flex-wrap: wrap;
  justify-content: center;
  max-width: 640px;
}

/* Staging proof pill (designer stat CTA) */
.staging-proof {
  position: relative;
  display: flex;
  align-items: center;
  gap: 1.25rem;
  max-width: 640px;
  margin: 0 0 2.25rem;
  padding: 1.1rem 3.1rem 1.1rem 1.1rem;
  background: linear-gradient(135deg, var(--navy-900) 0%, var(--navy-800) 55%, var(--navy-900) 100%);
  border: 1px solid rgba(212, 165, 116, 0.32);
  border-radius: 999px;
  box-shadow:
    0 16px 42px rgba(10, 21, 32, 0.22),
    inset 0 1px 0 rgba(253, 249, 243, 0.06);
  overflow: hidden;
  isolation: isolate;
}
.staging-proof::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 0% 50%, rgba(212, 165, 116, 0.22), transparent 55%);
  pointer-events: none;
  z-index: -1;
}
.staging-proof::after {
  content: '';
  position: absolute;
  top: 0; bottom: 0;
  left: -40%;
  width: 40%;
  background: linear-gradient(100deg, transparent, rgba(253, 249, 243, 0.08), transparent);
  transform: skewX(-18deg);
  animation: stagingShine 6.5s ease-in-out 2s infinite;
  pointer-events: none;
  z-index: -1;
}
@keyframes stagingShine {
  0%, 60% { left: -40%; }
  80%, 100% { left: 130%; }
}

.staging-proof-badge {
  flex-shrink: 0;
  width: 68px; height: 68px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--gold-500), var(--gold-400));
  color: var(--navy-900);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-display);
  font-weight: 600;
  letter-spacing: -0.04em;
  line-height: 1;
  box-shadow:
    0 0 0 5px rgba(212, 165, 116, 0.14),
    0 0 0 10px rgba(212, 165, 116, 0.07),
    0 10px 22px rgba(201, 160, 106, 0.42);
}
.staging-proof-num {
  font-size: 2.05rem;
  line-height: 1;
}
.staging-proof-x {
  font-size: 1.2rem;
  font-style: italic;
  font-weight: 400;
  margin-left: 0.06em;
  opacity: 0.85;
  line-height: 1;
  align-self: center;
}

.staging-proof-text {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  line-height: 1.45;
}
.staging-proof-text strong {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 1.08rem;
  color: var(--cream-50);
  letter-spacing: -0.01em;
}
.staging-proof-text span {
  font-size: 0.88rem;
  color: rgba(253, 249, 243, 0.74);
  line-height: 1.55;
}
.staging-proof-text em {
  font-style: italic;
  color: var(--gold-400);
  font-weight: 600;
}

.staging-proof-sparkle {
  position: absolute;
  top: 50%;
  right: 1rem;
  transform: translateY(-50%);
  color: rgba(212, 165, 116, 0.55);
  pointer-events: none;
  filter: drop-shadow(0 0 6px rgba(212, 165, 116, 0.35));
  animation: pulseGold 3.2s ease-in-out infinite;
}

@media (max-width: 640px) {
  .staging-proof {
    flex-direction: column;
    align-items: flex-start;
    border-radius: 22px;
    padding: 1.4rem 1.4rem 1.5rem;
    gap: 0.9rem;
  }
  .staging-proof-sparkle {
    top: 1rem;
    right: 1rem;
    transform: none;
  }
  .staging-proof-badge { width: 60px; height: 60px; }
  .staging-proof-num { font-size: 1.85rem; }
  .staging-proof-x { font-size: 1.1rem; }
}

/* ===================================================
   STAGING SPEED CARD — premium 7-day setup timeline
   =================================================== */
.staging-speed {
  position: relative;
  max-width: 760px;
  margin: 0 0 2rem;
  padding: 1.9rem 2rem 1.75rem;
  background: linear-gradient(135deg, var(--cream-50) 0%, #fff 50%, var(--cream-50) 100%);
  border: 1px solid rgba(201, 160, 106, 0.28);
  border-radius: 20px;
  box-shadow:
    0 20px 54px rgba(10, 22, 40, 0.08),
    0 0 0 1px rgba(10, 22, 40, 0.02);
  isolation: isolate;
  overflow: hidden;
}
.staging-speed::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at top right, rgba(201, 160, 106, 0.10), transparent 55%),
    radial-gradient(ellipse at bottom left, rgba(16, 31, 48, 0.04), transparent 55%);
  pointer-events: none;
  z-index: -1;
}
.staging-speed::after {
  content: '';
  position: absolute;
  left: 0; right: 0; top: 0;
  height: 3px;
  background: linear-gradient(90deg, transparent, var(--gold-500) 20%, var(--gold-400) 50%, var(--gold-500) 80%, transparent);
}

.staging-speed-corner {
  position: absolute;
  width: 16px; height: 16px;
  border: 1.5px solid var(--gold-500);
  opacity: 0.55;
  pointer-events: none;
}
.staging-speed-corner-tl { top: 10px; left: 10px;  border-right: 0; border-bottom: 0; }
.staging-speed-corner-tr { top: 10px; right: 10px; border-left: 0;  border-bottom: 0; }
.staging-speed-corner-bl { bottom: 10px; left: 10px;  border-right: 0; border-top: 0; }
.staging-speed-corner-br { bottom: 10px; right: 10px; border-left: 0;  border-top: 0; }

.staging-speed-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1.4rem;
  padding-bottom: 1.1rem;
  border-bottom: 1px dashed rgba(10, 22, 40, 0.1);
}
.staging-speed-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--gold-500);
}
.staging-speed-pulse {
  width: 8px; height: 8px;
  background: var(--gold-500);
  border-radius: 50%;
  box-shadow: 0 0 0 0 rgba(201, 160, 106, 0.55);
  animation: stagingSpeedPulse 2.4s ease-out infinite;
}
@keyframes stagingSpeedPulse {
  0%   { box-shadow: 0 0 0 0 rgba(201, 160, 106, 0.5); }
  100% { box-shadow: 0 0 0 14px rgba(201, 160, 106, 0); }
}
.staging-speed-tag {
  font-size: 0.82rem;
  color: var(--ink-600);
  font-style: italic;
  text-align: right;
}

.staging-speed-core {
  display: grid;
  grid-template-columns: minmax(0, 0.85fr) minmax(0, 2fr);
  align-items: center;
  gap: 1.4rem;
}

.staging-speed-hero {
  display: flex;
  align-items: baseline;
  gap: 0.55rem;
  padding-right: 1.1rem;
  border-right: 1px solid rgba(10, 22, 40, 0.08);
}
.staging-speed-num {
  font-family: var(--font-display);
  font-size: 4.8rem;
  font-weight: 400;
  line-height: 0.9;
  letter-spacing: -0.04em;
  background: linear-gradient(135deg, var(--gold-500) 0%, var(--gold-400) 50%, var(--gold-500) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  filter: drop-shadow(0 2px 6px rgba(201, 160, 106, 0.18));
}
.staging-speed-unit {
  display: flex;
  flex-direction: column;
  line-height: 1.15;
  gap: 0.15rem;
}
.staging-speed-day {
  font-family: var(--font-display);
  font-size: 1.3rem;
  font-weight: 500;
  color: var(--navy-900);
  font-style: italic;
}
.staging-speed-week {
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ink-400);
}

.staging-speed-timeline {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  align-items: start;
  gap: 0;
  position: relative;
  list-style: none;
  padding: 0;
  margin: 0;
}
.staging-speed-timeline::before {
  content: '';
  position: absolute;
  top: 18px;
  left: 14%; right: 14%;
  height: 1.5px;
  background: repeating-linear-gradient(90deg, var(--gold-500) 0 6px, transparent 6px 12px);
  opacity: 0.55;
}
.staging-speed-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 0.5rem;
  position: relative;
  padding: 0 0.15rem;
  min-width: 0;
}
.staging-speed-step-icon {
  display: inline-grid;
  place-items: center;
  width: 38px; height: 38px;
  border-radius: 50%;
  background: var(--cream-50);
  color: var(--gold-500);
  border: 1.5px solid var(--gold-500);
  box-shadow: 0 4px 14px rgba(201, 160, 106, 0.18);
  z-index: 1;
  transition: transform 0.3s var(--ease-out);
}
.staging-speed-step:hover .staging-speed-step-icon {
  transform: scale(1.08);
}
.staging-speed-step-day {
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-400);
}
.staging-speed-step-label {
  font-family: var(--font-display);
  font-size: 0.88rem;
  font-weight: 500;
  color: var(--navy-900);
  line-height: 1.35;
  letter-spacing: -0.005em;
  max-width: none;
  text-wrap: balance;
  hyphens: none;
}
.staging-speed-step-final .staging-speed-step-icon {
  background: linear-gradient(135deg, var(--gold-500), var(--gold-400));
  color: #fff;
  border-color: transparent;
  box-shadow:
    0 6px 18px rgba(201, 160, 106, 0.38),
    0 0 0 4px rgba(201, 160, 106, 0.14);
}

@media (max-width: 900px) {
  .staging-speed { padding: 1.5rem 1.3rem 1.4rem; }
  .staging-speed-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.4rem;
  }
  .staging-speed-tag { text-align: left; }
  .staging-speed-core {
    grid-template-columns: 1fr;
    gap: 1.6rem;
  }
  .staging-speed-hero {
    padding-right: 0;
    border-right: 0;
    padding-bottom: 1.25rem;
    border-bottom: 1px solid rgba(10, 22, 40, 0.08);
    justify-content: center;
  }
  .staging-speed-num { font-size: 4.2rem; }
  .staging-speed-timeline::before { left: 11%; right: 11%; }
  .staging-speed-step-label { font-size: 0.88rem; }
}
@media (max-width: 520px) {
  .staging-speed-timeline {
    grid-template-columns: 1fr;
    gap: 1.1rem;
  }
  .staging-speed-timeline::before {
    top: 18px; bottom: 18px;
    left: 18px; right: auto;
    width: 1.5px; height: auto;
    background: repeating-linear-gradient(180deg, var(--gold-500) 0 6px, transparent 6px 12px);
  }
  .staging-speed-step {
    flex-direction: row;
    text-align: left;
    align-items: center;
    gap: 0.9rem;
    padding-left: 0;
  }
  .staging-speed-step-icon { flex-shrink: 0; }
  .staging-speed-step-label { max-width: none; }
}

/* ===========================================
   EARNINGS ESTIMATOR (index.html)
   =========================================== */
.estimator-section {
  background:
    radial-gradient(ellipse at 100% 0%, rgba(201, 160, 106, 0.08), transparent 55%),
    radial-gradient(ellipse at 0% 100%, rgba(16, 31, 48, 0.06), transparent 55%),
    #f6efe1;
  position: relative;
  overflow: hidden;
}
.estimator-section::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(var(--sand-300) 1px, transparent 1px),
    linear-gradient(90deg, var(--sand-300) 1px, transparent 1px);
  background-size: 100px 100px;
  opacity: 0.06;
  pointer-events: none;
}

.estimator-card {
  position: relative;
  background: #ffffff;
  border-radius: 24px;
  border: 1px solid rgba(201, 160, 106, 0.28);
  box-shadow: 0 30px 80px rgba(10, 22, 40, 0.14), 0 1px 0 rgba(255,255,255,0.6) inset;
  overflow: hidden;
  max-width: 1120px;
  margin: 0 auto;
  z-index: 1;
}
.estimator-card::before {
  content: '';
  position: absolute;
  top: 0; left: 12%; right: 12%;
  height: 3px;
  background: linear-gradient(90deg, transparent, var(--gold-500), transparent);
  border-radius: 0 0 3px 3px;
  z-index: 2;
}

/* Corner brackets */
.estimator-corner {
  position: absolute;
  width: 22px; height: 22px;
  border-color: var(--gold-500);
  z-index: 2;
  pointer-events: none;
}
.estimator-corner-tl { top: 14px; left: 14px; border-top: 1.5px solid; border-left: 1.5px solid; }
.estimator-corner-tr { top: 14px; right: 14px; border-top: 1.5px solid; border-right: 1.5px solid; }
.estimator-corner-bl { bottom: 14px; left: 14px; border-bottom: 1.5px solid; border-left: 1.5px solid; }
.estimator-corner-br { bottom: 14px; right: 14px; border-bottom: 1.5px solid; border-right: 1.5px solid; }

.estimator-grid {
  display: grid;
  grid-template-columns: 1fr 1.15fr;
  min-height: 620px;
}

/* ======== FORM (left column) ======== */
.estimator-form {
  padding: 2.5rem 2.25rem 2.25rem;
  border-right: 1px solid rgba(201, 160, 106, 0.22);
  display: flex;
  flex-direction: column;
  gap: 1.4rem;
  background:
    linear-gradient(180deg, rgba(201, 160, 106, 0.04), transparent 35%),
    #fffdf9;
}
.estimator-form-head {
  margin-bottom: 0.25rem;
  padding-bottom: 1.2rem;
  border-bottom: 1px dashed rgba(201, 160, 106, 0.35);
}
.estimator-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--gold-500);
  margin-bottom: 0.6rem;
}
.estimator-pulse {
  position: relative;
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--gold-500);
  display: inline-block;
  flex-shrink: 0;
}
.estimator-pulse::after {
  content: '';
  position: absolute;
  inset: -4px;
  border-radius: 50%;
  border: 1.5px solid var(--gold-500);
  animation: estimatorPulse 2.4s ease-out infinite;
}
@keyframes estimatorPulse {
  0%   { transform: scale(0.85); opacity: 0.9; }
  100% { transform: scale(1.8);  opacity: 0;   }
}
.estimator-form-head h3 {
  font-family: var(--font-display);
  font-size: 1.5rem;
  font-weight: 400;
  line-height: 1.2;
  color: var(--navy-900);
  margin: 0;
  letter-spacing: -0.01em;
}

.estimator-field {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}
.estimator-field label {
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink-600);
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
}
.estimator-hint {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 0.75rem;
  text-transform: none;
  letter-spacing: 0;
  color: var(--ink-400, #7a7368);
  font-weight: 400;
}
.estimator-field small {
  font-size: 0.76rem;
  color: var(--ink-400, #7a7368);
  line-height: 1.4;
}
.estimator-field input[type="text"] {
  padding: 0.85rem 1rem;
  font-size: 0.98rem;
  font-family: var(--font-body);
  color: var(--navy-900);
  background: var(--cream-50);
  border: 1.5px solid rgba(201, 160, 106, 0.3);
  border-radius: 12px;
  transition: border-color 0.3s var(--ease-out), box-shadow 0.3s var(--ease-out), background 0.3s var(--ease-out);
}
.estimator-field input[type="text"]:focus {
  outline: none;
  border-color: var(--gold-500);
  background: #ffffff;
  box-shadow: 0 0 0 4px rgba(201, 160, 106, 0.18);
}
.estimator-field input[type="text"]::placeholder {
  color: #a89f92;
  font-style: italic;
}

/* Autocomplete dropdown */
.estimator-field-location { position: relative; }
.estimator-autocomplete { position: relative; }

/* Validation error for the location field — shown when the user tries to
   submit without picking a city/state/country from the dropdown. */
.estimator-location-error {
  display: block;
  margin-top: 0.4rem;
  /* Was #a17f4e = 3.67:1 on cream-50 (fails AA 4.5:1 for error text,
     which is the one state users MUST be able to read). Warmer brown-red
     lands at ~5.2:1 without clashing with the gold brand palette. */
  color: #b13a2a;
  font-size: 0.78rem;
  font-weight: 500;
  letter-spacing: 0.01em;
}
/* `display: block` above ties with the UA's [hidden] rule on specificity,
   so we need an explicit override or the error stays visible. */
.estimator-location-error[hidden] { display: none; }
#est-location.is-invalid {
  border-color: var(--gold-500) !important;
  box-shadow: 0 0 0 3px rgba(201, 160, 106, 0.18) !important;
}
.estimator-location-spinner {
  position: absolute;
  right: 14px;
  top: 50%;
  width: 16px; height: 16px;
  margin-top: -8px;
  border: 2px solid rgba(201, 160, 106, 0.25);
  border-top-color: var(--gold-500);
  border-radius: 50%;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s var(--ease-out);
}
.estimator-location-spinner.is-visible {
  opacity: 1;
  animation: estimatorSpin 0.9s linear infinite;
}
@keyframes estimatorSpin {
  to { transform: rotate(360deg); }
}
.estimator-suggestions {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  right: 0;
  z-index: 20;
  list-style: none;
  padding: 6px;
  margin: 0;
  background: #ffffff;
  border: 1px solid rgba(201, 160, 106, 0.35);
  border-radius: 14px;
  box-shadow: 0 18px 42px rgba(10, 22, 40, 0.14), 0 0 0 1px rgba(255,255,255,0.6) inset;
  max-height: 280px;
  overflow-y: auto;
  animation: estimatorFade 0.25s var(--ease-out);
}
.estimator-suggestion {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.65rem 0.75rem;
  border-radius: 9px;
  cursor: pointer;
  font-size: 0.92rem;
  color: var(--navy-900);
  transition: background 0.15s var(--ease-out), color 0.15s var(--ease-out);
}
.estimator-suggestion:hover,
.estimator-suggestion.is-active {
  background: rgba(201, 160, 106, 0.12);
  color: var(--navy-900);
}
.estimator-suggestion-pin {
  color: var(--gold-500);
  flex-shrink: 0;
}
.estimator-suggestion-label {
  flex: 1;
  font-weight: 500;
  letter-spacing: -0.003em;
}
.estimator-suggestion-badge {
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink-400, #7a7368);
  background: rgba(201, 160, 106, 0.1);
  padding: 0.18rem 0.5rem;
  border-radius: 999px;
}

/* Page header (estimator.html standalone page) */
.estimator-page-header {
  padding: 8rem 0 3rem;
  background:
    radial-gradient(ellipse at 0% 0%, rgba(201, 160, 106, 0.1), transparent 55%),
    linear-gradient(180deg, #fffdf9, #f6efe1);
  border-bottom: 1px solid rgba(201, 160, 106, 0.2);
  position: relative;
  overflow: hidden;
}
.estimator-page-header::after {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(var(--sand-300) 1px, transparent 1px),
    linear-gradient(90deg, var(--sand-300) 1px, transparent 1px);
  background-size: 100px 100px;
  opacity: 0.05;
  pointer-events: none;
}
.estimator-page-head {
  max-width: 760px;
  margin: 0 auto;
  text-align: center;
  position: relative;
  z-index: 1;
}
.estimator-page-head .section-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin-bottom: 0.9rem;
}
.estimator-page-head h1 {
  font-family: var(--font-display);
  /* Floor + preferred reduced (was clamp(2.2rem, 5vw, 3.3rem)) so the
     headline shrinks enough on ~330px content widths that "your property"
     no longer overflows the centered container and gets clipped by
     body's overflow-x: clip. */
  font-size: clamp(1.4rem, 4.6vw, 3.3rem);
  font-weight: 400;
  line-height: 1.15;
  color: var(--navy-900);
  letter-spacing: -0.015em;
  margin: 0 0 0.9rem;
  overflow-wrap: break-word;
}
.estimator-page-head p {
  overflow-wrap: break-word;
}
.estimator-page-head h1 em {
  font-style: italic;
  color: var(--gold-500);
  font-weight: 300;
}
.estimator-page-head p {
  font-size: 1.08rem;
  color: var(--ink-600);
  line-height: 1.65;
  max-width: 620px;
  margin: 0 auto;
}

/* Trust panel below estimator */
.estimator-trust {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  margin-top: 3rem;
  max-width: 1120px;
  margin-left: auto;
  margin-right: auto;
  position: relative;
  z-index: 1;
}
.estimator-trust-item {
  display: flex;
  gap: 1rem;
  padding: 1.25rem 1.4rem;
  background: rgba(255,255,255,0.75);
  border: 1px solid rgba(201, 160, 106, 0.22);
  border-radius: 16px;
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
}
.estimator-trust-icon {
  width: 42px; height: 42px;
  border-radius: 12px;
  display: grid;
  place-items: center;
  background: linear-gradient(135deg, rgba(201, 160, 106, 0.18), rgba(201, 160, 106, 0.04));
  color: var(--gold-500);
  flex-shrink: 0;
  border: 1px solid rgba(201, 160, 106, 0.3);
}
.estimator-trust-item h4 {
  font-family: var(--font-display);
  font-size: 1rem;
  font-weight: 500;
  color: var(--navy-900);
  margin: 0 0 0.35rem;
  letter-spacing: -0.005em;
}
.estimator-trust-item p {
  font-size: 0.85rem;
  color: var(--ink-400, #7a7368);
  line-height: 1.55;
  margin: 0;
}
.estimator-attribution {
  text-align: center;
  font-size: 0.72rem;
  color: var(--ink-400, #7a7368);
  margin-top: 2rem;
  font-style: italic;
}
.estimator-attribution a {
  color: var(--gold-500);
  text-decoration: none;
  border-bottom: 1px dotted rgba(201, 160, 106, 0.5);
}
.estimator-attribution a:hover { color: var(--navy-900); }
@media (max-width: 960px) {
  .estimator-trust { grid-template-columns: 1fr; }
  .estimator-page-header { padding: 6rem 0 2.5rem; }
}

/* Segmented radio pill bar */
.estimator-segmented {
  display: inline-flex;
  gap: 0;
  padding: 4px;
  background: rgba(201, 160, 106, 0.08);
  border: 1px solid rgba(201, 160, 106, 0.22);
  border-radius: 12px;
  flex-wrap: nowrap;
}
.estimator-segmented-wrap { flex-wrap: wrap; }
.estimator-segmented input { position: absolute; opacity: 0; pointer-events: none; }
.estimator-segmented label {
  flex: 1;
  text-align: center;
  padding: 0.55rem 0.85rem;
  font-size: 0.85rem;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
  color: var(--ink-600);
  border-radius: 9px;
  cursor: pointer;
  transition: background 0.25s var(--ease-out), color 0.25s var(--ease-out), box-shadow 0.25s var(--ease-out);
  white-space: nowrap;
  font-family: var(--font-body);
}
.estimator-segmented label:hover { color: var(--navy-900); }
.estimator-segmented input:checked + label {
  background: var(--navy-900);
  color: var(--cream-50);
  box-shadow: 0 4px 12px rgba(10, 22, 40, 0.15), inset 0 0 0 1px var(--gold-500);
}
.estimator-segmented input:focus-visible + label {
  outline: 2px solid var(--gold-500);
  outline-offset: 2px;
}

/* Amenity chips (multi-select) */
.estimator-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}
.estimator-chips input { position: absolute; opacity: 0; pointer-events: none; }
.estimator-chips label {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.5rem 0.85rem;
  font-family: var(--font-body);
  font-size: 0.82rem;
  font-weight: 500;
  color: var(--ink-600);
  background: rgba(201, 160, 106, 0.08);
  border: 1px solid rgba(201, 160, 106, 0.3);
  border-radius: 999px;
  cursor: pointer;
  user-select: none;
  transition: all 0.25s var(--ease-out);
  white-space: nowrap;
}
.estimator-chips label svg {
  color: var(--gold-500);
  flex-shrink: 0;
  transition: color 0.25s var(--ease-out);
}
.estimator-chips label:hover {
  background: rgba(201, 160, 106, 0.15);
  color: var(--navy-900);
  border-color: rgba(201, 160, 106, 0.55);
}
.estimator-chips input:checked + label {
  background: var(--navy-900);
  color: var(--cream-50);
  border-color: var(--gold-500);
  box-shadow: 0 4px 10px rgba(10, 22, 40, 0.18), inset 0 0 0 1px rgba(201, 160, 106, 0.45);
}
.estimator-chips input:checked + label svg { color: var(--gold-400); }
.estimator-chips input:focus-visible + label {
  outline: 2px solid var(--gold-500);
  outline-offset: 2px;
}

/* ===========================================
   ESTIMATOR — THE LONG VIEW (horizon cards)
   =========================================== */
.estimator-horizon {
  margin: 2rem 0 1.5rem;
  padding-top: 1.75rem;
  border-top: 1px dashed rgba(201, 160, 106, 0.4);
}
.estimator-horizon-head {
  text-align: center;
  margin-bottom: 1.5rem;
}
.estimator-horizon-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--gold-500);
  margin-bottom: 0.65rem;
}
.estimator-horizon-mark {
  width: 6px; height: 6px;
  background: var(--gold-500);
  border-radius: 50%;
  box-shadow: 0 0 0 3px rgba(201, 160, 106, 0.22);
}
.estimator-horizon-head h5 {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: clamp(1.45rem, 2.2vw, 1.85rem);
  color: var(--navy-900);
  margin: 0 0 0.4rem;
  letter-spacing: -0.01em;
}
.estimator-horizon-head h5 em {
  font-style: italic;
  color: var(--gold-500);
}
.estimator-horizon-head p {
  font-size: 0.9rem;
  color: var(--ink-600);
  margin: 0 auto;
  max-width: 56ch;
  line-height: 1.55;
}

.horizon-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
}

/* Cream-paper horizon card — matches monograms / featured treatment */
.horizon-card {
  position: relative;
  background: radial-gradient(ellipse at top, #fdf8ec 0%, #f5ead1 100%);
  border: 1px solid var(--gold-500);
  border-radius: 6px;
  padding: 1.4rem 1.2rem 1.1rem;
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.6) inset,
    0 10px 26px rgba(10, 22, 40, 0.08);
  display: flex;
  flex-direction: column;
  transition: transform 0.5s var(--ease-out), box-shadow 0.5s var(--ease-out);
}
.horizon-card::before {
  content: '';
  position: absolute;
  inset: 6px;
  border: 1px solid var(--gold-500);
  border-radius: 3px;
  opacity: 0.4;
  pointer-events: none;
}
.horizon-card:hover {
  transform: translateY(-3px);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.6) inset,
    0 18px 36px rgba(10, 22, 40, 0.14);
}
.horizon-corner {
  position: absolute;
  width: 12px;
  height: 12px;
  border: 0 solid var(--gold-500);
  pointer-events: none;
  z-index: 2;
}
.horizon-corner.tl { top: 10px; left: 10px; border-width: 1px 0 0 1px; }
.horizon-corner.tr { top: 10px; right: 10px; border-width: 1px 1px 0 0; }
.horizon-corner.bl { bottom: 10px; left: 10px; border-width: 0 0 1px 1px; }
.horizon-corner.br { bottom: 10px; right: 10px; border-width: 0 1px 1px 0; }

/* Year header — large Fraunces italic numeral */
.horizon-head {
  text-align: center;
  margin-bottom: 1.1rem;
  position: relative;
  z-index: 1;
}
.horizon-num {
  display: block;
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 400;
  font-size: clamp(2.4rem, 4vw, 3.2rem);
  color: var(--navy-900);
  line-height: 1;
  letter-spacing: -0.03em;
}
.horizon-unit {
  display: inline-block;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--gold-500);
  margin-top: 0.4rem;
  position: relative;
  padding: 0 0.8rem;
}
.horizon-unit::before,
.horizon-unit::after {
  content: '';
  position: absolute;
  top: 50%;
  width: 14px;
  height: 1px;
  background: var(--gold-500);
  opacity: 0.55;
}
.horizon-unit::before { right: 100%; }
.horizon-unit::after  { left: 100%; }

/* Revenue bars */
.horizon-bars {
  display: flex;
  flex-direction: column;
  gap: 0.9rem;
  margin-bottom: 1.1rem;
  position: relative;
  z-index: 1;
}
.horizon-row-meta {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 0.3rem;
  gap: 0.5rem;
}
.horizon-row-label {
  font-size: 0.68rem;
  font-weight: 700;
  color: var(--ink-600);
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.horizon-row-premium .horizon-row-label { color: var(--gold-500); }
.horizon-row-value {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 1rem;
  color: var(--navy-900);
  letter-spacing: -0.01em;
  white-space: nowrap;
  font-feature-settings: 'tnum' 1;
  font-variant-numeric: tabular-nums;
}
.horizon-row-premium .horizon-row-value {
  font-style: italic;
  font-size: 1.08rem;
}
.horizon-track {
  position: relative;
  height: 8px;
  background: rgba(10, 22, 40, 0.05);
  border: 1px solid rgba(201, 160, 106, 0.22);
  border-radius: 4px;
  overflow: hidden;
}
.horizon-fill {
  display: block;
  height: 100%;
  width: 0;
  border-radius: 3px;
  transition: width 1.4s cubic-bezier(0.22, 1, 0.36, 1);
}
.horizon-fill-base {
  background: linear-gradient(90deg, #c9ba9b 0%, #d9c8a7 100%);
}
.horizon-fill-mgmt {
  background: linear-gradient(90deg, var(--gold-500) 0%, var(--gold-400) 100%);
  box-shadow: 0 0 8px rgba(201, 160, 106, 0.28);
}
.horizon-fill-stage {
  position: relative;
  background: linear-gradient(90deg, #a17f4e 0%, var(--gold-500) 50%, var(--gold-300) 100%);
  box-shadow: 0 0 14px rgba(201, 160, 106, 0.55);
}
.horizon-fill-stage::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(255,255,255,0.35) 0%, transparent 55%);
  pointer-events: none;
}

/* Staging recovery cartouche */
.horizon-recovery {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  padding: 0.75rem 0.9rem;
  margin-top: auto;
  background: linear-gradient(135deg, rgba(201, 160, 106, 0.14) 0%, rgba(201, 160, 106, 0.04) 100%);
  border: 1px solid rgba(201, 160, 106, 0.4);
  border-radius: 4px;
  position: relative;
  z-index: 1;
}
.horizon-recovery-glyph {
  font-size: 0.95rem;
  color: var(--gold-500);
  line-height: 1;
  flex-shrink: 0;
}
.horizon-recovery-text {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  min-width: 0;
}
.horizon-recovery-label {
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ink-600);
}
.horizon-recovery-value {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 500;
  font-size: 1.05rem;
  color: var(--navy-900);
  letter-spacing: -0.005em;
  font-feature-settings: 'tnum' 1;
  font-variant-numeric: tabular-nums;
}

/* Year 5 — "money shot" featured card */
.horizon-card-featured {
  background: radial-gradient(ellipse at top, #fdf3d5 0%, #ecd9a0 100%);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.6) inset,
    0 14px 34px rgba(201, 160, 106, 0.25),
    0 0 0 1px rgba(201, 160, 106, 0.3);
}
.horizon-card-featured .horizon-num {
  background: linear-gradient(135deg, #805d2e 0%, #c9a06a 50%, #805d2e 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: #805d2e; /* fallback */
}
.horizon-card-featured .horizon-recovery {
  background: linear-gradient(135deg, rgba(201, 160, 106, 0.22) 0%, rgba(201, 160, 106, 0.06) 100%);
  border-color: rgba(201, 160, 106, 0.55);
}

.estimator-horizon-foot {
  text-align: center;
  margin-top: 1.25rem;
  font-size: 0.74rem;
  font-style: italic;
  color: var(--ink-400);
  line-height: 1.5;
}

@media (max-width: 900px) {
  .horizon-grid { grid-template-columns: 1fr; gap: 0.9rem; }
}

@media (prefers-reduced-motion: reduce) {
  .horizon-fill { transition: none; }
}

.estimator-btn {
  margin-top: 0.4rem;
  padding: 1rem 1.4rem;
  background: linear-gradient(135deg, var(--gold-500), var(--gold-400));
  color: var(--navy-900);
  border: none;
  border-radius: 999px;
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 0.92rem;
  letter-spacing: 0.02em;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  box-shadow: 0 8px 20px rgba(201, 160, 106, 0.35), inset 0 0 0 1.5px rgba(255,255,255,0.3);
  transition: transform 0.25s var(--ease-out), box-shadow 0.25s var(--ease-out);
}
.estimator-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 28px rgba(201, 160, 106, 0.45), inset 0 0 0 1.5px rgba(255,255,255,0.4);
}
.estimator-btn:active { transform: translateY(0); }
.estimator-btn svg { transition: transform 0.25s var(--ease-out); }
.estimator-btn:hover svg { transform: translateX(3px); }
.estimator-btn[data-loading="true"] { pointer-events: none; opacity: 0.65; }

/* ======== RESULTS (right column) ======== */
.estimator-results {
  padding: 2.5rem 2.25rem 2.25rem;
  background:
    radial-gradient(ellipse at 100% 0%, rgba(201, 160, 106, 0.1), transparent 60%),
    var(--cream-50);
  display: flex;
  flex-direction: column;
  /* Start content from the top so the tall output doesn't shift vertically
     as it grows during the reveal — the empty state self-centers via margin:auto. */
  justify-content: flex-start;
}

/* Empty state — centers itself in the flex column when visible */
.estimator-empty {
  text-align: center;
  max-width: 360px;
  margin: auto;
}
.estimator-empty-ring {
  width: 90px; height: 90px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  margin: 0 auto 1.3rem;
  background: linear-gradient(135deg, rgba(201, 160, 106, 0.18), rgba(201, 160, 106, 0.04));
  color: var(--gold-500);
  border: 1.5px solid rgba(201, 160, 106, 0.4);
  box-shadow: 0 8px 24px rgba(201, 160, 106, 0.18);
}
.estimator-empty h4 {
  font-family: var(--font-display);
  font-size: 1.35rem;
  font-weight: 400;
  color: var(--navy-900);
  margin: 0 0 0.5rem;
  letter-spacing: -0.005em;
}
.estimator-empty p {
  font-size: 0.92rem;
  color: var(--ink-400, #7a7368);
  line-height: 1.55;
  margin: 0 0 1.25rem;
}
.estimator-empty-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  text-align: left;
}
.estimator-empty-list li {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  font-size: 0.82rem;
  color: var(--navy-900);
}
.estimator-empty-list svg { color: var(--gold-500); flex-shrink: 0; }

/* Output state */
.estimator-output {
  animation: estimatorFade 0.6s var(--ease-out);
}
@keyframes estimatorFade {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: translateY(0); }
}
.estimator-output-head {
  text-align: center;
  margin-bottom: 1.5rem;
  padding-bottom: 1.1rem;
  border-bottom: 1px dashed rgba(201, 160, 106, 0.35);
  /* Leaves room under the fixed navbar when we scroll this element into view */
  scroll-margin-top: 110px;
}
.estimator-output-eyebrow {
  display: block;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--gold-500);
  margin-bottom: 0.5rem;
}
.estimator-output-head h4 {
  font-family: var(--font-display);
  font-size: 1.45rem;
  font-weight: 400;
  color: var(--navy-900);
  line-height: 1.25;
  margin: 0;
  letter-spacing: -0.01em;
}
.estimator-output-head h4 em {
  font-style: italic;
  color: var(--gold-500);
  font-weight: 300;
}

/* Results cards row */
.estimator-output-cards {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: stretch;
  gap: 0.6rem;
  margin-bottom: 1.4rem;
}
.estimator-output-card {
  position: relative;
  background: #ffffff;
  border: 1px solid rgba(201, 160, 106, 0.25);
  border-radius: 16px;
  padding: 1.25rem 1.15rem 1.1rem;
  box-shadow: var(--shadow-sm);
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}
.estimator-output-card header { display: block; }
.estimator-output-label {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-600);
}
.estimator-output-label svg { color: var(--gold-500); }

.estimator-output-amount {
  display: flex;
  align-items: baseline;
  gap: 0.15rem;
  font-family: var(--font-display);
  color: var(--navy-900);
  line-height: 1;
  margin-top: 0.35rem;
}
.est-currency {
  font-size: 1.3rem;
  font-weight: 500;
  color: var(--gold-500);
  margin-right: 0.08rem;
}
.est-num {
  font-size: 2.75rem;
  font-weight: 500;
  font-feature-settings: 'tnum' 1;
  letter-spacing: -0.02em;
}
.est-unit {
  font-size: 0.88rem;
  font-style: italic;
  color: var(--ink-400, #7a7368);
  margin-left: 0.2rem;
}

.estimator-output-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.78rem;
  color: var(--ink-400, #7a7368);
  margin-top: 0.1rem;
}
.estimator-output-meta > span:first-child {
  /* Annual dollar values tween — keep digit widths stable to prevent jitter */
  font-feature-settings: 'tnum' 1;
  font-variant-numeric: tabular-nums;
}
.est-dot { color: rgba(201, 160, 106, 0.55); }

/* Premium (staging) card */
.estimator-output-card-premium {
  background:
    radial-gradient(ellipse at 100% 0%, rgba(201, 160, 106, 0.12), transparent 60%),
    #ffffff;
  border: 1.5px solid var(--gold-500);
  box-shadow:
    0 12px 32px rgba(201, 160, 106, 0.22),
    0 0 0 4px rgba(201, 160, 106, 0.08);
}
.estimator-output-card-premium .est-num {
  background: linear-gradient(135deg, var(--gold-500), var(--gold-400), var(--gold-500));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  filter: drop-shadow(0 2px 4px rgba(201, 160, 106, 0.22));
}
.estimator-output-card-premium .estimator-output-label { color: var(--navy-900); }
.estimator-output-badge {
  position: absolute;
  top: -10px;
  right: 14px;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.35rem 0.65rem;
  background: var(--navy-900);
  color: var(--gold-400);
  border: 1.5px solid var(--gold-500);
  border-radius: 999px;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  box-shadow: 0 6px 14px rgba(10, 22, 40, 0.22);
  z-index: 3;
}
.estimator-output-badge svg { color: var(--gold-400); }

/* + separator between cards */
.estimator-output-vs {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 0 0.2rem;
  gap: 0.35rem;
  min-width: 24px;
}
.estimator-output-vs-line {
  flex: 1 0 0;
  width: 1.5px;
  background: repeating-linear-gradient(180deg, var(--gold-500) 0 4px, transparent 4px 8px);
  opacity: 0.55;
  min-height: 18px;
}
.estimator-output-vs-plus {
  width: 28px; height: 28px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--gold-500), var(--gold-400));
  color: var(--navy-900);
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 1.1rem;
  display: grid;
  place-items: center;
  box-shadow: 0 4px 12px rgba(201, 160, 106, 0.4), inset 0 0 0 1.5px rgba(255,255,255,0.4);
  line-height: 1;
}

/* Big delta callout */
.estimator-delta {
  background: linear-gradient(135deg, var(--navy-900), #1a2f47);
  border: 1px solid rgba(201, 160, 106, 0.5);
  border-radius: 16px;
  padding: 1.25rem 1.4rem;
  text-align: center;
  position: relative;
  overflow: hidden;
  margin-bottom: 1.25rem;
}
.estimator-delta::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 20% 50%, rgba(201, 160, 106, 0.22), transparent 55%);
  pointer-events: none;
}
.estimator-delta-inner {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
}
.estimator-delta-eyebrow {
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(253, 249, 243, 0.65);
}
.estimator-delta-row {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 0.35rem;
  font-family: var(--font-display);
  line-height: 1;
}
.estimator-delta-plus {
  color: var(--gold-400);
  font-size: 1.8rem;
  font-weight: 500;
}
.estimator-delta-amount {
  color: var(--gold-400);
  font-size: 2.6rem;
  font-weight: 500;
  letter-spacing: -0.02em;
  font-feature-settings: 'tnum' 1;
  filter: drop-shadow(0 2px 8px rgba(201, 160, 106, 0.28));
}
.estimator-delta-suffix {
  color: var(--cream-50);
  font-size: 1.05rem;
  font-style: italic;
  opacity: 0.92;
}
.estimator-delta-note {
  font-size: 0.78rem;
  color: rgba(253, 249, 243, 0.62);
  font-style: italic;
  margin-top: 0.2rem;
}

.estimator-disclaimer {
  font-size: 0.78rem;
  color: var(--ink-400, #7a7368);
  line-height: 1.55;
  margin: 0 0 1.25rem;
  text-align: center;
  font-style: italic;
}

.estimator-intl-note {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  padding: 0.85rem 1rem;
  margin: 0 0 1rem;
  background: rgba(201, 160, 106, 0.1);
  border: 1px solid rgba(201, 160, 106, 0.35);
  border-left: 3px solid var(--gold-500);
  border-radius: 6px;
  font-size: 0.82rem;
  line-height: 1.5;
  color: var(--ink-600, #4a443a);
}
/* `display: flex` above has the same specificity as the UA's [hidden] rule,
   so without this override the note leaks through even when hidden="true". */
.estimator-intl-note[hidden] { display: none; }
.estimator-intl-note svg {
  flex-shrink: 0;
  color: var(--gold-500);
  margin-top: 2px;
}
.estimator-intl-note strong {
  color: var(--navy-900);
  font-weight: 600;
}

.estimator-cta {
  display: flex;
  gap: 0.75rem;
  justify-content: center;
  flex-wrap: wrap;
}
.estimator-cta .btn { flex: 0 1 auto; }

/* ======== RESPONSIVE ======== */
@media (max-width: 960px) {
  .estimator-grid { grid-template-columns: 1fr; min-height: 0; }
  .estimator-form { border-right: 0; border-bottom: 1px solid rgba(201, 160, 106, 0.22); padding: 2rem 1.6rem; }
  .estimator-results { padding: 2rem 1.6rem; }
}
@media (max-width: 640px) {
  .estimator-output-cards { grid-template-columns: 1fr; gap: 0.75rem; }
  .estimator-output-vs { flex-direction: row; padding: 0.1rem 0; min-width: 0; }
  .estimator-output-vs-line { width: auto; height: 1.5px; min-height: 0; background: repeating-linear-gradient(90deg, var(--gold-500) 0 4px, transparent 4px 8px); }
  .est-num { font-size: 2.3rem; }
  .estimator-delta-amount { font-size: 2rem; }
  .estimator-delta-suffix { font-size: 0.95rem; }
  .estimator-segmented label { padding: 0.5rem 0.65rem; font-size: 0.82rem; }
  .estimator-corner { width: 16px; height: 16px; top: 10px; left: 10px; }
  .estimator-corner-tr { left: auto; right: 10px; }
  .estimator-corner-bl { top: auto; bottom: 10px; }
  .estimator-corner-br { top: auto; left: auto; bottom: 10px; right: 10px; }
}

/* ===========================================
   PACKAGES PAGE (packages.html)
   =========================================== */
.packages-section { padding-top: 5rem; padding-bottom: 5rem; }
.packages-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
  max-width: 1180px;
  margin: 0 auto;
}

.package-card {
  position: relative;
  background: var(--cream-50);
  border: 1px solid rgba(28, 24, 18, 0.08);
  border-radius: 28px;
  padding: 3rem 2.5rem 2.5rem;
  box-shadow: var(--shadow-md);
  display: flex;
  flex-direction: column;
  transition: transform 0.4s var(--ease-out), box-shadow 0.4s var(--ease-out);
}
.package-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow-xl);
}
.package-card.featured {
  background: linear-gradient(180deg, #fffaf0 0%, var(--cream-50) 100%);
  border: 2px solid var(--gold-500);
  box-shadow: 0 30px 80px rgba(201, 160, 106, 0.22);
}
.package-card.featured::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0; height: 6px;
  background: linear-gradient(90deg, var(--gold-500), var(--gold-400), var(--gold-500));
  border-radius: 28px 28px 0 0;
}
.package-badge {
  position: absolute;
  top: -14px;
  left: 50%;
  transform: translateX(-50%);
  background: var(--navy-900);
  color: var(--gold-400);
  padding: 0.45rem 1.1rem;
  border-radius: 999px;
  font-size: 0.72rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 700;
  box-shadow: var(--shadow-md);
  border: 2px solid var(--gold-500);
}

.package-header { margin-bottom: 1.75rem; }
.package-tag {
  display: inline-block;
  color: var(--gold-500);
  font-size: 0.75rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  font-weight: 600;
  margin-bottom: 0.75rem;
}
.package-card h2 {
  font-size: clamp(1.7rem, 2.8vw, 2.25rem);
  margin-bottom: 0.6rem;
  line-height: 1.15;
}
.package-subtitle {
  color: var(--ink-600);
  font-size: 0.98rem;
  line-height: 1.5;
}

.package-price {
  background: var(--cream-100);
  border-radius: 14px;
  padding: 1.15rem 1.25rem;
  margin-bottom: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
}
.package-card.featured .package-price {
  background: var(--navy-900);
  color: var(--cream-50);
}
.package-price-label {
  font-family: var(--font-display);
  font-size: 1.3rem;
  color: var(--navy-900);
  font-weight: 500;
}
.package-card.featured .package-price-label { color: var(--gold-400); }
.package-price-note {
  font-size: 0.82rem;
  color: var(--ink-600);
  line-height: 1.45;
}
.package-card.featured .package-price-note { color: rgba(253, 249, 243, 0.75); }

.package-ideal {
  background: rgba(201, 160, 106, 0.08);
  border-left: 3px solid var(--gold-500);
  border-radius: 0 10px 10px 0;
  padding: 0.9rem 1.1rem;
  font-size: 0.88rem;
  color: var(--ink-600);
  margin-bottom: 1.75rem;
  line-height: 1.55;
}
.package-ideal strong { color: var(--navy-900); }

.package-features-title {
  font-family: var(--font-body);
  font-size: 0.82rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-400);
  font-weight: 600;
  margin-bottom: 1rem;
}
.package-features {
  list-style: none;
  padding: 0;
  margin: 0 0 2rem;
  flex: 1;
}
.package-features li {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  padding: 0.6rem 0;
  border-bottom: 1px solid rgba(28, 24, 18, 0.06);
  font-size: 0.92rem;
  color: var(--ink-600);
  line-height: 1.5;
}
.package-features li:last-child { border-bottom: none; }
.package-features .check {
  flex-shrink: 0;
  width: 22px; height: 22px;
  border-radius: 50%;
  background: var(--gold-300);
  color: var(--navy-900);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.7rem;
  font-weight: 700;
  margin-top: 1px;
}
.package-features .check.gold {
  background: var(--gold-500);
  color: var(--navy-900);
  box-shadow: 0 0 0 3px rgba(201, 160, 106, 0.22);
}

.package-cta {
  width: 100%;
  justify-content: center;
  padding: 1.1rem 2rem;
  font-size: 1rem;
}

@media (max-width: 880px) {
  .packages-grid { grid-template-columns: 1fr; gap: 2.5rem; }
  .package-card { padding: 2.5rem 1.75rem 2rem; }
}

/* ===========================================
   PACKAGES V2 — Revamped pair of cards
   =========================================== */
.packages-section-v2 {
  position: relative;
  padding: clamp(5rem, 8vw, 7.5rem) 0 clamp(5rem, 8vw, 7.5rem);
  background: var(--cream-50);
  overflow: hidden;
  isolation: isolate;
}
.packages-section-v2::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at 25% 10%, rgba(201, 160, 106, 0.10) 0%, transparent 50%),
    radial-gradient(ellipse at 85% 90%, rgba(10, 22, 40, 0.05) 0%, transparent 55%);
  pointer-events: none;
  z-index: -1;
}
.packages-section-v2::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image: linear-gradient(to right, rgba(10, 22, 40, 0.04) 1px, transparent 1px);
  background-size: 72px 100%;
  mask-image: linear-gradient(to bottom, transparent, black 20%, black 80%, transparent);
  -webkit-mask-image: linear-gradient(to bottom, transparent, black 20%, black 80%, transparent);
  pointer-events: none;
  opacity: 0.5;
  z-index: -1;
}

.pkg-grid {
  display: grid;
  grid-template-columns: 1fr 1.08fr; /* featured slightly wider */
  gap: 2rem;
  max-width: 1200px;
  margin: 0 auto;
  align-items: stretch;
}

/* ----- Shared card shell ----- */
.pkg {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: 2.75rem 2.25rem 2rem;
  border-radius: 24px;
  overflow: hidden;
  isolation: isolate;
  transition: transform 0.5s var(--ease-out), box-shadow 0.5s var(--ease-out);
}
.pkg-hero { padding-top: 4.25rem; } /* extra space for the ribbon inside */

/* ----- Package 1: clean cream ----- */
.pkg-standard {
  background: #fff;
  border: 1px solid rgba(10, 22, 40, 0.07);
  box-shadow: 0 10px 30px rgba(10, 22, 40, 0.05);
}
.pkg-standard:hover {
  transform: translateY(-4px);
  box-shadow: 0 24px 60px rgba(10, 22, 40, 0.1);
}

/* ----- Package 2: dark navy flagship ----- */
.pkg-hero {
  background: linear-gradient(180deg, var(--navy-900) 0%, #061024 100%);
  border: 1px solid var(--gold-500);
  box-shadow: 0 30px 80px rgba(10, 22, 40, 0.35), 0 0 0 1px rgba(201, 160, 106, 0.15) inset;
  color: var(--cream-50);
  transform: translateY(-12px); /* lifted to stand out */
}
.pkg-hero:hover {
  transform: translateY(-18px);
  box-shadow: 0 40px 100px rgba(10, 22, 40, 0.45), 0 0 0 1px rgba(201, 160, 106, 0.3) inset;
}
.pkg-hero-glow {
  position: absolute;
  top: -120px;
  left: 50%;
  transform: translateX(-50%);
  width: 480px;
  height: 320px;
  background: radial-gradient(ellipse at center, rgba(201, 160, 106, 0.22) 0%, transparent 65%);
  pointer-events: none;
  z-index: 0;
}
.pkg-watermark {
  position: absolute;
  top: 1rem;
  right: 1rem;
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 300;
  font-size: clamp(7rem, 11vw, 10rem);
  line-height: 0.85;
  color: transparent;
  -webkit-text-stroke: 1px rgba(201, 160, 106, 0.16);
  letter-spacing: -0.04em;
  pointer-events: none;
  z-index: 0;
}

/* Ribbon on featured (sits inside the card since parent has overflow:hidden) */
.pkg-ribbon {
  position: absolute;
  top: 18px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 3;
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.42rem 0.95rem;
  background: linear-gradient(135deg, var(--gold-500), var(--gold-400));
  color: var(--navy-900);
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 0.68rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  border-radius: 999px;
  box-shadow: 0 8px 20px rgba(201, 160, 106, 0.4);
  white-space: nowrap;
}

/* Corner brackets */
.pkg-corner {
  position: absolute;
  width: 36px;
  height: 36px;
  border-color: rgba(10, 22, 40, 0.2);
  pointer-events: none;
  z-index: 1;
}
.pkg-corner-tl { top: 14px; left: 14px; border-top: 1px solid; border-left: 1px solid; }
.pkg-corner-br { bottom: 14px; right: 14px; border-bottom: 1px solid; border-right: 1px solid; }
.pkg-corner-gold { border-color: rgba(201, 160, 106, 0.5); }

/* ----- Header / eyebrow ----- */
/* Keep content above decorative layers (watermark, glow, corners) */
.pkg-head,
.pkg-strip,
.pkg-price,
.pkg-ideal,
.pkg-features-head,
.pkg-features,
.pkg-cta,
.pkg-foot { position: relative; z-index: 2; }
.pkg-head { margin-bottom: 1.25rem; }
.pkg-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  margin-bottom: 1rem;
}
.pkg-num-chip {
  display: inline-grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--cream-100);
  border: 1px solid rgba(201, 160, 106, 0.35);
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 500;
  font-size: 1rem;
  color: var(--gold-500);
}
.pkg-num-chip-gold {
  background: rgba(201, 160, 106, 0.12);
  border-color: var(--gold-500);
  color: var(--gold-400);
  box-shadow: 0 0 0 3px rgba(201, 160, 106, 0.1);
}
.pkg-eyebrow-label {
  font-family: var(--font-body);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--ink-400);
}
.pkg-eyebrow-hero .pkg-eyebrow-label { color: var(--gold-400); }

.pkg-title {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: clamp(1.65rem, 2.3vw, 2.1rem);
  line-height: 1.1;
  color: var(--navy-900);
  margin: 0 0 0.55rem;
  letter-spacing: -0.01em;
}
.pkg-title em {
  font-style: italic;
  font-weight: 300;
  color: var(--gold-500);
}
.pkg-title-hero { color: var(--cream-50); font-size: clamp(1.75rem, 2.5vw, 2.25rem); }
.pkg-title-hero em { color: var(--gold-400); }

.pkg-sub {
  color: var(--ink-600);
  font-size: 0.92rem;
  line-height: 1.5;
  margin: 0;
}
.pkg-sub-hero { color: rgba(253, 249, 243, 0.75); }

/* ----- Value strip (hero only) ----- */
.pkg-strip {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.7rem;
  padding: 0.7rem 0.85rem;
  background: rgba(201, 160, 106, 0.08);
  border: 1px solid rgba(201, 160, 106, 0.22);
  border-radius: 12px;
  margin-bottom: 1rem;
}
.pkg-strip-item {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-family: var(--font-body);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--cream-50);
  white-space: nowrap;
}
.pkg-strip-item svg { color: var(--gold-400); flex-shrink: 0; }
.pkg-strip-sep {
  width: 1px;
  height: 18px;
  background: rgba(201, 160, 106, 0.25);
}

/* ----- Price block ----- */
.pkg-price {
  background: var(--cream-100);
  border: 1px solid rgba(10, 22, 40, 0.05);
  border-radius: 12px;
  padding: 0.85rem 1rem;
  margin-bottom: 1rem;
}
.pkg-price-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.3rem;
}
.pkg-price-label {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 1.05rem;
  color: var(--navy-900);
}
.pkg-price-chip {
  font-family: var(--font-body);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding: 0.3rem 0.7rem;
  background: var(--navy-900);
  color: var(--gold-400);
  border-radius: 999px;
}
.pkg-price-note {
  font-size: 0.82rem;
  color: var(--ink-600);
  line-height: 1.45;
  margin: 0;
}
.pkg-price-hero {
  background: rgba(201, 160, 106, 0.08);
  border: 1px solid rgba(201, 160, 106, 0.28);
}
.pkg-price-hero .pkg-price-label { color: var(--cream-50); }
.pkg-price-hero .pkg-price-note { color: rgba(253, 249, 243, 0.7); }
.pkg-price-chip-gold {
  background: linear-gradient(135deg, var(--gold-500), var(--gold-400));
  color: var(--navy-900);
  box-shadow: 0 6px 14px rgba(201, 160, 106, 0.3);
}

/* ----- "Best for" row ----- */
.pkg-ideal {
  display: flex;
  gap: 0.7rem;
  align-items: flex-start;
  padding: 0.75rem 1rem;
  background: rgba(10, 22, 40, 0.035);
  border-left: 3px solid var(--gold-500);
  border-radius: 0 10px 10px 0;
  margin-bottom: 1.25rem;
}
.pkg-ideal p {
  font-size: 0.84rem;
  color: var(--ink-600);
  line-height: 1.5;
  margin: 0;
}
.pkg-ideal p strong {
  color: var(--navy-900);
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  font-size: 0.75rem;
}
.pkg-ideal-icon {
  flex-shrink: 0;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: #fff;
  border: 1px solid rgba(201, 160, 106, 0.35);
  color: var(--gold-500);
  margin-top: 0.1rem;
}
.pkg-ideal-hero {
  background: rgba(201, 160, 106, 0.08);
  border-left-color: var(--gold-500);
}
.pkg-ideal-hero p { color: rgba(253, 249, 243, 0.8); }
.pkg-ideal-hero p strong { color: var(--gold-400); }
.pkg-ideal-icon-gold {
  background: var(--gold-500);
  border-color: var(--gold-500);
  color: var(--navy-900);
  box-shadow: 0 0 0 4px rgba(201, 160, 106, 0.2);
}

/* ----- Features ----- */
.pkg-features-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.5rem;
}
.pkg-features-title {
  font-family: var(--font-body);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ink-400);
  margin: 0;
}
.pkg-features-title-gold {
  color: rgba(253, 249, 243, 0.8);
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.82rem;
  letter-spacing: 0.08em;
  text-transform: none;
  font-weight: 500;
}
.pkg-features-title-gold em {
  font-style: italic;
  color: var(--gold-400);
  font-weight: 400;
}
.pkg-features-plus {
  display: inline-grid;
  place-items: center;
  padding: 0.18rem 0.5rem;
  border-radius: 6px;
  background: linear-gradient(135deg, var(--gold-500), var(--gold-400));
  color: var(--navy-900);
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 500;
  font-size: 0.85rem;
  box-shadow: 0 4px 10px rgba(201, 160, 106, 0.3);
}
.pkg-features-count {
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--gold-500);
  padding: 0.2rem 0.55rem;
  border: 1px solid rgba(201, 160, 106, 0.35);
  border-radius: 999px;
}

.pkg-features {
  list-style: none;
  padding: 0;
  margin: 0 0 1.25rem;
  flex: 1;
}
.pkg-features li {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  padding: 0.45rem 0;
  border-bottom: 1px dashed rgba(10, 22, 40, 0.08);
  font-size: 0.85rem;
  color: var(--ink-600);
  line-height: 1.45;
}
.pkg-features li:last-child { border-bottom: none; }
.pkg-features li small {
  color: var(--ink-400);
  font-size: 0.85em;
}
.pkg-features-hero li {
  border-bottom-color: rgba(201, 160, 106, 0.15);
  color: rgba(253, 249, 243, 0.88);
}
.pkg-features-hero li strong { color: var(--cream-50); font-weight: 600; }
.pkg-features-hero li small { color: rgba(253, 249, 243, 0.55); }

.pkg-check {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--cream-100);
  color: var(--gold-500);
  display: inline-grid;
  place-items: center;
  margin-top: 0.1rem;
  border: 1px solid rgba(201, 160, 106, 0.35);
}
.pkg-check-gold {
  background: linear-gradient(135deg, var(--gold-500), var(--gold-400));
  color: var(--navy-900);
  border-color: var(--gold-500);
  box-shadow: 0 0 0 3px rgba(201, 160, 106, 0.18), 0 4px 10px rgba(201, 160, 106, 0.25);
}

/* ----- CTA ----- */
.pkg-cta {
  width: 100%;
  justify-content: center;
  padding: 0.95rem 1.75rem;
  font-size: 0.95rem;
  font-weight: 600;
  letter-spacing: 0.04em;
}
.pkg-cta-hero {
  background: linear-gradient(135deg, var(--gold-500), var(--gold-400));
  color: var(--navy-900);
  box-shadow: 0 16px 32px rgba(201, 160, 106, 0.35);
  border: none;
  position: relative;
  overflow: hidden;
}
.pkg-cta-hero::before {
  content: "";
  position: absolute;
  top: 0;
  left: -120%;
  width: 60%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.35), transparent);
  transform: skewX(-20deg);
  transition: left 0.9s ease;
}
.pkg-cta-hero:hover::before { left: 140%; }
.pkg-cta-hero:hover {
  transform: translateY(-2px);
  box-shadow: 0 20px 40px rgba(201, 160, 106, 0.45);
}

.pkg-foot {
  margin: 0.85rem 0 0;
  text-align: center;
  font-size: 0.78rem;
  color: var(--ink-400);
  letter-spacing: 0.03em;
}
.pkg-foot-hero {
  color: var(--gold-400);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  width: 100%;
}

/* ----- Responsive ----- */
@media (max-width: 960px) {
  .pkg-grid { grid-template-columns: 1fr; gap: 3.5rem; }
  .pkg-hero { transform: none; }
  .pkg-hero:hover { transform: translateY(-4px); }
}
@media (max-width: 560px) {
  .pkg { padding: 2.75rem 1.5rem 1.75rem; }
  .pkg-strip { flex-wrap: wrap; gap: 0.5rem 0.8rem; }
  .pkg-strip-sep { display: none; }
  .pkg-price-top { flex-direction: column; align-items: flex-start; gap: 0.4rem; }
  .pkg-watermark { font-size: 9rem; top: 0; right: -1rem; }
}

/* ===========================================
   COMPARISON TABLE
   =========================================== */
.compare-table {
  max-width: 960px;
  margin: 0 auto;
  background: var(--cream-50);
  border-radius: 20px;
  box-shadow: var(--shadow-md);
  overflow: hidden;
  border: 1px solid rgba(28, 24, 18, 0.08);
}
.compare-table table {
  width: 100%;
  border-collapse: collapse;
}
.compare-table th,
.compare-table td {
  padding: 1rem 1.25rem;
  text-align: left;
  font-size: 0.95rem;
  border-bottom: 1px solid rgba(28, 24, 18, 0.06);
}
.compare-table th {
  background: var(--navy-900);
  color: var(--cream-50);
  font-weight: 600;
  font-family: var(--font-body);
  letter-spacing: 0.02em;
}
.compare-table th.highlight {
  background: var(--gold-500);
  color: var(--navy-900);
}
.compare-table td {
  color: var(--ink-600);
}
.compare-table td:first-child {
  color: var(--navy-900);
  font-weight: 500;
}
.compare-table td.highlight {
  background: rgba(201, 160, 106, 0.10);
  color: var(--navy-900);
  font-weight: 600;
  text-align: center;
}
.compare-table td:nth-child(2) { text-align: center; color: var(--navy-900); font-weight: 500; }
.compare-table td.muted { color: var(--ink-400); text-align: center; }
.compare-table tr:last-child td { border-bottom: none; }
.compare-table tr:hover td { background: rgba(201, 160, 106, 0.04); }
.compare-table tr:hover td.highlight { background: rgba(201, 160, 106, 0.18); }

@media (max-width: 640px) {
  .compare-table { font-size: 0.85rem; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .compare-table table { min-width: 100%; }
  .compare-table th, .compare-table td { padding: 0.75rem 0.85rem; }
}
@media (max-width: 480px) {
  .compare-table { font-size: 0.78rem; border-radius: 14px; }
  .compare-table th, .compare-table td { padding: 0.6rem 0.55rem; }
}

/* ===========================================
   LEADERSHIP / CEO SECTION (about.html)
   =========================================== */
.leadership-section {
  background:
    radial-gradient(ellipse at 85% 15%, rgba(201, 160, 106, 0.16), transparent 52%),
    radial-gradient(ellipse at 10% 85%, rgba(16, 31, 48, 0.06), transparent 50%),
    var(--cream-50);
  position: relative;
  padding-top: 4rem;
  padding-bottom: 6rem;
  overflow: hidden;
}
.leadership-section::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(var(--sand-300) 1px, transparent 1px),
    linear-gradient(90deg, var(--sand-300) 1px, transparent 1px);
  background-size: 80px 80px;
  opacity: 0.07;
  pointer-events: none;
}
.leadership-section .section-head { margin-bottom: 3rem; }

.leader-card {
  display: grid;
  grid-template-columns: 400px 1fr;
  gap: 4.5rem;
  align-items: stretch;
  max-width: 1180px;
  margin: 0 auto;
  padding: 3.5rem 3.5rem 3rem;
  background:
    linear-gradient(180deg, #fffdf8 0%, #fff 60%);
  border-radius: 28px;
  box-shadow:
    0 30px 80px rgba(10, 21, 32, 0.12),
    0 2px 8px rgba(10, 21, 32, 0.04);
  position: relative;
  border: 1px solid rgba(201, 160, 106, 0.18);
}

/* Editorial corner brackets */
.leader-corner {
  position: absolute;
  width: 28px; height: 28px;
  pointer-events: none;
  z-index: 3;
}
.leader-corner::before,
.leader-corner::after {
  content: '';
  position: absolute;
  background: var(--gold-500);
  border-radius: 1px;
}
.leader-corner::before { width: 100%; height: 1.5px; }
.leader-corner::after  { width: 1.5px; height: 100%; }
.leader-corner--tl { top: 18px; left: 18px; }
.leader-corner--tl::before { top: 0; left: 0; }
.leader-corner--tl::after  { top: 0; left: 0; }
.leader-corner--tr { top: 18px; right: 18px; }
.leader-corner--tr::before { top: 0; right: 0; }
.leader-corner--tr::after  { top: 0; right: 0; }
.leader-corner--bl { bottom: 18px; left: 18px; }
.leader-corner--bl::before { bottom: 0; left: 0; }
.leader-corner--bl::after  { bottom: 0; left: 0; }
.leader-corner--br { bottom: 18px; right: 18px; }
.leader-corner--br::before { bottom: 0; right: 0; }
.leader-corner--br::after  { bottom: 0; right: 0; }

/* Portrait */
.leader-portrait {
  position: relative;
  aspect-ratio: 4 / 5;
  margin-top: 0.5rem;
}
.leader-portrait-plate {
  position: absolute;
  inset: 18px -18px -18px 18px;
  border-radius: 22px;
  background:
    linear-gradient(135deg, var(--gold-500) 0%, var(--gold-300) 55%, var(--gold-400) 100%);
  z-index: 1;
  opacity: 0.85;
  box-shadow: 0 18px 40px rgba(201, 160, 106, 0.32);
}
.leader-portrait-plate::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background-image:
    repeating-linear-gradient(45deg,
      rgba(253, 249, 243, 0.16) 0 2px,
      transparent 2px 14px);
  opacity: 0.55;
  mix-blend-mode: overlay;
}
.leader-portrait-frame {
  position: absolute;
  inset: 0;
  overflow: hidden;
  border-radius: 20px;
  box-shadow:
    0 24px 50px rgba(10, 21, 32, 0.28),
    0 0 0 1px rgba(253, 249, 243, 0.6);
  z-index: 2;
  transform: rotate(-1.2deg);
  transition: transform 0.7s var(--ease-out);
}
.leader-portrait-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 1.4s var(--ease-out);
}
.leader-card:hover .leader-portrait-frame { transform: rotate(0deg) translateY(-5px); }
.leader-card:hover .leader-portrait-frame img { transform: scale(1.04); }

.leader-portrait-badge {
  position: absolute;
  bottom: -14px;
  right: -14px;
  z-index: 4;
  width: 110px; height: 110px;
  border-radius: 50%;
  background: var(--navy-900);
  color: var(--cream-50);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.1rem;
  box-shadow:
    0 0 0 5px var(--cream-50),
    0 14px 32px rgba(10, 21, 32, 0.28);
  border: 1.5px solid var(--gold-500);
}
.leader-portrait-badge-mono {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 1.6rem;
  color: var(--gold-400);
  line-height: 1;
  letter-spacing: 0.01em;
}
.leader-portrait-badge-label {
  font-size: 0.58rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  font-weight: 600;
  color: rgba(253, 249, 243, 0.72);
  text-align: center;
  line-height: 1.3;
  margin-top: 0.15rem;
}

/* Left column wrapper (portrait + accolades) */
.leader-col {
  display: flex;
  flex-direction: column;
  gap: 2.5rem;
  position: relative;
  height: 100%;
}
.leader-col .leader-accolades { margin-top: auto; }

/* Accolades / Recognition card */
.leader-accolades {
  position: relative;
  background:
    linear-gradient(180deg, #fffdf7 0%, var(--cream-100) 100%);
  border: 1px solid rgba(201, 160, 106, 0.24);
  border-radius: 18px;
  padding: 1.5rem 1.5rem 1.4rem;
  box-shadow:
    0 10px 26px rgba(10, 21, 32, 0.08),
    inset 0 1px 0 rgba(253, 249, 243, 0.8);
  overflow: hidden;
}
.leader-accolades::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--gold-500), var(--gold-300) 50%, var(--gold-500));
}
.leader-accolades::after {
  content: '';
  position: absolute;
  top: -40%;
  right: -30%;
  width: 220px;
  height: 220px;
  background: radial-gradient(circle, rgba(201, 160, 106, 0.14), transparent 65%);
  pointer-events: none;
}

.leader-accolades-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.65rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--gold-500);
  margin-bottom: 1rem;
  position: relative;
}

/* Superhost hero badge */
.leader-accolades-badge {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.35rem;
  padding: 0.5rem 0 0.85rem;
  text-align: center;
  position: relative;
}
.leader-accolades-brand {
  font-family: var(--font-body);
  font-weight: 800;
  font-size: 1.15rem;
  color: #FF5A5F;
  letter-spacing: -0.035em;
  line-height: 1;
  text-transform: lowercase;
}
.leader-accolades-super {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: 2rem;
  color: var(--navy-900);
  line-height: 1;
  letter-spacing: -0.025em;
}
.leader-accolades-stars {
  display: inline-flex;
  gap: 0.25rem;
  color: var(--gold-500);
  margin-top: 0.35rem;
}
.leader-accolades-stars svg {
  width: 15px;
  height: 15px;
  filter: drop-shadow(0 2px 4px rgba(201, 160, 106, 0.32));
}

.leader-accolades-divider {
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(201, 160, 106, 0.42), transparent);
  margin: 0.25rem 0 1rem;
}

.leader-accolades-stat {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  padding: 0.5rem 0.25rem;
}
.leader-accolades-stat + .leader-accolades-stat {
  border-top: 1px dashed rgba(28, 24, 18, 0.08);
  padding-top: 0.85rem;
  margin-top: 0.25rem;
}
.leader-accolades-stat-icon {
  flex-shrink: 0;
  width: 38px; height: 38px;
  border-radius: 10px;
  background: linear-gradient(135deg, var(--gold-400), var(--gold-300));
  color: var(--navy-900);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 10px rgba(201, 160, 106, 0.28);
}
.leader-accolades-stat-text {
  display: flex;
  flex-direction: column;
  line-height: 1.25;
  gap: 0.15rem;
}
.leader-accolades-stat-value {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 1.02rem;
  color: var(--navy-900);
  letter-spacing: -0.005em;
}
.leader-accolades-stat-label {
  font-size: 0.78rem;
  color: var(--ink-600);
  letter-spacing: 0.01em;
  line-height: 1.35;
}

@media (max-width: 960px) {
  .leader-col { max-width: 360px; margin: 0 auto; width: 100%; gap: 2rem; }
}

/* ===========================================
   ABOUT CHAPTERS (Our Story · What Drives Us)
   =========================================== */
.about-chapters {
  background:
    radial-gradient(ellipse at 90% 0%, rgba(201, 160, 106, 0.09), transparent 50%),
    radial-gradient(ellipse at 5% 100%, rgba(16, 31, 48, 0.05), transparent 50%),
    var(--cream-50);
  padding: 7rem 0 6rem;
  position: relative;
  overflow: hidden;
}
.about-chapters::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(var(--sand-300) 1px, transparent 1px),
    linear-gradient(90deg, var(--sand-300) 1px, transparent 1px);
  background-size: 100px 100px;
  opacity: 0.05;
  pointer-events: none;
}

.chapter {
  position: relative;
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  gap: 5rem;
  align-items: center;
  padding: 4rem 0;
}
.chapter + .chapter {
  border-top: 1px solid rgba(201, 160, 106, 0.22);
  margin-top: 2rem;
}
.chapter.reverse { grid-template-columns: 1fr 1.05fr; }
.chapter.reverse .chapter-media { order: 2; }
.chapter.reverse .chapter-body { order: 1; }

/* Big italic chapter number (background glyph) */
.chapter-number {
  position: absolute;
  top: -1.5rem;
  right: -0.5rem;
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 300;
  font-size: clamp(7rem, 15vw, 13rem);
  line-height: 1;
  color: transparent;
  -webkit-text-stroke: 1.5px rgba(201, 160, 106, 0.3);
  pointer-events: none;
  z-index: 0;
  letter-spacing: -0.04em;
  user-select: none;
}
.chapter.reverse .chapter-number { right: auto; left: -0.5rem; }

/* Scroll drift for chapter number (modern browsers) */
@supports (animation-timeline: view()) {
  .chapter-number {
    animation: chapterNumberDrift linear both;
    animation-timeline: view();
    animation-range: entry 0% exit 100%;
  }
  @keyframes chapterNumberDrift {
    from { transform: translateY(80px) rotate(-3deg); opacity: 0.15; }
    40%  { opacity: 1; }
    60%  { opacity: 1; }
    to   { transform: translateY(-80px) rotate(3deg); opacity: 0.15; }
  }
}

/* Image collage */
.chapter-media {
  position: relative;
  aspect-ratio: 4 / 5;
  z-index: 1;
}
.chapter-media-plate {
  position: absolute;
  inset: 18px -18px -18px 18px;
  border-radius: 22px;
  background: linear-gradient(135deg, var(--gold-500), var(--gold-300) 60%, var(--gold-400));
  opacity: 0.78;
  box-shadow: 0 22px 48px rgba(201, 160, 106, 0.28);
  z-index: 0;
}
.chapter-media-plate::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background-image: repeating-linear-gradient(45deg, rgba(253,249,243,0.15) 0 2px, transparent 2px 14px);
  opacity: 0.5;
  mix-blend-mode: overlay;
}
.chapter.reverse .chapter-media-plate {
  inset: 18px 18px -18px -18px;
}

.chapter-media-main {
  position: absolute;
  top: 0; left: 0;
  width: 78%; height: 68%;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 26px 55px rgba(10, 21, 32, 0.28), 0 0 0 1px rgba(253, 249, 243, 0.5);
  z-index: 2;
  transform: rotate(-1deg);
  transition: transform 0.7s var(--ease-out);
}
.chapter.reverse .chapter-media-main {
  left: auto; right: 0;
  transform: rotate(1deg);
}
.chapter-media-sub {
  position: absolute;
  bottom: 0; right: 0;
  width: 60%; height: 55%;
  border-radius: 18px;
  overflow: hidden;
  border: 6px solid var(--cream-50);
  box-shadow: 0 20px 40px rgba(10, 21, 32, 0.22);
  z-index: 3;
  transition: transform 0.7s var(--ease-out);
}
.chapter.reverse .chapter-media-sub {
  right: auto; left: 0;
}
.chapter-media-main img,
.chapter-media-sub img {
  width: 100%; height: 100%; object-fit: cover;
  will-change: transform;
}
.chapter:hover .chapter-media-main { transform: rotate(0deg) translate(-4px, -4px); }
.chapter.reverse:hover .chapter-media-main { transform: rotate(0deg) translate(4px, -4px); }
.chapter:hover .chapter-media-sub { transform: translate(4px, 4px); }
.chapter.reverse:hover .chapter-media-sub { transform: translate(-4px, 4px); }

/* Scroll-linked parallax for images (modern browsers) */
@supports (animation-timeline: view()) {
  .chapter-media-main img {
    animation: chapterImgParallax linear both;
    animation-timeline: view();
    animation-range: cover 0% cover 100%;
  }
  .chapter-media-sub img {
    animation: chapterImgParallaxSub linear both;
    animation-timeline: view();
    animation-range: cover 0% cover 100%;
  }
  @keyframes chapterImgParallax {
    from { transform: translateY(-6%) scale(1.12); }
    to   { transform: translateY(6%)  scale(1.12); }
  }
  @keyframes chapterImgParallaxSub {
    from { transform: translateY(6%)  scale(1.12); }
    to   { transform: translateY(-6%) scale(1.12); }
  }
}

/* Floating stat badge */
.chapter-media-stat {
  position: absolute;
  top: 4%;
  right: -5%;
  z-index: 4;
  padding: 1rem 1.15rem;
  background: var(--navy-900);
  color: var(--cream-50);
  border-radius: 16px;
  border: 1.5px solid var(--gold-500);
  box-shadow: 0 16px 34px rgba(10, 21, 32, 0.32);
  min-width: 110px;
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
}
.chapter.reverse .chapter-media-stat { right: auto; left: -5%; }
.chapter-media-stat-num {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 2.1rem;
  color: var(--gold-400);
  line-height: 1;
  letter-spacing: -0.02em;
}
.chapter-media-stat-icon {
  color: var(--gold-400);
  filter: drop-shadow(0 2px 6px rgba(201, 160, 106, 0.4));
}
.chapter-media-stat-label {
  font-size: 0.68rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(253, 249, 243, 0.78);
  line-height: 1.35;
  font-weight: 600;
}

/* Body */
.chapter-body { position: relative; z-index: 1; }

.chapter-tag {
  display: inline-block;
  font-size: 0.7rem;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--gold-500);
  background: linear-gradient(90deg, rgba(201, 160, 106, 0.16), rgba(201, 160, 106, 0.06));
  padding: 0.5rem 1rem;
  border-radius: 999px;
  border: 1px solid rgba(201, 160, 106, 0.26);
  margin-bottom: 1.35rem;
}
.chapter-body h3 {
  font-size: clamp(2rem, 3.6vw, 2.85rem);
  line-height: 1.08;
  margin-bottom: 1.35rem;
  color: var(--navy-900);
  font-weight: 400;
  letter-spacing: -0.02em;
}
.chapter-body h3 em {
  font-style: italic;
  color: var(--gold-500);
  font-weight: 300;
}
.chapter-lede {
  font-size: 1.1rem;
  color: var(--navy-900);
  line-height: 1.7;
  margin-bottom: 1rem;
  font-weight: 450;
}
.chapter-body p:not(.chapter-lede) {
  color: var(--ink-600);
  font-size: 1rem;
  line-height: 1.75;
  margin-bottom: 1.1rem;
}

/* Journey timeline (Chapter 01) */
.chapter-journey {
  margin-top: 2rem;
  padding: 1.25rem 1.35rem;
  background: #fff;
  border: 1px solid rgba(201, 160, 106, 0.22);
  border-radius: 14px;
  display: flex;
  align-items: center;
  gap: 0.55rem;
  box-shadow: 0 8px 22px rgba(10, 21, 32, 0.06);
  position: relative;
}
.chapter-journey::before {
  content: '';
  position: absolute;
  top: -1px; left: 1.25rem;
  width: 40px; height: 2px;
  background: var(--gold-500);
  border-radius: 2px;
}
.chapter-journey-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  flex-shrink: 0;
}
.chapter-journey-dot {
  width: 11px; height: 11px;
  border-radius: 50%;
  background: var(--gold-500);
  box-shadow: 0 0 0 3px rgba(201, 160, 106, 0.2);
}
.chapter-journey-step:last-child .chapter-journey-dot {
  animation: pulseGold 2.4s ease-in-out infinite;
}
.chapter-journey-label {
  font-size: 0.7rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--navy-900);
  font-weight: 700;
  white-space: nowrap;
}
.chapter-journey-line {
  flex: 1;
  min-width: 18px;
  height: 1.5px;
  background: repeating-linear-gradient(90deg, rgba(201, 160, 106, 0.55) 0 6px, transparent 6px 12px);
  align-self: flex-start;
  margin-top: 5px;
}

/* Pillars list (Chapter 02) */
.chapter-pillars {
  list-style: none;
  margin: 1.75rem 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}
.chapter-pillars li {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  padding: 1.05rem 1.2rem;
  background: #fff;
  border: 1px solid rgba(201, 160, 106, 0.2);
  border-radius: 14px;
  box-shadow: 0 4px 14px rgba(10, 21, 32, 0.05);
  transition: transform 0.4s var(--ease-out), border-color 0.4s var(--ease-out), box-shadow 0.4s var(--ease-out);
  position: relative;
  overflow: hidden;
}
.chapter-pillars li::before {
  content: '';
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 3px;
  background: var(--gold-500);
  transform: scaleY(0);
  transform-origin: top;
  transition: transform 0.4s var(--ease-out);
}
.chapter-pillars li:hover {
  transform: translateY(-3px);
  border-color: rgba(201, 160, 106, 0.5);
  box-shadow: 0 12px 28px rgba(10, 21, 32, 0.1);
}
.chapter-pillars li:hover::before { transform: scaleY(1); }
.chapter-pillar-icon {
  flex-shrink: 0;
  width: 44px; height: 44px;
  border-radius: 12px;
  background: linear-gradient(135deg, var(--gold-400), var(--gold-300));
  color: var(--navy-900);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 12px rgba(201, 160, 106, 0.3);
}
.chapter-pillar-text h4 {
  font-family: var(--font-body);
  font-size: 1rem;
  font-weight: 700;
  color: var(--navy-900);
  margin-bottom: 0.3rem;
  letter-spacing: -0.01em;
}
.chapter-pillar-text p {
  font-size: 0.92rem;
  color: var(--ink-600);
  line-height: 1.6;
  margin: 0;
}

/* Responsive */
@media (max-width: 960px) {
  .about-chapters { padding: 5rem 0 4rem; }
  .chapter,
  .chapter.reverse { grid-template-columns: 1fr; gap: 3rem; padding: 2.5rem 0; }
  .chapter.reverse .chapter-media { order: -1; }
  .chapter.reverse .chapter-body { order: 0; }
  .chapter-media { max-width: 460px; margin: 0 auto; width: 100%; }
  .chapter-media-stat { right: 0; top: 2%; }
  .chapter.reverse .chapter-media-stat { left: 0; }
  .chapter-number { font-size: clamp(6rem, 22vw, 9rem); top: -0.5rem; }
}
@media (max-width: 600px) {
  .chapter-journey {
    padding: 1rem 0.9rem;
    gap: 0.35rem;
    overflow-x: auto;
    flex-wrap: nowrap;
  }
  .chapter-journey-label { font-size: 0.6rem; letter-spacing: 0.06em; }
  .chapter-journey-line { min-width: 14px; }
  .chapter-media-stat { padding: 0.85rem 0.95rem; min-width: 95px; }
  .chapter-media-stat-num { font-size: 1.75rem; }
}

/* ===========================================
   MOMENTUM / BY THE NUMBERS (about.html)
   =========================================== */
.momentum-section {
  background:
    radial-gradient(ellipse at 15% 0%, rgba(201, 160, 106, 0.1), transparent 55%),
    radial-gradient(ellipse at 90% 100%, rgba(16, 31, 48, 0.05), transparent 50%),
    var(--cream-100);
  padding: 7rem 0;
  position: relative;
  overflow: hidden;
}
.momentum-section::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(var(--sand-300) 1px, transparent 1px),
    linear-gradient(90deg, var(--sand-300) 1px, transparent 1px);
  background-size: 90px 90px;
  opacity: 0.06;
  pointer-events: none;
}
.momentum-section .section-head { margin-bottom: 3.5rem; }
.momentum-section .section-head p {
  max-width: 580px;
  margin: 1rem auto 0;
  color: var(--ink-600);
  font-size: 1rem;
}

.momentum-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.75rem;
  max-width: 1100px;
  margin: 0 auto;
  position: relative;
  z-index: 1;
}

/* Card base */
.momentum-card {
  position: relative;
  background: linear-gradient(180deg, #fffdf7 0%, #fff 100%);
  border: 1px solid rgba(201, 160, 106, 0.22);
  border-radius: 22px;
  padding: 2rem 2rem 1.85rem;
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
  box-shadow:
    0 14px 34px rgba(10, 21, 32, 0.07),
    inset 0 1px 0 rgba(253, 249, 243, 0.7);
  transition: transform 0.45s var(--ease-out), box-shadow 0.45s var(--ease-out), border-color 0.45s var(--ease-out);
  overflow: hidden;
}
.momentum-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 24px 50px rgba(10, 21, 32, 0.1);
  border-color: rgba(201, 160, 106, 0.42);
}
.momentum-card::after {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--gold-500), var(--gold-300) 50%, var(--gold-500));
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.6s var(--ease-out);
}
.momentum-card:hover::after { transform: scaleX(1); }

/* Corner brackets */
.momentum-corner {
  position: absolute;
  width: 18px; height: 18px;
  pointer-events: none;
  opacity: 0.55;
}
.momentum-corner::before,
.momentum-corner::after {
  content: '';
  position: absolute;
  background: var(--gold-500);
  border-radius: 1px;
}
.momentum-corner::before { width: 100%; height: 1.2px; }
.momentum-corner::after  { width: 1.2px; height: 100%; }
.momentum-corner--tl { top: 12px; left: 12px; }
.momentum-corner--tl::before { top: 0; left: 0; }
.momentum-corner--tl::after  { top: 0; left: 0; }
.momentum-corner--br { bottom: 12px; right: 12px; }
.momentum-corner--br::before { bottom: 0; right: 0; }
.momentum-corner--br::after  { bottom: 0; right: 0; }

/* Card head */
.momentum-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
}
.momentum-card-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  font-size: 0.7rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--gold-500);
}
.momentum-card-benchmark {
  font-size: 0.72rem;
  color: var(--ink-400);
  letter-spacing: 0.04em;
  font-weight: 500;
  padding: 0.3rem 0.7rem;
  background: rgba(201, 160, 106, 0.08);
  border-radius: 999px;
  border: 1px solid rgba(201, 160, 106, 0.18);
  white-space: nowrap;
}

/* Card number */
.momentum-card-number {
  display: flex;
  align-items: baseline;
  gap: 0.2rem;
  font-family: var(--font-display);
  font-weight: 400;
  color: var(--navy-900);
  letter-spacing: -0.03em;
  line-height: 1;
  margin: 0.3rem 0 0.25rem;
}
.momentum-prefix {
  font-size: 2.4rem;
  color: var(--gold-500);
  font-style: italic;
  line-height: 1;
  margin-right: 0.1em;
  font-weight: 300;
}
.momentum-num {
  font-size: clamp(3.6rem, 7vw, 4.6rem);
  line-height: 1;
}
.momentum-unit {
  font-size: 1.5rem;
  color: var(--gold-500);
  font-style: italic;
  font-weight: 400;
  margin-left: 0.1em;
  letter-spacing: -0.01em;
}

/* Description */
.momentum-card p {
  color: var(--ink-600);
  font-size: 0.92rem;
  line-height: 1.6;
  margin: 0;
}

/* -- Progress bar visual (Occupancy) -- */
.momentum-progress {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}
.momentum-progress-track {
  position: relative;
  height: 8px;
  background: rgba(28, 24, 18, 0.08);
  border-radius: 999px;
  overflow: visible;
}
.momentum-progress-fill {
  position: absolute;
  top: 0; left: 0; bottom: 0;
  width: var(--fill, 0%);
  background: linear-gradient(90deg, var(--gold-500), var(--gold-400));
  border-radius: 999px;
  box-shadow: 0 2px 8px rgba(201, 160, 106, 0.45);
  transform: scaleX(0);
  transform-origin: left;
  animation: momentumFill 1.8s cubic-bezier(0.4, 0, 0.2, 1) 0.4s forwards;
}
@keyframes momentumFill { to { transform: scaleX(1); } }
.momentum-progress-tick {
  position: absolute;
  top: -6px; bottom: -6px;
  left: var(--pos, 0%);
  width: 2px;
  background: var(--navy-900);
  border-radius: 2px;
  opacity: 0.55;
}
.momentum-progress-scale {
  display: flex;
  justify-content: space-between;
  font-size: 0.66rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-400);
  font-weight: 600;
}
.momentum-progress-scale .at-benchmark {
  position: relative;
  left: 10%;
  color: var(--navy-900);
}

/* -- Dot grid visual (Portfolio) -- */
.momentum-dots {
  position: relative;
  height: 58px;
  background-image: radial-gradient(circle, var(--gold-500) 1.4px, transparent 1.6px);
  background-size: 14px 14px;
  background-position: 0 50%;
  opacity: 0.55;
  mask-image: linear-gradient(90deg, #000 0 85%, transparent);
  -webkit-mask-image: linear-gradient(90deg, #000 0 85%, transparent);
}
.momentum-dots::before {
  content: '';
  position: absolute;
  left: 0; top: 50%;
  width: 40%;
  height: 1.5px;
  background: linear-gradient(90deg, var(--gold-500), transparent);
  transform: translateY(-50%);
  opacity: 0.4;
}

/* -- Star rating visual (Rating) -- */
.momentum-stars {
  position: relative;
  display: inline-flex;
  gap: 0.25rem;
  line-height: 0;
}
.momentum-stars-bg,
.momentum-stars-fill {
  display: inline-flex;
  gap: 0.25rem;
}
.momentum-stars-bg {
  color: rgba(201, 160, 106, 0.22);
}
.momentum-stars-fill {
  position: absolute;
  top: 0; left: 0;
  color: var(--gold-500);
  width: 96%; /* 4.8/5 = 96% */
  overflow: hidden;
  white-space: nowrap;
  filter: drop-shadow(0 2px 6px rgba(201, 160, 106, 0.4));
}
.momentum-stars svg {
  width: 22px;
  height: 22px;
  flex-shrink: 0;
}

/* -- Pulse visual (Response Time) -- */
.momentum-pulse {
  position: relative;
  display: flex;
  align-items: center;
  gap: 0.7rem;
  padding-left: 14px;
  min-height: 28px;
}
.momentum-pulse-dot {
  position: absolute;
  left: 0; top: 50%;
  transform: translateY(-50%);
  width: 10px; height: 10px;
  border-radius: 50%;
  background: var(--gold-500);
  box-shadow: 0 0 10px rgba(201, 160, 106, 0.7);
  z-index: 2;
}
.momentum-pulse-ring {
  position: absolute;
  left: -3px; top: 50%;
  transform: translateY(-50%);
  width: 16px; height: 16px;
  border-radius: 50%;
  border: 1.5px solid var(--gold-500);
  opacity: 0;
  animation: momentumPulse 2s ease-out infinite;
}
.momentum-pulse-ring.delay { animation-delay: 1s; }
@keyframes momentumPulse {
  0%   { transform: translateY(-50%) scale(1);   opacity: 0.6; }
  100% { transform: translateY(-50%) scale(2.8); opacity: 0; }
}
.momentum-pulse-label {
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--navy-900);
  font-weight: 700;
  margin-left: 0.3rem;
}

/* Responsive */
@media (max-width: 860px) {
  .momentum-section { padding: 5rem 0; }
  .momentum-grid { grid-template-columns: 1fr; gap: 1.25rem; max-width: 520px; }
  .momentum-card { padding: 1.75rem 1.5rem 1.6rem; }
  .momentum-num { font-size: clamp(3rem, 14vw, 3.8rem); }
}
@media (max-width: 480px) {
  .momentum-card-head { flex-direction: column; align-items: flex-start; gap: 0.5rem; }
  .momentum-card-benchmark { font-size: 0.68rem; padding: 0.25rem 0.6rem; }
}

/* Body */
.leader-body { padding-top: 0.25rem; position: relative; }

.leader-tag {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.7rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--gold-500);
  background: linear-gradient(90deg, rgba(201, 160, 106, 0.16), rgba(201, 160, 106, 0.06));
  padding: 0.5rem 1rem 0.5rem 0.85rem;
  border-radius: 999px;
  margin-bottom: 1.25rem;
  border: 1px solid rgba(201, 160, 106, 0.24);
}
.leader-tag svg { color: var(--gold-500); }

.leader-name {
  font-size: clamp(2.4rem, 4.2vw, 3.4rem);
  line-height: 1.02;
  margin-bottom: 0.75rem;
  color: var(--navy-900);
  letter-spacing: -0.02em;
  font-weight: 400;
}
.leader-role {
  font-size: 1.02rem;
  color: var(--ink-600);
  margin-bottom: 1.75rem;
  font-style: italic;
  line-height: 1.6;
  max-width: 560px;
}

/* Credentials strip */
.leader-credentials {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  padding: 1.1rem 1.4rem;
  margin-bottom: 2rem;
  background: linear-gradient(135deg, var(--navy-900), var(--navy-800));
  border-radius: 14px;
  box-shadow: 0 12px 28px rgba(10, 21, 32, 0.18);
  border: 1px solid rgba(212, 165, 116, 0.28);
  position: relative;
  overflow: hidden;
}
.leader-credentials::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 0% 50%, rgba(212, 165, 116, 0.14), transparent 65%);
  pointer-events: none;
}
.leader-credential {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  position: relative;
  z-index: 1;
}
.leader-credential-num {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 1.85rem;
  color: var(--gold-400);
  line-height: 1;
  letter-spacing: -0.02em;
}
.leader-credential-label {
  font-size: 0.68rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(253, 249, 243, 0.7);
  font-weight: 600;
  margin-top: 0.3rem;
}
.leader-credential-divider {
  width: 1px;
  height: 42px;
  background: linear-gradient(to bottom, transparent, rgba(212, 165, 116, 0.45), transparent);
  flex-shrink: 0;
  position: relative;
  z-index: 1;
}

/* Editorial pull-quote */
.leader-quote {
  position: relative;
  padding: 1.5rem 1.5rem 1.5rem 4rem;
  margin: 0 0 2rem;
  font-family: var(--font-display);
  font-style: italic;
  font-size: 1.25rem;
  color: var(--navy-900);
  line-height: 1.45;
  font-weight: 400;
  letter-spacing: -0.005em;
  border: none;
  background: none;
}
.leader-quote p { margin: 0; }
.leader-quote::after {
  content: '';
  position: absolute;
  left: 2.5rem;
  bottom: 0;
  width: 44px;
  height: 2px;
  background: var(--gold-500);
  border-radius: 2px;
}
.leader-quote-mark {
  position: absolute;
  top: 0.25rem;
  left: 0;
  width: 52px;
  height: 52px;
  color: var(--gold-400);
  opacity: 0.85;
  filter: drop-shadow(0 4px 10px rgba(201, 160, 106, 0.25));
}

.leader-bio p {
  color: var(--ink-600);
  font-size: 0.98rem;
  line-height: 1.78;
  margin-bottom: 1rem;
}
.leader-bio p em {
  color: var(--navy-900);
  font-style: italic;
  font-weight: 500;
}

.leader-signature {
  margin: 2.25rem 0 1.75rem;
  padding-top: 1.75rem;
  border-top: 1px solid rgba(28, 24, 18, 0.08);
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  position: relative;
}
.leader-signature::before {
  content: '';
  position: absolute;
  top: -1px;
  left: 0;
  width: 60px;
  height: 2px;
  background: var(--gold-500);
  border-radius: 2px;
}
.leader-signature-name {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 1.85rem;
  color: var(--navy-900);
  font-weight: 400;
  letter-spacing: -0.01em;
  line-height: 1;
}
.leader-signature-flourish {
  display: block;
  width: 200px;
  height: 12px;
  color: var(--gold-500);
  opacity: 0.8;
  margin: 0.15rem 0 0.25rem;
}
.leader-signature-role {
  font-size: 0.78rem;
  color: var(--ink-400);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: 600;
}

.leader-socials {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
}
.leader-socials a {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  font-size: 0.85rem;
  color: var(--navy-900);
  padding: 0.65rem 1.1rem;
  border-radius: 999px;
  background: var(--cream-50);
  border: 1px solid rgba(28, 24, 18, 0.1);
  font-weight: 500;
  transition: all 0.35s var(--ease-out);
  box-shadow: 0 2px 6px rgba(10, 21, 32, 0.04);
}
.leader-socials a svg { color: var(--gold-500); transition: color 0.35s var(--ease-out); }
.leader-socials a:hover {
  background: var(--navy-900);
  color: var(--cream-50);
  border-color: var(--navy-900);
  transform: translateY(-2px);
  box-shadow: 0 10px 22px rgba(10, 21, 32, 0.22);
}
.leader-socials a:hover svg { color: var(--gold-400); }

@media (max-width: 960px) {
  .leader-card {
    grid-template-columns: 1fr;
    gap: 3rem;
    padding: 2.5rem 1.75rem 2rem;
  }
  .leader-portrait {
    max-width: 360px;
    margin: 0 auto;
    width: 100%;
  }
  .leader-credentials { gap: 0.75rem; padding: 1rem; }
  .leader-credential-num { font-size: 1.5rem; }
  .leader-credential-label { font-size: 0.6rem; letter-spacing: 0.18em; }
  .leader-corner { width: 22px; height: 22px; }
  .leader-corner--tl, .leader-corner--tr { top: 12px; }
  .leader-corner--bl, .leader-corner--br { bottom: 12px; }
  .leader-corner--tl, .leader-corner--bl { left: 12px; }
  .leader-corner--tr, .leader-corner--br { right: 12px; }
}

@media (max-width: 560px) {
  .leader-quote { padding-left: 3rem; font-size: 1.1rem; }
  .leader-quote-mark { width: 40px; height: 40px; }
  .leader-quote::after { left: 1.5rem; }
  .leader-portrait-badge { width: 88px; height: 88px; }
  .leader-portrait-badge-mono { font-size: 1.3rem; }
  .leader-portrait-badge-label { font-size: 0.5rem; }
  .leader-signature-flourish { width: 160px; }
  .leader-credentials { flex-wrap: wrap; }
  .leader-credential-divider { display: none; }
  .leader-credential { flex: 1 1 30%; text-align: center; align-items: center; }
}

/* ===========================================
   COMPARE BOARD (packages.html — side-by-side)
   =========================================== */
.compare-section {
  position: relative;
  padding: clamp(5rem, 8vw, 7rem) 0;
  background: var(--cream-50);
  overflow: hidden;
  isolation: isolate;
}
.compare-section::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at 75% 20%, rgba(201, 160, 106, 0.10) 0%, transparent 55%),
    radial-gradient(ellipse at 15% 90%, rgba(10, 22, 40, 0.04) 0%, transparent 55%);
  pointer-events: none;
  z-index: -1;
}
.compare-section .section-head { text-align: center; max-width: 720px; margin: 0 auto clamp(3rem, 5vw, 4rem); }
.compare-section .section-head p { color: var(--ink-600); font-size: 1rem; line-height: 1.6; max-width: 560px; margin: 1rem auto 0; }

.compare-board {
  position: relative;
  max-width: 1080px;
  margin: 0 auto;
  background: #fff;
  border: 1px solid rgba(10, 22, 40, 0.07);
  border-radius: 24px;
  padding: 1.25rem 1.25rem 1.5rem;
  box-shadow: 0 18px 60px rgba(10, 22, 40, 0.08);
  overflow: hidden;
  isolation: isolate;
}

/* Gold spotlight column overlay behind Pkg2 */
.compare-spotlight {
  position: absolute;
  top: 0;
  bottom: 0;
  right: 1.25rem;
  width: calc((100% - 2.5rem) * 0.26);
  background: linear-gradient(180deg, rgba(201, 160, 106, 0.14) 0%, rgba(201, 160, 106, 0.04) 60%, transparent 100%);
  border-left: 1px solid rgba(201, 160, 106, 0.22);
  border-right: 1px solid rgba(201, 160, 106, 0.22);
  border-radius: 16px;
  z-index: 0;
  pointer-events: none;
}
.compare-spotlight::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0; height: 3px;
  background: linear-gradient(90deg, transparent, var(--gold-500), transparent);
}

/* Shared row grid: 3 columns — label | pkg1 | pkg2 */
.compare-head,
.compare-row,
.compare-foot {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1.9fr) minmax(0, 1fr) minmax(0, 1fr);
  align-items: center;
  gap: 0.75rem;
}

/* ----- Head ----- */
.compare-head {
  padding: 1.25rem 0.75rem 1.5rem;
  border-bottom: 1px solid rgba(10, 22, 40, 0.08);
}
.compare-head-cell {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 0.5rem;
  padding: 0.25rem 0.75rem;
}
.compare-head-cell-label {
  align-items: flex-start;
  text-align: left;
}
.compare-head-eyebrow {
  font-family: var(--font-body);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--ink-400);
}
.compare-head-note {
  font-size: 0.78rem;
  color: var(--gold-500);
  font-weight: 600;
}
.compare-head-tag {
  font-family: var(--font-body);
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--ink-400);
}
.compare-head-tag-gold { color: var(--gold-500); }
.compare-head-title {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: clamp(1.05rem, 1.4vw, 1.25rem);
  line-height: 1.2;
  color: var(--navy-900);
  margin: 0;
}
.compare-head-title em { font-style: italic; color: var(--gold-500); font-weight: 300; }
.compare-head-title-gold { color: var(--navy-900); }
.compare-head-meter {
  width: 100%;
  max-width: 160px;
  height: 4px;
  background: rgba(10, 22, 40, 0.06);
  border-radius: 999px;
  overflow: hidden;
  margin: 0.15rem 0;
}
.compare-head-meter-fill {
  display: block;
  height: 100%;
  background: linear-gradient(90deg, var(--gold-400), var(--gold-500));
  border-radius: 999px;
  transform-origin: left center;
  transform: scaleX(0);
  transition: transform 1.4s cubic-bezier(0.22, 1, 0.36, 1) 0.3s;
}
.compare-board.in .compare-head-meter-fill { transform: scaleX(1); }
.compare-head-meter-gold {
  background: rgba(201, 160, 106, 0.2);
  box-shadow: 0 0 0 2px rgba(201, 160, 106, 0.12);
}
.compare-head-score {
  font-size: 0.78rem;
  color: var(--ink-600);
  letter-spacing: 0.02em;
}
.compare-head-score strong {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 500;
  font-size: 1.05rem;
  color: var(--navy-900);
}
.compare-head-score-gold strong { color: var(--gold-500); }
.compare-head-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.35rem 0.75rem;
  background: linear-gradient(135deg, var(--gold-500), var(--gold-400));
  color: var(--navy-900);
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 0.62rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  border-radius: 999px;
  box-shadow: 0 6px 16px rgba(201, 160, 106, 0.35);
  margin-bottom: 0.25rem;
}

/* ----- Category heads ----- */
.compare-category { display: block; position: relative; z-index: 1; }
.compare-category-head {
  display: grid;
  grid-template-columns: auto auto 1fr auto;
  align-items: center;
  gap: 0.7rem;
  padding: 1rem 0.75rem 0.55rem;
}
.compare-category-num {
  display: inline-grid;
  place-items: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: var(--cream-100);
  border: 1px solid rgba(10, 22, 40, 0.1);
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 500;
  font-size: 0.78rem;
  color: var(--ink-600);
}
.compare-category-num-gold {
  background: rgba(201, 160, 106, 0.12);
  border-color: var(--gold-500);
  color: var(--gold-500);
}
.compare-category-label {
  font-family: var(--font-body);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--navy-900);
}
.compare-category-line {
  height: 1px;
  background: linear-gradient(to right, rgba(10, 22, 40, 0.12), transparent);
}
.compare-category-line-gold {
  background: linear-gradient(to right, rgba(201, 160, 106, 0.5), transparent);
}
.compare-category-count {
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-400);
}
.compare-category-count-gold { color: var(--gold-500); }

/* ----- Rows ----- */
.compare-row {
  padding: 0.65rem 0.75rem;
  border-top: 1px dashed rgba(10, 22, 40, 0.08);
  transition: background-color 0.25s var(--ease-out);
}
.compare-category:first-of-type .compare-row:first-of-type { border-top: none; }
.compare-row:hover { background: rgba(10, 22, 40, 0.02); }

.compare-cell {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 32px;
}
.compare-cell-label {
  justify-content: flex-start;
  gap: 0.65rem;
  font-size: 0.9rem;
  color: var(--ink-600);
  line-height: 1.45;
}
.compare-cell-icon {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  border-radius: 8px;
  background: var(--cream-100);
  color: var(--gold-500);
  display: grid;
  place-items: center;
  border: 1px solid rgba(201, 160, 106, 0.18);
}

/* Yes / No marks */
.compare-mark {
  display: inline-grid;
  place-items: center;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  font-size: 0.9rem;
}
.compare-mark-yes {
  background: var(--cream-100);
  color: var(--gold-500);
  border: 1px solid rgba(201, 160, 106, 0.35);
}
.compare-mark-gold {
  width: 30px;
  height: 30px;
  background: linear-gradient(135deg, var(--gold-500), var(--gold-400));
  color: var(--navy-900);
  border-color: var(--gold-500);
  box-shadow: 0 0 0 3px rgba(201, 160, 106, 0.18), 0 4px 10px rgba(201, 160, 106, 0.25);
}
.compare-mark-no {
  color: var(--ink-400);
  opacity: 0.5;
  font-weight: 300;
  font-size: 1rem;
}

.compare-mark-text {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 500;
  font-size: 0.95rem;
  color: var(--navy-900);
  padding: 0.25rem 0.65rem;
  border-radius: 999px;
  white-space: nowrap;
}
.compare-mark-text-gold {
  background: linear-gradient(135deg, var(--gold-500), var(--gold-400));
  color: var(--navy-900);
  box-shadow: 0 4px 12px rgba(201, 160, 106, 0.3);
}

/* ----- Footer ----- */
.compare-foot {
  padding: 1.25rem 0.75rem 0.5rem;
  border-top: 1px solid rgba(10, 22, 40, 0.08);
  margin-top: 0.75rem;
}
.compare-foot-cell {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.25rem;
  min-width: 0;
}
.compare-foot-cell-label {
  align-items: flex-start;
}
.compare-foot-cell-label strong {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 1.1rem;
  color: var(--navy-900);
}
.compare-foot-cell-label span {
  font-size: 0.85rem;
  color: var(--ink-400);
}
.compare-foot-btn {
  width: 100%;
  justify-content: center;
  padding: 0.75rem 1rem;
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.04em;
}
.compare-foot-btn-gold {
  background: linear-gradient(135deg, var(--gold-500), var(--gold-400));
  color: var(--navy-900);
  box-shadow: 0 12px 24px rgba(201, 160, 106, 0.3);
  border: none;
  position: relative;
  overflow: hidden;
}
.compare-foot-btn-gold::before {
  content: "";
  position: absolute;
  top: 0; left: -120%;
  width: 60%; height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.35), transparent);
  transform: skewX(-20deg);
  transition: left 0.9s ease;
}
.compare-foot-btn-gold:hover::before { left: 140%; }
.compare-foot-btn-gold:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 32px rgba(201, 160, 106, 0.4);
}

/* Highlight cells (Pkg2 column) — subtle lift */
.compare-cell-hero { position: relative; }

/* Responsive — collapse to stacked cards under 780px */
@media (max-width: 780px) {
  .compare-spotlight { display: none; }
  .compare-head,
  .compare-row,
  .compare-foot {
    grid-template-columns: minmax(0, 1.4fr) minmax(0, 0.8fr) minmax(0, 0.8fr);
    gap: 0.5rem;
  }
  .compare-category-head { grid-template-columns: auto auto 1fr; }
  .compare-category-count { display: none; }
  .compare-cell-label { font-size: 0.82rem; gap: 0.5rem; }
  .compare-cell-icon { width: 24px; height: 24px; }
  .compare-head-title { font-size: 0.95rem; }
  .compare-foot-btn { font-size: 0.75rem; padding: 0.65rem 0.5rem; }
  .compare-foot-btn svg { display: none; }
}
@media (max-width: 520px) {
  .compare-board { padding: 1rem 0.75rem 1.25rem; border-radius: 18px; }
  .compare-cell-icon { display: none; }
  .compare-cell-label { gap: 0; }
  .compare-head-cell { padding: 0.25rem 0.35rem; }
  .compare-head-tag { font-size: 0.55rem; letter-spacing: 0.14em; }
  .compare-head-title { font-size: 0.85rem; }
  .compare-head-score { font-size: 0.68rem; }
  .compare-head-badge { font-size: 0.55rem; padding: 0.25rem 0.5rem; }
}

/* ===========================================
   STAGING ROI — "Why Staging Pays Off" (packages.html)
   =========================================== */
.staging-roi {
  position: relative;
  padding: clamp(6rem, 10vw, 8.5rem) 0;
  background: linear-gradient(180deg, #061024 0%, var(--navy-900) 100%);
  color: var(--cream-50);
  overflow: hidden;
  isolation: isolate;
}
.staging-roi-glow {
  position: absolute;
  top: -20%;
  left: 50%;
  transform: translateX(-50%);
  width: 780px;
  height: 780px;
  background: radial-gradient(circle at center, rgba(201, 160, 106, 0.18) 0%, transparent 55%);
  pointer-events: none;
  z-index: 0;
}
.staging-roi-grid-bg {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(to right, rgba(201, 160, 106, 0.06) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(201, 160, 106, 0.06) 1px, transparent 1px);
  background-size: 72px 72px;
  mask-image: radial-gradient(ellipse at center, black 30%, transparent 80%);
  -webkit-mask-image: radial-gradient(ellipse at center, black 30%, transparent 80%);
  opacity: 0.45;
  pointer-events: none;
  z-index: 0;
}
.staging-roi .container { position: relative; z-index: 1; }

.staging-roi-head {
  text-align: center;
  max-width: 720px;
  margin: 0 auto clamp(1.25rem, 2vw, 1.75rem);
}
.staging-roi-head h2 { color: var(--cream-50); }
.staging-roi-head h2 em { color: var(--gold-400); font-style: italic; }
.staging-roi-head p { color: rgba(253, 249, 243, 0.72); font-size: 1.05rem; line-height: 1.65; max-width: 580px; margin: 1rem auto 0; }
.staging-roi-eyebrow { color: var(--gold-400); }

.staging-roi-sources {
  /* Flex + justify-content used below collapses this back to display:flex
     so the chip sits centered. Keep display declarations in this one block. */
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.55rem;
  margin: 0 auto clamp(3rem, 5vw, 4rem);
  padding: 0.55rem 1rem;
  background: rgba(201, 160, 106, 0.08);
  border: 1px solid rgba(201, 160, 106, 0.18);
  border-radius: 999px;
  font-size: 0.78rem;
  color: rgba(253, 249, 243, 0.7);
  letter-spacing: 0.01em;
  max-width: 100%;
  text-align: center;
}
.staging-roi-sources svg { color: var(--gold-400); flex-shrink: 0; }

/* Bento-style grid: hero spans 2 across top */
.staging-roi-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-auto-rows: minmax(0, auto);
  gap: 1.25rem;
  max-width: 1180px;
  margin: 0 auto;
}

.staging-roi-card {
  position: relative;
  background: linear-gradient(180deg, rgba(201, 160, 106, 0.06) 0%, rgba(201, 160, 106, 0.02) 100%);
  border: 1px solid rgba(201, 160, 106, 0.2);
  border-radius: 18px;
  padding: 1.75rem 1.6rem 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  transition: transform 0.5s var(--ease-out), border-color 0.5s var(--ease-out), box-shadow 0.5s var(--ease-out);
  overflow: hidden;
  isolation: isolate;
}
.staging-roi-card::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0; height: 1px;
  background: linear-gradient(to right, transparent, rgba(201, 160, 106, 0.5), transparent);
  opacity: 0;
  transition: opacity 0.5s var(--ease-out);
}
.staging-roi-card:hover {
  transform: translateY(-4px);
  border-color: rgba(201, 160, 106, 0.45);
  box-shadow: 0 20px 50px rgba(10, 22, 40, 0.4);
}
.staging-roi-card:hover::before { opacity: 1; }

/* Hero card spans full top row */
.staging-roi-card-hero {
  grid-column: 1 / -1;
  padding: 2.25rem 2rem 1.75rem;
  background: linear-gradient(135deg, rgba(201, 160, 106, 0.14) 0%, rgba(201, 160, 106, 0.04) 45%, transparent 100%);
  border: 1px solid rgba(201, 160, 106, 0.35);
  box-shadow: 0 24px 60px rgba(10, 22, 40, 0.35);
}
.staging-roi-card-hero::after {
  content: "";
  position: absolute;
  top: -50%;
  right: -10%;
  width: 380px;
  height: 380px;
  background: radial-gradient(circle at center, rgba(201, 160, 106, 0.22) 0%, transparent 60%);
  pointer-events: none;
  z-index: -1;
}
.staging-roi-corner {
  position: absolute;
  width: 28px;
  height: 28px;
  border-color: rgba(201, 160, 106, 0.45);
  pointer-events: none;
}
.staging-roi-corner-tl { top: 14px; left: 14px; border-top: 1px solid; border-left: 1px solid; }
.staging-roi-corner-br { bottom: 14px; right: 14px; border-bottom: 1px solid; border-right: 1px solid; }

.staging-roi-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.25rem;
  flex-wrap: wrap;
}
.staging-roi-tag {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.3rem 0.7rem;
  background: rgba(201, 160, 106, 0.12);
  border: 1px solid rgba(201, 160, 106, 0.25);
  border-radius: 999px;
  font-family: var(--font-body);
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--gold-400);
}
.staging-roi-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.3rem 0.7rem;
  background: linear-gradient(135deg, var(--gold-500), var(--gold-400));
  color: var(--navy-900);
  font-family: var(--font-body);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  border-radius: 999px;
  box-shadow: 0 6px 14px rgba(201, 160, 106, 0.3);
}

.staging-roi-stat {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: clamp(2.4rem, 4.4vw, 3.4rem);
  line-height: 1;
  color: var(--cream-50);
  margin: 0.5rem 0 0.1rem;
  letter-spacing: -0.03em;
  display: inline-flex;
  align-items: baseline;
  gap: 0.05em;
}
.staging-roi-stat-lg {
  font-size: clamp(3rem, 6vw, 4.8rem);
}
.staging-roi-num {
  font-variant-numeric: tabular-nums;
  background: linear-gradient(135deg, var(--cream-50) 0%, var(--gold-400) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.staging-roi-dash {
  color: rgba(253, 249, 243, 0.45);
  margin: 0 0.1em;
  font-weight: 300;
  font-size: 0.7em;
}
.staging-roi-unit {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 300;
  font-size: 0.5em;
  color: var(--gold-400);
  margin-left: 0.15em;
}
.staging-roi-stat-label {
  font-family: var(--font-body);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(253, 249, 243, 0.55);
  margin-bottom: 0.3rem;
}
.staging-roi-desc {
  color: rgba(253, 249, 243, 0.75);
  font-size: 0.9rem;
  line-height: 1.6;
  margin: 0 0 0.5rem;
  flex: 1;
}
.staging-roi-card-hero .staging-roi-desc {
  font-size: 1rem;
  max-width: 720px;
}

/* Bars (hero card) */
.staging-roi-bars {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  margin: 0.5rem 0 1rem;
  max-width: 720px;
}
.staging-roi-bar-top {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  font-family: var(--font-body);
  font-size: 0.8rem;
  margin-bottom: 0.35rem;
}
.staging-roi-bar-label {
  color: rgba(253, 249, 243, 0.7);
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-size: 0.68rem;
}
.staging-roi-bar-hero .staging-roi-bar-label { color: var(--gold-400); }
.staging-roi-bar-value {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 1.1rem;
  color: var(--cream-50);
}
.staging-roi-bar-value small { font-size: 0.75rem; color: rgba(253, 249, 243, 0.55); font-weight: 400; font-family: var(--font-body); font-style: normal; }
.staging-roi-bar-value-gold {
  color: var(--gold-400);
  font-style: italic;
}
.staging-roi-bar-value-gold small { color: rgba(201, 160, 106, 0.6); }
.staging-roi-bar-track {
  position: relative;
  height: 8px;
  background: rgba(253, 249, 243, 0.06);
  border-radius: 999px;
  overflow: hidden;
}
.staging-roi-bar-fill {
  display: block;
  height: 100%;
  width: var(--fill, 0%);
  background: rgba(253, 249, 243, 0.35);
  border-radius: 999px;
  transform-origin: left center;
  transform: scaleX(0);
  transition: transform 1.6s cubic-bezier(0.22, 1, 0.36, 1) 0.3s;
}
.staging-roi-bar-fill-gold {
  background: linear-gradient(90deg, var(--gold-500), var(--gold-400));
  box-shadow: 0 0 18px rgba(201, 160, 106, 0.5);
}
.staging-roi-card-hero.in .staging-roi-bar-fill,
.staging-roi-card-hero.in .staging-roi-bar-fill-gold { transform: scaleX(1); }

.staging-roi-footnote {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.55rem 0.85rem;
  background: rgba(10, 22, 40, 0.4);
  border: 1px solid rgba(201, 160, 106, 0.25);
  border-radius: 10px;
  font-size: 0.8rem;
  color: rgba(253, 249, 243, 0.75);
  align-self: flex-start;
}
.staging-roi-footnote svg { color: var(--gold-400); flex-shrink: 0; }
.staging-roi-footnote strong { color: var(--gold-400); font-weight: 600; }

/* Click visual */
.staging-roi-clicks {
  display: flex;
  gap: 0.75rem;
  align-items: center;
  justify-content: flex-start;
  margin-top: 0.5rem;
}
.staging-roi-click {
  position: relative;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--gold-500);
  box-shadow: 0 0 12px rgba(201, 160, 106, 0.5);
}
.staging-roi-click:nth-child(2) { opacity: 0.7; width: 14px; height: 14px; }
.staging-roi-click:nth-child(3) { opacity: 0.4; width: 10px; height: 10px; }
.staging-roi-click-ring {
  position: absolute;
  inset: -6px;
  border-radius: 50%;
  border: 1px solid rgba(201, 160, 106, 0.4);
  animation: roiClickPulse 2.4s ease-in-out infinite;
}
.staging-roi-click:nth-child(2) .staging-roi-click-ring { animation-delay: 0.4s; }
.staging-roi-click:nth-child(3) .staging-roi-click-ring { animation-delay: 0.8s; }
@keyframes roiClickPulse {
  0%   { transform: scale(1); opacity: 0.7; }
  100% { transform: scale(1.8); opacity: 0; }
}

/* Stars */
.staging-roi-stars {
  position: relative;
  display: inline-block;
  font-size: 1.3rem;
  line-height: 1;
  letter-spacing: 0.15em;
  margin-top: 0.35rem;
}
.staging-roi-stars-bg {
  color: rgba(253, 249, 243, 0.12);
}
.staging-roi-stars-fg {
  position: absolute;
  top: 0;
  left: 0;
  width: 96%;
  overflow: hidden;
  white-space: nowrap;
  color: var(--gold-400);
  text-shadow: 0 0 14px rgba(201, 160, 106, 0.5);
}

/* Trendline */
.staging-roi-trend {
  width: 100%;
  height: 64px;
  margin-top: auto;
}
.staging-roi-trend-path {
  stroke-dasharray: 320;
  stroke-dashoffset: 320;
  transition: stroke-dashoffset 1.8s cubic-bezier(0.22, 1, 0.36, 1) 0.3s;
}
.staging-roi-trend-dot,
.staging-roi-trend-dot-ring {
  opacity: 0;
  transition: opacity 0.5s ease 1.6s;
}
.staging-roi-card.in .staging-roi-trend-path { stroke-dashoffset: 0; }
.staging-roi-card.in .staging-roi-trend-dot,
.staging-roi-card.in .staging-roi-trend-dot-ring { opacity: 1; }
.staging-roi-trend-dot-ring { animation: roiDotRing 2s ease-in-out infinite 2s; transform-origin: 210px 10px; }
@keyframes roiDotRing {
  0%   { transform: scale(0.8); opacity: 0.6; }
  100% { transform: scale(2); opacity: 0; }
}

/* Bottom summary row */
.staging-roi-summary {
  max-width: 1180px;
  margin: clamp(3rem, 5vw, 4rem) auto 0;
  padding: 1.5rem 1.75rem;
  background: linear-gradient(135deg, rgba(201, 160, 106, 0.12) 0%, rgba(201, 160, 106, 0.04) 100%);
  border: 1px solid rgba(201, 160, 106, 0.3);
  border-radius: 16px;
  display: flex;
  align-items: center;
  gap: 1.25rem;
}
.staging-roi-summary-mark {
  flex-shrink: 0;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--gold-500), var(--gold-400));
  color: var(--navy-900);
  display: grid;
  place-items: center;
  box-shadow: 0 10px 24px rgba(201, 160, 106, 0.35);
}
.staging-roi-summary-text {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}
.staging-roi-summary-text strong {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 500;
  font-size: 1.15rem;
  color: var(--gold-400);
  letter-spacing: 0.01em;
}
.staging-roi-summary-text span {
  color: rgba(253, 249, 243, 0.82);
  font-size: 0.93rem;
  line-height: 1.55;
}
.staging-roi-summary-text em {
  font-style: italic;
  color: var(--gold-400);
  font-weight: 500;
}
.staging-roi-summary-cta {
  flex-shrink: 0;
  background: linear-gradient(135deg, var(--gold-500), var(--gold-400));
  color: var(--navy-900);
  font-weight: 600;
  padding: 0.8rem 1.4rem;
  font-size: 0.88rem;
  letter-spacing: 0.04em;
  border: none;
  box-shadow: 0 12px 28px rgba(201, 160, 106, 0.3);
}
.staging-roi-summary-cta:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 32px rgba(201, 160, 106, 0.4);
}

/* Responsive */
@media (max-width: 960px) {
  .staging-roi-grid { grid-template-columns: repeat(2, 1fr); }
  .staging-roi-card-hero { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
  .staging-roi-grid { grid-template-columns: 1fr; }
  .staging-roi-card { padding: 1.5rem 1.25rem 1.25rem; }
  .staging-roi-card-hero { padding: 1.75rem 1.25rem 1.5rem; }
  .staging-roi-summary { flex-direction: column; align-items: flex-start; padding: 1.25rem; }
  .staging-roi-summary-cta { width: 100%; justify-content: center; }
  .staging-roi-sources { font-size: 0.72rem; line-height: 1.4; padding: 0.5rem 0.75rem; }
  .staging-roi-card-head { flex-direction: column; align-items: flex-start; gap: 0.5rem; }
}

/* ===========================================
   FAQ — premium two-column accordion (packages.html)
   =========================================== */
.faq-section {
  position: relative;
  padding: clamp(5rem, 8vw, 7rem) 0;
  background: var(--cream-50);
  overflow: hidden;
  isolation: isolate;
}
.faq-section::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at 0% 10%, rgba(201, 160, 106, 0.08) 0%, transparent 50%),
    radial-gradient(ellipse at 100% 90%, rgba(10, 22, 40, 0.04) 0%, transparent 55%);
  pointer-events: none;
  z-index: -1;
}

.faq-layout {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.3fr);
  gap: clamp(2rem, 5vw, 4rem);
  max-width: 1080px;
  margin: 0 auto;
  align-items: start;
}

/* Aside (left column) */
.faq-aside { position: sticky; top: 100px; }
.faq-aside .section-eyebrow { color: var(--gold-500); }
.faq-title {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: clamp(1.8rem, 3vw, 2.5rem);
  line-height: 1.15;
  color: var(--navy-900);
  margin: 0.75rem 0 1rem;
  letter-spacing: -0.01em;
}
.faq-title em { font-style: italic; color: var(--gold-500); font-weight: 300; }
.faq-lede {
  color: var(--ink-600);
  font-size: 1rem;
  line-height: 1.6;
  margin: 0 0 2rem;
  max-width: 380px;
}
.faq-aside-card {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  padding: 1.25rem 1.25rem 1.35rem;
  background: var(--navy-900);
  border: 1px solid var(--gold-500);
  border-radius: 16px;
  color: var(--cream-50);
  box-shadow: 0 20px 40px rgba(10, 22, 40, 0.18);
}
.faq-aside-card-num {
  flex-shrink: 0;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--gold-500), var(--gold-400));
  color: var(--navy-900);
  display: grid;
  place-items: center;
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 500;
  font-size: 1.4rem;
  box-shadow: 0 8px 18px rgba(201, 160, 106, 0.35);
}
.faq-aside-card strong {
  display: block;
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 1.15rem;
  color: var(--cream-50);
  margin-bottom: 0.25rem;
}
.faq-aside-card p {
  color: rgba(253, 249, 243, 0.7);
  font-size: 0.88rem;
  line-height: 1.55;
  margin: 0 0 0.85rem;
}
.faq-aside-link {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 0.82rem;
  color: var(--gold-400);
  letter-spacing: 0.05em;
  text-transform: uppercase;
  text-decoration: none;
  padding-bottom: 2px;
  border-bottom: 1px solid transparent;
  transition: color 0.3s, border-color 0.3s;
}
.faq-aside-link:hover { color: var(--gold-500); border-bottom-color: var(--gold-500); }
.faq-aside-link svg { transition: transform 0.3s; }
.faq-aside-link:hover svg { transform: translateX(4px); }

/* Accordion list */
.faq-list {
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
}
.faq-item {
  position: relative;
  background: #fff;
  border: 1px solid rgba(10, 22, 40, 0.08);
  border-radius: 14px;
  overflow: hidden;
  transition: border-color 0.4s var(--ease-out), box-shadow 0.4s var(--ease-out), transform 0.4s var(--ease-out);
}
.faq-item[open] {
  border-color: var(--gold-500);
  box-shadow: 0 14px 36px rgba(201, 160, 106, 0.15);
  transform: translateY(-1px);
}
.faq-item:hover { border-color: rgba(201, 160, 106, 0.4); }
.faq-item::before {
  content: "";
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 3px;
  background: var(--gold-500);
  transform: scaleY(0);
  transform-origin: top;
  transition: transform 0.35s var(--ease-out);
}
.faq-item[open]::before { transform: scaleY(1); }

.faq-summary {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 1rem;
  padding: 1.1rem 1.4rem;
  cursor: pointer;
  list-style: none;
  user-select: none;
}
.faq-summary::-webkit-details-marker { display: none; }
.faq-summary::marker { content: ""; }
.faq-num {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 500;
  font-size: 1.05rem;
  color: var(--gold-500);
  letter-spacing: 0.02em;
  min-width: 1.75rem;
}
.faq-q {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: clamp(1rem, 1.3vw, 1.12rem);
  color: var(--navy-900);
  line-height: 1.35;
  letter-spacing: -0.005em;
}
.faq-toggle {
  flex-shrink: 0;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--cream-100);
  border: 1px solid rgba(201, 160, 106, 0.3);
  color: var(--gold-500);
  display: grid;
  place-items: center;
  transition: transform 0.35s var(--ease-out), background 0.35s var(--ease-out), color 0.35s var(--ease-out);
}
.faq-item[open] .faq-toggle {
  transform: rotate(180deg);
  background: linear-gradient(135deg, var(--gold-500), var(--gold-400));
  color: var(--navy-900);
  border-color: var(--gold-500);
  box-shadow: 0 6px 14px rgba(201, 160, 106, 0.3);
}

.faq-answer {
  padding: 0 1.4rem 1.25rem 4rem;
  border-top: 1px dashed rgba(201, 160, 106, 0.25);
  margin-top: 0.1rem;
}
.faq-answer p {
  color: var(--ink-600);
  font-size: 0.95rem;
  line-height: 1.65;
  margin: 1rem 0 0;
}

/* Responsive */
@media (max-width: 880px) {
  .faq-layout { grid-template-columns: 1fr; gap: 2.5rem; }
  .faq-aside { position: static; }
  .faq-lede { max-width: 560px; }
}
@media (max-width: 520px) {
  .faq-summary { padding: 1rem 1.1rem; gap: 0.7rem; }
  .faq-answer { padding: 0 1.1rem 1.1rem 3.3rem; }
  .faq-num { font-size: 0.95rem; min-width: 1.5rem; }
  .faq-q { font-size: 0.98rem; }
  .faq-toggle { width: 28px; height: 28px; }
  .faq-aside-card { flex-direction: column; gap: 0.75rem; }
}

/* ===========================================
   PROCESS SECTION (services.html)
   =========================================== */
.process-section {
  position: relative;
  padding: clamp(6rem, 10vw, 9rem) 0;
  background: var(--cream-50);
  overflow: hidden;
  isolation: isolate;
}
.process-section::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at 20% 0%, rgba(201, 160, 106, 0.10) 0%, transparent 55%),
    radial-gradient(ellipse at 85% 100%, rgba(201, 160, 106, 0.08) 0%, transparent 55%);
  pointer-events: none;
  z-index: -1;
}
.process-section::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(to right, rgba(10, 22, 40, 0.035) 1px, transparent 1px);
  background-size: 60px 100%;
  mask-image: linear-gradient(to bottom, transparent, black 25%, black 75%, transparent);
  -webkit-mask-image: linear-gradient(to bottom, transparent, black 25%, black 75%, transparent);
  pointer-events: none;
  z-index: -1;
  opacity: 0.6;
}
.process-section .section-head {
  text-align: center;
  max-width: 780px;
  margin: 0 auto clamp(3.5rem, 6vw, 5rem);
}
.process-section .section-head h2 em {
  font-style: italic;
  color: var(--gold-500);
}
.process-section .section-head p {
  color: var(--ink-600);
  font-size: clamp(1rem, 1.1vw, 1.08rem);
  line-height: 1.65;
  max-width: 620px;
  margin: 1rem auto 0;
}

.process-track {
  position: relative;
  padding: 0 0.5rem;
}

/* Horizontal rail connecting the four nodes */
.process-rail {
  position: absolute;
  left: 6%;
  right: 6%;
  bottom: 38px;
  height: 2px;
  pointer-events: none;
  z-index: 1;
}
.process-rail::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: linear-gradient(
    to right,
    rgba(201, 160, 106, 0.45) 0 8px,
    transparent 8px 16px
  );
  background-size: 16px 2px;
  background-repeat: repeat-x;
}
.process-rail-start,
.process-rail-end {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--gold-500);
  box-shadow: 0 0 0 4px rgba(201, 160, 106, 0.18);
}
.process-rail-start { left: -6px; }
.process-rail-end {
  right: -14px;
  width: 26px;
  height: 26px;
  background: var(--gold-500);
  color: var(--navy-900);
  display: grid;
  place-items: center;
  box-shadow: 0 6px 18px rgba(201, 160, 106, 0.4);
}
.process-rail-fill {
  position: absolute;
  inset: 0;
  background: linear-gradient(to right, var(--gold-400), var(--gold-500));
  transform-origin: left center;
  transform: scaleX(0);
  transition: transform 2.4s cubic-bezier(0.22, 1, 0.36, 1) 0.2s;
  box-shadow: 0 0 14px rgba(201, 160, 106, 0.45);
}
.process-track.in .process-rail-fill {
  transform: scaleX(1);
}

/* Step grid */
.process-steps {
  position: relative;
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.75rem;
  z-index: 2;
}
.process-step {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  padding-bottom: 68px; /* room for node on rail */
}

/* Card */
.process-step-card {
  position: relative;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.9rem;
  padding: 1.75rem 1.4rem 1.5rem;
  background: #fff;
  border: 1px solid rgba(10, 22, 40, 0.06);
  border-radius: 14px;
  box-shadow: 0 8px 28px rgba(10, 22, 40, 0.05);
  transition: transform 0.5s var(--ease-out), box-shadow 0.5s var(--ease-out), border-color 0.5s var(--ease-out);
  overflow: hidden;
}
.process-step-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(to right, transparent, var(--gold-500), transparent);
  transform: scaleX(0);
  transform-origin: center;
  transition: transform 0.5s var(--ease-out);
}
.process-step-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 44px rgba(10, 22, 40, 0.1);
  border-color: rgba(201, 160, 106, 0.3);
}
.process-step-card:hover::before {
  transform: scaleX(1);
}
.process-step-badge {
  display: inline-flex;
  align-items: baseline;
  gap: 0.5rem;
  font-family: var(--font-display);
  color: var(--gold-500);
}
.process-step-badge-label {
  font-family: var(--font-body);
  font-size: 0.68rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--ink-400);
}
.process-step-badge-num {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 500;
  font-size: 1.6rem;
  color: var(--gold-500);
  line-height: 1;
}
.process-step-icon {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: linear-gradient(135deg, rgba(201, 160, 106, 0.16), rgba(201, 160, 106, 0.06));
  border: 1px solid rgba(201, 160, 106, 0.32);
  color: var(--gold-500);
  margin-top: 0.1rem;
}
.process-step-card h3 {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 1.2rem;
  color: var(--navy-900);
  margin: 0;
  line-height: 1.3;
}
.process-step-card p {
  color: var(--ink-600);
  font-size: 0.93rem;
  line-height: 1.6;
  margin: 0;
  flex: 1;
}
.process-step-duration {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  align-self: flex-start;
  padding: 0.4rem 0.75rem;
  background: var(--cream-100);
  border: 1px solid rgba(10, 22, 40, 0.06);
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ink-600);
}
.process-step-duration svg { color: var(--gold-500); }

/* Node on the rail */
.process-step-node {
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: var(--navy-900);
  border: 2px solid var(--gold-500);
  display: grid;
  place-items: center;
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 500;
  font-size: 1.05rem;
  color: var(--gold-400);
  box-shadow: 0 8px 24px rgba(10, 22, 40, 0.2), inset 0 0 0 4px rgba(255, 255, 255, 0.04);
  z-index: 3;
  transition: transform 0.4s var(--ease-out);
}
.process-step:hover .process-step-node {
  transform: translateX(-50%) scale(1.08);
}
.process-step-node.is-live {
  animation: pulseGold 2.4s ease-in-out infinite;
}
.process-step-node.is-live::after {
  content: "LIVE";
  position: absolute;
  top: -22px;
  left: 50%;
  transform: translateX(-50%);
  font-family: var(--font-body);
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  color: var(--gold-500);
  background: var(--navy-900);
  padding: 0.18rem 0.5rem;
  border-radius: 999px;
  border: 1px solid var(--gold-500);
  white-space: nowrap;
}

/* Responsive: 2x2 then single column */
@media (max-width: 960px) {
  .process-steps { grid-template-columns: repeat(2, 1fr); gap: 2.25rem 1.5rem; }
  .process-rail { display: none; }
  .process-step { padding-bottom: 0; }
  .process-step-node {
    position: static;
    transform: none;
    margin: -28px auto 0;
    order: -1;
    align-self: center;
  }
  .process-step:hover .process-step-node { transform: scale(1.05); }
  .process-step-card { padding-top: 2.25rem; }
  .process-step-node.is-live::after { top: -18px; }
}
@media (max-width: 560px) {
  .process-steps { grid-template-columns: 1fr; gap: 2rem; }
  .process-step-card { padding: 2.25rem 1.25rem 1.35rem; }
}

/* ===========================================
   CONTACT STUDIO (contact.html)
   =========================================== */
.contact-studio {
  position: relative;
  padding: clamp(5rem, 8vw, 7.5rem) 0 clamp(5rem, 8vw, 7.5rem);
  background: var(--cream-50);
  overflow: hidden;
  isolation: isolate;
}
.contact-studio-glow {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  background:
    radial-gradient(ellipse at 8% 0%, rgba(201, 160, 106, 0.14), transparent 55%),
    radial-gradient(ellipse at 100% 90%, rgba(10, 22, 40, 0.06), transparent 55%);
}
.contact-studio-grid {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  background-image:
    linear-gradient(to right, rgba(10, 22, 40, 0.035) 1px, transparent 1px);
  background-size: 80px 100%;
  mask-image: linear-gradient(to bottom, transparent, black 20%, black 80%, transparent);
  -webkit-mask-image: linear-gradient(to bottom, transparent, black 20%, black 80%, transparent);
  opacity: 0.55;
}
.contact-studio .container { position: relative; z-index: 1; }

.contact-studio-layout {
  display: grid;
  grid-template-columns: 0.95fr 1.2fr;
  gap: clamp(1.5rem, 2.4vw, 2.25rem);
  align-items: stretch;
}

/* ---------- LEFT: DARK EDITORIAL CARD ---------- */
.contact-studio-aside {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(2rem, 3vw, 2.75rem);
  border-radius: 24px;
  background:
    linear-gradient(145deg, var(--navy-900) 0%, var(--navy-950) 60%, #050d1a 100%);
  color: var(--cream-50);
  box-shadow:
    0 30px 70px rgba(10, 22, 40, 0.25),
    inset 0 1px 0 rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(201, 160, 106, 0.18);
  display: flex;
  flex-direction: column;
  gap: 1.75rem;
}
.contact-studio-hero-glow {
  position: absolute;
  top: -60px;
  right: -60px;
  width: 320px;
  height: 320px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(201, 160, 106, 0.26), transparent 65%);
  pointer-events: none;
  z-index: 0;
  filter: blur(10px);
}
.contact-studio-watermark {
  position: absolute;
  top: 1.1rem;
  right: 1.25rem;
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 300;
  font-size: clamp(7rem, 11vw, 10rem);
  line-height: 0.8;
  color: transparent;
  -webkit-text-stroke: 1px rgba(201, 160, 106, 0.22);
  letter-spacing: -0.04em;
  pointer-events: none;
  z-index: 0;
  user-select: none;
}
.contact-studio-corner {
  position: absolute;
  width: 26px;
  height: 26px;
  border-color: rgba(201, 160, 106, 0.5);
  z-index: 1;
  pointer-events: none;
}
.contact-studio-corner-tl { top: 14px; left: 14px; border-top: 1px solid; border-left: 1px solid; }
.contact-studio-corner-br { bottom: 14px; right: 14px; border-bottom: 1px solid; border-right: 1px solid; }

.contact-studio-head,
.contact-studio-methods,
.contact-studio-live { position: relative; z-index: 2; }

.contact-studio-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  padding: 0.45rem 0.9rem 0.45rem 0.75rem;
  background: rgba(201, 160, 106, 0.1);
  border: 1px solid rgba(201, 160, 106, 0.3);
  border-radius: 999px;
  color: var(--gold-400);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.contact-studio-eyebrow-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--gold-400);
  box-shadow: 0 0 0 3px rgba(201, 160, 106, 0.18);
  animation: pulseGold 2.4s ease-in-out infinite;
}
.contact-studio-eyebrow-index {
  padding-left: 0.65rem;
  border-left: 1px solid rgba(201, 160, 106, 0.35);
  color: rgba(253, 249, 243, 0.55);
  font-style: italic;
  text-transform: none;
  letter-spacing: 0.05em;
  font-weight: 500;
  font-family: var(--font-display);
}
.contact-studio-head h2 {
  font-family: var(--font-display);
  font-weight: 400;
  color: var(--cream-50);
  margin: 0.9rem 0 0.75rem;
  font-size: clamp(1.9rem, 3vw, 2.5rem);
  line-height: 1.15;
  letter-spacing: -0.01em;
}
.contact-studio-head h2 em {
  font-style: italic;
  color: var(--gold-400);
  font-weight: 400;
}
.contact-studio-rule {
  display: block;
  width: 48px;
  height: 2px;
  background: linear-gradient(to right, var(--gold-500), rgba(201, 160, 106, 0));
  margin: 0 0 1rem;
  border-radius: 2px;
}
.contact-studio-head p {
  color: rgba(253, 249, 243, 0.72);
  font-size: 0.98rem;
  line-height: 1.65;
  margin: 0;
}

/* contact methods list */
.contact-studio-methods {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}
.contact-studio-method {
  display: grid;
  grid-template-columns: auto auto 1fr auto;
  align-items: center;
  gap: 0.9rem;
  padding: 0.95rem 1rem;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.025);
  border: 1px solid rgba(255, 255, 255, 0.06);
  text-decoration: none;
  color: inherit;
  transition:
    transform 0.35s var(--ease-out),
    border-color 0.35s var(--ease-out),
    background 0.35s var(--ease-out),
    box-shadow 0.35s var(--ease-out);
}
a.contact-studio-method:hover {
  transform: translateY(-2px);
  border-color: rgba(201, 160, 106, 0.45);
  background: rgba(201, 160, 106, 0.06);
  box-shadow: 0 14px 30px rgba(10, 22, 40, 0.25);
}
a.contact-studio-method:hover .contact-studio-method-arrow {
  transform: translate(2px, -2px);
  color: var(--gold-400);
  border-color: var(--gold-400);
}
.contact-studio-method-num {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 500;
  font-size: 0.95rem;
  color: rgba(201, 160, 106, 0.7);
  letter-spacing: 0.02em;
  min-width: 1.25rem;
}
.contact-studio-method-icon {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  display: grid;
  place-items: center;
  background: linear-gradient(135deg, rgba(201, 160, 106, 0.18), rgba(201, 160, 106, 0.06));
  border: 1px solid rgba(201, 160, 106, 0.3);
  color: var(--gold-400);
  flex-shrink: 0;
}
.contact-studio-method-body {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  min-width: 0;
}
.contact-studio-method-label {
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  font-weight: 600;
  color: rgba(253, 249, 243, 0.5);
}
.contact-studio-method-value {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 1.02rem;
  color: var(--cream-50);
  line-height: 1.3;
  letter-spacing: -0.005em;
  overflow-wrap: break-word;
}
.contact-studio-method-arrow {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: rgba(253, 249, 243, 0.45);
  border: 1px solid rgba(255, 255, 255, 0.1);
  transition: transform 0.35s var(--ease-out), color 0.35s var(--ease-out), border-color 0.35s var(--ease-out);
  flex-shrink: 0;
}

.contact-studio-live {
  display: flex;
  align-items: center;
  gap: 0.9rem;
  padding: 0.9rem 1rem;
  border-radius: 12px;
  background: rgba(201, 160, 106, 0.08);
  border: 1px dashed rgba(201, 160, 106, 0.3);
  margin-top: auto;
}
.contact-studio-live-pulse {
  position: relative;
  width: 14px;
  height: 14px;
  flex-shrink: 0;
  display: grid;
  place-items: center;
}
.contact-studio-live-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #4ade80;
  box-shadow: 0 0 0 3px rgba(74, 222, 128, 0.18);
  z-index: 2;
}
.contact-studio-live-ring {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  border: 1.5px solid #4ade80;
  animation: contactLiveRing 2.2s ease-out infinite;
}
@keyframes contactLiveRing {
  0% { transform: scale(0.9); opacity: 0.7; }
  80%, 100% { transform: scale(2.2); opacity: 0; }
}
.contact-studio-live-text {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  line-height: 1.3;
}
.contact-studio-live-text strong {
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--cream-50);
  letter-spacing: 0.01em;
}
.contact-studio-live-text span {
  font-size: 0.75rem;
  color: rgba(253, 249, 243, 0.55);
}

/* ---------- RIGHT: PREMIUM FORM CARD ---------- */
.contact-studio-form {
  position: relative;
  isolation: isolate;
  padding: clamp(2rem, 3vw, 2.75rem);
  border-radius: 24px;
  background: #fff;
  border: 1px solid rgba(10, 22, 40, 0.08);
  box-shadow:
    0 30px 70px rgba(10, 22, 40, 0.08),
    0 1px 0 rgba(10, 22, 40, 0.03) inset;
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}
.contact-studio-form::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(to right, transparent 0%, var(--gold-500) 30%, var(--gold-400) 50%, var(--gold-500) 70%, transparent 100%);
  border-radius: 24px 24px 0 0;
  opacity: 0.9;
}
.contact-studio-form-corner {
  position: absolute;
  width: 22px;
  height: 22px;
  border-color: rgba(201, 160, 106, 0.45);
  pointer-events: none;
}
.contact-studio-form-corner-tl { top: 16px; left: 16px; border-top: 1px solid; border-left: 1px solid; }
.contact-studio-form-corner-br { bottom: 16px; right: 16px; border-bottom: 1px solid; border-right: 1px solid; }

.contact-studio-form-head { position: relative; z-index: 1; }
.contact-studio-form-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--gold-500);
  margin-bottom: 0.65rem;
}
.contact-studio-form-eyebrow-rule {
  display: inline-block;
  width: 22px;
  height: 1px;
  background: rgba(201, 160, 106, 0.5);
}
.contact-studio-form-eyebrow-index {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 500;
  text-transform: none;
  letter-spacing: 0.03em;
  color: var(--ink-400);
}
.contact-studio-form-head h3 {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: clamp(1.65rem, 2.4vw, 2.1rem);
  color: var(--navy-900);
  margin: 0.25rem 0 0.65rem;
  line-height: 1.2;
  letter-spacing: -0.01em;
}
.contact-studio-form-head h3 em {
  font-style: italic;
  color: var(--gold-500);
  font-weight: 400;
}
.contact-studio-form-head p {
  color: var(--ink-600);
  font-size: 0.95rem;
  line-height: 1.6;
  margin: 0;
}

.contact-studio-form-body {
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
  position: relative;
  z-index: 1;
}
.contact-studio-form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.1rem;
}

.contact-studio-field { display: flex; flex-direction: column; gap: 0.5rem; }
.contact-studio-field label {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--navy-900);
  letter-spacing: 0.02em;
  padding-left: 0.1rem;
}
.contact-studio-field-num {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 500;
  font-size: 0.9rem;
  color: var(--gold-500);
  min-width: 1.25rem;
}
.contact-studio-field-text {
  text-transform: none;
  font-size: 0.86rem;
  letter-spacing: 0.01em;
  color: var(--navy-900);
}
.contact-studio-field-req,
.contact-studio-field-optional {
  margin-left: auto;
  font-family: var(--font-body);
  font-size: 0.66rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  padding: 0.2rem 0.5rem;
  border-radius: 999px;
}
.contact-studio-field-req {
  color: var(--gold-500);
  background: rgba(201, 160, 106, 0.1);
  border: 1px solid rgba(201, 160, 106, 0.28);
}
.contact-studio-field-optional {
  color: var(--ink-400);
  background: var(--cream-100);
  border: 1px solid rgba(10, 22, 40, 0.06);
}

.contact-studio-field input,
.contact-studio-field textarea,
.contact-studio-select select {
  width: 100%;
  padding: 0.95rem 1.1rem;
  background: var(--cream-50);
  border: 1.5px solid rgba(10, 22, 40, 0.08);
  border-radius: 12px;
  font-family: var(--font-body);
  font-size: 0.95rem;
  color: var(--navy-900);
  transition: border-color 0.3s var(--ease-out), background 0.3s var(--ease-out), box-shadow 0.3s var(--ease-out);
  appearance: none;
  -webkit-appearance: none;
}
.contact-studio-field textarea { resize: vertical; min-height: 140px; line-height: 1.55; }
.contact-studio-field input::placeholder,
.contact-studio-field textarea::placeholder {
  color: var(--ink-400);
  opacity: 0.8;
}
.contact-studio-field input:hover,
.contact-studio-field textarea:hover,
.contact-studio-select select:hover {
  border-color: rgba(201, 160, 106, 0.4);
}
.contact-studio-field input:focus,
.contact-studio-field textarea:focus,
.contact-studio-select select:focus {
  outline: none;
  border-color: var(--gold-500);
  background: #fff;
  box-shadow: 0 0 0 4px rgba(201, 160, 106, 0.15);
}

.contact-studio-select { position: relative; }
.contact-studio-select select {
  padding-right: 2.75rem;
  cursor: pointer;
}
.contact-studio-select-chev {
  position: absolute;
  right: 1rem;
  top: 50%;
  transform: translateY(-50%);
  color: var(--gold-500);
  pointer-events: none;
  display: grid;
  place-items: center;
}

/* Submit row */
.contact-studio-submit-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
  margin-top: 0.75rem;
  padding-top: 1.35rem;
  border-top: 1px dashed rgba(201, 160, 106, 0.3);
  flex-wrap: wrap;
}
.contact-studio-submit-assurance {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  font-size: 0.8rem;
  color: var(--ink-600);
  line-height: 1.4;
  max-width: 260px;
}
.contact-studio-submit-assurance svg {
  color: var(--gold-500);
  flex-shrink: 0;
}
.contact-studio-submit {
  position: relative;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
  padding: 1rem 1.75rem;
  background: linear-gradient(135deg, var(--navy-900) 0%, var(--navy-800) 100%);
  color: var(--cream-50);
  font-family: var(--font-body);
  font-size: 0.9rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  border: 1px solid var(--gold-500);
  border-radius: 999px;
  cursor: pointer;
  transition: transform 0.35s var(--ease-out), box-shadow 0.35s var(--ease-out), background 0.35s var(--ease-out);
  box-shadow: 0 10px 24px rgba(10, 22, 40, 0.2);
}
.contact-studio-submit::before {
  content: "";
  position: absolute;
  top: 0; left: -120%;
  width: 60%; height: 100%;
  background: linear-gradient(120deg, transparent, rgba(255, 255, 255, 0.22), transparent);
  transform: skewX(-20deg);
  transition: left 0.7s var(--ease-out);
  pointer-events: none;
}
.contact-studio-submit:hover::before { left: 140%; }
.contact-studio-submit:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 34px rgba(10, 22, 40, 0.28), 0 0 0 3px rgba(201, 160, 106, 0.2);
  background: linear-gradient(135deg, var(--navy-950) 0%, var(--navy-900) 100%);
}
.contact-studio-submit-label { position: relative; z-index: 1; }
.contact-studio-submit-icon {
  position: relative;
  z-index: 1;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--gold-500), var(--gold-400));
  color: var(--navy-900);
  display: grid;
  place-items: center;
  transition: transform 0.35s var(--ease-out);
}
.contact-studio-submit:hover .contact-studio-submit-icon {
  transform: translateX(3px);
}
.contact-studio-form .form-message {
  margin-top: 0.5rem;
  padding: 0.85rem 1rem;
  border-radius: 10px;
  font-size: 0.9rem;
  display: none;
}
.contact-studio-form .form-message.success { display: block; background: #e7f4e8; color: #2d6a33; }
.contact-studio-form .form-message.error { display: block; background: #fbeaea; color: #8a2f2f; }

/* ---------- RESPONSIVE ---------- */
@media (max-width: 1020px) {
  .contact-studio-layout { grid-template-columns: 1fr; gap: 1.5rem; }
  .contact-studio-aside { order: 1; }
  .contact-studio-form { order: 2; }
}
@media (max-width: 640px) {
  .contact-studio-form-row { grid-template-columns: 1fr; }
  .contact-studio-method { grid-template-columns: auto auto 1fr; }
  .contact-studio-method-arrow { display: none; }
  a.contact-studio-method { grid-template-columns: auto auto 1fr auto; }
  .contact-studio-submit-row { flex-direction: column; align-items: stretch; }
  .contact-studio-submit { width: 100%; justify-content: center; }
  .contact-studio-submit-assurance { max-width: none; justify-content: center; text-align: left; }
  .contact-studio-watermark { font-size: 7rem; }
}

/* ===========================================
   CONTACT FAQ (contact.html)
   =========================================== */
.contact-faq {
  position: relative;
  padding: clamp(5rem, 8vw, 7rem) 0 clamp(6rem, 10vw, 8rem);
  background: var(--cream-100);
  overflow: hidden;
  isolation: isolate;
}
.contact-faq-glow {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  background:
    radial-gradient(ellipse at 90% 0%, rgba(201, 160, 106, 0.12), transparent 55%),
    radial-gradient(ellipse at 0% 100%, rgba(10, 22, 40, 0.04), transparent 50%);
}
.contact-faq .container { position: relative; z-index: 1; }

.contact-faq-head {
  text-align: center;
  max-width: 720px;
  margin: 0 auto clamp(2.75rem, 5vw, 4rem);
}
.contact-faq-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.4rem 0.85rem 0.4rem 0.7rem;
  background: rgba(201, 160, 106, 0.1);
  border: 1px solid rgba(201, 160, 106, 0.28);
  border-radius: 999px;
  color: var(--gold-500);
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}
.contact-faq-eyebrow-dot {
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--gold-500);
  box-shadow: 0 0 0 3px rgba(201, 160, 106, 0.16);
  animation: pulseGold 2.4s ease-in-out infinite;
}
.contact-faq-head h2 {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: clamp(2rem, 3.4vw, 2.8rem);
  color: var(--navy-900);
  margin: 0.9rem 0 0.5rem;
  line-height: 1.15;
  letter-spacing: -0.01em;
}
.contact-faq-head h2 em { font-style: italic; color: var(--gold-500); font-weight: 400; }
.contact-faq-rule {
  display: block;
  width: 48px;
  height: 2px;
  margin: 0.65rem auto 1.1rem;
  border-radius: 2px;
  background: linear-gradient(to right, rgba(201, 160, 106, 0) 0%, var(--gold-500) 50%, rgba(201, 160, 106, 0) 100%);
}
.contact-faq-head p {
  color: var(--ink-600);
  font-size: 1.02rem;
  line-height: 1.65;
  margin: 0 auto;
  max-width: 560px;
}

.contact-faq-list {
  max-width: 820px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
}
/* Re-use .faq-item pattern from packages FAQ for consistency */

@media (max-width: 560px) {
  .contact-faq-head h2 { font-size: 1.85rem; }
  .contact-faq-head p { font-size: 0.95rem; }
}

/* ===========================================
   UTILITIES
   =========================================== */
.text-center { text-align: center; }
.mt-0 { margin-top: 0; }
.mb-0 { margin-bottom: 0; }

/* Prevent horizontal overflow on small viewports */
@media (max-width: 520px) {
  .container { padding: 0 1rem; }
  section { padding: 5rem 0; }
}

/* ===========================================
   MOBILE POLISH — site-wide responsive fixes
   Loaded last so overrides win cleanly.
   =========================================== */

/* ----- NAV ----------------------------------
   At ≤480px, the "Get in Touch" pill competed
   with the hamburger for space and pushed the
   logo tight. Hide the pill and surface
   "Get in Touch" as a prominent CTA inside the
   hamburger drawer instead. */
@media (max-width: 520px) {
  .navbar .nav-cta { display: none !important; }
}
/* CTA inside the drawer: pinned below nav links */
@media (max-width: 860px) {
  .nav-links .nav-links-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    margin-top: auto;
    padding: 0.85rem 1.5rem;
    background: linear-gradient(180deg, #d9b684 0%, #a0814f 100%);
    color: var(--navy-900) !important;
    border-radius: 999px;
    font: 600 0.95rem/1 var(--font-body);
    letter-spacing: 0.04em;
    text-decoration: none;
    width: 100%;
    box-shadow: 0 8px 22px rgba(10, 22, 40, 0.25);
  }
  .nav-links .nav-links-cta svg { width: 14px; height: 14px; }
  /* the drawer fills its height so margin-top:auto can push CTA to bottom */
  .nav-links { justify-content: flex-start; }
  .nav-links::after { content: ''; flex: 1; }
}
/* On wider screens the drawer CTA duplicates the header pill — hide it. */
@media (min-width: 861px) {
  .nav-links .nav-links-cta { display: none; }
}

/* ----- HERO ---------------------------------
   On mobile, the .hero__meta scene card sat in
   the same vertical zone as the "View the
   Portfolio" button. Hide the card on phones —
   the Ken Burns slideshow keeps the rotation
   visible and the film-strip already shows
   progress. Also trim the film strip's meta so
   it stacks cleanly without colliding. */
@media (max-width: 760px) {
  .hero__meta { display: none !important; }
  .hero__content {
    justify-content: center;
    padding: 0 24px;
    /* Leave room at the bottom for the film strip so
       the secondary button never touches it. */
    padding-bottom: 160px;
  }
  .hero__headline { font-size: clamp(40px, 10vw, 62px); line-height: .98; margin-bottom: 24px; }
  .hero__deck { font-size: 15px; margin-bottom: 28px; }
  .hero__actions { gap: 12px; margin-top: -20px; }
  .hero__actions .btn { width: auto; }
  .hero__strip { grid-template-columns: 1fr; gap: 6px; bottom: 20px; }
  .hero__strip-clock, .hero__strip-ctrl { justify-self: center; }
  .hero__strip-key { display: none; }
  .hero__reel { display: none; }
  .hero__flourish { display: none; }
}
@media (max-width: 480px) {
  .hero__headline { font-size: clamp(36px, 11vw, 52px); }
  .hero__content { padding: 0 20px; padding-bottom: 150px; }
  .hero__eyebrow { margin-bottom: 20px; font-size: 10px; letter-spacing: .22em; }
  .hero__eyebrow::before { width: 28px; }
  .hero__strip { left: 16px; right: 16px; }
}

/* ----- MAPS SECTION -------------------------
   On mobile:
   - Plaque text was clipped by the frame. Make
     it scale with viewport and allow wrap.
   - Legend covered the markers. Move it below
     the map as a full-width strip and style it
     as an inline caption.
   - Compress the frame padding so the map uses
     its full width. */
@media (max-width: 640px) {
  .atlas-frame {
    padding: 2.2rem 0.6rem 0.6rem !important;
    border-radius: 10px;
  }
  .atlas-plaque {
    gap: 0.45rem;
    padding: 0.35rem 0.85rem;
    max-width: calc(100% - 20px);
    top: -18px;
  }
  .atlas-plaque-mark { font-size: 0.78rem; padding: 0.08em 0.4em; }
  .atlas-plaque-text { font-size: 0.52rem; letter-spacing: 0.14em; white-space: nowrap; }
  .atlas-plaque-text em { font-size: 1em; margin-left: 0.2em; }
  .atlas-corner { width: 20px; height: 20px; }
  .atlas-corner.tl, .atlas-corner.tr { top: 6px; }
  .atlas-corner.bl, .atlas-corner.br { bottom: 6px; }
  .atlas-corner.tl, .atlas-corner.bl { left: 6px; }
  .atlas-corner.tr, .atlas-corner.br { right: 6px; }

  /* Compass shrinks and tucks into a corner so it doesn't steal focus */
  .atlas-compass { width: 44px; height: 44px; bottom: 0.6rem; right: 0.6rem; opacity: 0.8; }
}
@media (max-width: 380px) {
  .atlas-plaque-text { font-size: 0.48rem; letter-spacing: 0.1em; }
  .atlas-plaque { padding: 0.3rem 0.7rem; }
}

/* ----- PROOF CAROUSEL -----------------------
   On mobile the prev/next buttons sit just
   below the card and the counter/dots row was
   rendering in the same band, causing overlap.
   Push the meta row further down so the 44px
   buttons sit cleanly above it. */
