/* =============================================================
   SERVICOM — Aurora Noir Design System
   Dark glass, aurora-gradient, premium-tech identity.
   ============================================================= */
@view-transition {
  navigation: auto;
}

/* =============================================================
   1. Tokens
   ============================================================= */
:root {
  /* Surfaces — obsidian glass canvas, graded darkness */
  --bg:        #06070b;
  --bg-alt:    #0a0c13;
  --bg-void:   #010102;
  --surface:   rgba(255,255,255,0.045);
  --surface-strong: rgba(255,255,255,0.075);
  --surface-solid: #12141c;
  --ink-band:  #000000;
  --ink-band-2: #030407;

  /* Text on the dark canvas */
  --ink:       #f4f6fb;
  --ink-soft:  #c7cddb;
  --ink-mute:  #9198ab;
  --ink-faint: #565e70;

  /* Text on the deepest void panels (same scale, kept for compatibility) */
  --on-dark:      #f4f6fb;
  --on-dark-mute: #b6bdcd;
  --on-dark-faint: #6a7185;

  /* Brand accents — vivid aurora teal/cyan + warm gold + violet */
  --teal:        #12b4c4;
  --teal-bright: #3ee6ff;
  --teal-tint:   rgba(62,230,255,0.12);
  --gold:        #ffcf66;
  --gold-deep:   #f0a93a;
  --gold-tint:   rgba(255,207,102,0.16);
  --violet:      #8f86fb;
  --violet-tint: rgba(143,134,251,0.12);

  /* Elegant WhatsApp green */
  --wa-green:       #1fa070;
  --wa-green-light: #34d999;
  --wa-green-dark:  #0e5c40;

  /* Per-chapter aurora washes (glows, not flat fills) */
  --chapter-1-bg: rgba(62,230,255,0.07);
  --chapter-2-bg: rgba(255,207,102,0.07);
  --chapter-3-bg: rgba(143,134,251,0.08);

  --line:      rgba(255,255,255,0.11);
  --line-soft: rgba(255,255,255,0.065);

  --shadow-sm: 0 12px 32px -16px rgba(0,0,0,0.7);
  --shadow-md: 0 32px 72px -26px rgba(0,0,0,0.75), 0 0 0 1px rgba(255,255,255,0.03);
  --shadow-lg: 0 60px 130px -40px rgba(0,0,0,0.85), 0 0 0 1px rgba(255,255,255,0.035);
  --glow-teal: 0 0 70px -14px rgba(62,230,255,0.4);
  --glow-gold: 0 0 70px -14px rgba(255,207,102,0.35);
  --glow-violet: 0 0 70px -14px rgba(143,134,251,0.35);

  --serif:  "Fraunces", "Iowan Old Style", Georgia, serif;
  --sans:   "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
  --mono:   "JetBrains Mono", "SFMono-Regular", Consolas, monospace;

  --ease:        cubic-bezier(0.16, 1, 0.3, 1);
  --ease-soft:   cubic-bezier(0.25, 0.46, 0.45, 0.94);

  --container: 1240px;
  --measure: 62ch;
  --r-lg: 28px;
  --r-md: 18px;
  --r-sm: 10px;
  --nav-h: 88px;
}

/* =============================================================
   1b. Light theme — same token names, luminous premium palette.
   Applied via [data-theme="light"] on <html>, set by a blocking
   inline script in <head> (see per-page <script> before any CSS)
   so the correct theme is already active before first paint.
   ============================================================= */
:root[data-theme="light"] {
  /* Surface ladder — deliberately spaced steps, not one flat white.
     bg (page) < bg-alt (alt section) < ink-band (deep "chapter" panel,
     genuinely light but ~9% darker than the page so it reads as its
     own register, not a recolored dark panel) < bg-void (deepest, used
     sparingly for mobile-menu canvas / void accents). */
  --bg:        #f8f9fc;
  --bg-alt:    #eef1f6;
  --bg-void:   #e4e9f1;
  --surface:   rgba(255,255,255,0.72);
  --surface-strong: rgba(255,255,255,0.92);
  --surface-solid: #ffffff;
  --ink-band:  #e6ebf3;
  --ink-band-2: #dbe2ee;

  --ink:       #10131c;
  --ink-soft:  #383f4e;
  --ink-mute:  #565d70;
  --ink-faint: #8891a1;

  --on-dark:      #10131c;
  --on-dark-mute: #454c60;
  --on-dark-faint: #757d92;

  /* Brand hues re-tuned for a light substrate: deeper + more saturated
     than a naive "same hue, darker" swap so they hold their own energy
     against white instead of reading pastel/washed. */
  --teal:        #0a7783;
  --teal-bright: #0c93a3;
  --teal-tint:   rgba(10,119,131,0.1);
  --gold:        #a8690f;
  --gold-deep:   #7d4f0e;
  --gold-tint:   rgba(168,105,15,0.13);
  --violet:      #5c4fd1;
  --violet-tint: rgba(92,79,209,0.1);

  --wa-green:       #12704c;
  --wa-green-light: #16915e;
  --wa-green-dark:  #0a4a32;

  --chapter-1-bg: rgba(10,119,131,0.07);
  --chapter-2-bg: rgba(168,105,15,0.08);
  --chapter-3-bg: rgba(92,79,209,0.08);

  --line:      rgba(16,19,28,0.13);
  --line-soft: rgba(16,19,28,0.08);

  /* Two-layer "lifted paper" shadow recipe — a tight contact shadow for
     crisp edge definition plus a soft long-throw ambient shadow. This is
     a different recipe from dark mode's single deep-umbra glow, not the
     same shadow with a lighter color. */
  --shadow-sm: 0 1px 2px -1px rgba(16,19,28,0.07), 0 10px 22px -16px rgba(16,19,28,0.13);
  --shadow-md: 0 2px 5px -2px rgba(16,19,28,0.08), 0 26px 52px -24px rgba(16,19,28,0.16), 0 0 0 1px rgba(16,19,28,0.03);
  --shadow-lg: 0 4px 10px -3px rgba(16,19,28,0.09), 0 54px 100px -36px rgba(16,19,28,0.18), 0 0 0 1px rgba(16,19,28,0.03);
  --glow-teal: 0 14px 34px -12px rgba(10,119,131,0.4);
  --glow-gold: 0 14px 34px -12px rgba(168,105,15,0.36);
  --glow-violet: 0 14px 34px -12px rgba(92,79,209,0.34);
}

/* =============================================================
   2. Reset & base
   ============================================================= */
*, *::before, *::after { box-sizing: border-box; margin: 0; }
html {
  -webkit-text-size-adjust: 100%;
  tab-size: 2;
  scroll-behavior: smooth;
  scroll-padding-top: var(--nav-h);
  overflow-x: clip;
  background: var(--bg);
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

/* =============================================================
   2b. Theme-switch transition
   Broad but non-invasive: color-related properties fade smoothly
   sitewide; components that declare their own `transition` for
   hover/motion purposes (cards, buttons, nav) already fold these
   same properties into that list, so nothing double-fires.
   ============================================================= */
*, *::before, *::after {
  transition: background-color .35s var(--ease), border-color .35s var(--ease), color .35s var(--ease), box-shadow .35s var(--ease), fill .35s var(--ease), stroke .35s var(--ease);
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: .05s !important; animation-duration: .05s !important; }
}

