/* Site-wide theme captured from the homepage visual system */
:root {
  --home-blue: #1b3453;
  --home-blue-bright: #407ab8;
  --home-black: #05080d;
  --home-white: #f2f2ef;
  --home-ink: #101923;
  --home-text: #f8fbff;
  --home-muted: rgba(238, 246, 255, 0.68);
  --home-light-muted: rgba(16, 25, 35, 0.64);
  --home-accent: #73b9f2;
  --glass-clear: rgba(255, 255, 255, 0.09);
  --glass-blue: rgba(27, 52, 83, 0.68);
  --glass-smoke: rgba(5, 12, 21, 0.76);
  --glass-border: rgba(235, 246, 255, 0.2);
  --glass-border-dark: rgba(16, 25, 35, 0.14);
  --glass-shadow: 0 24px 64px -38px rgba(0, 0, 0, 0.72);
  --glass-filter: blur(24px) saturate(140%) contrast(104%);
  --home-container: 1240px;
  --home-gutter: 24px;
  --home-section-space: 96px;
}

body.site-theme {
  background-color: var(--home-white) !important;
  color: var(--home-ink) !important;
}

body.site-theme main {
  background-color: transparent;
  color: inherit;
}

body.site-theme .container-page {
  max-width: var(--home-container);
}

body.site-theme .divider {
  border-color: var(--glass-border-dark) !important;
}

/* Brand utility overrides (CDN Tailwind brand token) */
body.site-theme .text-brand,
body.site-theme [class*="text-brand"] {
  color: var(--home-blue-bright) !important;
}

body.site-theme .bg-brand,
body.site-theme [class*="bg-brand"] {
  background-color: rgba(64, 122, 184, 0.72) !important;
}

body.site-theme [class*="border-brand"] {
  border-color: rgba(64, 122, 184, 0.4) !important;
}

body.site-theme .from-brand,
body.site-theme [class*="from-brand"] {
  --tw-gradient-from: #407ab8 !important;
  --tw-gradient-to: rgba(64, 122, 184, 0) !important;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to) !important;
}

body.site-theme [class*="to-[#1f7ee8]"] {
  --tw-gradient-to: #1b3453 !important;
}

/* Brand-blue icons/accents are unreadable on the dark surfaces (hero band, dark glass
   cards, forms, slate CTA panel) — flip them to white there. On light sections the
   base rule above keeps them --home-blue-bright, which reads fine on #f2f2ef. */
body.site-theme section.hero-glow [class*="text-brand"],
body.site-theme [class*="bg-[#0a0a0a]"] [class*="text-brand"],
body.site-theme [class*="bg-white/[.03]"] [class*="text-brand"],
body.site-theme [class*="bg-white/[.05]"] [class*="text-brand"],
body.site-theme [class*="bg-white/5"] [class*="text-brand"],
body.site-theme [class*="bg-brand/[.06]"] [class*="text-brand"],
body.site-theme [class*="bg-brand/10"] [class*="text-brand"],
body.site-theme form[class*="bg-[#0a0a0a]"] [class*="text-brand"],
body.site-theme .home-final-cta [class*="text-brand"] {
  color: #fff !important;
}

/* Kill old aurora / glow decoration in favor of solid palette */
body.site-theme .aurora-bg,
body.site-theme .grad-blue {
  display: none !important;
}

body.site-theme .hero-grid-overlay {
  display: none !important;
}

/* Page heroes — kept as the deep navy plane + soft light washes, same as the footer/nav accent */
body.site-theme > header + section.hero-glow,
body.site-theme section.hero-glow {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: #07131f !important;
  background-image: none !important;
}

body.site-theme section.hero-glow::before,
body.site-theme section.hero-glow::after {
  content: '';
  position: absolute;
  z-index: 0;
  border-radius: 50%;
  pointer-events: none;
  filter: blur(110px);
}

body.site-theme section.hero-glow::before {
  right: -8vw;
  bottom: -28vh;
  width: 78vw;
  height: 68vh;
  background-color: #407ab8;
  opacity: 0.88;
}

body.site-theme section.hero-glow::after {
  left: -16vw;
  bottom: -34vh;
  width: 64vw;
  height: 64vh;
  background-color: #f2f2ef;
  opacity: 0.55;
}

body.site-theme section.hero-glow > * {
  position: relative;
  z-index: 1;
}

body.site-theme section.hero-glow h1,
body.site-theme section.hero-glow h2,
body.site-theme section.hero-glow h3 {
  color: #fff !important;
}

body.site-theme section.hero-glow p,
body.site-theme section.hero-glow .eyebrow {
  color: var(--home-muted) !important;
}

body.site-theme section.hero-glow .eyebrow {
  color: rgba(218, 237, 252, 0.55) !important;
}

/* Bigger, bolder hero type to match the homepage scale */
body.site-theme section.hero-glow h1 {
  font-size: clamp(40px, 6vw, 76px) !important;
  line-height: 1.1 !important;
  letter-spacing: -0.03em !important;
}

/* ===================== CONTENT SECTIONS — off-white, same tone as the homepage's light sections ===================== */
body.site-theme > section[class*="bg-[#050505]"],
body.site-theme section[class*="bg-[#050505]"],
body.site-theme main[class*="bg-[#050505]"],
body.site-theme > section[class*="bg-[#080808]"],
body.site-theme section[class*="bg-[#080808]"] {
  background-color: var(--home-white) !important;
  background-image: none !important;
  color: var(--home-ink) !important;
}

