/* ────────────────────────────────────────────────────────────────
   Verged marketing site — page-local styles.
   Merged from ui_kits/website/index.html <style> and
   ui_kits/website/site-marketing.css (deduplicated).
   Search rules and script-toggled state classes
   (.v-nav--solid / --ghost / --mobile-open / .is-open) removed:
   the Cloudbreak build ships no script.
   ──────────────────────────────────────────────────────────── */

/* ────────────────────────────────────────────────────────────────
   Marketing-site-only overrides.
   The Buttons / Hero / Nav / Footer / Forms components live in
   site.css; the patterns below are page-local (Services grid,
   Pillars, Insights grid) and use the same tokens.
   ──────────────────────────────────────────────────────────── */

/* ================================================================
   NAV — full override per latest spec
   ----------------------------------------------------------------
   Site-wide v-nav lives in site.css; this block restyles it for
   the marketing site only. Targets the new structure rendered in
   components.jsx → Nav.
   ================================================================ */
:root {
  --nav-h: 76px;
  --nav-text: #FAFAFA;
  --nav-text-dim: #8B97A4;
  --nav-accent: #EC5B29;
  --nav-cta: #E8490F;
  --nav-cta-hover: #C93D0C;
  --nav-navy: #15273F;
}

/* Base */
.v-nav { transition: background 0.3s ease, backdrop-filter 0.3s ease, border-color 0.3s ease; }

/* Header height compresses slightly once scrolled */

.v-nav__inner {
  max-width: 1280px; margin: 0 auto;
  padding: 0 32px; height: var(--nav-h);
  display: flex; align-items: center; gap: 28px;
  position: relative;
}
.v-nav__logo { display: inline-flex; align-items: center; flex: 0 0 auto; }
.v-nav__logo img { height: 26px; width: auto; display: block; }

/* Links — centered between logo and right controls */
.v-nav__links {
  display: flex; align-items: center;
  gap: 32px; flex: 1;
  justify-content: center;
  transition: opacity .2s ease;
}
.v-nav__item { position: relative; }
.v-nav__link {
  position: relative;
  display: inline-flex; align-items: center; gap: 6px;
  font-family: 'Plus Jakarta Sans', var(--font-body);
  font-weight: 500; font-size: 14px;
  letter-spacing: 0.06em; text-transform: uppercase;
  color: var(--nav-text); text-decoration: none;
  padding: 6px 0 8px;
  cursor: pointer;
  transition: color .15s ease;
}
.v-nav__link:hover { color: var(--nav-accent); }

/* Active page underline */
.v-nav__link.is-active::after {
  content: '';
  position: absolute;
  left: 0; right: 0;
  bottom: -2px;
  height: 2px;
  background: var(--nav-accent);
}

/* Right cluster */
.v-nav__util {
  display: flex; align-items: center;
  gap: 18px; flex: 0 0 auto;
  transition: opacity .2s ease;
}

/* Language toggle */
.v-nav__lang {
  display: inline-flex; align-items: center; gap: 8px;
  font-family: 'Plus Jakarta Sans', var(--font-body);
  font-size: 13px; letter-spacing: 0.06em;
}
.v-nav__lang .l {
  color: var(--nav-text-dim);
  font-weight: 400;
  text-decoration: none;
  cursor: pointer;
  transition: color .15s ease;
}
.v-nav__lang .l.is-on { color: var(--nav-text); font-weight: 600; }
.v-nav__lang .l:not(.is-on):hover { color: var(--nav-text); }
.v-nav__lang .sep { color: var(--nav-text-dim); }

/* Search icon button + dropdown wrapper */

/* ---- Search dropdown — bare underlined input, anchored below the search icon ---- */

/* CTA — already styled via v-btn; ensure exact tokens */
.v-nav__cta {
  background: var(--nav-cta);
  color: var(--nav-text);
  font-family: 'Plus Jakarta Sans', var(--font-body);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  border-radius: 4px;
  padding: 10px 18px;
  margin-left: 0;
}
.v-nav__cta:hover { background: var(--nav-cta-hover); }

/* Burger — hidden on desktop */
.v-nav__burger {
  display: none;
  width: 36px; height: 36px;
  background: transparent; border: 0; cursor: pointer;
  color: var(--nav-text); padding: 0;
  align-items: center; justify-content: center;
}
.v-nav__burger svg { width: 24px; height: 24px; }