body {
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.7;
  color: var(--ink-mute);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  overflow-x: clip;
  overscroll-behavior-y: none;
  position: relative;
}
/* Ambient film-grain texture — pure CSS, no image asset, negligible cost */
body::before {
  content: "";
  position: fixed; inset: 0; z-index: -3; pointer-events: none;
  background-image: radial-gradient(circle at 1px 1px, rgba(255,255,255,.06) 1px, transparent 0);
  background-size: 3px 3px;
  opacity: .55;
}
[data-theme="light"] body::before {
  background-image: radial-gradient(circle at 1px 1px, rgba(18,20,28,.05) 1px, transparent 0);
}
img, svg, video { display: block; max-width: 100%; }
img { height: auto; }
button { font: inherit; color: inherit; cursor: pointer; border: 0; background: none; }
a { color: inherit; text-decoration: none; }
p { text-wrap: pretty; text-align: justify; text-justify: inter-word; hyphens: auto; }
h1, h2, h3, h4 {
  font-family: var(--sans);
  color: var(--ink);
  text-wrap: balance;
  letter-spacing: -0.02em;
  font-weight: 800;
}
ul, ol { list-style: none; padding: 0; }
::selection { background: var(--gold); color: #0a0a0d; }
:focus-visible { outline: 2px solid var(--teal-bright); outline-offset: 3px; border-radius: 4px; }

.skip-link {
  position: fixed; top: -100px; left: 1rem;
  padding: .7rem 1.2rem; background: var(--bg-void); color: var(--on-dark);
  z-index: 9999; border-radius: 8px; font-weight: 600;
  border: 1px solid var(--line);
  transition: top .3s var(--ease);
}
.skip-link:focus { top: 1rem; }

/* =============================================================
   3. Utilities
   ============================================================= */
.container { max-width: var(--container); margin-inline: auto; padding-inline: 1.75rem; }
.section { padding-block: clamp(5rem, 9vw, 8.5rem); position: relative; }
.center { text-align: center; margin-inline: auto; }
.eyebrow {
  display: inline-flex; align-items: center; gap: .6rem;
  font-family: var(--mono); font-size: .78rem; letter-spacing: .14em; text-transform: uppercase;
  color: var(--teal-bright); font-weight: 600; margin-bottom: 1.1rem;
}
.eyebrow::before { content: ""; width: 26px; height: 1px; background: linear-gradient(90deg, var(--gold), transparent); }
.eyebrow.center { justify-content: center; }
.lead {
  font-size: 1.18rem; line-height: 1.7; color: var(--ink-mute);
  max-width: 92ch; margin-top: 1rem;
  text-align: justify; text-justify: inter-word; hyphens: auto;
}
.lead.center { margin-inline: auto; text-align: center; }
.rule { height: 1px; background: var(--line); border: 0; }
.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

/* =============================================================
   4. Typography scale
   ============================================================= */
h1 { font-size: clamp(3rem, 5.8vw, 5.4rem); line-height: .98; font-weight: 800; margin-bottom: 1.2rem; }
h2 { font-size: clamp(2.3rem, 4.2vw, 3.7rem); line-height: 1.02; margin-bottom: .8rem; letter-spacing: -0.025em; }
h3 { font-size: clamp(1.3rem, 1.9vw, 1.55rem); line-height: 1.28; margin-top: 1.9rem; margin-bottom: .6rem; font-weight: 700; }
h4 { font-family: var(--sans); font-size: 1.02rem; font-weight: 700; }
p { font-size: 1rem; }
p + h3 { margin-top: 2.1rem; }
em {
  font-style: italic; font-family: var(--serif); font-weight: 500;
  color: var(--gold);
  background: linear-gradient(120deg, var(--teal-bright), var(--gold) 65%);
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}

/* =============================================================
   5. Buttons & links
   ============================================================= */
.btn {
  position: relative;
  display: inline-flex; align-items: center; justify-content: center; gap: .55rem;
  padding: 1rem 1.9rem; border-radius: 999px;
  font-family: var(--sans); font-weight: 600; font-size: .97rem;
  transition: transform .4s var(--ease), box-shadow .4s var(--ease), background .4s var(--ease), color .4s var(--ease), border-color .4s var(--ease);
  white-space: nowrap;
}
/* Signature CTA — aurora gradient */
.btn-elite {
  background: linear-gradient(120deg, var(--teal), var(--teal-bright));
  color: #04141a;
  border: 1px solid rgba(255,255,255,.18);
  box-shadow: 0 20px 44px -18px rgba(62,230,255,.45);
}
.btn-elite:hover {
  transform: translateY(-3px);
  box-shadow: 0 26px 56px -16px rgba(62,230,255,.6);
  filter: brightness(1.06);
}
/* Light substrate: the deeper, more-saturated light-mode teal needs
   white text (not the dark-mode near-black) to clear AA contrast, and
   its own shadow tint instead of the dark theme's neon-cyan glow. */
[data-theme="light"] .btn-elite {
  color: #f5fbfc;
  border-color: rgba(255,255,255,.22);
  box-shadow: 0 2px 6px -2px rgba(10,119,131,.35), 0 20px 40px -18px rgba(10,119,131,.4);
}
[data-theme="light"] .btn-elite:hover {
  box-shadow: 0 3px 8px -2px rgba(10,119,131,.4), 0 26px 50px -16px rgba(10,119,131,.48);
}
.btn-dark {
  background: var(--surface-strong); color: var(--on-dark);
  border: 1px solid var(--line);
  backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
  box-shadow: 0 16px 34px -16px rgba(0,0,0,.6);
}
.btn-dark:hover { transform: translateY(-3px); background: rgba(255,255,255,.12); border-color: rgba(255,255,255,.22); }
[data-theme="light"] .btn-dark {
  box-shadow: var(--shadow-sm);
}
[data-theme="light"] .btn-dark:hover { background: var(--surface-strong); border-color: rgba(16,19,28,.22); }
.btn-outline {
  background: transparent; color: var(--ink); border: 1px solid var(--line);
}
.btn-outline:hover { border-color: var(--teal-bright); background: var(--surface); transform: translateY(-3px); }
.btn-outline.on-dark { color: var(--on-dark); border-color: rgba(255,255,255,.22); }
.btn-outline.on-dark:hover { background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.4); }
[data-theme="light"] .btn-outline.on-dark { color: var(--on-dark); border-color: rgba(16,19,28,.22); }
[data-theme="light"] .btn-outline.on-dark:hover { background: rgba(16,19,28,.05); border-color: rgba(16,19,28,.35); }
.btn-whatsapp {
  background: linear-gradient(120deg, var(--wa-green), var(--wa-green-light));
  color: #04160f;
  border: 1px solid rgba(255,255,255,.18);
  box-shadow: 0 20px 44px -18px rgba(52,217,153,.45);
}
[data-theme="light"] .btn-whatsapp {
  color: #f4fbf7;
  border-color: rgba(255,255,255,.2);
  box-shadow: 0 2px 6px -2px rgba(18,112,76,.35), 0 20px 40px -18px rgba(18,112,76,.4);
}
[data-theme="light"] .btn-whatsapp:hover {
  box-shadow: 0 3px 8px -2px rgba(18,112,76,.4), 0 26px 50px -16px rgba(18,112,76,.48);
}
.btn-whatsapp:hover {
  transform: translateY(-3px);
  box-shadow: 0 26px 56px -16px rgba(52,217,153,.6);
  filter: brightness(1.05);
}
.btn-whatsapp.on-dark { background: linear-gradient(120deg, var(--wa-green), var(--wa-green-light)); color: #04160f; }
.btn-lg { padding: 1.15rem 2.3rem; font-size: 1rem; }
.btn-sm { padding: .65rem 1.35rem; font-size: .88rem; }
.btn-block { width: 100%; }
.btn .ic { flex-shrink: 0; }

.link-arrow {
  display: inline-flex; align-items: center; gap: .5rem;
  font-weight: 600; color: var(--ink); font-size: .95rem;
  border-bottom: 1px solid var(--line);
  padding-bottom: .2rem;
  transition: border-color .3s var(--ease), gap .3s var(--ease), color .3s var(--ease);
}
.link-arrow:hover { border-color: var(--teal-bright); gap: .8rem; color: var(--teal-bright); }

/* =============================================================
   6. Header / Nav
   ============================================================= */
.site-header {
  position: fixed; inset: 0 0 auto 0; z-index: 500;
  padding-block: 1.2rem;
  transition: padding .4s var(--ease);
}
.site-header.is-scrolled { padding-block: .85rem; }
.nav-inner {
  position: relative;
  display: flex; align-items: center; justify-content: space-between; gap: 1.5rem;
  background: rgba(6,7,12,.82);
  backdrop-filter: blur(18px) saturate(140%); -webkit-backdrop-filter: blur(18px) saturate(140%);
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: .6rem .6rem .6rem 1.5rem;
  box-shadow: 0 24px 54px -22px rgba(0,0,0,.75), inset 0 1px 0 rgba(255,255,255,.05);
  transition: box-shadow .4s var(--ease), padding .4s var(--ease), border-color .4s var(--ease), background-color .4s var(--ease);
  overflow: clip;
}
[data-theme="light"] .nav-inner {
  background: rgba(255,255,255,.82);
  box-shadow: 0 1px 2px -1px rgba(16,19,28,.06), 0 24px 48px -26px rgba(16,19,28,.18), inset 0 1px 0 rgba(255,255,255,.8);
}
[data-theme="light"] .is-scrolled .nav-inner {
  box-shadow: 0 2px 4px -1px rgba(16,19,28,.08), 0 28px 54px -24px rgba(16,19,28,.22), inset 0 1px 0 rgba(255,255,255,.85);
  border-color: rgba(10,119,131,.22);
}
.nav-inner::before {
  content: ""; position: absolute; inset: -60% 40% auto auto; width: 55%; aspect-ratio: 1;
  background: radial-gradient(circle, rgba(62,230,255,.14), transparent 70%);
  pointer-events: none;
}
[data-theme="light"] .nav-inner::before {
  background: radial-gradient(circle, rgba(10,119,131,.1), transparent 70%);
}
.is-scrolled .nav-inner { box-shadow: 0 28px 60px -20px rgba(0,0,0,.85), inset 0 1px 0 rgba(255,255,255,.07); border-color: rgba(62,230,255,.18); }
.brand { display: flex; align-items: center; position: relative; }
.brand-logo { height: 48px; width: auto; transition: height .4s var(--ease); }
.is-scrolled .brand-logo { height: 41px; }

.main-nav ul { display: flex; align-items: center; gap: 2rem; position: relative; }
.nav-link {
  position: relative; font-size: .93rem; font-weight: 500; color: var(--on-dark-mute);
  padding-block: .3rem;
  transition: color .3s var(--ease);
}
.nav-link::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -2px;
  height: 1px; background: linear-gradient(90deg, var(--teal-bright), var(--gold));
  transform: scaleX(0); transform-origin: right;
  transition: transform .4s var(--ease);
}
.nav-link:hover { color: var(--on-dark); }
.nav-link:hover::after { transform: scaleX(1); transform-origin: left; }
.nav-actions { display: flex; align-items: center; gap: .7rem; position: relative; }
.nav-actions .btn-sm.btn-outline.on-dark { border-color: rgba(255,255,255,.22); }

.nav-toggle {
  display: none; flex-direction: column; justify-content: center; gap: 5px;
  width: 42px; height: 42px;
}
.nav-toggle span { width: 22px; height: 1.5px; background: var(--on-dark); margin-inline: auto; transition: transform .3s var(--ease), opacity .3s var(--ease); }
.nav-toggle.is-active span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
.nav-toggle.is-active span:nth-child(2) { opacity: 0; }
.nav-toggle.is-active span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }

.mobile-menu {
  display: none; position: fixed; inset: 0; z-index: 490;
  background: var(--bg-void);
  padding-top: calc(var(--nav-h) + 1rem);
  opacity: 0; transition: opacity .35s var(--ease);
}
.mobile-menu.is-open { display: block; opacity: 1; }
.mobile-menu-close {
  position: absolute; top: 1.3rem; right: 1.3rem; z-index: 1;
  width: 44px; height: 44px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: var(--surface); border: 1px solid var(--line); color: var(--ink);
  transition: background .3s var(--ease), transform .3s var(--ease);
}
.mobile-menu-close:hover { background: var(--surface-strong); transform: rotate(90deg); }
.mobile-menu ul { display: flex; flex-direction: column; padding: 2rem 1.75rem; gap: .3rem; }
.mobile-menu .nav-link { font-family: var(--serif); font-size: 2rem; padding-block: .7rem; border-bottom: 1px solid var(--line-soft); color: var(--ink); }
.mobile-menu .nav-link::after { background: linear-gradient(90deg, var(--teal-bright), var(--gold)); }
.mobile-menu .nav-link:hover { color: var(--teal-bright); }
.mobile-menu .btn { margin-top: 1.5rem; align-self: flex-start; }

@media (max-width: 959px) {
  .main-nav { display: none; }
  .nav-toggle { display: flex; }
  .nav-actions .btn-sm { display: none; }
}
@media (min-width: 960px) { .mobile-menu { display: none !important; } }

/* =============================================================
   7. Hero
   ============================================================= */
.hero { position: relative; padding-block: clamp(7.5rem, 14vw, 9.5rem) clamp(4rem, 8vw, 6rem); overflow: clip; }
.hero-grain {
  position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background:
    radial-gradient(55% 50% at 85% 0%, rgba(62,230,255,.22) 0%, transparent 70%),
    radial-gradient(50% 45% at 8% 25%, rgba(255,207,102,.16) 0%, transparent 70%),
    radial-gradient(40% 40% at 50% 100%, rgba(143,134,251,.14) 0%, transparent 70%),
    var(--bg);
}
/* Light hero is its own composition, not the dark blobs recolored
   fainter: a directional wash gives it a single confident light
   source instead of three symmetric smudges, and the accent radials
   run at higher alpha since color desaturates fast against white. */
