/* ==========================================================================
   VOMTEL — Component system
   Faithful to design/vomtel-homepage-design.html, rebuilt as one responsive
   implementation. All colors reference tokens.css variables.
   ========================================================================== */

/* ---------- Base ---------- */
body.vt {
  background: var(--vt-paper);
  color: var(--vt-ink);
  font-family: var(--vt-font-body);
  -webkit-font-smoothing: antialiased;
  margin: 0;
}
.vt *,
.vt *::before,
.vt *::after { box-sizing: border-box; }

/* Zero-specificity so link-styled buttons (.vt-btn etc.) keep their own color. */
:where(.vt a) { color: inherit; text-decoration: none; }
/* NO underlines anywhere — links stay identifiable by color/weight. Class specificity
   (.vt a = 0,1,1) beats the platform-injected `a { text-decoration: underline }` (0,0,1);
   a pure :where() reset (0,0,0) cannot. Component rules below carry color/weight, no underline. */
.vt a { text-decoration: none; }
.vt img { max-width: 100%; height: auto; display: block; }
.vt h1, .vt h2, .vt h3 { font-family: var(--vt-font-display); text-wrap: balance; }
/* Zero-specificity margin reset via :where() so component paragraph/heading
   margins (single-class selectors) always win over the base reset. */
:where(.vt h1, .vt h2, .vt h3, .vt p) { margin: 0; }

/* Anchor offset so sticky header never covers a jumped-to section */
.vt :target { scroll-margin-top: calc(var(--vt-header-h) + 12px); }

/* ---------- Layout helpers ---------- */
.vt-section { padding: var(--vt-section-y) var(--vt-gutter); }
.vt-section--sand   { background: var(--vt-sand); border-top: 1px solid var(--vt-stone); }
.vt-section--paper  { background: var(--vt-paper); }
.vt-section--carbon { background: var(--vt-carbon); color: var(--vt-on-dark); }
.vt-inner { max-width: var(--vt-content); margin-inline: auto; }
.vt-measure { max-width: 940px; }

.vt-eyebrow {
  font-family: var(--vt-font-body);
  font-weight: var(--vt-w-semi);
  font-size: var(--vt-eyebrow);
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--vt-orange);
  margin: 0 0 16px;
}
.vt-eyebrow--hot { color: var(--vt-orange-hot); }

.vt-h2 { font-size: var(--vt-h2); font-weight: var(--vt-w-heavy); line-height: 1.08; letter-spacing: -.01em; color: var(--vt-ink); }
.vt-section--carbon .vt-h2 { color: var(--vt-on-dark); }
.vt-lead { font-size: var(--vt-lead); line-height: 1.6; color: var(--vt-slate); margin-top: 16px; }