/* ---- Mobile dropdown panel ---- */
.v-nav__mobile {
  position: absolute;
  top: var(--nav-h); left: 0; right: 0;
  background: var(--nav-navy);
  display: none;
  z-index: 4;
  box-shadow: 0 24px 60px rgba(0,0,0,0.3);
}

.v-nav__mobile-inner { padding: 16px 24px 32px; display: flex; flex-direction: column; gap: 24px; }
.v-nav__mobile-links { display: flex; flex-direction: column; }
.v-nav__mobile-links a {
  font-family: 'Plus Jakarta Sans', var(--font-body);
  font-weight: 500; font-size: 14px;
  letter-spacing: 0.06em; text-transform: uppercase;
  color: var(--nav-text); text-decoration: none;
  padding: 18px 0;
  border-bottom: 1px solid rgba(255,255,255,0.08);
  display: flex; align-items: center; justify-content: space-between;
}
.v-nav__mobile-links a:last-child { border-bottom: 0; }
.v-nav__mobile-links a.is-active { color: var(--nav-accent); }
.v-nav__mobile-links a .arr { color: rgba(255,255,255,0.4); font-size: 14px; }
.v-nav__mobile-lang {
  display: inline-flex; align-items: center; gap: 8px;
  font-family: 'Plus Jakarta Sans', var(--font-body);
  font-size: 13px; letter-spacing: 0.06em;
}
.v-nav__mobile-lang .l { color: var(--nav-text-dim); font-weight: 400; text-decoration: none; cursor: pointer; }
.v-nav__mobile-lang .l.is-on { color: var(--nav-text); font-weight: 600; }
.v-nav__mobile-lang .sep { color: var(--nav-text-dim); }

/* ---- Responsive (below 768px) ---- */
@media (max-width: 767px) {
.v-nav__inner { padding: 0 20px; gap: 12px; }
  .v-nav__links,
  .v-nav__util > .v-nav__lang { display: none; }

  .v-nav__util { margin-left: auto; }
  .v-nav__burger { display: inline-flex; }
  .v-nav__cta { padding: 9px 14px; font-size: 12px; }
}

/* Hero eyebrow override — Plus Jakarta SemiBold 600, 13/0.12em, orange + em-dash */
.v-hero .v-eyebrow {
  font-family: 'Plus Jakarta Sans', var(--font-body);
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--verge-orange);
}
.v-hero .v-eyebrow::before,
.v-hero .v-eyebrow::after {
  background: var(--verge-orange);
}
/* Display weight 800 ExtraBold per type system */
.v-display { font-weight: 800; }

/* ===== Hero background video (page-local) =====
   Replaces the static coastline still with a muted, looping clip.
   Scrim is top-weighted so a fixed headline stays legible as the
   foam crest travels through frame. Mobile falls back to the poster. */
.v-hero__bg {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover; object-position: center;
  z-index: 0;
}
.v-hero__scrim {
  position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(180deg,
    rgba(10,19,32,0.78) 0%,
    rgba(10,19,32,0.55) 45%,
    rgba(10,19,32,0.45) 100%);
}
.v-hero__inner  { z-index: 2; }
.v-hero__scroll { z-index: 2; }
/* The hero video plays at every viewport width. The only fallback is
   reduced motion, where the poster (passed in as --hero-poster) stands in. */
@media (prefers-reduced-motion: reduce) {
  .v-hero video.v-hero__bg { display: none; }
  .v-hero {
    background-image: var(--hero-poster);
    background-size: cover; background-position: center;
  }
}

/* Scroll cue — Plus Jakarta SemiBold 600 · 11/0.16em · Foam */
.v-hero__scroll {
  font-family: 'Plus Jakarta Sans', var(--font-body);
  font-weight: 600;
  font-size: 11px;
  letter-spacing: 0.16em;
  color: #C7DBE0; /* Foam */
  text-decoration: none;
}

/* Section eyebrow above the H2 — same A spec, light surfaces */
.v-section .v-eyebrow {
  display: inline-flex; align-items: center; gap: 12px;
  font-family: 'Plus Jakarta Sans', var(--font-body);
  font-weight: 600; font-size: 13px;
  letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--verge-orange);
  margin-bottom: 18px;
}
.v-section .v-eyebrow::before,
.v-section .v-eyebrow::after { content: ""; width: 24px; height: 1px; background: var(--verge-orange); opacity: 0.85; }

/* Make all main display headings explicitly ExtraBold 800 */
.v-h2 { font-weight: 800; }

/* ===== Service cards =====
   Numbered (01–04) · Lucide icon · badge · title · description · text-link */