[data-theme="light"] .hero-grain {
  background:
    linear-gradient(155deg, rgba(10,119,131,.1) 0%, transparent 42%),
    radial-gradient(58% 52% at 88% 6%, rgba(10,119,131,.17) 0%, transparent 70%),
    radial-gradient(44% 40% at 6% 28%, rgba(168,105,15,.13) 0%, transparent 70%),
    radial-gradient(36% 34% at 48% 98%, rgba(92,79,209,.11) 0%, transparent 70%),
    var(--bg);
}
.hero-grain::after {
  content: ""; position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px);
  background-size: 64px 64px;
  -webkit-mask-image: radial-gradient(80% 60% at 50% 0%, black, transparent 75%);
  mask-image: radial-gradient(80% 60% at 50% 0%, black, transparent 75%);
}
[data-theme="light"] .hero-grain::after {
  background-image:
    linear-gradient(rgba(16,19,28,.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(16,19,28,.05) 1px, transparent 1px);
}
.hero-inner { display: flex; flex-direction: column; gap: clamp(2.5rem, 5vw, 3.5rem); }
.hero-copy { max-width: none; width: 100%; }
.hero-title { max-width: none; width: 100%; }
[data-fit-text] { white-space: nowrap; }
@media (max-width: 899px) {
  [data-fit-text] { white-space: normal; }
  .hero-title[data-fit-text] { font-size: clamp(2.4rem, 8vw, 3.2rem) !important; }
}
.hero-sub {
  font-size: 1.2rem; line-height: 1.65; max-width: none; width: 100%; margin-top: 1.4rem; color: var(--ink-mute);
  text-align: justify; text-justify: inter-word; hyphens: auto;
}
.hero-cta { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 2.2rem; }

.hero-stats {
  display: flex; flex-wrap: wrap; gap: 1.6rem 0; margin-top: 2.8rem;
  border-top: 1px solid var(--line); padding-top: 1.8rem;
}
.hero-stats li {
  display: flex; align-items: center; gap: .8rem;
  padding-right: 2rem; margin-right: 2rem; border-right: 1px solid var(--line);
}
.hero-stats li:last-child { border-right: 0; margin-right: 0; padding-right: 0; }
.hero-stats svg { color: var(--teal-bright); flex-shrink: 0; }
.hero-stats strong { font-family: var(--sans); font-size: 1.6rem; font-weight: 800; color: var(--ink); line-height: 1; display: block; }
.hero-stats span { font-size: .76rem; color: var(--ink-mute); text-transform: uppercase; letter-spacing: .04em; }
@media (max-width: 720px) {
  .hero-stats li { flex-basis: 46%; border-right: 0; margin-right: 0; padding-right: 0; }
}

.hero-visual { position: relative; margin-top: .5rem; }
.hero-photo {
  width: 100%; height: clamp(300px, 40vw, 520px); object-fit: cover;
  border-radius: var(--r-lg);
  box-shadow: var(--shadow-lg);
  filter: saturate(1.05) contrast(1.02);
  transform: scale(1.1); transition: transform 1.3s var(--ease);
}
.hero-visual::before {
  content: ""; position: absolute; inset: 0; z-index: 2;
  border-radius: var(--r-lg);
  background: linear-gradient(100deg, var(--bg-void), rgba(62,230,255,.35) 45%, var(--bg-void));
  transform-origin: right; transform: scaleX(1);
  transition: transform 1.1s var(--ease) .1s;
}
.hero-visual[data-media-reveal].is-visible::before { transform: scaleX(0); }
.hero-visual[data-media-reveal].is-visible .hero-photo { transform: scale(1); }
.hero-visual[data-media-reveal].is-visible:hover .hero-photo { transform: scale(1.03); }
.float-chip {
  position: absolute; z-index: 3;
  display: flex; align-items: center; gap: .5rem;
  background: rgba(8,10,16,.82); border: 1px solid var(--line);
  backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
  border-radius: 999px; padding: .7rem 1.1rem;
  font-size: .82rem; font-weight: 600; color: var(--ink);
  box-shadow: var(--shadow-sm);
  animation: floatY 6s ease-in-out infinite;
}
[data-theme="light"] .float-chip { background: rgba(255,255,255,.85); }
.float-chip svg { color: var(--gold); flex-shrink: 0; }
.chip-2 { bottom: 1.5rem; right: 1.5rem; animation-delay: -3s; }
@keyframes floatY { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
@media (max-width: 640px) {
  .float-chip { position: static; margin-top: .7rem; display: inline-flex; }
  .chip-2 { margin-left: .6rem; }
}

.scroll-cue {
  position: absolute; left: 1.75rem; bottom: 1.5rem;
  display: flex; align-items: center; gap: .7rem;
  font-family: var(--mono); font-size: .72rem; letter-spacing: .1em; text-transform: uppercase;
  color: var(--ink-faint);
}
.scroll-cue::after {
  content: ""; width: 1px; height: 34px; background: linear-gradient(var(--teal-bright), transparent);
  animation: scrollCue 2.2s ease-in-out infinite;
}
@keyframes scrollCue { 0% { transform: scaleY(0); transform-origin: top; } 50% { transform: scaleY(1); transform-origin: top; } 51% { transform-origin: bottom; } 100% { transform: scaleY(0); transform-origin: bottom; } }
@media (max-width: 720px) { .scroll-cue { display: none; } }

/* =============================================================
   8. Stat band (void accent strip)
   ============================================================= */
.stat-band { background: var(--ink-band); padding-block: 2.4rem; overflow: clip; box-shadow: inset 0 1px 0 rgba(255,255,255,.05); }
[data-theme="light"] .stat-band { box-shadow: inset 0 1px 0 rgba(18,20,28,.04); border-bottom: 1px solid var(--line-soft); }
.stat-band ul { display: flex; flex-wrap: wrap; justify-content: center; gap: 0; }
.stat-band li {
  padding: .4rem 2.6rem; text-align: center;
  border-right: 1px solid rgba(255,255,255,.1);
}
[data-theme="light"] .stat-band li { border-right-color: rgba(18,20,28,.12); }
.stat-band li:last-child { border-right: 0; }
.stat-band strong { display: block; font-family: var(--sans); font-size: 1.9rem; color: var(--gold); font-weight: 800; text-shadow: 0 0 30px rgba(255,207,102,.4); }
[data-theme="light"] .stat-band strong { text-shadow: none; }
.stat-band span { font-size: .76rem; color: var(--on-dark-mute); text-transform: uppercase; letter-spacing: .06em; }
@media (max-width: 720px) {
  .stat-band li { padding: .4rem 1.3rem; border-right: 0; }
}

/* =============================================================
   9. Services — glass chapter panels
   ============================================================= */
.services-intro { padding-bottom: 2rem; }
.services-intro .lead { max-width: 92ch; }

.service-chapter {
  position: relative;
  padding-block: clamp(4rem, 8vw, 6.5rem);
  margin-inline: clamp(1.5rem, 6vw, 5rem);
  margin-bottom: clamp(2rem, 4vw, 3rem);
  border-radius: clamp(28px, 4vw, 44px);
  background: var(--surface);
  border: 1px solid var(--line);
  backdrop-filter: blur(22px); -webkit-backdrop-filter: blur(22px);
  overflow: clip;
}
.service-chapter::before {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
}
.service-chapter.tint-1 { box-shadow: inset 0 2px 0 0 var(--teal-bright); }
.service-chapter.tint-1::before { background: radial-gradient(120% 100% at 0% 0%, var(--chapter-1-bg), transparent 60%); }
.service-chapter.tint-2 { box-shadow: inset 0 2px 0 0 var(--gold); }
.service-chapter.tint-2::before { background: radial-gradient(120% 100% at 100% 0%, var(--chapter-2-bg), transparent 60%); }
.service-chapter.tint-3 { box-shadow: inset 0 2px 0 0 var(--violet); }
.service-chapter.tint-3::before { background: radial-gradient(120% 100% at 50% 100%, var(--chapter-3-bg), transparent 60%); }

.chapter-head {
  display: flex; align-items: baseline; gap: 1.6rem; margin-bottom: clamp(2.5rem, 5vw, 3.2rem);
  flex-wrap: wrap;
}
.chapter-num { font-family: var(--sans); font-size: clamp(3rem, 6vw, 5rem); font-weight: 800; line-height: 1; }
.tint-1 .chapter-num { color: transparent; background: linear-gradient(160deg, var(--teal-bright), transparent); -webkit-background-clip: text; background-clip: text; opacity: .55; }
.tint-2 .chapter-num { color: transparent; background: linear-gradient(160deg, var(--gold), transparent); -webkit-background-clip: text; background-clip: text; opacity: .55; }
.tint-3 .chapter-num { color: transparent; background: linear-gradient(160deg, var(--violet), transparent); -webkit-background-clip: text; background-clip: text; opacity: .6; }
.chapter-head h2 { margin-bottom: 0; }
.chapter-tag {
  font-family: var(--mono); font-size: .78rem; letter-spacing: .1em; text-transform: uppercase;
  margin-left: auto; align-self: center;
  padding: .4rem .9rem; border-radius: 999px; border: 1px solid currentColor;
}
.tint-1 .chapter-tag { color: var(--teal-bright); }
.tint-2 .chapter-tag { color: var(--gold); }
.tint-3 .chapter-tag { color: var(--violet); }

/* Full-width visual banner with curtain reveal on scroll */
.chapter-visual {
  position: relative; border-radius: var(--r-lg); overflow: hidden;
  box-shadow: var(--shadow-lg); margin-bottom: clamp(2.2rem, 4vw, 3rem);
}
.chapter-photo {
  width: 100%; height: clamp(280px, 38vw, 460px); object-fit: cover;
  filter: saturate(1.05) contrast(1.02);
  transform: scale(1.12); transition: transform 1.3s var(--ease);
}
.chapter-icon-banner {
  width: 100%; height: clamp(280px, 38vw, 460px);
  display: flex; align-items: center; justify-content: center;
  transform: scale(1.12); transition: transform 1.3s var(--ease);
}
.tint-1 .chapter-icon-banner { background: radial-gradient(120% 120% at 30% 20%, rgba(62,230,255,.22), var(--bg-void) 75%); }
.tint-2 .chapter-icon-banner { background: radial-gradient(120% 120% at 70% 20%, rgba(255,207,102,.2), var(--bg-void) 75%); }
.tint-3 .chapter-icon-banner { background: radial-gradient(120% 120% at 50% 30%, rgba(143,134,251,.2), var(--bg-void) 75%); }
.chapter-icon-banner .service-icon-big { width: min(220px, 32vw); height: auto; }
.chapter-visual::before {
  content: ""; position: absolute; inset: 0; z-index: 2;
  background: linear-gradient(100deg, var(--bg-void), rgba(62,230,255,.35) 45%, var(--bg-void));
  transform-origin: right; transform: scaleX(1);
  transition: transform 1s var(--ease) .1s;
}
.chapter-visual[data-media-reveal].is-visible::before { transform: scaleX(0); }
[data-media-reveal].is-visible .chapter-photo,
[data-media-reveal].is-visible .chapter-icon-banner { transform: scale(1); }
.chapter-visual { transition: box-shadow .4s var(--ease); }
.chapter-visual[data-media-reveal].is-visible:hover .chapter-photo,
.chapter-visual[data-media-reveal].is-visible:hover .chapter-icon-banner { transform: scale(1.045); }
.chapter-visual:hover { box-shadow: var(--shadow-lg), 0 0 0 1px rgba(62,230,255,.18); }
[data-theme="light"] .chapter-visual:hover { box-shadow: var(--shadow-lg), 0 0 0 1px rgba(10,119,131,.25); }

.chapter-stats {
  position: absolute; left: 1.5rem; bottom: 1.5rem; z-index: 3;
  display: flex; flex-wrap: wrap; gap: .6rem;
}
.chapter-stats li {
  display: flex; align-items: center; gap: .45rem;
  background: rgba(8,10,16,.82); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
  border: 1px solid var(--line);
  border-radius: 999px; padding: .55rem 1rem;
  font-size: .8rem; font-weight: 600; color: var(--ink);
  box-shadow: var(--shadow-sm);
}
[data-theme="light"] .chapter-stats li { background: rgba(255,255,255,.88); }
.chapter-stats svg { color: var(--teal-bright); flex-shrink: 0; }
@media (max-width: 560px) {
  .chapter-stats { position: static; margin-top: 1rem; padding: 0 .25rem; }
}

.chapter-body { max-width: 100%; position: relative; }
.chapter-body p {
  margin-bottom: .2rem;
  text-align: justify; text-justify: inter-word; hyphens: auto;
}
.chapter-body h3 { font-family: var(--sans); font-weight: 700; font-size: 1.18rem; }
.feature-tags { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .6rem; margin: 1.8rem 0 2rem; }
.feature-tags li { flex: 1 1 auto; text-align: center; }
.feature-tags li {
  font-size: .84rem; font-weight: 500; color: var(--ink-soft);
  background: var(--surface); border: 1px solid var(--line);
  padding: .5rem 1rem; border-radius: 999px;
  transition: border-color .3s var(--ease), background .3s var(--ease);
}
.feature-tags li:hover { border-color: var(--teal-bright); background: var(--surface-strong); }
.chapter-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 1.4rem; margin-top: .5rem; }

/* =============================================================
   10. CTA band
   ============================================================= */
.cta-band { padding-block: clamp(3rem, 6vw, 5rem); }
.cta-band-inner {
  background: var(--ink-band);
  padding: clamp(3.5rem, 8vw, 6rem) clamp(1.75rem, 6vw, 4rem);
  margin-inline: clamp(1.5rem, 6vw, 5rem);
  border-radius: clamp(28px, 4vw, 44px);
  text-align: center; position: relative; overflow: clip;
  border: 1px solid var(--line-soft);
  box-shadow: var(--shadow-lg), var(--glow-gold);
}
.cta-band-inner::before {
  content: ""; position: absolute; inset: -30% 60% auto auto; width: 50%; aspect-ratio: 1;
  background: radial-gradient(circle, rgba(255,207,102,.2), transparent 70%);
  pointer-events: none;
}
.cta-band-inner::after {
  content: ""; position: absolute; inset: auto auto -30% -10%; width: 45%; aspect-ratio: 1;
  background: radial-gradient(circle, rgba(62,230,255,.16), transparent 70%);
  pointer-events: none;
}
/* Additive glow blobs read as neon on black but wash out to nothing on
   a light panel — light substrate gets higher-alpha, more saturated
   direct-color washes instead of a faded copy of the dark version. */
[data-theme="light"] .cta-band-inner::before {
  background: radial-gradient(circle, rgba(168,105,15,.28), transparent 70%);
}
[data-theme="light"] .cta-band-inner::after {
  background: radial-gradient(circle, rgba(10,119,131,.22), transparent 70%);
}
.cta-band-inner h2 { color: var(--on-dark); max-width: 20ch; margin-inline: auto; position: relative; }
.cta-band-inner p { color: var(--on-dark-mute); max-width: 50ch; margin: .9rem auto 0; position: relative; font-size: 1.1rem; }
.cta-band-actions { display: flex; justify-content: center; flex-wrap: wrap; gap: 1rem; margin-top: 2rem; position: relative; }

/* =============================================================
   11. Why Servicom — asymmetric trust section
   ============================================================= */
.why-section { background: var(--bg-alt); }
.why-grid-outer { display: grid; grid-template-columns: 1fr; gap: 3.5rem; margin-top: clamp(2.5rem, 5vw, 4rem); }
@media (min-width: 980px) { .why-grid-outer { grid-template-columns: .85fr 1.15fr; gap: 5rem; } }
.why-statement { font-family: var(--serif); font-size: clamp(1.6rem, 2.6vw, 2.1rem); line-height: 1.35; color: var(--ink); font-weight: 400; }
.why-statement strong { color: var(--teal-bright); font-weight: 600; }

/* Numbered accordion — one item expands at a time */
.why-accordion { display: flex; flex-direction: column; gap: .9rem; }
.why-item {
  border-radius: var(--r-md);
  background: var(--surface);
  border: 1px solid var(--line);
  backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
  overflow: clip;
  transition: background .5s var(--ease), border-color .5s var(--ease), box-shadow .5s var(--ease);
}
.why-item-head {
  width: 100%; display: flex; align-items: center; gap: 1.4rem;
  padding: 1.3rem 1.6rem; text-align: left;
}
.why-num { font-family: var(--mono); font-size: .82rem; color: var(--gold); font-weight: 600; flex-shrink: 0; transition: color .5s var(--ease); }
.why-item-head h3 { margin: 0; font-family: var(--sans); font-weight: 700; font-size: 1.08rem; flex: 1; transition: color .5s var(--ease); }
.why-chevron { color: var(--ink-mute); flex-shrink: 0; transition: transform .5s var(--ease), color .5s var(--ease); }
.why-item-head:hover h3 { color: var(--teal-bright); }
.why-item-body { padding-inline: 1.6rem; color: var(--ink-mute); font-size: .95rem; }
.why-item-body p { margin: 0; padding-bottom: 1.5rem; }

.why-accordion.is-enhanced .why-item-body {
  max-height: 0; overflow: hidden;
  transition: max-height .5s var(--ease);
}
.why-accordion.is-enhanced .why-item.is-active {
  background: var(--ink-band); border-color: rgba(255,207,102,.3);
  box-shadow: var(--glow-gold);
}
[data-theme="light"] .why-accordion.is-enhanced .why-item.is-active {
  border-color: rgba(168,105,15,.32);
}
.why-accordion.is-enhanced .why-item.is-active .why-item-head h3 { color: var(--on-dark); }
.why-accordion.is-enhanced .why-item.is-active .why-num { color: var(--gold); }
.why-accordion.is-enhanced .why-item.is-active .why-chevron { color: var(--on-dark-mute); transform: rotate(90deg); }
.why-accordion.is-enhanced .why-item.is-active .why-item-body { color: var(--on-dark-mute); }

/* =============================================================
   12. Process — horizontal scroll timeline
   ============================================================= */
.process-section { overflow: clip; }
.process-track-wrap { position: relative; margin-top: clamp(2.5rem, 5vw, 4rem); }
.process-track {
  display: flex; gap: 1.4rem; width: 100%;
  overflow-x: auto; scroll-snap-type: x proximity;
  padding-bottom: 1.5rem;
  padding-inline: clamp(1.75rem, 6vw, 5rem);
  scrollbar-width: thin;
}
.process-track::-webkit-scrollbar { height: 6px; }
.process-track::-webkit-scrollbar-thumb { background: var(--line); border-radius: 999px; }
.process-item {
  flex: 0 0 clamp(240px, 30vw, 300px); scroll-snap-align: start;
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-md);
  backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
  padding: 1.9rem; position: relative;
  transition: transform .4s var(--ease), box-shadow .4s var(--ease), border-color .4s var(--ease);
}
.process-item:hover { transform: translateY(-6px); box-shadow: var(--shadow-md), var(--glow-teal); border-color: rgba(62,230,255,.3); }
[data-theme="light"] .process-item:hover { border-color: rgba(10,119,131,.32); }
.process-num {
  font-family: var(--sans); font-weight: 800; font-size: 2.1rem;
  background: linear-gradient(120deg, var(--gold), var(--teal-bright));
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: var(--gold);
  margin-bottom: .7rem; display: block;
}
.process-item h3 { margin-top: 0; font-family: var(--sans); font-weight: 700; font-size: 1.05rem; }
.process-item p { font-size: .92rem; color: var(--ink-mute); }
.process-hint { font-size: .8rem; color: var(--ink-faint); margin-top: 1rem; display: flex; align-items: center; gap: .5rem; }