/* ---------- Buttons — the ONE orange button, sitewide ---------- */
.vt-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 9px;
  font-family: var(--vt-font-display); font-weight: var(--vt-w-heavy);
  font-size: 1rem; line-height: 1;
  color: #fff; background: var(--vt-grad-orange);
  border: none; border-radius: var(--vt-radius-btn);
  padding: 16px 28px; cursor: pointer;
  box-shadow: 0 1px 0 var(--vt-orange-shadow);
  transition: transform .15s var(--vt-ease), filter .15s var(--vt-ease);
}
.vt-btn:hover { filter: brightness(1.05); transform: translateY(-1px); }
.vt-btn:active { transform: translateY(0); filter: brightness(.96); }
.vt-btn:focus-visible { outline: 3px solid var(--vt-orange-hot); outline-offset: 3px; }
.vt-btn--sm { padding: 12px 20px; font-size: .875rem; }
.vt-btn--lg { padding: 18px 32px; font-size: 1.0625rem; }
.vt-btn--block { width: 100%; }
/* Inverted (used only on the orange closing band): white bg, orange text */
.vt-btn--invert { background: #fff; color: var(--vt-orange); box-shadow: none; }
/* Ghost/outline SECONDARY action (never orange — preserves the one-orange-button
   rule). Used for "Join the Retail Waitlist" etc. on dark/orange backgrounds. */
.vt-btn--ghost { background: transparent; color: #fff; box-shadow: none; border: 1.5px solid rgba(255,255,255,.45); }
.vt-btn--ghost:hover { filter: none; border-color: #fff; background: rgba(255,255,255,.08); }

.vt-link {
  display: inline-flex; align-items: center; gap: 7px;
  font-family: var(--vt-font-body); font-weight: var(--vt-w-semi); font-size: .875rem;
  color: var(--vt-orange-deep);
}
.vt-link--ghost { color: #fff; font-size: 1rem; }
.vt-link--ghost .vt-arrow { color: var(--vt-orange-hot); }
.vt-link:hover { opacity: .8; }

/* =========================================================================
   HEADER (sticky)
   ========================================================================= */
.vt-header {
  position: sticky; top: 0; z-index: 50;
  background: rgba(251,250,249,.92);
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--vt-stone);
  padding: 0 var(--vt-gutter);
}
.vt-header__bar {
  height: var(--vt-header-h);
  display: flex; align-items: center; gap: 34px;
  max-width: var(--vt-maxw); margin-inline: auto;
}
.vt-brand { display: inline-flex; align-items: center; gap: 12px; flex: none; }
/* Inline logo lockup (matches the approved design mockup exactly). */
.vt-logo { display: inline-flex; align-items: center; gap: 12px; }
.vt-logo--footer { gap: 11px; }
.vt-logo__icon { display: flex; align-items: center; justify-content: center; flex: none; }
.vt-logo__word { font-family: var(--vt-font-display); font-weight: 900; letter-spacing: .07em; display: flex; align-items: center; line-height: 1; }
.vt-logo__e { display: inline-flex; margin: 0 .04em 0 .1em; }
.vt-logo--footer .vt-logo__e { margin: 0 .04em 0 .08em; }
.vt-logo svg { display: block; }

.vt-nav { display: flex; align-items: center; gap: 28px; }
.vt-nav a, .vt-nav > span {
  font-family: var(--vt-font-body); font-weight: var(--vt-w-semi); font-size: .9375rem;
  color: #2A2E38; cursor: pointer; white-space: nowrap;
}
.vt-nav a:hover { color: var(--vt-orange-deep); }

/* Programs dropdown */
.vt-drop { position: relative; }
.vt-drop__toggle { display: inline-flex; align-items: center; gap: 5px; background: none; border: none; font: inherit; color: inherit; cursor: pointer; padding: 0; }
.vt-drop__caret { font-size: 10px; color: var(--vt-muted); transition: transform .2s var(--vt-ease); }
.vt-drop__menu {
  position: absolute; top: calc(100% + 14px); left: 0;
  min-width: 240px; background: #fff;
  border: 1px solid var(--vt-stone); border-radius: 14px;
  box-shadow: var(--vt-shadow-lift);
  padding: 10px; display: none; flex-direction: column; gap: 2px;
}
/* Invisible hover bridge across the gap between toggle and menu, so the submenu
   doesn't close while the mouse travels down into it. */
.vt-drop__menu::before { content: ""; position: absolute; top: -16px; left: 0; right: 0; height: 16px; }
.vt-drop__menu a {
  padding: 10px 12px; border-radius: 9px; font-size: .9375rem; color: var(--vt-ink);
}
.vt-drop__menu a:hover { background: var(--vt-sand); color: var(--vt-orange-deep); }
.vt-drop__menu .vt-drop__all { color: var(--vt-orange-deep); font-weight: var(--vt-w-semi); }
.vt-drop[data-open="true"] .vt-drop__menu,
.vt-drop:hover .vt-drop__menu { display: flex; }
.vt-drop[data-open="true"] .vt-drop__caret { transform: rotate(180deg); }

.vt-header__cta { margin-left: auto; display: flex; align-items: center; gap: 22px; }
.vt-phone {
  font-family: var(--vt-font-display); font-weight: var(--vt-w-heavy);
  font-size: 1rem; color: var(--vt-carbon); letter-spacing: .01em; white-space: nowrap;
}
.vt-phone:hover { color: var(--vt-orange-deep); }
.vt-login { font-family: var(--vt-font-body); font-weight: var(--vt-w-semi); font-size: .8125rem; color: var(--vt-muted); white-space: nowrap; }
.vt-login:hover { color: var(--vt-ink); }

/* Hamburger (mobile) */
.vt-burger { display: none; flex-direction: column; gap: 4px; padding: 8px; background: none; border: none; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.vt-burger:hover, .vt-burger:focus, .vt-burger:active { background: none; box-shadow: none; }
.vt-burger:focus-visible { outline: 2px solid var(--vt-orange); outline-offset: 2px; }
.vt-burger span { width: 22px; height: 2px; background: var(--vt-ink); border-radius: 2px; transition: .2s var(--vt-ease); }

/* Mobile slide-down panel */
.vt-mobilenav { display: none; }

/* =========================================================================
   HERO
   ========================================================================= */
.vt-hero { position: relative; overflow: hidden; background: var(--vt-carbon); color: #fff; padding: clamp(2.5rem,1rem + 7vw,5.5rem) var(--vt-gutter) clamp(2.75rem,1.5rem + 5vw,4.75rem); } /* design: 88 / 64 / 76 */
.vt-hero__glow { position: absolute; right: -140px; top: -120px; width: 520px; height: 520px; border-radius: 50%; background: radial-gradient(circle, rgba(255,90,31,.20), transparent 62%); pointer-events: none; }
.vt-hero__inner { position: relative; max-width: 960px; margin-inline: auto; width: 100%; }
.vt-hero .vt-eyebrow { color: var(--vt-orange-hot); letter-spacing: .24em; }
.vt-hero h1 {
  font-family: var(--vt-font-display); font-weight: var(--vt-w-heavy);
  font-size: var(--vt-h1); line-height: 1.02; letter-spacing: -.02em; color: #fff;
}
.vt-hero__sub { margin-top: 24px; font-size: var(--vt-lead); line-height: 1.6; color: var(--vt-on-dark-soft); max-width: 720px; text-wrap: pretty; }
.vt-hero__actions { margin-top: 36px; display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }

/* =========================================================================
   TRUST MARQUEE
   ========================================================================= */
.vt-marquee { background: #fff; padding: 26px 0 24px; border-bottom: 1px solid var(--vt-stone); }
.vt-marquee__head { padding: 0 var(--vt-gutter); display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 18px; max-width: var(--vt-maxw); margin-inline: auto; }
.vt-marquee__label { font-family: var(--vt-font-body); font-weight: var(--vt-w-semi); font-size: .75rem; letter-spacing: .18em; text-transform: uppercase; color: var(--vt-muted); }
.vt-marquee__viewport { overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
          mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.vt-marquee__track { display: flex; align-items: center; gap: 14px; width: max-content; padding-left: 14px; animation: vt-marquee 46s linear infinite; }
.vt-marquee__viewport:hover .vt-marquee__track { animation-play-state: paused; }
.vt-chip {
  display: flex; align-items: center; justify-content: center; height: 84px; min-width: 168px; padding: 0 26px;
  background: #fff; border: 1px solid var(--vt-stone); border-radius: var(--vt-radius); flex: none;
}
/* Owned carrier logos come in two aspects — 480x480 squares and 300x180 wide marks.
   Landscape white tile with object-fit: contain and generous height headroom (52px logo
   in an 84px chip = 16px top/bottom), so neither aspect clips or touches the edges. */
.vt-chip img { max-height: 52px; max-width: 140px; width: auto; height: auto; object-fit: contain; }
/* Text fallback for any carrier without a logo file (there shouldn't be any). */
.vt-chip span, .vt-chip .vt-ctile__name { font-family: var(--vt-font-display); font-weight: var(--vt-w-heavy); font-size: 1.125rem; letter-spacing: -.01em; white-space: nowrap; color: var(--vt-ink); }
@keyframes vt-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .vt-marquee__track { animation: none; flex-wrap: wrap; width: auto; justify-content: center; } }

/* =========================================================================
   POSITIONING
   ========================================================================= */
.vt-positioning h2 { font-size: var(--vt-h2); font-weight: var(--vt-w-heavy); line-height: 1.08; letter-spacing: -.01em; color: var(--vt-ink); max-width: 820px; }
.vt-positioning p { margin-top: 22px; font-size: var(--vt-lead); line-height: 1.7; color: var(--vt-ink-2); max-width: 880px; text-wrap: pretty; }

/* =========================================================================
   PROGRAMS GRID
   ========================================================================= */
.vt-grid { display: grid; gap: 22px; }
.vt-grid--3 { grid-template-columns: repeat(3, 1fr); }
.vt-grid--2 { grid-template-columns: repeat(2, 1fr); }
.vt-section-head { max-width: 820px; margin-bottom: 40px; }

.vt-pcard {
  background: #fff; border: 1px solid var(--vt-stone); border-radius: var(--vt-radius-lg);
  padding: 28px 26px; box-shadow: var(--vt-shadow-card);
  display: flex; flex-direction: column; min-height: 224px;
}
.vt-pcard--dark { background: var(--vt-carbon); border-color: var(--vt-carbon); color: #fff; }
.vt-pcard__top { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 16px; }
.vt-pcard__name { font-family: var(--vt-font-display); font-weight: var(--vt-w-heavy); font-size: 1.375rem; color: var(--vt-ink); }
.vt-pcard--dark .vt-pcard__name { color: #fff; }
.vt-pcard__desc { font-size: .9375rem; line-height: 1.6; color: var(--vt-ink-2); flex: 1; }
.vt-pcard--dark .vt-pcard__desc { color: var(--vt-on-dark-soft); }
.vt-pcard__link { margin-top: 20px; color: var(--vt-orange-deep); }
.vt-pcard--dark .vt-pcard__link { color: var(--vt-orange-hot); }
.vt-flag {
  font-family: var(--vt-font-body); font-weight: var(--vt-w-semi); font-size: .656rem;
  letter-spacing: .08em; text-transform: uppercase; padding: 5px 10px; border-radius: 999px; white-space: nowrap;
}
.vt-flag--hot { color: var(--vt-orange-deep); background: var(--vt-peach); }
.vt-flag--neutral { color: var(--vt-slate); background: #EFEEEA; }

/* =========================================================================
   THREE WAYS TO PARTNER (ladder)
   ========================================================================= */
/* Equal-height cards (not staggered) — all three tiers align top and bottom. */
.vt-ladder { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; align-items: stretch; }
.vt-tier {
  background: #fff; border: 1px solid var(--vt-stone); border-radius: var(--vt-radius-xl);
  padding: 34px 30px; box-shadow: var(--vt-shadow-soft); position: relative;
  display: flex; flex-direction: column;
}
.vt-tier--dark { background: var(--vt-carbon); border-color: var(--vt-carbon); color: #fff; }
.vt-tier__top { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 18px; }
.vt-tier__step { font-family: var(--vt-font-display); font-weight: var(--vt-w-black); font-size: .875rem; color: var(--vt-muted); letter-spacing: .02em; }
.vt-tier--dark .vt-tier__step { color: var(--vt-orange-hot); }
.vt-tier__name { font-family: var(--vt-font-display); font-weight: var(--vt-w-heavy); font-size: 1.4375rem; color: var(--vt-ink); }
.vt-tier--dark .vt-tier__name { color: #fff; }
.vt-tier__tagline { font-family: var(--vt-font-display); font-weight: var(--vt-w-heavy); font-size: .9375rem; color: var(--vt-slate); margin-top: 8px; }
.vt-tier--dark .vt-tier__tagline { color: var(--vt-orange-hot); }
.vt-tier__text { font-size: .9375rem; line-height: 1.62; color: var(--vt-slate); margin-top: 14px; flex: 1; }
.vt-tier--dark .vt-tier__text { color: var(--vt-on-dark-soft); }
.vt-tier__foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--vt-sand-line); }
.vt-tier--dark .vt-tier__foot { border-top-color: var(--vt-dark-rule-2); }
.vt-tier__pay { font-family: var(--vt-font-display); font-weight: var(--vt-w-black); font-size: 1.25rem; color: var(--vt-ink); }
.vt-tier--dark .vt-tier__pay { color: #fff; }
.vt-tier__link { color: var(--vt-orange-deep); }
.vt-tier--dark .vt-tier__link { color: var(--vt-orange-hot); }
.vt-chipbadge {
  font-family: var(--vt-font-body); font-weight: var(--vt-w-semi); font-size: .6875rem;
  letter-spacing: .1em; text-transform: uppercase; padding: 5px 11px; border-radius: 999px; white-space: nowrap;
}
.vt-chipbadge--neutral { color: var(--vt-slate); background: #EFEEEA; }
.vt-chipbadge--hot { color: var(--vt-orange-deep); background: var(--vt-peach); }
.vt-chipbadge--grad { color: #fff; background: var(--vt-grad-orange); }

.vt-straighttalk {
  margin-top: 30px; font-size: .875rem; line-height: 1.6; color: var(--vt-slate);
  background: #fff; border: 1px solid var(--vt-stone); border-left: 3px solid var(--vt-orange);
  border-radius: 10px; padding: 16px 20px; text-wrap: pretty;
}

/* =========================================================================
   HOW IT WORKS (numbered steps on carbon)
   ========================================================================= */
.vt-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
.vt-step { border-top: 2px solid var(--vt-orange); padding-top: 22px; }
.vt-step__n { font-family: var(--vt-font-display); font-weight: var(--vt-w-black); font-size: 2.75rem; color: var(--vt-orange); line-height: 1; }
.vt-step h3 { font-family: var(--vt-font-display); font-weight: var(--vt-w-heavy); font-size: 1.375rem; margin-top: 10px; color: #fff; }
.vt-step p { font-size: .9375rem; line-height: 1.65; color: var(--vt-on-dark-soft); margin-top: 12px; }

/* =========================================================================
   WHY VOMTEL
   ========================================================================= */
.vt-why { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; }
.vt-why__item { background: #fff; border: 1px solid var(--vt-stone); border-radius: var(--vt-radius-lg); padding: 28px 30px; display: flex; gap: 18px; }
.vt-why__dot { width: 10px; height: 10px; border-radius: 3px; background: var(--vt-orange); margin-top: 8px; flex: none; }
.vt-why__item h3 { font-family: var(--vt-font-display); font-weight: var(--vt-w-heavy); font-size: 1.1875rem; color: var(--vt-ink); }
.vt-why__item p { font-size: .9375rem; line-height: 1.62; color: var(--vt-ink-2); margin-top: 8px; }

/* =========================================================================
   TESTIMONIALS
   ========================================================================= */
.vt-quote { background: #fff; border: 1px solid var(--vt-stone); border-radius: var(--vt-radius-lg); padding: 30px 28px; display: flex; flex-direction: column; }
.vt-quote__mark { font-family: var(--vt-font-display); font-weight: var(--vt-w-black); font-size: 2.125rem; color: var(--vt-orange); line-height: .6; }
.vt-quote__text { font-size: 1rem; line-height: 1.6; color: var(--vt-ink-2); margin-top: 10px; flex: 1; font-style: italic; }
.vt-quote__foot { display: flex; align-items: center; gap: 12px; margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--vt-sand-line); }
.vt-quote__avatar { width: 42px; height: 42px; border-radius: 50%; background: var(--vt-sand); border: 1px solid var(--vt-stone); display: flex; align-items: center; justify-content: center; font-family: var(--vt-font-display); font-weight: var(--vt-w-heavy); font-size: .9375rem; color: var(--vt-muted); flex: none; }
.vt-quote__name { font-family: var(--vt-font-body); font-weight: var(--vt-w-semi); font-size: .875rem; color: var(--vt-ink); }
.vt-quote__store { font-family: var(--vt-font-body); font-size: .8125rem; color: var(--vt-muted); }
.vt-note { font-family: var(--vt-font-body); font-size: .75rem; color: var(--vt-caption); margin-top: 16px; }

/* =========================================================================
   BLOG TEASER
   ========================================================================= */
.vt-blogteaser__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 40px; }
.vt-post { background: #fff; border: 1px solid var(--vt-stone); border-radius: var(--vt-radius-lg); overflow: hidden; }
.vt-post__thumb { aspect-ratio: 16 / 9; background: repeating-linear-gradient(135deg, var(--vt-sand), var(--vt-sand) 11px, var(--vt-sand-line) 11px, var(--vt-sand-line) 22px); display: flex; align-items: flex-end; padding: 12px; }
.vt-post__thumb span { font-family: var(--vt-font-body); font-size: .6875rem; color: var(--vt-caption); background: #fff; padding: 3px 8px; border-radius: 6px; }
.vt-post__body { padding: 22px 24px; }
.vt-post__tag { font-family: var(--vt-font-body); font-weight: var(--vt-w-semi); font-size: .6875rem; letter-spacing: .1em; text-transform: uppercase; color: var(--vt-orange); }
.vt-post h3 { font-family: var(--vt-font-display); font-weight: var(--vt-w-heavy); font-size: 1.125rem; color: var(--vt-ink); margin-top: 10px; line-height: 1.25; }
.vt-post__meta { font-family: var(--vt-font-body); font-size: .8125rem; color: var(--vt-muted); margin-top: 12px; }

/* =========================================================================
   CLOSING CTA BAND
   ========================================================================= */
.vt-cta { background: var(--vt-grad-orange); padding: clamp(3rem,1.5rem + 5vw,5rem) var(--vt-gutter); position: relative; overflow: hidden; } /* design: 80 */
.vt-cta__blob { position: absolute; left: -80px; bottom: -160px; width: 420px; height: 420px; border-radius: 50%; background: rgba(255,255,255,.10); pointer-events: none; }
.vt-cta__inner { position: relative; max-width: 900px; margin-inline: auto; width: 100%; }
.vt-cta h2 { font-family: var(--vt-font-display); font-weight: var(--vt-w-black); font-size: var(--vt-cta-h2); line-height: 1.04; letter-spacing: -.01em; color: #fff; }
.vt-cta__sub { margin-top: 18px; font-size: var(--vt-lead); line-height: 1.6; color: #FFE9E0; max-width: 640px; }
.vt-cta__actions { margin-top: 34px; display: flex; align-items: center; gap: 22px; flex-wrap: wrap; }
.vt-cta__call { font-family: var(--vt-font-body); font-weight: var(--vt-w-semi); font-size: 1rem; color: #fff; }
.vt-cta__call a { font-family: var(--vt-font-display); font-weight: var(--vt-w-heavy); }

/* =========================================================================
   FOOTER
   ========================================================================= */
.vt-footer { background: var(--vt-carbon); color: var(--vt-on-dark-soft); padding: 64px var(--vt-gutter) 40px; }
.vt-footer__grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1.2fr; gap: 40px; max-width: var(--vt-maxw); margin-inline: auto; }
.vt-footer__brand { display: flex; align-items: center; gap: 11px; margin-bottom: 18px; }
.vt-footer__brand .vt-logo { flex: none; }
.vt-footer__pos { font-size: .875rem; line-height: 1.6; max-width: 340px; color: var(--vt-on-dark-mute); }
.vt-footer__contact { margin-top: 18px; font-size: .875rem; line-height: 1.9; }
.vt-footer__contact a { font-family: var(--vt-font-display); font-weight: var(--vt-w-heavy); color: #fff; }
.vt-footer__contact span { color: var(--vt-on-dark-mute); }
.vt-footer__coltitle { font-family: var(--vt-font-body); font-weight: var(--vt-w-semi); font-size: .75rem; letter-spacing: .14em; text-transform: uppercase; color: var(--vt-on-dark-label); margin-bottom: 16px; }
.vt-footer__links { display: flex; flex-direction: column; gap: 11px; font-size: .875rem; color: var(--vt-on-dark-soft); }
.vt-footer__links a:hover { color: #fff; }
.vt-footer__social { display: flex; gap: 10px; margin-top: 20px; }
.vt-footer__social a { width: 34px; height: 34px; border-radius: 8px; background: var(--vt-on-dark-chip); display: flex; align-items: center; justify-content: center; font-family: var(--vt-font-display); font-weight: var(--vt-w-heavy); font-size: .75rem; color: var(--vt-on-dark-mute); }
.vt-footer__social a:hover { color: #fff; }
.vt-footer__bottom { border-top: 1px solid var(--vt-on-dark-rule); margin-top: 44px; padding-top: 24px; font-size: .8125rem; color: var(--vt-on-dark-label); max-width: var(--vt-maxw); margin-inline: auto; }

/* =========================================================================
   INTERIOR PAGE SYSTEM (partner pages, spectrum, support, etc.)
   ========================================================================= */
/* Breadcrumbs */
.vt-crumbs { padding: 16px var(--vt-gutter) 0; max-width: var(--vt-content); margin-inline: auto; }
.vt-crumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; font-size: .8125rem; color: var(--vt-muted); }
.vt-crumbs li { display: inline-flex; align-items: center; gap: 8px; }
.vt-crumbs li::after { content: "/"; color: var(--vt-stone); }
.vt-crumbs li:last-child::after { content: ""; }
.vt-crumbs a:hover { color: var(--vt-orange-deep); }
.vt-crumbs [aria-current="page"] { color: var(--vt-slate); }

/* Availability strip — "how you can sell it" row under a carrier-page hero */
.vt-availstrip { background: var(--vt-sand); border-bottom: 1px solid var(--vt-stone); padding: 16px var(--vt-gutter); }
.vt-availstrip__inner { max-width: var(--vt-content); margin-inline: auto; display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; }
.vt-availstrip__label { font-family: var(--vt-font-display); font-weight: var(--vt-w-heavy); font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; color: var(--vt-slate); }
.vt-availstrip__items { display: flex; flex-wrap: wrap; gap: 10px; }
.vt-avail { display: inline-flex; align-items: center; gap: 8px; font-family: var(--vt-font-body); font-weight: var(--vt-w-semi); font-size: .9rem; padding: 7px 14px; border-radius: 999px; border: 1px solid var(--vt-stone); }
.vt-avail--on { color: var(--vt-ink); background: #fff; }
.vt-avail--on::before { content: "✓"; color: #1E7A38; font-weight: var(--vt-w-heavy); }
.vt-avail--on:hover { border-color: var(--vt-orange); color: var(--vt-orange-deep); }
.vt-avail--off { color: var(--vt-muted); background: transparent; border-style: dashed; }
.vt-avail--off::before { content: "—"; color: var(--vt-muted); }
.vt-avail em { font-style: normal; font-weight: var(--vt-w-regular); color: var(--vt-muted); font-size: .82rem; }

/* Page hero (interior) — dark, like homepage hero but tighter */
.vt-page-hero { position: relative; overflow: hidden; background: var(--vt-carbon); color: #fff; padding: clamp(2.5rem,1.5rem + 5vw,4.5rem) var(--vt-gutter) clamp(2.5rem,1.5rem + 4vw,4rem); }
.vt-page-hero__glow { position: absolute; right: -160px; top: -140px; width: 480px; height: 480px; border-radius: 50%; background: radial-gradient(circle, rgba(255,90,31,.18), transparent 62%); pointer-events: none; }
.vt-page-hero__inner { position: relative; max-width: var(--vt-content); margin-inline: auto; }
.vt-page-hero .vt-eyebrow { color: var(--vt-orange-hot); }
.vt-page-hero h1 { font-family: var(--vt-font-display); font-weight: var(--vt-w-heavy); font-size: clamp(2rem,1.3rem + 3vw,3.25rem); line-height: 1.05; letter-spacing: -.02em; color: #fff; max-width: 900px; }
.vt-page-hero__intro { margin-top: 22px; max-width: 760px; }
.vt-page-hero__intro p { font-size: var(--vt-lead); line-height: 1.6; color: var(--vt-on-dark-soft); }
.vt-page-hero__intro p + p { margin-top: 16px; }
.vt-page-hero__intro strong { color: #fff; }
.vt-page-hero__actions { margin-top: 30px; display: flex; gap: 16px; flex-wrap: wrap; }

/* =========================================================================
   CARRIER PAGE v2 — light 2-column hero + dark identity card, onboarding
   ========================================================================= */
.vt-chero { background: var(--vt-paper); padding: clamp(1.5rem,1rem + 2vw,2.125rem) var(--vt-gutter) clamp(3rem,2rem + 3vw,4.5rem); } /* design carrier hero: 34 / 64 / 72 */
.vt-chero__grid { max-width: var(--vt-content); margin-inline: auto; display: grid; grid-template-columns: 1.35fr .95fr; gap: 48px; align-items: center; }
.vt-chero__eyebrow { display: inline-flex; align-items: center; gap: 10px; margin-bottom: 20px; }
.vt-chero__eyebrow .vt-eyebrow { margin: 0; }
.vt-chero__flag { font-family: var(--vt-font-body); font-weight: var(--vt-w-semi); font-size: .656rem; letter-spacing: .08em; text-transform: uppercase; color: var(--vt-orange-deep); background: var(--vt-peach); padding: 5px 10px; border-radius: 999px; }
.vt-chero h1 { font-family: var(--vt-font-display); font-weight: var(--vt-w-heavy); font-size: clamp(2rem,1.3rem + 2.4vw,3.25rem); line-height: 1.04; letter-spacing: -.02em; color: var(--vt-ink); }
.vt-chero__summary { margin-top: 20px; font-size: var(--vt-lead); line-height: 1.65; color: var(--vt-ink-2); max-width: 600px; text-wrap: pretty; }
.vt-chero__actions { margin-top: 30px; display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
/* dark identity card */
.vt-chero__card { background: var(--vt-carbon); border-radius: var(--vt-radius-xl); padding: 40px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 22px; min-height: 280px; }
.vt-chero__brand { width: 100%; height: 96px; border-radius: var(--vt-radius); display: flex; align-items: center; justify-content: center; font-family: var(--vt-font-display); font-weight: var(--vt-w-heavy); font-size: 2rem; letter-spacing: -.01em; color: #fff; }
.vt-chero__logo { width: 100%; min-height: 168px; border-radius: var(--vt-radius); background: #fff; display: flex; align-items: center; justify-content: center; padding: 24px 32px; }
.vt-chero__logo img { max-height: 120px; max-width: 100%; width: auto; height: auto; object-fit: contain; }
.vt-chero__pills { display: flex; gap: 10px; width: 100%; }
.vt-chero__pill { flex: 1; text-align: center; font-family: var(--vt-font-body); font-weight: var(--vt-w-semi); font-size: .75rem; color: var(--vt-on-dark-soft); background: var(--vt-on-dark-chip); border-radius: 9px; padding: 11px 6px; }
.vt-chero__note { font-family: var(--vt-font-body); font-size: .6875rem; color: var(--vt-on-dark-label); text-align: center; }
/* Carrier hero when the identity card is moved out (full-width text) */
.vt-chero--solo .vt-chero__grid { grid-template-columns: 1fr; }
/* Carrier identity / logo card — sits below the "How you can sell it" strip */
.vt-cid__card { max-width: 440px; margin-inline: auto; background: #fff; border: 1px solid var(--vt-stone); border-radius: var(--vt-radius-xl); padding: 34px 32px; display: flex; flex-direction: column; align-items: center; gap: 18px; }
.vt-cid__logo { max-height: 96px; max-width: 280px; width: auto; height: auto; object-fit: contain; }
.vt-cid__brand { width: 100%; min-height: 96px; border-radius: var(--vt-radius); display: flex; align-items: center; justify-content: center; color: #fff; font-family: var(--vt-font-display); font-weight: var(--vt-w-heavy); font-size: 2rem; letter-spacing: -.01em; }
.vt-cid__pills { display: flex; gap: 10px; flex-wrap: wrap; justify-content: center; }
.vt-cid__pill { font-family: var(--vt-font-body); font-weight: var(--vt-w-semi); font-size: .8125rem; color: var(--vt-slate); background: var(--vt-sand); border: 1px solid var(--vt-sand-line); border-radius: 9px; padding: 8px 14px; }
/* Anchor offset so #apply scrolls clear of the sticky header */
#apply { scroll-margin-top: 96px; }

/* Onboarding timeline */
.vt-onboard { max-width: var(--vt-content); margin-inline: auto; display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; }
.vt-onboard__item { padding: 0 22px 0 0; }
.vt-onboard__dotline { display: flex; align-items: center; gap: 10px; margin-bottom: 16px; }
.vt-onboard__dot { width: 14px; height: 14px; border-radius: 50%; background: var(--vt-orange); flex: none; }
.vt-onboard__line { flex: 1; height: 2px; background: var(--vt-sand-line); }
.vt-onboard__week { font-family: var(--vt-font-body); font-weight: var(--vt-w-semi); font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; color: var(--vt-orange); margin-bottom: 8px; }
.vt-onboard__item h3 { font-family: var(--vt-font-display); font-weight: var(--vt-w-heavy); font-size: 1.125rem; color: var(--vt-ink); }
.vt-onboard__item p { font-size: .875rem; line-height: 1.6; color: var(--vt-ink-2); margin-top: 10px; }

@media (max-width: 900px) {
  .vt-chero__grid { grid-template-columns: 1fr; gap: 30px; }
  .vt-chero__card { order: -1; }
  .vt-onboard { grid-template-columns: 1fr 1fr; gap: 28px 0; }
}
@media (max-width: 560px) {
  .vt-onboard { grid-template-columns: 1fr; }
  .vt-onboard__item { padding-right: 0; }
}

/* Prose sections */
.vt-prose { max-width: var(--vt-content); margin-inline: auto; }
.vt-prose h2 { font-size: var(--vt-h2-sm); font-weight: var(--vt-w-heavy); line-height: 1.1; letter-spacing: -.01em; color: var(--vt-ink); max-width: 900px; }
.vt-section--carbon .vt-prose h2 { color: #fff; }
.vt-prose h3 { font-family: var(--vt-font-display); font-weight: var(--vt-w-heavy); font-size: 1.1875rem; color: var(--vt-ink); margin-top: 24px; }
.vt-prose p { font-size: 1.0625rem; line-height: 1.7; color: var(--vt-ink-2); max-width: 820px; margin-top: 18px; text-wrap: pretty; }
.vt-prose h2 + p { margin-top: 18px; }
.vt-prose strong { color: var(--vt-ink); font-weight: var(--vt-w-bold); }
.vt-prose a { color: var(--vt-orange-deep); font-weight: var(--vt-w-semi); }
.vt-prose ul, .vt-prose ol { max-width: 820px; margin-top: 18px; padding-left: 0; list-style: none; display: flex; flex-direction: column; gap: 14px; }
.vt-prose ol { counter-reset: vt; }
.vt-prose li { position: relative; padding-left: 40px; font-size: 1.0625rem; line-height: 1.65; color: var(--vt-ink-2); }
.vt-prose ul li::before { content: ""; position: absolute; left: 6px; top: 10px; width: 9px; height: 9px; border-radius: 3px; background: var(--vt-orange); }
.vt-prose ol li { counter-increment: vt; }
.vt-prose ol li::before { content: counter(vt); position: absolute; left: 0; top: -2px; width: 26px; height: 26px; border-radius: 8px; background: var(--vt-peach); color: var(--vt-orange-deep); font-family: var(--vt-font-display); font-weight: var(--vt-w-heavy); font-size: .875rem; display: flex; align-items: center; justify-content: center; }
.vt-prose li strong { color: var(--vt-ink); }

/* Inline "straight talk" callout reused on interior pages */
.vt-prose .vt-callout { background: #fff; border: 1px solid var(--vt-stone); border-left: 3px solid var(--vt-orange); border-radius: 10px; padding: 18px 22px; margin-top: 22px; max-width: 820px; }
.vt-prose .vt-callout p { margin-top: 0; font-size: 1rem; color: var(--vt-slate); }
.vt-section--sand .vt-prose .vt-callout { background: var(--vt-paper); }

/* [BRACKETED] visible placeholder — flags copy needing Julio's input */
.vt-todo { display: inline; background: #FFF4CE; color: #7A5B00; border: 1px dashed #E0B84B; border-radius: 5px; padding: 1px 7px; font-size: .95em; font-weight: 600; }
.vt-todo::before { content: "⚑ "; }

/* FAQ accordion — native <details> so it works without JS */
.vt-faq { max-width: 820px; margin-top: 26px; display: flex; flex-direction: column; gap: 12px; }
.vt-faq details { background: #fff; border: 1px solid var(--vt-stone); border-radius: 12px; overflow: hidden; }
.vt-section--sand .vt-faq details { background: var(--vt-paper); }
.vt-faq summary { list-style: none; cursor: pointer; padding: 20px 24px; display: flex; align-items: center; justify-content: space-between; gap: 16px; font-family: var(--vt-font-display); font-weight: var(--vt-w-heavy); font-size: 1.0625rem; color: var(--vt-ink); }
.vt-faq summary::-webkit-details-marker { display: none; }
.vt-faq summary::after { content: "+"; font-family: var(--vt-font-display); font-weight: var(--vt-w-heavy); font-size: 1.5rem; color: var(--vt-orange); line-height: 1; flex: none; }
.vt-faq details[open] summary::after { content: "–"; }
.vt-faq summary:focus-visible { outline: 3px solid var(--vt-orange-hot); outline-offset: -3px; }
.vt-faq__a { padding: 0 24px 22px; }
.vt-faq__a p { font-size: 1.0625rem; line-height: 1.65; color: var(--vt-ink-2); margin: 0; }
.vt-faq__a p + p { margin-top: 12px; }
.vt-faq__a a { color: var(--vt-orange-deep); font-weight: var(--vt-w-semi); }

/* Generic content container for plain WP pages (GeneratePress default template) */
.vt-site .entry-content { max-width: var(--vt-content); margin: 0 auto; padding: var(--vt-section-y) var(--vt-gutter); }

/* Section meta line under H2 (e.g., product tables intro) */
.vt-prose__lead { font-size: var(--vt-lead); color: var(--vt-slate); margin-top: 14px; max-width: 820px; }

/* Comparison / data tables */
.vt-tablewrap { max-width: var(--vt-content); margin: 22px auto 0; overflow-x: auto; }
.vt-table { width: 100%; border-collapse: collapse; font-size: .95rem; min-width: 640px; }
.vt-table th, .vt-table td { text-align: left; padding: 14px 16px; border-bottom: 1px solid var(--vt-stone); vertical-align: top; }
.vt-table thead th { font-family: var(--vt-font-display); font-weight: var(--vt-w-heavy); font-size: .8125rem; letter-spacing: .04em; text-transform: uppercase; color: var(--vt-slate); background: var(--vt-sand); }
.vt-table tbody tr:hover { background: var(--vt-sand); }
.vt-table td strong { color: var(--vt-ink); }
.vt-badge { display: inline-block; font-family: var(--vt-font-body); font-weight: var(--vt-w-semi); font-size: .72rem; letter-spacing: .04em; padding: 3px 9px; border-radius: 999px; white-space: nowrap; }
.vt-badge--yes { background: #E9F6EC; color: #1E7A38; }
.vt-badge--ref { background: var(--vt-peach); color: var(--vt-orange-deep); }
.vt-badge--no { background: transparent; color: var(--vt-stone); }
.vt-table td:first-child, .vt-table th:first-child { position: sticky; left: 0; background: #fff; z-index: 1; font-family: var(--vt-font-display); font-weight: var(--vt-w-heavy); color: var(--vt-ink); }
.vt-table thead th:first-child { background: var(--vt-sand); }
.vt-table tbody tr:hover td:first-child { background: var(--vt-sand); }
.vt-refonly { display: inline-block; margin-left: 8px; font-family: var(--vt-font-body); font-weight: var(--vt-w-semi); font-size: .66rem; letter-spacing: .04em; text-transform: uppercase; color: var(--vt-orange-deep); background: var(--vt-peach); padding: 2px 8px; border-radius: 999px; vertical-align: middle; }
.vt-cell-center { text-align: center; }

/* Carriers search bar */
.vt-search { max-width: var(--vt-content); margin: 22px auto 0; }
.vt-search input { width: 100%; max-width: 420px; font-family: var(--vt-font-body); font-size: 1rem; padding: 12px 16px; border: 1px solid var(--vt-stone); border-radius: 10px; background: #fff; }
.vt-search input:focus { outline: none; border-color: var(--vt-orange); box-shadow: 0 0 0 3px rgba(255,90,31,.15); }
.vt-search__count { font-size: .875rem; color: var(--vt-muted); margin-top: 8px; }
.vt-legend { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 18px; font-size: .8125rem; color: var(--vt-slate); }
.vt-legend span { display: inline-flex; align-items: center; gap: 7px; }

/* Carrier logo-tile grid (visual index) */
.vt-cgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(155px, 1fr)); gap: 14px; margin-top: 26px; max-width: var(--vt-content); }
.vt-ctile { display: flex; align-items: center; justify-content: center; text-align: center; min-height: 128px; padding: 16px 20px; background: #fff; border: 1px solid var(--vt-stone); border-radius: 14px; }
/* logo.dev art is a 480x480 square with built-in whitespace, so size generously
   (height-driven; width caps it on the rare wide mark). object-fit keeps it contained. */
.vt-ctile img { max-height: 84px; max-width: 100%; width: auto; height: auto; object-fit: contain; }
.vt-ctile__name { font-family: var(--vt-font-display); font-weight: var(--vt-w-heavy); font-size: 1.0625rem; letter-spacing: -.01em; color: var(--vt-ink); }
.vt-ctile--live { transition: transform .15s var(--vt-ease), border-color .15s var(--vt-ease), box-shadow .15s var(--vt-ease); }
.vt-ctile--live:hover { border-color: var(--vt-orange); transform: translateY(-2px); box-shadow: var(--vt-shadow-soft); }
.vt-ctile--live:hover .vt-ctile__name { color: var(--vt-orange-deep); }
.vt-ctile--soon { opacity: .5; filter: grayscale(1); }
.vt-ctile--soon .vt-ctile__name { color: var(--vt-slate); }
.vt-cgrid__legend { display: flex; flex-wrap: wrap; gap: 18px; margin-top: 18px; font-size: .8125rem; color: var(--vt-slate); }
.vt-cgrid__swatch { display: inline-block; width: 26px; height: 18px; border-radius: 5px; border: 1px solid var(--vt-stone); vertical-align: middle; margin-right: 7px; }
.vt-cgrid__swatch--soon { opacity: .5; filter: grayscale(1); background: var(--vt-sand); }

/* =========================================================================
   BLOG — article + archive
   ========================================================================= */
.vt-article { max-width: 760px; margin-inline: auto; padding: var(--vt-section-y) var(--vt-gutter); }
.vt-article__head { margin-bottom: 30px; }
.vt-article__cat { font-family: var(--vt-font-body); font-weight: var(--vt-w-semi); font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; color: var(--vt-orange); }
.vt-article h1 { font-family: var(--vt-font-display); font-weight: var(--vt-w-heavy); font-size: clamp(2rem,1.3rem + 2.6vw,3rem); line-height: 1.08; letter-spacing: -.02em; color: var(--vt-ink); margin-top: 12px; }
.vt-byline { display: flex; align-items: center; gap: 12px; margin-top: 20px; font-size: .9375rem; color: var(--vt-slate); }
.vt-byline__avatar { width: 40px; height: 40px; border-radius: 50%; background: var(--vt-sand); border: 1px solid var(--vt-stone); display: flex; align-items: center; justify-content: center; font-family: var(--vt-font-display); font-weight: var(--vt-w-heavy); color: var(--vt-muted); flex: none; }
.vt-byline strong { color: var(--vt-ink); font-weight: var(--vt-w-semi); }
.vt-article__hero { margin: 26px 0; border-radius: var(--vt-radius-lg); overflow: hidden; border: 1px solid var(--vt-stone); }
.vt-article__hero img { width: 100%; display: block; }

/* TOC */
.vt-toc { background: var(--vt-sand); border: 1px solid var(--vt-stone); border-radius: var(--vt-radius); padding: 20px 24px; margin: 0 0 30px; }
.vt-toc__title { font-family: var(--vt-font-display); font-weight: var(--vt-w-heavy); font-size: .8125rem; letter-spacing: .08em; text-transform: uppercase; color: var(--vt-slate); margin-bottom: 10px; }
.vt-toc ol { margin: 0; padding-left: 20px; display: flex; flex-direction: column; gap: 7px; }
.vt-toc a { color: var(--vt-ink-2); font-size: .9375rem; }
.vt-toc a:hover { color: var(--vt-orange-deep); }

/* Entry content prose */
.vt-entry { font-size: 1.0625rem; line-height: 1.75; color: var(--vt-ink-2); }
.vt-entry > * + * { margin-top: 22px; }
.vt-entry h2 { font-family: var(--vt-font-display); font-weight: var(--vt-w-heavy); font-size: 1.75rem; line-height: 1.2; color: var(--vt-ink); margin-top: 42px; letter-spacing: -.01em; scroll-margin-top: calc(var(--vt-header-h) + 16px); }
.vt-entry h3 { font-family: var(--vt-font-display); font-weight: var(--vt-w-heavy); font-size: 1.3125rem; color: var(--vt-ink); margin-top: 30px; scroll-margin-top: calc(var(--vt-header-h) + 16px); }
.vt-entry a { color: var(--vt-orange-deep); font-weight: var(--vt-w-semi); }
.vt-entry ul, .vt-entry ol { padding-left: 24px; display: flex; flex-direction: column; gap: 10px; }
.vt-entry img { border-radius: var(--vt-radius); }
.vt-entry blockquote { border-left: 3px solid var(--vt-orange); padding: 6px 0 6px 20px; margin-left: 0; color: var(--vt-ink); font-size: 1.1875rem; font-style: italic; }
.vt-entry strong { color: var(--vt-ink); }
.vt-entry code { background: var(--vt-sand); padding: 2px 6px; border-radius: 5px; font-size: .9em; }

/* In-content CTA box (mid-article) */
.vt-ctabox { background: var(--vt-carbon); color: #fff; border-radius: var(--vt-radius-lg); padding: 28px 30px; margin: 34px 0; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 18px; }
.vt-ctabox p { margin: 0; font-family: var(--vt-font-display); font-weight: var(--vt-w-heavy); font-size: 1.25rem; color: #fff; max-width: 420px; }

/* Related posts */
.vt-related { max-width: 1120px; margin: 0 auto; padding: 0 var(--vt-gutter) var(--vt-section-y); }
.vt-related h2 { font-family: var(--vt-font-display); font-weight: var(--vt-w-heavy); font-size: 1.5rem; color: var(--vt-ink); margin-bottom: 24px; }

/* Archive / blog index */
.vt-archive { max-width: 1120px; margin-inline: auto; padding: var(--vt-section-y) var(--vt-gutter); }
.vt-pagination { display: flex; gap: 10px; justify-content: center; margin-top: 40px; }
.vt-pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 42px; height: 42px; padding: 0 12px; border: 1px solid var(--vt-stone); border-radius: 9px; font-family: var(--vt-font-body); font-weight: var(--vt-w-semi); color: var(--vt-ink); background: #fff; }
.vt-pagination .page-numbers.current { background: var(--vt-orange); color: #fff; border-color: var(--vt-orange); }
.vt-pagination a.page-numbers:hover { border-color: var(--vt-orange); color: var(--vt-orange-deep); }

@media (max-width: 620px) {
  .vt-ctabox { flex-direction: column; align-items: flex-start; }
}

/* =========================================================================
   FORMS (Become a Dealer + Spectrum Retail Waitlist)
   ========================================================================= */
/* Side-by-side benefits + form (Become a Dealer) */
.vt-split { max-width: var(--vt-content); margin-inline: auto; display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 1rem + 3vw, 4rem); align-items: start; }
.vt-split__col > h2 { font-size: var(--vt-h2-sm); font-weight: var(--vt-w-heavy); line-height: 1.1; letter-spacing: -.01em; color: var(--vt-ink); }
.vt-split .vt-formwrap { margin-top: 0; max-width: none; }
@media (max-width: 860px) { .vt-split { grid-template-columns: 1fr; gap: 2.5rem; } }

.vt-formwrap { max-width: 720px; margin-top: 26px; }
.vt-form { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; background: #fff; border: 1px solid var(--vt-stone); border-radius: var(--vt-radius-lg); padding: 30px; box-shadow: var(--vt-shadow-soft); }
.vt-section--sand .vt-form { background: var(--vt-paper); }
.vt-field { display: flex; flex-direction: column; gap: 7px; }
.vt-field--full, .vt-form > .vt-btn { grid-column: 1 / -1; }
.vt-field label, .vt-field legend { font-family: var(--vt-font-body); font-weight: var(--vt-w-semi); font-size: .875rem; color: var(--vt-ink); padding: 0; }
.vt-req { color: var(--vt-orange); }
.vt-field input, .vt-field select, .vt-field textarea {
  font-family: var(--vt-font-body); font-size: 1rem; color: var(--vt-ink);
  background: var(--vt-paper); border: 1px solid var(--vt-stone); border-radius: 9px;
  padding: 12px 14px; width: 100%;
}
.vt-section--sand .vt-field input, .vt-section--sand .vt-field select, .vt-section--sand .vt-field textarea { background: #fff; }
.vt-field input:focus, .vt-field select:focus, .vt-field textarea:focus { outline: none; border-color: var(--vt-orange); box-shadow: 0 0 0 3px rgba(255,90,31,.15); }
.vt-field textarea { resize: vertical; }
.vt-field--half { grid-column: span 1; }

fieldset.vt-field { border: none; margin: 0; padding: 0; }
.vt-checkgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px 16px; margin-top: 4px; }
.vt-check { display: flex; align-items: center; gap: 9px; font-family: var(--vt-font-body); font-weight: var(--vt-w-regular); font-size: .9375rem; color: var(--vt-ink-2); cursor: pointer; }
.vt-check input { width: 18px; height: 18px; accent-color: var(--vt-orange); flex: none; }

.vt-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.vt-form-success {
  grid-column: 1 / -1; background: #E9F6EC; border: 1px solid #B7E0C1; border-left: 3px solid #1E7A38;
  color: #1E5B2E; border-radius: 10px; padding: 16px 20px; margin-bottom: 22px; font-size: 1rem; line-height: 1.5;
}
.vt-form-success strong { color: #1E5B2E; }

@media (max-width: 620px) {
  .vt-form { grid-template-columns: 1fr; padding: 22px; }
  .vt-field--half { grid-column: 1 / -1; }
  .vt-checkgrid { grid-template-columns: 1fr 1fr; }
}

/* =========================================================================
   STICKY MOBILE [Call][Apply] BAR
   ========================================================================= */
.vt-mobilebar { display: none; }

/* =========================================================================
   RESPONSIVE
   ========================================================================= */
@media (max-width: 1024px) {
  .vt-grid--3, .vt-ladder, .vt-steps { grid-template-columns: repeat(2, 1fr); }
  .vt-ladder { align-items: stretch; }
  .vt-footer__grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 860px) {
  /* Collapse desktop nav; show hamburger */
  .vt-nav, .vt-header__cta .vt-phone, .vt-header__cta .vt-login { display: none; }
  .vt-burger { display: flex; }
  .vt-header__bar { gap: 16px; }
  .vt-header__cta { gap: 12px; }

  /* Mobile nav panel */
  .vt-mobilenav {
    display: block; max-height: 0; overflow: hidden;
    background: #fff; border-top: 1px solid var(--vt-stone);
    transition: max-height .28s var(--vt-ease);
  }
  .vt-mobilenav[data-open="true"] { max-height: 80vh; overflow-y: auto; }
  .vt-mobilenav__inner { padding: 12px var(--vt-gutter) 20px; display: flex; flex-direction: column; gap: 4px; }
  .vt-mobilenav a { padding: 12px 4px; font-family: var(--vt-font-body); font-weight: var(--vt-w-semi); font-size: 1rem; color: var(--vt-ink); border-bottom: 1px solid var(--vt-sand-line); }
  .vt-mobilenav__group { font-size: .75rem; letter-spacing: .14em; text-transform: uppercase; color: var(--vt-muted); padding: 14px 4px 4px; }
  .vt-mobilenav__phone { color: var(--vt-orange-deep) !important; font-family: var(--vt-font-display) !important; font-weight: 800 !important; }

  /* Show sticky mobile action bar; keep content clear of it */
  .vt-mobilebar {
    display: flex; gap: 12px; position: fixed; left: 0; right: 0; bottom: 0; z-index: 60;
    background: rgba(16,16,20,.96); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
    border-top: 1px solid var(--vt-dark-rule-2); padding: 12px 16px;
  }
  .vt-mobilebar__call { flex: 1; display: flex; align-items: center; justify-content: center; gap: 8px; font-family: var(--vt-font-display); font-weight: var(--vt-w-heavy); font-size: .9375rem; color: #fff; background: var(--vt-on-dark-chip); border-radius: var(--vt-radius-btn); padding: 15px; }
  .vt-mobilebar__apply { flex: 1.6; }
  body.vt { padding-bottom: 74px; } /* room for the fixed bar */
}

@media (max-width: 620px) {
  .vt-grid--3, .vt-grid--2, .vt-ladder, .vt-steps, .vt-why { grid-template-columns: 1fr; }
  .vt-footer__grid { grid-template-columns: 1fr; gap: 28px; }
  .vt-hero__actions .vt-btn, .vt-hero__actions .vt-link { width: 100%; }
  .vt-blogteaser__head { flex-direction: column; align-items: flex-start; gap: 16px; }
}