.v-svc-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 32px; align-items: stretch; }
.v-svc {
  background: white;
  border: 1px solid var(--verge-stone);
  padding: 40px 36px 36px;
  display: flex; flex-direction: column; gap: 14px;
  transition: box-shadow 240ms var(--ease), transform 240ms var(--ease);
}
.v-svc:hover { box-shadow: 0 16px 36px rgba(10,19,32,0.07); transform: translateY(-2px); }
/* Head row: icon + title + number on ONE line, aligned to the first title line (Variant B) */
.v-svc__head {
  display: flex; align-items: flex-start; gap: 16px;
  margin-bottom: 4px;
}
.v-svc__icon {
  width: 44px; height: 44px; border-radius: 4px;
  background: #15273F;
  display: inline-flex; align-items: center; justify-content: center;
  color: #fff;
  flex-shrink: 0;
}
.v-svc__icon svg { width: 22px; height: 22px; stroke-width: 1.5; }
.v-svc__num {
  margin-left: auto; flex-shrink: 0;
  font-family: var(--font-mono);
  font-size: 11px; letter-spacing: 0.18em; font-weight: 600;
  color: var(--fg-muted); text-transform: uppercase;
  padding-top: 4px;
}
.v-svc__t {
  flex: 1; min-width: 0;
  font-family: 'Plus Jakarta Sans', var(--font-display);
  font-weight: 800;
  font-size: 28px; line-height: 1.18;
  letter-spacing: -0.018em; margin: 0;
  color: var(--verge-ink); text-wrap: balance;
}
.v-svc__d {
  font-family: var(--font-body);
  font-size: 16px; line-height: 1.65;
  color: var(--fg-2); margin: 0;
  flex: 1 0 auto;
}
.v-svc__foot { display: flex; flex-direction: column; gap: 14px; margin-top: 20px; }
.v-svc__tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; }
.v-svc__cta {
  margin-top: 0;
  align-self: flex-start;
}

/* ===== Badges =====
   Plus Jakarta SemiBold 600 · 11/0.08em · 999px pill · soft tints */
.v-badge {
  display: inline-flex; align-items: center;
  font-family: 'Plus Jakarta Sans', var(--font-body);
  font-weight: 600; font-size: 11px;
  letter-spacing: 0.08em;
  padding: 5px 10px; border-radius: 999px;
  line-height: 1;
  text-transform: uppercase;
}
/* What's-On badge scheme: Masterclass → Tide, all others → Navy.
   Orange + Moss variants removed — orange is reserved for CTAs/Live only. */
.v-badge--navy   { background: var(--verge-navy-soft); color: var(--verge-navy); }   /* navy-soft #D5DCE4 · navy #15273F */
.v-badge--tide   { background: var(--g-tide-soft); color: var(--g-tide); }           /* foam #C7DBE0 · tide #2C5A6E */
.v-badge--outline{ background: transparent; border: 1px solid var(--verge-ink); color: var(--verge-ink); }

/* ===== Pillars =====
   Stay clean — H3 800 + body. */
.v-pillar__t {
  font-family: 'Plus Jakarta Sans', var(--font-display);
  font-weight: 800;
  font-size: 22px; letter-spacing: -0.018em;
  margin: 0 0 12px; color: var(--verge-ink);
}
.v-pillar__d { font-size: 15px; line-height: 1.7; color: var(--fg-2); margin: 0; }
.v-pillars { display: grid; grid-template-columns: repeat(3, 1fr); gap: 56px; text-align: center; }
.v-pillar__icon {
  width: 56px; height: 56px; border-radius: 4px;   /* same radius as the service chip */
  background: #15273F; border: none;
  color: #FAFAFA;
  display: inline-flex; align-items: center; justify-content: center;
  margin: 0 auto 20px;
}
.v-pillar__icon svg { width: 26px; height: 26px; stroke-width: 1.5; }

/* ===== Insights cards ===== */
.v-posts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }
.v-post {
  background: white;
  border: 1px solid var(--verge-stone);
  display: flex; flex-direction: column;
  transition: box-shadow 240ms var(--ease);
}
.v-post:hover { box-shadow: 0 16px 36px rgba(10,19,32,0.07); }
.v-post__img { aspect-ratio: 16/10; background-size: cover; background-position: center; position: relative; }
.v-post__img .v-badge { position: absolute; top: 14px; left: 14px; background: rgba(250,250,250,0.95); }
.v-post__body { padding: 24px 28px 28px; flex: 1; display: flex; flex-direction: column; gap: 10px; }
.v-post__date {
  font-family: var(--font-mono);
  font-size: 11px; letter-spacing: 0.14em;
  font-weight: 600;
  color: var(--fg-muted); text-transform: uppercase;
}
.v-post__t {
  font-family: 'Plus Jakarta Sans', var(--font-display);
  font-weight: 800;
  font-size: 22px; letter-spacing: -0.018em; line-height: 1.25;
  margin: 0; color: var(--verge-ink); text-wrap: balance;
}
.v-post__d { font-size: 14px; line-height: 1.65; color: var(--fg-2); margin: 0; }
.v-post__cta { margin-top: auto; padding-top: 6px; }