/* =============================================================
   13. Quote section
   ============================================================= */
.quote-section { position: relative; overflow: clip; }
.quote-grid { display: grid; grid-template-columns: 1fr; gap: 1.75rem; }
@media (min-width: 980px) { .quote-grid { grid-template-columns: 1.15fr .85fr; align-items: stretch; } }

/* Compact, distinct card — matches .contact-card's size/weight so both
   columns read as a balanced pair instead of the form floating loose.
   height:100% + the grid's stretch (above) makes both cards match the
   row's tallest content instead of each hugging its own height. */
.quote-form-wrap {
  height: 100%;
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg);
  backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px);
  padding: 1.6rem 1.8rem; box-shadow: var(--shadow-sm);
}
.quote-form-wrap .eyebrow { margin-bottom: .4rem; }
.quote-form-wrap h2 { font-family: var(--sans); font-size: 1.3rem; font-weight: 800; margin-bottom: .3rem; }
.quote-form-wrap .lead { font-size: .88rem; line-height: 1.45; margin-top: 0; max-width: none; }

.quote-form { margin-top: .85rem; }
.form-row { margin-bottom: .6rem; display: flex; flex-direction: column; gap: .25rem; }
.form-row.two-col { display: grid; grid-template-columns: 1fr; gap: .6rem; }
@media (min-width: 560px) { .form-row.two-col { grid-template-columns: 1fr 1fr; } }
.form-row.two-col > div { display: flex; flex-direction: column; gap: .25rem; }
label { font-size: .74rem; font-weight: 600; color: var(--ink-mute); text-transform: uppercase; letter-spacing: .04em; }
.optional { font-weight: 400; text-transform: none; letter-spacing: 0; }
input, select, textarea {
  font: inherit; font-size: .94rem; line-height: 1.3; color: var(--ink);
  padding: .35rem .1rem; border: 0; border-bottom: 1px solid var(--line);
  background: transparent; border-radius: 0;
  transition: border-color .3s var(--ease);
  width: 100%;
}
select option { background: var(--surface-solid); color: var(--ink); }
input::placeholder, textarea::placeholder { color: var(--ink-faint); }
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--teal-bright); }
textarea { resize: vertical; min-height: 38px; }
.quote-form-wrap .btn-lg { padding: .7rem 2rem; font-size: .92rem; margin-top: .15rem; }
.form-hint { font-size: .72rem; line-height: 1.4; color: var(--ink-mute); margin-top: .6rem; }
.field-error { display: none; font-size: .74rem; color: var(--gold); font-weight: 600; }
.form-row.has-error .field-error { display: block; }
.form-row.has-error input, .form-row.has-error select, .form-row.has-error textarea { border-color: var(--gold); }
.quote-form.is-success .form-fields { display: none; }
.form-success { display: none; padding: 1.4rem 0; }
.form-success svg { margin-bottom: 1rem; color: var(--teal-bright); }
.form-success h3 { margin-top: 0; }
.form-success p { font-size: .96rem; color: var(--ink-mute); margin-top: .5rem; }
.quote-form.is-success .form-success { display: block; }
.form-success-actions { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: 1.2rem; }
.form-success-actions .btn { flex: 1 1 auto; }
.form-success-fallback-hint { font-size: .78rem; color: var(--ink-faint); margin-top: 1.3rem; }

/* Honeypot — invisible to real visitors, catches bots that fill every field */
.hp-field { position: absolute; left: -9999px; top: auto; width: 1px; height: 1px; overflow: hidden; }

.quote-contact { margin-top: 0; height: 100%; }
.contact-card {
  height: 100%; display: flex; flex-direction: column; justify-content: center;
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg);
  backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px);
  padding: 1.9rem 2rem; box-shadow: var(--shadow-sm);
}
.contact-card h3 { margin-top: 0; font-family: var(--sans); font-weight: 700; font-size: 1.1rem; }
.contact-line {
  display: flex; align-items: center; gap: 1rem;
  padding: .95rem 0; border-top: 1px solid var(--line-soft);
  transition: transform .3s var(--ease), color .3s var(--ease);
}
.contact-line:hover { transform: translateX(5px); color: var(--teal-bright); }
.contact-line .ic { color: var(--gold); flex-shrink: 0; }
.contact-line strong { display: block; font-size: .92rem; color: var(--ink); }
.contact-line span { font-size: .9rem; color: var(--ink-mute); }
.contact-note { font-size: .84rem; color: var(--ink-mute); margin-top: 1.2rem; }

/* =============================================================
   14. Final CTA
   ============================================================= */
.final-cta {
  text-align: center;
  background: var(--ink-band);
  margin-inline: clamp(1.5rem, 6vw, 5rem);
  margin-bottom: clamp(2rem, 5vw, 3.5rem);
  border-radius: clamp(28px, 4vw, 44px);
  overflow: clip; position: relative;
  border: 1px solid var(--line-soft);
  box-shadow: var(--shadow-lg), var(--glow-teal);
}
.final-cta::before {
  content: ""; position: absolute; inset: -40% auto auto -10%; width: 50%; aspect-ratio: 1;
  background: radial-gradient(circle, rgba(62,230,255,.18), transparent 70%);
  pointer-events: none;
}
.final-cta::after {
  content: ""; position: absolute; inset: auto -10% -40% auto; width: 50%; aspect-ratio: 1;
  background: radial-gradient(circle, rgba(255,207,102,.14), transparent 70%);
  pointer-events: none;
}
[data-theme="light"] .final-cta::before {
  background: radial-gradient(circle, rgba(10,119,131,.24), transparent 70%);
}
[data-theme="light"] .final-cta::after {
  background: radial-gradient(circle, rgba(168,105,15,.2), transparent 70%);
}
.final-cta-inner { position: relative; }
.final-cta-inner h2 { max-width: 20ch; margin-inline: auto; color: var(--on-dark); }
.final-cta-inner p { max-width: 44ch; margin: 1.1rem auto 2.2rem; color: var(--on-dark-mute); font-size: 1.14rem; }

/* =============================================================
   15. Footer
   ============================================================= */
.site-footer { background: var(--ink-band); color: var(--on-dark-mute); padding-top: clamp(2.75rem, 4.5vw, 4rem); position: relative; overflow: clip; }
.site-footer::before {
  content: ""; position: absolute; top: 0; left: 10%; right: 10%; height: 1px;
  background: linear-gradient(90deg, transparent, var(--teal-bright), var(--gold), transparent);
  opacity: .6;
}
/* Light mode's teal/gold are deeper and less luminous than the dark
   theme's neon pair, so the same 1px edge line needs more opacity to
   read at the same visual weight instead of nearly disappearing. */
[data-theme="light"] .site-footer::before { opacity: .85; }
.footer-top { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 1.5rem; padding-bottom: 2rem; border-bottom: 1px solid rgba(255,255,255,.1); }
[data-theme="light"] .footer-top { border-bottom-color: rgba(18,20,28,.1); }
.footer-top .footer-logo { height: 48px; opacity: .95; }
/* The wordmark's light-gray tagline is baked into the raster asset and
   loses contrast on a light panel; a mild brightness/contrast pull
   deepens it without distorting the colorful logomark. */