body.site-theme section:not(.hero-glow) h2 {
  font-size: clamp(28px, 3.6vw, 44px) !important;
  line-height: 1.15 !important;
}

body.site-theme h2.text-\[24px\].md\:text-\[30px\].font-semibold.tracking-tight.text-white {
  margin-bottom: 13px;
}

/* Base copy on the light sections goes ink; cards (below) restore the light theme on their own dark glass */
body.site-theme section:not(.hero-glow) [class~="text-white"] {
  color: var(--home-ink) !important;
}

body.site-theme section:not(.hero-glow) [class*="text-white/"] {
  color: var(--home-light-muted) !important;
}

body.site-theme section:not(.hero-glow) [class*="border-white/10"],
body.site-theme section:not(.hero-glow) [class*="border-white/15"],
body.site-theme section:not(.hero-glow) [class*="border-white/20"],
body.site-theme section:not(.hero-glow) [class*="border-white/25"],
body.site-theme section:not(.hero-glow) [class*="divide-white/10"] {
  border-color: var(--glass-border-dark) !important;
}

/* ===================== GLASS CARDS — stay dark navy glass so they still pop off the new light background =====================
   Every selector below repeats each pattern once bare (matches cards inside the dark hero/footer/final-cta,
   which are never touched by the broad light-section rules above) and once prefixed with "section" (matches
   cards inside a plain light section — this form ties the broad rules' specificity and, being declared later
   in the file, wins the cascade so the card stays dark instead of flipping to ink). */
body.site-theme [class*="bg-[#0a0a0a]"],
body.site-theme [class*="bg-white/[.03]"],
body.site-theme [class*="bg-white/[.05]"],
body.site-theme [class*="bg-white/5"],
body.site-theme [class*="from-white/[.05]"],
body.site-theme [class*="bg-black/30"],
body.site-theme [class*="bg-black/40"],
body.site-theme section [class*="bg-[#0a0a0a]"],
body.site-theme section [class*="bg-white/[.03]"],
body.site-theme section [class*="bg-white/[.05]"],
body.site-theme section [class*="bg-white/5"],
body.site-theme section [class*="from-white/[.05]"],
body.site-theme section [class*="bg-black/30"],
body.site-theme section [class*="bg-black/40"] {
  border-color: rgba(255, 255, 255, 0.3) !important;
  background-color: rgba(20, 39, 64, 0.52) !important;
  background-image: linear-gradient(152deg, rgba(255, 255, 255, 0.13) 0%, rgba(255, 255, 255, 0.03) 42%, rgba(64, 122, 184, 0.15) 100%) !important;
  box-shadow:
    inset 0 1.5px 0 rgba(255, 255, 255, 0.42),
    inset 0 -1px 0 rgba(255, 255, 255, 0.1),
    inset 1px 0 0 rgba(255, 255, 255, 0.1),
    inset -1px 0 0 rgba(255, 255, 255, 0.06),
    0 8px 24px -12px rgba(27, 52, 83, 0.35),
    0 28px 68px -36px rgba(27, 52, 83, 0.6) !important;
  -webkit-backdrop-filter: blur(40px) saturate(180%) contrast(106%);
  backdrop-filter: blur(40px) saturate(180%) contrast(106%);
}

body.site-theme [class*="bg-black/30"],
body.site-theme [class*="bg-black/40"],
body.site-theme section [class*="bg-black/30"],
body.site-theme section [class*="bg-black/40"] {
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
}

body.site-theme [class*="bg-[#0a0a0a]"] [class~="text-white"],
body.site-theme [class*="bg-white/[.03]"] [class~="text-white"],
body.site-theme [class*="bg-white/[.05]"] [class~="text-white"],
body.site-theme [class*="bg-white/5"] [class~="text-white"],
body.site-theme [class*="from-white/[.05]"] [class~="text-white"],
body.site-theme [class*="bg-black/30"][class~="text-white"],
body.site-theme [class*="bg-black/40"][class~="text-white"],
body.site-theme [class*="bg-[#0a0a0a]"] h1,
body.site-theme [class*="bg-[#0a0a0a]"] h2,
body.site-theme [class*="bg-[#0a0a0a]"] h3,
body.site-theme [class*="bg-[#0a0a0a]"] h4,
body.site-theme [class*="bg-white/[.03]"] h1,
body.site-theme [class*="bg-white/[.03]"] h2,
body.site-theme [class*="bg-white/[.03]"] h3,
body.site-theme [class*="bg-white/[.03]"] h4,
body.site-theme [class*="bg-white/[.05]"] h1,
body.site-theme [class*="bg-white/[.05]"] h2,
body.site-theme [class*="bg-white/[.05]"] h3,
body.site-theme [class*="bg-white/[.05]"] h4,
body.site-theme section [class*="bg-[#0a0a0a]"] [class~="text-white"],
body.site-theme section [class*="bg-white/[.03]"] [class~="text-white"],
body.site-theme section [class*="bg-white/[.05]"] [class~="text-white"],
body.site-theme section [class*="bg-white/5"] [class~="text-white"],
body.site-theme section [class*="from-white/[.05]"] [class~="text-white"],
body.site-theme section [class*="bg-black/30"][class~="text-white"],
body.site-theme section [class*="bg-black/40"][class~="text-white"],
body.site-theme section [class*="bg-[#0a0a0a]"] h1,
body.site-theme section [class*="bg-[#0a0a0a]"] h2,
body.site-theme section [class*="bg-[#0a0a0a]"] h3,
body.site-theme section [class*="bg-[#0a0a0a]"] h4,
body.site-theme section [class*="bg-white/[.03]"] h1,
body.site-theme section [class*="bg-white/[.03]"] h2,
body.site-theme section [class*="bg-white/[.03]"] h3,
body.site-theme section [class*="bg-white/[.03]"] h4,
body.site-theme section [class*="bg-white/[.05]"] h1,
body.site-theme section [class*="bg-white/[.05]"] h2,
body.site-theme section [class*="bg-white/[.05]"] h3,
body.site-theme section [class*="bg-white/[.05]"] h4 {
  color: #fff !important;
}