/* ===== What's On — events ===== */
.v-events { display: flex; flex-direction: column; gap: 24px; }

/* Level 1 — Featured event (prominent, navy) */
.v-featured {
  background: var(--verge-navy);
  color: var(--verge-off-white);
  border-radius: 4px;
  padding: 48px 56px;
  display: grid;
  grid-template-columns: 1fr 280px;
  gap: 56px;
  align-items: center;
}
.v-featured__main { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; }
.v-featured__labels { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.v-featured__t {
  font-family: 'Plus Jakarta Sans', var(--font-display);
  font-weight: 800; font-size: 32px; line-height: 1.16;
  letter-spacing: -0.02em; margin: 0; color: #fff; text-wrap: balance;
}
.v-featured__d { font-size: 17px; line-height: 1.65; color: rgba(250,250,250,0.78); margin: 0; max-width: 54ch; }
.v-featured__cta { margin-top: 8px; }
.v-featured__meta {
  display: flex; flex-direction: column; gap: 22px;
  border-left: 1px solid rgba(255,255,255,0.16);
  padding-left: 40px;
}
.v-featured__date {
  font-family: 'Plus Jakarta Sans', var(--font-display);
  font-weight: 800; font-size: 24px; letter-spacing: -0.01em; color: #fff; line-height: 1.12;
}
.v-featured__metarow { display: flex; flex-direction: column; gap: 4px; }
.v-featured__metarow .k {
  font-family: 'Plus Jakarta Sans', var(--font-body);
  font-weight: 600; font-size: 11px; letter-spacing: 0.12em;
  text-transform: uppercase; color: #8B97A4;
}
.v-featured__metarow .val { font-family: var(--font-body); font-size: 16px; color: rgba(250,250,250,0.92); }

/* Live indicator */
.v-live { display: inline-flex; align-items: center; gap: 8px; }
.v-live__dot {
  width: 7px; height: 7px; border-radius: 50%;
  background: var(--verge-orange);
  animation: vPulse 2s infinite;
}
.v-live__txt {
  font-family: 'Plus Jakarta Sans', var(--font-body);
  font-weight: 600; font-size: 11px; letter-spacing: 0.12em;
  text-transform: uppercase; color: rgba(250,250,250,0.85);
}
@keyframes vPulse {
  0%   { box-shadow: 0 0 0 0 rgba(236,91,41,0.55); }
  70%  { box-shadow: 0 0 0 8px rgba(236,91,41,0); }
  100% { box-shadow: 0 0 0 0 rgba(236,91,41,0); }
}

/* Level 2 — Event list (compact schedule)
   Three type steps only: date/CTA 13px, name 17px. No icon, no underline. */
.v-evlist { border-top: 1px solid var(--verge-stone); }
.v-evrow {
  display: grid;
  grid-template-columns: 132px 150px minmax(240px, 1fr) max-content;
  gap: 20px; align-items: center;
  padding: 20px 16px;
  border-bottom: 1px solid var(--verge-stone);
  transition: background 160ms var(--ease);
}
.v-evrow:hover { background: var(--verge-stone-2); }
.v-evrow .v-badge { width: 100%; justify-content: center; }
.v-evrow__date {
  font-family: var(--font-mono);
  font-size: 13px; font-weight: 400;
  letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--fg-2);
}
.v-evrow__name {
  font-family: var(--font-body);
  font-weight: 600; font-size: 17px; line-height: 1.35;
  color: var(--verge-navy);
  text-wrap: pretty;
}
.v-evrow__loc { font-weight: 400; color: var(--fg-2); }
.v-evrow__cta {
  justify-self: end;
  display: inline-flex; align-items: center; gap: 8px;
  font-family: 'Plus Jakarta Sans', var(--font-body);
  font-size: 13px; font-weight: 600;
  letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--verge-navy); text-decoration: none;
  white-space: nowrap;
}
.v-evrow__cta .v-arr { color: var(--verge-orange); }