[data-theme="light"] .footer-top .footer-logo { filter: brightness(.82) contrast(1.2); opacity: 1; }
.footer-cta { display: flex; gap: 1rem; flex-wrap: wrap; }
.footer-grid { display: grid; grid-template-columns: 1fr; gap: 2rem; padding-block: 2.2rem; border-bottom: 1px solid rgba(255,255,255,.1); }
[data-theme="light"] .footer-grid { border-bottom-color: rgba(18,20,28,.1); }
@media (min-width: 720px) { .footer-grid { grid-template-columns: 1.4fr 1fr 1fr 1fr; } }
.footer-brand p { font-size: .92rem; max-width: 34ch; }
.footer-col h4 { color: var(--on-dark); font-family: var(--sans); font-size: .88rem; margin-bottom: .85rem; letter-spacing: .04em; text-transform: uppercase; }
.footer-col h4.mt { margin-top: 1.3rem; }
.footer-col ul { display: flex; flex-direction: column; gap: .55rem; }
.footer-col a { font-size: .92rem; transition: color .3s var(--ease); }
.footer-col a:hover { color: var(--gold); }
.footer-bottom { padding-block: 1.15rem; }
.footer-bottom p { font-size: .82rem; text-align: center; color: var(--on-dark-faint); }

/* =============================================================
   16. Scroll progress
   ============================================================= */
.scroll-progress {
  position: fixed; top: 0; right: 0; width: 3px; height: 100vh; z-index: 700;
  background: rgba(255,255,255,.06); pointer-events: none;
}
.scroll-progress span {
  display: block; width: 100%; height: 0%;
  background: linear-gradient(var(--gold), var(--teal-bright));
  box-shadow: var(--glow-teal);
}
@media (max-width: 720px) { .scroll-progress { display: none; } }

/* =============================================================
   17. Custom cursor — aurora dot + trailing ring + ambient glow
   ============================================================= */
.cursor-glow, .cursor-ring, .cursor-dot, .cursor-orbit {
  position: fixed; top: 0; left: 0; pointer-events: none;
  border-radius: 50%; opacity: 0;
}
.cursor-glow {
  z-index: 898;
  width: 170px; height: 170px;
  background: radial-gradient(circle, rgba(62,230,255,.18), rgba(255,207,102,.1) 45%, transparent 70%);
  transition: opacity .5s var(--ease), background .4s var(--ease);
  animation: cursorHue 9s linear infinite;
}
[data-theme="light"] .cursor-glow {
  background: radial-gradient(circle, rgba(14,138,151,.12), rgba(184,121,28,.07) 45%, transparent 70%);
}
.cursor-orbit {
  z-index: 899; width: 0; height: 0;
  transition: opacity .4s var(--ease);
}
.cursor-orbit::before {
  content: ""; position: absolute; top: -22px; left: -22px; width: 44px; height: 44px;
  border-radius: 50%; border: 1px dashed rgba(255,207,102,.7);
  animation: cursorSpin 8s linear infinite;
}
.cursor-ring {
  z-index: 900;
  width: 28px; height: 28px; border: 1.5px solid var(--teal-bright);
  mix-blend-mode: difference;
  transition: width .4s cubic-bezier(.16,1,.3,1), height .4s cubic-bezier(.16,1,.3,1),
              border-color .3s var(--ease), background .3s var(--ease);
}
.cursor-dot {
  z-index: 901;
  width: 6px; height: 6px; background: var(--gold);
  mix-blend-mode: difference;
}
.has-custom-cursor .cursor-dot, .has-custom-cursor .cursor-ring,
.has-custom-cursor .cursor-glow, .has-custom-cursor .cursor-orbit { opacity: 1; }
.has-custom-cursor, .has-custom-cursor a, .has-custom-cursor button,
.has-custom-cursor input, .has-custom-cursor select, .has-custom-cursor textarea { cursor: none; }

.cursor-ring.is-active {
  width: 52px; height: 52px;
  mix-blend-mode: normal;
  background: rgba(62,230,255,.16);
  border-color: var(--teal-bright);
}
.cursor-ring.is-whatsapp {
  mix-blend-mode: normal;
  background: rgba(52,217,153,.18);
  border-color: var(--wa-green-light);
}
.cursor-ring.is-pressed { width: 20px; height: 20px; }
.cursor-glow.is-active { background: radial-gradient(circle, rgba(62,230,255,.26), transparent 70%); }
.cursor-glow.is-whatsapp { background: radial-gradient(circle, rgba(52,217,153,.26), transparent 70%); }
/* On white, "normal" blend + the dark theme's neon-cyan fill reads as a
   mismatched cold smudge next to the light teal ring border — give the
   active/whatsapp states their own light-tuned fills and glows. */
[data-theme="light"] .cursor-ring.is-active { background: rgba(10,119,131,.14); }
[data-theme="light"] .cursor-ring.is-whatsapp { background: rgba(18,112,76,.16); }
[data-theme="light"] .cursor-glow.is-active { background: radial-gradient(circle, rgba(10,119,131,.22), transparent 70%); }
[data-theme="light"] .cursor-glow.is-whatsapp { background: radial-gradient(circle, rgba(18,112,76,.22), transparent 70%); }

@keyframes cursorSpin { to { transform: rotate(360deg); } }
@keyframes cursorHue { from { filter: hue-rotate(0deg); } to { filter: hue-rotate(360deg); } }

@media (max-width: 900px), (hover: none) {
  .cursor-dot, .cursor-ring, .cursor-glow, .cursor-orbit { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .cursor-glow { animation: none; }
  .cursor-orbit::before { animation: none; }
}

/* =============================================================
   17b. Legal page card
   ============================================================= */
.legal-card {
  background: var(--surface); border: 1px solid var(--line);
  backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px);
  border-radius: clamp(28px, 4vw, 44px); box-shadow: var(--shadow-sm);
  padding: clamp(2.5rem, 6vw, 4.5rem);
}

/* =============================================================
   18. Floating actions — elegant expanding glass pills
   ============================================================= */
.floating-actions { position: fixed; right: 1.5rem; bottom: 1.5rem; z-index: 600; display: flex; flex-direction: column; align-items: flex-end; gap: .9rem; }
.fab {
  position: relative;
  display: inline-flex; align-items: center; height: 56px; border-radius: 999px;
  color: #04120f; box-shadow: 0 20px 44px -16px rgba(0,0,0,.6), inset 0 0 0 1px rgba(255,255,255,.1);
  overflow: hidden;
  transition: box-shadow .4s var(--ease), transform .4s var(--ease);
}
.fab:hover { transform: translateY(-3px); box-shadow: 0 26px 56px -14px rgba(0,0,0,.7), inset 0 0 0 1px rgba(255,255,255,.16); }
.fab-icon { width: 56px; height: 56px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; }
.fab-label {
  display: inline-block; max-width: 0; opacity: 0; white-space: nowrap; overflow: hidden;
  font-family: var(--sans); font-weight: 600; font-size: .92rem; letter-spacing: .01em;
  transition: max-width .45s var(--ease), opacity .3s var(--ease), padding-right .45s var(--ease);
}
.fab:hover .fab-label { max-width: 140px; opacity: 1; padding-right: 1.5rem; }
.fab-whatsapp { background: linear-gradient(160deg, var(--wa-green-light), var(--wa-green)); }
.fab-call { background: linear-gradient(160deg, var(--teal-bright), var(--teal)); color: #041418; }
[data-theme="light"] .fab-call { color: #f4fbfc; }
.fab-whatsapp::after {
  content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none;
  box-shadow: 0 0 0 0 rgba(52,217,153,.55);
  animation: fabPulse 2.8s ease-out infinite;
}
@keyframes fabPulse {
  0% { box-shadow: 0 0 0 0 rgba(52,217,153,.5); }
  70% { box-shadow: 0 0 0 14px rgba(52,217,153,0); }
  100% { box-shadow: 0 0 0 0 rgba(52,217,153,0); }
}
[data-theme="light"] .fab-whatsapp::after { animation-name: fabPulseLight; }
@keyframes fabPulseLight {
  0% { box-shadow: 0 0 0 0 rgba(18,112,76,.5); }
  70% { box-shadow: 0 0 0 14px rgba(18,112,76,0); }
  100% { box-shadow: 0 0 0 0 rgba(18,112,76,0); }
}
@media (max-width: 540px) {
  .fab, .fab-icon { width: 50px; height: 50px; }
  .floating-actions { right: 1rem; bottom: 1rem; }
  .fab:hover .fab-label { max-width: 0; opacity: 0; padding-right: 0; }
}
@media (prefers-reduced-motion: reduce) { .fab-whatsapp::after { animation: none; } }

/* =============================================================
   18b. Theme toggle — compact glass control, opposite corner from
   the WhatsApp/call FABs so nothing ever overlaps.
   ============================================================= */
.theme-toggle {
  position: fixed; left: 1.5rem; bottom: 1.5rem; z-index: 600;
  width: 52px; height: 52px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: var(--surface-strong); border: 1px solid var(--line);
  backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
  box-shadow: var(--shadow-sm), inset 0 1px 0 rgba(255,255,255,.06);
  color: var(--ink);
  transition: background-color .4s var(--ease), border-color .4s var(--ease), box-shadow .4s var(--ease), transform .4s var(--ease);
}
.theme-toggle:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow-md), var(--glow-teal);
  border-color: rgba(62,230,255,.35);
}
[data-theme="light"] .theme-toggle { box-shadow: var(--shadow-sm), inset 0 1px 0 rgba(255,255,255,.7); }
[data-theme="light"] .theme-toggle:hover { border-color: rgba(10,119,131,.4); }
.theme-toggle:active { transform: translateY(-1px) scale(.94); }
.theme-toggle-icon {
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
  transition: opacity .4s var(--ease), transform .5s var(--ease);
}
.theme-toggle-moon { opacity: 1; transform: rotate(0deg) scale(1); }
.theme-toggle-sun { opacity: 0; transform: rotate(-70deg) scale(.4); }
[data-theme="light"] .theme-toggle-moon { opacity: 0; transform: rotate(70deg) scale(.4); }
[data-theme="light"] .theme-toggle-sun { opacity: 1; transform: rotate(0deg) scale(1); }