body.site-theme [class*="bg-[#0a0a0a]"] [class*="text-white/"],
body.site-theme [class*="bg-white/[.03]"] [class*="text-white/"],
body.site-theme [class*="bg-white/[.05]"] [class*="text-white/"],
body.site-theme [class*="bg-white/5"] [class*="text-white/"],
body.site-theme [class*="from-white/[.05]"] [class*="text-white/"],
body.site-theme [class*="bg-black/30"][class*="text-white/"],
body.site-theme [class*="bg-black/40"][class*="text-white/"],
body.site-theme section [class*="bg-[#0a0a0a]"] [class*="text-white/"],
body.site-theme section [class*="bg-white/[.03]"] [class*="text-white/"],
body.site-theme section [class*="bg-white/[.05]"] [class*="text-white/"],
body.site-theme section [class*="bg-white/5"] [class*="text-white/"],
body.site-theme section [class*="from-white/[.05]"] [class*="text-white/"],
body.site-theme section [class*="bg-black/30"][class*="text-white/"],
body.site-theme section [class*="bg-black/40"][class*="text-white/"] {
  color: var(--home-muted) !important;
}

body.site-theme [class*="bg-[#0a0a0a]"] [class*="border-white"],
body.site-theme [class*="bg-white/[.03]"] [class*="border-white"],
body.site-theme [class*="bg-white/[.05]"] [class*="border-white"],
body.site-theme [class*="bg-black/30"][class*="border-white"],
body.site-theme [class*="bg-black/40"][class*="border-white"],
body.site-theme section [class*="bg-[#0a0a0a]"] [class*="border-white"],
body.site-theme section [class*="bg-white/[.03]"] [class*="border-white"],
body.site-theme section [class*="bg-white/[.05]"] [class*="border-white"],
body.site-theme section [class*="bg-black/30"][class*="border-white"],
body.site-theme section [class*="bg-black/40"][class*="border-white"] {
  border-color: var(--glass-border) !important;
}

body.site-theme [class*="bg-brand/[.06]"],
body.site-theme [class*="bg-brand/10"],
body.site-theme section [class*="bg-brand/[.06]"],
body.site-theme section [class*="bg-brand/10"] {
  border-color: rgba(115, 185, 242, 0.42) !important;
  background-color: rgba(50, 96, 145, 0.42) !important;
  background-image: linear-gradient(152deg, rgba(255, 255, 255, 0.14) 0%, rgba(255, 255, 255, 0.03) 45%, rgba(115, 185, 242, 0.16) 100%) !important;
  box-shadow:
    inset 0 1.5px 0 rgba(255, 255, 255, 0.45),
    inset 0 -1px 0 rgba(255, 255, 255, 0.1),
    0 8px 24px -12px rgba(27, 52, 83, 0.35),
    0 26px 60px -36px rgba(27, 52, 83, 0.65) !important;
  -webkit-backdrop-filter: blur(40px) saturate(180%) contrast(106%);
  backdrop-filter: blur(40px) saturate(180%) contrast(106%);
}

/* ===================== PRIMARY / SECONDARY CTAs — dark navy fill on the new light sections ===================== */
body.site-theme a.rounded-md.bg-white,
body.site-theme a[class*="bg-white"][class*="text-black"],
body.site-theme a.rounded-full[class*="bg-gradient"] {
  border: 1px solid var(--home-blue) !important;
  border-radius: 999px !important;
  background: var(--home-blue) !important;
  background-image: none !important;
  color: #fff !important;
  box-shadow: 0 14px 34px -22px rgba(27, 52, 83, 0.45) !important;
}

body.site-theme a.rounded-md.bg-white:hover,
body.site-theme a[class*="bg-white"][class*="text-black"]:hover,
body.site-theme a.rounded-full[class*="bg-gradient"]:hover {
  background: var(--home-blue-bright) !important;
}

body.site-theme a.rounded-md[class*="border-white"],
body.site-theme a.rounded-md[class*="bg-white/5"],
body.site-theme a.rounded-md[class*="bg-white/[.05]"] {
  border-color: var(--glass-border-dark) !important;
  border-radius: 999px !important;
  background-color: rgba(16, 25, 35, 0.05) !important;
  color: var(--home-ink) !important;
  box-shadow: none !important;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}

body.site-theme a.rounded-md[class*="border-white"]:hover,
body.site-theme a.rounded-md[class*="bg-white/5"]:hover,
body.site-theme a.rounded-md[class*="bg-white/[.05]"]:hover {
  background-color: rgba(16, 25, 35, 0.09) !important;
}

/* Restore the original light-pill / dark-glass CTA treatment specifically inside the still-dark hero band */
body.site-theme section.hero-glow a.rounded-md.bg-white,
body.site-theme section.hero-glow a[class*="bg-white"][class*="text-black"],
body.site-theme section.hero-glow a.rounded-full[class*="bg-gradient"] {
  border: 1px solid rgba(255, 255, 255, 0.72) !important;
  background: #f2f2ef !important;
  color: #13253a !important;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.55),
    0 14px 34px -22px rgba(0, 0, 0, 0.55) !important;
}