/* Row stacks before the name track can drop below its 240px minimum */
@media (max-width: 1080px) {
  .v-evrow { grid-template-columns: 132px minmax(0, 1fr); gap: 10px 20px; padding: 20px 12px; align-items: center; }
  .v-evrow__name { grid-column: 1 / -1; }
  .v-evrow__cta { grid-column: 1 / -1; justify-self: start; }
}

@media (max-width: 900px) {
.v-featured { grid-template-columns: 1fr; gap: 32px; padding: 36px 32px; }
  .v-featured__meta { border-left: 0; padding-left: 0; border-top: 1px solid rgba(255,255,255,0.16); padding-top: 24px; flex-direction: row; flex-wrap: wrap; gap: 28px 48px; }
}

/* ===== Contact (form section) ===== */
.v-contact { display: grid; grid-template-columns: 1fr 1.1fr; gap: 80px; align-items: start; max-width: 1080px; margin: 0 auto; }
.v-contact__lede { font-size: 17px; line-height: 1.7; color: var(--fg-2); margin: 18px 0 28px; max-width: 38ch; }
.v-contact__facts { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 12px; }
.v-contact__facts li {
  display: grid; grid-template-columns: 22px 1fr 1fr; gap: 14px; align-items: start;
  font-size: 15px; color: var(--fg-2);
}
.v-contact__facts li svg { width: 18px; height: 18px; stroke-width: 1.5; color: var(--verge-orange); margin-top: 2px; }
.v-contact__facts .k {
  font-family: 'Plus Jakarta Sans', var(--font-body);
  font-weight: 600; font-size: 11px; letter-spacing: 0.12em;
  text-transform: uppercase; color: #8B97A4;
}
.v-check {
  display: grid; grid-template-columns: 18px 1fr; gap: 12px; align-items: start;
  font-size: 13px; line-height: 1.55; color: var(--fg-2);
  margin: 0 0 24px;
}
.v-check input { width: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--verge-orange); }

@media (max-width: 900px) {
.v-svc-grid { grid-template-columns: 1fr; }
  .v-pillars, .v-posts { grid-template-columns: 1fr; gap: 32px; }
  .v-contact { grid-template-columns: 1fr; gap: 48px; }
}

/* ===== Personal invitation (Christian) ===== */
.v-invite {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 60px;
  align-items: center;
  max-width: 1000px;
  margin: 0 auto;
}
.v-invite__aside { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 16px; flex: 0 0 auto; }
.v-invite__photo {
  width: 132px; height: 132px; border-radius: 50%;
  object-fit: cover;
  border: 3px solid rgba(255,255,255,0.16);
  box-shadow: 0 14px 36px rgba(0,0,0,0.32);
  background: #1F3654; display: block;
}
.v-invite__id { display: flex; flex-direction: column; gap: 4px; }
.v-invite__name {
  font-family: 'Plus Jakarta Sans', var(--font-display);
  font-weight: 800; font-size: 19px; letter-spacing: -0.01em; color: #fff; line-height: 1.15;
}
.v-invite__role {
  font-family: 'Plus Jakarta Sans', var(--font-body);
  font-weight: 600; font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: #8B97A4;
}
.v-invite__body { display: flex; flex-direction: column; align-items: flex-start; gap: 30px; }
.v-invite__statement {
  font-family: 'Plus Jakarta Sans', var(--font-display);
  font-weight: 500; font-size: 27px; line-height: 1.4; letter-spacing: -0.012em;
  color: #FAFAFA; margin: 0; text-wrap: pretty;
}
.v-invite__statement em { font-style: italic; font-weight: 600; color: var(--verge-orange); }
.v-invite__actions { display: flex; align-items: center; gap: 28px; flex-wrap: wrap; }
.v-invite__primary { text-transform: uppercase; letter-spacing: 0.08em; }

@media (max-width: 760px) {
.v-invite { grid-template-columns: 1fr; gap: 36px; padding: 44px 30px; }
  .v-invite__body { align-items: center; text-align: center; }
  .v-invite__statement { font-size: 22px; }
  .v-invite__actions { justify-content: center; gap: 20px; }
}

/* ================================================================
   FOOTER — three equal columns, no logo column
   ================================================================ */