@media (max-width: 540px) {
  .theme-toggle { left: 1rem; bottom: 1rem; width: 46px; height: 46px; }
}
/* Keep the FAB stack and the theme toggle from ever crowding the same
   corner on very narrow viewports where both float low on screen. */
@media (max-width: 360px) {
  .theme-toggle { width: 42px; height: 42px; }
}
@media (prefers-reduced-motion: reduce) {
  .theme-toggle-icon { transition: opacity .05s linear; transform: none !important; }
}

/* =============================================================
   19. Motion — reveal, parallax, magnetic, aurora field
   ============================================================= */
.reveal { opacity: 0; transform: translateY(42px); transition: opacity 1.05s var(--ease), transform 1.05s var(--ease); }
.reveal.is-visible { opacity: 1; transform: translateY(0); }
.reveal[data-split] { opacity: 1; transform: none; }
[data-stagger] > * { opacity: 0; transform: translateY(24px); transition: opacity .7s var(--ease), transform .7s var(--ease); }
[data-stagger].is-visible > * { opacity: 1; transform: translateY(0); }
[data-stagger].is-visible > *:nth-child(1) { transition-delay: .05s; }
[data-stagger].is-visible > *:nth-child(2) { transition-delay: .12s; }
[data-stagger].is-visible > *:nth-child(3) { transition-delay: .19s; }
[data-stagger].is-visible > *:nth-child(4) { transition-delay: .26s; }
[data-stagger].is-visible > *:nth-child(5) { transition-delay: .33s; }
[data-stagger].is-visible > *:nth-child(6) { transition-delay: .4s; }

[data-parallax] { will-change: transform; }
[data-magnetic] { transition: transform .25s var(--ease-soft); }

/* Ambient aurora blobs — injected once by main.js, drift slowly behind all content */
.aurora-field { position: fixed; inset: 0; z-index: -4; pointer-events: none; overflow: clip; }
.aurora-blob {
  position: absolute; border-radius: 50%; filter: blur(90px); opacity: .35;
  will-change: transform;
}
.aurora-blob.b1 { width: 46vw; height: 46vw; top: -12vw; left: -8vw; background: radial-gradient(circle, var(--teal-bright), transparent 70%); animation: auroraDrift1 26s ease-in-out infinite; }
.aurora-blob.b2 { width: 40vw; height: 40vw; bottom: -14vw; right: -6vw; background: radial-gradient(circle, var(--gold), transparent 70%); animation: auroraDrift2 32s ease-in-out infinite; }
.aurora-blob.b3 { width: 34vw; height: 34vw; top: 40%; left: 55%; background: radial-gradient(circle, var(--violet), transparent 70%); animation: auroraDrift3 38s ease-in-out infinite; }
@keyframes auroraDrift1 { 0%,100% { transform: translate(0,0) scale(1); } 50% { transform: translate(4vw,3vw) scale(1.08); } }
@keyframes auroraDrift2 { 0%,100% { transform: translate(0,0) scale(1); } 50% { transform: translate(-3vw,-4vw) scale(1.1); } }
@keyframes auroraDrift3 { 0%,100% { transform: translate(0,0) scale(1); } 50% { transform: translate(-2vw,3vw) scale(.94); } }
@media (max-width: 720px) {
  .aurora-blob { opacity: .22; filter: blur(60px); }
}
@media (prefers-reduced-motion: reduce) {
  .aurora-blob { animation: none; }
}
[data-theme="light"] .aurora-blob { opacity: .16; }
@media (max-width: 720px) {
  [data-theme="light"] .aurora-blob { opacity: .1; }
}

@media (prefers-reduced-motion: reduce) {
  .float-chip { animation: none; }
  .scroll-cue::after { animation: none; }
}

/* =============================================================
   20. Quote detail pages (cpw / ctv / cuentas-de-correo)
   ============================================================= */
.quote-hero { padding-top: clamp(7.5rem, 12vw, 9.5rem); padding-bottom: 1rem; }
.quote-hero .lead { max-width: none; }

/* Chapter-tint panels — same rounded-panel language as .service-chapter,
   applied to the plainer quote/pricing pages so every section reads as
   a distinct "chapter" instead of a flat background stripe. */
.section-block.tint-1,
.section-block.tint-2,
.section-block.tint-3 {
  position: relative;
  margin-inline: clamp(1.5rem, 6vw, 5rem);
  margin-bottom: clamp(2rem, 4vw, 3rem);
  border-radius: clamp(28px, 4vw, 44px);
  background: var(--surface);
  border: 1px solid var(--line);
  backdrop-filter: blur(22px); -webkit-backdrop-filter: blur(22px);
  overflow: clip;
}
.section-block.tint-1 { box-shadow: inset 0 2px 0 0 var(--teal-bright); }
.section-block.tint-1::before { content: ""; position: absolute; inset: 0; z-index: -1; background: radial-gradient(120% 100% at 0% 0%, var(--chapter-1-bg), transparent 60%); }
.section-block.tint-2 { box-shadow: inset 0 2px 0 0 var(--gold); }
.section-block.tint-2::before { content: ""; position: absolute; inset: 0; z-index: -1; background: radial-gradient(120% 100% at 100% 0%, var(--chapter-2-bg), transparent 60%); }
.section-block.tint-3 { box-shadow: inset 0 2px 0 0 var(--violet); }
.section-block.tint-3::before { content: ""; position: absolute; inset: 0; z-index: -1; background: radial-gradient(120% 100% at 50% 100%, var(--chapter-3-bg), transparent 60%); }

.price-panel {
  position: relative; overflow: clip;
  display: flex; flex-wrap: wrap; align-items: center; gap: 1.8rem 2.6rem;
  background: var(--surface-strong);
  border: 1px solid rgba(62,230,255,.25); border-radius: clamp(24px, 4vw, 36px);
  backdrop-filter: blur(22px); -webkit-backdrop-filter: blur(22px);
  box-shadow: var(--shadow-md), var(--glow-teal); padding: clamp(2rem, 4vw, 2.8rem);
  margin-block: 2rem 2.5rem;
}
[data-theme="light"] .price-panel { border-color: rgba(10,119,131,.3); }
.price-panel::before {
  content: ""; position: absolute; inset: -40% -8% auto auto; width: 55%; aspect-ratio: 1;
  background: radial-gradient(circle, var(--teal-tint), transparent 70%);
  pointer-events: none;
}
.price-badge {
  position: relative;
  display: inline-flex; align-items: center; gap: .5rem;
  background: var(--gold-tint); color: var(--gold);
  font-family: var(--mono); font-size: .74rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
  padding: .4rem .9rem; border-radius: 999px;
}
.price-badge::after {
  content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none;
  box-shadow: 0 0 0 0 rgba(255,207,102,.45);
  animation: priceBadgePulse 2.6s ease-out infinite;
}
@keyframes priceBadgePulse {
  0% { box-shadow: 0 0 0 0 rgba(255,207,102,.45); }
  70% { box-shadow: 0 0 0 10px rgba(255,207,102,0); }
  100% { box-shadow: 0 0 0 0 rgba(255,207,102,0); }
}
[data-theme="light"] .price-badge::after { animation-name: priceBadgePulseLight; }
@keyframes priceBadgePulseLight {
  0% { box-shadow: 0 0 0 0 rgba(168,105,15,.4); }
  70% { box-shadow: 0 0 0 10px rgba(168,105,15,0); }
  100% { box-shadow: 0 0 0 0 rgba(168,105,15,0); }
}
.price-old { display: block; font-size: 1.05rem; color: var(--ink-faint); text-decoration: line-through; margin-top: .6rem; }
.price-new {
  display: block; position: relative;
  font-family: var(--sans); font-size: clamp(2.4rem, 5vw, 3.4rem); font-weight: 800; color: var(--ink);
  line-height: 1.1; padding-bottom: .6rem;
}
.price-new::after {
  content: ""; position: absolute; left: 0; bottom: 0; width: 46px; height: 3px; border-radius: 999px;
  background: linear-gradient(90deg, var(--gold), var(--teal-bright));
}
.price-new small { font-family: var(--sans); font-size: 1rem; font-weight: 500; color: var(--ink-mute); }
.price-note { position: relative; font-size: .9rem; color: var(--ink-mute); max-width: 32ch; }
.price-note-wide { max-width: none; margin-top: 1.4rem; text-align: justify; }

.section-block { padding-block: clamp(2.5rem, 5vw, 4rem); }
.section-block h2 { font-size: clamp(1.8rem, 3vw, 2.4rem); }