body.site-theme section.hero-glow a.rounded-md.bg-white:hover,
body.site-theme section.hero-glow a[class*="bg-white"][class*="text-black"]:hover,
body.site-theme section.hero-glow a.rounded-full[class*="bg-gradient"]:hover {
  background: #fff !important;
}

body.site-theme section.hero-glow a.rounded-md[class*="border-white"],
body.site-theme section.hero-glow a.rounded-md[class*="bg-white/5"],
body.site-theme section.hero-glow a.rounded-md[class*="bg-white/[.05]"] {
  border-color: var(--glass-border) !important;
  background-color: rgba(5, 12, 21, 0.34) !important;
  color: #fff !important;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.12),
    0 14px 34px -24px rgba(0, 0, 0, 0.5) !important;
  -webkit-backdrop-filter: blur(16px) saturate(135%);
  backdrop-filter: blur(16px) saturate(135%);
}

/* Same restoration wherever an outline CTA sits on a dark glass card or the dark final-CTA slate panel */
body.site-theme .home-final-cta a.rounded-md[class*="border-white"],
body.site-theme .home-final-cta a.rounded-md[class*="bg-white/5"],
body.site-theme .home-final-cta a.rounded-md[class*="bg-white/[.05]"],
body.site-theme [class*="bg-[#0a0a0a]"] a.rounded-md[class*="border-white"],
body.site-theme [class*="bg-[#0a0a0a]"] a.rounded-md[class*="bg-white/5"],
body.site-theme [class*="bg-[#0a0a0a]"] a.rounded-md[class*="bg-white/[.05]"],
body.site-theme [class*="bg-white/[.03]"] a.rounded-md[class*="border-white"],
body.site-theme [class*="bg-white/[.03]"] a.rounded-md[class*="bg-white/5"],
body.site-theme [class*="bg-white/[.05]"] a.rounded-md[class*="border-white"],
body.site-theme [class*="bg-white/[.05]"] a.rounded-md[class*="bg-white/5"] {
  border-color: var(--glass-border) !important;
  background-color: rgba(5, 12, 21, 0.34) !important;
  color: #fff !important;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.12),
    0 14px 34px -24px rgba(0, 0, 0, 0.5) !important;
  -webkit-backdrop-filter: blur(16px) saturate(135%);
  backdrop-filter: blur(16px) saturate(135%);
}

body.site-theme .home-final-cta a.rounded-md[class*="border-white"]:hover,
body.site-theme [class*="bg-[#0a0a0a]"] a.rounded-md[class*="border-white"]:hover,
body.site-theme [class*="bg-white/[.03]"] a.rounded-md[class*="border-white"]:hover,
body.site-theme [class*="bg-white/[.05]"] a.rounded-md[class*="border-white"]:hover {
  background-color: rgba(5, 12, 21, 0.5) !important;
}

/* Final CTA band — same slate promo card as homepage */
body.site-theme .home-final-cta {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background-color: var(--home-white) !important;
  border-color: transparent !important;
}

body.site-theme .home-final-cta > .container-page {
  position: relative;
  z-index: 1;
}

body.site-theme .home-final-cta .container-page > div {
  position: relative;
  overflow: hidden;
  border-color: rgba(231, 239, 245, 0.34) !important;
  background-color: #71818e !important;
  background-image: none !important;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.2),
    inset 0 -1px 0 rgba(18, 31, 42, 0.18),
    0 24px 54px -34px rgba(0, 0, 0, 0.58) !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}

body.site-theme .home-final-cta .container-page > div::before,
body.site-theme .home-final-cta .container-page > div::after {
  content: '';
  position: absolute;
  z-index: 0;
  pointer-events: none;
}

body.site-theme .home-final-cta .container-page > div::before {
  width: clamp(340px, 46vw, 620px);
  height: clamp(150px, 18vw, 230px);
  right: -90px;
  bottom: 24px;
  border-radius: 999px;
  background-color: rgba(45, 90, 137, 0.28) !important;
  transform: rotate(-42deg);
}

body.site-theme .home-final-cta .container-page > div::after {
  width: clamp(230px, 31vw, 420px);
  height: clamp(230px, 31vw, 420px);
  right: -90px;
  bottom: -190px;
  border-radius: 50%;
  background-color: rgba(224, 233, 238, 0.2) !important;
}

body.site-theme .home-final-cta .aurora-bg {
  position: absolute;
  z-index: 1;
  inset: 0;
  display: block !important;
  background-color: transparent !important;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='.52'/%3E%3C/svg%3E") !important;
  background-repeat: repeat !important;
  background-size: 180px 180px !important;
  mix-blend-mode: soft-light;
  opacity: 0.18;
  pointer-events: none;
}

body.site-theme .home-final-cta h2 {
  color: #fff !important;
}

body.site-theme .home-final-cta .eyebrow {
  color: rgba(244, 249, 255, 0.78) !important;
}

body.site-theme .home-final-cta .relative.z-10 > p {
  color: rgba(244, 249, 255, 0.78) !important;
}

body.site-theme .home-final-cta .text-brand,
body.site-theme .home-final-cta [class*="text-brand"] {
  color: #fff !important;
}

/* Forms — kept as a dark glass panel, consistent with the card treatment above.
   The [class] variants out-rank the bg-black/40 card rule so inputs never
   inherit the card sheen gradient or drop shadow. */