.v-foot { background: #0A1320; }
.v-foot__inner {
  grid-template-columns: 1fr 1fr 1fr;
  gap: 64px;
}
.v-foot__social {
  display: flex;
  align-items: center;
  gap: 14px;
}
.v-foot__social a {
  width: 38px; height: 38px;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,0.18);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: rgba(255,255,255,0.85);
  transition: border-color .15s ease, color .15s ease, background .15s ease;
  /* unset site.css .v-foot__col a styling */
  font-size: 0;
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
}
.v-foot__social a:hover {
  color: var(--verge-orange);
  border-color: var(--verge-orange);
}
.v-foot__social svg { width: 18px; height: 18px; display: block; }

/* Bottom bar — Legal Notice · Datenschutz · © 2026 Verged CX GmbH */
.v-foot__bottom {
  color: #8B97A4;
  font-family: 'Inter', var(--font-body);
  font-weight: 400;
  font-size: 13px;
  text-transform: none;
  letter-spacing: 0;
}
.v-foot__legal {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.v-foot__legal a {
  color: #8B97A4;
  font-family: 'Inter', var(--font-body);
  font-weight: 400;
  font-size: 13px;
  text-transform: none;
  letter-spacing: 0;
  text-decoration: none;
  transition: color .15s ease;
}
.v-foot__legal a:hover { color: #FAFAFA; }
.v-foot__sep { color: rgba(139, 151, 164, 0.6); }

@media (max-width: 767px) {
.v-foot__inner { grid-template-columns: 1fr; gap: 40px; }
}

/* ================================================================
   NAV — scriptless additions
   ================================================================ */

/* Scroll-driven header solidify. Browsers without scroll-driven
   animation support keep the transparent header; that is intended. */
@supports (animation-timeline: scroll()) {
  @keyframes nav-solidify {
    from { background-color: transparent; backdrop-filter: blur(0px); --nav-h: 96px; }
    to   { background-color: rgba(21, 39, 63, 0.92); backdrop-filter: blur(8px); --nav-h: 64px; }
  }
  .v-nav {
    animation: nav-solidify linear both;
    animation-timeline: scroll(root block);
    animation-range: 0 120px;
  }
}

/* One caret only — suppress the second chevron site.css draws. */
.v-nav__item > a.has-sub::after { content: none; }

/* Mobile panel as a native popover: reset UA popover chrome and pin it
   under the header. The burger and the close button drive it. */
.v-nav__mobile:popover-open {
  display: block;
  position: fixed;
  top: var(--nav-h); left: 0; right: 0; bottom: auto;
  width: auto; max-width: none; height: auto;
  max-height: calc(100dvh - var(--nav-h));
  overflow-y: auto;
  margin: 0; padding: 0; border: 0;
  background: var(--nav-navy);
}
.v-nav__mobile::backdrop { background: rgba(10, 19, 32, 0.5); }
.v-nav__mobile-close {
  align-self: flex-end;
  width: 36px; height: 36px;
  background: transparent; border: 0; padding: 0;
  color: var(--nav-text); cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center;
}
.v-nav__mobile-close svg { width: 24px; height: 24px; }

/* ================================================================
   SCRIPTLESS REVEAL + POST IMAGE
   ================================================================ */

/* site.css hides .reveal until script adds .in. Without script that
   fails closed, so the base state is visible here and the reveal is
   a scroll-driven animation where the browser supports one. */
.reveal { opacity: 1; transform: none; }
@supports (animation-timeline: view()) {
  @keyframes reveal-in {
    from { opacity: 0; transform: translateY(20px); }
    to   { opacity: 1; transform: none; }
  }
  .reveal {
    animation: reveal-in .7s var(--ease-out) both;
    animation-timeline: view();
    animation-range: entry 0% cover 22%;
  }
  @media (prefers-reduced-motion: reduce) {
    .reveal { animation: none; opacity: 1; transform: none; }
  }
}

/* Post thumbnails are content images now, not background images. */
.v-post__img { overflow: hidden; }
.v-post__img > img { width: 100%; height: 100%; object-fit: cover; display: block; }
.v-post__t > a { color: inherit; text-decoration: none; }
.v-post__t > a:hover { color: var(--verge-orange); }

/* ================================================================
   COMPACT HERO (sub-pages)
   ================================================================ */
.v-hero--compact { min-height: 56vh; }
.v-hero--compact .v-hero__inner { padding-top: 140px; padding-bottom: 80px; }
.v-hero--compact .v-display { font-size: clamp(34px, 5vw, 62px); }
/* The kit scrim is top-weighted for a full-height hero; the compact hero
   sits lower in frame, so it needs an even plate under the text. */
.v-hero--compact .v-hero__scrim { background: linear-gradient(rgba(21, 39, 63, 0.78), rgba(21, 39, 63, 0.62)); }
.v-hero--compact .v-lede { color: #fff; }

/* ================================================================
   SERVICE DETAIL (Services page)
   ================================================================ */
.v-svcdet__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 56px; align-items: start; }
.v-svcdet__num { font-family: var(--font-mono); font-weight: 600; font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--verge-orange); display: block; margin-bottom: 14px; }
.v-svcdet__t { font-family: 'Plus Jakarta Sans', var(--font-display); font-weight: 800; font-size: clamp(28px, 3vw, 40px); line-height: 1.16; letter-spacing: -0.02em; color: var(--verge-ink); margin: 0; text-wrap: balance; }
.v-svcdet__lede { font-family: var(--font-body); font-size: 18px; line-height: 1.7; color: var(--fg-2); margin: 0 0 28px; }
.v-svcdet__list { list-style: none; margin: 0 0 28px; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.v-svcdet__list li { position: relative; padding-left: 30px; font-family: var(--font-body); font-size: 16px; line-height: 1.6; color: var(--verge-ink); }
.v-svcdet__list li::before { content: ""; position: absolute; left: 0; top: 8px; width: 12px; height: 2px; background: var(--verge-orange); }
.v-svcdet__outcomes { font-family: 'Plus Jakarta Sans', var(--font-body); font-weight: 600; font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--fg-2); margin: 0 0 16px; }
@media (max-width: 900px) {
  .v-svcdet__grid { grid-template-columns: 1fr; gap: 28px; }
}

/* ================================================================
   CONTACT PAGE — provider form slot
   ================================================================ */
.v-form-slot { border: 1px dashed var(--border-strong, #cfd4da); background: #fff; padding: 40px 32px; min-height: 260px; display: flex; align-items: center; justify-content: center; text-align: center; font-family: var(--font-mono); font-size: 13px; line-height: 1.6; color: var(--fg-2); }
.v-cp__contactlist { list-style: none; margin: 28px 0 0; padding: 0; display: flex; flex-direction: column; gap: 12px; font-family: var(--font-body); font-size: 16px; color: var(--verge-ink); }
.v-cp__contactlist .k { font-family: 'Plus Jakarta Sans', var(--font-body); font-weight: 600; font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--fg-2); display: block; margin-bottom: 2px; }

/* ================================================================
   MEET CHRISTIAN — scriptless booking block
   ================================================================ */
.v-book__actions { display: flex; flex-wrap: wrap; gap: 18px; align-items: center; }
.v-book__slot { margin-top: 28px; }

/* ================================================================
   CLOSING CONTACT BANNER — shared by every sub-page
   (lifted from the kit's About page stylesheet)
   ================================================================ */
.v-aboutcta { padding: 128px 0; background: var(--verge-off-white); text-align: center; }
.v-aboutcta__inner { max-width: 720px; margin: 0 auto; padding: 0 32px; }
.v-aboutcta__title {
  font-family: 'Plus Jakarta Sans', var(--font-display);
  font-weight: 800; font-size: clamp(34px, 5vw, 54px);
  line-height: 1.08; letter-spacing: -0.024em; color: var(--verge-ink); margin: 0 0 36px;
}
.v-aboutcta__title em { font-style: italic; font-weight: 800; color: var(--verge-orange); }
.v-aboutcta .v-btn { text-transform: uppercase; letter-spacing: 0.08em; }
@media (max-width: 760px) {
  .v-aboutcta { padding: 72px 0; }
}

/* ================================================================
   HUB HERO (still image variant)
   ================================================================ */
.v-hero--hub,
.v-hero--hub .v-hero__inner { min-height: 78vh; }
/* The base scrim lightens towards the bottom, where the hub headline sits;
   the still images are foam-bright there, so this tier gets an even plate. */
.v-hero--hub .v-hero__scrim { background: linear-gradient(rgba(21, 39, 63, 0.80), rgba(21, 39, 63, 0.68)); }
.v-hero--hub .v-lede { color: #fff; }

/* ================================================================
   TITLE BANNER — canonical block, not present in the design system's
   site.css, so it lives here unchanged.
   ================================================================ */
.v-tbanner { position: relative; overflow: hidden; background: var(--verge-navy); color: #FAFAFA; }
.v-tbanner__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 50%; z-index: 0; }
.v-tbanner__scrim { position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(21,39,63,0.74) 0%, rgba(10,19,32,0.86) 100%); }
.v-tbanner__inner { position: relative; z-index: 2; max-width: 1100px; margin: 0 auto; padding: 164px 32px 64px; display: flex; flex-direction: column; align-items: center; text-align: center; }
.v-tbanner__eyebrow { display: inline-flex; align-items: center; gap: 12px; font-family: 'Plus Jakarta Sans', var(--font-display); font-weight: 600; font-size: 13px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--verge-orange); }
.v-tbanner__eyebrow::before, .v-tbanner__eyebrow::after { content: ""; width: 26px; height: 2px; border-radius: 2px; background: var(--verge-orange); }
.v-tbanner__title { font-family: 'Plus Jakarta Sans', var(--font-display); font-weight: 800; font-size: clamp(32px, 4.6vw, 52px); line-height: 1.06; letter-spacing: -0.022em; color: #FAFAFA; margin: 18px 0 0; text-wrap: balance; }
@media (max-width: 760px) { .v-tbanner__inner { padding: 132px 24px 52px; } }

/* ================================================================
   INSIGHTS INDEX — list layout of the post card
   ================================================================ */
.v-posts--list { grid-template-columns: 1fr; gap: 28px; }
.v-posts--list .v-post { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); align-items: stretch; }
.v-posts--list .v-post__img { aspect-ratio: auto; min-height: 220px; }
.v-posts--list .v-post__body { padding: 32px 36px; justify-content: center; }
@media (max-width: 760px) {
  .v-posts--list .v-post { grid-template-columns: 1fr; }
  .v-posts--list .v-post__img { aspect-ratio: 16/10; min-height: 0; }
}

/* ================================================================
   ARTICLE BANNER (compact tier) + ARTICLE BODY
   ================================================================ */
.v-tbanner--compact { background: var(--verge-navy); }
.v-tbanner--compact .v-tbanner__inner { padding: 104px 32px 48px; }
.v-tbanner__meta { display: flex; align-items: center; gap: 10px; margin-top: 20px; font-family: var(--font-mono); font-size: 11.5px; letter-spacing: 0.14em; text-transform: uppercase; color: rgba(250, 250, 250, 0.6); }

.v-article { background: var(--verge-off-white); padding: 64px 0 104px; }
.v-article__inner { max-width: 760px; margin: 0 auto; padding: 0 32px; }
.v-article__back { display: inline-flex; align-items: center; gap: 8px; font-family: 'Plus Jakarta Sans', var(--font-body); font-weight: 600; font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--fg-2); text-decoration: none; }
.v-article__back:hover { color: var(--verge-orange); }
.v-article__lead { font-family: var(--font-body); font-size: 21px; line-height: 1.6; color: var(--verge-ink); margin: 32px 0 0; text-wrap: pretty; }
.v-article__figure { margin: 40px 0 0; }
.v-article__figure img { width: 100%; height: auto; display: block; }
.v-article__body { margin-top: 40px; font-family: var(--font-body); font-size: 18px; line-height: 1.75; color: var(--fg-2); }
.v-article__body > * + * { margin-top: 24px; }
.v-article__body p { margin: 0; text-wrap: pretty; }
.v-article__body p.is-lead { font-size: 20px; color: var(--verge-ink); }
.v-article__body h2 { font-family: 'Plus Jakarta Sans', var(--font-display); font-weight: 800; font-size: 28px; line-height: 1.2; letter-spacing: -0.018em; color: var(--verge-ink); margin: 44px 0 0; }
.v-article__body h3 { font-family: 'Plus Jakarta Sans', var(--font-display); font-weight: 800; font-size: 21px; line-height: 1.25; color: var(--verge-ink); margin: 36px 0 0; }
.v-article__body blockquote { margin: 36px 0 0; padding: 0 0 0 26px; border-left: 2px solid var(--verge-orange); font-size: 21px; line-height: 1.55; color: var(--verge-ink); }
.v-article__foot { margin-top: 56px; }
@media (max-width: 760px) {
  .v-article { padding: 48px 0 72px; }
  .v-article__inner { padding: 0 24px; }
}

/* ================================================================
   LEGAL PROSE
   ================================================================ */
.v-legal { max-width: 760px; }
.v-legal__block + .v-legal__block { margin-top: 48px; }
.v-legal__h { font-family: 'Plus Jakarta Sans', var(--font-display); font-weight: 800; font-size: 24px; line-height: 1.22; letter-spacing: -0.016em; color: var(--verge-ink); margin: 0 0 16px; }
.v-legal__p { font-family: var(--font-body); font-size: 17px; line-height: 1.75; color: var(--fg-2); margin: 0; text-wrap: pretty; }
.v-legal__p + .v-legal__p { margin-top: 18px; }