.feature-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 1.1rem; margin-top: 1.8rem; }
.feature-card {
  display: flex; gap: 1.1rem; align-items: flex-start;
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-md);
  backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
  padding: 1.4rem 1.5rem;
  transition: transform .4s var(--ease), box-shadow .4s var(--ease), border-color .4s var(--ease);
}
.feature-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-md), var(--glow-teal); border-color: rgba(62,230,255,.3); }
[data-theme="light"] .feature-card:hover { border-color: rgba(10,119,131,.32); }
.feature-card svg {
  color: var(--teal-bright); flex-shrink: 0;
  width: 44px; height: 44px; padding: 11px; box-sizing: border-box;
  border-radius: 50%; background: var(--teal-tint);
  transition: background .4s var(--ease), color .4s var(--ease), transform .4s var(--ease);
}
.feature-card:hover svg { background: linear-gradient(120deg, var(--teal), var(--teal-bright)); color: #04141a; transform: scale(1.06); }
[data-theme="light"] .feature-card:hover svg { color: #f5fbfc; }
.feature-card h3 { margin: 0 0 .25rem; font-family: var(--sans); font-weight: 700; font-size: .98rem; }
.feature-card p { margin: 0; font-size: .87rem; color: var(--ink-mute); text-align: left; }

.step-list { display: flex; flex-direction: column; margin-top: 1.8rem; counter-reset: step; }
.step-item {
  display: grid; grid-template-columns: auto 1fr; gap: 1.2rem;
  padding-block: 1.4rem; position: relative;
  counter-increment: step;
}
.step-item:first-child { padding-top: 0; }
.step-item:not(:last-child)::before {
  content: ""; position: absolute; left: 20px; top: 52px; bottom: -2px;
  width: 1px; background: linear-gradient(var(--teal-bright), var(--line));
}
.step-item .ic-wrap {
  width: 40px; height: 40px; border-radius: 50%; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  background: var(--teal-tint); color: var(--teal-bright);
  position: relative; z-index: 1;
}
.step-item .ic-wrap::after {
  content: counter(step, decimal-leading-zero);
  position: absolute; top: -8px; right: -8px;
  width: 20px; height: 20px; border-radius: 50%;
  background: var(--gold); color: var(--bg-void);
  font-family: var(--mono); font-size: .62rem; font-weight: 700;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 0 0 2px var(--bg);
}
.step-item h3 { margin: 0 0 .2rem; font-family: var(--sans); font-weight: 700; font-size: .98rem; }
.step-item p { margin: 0; font-size: .88rem; color: var(--ink-mute); }

.bank-card {
  position: relative; overflow: clip;
  display: flex; flex-wrap: wrap; align-items: center; gap: 1.6rem;
  background: var(--ink-band); color: var(--on-dark-mute);
  border: 1px solid var(--line-soft);
  border-radius: clamp(24px, 4vw, 36px); padding: clamp(1.8rem, 4vw, 2.6rem);
  margin-top: 2.2rem;
  box-shadow: var(--glow-gold);
}
.bank-card::before {
  content: ""; position: absolute; inset: -35% auto auto -10%; width: 50%; aspect-ratio: 1;
  background: radial-gradient(circle, rgba(255,207,102,.18), transparent 70%);
  pointer-events: none;
}
.bank-card .bank-icon {
  position: relative;
  width: 56px; height: 56px; border-radius: 50%; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  background: rgba(255,255,255,.08); color: var(--gold);
}
[data-theme="light"] .bank-card .bank-icon { background: rgba(18,20,28,.06); }
.bank-card h3 { position: relative; color: var(--on-dark); margin: 0 0 .4rem; font-family: var(--sans); font-size: 1.15rem; font-weight: 700; }
.bank-card strong { position: relative; color: var(--gold); font-family: var(--mono); font-size: 1.1rem; letter-spacing: .03em; }
.bank-card p { position: relative; margin: 0; font-size: .9rem; }

.download-cta {
  position: relative; overflow: clip;
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.5rem;
  background: var(--surface);
  border: 1px solid var(--line); border-left: 3px solid var(--gold);
  backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px);
  border-radius: clamp(24px, 4vw, 36px);
  padding: clamp(2rem, 4vw, 2.6rem); margin-block: 2.5rem;
}
.download-cta::after {
  content: ""; position: absolute; right: -6%; top: -30%; width: 40%; aspect-ratio: 1;
  background: radial-gradient(circle, var(--teal-tint), transparent 70%);
  pointer-events: none;
}
.download-cta h3 { position: relative; margin: 0 0 .3rem; }
.download-cta p { position: relative; margin: 0; color: var(--ink-mute); font-size: .95rem; }
.download-cta-actions { position: relative; display: flex; flex-wrap: wrap; gap: .9rem; }

.plan-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 1.4rem; margin-top: 2rem; }
.plan-card {
  position: relative; background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg);
  backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px);
  padding: clamp(1.8rem, 3vw, 2.2rem); text-align: center;
  transition: transform .35s var(--ease), box-shadow .35s var(--ease), margin .35s var(--ease), border-color .35s var(--ease);
}
.plan-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-md), var(--glow-teal); border-color: rgba(62,230,255,.3); }
[data-theme="light"] .plan-card:hover { border-color: rgba(10,119,131,.32); }
.plan-card.is-featured {
  border-color: rgba(255,207,102,.4); box-shadow: var(--shadow-lg), var(--glow-gold); overflow: clip;
  background: var(--surface-strong);
  padding-block: clamp(2.2rem, 3.6vw, 2.6rem);
}
[data-theme="light"] .plan-card.is-featured { border-color: rgba(168,105,15,.4); }
.plan-card.is-featured::before {
  content: ""; position: absolute; inset: -20% 20% auto auto; width: 60%; aspect-ratio: 1;
  background: radial-gradient(circle, var(--gold-tint), transparent 70%);
  pointer-events: none;
}
@media (min-width: 720px) {
  .plan-card.is-featured { margin-block: -1rem; }
}
.plan-badge {
  position: absolute; top: -14px; left: 50%; transform: translateX(-50%);
  background: linear-gradient(120deg, var(--teal), var(--teal-bright)); color: #04141a;
  font-family: var(--mono); font-size: .74rem; font-weight: 700;
  letter-spacing: .05em; text-transform: uppercase; padding: .4rem 1rem; border-radius: 999px;
  box-shadow: var(--shadow-sm);
}
[data-theme="light"] .plan-badge { color: #f5fbfc; }
.plan-card h3 { position: relative; margin: .4rem 0 .2rem; font-family: var(--sans); font-size: 1.3rem; }
.plan-price { position: relative; font-family: var(--sans); font-size: 2.1rem; font-weight: 800; color: var(--ink); margin: .6rem 0 .2rem; }
.plan-card.is-featured .plan-price { color: var(--gold); }
.plan-price span { font-family: var(--sans); font-size: .85rem; font-weight: 500; color: var(--ink-mute); }
.plan-card ul { position: relative; margin: 1.3rem 0 1.6rem; display: flex; flex-direction: column; gap: .65rem; }
.plan-card li { display: flex; align-items: center; gap: .55rem; font-size: .9rem; color: var(--ink-soft); text-align: left; }
.plan-card li svg { color: var(--teal-bright); flex-shrink: 0; }
.plan-card .btn { position: relative; }

.quote-footer-cta { text-align: center; padding-block: clamp(2.5rem, 5vw, 4rem); }
.quote-footer-cta .hero-cta { justify-content: center; margin-top: 1.6rem; }

/* ---------- Premium services slider ---------- */
.services-slider-section { padding-block: clamp(3rem, 6vw, 5rem); }
.services-slider {
  position: relative; overflow: clip;
  border-radius: var(--r-lg); box-shadow: var(--shadow-lg);
  background: var(--surface); border: 1px solid var(--line);
  margin-top: 2rem;
}
.services-slider:focus-visible { outline: 2px solid var(--teal-bright); outline-offset: 4px; }
.services-slider-track { display: flex; transition: transform .7s var(--ease); }
.slide {
  flex: 0 0 100%; display: grid; grid-template-columns: 1.1fr 1fr; align-items: stretch; min-height: 420px;
}
.slide[aria-hidden="true"] { pointer-events: none; }
.slide-media { position: relative; overflow: hidden; }
.slide-media img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  transform: scale(1.02); transition: transform 8s linear;
}
.slide-media::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(100deg, var(--bg-void) -10%, transparent 45%);
  opacity: .55; pointer-events: none;
}
[data-theme="light"] .slide-media::after { opacity: .18; }
.services-slider-track:not(.is-paused) .slide[aria-hidden="false"] .slide-media img { transform: scale(1.09); }
.slide-content {
  position: relative; display: flex; flex-direction: column; justify-content: center; gap: .9rem;
  padding: clamp(2rem, 4vw, 3.2rem);
}
.slide-eyebrow {
  font-family: var(--mono); font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
  color: var(--teal-bright);
}
.slide-content h3 { margin: 0; font-size: clamp(1.5rem, 2.6vw, 2.1rem); }
.slide-content p { margin: 0; color: var(--ink-mute); font-size: .98rem; max-width: 44ch; }
.slide-content .btn { align-self: flex-start; margin-top: .4rem; }

.slider-arrow {
  position: absolute; top: 50%; transform: translateY(-50%); z-index: 2;
  width: 42px; height: 42px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
  background: rgba(6,7,11,.45); color: var(--on-dark); border: 1px solid rgba(255,255,255,.16);
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
  cursor: pointer; transition: background .3s var(--ease), transform .3s var(--ease);
}
.slider-arrow:hover { background: rgba(6,7,11,.7); transform: translateY(-50%) scale(1.06); }
[data-theme="light"] .slider-arrow { background: rgba(255,255,255,.65); color: var(--ink); border-color: rgba(16,19,28,.1); }
[data-theme="light"] .slider-arrow:hover { background: rgba(255,255,255,.9); }
.slider-prev { left: 1rem; }
.slider-next { right: 1rem; }

.slider-dots { position: absolute; left: 50%; bottom: 1.1rem; transform: translateX(-50%); z-index: 2; display: flex; gap: .5rem; }
.slider-dot {
  width: 9px; height: 9px; border-radius: 50%; padding: 0; border: none; cursor: pointer;
  background: rgba(255,255,255,.35); transition: background .3s var(--ease), transform .3s var(--ease), width .3s var(--ease);
}
[data-theme="light"] .slider-dot { background: rgba(16,19,28,.25); }
.slider-dot.is-active { width: 22px; border-radius: 999px; background: linear-gradient(90deg, var(--teal-bright), var(--gold)); }

@media (max-width: 860px) {
  .slide { grid-template-columns: 1fr; min-height: 0; }
  .slide-media { aspect-ratio: 16/10; }
  .slider-arrow { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .price-badge::after { animation: none; }
  .services-slider-track { transition: none; }
  .slide-media img { transition: none; transform: none !important; }
}