body.site-theme input,
body.site-theme select,
body.site-theme textarea,
body.site-theme input[class],
body.site-theme select[class],
body.site-theme textarea[class] {
  border-color: var(--glass-border) !important;
  background-color: rgba(5, 12, 21, 0.45) !important;
  background-image: none !important;
  color: var(--home-text) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06) !important;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}

body.site-theme input::placeholder,
body.site-theme textarea::placeholder {
  color: rgba(238, 246, 255, 0.42);
}

body.site-theme form[class*="bg-[#0a0a0a]"],
body.site-theme form.rounded-2xl {
  border-color: rgba(255, 255, 255, 0.3) !important;
  background-color: rgba(16, 42, 64, 0.55) !important;
  background-image: linear-gradient(152deg, rgba(255, 255, 255, 0.1) 0%, rgba(255, 255, 255, 0.02) 45%, rgba(64, 122, 184, 0.14) 100%) !important;
  box-shadow:
    inset 0 1.5px 0 rgba(255, 255, 255, 0.4),
    inset 0 -1px 0 rgba(255, 255, 255, 0.08),
    0 28px 68px -36px rgba(27, 52, 83, 0.6) !important;
  -webkit-backdrop-filter: blur(40px) saturate(180%) contrast(106%);
  backdrop-filter: blur(40px) saturate(180%) contrast(106%);
}

body.site-theme button[type="submit"],
body.site-theme form button.bg-brand,
body.site-theme form button[class*="bg-brand"] {
  border: 1px solid rgba(255, 255, 255, 0.22) !important;
  border-radius: 999px !important;
  background-color: rgba(64, 122, 184, 0.85) !important;
  color: #fff !important;
}

/* Footer — same navy directory layout as homepage, unchanged */
body.site-theme .home-footer {
  padding-top: 72px;
  padding-bottom: 28px;
  border-top: 1px solid rgba(235, 246, 255, 0.14);
  background-color: var(--home-blue) !important;
  color: var(--home-text);
}

body.site-theme .home-footer-directory {
  display: grid;
  grid-template-columns: 1.15fr repeat(4, minmax(0, 1fr));
  overflow: hidden;
  border: 1px solid rgba(235, 246, 255, 0.16);
  border-radius: 18px;
  background-color: rgba(5, 12, 21, 0.24);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.08),
    0 30px 74px -50px rgba(0, 0, 0, 0.72);
  -webkit-backdrop-filter: blur(22px) saturate(135%);
  backdrop-filter: blur(22px) saturate(135%);
}

body.site-theme .home-footer-brand,
body.site-theme .home-footer-column {
  min-height: 370px;
  padding: 26px 22px;
  border-right: 1px solid rgba(235, 246, 255, 0.12);
}

body.site-theme .home-footer-column:last-child {
  border-right: 0;
}

body.site-theme .home-footer-label,
body.site-theme .home-footer-subhead {
  color: rgba(218, 237, 252, 0.5);
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

body.site-theme .home-footer-logo {
  display: inline-flex;
  margin-top: 24px;
  align-items: center;
  gap: 10px;
  color: #fff;
  font-size: 18px;
  font-weight: 650;
  letter-spacing: -0.025em;
}

body.site-theme .home-footer-logo img {
  width: 38px;
  height: 38px;
}

body.site-theme .home-footer-copy {
  max-width: 220px;
  margin-top: 18px;
  color: rgba(238, 246, 255, 0.58);
  font-size: 12px;
  line-height: 1.65;
}

body.site-theme .home-footer-connect-label {
  margin-top: 34px;
  padding-top: 18px;
  border-top: 1px solid rgba(235, 246, 255, 0.12);
}

body.site-theme .home-footer-socials {
  display: grid;
  margin-top: 12px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
}

body.site-theme .home-footer-socials a {
  display: grid;
  min-height: 58px;
  place-items: center;
  gap: 4px;
  border: 1px solid rgba(235, 246, 255, 0.14);
  border-radius: 9px;
  background-color: rgba(255, 255, 255, 0.055);
  color: rgba(238, 246, 255, 0.7);
  font-size: 8px;
  transition: border-color 0.2s ease, background-color 0.2s ease, color 0.2s ease;
}

body.site-theme .home-footer-socials a:hover {
  border-color: rgba(115, 185, 242, 0.48);
  background-color: rgba(64, 122, 184, 0.22);
  color: #fff;
}

body.site-theme .home-footer-socials svg {
  width: 16px;
  height: 16px;
}

body.site-theme .home-footer-column {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

body.site-theme .home-footer-column .home-footer-label {
  margin-bottom: 12px;
}

body.site-theme .home-footer-column a {
  width: fit-content;
  color: rgba(238, 246, 255, 0.67);
  font-size: 11px;
  line-height: 1.45;
  transition: color 0.2s ease, transform 0.2s ease;
}

body.site-theme .home-footer-column a:hover {
  color: #fff;
  transform: translateX(2px);
}

body.site-theme .home-footer-subhead {
  margin-top: 12px;
  padding-top: 14px;
  border-top: 1px solid rgba(235, 246, 255, 0.1);
}

body.site-theme .home-footer-bottom {
  display: flex;
  padding-top: 22px;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  color: rgba(238, 246, 255, 0.4);
  font-size: 10px;
}

body.site-theme .home-footer-bottom a {
  color: rgba(238, 246, 255, 0.4);
}

body.site-theme .home-footer-bottom a:hover {
  color: #fff;
}

@media (max-width: 900px) {
  body.site-theme .home-footer-directory {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.site-theme .home-footer-brand {
    grid-column: 1 / -1;
  }

  body.site-theme .home-footer-brand,
  body.site-theme .home-footer-column {
    min-height: 0;
    border-right: 1px solid rgba(235, 246, 255, 0.12);
    border-bottom: 1px solid rgba(235, 246, 255, 0.12);
  }

  body.site-theme .home-footer-column:nth-child(3),
  body.site-theme .home-footer-column:nth-child(5) {
    border-right: 0;
  }
}

@media (max-width: 560px) {
  body.site-theme .home-footer {
    padding-top: 56px;
  }

  body.site-theme .home-footer-directory {
    grid-template-columns: 1fr;
  }

  body.site-theme .home-footer-brand,
  body.site-theme .home-footer-column {
    grid-column: auto;
    padding: 24px 20px;
    border-right: 0;
  }

  body.site-theme .home-footer-bottom {
    align-items: flex-start;
    flex-direction: column;
  }

  body.site-theme .home-footer-bottom > div {
    flex-wrap: wrap;
    gap: 10px 18px;
  }
}

/* Article / prose pages — direct page copy, so it follows the ink convention like other section-level text */
body.site-theme article h1,
body.site-theme article h2,
body.site-theme article h3,
body.site-theme .prose h1,
body.site-theme .prose h2,
body.site-theme .prose h3,
body.site-theme .prose-article h2,
body.site-theme .prose-article h3 {
  color: var(--home-ink);
}

body.site-theme article p,
body.site-theme .prose p,
body.site-theme .prose li,
body.site-theme .prose-article p,
body.site-theme .prose-article li {
  color: var(--home-light-muted);
}

body.site-theme .prose-article a {
  color: var(--home-blue-bright);
}

body.site-theme .prose-article a:hover {
  color: var(--home-blue);
}

body.site-theme .prose-article blockquote {
  border-left-color: rgba(64, 122, 184, 0.4) !important;
  color: var(--home-light-muted) !important;
}

body.site-theme .toc-link.active {
  border-color: var(--home-blue-bright) !important;
  color: var(--home-ink) !important;
}

/* Details / FAQ blocks on inner pages (legacy <details> markup, if any remains) */
body.site-theme details summary {
  color: var(--home-ink) !important;
}

body.site-theme details p {
  color: var(--home-light-muted) !important;
}

/* FAQ accordion — same frosted-glass card component as the homepage's FAQ section */
body.site-theme .faq-list {
  display: grid;
  gap: 10px;
}

body.site-theme .faq-item {
  overflow: hidden;
  border: 1px solid rgba(27, 52, 83, 0.16) !important;
  border-radius: 17px;
  background-color: rgba(255, 255, 255, 0.4) !important;
  background-image: linear-gradient(152deg, rgba(255, 255, 255, 0.65) 0%, rgba(255, 255, 255, 0.2) 55%, rgba(115, 185, 242, 0.12) 100%) !important;
  color: var(--home-ink) !important;
  box-shadow:
    inset 0 1.5px 0 rgba(255, 255, 255, 0.95),
    inset 0 -1px 0 rgba(255, 255, 255, 0.35),
    0 8px 22px -14px rgba(27, 52, 83, 0.28),
    0 24px 58px -40px rgba(27, 52, 83, 0.52) !important;
  -webkit-backdrop-filter: blur(36px) saturate(165%);
  backdrop-filter: blur(36px) saturate(165%);
  transition: border-color 0.25s ease, box-shadow 0.25s ease;
}

body.site-theme .faq-item.is-open {
  border-color: rgba(64, 122, 184, 0.32) !important;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.94),
    0 26px 58px -42px rgba(27, 52, 83, 0.58) !important;
}

body.site-theme .faq-question {
  display: grid;
  width: 100%;
  grid-template-columns: 34px minmax(0, 1fr) 32px;
  gap: 12px;
  align-items: center;
  padding: 18px 18px 18px 14px;
  border: 0;
  background: none;
  color: var(--home-ink);
  text-align: left;
  cursor: pointer;
  font: inherit;
}

body.site-theme .faq-number {
  color: var(--home-blue-bright);
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  font-weight: 600;
  letter-spacing: 0.08em;
}

body.site-theme .faq-question > span:nth-child(2) {
  font-size: 14px;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: -0.015em;
}

body.site-theme .faq-control {
  display: grid;
  width: 28px;
  height: 28px;
  place-items: center;
  border: 1px solid rgba(27, 52, 83, 0.14);
  border-radius: 50%;
  background-color: rgba(27, 52, 83, 0.03);
  color: var(--home-blue);
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  font-weight: 400;
  transition: background-color 0.25s ease, color 0.25s ease, transform 0.25s ease;
}

body.site-theme .faq-item.is-open .faq-control {
  border-color: var(--home-blue);
  background-color: var(--home-blue);
  color: #fff;
}

body.site-theme .faq-answer {
  display: grid;
  grid-template-rows: 0fr;
  opacity: 0;
  transition: grid-template-rows 0.38s cubic-bezier(.22, 1, .36, 1), opacity 0.25s ease;
}

body.site-theme .faq-answer > div {
  overflow: hidden;
}

body.site-theme .faq-item.is-open .faq-answer {
  grid-template-rows: 1fr;
  opacity: 1;
}

body.site-theme .faq-answer p {
  max-width: 68ch;
  padding: 0 20px 22px 60px;
  color: var(--home-light-muted) !important;
  font-size: 13px;
  line-height: 1.72;
}

@media (max-width: 767px) {
  body.site-theme .faq-question {
    grid-template-columns: 28px minmax(0, 1fr) 28px;
    gap: 9px;
    padding: 16px 14px;
  }

  body.site-theme .faq-question > span:nth-child(2) {
    font-size: 13px;
  }

  body.site-theme .faq-answer p {
    padding: 0 18px 20px 51px;
    font-size: 12px;
  }
}

/* Chip / filter rows */
body.site-theme a[class*="bg-brand/10"],
body.site-theme a[class*="border-brand/40"] {
  border-color: rgba(64, 122, 184, 0.4) !important;
  background-color: rgba(64, 122, 184, 0.12) !important;
  color: var(--home-blue) !important;
}

/* Mega menu panels — smoke glass, unchanged (nav stays on the dark accent like the hero/footer) */
body.site-theme header.site-header .mega > div,
body.site-theme header.site-header #mobileMenu {
  border-color: rgba(210, 232, 250, 0.16) !important;
  background-color: rgba(5, 12, 21, 0.92) !important;
  background-image: none !important;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.08),
    0 24px 60px rgba(0, 0, 0, 0.45) !important;
  -webkit-backdrop-filter: blur(22px) saturate(140%);
  backdrop-filter: blur(22px) saturate(140%);
}

/* Soften table / list chrome */
body.site-theme table,
body.site-theme th,
body.site-theme td {
  border-color: var(--glass-border-dark) !important;
}

/* CMS article tables — keep real table layout */
body.site-theme .prose-article table,
body.site-theme .cms-content table {
  display: table !important;
  width: 100% !important;
  border-collapse: collapse !important;
}

body.site-theme .prose-article thead,
body.site-theme .cms-content thead {
  display: table-header-group !important;
}

body.site-theme .prose-article tbody,
body.site-theme .cms-content tbody {
  display: table-row-group !important;
}

body.site-theme .prose-article tr,
body.site-theme .cms-content tr {
  display: table-row !important;
}

body.site-theme .prose-article th,
body.site-theme .prose-article td,
body.site-theme .cms-content th,
body.site-theme .cms-content td {
  display: table-cell !important;
}

body.site-theme .prose-article .cms-table-wrap,
body.site-theme .prose-article figure.wp-block-table,
body.site-theme .cms-content .cms-table-wrap,
body.site-theme .cms-content figure.wp-block-table {
  display: block !important;
  width: 100% !important;
  overflow-x: auto !important;
  border: 1px solid var(--glass-border-dark) !important;
  border-radius: 14px;
  background-color: rgba(16, 25, 35, 0.03) !important;
  background-image: none !important;
  box-shadow: none !important;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}

body.site-theme .prose-article th,
body.site-theme .cms-content th {
  background-color: rgba(64, 122, 184, 0.14) !important;
  color: var(--home-ink) !important;
}

body.site-theme .prose-article td,
body.site-theme .cms-content td {
  color: var(--home-light-muted) !important;
  background-color: transparent !important;
}

body.site-theme .prose-article td:first-child,
body.site-theme .cms-content td:first-child {
  color: var(--home-ink) !important;
}

/* ===================== BLOG ARTICLE PAGES — opt out of the light theme, stay on the
   original dark reading surface. Every selector below adds the extra ".blog-post"
   class, which makes it strictly more specific than the light-theme rule it needs to
   override, so this works regardless of where it sits in the file. ===================== */
body.site-theme.blog-post {
  background-color: var(--home-black) !important;
  color: var(--home-text) !important;
}

body.site-theme.blog-post > section[class*="bg-[#050505]"],
body.site-theme.blog-post section[class*="bg-[#050505]"],
body.site-theme.blog-post main[class*="bg-[#050505]"],
body.site-theme.blog-post > section[class*="bg-[#080808]"],
body.site-theme.blog-post section[class*="bg-[#080808]"] {
  background-color: var(--home-black) !important;
  background-image: none !important;
  color: var(--home-text) !important;
}

body.site-theme.blog-post .divider {
  border-color: var(--glass-border) !important;
}

body.site-theme.blog-post section:not(.hero-glow) [class~="text-white"] {
  color: #fff !important;
}

body.site-theme.blog-post section:not(.hero-glow) [class*="text-white/"] {
  color: var(--home-muted) !important;
}

body.site-theme.blog-post section:not(.hero-glow) [class*="border-white/10"],
body.site-theme.blog-post section:not(.hero-glow) [class*="border-white/15"],
body.site-theme.blog-post section:not(.hero-glow) [class*="border-white/20"],
body.site-theme.blog-post section:not(.hero-glow) [class*="border-white/25"],
body.site-theme.blog-post section:not(.hero-glow) [class*="divide-white/10"] {
  border-color: var(--glass-border) !important;
}

body.site-theme.blog-post [class*="text-brand"] {
  color: var(--home-accent) !important;
}

/* CTAs go back to a single treatment everywhere on the page (no hero-only exception needed
   since the whole page is dark again) — same light-pill / dark-glass-outline pairing the
   rest of the site used before the light-theme pass. */
body.site-theme.blog-post a.rounded-md.bg-white,
body.site-theme.blog-post a[class*="bg-white"][class*="text-black"],
body.site-theme.blog-post a.rounded-full[class*="bg-gradient"] {
  border: 1px solid rgba(255, 255, 255, 0.72) !important;
  border-radius: 999px !important;
  background: #f2f2ef !important;
  background-image: none !important;
  color: #13253a !important;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.55),
    0 14px 34px -22px rgba(0, 0, 0, 0.55) !important;
}

body.site-theme.blog-post a.rounded-md.bg-white:hover,
body.site-theme.blog-post a[class*="bg-white"][class*="text-black"]:hover,
body.site-theme.blog-post a.rounded-full[class*="bg-gradient"]:hover {
  background: #fff !important;
}

body.site-theme.blog-post a.rounded-md[class*="border-white"],
body.site-theme.blog-post a.rounded-md[class*="bg-white/5"],
body.site-theme.blog-post a.rounded-md[class*="bg-white/[.05]"] {
  border-color: var(--glass-border) !important;
  border-radius: 999px !important;
  background-color: rgba(5, 12, 21, 0.34) !important;
  color: #fff !important;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.12),
    0 14px 34px -24px rgba(0, 0, 0, 0.5) !important;
  -webkit-backdrop-filter: blur(16px) saturate(135%);
  backdrop-filter: blur(16px) saturate(135%);
}

body.site-theme.blog-post article h1,
body.site-theme.blog-post article h2,
body.site-theme.blog-post article h3,
body.site-theme.blog-post .prose h1,
body.site-theme.blog-post .prose h2,
body.site-theme.blog-post .prose h3,
body.site-theme.blog-post .prose-article h2,
body.site-theme.blog-post .prose-article h3 {
  color: #fff !important;
}

body.site-theme.blog-post article p,
body.site-theme.blog-post .prose p,
body.site-theme.blog-post .prose li,
body.site-theme.blog-post .prose-article p,
body.site-theme.blog-post .prose-article li {
  color: var(--home-muted) !important;
}

body.site-theme.blog-post .prose-article a {
  color: var(--home-accent) !important;
}

body.site-theme.blog-post .prose-article a:hover {
  color: #fff !important;
}

body.site-theme.blog-post .prose-article blockquote {
  border-left-color: rgba(115, 185, 242, 0.5) !important;
  color: var(--home-muted) !important;
}

body.site-theme.blog-post .toc-link.active {
  border-color: var(--home-accent) !important;
  color: #fff !important;
}

body.site-theme.blog-post details summary {
  color: #fff !important;
}

body.site-theme.blog-post details p {
  color: var(--home-muted) !important;
}

body.site-theme.blog-post a[class*="bg-brand/10"],
body.site-theme.blog-post a[class*="border-brand/40"] {
  border-color: rgba(115, 185, 242, 0.4) !important;
  background-color: rgba(64, 122, 184, 0.22) !important;
  color: #fff !important;
}

body.site-theme.blog-post table,
body.site-theme.blog-post th,
body.site-theme.blog-post td {
  border-color: var(--glass-border) !important;
}

body.site-theme.blog-post .prose-article .cms-table-wrap,
body.site-theme.blog-post .prose-article figure.wp-block-table,
body.site-theme.blog-post .cms-content .cms-table-wrap,
body.site-theme.blog-post .cms-content figure.wp-block-table {
  border: 1px solid var(--glass-border) !important;
  background-color: var(--glass-clear) !important;
  background-image: none !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08) !important;
}

body.site-theme.blog-post .prose-article th,
body.site-theme.blog-post .cms-content th {
  background-color: rgba(64, 122, 184, 0.18) !important;
  color: #fff !important;
}

body.site-theme.blog-post .prose-article td,
body.site-theme.blog-post .cms-content td {
  color: var(--home-muted) !important;
  background-color: transparent !important;
}

body.site-theme.blog-post .prose-article td:first-child,
body.site-theme.blog-post .cms-content td:first-child {
  color: rgba(248, 251, 255, 0.92) !important;
}

/* FAQ accordion — the light frosted-glass treatment only makes sense on the light
   sections; on a dark article page it should read as the same dark glass as every
   other card on the page. */
body.site-theme.blog-post .faq-item {
  border: 1px solid var(--glass-border) !important;
  background-color: var(--glass-blue) !important;
  background-image: linear-gradient(152deg, rgba(255, 255, 255, 0.13) 0%, rgba(255, 255, 255, 0.03) 42%, rgba(64, 122, 184, 0.15) 100%) !important;
  color: #fff !important;
  box-shadow:
    inset 0 1.5px 0 rgba(255, 255, 255, 0.28),
    inset 0 -1px 0 rgba(255, 255, 255, 0.06),
    0 24px 58px -40px rgba(0, 0, 0, 0.6) !important;
}

body.site-theme.blog-post .faq-item.is-open {
  border-color: rgba(115, 185, 242, 0.4) !important;
}

body.site-theme.blog-post .faq-question {
  color: #fff !important;
}

body.site-theme.blog-post .faq-number {
  color: var(--home-accent) !important;
}

body.site-theme.blog-post .faq-control {
  border-color: rgba(255, 255, 255, 0.2) !important;
  background-color: rgba(255, 255, 255, 0.06) !important;
  color: var(--home-accent) !important;
}

body.site-theme.blog-post .faq-item.is-open .faq-control {
  border-color: var(--home-accent) !important;
  background-color: var(--home-accent) !important;
  color: #0a0a0a !important;
}

body.site-theme.blog-post .faq-answer p {
  color: var(--home-muted) !important;
}

@media (max-width: 767px) {
  body.site-theme {
    --home-section-space: 72px;
  }

  body.site-theme section.hero-glow::before,
  body.site-theme section.hero-glow::after {
    opacity: 0.7;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.site-theme * {
    scroll-behavior: auto !important;
  }
}
