/* Mona Sans (GitHub, OFL) — self-hosted variable font, replaces Inter */
@font-face {
  font-family: "Mona Sans";
  src: url("/assets/fonts/MonaSans.woff2") format("woff2");
  font-weight: 200 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Mona Sans";
  src: url("/assets/fonts/MonaSans-Italic.woff2") format("woff2");
  font-weight: 200 900;
  font-style: italic;
  font-display: swap;
}

:root {
  --ink: #16202f;
  --ink-soft: #3d4a5c;
  --muted: #687386;
  --line: #dbe4ee;
  --paper: #ffffff;
  --mist: #f4f8fb;
  --sky: #e6f5f3;
  --blue: #0f766e;
  --blue-deep: #0b5e57;
  --green: #0f766e;
  --green-deep: #0b5e57;
  --lime: #5ec5bf;
  --mint: #e6f5f3;
  --mint-soft: #f0faf9;
  --card-line: rgba(150, 210, 205, 0.5);
  --gold: #d99a21;
  --red: #b6453d;
  --shadow: 0 22px 55px rgba(23, 41, 73, 0.12);
  --soft-card-shadow: 0 18px 42px rgba(23, 41, 73, 0.08);
  --font-sans: "Mona Sans", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  min-width: 320px;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--font-sans);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

body.menu-open {
  overflow: hidden;
}

a {
  color: inherit;
  text-decoration: none;
}

button,
input,
select {
  font: inherit;
}

button,
select,
input {
  border: 0;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
}

body.chat-open,
body.quiz-open {
  overflow: hidden;
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  display: grid;
  grid-template-columns: minmax(176px, auto) minmax(0, 1fr) auto;
  align-items: center;
  gap: 22px;
  padding: 16px clamp(18px, 4vw, 56px);
  border-bottom: 1px solid rgba(219, 228, 238, 0.88);
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(18px);
}

.brand {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}

.brand-mark {
  position: relative;
  display: inline-flex;
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  background: linear-gradient(135deg, var(--green), var(--blue));
  box-shadow: 0 16px 30px rgba(15, 118, 110, 0.22);
}

.brand-mark::before,
.brand-mark::after,
.brand-mark span {
  position: absolute;
  content: "";
  border-radius: 999px;
  background: #fff;
}

.brand-mark::before {
  width: 17px;
  height: 17px;
  transform: translate(-5px, -5px);
}

.brand-mark::after {
  width: 16px;
  height: 4px;
  transform: translate(7px, 8px) rotate(-34deg);
}

.brand-mark span {
  width: 7px;
  height: 7px;
  background: var(--gold);
  transform: translate(6px, -8px);
}

.brand strong {
  display: block;
  color: var(--ink);
  font-size: 18px;
  font-weight: 900;
  line-height: 1;
  letter-spacing: 0;
}

.brand small {
  display: block;
  margin-top: 4px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.site-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(12px, 1.8vw, 24px);
  color: var(--ink-soft);
  font-size: 14px;
  font-weight: 800;
  white-space: nowrap;
}

.site-nav a,
.nav-link {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: 8px 0;
}

.site-nav a:hover,
.nav-link-active {
  color: var(--green-deep);
}

.nav-link-active {
  position: relative;
}

.nav-link-active::after {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 3px;
  height: 2px;
  content: "";
  background: var(--green-deep);
}

.nav-item {
  position: relative;
  display: inline-flex;
  align-items: center;
}

.mega-menu {
  position: absolute;
  left: 50%;
  top: calc(100% + 16px);
  width: min(940px, calc(100vw - 48px));
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, -8px);
  transition: opacity 160ms ease, transform 160ms ease, visibility 160ms ease;
  visibility: hidden;
}

.mega-menu::before {
  position: absolute;
  left: 0;
  right: 0;
  top: -18px;
  height: 18px;
  content: "";
}

.has-mega:hover .mega-menu,
.has-mega:focus-within .mega-menu {
  opacity: 1;
  pointer-events: auto;
  transform: translate(-50%, 0);
  visibility: visible;
}

.mega-panel {
  display: grid;
  grid-template-columns: minmax(180px, 0.82fr) minmax(260px, 1fr) minmax(250px, 0.95fr);
  gap: 36px;
  border: 1px solid rgba(219, 228, 238, 0.94);
  border-radius: 8px;
  background: #fff;
  padding: 24px;
  box-shadow: 0 30px 80px rgba(23, 41, 73, 0.16);
}

.mega-rail,
.mega-link-list,
.mega-picks {
  display: grid;
  align-content: start;
  gap: 7px;
}

.mega-rail a,
.mega-link-list a,
.mega-picks a {
  position: relative;
  border-radius: 6px;
  color: #071421;
  padding: 10px 34px 10px 12px;
  font-size: 14px;
  font-weight: 850;
  line-height: 1.2;
}

.mega-rail a::after {
  position: absolute;
  right: 13px;
  top: 50%;
  width: 7px;
  height: 7px;
  content: "";
  border-right: 2px solid currentColor;
  border-top: 2px solid currentColor;
  transform: translateY(-50%) rotate(45deg);
}

.mega-rail a:hover,
.mega-rail a.is-active {
  background: #eef3f1;
  color: #071421;
}

.mega-link-list a {
  padding-left: 0;
}

.mega-link-list a:hover,
.mega-picks a:hover {
  color: var(--green-deep);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.mega-more {
  margin-top: 6px;
  font-weight: 900;
}

.mega-picks {
  border-radius: 8px;
  background: #eaf9f4;
  padding: 18px;
}

.mega-picks strong {
  color: #5f6b7c;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: 0.06em;
}

.mega-picks a {
  color: #005eb8;
  padding-left: 0;
}

@media (max-width: 1220px) and (min-width: 1061px) {
  .site-header {
    gap: 16px;
  }

  .site-nav {
    gap: 13px;
    font-size: 13px;
  }

  .phone-link {
    display: none;
  }
}

.header-actions {
  display: flex;
  align-items: center;
  gap: 14px;
}

.phone-link {
  color: var(--ink-soft);
  font-size: 13px;
  font-weight: 900;
}

.button {
  display: inline-flex;
  min-height: 50px;
  align-items: center;
  justify-content: center;
  gap: 10px;
  border-radius: 6px;
  background: var(--green);
  color: #fff;
  padding: 14px 22px;
  font-size: 15px;
  font-weight: 900;
  line-height: 1;
  box-shadow: 0 14px 30px rgba(15, 118, 110, 0.24);
  transition: transform 180ms ease, background 180ms ease, box-shadow 180ms ease;
}

.button:hover {
  transform: translateY(-1px);
  background: var(--green-deep);
  box-shadow: 0 18px 36px rgba(8, 121, 83, 0.26);
}

.button-small {
  min-height: 42px;
  padding: 12px 16px;
  font-size: 13px;
}

.button-secondary {
  background: var(--blue);
  box-shadow: 0 14px 30px rgba(23, 79, 159, 0.2);
}

.button-secondary:hover {
  background: var(--blue-deep);
}

.nav-toggle {
  display: none;
  width: 42px;
  height: 42px;
  align-items: center;
  justify-content: center;
  border-radius: 6px;
  background: var(--mist);
  cursor: pointer;
}

.nav-toggle span {
  display: block;
  width: 18px;
  height: 2px;
  border-radius: 999px;
  background: var(--ink);
}

.nav-toggle span + span {
  margin-top: 4px;
}

.hero {
  position: relative;
  overflow: hidden;
  background: #006b45;
  color: #fff;
}

.hero-bg {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(90deg, rgba(0, 107, 69, 0.98) 0%, rgba(0, 107, 69, 0.92) 39%, rgba(0, 107, 69, 0.56) 58%, rgba(0, 0, 0, 0.08) 100%);
}

.hero-inner {
  position: relative;
  z-index: 2;
  min-height: 500px;
  max-width: 1280px;
  margin: 0 auto;
  padding: clamp(56px, 7vw, 86px) clamp(24px, 5vw, 62px) 112px;
}

.hero-copy {
  position: relative;
  z-index: 3;
  max-width: 680px;
}

.hero-photo {
  position: absolute;
  inset: 0 -70px 0 43%;
  z-index: 0;
  background:
    linear-gradient(90deg, rgba(0, 107, 69, 0.76), rgba(0, 107, 69, 0.16) 44%, rgba(0, 0, 0, 0.05)),
    url("https://images.unsplash.com/photo-1758686254107-b381b6829be0?auto=format&fit=crop&w=1600&q=82");
  background-position: 58% center;
  background-size: cover;
}

.hero-photo::after {
  position: absolute;
  inset: 0;
  content: "";
  background: linear-gradient(180deg, transparent 0%, rgba(0, 58, 39, 0.18) 100%);
}

.eyebrow,
.section-kicker {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  color: var(--green-deep);
  font-size: 12px;
  font-weight: 900;
  line-height: 1.4;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.eyebrow span {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--green);
  box-shadow: 0 0 0 5px rgba(15, 118, 110, 0.13);
}

.hero .eyebrow {
  color: #a7f3d4;
}

.hero .eyebrow span {
  background: #7df0bd;
  box-shadow: 0 0 0 5px rgba(125, 240, 189, 0.14);
}

h1,
h2,
h3,
p {
  margin: 0;
}

h1 {
  max-width: 680px;
  margin-top: 0;
  color: #fff;
  font-family: var(--font-sans);
  font-size: clamp(42px, 5.2vw, 70px);
  font-weight: 900;
  line-height: 1.06;
  letter-spacing: 0;
}

h1 span {
  color: #5ec5bf;
}

.hero-lede {
  max-width: 650px;
  margin-top: 18px;
  color: rgba(255, 255, 255, 0.92);
  font-size: clamp(18px, 1.8vw, 23px);
  font-weight: 700;
  line-height: 1.5;
}

.hero-highlights {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  max-width: 720px;
  margin-top: 22px;
}

.hero-highlights article {
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.09);
  padding: 12px;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
}

.hero-highlights strong {
  display: block;
  color: #fff;
  font-size: 15px;
  font-weight: 900;
}

.hero-highlights span {
  display: block;
  margin-top: 5px;
  color: rgba(255, 255, 255, 0.72);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.4;
}

.hero-search {
  max-width: 850px;
  margin-top: 20px;
  overflow: hidden;
  border: 1px solid rgba(219, 228, 238, 0.92);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 26px 70px rgba(0, 23, 19, 0.28);
}

.hero-ai-search {
  scroll-margin-top: 110px;
  max-width: 580px;
  margin-top: 28px;
}

.anchor-target {
  display: block;
  height: 0;
  scroll-margin-top: 110px;
}

.ai-search-form {
  overflow: hidden;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 28px 70px rgba(0, 23, 19, 0.34);
}

.ai-search-form.quiz-focus {
  animation: quizFocus 760ms ease;
}

@keyframes quizFocus {
  0% {
    box-shadow: 0 28px 70px rgba(0, 23, 19, 0.34), 0 0 0 0 rgba(149, 239, 52, 0.46);
  }
  45% {
    box-shadow: 0 28px 70px rgba(0, 23, 19, 0.34), 0 0 0 8px rgba(149, 239, 52, 0.22);
  }
  100% {
    box-shadow: 0 28px 70px rgba(0, 23, 19, 0.34), 0 0 0 0 rgba(149, 239, 52, 0);
  }
}

.ai-input-row {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 56px;
  min-height: 68px;
  align-items: center;
}

.ai-type-prompt {
  position: absolute;
  left: 18px;
  right: 72px;
  top: 50%;
  z-index: 1;
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 5px;
  color: #697487;
  font-size: 17px;
  font-weight: 600;
  line-height: 1;
  pointer-events: none;
  transform: translateY(-50%);
  transition: opacity 120ms ease;
}

.ai-type-prompt strong {
  min-width: 0;
  overflow: hidden;
  color: #5f6b7d;
  font-weight: 900;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ai-type-prompt span:last-child {
  margin-left: -4px;
}

.ai-search-form.has-value .ai-type-prompt {
  opacity: 0;
}

.ai-input-row:has(input:not(:placeholder-shown)) .ai-type-prompt {
  display: none;
}

.ai-input-row input {
  position: relative;
  z-index: 2;
  width: 100%;
  min-width: 0;
  height: 68px;
  border: 0;
  background: transparent;
  color: var(--ink);
  padding: 0 18px;
  font-size: 17px;
  font-weight: 500;
  outline: none;
  appearance: none;
}

.ai-input-row input::-webkit-search-decoration,
.ai-input-row input::-webkit-search-cancel-button {
  appearance: none;
}

.ai-submit,
.chatbot-input button {
  position: relative;
  display: inline-flex;
  width: 44px;
  height: 44px;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  background: #f2f4f5;
  cursor: pointer;
  transition: background 180ms ease, transform 180ms ease;
}

.ai-submit:hover,
.chatbot-input button:hover {
  transform: translateY(-1px);
  background: #e6ece9;
}

.ai-submit span,
.chatbot-input button span {
  position: relative;
  width: 19px;
  height: 19px;
}

.ai-submit span::before,
.chatbot-input button span::before {
  position: absolute;
  inset: 2px;
  content: "";
  clip-path: polygon(0 8%, 100% 50%, 0 92%, 18% 54%);
  background: #8b949f;
}

.ai-brand-strip {
  display: flex;
  width: 100%;
  min-height: 42px;
  align-items: center;
  gap: 5px;
  background: linear-gradient(90deg, #0f766e, #72d14d);
  color: #fff;
  padding: 0 16px;
  text-align: left;
  cursor: pointer;
}

.ai-brand-strip strong {
  font-size: 19px;
  font-weight: 900;
  line-height: 1;
}

.ai-brand-strip span {
  display: inline-flex;
  border-radius: 4px;
  background: #e5ffdb;
  color: #0b5e57;
  padding: 2px 4px;
  font-size: 10px;
  font-weight: 900;
  line-height: 1;
}

.ai-prompt-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
}

.ai-prompt-row button {
  border: 1px solid rgba(255, 255, 255, 0.24);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.12);
  color: rgba(255, 255, 255, 0.9);
  padding: 9px 12px;
  font-size: 12px;
  font-weight: 900;
  cursor: pointer;
  transition: background 180ms ease, border-color 180ms ease;
}

.ai-prompt-row button:hover {
  border-color: rgba(125, 240, 189, 0.48);
  background: rgba(125, 240, 189, 0.16);
}

.match-intro {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  border-bottom: 1px solid var(--line);
  padding: 14px 18px;
}

.match-intro strong {
  color: var(--ink);
  font-size: 17px;
  font-weight: 900;
  line-height: 1.2;
}

.match-intro span {
  color: var(--muted);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.35;
}

.search-tabs {
  display: flex;
  gap: 0;
  border-bottom: 1px solid var(--line);
  background: #f9fbfd;
}

.search-tabs button {
  flex: 1 1 0;
  min-height: 48px;
  background: transparent;
  color: var(--ink-soft);
  padding: 14px 12px;
  font-size: 14px;
  font-weight: 900;
  cursor: pointer;
}

.search-tabs button.active {
  background: #fff;
  color: var(--green-deep);
  box-shadow: inset 0 -3px 0 var(--green);
}

.match-form {
  display: grid;
  grid-template-columns: minmax(260px, 1.35fr) minmax(150px, 0.72fr) minmax(150px, 0.72fr);
  gap: 12px;
  align-items: end;
  padding: 14px;
}

.match-form button {
  grid-column: 1 / -1;
}

label {
  display: grid;
  gap: 7px;
}

label span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

select,
input[type="text"],
input[type="email"],
input[type="tel"] {
  width: 100%;
  min-height: 46px;
  border: 1px solid rgba(150, 210, 205, 0.52);
  border-radius: 8px;
  background: #fff;
  color: var(--ink);
  padding: 0 13px;
  font-weight: 800;
  outline: none;
}

select:focus,
input:focus {
  border-color: rgba(15, 118, 110, 0.62);
  box-shadow: 0 0 0 4px rgba(15, 118, 110, 0.12);
}

.trust-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 18px;
}

.trust-row span {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.1);
  color: rgba(255, 255, 255, 0.85);
  padding: 8px 12px;
  font-size: 12px;
  font-weight: 800;
}

.trust-row span::before {
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 999px;
  background: #7df0bd;
}

.hero-card {
  position: relative;
  border: 1px solid rgba(255, 255, 255, 0.72);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.96);
  padding: 18px;
  box-shadow: 0 30px 80px rgba(0, 23, 19, 0.34);
}

.hero-card::before {
  position: absolute;
  inset: -18px;
  z-index: -1;
  content: "";
  border-radius: 8px;
  background:
    linear-gradient(135deg, rgba(125, 240, 189, 0.22), rgba(255, 255, 255, 0.16)),
    repeating-linear-gradient(45deg, rgba(255, 255, 255, 0.18) 0 8px, transparent 8px 16px);
}

.card-topline {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.card-topline strong {
  display: inline-flex;
  min-width: 40px;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: var(--blue);
  color: #fff;
  padding: 7px 10px;
}

.preview-panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 120px;
  gap: 18px;
  align-items: end;
  margin-top: 16px;
  border-radius: 8px;
  background: linear-gradient(135deg, #1557a6, #007653);
  color: #fff;
  padding: 20px;
}

.preview-panel small,
.calculator-result small {
  display: block;
  color: rgba(255, 255, 255, 0.72);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.preview-panel strong {
  display: block;
  margin-top: 8px;
  font-size: 38px;
  font-weight: 900;
  line-height: 1;
  letter-spacing: 0;
}

.preview-chart {
  display: flex;
  height: 84px;
  align-items: end;
  gap: 8px;
  padding-top: 12px;
}

.preview-chart span {
  flex: 1;
  border-radius: 999px 999px 4px 4px;
  background: linear-gradient(to top, #fff, rgba(255, 255, 255, 0.52));
}

.match-paths {
  display: grid;
  gap: 10px;
  margin-top: 12px;
}

.match-paths article {
  display: grid;
  grid-template-columns: 42px 1fr;
  gap: 12px;
  align-items: start;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  padding: 12px;
}

.match-paths article.active {
  border-color: rgba(15, 118, 110, 0.32);
  background: var(--mint);
}

.match-paths span {
  display: inline-flex;
  width: 34px;
  height: 34px;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: #fff;
  color: var(--green-deep);
  font-size: 12px;
  font-weight: 900;
}

.match-paths h2 {
  color: var(--ink);
  font-size: 15px;
  font-weight: 900;
  line-height: 1.2;
}

.match-paths p {
  margin-top: 4px;
  color: var(--muted);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.45;
}

.hero-card-footer {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 14px;
}

.hero-card-footer span {
  display: inline-flex;
  border-radius: 999px;
  background: #f2f7f4;
  color: var(--green-deep);
  padding: 7px 10px;
  font-size: 11px;
  font-weight: 900;
}

.category-showcase {
  max-width: 1200px;
  margin: -86px auto 0;
  position: relative;
  z-index: 2;
  padding: 0 clamp(18px, 4vw, 34px);
}

.category-panel {
  display: grid;
  grid-template-columns: repeat(20, minmax(0, 1fr));
  gap: 16px;
  border-radius: 8px;
  background:
    linear-gradient(135deg, rgba(237, 252, 247, 0.96), rgba(232, 247, 255, 0.94)),
    #f0faf9;
  padding: clamp(18px, 3vw, 32px);
  box-shadow: 0 24px 60px rgba(23, 41, 73, 0.12);
}

.category-card {
  position: relative;
  display: grid;
  grid-column: span 5;
  min-height: 206px;
  justify-items: center;
  align-content: center;
  border: 1px solid rgba(219, 228, 238, 0.84);
  border-radius: 8px;
  background: #fff;
  padding: 22px 18px;
  text-align: center;
  box-shadow: 0 16px 34px rgba(23, 41, 73, 0.06);
  transition: transform 180ms ease, border-color 180ms ease;
}

.category-card.compact {
  grid-column: span 4;
}

.category-card:hover {
  transform: translateY(-2px);
  border-color: rgba(15, 118, 110, 0.36);
}

.card-arrow {
  position: absolute;
  top: 18px;
  right: 18px;
  width: 16px;
  height: 16px;
  opacity: 0.52;
}

.card-arrow::before,
.card-arrow::after {
  position: absolute;
  content: "";
  background: var(--ink-soft);
}

.card-arrow::before {
  right: 1px;
  top: 3px;
  width: 10px;
  height: 2px;
  transform: rotate(-45deg);
  transform-origin: right center;
}

.card-arrow::after {
  right: 1px;
  top: 3px;
  width: 7px;
  height: 7px;
  border-top: 2px solid var(--ink-soft);
  border-right: 2px solid var(--ink-soft);
  background: transparent;
}

.category-visual {
  position: relative;
  display: block;
  width: 84px;
  height: 76px;
  margin-bottom: 16px;
}

.category-visual i,
.category-visual b,
.category-visual em {
  position: absolute;
  display: block;
  font-style: normal;
}

.visual-rates i {
  left: 16px;
  bottom: 10px;
  width: 48px;
  height: 34px;
  border-radius: 5px;
  background: #0e8a66;
  box-shadow: inset 0 -8px 0 rgba(255,255,255,.16);
  transform: rotate(-8deg);
}

.visual-rates b {
  right: 11px;
  bottom: 12px;
  width: 30px;
  height: 42px;
  border-radius: 5px;
  background: #d9dde2;
  box-shadow: inset 0 -7px 0 rgba(0,0,0,.08);
  transform: rotate(8deg);
}

.visual-rates em {
  left: 32px;
  top: 17px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 17px 0 rgba(255,255,255,.85);
}

.visual-income i {
  left: 16px;
  bottom: 8px;
  width: 52px;
  height: 32px;
  border-radius: 7px;
  background: #0d9c6d;
  transform: rotate(-9deg);
}

.visual-income i::before {
  position: absolute;
  inset: 8px 13px;
  content: "";
  border-radius: 999px;
  background: #f4c15d;
}

.visual-income b,
.visual-income em {
  border-radius: 50%;
  background: #f2b84b;
  border: 3px solid #d79526;
}

.visual-income b {
  right: 10px;
  bottom: 23px;
  width: 24px;
  height: 24px;
}

.visual-income em {
  right: 28px;
  top: 13px;
  width: 18px;
  height: 18px;
}

.visual-cd i {
  left: 14px;
  bottom: 12px;
  width: 56px;
  height: 32px;
  border-radius: 5px 5px 3px 3px;
  background: #c5ced8;
  box-shadow: inset 0 -8px 0 rgba(80, 96, 112, 0.14);
}

.visual-cd i::before {
  position: absolute;
  inset: -10px 7px auto;
  height: 16px;
  content: "";
  clip-path: polygon(50% 0, 100% 100%, 0 100%);
  background: #a8b5c2;
}

.visual-cd b,
.visual-cd em {
  bottom: 14px;
  width: 5px;
  height: 25px;
  border-radius: 2px;
  background: #788796;
}

.visual-cd b {
  left: 30px;
  box-shadow: 11px 0 0 #788796, 22px 0 0 #788796;
}

.visual-cd em {
  right: 5px;
  bottom: 2px;
  width: 28px;
  height: 7px;
  background: #98a6b3;
  box-shadow: none;
}

.visual-review i {
  left: 24px;
  top: 6px;
  width: 36px;
  height: 50px;
  border-radius: 7px;
  background: #fff;
  border: 4px solid #0e8a66;
  box-shadow: 0 13px 0 rgba(0,0,0,.06);
}

.visual-review b {
  left: 34px;
  top: 26px;
  width: 18px;
  height: 10px;
  border-bottom: 4px solid #0e8a66;
  border-left: 4px solid #0e8a66;
  transform: rotate(-45deg);
}

.visual-review em {
  right: 8px;
  bottom: 9px;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: #f2b84b;
  box-shadow: 0 0 0 4px rgba(242,184,75,.18);
}

.visual-universal i {
  left: 20px;
  top: 7px;
  width: 42px;
  height: 58px;
  border: 4px solid #0b5e57;
  border-radius: 7px;
  background: #fff;
  box-shadow: 9px 9px 0 rgba(18, 61, 122, 0.1);
}

.visual-universal i::before,
.visual-universal i::after {
  position: absolute;
  left: 9px;
  content: "";
  height: 4px;
  border-radius: 999px;
  background: #b8c4cf;
}

.visual-universal i::before {
  top: 30px;
  width: 18px;
}

.visual-universal i::after {
  top: 40px;
  width: 13px;
}

.visual-universal b {
  left: 30px;
  top: 19px;
  width: 22px;
  height: 20px;
  border-radius: 3px 3px 10px 10px;
  background: var(--green);
  clip-path: polygon(50% 0, 100% 20%, 88% 78%, 50% 100%, 12% 78%, 0 20%);
}

.visual-universal em {
  right: 8px;
  bottom: 7px;
  width: 28px;
  height: 28px;
  border: 3px solid #d79526;
  border-radius: 50%;
  background: #f2b84b;
}

.visual-rollover i {
  left: 15px;
  top: 14px;
  width: 54px;
  height: 42px;
  border-radius: 7px;
  background: #0b5e57;
}

.visual-rollover i::before {
  position: absolute;
  left: 12px;
  top: -9px;
  width: 28px;
  height: 13px;
  content: "";
  border-radius: 6px 6px 0 0;
  border: 5px solid #0b5e57;
  border-bottom: 0;
}

.visual-rollover b {
  right: 9px;
  bottom: 8px;
  width: 34px;
  height: 18px;
  border-radius: 4px;
  background: #0d9c6d;
  transform: rotate(-7deg);
}

.visual-rollover em {
  right: 20px;
  bottom: 14px;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #f4c15d;
}

.visual-social i {
  left: 17px;
  bottom: 12px;
  width: 50px;
  height: 34px;
  border-radius: 4px;
  background: #f5f7fb;
  border: 3px solid #98a6b3;
}

.visual-social i::before,
.visual-social i::after {
  position: absolute;
  left: 9px;
  content: "";
  height: 3px;
  border-radius: 999px;
  background: #98a6b3;
}

.visual-social i::before {
  top: 10px;
  width: 28px;
}

.visual-social i::after {
  top: 20px;
  width: 20px;
}

.visual-social b {
  right: 12px;
  top: 10px;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: #f2b84b;
  border: 3px solid #d79526;
}

.visual-social em {
  left: 9px;
  top: 11px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #0d9c6d;
}

.visual-advisors i,
.visual-advisors b {
  border-radius: 50%;
  background: #51b99e;
  border: 4px solid #e6f5f3;
}

.visual-advisors i {
  left: 18px;
  top: 15px;
  width: 42px;
  height: 42px;
}

.visual-advisors b {
  right: 12px;
  bottom: 9px;
  width: 34px;
  height: 34px;
  background: #f0b865;
}

.visual-advisors em {
  left: 30px;
  top: 30px;
  width: 18px;
  height: 9px;
  border-radius: 0 0 999px 999px;
  background: #fff;
  box-shadow: 30px 20px 0 -2px #fff;
}

.visual-medicare i {
  left: 17px;
  top: 8px;
  width: 50px;
  height: 58px;
  border-radius: 28px 28px 8px 8px;
  background: #e6f5f3;
  border: 3px solid #7fd4ba;
}

.visual-medicare b,
.visual-medicare em {
  left: 37px;
  top: 25px;
  width: 10px;
  height: 30px;
  border-radius: 3px;
  background: var(--green);
}

.visual-medicare em {
  left: 27px;
  top: 35px;
  width: 30px;
  height: 10px;
}

.visual-final i {
  left: 22px;
  top: 15px;
  width: 42px;
  height: 40px;
  background: #0d9c6d;
  transform: rotate(45deg);
}

.visual-final i::before,
.visual-final i::after {
  position: absolute;
  content: "";
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: #0d9c6d;
}

.visual-final i::before {
  left: -21px;
  top: 0;
}

.visual-final i::after {
  left: 0;
  top: -21px;
}

.visual-final b {
  right: 8px;
  bottom: 8px;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #f2b84b;
  border: 3px solid #d79526;
}

.visual-final em {
  left: 36px;
  bottom: 18px;
  width: 13px;
  height: 5px;
  border-radius: 999px;
  background: #fff;
}

.category-card strong {
  overflow-wrap: anywhere;
  color: var(--ink);
  font-size: 19px;
  font-weight: 900;
  line-height: 1.2;
}

.category-card small {
  display: block;
  max-width: 215px;
  margin-top: 8px;
  color: var(--muted);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.45;
}

.trust-proof-section {
  scroll-margin-top: 94px;
  padding: 70px clamp(18px, 4vw, 56px) 54px;
  background: #fff;
}

.trust-proof-inner {
  display: grid;
  grid-template-columns: 330px minmax(0, 1fr);
  gap: clamp(38px, 5vw, 62px);
  max-width: 1120px;
  margin: 0 auto;
  align-items: center;
}

.trust-portrait {
  position: relative;
  align-self: stretch;
  min-height: 310px;
  margin: 0;
  overflow: hidden;
  border-radius: 8px;
  background:
    linear-gradient(135deg, #d5faed, #ecfff6);
}

.trust-portrait::before {
  position: absolute;
  inset: 26px 26px auto auto;
  width: 74px;
  height: 74px;
  content: "";
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.58);
}

.trust-portrait img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.trust-proof-copy h2 {
  color: #050b14;
  font-family: var(--font-sans);
  font-size: clamp(32px, 3.2vw, 42px);
  font-weight: 900;
  line-height: 1.08;
  letter-spacing: 0;
}

.trust-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(22px, 3vw, 42px);
  margin-top: 54px;
}

.trust-stats article {
  min-width: 0;
}

.trust-stats strong {
  display: block;
  color: var(--green-deep);
  font-size: clamp(26px, 2.9vw, 36px);
  font-weight: 900;
  line-height: 1.12;
  letter-spacing: 0;
}

.trust-stats span {
  display: block;
  max-width: 210px;
  margin-top: 8px;
  color: var(--ink-soft);
  font-size: 17px;
  font-weight: 700;
  line-height: 1.35;
}

.known-names {
  margin-top: 62px;
}

@media (min-width: 761px) {
  .trust-proof-copy h2 {
    white-space: nowrap;
  }
}

.known-names-heading {
  display: grid;
  grid-template-columns: auto minmax(40px, 1fr);
  gap: 22px;
  align-items: center;
}

.known-names-heading strong {
  color: #697487;
  font-size: 15px;
  font-weight: 900;
  line-height: 1.2;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.known-names-heading span {
  display: block;
  height: 1px;
  background: var(--line);
}

.name-strip {
  position: relative;
  display: block;
  overflow: hidden;
  margin-top: 20px;
  mask-image: linear-gradient(90deg, transparent 0, #000 9%, #000 91%, transparent 100%);
}

.name-track {
  display: flex;
  width: max-content;
  transform: translateX(0);
  animation: nameSlide 30s linear infinite;
  animation-fill-mode: both;
  will-change: transform;
}

.name-group {
  display: flex;
  gap: clamp(44px, 5.2vw, 74px);
  align-items: center;
  padding-right: clamp(44px, 5.2vw, 74px);
}

.name-strip span {
  flex: 0 0 auto;
  color: #9099a6;
  font-size: clamp(14px, 1.35vw, 17px);
  font-weight: 900;
  line-height: 1;
  text-align: center;
  white-space: nowrap;
  filter: grayscale(1);
  opacity: 0.68;
}

@keyframes nameSlide {
  from {
    transform: translateX(0);
  }

  to {
    transform: translateX(-33.3333%);
  }
}

@media (prefers-reduced-motion: reduce) {
  .name-track {
    animation: none;
  }
}

.ticker-ribbon-section {
  position: relative;
  height: clamp(156px, 17vw, 224px);
  margin: 0 0 clamp(8px, 2vw, 28px);
  overflow: hidden;
  background: #fff;
}

.ticker-ribbon {
  position: absolute;
  left: 50%;
  width: max(1760px, 150vw);
  height: clamp(58px, 6.4vw, 78px);
  overflow: hidden;
  box-shadow: 0 18px 36px rgba(0, 107, 69, 0.12);
  transform-origin: center;
}

.ticker-ribbon::before,
.ticker-ribbon::after {
  position: absolute;
  top: 50%;
  width: 10px;
  height: 10px;
  content: "";
  border-radius: 2px;
  background: currentColor;
  opacity: 0.52;
  transform: translateY(-50%) rotate(45deg);
  z-index: 2;
}

.ticker-ribbon::before {
  left: 25%;
}

.ticker-ribbon::after {
  right: 25%;
}

.ribbon-back {
  top: 56px;
  color: #ebfff6;
  background: var(--green-deep);
  transform: translateX(-50%) rotate(2.5deg);
}

.ribbon-front {
  top: 72px;
  color: #007f58;
  background: #9bf235;
  transform: translateX(-50%) rotate(-2.6deg);
  z-index: 2;
}

.ticker-ribbon-track {
  display: flex;
  width: max-content;
  min-width: 200%;
  height: 100%;
  will-change: transform;
}

.ribbon-back .ticker-ribbon-track {
  animation: ribbonSlideLeft 28s linear infinite;
}

.ribbon-front .ticker-ribbon-track {
  animation: ribbonSlideRight 24s linear infinite;
}

.ticker-ribbon-group {
  display: flex;
  align-items: center;
  height: 100%;
}

.ticker-ribbon-group span {
  position: relative;
  flex: 0 0 auto;
  padding: 0 clamp(30px, 4vw, 64px);
  color: currentColor;
  font-size: clamp(20px, 2.6vw, 31px);
  font-weight: 900;
  line-height: 1;
  text-transform: uppercase;
  white-space: nowrap;
  letter-spacing: 0;
}

.ticker-ribbon-group span::after {
  position: absolute;
  right: -5px;
  top: 50%;
  width: 8px;
  height: 8px;
  content: "";
  border-radius: 2px;
  background: currentColor;
  opacity: 0.72;
  transform: translateY(-50%) rotate(45deg);
}

@keyframes ribbonSlideLeft {
  from {
    transform: translateX(0);
  }

  to {
    transform: translateX(-50%);
  }
}

@keyframes ribbonSlideRight {
  from {
    transform: translateX(-50%);
  }

  to {
    transform: translateX(0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .ticker-ribbon-track {
    animation: none;
  }
}

.section {
  max-width: 1180px;
  margin: 0 auto;
  padding: clamp(62px, 8vw, 96px) clamp(18px, 4vw, 34px);
}

.section h2 {
  max-width: 760px;
  margin-top: 10px;
  color: var(--ink);
  font-family: var(--font-sans);
  font-size: clamp(34px, 4vw, 52px);
  font-weight: 900;
  line-height: 1.08;
  letter-spacing: 0;
}

.section p {
  color: var(--ink-soft);
  font-size: 17px;
  font-weight: 600;
  line-height: 1.65;
}

.section h2 + p,
.section-kicker + h2 + p {
  margin-top: 16px;
  max-width: 720px;
}

.split-section {
  display: grid;
  grid-template-columns: 0.82fr 1fr;
  gap: clamp(28px, 5vw, 70px);
  align-items: start;
}

.ticker-ribbon-section + .process-section {
  padding-top: clamp(58px, 7vw, 86px);
}

.process-section {
  max-width: none;
  padding-top: clamp(64px, 7vw, 92px);
  padding-bottom: clamp(72px, 8vw, 108px);
  background:
    linear-gradient(180deg, #fff 0%, #fff 22%, var(--mint-soft) 100%);
}

.process-section > * {
  max-width: 1180px;
  margin-left: auto;
  margin-right: auto;
}

.process-section .section-heading h2 {
  max-width: 760px;
}

.process-section .step-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 34px;
}

.step-grid {
  display: grid;
  gap: 14px;
}

.step-grid article {
  display: grid;
  min-height: 218px;
  grid-template-columns: 1fr;
  gap: 14px;
  justify-items: center;
  align-content: center;
  border: 1px solid var(--card-line);
  border-radius: 8px;
  background: #fff;
  padding: 30px 26px;
  text-align: center;
  box-shadow: var(--soft-card-shadow);
  transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

.step-grid article:hover {
  transform: translateY(-2px);
  border-color: rgba(15, 118, 110, 0.42);
  box-shadow: 0 22px 48px rgba(23, 41, 73, 0.11);
}

.step-grid span {
  display: inline-flex;
  width: 48px;
  height: 48px;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--green-deep), var(--green));
  color: #fff;
  box-shadow: 0 12px 28px rgba(15, 118, 110, 0.24);
  font-weight: 900;
}

.step-grid h3,
.option-grid h3,
.guide-grid h3 {
  color: var(--ink);
  font-size: 20px;
  font-weight: 900;
  line-height: 1.2;
}

.step-grid p,
.option-grid p,
.guide-grid p {
  margin-top: 7px;
  color: var(--muted);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.55;
}

.step-grid p {
  grid-column: auto;
}

.marketplace-section {
  max-width: none;
  background:
    linear-gradient(180deg, #f0faf9 0%, #f5fbff 100%);
}

.marketplace-section > * {
  max-width: 1180px;
  margin-left: auto;
  margin-right: auto;
}

.section-heading {
  display: grid;
  justify-items: center;
  text-align: center;
}

.section-heading h2 {
  margin-left: auto;
  margin-right: auto;
}

.section-heading p:not(.section-kicker) {
  max-width: 720px;
}

.rate-shell {
  margin-top: 34px;
  overflow: hidden;
  border: 1px solid var(--card-line);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 26px 68px rgba(23, 41, 73, 0.12);
}

.rate-controls {
  display: grid;
  grid-template-columns: minmax(230px, 0.7fr) minmax(0, 1.3fr);
  gap: 22px;
  align-items: center;
  border-bottom: 1px solid rgba(150, 210, 205, 0.34);
  background:
    linear-gradient(135deg, #f1fff8 0%, #f7fcff 100%);
  padding: 20px;
}

.rate-request-copy strong {
  display: block;
  color: var(--ink);
  font-size: 18px;
  font-weight: 900;
  line-height: 1.2;
}

.rate-request-copy span {
  display: block;
  margin-top: 6px;
  color: var(--ink-soft);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.45;
}

.rate-request-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr)) auto;
  gap: 14px;
  align-items: end;
}

.rate-table {
  display: grid;
}

.rate-row {
  display: grid;
  grid-template-columns: 1.1fr 0.72fr 1fr 1fr;
  gap: 16px;
  align-items: center;
  border-bottom: 1px solid rgba(219, 228, 238, 0.88);
  padding: 18px;
}

.rate-row:nth-child(odd):not(.rate-head) {
  background: #fbfffd;
}

.rate-row:last-child {
  border-bottom: 0;
}

.rate-head {
  background: linear-gradient(90deg, var(--green-deep), var(--green));
  color: #fff;
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.rate-row span {
  min-width: 0;
  color: var(--ink-soft);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.45;
}

.rate-row strong {
  display: block;
  color: #061421;
  font-size: 16px;
  font-weight: 900;
}

.rate-head span,
.rate-head strong {
  color: #fff;
}

.rate-row small {
  display: block;
  margin-top: 3px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}

.table-note {
  border-top: 1px solid rgba(150, 210, 205, 0.34);
  background: #f1fff8;
  color: #356452 !important;
  padding: 14px 18px;
  font-size: 13px !important;
  line-height: 1.55 !important;
}

.calculator-section {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 0.88fr) minmax(340px, 0.72fr);
  gap: clamp(28px, 5vw, 74px);
  align-items: center;
  background: #fff;
}

.calculator-result {
  margin-top: 28px;
  border-radius: 8px;
  background:
    linear-gradient(135deg, rgba(0, 107, 69, 0.96), rgba(15, 118, 110, 0.92)),
    #006b45;
  color: #fff;
  padding: 24px;
  box-shadow: 0 20px 48px rgba(0, 107, 69, 0.22);
}

.calculator-result strong {
  display: block;
  margin-top: 8px;
  font-size: clamp(32px, 5vw, 52px);
  font-weight: 900;
  line-height: 1;
  letter-spacing: 0;
}

.calculator-result span {
  display: block;
  margin-top: 10px;
  color: rgba(255, 255, 255, 0.78);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.45;
}

.calculator-card {
  display: grid;
  gap: 22px;
  border: 1px solid var(--card-line);
  border-radius: 8px;
  background:
    linear-gradient(180deg, #fff 0%, #fbfffd 100%);
  padding: 26px;
  box-shadow: var(--soft-card-shadow);
}

.calculator-card label {
  gap: 11px;
}

.calculator-card label strong {
  color: var(--green-deep);
  font-size: 22px;
  font-weight: 900;
}

input[type="range"] {
  width: 100%;
  background: transparent;
  accent-color: var(--green);
  appearance: none;
  cursor: pointer;
}

input[type="range"]::-webkit-slider-runnable-track {
  height: 7px;
  border-radius: 999px;
  background: #dfe8e4;
}

input[type="range"]::-webkit-slider-thumb {
  width: 20px;
  height: 20px;
  margin-top: -6px;
  border: 0;
  border-radius: 50%;
  background: var(--green);
  box-shadow: 0 0 0 4px rgba(15, 118, 110, 0.13);
  appearance: none;
}

input[type="range"]::-moz-range-track {
  height: 7px;
  border-radius: 999px;
  background: #dfe8e4;
}

input[type="range"]::-moz-range-progress {
  height: 7px;
  border-radius: 999px;
  background: var(--green);
}

input[type="range"]::-moz-range-thumb {
  width: 20px;
  height: 20px;
  border: 0;
  border-radius: 50%;
  background: var(--green);
  box-shadow: 0 0 0 4px rgba(15, 118, 110, 0.13);
}

.option-section {
  max-width: none;
  background: linear-gradient(180deg, #fff 0%, #effaf5 100%);
}

.option-section > * {
  max-width: 1180px;
  margin-left: auto;
  margin-right: auto;
}

.option-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
  margin-top: 34px;
}

.option-grid article {
  min-height: 232px;
  border: 1px solid var(--card-line);
  border-radius: 8px;
  background:
    linear-gradient(180deg, #fff 0%, #fbfffd 100%);
  padding: 24px;
  box-shadow: var(--soft-card-shadow);
  transition: transform 180ms ease, border-color 180ms ease;
}

.option-grid article:hover {
  transform: translateY(-2px);
  border-color: rgba(15, 118, 110, 0.42);
}

.checkmark {
  display: inline-flex;
  width: 46px;
  height: 46px;
  align-items: center;
  justify-content: center;
  border: 3px solid #7fd4ba;
  border-radius: 8px;
  background: var(--mint);
}

.checkmark::before {
  width: 16px;
  height: 8px;
  content: "";
  border-bottom: 3px solid var(--green-deep);
  border-left: 3px solid var(--green-deep);
  transform: translateY(-2px) rotate(-45deg);
}

.option-grid h3 {
  margin-top: 16px;
}

.professional-section {
  position: relative;
  max-width: none;
  overflow: hidden;
  background:
    linear-gradient(90deg, rgba(0, 107, 69, 0.98) 0%, rgba(0, 107, 69, 0.92) 55%, rgba(15, 118, 110, 0.84) 100%);
  color: #fff;
}

.professional-section::before {
  position: absolute;
  left: -8vw;
  right: -8vw;
  top: 0;
  height: 7px;
  content: "";
  background: var(--lime);
  transform: rotate(-1.2deg);
  transform-origin: left center;
}

.pro-panel {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(320px, 0.74fr);
  gap: clamp(28px, 5vw, 74px);
  max-width: 1180px;
  margin: 0 auto;
  align-items: center;
  padding: 0 clamp(18px, 4vw, 34px);
}

.professional-section .section-kicker {
  color: #bdf4d9;
}

.professional-section h2,
.professional-section p {
  color: #fff;
}

.professional-section p {
  opacity: 0.76;
}

.professional-section .button {
  margin-top: 24px;
  background: var(--lime);
  color: #006b45;
  box-shadow: 0 16px 36px rgba(85, 188, 0, 0.26);
}

.professional-section .button:hover {
  background: #b6ff21;
  color: #005f3e;
}

.pro-stack {
  display: grid;
  gap: 14px;
}

.pro-stack article {
  border: 1px solid rgba(255, 255, 255, 0.82);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.96);
  padding: 20px;
  box-shadow: 0 18px 44px rgba(0, 23, 19, 0.2);
}

.pro-stack strong {
  display: block;
  color: var(--ink);
  font-size: 18px;
  font-weight: 900;
}

.pro-stack span {
  display: block;
  margin-top: 8px;
  color: var(--muted);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.55;
}

.guides-section {
  max-width: none;
  background:
    linear-gradient(180deg, #f1fff8 0%, #fff 100%);
}

.guides-section > * {
  max-width: 1180px;
  margin-left: auto;
  margin-right: auto;
}

.guide-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  margin-top: 34px;
}

.guide-grid article {
  position: relative;
  min-height: 260px;
  overflow: hidden;
  border: 1px solid var(--card-line);
  border-radius: 8px;
  background: #fff;
  padding: 28px 24px 24px;
  box-shadow: var(--soft-card-shadow);
}

.guide-grid article::before {
  position: absolute;
  inset: 0 0 auto;
  height: 6px;
  content: "";
  background: linear-gradient(90deg, var(--green-deep), var(--lime));
}

.guide-grid span {
  display: inline-flex;
  border-radius: 999px;
  background: var(--mint);
  color: var(--green-deep);
  padding: 7px 10px;
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.guide-grid h3 {
  margin-top: 18px;
  font-size: 23px;
}

.guide-grid a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 22px;
  color: var(--green-deep);
  font-size: 14px;
  font-weight: 900;
}

.guide-grid a::after {
  width: 8px;
  height: 8px;
  content: "";
  border-top: 2px solid #93a0ad;
  border-right: 2px solid #93a0ad;
  transform: rotate(45deg);
}

.resources-section {
  scroll-margin-top: 94px;
  max-width: none;
  background: #fff;
}

.resources-section > * {
  max-width: 1180px;
  margin-left: auto;
  margin-right: auto;
}

.resources-heading {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(320px, 0.72fr);
  gap: clamp(28px, 7vw, 120px);
  align-items: start;
}

.resources-heading h2 {
  margin: 0;
  font-size: clamp(40px, 4vw, 54px);
}

.resources-heading p {
  max-width: 520px;
  margin: 8px 0 0;
  font-size: 18px;
  line-height: 1.45;
}

.resources-layout {
  display: grid;
  grid-template-columns: 400px minmax(0, 1fr);
  gap: 24px;
  margin-top: 34px;
  align-items: start;
}

.resources-layout .resource-card { align-self: stretch; }

.resource-tabs {
  display: grid;
  gap: 8px;
  align-content: start;
}

.resource-tabs button {
  position: relative;
  display: flex;
  min-height: 58px;
  align-items: center;
  justify-content: space-between;
  border: 1px solid rgba(219, 228, 238, 0.95);
  border-radius: 8px;
  background: #fff;
  padding: 0 48px 0 24px;
  color: var(--ink-soft);
  cursor: pointer;
  font-size: 19px;
  font-weight: 700;
  text-align: left;
  transition: background 160ms ease, border-color 160ms ease, color 160ms ease, transform 160ms ease;
}

.resource-tabs button:focus {
  outline: none;
}

.resource-tabs button:focus-visible {
  outline: 3px solid rgba(158, 232, 0, 0.52);
  outline-offset: 2px;
}

.resource-tabs button::after {
  position: absolute;
  right: 24px;
  top: 50%;
  width: 14px;
  height: 14px;
  content: "";
  border-top: 2px solid transparent;
  border-right: 2px solid transparent;
  transform: translateY(-50%) rotate(45deg);
}

.resource-tabs button:hover,
.resource-tabs button.active {
  border-color: rgba(150, 210, 205, 0.55);
  color: var(--green-deep);
  transform: translateX(2px);
}

.resource-tabs button:hover {
  background: #fbfffd;
}

.resource-tabs button.active {
  border-color: rgba(15, 118, 110, 0.42);
  background: var(--mint-soft);
  font-weight: 900;
}

.resource-tabs button.active::after {
  border-color: var(--green-deep);
}

.resource-card {
  overflow: hidden;
  border: 1px solid rgba(219, 228, 238, 0.8);
  border-radius: 8px;
  background: #fff;
  padding: 24px;
  box-shadow: 0 18px 52px rgba(23, 41, 73, 0.1);
}

.resource-visual {
  position: relative;
  display: grid;
  min-height: 226px;
  overflow: hidden;
  place-items: center;
  border-radius: 8px;
  background:
    linear-gradient(180deg, rgba(223, 248, 238, 0.92), rgba(150, 210, 205, 0.62));
}

.resource-visual-grid {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(0, 107, 69, 0.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0, 107, 69, 0.08) 1px, transparent 1px);
  background-size: 56px 56px;
}

.resource-illustration {
  position: relative;
  display: grid;
  width: min(245px, 72%);
  min-height: 126px;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, 0.9);
  border-radius: 8px;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(255, 255, 255, 0.82));
  box-shadow: 0 22px 45px rgba(23, 41, 73, 0.14);
}

.resource-graphic.animate-in {
  animation: resourceGraphicIn 540ms cubic-bezier(0.2, 0.88, 0.22, 1.12) both;
}

.graphic-title {
  position: absolute;
  z-index: 2;
  color: var(--ink);
  font-size: clamp(34px, 5vw, 52px);
  font-weight: 900;
  line-height: 1;
  letter-spacing: 0;
  transform: var(--title-transform, translate(0, 0));
}

.graphic-badge,
.graphic-mark,
.graphic-coin {
  position: absolute;
  z-index: 1;
  display: block;
  transform-origin: center;
}

.resource-graphic.animate-in .graphic-badge {
  animation: resourceBadgeIn 560ms 80ms cubic-bezier(0.2, 0.9, 0.28, 1.18) both;
}

.resource-graphic.animate-in .graphic-mark {
  animation: resourceMarkIn 580ms 135ms cubic-bezier(0.2, 0.9, 0.28, 1.08) both;
}

.resource-graphic.animate-in .graphic-coin {
  animation: resourceCoinIn 620ms 170ms cubic-bezier(0.2, 0.9, 0.28, 1.18) both;
}

.resource-graphic.animate-in .graphic-title {
  animation: resourceTitleIn 520ms 60ms ease both;
}

.graphic-badge {
  --badge-transform: translate(0, 0);
  left: 22px;
  top: 24px;
  width: 40px;
  height: 30px;
  border-radius: 999px;
  background:
    linear-gradient(135deg, var(--green-deep), var(--green));
  transform: var(--badge-transform);
}

.graphic-coin {
  right: 22px;
  bottom: 22px;
  width: 46px;
  height: 46px;
  border: 4px solid rgba(217, 154, 33, 0.95);
  border-radius: 50%;
  background: rgba(255, 190, 66, 0.86);
}

.graphic-coin::after {
  position: absolute;
  inset: 9px;
  content: "";
  border-radius: 50%;
  border: 2px solid rgba(184, 120, 17, 0.34);
}

.graphic-mark {
  opacity: 0.72;
  transform: var(--mark-transform, translate(0, 0));
}

.graphic-annuities .graphic-mark {
  left: 40px;
  bottom: 24px;
  width: 46px;
  height: 34px;
  border: 2px solid #9aa9b7;
  border-radius: 6px;
  --mark-transform: rotate(-8deg);
}

.graphic-annuities .graphic-mark::before,
.graphic-annuities .graphic-mark::after,
.graphic-final-expense .graphic-badge::before,
.graphic-final-expense .graphic-badge::after,
.graphic-universal-life .graphic-badge::before,
.graphic-universal-life .graphic-badge::after,
.graphic-medicare .graphic-mark::before,
.graphic-medicare .graphic-mark::after,
.graphic-income .graphic-mark::before,
.graphic-income .graphic-mark::after,
.graphic-advisors .graphic-mark::before,
.graphic-advisors .graphic-mark::after {
  position: absolute;
  content: "";
}

.graphic-annuities .graphic-mark::before {
  left: -11px;
  top: 8px;
  width: 34px;
  height: 24px;
  border-radius: 5px;
  background: linear-gradient(135deg, var(--green-deep), var(--green));
  transform: rotate(-5deg);
}

.graphic-annuities .graphic-mark::after {
  left: 20px;
  top: 12px;
  width: 14px;
  height: 3px;
  border-radius: 999px;
  background: #b7c2cc;
  box-shadow: 0 7px 0 #c9d2da;
}

.graphic-final-expense .graphic-title {
  left: 50%;
  --title-transform: translateX(-50%);
}

.graphic-final-expense .graphic-badge {
  left: 28px;
  top: 28px;
  width: 34px;
  height: 34px;
  border-radius: 8px;
  background: var(--green-deep);
  --badge-transform: rotate(-45deg);
}

.graphic-final-expense .graphic-badge::before,
.graphic-final-expense .graphic-badge::after {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--green-deep);
}

.graphic-final-expense .graphic-badge::before {
  top: -17px;
  left: 0;
}

.graphic-final-expense .graphic-badge::after {
  left: 17px;
  top: 0;
}

.graphic-final-expense .graphic-mark {
  right: 56px;
  bottom: 24px;
  width: 38px;
  height: 38px;
  border: 3px solid #80d5bd;
  border-radius: 50%;
}

.graphic-final-expense .graphic-mark::before {
  left: 16px;
  top: 8px;
  width: 5px;
  height: 21px;
  border-radius: 999px;
  background: var(--green-deep);
  box-shadow: -8px 8px 0 -1px var(--green-deep), 8px 8px 0 -1px var(--green-deep);
}

.graphic-universal-life .graphic-badge {
  left: 25px;
  top: 22px;
  width: 42px;
  height: 48px;
  border: 3px solid #0f766e;
  border-radius: 7px;
  background: #fff;
}

.graphic-universal-life .graphic-badge::before {
  left: 10px;
  top: 9px;
  width: 18px;
  height: 18px;
  border-radius: 5px 5px 8px 8px;
  background: var(--green);
  clip-path: polygon(50% 0, 100% 18%, 92% 78%, 50% 100%, 8% 78%, 0 18%);
}

.graphic-universal-life .graphic-badge::after {
  left: 10px;
  bottom: 8px;
  width: 20px;
  height: 3px;
  border-radius: 999px;
  background: #a8b7c5;
}

.graphic-universal-life .graphic-mark {
  right: 58px;
  bottom: 26px;
  width: 50px;
  height: 38px;
  border: 2px solid #a8b7c5;
  border-radius: 8px;
  --mark-transform: rotate(8deg);
}

.graphic-medicare .graphic-title {
  left: 54%;
}

.graphic-medicare .graphic-badge {
  left: 28px;
  top: 28px;
  width: 40px;
  height: 40px;
  border: 3px solid #80d5bd;
  border-radius: 12px;
  background: #ecfff6;
}

.graphic-medicare .graphic-badge::before {
  position: absolute;
  left: 15px;
  top: 8px;
  width: 8px;
  height: 22px;
  content: "";
  border-radius: 999px;
  background: var(--green);
  box-shadow: -7px 7px 0 -1px var(--green), 7px 7px 0 -1px var(--green);
}

.graphic-medicare .graphic-mark {
  right: 62px;
  bottom: 26px;
  width: 42px;
  height: 22px;
  border: 3px solid #8f9bab;
  border-radius: 999px;
  --mark-transform: rotate(-28deg);
}

.graphic-medicare .graphic-mark::after {
  left: 18px;
  top: -3px;
  width: 3px;
  height: 24px;
  background: #8f9bab;
}

.graphic-income .graphic-badge {
  left: 26px;
  top: 28px;
  width: 42px;
  height: 28px;
  border: 3px solid var(--green-deep);
  border-radius: 8px;
  background: #ecfff6;
}

.graphic-income .graphic-badge::before {
  position: absolute;
  left: 14px;
  top: 5px;
  content: "$";
  color: var(--green-deep);
  font-size: 17px;
  font-weight: 900;
}

.graphic-income .graphic-mark {
  right: 48px;
  bottom: 28px;
  width: 70px;
  height: 44px;
  border-bottom: 3px solid #8f9bab;
  border-left: 3px solid #8f9bab;
}

.graphic-income .graphic-mark::before {
  left: 8px;
  bottom: 8px;
  width: 48px;
  height: 28px;
  border-top: 4px solid var(--green);
  border-right: 4px solid var(--green);
  transform: rotate(-22deg);
}

.graphic-income .graphic-mark::after {
  right: 3px;
  top: 3px;
  width: 11px;
  height: 11px;
  border-top: 4px solid var(--green);
  border-right: 4px solid var(--green);
  transform: rotate(45deg);
}

.graphic-advisors .graphic-badge {
  left: 27px;
  top: 24px;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background:
    radial-gradient(circle at 50% 37%, #fff 0 6px, transparent 7px),
    radial-gradient(circle at 50% 92%, #fff 0 15px, transparent 16px),
    linear-gradient(135deg, var(--green-deep), var(--green));
}

.graphic-advisors .graphic-mark {
  right: 50px;
  bottom: 24px;
  width: 66px;
  height: 42px;
  border: 3px solid #8f9bab;
  border-radius: 10px;
}

.graphic-advisors .graphic-mark::before {
  left: 14px;
  top: 13px;
  width: 34px;
  height: 4px;
  border-radius: 999px;
  background: #8f9bab;
  box-shadow: 0 9px 0 #b6c0ca;
}

.graphic-advisors .graphic-mark::after {
  left: 8px;
  bottom: -9px;
  width: 15px;
  height: 15px;
  border-left: 3px solid #8f9bab;
  border-bottom: 3px solid #8f9bab;
  background: #fff;
  transform: rotate(-35deg);
}

@keyframes resourceGraphicIn {
  from {
    opacity: 0;
    transform: translateY(18px) scale(0.92) rotate(-1deg);
  }

  to {
    opacity: 1;
    transform: translateY(0) scale(1) rotate(0);
  }
}

@keyframes resourceBadgeIn {
  from {
    opacity: 0;
    transform: translate(-14px, -8px) scale(0.72) var(--badge-transform, translate(0, 0));
  }

  to {
    opacity: 1;
    transform: var(--badge-transform, translate(0, 0));
  }
}

@keyframes resourceMarkIn {
  from {
    opacity: 0;
    transform: translate(18px, 10px) scale(0.8) var(--mark-transform, translate(0, 0));
  }

  to {
    opacity: 0.72;
    transform: var(--mark-transform, translate(0, 0));
  }
}

@keyframes resourceCoinIn {
  from {
    opacity: 0;
    transform: translate(18px, 12px) scale(0.68) rotate(-20deg);
  }

  to {
    opacity: 1;
    transform: translate(0, 0) scale(1) rotate(0);
  }
}

@keyframes resourceTitleIn {
  from {
    opacity: 0;
    letter-spacing: 0.06em;
    transform: translateY(8px) var(--title-transform, translate(0, 0));
  }

  to {
    opacity: 1;
    letter-spacing: 0;
    transform: var(--title-transform, translate(0, 0));
  }
}

@media (prefers-reduced-motion: reduce) {
  .resource-graphic.animate-in,
  .resource-graphic.animate-in .graphic-badge,
  .resource-graphic.animate-in .graphic-mark,
  .resource-graphic.animate-in .graphic-coin,
  .resource-graphic.animate-in .graphic-title {
    animation: none;
  }
}

.resource-visual[data-resource-tone="finalExpense"] {
  background:
    linear-gradient(180deg, rgba(234, 248, 242, 0.95), rgba(159, 230, 209, 0.68));
}

.resource-visual[data-resource-tone="universalLife"] {
  background:
    linear-gradient(180deg, rgba(232, 247, 255, 0.96), rgba(164, 214, 240, 0.68));
}

.resource-visual[data-resource-tone="medicare"] {
  background:
    linear-gradient(180deg, rgba(238, 251, 246, 0.96), rgba(178, 232, 215, 0.72));
}

.resource-visual[data-resource-tone="income"] {
  background:
    linear-gradient(180deg, rgba(250, 255, 235, 0.98), rgba(195, 240, 105, 0.64));
}

.resource-visual[data-resource-tone="advisors"] {
  background:
    linear-gradient(180deg, rgba(244, 248, 251, 0.98), rgba(150, 210, 205, 0.52));
}

.resource-copy {
  margin-top: 18px;
}

.resource-copy h3 {
  color: var(--ink);
  font-size: clamp(22px, 2.2vw, 28px);
  font-weight: 900;
  line-height: 1.18;
}

.resource-copy p {
  max-width: 650px;
  margin-top: 8px;
  color: var(--ink-soft);
  font-size: 17px;
  line-height: 1.45;
}

.resource-cta {
  margin-top: 18px;
}

.resource-links {
  display: grid;
  gap: 15px;
  margin-top: 26px;
  border-top: 1px solid var(--line);
  padding-top: 22px;
}

.resource-links a {
  display: inline-flex;
  width: fit-content;
  align-items: center;
  gap: 13px;
  color: var(--green-deep);
  font-size: 17px;
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.resource-links a::after {
  width: 7px;
  height: 7px;
  flex: 0 0 auto;
  margin-left: -5px;
  content: "";
  border-top: 1.8px solid currentColor;
  border-right: 1.8px solid currentColor;
  transform: translateY(-2px) rotate(45deg);
}

.resource-link-icon {
  position: relative;
  display: inline-flex;
  width: 25px;
  height: 25px;
  flex: 0 0 auto;
  color: #8c96a3;
}

.resource-link-icon::before,
.resource-link-icon::after {
  position: absolute;
  content: "";
}

.icon-chart::before {
  left: 4px;
  bottom: 4px;
  width: 16px;
  height: 14px;
  border-bottom: 2px solid currentColor;
  border-left: 2px solid currentColor;
}

.icon-chart::after {
  left: 8px;
  top: 7px;
  width: 11px;
  height: 7px;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  transform: rotate(-28deg);
}

.icon-calculator::before {
  inset: 3px 5px;
  border: 2px solid currentColor;
  border-radius: 5px;
}

.icon-calculator::after {
  left: 9px;
  top: 9px;
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: currentColor;
  box-shadow: 6px 0 0 currentColor, 0 6px 0 currentColor, 6px 6px 0 currentColor;
}

.icon-checklist::before {
  left: 9px;
  top: 7px;
  width: 12px;
  height: 2px;
  background: currentColor;
  box-shadow: 0 6px 0 currentColor, 0 12px 0 currentColor;
}

.icon-checklist::after {
  left: 3px;
  top: 6px;
  width: 4px;
  height: 7px;
  border-bottom: 2px solid currentColor;
  border-right: 2px solid currentColor;
  box-shadow: 6px 6px 0 -4px transparent;
  transform: rotate(38deg);
}

.icon-shield::before {
  left: 5px;
  top: 3px;
  width: 15px;
  height: 18px;
  border: 2px solid currentColor;
  border-radius: 8px 8px 10px 10px;
}

.icon-shield::after {
  left: 10px;
  top: 9px;
  width: 5px;
  height: 8px;
  border-bottom: 2px solid currentColor;
  border-right: 2px solid currentColor;
  transform: rotate(40deg);
}

.icon-clock::before {
  inset: 4px;
  border: 2px solid currentColor;
  border-radius: 50%;
}

.icon-clock::after {
  left: 12px;
  top: 7px;
  width: 6px;
  height: 7px;
  border-left: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
}

.icon-policy::before {
  left: 6px;
  top: 3px;
  width: 14px;
  height: 18px;
  border: 2px solid currentColor;
  border-radius: 3px;
}

.icon-policy::after {
  left: 9px;
  top: 9px;
  width: 8px;
  height: 2px;
  background: currentColor;
  box-shadow: 0 5px 0 currentColor;
}

.icon-cash::before {
  left: 3px;
  top: 7px;
  width: 19px;
  height: 12px;
  border: 2px solid currentColor;
  border-radius: 4px;
}

.icon-cash::after {
  left: 10px;
  top: 10px;
  width: 5px;
  height: 5px;
  border: 2px solid currentColor;
  border-radius: 50%;
}

.icon-cross::before {
  left: 5px;
  top: 5px;
  width: 15px;
  height: 15px;
  border: 2px solid currentColor;
  border-radius: 6px;
}

.icon-cross::after {
  left: 7px;
  top: 7px;
  width: 11px;
  height: 11px;
  background:
    linear-gradient(currentColor, currentColor) center / 3px 11px no-repeat,
    linear-gradient(currentColor, currentColor) center / 11px 3px no-repeat;
}

.icon-calendar::before {
  left: 4px;
  top: 5px;
  width: 17px;
  height: 15px;
  border: 2px solid currentColor;
  border-radius: 4px;
}

.icon-calendar::after {
  left: 8px;
  top: 10px;
  width: 3px;
  height: 3px;
  background: currentColor;
  box-shadow: 6px 0 0 currentColor, 0 5px 0 currentColor, 6px 5px 0 currentColor;
}

.icon-pills::before {
  left: 3px;
  top: 8px;
  width: 18px;
  height: 9px;
  border: 2px solid currentColor;
  border-radius: 999px;
  transform: rotate(-28deg);
}

.icon-pills::after {
  left: 12px;
  top: 6px;
  width: 2px;
  height: 13px;
  background: currentColor;
  transform: rotate(-28deg);
}

.icon-chat::before {
  left: 3px;
  top: 5px;
  width: 18px;
  height: 13px;
  border: 2px solid currentColor;
  border-radius: 6px;
}

.icon-chat::after {
  left: 8px;
  top: 16px;
  width: 7px;
  height: 7px;
  border-left: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(-22deg);
}

.icon-user::before {
  left: 8px;
  top: 4px;
  width: 8px;
  height: 8px;
  border: 2px solid currentColor;
  border-radius: 50%;
}

.icon-user::after {
  left: 4px;
  top: 15px;
  width: 16px;
  height: 7px;
  border: 2px solid currentColor;
  border-radius: 999px 999px 0 0;
  border-bottom: 0;
}

.icon-compass::before {
  inset: 4px;
  border: 2px solid currentColor;
  border-radius: 50%;
}

.icon-compass::after {
  left: 10px;
  top: 6px;
  width: 5px;
  height: 12px;
  background: currentColor;
  clip-path: polygon(50% 0, 100% 100%, 50% 75%, 0 100%);
  transform: rotate(32deg);
}

@media (max-width: 980px) {
  .resources-heading,
  .resources-layout {
    grid-template-columns: 1fr;
  }

  .resource-tabs {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .resources-heading p {
    font-size: 16px;
  }

  .resource-tabs {
    grid-template-columns: 1fr;
  }

  .resource-tabs button {
    min-height: 54px;
    font-size: 17px;
  }

  .resource-card {
    padding: 18px;
  }

  .resource-visual {
    min-height: 182px;
  }

  .resource-links a {
    font-size: 15px;
  }
}

.disclosure-section {
  padding: 24px clamp(18px, 4vw, 56px);
  border-top: 1px solid rgba(150, 210, 205, 0.28);
  background: #f7fbf8;
}

.disclosure-section > div {
  max-width: 1180px;
  margin: 0 auto;
}

.disclosure-summary {
  display: grid;
  grid-template-columns: minmax(260px, 0.74fr) minmax(320px, 1fr);
  gap: 26px;
  align-items: start;
  margin-top: 8px;
}

.disclosure-section h2 {
  margin-top: 8px;
  color: var(--ink);
  font-size: clamp(22px, 3vw, 30px);
  font-weight: 900;
  letter-spacing: 0;
  line-height: 1.12;
}

.disclosure-summary p {
  color: #536173;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.55;
}

.disclosure-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 16px;
}

.disclosure-pills span {
  border: 1px solid rgba(150, 210, 205, 0.56);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.74);
  color: var(--green-deep);
  padding: 7px 10px;
  font-size: 12px;
  font-weight: 900;
  line-height: 1;
}

.disclosure-details {
  margin-top: 14px;
}

.disclosure-details summary {
  width: fit-content;
  border-radius: 8px;
  color: var(--ink);
  cursor: pointer;
  font-size: 13px;
  font-weight: 900;
  list-style: none;
}

.disclosure-details summary::-webkit-details-marker {
  display: none;
}

.disclosure-details summary::after {
  display: inline-block;
  width: 7px;
  height: 7px;
  margin-left: 8px;
  content: "";
  border-bottom: 2px solid currentColor;
  border-right: 2px solid currentColor;
  transform: translateY(-2px) rotate(45deg);
  transition: transform 160ms ease;
}

.disclosure-details[open] summary::after {
  transform: translateY(2px) rotate(225deg);
}

.disclosure-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 14px;
}

.disclosure-grid article {
  border: 1px solid rgba(185, 204, 214, 0.78);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.82);
  padding: 14px;
  box-shadow: 0 14px 34px rgba(23, 41, 73, 0.05);
}

.disclosure-grid strong {
  display: block;
  color: var(--green-deep);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.disclosure-grid p {
  margin-top: 8px;
  color: #536173;
  font-size: 13px;
  font-weight: 650;
  line-height: 1.58;
}

@media (max-width: 780px) {
  .disclosure-summary {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .disclosure-grid {
    grid-template-columns: 1fr;
  }

  .disclosure-grid article {
    padding: 16px;
  }
}

.site-footer {
  background:
    radial-gradient(circle at 12% 20%, rgba(158, 232, 0, 0.16), transparent 28%),
    linear-gradient(135deg, #053f31 0%, #07573e 54%, #0b5e57 100%);
  color: #fff;
  padding: 0 clamp(18px, 4vw, 56px);
}

.footer-inner {
  max-width: 1180px;
  margin: 0 auto;
}

.footer-main {
  display: grid;
  grid-template-columns: minmax(260px, 0.9fr) minmax(420px, 1.24fr) minmax(210px, 0.7fr);
  gap: clamp(28px, 5vw, 70px);
  align-items: start;
  padding: 46px 0 34px;
}

.footer-brand {
  width: fit-content;
  color: #fff;
}

.footer-brand .brand-mark {
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.18);
}

.footer-brand small {
  color: rgba(255, 255, 255, 0.72);
}

.footer-about p {
  max-width: 340px;
  margin-top: 18px;
  color: rgba(255, 255, 255, 0.74);
  font-size: 15px;
  font-weight: 700;
  line-height: 1.58;
}

.footer-cta {
  display: inline-flex;
  min-height: 46px;
  align-items: center;
  justify-content: center;
  margin-top: 22px;
  border-radius: 8px;
  background: var(--lime);
  color: #06412f;
  padding: 0 20px;
  font-size: 14px;
  font-weight: 900;
  box-shadow: 0 16px 34px rgba(85, 188, 0, 0.2);
  transition: transform 160ms ease, background 160ms ease;
}

.footer-cta:hover {
  background: #b7ff20;
  transform: translateY(-1px);
}

.footer-nav {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(18px, 3vw, 36px);
}

.footer-nav div {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.footer-nav strong,
.footer-contact span {
  color: #bdf4d9;
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.footer-nav a {
  width: fit-content;
  color: rgba(255, 255, 255, 0.84);
  font-size: 14px;
  font-weight: 800;
  line-height: 1.2;
  transition: color 160ms ease;
}

.footer-nav a:hover,
.footer-bottom a:hover {
  color: var(--lime);
}

.footer-contact {
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.09);
  padding: 20px;
  box-shadow: 0 18px 42px rgba(0, 29, 21, 0.16);
}

.footer-contact a {
  display: block;
  margin-top: 10px;
  color: #fff;
  font-size: 22px;
  font-weight: 900;
  line-height: 1.1;
}

.footer-contact p {
  margin-top: 12px;
  color: rgba(255, 255, 255, 0.66);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.45;
}

.footer-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  border-top: 1px solid rgba(255, 255, 255, 0.14);
  padding: 18px 0 22px;
}

/* Legal block: three labelled disclosures + copyright. Split so the
   material-connection line reads first instead of being buried mid-paragraph. */
/* The site footer is LIGHT (#fff, set at the "footer redesign" rule far below this
   one). Colours here must be dark-on-light — the older dark-footer rule above is
   superseded and must not be used as a reference. */
.footer-bottom .footer-legal { display: grid; gap: 10px; width: 100%; text-align: center; }
.footer-bottom .footer-legal p {
  margin: 0;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.65;
  color: #66748c;
}
.footer-bottom .footer-legal p strong {
  color: #5b6b85;
  font-weight: 700;
  letter-spacing: .01em;
}
.footer-bottom .footer-legal a {
  color: #5b6b85;
  font-size: inherit;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.footer-bottom .footer-legal a:hover { color: #0b5e57; }
.footer-bottom .footer-legal .footer-copy {
  padding-top: 4px;
  color: #79879c;
}

.footer-bottom p,
.footer-bottom a {
  color: rgba(255, 255, 255, 0.66);
  font-size: 12px;
  font-weight: 800;
}

.footer-bottom div {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
}

@media (max-width: 980px) {
  .rate-controls {
    grid-template-columns: 1fr;
  }

  .rate-request-fields {
    grid-template-columns: repeat(2, minmax(0, 1fr)) auto;
  }

  .footer-main {
    grid-template-columns: 1fr;
  }

  .footer-about {
    display: grid;
    justify-items: start;
  }

  .footer-about p {
    max-width: 560px;
  }

  .footer-contact {
    max-width: 360px;
  }
}

@media (max-width: 760px) {
  .site-footer {
    padding: 0 18px;
  }

  .footer-main {
    gap: 30px;
    padding: 36px 0 28px;
  }

  .footer-nav {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .footer-bottom {
    align-items: flex-start;
    flex-direction: column;
    gap: 12px;
  }
}

@media (max-width: 520px) {
  .footer-nav {
    grid-template-columns: 1fr;
  }

  .footer-contact {
    max-width: none;
  }
}

.quiz-overlay {
  position: fixed;
  inset: 0;
  z-index: 120;
  overflow-y: auto;
  background: #f7fbfa;
}

.quiz-overlay[hidden] {
  display: none;
}

.quiz-panel {
  min-height: 100vh;
  background:
    radial-gradient(circle at 12% 18%, rgba(213, 247, 234, 0.86), transparent 28%),
    linear-gradient(180deg, #ffffff 0%, #f6fbfa 100%);
}

.quiz-header {
  position: sticky;
  top: 0;
  z-index: 2;
  display: flex;
  min-height: 74px;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  border-bottom: 1px solid rgba(219, 228, 238, 0.9);
  background: rgba(255, 255, 255, 0.94);
  padding: 14px clamp(18px, 4vw, 52px);
  backdrop-filter: blur(18px);
}

.quiz-brand small {
  color: var(--green-deep);
}

.quiz-close {
  position: relative;
  width: 44px;
  height: 44px;
  flex: 0 0 auto;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  cursor: pointer;
  transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.quiz-close:hover {
  border-color: rgba(15, 118, 110, 0.45);
  box-shadow: 0 12px 26px rgba(23, 41, 73, 0.1);
  transform: translateY(-1px);
}

.quiz-close::before,
.quiz-close::after {
  position: absolute;
  left: 13px;
  top: 20px;
  width: 17px;
  height: 2px;
  content: "";
  border-radius: 999px;
  background: var(--ink-soft);
}

.quiz-close::before {
  transform: rotate(45deg);
}

.quiz-close::after {
  transform: rotate(-45deg);
}

.quiz-progress {
  position: sticky;
  top: 74px;
  z-index: 2;
  height: 5px;
  background: #e6f2ee;
}

.quiz-progress span {
  display: block;
  width: 16.666%;
  height: 100%;
  background: linear-gradient(90deg, var(--green-deep), var(--green), var(--lime));
  transition: width 280ms ease;
}

.quiz-shell {
  display: grid;
  grid-template-columns: minmax(260px, 340px) minmax(0, 710px);
  gap: clamp(34px, 6vw, 72px);
  justify-content: center;
  padding: clamp(30px, 6vw, 74px) clamp(18px, 5vw, 64px) 70px;
}

.quiz-sidebar {
  padding-top: 32px;
}

.quiz-mini-kicker {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  background: #e6f8f0;
  color: var(--green-deep);
  padding: 8px 12px;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.quiz-sidebar h2 {
  margin-top: 20px;
  color: var(--ink);
  font-size: clamp(31px, 4vw, 46px);
  font-weight: 900;
  letter-spacing: 0;
  line-height: 1.02;
}

.quiz-sidebar p {
  margin-top: 16px;
  color: var(--ink-soft);
  font-size: 17px;
  font-weight: 650;
  line-height: 1.55;
}

.quiz-trust-list {
  display: grid;
  gap: 12px;
  margin-top: 28px;
}

.quiz-trust-list span {
  position: relative;
  padding-left: 30px;
  color: var(--ink);
  font-size: 15px;
  font-weight: 850;
}

.quiz-trust-list span::before {
  position: absolute;
  left: 0;
  top: 2px;
  width: 18px;
  height: 18px;
  content: "";
  border-radius: 999px;
  background: var(--green);
}

.quiz-trust-list span::after {
  position: absolute;
  left: 6px;
  top: 5px;
  width: 4px;
  height: 8px;
  content: "";
  border-bottom: 2px solid #fff;
  border-right: 2px solid #fff;
  transform: rotate(45deg);
}

.quiz-card {
  border: 1px solid rgba(200, 216, 228, 0.95);
  border-radius: 8px;
  background: #fff;
  padding: clamp(22px, 4vw, 40px);
  box-shadow: 0 28px 80px rgba(23, 41, 73, 0.13);
}

.quiz-step-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 28px;
}

.quiz-step-meta span,
.quiz-step-meta small {
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.quiz-question h2 {
  margin-top: 8px;
  color: var(--ink);
  font-size: clamp(30px, 4vw, 44px);
  font-weight: 900;
  letter-spacing: 0;
  line-height: 1.08;
}

.quiz-question p:not(.section-kicker) {
  max-width: 590px;
  margin-top: 12px;
  color: var(--ink-soft);
  font-size: 17px;
  font-weight: 650;
  line-height: 1.5;
}

.quiz-options {
  display: grid;
  gap: 12px;
  margin-top: 28px;
}

.quiz-option {
  display: flex;
  width: 100%;
  align-items: flex-start;
  gap: 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  padding: 18px 20px;
  color: var(--ink);
  cursor: pointer;
  text-align: left;
  transition: background 160ms ease, border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.quiz-option:hover,
.quiz-option:focus-visible {
  border-color: rgba(15, 118, 110, 0.55);
  box-shadow: 0 13px 30px rgba(23, 41, 73, 0.08);
  outline: none;
  transform: translateY(-1px);
}

.quiz-option[aria-pressed="true"] {
  border-color: var(--green);
  background: #effbf5;
  box-shadow: 0 13px 32px rgba(0, 126, 82, 0.1);
}

.quiz-option-marker {
  position: relative;
  width: 22px;
  height: 22px;
  flex: 0 0 auto;
  margin-top: 1px;
  border: 2px solid #b8c5d2;
  border-radius: 999px;
  background: #fff;
}

.quiz-option[aria-pressed="true"] .quiz-option-marker {
  border-color: var(--green);
}

.quiz-option[aria-pressed="true"] .quiz-option-marker::after {
  position: absolute;
  inset: 4px;
  content: "";
  border-radius: 999px;
  background: var(--green);
}

.quiz-option-copy {
  display: grid;
  gap: 4px;
}

.quiz-option-copy strong {
  color: var(--ink);
  font-size: 18px;
  font-weight: 900;
  line-height: 1.2;
}

.quiz-option-copy small {
  color: var(--muted);
  font-size: 14px;
  font-weight: 650;
  line-height: 1.42;
}

/* Vertical router — 4-icon catch-all chooser (quiz step 1) */
.quiz-options.quiz-options-router {
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
.quiz-route {
  display: flex;
  align-items: center;
  gap: 14px;
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
  padding: 20px 18px;
  color: var(--ink);
  cursor: pointer;
  text-align: left;
  transition: background 160ms ease, border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}
.quiz-route:hover,
.quiz-route:focus-visible {
  border-color: rgba(15, 118, 110, 0.55);
  box-shadow: 0 14px 32px rgba(23, 41, 73, 0.1);
  outline: none;
  transform: translateY(-2px);
}
.quiz-route-icon {
  flex: 0 0 auto;
  width: 48px;
  height: 48px;
  border-radius: 12px;
  display: grid;
  place-items: center;
  color: var(--green-deep);
  background: rgba(15, 118, 110, 0.1);
}
.quiz-route-icon svg {
  width: 24px;
  height: 24px;
}
.quiz-route-copy {
  display: grid;
  gap: 3px;
  flex: 1;
  min-width: 0;
}
.quiz-route-copy strong {
  color: var(--ink);
  font-size: 17px;
  font-weight: 900;
  line-height: 1.2;
}
.quiz-route-copy small {
  color: var(--muted);
  font-size: 13px;
  font-weight: 650;
  line-height: 1.4;
}
.quiz-route-arrow {
  flex: 0 0 auto;
  color: #b8c5d2;
  font-size: 18px;
  font-weight: 800;
  transition: transform 160ms ease, color 160ms ease;
}
.quiz-route:hover .quiz-route-arrow,
.quiz-route:focus-visible .quiz-route-arrow {
  color: var(--green-deep);
  transform: translateX(3px);
}
@media (max-width: 560px) {
  .quiz-options.quiz-options-router { grid-template-columns: 1fr; }
  .quiz-route { padding: 16px; }
  .quiz-route-icon { width: 42px; height: 42px; }
}

.quiz-fields {
  display: grid;
  gap: 16px;
  margin-top: 28px;
}

.quiz-field {
  display: grid;
  gap: 8px;
}

.quiz-field span {
  color: var(--ink);
  font-size: 13px;
  font-weight: 900;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.quiz-field input,
.quiz-field select {
  width: 100%;
  min-width: 0;
  height: 58px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  color: var(--ink);
  padding: 0 16px;
  font-size: 17px;
  font-weight: 800;
  outline: none;
}

.quiz-field input:focus,
.quiz-field select:focus {
  border-color: rgba(15, 118, 110, 0.62);
  box-shadow: 0 0 0 4px rgba(15, 118, 110, 0.12);
}

.quiz-summary {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 28px;
}

.quiz-options[hidden],
.quiz-fields[hidden],
.quiz-summary[hidden] {
  display: none;
}

.quiz-summary span {
  display: grid;
  gap: 4px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--mint-soft);
  padding: 14px;
  color: var(--ink);
  font-size: 15px;
  font-weight: 800;
}

.quiz-summary strong {
  color: var(--green-deep);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.quiz-summary p {
  grid-column: 1 / -1;
  margin-top: 4px;
  color: var(--muted);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.45;
}

.quiz-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-top: 30px;
  border-top: 1px solid var(--line);
  padding-top: 22px;
}

.quiz-back {
  min-height: 48px;
  border-radius: 8px;
  background: transparent;
  color: var(--green-deep);
  padding: 0 10px;
  font-weight: 900;
  cursor: pointer;
}

.quiz-back:disabled {
  color: #aeb8c3;
  cursor: not-allowed;
}

.quiz-next {
  min-width: 178px;
}

.quiz-next:disabled {
  opacity: 0.46;
  cursor: not-allowed;
  transform: none;
}

@media (max-width: 920px) {
  .quiz-shell {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .quiz-sidebar {
    padding-top: 0;
  }

  .quiz-sidebar h2,
  .quiz-sidebar p {
    max-width: 700px;
  }

  .quiz-trust-list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .quiz-header {
    min-height: 68px;
  }

  .quiz-progress {
    top: 68px;
  }

  .quiz-shell {
    padding: 24px 14px 42px;
  }

  .quiz-trust-list,
  .quiz-summary {
    grid-template-columns: 1fr;
  }

  .quiz-card {
    padding: 20px 16px;
  }

  .quiz-step-meta {
    align-items: flex-start;
    flex-direction: column;
    gap: 6px;
    margin-bottom: 20px;
  }

  .quiz-option {
    padding: 16px;
  }

  .quiz-actions {
    align-items: stretch;
    flex-direction: column-reverse;
  }

  .quiz-back,
  .quiz-next {
    width: 100%;
  }
}

.chatbot-overlay {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: grid;
  place-items: center;
  background: rgba(7, 20, 18, 0.54);
  padding: 18px;
  backdrop-filter: blur(12px);
}

.chatbot-overlay[hidden] {
  display: none;
}

.chatbot-panel {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  width: min(720px, 100%);
  height: min(680px, calc(100vh - 36px));
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 8px;
  background: #f8fbfa;
  box-shadow: 0 34px 90px rgba(0, 0, 0, 0.32);
}

.chatbot-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  border-bottom: 1px solid var(--line);
  background: #fff;
  padding: 18px;
}

.ai-pill {
  display: inline-flex;
  border-radius: 999px;
  background: linear-gradient(90deg, #0f766e, #72d14d);
  color: #fff;
  padding: 7px 10px;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.08em;
}

.chatbot-header h2 {
  margin-top: 8px;
  color: var(--ink);
  font-size: 22px;
  font-weight: 900;
  line-height: 1.1;
}

.chat-close {
  position: relative;
  width: 42px;
  height: 42px;
  flex: 0 0 auto;
  border-radius: 8px;
  background: var(--mist);
  cursor: pointer;
}

.chat-close::before,
.chat-close::after {
  position: absolute;
  left: 13px;
  top: 20px;
  width: 16px;
  height: 2px;
  content: "";
  border-radius: 999px;
  background: var(--ink-soft);
}

.chat-close::before {
  transform: rotate(45deg);
}

.chat-close::after {
  transform: rotate(-45deg);
}

.chatbot-body {
  display: flex;
  flex-direction: column;
  gap: 12px;
  overflow-y: auto;
  padding: 18px;
}

.chat-message {
  max-width: 82%;
  border-radius: 8px;
  padding: 13px 14px;
  box-shadow: 0 12px 28px rgba(23, 41, 73, 0.06);
}

.chat-message span {
  display: block;
  margin-bottom: 5px;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.chat-message p {
  color: inherit;
  font-size: 14px;
  font-weight: 650;
  line-height: 1.55;
}

.chat-message.bot {
  align-self: flex-start;
  border: 1px solid var(--line);
  background: #fff;
  color: var(--ink-soft);
}

.chat-message.bot span {
  color: var(--green-deep);
}

.chat-message.user {
  align-self: flex-end;
  background: var(--green);
  color: #fff;
}

.chat-message.user span {
  color: rgba(255, 255, 255, 0.76);
}

.chatbot-input {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 48px;
  gap: 10px;
  border-top: 1px solid var(--line);
  background: #fff;
  padding: 14px;
}

.chatbot-input input {
  width: 100%;
  min-width: 0;
  height: 48px;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--ink);
  padding: 0 14px;
  font-weight: 700;
  outline: none;
}

.chatbot-input input:focus {
  border-color: rgba(15, 118, 110, 0.62);
  box-shadow: 0 0 0 4px rgba(15, 118, 110, 0.12);
}

@media (max-width: 1060px) {
  .site-header {
    grid-template-columns: auto auto;
    justify-content: space-between;
  }

  .nav-toggle {
    display: inline-flex;
    flex-direction: column;
  }

  .site-nav,
  .header-actions {
    display: none;
  }

  .site-header.nav-open .site-nav {
    position: fixed;
    inset: 74px 14px auto 14px;
    display: grid;
    justify-content: stretch;
    gap: 0;
    max-height: calc(100vh - 92px);
    overflow-y: auto;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    padding: 10px;
    box-shadow: var(--shadow);
  }

  .site-header.nav-open .site-nav a {
    padding: 16px;
    border-radius: 8px;
  }

  .site-header.nav-open .site-nav a:hover {
    background: var(--mist);
  }

  .site-header.nav-open .nav-item {
    display: grid;
  }

  .site-header.nav-open .mega-menu {
    position: static;
    width: auto;
    opacity: 1;
    pointer-events: auto;
    transform: none;
    visibility: visible;
  }

  .site-header.nav-open .mega-menu::before {
    display: none;
  }

  .site-header.nav-open .mega-panel {
    grid-template-columns: 1fr;
    gap: 8px;
    border: 0;
    background: transparent;
    padding: 0 0 10px 10px;
    box-shadow: none;
  }

  .site-header.nav-open .mega-picks {
    margin-top: 4px;
  }

  .site-header.nav-open .mega-link-list a,
  .site-header.nav-open .mega-rail a,
  .site-header.nav-open .mega-picks a {
    padding: 12px 14px;
    white-space: normal;
  }

  .site-header.nav-open .mega-rail a::after,
  .site-header.nav-open .nav-link-active::after {
    display: none;
  }

  .split-section,
  .calculator-section,
  .pro-panel {
    grid-template-columns: 1fr;
  }

  .hero-inner {
    min-height: 470px;
    padding-bottom: 104px;
  }

  .hero-photo {
    inset: 0 -160px 0 38%;
    opacity: 0.82;
  }

  .hero-highlights {
    max-width: none;
  }

  .hero-ai-search {
    max-width: 720px;
  }

  .process-section .step-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .match-form {
    grid-template-columns: 1fr 1fr;
  }

  .match-form label:first-child,
  .match-form button {
    grid-column: 1 / -1;
  }

  .option-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .category-panel {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .category-card,
  .category-card.compact {
    grid-column: auto;
  }

  .trust-proof-inner {
    grid-template-columns: 280px minmax(0, 1fr);
    gap: 34px;
  }

  .trust-stats {
    gap: 22px;
    margin-top: 36px;
  }

  .known-names {
    margin-top: 42px;
  }

  .name-group {
    gap: 42px;
    padding-right: 42px;
  }

  .ticker-ribbon-section {
    height: 146px;
  }

  .ticker-ribbon {
    width: max(1260px, 175vw);
  }

  .ribbon-back {
    top: 46px;
  }

  .ribbon-front {
    top: 60px;
  }
}

@media (max-width: 760px) {
  .site-header {
    padding: 13px 16px;
  }

  .site-header .brand strong {
    font-size: 16px;
  }

  .site-header .brand small {
    display: none;
  }

  .hero-inner {
    min-height: auto;
    padding: 38px 18px 52px;
  }

  .hero-bg {
    background:
      linear-gradient(180deg, rgba(0, 107, 69, 0.96) 0%, rgba(0, 107, 69, 0.92) 62%, rgba(0, 107, 69, 0.86) 100%);
  }

  .hero-photo {
    inset: 0;
    opacity: 0.22;
    background-position: 66% center;
  }

  h1 {
    font-size: clamp(38px, 12vw, 52px);
    line-height: 1.05;
  }

  .hero-lede {
    font-size: 17px;
    line-height: 1.48;
  }

  .hero-highlights,
  .match-intro {
    grid-template-columns: 1fr;
  }

  .hero-highlights {
    display: grid;
  }

  .match-intro {
    display: grid;
    gap: 5px;
  }

  .search-tabs {
    overflow-x: auto;
  }

  .search-tabs button {
    min-width: 150px;
  }

  .hero-ai-search {
    margin-top: 18px;
    max-width: none;
  }

  .ai-input-row {
    grid-template-columns: minmax(0, 1fr) 50px;
    min-height: 60px;
  }

  .ai-input-row input {
    height: 60px;
    font-size: 16px;
  }

  .ai-submit {
    width: 40px;
    height: 40px;
  }

  .ai-brand-strip {
    min-height: 40px;
  }

  .ai-prompt-row button {
    flex: 1 1 auto;
  }

  .chatbot-panel {
    height: calc(100vh - 28px);
  }

  .match-form,
  .rate-row {
    grid-template-columns: 1fr;
  }

  .rate-request-fields {
    grid-template-columns: 1fr;
  }

  .rate-head {
    display: none;
  }

  .rate-row {
    gap: 9px;
  }

  .rate-row span {
    display: grid;
    grid-template-columns: 110px minmax(0, 1fr);
    gap: 10px;
  }

  .rate-row span:nth-child(1)::before {
    content: "Option";
  }

  .rate-row span:nth-child(2)::before {
    content: "Compare";
  }

  .rate-row span:nth-child(3)::before {
    content: "Watch for";
  }

  .rate-row span:nth-child(4)::before {
    content: "Useful when";
  }

  .rate-row span::before {
    color: var(--muted);
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 0.08em;
  }

  .option-grid,
  .guide-grid {
    grid-template-columns: 1fr;
  }

  .process-section .step-grid {
    grid-template-columns: 1fr;
  }

  .category-showcase {
    margin-top: 0;
    padding: 14px 14px 0;
  }

  .category-panel {
    grid-template-columns: 1fr;
    padding: 14px;
  }

  .category-card {
    min-height: 188px;
  }

  .trust-proof-section {
    padding: 44px 18px 34px;
  }

  .trust-proof-inner {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .trust-portrait {
    min-height: 280px;
    max-width: 390px;
    width: 100%;
  }

  .trust-stats {
    grid-template-columns: 1fr;
    gap: 24px;
    margin-top: 30px;
  }

  .trust-stats span {
    max-width: none;
  }

  .known-names {
    margin-top: 36px;
  }

  .known-names-heading {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .name-group {
    gap: 34px;
    padding-right: 34px;
  }

  .ticker-ribbon-section {
    height: 126px;
    margin-bottom: 0;
  }

  .ticker-ribbon {
    width: max(1120px, 250vw);
    height: 54px;
  }

  .ticker-ribbon-group span {
    padding: 0 28px;
    font-size: 18px;
  }

  .ribbon-back {
    top: 38px;
    transform: translateX(-50%) rotate(3.8deg);
  }

  .ribbon-front {
    top: 51px;
    transform: translateX(-50%) rotate(-3.7deg);
  }

  .preview-panel {
    grid-template-columns: 1fr;
  }

  .preview-chart {
    height: 76px;
  }

}

/* ============================================================
   ATLAS MONEY — Hero chips
   ============================================================ */
.hero-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 18px;
}

.hero-chips button {
  appearance: none;
  border: 1px solid rgba(255, 255, 255, 0.42);
  background: rgba(255, 255, 255, 0.14);
  color: #fff;
  font-family: inherit;
  font-weight: 600;
  font-size: 13px;
  padding: 8px 14px;
  border-radius: 999px;
  cursor: pointer;
  transition: background 160ms ease, border-color 160ms ease, transform 120ms ease;
  backdrop-filter: blur(6px);
}

.hero-chips button:hover {
  background: rgba(255, 255, 255, 0.26);
  border-color: rgba(255, 255, 255, 0.7);
  transform: translateY(-1px);
}

.hero-chips button:focus-visible {
  outline: 2px solid var(--lime);
  outline-offset: 2px;
}

/* ============================================================
   ATLAS MONEY — Pillar showcase (3 pillar cards)
   ============================================================ */
.pillar-showcase {
  max-width: 1200px;
  margin: -86px auto 0;
  position: relative;
  z-index: 2;
  padding: 0 clamp(18px, 4vw, 34px);
}

.pillar-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}

.pillar-card {
  position: relative;
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 26px 24px 24px;
  box-shadow: var(--soft-card-shadow);
  transition: transform 200ms ease, box-shadow 200ms ease, border-color 200ms ease;
  overflow: hidden;
}

.pillar-card::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 4px;
  background: var(--green);
}

.pillar-cards::before {
  background: linear-gradient(90deg, var(--blue), var(--green));
}

.pillar-insurance::before {
  background: var(--gold);
}

.pillar-retirement::before {
  background: linear-gradient(90deg, #0f766e, #5ec5bf);
}

.pillar-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow);
  border-color: var(--card-line);
}

.pillar-head {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  margin-bottom: 18px;
}

.pillar-head h2 {
  font-size: 22px;
  font-weight: 800;
  color: var(--ink);
  margin: 0 0 2px;
  letter-spacing: -0.01em;
}

.pillar-head p {
  font-size: 13px;
  color: var(--ink-soft);
  margin: 0;
}

.pillar-icon {
  position: relative;
  width: 46px;
  height: 46px;
  flex-shrink: 0;
  border-radius: 10px;
  background: var(--mint-soft);
  display: grid;
  place-items: center;
}

.pillar-mortgages .pillar-icon { background: var(--mint-soft); }
.pillar-cards .pillar-icon { background: var(--sky); }
.pillar-insurance .pillar-icon { background: #fff5e1; }
.pillar-retirement .pillar-icon { background: #e6f5f3; }

/* Retirement icon: chair / horizon line */
.pillar-retirement .pillar-icon i {
  position: absolute;
  width: 22px;
  height: 14px;
  background: #0f766e;
  border-radius: 4px 4px 2px 2px;
  bottom: 12px;
}
.pillar-retirement .pillar-icon b {
  position: absolute;
  bottom: 9px;
  width: 26px;
  height: 3px;
  background: #0f766e;
  border-radius: 1px;
}
.pillar-retirement .pillar-icon em {
  position: absolute;
  top: 12px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #d99a21;
  margin-left: 9px;
}

/* Mortgage icon: stacked house silhouette */
.pillar-mortgages .pillar-icon i {
  position: absolute;
  width: 22px;
  height: 14px;
  background: var(--green-deep);
  border-radius: 2px;
  bottom: 12px;
}
.pillar-mortgages .pillar-icon b {
  position: absolute;
  top: 10px;
  width: 0;
  height: 0;
  border-left: 14px solid transparent;
  border-right: 14px solid transparent;
  border-bottom: 11px solid var(--green-deep);
}
.pillar-mortgages .pillar-icon em {
  position: absolute;
  bottom: 12px;
  width: 6px;
  height: 8px;
  background: var(--mint-soft);
  border-radius: 1px;
}

/* Credit card icon: stylized card */
.pillar-cards .pillar-icon i {
  position: absolute;
  width: 26px;
  height: 18px;
  background: var(--blue);
  border-radius: 3px;
  top: 13px;
}
.pillar-cards .pillar-icon b {
  position: absolute;
  top: 18px;
  width: 22px;
  height: 3px;
  background: var(--lime);
  border-radius: 1px;
}
.pillar-cards .pillar-icon em {
  position: absolute;
  bottom: 12px;
  width: 12px;
  height: 3px;
  background: rgba(255,255,255,0.7);
  border-radius: 1px;
  margin-left: 6px;
}

/* Insurance icon: shield */
.pillar-insurance .pillar-icon i {
  position: absolute;
  width: 22px;
  height: 26px;
  background: var(--gold);
  clip-path: polygon(50% 0, 100% 18%, 100% 60%, 50% 100%, 0 60%, 0 18%);
  top: 10px;
}
.pillar-insurance .pillar-icon b {
  position: absolute;
  top: 18px;
  width: 8px;
  height: 2px;
  background: #fff;
  transform: rotate(45deg) translate(-1px, 4px);
}
.pillar-insurance .pillar-icon em {
  position: absolute;
  top: 18px;
  width: 12px;
  height: 2px;
  background: #fff;
  transform: rotate(-45deg) translate(2px, 6px);
}

.pillar-meta {
  background: var(--mist);
  border-radius: 10px;
  padding: 14px 16px;
  margin-bottom: 18px;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.pillar-meta-label {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--muted);
}

.pillar-meta-value {
  font-size: 26px;
  font-weight: 800;
  color: var(--ink);
  letter-spacing: -0.01em;
  line-height: 1.1;
}

.pillar-meta-note {
  font-size: 12px;
  color: var(--ink-soft);
}

.pillar-links {
  list-style: none;
  padding: 0;
  margin: 0 0 22px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  flex: 1;
}

.pillar-links a {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  font-weight: 600;
  color: var(--ink);
  text-decoration: none;
  padding: 4px 0;
  transition: color 140ms ease, transform 140ms ease;
}

.pillar-links a::before {
  content: "";
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--green);
  flex-shrink: 0;
}

.pillar-cards .pillar-links a::before { background: var(--blue); }
.pillar-insurance .pillar-links a::before { background: var(--gold); }
.pillar-retirement .pillar-links a::before { background: #0f766e; }

.pillar-links a:hover {
  color: var(--green-deep);
  transform: translateX(2px);
}

.pillar-cards .pillar-links a:hover { color: var(--blue-deep); }
.pillar-insurance .pillar-links a:hover { color: #8a6011; }
.pillar-retirement .pillar-links a:hover { color: #0b5e57; }

.pillar-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: var(--ink);
  color: #fff;
  font-weight: 700;
  font-size: 14px;
  padding: 12px 18px;
  border-radius: 8px;
  text-decoration: none;
  transition: background 160ms ease, transform 140ms ease;
  margin-top: auto;
}

.pillar-mortgages .pillar-cta { background: var(--green-deep); }
.pillar-mortgages .pillar-cta:hover { background: var(--green); }

.pillar-cards .pillar-cta { background: var(--blue); }
.pillar-cards .pillar-cta:hover { background: var(--blue-deep); }

.pillar-insurance .pillar-cta { background: #b07712; }
.pillar-insurance .pillar-cta:hover { background: #8a6011; }

.pillar-retirement .pillar-cta { background: #0f766e; }
.pillar-retirement .pillar-cta:hover { background: #0b5e57; }

.pillar-arrow {
  position: relative;
  width: 14px;
  height: 10px;
  display: inline-block;
}

.pillar-arrow::before {
  content: "";
  position: absolute;
  right: 0;
  top: 4px;
  width: 12px;
  height: 2px;
  background: currentColor;
}

.pillar-arrow::after {
  content: "";
  position: absolute;
  right: 0;
  top: 1px;
  width: 7px;
  height: 7px;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  transform: rotate(45deg);
}

/* Responsive */
@media (max-width: 1100px) {
  .pillar-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
  }

  .pillar-showcase {
    margin-top: -40px;
  }
}

@media (max-width: 640px) {
  .pillar-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 540px) {
  .hero-chips button {
    font-size: 12px;
    padding: 7px 12px;
  }

  .pillar-card {
    padding: 22px 20px 20px;
  }

  .pillar-meta-value {
    font-size: 22px;
  }
}

/* ============================================================
   ATLAS MONEY — Tools showcase grid
   ============================================================ */
.tools-section .section-heading {
  margin-bottom: 28px;
}

.tools-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.tool-card {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 10px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 22px 22px 20px;
  text-decoration: none;
  color: inherit;
  transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
  overflow: hidden;
}

.tool-card::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 3px;
  background: var(--green);
  opacity: 0.85;
}

.tool-cc::before { background: var(--blue); }
.tool-ins::before { background: var(--gold); }

.tool-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--soft-card-shadow);
  border-color: var(--card-line);
}

.tool-tag {
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--green-deep);
  padding: 4px 10px;
  background: var(--mint-soft);
  border-radius: 999px;
  align-self: flex-start;
  margin-top: 4px;
}

.tool-cc .tool-tag {
  color: var(--blue-deep);
  background: var(--sky);
}

.tool-ins .tool-tag {
  color: #8a6011;
  background: #fff5e1;
}

.tool-card h3 {
  font-size: 17px;
  font-weight: 800;
  color: var(--ink);
  margin: 4px 0 0;
  letter-spacing: -0.005em;
  line-height: 1.3;
}

.tool-card p {
  font-size: 13.5px;
  color: var(--ink-soft);
  margin: 0;
  line-height: 1.5;
  flex: 1;
}

.tool-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 700;
  color: var(--ink);
  margin-top: 6px;
}

.tool-link i {
  position: relative;
  width: 12px;
  height: 8px;
  display: inline-block;
}

.tool-link i::before {
  content: "";
  position: absolute;
  right: 0;
  top: 3px;
  width: 10px;
  height: 2px;
  background: currentColor;
}

.tool-link i::after {
  content: "";
  position: absolute;
  right: 0;
  top: 0;
  width: 6px;
  height: 6px;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  transform: rotate(45deg);
}

.tool-card:hover .tool-link {
  color: var(--green-deep);
}

.tool-cc:hover .tool-link { color: var(--blue-deep); }
.tool-ins:hover .tool-link { color: #8a6011; }

/* ============================================================
   ATLAS MONEY — Latest from each pillar
   ============================================================ */
.latest-section .section-heading {
  margin-bottom: 28px;
}

.latest-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}

.latest-column {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 22px 22px 18px;
}

.latest-head {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 16px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--line);
}

.latest-head h3 {
  font-size: 17px;
  font-weight: 800;
  color: var(--ink);
  margin: 0;
  flex: 1;
  letter-spacing: -0.005em;
}

.latest-icon {
  width: 12px;
  height: 12px;
  border-radius: 3px;
  background: var(--green);
}

.latest-column[data-pillar="credit-cards"] .latest-icon { background: var(--blue); }
.latest-column[data-pillar="insurance"] .latest-icon { background: var(--gold); }

.latest-see-all {
  font-size: 12px;
  font-weight: 700;
  color: var(--green-deep);
  text-decoration: none;
  white-space: nowrap;
  transition: color 140ms ease;
}

.latest-column[data-pillar="credit-cards"] .latest-see-all { color: var(--blue-deep); }
.latest-column[data-pillar="insurance"] .latest-see-all { color: #8a6011; }

.latest-see-all:hover {
  text-decoration: underline;
}

.latest-column ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.latest-column li {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--mist);
}

.latest-column li:last-child {
  border-bottom: none;
  padding-bottom: 0;
}

.latest-tag {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
}

.latest-column li a {
  font-size: 14px;
  font-weight: 600;
  color: var(--ink);
  text-decoration: none;
  line-height: 1.4;
  transition: color 140ms ease;
}

.latest-column li a:hover {
  color: var(--green-deep);
}

.latest-column[data-pillar="credit-cards"] li a:hover { color: var(--blue-deep); }
.latest-column[data-pillar="insurance"] li a:hover { color: #8a6011; }

/* ============================================================
   ATLAS MONEY — Responsive overrides for new sections
   ============================================================ */
@media (max-width: 960px) {
  .tools-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .latest-grid {
    grid-template-columns: 1fr;
    gap: 18px;
  }
}

@media (max-width: 540px) {
  .tools-grid {
    grid-template-columns: 1fr;
  }
}

/* ============================================================
   ATLAS MONEY — Lead capture card (hero)
   ============================================================ */
.lead-capture {
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 24px 60px rgba(23, 41, 73, 0.18);
  padding: 22px 22px 20px;
  margin-top: 18px;
  border: 1px solid rgba(255, 255, 255, 0.6);
  max-width: 560px;
}

.lead-capture-prompt {
  font-size: 13px;
  color: var(--ink-soft);
  margin-bottom: 12px;
}

.lead-capture-prompt strong {
  color: var(--ink);
  font-weight: 700;
}

.lead-tabs {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 6px;
  margin-bottom: 18px;
  background: var(--mist);
  padding: 5px;
  border-radius: 10px;
}

.lead-tab {
  appearance: none;
  border: none;
  background: transparent;
  font-family: inherit;
  font-weight: 600;
  font-size: 12.5px;
  color: var(--ink-soft);
  cursor: pointer;
  padding: 9px 6px;
  border-radius: 7px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  transition: background 160ms ease, color 160ms ease, box-shadow 160ms ease;
  text-align: center;
  line-height: 1.2;
}

.lead-tab-emoji {
  font-size: 18px;
  line-height: 1;
}

.lead-tab:hover {
  color: var(--ink);
  background: rgba(255, 255, 255, 0.6);
}

.lead-tab.active {
  background: #fff;
  color: var(--ink);
  box-shadow: 0 4px 12px rgba(23, 41, 73, 0.08);
}

.lead-tab.active[data-vertical="retirement"] { color: #0f766e; }
.lead-tab.active[data-vertical="mortgage"] { color: var(--green-deep); }
.lead-tab.active[data-vertical="insurance"] { color: #8a6011; }
.lead-tab.active[data-vertical="cards"] { color: var(--blue-deep); }

.lead-form {
  display: none;
  flex-direction: column;
  gap: 14px;
  animation: leadFormFade 240ms ease;
}

.lead-form.active {
  display: flex;
}

@keyframes leadFormFade {
  from { opacity: 0; transform: translateY(4px); }
  to { opacity: 1; transform: translateY(0); }
}

.lead-fields {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.lead-fields label {
  display: flex;
  flex-direction: column;
  gap: 5px;
  min-width: 0;
}

.lead-fields label > span {
  font-size: 11px;
  font-weight: 700;
  color: var(--muted);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.lead-fields select,
.lead-fields input {
  appearance: none;
  -webkit-appearance: none;
  font-family: inherit;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--ink);
  background: var(--mist);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 9px 10px;
  cursor: pointer;
  width: 100%;
  min-width: 0;
  transition: border-color 140ms ease, background 140ms ease;
}

.lead-fields select {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' width='12' height='8'><path fill='%233d4a5c' d='M6 8L0 0h12z'/></svg>");
  background-repeat: no-repeat;
  background-position: right 10px center;
  background-size: 9px 6px;
  padding-right: 26px;
}

.lead-fields select:focus,
.lead-fields input:focus {
  outline: none;
  border-color: var(--green);
  background: #fff;
}

.lead-fields input::placeholder {
  color: var(--muted);
  font-weight: 500;
}

.lead-cta {
  appearance: none;
  border: none;
  font-family: inherit;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  padding: 14px 20px;
  border-radius: 10px;
  font-size: 15px;
  font-weight: 800;
  color: #fff;
  cursor: pointer;
  transition: transform 140ms ease, box-shadow 160ms ease, filter 160ms ease;
  letter-spacing: -0.005em;
}

.lead-cta-retirement {
  background: linear-gradient(135deg, #0f766e, #0b5e57);
  box-shadow: 0 8px 22px rgba(15, 118, 110, 0.35);
}

.lead-cta-mortgage {
  background: linear-gradient(135deg, var(--green), var(--green-deep));
  box-shadow: 0 8px 22px rgba(15, 118, 110, 0.35);
}

.lead-cta-insurance {
  background: linear-gradient(135deg, var(--gold), #b07712);
  box-shadow: 0 8px 22px rgba(217, 154, 33, 0.35);
}

.lead-cta-cards {
  background: linear-gradient(135deg, var(--blue), var(--blue-deep));
  box-shadow: 0 8px 22px rgba(23, 79, 159, 0.35);
}

.lead-cta:hover {
  transform: translateY(-1px);
  filter: brightness(1.05);
}

.lead-cta:active {
  transform: translateY(0);
}

.lead-cta-arrow {
  position: relative;
  width: 14px;
  height: 10px;
}

.lead-cta-arrow::before {
  content: "";
  position: absolute;
  right: 0;
  top: 4px;
  width: 12px;
  height: 2px;
  background: #fff;
}

.lead-cta-arrow::after {
  content: "";
  position: absolute;
  right: 0;
  top: 1px;
  width: 7px;
  height: 7px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  transform: rotate(45deg);
}

.lead-disclaimer {
  font-size: 11.5px;
  color: var(--muted);
  text-align: center;
  margin-top: 2px;
}

/* Secondary AI trigger */
.hero-ai-trigger {
  appearance: none;
  border: 1px solid rgba(255, 255, 255, 0.4);
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
  font-family: inherit;
  font-size: 13px;
  font-weight: 600;
  padding: 10px 16px;
  border-radius: 999px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-top: 16px;
  transition: background 160ms ease, border-color 160ms ease, transform 120ms ease;
  backdrop-filter: blur(6px);
}

.hero-ai-trigger:hover {
  background: rgba(255, 255, 255, 0.22);
  border-color: rgba(255, 255, 255, 0.7);
  transform: translateY(-1px);
}

.ai-pill-mini {
  background: linear-gradient(135deg, var(--lime), #c0ff00);
  color: var(--ink);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.06em;
  padding: 3px 7px;
  border-radius: 4px;
}

.hero-ai-arrow {
  position: relative;
  width: 12px;
  height: 8px;
  display: inline-block;
}

.hero-ai-arrow::before {
  content: "";
  position: absolute;
  right: 0;
  top: 3px;
  width: 10px;
  height: 2px;
  background: currentColor;
}

.hero-ai-arrow::after {
  content: "";
  position: absolute;
  right: 0;
  top: 0;
  width: 6px;
  height: 6px;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  transform: rotate(45deg);
}

/* Responsive */
@media (max-width: 760px) {
  .lead-capture {
    padding: 18px;
    max-width: 100%;
  }

  .lead-tabs {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 4px;
  }

  .lead-tab {
    font-size: 11px;
    padding: 7px 4px;
  }

  .lead-tab-emoji {
    font-size: 16px;
  }

  .lead-tab span:not(.lead-tab-emoji) {
    font-size: 10.5px;
  }

  .lead-fields {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .lead-cta {
    padding: 13px 18px;
    font-size: 14.5px;
  }
}

/* ============================================================
   ATLAS MONEY — Hero redesign (2026)
   ============================================================ */
.hero-redesigned {
  background: #fafcff;
  color: var(--ink);
  overflow: hidden;
  isolation: isolate;
}

.hero-redesigned .hero-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  background:
    radial-gradient(ellipse 80% 60% at 50% 0%, rgba(255, 255, 255, 1), transparent 70%),
    linear-gradient(180deg, #f4faf7 0%, #f0f7fc 50%, #f6f4fc 100%);
}

.hero-blob {
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  opacity: 0.42;
  z-index: 1;
  pointer-events: none;
}

.hero-blob-1 {
  top: -10%;
  left: -8%;
  width: 520px;
  height: 520px;
  background: radial-gradient(circle, rgba(15, 118, 110, 0.5), transparent 70%);
}

.hero-blob-2 {
  top: -15%;
  right: -10%;
  width: 600px;
  height: 600px;
  background: radial-gradient(circle, rgba(23, 79, 159, 0.4), transparent 70%);
}

.hero-blob-3 {
  bottom: -25%;
  left: 30%;
  width: 480px;
  height: 480px;
  background: radial-gradient(circle, rgba(15, 118, 110, 0.35), transparent 70%);
}

.hero-blob-4 {
  bottom: -15%;
  right: 5%;
  width: 380px;
  height: 380px;
  background: radial-gradient(circle, rgba(217, 154, 33, 0.3), transparent 70%);
}

.hero-grid {
  position: absolute;
  inset: 0;
  z-index: 2;
  background-image:
    radial-gradient(circle at 1px 1px, rgba(23, 41, 73, 0.06) 1px, transparent 0);
  background-size: 28px 28px;
  mask-image: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, rgba(0,0,0,0.15) 70%, transparent 100%);
  -webkit-mask-image: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, rgba(0,0,0,0.15) 70%, transparent 100%);
}

.hero-redesigned .hero-inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 0.85fr);
  gap: clamp(28px, 5vw, 64px);
  align-items: center;
  min-height: 620px;
  padding: clamp(60px, 7vw, 96px) clamp(24px, 5vw, 62px) clamp(60px, 6vw, 100px);
  z-index: 3;
}

.hero-redesigned .hero-copy {
  max-width: 620px;
  z-index: 3;
}

.hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--green-deep);
  background: rgba(15, 118, 110, 0.1);
  padding: 6px 12px;
  border-radius: 999px;
  border: 1px solid rgba(15, 118, 110, 0.2);
  margin-bottom: 22px;
}

.hero-eyebrow-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--green);
  box-shadow: 0 0 0 4px rgba(15, 118, 110, 0.18);
  animation: heroEyebrowPulse 2.4s ease-in-out infinite;
}

@keyframes heroEyebrowPulse {
  0%, 100% { box-shadow: 0 0 0 4px rgba(15, 118, 110, 0.18); }
  50% { box-shadow: 0 0 0 8px rgba(15, 118, 110, 0.05); }
}

.hero-redesigned h1 {
  color: var(--ink);
  font-size: clamp(38px, 4.4vw, 60px);
  font-weight: 900;
  line-height: 1.04;
  letter-spacing: -0.02em;
  margin: 0 0 18px;
  max-width: 580px;
}

.hero-redesigned h1 span {
  background: linear-gradient(135deg, var(--green-deep) 0%, var(--green) 50%, #00c890 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  display: inline-block;
}

.hero-redesigned .hero-lede {
  color: var(--ink-soft);
  font-size: 16.5px;
  font-weight: 500;
  line-height: 1.6;
  margin: 0 0 24px;
  max-width: 540px;
}

/* Lead capture card refresh for light hero */
.hero-redesigned .lead-capture {
  background: #fff;
  box-shadow:
    0 1px 0 rgba(23, 41, 73, 0.06),
    0 8px 16px rgba(23, 41, 73, 0.06),
    0 24px 48px rgba(23, 41, 73, 0.08);
  border: 1px solid rgba(23, 41, 73, 0.06);
  max-width: 580px;
  padding: 22px 22px 18px;
}

.hero-redesigned .lead-capture-prompt {
  font-size: 13px;
  font-weight: 600;
}

/* Custom SVG tab icons */
.lead-tab-icon {
  width: 22px;
  height: 22px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 6px;
  color: var(--ink-soft);
  background: transparent;
  transition: color 160ms ease, background 160ms ease;
}

.lead-tab-icon svg {
  width: 16px;
  height: 16px;
}

.lead-tab.active .lead-tab-icon {
  background: rgba(255, 255, 255, 0.5);
}

.lead-tab.active[data-vertical="retirement"] .lead-tab-icon { color: #0f766e; background: rgba(15, 118, 110, 0.1); }
.lead-tab.active[data-vertical="mortgage"] .lead-tab-icon { color: var(--green-deep); background: rgba(15, 118, 110, 0.1); }
.lead-tab.active[data-vertical="insurance"] .lead-tab-icon { color: #b07712; background: rgba(217, 154, 33, 0.12); }
.lead-tab.active[data-vertical="cards"] .lead-tab-icon { color: var(--blue); background: rgba(23, 79, 159, 0.1); }

/* Trust strip below form */
.hero-trust {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 13px;
  color: var(--ink-soft);
  font-weight: 600;
  margin-top: 14px;
}

.hero-trust strong {
  color: var(--ink);
  font-weight: 800;
}

.hero-stars {
  display: inline-flex;
  gap: 1px;
}

.hero-stars span {
  width: 12px;
  height: 12px;
  background: linear-gradient(135deg, #ffb84d, #f59e0b);
  clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%);
}

.hero-trust-divider {
  width: 1px;
  height: 12px;
  background: rgba(23, 41, 73, 0.18);
}

/* Hero AI trigger refresh */
.hero-redesigned .hero-ai-trigger {
  border: 1px solid rgba(23, 41, 73, 0.12);
  background: rgba(255, 255, 255, 0.7);
  color: var(--ink-soft);
  margin-top: 14px;
  font-size: 12.5px;
  padding: 8px 14px;
  backdrop-filter: blur(8px);
}

.hero-redesigned .hero-ai-trigger:hover {
  background: #fff;
  border-color: var(--ink-soft);
  color: var(--ink);
}

.hero-redesigned .ai-pill-mini {
  background: linear-gradient(135deg, var(--lime), #c0ff00);
  color: var(--ink);
}

/* ============================================================
   HERO PREVIEW (right side product card)
   ============================================================ */
.hero-preview {
  position: relative;
  z-index: 3;
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 480px;
}

.preview-card {
  background: #fff;
  border-radius: 16px;
  border: 1px solid rgba(23, 41, 73, 0.08);
  box-shadow:
    0 1px 0 rgba(23, 41, 73, 0.06),
    0 12px 24px rgba(23, 41, 73, 0.06),
    0 36px 72px rgba(23, 41, 73, 0.1);
  padding: 22px;
  width: 100%;
  max-width: 420px;
  transform: rotate(-1.5deg);
  transition: transform 600ms ease;
  animation: previewFloat 6s ease-in-out infinite;
}

@keyframes previewFloat {
  0%, 100% { transform: rotate(-1.5deg) translateY(0); }
  50% { transform: rotate(-1.5deg) translateY(-6px); }
}

.preview-card-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 6px;
}

.preview-card-tag {
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--green-deep);
  background: rgba(15, 118, 110, 0.12);
  padding: 4px 9px;
  border-radius: 999px;
}

.preview-card-meta {
  font-size: 11px;
  color: var(--muted);
  font-weight: 600;
}

.preview-card-title {
  font-size: 15px;
  font-weight: 800;
  color: var(--ink);
  margin-bottom: 14px;
}

.preview-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  padding: 12px 0;
  border-top: 1px solid rgba(23, 41, 73, 0.06);
  position: relative;
}

.preview-row-pick {
  background: linear-gradient(90deg, rgba(15, 118, 110, 0.06), transparent);
  margin: 0 -12px;
  padding: 12px;
  border-radius: 10px;
  border-top: 1px solid transparent;
}

.preview-pick-badge {
  position: absolute;
  top: -8px;
  left: 12px;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #fff;
  background: linear-gradient(135deg, var(--green), var(--green-deep));
  padding: 3px 8px;
  border-radius: 4px;
  box-shadow: 0 4px 10px rgba(15, 118, 110, 0.32);
}

.preview-row-main {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.preview-row-main strong {
  font-size: 14px;
  font-weight: 800;
  color: var(--ink);
}

.preview-row-main small {
  font-size: 11.5px;
  color: var(--muted);
  font-weight: 500;
}

.preview-row-rate {
  text-align: right;
  display: flex;
  flex-direction: column;
  gap: 1px;
}

.preview-row-rate strong {
  font-size: 17px;
  font-weight: 900;
  color: var(--ink);
  letter-spacing: -0.01em;
}

.preview-row-rate small {
  font-size: 10.5px;
  color: var(--muted);
  font-weight: 600;
}

.preview-card-foot {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid rgba(23, 41, 73, 0.06);
  font-size: 11.5px;
  color: var(--muted);
  font-weight: 600;
}

.preview-card-link {
  color: var(--green-deep);
  font-weight: 800;
}

/* Floating stat cards */
.preview-floating {
  position: absolute;
  background: #fff;
  border-radius: 12px;
  border: 1px solid rgba(23, 41, 73, 0.08);
  box-shadow:
    0 8px 16px rgba(23, 41, 73, 0.08),
    0 24px 48px rgba(23, 41, 73, 0.06);
  padding: 12px 14px;
  display: flex;
  flex-direction: column;
  gap: 2px;
  z-index: 4;
  min-width: 130px;
}

.preview-floating-label {
  font-size: 9.5px;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #b07712;
}

.preview-floating-label-purple {
  color: #0f766e;
}

.preview-floating strong {
  font-size: 18px;
  font-weight: 900;
  color: var(--ink);
  letter-spacing: -0.01em;
}

.preview-floating small {
  font-size: 10.5px;
  color: var(--muted);
  font-weight: 600;
}

.preview-floating-1 {
  top: 10%;
  right: 0;
  transform: rotate(2deg);
  animation: previewFloat2 7s ease-in-out infinite;
}

@keyframes previewFloat2 {
  0%, 100% { transform: rotate(2deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-8px); }
}

.preview-floating-2 {
  bottom: 12%;
  left: -4%;
  transform: rotate(-3deg);
  animation: previewFloat3 8s ease-in-out infinite 0.5s;
}

@keyframes previewFloat3 {
  0%, 100% { transform: rotate(-3deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-7px); }
}

/* Legacy hero-photo rule removed — the v2 homepage uses .hero-photo for portraits. */

/* ============================================================
   HERO RESPONSIVE
   ============================================================ */
@media (max-width: 1024px) {
  .hero-redesigned .hero-inner {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  .hero-preview {
    min-height: 360px;
    margin-top: 8px;
  }

  .preview-card {
    max-width: 380px;
  }
}

@media (max-width: 720px) {
  .hero-redesigned .hero-inner {
    min-height: auto;
    padding: 56px 20px 64px;
  }

  .hero-redesigned h1 {
    font-size: 34px;
  }

  .hero-redesigned .hero-lede {
    font-size: 15.5px;
  }

  .hero-trust {
    flex-wrap: wrap;
    font-size: 12px;
  }

  .hero-preview {
    min-height: 320px;
  }

  .preview-floating-1 {
    top: 0;
    right: 8%;
  }

  .preview-floating-2 {
    bottom: 0;
    left: 8%;
  }
}

@media (max-width: 480px) {
  .hero-preview {
    display: none;
  }
}

/* ============================================================
   ATLAS MONEY — Trust proof (Option 1: Social proof + numbers)
   ============================================================ */
.trust-proof-redesigned {
  background: #fff;
  padding: clamp(64px, 8vw, 112px) clamp(20px, 5vw, 62px);
  position: relative;
  overflow: hidden;
}

.trust-proof-redesigned::before {
  content: "";
  position: absolute;
  top: -50%;
  left: 50%;
  transform: translateX(-50%);
  width: 800px;
  height: 800px;
  background: radial-gradient(circle, rgba(15, 118, 110, 0.05), transparent 70%);
  pointer-events: none;
}

.trust-proof-redesigned .trust-proof-inner {
  display: flex;
  flex-direction: column;
  gap: clamp(30px, 4.5vw, 54px);
  max-width: 1200px;
  margin: 0 auto;
  position: relative;
}

.trust-heading {
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
}

.trust-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--green-deep);
  background: rgba(15, 118, 110, 0.08);
  padding: 6px 14px;
  border-radius: 999px;
  border: 1px solid rgba(15, 118, 110, 0.18);
}

.trust-eyebrow-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--green);
  box-shadow: 0 0 0 4px rgba(15, 118, 110, 0.18);
}

.trust-heading h2 {
  font-size: clamp(28px, 3.6vw, 44px);
  font-weight: 900;
  letter-spacing: -0.015em;
  color: var(--ink);
  line-height: 1.1;
  max-width: 720px;
  margin: 0;
}

.trust-heading p {
  font-size: 16px;
  color: var(--ink-soft);
  line-height: 1.55;
  max-width: 580px;
  margin: 4px 0 0;
}

.trust-proof-body {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(340px, 0.72fr);
  gap: clamp(24px, 4vw, 46px);
  align-items: center;
}

.trust-shopper-image {
  position: relative;
  width: 100%;
  margin: 0;
  aspect-ratio: 16 / 10;
  border-radius: 8px;
  overflow: hidden;
  background: #f4faf7;
  border: 1px solid rgba(23, 41, 73, 0.08);
  box-shadow: 0 24px 54px rgba(14, 26, 51, 0.12);
  isolation: isolate;
}

.trust-shopper-image::after {
  content: "";
  position: absolute;
  right: 18px;
  bottom: 18px;
  left: 18px;
  height: 4px;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(15, 118, 110, 0.9), rgba(10, 90, 58, 0.08));
  pointer-events: none;
}

.trust-shopper-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}

/* Big metrics row */
.trust-metrics {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  background: linear-gradient(180deg, #fafcff 0%, #f0f7fc 100%);
  border-radius: 8px;
  border: 1px solid rgba(23, 41, 73, 0.06);
  padding: clamp(26px, 3.5vw, 40px) clamp(22px, 3.2vw, 34px);
  position: relative;
  align-self: stretch;
  align-content: center;
  box-shadow: 0 18px 46px rgba(14, 26, 51, 0.08);
}

.trust-metric {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  text-align: center;
  position: relative;
  padding: clamp(16px, 2vw, 22px) 10px;
}

.trust-metric:not(:last-child)::after {
  content: "";
  position: absolute;
  right: 12%;
  bottom: 0;
  left: 12%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(23, 41, 73, 0.18), transparent);
}

.trust-metric-value {
  font-size: clamp(38px, 4.6vw, 56px);
  font-weight: 900;
  letter-spacing: -0.025em;
  line-height: 1;
  background: linear-gradient(135deg, var(--ink) 0%, var(--green-deep) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.trust-metric-value sup {
  font-size: 0.55em;
  font-weight: 800;
  vertical-align: super;
  margin-left: 1px;
}

.trust-metric-label {
  font-size: 13px;
  font-weight: 600;
  color: var(--ink-soft);
  letter-spacing: -0.005em;
}

.trust-metric-stars {
  display: inline-flex;
  gap: 3px;
  margin-top: 2px;
  margin-bottom: 2px;
}

.trust-metric-stars span {
  width: 14px;
  height: 14px;
  background: linear-gradient(135deg, #ffb84d, #f59e0b);
  clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%);
  display: inline-block;
}

.trust-metric-suffix {
  font-size: 0.5em;
  font-weight: 800;
  color: var(--muted);
  background: none;
  -webkit-text-fill-color: var(--muted);
  margin-left: 4px;
  vertical-align: 0.2em;
}

/* Testimonial marquee */
.testimonials-marquee {
  position: relative;
  overflow: hidden;
  -webkit-mask-image: linear-gradient(to right, transparent 0, #000 6%, #000 94%, transparent 100%);
  mask-image: linear-gradient(to right, transparent 0, #000 6%, #000 94%, transparent 100%);
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding: 4px 0;
}

.testimonials-track {
  display: flex;
  gap: 20px;
  width: max-content;
  padding: 4px 10px 4px 10px;
  padding-right: 30px;
  transform: translateX(calc(-33.333% - 6.66px));
  animation: testimonialsSlide 50s linear infinite;
  animation-fill-mode: both;
  will-change: transform;
}

.testimonials-marquee:hover .testimonials-track,
.testimonials-marquee:focus-within .testimonials-track {
  animation-play-state: paused;
}

@keyframes testimonialsSlide {
  from { transform: translateX(calc(-33.333% - 6.66px)); }
  to { transform: translateX(0); }
}

@media (prefers-reduced-motion: reduce) {
  .testimonials-track {
    animation: none;
    transform: none;
  }
}

.testimonial-card {
  background: #fff;
  border: 1px solid rgba(23, 41, 73, 0.08);
  border-radius: 14px;
  padding: 24px 22px 20px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  box-shadow: 0 1px 0 rgba(23, 41, 73, 0.04), 0 8px 24px rgba(23, 41, 73, 0.04);
  transition: transform 200ms ease, box-shadow 200ms ease, border-color 200ms ease;
  width: 340px;
  flex-shrink: 0;
}

.testimonial-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 1px 0 rgba(23, 41, 73, 0.06), 0 16px 32px rgba(23, 41, 73, 0.08);
  border-color: rgba(23, 41, 73, 0.14);
}

.testimonial-stars {
  font-size: 14px;
  letter-spacing: 2px;
  background: linear-gradient(135deg, #ffb84d, #f59e0b);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.testimonial-card blockquote {
  font-size: 15.5px;
  font-weight: 600;
  line-height: 1.5;
  color: var(--ink);
  margin: 0;
  letter-spacing: -0.005em;
  flex: 1;
}

.testimonial-card footer {
  display: flex;
  align-items: center;
  gap: 12px;
  padding-top: 14px;
  border-top: 1px solid rgba(23, 41, 73, 0.06);
}

.testimonial-card footer div {
  display: flex;
  flex-direction: column;
  gap: 1px;
  min-width: 0;
}

.testimonial-card footer strong {
  font-size: 13.5px;
  font-weight: 800;
  color: var(--ink);
}

.testimonial-card footer small {
  font-size: 11.5px;
  color: var(--muted);
  font-weight: 600;
}

.testimonial-avatar {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-size: 15px;
  font-weight: 800;
  color: #fff;
  flex-shrink: 0;
}

.testimonial-avatar-green {
  background: linear-gradient(135deg, var(--green), var(--green-deep));
}

.testimonial-avatar-gold {
  background: linear-gradient(135deg, #f5b850, #b07712);
}

.testimonial-avatar-purple {
  background: linear-gradient(135deg, #5ec5bf, #0f766e);
}

.testimonial-avatar-blue {
  background: linear-gradient(135deg, var(--blue), var(--blue-deep));
}

/* Trust brands strip (refreshed) */
.trust-brands {
  display: flex;
  flex-direction: column;
  gap: 16px;
  align-items: center;
  padding-top: clamp(20px, 3vw, 32px);
  border-top: 1px solid rgba(23, 41, 73, 0.06);
}

.trust-brands-label {
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
}

/* Hide the old known-names header inside redesigned section */
.trust-proof-redesigned .known-names-heading {
  display: none;
}

/* Responsive */
@media (max-width: 980px) {
  .trust-proof-body {
    grid-template-columns: 1fr;
    max-width: 780px;
    margin: 0 auto;
  }

  .trust-shopper-image {
    aspect-ratio: 16 / 9;
  }

  .trust-metrics {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(18px, 3vw, 34px);
    align-self: auto;
  }

  .trust-metric {
    padding: 0 12px;
  }

  .trust-metric:not(:last-child)::after {
    top: 20%;
    right: -17px;
    bottom: 20%;
    left: auto;
    width: 1px;
    height: auto;
    background: linear-gradient(180deg, transparent, rgba(23, 41, 73, 0.18), transparent);
  }
}

@media (max-width: 880px) {
  .trust-metrics {
    grid-template-columns: 1fr;
    gap: 28px;
    padding: 28px 24px;
  }

  .trust-metric:not(:last-child)::after {
    top: auto;
    right: 20%;
    bottom: -14px;
    left: 20%;
    width: auto;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(23, 41, 73, 0.18), transparent);
  }

  .testimonial-card {
    width: 280px;
  }
}

@media (max-width: 540px) {
  .trust-heading h2 {
    font-size: 26px;
  }

  .trust-metric-value {
    font-size: 36px;
  }
}

/* ============================================================
   ATLAS MONEY — Methodology / "How we work" section
   ============================================================ */
.methodology-section {
  background: linear-gradient(180deg, #fafcff 0%, #f4f8fb 100%);
  border-top: 1px solid rgba(23, 41, 73, 0.06);
  border-bottom: 1px solid rgba(23, 41, 73, 0.06);
  padding: clamp(64px, 8vw, 110px) clamp(20px, 5vw, 62px);
  position: relative;
  overflow: hidden;
}

.methodology-section::before {
  content: "";
  position: absolute;
  top: -200px;
  left: 50%;
  transform: translateX(-50%);
  width: 700px;
  height: 700px;
  background:
    radial-gradient(circle at 30% 40%, rgba(15, 118, 110, 0.06), transparent 60%),
    radial-gradient(circle at 70% 60%, rgba(15, 118, 110, 0.05), transparent 60%);
  pointer-events: none;
}

.methodology-heading {
  position: relative;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  max-width: 760px;
  margin: 0 auto clamp(40px, 5vw, 64px);
}

.methodology-heading h2 {
  font-size: clamp(28px, 3.6vw, 44px);
  font-weight: 900;
  letter-spacing: -0.015em;
  color: var(--ink);
  line-height: 1.1;
  margin: 0;
}

.methodology-heading p {
  font-size: 16.5px;
  color: var(--ink-soft);
  line-height: 1.55;
  max-width: 600px;
  margin: 0;
}

.methodology-analyst {
  position: relative;
  max-width: 1040px;
  margin: 0 auto clamp(28px, 4vw, 44px);
  aspect-ratio: 16 / 7;
  border-radius: 8px;
  overflow: hidden;
  background: #e9f5ef;
  border: 1px solid rgba(23, 41, 73, 0.08);
  box-shadow: 0 24px 54px rgba(14, 26, 51, 0.12);
}

.methodology-analyst img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 46%;
}

/* Grid */
.methodology-grid {
  position: relative;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 20px;
  max-width: 1200px;
  margin: 0 auto;
}

.methodology-card {
  background: #fff;
  border: 1px solid rgba(23, 41, 73, 0.07);
  border-radius: 14px;
  padding: 28px 24px 24px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  box-shadow: 0 1px 0 rgba(23, 41, 73, 0.04), 0 8px 20px rgba(23, 41, 73, 0.04);
  transition: transform 200ms ease, box-shadow 200ms ease, border-color 200ms ease;
  position: relative;
  overflow: hidden;
}

.methodology-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: var(--green);
}

.methodology-card-blue::before { background: var(--blue); }
.methodology-card-gold::before { background: var(--gold); }
.methodology-card-purple::before { background: #0f766e; }

.methodology-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 1px 0 rgba(23, 41, 73, 0.06), 0 16px 32px rgba(23, 41, 73, 0.08);
  border-color: rgba(23, 41, 73, 0.12);
}

.methodology-icon {
  width: 44px;
  height: 44px;
  border-radius: 11px;
  display: grid;
  place-items: center;
  margin-bottom: 4px;
  color: var(--green-deep);
  background: rgba(15, 118, 110, 0.1);
}

.methodology-card-blue .methodology-icon {
  color: var(--blue);
  background: rgba(23, 79, 159, 0.1);
}

.methodology-card-gold .methodology-icon {
  color: #b07712;
  background: rgba(217, 154, 33, 0.12);
}

.methodology-card-purple .methodology-icon {
  color: #0f766e;
  background: rgba(15, 118, 110, 0.1);
}

.methodology-icon svg {
  width: 22px;
  height: 22px;
}

.methodology-card h3 {
  font-size: 17px;
  font-weight: 800;
  letter-spacing: -0.005em;
  color: var(--ink);
  margin: 0;
  line-height: 1.3;
}

.methodology-card p {
  font-size: 13.5px;
  color: var(--ink-soft);
  line-height: 1.55;
  margin: 0;
  flex: 1;
}

.methodology-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12.5px;
  font-weight: 800;
  color: var(--green-deep);
  text-decoration: none;
  margin-top: 4px;
  transition: gap 160ms ease, color 140ms ease;
}

.methodology-card-blue .methodology-link { color: var(--blue-deep); }
.methodology-card-gold .methodology-link { color: #8a6011; }
.methodology-card-purple .methodology-link { color: #0b5e57; }

.methodology-link:hover {
  gap: 10px;
}

.methodology-arrow {
  position: relative;
  width: 12px;
  height: 8px;
  display: inline-block;
}

.methodology-arrow::before {
  content: "";
  position: absolute;
  right: 0;
  top: 3px;
  width: 10px;
  height: 2px;
  background: currentColor;
}

.methodology-arrow::after {
  content: "";
  position: absolute;
  right: 0;
  top: 0;
  width: 6px;
  height: 6px;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  transform: rotate(45deg);
}

.methodology-meta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 700;
  color: var(--muted);
  margin-top: 4px;
}

.methodology-meta-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--green);
  box-shadow: 0 0 0 4px rgba(15, 118, 110, 0.18);
  animation: methodologyPulse 2.4s ease-in-out infinite;
}

@keyframes methodologyPulse {
  0%, 100% { box-shadow: 0 0 0 4px rgba(15, 118, 110, 0.18); }
  50% { box-shadow: 0 0 0 7px rgba(15, 118, 110, 0.04); }
}

/* Foot CTA */
.methodology-foot {
  position: relative;
  text-align: center;
  margin-top: clamp(36px, 4vw, 52px);
}

.methodology-foot-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 14.5px;
  font-weight: 800;
  color: var(--ink);
  text-decoration: none;
  padding: 14px 24px;
  border-radius: 999px;
  border: 1px solid rgba(23, 41, 73, 0.14);
  background: #fff;
  transition: gap 160ms ease, border-color 160ms ease, transform 140ms ease;
}

.methodology-foot-link:hover {
  border-color: var(--ink);
  gap: 12px;
  transform: translateY(-1px);
}

/* Responsive */
@media (max-width: 1024px) {
  .methodology-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .methodology-analyst {
    aspect-ratio: 4 / 3;
  }

  .methodology-analyst img {
    object-position: center center;
  }
}

@media (max-width: 540px) {
  .methodology-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .methodology-card {
    padding: 24px 22px 22px;
  }
}

/* ============================================================
   ATLAS MONEY — Resource pointer figure (woman pointing at panel)
   ============================================================ */
.resource-pointer {
  position: relative;
  margin: 24px 0 -48px;
  padding: 0;
  display: flex;
  justify-content: flex-end;
  align-items: flex-end;
  min-height: 460px;
  pointer-events: none;
  overflow: visible;
}

/* Soft green halo behind her — bottom aligns with her feet */
.resource-pointer-glow {
  position: absolute;
  bottom: 30px;
  right: 8%;
  width: 360px;
  height: 360px;
  background:
    radial-gradient(circle at 55% 55%, rgba(15, 118, 110, 0.28) 0%, rgba(15, 118, 110, 0.1) 45%, transparent 75%);
  filter: blur(28px);
  z-index: 1;
  border-radius: 50%;
}

/* Subtle "platform" shadow at her feet */
.resource-pointer-platform {
  position: absolute;
  bottom: 24px;
  right: 12%;
  width: 280px;
  height: 36px;
  background: radial-gradient(ellipse, rgba(0, 121, 75, 0.5) 0%, rgba(0, 121, 75, 0.15) 50%, transparent 80%);
  filter: blur(12px);
  z-index: 1;
  border-radius: 50%;
}

/* The actual figure — lifted up; shadow + halo stay anchored at bottom */
.resource-pointer-img {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 380px;
  height: auto;
  display: block;
  margin-right: -8px;
  margin-bottom: 140px;
  filter: drop-shadow(0 16px 28px rgba(23, 41, 73, 0.18));
  animation: resourcePointerFloat 6s ease-in-out infinite;
}

@keyframes resourcePointerFloat {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-6px); }
}

@media (prefers-reduced-motion: reduce) {
  .resource-pointer-img {
    animation: none;
  }
}

/* On tablet and below — collapse the pointer */
@media (max-width: 880px) {
  .resources-layout {
    grid-template-areas:
      "tabs"
      "panel";
    grid-template-columns: 1fr;
  }

  .resource-pointer {
    display: none;
  }
}

/* =============================================================
   PILLAR & SUB-PILLAR PAGE TEMPLATES
   Used by: /mortgages/, /mortgages/refinance/, and all future
   /{pillar}/ and /{pillar}/{sub}/ pages. Tone is controlled by
   [data-pillar-tone="..."].
   ============================================================= */

.pillar-page {
  background: #fff;
  color: #172949;
}

.pillar-page .container {
  width: min(1180px, 92vw);
  margin: 0 auto;
}
.pillar-page .container-narrow {
  width: min(820px, 92vw);
  margin: 0 auto;
}

/* Buttons (shared, page-local) -------------------------------- */
.pillar-page .btn, .book-page .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 22px;
  border-radius: 999px;
  font-weight: 700;
  font-size: 15px;
  line-height: 1;
  text-decoration: none;
  border: 1px solid transparent;
  transition: transform .15s ease, box-shadow .15s ease, background-color .15s ease;
  cursor: pointer;
}
.pillar-page .btn-primary, .book-page .btn-primary {
  background: #0f766e;
  color: #fff;
  box-shadow: 0 8px 20px rgba(15, 118, 110, 0.25);
}
.pillar-page .btn-primary:hover, .book-page .btn-primary:hover { background: #0b5e57; transform: translateY(-1px); }
.pillar-page .btn-ghost {
  background: rgba(255,255,255,0.7);
  color: #0b5e57;
  border-color: rgba(15, 118, 110, 0.35);
}
.pillar-page .btn-ghost:hover { background: rgba(15, 118, 110, 0.08); }
.pillar-page .btn-lg, .book-page .btn-lg { padding: 14px 28px; font-size: 16px; }
.pillar-page .btn-sm { padding: 8px 14px; font-size: 13px; }
.pillar-page .btn-block { display: flex; width: 100%; }

/* Breadcrumbs ------------------------------------------------- */
.breadcrumbs {
  background: #f6f8fb;
  border-bottom: 1px solid #e6ebf2;
  padding: 12px 0;
  font-size: 14px;
}
.breadcrumbs ol {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  color: #6b7a90;
}
.breadcrumbs li + li::before {
  content: "›";
  margin-right: 6px;
  color: #b9c2d1;
}
.breadcrumbs a { color: #6b7a90; text-decoration: none; }
.breadcrumbs a:hover { color: #0f766e; text-decoration: underline; }
.breadcrumbs [aria-current="page"] { color: #172949; font-weight: 600; }

/* Section headers --------------------------------------------- */
.pillar-page .section-header {
  text-align: center;
  margin-bottom: 36px;
}
.pillar-page .section-header h2 {
  font-size: clamp(28px, 3vw, 38px);
  font-weight: 800;
  letter-spacing: -0.01em;
  margin: 0 0 10px;
  color: #172949;
}
.pillar-page .section-header p {
  max-width: 640px;
  margin: 0 auto;
  color: #5b6b85;
  font-size: 17px;
  line-height: 1.55;
}

/* ============== HERO ============== */
.pillar-hero {
  position: relative;
  padding: 56px 0 64px;
  background:
    radial-gradient(1100px 520px at 12% -20%, rgba(15, 118, 110, 0.14), transparent 60%),
    radial-gradient(900px 480px at 92% 0%, rgba(94, 197, 191, 0.10), transparent 65%),
    linear-gradient(180deg, #f3fbfa 0%, #ffffff 100%);
  overflow: hidden;
}
[data-pillar-tone="credit-cards"] .pillar-hero,
.pillar-hero[data-pillar-tone="credit-cards"] {
  background:
    radial-gradient(1100px 520px at 12% -20%, rgba(15, 118, 110, 0.14), transparent 60%),
    radial-gradient(900px 480px at 92% 0%, rgba(94, 197, 191, 0.10), transparent 65%),
    linear-gradient(180deg, #f4f7fc 0%, #ffffff 100%);
}
[data-pillar-tone="insurance"] .pillar-hero,
.pillar-hero[data-pillar-tone="insurance"] {
  background:
    radial-gradient(1100px 520px at 12% -20%, rgba(202, 152, 38, 0.14), transparent 60%),
    radial-gradient(900px 480px at 92% 0%, rgba(228, 187, 75, 0.10), transparent 65%),
    linear-gradient(180deg, #fbf7ee 0%, #ffffff 100%);
}
[data-pillar-tone="retirement"] .pillar-hero,
.pillar-hero[data-pillar-tone="retirement"] {
  background:
    radial-gradient(1100px 520px at 12% -20%, rgba(15, 118, 110, 0.14), transparent 60%),
    radial-gradient(900px 480px at 92% 0%, rgba(94, 197, 191, 0.10), transparent 65%),
    linear-gradient(180deg, #f3fbfa 0%, #ffffff 100%);
}

.pillar-hero-backdrop {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
}
.pillar-hero-backdrop svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
}
.pillar-hero-grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
  gap: 56px;
  align-items: center;
}
.pillar-hero-art {
  display: flex;
  align-items: center;
  justify-content: center;
}
.pillar-hero-art svg {
  width: 100%;
  max-width: 520px;
  height: auto;
  filter: drop-shadow(0 30px 50px rgba(14, 26, 51, 0.12));
}
@media (max-width: 880px) {
  .pillar-hero-art { display: none; }
  .pillar-hero-backdrop svg { opacity: 0.7; }
}

.pillar-eyebrow {
  display: inline-block;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #0f766e;
  margin-bottom: 14px;
}
.pillar-hero-copy h1 {
  font-size: clamp(36px, 4.5vw, 56px);
  font-weight: 900;
  letter-spacing: -0.02em;
  line-height: 1.05;
  margin: 0 0 18px;
  color: #0e1a33;
}
.pillar-lede {
  font-size: 19px;
  line-height: 1.55;
  color: #4a5a76;
  max-width: 560px;
  margin: 0 0 24px;
}

.pillar-trust-row {
  list-style: none;
  margin: 0 0 28px;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 28px;
}
.pillar-trust-row li {
  font-size: 14px;
  color: #5b6b85;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.pillar-trust-row strong {
  font-size: 22px;
  font-weight: 800;
  color: #0f766e;
  letter-spacing: -0.01em;
}

.pillar-hero-ctas { display: flex; gap: 12px; flex-wrap: wrap; }

/* Hero card / lead form */
.pillar-hero-card {
  background: #fff;
  border: 1px solid #e6ebf2;
  border-radius: 18px;
  padding: 24px;
  box-shadow: 0 24px 60px rgba(23, 41, 73, 0.10);
}
.pillar-hero-card header { margin-bottom: 14px; }
.pillar-hero-card header strong {
  display: block;
  font-size: 18px;
  font-weight: 800;
  color: #0e1a33;
  margin-bottom: 2px;
}
.pillar-hero-card header small {
  display: block;
  font-size: 13px;
  color: #6b7a90;
}

.pillar-lead-form { display: grid; gap: 12px; }
.pillar-lead-form label { display: block; }
.pillar-lead-form label span {
  display: block;
  font-size: 13px;
  font-weight: 600;
  color: #4a5a76;
  margin-bottom: 6px;
}
.pillar-lead-form select,
.pillar-lead-form input {
  width: 100%;
  padding: 12px 14px;
  border-radius: 10px;
  border: 1px solid #d9e0ea;
  background: #fff;
  font-size: 15px;
  color: #172949;
  font-family: inherit;
  appearance: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path fill='%236b7a90' d='M6 8 0 0h12z'/></svg>");
  background-repeat: no-repeat;
  background-position: right 14px center;
  background-size: 10px;
  cursor: pointer;
}
.pillar-lead-form select:focus,
.pillar-lead-form input:focus {
  outline: none;
  border-color: #0f766e;
  box-shadow: 0 0 0 3px rgba(15, 118, 110, 0.15);
}
.pillar-form-fineprint {
  margin: 8px 0 0;
  font-size: 12px;
  line-height: 1.5;
  color: #8593a8;
}
.pillar-form-fineprint a { color: #5b6b85; }

/* ============== RATES TABLE ============== */
.pillar-rates { padding: 64px 0; }
.rates-table-wrap {
  border: 1px solid #e6ebf2;
  border-radius: 16px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 10px 30px rgba(23, 41, 73, 0.05);
}
.rates-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 15px;
}
.rates-table thead {
  background: #f6f8fb;
}
.rates-table th {
  text-align: left;
  font-weight: 700;
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #6b7a90;
  padding: 14px 18px;
}
.rates-table td {
  padding: 16px 18px;
  border-top: 1px solid #eef1f6;
  color: #172949;
  vertical-align: middle;
}
.rates-table tr:hover td { background: #fafbfd; }
.lt-income-assump { display: block; font-size: 10.5px; line-height: 1.4; opacity: .62; margin-top: 6px; }
.pillar-guides .guide-card .guide-card-thumb { border-radius: 17px 17px 0 0; }
.myga-rates-page .rates-source { font-size: 11.5px; line-height: 1.55; opacity: .72; max-width: 880px; margin-left: auto; margin-right: auto; }
.rates-source.snapshot-note { font-size: 11px; line-height: 1.5; margin: 12px auto 0; opacity: .68; max-width: 880px; }
.rate-eff { display: block; font-size: 10.5px; font-weight: 500; color: #7b869a; line-height: 1.3; margin-top: 2px; }
.rate-trend {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 13px;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 999px;
}
.rate-trend.down { background: rgba(15, 118, 110, 0.12); color: #0b5e57; }
.rate-trend.up { background: rgba(207, 75, 75, 0.12); color: #a83838; }
.rate-trend.flat { background: rgba(107, 122, 144, 0.12); color: #5b6b85; }
.rates-source {
  margin: 16px 0 0;
  font-size: 13px;
  color: #6b7a90;
  text-align: center;
}
.rates-source a { color: #0f766e; }

/* ============== SUBVERTICAL GRID ============== */
.pillar-subverticals { padding: 64px 0; background: #f9fbfc; }
.subvertical-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 16px;
}
.subvertical-card {
  display: block;
  padding: 22px;
  background: #fff;
  border: 1px solid #e6ebf2;
  border-radius: 14px;
  text-decoration: none;
  color: inherit;
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.subvertical-card strong {
  display: block;
  font-size: 17px;
  font-weight: 800;
  color: #0e1a33;
  margin-bottom: 6px;
}
.subvertical-card p {
  margin: 0 0 12px;
  font-size: 14px;
  line-height: 1.5;
  color: #5b6b85;
}
.subvertical-card .sub-cta {
  font-size: 13px;
  font-weight: 700;
  color: #0f766e;
}
.subvertical-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 36px rgba(23, 41, 73, 0.08);
  border-color: rgba(15, 118, 110, 0.4);
}

/* ============== BEST LIST ============== */
.pillar-best { padding: 64px 0; }
.best-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 14px;
}
.best-list li {
  display: grid;
  grid-template-columns: 56px 1fr auto;
  gap: 18px;
  align-items: center;
  padding: 18px 22px;
  background: #fff;
  border: 1px solid #e6ebf2;
  border-radius: 14px;
}
.best-rank {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: linear-gradient(135deg, #0f766e, #16a06b);
  color: #fff;
  display: grid;
  place-items: center;
  font-weight: 900;
  font-size: 20px;
}
.best-meta strong {
  display: block;
  font-size: 17px;
  font-weight: 800;
  color: #0e1a33;
}
.best-meta small {
  display: block;
  font-size: 13px;
  color: #0f766e;
  font-weight: 700;
  margin-top: 2px;
}
.best-meta p {
  margin: 6px 0 0;
  font-size: 14px;
  line-height: 1.5;
  color: #5b6b85;
}
.section-footer-cta {
  margin-top: 24px;
  text-align: center;
}

/* ============== CALCULATORS GRID ============== */
.pillar-calculators { padding: 64px 0; background: #f9fbfc; }
.calc-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 16px;
}
.calc-grid-3 { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.calc-card {
  display: block;
  padding: 22px;
  background: #fff;
  border: 1px solid #e6ebf2;
  border-radius: 14px;
  text-decoration: none;
  color: inherit;
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.calc-card strong {
  display: block;
  font-size: 16px;
  font-weight: 800;
  color: #0e1a33;
  margin-bottom: 6px;
}
.calc-card p {
  margin: 0;
  font-size: 14px;
  line-height: 1.5;
  color: #5b6b85;
}
.calc-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 36px rgba(23, 41, 73, 0.08);
  border-color: rgba(15, 118, 110, 0.4);
}

/* ============== EXPLAINER / PROCESS ============== */
.pillar-explainer { padding: 64px 0; }
.explainer-list { display: grid; gap: 18px; }
.explainer-item {
  display: grid;
  grid-template-columns: 64px 1fr;
  gap: 18px;
  padding: 20px;
  background: #fff;
  border: 1px solid #e6ebf2;
  border-radius: 14px;
}
.explainer-num {
  display: grid;
  place-items: center;
  width: 56px;
  height: 56px;
  border-radius: 14px;
  background: rgba(15, 118, 110, 0.10);
  color: #0f766e;
  font-weight: 900;
  font-size: 18px;
}
.explainer-item strong { display: block; font-size: 17px; color: #0e1a33; margin-bottom: 4px; }
.explainer-item p { margin: 0; font-size: 15px; line-height: 1.55; color: #5b6b85; }

.pillar-process { padding: 64px 0; background: #f9fbfc; }
.process-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 14px;
  counter-reset: process;
}
.process-list li {
  position: relative;
  padding: 18px 20px 18px 70px;
  background: #fff;
  border: 1px solid #e6ebf2;
  border-radius: 14px;
  counter-increment: process;
}
.process-list li::before {
  content: counter(process, decimal-leading-zero);
  position: absolute;
  left: 20px;
  top: 18px;
  font-weight: 900;
  font-size: 15px;
  color: #0f766e;
  background: rgba(15, 118, 110, 0.10);
  padding: 6px 10px;
  border-radius: 8px;
}
.process-list strong { display: block; font-size: 16px; color: #0e1a33; margin-bottom: 4px; }
.process-list p { margin: 0; font-size: 14px; line-height: 1.55; color: #5b6b85; }

/* ============== GUIDES GRID ============== */
.pillar-guides { padding: 64px 0; }
.guide-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 18px;
}
.guide-card {
  display: block;
  padding: 22px;
  background: #fff;
  border: 1px solid #e6ebf2;
  border-radius: 14px;
  text-decoration: none;
  color: inherit;
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.guide-eyebrow {
  display: inline-block;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #0f766e;
  margin-bottom: 8px;
}
.guide-card strong {
  display: block;
  font-size: 17px;
  font-weight: 800;
  color: #0e1a33;
  margin-bottom: 8px;
  line-height: 1.3;
}
.guide-card p {
  margin: 0;
  font-size: 14px;
  line-height: 1.5;
  color: #5b6b85;
}
.guide-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 36px rgba(23, 41, 73, 0.08);
  border-color: rgba(15, 118, 110, 0.4);
}

.guide-card-thumb {
  display: block;
  margin: -22px -22px 14px;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border-radius: 14px 14px 0 0;
  background: var(--acc-tint, #f4faf7);
}

.guide-card-thumb img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Override legacy homepage `.guide-grid a` / `.guide-grid span|p`
   rules (specificity 0,1,1) that otherwise turn the pillar guide
   card into an inline-flex row. These selectors are 0,3,0+ to win. */
.pillar-page .guide-grid .guide-card {
  display: block;
  min-height: 0;
  overflow: visible;
}
.pillar-page .guide-grid .guide-card::before,
.pillar-page .guide-grid .guide-card::after { content: none; }
.pillar-page .guide-grid .guide-card .guide-eyebrow {
  display: inline-block;
  align-items: initial;
  margin-top: 0;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #0f766e;
  background: none;
  border-radius: 0;
  padding: 0;
  margin-bottom: 8px;
}
.pillar-page .guide-grid .guide-card strong {
  display: block;
  margin-top: 0;
  font-size: 17px;
  font-weight: 800;
  color: #0e1a33;
  line-height: 1.3;
  margin-bottom: 8px;
}
.pillar-page .guide-grid .guide-card p {
  display: block;
  margin: 0;
  margin-top: 0;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.5;
  color: #5b6b85;
}

/* ============== FAQ ============== */
.pillar-faq { padding: 64px 0; background: #f9fbfc; }
.faq-item {
  border: 1px solid #e6ebf2;
  border-radius: 12px;
  padding: 16px 20px;
  margin-bottom: 10px;
  background: #fff;
}
.faq-item summary {
  cursor: pointer;
  font-weight: 700;
  font-size: 16px;
  color: #0e1a33;
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after {
  content: "+";
  font-size: 22px;
  font-weight: 400;
  color: #0f766e;
  margin-left: 14px;
  transition: transform .15s ease;
}
.faq-item[open] summary::after { content: "−"; }
.faq-item p {
  margin: 12px 0 0;
  color: #4a5a76;
  font-size: 15px;
  line-height: 1.6;
}
.faq-item a { color: #0f766e; }

/* ============== METHODOLOGY ============== */
.pillar-methodology { padding: 64px 0; }
/* Pillar methodology partial — single dark card. Scoped to .pillar-page so
   it does NOT bleed onto the homepage's white .methodology-card grid. */
.pillar-page .methodology-card {
  background: linear-gradient(135deg, #0e1a33, #1a2c52);
  color: #e6ebf6;
  border-radius: 22px;
  padding: 40px;
  text-align: center;
}
.pillar-page .methodology-card h2 { color: #fff; font-size: 26px; margin: 0 0 14px; }
.pillar-page .methodology-card p { font-size: 16px; line-height: 1.6; max-width: 640px; margin: 0 auto 14px; }
.pillar-page .methodology-card a { color: #6dd49f; text-decoration: underline; }
.pillar-page .methodology-sig {
  font-size: 13px;
  color: #9eadc8;
  margin-top: 18px;
}

/* Override legacy homepage `.methodology-card`/`p` rules (white-card
   styling) that otherwise render dark text on the pillar's dark card.
   Scoped to .pillar-page for specificity (0,2,x) > legacy (0,1,x). */
.pillar-page .methodology-card {
  display: block;
  background: linear-gradient(135deg, #0e1a33, #1a2c52);
  color: #e6ebf6;
  border: none;
}
.pillar-page .methodology-card::before { content: none; }
.pillar-page .methodology-card:hover { transform: none; box-shadow: none; }
.pillar-page .methodology-card h2 { color: #fff; }
.pillar-page .methodology-card p {
  color: #c9d4ea;
  font-size: 16px;
  line-height: 1.6;
  max-width: 640px;
  margin: 0 auto 14px;
  flex: none;
}
.pillar-page .methodology-card a { color: #6dd49f; text-decoration: underline; }
.pillar-page .methodology-card .methodology-sig {
  color: #9eadc8;
  font-size: 13px;
  margin-top: 18px;
}
.pillar-page .methodology-card .methodology-sig a { color: #6dd49f; }

/* ============== FOOTER ============== */
.pillar-page .site-footer,
.site-footer.site-footer {
  background: #0e1a33;
  color: #c2cce0;
  padding: 56px 0 30px;
}
.footer-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 32px;
}
.footer-col strong {
  display: block;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #ffffff;
  margin-bottom: 14px;
}
.footer-col a {
  display: block;
  font-size: 14px;
  color: #c2cce0;
  text-decoration: none;
  padding: 5px 0;
  transition: color .12s ease;
}
.footer-col a:hover { color: #6dd49f; }
.footer-bottom {
  border-top: 1px solid rgba(255,255,255,0.08);
  padding-top: 20px;
  margin-top: 36px;
  text-align: center;
}
.footer-bottom small { color: #8b9bb6; font-size: 12px; }

/* ============== STATE GRID (used by rates hub & state pages) ============== */
.pillar-state-grid { padding: 64px 0; background: #f9fbfc; }
.state-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 8px;
}
.state-link {
  display: block;
  padding: 12px 16px;
  background: #fff;
  border: 1px solid #e6ebf2;
  border-radius: 10px;
  text-decoration: none;
  color: #172949;
  font-size: 14px;
  font-weight: 600;
  transition: background-color .12s ease, border-color .12s ease, transform .12s ease;
}
.state-link:hover {
  background: rgba(15, 118, 110, 0.08);
  border-color: rgba(15, 118, 110, 0.4);
  color: #0b5e57;
  transform: translateY(-1px);
}
.state-link-muted {
  color: #8593a8;
  background: #f4f6fa;
  cursor: default;
}

/* ============== STATE SNAPSHOT (used on state pages) ============== */
.state-snapshot { padding: 64px 0; }
.snapshot-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 14px;
}
.snapshot-card {
  padding: 22px;
  background: #fff;
  border: 1px solid #e6ebf2;
  border-radius: 14px;
}
.snapshot-label {
  display: block;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #6b7a90;
  margin-bottom: 8px;
}
.snapshot-value {
  display: block;
  font-size: 26px;
  font-weight: 900;
  letter-spacing: -0.01em;
  color: #0f766e;
  margin-bottom: 4px;
}
.snapshot-value-sm { font-size: 18px; line-height: 1.25; }
.snapshot-card small {
  display: block;
  font-size: 12px;
  line-height: 1.4;
  color: #6b7a90;
}

/* ============== BEST-OF (listicle) ============== */
.pillar-bestof { padding: 48px 0 64px; }
.bestof-card {
  background: #fff;
  border: 1px solid #e6ebf2;
  border-radius: 18px;
  padding: 28px 30px;
  margin-bottom: 22px;
  box-shadow: 0 6px 16px rgba(23, 41, 73, 0.04);
}
.bestof-header {
  display: grid;
  grid-template-columns: 44px 46px 1fr auto;
  gap: 16px;
  align-items: center;
  margin-bottom: 14px;
}
.bestof-rank {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: linear-gradient(135deg, #0f766e, #16a06b);
  color: #fff;
  font-weight: 900;
  font-size: 18px;
}
.bestof-card h3 {
  margin: 0;
  font-size: 22px;
  font-weight: 800;
  color: #0e1a33;
}
.bestof-tagline {
  margin: 2px 0 0;
  font-size: 13px;
  font-weight: 700;
  color: #0f766e;
}
.bestof-rating {
  text-align: right;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 8px;
}
.bestof-rating strong {
  font-size: 28px;
  font-weight: 900;
  color: #0f766e;
}
.bestof-rating strong span {
  font-size: 14px;
  color: #6b7a90;
  font-weight: 600;
}
.bestof-summary {
  font-size: 15px;
  line-height: 1.6;
  color: #4a5a76;
  margin: 0 0 18px;
}
.bestof-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 22px;
  margin-bottom: 16px;
}
.bestof-grid strong {
  display: block;
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #6b7a90;
  margin-bottom: 6px;
}
.bestof-bullets {
  list-style: none;
  margin: 0;
  padding: 0;
}
.bestof-bullets li {
  padding-left: 24px;
  font-size: 14px;
  line-height: 1.55;
  color: #4a5a76;
  position: relative;
  margin-bottom: 6px;
}
.bestof-pros li::before { content: "✓"; position: absolute; left: 0; color: #0f766e; font-weight: 700; }
.bestof-cons li::before { content: "✗"; position: absolute; left: 0; color: #cf4b4b; font-weight: 700; }
.bestof-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  border-top: 1px solid #eef1f6;
  padding-top: 14px;
}
.bestof-stats > div { display: flex; flex-direction: column; }
.bestof-stats dt {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #6b7a90;
  font-weight: 700;
}
.bestof-stats dd {
  margin: 4px 0 0;
  font-size: 16px;
  font-weight: 800;
  color: #0e1a33;
}
.bestof-readmore {
  display: inline-block;
  margin-top: 14px;
  font-size: 14px;
  font-weight: 700;
  color: #0f766e;
}

/* ── Best-of card polish (v2) ─────────────────────────────────────── */
.bestof-card { position: relative; }
.bestof-card-top {
  border-color: #f0c674;
  box-shadow: 0 10px 28px rgba(217, 148, 18, 0.16), 0 2px 6px rgba(15, 23, 42, 0.06);
}
.bestof-mark { width: 46px; height: 46px; display: block; }
.bestof-id { min-width: 0; }
.bestof-stars {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 5px;
}
.bestof-stars em {
  font-style: normal;
  font-size: 13px;
  font-weight: 800;
  color: #6b7a90;
}
.bestof-facts { margin: 16px 0 4px; }
@media (max-width: 560px) {
  .bestof-header { grid-template-columns: 40px 42px 1fr; }
  .bestof-rating { grid-column: 1 / -1; align-items: stretch; text-align: left; }
  .bestof-rating .btn { width: 100%; }
}

/* ============== REVIEW PAGE ============== */
.review-body { padding: 48px 0; }
.review-body h2 {
  margin: 30px 0 14px;
  font-size: 24px;
  color: #0e1a33;
}
.review-prosCons { margin-bottom: 30px; }
.review-stats {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
  padding: 22px;
  background: #f9fbfc;
  border-radius: 14px;
  border: 1px solid #e6ebf2;
  margin: 16px 0 28px;
}
.review-stats > div { display: flex; flex-direction: column; }
.review-stats dt {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #6b7a90;
  font-weight: 700;
}
.review-stats dd {
  margin: 4px 0 0;
  font-size: 15px;
  font-weight: 700;
  color: #0e1a33;
}
.review-cta {
  margin-top: 32px;
  padding: 24px;
  background: rgba(15, 118, 110, 0.06);
  border: 1px solid rgba(15, 118, 110, 0.2);
  border-radius: 14px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.review-cta span { font-size: 14px; color: #4a5a76; }

/* ============== GUIDE ARTICLE ============== */
.guide-article, .static-article { padding: 48px 0 24px; }
.guide-article-header { margin-bottom: 32px; }
.guide-article-header .guide-eyebrow {
  display: inline-block;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #0f766e;
  margin-bottom: 12px;
}
.guide-article-header h1 {
  font-size: clamp(32px, 4vw, 44px);
  font-weight: 900;
  letter-spacing: -0.02em;
  line-height: 1.1;
  margin: 0 0 14px;
  color: #0e1a33;
}
.guide-subhead {
  font-size: 19px;
  line-height: 1.5;
  color: #4a5a76;
  margin: 0 0 18px;
}
.guide-byline {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  font-size: 13px;
  color: #6b7a90;
}
.guide-byline a { color: #0f766e; }
.guide-body {
  font-size: 17px;
  line-height: 1.7;
  color: #283248;
}
.guide-body h2 { margin: 36px 0 14px; font-size: 26px; font-weight: 800; color: #0e1a33; }
.guide-body h3 { margin: 28px 0 12px; font-size: 20px; font-weight: 800; color: #0e1a33; }
.guide-body p, .guide-body ul, .guide-body ol { margin: 0 0 18px; }
.guide-body ul, .guide-body ol { padding-left: 22px; }
.guide-body li { margin-bottom: 8px; }
.guide-body a { color: #0f766e; text-decoration: underline; }
.guide-cta {
  margin-top: 36px;
  padding: 24px;
  background: linear-gradient(135deg, #f3fbfa, #ffffff);
  border: 1px solid rgba(15, 118, 110, 0.25);
  border-radius: 14px;
}
.guide-cta strong { display: block; font-size: 17px; color: #0e1a33; margin-bottom: 6px; }
.guide-cta p { margin: 0 0 14px; color: #4a5a76; }

/* Primary buttons inside guide prose must keep white text — the generic
   `.pillar-page .guide-body a` link-color rule (specificity 0,2,1) otherwise
   tints them with the pillar color. Higher-specificity override (0,3,1). */
.pillar-page .guide-body a.btn-primary,
.pillar-page .editorial-main a.btn-primary,
.pillar-page .guide-body a.btn-primary:hover,
.pillar-page .editorial-main a.btn-primary:hover { color: #fff; }

/* ============== ANNUITY CALCULATOR ============== */
.annuity-calculator {
  padding: 56px 0;
  background:
    radial-gradient(800px 400px at 80% 50%, rgba(15, 118, 110, 0.06), transparent 65%),
    #f9fbfc;
}
.calc-grid-2 {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: 32px;
  align-items: start;
  width: min(1000px, 92vw);
  margin: 0 auto;
}
.calc-inputs {
  background: #fff;
  padding: 28px;
  border-radius: 18px;
  border: 1px solid #e6ebf2;
  box-shadow: 0 10px 30px rgba(23, 41, 73, 0.05);
}
.calc-inputs h2 {
  margin: 0 0 18px;
  font-size: 18px;
  font-weight: 800;
  letter-spacing: -0.005em;
  color: #0e1a33;
}
.calc-label {
  display: block;
  margin-bottom: 18px;
}
.calc-label > span {
  display: block;
  font-size: 13px;
  font-weight: 700;
  color: #4a5a76;
  margin-bottom: 8px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.calc-label input[type="number"],
.calc-label select {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid #d9e0ea;
  border-radius: 10px;
  font-size: 16px;
  font-weight: 700;
  color: #0e1a33;
  background: #fff;
  font-family: inherit;
}
.calc-label input[type="number"]:focus,
.calc-label select:focus {
  outline: none;
  border-color: #0f766e;
  box-shadow: 0 0 0 3px rgba(15, 118, 110, 0.15);
}
.calc-amount-row { display: flex; flex-direction: column; gap: 8px; }
.calc-amount-presets {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 6px;
}
.calc-amount-presets button {
  padding: 8px 6px;
  background: #fff;
  border: 1px solid #d9e0ea;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 700;
  color: #4a5a76;
  cursor: pointer;
  font-family: inherit;
  transition: all .12s ease;
}
.calc-amount-presets button:hover {
  border-color: #0f766e;
  color: #0f766e;
}
.calc-amount-presets button.active {
  background: #0f766e;
  border-color: #0f766e;
  color: #fff;
}
.calc-radio-row { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.calc-radio {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 12px;
  border: 1px solid #d9e0ea;
  border-radius: 10px;
  cursor: pointer;
  gap: 8px;
  font-weight: 700;
  color: #4a5a76;
  background: #fff;
  transition: all .12s ease;
}
.calc-radio:has(input:checked) {
  border-color: #0f766e;
  background: rgba(15, 118, 110, 0.08);
  color: #0f766e;
}
.calc-radio input { accent-color: #0f766e; }

.calc-results {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.calc-result-card {
  /* White text on the old light end (#5ec5bf) measured 2.06:1 — under half the WCAG
     minimum, on the headline number of the page. Both stops now hold >= 5:1. */
  background: linear-gradient(135deg, #0a544d, #117c73);
  color: #fff;
  padding: 32px;
  border-radius: 18px;
  text-align: center;
  box-shadow: 0 16px 36px rgba(15, 118, 110, 0.25);
}

/* Payment-breakdown donut */
.calc-donut-wrap{display:grid;grid-template-columns:132px 1fr;gap:18px;align-items:center;background:#fff;border:1px solid #e3e9f1;border-radius:16px;padding:18px 20px}
.calc-donut{width:132px;height:132px;display:block}
.calc-donut-legend{list-style:none;padding:0;margin:0;display:grid;gap:7px}
.calc-donut-legend li{display:grid;grid-template-columns:14px 1fr auto auto;gap:8px;align-items:baseline;font-size:13px}
.cdl-dot{width:11px;height:11px;border-radius:3px;align-self:center}
.cdl-label{color:#41506a;font-weight:600}
.cdl-val{color:#172949;font-weight:800;font-size:13px}
.cdl-pct{color:#6a7686;font-weight:700;font-size:12px;min-width:34px;text-align:right}
@media (max-width:560px){.calc-donut-wrap{grid-template-columns:1fr;justify-items:center;text-align:left}.calc-donut-legend{width:100%}}
.calc-result-label {
  display: block;
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-weight: 700;
  opacity: 0.85;
  margin-bottom: 12px;
}
.calc-result-value {
  display: block;
  font-size: 56px;
  font-weight: 900;
  letter-spacing: -0.03em;
  line-height: 1;
  margin-bottom: 8px;
}
.calc-result-sub {
  display: block;
  font-size: 15px;
  opacity: 0.9;
  font-weight: 600;
}
.calc-result-breakdown {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  background: #e6ebf2;
  border: 1px solid #e6ebf2;
  border-radius: 14px;
  overflow: hidden;
}
.calc-result-breakdown > div {
  background: #fff;
  padding: 14px 18px;
}
.calc-result-breakdown span {
  display: block;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #6b7a90;
  font-weight: 700;
  margin-bottom: 4px;
}
.calc-result-breakdown strong {
  font-size: 18px;
  font-weight: 800;
  color: #0e1a33;
}
.calc-result-card-alt {
  background: linear-gradient(135deg, #2a3a5e, #475780);
}
.calc-disclaimer {
  font-size: 12px;
  color: #6b7a90;
  padding: 8px 16px;
  background: rgba(15, 118, 110, 0.04);
  border-radius: 8px;
  border-left: 3px solid #0f766e;
}
.calc-cta {
  text-align: center;
  padding: 20px;
  background: #fff;
  border-radius: 14px;
  border: 1px solid #e6ebf2;
}
.calc-cta .btn { width: 100%; }
.calc-cta small {
  display: block;
  margin-top: 10px;
  font-size: 12px;
  color: #6b7a90;
}

@media (max-width: 880px) {
  .calc-grid-2 { grid-template-columns: 1fr; gap: 22px; }
  .calc-result-value { font-size: 44px; }
  .calc-amount-presets { grid-template-columns: repeat(3, 1fr); }
}

/* ============== MYGA RATE HISTORY CHART ============== */
.rate-history { padding: 56px 0; background: #f9fbfc; }
.rate-chart {
  display: flex;
  align-items: flex-end;
  gap: 8px;
  height: 280px;
  padding: 20px;
  background: #fff;
  border: 1px solid #e6ebf2;
  border-radius: 14px;
  box-shadow: 0 10px 30px rgba(23, 41, 73, 0.05);
  overflow-x: auto;
}
.chart-month {
  flex: 1;
  min-width: 50px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  height: 100%;
}
.chart-bars {
  display: flex;
  gap: 3px;
  align-items: flex-end;
  height: 100%;
  width: 100%;
  justify-content: center;
}
.chart-bar {
  width: 14px;
  border-radius: 4px 4px 0 0;
  min-height: 4px;
  transition: opacity .15s ease;
}
.chart-bar:hover { opacity: 0.7; cursor: help; }
.chart-bar-myga {
  background: linear-gradient(180deg, #5ec5bf, #0f766e);
}
.chart-bar-cd {
  background: linear-gradient(180deg, #b9c2d1, #8593a8);
}
.chart-label {
  font-size: 11px;
  color: #6b7a90;
  font-weight: 700;
  white-space: nowrap;
}
.chart-legend {
  display: flex;
  justify-content: center;
  gap: 24px;
  margin-top: 18px;
  font-size: 14px;
  color: #4a5a76;
}
.chart-legend span {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.chart-legend i {
  width: 14px; height: 14px; border-radius: 3px;
  display: inline-block;
}
.legend-myga { background: linear-gradient(180deg, #5ec5bf, #0f766e); }
.legend-cd   { background: linear-gradient(180deg, #b9c2d1, #8593a8); }

.rate-history-table { padding: 56px 0; }
.rate-history-table .row-current {
  background: rgba(15, 118, 110, 0.06);
  font-weight: 700;
}
.spread-pill {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 6px;
  background: rgba(15, 118, 110, 0.10);
  color: #0b5e57;
  font-size: 12px;
  font-weight: 700;
}
.rate-events {
  list-style: none;
  margin: 14px 0 30px;
  padding: 0;
}
.rate-events li {
  padding: 12px 16px;
  background: #f9fbfc;
  border-left: 3px solid #0f766e;
  margin-bottom: 8px;
  border-radius: 0 8px 8px 0;
  font-size: 15px;
  line-height: 1.5;
}
.rate-events li strong {
  color: #0f766e;
  margin-right: 6px;
}

.rate-history-page .pillar-hero {
  background:
    radial-gradient(1100px 520px at 12% -20%, rgba(15, 118, 110, 0.14), transparent 60%),
    radial-gradient(900px 480px at 92% 0%, rgba(94, 197, 191, 0.10), transparent 65%),
    linear-gradient(180deg, #f3fbfa 0%, #ffffff 100%);
}
.rate-history-page .pillar-eyebrow { color: #0f766e; }
.rate-history-page .pillar-trust-row strong { color: #0f766e; }
.rate-history-page .btn-primary {
  background: #0f766e;
  box-shadow: 0 8px 20px rgba(15, 118, 110, 0.25);
}
.rate-history-page .btn-primary:hover { background: #0b5e57; }

/* ============== NEWS ARTICLE PAGES ============== */
.news-article { padding: 48px 0 64px; }
.pillar-page .news-hero {
  margin: 0 0 24px;
  border-radius: 16px;
  overflow: hidden;
  background: #f4faf7;
  aspect-ratio: 16 / 9;
}
.pillar-page .news-hero img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.news-meta {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 18px;
  font-size: 13px;
  color: #6b7a90;
}
.news-meta time {
  font-weight: 700;
}
.news-meta .news-category {
  display: inline-block;
  padding: 3px 10px;
  border-radius: 999px;
  background: rgba(15, 118, 110, 0.10);
  color: #0f766e;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-size: 11px;
}
.news-article h1 {
  font-size: clamp(28px, 4vw, 44px);
  font-weight: 900;
  line-height: 1.15;
  color: #0e1a33;
  margin: 0 0 18px;
  letter-spacing: -0.02em;
}
.news-summary {
  font-size: 19px;
  line-height: 1.55;
  color: #4a5a76;
  margin: 0 0 28px;
  padding-bottom: 28px;
  border-bottom: 1px solid #e6ebf2;
}
.news-body h2 {
  margin-top: 28px;
  font-size: 22px;
  color: #0e1a33;
}
.news-body h2 { margin-bottom: 12px; }
.news-body h3 {
  margin: 24px 0 10px;
  font-size: 20px;
  line-height: 1.35;
  color: #0e1a33;
}
.news-body > p + p { margin-top: 16px; }
.news-body p, .news-body ul, .news-body ol {
  font-size: 17px;
  line-height: 1.65;
  color: #2a3a5e;
}
.news-author-line {
  margin-top: 36px;
  padding-top: 22px;
  border-top: 1px solid #e6ebf2;
  font-size: 14px;
  color: #6b7a90;
}

.news-listing-page { padding: 48px 0; }
.news-listing-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 22px;
}
.news-card {
  display: block;
  padding: 24px;
  background: #fff;
  border: 1px solid #e6ebf2;
  border-radius: 14px;
  text-decoration: none;
  color: inherit;
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.pillar-page .news-card-thumb {
  display: block;
  margin: -22px -22px 14px;
  aspect-ratio: 16 / 9;
  overflow: hidden;
}
.pillar-page .news-card-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.news-card time {
  display: block;
  font-size: 12px;
  font-weight: 700;
  color: #0f766e;
  margin-bottom: 8px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.news-card h3 {
  margin: 0 0 10px;
  font-size: 18px;
  font-weight: 800;
  color: #0e1a33;
  line-height: 1.3;
}
.news-card p {
  margin: 0;
  font-size: 14px;
  line-height: 1.55;
  color: #5b6b85;
}
.news-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 36px rgba(23, 41, 73, 0.08);
  border-color: rgba(15, 118, 110, 0.4);
}

/* ============== ANNUITY GLOSSARY ============== */
.glossary-page { padding: 56px 0 80px; }
.glossary-alphabet {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin: 0 0 36px;
  padding: 18px;
  background: #f9fbfc;
  border: 1px solid #e6ebf2;
  border-radius: 12px;
  justify-content: center;
}
.glossary-alphabet a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 34px;
  height: 34px;
  padding: 0 8px;
  border-radius: 8px;
  background: #fff;
  border: 1px solid #d9e0ea;
  color: #0f766e;
  font-weight: 800;
  font-size: 14px;
  text-decoration: none;
  transition: all .12s ease;
}
.glossary-alphabet a:hover {
  background: #0f766e;
  border-color: #0f766e;
  color: #fff;
}
.glossary-section {
  margin-bottom: 36px;
  scroll-margin-top: 80px;
}
.glossary-section > h2 {
  font-size: 36px;
  font-weight: 900;
  color: #0f766e;
  margin: 0 0 18px;
  padding-bottom: 8px;
  border-bottom: 2px solid #f0e8fa;
  letter-spacing: -0.02em;
}
.glossary-term {
  margin: 0 0 18px;
  padding: 16px 18px;
  background: #fff;
  border: 1px solid #e6ebf2;
  border-radius: 10px;
  scroll-margin-top: 80px;
}
.glossary-term dt {
  font-weight: 800;
  font-size: 17px;
  color: #0e1a33;
  margin-bottom: 6px;
}
.glossary-term dd {
  margin: 0;
  font-size: 15px;
  line-height: 1.55;
  color: #4a5a76;
}
.glossary-informal {
  display: inline-block;
  margin-left: 6px;
  padding: 2px 8px;
  border-radius: 6px;
  background: rgba(202, 152, 38, 0.12);
  color: #8a6516;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.glossary-cta {
  margin-top: 50px;
  text-align: center;
  padding: 30px;
  background: linear-gradient(135deg, rgba(15, 118, 110, 0.06), rgba(15, 118, 110, 0.02));
  border-radius: 14px;
  border: 1px solid rgba(15, 118, 110, 0.18);
}
.glossary-cta p {
  margin: 0 0 18px;
  color: #4a5a76;
  font-size: 15px;
}

.annuity-glossary-page .pillar-hero {
  background:
    radial-gradient(1100px 520px at 12% -20%, rgba(15, 118, 110, 0.14), transparent 60%),
    radial-gradient(900px 480px at 92% 0%, rgba(94, 197, 191, 0.10), transparent 65%),
    linear-gradient(180deg, #f3fbfa 0%, #ffffff 100%);
}
.annuity-glossary-page .pillar-eyebrow { color: #0f766e; }
.annuity-glossary-page .pillar-trust-row strong { color: #0f766e; }
.annuity-glossary-page .btn-primary {
  background: #0f766e;
  box-shadow: 0 8px 20px rgba(15, 118, 110, 0.25);
}
.annuity-glossary-page .btn-primary:hover { background: #0b5e57; }

/* ============== CARRIER COMPARISON PAGE ============== */
.annuity-comparison { padding: 56px 0; }
.comparison-cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  margin: 24px 0 40px;
}
.comparison-card {
  background: #fff;
  border: 1px solid #e6ebf2;
  border-radius: 14px;
  padding: 24px;
  box-shadow: 0 10px 30px rgba(23, 41, 73, 0.05);
}
.comparison-card h3 {
  margin: 0 0 6px;
  font-size: 20px;
  font-weight: 800;
  color: #0e1a33;
}
.comparison-tagline {
  margin: 0 0 14px;
  font-size: 13px;
  font-weight: 700;
  color: #0f766e;
}
.comparison-card .btn {
  width: 100%;
  margin-top: 14px;
}
.comparison-readmore {
  display: block;
  margin-top: 10px;
  text-align: center;
  font-size: 14px;
  font-weight: 700;
  color: #0f766e;
  text-decoration: none;
}
.comparison-readmore:hover { text-decoration: underline; }

/* ── Comparison cards polish (v2) ─────────────────────────────────── */
.comparison-cards-v2 { position: relative; }
.comparison-card { position: relative; }
.comparison-card-win {
  border-color: #f0c674;
  box-shadow: 0 10px 28px rgba(217, 148, 18, 0.16), 0 2px 6px rgba(15, 23, 42, 0.06);
}
.cmp-win-badge {
  position: absolute;
  top: -12px;
  left: 16px;
  background: linear-gradient(135deg, #f5c044, #d99412);
  color: #3a2a00;
  font-size: 10.5px;
  font-weight: 900;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  padding: 5px 11px;
  border-radius: 7px;
}
.cmp-card-head {
  display: grid;
  grid-template-columns: 46px 1fr;
  gap: 13px;
  align-items: center;
}
.cmp-mark { width: 46px; height: 46px; display: block; }
.cmp-card-id { min-width: 0; }
.cmp-card-id h3 { margin: 0; }
.cmp-card-id .comparison-tagline { margin: 2px 0 0; }
.cmp-card-rating {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 12px 0 4px;
}
.cmp-card-rating strong { font-size: 18px; font-weight: 900; color: #172949; }
.cmp-of { font-size: 12px; color: #6b7a90; font-weight: 600; }
.cmp-vs {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #fff;
  border: 2px solid #e3e9f1;
  font-size: 13px;
  font-weight: 900;
  color: #6b7a90;
  z-index: 2;
}
@media (max-width: 720px) {
  .cmp-vs {
    top: 50%;
    left: 50%;
  }
}

.comparison-stats-table .cell-win {
  background: rgba(15, 118, 110, 0.08);
  font-weight: 800;
  color: #0f766e;
  position: relative;
}
.comparison-stats-table .cell-win::before {
  content: '✓';
  position: absolute;
  left: 6px;
  top: 50%;
  transform: translateY(-50%);
  color: #0f766e;
  font-weight: 900;
}
.comparison-stats-table .cell-win {
  padding-left: 24px;
}

.comparison-product-grid,
.comparison-prosCons {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  margin: 20px 0 30px;
}
.comparison-product-grid > div,
.comparison-prosCons > div {
  background: #f9fbfc;
  padding: 20px;
  border-radius: 12px;
  border: 1px solid #e6ebf2;
}
.comparison-product-grid strong,
.comparison-prosCons strong {
  display: block;
  font-size: 14px;
  font-weight: 800;
  color: #0e1a33;
  margin-bottom: 10px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.annuity-comparison-page .pillar-hero {
  background:
    radial-gradient(1100px 520px at 12% -20%, rgba(15, 118, 110, 0.14), transparent 60%),
    radial-gradient(900px 480px at 92% 0%, rgba(94, 197, 191, 0.10), transparent 65%),
    linear-gradient(180deg, #f3fbfa 0%, #ffffff 100%);
}
.annuity-comparison-page .pillar-eyebrow { color: #0f766e; }
.annuity-comparison-page .pillar-trust-row strong { color: #0f766e; }
.annuity-comparison-page .btn-primary {
  background: #0f766e;
  box-shadow: 0 8px 20px rgba(15, 118, 110, 0.25);
}
.annuity-comparison-page .btn-primary:hover { background: #0b5e57; }

@media (max-width: 720px) {
  .comparison-cards,
  .comparison-product-grid,
  .comparison-prosCons {
    grid-template-columns: 1fr;
  }
}

/* ============== MORTGAGE NEWS (green tone) ============== */
.mortgage-news-page .news-meta .news-category {
  background: rgba(15, 118, 110, 0.10);
  color: #0b5e57;
}
.mortgage-news-page .news-card time { color: #0b5e57; }
.mortgage-news-page .news-card:hover { border-color: rgba(15, 118, 110, 0.4); }
.mortgage-news-page .news-body a,
.mortgage-news-page .news-author-line a { color: #0b5e57; }
.mortgage-news-page .btn-primary {
  background: #0f766e;
  box-shadow: 0 8px 20px rgba(15, 118, 110, 0.25);
}
.mortgage-news-page .btn-primary:hover { background: #0b5e57; }

/* ============== MORTGAGE GLOSSARY (green tone) ============== */
.mortgage-glossary-page .pillar-hero {
  background:
    radial-gradient(1100px 520px at 12% -20%, rgba(15, 118, 110, 0.14), transparent 60%),
    radial-gradient(900px 480px at 92% 0%, rgba(94, 197, 191, 0.10), transparent 65%),
    linear-gradient(180deg, #f3fbfa 0%, #ffffff 100%);
}
.mortgage-glossary-page .pillar-eyebrow,
.mortgage-glossary-page .pillar-trust-row strong { color: #0f766e; }
.mortgage-glossary-page .btn-primary {
  background: #0f766e;
  box-shadow: 0 8px 20px rgba(15, 118, 110, 0.25);
}
.mortgage-glossary-page .btn-primary:hover { background: #0b5e57; }
.mortgage-glossary .glossary-alphabet a { color: #0f766e; }
.mortgage-glossary .glossary-alphabet a:hover { background: #0f766e; border-color: #0f766e; color: #fff; }
.mortgage-glossary .glossary-section > h2 { color: #0f766e; border-bottom-color: #e3f1ea; }
.mortgage-glossary-page .glossary-cta {
  background: linear-gradient(135deg, rgba(15, 118, 110, 0.06), rgba(15, 118, 110, 0.02));
  border-color: rgba(15, 118, 110, 0.18);
}

/* ============== MORTGAGE COMPARISON (green tone) ============== */
.mortgage-comparison-page .pillar-hero {
  background:
    radial-gradient(1100px 520px at 12% -20%, rgba(15, 118, 110, 0.14), transparent 60%),
    radial-gradient(900px 480px at 92% 0%, rgba(94, 197, 191, 0.10), transparent 65%),
    linear-gradient(180deg, #f3fbfa 0%, #ffffff 100%);
}
.mortgage-comparison-page .pillar-eyebrow,
.mortgage-comparison-page .pillar-trust-row strong { color: #0f766e; }
.mortgage-comparison-page .comparison-tagline { color: #0b5e57; }
.mortgage-comparison-page .comparison-readmore { color: #0b5e57; }
.mortgage-comparison-page .btn-primary {
  background: #0f766e;
  box-shadow: 0 8px 20px rgba(15, 118, 110, 0.25);
}
.mortgage-comparison-page .btn-primary:hover { background: #0b5e57; }
.mortgage-comparison-page .comparison-stats-table .cell-win {
  background: rgba(15, 118, 110, 0.10);
  color: #0b5e57;
}
.mortgage-comparison-page .comparison-stats-table .cell-win::before { color: #0f766e; }

/* ============== CREDIT-CARD TOOLS (blue tone) ============== */
.cc-calc {
  background:
    radial-gradient(800px 400px at 80% 50%, rgba(15, 118, 110, 0.06), transparent 65%),
    #f9fbfc;
}
.cc-calc-page .pillar-hero {
  background:
    radial-gradient(1100px 520px at 12% -20%, rgba(15, 118, 110, 0.14), transparent 60%),
    radial-gradient(900px 480px at 92% 0%, rgba(94, 197, 191, 0.10), transparent 65%),
    linear-gradient(180deg, #f4f7fc 0%, #ffffff 100%);
}
.cc-calc-page .pillar-eyebrow,
.cc-calc-page .pillar-trust-row strong { color: #1d5dba; }
.cc-calc-page .calc-result-card {
  background: linear-gradient(135deg, #2266cf, #1d5dba);
  box-shadow: 0 16px 36px rgba(15, 118, 110, 0.25);
}
.cc-calc-page .btn-primary {
  background: #1d5dba;
  box-shadow: 0 8px 20px rgba(15, 118, 110, 0.25);
}
.cc-calc-page .btn-primary:hover { background: #174a96; }
.cc-calc-page .calc-label input:focus,
.cc-calc-page .calc-label select:focus {
  border-color: #1d5dba;
  box-shadow: 0 0 0 3px rgba(15, 118, 110, 0.15);
}

/* ============== INSURANCE TOOLS (gold tone) ============== */
.ins-calc {
  background:
    radial-gradient(800px 400px at 80% 50%, rgba(202, 152, 38, 0.07), transparent 65%),
    #f9fbfc;
}
.ins-calc-page .pillar-hero {
  background:
    radial-gradient(1100px 520px at 12% -20%, rgba(202, 152, 38, 0.16), transparent 60%),
    radial-gradient(900px 480px at 92% 0%, rgba(228, 187, 75, 0.12), transparent 65%),
    linear-gradient(180deg, #fbf7ee 0%, #ffffff 100%);
}
.ins-calc-page .pillar-eyebrow,
.ins-calc-page .pillar-trust-row strong { color: #8a6516; }
.ins-calc-page .calc-result-card {
  background: linear-gradient(135deg, #b07712, #8a6516);
  box-shadow: 0 16px 36px rgba(202, 152, 38, 0.25);
}
.ins-calc-page .btn-primary {
  background: #b07712;
  box-shadow: 0 8px 20px rgba(202, 152, 38, 0.28);
}
.ins-calc-page .btn-primary:hover { background: #8a6516; }
.ins-calc-page .calc-label input:focus,
.ins-calc-page .calc-label select:focus {
  border-color: #b07712;
  box-shadow: 0 0 0 3px rgba(202, 152, 38, 0.18);
}

/* ============== MORTGAGE CALCULATOR (green tone) ============== */
.mortgage-calc {
  background:
    radial-gradient(800px 400px at 80% 50%, rgba(15, 118, 110, 0.06), transparent 65%),
    #f9fbfc;
}
.mortgage-calc-page .calc-result-card {
  background: linear-gradient(135deg, #0f766e, #16a06b);
  box-shadow: 0 16px 36px rgba(15, 118, 110, 0.25);
}
.mortgage-calc-page .calc-result-card-alt {
  background: linear-gradient(135deg, #2a3a5e, #475780);
}
.mortgage-calc-page .calc-label input:focus,
.mortgage-calc-page .calc-label select:focus {
  border-color: #0f766e;
  box-shadow: 0 0 0 3px rgba(15, 118, 110, 0.15);
}
.mortgage-calc-page .calc-amount-presets button:hover {
  border-color: #0f766e;
  color: #0b5e57;
}
.mortgage-calc-page .calc-amount-presets button.active {
  background: #0f766e;
  border-color: #0f766e;
  color: #fff;
}
.mortgage-calc-page .calc-disclaimer {
  background: rgba(15, 118, 110, 0.04);
  border-left-color: #0f766e;
}

/* ============== GUIDE BODY ENHANCEMENTS ============== */
.guide-body table {
  width: 100%;
  border-collapse: collapse;
  margin: 18px 0 24px;
  font-size: 15px;
}
.guide-body th, .guide-body td {
  text-align: left;
  padding: 10px 14px;
  border-top: 1px solid #eef1f6;
}
.guide-body thead {
  background: #f6f8fb;
}
.guide-body thead th {
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #6b7a90;
  font-weight: 700;
}
.guide-body tbody tr:hover td { background: #fafbfd; }
.guide-body em { color: #0e1a33; font-style: italic; }
.guide-coming-soon {
  padding: 24px;
  background: #f6f8fb;
  border-left: 4px solid #c39a3e;
  border-radius: 8px;
  margin: 24px 0;
}
.guide-coming-soon p:last-child { margin-bottom: 0; }

/* ============== ANNUITY MACHINE ============== */

/* A.M. Best rating badge */
.am-best-badge {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 6px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.04em;
  vertical-align: middle;
  margin-left: 6px;
  border: 1px solid;
}
.am-best-a-plus-plus,
.am-best-a-plus { background: rgba(15, 118, 110, 0.12); color: #0b5e57; border-color: rgba(15, 118, 110, 0.4); }
.am-best-a { background: rgba(94, 197, 191, 0.10); color: #1d5dba; border-color: rgba(94, 197, 191, 0.35); }
.am-best-a- { background: rgba(202, 152, 38, 0.12); color: #8a6516; border-color: rgba(202, 152, 38, 0.4); }
.am-best-b-plus-plus,
.am-best-b-plus { background: rgba(207, 132, 75, 0.12); color: #8a4d18; border-color: rgba(207, 132, 75, 0.35); }
.am-best-b { background: rgba(207, 75, 75, 0.12); color: #a83838; border-color: rgba(207, 75, 75, 0.35); }
.am-best-c-plus-plus,
.am-best-c-plus { background: #fdecec; color: #8f2424; border-color: rgba(179, 38, 30, 0.45); }
/* Carrier whose quote requests are paused (record field `quotePaused`): muted label instead of a CTA. */
.quote-paused { display: inline-block; font-size: 12px; font-weight: 700; color: #8a2f2f; background: #fdf2f2; border: 1px solid #f0cfcf; border-radius: 999px; padding: 6px 12px; white-space: nowrap; cursor: help; }
.quote-paused-note { font-size: 13px; line-height: 1.5; color: #8a2f2f; background: #fdf2f2; border: 1px solid #f0cfcf; border-radius: 10px; padding: 10px 12px; margin: 0 0 8px; }

/* MYGA rates page */
.myga-rates-page .pillar-hero { background:
  radial-gradient(1100px 520px at 12% -20%, rgba(15, 118, 110, 0.14), transparent 60%),
  radial-gradient(900px 480px at 92% 0%, rgba(94, 197, 191, 0.10), transparent 65%),
  linear-gradient(180deg, #f3fbfa 0%, #ffffff 100%);
}

.myga-top-card {
  position: relative;
  background: linear-gradient(135deg, #fff 0%, rgba(15, 118, 110, 0.04) 100%);
  border-color: rgba(15, 118, 110, 0.25);
}
.myga-top-card .snapshot-value { color: #0f766e; }

.myga-table-section { background: #fff; }
.myga-table-wrap {
  overflow-x: auto;
}
.myga-table { min-width: 760px; }
.myga-table th {
  position: relative;
  user-select: none;
  white-space: nowrap;
}
.myga-table th[data-sort]:hover { background: #eaeff7; }
.myga-table th.sort-asc::after,
.myga-table th.sort-desc::after {
  content: '';
  position: absolute;
  right: 8px;
  top: 50%;
  width: 0; height: 0;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
}
.myga-table th.sort-asc::after { border-bottom: 5px solid #0f766e; transform: translateY(-50%); }
.myga-table th.sort-desc::after { border-top: 5px solid #0f766e; transform: translateY(-50%); }

.myga-table td.rate-top {
  background: rgba(15, 118, 110, 0.10);
  font-weight: 800;
  color: #0f766e;
  position: relative;
}
.myga-table td.rate-top::before {
  content: '★';
  position: absolute;
  left: 4px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 10px;
  color: #c39a3e;
}

.carrier-name {
  display: inline-block;
  font-weight: 800;
  color: #0e1a33;
  text-decoration: none;
}
.carrier-name:hover { color: #0f766e; text-decoration: underline; }

/* Annuity hub uses retirement (purple) tone by default */
.annuity-hub-page .pillar-hero,
.annuity-review-page .pillar-hero,
.annuity-bestof-page .pillar-hero {
  background:
    radial-gradient(1100px 520px at 12% -20%, rgba(15, 118, 110, 0.14), transparent 60%),
    radial-gradient(900px 480px at 92% 0%, rgba(94, 197, 191, 0.10), transparent 65%),
    linear-gradient(180deg, #f3fbfa 0%, #ffffff 100%);
}
.annuity-hub-page .pillar-eyebrow,
.annuity-review-page .pillar-eyebrow,
.annuity-bestof-page .pillar-eyebrow,
.myga-rates-page .pillar-eyebrow { color: #0f766e; }
.annuity-hub-page .pillar-trust-row strong,
.annuity-review-page .pillar-trust-row strong,
.annuity-bestof-page .pillar-trust-row strong,
.myga-rates-page .pillar-trust-row strong { color: #0f766e; }
.annuity-hub-page .btn-primary,
.annuity-review-page .btn-primary,
.annuity-bestof-page .btn-primary,
.myga-rates-page .btn-primary {
  background: #0f766e;
  box-shadow: 0 8px 20px rgba(15, 118, 110, 0.25);
}
.annuity-hub-page .btn-primary:hover,
.annuity-review-page .btn-primary:hover,
.annuity-bestof-page .btn-primary:hover,
.myga-rates-page .btn-primary:hover { background: #0b5e57; }

.annuity-hub-page .best-rank,
.annuity-review-page .best-rank,
.annuity-bestof-page .best-rank,
.myga-rates-page .best-rank,
.annuity-bestof-page .bestof-rank {
  background: linear-gradient(135deg, #0f766e, #5ec5bf);
}
.annuity-bestof-page .bestof-rating strong { color: #0f766e; }
.annuity-bestof-page .bestof-readmore { color: #0f766e; }

/* ============== DEPTH KIT (byline · trend · enrich) ============== */
/* Compact byline strip under hero */
.pillar-page .byline-compact {
  display: flex; align-items: center; gap: 12px;
  width: min(1180px, 92vw); margin: 22px auto 0;
  color: #5a6573; font-size: 14px;
}
.pillar-page .guide-article-header .byline-compact { width: auto; margin: 14px 0 0; }
.pillar-page .byline-compact .byline-avatar svg { width: 38px; height: 38px; display: block; }
.pillar-page .byline-text a { color: var(--qz-deep); font-weight: 700; text-decoration: none; }
.pillar-page .byline-text a:hover { text-decoration: underline; }

/* Full byline card */
.pillar-page .byline-card { padding: 30px 0; }
.pillar-page .byline-card-inner {
  display: grid; grid-template-columns: 64px 1fr; gap: 20px;
  background: var(--acc-tint); border: 1px solid var(--acc-line); border-radius: 18px;
  padding: 26px 28px;
}
.pillar-page .byline-avatar svg { display: block; border-radius: 50%; }
.pillar-page .byline-avatar { color: var(--qz); }
.pillar-page .byline-kicker {
  text-transform: uppercase; letter-spacing: .08em; font-size: 11px;
  font-weight: 800; color: var(--qz);
}
.pillar-page .byline-body h3 { margin: 4px 0 2px; font-size: 19px; }
.pillar-page .byline-body h3 a { color: #172949; text-decoration: none; }
.pillar-page .byline-body h3 a:hover { color: var(--qz-deep); }
.pillar-page .byline-title { font-size: 13px; font-weight: 700; color: #5a6573; }
.pillar-page .byline-body p { margin: 10px 0; color: #41506a; font-size: 15px; line-height: 1.65; }
.pillar-page .byline-creds {
  list-style: none; padding: 0; margin: 10px 0 0;
  display: flex; flex-wrap: wrap; gap: 8px;
}
.pillar-page .byline-creds li {
  background: var(--qz-soft); color: var(--qz-deep); font-size: 12px; font-weight: 700;
  padding: 5px 11px; border-radius: 999px;
}
.pillar-page .byline-meta {
  margin-top: 12px; font-size: 13px; color: #5a6573;
  display: flex; flex-wrap: wrap; gap: 8px; align-items: center;
}
.pillar-page .byline-meta a { color: var(--qz-deep); font-weight: 700; text-decoration: none; }
.pillar-page .byline-dot { color: #b7c2cf; }

/* Reviewer mini-card under the author card — separate "Fact-checked by" section */
.pillar-page .byline-reviewer { display: grid; grid-template-columns: 56px 1fr; gap: 18px; margin-top: 14px; padding: 22px 24px; background: #fff; border: 1px dashed var(--acc-line); border-radius: 16px; }
.pillar-page .byline-reviewer .byline-avatar { color: var(--qz-deep); }
.pillar-page .byline-reviewer-body h4 { margin: 3px 0 2px; font-size: 17px; color: #172949; }
.pillar-page .byline-reviewer-body h4 a { color: #172949; text-decoration: none; }
.pillar-page .byline-reviewer-body h4 a:hover { color: var(--qz-deep); }
.pillar-page .byline-reviewer-body p { margin: 8px 0 0; color: #41506a; font-size: 14px; line-height: 1.6; }
.pillar-page .byline-reviewer-body .byline-creds { margin: 9px 0 0; }
.pillar-page .byline-meta-sm { font-size: 12px; margin-top: 10px; }
.byline-text em { font-style: normal; font-weight: 700; color: var(--qz-deep, #145c3a); }
@media (max-width: 640px){
  .pillar-page .byline-reviewer { grid-template-columns: 48px 1fr; gap: 14px; padding: 18px 20px; }
}

/* Key takeaways box */
.pillar-page .enrich-takeaways { padding: 26px 0 4px; }
.pillar-page .kt-box {
  background: linear-gradient(180deg, var(--acc-tint), #ffffff);
  border: 1px solid var(--acc-line); border-left: 4px solid var(--qz);
  border-radius: 16px; padding: 24px 28px;
}
.pillar-page .kt-head {
  display: flex; align-items: center; gap: 9px;
  font-weight: 800; font-size: 16px; color: var(--qz-deep); margin-bottom: 12px;
}
.pillar-page .kt-box ul { margin: 0; padding-left: 20px; }
.pillar-page .kt-box li { margin: 9px 0; color: #2c3a4e; font-size: 15.5px; line-height: 1.6; }
.pillar-page .kt-box li strong { color: var(--qz-deep); }

/* Today's-rate callout + trend chart */
.pillar-page .pillar-trend { padding: 40px 0 16px; }
.pillar-page .trend-layout {
  display: grid; grid-template-columns: 280px 1fr; gap: 26px; align-items: stretch;
}
.pillar-page .rate-now-card {
  background: linear-gradient(160deg, var(--qz), var(--qz-deep)); color: #fff;
  border-radius: 20px; padding: 26px 24px;
  display: flex; flex-direction: column; gap: 6px; justify-content: center;
}
.pillar-page .rn-kicker { font-size: 12px; font-weight: 700; opacity: .85; text-transform: uppercase; letter-spacing: .05em; }
.pillar-page .rn-rate { font-size: 56px; font-weight: 900; line-height: 1; letter-spacing: -.02em; }
.pillar-page .rn-pct { font-size: 26px; font-weight: 800; }
.pillar-page .rn-apr { font-size: 14px; opacity: .9; }
.pillar-page .rn-move { font-size: 13px; font-weight: 800; margin-top: 4px; }
.pillar-page .rn-move.tc-down { color: #b6f5cf; }
.pillar-page .rn-move.tc-up { color: #ffd5cf; }
.pillar-page .rn-move.tc-flat { color: #e7eef9; }
.pillar-page .rate-now-card .btn { margin-top: 14px; background: #fff; color: var(--qz-deep); box-shadow: none; }
.pillar-page .rate-now-card .btn:hover { background: #eafff4; }
.pillar-page .rn-fine { font-size: 11.5px; opacity: .8; text-align: center; margin-top: 8px; }

.pillar-page .trend-chart {
  margin: 0; background: #fff; border: 1px solid #e3eaf2;
  border-radius: 20px; padding: 20px 22px;
}
.pillar-page .trend-chart-cap {
  display: flex; justify-content: space-between; align-items: baseline;
  flex-wrap: wrap; gap: 8px; margin-bottom: 6px;
}
.pillar-page .tc-label { font-weight: 800; color: #172949; font-size: 15px; }
.pillar-page .tc-delta { font-size: 13px; font-weight: 800; }
.pillar-page .tc-delta.tc-down { color: var(--qz-deep); }
.pillar-page .tc-delta.tc-up { color: #c0493f; }
.pillar-page .tc-delta.tc-flat { color: #5a6573; }
.pillar-page .trend-chart-svg { width: 100%; height: auto; display: block; }
.pillar-page .tc-grid { stroke: #eef2f7; stroke-width: 1; }
.pillar-page .tc-axis { fill: #8a96a6; font-size: 11px; font-family: var(--font-sans); }
.pillar-page .tc-line { stroke: var(--tc-accent, var(--qz)); stroke-width: 2.5; stroke-linejoin: round; stroke-linecap: round; }
.pillar-page .tc-dot { fill: #fff; stroke: var(--tc-accent, var(--qz)); stroke-width: 2; }
.pillar-page .tc-now { fill: var(--tc-accent, var(--qz)); stroke: #fff; stroke-width: 2.5; }
.pillar-page .trend-chart-note { font-size: 12px; color: #8a96a6; margin: 10px 0 0; }

/* Editorial + sticky ToC */
.pillar-page .pillar-editorial { padding: 30px 0 10px; }
.pillar-page .editorial-grid { display: grid; grid-template-columns: 1fr 280px; gap: 44px; }
.pillar-page .editorial-main { min-width: 0; }
.pillar-page .editorial-main h2 {
  font-size: 26px; margin: 38px 0 12px; color: #172949; scroll-margin-top: 90px;
}
.pillar-page .editorial-main h2:first-child { margin-top: 0; }
.pillar-page .editorial-main p { color: #3a4860; font-size: 16.5px; line-height: 1.72; margin: 0 0 16px; }
.pillar-page .editorial-main ul { margin: 0 0 18px; padding-left: 22px; }
.pillar-page .editorial-main li { color: #3a4860; font-size: 16px; line-height: 1.68; margin: 9px 0; }
.pillar-page .editorial-main li strong { color: #172949; }
.pillar-page .editorial-main em { color: var(--qz-deep); font-style: italic; }
.pillar-page .editorial-main a { color: var(--qz-deep); font-weight: 700; }

.pillar-page .enrich-proscons {
  display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin: 8px 0 22px;
}
.pillar-page .pc-col { border-radius: 14px; padding: 18px 20px; }
.pillar-page .pc-pros { background: #eef9f3; border: 1px solid #cde9dc; }
.pillar-page .pc-cons { background: #fdf1ef; border: 1px solid #f3d6d1; }
.pillar-page .pc-col h3 { margin: 0 0 10px; font-size: 15px; display: flex; align-items: center; gap: 8px; }
.pillar-page .pc-pros h3 { color: #0b5e57; }
.pillar-page .pc-cons h3 { color: #b6453d; }
.pillar-page .pc-col ul { margin: 0; padding-left: 18px; }
.pillar-page .pc-col li { font-size: 14.5px; line-height: 1.6; margin: 7px 0; color: #3a4860; }

.pillar-page .editorial-aside { position: relative; }
.pillar-page .aside-stick { position: sticky; top: 84px; }
.pillar-page .enrich-toc {
  background: #fff; border: 1px solid #e3eaf2; border-radius: 16px;
  padding: 18px 18px; display: flex; flex-direction: column;
}
.pillar-page .toc-title {
  font-size: 11px; font-weight: 800; text-transform: uppercase;
  letter-spacing: .08em; color: #8a96a6; margin-bottom: 10px;
}
.pillar-page .enrich-toc a {
  font-size: 13.5px; color: #41506a; text-decoration: none;
  padding: 7px 10px; border-radius: 8px; border-left: 2px solid transparent;
}
.pillar-page .enrich-toc a:hover { background: var(--acc-tint); color: var(--qz-deep); border-left-color: var(--qz); }
.pillar-page .enrich-toc a.is-active { background: var(--acc-tint); color: var(--qz-deep); border-left-color: var(--qz); font-weight: 700; }
.pillar-page .aside-cta {
  margin-top: 16px; background: var(--acc-tint); border: 1px solid var(--acc-line);
  border-radius: 16px; padding: 20px; text-align: center;
}
.pillar-page .aside-cta strong { display: block; color: #172949; font-size: 16px; }
.pillar-page .aside-cta p { font-size: 13.5px; color: #5a6573; margin: 6px 0 12px; }
.pillar-page .aside-fine { display: block; font-size: 11.5px; color: #8a96a6; margin-top: 8px; }

/* Trust band */
.pillar-page .enrich-trust { padding: 44px 0; background: #f6f8fb; margin-top: 30px; }
.pillar-page .tb-grid {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px;
}
.pillar-page .tb-card {
  background: #fff; border: 1px solid #e3eaf2; border-radius: 16px;
  padding: 22px 20px; text-align: center;
  display: flex; flex-direction: column; align-items: center; gap: 6px;
}
.pillar-page .tb-ic {
  width: 44px; height: 44px; border-radius: 12px; color: var(--qz-deep);
  background: var(--qz-soft); display: grid; place-items: center; margin-bottom: 4px;
}
.pillar-page .tb-card strong { font-size: 18px; color: #172949; }
.pillar-page .tb-label { font-size: 13px; color: #5a6573; line-height: 1.45; }

/* Related cards */
.pillar-page .enrich-related { padding: 44px 0; }
.pillar-page .rc-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px;
}
.pillar-page .rc-card {
  display: grid; grid-template-columns: 44px 1fr auto; grid-template-rows: auto auto;
  column-gap: 14px; align-items: center;
  background: #fff; border: 1px solid #e3eaf2; border-radius: 16px;
  padding: 20px 22px; text-decoration: none; transition: border-color .15s, transform .15s, box-shadow .15s;
}
.pillar-page .rc-card:hover { border-color: var(--qz); transform: translateY(-2px); box-shadow: 0 14px 30px rgba(23,41,73,.08); }
.pillar-page .rc-ic {
  grid-row: 1 / 3; width: 44px; height: 44px; border-radius: 12px;
  background: var(--qz-soft); color: var(--qz-deep); display: grid; place-items: center;
}
.pillar-page .rc-card strong { color: #172949; font-size: 15.5px; }
.pillar-page .rc-desc { color: #5a6573; font-size: 13.5px; line-height: 1.45; grid-column: 2 / 4; }
.pillar-page .rc-go { grid-row: 1 / 2; color: var(--qz); font-weight: 800; font-size: 18px; }

/* ============== RESPONSIVE ============== */
@media (max-width: 880px) {
  .pillar-page .trend-layout { grid-template-columns: 1fr; }
  .pillar-page .editorial-grid { grid-template-columns: 1fr; gap: 24px; }
  .pillar-page .editorial-aside { order: -1; }
  .pillar-page .aside-stick { position: static; }
  .pillar-page .enrich-toc { position: static; }
  .pillar-page .tb-grid { grid-template-columns: repeat(2, 1fr); }
  .pillar-page .rc-grid { grid-template-columns: 1fr; }
  .pillar-page .enrich-proscons { grid-template-columns: 1fr; }
  .pillar-page .byline-card-inner { grid-template-columns: 56px 1fr; gap: 14px; padding: 20px; }
  .pillar-hero { padding: 36px 0 44px; }
  .pillar-hero-grid { grid-template-columns: 1fr; gap: 32px; }
  .pillar-hero-copy h1 { font-size: 34px; }
  .pillar-trust-row { gap: 18px; }
  .pillar-trust-row strong { font-size: 18px; }
  .best-list li { grid-template-columns: 48px 1fr; }
  .best-list li > a.btn { grid-column: 1 / -1; justify-self: stretch; }
  .rates-table th, .rates-table td { padding: 12px 12px; font-size: 14px; }
  .rates-table th:nth-child(4), .rates-table td:nth-child(4) { display: none; }
}

@media (max-width: 560px) {
  .pillar-hero-copy h1 { font-size: 28px; }
  .pillar-lede { font-size: 16px; }
  .methodology-card { padding: 28px 22px; }
  .methodology-card h2 { font-size: 22px; }
  .rates-table th:nth-child(3), .rates-table td:nth-child(3) { display: none; }
}

/* ============== CTA MICRO-INTERACTIONS + PER-PILLAR TONE ============== */
/* Consistent "hover up" lift on primary conversion CTAs site-wide */
.pillar-page .btn-primary,
.pillar-page .calc-cta .btn,
.pillar-page .btn-lg {
  transition: transform .16s ease, box-shadow .16s ease, background-color .16s ease;
  will-change: transform;
}
.pillar-page .btn-primary:hover,
.pillar-page .btn-primary:focus-visible,
.pillar-page .calc-cta .btn:hover,
.pillar-page .calc-cta .btn:focus-visible {
  transform: translateY(-3px);
  box-shadow: 0 16px 34px rgba(23, 41, 73, 0.18);
}
.pillar-page .btn-primary:active,
.pillar-page .calc-cta .btn:active { transform: translateY(-1px); }

/* Per-pillar tone tokens — single source of truth for accent theming.
   Drives the global quiz widget now; the depth kit roll-out next. */
:root                            { --qz: #0f766e; --qz-deep: #0b5e57; --qz-soft: rgba(15, 118, 110, 0.10); --acc-tint: #f4faf7; --acc-line: #d6ece1; }
body[data-pillar^="mortgages"]    { --qz: #0f766e; --qz-deep: #0b5e57; --qz-soft: rgba(15, 118, 110, 0.10); --acc-tint: #f4faf7; --acc-line: #d6ece1; }
body[data-pillar^="credit-cards"] { --qz: #0f766e; --qz-deep: #0b5e57; --qz-soft: rgba(23, 79, 159, 0.10); --acc-tint: #f3f7fc; --acc-line: #d4e2f1; }
body[data-pillar^="insurance"]    { --qz: #b07712; --qz-deep: #8a6011; --qz-soft: rgba(217, 154, 33, 0.14); --acc-tint: #fbf6ec; --acc-line: #efdcc0; }
body[data-pillar^="retirement"]   { --qz: #0f766e; --qz-deep: #0b5e57; --qz-soft: rgba(15, 118, 110, 0.10); --acc-tint: #f4faf7; --acc-line: #d6ece1; }

/* Theme the (globally injected) quiz to the page's pillar */
.quiz-progress span { background: linear-gradient(90deg, var(--qz-deep), var(--qz)); }
.quiz-next { background: var(--qz); }
.quiz-next:hover:not(:disabled) { background: var(--qz-deep); }
.quiz-route-icon { color: var(--qz-deep); background: var(--qz-soft); }
.quiz-route:hover,
.quiz-route:focus-visible { border-color: var(--qz); }
.quiz-route:hover .quiz-route-arrow,
.quiz-route:focus-visible .quiz-route-arrow { color: var(--qz-deep); }
.quiz-option:hover,
.quiz-option:focus-visible { border-color: var(--qz); }
.quiz-option[aria-pressed="true"] { border-color: var(--qz); background: var(--qz-soft); }
.quiz-option[aria-pressed="true"] .quiz-option-marker { border-color: var(--qz); }
.quiz-option[aria-pressed="true"] .quiz-option-marker::after { background: var(--qz); }
.quiz-mini-kicker, .quiz-trust-list span { color: var(--qz-deep); }

/* ============== PROSE ENRICHMENT (guide articles) ============== */
/* Per-pillar accent on body links (was hardcoded green) */
.pillar-page .guide-body a { color: var(--qz-deep); text-decoration: underline; text-underline-offset: 2px; }
.pillar-page .news-body a { color: var(--qz-deep); text-decoration: underline; text-underline-offset: 2px; }
.pillar-page .news-article .byline-compact { margin-bottom: 18px; }

/* Lead / standfirst */
.pillar-page .guide-body .guide-lead {
  font-size: 19px; line-height: 1.7; color: #26334a; font-weight: 600;
  margin: 4px 0 26px; padding: 4px 0 4px 20px; border-left: 3px solid var(--qz);
}

/* Step headings */
.pillar-page .guide-body .prose-step-h {
  display: flex; align-items: flex-start; gap: 14px;
}
.pillar-page .guide-body .prose-step-num {
  flex: 0 0 auto; width: 40px; height: 40px; border-radius: 11px;
  background: var(--qz-soft); color: var(--qz-deep);
  font-weight: 900; font-size: 18px; display: grid; place-items: center;
}
.pillar-page .guide-body .prose-step-txt { flex: 1; }

/* Callouts */
.pillar-page .guide-body .callout {
  display: flex; gap: 14px; align-items: flex-start;
  background: var(--acc-tint); border: 1px solid var(--acc-line);
  border-left: 4px solid var(--qz); border-radius: 14px;
  padding: 18px 20px; margin: 24px 0; color: #2c3a4e; line-height: 1.6;
}
.pillar-page .guide-body .callout strong { color: var(--qz-deep); }
.pillar-page .guide-body .callout-ic {
  flex: 0 0 auto; width: 34px; height: 34px; border-radius: 9px;
  background: var(--qz-soft); color: var(--qz-deep);
  display: grid; place-items: center;
}
.pillar-page .guide-body .callout-ic svg { width: 19px; height: 19px; }
.pillar-page .guide-body .callout-body { margin: 0; }
.pillar-page .guide-body .callout-warn {
  background: #fdf5ea; border-color: #f0dcb8; border-left-color: #d99a21;
}
.pillar-page .guide-body .callout-warn strong { color: #9a6a12; }
.pillar-page .guide-body .callout-warn .callout-ic { background: rgba(217,154,33,.14); color: #9a6a12; }
.pillar-page .guide-body .callout-tip {
  background: #eef6f0; border-color: #cfe5d6; border-left-color: #0f766e;
}
.pillar-page .guide-body .callout-tip strong { color: #14633f; }
.pillar-page .guide-body .callout-tip .callout-ic { background: rgba(15,118,110,.13); color: #14633f; }

/* Premium comparison tables */
.pillar-page .guide-body .prose-table-wrap {
  overflow-x: auto; margin: 26px 0;
  border: 1px solid var(--acc-line); border-radius: 14px;
  -webkit-overflow-scrolling: touch;
}
.pillar-page .guide-body .prose-table {
  width: 100%; min-width: 480px; border-collapse: collapse;
  font-size: 15px; background: #fff; margin: 0;
}
.pillar-page .guide-body .prose-table th {
  background: var(--acc-tint); color: #172949; text-align: left;
  font-weight: 800; padding: 14px 16px; border-bottom: 1px solid var(--acc-line);
  white-space: nowrap;
}
.pillar-page .guide-body .prose-table td {
  padding: 13px 16px; border-bottom: 1px solid #eef2f7; color: #3a4860; vertical-align: top;
}
.pillar-page .guide-body .prose-table tbody tr:last-child td { border-bottom: 0; }
.pillar-page .guide-body .prose-table tbody tr:nth-child(even) td { background: #fafbfd; }
.pillar-page .guide-body .prose-table td:first-child { font-weight: 700; color: #172949; }
.pillar-page .guide-body .prose-table tbody tr:hover td { background: var(--acc-tint); }

/* Accent checklist + numbered list */
.pillar-page .guide-body .prose-list { list-style: none; padding-left: 0; margin: 0 0 20px; }
.pillar-page .guide-body .prose-list li {
  position: relative; padding-left: 32px; margin: 11px 0; line-height: 1.6;
}
.pillar-page .guide-body .prose-list li::before {
  content: "✓"; position: absolute; left: 0; top: 1px;
  width: 21px; height: 21px; border-radius: 50%;
  background: var(--qz-soft); color: var(--qz-deep);
  font-size: 12px; font-weight: 900;
  display: flex; align-items: center; justify-content: center;
}
.pillar-page .guide-body .prose-olist {
  list-style: none; padding-left: 0; counter-reset: po; margin: 0 0 20px;
}
.pillar-page .guide-body .prose-olist li {
  position: relative; padding-left: 38px; margin: 12px 0; line-height: 1.6;
  counter-increment: po;
}
.pillar-page .guide-body .prose-olist li::before {
  content: counter(po); position: absolute; left: 0; top: 0;
  width: 26px; height: 26px; border-radius: 8px;
  background: var(--qz-soft); color: var(--qz-deep);
  font-size: 13px; font-weight: 900;
  display: flex; align-items: center; justify-content: center;
}

/* Mid-article conversion CTA */
.pillar-page .guide-body .inline-cta {
  display: flex; align-items: center; justify-content: space-between;
  gap: 18px; flex-wrap: wrap;
  background: linear-gradient(135deg, var(--qz), var(--qz-deep));
  color: #fff; border-radius: 18px; padding: 24px 28px; margin: 32px 0;
}
.pillar-page .guide-body .inline-cta-kicker {
  display: block; font-size: 12px; font-weight: 700; opacity: .85;
  text-transform: uppercase; letter-spacing: .05em; margin-bottom: 4px;
}
.pillar-page .guide-body .inline-cta strong { font-size: 19px; line-height: 1.3; }
.pillar-page .guide-body .inline-cta-btn {
  flex: 0 0 auto; background: #fff; color: var(--qz-deep);
  padding: 13px 24px; border-radius: 999px; font-weight: 800;
  text-decoration: none; transition: transform .15s ease, box-shadow .15s ease;
}
.pillar-page .guide-body .inline-cta-btn:hover {
  transform: translateY(-2px); box-shadow: 0 12px 26px rgba(0,0,0,.18);
}

/* Heading rhythm + readable measure */
.pillar-page .guide-body h2 { scroll-margin-top: 90px; }
.pillar-page .guide-body p { max-width: 70ch; }
.pillar-page .editorial-main.guide-body p,
.pillar-page .editorial-main.guide-body .guide-lead { max-width: none; }

@media (max-width: 560px) {
  .pillar-page .guide-body .inline-cta { flex-direction: column; align-items: flex-start; }
  .pillar-page .guide-body .guide-lead { font-size: 17px; }
}

/* ============== BESPOKE DATA-VIZ + TOOL CARDS ============== */
.pillar-page .guide-body .prose-figure {
  margin: 28px 0; padding: 20px 22px; background: #fff;
  border: 1px solid var(--acc-line); border-radius: 16px; color: var(--qz);
}
.pillar-page .guide-body .pf-title {
  font-size: 15px; font-weight: 800; color: #172949; margin: 0 0 10px;
}
.pillar-page .guide-body .pf-svg { width: 100%; height: auto; display: block; }
.pillar-page .guide-body .pf-note {
  font-size: 12.5px; color: #6a7686; line-height: 1.55; margin: 12px 0 0;
}
.pillar-page .guide-body .pf-grid { stroke: #eef2f7; stroke-width: 1; }
.pillar-page .guide-body .pf-axis { fill: #7d8a9c; font-size: 12px; }
.pillar-page .guide-body .pf-strong { fill: #172949; font-weight: 800; }
.pillar-page .guide-body .pf-line { stroke: var(--qz); stroke-width: 2.6; fill: none; stroke-linejoin: round; stroke-linecap: round; }
.pillar-page .guide-body .pf-line-2 { stroke: #c0493f; stroke-width: 2.2; fill: none; stroke-dasharray: 5 4; }
.pillar-page .guide-body .pf-mark { stroke: #94a2b4; stroke-width: 1.2; stroke-dasharray: 4 4; }
.pillar-page .guide-body .pf-mark-fill { fill: var(--qz); }
.pillar-page .guide-body .pf-tag { fill: var(--qz-deep); font-size: 12px; font-weight: 800; }
.pillar-page .guide-body .pf-key1 { fill: var(--qz-deep); font-weight: 800; }
.pillar-page .guide-body .pf-key2 { fill: #c0493f; font-weight: 800; }
.pillar-page .guide-body .pf-key-hi { fill: var(--qz-deep); font-weight: 800; }
.pillar-page .guide-body .pf-bar { fill: #c7d2e0; }
.pillar-page .guide-body .pf-bar-hi { fill: var(--qz); }
.pillar-page .guide-body .pf-z-good { fill: rgba(15,118,110,.55); }
.pillar-page .guide-body .pf-z-ok   { fill: rgba(15,118,110,.30); }
.pillar-page .guide-body .pf-z-warn { fill: rgba(217,154,33,.42); }
.pillar-page .guide-body .pf-z-bad  { fill: rgba(182,69,61,.42); }

.pillar-page .guide-body .prose-tool {
  display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
  background: var(--acc-tint); border: 1px solid var(--acc-line);
  border-left: 4px solid var(--qz); border-radius: 16px;
  padding: 20px 22px; margin: 28px 0;
}
.pillar-page .guide-body .prose-tool-ic {
  flex: 0 0 auto; width: 44px; height: 44px; border-radius: 11px;
  background: var(--qz-soft); color: var(--qz-deep); display: grid; place-items: center;
}
.pillar-page .guide-body .prose-tool-body { flex: 1; min-width: 200px; display: grid; gap: 2px; }
.pillar-page .guide-body .prose-tool-kicker {
  font-size: 11px; font-weight: 800; text-transform: uppercase;
  letter-spacing: .06em; color: var(--qz-deep);
}
.pillar-page .guide-body .prose-tool-body strong { font-size: 17px; color: #172949; }
.pillar-page .guide-body .prose-tool-desc { font-size: 14px; color: #5a6573; }
.pillar-page .guide-body .prose-tool-btn {
  flex: 0 0 auto; background: var(--qz); color: #fff; font-weight: 800;
  padding: 12px 22px; border-radius: 999px; text-decoration: none;
  transition: transform .15s ease, box-shadow .15s ease, background-color .15s ease;
}
.pillar-page .guide-body .prose-tool-btn:hover {
  background: var(--qz-deep); transform: translateY(-2px);
  box-shadow: 0 12px 26px rgba(23,41,73,.18);
}
@media (max-width: 560px) {
  .pillar-page .guide-body .prose-figure { padding: 14px; }
  .pillar-page .guide-body .prose-tool-btn { width: 100%; text-align: center; }
}

/* ===== Inline interactive calculators ===== */
.pillar-page .inline-calc{margin:30px 0;border:1px solid var(--acc-line);border-radius:18px;background:linear-gradient(180deg,var(--acc-tint),#fff);overflow:hidden}
.pillar-page .ic-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px;padding:18px 22px;border-bottom:1px solid var(--acc-line)}
.pillar-page .ic-badge{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#fff;background:var(--qz);padding:4px 10px;border-radius:999px}
.pillar-page .ic-head strong{font-size:18px;color:#172949}
.pillar-page .ic-note{font-size:12.5px;color:#6a7686;margin-left:auto}
.pillar-page .ic-basis{font-size:12px;line-height:1.55;color:#6a7686;margin:0;padding:10px 14px 12px;border-top:1px solid var(--acc-line)}
.pillar-page .ic-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:0}
.pillar-page .ic-inputs{padding:20px 22px;display:grid;gap:14px}
.pillar-page .ic-field{display:grid;gap:5px;font-size:13.5px;font-weight:700;color:#41506a}
.pillar-page .ic-field input,.pillar-page .ic-field select{font:inherit;font-weight:600;padding:11px 13px;border:1px solid var(--acc-line);border-radius:10px;background:#fff;color:#172949}
.pillar-page .ic-field input:focus,.pillar-page .ic-field select:focus{outline:2px solid var(--qz);outline-offset:1px;border-color:var(--qz)}
.pillar-page .ic-results{padding:20px 22px;display:grid;gap:12px;align-content:start;background:var(--acc-tint);border-left:1px solid var(--acc-line)}
.pillar-page .ic-out{display:grid;gap:2px;padding:12px 16px;background:#fff;border:1px solid var(--acc-line);border-radius:12px}
.pillar-page .ic-out:first-child{background:linear-gradient(160deg,var(--qz),var(--qz-deep));border:0}
.pillar-page .ic-out:first-child .ic-out-label,.pillar-page .ic-out:first-child .ic-out-sub{color:rgba(255,255,255,.85)}
.pillar-page .ic-out:first-child .ic-out-val{color:#fff}
.pillar-page .ic-out-label{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#6a7686}
.pillar-page .ic-out-val{font-size:24px;font-weight:900;color:#172949;letter-spacing:-.01em}
.pillar-page .ic-out:first-child .ic-out-val{font-size:30px}
.pillar-page .ic-out-sub{font-size:12px;color:#6a7686}
@media (max-width:640px){.pillar-page .ic-grid{grid-template-columns:1fr}.pillar-page .ic-results{border-left:0;border-top:1px solid var(--acc-line)}.pillar-page .ic-note{margin-left:0;width:100%}}

/* ── Inline interactive viz (sliders + live SVG) ──────────────────────── */
.pillar-page .inline-viz{margin:36px 0;border:1px solid var(--acc-line);border-radius:18px;background:linear-gradient(180deg,var(--acc-tint),#fff);overflow:hidden;padding:22px 22px 20px}
.pillar-page .iv-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px;margin-bottom:6px}
.pillar-page .iv-badge{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#fff;background:var(--qz);padding:4px 10px;border-radius:999px}
.pillar-page .iv-head strong{font-size:19px;color:#172949}
.pillar-page .iv-sub{font-size:14px;color:#41506a;margin:0 0 18px;max-width:62ch;line-height:1.55}
.pillar-page .iv-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px 22px;padding:14px 18px;background:#fff;border:1px solid var(--acc-line);border-radius:14px;margin-bottom:18px}
.pillar-page .iv-slider{display:grid;gap:6px;font-size:13px;font-weight:700;color:#41506a}
.pillar-page .iv-slider-head{display:flex;justify-content:space-between;align-items:baseline}
.pillar-page .iv-slider-head strong{color:var(--qz-deep);font-size:14px;font-weight:800}
.pillar-page .iv-slider input[type=range]{width:100%;accent-color:var(--qz);height:6px}
.pillar-page .iv-toggle{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.pillar-page .iv-toggle-label{font-size:13px;font-weight:700;color:#41506a;margin-right:8px}
.pillar-page .iv-toggle-btn{font:inherit;font-weight:700;padding:7px 14px;border:1px solid var(--acc-line);background:#fff;color:#41506a;border-radius:999px;cursor:pointer;font-size:13px}
.pillar-page .iv-toggle-btn.is-active{background:var(--qz);color:#fff;border-color:var(--qz)}
.pillar-page .iv-canvas{background:#fff;border:1px solid var(--acc-line);border-radius:14px;padding:8px;margin-bottom:14px}
.pillar-page .iv-canvas svg{display:block;width:100%;height:auto}
.pillar-page .iv-readouts{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px}
.pillar-page .iv-read{padding:12px 16px;background:#fff;border:1px solid var(--acc-line);border-radius:12px;display:grid;gap:2px}
.pillar-page .iv-read:first-child{background:linear-gradient(160deg,var(--qz),var(--qz-deep));border:0}
.pillar-page .iv-read:first-child .iv-read-label{color:rgba(255,255,255,.85)}
.pillar-page .iv-read:first-child .iv-read-val{color:#fff}
.pillar-page .iv-read-label{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#6a7686}
.pillar-page .iv-read-val{font-size:22px;font-weight:900;color:#172949;letter-spacing:-.01em}
.pillar-page .iv-foot{font-size:12px;color:#6a7686;margin:14px 0 0}
@media (max-width:640px){.pillar-page .iv-controls{grid-template-columns:1fr}}

/* ── Inline decision tool ─────────────────────────────────────────────── */
.pillar-page .inline-decide{margin:36px 0;border:1px solid var(--acc-line);border-radius:18px;background:linear-gradient(180deg,var(--acc-tint),#fff);overflow:hidden}
.pillar-page .dc-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px;padding:18px 22px;border-bottom:1px solid var(--acc-line)}
.pillar-page .dc-badge{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#fff;background:var(--qz);padding:4px 10px;border-radius:999px}
.pillar-page .dc-head strong{font-size:19px;color:#172949}
.pillar-page .dc-sub{font-size:14px;color:#41506a;margin:0;padding:0 22px 14px;max-width:62ch;line-height:1.55}
.pillar-page .dc-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:0;border-top:1px solid var(--acc-line)}
.pillar-page .dc-fields{padding:22px;display:grid;gap:14px;background:#fff}
.pillar-page .dc-field{display:grid;gap:6px;font-size:13.5px;font-weight:700;color:#41506a}
.pillar-page .dc-field input[type=number],.pillar-page .dc-field select{font:inherit;font-weight:600;padding:10px 12px;border:1px solid var(--acc-line);border-radius:10px;background:#fff;color:#172949}
.pillar-page .dc-field input:focus,.pillar-page .dc-field select:focus{outline:2px solid var(--qz);outline-offset:1px;border-color:var(--qz)}
.pillar-page .dc-radio{display:grid;gap:6px;border:0;padding:0;margin:0;font-weight:700;color:#41506a}
.pillar-page .dc-radio legend{font-size:13.5px;font-weight:700;color:#41506a;margin-bottom:2px}
.pillar-page .dc-radio label{display:flex;align-items:center;gap:8px;font-weight:600;color:#172949;font-size:13.5px;padding:7px 11px;border:1px solid var(--acc-line);border-radius:10px;background:#fff;cursor:pointer}
.pillar-page .dc-radio label:has(input:checked){border-color:var(--qz);background:var(--acc-tint)}
.pillar-page .dc-radio input{accent-color:var(--qz)}
.pillar-page .dc-verdict{padding:24px;display:grid;gap:10px;align-content:start;background:linear-gradient(180deg,var(--acc-tint),#fff);border-left:1px solid var(--acc-line)}
.pillar-page .dc-verdict-kicker{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--qz-deep)}
.pillar-page .dc-verdict-head{font-size:22px;font-weight:900;color:#172949;letter-spacing:-.01em;line-height:1.18}
.pillar-page .dc-verdict-body{font-size:14.5px;color:#41506a;line-height:1.6;margin:0}
.pillar-page .dc-verdict-list{list-style:none;padding:0;margin:8px 0 0;display:grid;gap:6px}
.pillar-page .dc-verdict-list li{font-size:13px;color:#41506a;padding-left:20px;position:relative;line-height:1.5}
.pillar-page .dc-verdict-list li::before{content:"";position:absolute;left:6px;top:9px;width:6px;height:6px;border-radius:999px;background:var(--qz)}
.pillar-page .dc-verdict-cta{margin-top:12px;background:var(--qz);color:#fff;border:0;padding:11px 18px;border-radius:10px;font-weight:800;text-decoration:none;text-align:center;display:inline-block;align-self:start}
.pillar-page .dc-verdict-cta:hover{background:var(--qz-deep)}
.pillar-page .dc-verdict[data-tone=positive] .dc-verdict-head{color:var(--qz-deep)}
.pillar-page .dc-verdict[data-tone=caution]{background:linear-gradient(180deg,#fff5ec,#fff)}
.pillar-page .dc-verdict[data-tone=caution] .dc-verdict-kicker{color:#b34a3a}
.pillar-page .dc-verdict[data-tone=caution] .dc-verdict-head{color:#7a2f1f}
.pillar-page .dc-verdict[data-tone=caution] .dc-verdict-cta{background:#b34a3a}
.pillar-page .dc-foot{font-size:11.5px;color:#6a7686;margin-top:6px}
@media (max-width:780px){.pillar-page .dc-grid{grid-template-columns:1fr}.pillar-page .dc-verdict{border-left:0;border-top:1px solid var(--acc-line)}}

/* ── Worksheet / printable checklist ──────────────────────────────────── */
.worksheet{padding:40px 0 60px}
.worksheet .ws-head{margin-bottom:24px}
.worksheet .ws-eyebrow{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--qz-deep,#145c3a)}
.worksheet h1{font-size:34px;line-height:1.15;margin:6px 0 10px;letter-spacing:-.01em;color:#172949}
.worksheet .ws-summary{font-size:17px;color:#41506a;line-height:1.55;max-width:62ch;margin:0 0 16px}
.worksheet .ws-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:14px 18px;background:var(--acc-tint,#e8f2ee);border:1px solid var(--acc-line,#cfe1d8);border-radius:14px}
.worksheet .ws-print{background:var(--qz,#0f766e);color:#fff;border:0;padding:10px 18px;border-radius:10px;font-weight:800;cursor:pointer}
.worksheet .ws-reset{background:#fff;color:#41506a;border:1px solid var(--acc-line);padding:10px 16px;border-radius:10px;font-weight:700;cursor:pointer}
.worksheet .ws-progress{margin-left:auto;font-size:13px;font-weight:700;color:#41506a}
.worksheet .ws-intro{margin:24px 0 28px;padding:18px 20px;background:#fff;border-left:4px solid var(--qz,#0f766e);border-radius:8px;color:#41506a;font-size:15px;line-height:1.65}
.worksheet .ws-section{margin:34px 0 0;padding:22px 24px;background:#fff;border:1px solid var(--acc-line,#cfe1d8);border-radius:14px;page-break-inside:avoid;break-inside:avoid}
.worksheet .ws-section h2{display:flex;align-items:center;gap:12px;font-size:20px;color:#172949;margin:0 0 14px}
.worksheet .ws-section-num{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:999px;background:var(--qz,#0f766e);color:#fff;font-weight:900;font-size:14px}
.worksheet .ws-list{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.worksheet .ws-item{display:flex;align-items:flex-start;gap:12px;padding:10px 12px;background:#fafbfd;border:1px solid #e6ecf3;border-radius:10px;line-height:1.55}
.worksheet .ws-item input[type=checkbox]{flex-shrink:0;width:20px;height:20px;margin:1px 0 0;accent-color:var(--qz,#0f766e);cursor:pointer}
.worksheet .ws-item label{font-size:14.5px;color:#172949;cursor:pointer;flex:1}
.worksheet .ws-item:has(input:checked){background:var(--acc-tint,#e8f2ee);border-color:var(--qz,#0f766e)}
.worksheet .ws-item:has(input:checked) label{text-decoration:line-through;color:#6a7686}
.worksheet .ws-foot{margin-top:28px;font-size:12px;color:#6a7686}
.worksheet[data-pillar="retirement"]{--qz:#0f766e;--qz-deep:#4d3677;--acc-tint:#f1ebfa;--acc-line:#dcccef}
.worksheet[data-pillar="credit-cards"]{--qz:#0f766e;--qz-deep:#0e3066;--acc-tint:#e8effa;--acc-line:#cad8ee}
.worksheet[data-pillar="insurance"]{--qz:#b07712;--qz-deep:#7a510a;--acc-tint:#fbf3e3;--acc-line:#ecd7a9}

/* ── Key takeaways callout ───────────────────────────────────────────── */
.guide-article-header .guide-takeaways{margin:20px 0 0;padding:20px 22px 18px;background:linear-gradient(180deg,var(--acc-tint,#e6f4ec),#fff 85%);border:1px solid var(--acc-line,#cfe1d8);border-radius:14px}
.guide-takeaways .gk-head{display:flex;align-items:baseline;gap:10px;margin-bottom:10px}
.guide-takeaways .gk-eyebrow{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#fff;background:var(--qz,#0f766e);padding:3px 9px;border-radius:999px}
.guide-takeaways .gk-title{font-size:15px;color:var(--qz-deep,#145c3a);font-weight:800}
.guide-takeaways .gk-list{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.guide-takeaways .gk-list li{position:relative;padding:0 0 0 26px;font-size:15px;line-height:1.55;color:#172949;font-weight:600}
.guide-takeaways .gk-list li::before{content:"";position:absolute;left:4px;top:9px;width:10px;height:10px;border-radius:999px;background:var(--qz,#0f766e);box-shadow:0 0 0 4px rgba(15,118,110,.15)}
.guide-takeaways .gk-list li strong{color:var(--qz-deep,#145c3a);font-weight:800}
@media (max-width:640px){.guide-takeaways .gk-list li{font-size:14.5px}}

/* ── Contextual interlinks (xlink) + glossary (xlink-gloss) ───────────── */
.guide-body .xlink{color:var(--qz-deep,#145c3a);font-weight:600;text-decoration:none;border-bottom:1px solid rgba(15,118,110,.25)}
.guide-body .xlink:hover{border-bottom-color:var(--qz,#0f766e);color:var(--qz,#0f766e)}
.guide-body .xlink-gloss{border-bottom-style:dotted;border-bottom-color:rgba(15,23,42,.25);color:#172949}
.guide-body .xlink-gloss:hover{color:var(--qz-deep,#145c3a);border-bottom-color:var(--qz,#0f766e);border-bottom-style:solid}

/* ── Credit cards pillar hub ─────────────────────────────────────────── */
.credit-cards-hub-page .cc-section{padding:54px 0}
.credit-cards-hub-page .cc-section .section-header{margin-bottom:32px;max-width:680px}
.credit-cards-hub-page .cc-section .section-header h2{font-size:30px;line-height:1.15;color:#172949;letter-spacing:-.01em;margin:0 0 8px}
.credit-cards-hub-page .cc-section .section-header p{font-size:16px;color:#41506a;line-height:1.55;margin:0;max-width:62ch}

/* Editor's picks — 6 card grid */
.cc-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:20px}
.cc-card{background:#fff;border:1px solid #e3e9f1;border-radius:18px;padding:22px 24px;display:flex;flex-direction:column;gap:12px;box-shadow:0 1px 3px rgba(15,23,42,.04);transition:all .15s;border-top:5px solid var(--card-color,#172949)}
.cc-card:hover{box-shadow:0 8px 22px rgba(15,23,42,.10);transform:translateY(-2px)}
.cc-card-art{position:relative;border-radius:12px;overflow:hidden;box-shadow:0 6px 18px rgba(15,23,42,.18),0 2px 4px rgba(15,23,42,.08);transform-origin:center;transition:transform .25s ease;background:#f5f7fb;aspect-ratio:320/200}
.cc-card:hover .cc-card-art{transform:translateY(-2px) rotate(-1deg)}
.cc-card-svg{display:block;width:100%;height:auto}
.cc-card-image{display:block;width:100%;height:100%;object-fit:contain}
.cc-card-image-portrait{width:auto;height:100%;max-width:100%;margin:0 auto;object-fit:contain;background:transparent}
.cc-card-rating{position:absolute;top:10px;right:10px;font-size:12px;font-weight:800;color:#b88800;background:#fff;padding:4px 10px;border-radius:999px;box-shadow:0 2px 6px rgba(15,23,42,.18);z-index:2}
.cc-card-name{font-size:19px;font-weight:900;color:#172949;line-height:1.2;margin:0;letter-spacing:-.01em}
.cc-card-tagline{font-size:13.5px;font-weight:700;color:var(--card-color,#172949);margin:0}
.cc-card-specs{list-style:none;padding:0;margin:6px 0 0;display:grid;gap:9px;font-size:13px}
.cc-card-specs li{display:grid;grid-template-columns:auto 1fr;gap:8px;align-items:baseline;padding:8px 0;border-top:1px solid #f0f3f8}
.cc-card-specs li span{color:#6a7686;font-weight:600;min-width:88px;font-size:12px;text-transform:uppercase;letter-spacing:.04em}
.cc-card-specs li strong{color:#172949;font-weight:700;line-height:1.4}
.cc-card .btn-block{margin-top:auto;display:block;text-align:center}
.cc-card-fee{display:block;font-size:11.5px;color:#6a7686;line-height:1.5;text-align:center;margin-top:8px;font-style:italic}

/* By category grid */
.cc-cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
.cc-cat-tile{background:#fff;border:1px solid #e3e9f1;border-radius:14px;padding:20px 22px;display:flex;flex-direction:column;gap:6px;text-decoration:none;transition:all .15s}
.cc-cat-tile:hover{border-color:var(--qz,#0f766e);box-shadow:0 4px 12px rgba(23,79,159,.10);transform:translateY(-1px)}
.cc-cat-tile strong{font-size:17px;color:#172949;font-weight:800}
.cc-cat-tile p{font-size:13.5px;color:#41506a;line-height:1.5;margin:0;flex:1}
.cc-cat-cta{margin-top:6px;color:var(--qz-deep,#0e3066);font-size:13px;font-weight:700}

/* By credit score grid */
.cc-score-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}
.cc-score-tile{background:linear-gradient(180deg,var(--acc-tint,#e8effa),#fff);border:1px solid var(--acc-line,#cad8ee);border-radius:14px;padding:20px;text-decoration:none;text-align:center;transition:all .15s}
.cc-score-tile:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(23,79,159,.10)}
.cc-score-band{display:block;font-family:var(--font-sans);font-size:24px;font-weight:700;color:var(--qz-deep,#0e3066);letter-spacing:-.01em}
.cc-score-label{display:block;font-size:14px;font-weight:800;color:#172949;margin-top:4px;text-transform:uppercase;letter-spacing:.04em}
.cc-score-sub{font-size:12.5px;color:#41506a;line-height:1.5;margin:8px 0 0}

/* Free tools */
.cc-tools-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}
.cc-tool{background:#fff;border:1px solid #e3e9f1;border-radius:14px;padding:24px;text-decoration:none;transition:all .15s;display:flex;flex-direction:column;gap:6px}
.cc-tool:hover{border-color:var(--qz,#0f766e);box-shadow:0 6px 16px rgba(23,79,159,.08)}
.cc-tool strong{font-size:17px;color:var(--qz-deep,#0e3066);font-weight:800}
.cc-tool p{font-size:13.5px;color:#41506a;line-height:1.5;margin:0}

/* Mid-page CTA band */
.cc-cta-band{background:linear-gradient(135deg,var(--qz,#0f766e),var(--qz-deep,#0e3066));color:#fff;text-align:center;padding:56px 0;margin:30px 0}
.cc-cta-band h2{font-size:30px;color:#fff;margin:0 0 12px;letter-spacing:-.01em}
.cc-cta-band p{font-size:16px;color:rgba(255,255,255,.85);max-width:560px;margin:0 auto 24px;line-height:1.55}
.cc-cta-band .btn-primary{background:#fff;color:var(--qz-deep,#0e3066)}
.cc-cta-band .btn-primary:hover{background:#f0f3f8}

.cc-guides-more{text-align:center;margin-top:24px}

@media (max-width:640px){
  .credit-cards-hub-page .cc-section{padding:36px 0}
  .credit-cards-hub-page .cc-section .section-header h2{font-size:24px}
  .cc-cards-grid{grid-template-columns:1fr}
}

/* ── Insurance pillar hub ────────────────────────────────────────────── */
.insurance-hub-page .ins-section{padding:54px 0}
.insurance-hub-page .ins-section .section-header{margin-bottom:32px;max-width:680px}
.insurance-hub-page .ins-section .section-header h2{font-size:30px;line-height:1.15;color:#172949;letter-spacing:-.01em;margin:0 0 8px}
.insurance-hub-page .ins-section .section-header p{font-size:16px;color:#41506a;line-height:1.55;margin:0;max-width:62ch}

/* Coverage-type tiles */
.ins-cov-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
.ins-cov-tile{background:#fff;border:1px solid #e3e9f1;border-radius:14px;padding:22px;display:flex;flex-direction:column;gap:7px;text-decoration:none;transition:all .15s}
.ins-cov-tile:hover{border-color:var(--qz,#b07712);box-shadow:0 6px 16px rgba(176,119,18,.12);transform:translateY(-2px)}
.ins-cov-ic{width:34px;height:34px;color:var(--qz,#b07712)}
.ins-cov-ic svg{width:34px;height:34px}
.ins-cov-tile strong{font-size:17px;color:#172949;font-weight:800}
.ins-cov-tile p{font-size:13px;color:#41506a;line-height:1.5;margin:0;flex:1}
.ins-cov-cta{margin-top:4px;color:var(--qz-deep,#7a510a);font-size:13px;font-weight:700}

/* Featured carrier cards */
.ins-carrier-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:20px}
.ins-carrier{background:#fff;border:1px solid #e3e9f1;border-radius:18px;padding:22px 24px;display:flex;flex-direction:column;gap:14px;box-shadow:0 1px 3px rgba(15,23,42,.04);transition:all .15s;border-top:5px solid var(--carrier-color,#b07712)}
.ins-carrier:hover{box-shadow:0 8px 22px rgba(15,23,42,.10);transform:translateY(-2px)}
.ins-carrier-head{display:grid;grid-template-columns:48px 1fr auto;gap:12px;align-items:center}
.ins-carrier-mark{width:48px;height:48px;display:block}
.ins-carrier-id{display:flex;flex-direction:column;gap:1px;min-width:0}
.ins-carrier-name{font-size:17px;font-weight:900;color:#172949;letter-spacing:-.01em}
.ins-carrier-tag{font-size:12.5px;font-weight:700;color:var(--carrier-color,#b07712)}
.ins-carrier-rating{font-size:13px;font-weight:800;color:#b88800;background:#fff8e1;padding:4px 10px;border-radius:999px;white-space:nowrap}
.ins-carrier-specs{list-style:none;padding:0;margin:0;display:grid;gap:0;font-size:13px}
.ins-carrier-specs li{display:grid;grid-template-columns:118px 1fr;gap:10px;align-items:baseline;padding:8px 0;border-top:1px solid #f0f3f8}
.ins-carrier-specs li span{color:#6a7686;font-weight:600;font-size:11.5px;text-transform:uppercase;letter-spacing:.04em}
.ins-carrier-specs li strong{color:#172949;font-weight:700;line-height:1.4}
.ins-carrier-note{font-size:13px;color:#41506a;line-height:1.55;margin:0}
.ins-carrier .btn-block{margin-top:auto;display:block;text-align:center}

/* Bundle highlight band */
.ins-bundle{background:linear-gradient(135deg,var(--qz,#b07712),var(--qz-deep,#7a510a));margin:14px 0}
.ins-bundle-inner{display:grid;grid-template-columns:1fr auto;gap:40px;align-items:center}
.ins-bundle-kicker{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.7)}
.ins-bundle-copy h2{font-size:30px;color:#fff;margin:8px 0 12px;letter-spacing:-.01em;line-height:1.15}
.ins-bundle-copy p{font-size:15.5px;color:rgba(255,255,255,.88);line-height:1.6;margin:0 0 22px;max-width:60ch}
.ins-bundle-copy .btn-primary{background:#fff;color:var(--qz-deep,#7a510a)}
.ins-bundle-copy .btn-primary:hover{background:#fff5e6}
.ins-bundle-stat{text-align:center;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);border-radius:18px;padding:30px 36px}
.ins-bundle-stat strong{display:block;font-family:var(--font-sans);font-size:48px;font-weight:700;color:#fff;line-height:1}
.ins-bundle-stat span{display:block;font-size:13px;color:rgba(255,255,255,.8);font-weight:600;margin-top:8px;max-width:140px}

/* Free tools */
.ins-tools-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}
.ins-tool{background:#fff;border:1px solid #e3e9f1;border-radius:14px;padding:24px;text-decoration:none;transition:all .15s;display:flex;flex-direction:column;gap:6px}
.ins-tool:hover{border-color:var(--qz,#b07712);box-shadow:0 6px 16px rgba(176,119,18,.08)}
.ins-tool strong{font-size:16.5px;color:var(--qz-deep,#7a510a);font-weight:800}
.ins-tool p{font-size:13.5px;color:#41506a;line-height:1.5;margin:0}
.ins-guides-more{text-align:center;margin-top:24px}

@media (max-width:720px){
  .ins-bundle-inner{grid-template-columns:1fr;gap:24px}
  .ins-bundle-stat{justify-self:start}
}
@media (max-width:640px){
  .insurance-hub-page .ins-section{padding:36px 0}
  .insurance-hub-page .ins-section .section-header h2{font-size:24px}
  .ins-carrier-grid{grid-template-columns:1fr}
}

/* ── Mortgage + Retirement pillar hubs (shared marketplace pattern) ──── */
.mortgage-hub-page .mh-section,.retirement-hub-page .rh-section{padding:54px 0}
.mortgage-hub-page .section-header,.retirement-hub-page .section-header{margin-bottom:32px;max-width:680px}
.mortgage-hub-page .mh-section .section-header h2,.retirement-hub-page .rh-section .section-header h2{font-size:30px;line-height:1.15;color:#172949;letter-spacing:-.01em;margin:0 0 8px}
.mortgage-hub-page .mh-section .section-header p,.retirement-hub-page .rh-section .section-header p{font-size:16px;color:#41506a;line-height:1.55;margin:0;max-width:62ch}

/* Topic / loan-type tiles */
.mh-loan-grid,.rh-topic-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
.mh-loan-tile,.rh-topic-tile{background:#fff;border:1px solid #e3e9f1;border-radius:14px;padding:22px;display:flex;flex-direction:column;gap:7px;text-decoration:none;transition:all .15s}
.mh-loan-tile:hover{border-color:var(--qz,#0f766e);box-shadow:0 6px 16px rgba(15,118,110,.12);transform:translateY(-2px)}
.rh-topic-tile:hover{border-color:var(--qz,#0f766e);box-shadow:0 6px 16px rgba(15,118,110,.12);transform:translateY(-2px)}
.mh-loan-ic,.rh-topic-ic{width:34px;height:34px;color:var(--qz,#0f766e)}
.rh-topic-ic{color:var(--qz,#0f766e)}
.mh-loan-ic svg,.rh-topic-ic svg{width:34px;height:34px}
.mh-loan-tile strong,.rh-topic-tile strong{font-size:17px;color:#172949;font-weight:800}
.mh-loan-tile p,.rh-topic-tile p{font-size:13px;color:#41506a;line-height:1.5;margin:0;flex:1}
.mh-loan-cta{margin-top:4px;color:var(--qz-deep,#145c3a);font-size:13px;font-weight:700}
.rh-topic-cta{margin-top:4px;color:var(--qz-deep,#4d3677);font-size:13px;font-weight:700}

/* Lender / carrier cards */
.mh-lender-grid,.rh-carrier-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:20px}
.mh-lender,.rh-carrier{background:#fff;border:1px solid #e3e9f1;border-radius:18px;padding:22px 24px;display:flex;flex-direction:column;gap:14px;box-shadow:0 1px 3px rgba(15,23,42,.04);transition:all .15s}
.mh-lender{border-top:5px solid var(--qz,#0f766e)}
.rh-carrier{border-top:5px solid var(--qz,#0f766e)}
.mh-lender:hover,.rh-carrier:hover{box-shadow:0 8px 22px rgba(15,23,42,.10);transform:translateY(-2px)}
.mh-lender-head,.rh-carrier-head{display:grid;grid-template-columns:48px 1fr auto;gap:12px;align-items:center}
.mh-lender-mark,.rh-carrier-mark{width:48px;height:48px;display:block}
.mh-lender-id,.rh-carrier-id{display:flex;flex-direction:column;gap:1px;min-width:0}
.mh-lender-name,.rh-carrier-name{font-size:17px;font-weight:900;color:#172949;letter-spacing:-.01em}
.mh-lender-tag,.rh-carrier-tag{font-size:12.5px;font-weight:700;color:var(--qz-deep,#145c3a)}
.rh-carrier-tag{color:var(--qz-deep,#4d3677)}
.mh-lender-rating,.rh-carrier-rating{font-size:13px;font-weight:800;color:#b88800;background:#fff8e1;padding:4px 10px;border-radius:999px;white-space:nowrap}
.mh-lender-specs,.rh-carrier-specs{list-style:none;padding:0;margin:0;display:grid;font-size:13px}
.mh-lender-specs li,.rh-carrier-specs li{display:grid;grid-template-columns:130px 1fr;gap:10px;align-items:baseline;padding:8px 0;border-top:1px solid #f0f3f8}
.mh-lender-specs li span,.rh-carrier-specs li span{color:#6a7686;font-weight:600;font-size:11.5px;text-transform:uppercase;letter-spacing:.04em}
.mh-lender-specs li strong,.rh-carrier-specs li strong{color:#172949;font-weight:700;line-height:1.4}
.rh-carrier-note{font-size:13px;color:#41506a;line-height:1.55;margin:0}
.mh-lender .btn-block,.rh-carrier .btn-block{margin-top:auto;display:block;text-align:center}
.mh-lenders-more,.rh-more{text-align:center;margin-top:24px}

/* Rates section fine print */
.mh-rates-fine{font-size:13px;color:#6a7686;text-align:center;margin-top:16px}
.mh-rates-fine a{color:var(--qz-deep,#145c3a);font-weight:700}

/* Tools */
.mh-tools-grid,.rh-tools-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.mh-tool,.rh-tool{background:#fff;border:1px solid #e3e9f1;border-radius:14px;padding:22px;text-decoration:none;transition:all .15s;display:flex;flex-direction:column;gap:6px}
.mh-tool:hover{border-color:var(--qz,#0f766e);box-shadow:0 6px 16px rgba(15,118,110,.08)}
.rh-tool:hover{border-color:var(--qz,#0f766e);box-shadow:0 6px 16px rgba(15,118,110,.08)}
.mh-tool strong,.rh-tool strong{font-size:16px;font-weight:800}
.mh-tool strong{color:var(--qz-deep,#145c3a)}
.rh-tool strong{color:var(--qz-deep,#4d3677)}
.mh-tool p,.rh-tool p{font-size:13px;color:#41506a;line-height:1.5;margin:0}

/* CTA bands */
.mh-cta-band,.rh-cta-band{text-align:center;padding:56px 0;margin:14px 0;color:#fff}
.mh-cta-band{background:linear-gradient(135deg,var(--qz,#0f766e),var(--qz-deep,#145c3a))}
.rh-cta-band{background:linear-gradient(135deg,var(--qz,#0f766e),var(--qz-deep,#4d3677))}
.mh-cta-band h2,.rh-cta-band h2{font-size:30px;color:#fff;margin:0 0 12px;letter-spacing:-.01em}
.mh-cta-band p,.rh-cta-band p{font-size:16px;color:rgba(255,255,255,.85);max-width:580px;margin:0 auto 24px;line-height:1.55}
.mh-cta-band .btn-primary,.rh-cta-band .btn-primary{background:#fff}
.mh-cta-band .btn-primary{color:var(--qz-deep,#145c3a)}
.rh-cta-band .btn-primary{color:var(--qz-deep,#4d3677)}

@media (max-width:640px){
  .mortgage-hub-page .mh-section,.retirement-hub-page .rh-section{padding:36px 0}
  .mortgage-hub-page .mh-section .section-header h2,.retirement-hub-page .rh-section .section-header h2{font-size:24px}
  .mh-lender-grid,.rh-carrier-grid{grid-template-columns:1fr}
}

/* ── Hub polish: shared across all 4 pillar hubs ─────────────────────── */

/* Soft icon badges — wrap bare tile icons in a tinted rounded square */
.ins-cov-ic,.mh-loan-ic,.rh-topic-ic,.cc-cat-ic{
  display:flex;align-items:center;justify-content:center;
  width:48px;height:48px;border-radius:13px;
  background:var(--acc-tint,#eef2f7);
  box-shadow:inset 0 0 0 1px rgba(15,23,42,.04);
}
.ins-cov-ic svg,.mh-loan-ic svg,.rh-topic-ic svg,.cc-cat-ic svg{width:26px;height:26px}
.mh-loan-tile:hover .mh-loan-ic,.rh-topic-tile:hover .rh-topic-ic,
.ins-cov-tile:hover .ins-cov-ic,.cc-cat-tile:hover .cc-cat-ic{
  background:var(--qz,#0f766e);color:#fff;transition:background .15s
}

/* Alternating section rhythm — tinted band on every other section */
.cc-categories,.ins-carriers,.mh-rates,.rh-tools,
.cc-tools,.ins-tools,.mh-tools{background:#f6f8fb}

/* Featured-card #1 ribbon — floats as a tab above the card's top edge */
.hub-ribbon{
  position:absolute;top:-13px;left:16px;z-index:3;
  background:linear-gradient(135deg,#f5c044,#d99412);color:#3a2a00;
  font-size:10.5px;font-weight:900;letter-spacing:.05em;text-transform:uppercase;
  padding:5px 13px;border-radius:999px;
  box-shadow:0 4px 10px rgba(217,148,18,.4);
  display:inline-flex;align-items:center;gap:5px;
}
.hub-ribbon::before{
  content:"★";font-size:10px;
}
.cc-card,.ins-carrier,.mh-lender,.rh-carrier{position:relative}
/* Lift the #1 featured card slightly so the ribbon-tab reads as a badge */
.cc-card:has(.hub-ribbon),.ins-carrier:has(.hub-ribbon),
.mh-lender:has(.hub-ribbon),.rh-carrier:has(.hub-ribbon){
  box-shadow:0 10px 28px rgba(217,148,18,.16),0 2px 6px rgba(15,23,42,.06);
  border-color:#f0c674;
}

/* How it works strip */
.hub-howit{padding:60px 0;background:#fff;border-top:1px solid #e9eef4}
.hiw-header{text-align:center;margin:0 auto 40px;max-width:560px}
.hiw-kicker{font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--qz,#0f766e)}
.hiw-header h2{font-size:30px;color:#172949;letter-spacing:-.01em;margin:6px 0 0}
.hiw-steps{list-style:none;padding:0;margin:0 auto;max-width:940px;display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.hiw-step{position:relative;text-align:center;padding:0 12px}
.hiw-step-line{position:absolute;top:32px;left:calc(50% + 44px);right:calc(-50% + 44px);height:2px;background:repeating-linear-gradient(90deg,var(--qz,#0f766e) 0 6px,transparent 6px 12px);opacity:.4}
.hiw-step:last-child .hiw-step-line{display:none}
.hiw-step-ic{position:relative;display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:18px;background:linear-gradient(160deg,var(--qz,#0f766e),var(--qz-deep,#145c3a));color:#fff;box-shadow:0 8px 18px rgba(15,23,42,.16)}
.hiw-step-ic svg{width:30px;height:30px}
.hiw-step-num{position:absolute;top:-8px;right:-8px;width:24px;height:24px;border-radius:999px;background:#fff;color:var(--qz-deep,#145c3a);font-size:13px;font-weight:900;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 6px rgba(15,23,42,.18)}
.hiw-step-title{display:block;font-size:18px;font-weight:800;color:#172949;margin:16px 0 6px}
.hiw-step-body{font-size:14px;color:#41506a;line-height:1.6;margin:0}
.hiw-cta{text-align:center;margin-top:36px}
.hiw-cta-fine{display:block;font-size:12.5px;color:#6a7686;margin-top:12px}
@media (max-width:680px){
  .hiw-steps{grid-template-columns:1fr;gap:30px;max-width:340px}
  .hiw-step-line{display:none}
  .hiw-header h2{font-size:24px}
}

/* ── Credit-card review page ─────────────────────────────────────────── */
.card-review{padding:36px 0 20px}
.cr-hero{display:grid;grid-template-columns:340px 1fr;gap:36px;align-items:center;margin-bottom:8px}
.cr-hero-art{border-radius:14px;overflow:hidden;box-shadow:0 14px 34px rgba(15,23,42,.22),0 3px 8px rgba(15,23,42,.1);background:#f5f7fb;aspect-ratio:320/200}
.cr-card-svg{display:block;width:100%;height:auto}
.cr-card-image{display:block;width:100%;height:100%;object-fit:contain}
.cr-eyebrow{font-size:12px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--qz-deep,#0e3066)}
.cr-hero-body h1{font-size:34px;line-height:1.14;letter-spacing:-.015em;color:#172949;margin:8px 0 12px}
.cr-rating-row{display:flex;align-items:baseline;gap:8px;margin-bottom:14px}
.cr-stars{letter-spacing:1px}
.cr-star{color:#d8dee7;font-size:17px}
.cr-star.on{color:#f0b429}
.cr-rating-row strong{font-size:20px;color:#172949;font-weight:900}
.cr-rating-of{font-size:13px;color:#6a7686;font-weight:600}
.cr-hero-tagline{font-size:16px;color:#41506a;line-height:1.6;margin:0 0 18px;max-width:60ch}
.cr-hero-fine{display:block;font-size:12px;color:#6a7686;margin-top:10px}
.cr-hero-fine a{color:var(--qz-deep,#0e3066);font-weight:700}

/* Key-facts strip */
.cr-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:#e3e9f1;border:1px solid #e3e9f1;border-radius:14px;overflow:hidden;margin:24px 0 30px}
.cr-fact{background:#fff;padding:16px 18px;display:flex;flex-direction:column;gap:3px}
.cr-fact-wide{grid-column:1/-1}
.cr-fact span{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#6a7686}
.cr-fact strong{font-size:14.5px;color:#172949;font-weight:700;line-height:1.4}

/* Two-column layout */
.cr-grid{display:grid;grid-template-columns:1fr 300px;gap:36px;align-items:start}
.cr-section{margin:0 0 34px}
.cr-section h2{font-size:23px;color:#172949;letter-spacing:-.01em;margin:0 0 14px}
.cr-section p{font-size:15.5px;color:#41506a;line-height:1.65;margin:0 0 12px}
.cr-section strong{color:#172949}

/* Best for / skip if */
.cr-fit{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.cr-fit-col{padding:18px 20px;border-radius:13px}
.cr-fit-col strong{display:block;font-size:14px;margin-bottom:6px}
.cr-fit-col p{font-size:14px;margin:0;line-height:1.55}
.cr-fit-good{background:#e9f7ef;border:1px solid #b6e3c8}
.cr-fit-good strong{color:#0f766e}
.cr-fit-bad{background:#fdeeec;border:1px solid #f3c9c2}
.cr-fit-bad strong{color:#b34a3a}

/* Fee table */
.cr-fee-table{width:100%;border-collapse:collapse;font-size:14px}
.cr-fee-table th{text-align:left;font-weight:700;color:#6a7686;padding:11px 14px;width:160px;border-bottom:1px solid #eef2f7;vertical-align:top}
.cr-fee-table td{color:#172949;padding:11px 14px;border-bottom:1px solid #eef2f7}
.cr-fee-note{font-size:13px;color:#6a7686;font-style:italic;margin-top:12px}

/* Pros & cons */
.cr-proscons{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.cr-pros,.cr-cons{padding:18px 20px;border-radius:13px;background:#f8fafc;border:1px solid #e9eef4}
.cr-pros strong,.cr-cons strong{display:block;font-size:14px;margin-bottom:8px}
.cr-pros strong{color:#0f766e}
.cr-cons strong{color:#b34a3a}
.cr-proscons ul{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.cr-proscons li{font-size:13.5px;color:#41506a;line-height:1.5;padding-left:20px;position:relative}
.cr-pros li::before{content:"✓";position:absolute;left:0;color:#0f766e;font-weight:900}
.cr-cons li::before{content:"✕";position:absolute;left:0;color:#b34a3a;font-weight:900}

/* Verdict block */
.cr-verdict{background:linear-gradient(180deg,var(--acc-tint,#e8effa),#fff);border:1px solid var(--acc-line,#cad8ee);border-radius:16px;padding:24px 26px}
.cr-verdict h2{margin-top:0}
.cr-verdict .btn{margin-top:8px}

/* Aside */
.cr-aside{position:sticky;top:90px;display:flex;flex-direction:column;gap:18px}
.cr-scorecard{background:#fff;border:1px solid #e3e9f1;border-radius:16px;padding:20px 22px;box-shadow:0 1px 3px rgba(15,23,42,.04)}
.cr-scorecard-title{display:block;font-size:14px;font-weight:800;color:#172949;margin-bottom:14px;text-transform:uppercase;letter-spacing:.04em}
.cr-score-row{display:grid;grid-template-columns:1fr 90px auto;gap:9px;align-items:center;margin-bottom:11px}
.cr-score-label{font-size:13px;color:#41506a;font-weight:600}
.cr-score-track{height:7px;background:#eef2f7;border-radius:999px;overflow:hidden}
.cr-score-fill{display:block;height:100%;background:linear-gradient(90deg,var(--qz,#0f766e),var(--qz-deep,#0e3066));border-radius:999px}
.cr-score-num{font-size:13px;font-weight:800;color:#172949}
.cr-score-overall{display:flex;justify-content:space-between;align-items:baseline;border-top:1px solid #eef2f7;margin-top:6px;padding-top:12px}
.cr-score-overall span{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#6a7686}
.cr-score-overall strong{font-size:18px;color:var(--qz-deep,#0e3066);font-weight:900}
.cr-aside-cta{background:linear-gradient(160deg,var(--qz,#0f766e),var(--qz-deep,#0e3066));border-radius:16px;padding:22px;color:#fff;text-align:center}
.cr-aside-cta strong{display:block;font-size:16px;font-weight:900}
.cr-aside-cta p{font-size:13px;color:rgba(255,255,255,.85);margin:4px 0 14px;line-height:1.45}
.cr-aside-cta .btn-primary{background:#fff;color:var(--qz-deep,#0e3066)}
.cr-aside-fine{display:block;font-size:11px;color:rgba(255,255,255,.7);margin-top:8px}

/* Related cards */
.cr-related{border-top:1px solid #e9eef4;padding-top:30px;margin-top:8px}
.cr-related h2{font-size:21px;color:#172949;margin:0 0 16px}
.cr-related-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}
.cr-related-card{display:flex;flex-direction:column;gap:3px;background:#fff;border:1px solid #e3e9f1;border-radius:13px;padding:18px 20px;text-decoration:none;transition:all .15s}
.cr-related-card:hover{border-color:var(--qz,#0f766e);box-shadow:0 6px 16px rgba(23,79,159,.1);transform:translateY(-2px)}
.cr-related-name{font-size:15px;font-weight:800;color:#172949}
.cr-related-tag{font-size:13px;color:#41506a}
.cr-related-rating{font-size:12.5px;font-weight:800;color:#b88800;margin-top:4px}

@media (max-width:860px){
  .cr-hero{grid-template-columns:1fr;gap:22px}
  .cr-hero-art{max-width:340px}
  .cr-grid{grid-template-columns:1fr}
  .cr-aside{position:static}
  .cr-facts{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:560px){
  .cr-hero-body h1{font-size:26px}
  .cr-fit,.cr-proscons{grid-template-columns:1fr}
}

/* ── Review-page polish panel (lender / carrier reviews) ─────────────── */
.rv-panel{background:#fff;border:1px solid #e3e9f1;border-radius:18px;padding:22px 24px;margin:24px 0 18px;box-shadow:0 1px 3px rgba(15,23,42,.05)}
.rv-panel-head{display:grid;grid-template-columns:56px 1fr auto;gap:16px;align-items:center}
.rv-mark{width:56px;height:56px;display:block}
.rv-panel-id{display:flex;flex-direction:column;gap:2px;min-width:0}
.rv-panel-name{font-size:20px;font-weight:900;color:#172949;letter-spacing:-.01em}
.rv-panel-tag{font-size:13.5px;font-weight:700;color:var(--qz-deep,#145c3a)}
.rv-panel-score{text-align:right;white-space:nowrap}
.rv-panel-score .cr-stars{display:block;letter-spacing:1px}
.rv-panel-num{font-size:13px;color:#6a7686;font-weight:600}
.rv-panel-num strong{font-size:18px;color:#172949;font-weight:900}
.rv-ranks{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px;padding-top:16px;border-top:1px solid #eef2f7}
.rv-rank-badge{font-size:12px;font-weight:700;color:#41506a;background:var(--acc-tint,#eef4f1);border:1px solid var(--acc-line,#d9e6e0);border-radius:999px;padding:5px 12px}
.rv-rank-badge strong{color:var(--qz-deep,#145c3a);font-weight:900}
/* AM Best "under review — negative": must read as a warning, never as a neutral chip. */
.rv-rank-badge.cr-under-review{color:#8a2f2f;background:#fdf2f2;border-color:#f0cfcf}
.rv-rank-badge.cr-under-review strong{color:#9a3b3b}
.rv-facts{margin:0 0 24px}
@media (max-width:560px){
  .rv-panel-head{grid-template-columns:48px 1fr;gap:12px}
  .rv-mark{width:48px;height:48px}
  .rv-panel-score{grid-column:2;text-align:left}
  .rv-panel-score .cr-stars{display:inline-block}
}

/* ── Standalone quiz page (focus mode) ─────────────────────────────── */
body.quiz-page{
  --q-color: var(--qz, #0f766e);
  --q-color-deep: var(--qz-deep, #145c3a);
  --q-color-soft: var(--qz-soft, #e6f4ec);
  margin:0;background:#f4f6f9;color:#172949;font-family:var(--font-sans);
  -webkit-font-smoothing:antialiased;min-height:100vh;
}
body.quiz-page[data-pillar="mortgages"]{--q-color:#0f766e;--q-color-deep:#145c3a;--q-color-soft:#e6f4ec}
body.quiz-page[data-pillar="credit-cards"]{--q-color:#0f766e;--q-color-deep:#0e3066;--q-color-soft:#e8effa}
body.quiz-page[data-pillar="insurance"]{--q-color:#b07712;--q-color-deep:#7a510a;--q-color-soft:#fbf3e3}
body.quiz-page[data-pillar="retirement"]{--q-color:#0f766e;--q-color-deep:#0b5e57;--q-color-soft:#e9f5f3}

#quiz-root{min-height:100vh;display:flex;flex-direction:column}

/* Header */
.q-head{background:#0c1e36;color:#fff;padding:14px 24px;position:sticky;top:0;z-index:10}
.q-head-inner{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px}
.q-back,.q-back-spacer{justify-self:start;width:36px;height:36px}
.q-back{background:transparent;border:1.5px solid rgba(255,255,255,.4);border-radius:999px;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}
@media (hover:hover) and (pointer:fine){.q-back:hover{border-color:#fff;background:rgba(255,255,255,.08)}}
.q-back-ic svg{display:block}
.q-brand{justify-self:center;display:flex;align-items:center;gap:9px;color:#fff;text-decoration:none;font-weight:900;font-size:17px;letter-spacing:-.01em}
.q-brand svg{display:block}
.q-disclosures{justify-self:end;color:#fff;text-decoration:none;font-size:13px;font-weight:600;opacity:.85}
.q-disclosures:hover{opacity:1;text-decoration:underline}

/* Progress bar */
.q-progress-block{text-align:center;margin-bottom:6px}
.q-qcount{font-size:12.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#0f766e;margin-top:26px}
.q-progress-msg{font-size:13.5px;font-weight:600;color:#8b92ad;margin-top:10px}
.q-field-note{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:500;color:#4f8a68;margin-top:8px;text-align:left}
.q-cap-cell{display:block;min-width:0}
.q-cap-field.q-valid{border-color:#22c55e;background:#f2fbf6}
.q-cap-field.q-valid::after{content:'';width:20px;height:20px;margin-right:14px;flex:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2322c55e' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M8 12.5l2.6 2.6L16 9.5'/%3E%3C/svg%3E") no-repeat center/20px}
.q-field-note svg{flex:none;color:#22a55e}
.q-multi:not(.q-multi-capture) input.q-valid{border-color:#22c55e !important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2322c55e' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M8 12.5l2.6 2.6L16 9.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:20px;padding-right:44px}
.q-progress{display:flex;gap:7px;justify-content:center;max-width:440px;width:100%;margin:12px auto 0;padding:0 16px;box-sizing:border-box}
.q-seg{flex:1;height:5px;border-radius:999px;background:#e3eaf2;transition:background .3s ease}
.q-seg.is-done{background:var(--q-color)}
.q-choose{text-align:center;font-size:14px;font-weight:600;color:#5b6b85;margin:-12px 0 18px}
.q-progress-fill{height:100%;background:var(--q-color);border-radius:999px;transition:width .3s ease}

/* Main */
.q-main{flex:1;max-width:760px;margin:0 auto;width:100%;padding:30px 24px 60px;text-align:center}

/* Eyebrow + H1 */
.q-eyebrow{font-size:13px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--q-color-deep);margin:30px 0 12px}
.q-h1{font-family:var(--font-sans);font-size:38px;line-height:1.16;font-weight:800;letter-spacing:-.02em;color:#0c1e36;margin:0 0 26px;max-width:620px;margin-left:auto;margin-right:auto}
.q-h1-aside{display:block;font-size:.5em;font-weight:600;letter-spacing:0;color:#5b6b85;margin-top:8px}
.q-h1 .q-help{margin-left:8px;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:999px;background:var(--q-color);color:#fff;border:0;font-family:var(--font-sans);font-weight:900;font-size:13px;cursor:pointer;vertical-align:middle;transition:transform .15s}
@media (hover:hover) and (pointer:fine){.q-h1 .q-help:hover{transform:scale(1.1)}}
.q-help-panel{background:var(--q-color-soft);border:1px solid var(--q-color);color:var(--q-color-deep);padding:14px 18px;border-radius:12px;font-size:14px;line-height:1.55;margin:0 auto 26px;max-width:560px;text-align:left}

/* Tap tiles — wide (full-width) and pill (inline) variants */
.q-tiles{display:grid;gap:12px;max-width:520px;margin:0 auto}
.q-tiles-wide{grid-template-columns:1fr}
.q-tiles-wide.q-tiles-cols-2{grid-template-columns:1fr 1fr;max-width:580px}
.q-tiles-wide.q-tiles-cols-3{grid-template-columns:1fr 1fr 1fr;max-width:640px}
.q-tiles-wide.q-tiles-cols-4{grid-template-columns:repeat(4,1fr);max-width:680px}
.q-tiles-pill{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;max-width:520px}
.q-tile{position:relative;display:flex;align-items:center;gap:14px;background:#fff;border:1.5px solid #e3e9f1;border-radius:14px;padding:18px 20px;font-family:var(--font-sans);font-weight:800;font-size:16px;color:#172949;cursor:pointer;text-align:left;transition:all .15s;box-shadow:0 1px 2px rgba(15,23,42,.04)}
.q-tile-wide{width:100%}
.q-tile-pill{min-width:110px;justify-content:center;padding:14px 22px;font-size:15px;text-align:center}
@media (hover:hover) and (pointer:fine){.q-tile:hover{border-color:var(--q-color);box-shadow:0 4px 12px rgba(15,118,110,.15);transform:translateY(-1px)}}
.q-tile.is-selected{background:var(--q-color-soft);border-color:var(--q-color);color:var(--q-color-deep)}
.q-tile.is-highlight{border-color:var(--q-color);background:var(--q-color-soft)}
/* Touch screens get no hover look (it stuck to the tile under the finger on the next question); the pick
   shows at once with a check, and the other answers fade while the next question comes in (as on RetireShark). */
.q-tile{-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:background-color .3s ease-out,border-color .3s ease-out,color .3s ease-out,opacity .3s ease-out,filter .3s ease-out,box-shadow .15s,transform .15s}
.q-tile.is-dimmed{opacity:.5;filter:blur(.3px);pointer-events:none}
.q-tile:focus{outline:none}
.q-tile:focus-visible{outline:2px solid var(--q-color);outline-offset:2px}
/* RetireShark parity: the line above the calendar and the notices' reschedule tip and contact. */
.q-cal-note{max-width:560px;margin:4px auto 14px;padding:12px 16px;border-radius:14px;background:var(--q-color-soft);color:var(--q-color-deep);font-size:14px;font-weight:700;line-height:1.45;text-align:center}
.q-notice-tip{margin-top:14px;padding:14px 16px;border:1px solid #e3e9f1;border-radius:12px;background:#f8fafc;text-align:left}
.q-notice-contact a{color:var(--q-color-deep);font-weight:700}
.q-tile-check{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;border:2px solid #cbd5e1;background:#fff;color:#fff;transition:background-color .3s,border-color .3s}
.q-tile-check svg{opacity:0;transition:opacity .3s}
.q-tile.is-selected .q-tile-check{background:var(--q-color);border-color:var(--q-color)}
.q-tile.is-selected .q-tile-check svg{opacity:1}
@media (prefers-reduced-motion: reduce){.q-tile,.q-tile-check,.q-tile-check svg{transition:none}}
.q-tile-ic{color:var(--q-color);display:flex;align-items:center;justify-content:center;width:28px;height:28px;flex-shrink:0}
.q-tile.is-selected .q-tile-ic{color:var(--q-color-deep)}
.q-tile-l{flex:1;display:flex;align-items:center;gap:8px}
.q-tile-pill .q-tile-l{flex:none}
.q-tile-logo{display:flex;align-items:center;justify-content:center;width:46px;height:24px;color:var(--q-color);font-weight:900;font-size:11px;letter-spacing:.02em;flex-shrink:0;text-transform:uppercase}
.q-tile-badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;background:var(--q-color-soft);color:var(--q-color-deep);font-size:11px;font-weight:800;letter-spacing:.02em;margin-left:auto;white-space:nowrap}
.q-tile-pill .q-tile-badge{position:absolute;top:-9px;right:-6px;background:#fff;border:1px solid var(--q-color);box-shadow:0 1px 2px rgba(15,23,42,.06)}

/* Icon-prominent tile variant — large centered icon + label below */
.q-tiles-icon{display:grid;gap:14px;justify-content:center;max-width:680px;margin:0 auto}
.q-tiles-icon.q-tiles-cols-2{grid-template-columns:repeat(2,140px)}
.q-tiles-icon.q-tiles-cols-3{grid-template-columns:repeat(3,140px)}
.q-tiles-icon.q-tiles-cols-4{grid-template-columns:repeat(4,140px)}
.q-tile-icon{flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px 12px;min-height:128px;gap:10px;font-size:14px}
.q-tile-icon .q-tile-ic{width:48px;height:48px;color:var(--q-color)}
.q-tile-icon.is-selected .q-tile-ic{color:var(--q-color-deep)}
.q-tile-icon .q-tile-l{flex:none;justify-content:center;text-align:center;font-weight:800}
@media (max-width:640px){
  .q-tiles-icon.q-tiles-cols-2,.q-tiles-icon.q-tiles-cols-3,.q-tiles-icon.q-tiles-cols-4{grid-template-columns:repeat(2,1fr);max-width:300px}
  .q-tile-icon{min-height:108px;padding:18px 8px;font-size:13px}
  .q-tile-icon .q-tile-ic{width:38px;height:38px}
  .q-tile-icon .q-tile-ic svg{width:38px;height:38px}
}

/* ZIP resolver — "Bradenton, FL" confirmation below the input */
.q-zip-resolved{font-size:14px;color:var(--q-color-deep);font-weight:700;margin:8px 0 0;min-height:20px;text-align:left}

/* Context breadcrumb above eyebrow (e.g., "2023 BMW") */
.q-breadcrumb{font-size:13px;font-weight:700;color:#6a7686;margin-top:22px;letter-spacing:.02em}

/* Progress label */
.q-progress-label{font-size:13px;font-weight:700;color:var(--q-color-deep);text-align:center;margin-top:8px}
.q-progress-label strong{font-weight:800}

/* Subhead between H1 and step content */
.q-subhead{font-size:14.5px;color:#6a7686;font-weight:500;text-align:center;margin:-14px auto 22px;max-width:520px;line-height:1.5}

/* Multi-field heading-style labels (centered h3 above each input) */
.q-multi-heading h3.q-field-heading{font-size:20px;font-weight:800;color:#172949;text-align:center;margin:24px 0 12px;letter-spacing:-.01em}
.q-multi-heading h3.q-field-heading:first-child{margin-top:0}
.q-multi-heading input{margin-bottom:0}

/* Multi / compound multi-field stacks */
.q-multi label.q-label,.q-compound label.q-label{margin-top:18px}
.q-multi label.q-label:first-child,.q-compound label.q-label:first-child{margin-top:0}

/* Capture card (RetireWizard-style): filled boxes, placeholders, inline icons.
   first/last sit side-by-side; full-width fields span the row. */
.q-cap-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;max-width:440px;margin:0 auto}
.q-cap-full{grid-column:1/-1}
.q-cap-field{display:flex;align-items:center;background:#f4f5f7;border:1.5px solid #e6eaf0;border-radius:12px;transition:border-color .15s,background .15s,box-shadow .15s}
.q-cap-field:focus-within{background:#fff;border-color:var(--q-color);box-shadow:0 0 0 3px rgba(15,118,110,.12)}
.q-cap-field input{flex:1;min-width:0;width:100%;border:0;background:transparent;padding:14px 16px;font-family:inherit;font-size:16px;font-weight:600;color:#172949;outline:none;box-sizing:border-box}
.q-cap-field input::placeholder{color:#9aa3b2;font-weight:500}
.q-cap-ico{display:flex;align-items:center;justify-content:center;color:#8b94a6;flex:none}
.q-cap-ico-left{padding:0 12px 0 14px;border-right:1px solid #e1e6ee;align-self:stretch}
.q-cap-has-left input{padding-left:12px}
.q-cap-ico-right{padding:0 14px 0 6px}
.q-cap-has-right input{padding-right:6px}
@media (max-width:359px){.q-cap-grid{grid-template-columns:1fr}}

/* OTP code-entry screen (phone verification) */
/* The wrap is .q-input-wrap (text-align:left); the label alone doesn't re-center
   like the sub/input/actions do, so center it to match the rest of the screen. */
.q-otp-wrap .q-label{text-align:center}
.q-otp-sub{font-size:14px;color:#5b6b85;text-align:center;margin:0 auto 16px;max-width:380px;line-height:1.5}
.q-otp-input{display:block;width:100%;max-width:240px;margin:0 auto;text-align:center;font-size:28px;font-weight:800;letter-spacing:.35em;padding:14px 10px;border:1.5px solid #e3e9f1;border-radius:12px;color:#172949;background:#fff;outline:none;box-sizing:border-box}
.q-otp-input:focus{border-color:var(--q-color);box-shadow:0 0 0 3px rgba(15,118,110,.12)}
.q-otp-actions{display:flex;justify-content:center;gap:20px;margin:14px 0 0}
.q-otp-link{background:none;border:0;color:var(--q-color);font-weight:700;font-size:13.5px;cursor:pointer;padding:4px}
.q-otp-link:hover{text-decoration:underline}
.q-otp-link:disabled{color:#9aa3b2;cursor:default;text-decoration:none}

/* Stacked CTAs (final step bundle vs. single) */
.q-ctas{display:flex;flex-direction:column;align-items:center;gap:12px;margin:24px 0 0}
.q-ctas .q-cta{margin:0}
.q-cta-secondary{background:transparent;color:var(--q-color);border:2px solid var(--q-color);box-shadow:none}
@media (hover:hover) and (pointer:fine){.q-cta-secondary:hover{background:var(--q-color-soft);color:var(--q-color-deep);box-shadow:none}}

/* TCPA on compound step (inline, no bullet block) */
.q-tcpa{font-size:11.5px;color:#6a7686;text-align:center;line-height:1.55;margin:20px auto 0;max-width:520px}
.q-tcpa a{color:var(--q-color-deep);text-decoration:underline}

/* Provider trust strip (carrier social proof) */
.q-provider-strip{margin:32px auto 0;max-width:600px;text-align:center}
.q-provider-label{font-size:13px;color:#6a7686;font-weight:600;margin:0 0 12px}
.q-provider-row{display:flex;flex-wrap:wrap;justify-content:center;gap:12px 22px}
.q-provider-name{font-family:var(--font-sans);font-style:italic;font-size:14px;font-weight:700;color:#6a7686;letter-spacing:.02em}

/* Slider */
.q-slider-wrap{max-width:540px;margin:0 auto;text-align:center}
.q-slider-readout{font-family:var(--font-sans);font-size:30px;font-weight:700;color:#0c1e36;margin-bottom:18px;letter-spacing:-.01em}
.q-slider{position:relative;padding:0 4px;margin:18px 0 8px}
.q-slider input[type=range]{width:100%;height:6px;border-radius:999px;-webkit-appearance:none;appearance:none;outline:none;cursor:pointer}
.q-slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:24px;height:24px;border-radius:999px;background:#fff;border:2px solid var(--q-color);box-shadow:0 2px 8px rgba(15,23,42,.18);cursor:grab}
.q-slider input[type=range]::-moz-range-thumb{width:22px;height:22px;border-radius:999px;background:#fff;border:2px solid var(--q-color);box-shadow:0 2px 8px rgba(15,23,42,.18);cursor:grab}
.q-slider-labels{display:flex;justify-content:space-between;font-size:13px;color:#6a7686;font-weight:700;margin:6px 4px 22px}

/* Inputs */
.q-input-wrap{max-width:440px;margin:0 auto;text-align:left}
.q-label{display:block;font-size:14px;font-weight:700;color:#41506a;margin:14px 0 8px}
.q-input-wrap input[type=text],.q-input-wrap input[type=email],.q-input-wrap input[type=tel],.q-input-wrap input[type=number]{width:100%;padding:16px 18px;font-family:inherit;font-size:17px;font-weight:600;color:#172949;background:#fff;border:1.5px solid #e3e9f1;border-radius:12px;outline:none;transition:border-color .15s;box-sizing:border-box}
.q-input-wrap input:focus{border-color:var(--q-color);box-shadow:0 0 0 3px rgba(15,118,110,.12)}
.q-input-icon{position:relative}
.q-input-prefix{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:#6a7686;pointer-events:none;display:flex}
.q-input-icon input{padding-left:46px !important}

/* Inline phone validation indicator (Twilio Lookup) — right-side twin of .q-input-prefix */
.q-input-suffix{position:absolute;right:16px;top:50%;transform:translateY(-50%);display:flex;align-items:center;pointer-events:none}
.q-phone-wrap .q-input-icon input{padding-right:46px !important}
.q-input-icon.is-valid input{border-color:var(--q-color)}
.q-input-icon.is-valid .q-input-suffix{color:var(--q-color)}
.q-input-icon.is-warn input{border-color:#c98a14}
.q-input-icon.is-warn .q-input-suffix{color:#c98a14}
.q-input-icon.is-invalid input{border-color:#b34a3a}
.q-input-icon.is-invalid .q-input-suffix{color:#b34a3a}
.q-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}
.q-helper{display:block;font-size:12.5px;color:#6a7686;line-height:1.5;margin:8px 0 0;font-style:italic}

/* Date row */
.q-date-row{display:grid;grid-template-columns:1fr 1fr 1.4fr;gap:10px}
.q-date-row input{text-align:center;padding:16px 8px !important;font-size:17px}

/* Date dropdown variant (3 selects) */
.q-date-dropdown-row{display:grid;grid-template-columns:1.2fr 1fr 1.2fr;gap:10px}
.q-date-sel{width:100%;padding:15px 14px;font-family:inherit;font-size:16px;font-weight:600;color:#172949;background:#fff;border:1.5px solid #e3e9f1;border-radius:12px;outline:none;-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none' stroke='%23172949' stroke-width='2'><path d='M1 1.5l5 5 5-5'/></svg>");background-repeat:no-repeat;background-position:right 16px center;padding-right:38px;transition:border-color .15s}
.q-date-sel:focus{border-color:var(--q-color);box-shadow:0 0 0 3px rgba(15,118,110,.12)}

/* CTA */
.q-cta{display:block;width:100%;max-width:300px;margin:24px auto 0;padding:16px 24px;background:var(--q-color);color:#fff;border:0;border-radius:999px;font-family:inherit;font-weight:800;font-size:17px;cursor:pointer;transition:all .15s;box-shadow:0 3px 8px rgba(15,118,110,.25)}
@media (hover:hover) and (pointer:fine){.q-cta:hover{background:var(--q-color-deep);box-shadow:0 5px 16px rgba(15,118,110,.35);transform:translateY(-1px)}}
.q-cta-sm{padding:11px 22px;font-size:14px;max-width:none;margin:14px 0 0;width:auto;display:inline-block}

/* Error */
.q-error{color:#b34a3a;font-size:13.5px;font-weight:700;margin:10px 0 0;text-align:center}

/* Trust badges (compact, every step after 1) */
.q-trust-badges{display:flex;flex-direction:column;align-items:center;gap:10px;margin:34px auto 0;color:#41506a;font-size:13.5px;font-weight:600}
.q-trust-badge{display:flex;align-items:center;gap:9px}
.q-trust-ic{color:#172949;display:inline-flex}

/* Trust stats (step 1 only — social proof) */
.q-trust-stats{margin:42px auto 0;max-width:560px}
.q-trust-stats-title{font-size:15px;font-weight:700;color:#41506a;margin:0 0 18px}
.q-trust-stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;text-align:center}
.q-trust-stat{display:flex;flex-direction:column;gap:4px}
.q-trust-stat strong{font-family:var(--font-sans);font-size:34px;font-weight:700;color:var(--q-color-deep);line-height:1;letter-spacing:-.01em}
.q-trust-stat span{font-size:13px;color:#6a7686;font-weight:600;line-height:1.4}

/* Phone-step consent block */
.q-consent-lede{font-size:13.5px;color:#7b8698;line-height:1.55;margin:18px auto 0;max-width:440px;text-align:left}
.q-consent-pre{font-size:13px;color:#7b8698;max-width:560px;margin:28px auto 12px;text-align:left;line-height:1.55}
.q-consent-list{list-style:disc;padding-left:24px;margin:0 auto;max-width:560px;text-align:left;color:#7b8698;font-size:12.5px;line-height:1.6}
.q-consent-list li{margin:0 0 12px}
.q-consent-list a{color:#5a6b80;text-decoration:underline}

/* Loading state */
.q-loading{padding-top:60px}
/* Full-screen interstitial shown OVER the already-rendered booking screen, so the
   GHL calendar iframe loads behind it (see Quiz.prototype.submit). */
.q-cal-overlay{position:fixed;inset:0;z-index:100;background:#f4f6f9;padding:120px 24px 0;text-align:center}
.q-spinner{width:48px;height:48px;border:3.5px solid #e3eaf2;border-top-color:var(--q-color);border-radius:50%;margin:0 auto 28px;animation:q-spin 1s linear infinite}
@keyframes q-spin{to{transform:rotate(360deg)}}
.q-sub{font-size:16px;color:#41506a;line-height:1.6;max-width:520px;margin:0 auto 26px}

/* Results */
.q-results{text-align:left}
.q-results .q-eyebrow,.q-results .q-h1,.q-results .q-sub{text-align:center}
.q-results-grid{display:grid;gap:14px;max-width:680px;margin:30px auto 0}
.q-result-card{background:#fff;border:1.5px solid #e3e9f1;border-radius:14px;padding:22px;display:grid;grid-template-columns:60px 1fr auto;align-items:center;gap:18px;box-shadow:0 1px 3px rgba(15,23,42,.04);transition:all .15s}
@media (hover:hover) and (pointer:fine){.q-result-card:hover{border-color:var(--q-color);box-shadow:0 6px 18px rgba(15,118,110,.12)}}
.q-result-rank{font-family:var(--font-sans);font-size:26px;font-weight:700;color:var(--q-color);grid-row:span 2}
.q-result-name{font-size:17px;font-weight:900;color:#172949;grid-column:2}
.q-result-rate{font-size:14px;font-weight:800;color:var(--q-color-deep);grid-column:2;margin-top:2px}
.q-result-note{font-size:13px;color:#6a7686;line-height:1.55;margin:8px 0 0;grid-column:2/-1}
.q-result-card .q-cta-sm{grid-column:3;grid-row:1/3;align-self:start}
.q-results-foot{font-size:12.5px;color:#6a7686;text-align:center;margin:32px auto 0;max-width:520px;line-height:1.55;font-style:italic}

/* Footer */
.q-foot{padding:24px 24px 40px;border-top:1px solid #e3e9f1;text-align:center}
.q-foot-links{font-size:12.5px;color:#6a7686}
.q-foot-links a{color:#6a7686;text-decoration:none;margin:0 4px}
.q-foot-links a:hover{color:var(--q-color-deep);text-decoration:underline}
.q-foot-legal{font-size:11.5px;color:#8c98a7;line-height:1.6;max-width:700px;margin:16px auto 0;text-align:center}
.q-foot-legal strong{color:#b9c4d1;font-weight:700}
.q-foot-legal a{color:#a9b6c5;text-decoration:underline;text-underline-offset:2px}
.q-foot-legal a:hover{color:#fff}
.q-foot-legal + .q-foot-legal{margin-top:10px}

/* Mobile */
@media (max-width:640px){
  .q-h1{font-size:28px;margin-bottom:24px}
  .q-slider-readout{font-size:24px}
  .q-trust-stat strong{font-size:26px}
  .q-result-card{grid-template-columns:1fr;gap:8px;padding:18px}
  .q-result-rank{grid-row:auto;font-size:18px}
  .q-result-name,.q-result-rate,.q-result-note{grid-column:1}
  .q-result-card .q-cta-sm{grid-column:1;grid-row:auto;justify-self:start}
  .q-main{padding:20px 16px 40px}
  .q-head{padding:12px 16px}
  .q-disclosures{font-size:12px}
}

/* ── Author profile page ─────────────────────────────────────────────── */
.author-article{padding:36px 0 50px}
.author-hero{text-align:center;padding:24px 0 36px;border-bottom:1px solid #e6ecf3;margin-bottom:36px}
.author-monogram{display:inline-block;color:var(--qz,#0f766e);margin-bottom:14px}
.author-monogram svg{display:block;border-radius:50%}
.author-eyebrow{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--qz-deep,#145c3a);display:block;margin-bottom:6px}
.author-hero h1{font-size:38px;line-height:1.1;letter-spacing:-.01em;margin:0 0 6px;color:#172949}
.author-title{font-size:16px;color:#5a6573;font-weight:700;margin:0 0 22px}
.author-stats{display:flex;justify-content:center;gap:36px;flex-wrap:wrap;margin-top:20px}
.author-stat{display:flex;flex-direction:column;align-items:center;gap:2px}
.author-stat strong{font-size:30px;font-weight:900;color:var(--qz-deep,#145c3a);line-height:1}
.author-stat span{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#6a7686;margin-top:6px}
.author-section{margin:32px 0}
.author-section h2{font-size:22px;color:#172949;margin:0 0 12px}
.author-section p{font-size:15.5px;color:#41506a;line-height:1.65;margin:0 0 10px}
.author-bio{font-size:16px}
.author-creds{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:9px}
.author-creds li{background:var(--qz-soft,#e6f4ec);color:var(--qz-deep,#145c3a);font-size:13px;font-weight:700;padding:7px 14px;border-radius:999px}
.author-expertise-label{font-size:13.5px;color:#5a6573;margin-top:14px}
.author-expertise-label strong{color:#172949}
.author-social{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:14px;font-size:14px}
.author-social a{color:var(--qz-deep,#145c3a);font-weight:700;text-decoration:none}
.author-social a:hover{color:var(--qz,#0f766e);text-decoration:underline}
.author-list{padding:28px 0;background:#f8fafd}
.author-list .section-header{margin-bottom:18px}
.author-list .section-header p{font-size:14px;color:#5a6573;margin:6px 0 0}
@media (max-width:640px){.author-stats{gap:20px}.author-hero h1{font-size:30px}}

/* ── Sources & methodology block ──────────────────────────────────────── */
.guide-sources{padding:36px 0 12px;border-top:1px solid #e6ecf3}
.guide-sources .src-head{margin-bottom:18px;max-width:62ch}
.guide-sources .src-eyebrow{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--qz-deep,#145c3a)}
.guide-sources .src-title{font-size:24px;line-height:1.2;margin:4px 0 8px;color:#172949;letter-spacing:-.01em}
.guide-sources .src-sub{font-size:14px;color:#41506a;line-height:1.55;margin:0 0 14px}
.guide-sources .src-list{counter-reset:src;list-style:none;padding:0;margin:0;display:grid;gap:8px}
.guide-sources .src-list li{counter-increment:src;position:relative;padding:13px 16px 13px 56px;background:#fff;border:1px solid #e6ecf3;border-radius:12px;font-size:14px;line-height:1.5}
.guide-sources .src-list li::before{content:counter(src);position:absolute;left:14px;top:50%;transform:translateY(-50%);width:30px;height:30px;border-radius:999px;background:var(--qz,#0f766e);color:#fff;font-weight:900;font-size:13px;display:flex;align-items:center;justify-content:center}
.guide-sources .src-list a{color:#172949;font-weight:600;text-decoration:none;border-bottom:1px solid #d6dee9}
.guide-sources .src-list a:hover{color:var(--qz-deep,#145c3a);border-bottom-color:var(--qz,#0f766e)}

@media print{
  body{background:#fff}
  .no-print,.site-header,.site-footer,.breadcrumbs,nav,.cta-floating{display:none !important}
  .worksheet{padding:0}
  .worksheet h1{font-size:24px}
  .worksheet .ws-section{box-shadow:none;border:1px solid #ddd;padding:14px 16px;margin:14px 0}
  .worksheet .ws-section h2{font-size:16px}
  .worksheet .ws-item{background:#fff;border:1px solid #eee;padding:6px 8px}
  .worksheet .ws-item label{font-size:12px}
  .worksheet .ws-intro{font-size:12px;padding:10px 12px}
  a{color:inherit;text-decoration:none}
  @page{margin:0.5in}
}


/* ====================================================================
   HOMEPAGE - marketplace-style multi-pillar entry
   ==================================================================== */
.home-page { background: #fafbfc; }

/* Hero */
.hp-hero { position: relative; padding: 56px 0 48px; overflow: hidden; }
.hp-hero-bg {
  position: absolute; inset: 0; z-index: 0;
  background:
    radial-gradient(70% 70% at 5% 0%, rgba(15,118,110,0.10), transparent 60%),
    radial-gradient(70% 70% at 95% 100%, rgba(15,118,110,0.10), transparent 60%),
    linear-gradient(180deg, #fff 0%, #fafbfc 100%);
}
.hp-hero-inner { position: relative; z-index: 1; display: grid; grid-template-columns: 1.35fr 1fr; gap: 56px; align-items: center; }
.hp-eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 12px; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase;
  color: #14633f; background: #e9f5ef; border: 1px solid #cce7d6;
  padding: 6px 11px; border-radius: 99px;
}
.hp-eyebrow-dot { width: 7px; height: 7px; border-radius: 50%; background: #0f766e; box-shadow: 0 0 0 4px rgba(15,118,110,0.18); }
.hp-h1 { margin: 18px 0 14px; font-size: clamp(34px, 5vw, 54px); line-height: 1.05; letter-spacing: -0.02em; color: #0e1a33; font-weight: 900; }
.hp-lede { margin: 0 0 26px; font-size: 17.5px; line-height: 1.55; color: #41506a; max-width: 60ch; }
.hp-hero-ctas { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 22px; }
.hp-hero-side { display: flex; flex-direction: column; gap: 18px; align-items: flex-end; }
.hp-hero-chip {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 9px 14px; border-radius: 99px;
  font-size: 13.5px; font-weight: 800;
  border: 1px solid transparent;
}
.hp-hero-chip svg { width: 16px; height: 16px; }
.hp-hero-quote {
  background: #fff; border: 1px solid #e6ebf2; border-radius: 14px;
  padding: 18px 20px; margin-top: 6px; max-width: 320px;
  box-shadow: 0 10px 30px rgba(23,41,73,0.05);
}
.hp-hero-quote p { margin: 0 0 8px; font-size: 14px; line-height: 1.55; color: #2a3854; font-style: italic; }
.hp-hero-quote span { font-size: 12px; color: #6b7a90; font-weight: 700; }

/* Rates strip */
.hp-rates {
  display: grid; grid-template-columns: repeat(4, 1fr) auto;
  gap: 0; align-items: center; background: #fff;
  border: 1px solid #e6ebf2; border-radius: 14px;
  padding: 4px 6px; margin-top: 6px; overflow: hidden;
}
.hp-rate { padding: 12px 16px; border-right: 1px solid #eef1f6; display: flex; flex-direction: column; gap: 2px; }
.hp-rate span { font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.05em; color: #6b7a90; }
.hp-rate strong { font-size: 18px; font-weight: 900; color: #0e1a33; display: inline-flex; align-items: center; gap: 6px; }
.hp-rate-myga strong { color: #0f766e; }
.hp-trend { font-size: 11px; }
.hp-trend-down { color: #0f766e; }
.hp-trend-up { color: #cf4b4b; }
.hp-rate-cta { padding: 12px 16px; font-size: 13px; font-weight: 800; color: #0f766e; white-space: nowrap; }

/* Sections */
.hp-section { padding: 56px 0; }
.hp-section-alt { background: #fff; }
.hp-section-head { text-align: center; max-width: 720px; margin: 0 auto 36px; }
.hp-section-eyebrow {
  display: inline-block; font-size: 12px; font-weight: 800; letter-spacing: 0.08em;
  text-transform: uppercase; color: #6b7a90; margin-bottom: 10px;
}
.hp-section-head h2 { margin: 0 0 12px; font-size: clamp(26px, 3vw, 36px); font-weight: 900; color: #0e1a33; letter-spacing: -0.01em; }
.hp-section-head p { margin: 0; font-size: 16px; line-height: 1.6; color: #41506a; }

/* Pillar cards */
.hp-pillars { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.hp-pillar {
  background: #fff; border: 1px solid #e6ebf2; border-radius: 18px;
  padding: 24px 22px 22px; position: relative; display: flex; flex-direction: column; gap: 14px;
  text-decoration: none; color: inherit;
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
  box-shadow: 0 6px 20px rgba(23,41,73,0.04);
}
.hp-pillar:hover { transform: translateY(-3px); border-color: var(--qz); box-shadow: 0 14px 32px rgba(23,41,73,0.10); }
.hp-pillar-ribbon {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 11px; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase;
  color: var(--qz-deep); background: var(--acc-tint);
  border: 1px solid var(--acc-line);
  padding: 5px 9px; border-radius: 7px; align-self: flex-start;
}
.hp-pillar-ic, .hp-pillar-ic svg { width: 14px; height: 14px; }
.hp-pillar-head { display: grid; grid-template-columns: 56px 1fr; gap: 12px; align-items: center; }
.hp-pillar-mark { width: 56px; height: 56px; }
.hp-pillar-title { display: block; font-size: 20px; font-weight: 900; color: #0e1a33; letter-spacing: -0.01em; }
.hp-pillar-tag { display: block; font-size: 13px; color: #6b7a90; font-weight: 600; margin-top: 2px; }
.hp-pillar-stat {
  display: flex; align-items: baseline; gap: 8px;
  padding: 12px 0; border-top: 1px solid #eef1f6; border-bottom: 1px solid #eef1f6;
}
.hp-pillar-stat strong { font-size: 26px; font-weight: 900; color: var(--qz-deep); letter-spacing: -0.01em; }
.hp-pillar-stat span { font-size: 12px; font-weight: 700; color: #6b7a90; text-transform: uppercase; letter-spacing: 0.05em; }
.hp-pillar-bullets { list-style: none; margin: 0; padding: 0; display: grid; gap: 7px; flex-grow: 1; }
.hp-pillar-bullets li {
  font-size: 13.5px; color: #41506a; padding-left: 20px; position: relative; line-height: 1.45;
}
.hp-pillar-bullets li::before {
  content: "\2713"; position: absolute; left: 0; top: 0;
  color: var(--qz); font-weight: 900; font-size: 13px;
}
.hp-pillar-cta { display: flex; flex-direction: column; gap: 8px; }
.hp-pillar-cta .btn-primary {
  background: var(--qz); color: #fff; font-weight: 800;
  border-radius: 10px; padding: 12px 16px; text-align: center;
}
.hp-pillar-cta .btn-primary:hover { background: var(--qz-deep); }
.hp-pillar-browse { text-align: center; font-size: 12.5px; font-weight: 700; color: var(--qz-deep); }

/* Tools */
.hp-tools { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.hp-tool {
  background: #fff; border: 1px solid #e6ebf2; border-radius: 14px;
  padding: 22px; display: flex; flex-direction: column; gap: 10px;
  text-decoration: none; color: inherit;
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.hp-tool:hover { transform: translateY(-2px); border-color: var(--qz); box-shadow: 0 10px 26px rgba(23,41,73,0.08); }
.hp-tool-ic {
  display: grid; place-items: center; width: 40px; height: 40px;
  border-radius: 10px; background: var(--acc-tint); color: var(--qz-deep);
}
.hp-tool-ic svg { width: 22px; height: 22px; }
.hp-tool strong { font-size: 16px; color: #0e1a33; font-weight: 800; }
.hp-tool p { margin: 0; font-size: 13.5px; line-height: 1.5; color: #4a5a76; flex-grow: 1; }
.hp-tool-cta { font-size: 13px; font-weight: 800; color: var(--qz-deep); }

/* Quizzes */
.hp-quizzes { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }
.hp-quiz {
  background: #fff; border: 1px solid #e6ebf2; border-radius: 14px;
  padding: 20px 22px; display: grid; grid-template-columns: 44px 1fr auto; gap: 14px; align-items: center;
  text-decoration: none; color: inherit;
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.hp-quiz:hover { transform: translateY(-2px); border-color: var(--qz); box-shadow: 0 10px 26px rgba(23,41,73,0.08); }
.hp-quiz-ic {
  display: grid; place-items: center; width: 44px; height: 44px;
  border-radius: 10px; background: var(--acc-tint); color: var(--qz-deep);
}
.hp-quiz-ic svg { width: 22px; height: 22px; }
.hp-quiz strong { display: block; font-size: 15.5px; font-weight: 800; color: #0e1a33; }
.hp-quiz p { margin: 2px 0 0; font-size: 13px; color: #6b7a90; line-height: 1.5; }
.hp-quiz-arrow {
  font-size: 22px; font-weight: 900; color: var(--qz);
  width: 38px; height: 38px; display: grid; place-items: center;
  border-radius: 50%; background: var(--acc-tint); border: 1px solid var(--acc-line);
}

/* Latest cards */
.hp-latest { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.hp-card {
  background: #fff; border: 1px solid #e6ebf2; border-radius: 14px;
  padding: 22px; display: flex; flex-direction: column; gap: 9px;
  text-decoration: none; color: inherit;
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.hp-card:hover { transform: translateY(-2px); border-color: var(--qz); box-shadow: 0 10px 26px rgba(23,41,73,0.08); }
.hp-card-kicker {
  display: inline-flex; align-items: center; gap: 7px;
  font-size: 11px; font-weight: 800; letter-spacing: 0.04em; text-transform: uppercase;
  color: var(--qz-deep);
}
.hp-card-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--qz); }
.hp-card-title { font-size: 17px; font-weight: 800; color: #0e1a33; line-height: 1.3; }
.hp-card-summary { margin: 0; font-size: 13.5px; line-height: 1.55; color: #4a5a76; flex-grow: 1; }
.hp-card-cta { font-size: 13px; font-weight: 800; color: var(--qz-deep); margin-top: 4px; }

/* Methodology strip */
.hp-method { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; }
.hp-method-copy h2 { margin: 8px 0 14px; font-size: clamp(24px, 2.8vw, 32px); font-weight: 900; color: #0e1a33; }
.hp-method-copy p { font-size: 15.5px; line-height: 1.6; color: #41506a; margin: 0 0 14px; }
.hp-method-copy .btn-ghost { margin-right: 8px; }
.hp-method-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.hp-method-list li {
  background: #fff; border: 1px solid #e6ebf2; border-radius: 12px;
  padding: 14px 18px; font-size: 14.5px; color: #41506a; line-height: 1.55;
}
.hp-method-list strong { color: #0e1a33; font-weight: 800; }

/* Responsive */
@media (max-width: 1024px) {
  .hp-hero-inner { grid-template-columns: 1fr; gap: 32px; }
  .hp-hero-side { align-items: flex-start; flex-direction: row; flex-wrap: wrap; gap: 10px; }
  .hp-hero-quote { max-width: 100%; }
  .hp-pillars { grid-template-columns: repeat(2, 1fr); }
  .hp-tools, .hp-latest { grid-template-columns: repeat(2, 1fr); }
  .hp-method { grid-template-columns: 1fr; gap: 28px; }
}
@media (max-width: 720px) {
  .hp-hero { padding: 36px 0 32px; }
  .hp-rates { grid-template-columns: repeat(2, 1fr); }
  .hp-rates .hp-rate-cta { grid-column: 1 / -1; text-align: center; }
  .hp-pillars, .hp-tools, .hp-quizzes, .hp-latest { grid-template-columns: 1fr; }
}


/* Homepage v2 — glue between old hero style and new sections */
.hero-redesigned .hero-ctas {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin: 0 0 22px;
}

/* Right-side preview card (replaces the old lead-capture for now) */
.hero-redesigned .hero-preview {
  flex-direction: column;
  align-items: stretch;
  gap: 16px;
  min-height: auto;
}
.hero-preview-card {
  background: #fff;
  border: 1px solid rgba(23,41,73,0.08);
  border-radius: 14px;
  padding: 18px;
  box-shadow:
    0 1px 0 rgba(23,41,73,0.06),
    0 12px 24px rgba(23,41,73,0.06),
    0 36px 72px rgba(23,41,73,0.10);
}
.hero-preview-eyebrow {
  display: block;
  font-size: 11.5px;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #6b7a90;
  margin-bottom: 10px;
}
.hero-preview-card .hp-rates {
  margin: 0;
  box-shadow: none;
}
.hero-preview-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 14px;
}
.hero-preview-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 12px;
  border-radius: 99px;
  font-size: 12.5px;
  font-weight: 800;
  border: 1px solid transparent;
  text-decoration: none;
}
.hero-preview-chip svg { width: 14px; height: 14px; }
.hero-preview-chip:hover { transform: translateY(-1px); }
.hero-preview-quote {
  background: #fff;
  border: 1px solid #e6ebf2;
  border-radius: 14px;
  padding: 16px 18px;
  box-shadow: 0 6px 18px rgba(23,41,73,0.05);
}
.hero-preview-quote p {
  margin: 0 0 8px;
  font-size: 13.5px;
  line-height: 1.55;
  color: #2a3854;
  font-style: italic;
}
.hero-preview-quote span {
  font-size: 12px;
  color: #6b7a90;
  font-weight: 700;
}

/* Tools-section retirement variant (purple stripe) */
.tool-ret::before { background: #0f766e; }
.tool-ret .tool-tag { color: #46306e; background: #e6f5f3; }

/* Tools section heading uses the new hp-section-head pattern */
.tools-section .hp-section-head { margin-bottom: 32px; }
.tools-section { padding: 56px 0; }
.tools-section .tools-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  max-width: 1100px;
  margin: 0 auto;
}

/* Methodology card icon + actions */
.methodology-card-ic {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 10px;
  background: #e9f5ef;
  color: #14633f;
  margin-bottom: 4px;
}
.methodology-card-ic svg { width: 20px; height: 20px; }
.methodology-card h3 {
  font-size: 16px;
  font-weight: 800;
  color: #0e1a33;
  margin: 0;
  letter-spacing: -0.005em;
}
.methodology-card p {
  font-size: 13.5px;
  line-height: 1.5;
  color: #41506a;
  margin: 0;
}
.hp-method-actions {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin-top: 36px;
  flex-wrap: wrap;
}

/* Responsive */
@media (max-width: 960px) {
  .tools-section .tools-grid { grid-template-columns: repeat(2, 1fr); }
  .methodology-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .tools-section .tools-grid { grid-template-columns: 1fr; }
  .methodology-grid { grid-template-columns: 1fr; }
  .hero-redesigned .hero-inner { grid-template-columns: 1fr; }
}


/* Spread-out section breaks */
.hp-break {
  padding: clamp(28px, 4vw, 44px) 0;
  background: #fff;
}
.hp-break-partners {
  background: linear-gradient(180deg, #fafcff 0%, #fff 100%);
  padding-top: clamp(24px, 3vw, 36px);
  padding-bottom: clamp(28px, 4vw, 44px);
  border-bottom: 1px solid rgba(23,41,73,0.05);
}
.hp-break-partners .trust-brands {
  padding-top: 0;
  border-top: 0;
  max-width: 1180px;
  margin: 0 auto;
  padding-left: clamp(18px, 4vw, 34px);
  padding-right: clamp(18px, 4vw, 34px);
}
.hp-break-reviews {
  background: linear-gradient(180deg, #fff 0%, #fafcff 100%);
  padding-top: clamp(48px, 6vw, 72px);
  padding-bottom: clamp(48px, 6vw, 72px);
  border-top: 1px solid rgba(23,41,73,0.05);
  border-bottom: 1px solid rgba(23,41,73,0.05);
}
.hp-break-head {
  text-align: center;
  max-width: 720px;
  margin: 0 auto 28px;
  padding: 0 clamp(18px, 4vw, 34px);
}
.hp-break-head h2 {
  margin: 8px 0 0;
  font-size: clamp(24px, 2.8vw, 32px);
  font-weight: 900;
  color: #0e1a33;
  letter-spacing: -0.01em;
}


/* Hero side panel — photo cluster ("people who use Atlas Money") */
.hero-redesigned .hero-people {
  position: relative;
  min-height: 520px;
  display: block;
}
.hero-photo {
  position: absolute;
  margin: 0;
  border-radius: 18px;
  overflow: hidden;
  background: #eef1f6;
  border: 4px solid #fff;
  box-shadow:
    0 1px 0 rgba(23,41,73,0.06),
    0 14px 28px rgba(23,41,73,0.10),
    0 36px 64px rgba(23,41,73,0.12);
  transition: transform 600ms ease;
}
.hero-photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
/* Tilt + position the three portraits in a staggered cluster */
.hero-photo-1 {
  top: 0;
  right: 6%;
  width: clamp(180px, 22vw, 280px);
  aspect-ratio: 4 / 5;
  transform: rotate(-2deg);
  z-index: 3;
}
.hero-photo-2 {
  top: 18%;
  right: 38%;
  width: clamp(150px, 18vw, 230px);
  aspect-ratio: 4 / 5;
  transform: rotate(3deg);
  z-index: 2;
}
.hero-photo-3 {
  top: 52%;
  right: 18%;
  width: clamp(160px, 20vw, 250px);
  aspect-ratio: 4 / 5;
  transform: rotate(-1deg);
  z-index: 4;
}
.hero-photo:hover { transform: rotate(0deg) translateY(-3px); }

/* Caption badge floats on a photo */
.hero-photo-badge {
  position: absolute;
  bottom: 12px;
  left: 12px;
  right: 12px;
  background: rgba(255,255,255,0.96);
  border-radius: 10px;
  padding: 8px 10px;
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 11.5px;
  line-height: 1.2;
  color: #16202f;
  box-shadow: 0 4px 12px rgba(23,41,73,0.10);
  backdrop-filter: blur(6px);
}
.hero-photo-badge strong {
  color: #f0b429;
  font-size: 12px;
  letter-spacing: 0.5px;
}
.hero-photo-badge span {
  font-weight: 700;
  color: #2a3854;
}

/* Floating stat chip overlay */
.hero-people-stat {
  position: absolute;
  bottom: 4%;
  left: 4%;
  background: #fff;
  border-radius: 14px;
  padding: 14px 18px;
  box-shadow:
    0 1px 0 rgba(23,41,73,0.06),
    0 14px 32px rgba(23,41,73,0.14);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  z-index: 5;
}
.hero-people-stat strong {
  font-size: 28px;
  font-weight: 900;
  color: #14633f;
  letter-spacing: -0.02em;
  line-height: 1;
}
.hero-people-stars {
  font-size: 12px;
  letter-spacing: 1px;
  color: #f0b429;
  margin-top: 4px;
}
.hero-people-stat-label {
  font-size: 11px;
  font-weight: 700;
  color: #6b7a90;
  margin-top: 4px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

/* Optional: subtle green ring around the photo cluster to tie to brand */
.hero-people::before {
  content: "";
  position: absolute;
  top: 8%;
  right: 12%;
  width: 70%;
  height: 80%;
  border-radius: 50% 38% 60% 42% / 48% 52% 48% 52%;
  background: radial-gradient(closest-side, rgba(15,118,110,0.10), transparent 70%);
  filter: blur(8px);
  z-index: 1;
}

/* Responsive: collapse to a horizontal row on small screens */
@media (max-width: 960px) {
  .hero-redesigned .hero-people {
    position: relative;
    min-height: auto;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    margin-top: 20px;
  }
  .hero-photo {
    position: relative;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    width: 100% !important;
    transform: none !important;
  }
  .hero-people-stat {
    position: relative;
    bottom: auto;
    left: auto;
    grid-column: 1 / -1;
    flex-direction: row;
    align-items: center;
    gap: 14px;
    justify-content: center;
  }
  .hero-people-stat-label { margin-top: 0; }
  .hero-people::before { display: none; }
}
@media (max-width: 540px) {
  .hero-redesigned .hero-people { grid-template-columns: 1fr 1fr; }
  .hero-photo-3 { display: none; }
}


/* Homepage intent picker (under the How-it-works steps) */
.hp-intent {
  max-width: 920px;
  margin: 32px auto 0;
  background: #fff;
  border: 1px solid #e6ebf2;
  border-radius: 18px;
  padding: 28px clamp(20px, 4vw, 32px);
  box-shadow: 0 10px 30px rgba(23,41,73,0.06);
  text-align: center;
}
.hp-intent-head { margin-bottom: 18px; }
.hp-intent-eyebrow {
  display: block;
  font-size: 11.5px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #6b7a90;
  margin-bottom: 6px;
}
.hp-intent-q {
  display: block;
  font-size: clamp(20px, 2.2vw, 24px);
  font-weight: 900;
  color: #0e1a33;
  letter-spacing: -0.01em;
}
.hp-intent-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin: 0 0 14px;
}
.hp-intent-tile {
  background: #fff;
  border: 1.5px solid #e6ebf2;
  border-radius: 14px;
  padding: 18px 14px 16px;
  text-decoration: none;
  color: inherit;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  text-align: left;
  transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.hp-intent-tile:hover {
  transform: translateY(-2px);
  border-color: var(--qz);
  box-shadow: 0 10px 24px rgba(23,41,73,0.08);
}
.hp-intent-ic {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: var(--acc-tint);
  color: var(--qz-deep);
  margin-bottom: 4px;
}
.hp-intent-ic svg { width: 20px; height: 20px; }
.hp-intent-tile strong {
  font-size: 15px;
  font-weight: 800;
  color: #0e1a33;
  letter-spacing: -0.005em;
}
.hp-intent-tag {
  font-size: 12px;
  color: #6b7a90;
  line-height: 1.4;
  margin-bottom: 6px;
}
.hp-intent-arrow {
  font-size: 12.5px;
  font-weight: 800;
  color: var(--qz-deep);
  margin-top: auto;
}

/* Responsive */
@media (max-width: 720px) {
  .hp-intent-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 420px) {
  .hp-intent-grid { grid-template-columns: 1fr; }
}

/* News-article primary-source citation block */
.pillar-page .news-sources {
  margin: 28px 0 12px;
  padding: 18px 22px;
  background: #f9fbfc;
  border: 1px solid #e6ebf2;
  border-left: 3px solid #0f766e;
  border-radius: 10px;
}
.pillar-page .news-sources strong {
  display: block;
  font-size: 11.5px;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #14633f;
  margin-bottom: 10px;
}
.pillar-page .news-sources ol {
  margin: 0;
  padding-left: 22px;
  color: #41506a;
  font-size: 13.5px;
  line-height: 1.6;
}
.pillar-page .news-sources li { margin-bottom: 4px; }
.pillar-page .news-sources a {
  color: #14633f;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.pillar-page .news-sources a:hover { color: #0a5a3a; }

/* Guide hero SVG inside card-thumb slot */
.pillar-page .hp-card-svg,
.pillar-page .news-card-thumb { background: var(--acc-tint, #f4faf7); }
.pillar-page .hp-card-svg svg {
  display: block;
  width: 100%;
  height: 100%;
}

/* Homepage methodology cards (renamed to escape the legacy
   .pillar-page .methodology-card dark-theme override) */
.hp-method-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 20px;
  max-width: 1200px;
  margin: 0 auto;
}
.hp-method-card {
  background: #fff;
  border: 1px solid #e6ebf2;
  border-radius: 16px;
  padding: 24px 22px 22px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  box-shadow: 0 6px 18px rgba(23,41,73,0.05);
  position: relative;
  overflow: hidden;
  transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
  text-align: left;
}
.hp-method-card::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: #0f766e;
}
.hp-method-card:hover {
  transform: translateY(-2px);
  border-color: #cce7d6;
  box-shadow: 0 14px 30px rgba(23,41,73,0.08);
}
.hp-method-card-ic {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background: #e9f5ef;
  color: #14633f;
}
.hp-method-card-ic svg { width: 22px; height: 22px; }
.hp-method-card h3 {
  font-size: 16px;
  font-weight: 800;
  color: #0e1a33;
  margin: 0;
  letter-spacing: -0.005em;
  line-height: 1.3;
}
.hp-method-card p {
  font-size: 13.5px;
  line-height: 1.55;
  color: #41506a;
  margin: 0;
  flex: 1;
}
@media (max-width: 960px) {
  .hp-method-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 540px) {
  .hp-method-grid { grid-template-columns: 1fr; }
}

/* Cycling-partners strip — grayscale logos with text fallback */
.name-strip .name-logo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 40px;
  min-width: 110px;
  flex: 0 0 auto;
}
.name-strip .name-logo img {
  max-height: 36px;
  max-width: 140px;
  width: auto;
  height: auto;
  object-fit: contain;
  filter: grayscale(1) brightness(0.55) contrast(1.05);
  opacity: 0.75;
  transition: filter 200ms ease, opacity 200ms ease;
}
.name-strip:hover .name-logo img { opacity: 0.9; }
.name-strip .name-logo:hover img {
  filter: grayscale(0) brightness(1) contrast(1);
  opacity: 1;
}
.name-strip .name-logo-fallback {
  display: none;
  color: #9099a6;
  font-size: 15px;
  font-weight: 900;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

/* Partner logo lockup — favicon mark + grey wordmark (NerdWallet-style) */
.name-strip .name-logo {
  height: 36px;
  gap: 9px;
  padding: 0 4px;
}
.name-strip .name-logo-mark {
  width: 22px;
  height: 22px;
  object-fit: contain;
  filter: grayscale(1) brightness(0.55) contrast(1.05);
  opacity: 0.7;
  transition: filter 200ms ease, opacity 200ms ease;
}
.name-strip .name-logo-word {
  color: #9099a6;
  font-size: 14.5px;
  font-weight: 900;
  letter-spacing: 0.01em;
  white-space: nowrap;
  transition: color 200ms ease;
}
.name-strip .name-logo:hover .name-logo-mark {
  filter: grayscale(0) brightness(1);
  opacity: 1;
}
.name-strip .name-logo:hover .name-logo-word { color: #2a3854; }

/* Methodology section — desktop two-column layout */
.hp-method-split {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
  gap: clamp(28px, 4vw, 56px);
  max-width: 1200px;
  margin: 0 auto;
  align-items: center;
}
.methodology-analyst {
  margin: 0;
  border-radius: 18px;
  overflow: hidden;
  position: relative;
  background: #eef1f6;
  aspect-ratio: 4 / 5;
  box-shadow:
    0 1px 0 rgba(23,41,73,0.06),
    0 14px 32px rgba(23,41,73,0.10);
}
.methodology-analyst img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.methodology-analyst-cap {
  position: absolute;
  bottom: 14px;
  left: 14px;
  right: 14px;
  background: rgba(255,255,255,0.95);
  border-radius: 10px;
  padding: 10px 14px;
  display: flex;
  align-items: center;
  gap: 9px;
  font-size: 12.5px;
  font-weight: 800;
  color: #14633f;
  letter-spacing: 0.01em;
  backdrop-filter: blur(8px);
  box-shadow: 0 6px 18px rgba(23,41,73,0.08);
}
.methodology-analyst-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #0f766e;
  box-shadow: 0 0 0 4px rgba(15,118,110,0.18);
}
.hp-method-grid-2col {
  grid-template-columns: repeat(2, 1fr);
}
@media (max-width: 960px) {
  .hp-method-split { grid-template-columns: 1fr; }
  .methodology-analyst { aspect-ratio: 16 / 9; max-width: 100%; }
  .hp-method-grid-2col { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 540px) {
  .hp-method-grid-2col { grid-template-columns: 1fr; }
}

/* Quiz tile with a descriptive subtitle */
.q-tile-l-stacked { flex-direction: column; align-items: flex-start; gap: 2px; }
.q-tile-l-main { font-weight: 800; }
.q-tile-sub {
  font-size: 12.5px;
  font-weight: 600;
  color: #6a7686;
  line-height: 1.4;
}
.q-tile.is-selected .q-tile-sub { color: var(--q-color-deep); opacity: 0.85; }


/* ====================================================================
   ANNUITY ADVISOR DIRECTORY + PROFILES
   ==================================================================== */
.adv-sample-banner {
  background: #fff6e6; border-bottom: 1px solid #f0dcb8;
  color: #8a5a12; font-size: 13.5px; text-align: center; padding: 10px 18px;
}
.adv-sample-banner strong { color: #6f470c; }

.adv-avatar { width: 84px; height: 84px; border-radius: 18px; display: block; flex: 0 0 auto; }
.adv-avatar-sm { width: 56px; height: 56px; border-radius: 14px; }
.adv-stars { letter-spacing: 1px; white-space: nowrap; }
.adv-star { color: #d8dee7; font-size: 16px; }
.adv-star.on { color: #f0b429; }
.adv-rating-row { display: flex; align-items: center; gap: 8px; margin-top: 6px; font-size: 14px; }
.adv-rating-row strong { color: #172949; font-weight: 900; font-size: 16px; }
.adv-rating-count { color: #6a7686; font-size: 13px; }

.adv-hub-hero { padding: 48px 0 8px; }
.adv-hub-eyebrow { display: inline-block; font-size: 12px; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; color: #0f766e; margin-bottom: 10px; }
.adv-hub-hero h1 { font-size: clamp(28px, 4vw, 42px); font-weight: 900; color: #0e1a33; margin: 0 0 12px; letter-spacing: -0.02em; }
.adv-hub-hero p { font-size: 16.5px; line-height: 1.6; color: #41506a; max-width: 62ch; }
.adv-hub-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 20px; }

.adv-directory { padding: 32px 0 48px; }
.adv-filters { display: flex; flex-wrap: wrap; gap: 16px; align-items: flex-end; margin-bottom: 28px; padding: 18px 20px; background: #f7f9fc; border: 1px solid #e6ebf2; border-radius: 14px; }
.adv-filters label { display: flex; flex-direction: column; gap: 5px; font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.05em; color: #6a7686; }
.adv-filters select { font-family: inherit; font-size: 14px; font-weight: 600; color: #172949; padding: 9px 12px; border: 1px solid #d6deea; border-radius: 9px; background: #fff; min-width: 150px; }
.adv-filter-count { margin-left: auto; font-size: 13px; font-weight: 700; color: #6a7686; align-self: center; }

.adv-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.adv-card {
  position: relative; background: #fff; border: 1px solid #e6ebf2; border-radius: 16px;
  padding: 22px; display: flex; flex-direction: column; gap: 12px; text-decoration: none; color: inherit;
  box-shadow: 0 6px 18px rgba(23,41,73,0.04); transition: transform .15s, box-shadow .15s, border-color .15s;
}
.adv-card:hover { transform: translateY(-3px); border-color: #cfe6e2; box-shadow: 0 14px 30px rgba(23,41,73,0.10); }
.adv-card-featured { border-color: #5ec5bf; box-shadow: 0 10px 26px rgba(15,118,110,0.12); }
.adv-card-ribbon {
  position: absolute; top: -11px; left: 16px; background: linear-gradient(135deg, #5ec5bf, #0f766e);
  color: #fff; font-size: 10.5px; font-weight: 900; letter-spacing: 0.05em; text-transform: uppercase;
  padding: 5px 11px; border-radius: 7px;
}
.adv-card-head { display: flex; gap: 13px; align-items: center; }
.adv-card-name { display: block; font-size: 16.5px; font-weight: 800; color: #0e1a33; }
.adv-card-title { display: block; font-size: 13px; color: #6a7686; margin-top: 1px; }
.adv-card-creds { display: block; font-size: 11.5px; font-weight: 700; color: #0f766e; margin-top: 3px; letter-spacing: 0.02em; }
.adv-card-specs { display: flex; flex-wrap: wrap; gap: 6px; }
.adv-card-meta { display: flex; gap: 8px; font-size: 12.5px; color: #6a7686; font-weight: 600; }
.adv-card-cta { font-size: 13px; font-weight: 800; color: #0b5e57; margin-top: auto; }

.adv-chips { display: flex; flex-wrap: wrap; gap: 7px; margin: 4px 0 8px; }
.adv-chip { font-size: 12px; font-weight: 700; color: #41506a; background: #eef1f6; border: 1px solid #e1e7f0; border-radius: 99px; padding: 4px 11px; }
.adv-chip-spec { color: #0b5e57; background: #e6f5f3; border-color: #cfe6e2; }

.adv-empty { text-align: center; color: #6a7686; padding: 30px 0; }
.adv-link-btn { background: none; border: none; color: #0f766e; font-weight: 800; cursor: pointer; text-decoration: underline; font-size: inherit; }

.adv-profile { padding: 30px 0 48px; }
.adv-head { display: grid; grid-template-columns: auto 1fr auto; gap: 20px; align-items: center; padding-bottom: 22px; border-bottom: 1px solid #eef1f6; }
.adv-name { font-size: clamp(24px, 3vw, 32px); font-weight: 900; color: #0e1a33; margin: 0; letter-spacing: -0.01em; }
.adv-creds { font-size: 14px; font-weight: 800; color: #0f766e; }
.adv-cred { display: inline-block; background: #e6f5f3; border: 1px solid #cfe6e2; color: #0b5e57; font-size: 12px; font-weight: 800; padding: 2px 9px; border-radius: 7px; margin-left: 4px; }
.adv-title { font-size: 15px; color: #41506a; margin: 6px 0 0; font-weight: 600; }

.adv-facts { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: #e3e9f1; border: 1px solid #e3e9f1; border-radius: 14px; overflow: hidden; margin: 24px 0 28px; }
.adv-fact { background: #fff; padding: 16px 18px; display: flex; flex-direction: column; gap: 3px; }
.adv-fact span { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: #6a7686; }
.adv-fact strong { font-size: 14.5px; color: #172949; font-weight: 800; line-height: 1.3; }

.adv-profile h2 { font-size: 20px; color: #0e1a33; margin: 28px 0 12px; }
.adv-bio { font-size: 15.5px; line-height: 1.65; color: #41506a; }
.adv-rev-count { display: inline-block; font-size: 13px; font-weight: 800; color: #0b5e57; background: #e6f5f3; border-radius: 999px; padding: 2px 9px; vertical-align: middle; margin-left: 6px; }

.adv-reviews { display: grid; gap: 14px; }
.adv-review { background: #fff; border: 1px solid #e6ebf2; border-radius: 13px; padding: 18px 20px; }
.adv-review-head { display: flex; align-items: center; gap: 12px; margin-bottom: 8px; }
.adv-verified { font-size: 12px; font-weight: 800; color: #14633f; background: #e9f5ef; border: 1px solid #cce7d6; border-radius: 99px; padding: 2px 10px; }
.adv-review-body { font-size: 14.5px; line-height: 1.55; color: #2a3854; margin: 0; }
.adv-review-foot { font-size: 12.5px; color: #6a7686; margin-top: 10px; }
.adv-more-reviews, .adv-no-reviews { font-size: 13.5px; color: #6a7686; margin-top: 12px; }
.adv-review-cta { font-size: 14px; margin-top: 16px; color: #41506a; }
.adv-review-cta a { color: #0f766e; font-weight: 800; }

.adv-request { margin-top: 34px; padding: 26px; background: #f7f9fc; border: 1px solid #e6ebf2; border-radius: 16px; }
.adv-request header h2 { margin-top: 0; }
.adv-request header p { font-size: 14px; color: #6a7686; margin: 0 0 16px; }
.adv-request-form label, .adv-review-form label { display: flex; flex-direction: column; gap: 5px; font-size: 13px; font-weight: 700; color: #41506a; margin-bottom: 14px; }
.adv-request-form input, .adv-request-form textarea, .adv-review-form input, .adv-review-form textarea {
  font-family: inherit; font-size: 15px; padding: 11px 13px; border: 1px solid #d6deea; border-radius: 10px; background: #fff; color: #172949;
}
.adv-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.adv-form-fine { font-size: 12px; color: #6a7686; line-height: 1.5; margin: 8px 0 0; }
.adv-form-fine a { color: #0f766e; }

.adv-review-page { padding: 36px 0 56px; }
.adv-review-page h1 { font-size: clamp(26px,3.4vw,36px); font-weight: 900; color: #0e1a33; margin: 0 0 10px; }
.adv-review-form { margin-top: 24px; }
.adv-star-picker { border: none; padding: 0; margin: 0 0 18px; }
.adv-star-picker legend { font-size: 13px; font-weight: 800; color: #41506a; margin-bottom: 8px; }
.adv-star-buttons { display: flex; gap: 6px; }
.adv-star-btn { background: none; border: none; font-size: 34px; line-height: 1; color: #d8dee7; cursor: pointer; padding: 0 2px; transition: color .1s; }
.adv-star-btn.on { color: #f0b429; }
.adv-checkbox { flex-direction: row !important; align-items: flex-start; gap: 10px !important; font-weight: 600 !important; }
.adv-checkbox input { width: 18px; height: 18px; margin-top: 2px; flex: 0 0 auto; }

.adv-disclosure { background: #fbfcfe; border: 1px solid #e6ebf2; border-radius: 12px; padding: 18px 20px; font-size: 13px; line-height: 1.6; color: #4a5a76; margin-top: 28px; }
.adv-disclosure strong { color: #172949; }
.adv-disclosure a { color: #0f766e; }
.adv-disclosure-hub { border-radius: 0; border-left: none; border-right: none; margin-top: 0; padding: 24px 0; }
.adv-back { margin-top: 24px; }
.adv-back a { color: #0f766e; font-weight: 700; }

@media (max-width: 960px) { .adv-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) {
  .adv-grid { grid-template-columns: 1fr; }
  .adv-head { grid-template-columns: auto 1fr; }
  .adv-facts { grid-template-columns: repeat(2, 1fr); }
  .adv-form-row { grid-template-columns: 1fr; }
}

/* Advisor photo avatar — keep the rounded-square frame, cover-fit */
.adv-avatar-photo { object-fit: cover; background: #e6f5f3; }

/* Agents directory hero — align to container, cap text width, space niche links */
.adv-hub-hero h1 { max-width: 20ch; }
.adv-niche-links { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; margin-top: 16px; font-size: 14px; }
.adv-niche-lead { color: #6a7686; font-weight: 700; }
.adv-niche-link { color: #0f766e; font-weight: 800; text-decoration: none; }
.adv-niche-link:hover { text-decoration: underline; }

/* Agent intro video (click-to-load YouTube facade) */
.adv-video { margin: 24px 0 4px; }
.adv-video-card {
  position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 12px; aspect-ratio: 16 / 9; width: 100%; margin: 0 auto; border-radius: 16px; overflow: hidden; cursor: pointer;
  background: linear-gradient(135deg, #0f766e, #063e3a); color: #fff;
  box-shadow: 0 1px 0 rgba(23,41,73,0.06), 0 14px 32px rgba(23,41,73,0.12);
}
.adv-video-thumb { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.adv-video-card::after { content: ""; position: absolute; inset: 0; background: rgba(8,30,28,0.34); transition: background .15s; }
.adv-video-card:hover::after { background: rgba(8,30,28,0.18); }
.adv-video-play {
  position: relative; z-index: 2; display: grid; place-items: center;
  width: 70px; height: 70px; border-radius: 50%; background: rgba(255,255,255,0.95); color: #0f766e;
  font-size: 26px; padding-left: 5px; box-shadow: 0 8px 20px rgba(0,0,0,0.25); transition: transform .15s;
}
.adv-video-card:hover .adv-video-play { transform: scale(1.07); }
.adv-video-label { position: relative; z-index: 2; font-size: 13.5px; font-weight: 800; text-shadow: 0 1px 4px rgba(0,0,0,0.35); padding: 0 16px; text-align: center; }
.adv-video-card.is-playing { cursor: default; background: #000; }
.adv-video-card.is-playing iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* ===== /agents/{slug}/ profile — guide-grid layout. Everything scoped to
   .advisor-profile-page / .ap-*; shared .adv-* base rules above are untouched. ===== */
.advisor-profile-page .adv-sample-banner { font-size: 12.5px; padding: 7px 18px; }
.advisor-profile-page .adv-profile { padding: 26px 0 56px; }
.advisor-profile-page .ap-main { min-width: 0; }
.advisor-profile-page .ap-aside .aside-cta { margin-top: 0; }
.advisor-profile-page .aside-fine { color: #5b6b85; font-size: 12px; } /* 5.1:1 on the --acc-tint card; shared .pillar-page .aside-fine untouched */
.advisor-profile-page #request-appointment { scroll-margin-top: 96px; }

/* head */
.advisor-profile-page .adv-head { grid-template-columns: auto 1fr; gap: 22px; align-items: start; padding: 6px 0 26px; }
.advisor-profile-page .adv-avatar { width: 96px; height: 96px; border-radius: 20px; }
.advisor-profile-page .adv-head-id { min-width: 0; }
.ap-eyebrow { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 0 0 6px; font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: #0f766e; }
.ap-featured { display: inline-block; background: #0f766e; color: #fff; font-size: 10.5px; font-weight: 900; letter-spacing: .06em; padding: 3px 8px; border-radius: 7px; }
.advisor-profile-page .adv-name { font-size: clamp(28px, 3.4vw, 38px); letter-spacing: -.02em; line-height: 1.1; overflow-wrap: anywhere; }
.advisor-profile-page .adv-creds { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0 0; }
.advisor-profile-page .adv-cred { margin-left: 0; }
.advisor-profile-page .adv-title { font-size: 16px; margin-top: 8px; }
.advisor-profile-page .adv-rating-row { margin-top: 10px; }
.advisor-profile-page .adv-vert-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 12px 0 0; font-size: 13px; color: #6a7686; }
.advisor-profile-page .adv-chip-vert { text-decoration: none; transition: background .15s, border-color .15s, color .15s; }
.advisor-profile-page .adv-chip-vert:hover, .advisor-profile-page .adv-chip-vert:focus-visible { background: #e6f5f3; color: #0b5e57; border-color: #0f766e; }
.advisor-profile-page .adv-chip-vert:focus-visible { outline: 2px solid #0f766e; outline-offset: 2px; }

/* facts + type caption + specialties/states */
.advisor-profile-page .adv-facts { margin: 22px 0 10px; }
.ap-type-note { font-size: 13px; line-height: 1.5; color: #5b6b85; margin: 0; }
.ap-type-note strong { color: #0b5e57; }
.ap-detail-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px 32px; margin: 26px 0 4px; }
.ap-detail-grid--stack { grid-template-columns: 1fr; }
.advisor-profile-page .adv-profile h2.ap-label { font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: #6a7686; margin: 0 0 10px; }

/* prose */
.advisor-profile-page .adv-profile h2 { font-size: 22px; letter-spacing: -.01em; margin: 34px 0 12px; }
.advisor-profile-page .adv-bio { font-size: 16.5px; line-height: 1.7; color: #3a4860; max-width: 70ch; margin: 0; }
.advisor-profile-page .adv-video { margin: 28px 0 0; }
/* sample-listing video placeholder (real listings always carry a video) */
.advisor-profile-page .adv-video-empty { cursor: default; background: linear-gradient(135deg, #f0faf9, #e6f5f3); color: #0b5e57; border: 1px dashed #bcdfd9; box-shadow: none; gap: 10px; }
.advisor-profile-page .adv-video-empty::after { display: none; }
.advisor-profile-page .adv-video-empty .adv-video-play { background: #0f766e; color: #fff; box-shadow: 0 8px 20px rgba(15, 118, 110, .25); }
.advisor-profile-page .adv-video-empty .adv-video-label { color: #0b5e57; text-shadow: none; font-size: 15px; }
.advisor-profile-page .adv-video-sub { position: relative; z-index: 2; font-size: 13px; color: #5b6b85; text-align: center; padding: 0 16px; }

/* reviews */
.advisor-profile-page .adv-no-reviews { font-size: 14.5px; line-height: 1.55; color: #5b6b85; margin: 0; }
.advisor-profile-page .adv-review { background: #f7f9fc; }

/* request form (shared .adv-request* bases untouched) */
.advisor-profile-page .adv-request { margin-top: 36px; background: linear-gradient(135deg, #f3fbfa, #fff); border-color: rgba(15, 118, 110, .25); border-radius: 18px; }
.advisor-profile-page .adv-request header h2 { font-size: 19px; margin: 0 0 4px; }
.advisor-profile-page .adv-request header p { font-size: 14.5px; color: #4a5a76; }
.ap-fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.advisor-profile-page .adv-request-form input::placeholder { font-weight: 400; color: #9aa6b6; }
.advisor-profile-page .adv-request-form .btn-primary:disabled,
.advisor-profile-page .adv-request-form .btn-primary:disabled:hover { background: #c3ccd8; color: #fff; opacity: 1; box-shadow: none; transform: none; cursor: not-allowed; }
.advisor-profile-page .ap-fieldset:disabled input, .advisor-profile-page .ap-fieldset:disabled textarea { background: #f4f6f9; color: #8a96a6; }
.advisor-profile-page .adv-form-fine { color: #5b6b85; }

/* disclosure + links */
.advisor-profile-page .adv-disclosure { background: #f9fbfc; border-color: #e3eaf2; border-radius: 14px; font-size: 12.5px; color: #5b6b85; margin-top: 30px; }
.advisor-profile-page .adv-disclosure a, .advisor-profile-page .adv-form-fine a, .advisor-profile-page .adv-review-cta a { text-decoration: underline; text-underline-offset: 2px; }
.advisor-profile-page .adv-back { font-size: 13.5px; }
.advisor-profile-page .adv-review-cta a { white-space: nowrap; }

@media (max-width: 1060px) {
  .advisor-profile-page .adv-facts { grid-template-columns: repeat(2, 1fr); }
  .advisor-profile-page #request-appointment { scroll-margin-top: 140px; }
  .advisor-profile-page .aside-stick { top: 150px; } /* 2-row header (138px) between 881 and 1060px */
}
@media (max-width: 880px) {
  .advisor-profile-page .ap-aside { display: none; }
}
@media (max-width: 640px) {
  .advisor-profile-page .adv-head { gap: 16px; }
  .advisor-profile-page .adv-avatar { width: 72px; height: 72px; border-radius: 16px; }
  .ap-detail-grid { grid-template-columns: 1fr; }
}

/* Guide hero SVG banner (editorial scene at top of each guide) */
.guide-article .guide-hero {
  margin: 0 0 22px;
  border-radius: 16px;
  overflow: hidden;
  aspect-ratio: 24 / 7;
  background: var(--acc-tint, #f4faf7);
  box-shadow: 0 1px 0 rgba(23,41,73,0.05), 0 10px 26px rgba(23,41,73,0.06);
}
.guide-article .guide-hero svg { display: block; width: 100%; height: 100%; }
.guide-article .guide-hero-image { aspect-ratio: 16 / 9; }
.guide-article .guide-hero-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media (max-width: 640px) { .guide-article .guide-hero { aspect-ratio: 16 / 7; } }
@media (max-width: 640px) { .guide-article .guide-hero-image { aspect-ratio: 16 / 9; } }

/* Explanatory diagram figures (static SVG) */
.prose-diagram { background: #fff; }
.prose-diagram .pf-svg { width: 100%; height: auto; }

/* Sticky mobile CTA bar (content pages) — mobile only, appears on scroll */
.sticky-cta {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 60;
  padding: 10px 12px calc(10px + env(safe-area-inset-bottom));
  background: rgba(255,255,255,0.97); backdrop-filter: blur(8px);
  border-top: 1px solid #e3e9f1; box-shadow: 0 -6px 22px rgba(15,23,42,0.10);
  transform: translateY(110%); transition: transform .26s ease;
}
.sticky-cta.is-in { transform: translateY(0); }
.sticky-cta-inner { display: flex; align-items: center; gap: 12px; max-width: 720px; margin: 0 auto; }
.sticky-cta-copy { display: flex; flex-direction: column; line-height: 1.2; flex: 1; min-width: 0; }
.sticky-cta-copy strong { font-size: 14.5px; font-weight: 800; color: #0e1a33; }
.sticky-cta-copy small { font-size: 11.5px; color: #6a7686; font-weight: 600; }
.sticky-cta .btn { white-space: nowrap; padding: 11px 18px; }
.sticky-cta-x { background: none; border: none; font-size: 22px; line-height: 1; color: #9aa6b6; cursor: pointer; padding: 0 4px; flex: 0 0 auto; }
@media (min-width: 768px) { .sticky-cta { display: none; } }

/* Regulatory disclaimer variant (e.g. Medicare TPMO) — amber, stands out */
.adv-disclosure-reg { background: #fdf6e9; border-color: #f0dcb8; }
.adv-disclosure-reg strong { color: #8a5a12; }

/* === CALC HUB + RELATED TOOLS === */
/* Per-pillar accent for tool cards (mortgages green, cc blue, ins gold, ret purple) */
[data-pillar="mortgages"]   { --tool-accent: var(--green); }
[data-pillar="credit-cards"]{ --tool-accent: var(--blue); }
[data-pillar="insurance"]   { --tool-accent: var(--gold); }
[data-pillar="retirement"]  { --tool-accent: #0f766e; }

/* ── Homepage "see all calculators" CTA ─────────────────────── */
.tools-allcta { margin-top: 26px; text-align: center; }

/* ── /calculators/ hub ──────────────────────────────────────── */
.calc-hub-hero {
  padding: 54px 0 30px;
  background: linear-gradient(180deg, var(--mist) 0%, #fff 100%);
  border-bottom: 1px solid var(--line);
  text-align: center;
}
.calc-hub-eyebrow {
  display: inline-block;
  font-size: 12px; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--green-deep);
  background: var(--mint-soft);
  border: 1px solid var(--card-line);
  padding: 6px 14px; border-radius: 999px;
}
.calc-hub-hero h1 { margin: 16px 0 10px; font-size: clamp(30px, 4vw, 44px); letter-spacing: -0.02em; color: var(--ink); -webkit-text-fill-color: var(--ink); }
.calc-hub-hero p { margin: 0 auto; max-width: 640px; color: var(--ink-soft); font-size: 18px; line-height: 1.55; }
.calc-hub-nav {
  display: flex; flex-wrap: wrap; justify-content: center; gap: 10px;
  margin-top: 24px;
}
.calc-hub-nav a {
  font-size: 14px; font-weight: 700; text-decoration: none;
  color: var(--ink); background: #fff;
  border: 1px solid var(--line); border-radius: 999px;
  padding: 8px 16px; transition: border-color 150ms ease, color 150ms ease, background 150ms ease;
}
.calc-hub-nav a:hover { border-color: var(--tool-accent, var(--green)); color: var(--tool-accent, var(--green-deep)); }

.calc-hub-group { padding: 44px 0 8px; scroll-margin-top: 90px; }
.calc-hub-group-head {
  display: flex; align-items: baseline; gap: 14px; flex-wrap: wrap;
  padding-bottom: 8px; margin-bottom: 22px;
  border-bottom: 2px solid var(--tool-accent, var(--green));
}
.calc-hub-group-head h2 { margin: 0; font-size: 24px; letter-spacing: -0.01em; }
.calc-hub-count { font-size: 13px; font-weight: 700; color: var(--muted); }

.calc-hub-grid {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px;
}
.calc-hub-card {
  position: relative; display: flex; flex-direction: column; gap: 8px;
  background: #fff; border: 1px solid var(--line); border-radius: 14px;
  padding: 22px 22px 20px; text-decoration: none; color: inherit;
  transition: transform 170ms ease, box-shadow 170ms ease, border-color 170ms ease;
  overflow: hidden;
}
.calc-hub-card::before {
  content: ""; position: absolute; inset: 0 auto 0 0; width: 4px;
  background: var(--tool-accent, var(--green)); opacity: 0.9;
}
.calc-hub-card:hover {
  transform: translateY(-3px); box-shadow: var(--soft-card-shadow);
  border-color: var(--tool-accent, var(--green));
}
.calc-hub-card-title { font-size: 17px; font-weight: 800; line-height: 1.25; padding-left: 6px; }
.calc-hub-card-blurb { font-size: 14px; color: var(--ink-soft); line-height: 1.5; padding-left: 6px; }
.calc-hub-card-cta {
  margin-top: auto; padding-left: 6px; font-size: 14px; font-weight: 800;
  color: var(--tool-accent, var(--green-deep));
}

.calc-hub-disclosure { padding: 28px 0 56px; }
.calc-hub-disclosure > .container { font-size: 13px; color: var(--muted); line-height: 1.6; }
.calc-hub-disclosure a { color: var(--green-deep); }

/* ── Related calculators block (on each tool page) ──────────── */
.related-tools { padding: 40px 0; background: var(--mist); border-top: 1px solid var(--line); }
.rt-head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 20px; }
.rt-head h2 { margin: 0; font-size: 22px; letter-spacing: -0.01em; }
.rt-all { font-size: 14px; font-weight: 800; text-decoration: none; color: var(--green-deep); white-space: nowrap; }
.rt-all:hover { text-decoration: underline; }
.rt-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.rt-card {
  position: relative; display: flex; flex-direction: column; gap: 7px;
  background: #fff; border: 1px solid var(--line); border-radius: 12px;
  padding: 18px 18px 16px; text-decoration: none; color: inherit;
  transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease;
}
.rt-card:hover { transform: translateY(-2px); box-shadow: var(--soft-card-shadow); border-color: var(--tool-accent, var(--green)); }
.rt-tag { font-size: 11px; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; color: var(--tool-accent, var(--green-deep)); }
.rt-title { font-size: 16px; font-weight: 800; line-height: 1.25; }
.rt-blurb { font-size: 13px; color: var(--ink-soft); line-height: 1.5; }
.rt-cta { margin-top: auto; font-size: 13px; font-weight: 800; color: var(--tool-accent, var(--green-deep)); }

@media (max-width: 900px) {
  .calc-hub-grid, .rt-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .calc-hub-grid, .rt-grid { grid-template-columns: 1fr; }
  .calc-hub-hero { padding: 40px 0 24px; }
}

/* === CC CATEGORY NAV + BEST-OF ROWS === */
:root { --cc-blue: #0f766e; --cc-blue-deep: #0b5e57; }

/* ── Persistent category nav (icon bar + See-all dropdown) ──── */
.cc-category-nav { background: #fff; border-bottom: 1px solid var(--line); position: sticky; top: 0; z-index: 40; }
.ccnav-inner { display: flex; align-items: stretch; gap: 2px; overflow: visible; }
.ccnav-scroll { display: flex; align-items: stretch; gap: 2px; flex: 1; min-width: 0; overflow-x: auto; overflow-y: hidden; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
.ccnav-scroll::-webkit-scrollbar { display: none; }
.ccnav-item {
  display: flex; flex-direction: column; align-items: center; gap: 5px;
  padding: 12px 16px 10px; min-width: 78px; text-decoration: none; white-space: nowrap;
  color: var(--ink-soft); border-bottom: 3px solid transparent; transition: color 140ms ease, border-color 140ms ease;
}
.ccnav-item:hover { color: var(--cc-blue); }
.ccnav-item.is-active { color: var(--cc-blue); border-bottom-color: var(--cc-blue); }
.ccnav-ic { width: 26px; height: 26px; display: grid; place-items: center; }
.ccnav-ic svg { width: 24px; height: 24px; }
.ccnav-item.is-active .ccnav-ic { color: #fff; background: var(--cc-blue); border-radius: 999px; padding: 4px; width: 30px; height: 30px; }
.ccnav-lbl { font-size: 12px; font-weight: 700; }

/* See-all dropdown */
.ccnav-seeall { position: relative; margin-left: auto; }
.ccnav-seeall > summary { list-style: none; cursor: pointer; }
.ccnav-seeall > summary::-webkit-details-marker { display: none; }
.ccnav-more { flex-direction: row; gap: 6px; align-items: center; }
.ccnav-panel {
  position: absolute; right: 0; top: 100%; z-index: 60;
  width: min(560px, 92vw); background: #fff; border: 1px solid var(--line);
  border-radius: 14px; box-shadow: var(--shadow); padding: 20px 22px;
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px 28px;
}
.ccnav-group-h { display: block; font-size: 11px; font-weight: 800; letter-spacing: 0.07em; text-transform: uppercase; color: var(--muted); margin-bottom: 8px; }
.ccnav-group ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.ccnav-group a { font-size: 14px; font-weight: 600; text-decoration: none; color: var(--ink); }
.ccnav-group a:hover { color: var(--cc-blue); }
.ccnav-group a[aria-current="page"] { color: var(--cc-blue); }

/* ── Category best-of page ─────────────────────────────────── */
.cc-cat-hero { background: linear-gradient(160deg, #f3f7fc 0%, #fff 100%); border-bottom: 1px solid var(--line); padding: 38px 0 30px; }
.cc-cat-eyebrow { display: inline-block; font-size: 12px; font-weight: 800; letter-spacing: 0.07em; text-transform: uppercase; color: var(--cc-blue-deep); background: #e8f0fb; border-radius: 999px; padding: 5px 13px; }
.cc-cat-hero h1 { margin: 14px 0 6px; font-size: clamp(26px, 3.6vw, 40px); letter-spacing: -0.02em; color: var(--ink); -webkit-text-fill-color: var(--ink); }
.cc-cat-intro { max-width: 760px; color: var(--ink-soft); font-size: 17px; line-height: 1.6; margin: 12px 0 0; }

.cc-cat-list { padding: 30px 0 10px; }
.cc-cat-list-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.cc-cat-list-head h2 { margin: 0; font-size: 20px; }
.btn-sm { padding: 8px 14px; font-size: 14px; }

.ccrows { display: flex; flex-direction: column; gap: 18px; }
.ccrow {
  display: grid; grid-template-columns: 44px 280px 1fr 200px; gap: 22px; align-items: start;
  background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: 22px 24px;
  transition: box-shadow 160ms ease, border-color 160ms ease;
}
.ccrow:hover { box-shadow: var(--soft-card-shadow); border-color: var(--card-line); }
.ccrow-rank span {
  display: grid; place-items: center; width: 34px; height: 34px; border-radius: 999px;
  background: var(--cc-blue); color: #fff; font-weight: 800; font-size: 16px;
}
.ccrow-art { position: relative; }
.ccrow-art .cc-card-svg,
.ccrow-art .cc-card-image { width: 100%; height: auto; border-radius: 12px; box-shadow: 0 8px 20px rgba(23,41,73,0.16); background: #f5f7fb; }
.ccrow-art .cc-card-image { display: block; aspect-ratio: 320 / 200; object-fit: contain; }
.ccrow-art .cc-card-image-portrait { width: auto; height: 174px; max-width: 100%; aspect-ratio: auto; margin: 0 auto; background: transparent; box-shadow: 0 8px 20px rgba(23,41,73,0.16); }
.ccrow-pick {
  display: inline-block; margin-bottom: 8px; font-size: 12px; font-weight: 800;
  color: var(--green-deep); background: var(--mint-soft); border: 1px solid var(--card-line);
  padding: 4px 10px; border-radius: 999px;
}
.ccrow-name { margin: 0 0 6px; font-size: 19px; line-height: 1.2; }
.ccrow-rating { display: flex; align-items: center; gap: 7px; margin-bottom: 10px; }
.cc-stars { display: inline-flex; }
.cc-star { color: #d6dde6; font-size: 15px; }
.cc-star.on { color: #f5a623; }
.ccrow-rating strong { font-size: 15px; }
.ccrow-rating-of { font-size: 12px; color: var(--muted); }
.ccrow-bestfor { margin: 0 0 12px; font-size: 14px; color: var(--ink-soft); line-height: 1.5; }
.ccrow-specs { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px 20px; margin: 0; }
.ccrow-specs > div { border-top: 1px solid var(--line); padding-top: 8px; }
.ccrow-specs dt { font-size: 11px; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; color: var(--muted); margin-bottom: 3px; }
.ccrow-specs dd { margin: 0; font-size: 13.5px; font-weight: 600; color: var(--ink); line-height: 1.4; }
.ccrow-cta { display: flex; flex-direction: column; gap: 8px; align-items: stretch; text-align: center; }
.ccrow-detail { font-size: 13px; font-weight: 700; color: var(--cc-blue); text-decoration: none; }
.ccrow-detail:hover { text-decoration: underline; }
.ccrow-note { font-size: 12px; color: var(--muted); }

/* Related category chips */
.cc-related { padding: 26px 0 8px; }
.cc-related h2 { font-size: 18px; margin: 0 0 14px; }
.cc-related-chips { display: flex; flex-wrap: wrap; gap: 10px; }
.cc-related-chip {
  font-size: 14px; font-weight: 700; text-decoration: none; color: var(--ink);
  background: #fff; border: 1px solid var(--line); border-radius: 999px; padding: 8px 16px;
  transition: border-color 140ms ease, color 140ms ease;
}
.cc-related-chip:hover { border-color: var(--cc-blue); color: var(--cc-blue); }
.cc-related-all { background: #e8f0fb; border-color: #e8f0fb; color: var(--cc-blue-deep); }

@media (max-width: 860px) {
  .ccrow { grid-template-columns: 40px 1fr; grid-template-areas: "rank art" "body body" "cta cta"; gap: 16px; }
  .ccrow-rank { grid-area: rank; }
  .ccrow-art { grid-area: art; max-width: 240px; }
  .ccrow-body { grid-area: body; }
  .ccrow-cta { grid-area: cta; flex-direction: row; }
  .ccrow-cta .btn { flex: 1; }
  .ccnav-panel { grid-template-columns: 1fr; }
}
@media (max-width: 520px) {
  .ccrow-specs { grid-template-columns: 1fr; }
}

/* === CC CATEGORY DEEP CONTENT === */
/* On-this-page TOC */
.cc-toc { background: #fff; border-bottom: 1px solid var(--line); padding: 16px 0; }
.cc-toc-h { display: block; font-size: 12px; font-weight: 800; letter-spacing: 0.07em; text-transform: uppercase; color: var(--muted); margin-bottom: 8px; }
.cc-toc ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 18px; }
.cc-toc a { font-size: 14px; font-weight: 600; color: var(--cc-blue); text-decoration: none; }
.cc-toc a:hover { text-decoration: underline; }

/* Per-row accordions */
.ccrow-accordions { margin-top: 14px; border-top: 1px solid var(--line); }
.ccrow-acc { border-bottom: 1px solid var(--line); }
.ccrow-acc > summary { cursor: pointer; list-style: none; padding: 10px 0; font-size: 14px; font-weight: 700; color: var(--cc-blue); display: flex; align-items: center; gap: 6px; }
.ccrow-acc > summary::-webkit-details-marker { display: none; }
.ccrow-acc > summary::before { content: "+"; font-weight: 800; font-size: 16px; width: 14px; }
.ccrow-acc[open] > summary::before { content: "\2212"; }
.ccrow-acc > div { padding: 0 0 14px; font-size: 14px; color: var(--ink-soft); line-height: 1.55; }
.ccrow-acc p { margin: 0 0 8px; }
.ccrow-detlist { list-style: none; margin: 0; padding: 0; }
.ccrow-detlist li { display: flex; justify-content: space-between; gap: 16px; padding: 6px 0; border-bottom: 1px dashed var(--line); }
.ccrow-detlist li span { color: var(--muted); }
.ccrow-detlist li strong { text-align: right; }

/* Matcher band */
.cc-matcher-band { background: linear-gradient(135deg, #0f766e 0%, #0f3a78 100%); color: #fff; text-align: center; padding: 44px 0; margin: 30px 0; }
.cc-matcher-band h2 { color: #fff; margin: 0 0 8px; font-size: 26px; }
.cc-matcher-band p { color: rgba(255,255,255,0.9); max-width: 560px; margin: 0 auto 20px; font-size: 16px; line-height: 1.5; }
.cc-matcher-band .btn-primary { background: #fff; color: var(--cc-blue-deep); }
.cc-matcher-band .btn-primary:hover { background: #eef3fb; }

/* What's news */
.cc-news { padding: 16px 0 8px; }
.cc-news h2 { font-size: 22px; margin: 0 0 14px; }
.cc-news-quote { margin: 0; padding: 22px 26px; background: var(--mist); border-left: 4px solid var(--cc-blue); border-radius: 0 12px 12px 0; }
.cc-news-quote p { margin: 0 0 12px; font-size: 16px; line-height: 1.6; color: var(--ink); font-style: italic; }
.cc-news-quote footer { font-size: 14px; color: var(--muted); font-style: normal; }

/* More about our picks */
.cc-moreabout { padding: 36px 0 8px; }
.cc-moreabout > .container > h2 { font-size: 26px; margin: 0 0 20px; }
.map-card { padding: 22px 0 18px; border-top: 1px solid var(--line); }
.map-card:first-of-type { border-top: none; }
.map-card h3 { font-size: 20px; margin: 0 0 4px; }
.map-pick { font-size: 13px; font-weight: 800; color: var(--green-deep); margin: 0 0 10px; }
.map-card p { font-size: 16px; line-height: 1.65; color: var(--ink-soft); margin: 0 0 10px; }
.map-readreview { font-weight: 700; color: var(--cc-blue); text-decoration: none; }
.map-readreview:hover { text-decoration: underline; }
.map-alt { font-size: 14px !important; color: var(--ink) !important; }
.map-alt a { color: var(--cc-blue); font-weight: 700; }

/* Evergreen guide sections */
.cc-ever { padding: 34px 0 6px; }
.cc-ever h2 { font-size: 26px; margin: 0 0 14px; letter-spacing: -0.01em; }
.cc-ever h3 { font-size: 18px; margin: 22px 0 10px; }
.cc-ever p { font-size: 16px; line-height: 1.65; color: var(--ink-soft); margin: 0 0 12px; }
.cc-ever ul, .cc-ever ol { padding-left: 22px; margin: 0 0 14px; }
.cc-ever li { font-size: 16px; line-height: 1.6; color: var(--ink-soft); margin-bottom: 7px; }
.cc-ever-steps { list-style: none; counter-reset: step; padding-left: 0; }
.cc-ever-steps > li { position: relative; padding-left: 42px; margin-bottom: 14px; }
.cc-ever-steps > li::before { counter-increment: step; content: counter(step); position: absolute; left: 0; top: 0; width: 28px; height: 28px; border-radius: 999px; background: var(--cc-blue); color: #fff; font-weight: 800; font-size: 14px; display: grid; place-items: center; }
.cc-ever-types { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-top: 16px; }
.cc-ever-type { background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 20px; }
.cc-ever-type h3 { margin: 0 0 8px; font-size: 17px; }
.cc-ever-type p { font-size: 14px; margin-bottom: 12px; }
.cc-ever-type ul { list-style: none; padding: 0; margin: 0; }
.cc-ever-type li { margin-bottom: 6px; }
.cc-ever-type a { color: var(--cc-blue); font-weight: 600; font-size: 14px; text-decoration: none; }
.cc-ever-type a:hover { text-decoration: underline; }
.cc-ever-prosrcons { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-top: 8px; }
.cc-ever-pros, .cc-ever-cons { background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 18px 20px; }
.cc-ever-pros { border-top: 3px solid var(--green); }
.cc-ever-cons { border-top: 3px solid var(--red); }
.cc-ever-cta-line { background: var(--mist); padding: 14px 18px; border-radius: 10px; font-size: 15px !important; }

/* Methodology stat band */
.cc-method { padding: 30px 0; }
.cc-method h2 { font-size: 24px; margin: 0 0 10px; }
.cc-method p { font-size: 15px; line-height: 1.6; color: var(--ink-soft); }
.cc-statband { background: var(--ink); margin: 22px 0; padding: 28px 0; }
.cc-statband .container { display: flex; justify-content: center; gap: 60px; flex-wrap: wrap; }
.cc-stat { text-align: center; color: #fff; }
.cc-stat strong { display: block; font-size: 34px; font-weight: 800; letter-spacing: -0.02em; }
.cc-stat span { font-size: 13px; color: rgba(255,255,255,0.7); text-transform: uppercase; letter-spacing: 0.05em; }

/* Author bios */
.abio-section { padding: 30px 0 10px; border-top: 1px solid var(--line); }
.abio-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.abio-card { background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 20px; }
.abio-role { display: block; font-size: 11px; font-weight: 800; letter-spacing: 0.07em; text-transform: uppercase; color: var(--muted); margin-bottom: 12px; }
.abio-head { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.abio-avatar { width: 52px; height: 52px; border-radius: 13px; flex: none; }
.abio-name { display: block; font-weight: 800; font-size: 16px; color: var(--ink); text-decoration: none; }
.abio-name:hover { color: var(--cc-blue); }
.abio-title { font-size: 13px; color: var(--muted); }
.abio-bio { font-size: 14px; line-height: 1.55; color: var(--ink-soft); margin: 0 0 10px; }
.abio-creds { font-size: 12px; color: var(--muted); margin: 0 0 8px; }
.abio-socials { display: flex; gap: 14px; }
.abio-socials a { font-size: 13px; font-weight: 700; color: var(--cc-blue); text-decoration: none; }

@media (max-width: 860px) {
  .cc-ever-types { grid-template-columns: 1fr; }
  .cc-ever-prosrcons { grid-template-columns: 1fr; }
  .abio-grid { grid-template-columns: 1fr; }
  .cc-statband .container { gap: 32px; }
}

/* === CARD REVIEW DEEP === */
.cr-toc { border: 1px solid var(--line); border-radius: 12px; margin: 18px 0 4px; padding: 16px 18px; }
.cr-quicktake { background: var(--mist); border-left: 4px solid var(--cc-blue, #0f766e); border-radius: 0 12px 12px 0; padding: 18px 22px; margin: 18px 0 6px; }
.cr-quicktake-h { display: block; font-size: 12px; font-weight: 800; letter-spacing: 0.07em; text-transform: uppercase; color: var(--cc-blue, #0f766e); margin-bottom: 8px; }
.cr-quicktake p { margin: 0 0 8px; font-size: 16px; line-height: 1.6; color: var(--ink); }
.cr-quicktake-alt { font-size: 14px !important; color: var(--ink-soft) !important; }

/* === INTERACTIVE MEGA MENU === */
/* Rail (left) drives the visible sub-panel (middle links + picks). */
.mega-panel-dyn { grid-template-columns: minmax(186px, 0.5fr) 1fr; gap: 28px; }
.mega-subs { position: relative; min-width: 0; }
.mega-sub { display: none; grid-template-columns: minmax(240px, 1fr) minmax(220px, 0.78fr); gap: 32px; }

/* Default + no-JS fallback: first sub-panel shows. */
.mega-sub:first-child { display: grid; }

/* JS latches the active rail item via [data-active] on the panel, so the chosen
   sub-panel STAYS visible while the mouse moves right into the links/picks. */
.mega-panel-dyn[data-active] .mega-sub { display: none; }
.mega-panel-dyn[data-active="1"] .mega-subs .mega-sub:nth-child(1),
.mega-panel-dyn[data-active="2"] .mega-subs .mega-sub:nth-child(2),
.mega-panel-dyn[data-active="3"] .mega-subs .mega-sub:nth-child(3),
.mega-panel-dyn[data-active="4"] .mega-subs .mega-sub:nth-child(4),
.mega-panel-dyn[data-active="5"] .mega-subs .mega-sub:nth-child(5),
.mega-panel-dyn[data-active="6"] .mega-subs .mega-sub:nth-child(6),
.mega-panel-dyn[data-active="7"] .mega-subs .mega-sub:nth-child(7),
.mega-panel-dyn[data-active="8"] .mega-subs .mega-sub:nth-child(8) { display: grid; }

/* Rail highlight: default first item until JS sets an active one. */
.mega-panel-dyn:not([data-active]) .mega-rail-item:first-child { background: #eef3f1; }
.mega-rail-item.is-active { background: #eef3f1; color: #071421; }

/* Mobile (nav-open): show only the rail links; sub-panels are desktop-only. */
@media (max-width: 1060px) {
  .site-header.nav-open .mega-panel-dyn { grid-template-columns: 1fr; }
  .site-header.nav-open .mega-subs { display: none; }
  .site-header.nav-open .mega-rail-item { padding: 12px 14px; }
}

/* === CC COMPARE FEATURE === */
/* Row compare checkbox */
.ccrow-compare { display: inline-flex; align-items: center; gap: 6px; margin-top: 4px; font-size: 12px; font-weight: 700; color: var(--muted); cursor: pointer; justify-content: center; }
.ccrow-compare input { width: 15px; height: 15px; accent-color: var(--cc-blue, #0f766e); cursor: pointer; }
.ccrow-compare input:disabled { cursor: not-allowed; }
.ccrow-compare:has(input:disabled) { opacity: 0.45; cursor: not-allowed; }

/* Condensed comparison table */
.cc-cmp-table-wrap { padding: 18px 0 8px; }
.cc-cmp-table-wrap h2 { font-size: 22px; margin: 0 0 16px; }
.cc-cmp-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid var(--line); border-radius: 12px; }
.cc-cmp-table { width: 100%; border-collapse: collapse; min-width: 720px; background: #fff; }
.cc-cmp-table th, .cc-cmp-table td { text-align: left; padding: 14px 16px; border-bottom: 1px solid var(--line); font-size: 14px; vertical-align: top; }
.cc-cmp-table thead th { font-size: 12px; font-weight: 800; letter-spacing: 0.04em; text-transform: uppercase; color: var(--muted); background: var(--mist); white-space: nowrap; }
.cc-cmp-table tbody tr:last-child td { border-bottom: 0; }
.cmp-card a { color: var(--ink); text-decoration: none; }
.cmp-card a:hover strong { color: var(--cc-blue); }
.cmp-bestfor { display: block; font-size: 12px; color: var(--muted); font-weight: 600; margin-top: 2px; }
.cmp-rate { font-weight: 800; color: var(--cc-blue); }
.cmp-link { font-weight: 700; color: var(--cc-blue); text-decoration: none; white-space: nowrap; }
.cmp-link:hover { text-decoration: underline; }

/* Sticky compare tray */
.cc-cmp-tray { position: fixed; left: 0; right: 0; bottom: 0; z-index: 80; background: #fff; border-top: 1px solid var(--line); box-shadow: 0 -10px 30px rgba(23,41,73,0.12); padding: 12px 0; }
.cc-cmp-tray-inner { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.cc-cmp-chips { display: flex; gap: 8px; flex-wrap: wrap; flex: 1; min-width: 0; }
.cc-cmp-chip { display: inline-flex; align-items: center; gap: 8px; background: var(--mist); border: 1px solid var(--line); border-radius: 999px; padding: 6px 8px 6px 14px; font-size: 13px; font-weight: 700; }
.cc-cmp-chip button { border: 0; background: #d6dde6; color: #fff; width: 18px; height: 18px; border-radius: 999px; cursor: pointer; font-size: 13px; line-height: 1; display: grid; place-items: center; }
.cc-cmp-chip button:hover { background: var(--red); }
.cc-cmp-tray-actions { display: flex; gap: 10px; flex: none; }

/* Comparison modal */
.cc-cmp-modal { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; }
.cc-cmp-modal-backdrop { position: absolute; inset: 0; background: rgba(7,20,33,0.55); }
.cc-cmp-modal-panel { position: relative; z-index: 1; width: min(900px, 94vw); max-height: 86vh; overflow: auto; background: #fff; border-radius: 16px; padding: 26px 28px; box-shadow: var(--shadow); }
.cc-cmp-modal-panel h2 { margin: 0 0 16px; font-size: 22px; }
.cc-cmp-modal-x { position: absolute; top: 14px; right: 16px; border: 0; background: none; font-size: 28px; line-height: 1; color: var(--muted); cursor: pointer; }
.cc-cmp-modal-x:hover { color: var(--ink); }
.cc-cmp-modal-scroll { overflow-x: auto; }
.cc-cmp-grid { width: 100%; border-collapse: collapse; }
.cc-cmp-grid th, .cc-cmp-grid td { padding: 12px 14px; border-bottom: 1px solid var(--line); font-size: 14px; text-align: left; vertical-align: top; }
.cc-cmp-grid thead th { font-size: 15px; }
.cc-cmp-grid thead th a { color: var(--ink); text-decoration: none; }
.cc-cmp-grid thead th a:hover { color: var(--cc-blue); }
.cc-cmp-grid tbody th[scope="row"] { font-size: 12px; font-weight: 800; letter-spacing: 0.04em; text-transform: uppercase; color: var(--muted); white-space: nowrap; }
.cc-cmp-grid td { font-weight: 600; }

@media (max-width: 600px) {
  .cc-cmp-tray-inner { gap: 10px; }
  .cc-cmp-tray-actions { width: 100%; }
  .cc-cmp-tray-actions .btn { flex: 1; }
}

/* === RENT VS BUY CALC === */
.calc-advanced { margin-top: 14px; border: 1px solid var(--line); border-radius: 10px; padding: 0 14px; }
.calc-advanced > summary { cursor: pointer; padding: 12px 0; font-size: 14px; font-weight: 800; color: var(--green-deep); list-style: none; }
.calc-advanced > summary::-webkit-details-marker { display: none; }
.calc-advanced > summary::before { content: "+ "; font-weight: 800; }
.calc-advanced[open] > summary::before { content: "\2212 "; }
.calc-advanced[open] { padding-bottom: 10px; }
.calc-range-out { display: inline-block; margin-top: 6px; font-weight: 800; color: var(--green-deep); font-size: 15px; }
.calc-label input[type="range"] { width: 100%; accent-color: var(--green); }

.rb-compare { margin-top: 4px; }
.rb-table { width: 100%; border-collapse: collapse; }
.rb-table th, .rb-table td { padding: 10px 8px; border-bottom: 1px solid var(--line); font-size: 14px; text-align: right; }
.rb-table th:first-child, .rb-table td:first-child { text-align: left; color: var(--ink-soft); }
.rb-table thead th { font-size: 12px; font-weight: 800; letter-spacing: 0.04em; text-transform: uppercase; color: var(--muted); }
.rb-table tbody td { font-weight: 700; font-variant-numeric: tabular-nums; }
.rb-total-row td, .rb-total-row th { border-top: 2px solid var(--line); border-bottom: 0; font-size: 16px; padding-top: 12px; }
.rb-total-row td:first-child { color: var(--ink); font-weight: 800; }
.rb-total-row small { font-weight: 600; color: var(--muted); }

/* === HERO V3 — DARK COMMAND DECK === */
.hero3 {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(1100px 520px at 78% -10%, rgba(15, 118, 110, 0.55), transparent 60%),
    radial-gradient(900px 600px at -10% 110%, rgba(13, 84, 56, 0.6), transparent 55%),
    linear-gradient(165deg, #051f17 0%, #07291e 45%, #0a3526 100%);
  color: #f2f8f4;
  isolation: isolate;
}
.hero3-bg { position: absolute; inset: 0; z-index: -1; pointer-events: none; }
.hero3-glow { position: absolute; border-radius: 999px; filter: blur(90px); opacity: 0.5; }
.hero3-glow-1 { width: 560px; height: 560px; right: -120px; top: -180px; background: radial-gradient(circle, rgba(158, 232, 0, 0.20), transparent 70%); }
.hero3-glow-2 { width: 480px; height: 480px; left: 8%; bottom: -240px; background: radial-gradient(circle, rgba(15, 118, 110, 0.45), transparent 70%); }
.hero3-gridlines {
  position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(255,255,255,0.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.045) 1px, transparent 1px);
  background-size: 44px 44px;
  -webkit-mask-image: radial-gradient(900px 600px at 65% 20%, #000 0%, transparent 75%);
          mask-image: radial-gradient(900px 600px at 65% 20%, #000 0%, transparent 75%);
}

.hero3-inner {
  max-width: 1180px; margin: 0 auto;
  padding: clamp(56px, 8vw, 96px) 24px clamp(40px, 6vw, 72px);
  display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr);
  gap: clamp(32px, 5vw, 72px); align-items: center;
}

/* ── Left: copy ─────────────────────────────────────────────── */
.hero3-eyebrow {
  display: inline-flex; align-items: center; gap: 9px;
  font-size: 12px; font-weight: 800; letter-spacing: 0.09em; text-transform: uppercase;
  color: #b9e4cd;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(185, 228, 205, 0.25);
  border-radius: 999px; padding: 8px 16px;
  backdrop-filter: blur(6px);
}
.hero3-dot { width: 8px; height: 8px; border-radius: 999px; background: #5ec5bf; box-shadow: 0 0 0 0 rgba(158,232,0,0.5); animation: hero3pulse 2.2s infinite; }
@keyframes hero3pulse { 0% { box-shadow: 0 0 0 0 rgba(158,232,0,0.45); } 70% { box-shadow: 0 0 0 9px rgba(158,232,0,0); } 100% { box-shadow: 0 0 0 0 rgba(158,232,0,0); } }

.hero3 h1 {
  margin: 22px 0 16px;
  font-size: clamp(40px, 5.6vw, 64px);
  line-height: 1.04; letter-spacing: -0.025em; font-weight: 900;
  color: #ffffff;
}
.hero3 h1 em {
  font-style: normal;
  background: linear-gradient(92deg, #6fe3a5 0%, #b8f266 60%, #5ec5bf 100%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: transparent;
}
.hero3-lede {
  margin: 0 0 26px; max-width: 540px;
  font-size: clamp(16px, 1.6vw, 18.5px); line-height: 1.6;
  color: rgba(235, 246, 239, 0.82);
}

/* Intent quick-start chips */
.hero3-intents { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 26px; }
.hero3-intent {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 14px; font-weight: 750; text-decoration: none;
  color: #eaf6ee;
  background: rgba(255,255,255,0.07);
  border: 1px solid rgba(255,255,255,0.16);
  border-radius: 999px; padding: 10px 16px;
  backdrop-filter: blur(6px);
  transition: transform 150ms ease, background 150ms ease, border-color 150ms ease;
}
.hero3-intent svg { width: 17px; height: 17px; opacity: 0.9; }
.hero3-intent:hover { transform: translateY(-2px); background: rgba(255,255,255,0.13); border-color: rgba(255,255,255,0.34); }
.hero3-intent[data-tone="mortgages"]:hover    { border-color: #6fe3a5; color: #c9f5dd; }
.hero3-intent[data-tone="credit-cards"]:hover { border-color: #8db4ed; color: #d7e6fb; }
.hero3-intent[data-tone="insurance"]:hover    { border-color: #ecc578; color: #f8e9c8; }
.hero3-intent[data-tone="retirement"]:hover   { border-color: #c0a4ea; color: #e9ddf9; }

/* CTAs */
.hero3-ctas { display: flex; flex-wrap: wrap; gap: 14px; margin-bottom: 26px; }
.hero3-cta-main {
  display: inline-flex; align-items: center; gap: 10px;
  font-size: 16.5px; font-weight: 850; text-decoration: none;
  color: #06231a;
  background: linear-gradient(95deg, #b8f266, #5ec5bf);
  border-radius: 999px; padding: 15px 30px;
  box-shadow: 0 14px 36px rgba(158, 232, 0, 0.28), inset 0 1px 0 rgba(255,255,255,0.45);
  transition: transform 150ms ease, box-shadow 150ms ease;
}
.hero3-cta-main:hover { transform: translateY(-2px); box-shadow: 0 18px 44px rgba(158, 232, 0, 0.36), inset 0 1px 0 rgba(255,255,255,0.45); }
.hero3-cta-main span { transition: transform 150ms ease; }
.hero3-cta-main:hover span { transform: translateX(4px); }
.hero3-cta-ghost {
  display: inline-flex; align-items: center;
  font-size: 16px; font-weight: 750; text-decoration: none;
  color: #eaf6ee;
  background: transparent;
  border: 1.5px solid rgba(255,255,255,0.28);
  border-radius: 999px; padding: 14px 26px;
  transition: background 150ms ease, border-color 150ms ease;
}
.hero3-cta-ghost:hover { background: rgba(255,255,255,0.08); border-color: rgba(255,255,255,0.5); }

.hero3-trust { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; font-size: 13px; color: rgba(226, 241, 232, 0.75); }
.hero3-trust strong { font-weight: 750; color: rgba(240, 250, 244, 0.92); }
.hero3-stars { color: #f5c84c; font-size: 14px; letter-spacing: 2px; }
.hero3-tdiv { width: 4px; height: 4px; border-radius: 999px; background: rgba(255,255,255,0.35); }

/* ── Right: glass stage ─────────────────────────────────────── */
.hero3-stage { position: relative; min-width: 0; }
.hero3-panel {
  position: relative; z-index: 1;
  background: rgba(255, 255, 255, 0.065);
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 20px;
  padding: 22px 22px 18px;
  backdrop-filter: blur(14px);
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.4), inset 0 1px 0 rgba(255,255,255,0.12);
}
.hero3-panel-head { display: flex; align-items: center; gap: 10px; margin-bottom: 16px; }
.hero3-panel-head > strong { font-size: 14.5px; font-weight: 800; color: #f2f8f4; }
.hero3-panel-date { margin-left: auto; font-size: 11.5px; color: rgba(226,241,232,0.55); }
.hero3-live {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 10.5px; font-weight: 900; letter-spacing: 0.1em; text-transform: uppercase;
  color: #b8f266; background: rgba(158,232,0,0.12);
  border: 1px solid rgba(158,232,0,0.3); border-radius: 999px; padding: 4px 10px;
}
.hero3-live span { width: 6px; height: 6px; border-radius: 999px; background: #5ec5bf; animation: hero3pulse 2.2s infinite; }

.hero3-rates { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.hero3-rate {
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 13px; padding: 13px 15px;
}
.hero3-rate span { display: block; font-size: 11.5px; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; color: rgba(226,241,232,0.6); margin-bottom: 5px; }
.hero3-rate strong { font-size: 22px; font-weight: 850; letter-spacing: -0.01em; color: #fff; font-variant-numeric: tabular-nums; }
.hero3-rate-hot { background: rgba(158,232,0,0.1); border-color: rgba(158,232,0,0.28); }
.hero3-rate-hot strong { color: #c9f57e; }
.hero3-rate .hp-trend { font-size: 12px; vertical-align: 3px; }
.hero3-rate .hp-trend-down { color: #6fe3a5; }
.hero3-rate .hp-trend-up { color: #ff9d8a; }

.hero3-panel-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.hero3-chip {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 12.5px; font-weight: 750; text-decoration: none;
  color: rgba(240,250,244,0.85);
  background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.13);
  border-radius: 999px; padding: 7px 13px;
  transition: background 140ms ease, border-color 140ms ease;
}
.hero3-chip svg { width: 14px; height: 14px; }
.hero3-chip:hover { background: rgba(255,255,255,0.13); border-color: rgba(255,255,255,0.3); }
.hero3-panel-link { display: inline-block; margin-top: 14px; font-size: 13.5px; font-weight: 800; color: #b8f266; text-decoration: none; }
.hero3-panel-link:hover { text-decoration: underline; text-underline-offset: 3px; }

/* Floating proof cards */
.hero3-float {
  position: absolute; z-index: 2;
  background: #ffffff; color: #16202f;
  border-radius: 15px; padding: 14px 17px;
  box-shadow: 0 22px 55px rgba(0, 0, 0, 0.45);
  animation: hero3floatY 6.5s ease-in-out infinite;
}
.hero3-float-a { top: -34px; right: -14px; max-width: 230px; transform: rotate(2deg); }
.hero3-float-a .hero3-float-stars { display: block; color: #f5a623; font-size: 13px; letter-spacing: 1.5px; }
.hero3-float-a .hero3-float-stars strong { color: #16202f; letter-spacing: 0; margin-left: 4px; font-size: 12.5px; }
.hero3-float-name { display: block; font-size: 14.5px; font-weight: 850; margin-top: 3px; }
.hero3-float-quote { display: block; font-size: 12.5px; color: #5a6878; margin-top: 2px; line-height: 1.4; }
.hero3-float-b {
  bottom: -28px; left: -22px;
  display: flex; align-items: center; gap: 11px;
  animation-delay: 1.6s;
}
.hero3-float-check {
  flex: none; width: 32px; height: 32px; display: grid; place-items: center;
  background: #0f766e; color: #fff; font-weight: 900; font-size: 16px; border-radius: 999px;
}
.hero3-float-copy strong { display: block; font-size: 14px; font-weight: 850; }
.hero3-float-copy small { display: block; font-size: 12px; color: #5a6878; }
@keyframes hero3floatY { 0%, 100% { translate: 0 0; } 50% { translate: 0 -9px; } }

/* ── Bottom stat band ───────────────────────────────────────── */
.hero3-stats {
  position: relative;
  max-width: 1180px; margin: 0 auto;
  padding: 22px 24px 30px;
  border-top: 1px solid rgba(255,255,255,0.12);
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px;
}
.hero3-stat { display: flex; align-items: baseline; gap: 10px; }
.hero3-stat strong { font-size: clamp(24px, 2.6vw, 32px); font-weight: 900; letter-spacing: -0.02em; color: #b8f266; font-variant-numeric: tabular-nums; }
.hero3-stat span { font-size: 13px; font-weight: 650; color: rgba(230, 243, 236, 0.72); line-height: 1.3; }

/* ── Responsive ─────────────────────────────────────────────── */
@media (max-width: 1024px) {
  .hero3-inner { grid-template-columns: 1fr; gap: 48px; }
  .hero3-stage { max-width: 560px; }
  .hero3-float-a { right: 0; }
  .hero3-float-b { left: 0; }
}
@media (max-width: 640px) {
  .hero3 h1 { font-size: clamp(34px, 9.5vw, 42px); }
  .hero3-stats { grid-template-columns: repeat(2, 1fr); }
  .hero3-float-a { display: none; }
  .hero3-float-b { bottom: -20px; }
  .hero3-cta-main, .hero3-cta-ghost { width: 100%; justify-content: center; }
}
@media (prefers-reduced-motion: reduce) {
  .hero3-float, .hero3-dot, .hero3-live span { animation: none; }
}


/* ===== DRIBBBLE THEME POLISH ===== */
:root{
  --shadow: 0 20px 50px rgba(15,118,110,.12);
  --soft-card-shadow: 0 14px 38px rgba(22,32,47,.08);
}
::selection{ background: rgba(15,118,110,.18); }
.pillar-page .guide-card,
.pillar-page .subvertical-card,
.pillar-page .snapshot-card,
.pillar-page .calc-hub-card,
.pillar-page .comparison-card,
.pillar-page .best-list > li,
.pillar-page .aside-cta,
.pillar-page .guide-takeaways,
.pillar-page .methodology-card,
.pillar-page .lead-card,
.pillar-page .pillar-faq details{ border-radius: 18px; }
.pillar-page .btn-primary{ box-shadow: 0 10px 24px rgba(15,118,110,.30); }
.pillar-page .guide-card:hover,
.pillar-page .subvertical-card:hover,
.pillar-page .calc-hub-card:hover{ box-shadow: 0 18px 44px rgba(15,118,110,.16); transform: translateY(-2px); }


/* ===== DRIBBBLE LIGHT BOTTOM (footer + methodology) ===== */
.pillar-page .methodology-card{
  background:#e9f6f4;
  color:#3d4a5c;
  border:1px solid #c8e8e4;
  box-shadow:0 14px 38px rgba(22,32,47,.06);
}
.pillar-page .methodology-card h2{ color:#16202f; }
.pillar-page .methodology-card p{ color:#3d4a5c; }
.pillar-page .methodology-card a,
.pillar-page .methodology-card .methodology-sig a{ color:#0b5e57; }
.pillar-page .methodology-card .methodology-sig{ color:#8593a8; }

.site-footer.site-footer,
.pillar-page .site-footer{
  background:#ffffff;
  color:#5b6b85;
  border-top:1px solid #e9eef5;
}
.footer-col strong{ color:#16202f; }
.footer-col a{ color:#5b6b85; }
.footer-col a:hover{ color:#0b5e57; }
.footer-bottom{ border-top:1px solid #e9eef5; }
.footer-bottom small{ color:#8593a8; }


/* ===== LENDINGTREE-STYLE HOMEPAGE ===== */
.lt-home .lt-hero{ background:#f4f6f9; padding:46px 0 60px; }
.lt-hero-head{ text-align:center; max-width:840px; margin:0 auto 30px; }
.lt-hero-head h1{ font-size:clamp(30px,4.4vw,50px); font-weight:800; letter-spacing:-.02em; line-height:1.08; color:#16202f; margin:0 0 14px; }
.lt-hero-head h1 em{ font-style:normal; color:#0f766e; }
.lt-hero-head p{ font-size:clamp(15px,1.6vw,18px); line-height:1.55; color:#5b6b85; margin:0 auto; max-width:700px; }

.lt-tabs{ display:flex; background:#fff; border:1px solid #e9eef5; border-radius:16px; box-shadow:0 14px 40px rgba(22,32,47,.07); }
.lt-tab{ flex:1 1 0; min-width:92px; display:flex; flex-direction:column; align-items:center; gap:9px; padding:16px 8px 14px; background:none; border:none; border-right:1px solid #eef1f6; cursor:pointer; position:relative; text-decoration:none; transition:background-color .15s ease; }
.lt-tab:first-child{ border-top-left-radius:15px; border-bottom-left-radius:15px; }
.lt-tab:last-child{ border-right:none; border-top-right-radius:15px; border-bottom-right-radius:15px; }
.lt-tab .lt-ic{ width:42px; height:42px; border-radius:50%; background:#e6f5f3; color:#0f766e; display:grid; place-items:center; transition:background-color .15s, color .15s; }
.lt-ic-svg{ width:21px; height:21px; }
.lt-tab-label{ font-size:12.5px; font-weight:750; color:#3d4a5c; letter-spacing:-.01em; text-align:center; }
.lt-tab:hover{ background:#fbfcfe; }
.lt-tab[aria-selected="true"]{ background:#0f766e; }
.lt-tab[aria-selected="true"] .lt-ic{ background:rgba(255,255,255,.22); color:#fff; }
.lt-tab[aria-selected="true"] .lt-tab-label{ color:#fff; }
.lt-tab[aria-selected="true"]::after{ content:""; position:absolute; bottom:-8px; left:50%; transform:translateX(-50%) rotate(45deg); width:16px; height:16px; background:#0f766e; border-radius:3px; }
.lt-tab-more .lt-ic{ background:#eaf1ff; color:#2f6bd8; }
.lt-tab-more .lt-tab-label{ color:#2f6bd8; }

.lt-panel{ display:grid; grid-template-columns:1fr 1fr; gap:44px; align-items:center; margin-top:42px; }
.lt-panel-copy .lt-eyebrow{ display:block; font-size:13px; font-weight:800; letter-spacing:.04em; color:#9aa6b8; margin-bottom:8px; }
.lt-panel-copy h2{ font-size:clamp(24px,3vw,34px); font-weight:800; letter-spacing:-.015em; color:#16202f; margin:0 0 14px; line-height:1.12; }
.lt-panel-copy p{ font-size:16px; line-height:1.62; color:#4b5a72; margin:0 0 24px; max-width:520px; }
.lt-ctas{ display:flex; gap:12px; flex-wrap:wrap; }

.lt-visual{ position:relative; display:grid; place-items:center; min-height:300px; }
.lt-visual-blob{ position:absolute; width:330px; height:330px; border-radius:50%; background:radial-gradient(circle at 40% 35%, #d8f0ed, #b9e6e1); z-index:0; }
.lt-cards{ position:relative; z-index:1; display:grid; gap:13px; width:min(360px,100%); }
.lt-card{ position:relative; display:flex; align-items:center; gap:14px; background:#fff; border:1px solid #eef1f6; border-radius:16px; padding:15px 18px; box-shadow:0 12px 30px rgba(22,32,47,.08); }
.lt-card.hi{ border-color:#a7ddd8; box-shadow:0 18px 44px rgba(15,118,110,.20); transform:scale(1.04); }
.lt-card:nth-child(1){ margin-left:-16px; }
.lt-card:nth-child(2){ margin-left:20px; }
.lt-card:nth-child(3){ margin-left:40px; }
.lt-badge{ position:absolute; top:-10px; left:18px; background:#0f766e; color:#fff; font-size:10.5px; font-weight:800; letter-spacing:.04em; padding:3px 9px; border-radius:999px; }
.lt-card-meta{ display:flex; flex-direction:column; flex:1; }
.lt-card-label{ font-size:12px; color:#8593a8; font-weight:600; }
.lt-card-value{ font-size:20px; font-weight:800; color:#16202f; line-height:1.1; margin:1px 0; }
.lt-card-sub{ font-size:12px; color:#8593a8; }
.lt-card-check{ width:24px; height:24px; border-radius:50%; background:#e6f5f3; color:#0f766e; display:grid; place-items:center; font-size:13px; font-weight:800; flex:none; }
.lt-card.hi .lt-card-check{ background:#0f766e; color:#fff; }

.lt-trust{ padding:66px 0; background:#fff; }
.lt-trust-grid{ display:grid; grid-template-columns:0.85fr 1.15fr; gap:48px; align-items:center; }
.lt-trust-visual{ display:grid; place-items:center; }
.lt-income-card{ width:min(320px,100%); background:linear-gradient(160deg,#fff,#f3fbfa); border:1px solid #c2e6e2; border-radius:22px; padding:26px 28px; box-shadow:0 20px 50px rgba(15,118,110,.14); }
.lt-income-eyebrow{ font-size:12px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:#b06088; }
.lt-income-amt{ display:block; font-size:46px; font-weight:850; color:#16202f; letter-spacing:-.02em; margin:6px 0 2px; }
.lt-income-amt span{ font-size:18px; font-weight:700; color:#8593a8; }
.lt-income-sub{ display:block; font-size:13px; color:#687386; margin-bottom:14px; }
.lt-income-chart{ width:100%; height:60px; color:#0f766e; }
.lt-trust-list{ list-style:none; margin:0; padding:0; display:grid; gap:24px; }
.lt-trust-list li{ display:flex; gap:18px; align-items:flex-start; }
.lt-num{ flex:none; width:34px; height:34px; border-radius:50%; border:2px solid #0f766e; color:#0f766e; display:grid; place-items:center; font-weight:800; font-size:15px; }
.lt-trust-list strong{ display:block; font-size:18px; color:#16202f; margin-bottom:4px; }
.lt-trust-list p{ margin:0; font-size:15px; line-height:1.55; color:#5b6b85; }

.lt-cred{ padding:26px 0 30px; background:#f9fafc; border-top:1px solid #eef1f6; border-bottom:1px solid #eef1f6; }
.lt-cred .container{ display:flex; flex-direction:column; align-items:center; gap:12px; }
.lt-cred-label{ font-size:12.5px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:#9aa6b8; }
.lt-cred-logos{ display:flex; flex-wrap:wrap; justify-content:center; gap:10px 30px; }
.lt-cred-logos span{ font-size:15px; font-weight:800; color:#aeb8c7; letter-spacing:-.01em; }

@media (max-width:880px){
  .lt-panel{ grid-template-columns:1fr; gap:28px; }
  .lt-visual{ order:-1; min-height:auto; }
  .lt-trust-grid{ grid-template-columns:1fr; gap:30px; }
  .lt-tabs{ overflow-x:auto; }
  .lt-tab{ min-width:86px; }
  .lt-cards{ width:100%; }
  .lt-card:nth-child(1),.lt-card:nth-child(2),.lt-card:nth-child(3){ margin-left:0; }
  .lt-card.hi{ transform:none; }
}

.lt-panel[hidden]{ display:none !important; }


/* ===== HERO PHOTO + FLOATING CARDS ===== */
.lt-visual{ position:relative; min-height:360px; display:flex; align-items:center; justify-content:center; }
.lt-photo{ width:300px; height:300px; border-radius:50%; object-fit:cover; border:6px solid #fff; box-shadow:0 18px 44px rgba(22,32,47,.16); position:relative; z-index:1; }
.lt-cards{ position:absolute; right:0; top:50%; transform:translateY(-50%); z-index:2; width:210px; display:grid; gap:10px; }
.lt-cards .lt-card{ margin-left:0 !important; padding:11px 14px; }
.lt-cards .lt-card.hi{ transform:none; }
.lt-cards .lt-card-value{ font-size:18px; }
.lt-cards .lt-card-check{ width:22px; height:22px; font-size:12px; }

/* ===== TESTIMONIALS ===== */
.lt-testi{ padding:60px 0; background:#f6faf9; }
.lt-testi-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.lt-testi-card{ background:#fff; border:1px solid #eef1f6; border-radius:18px; padding:24px; margin:0; box-shadow:0 12px 32px rgba(22,32,47,.06); display:flex; flex-direction:column; gap:16px; }
.lt-testi-stat{ align-self:flex-start; background:#e6f5f3; color:#0b5e57; font-weight:800; font-size:12.5px; padding:5px 12px; border-radius:999px; }
.lt-testi-card blockquote{ margin:0; font-size:15.5px; line-height:1.6; color:#2b3a52; font-weight:500; }
.lt-testi-card figcaption{ display:flex; align-items:center; gap:12px; margin-top:auto; }
.lt-testi-photo{ width:48px; height:48px; border-radius:50%; object-fit:cover; flex:none; }
.lt-testi-card figcaption strong{ display:block; font-size:14px; color:#16202f; }
.lt-testi-card figcaption small{ font-size:12.5px; color:#8593a8; }
.lt-testi-fine{ text-align:center; margin:22px 0 0; font-size:12px; color:#9aa6b8; }

@media (max-width:880px){
  .lt-visual{ flex-direction:column; gap:18px; min-height:auto; }
  .lt-cards{ position:static; transform:none; width:min(340px,100%); }
  .lt-photo{ width:220px; height:220px; }
  .lt-testi-grid{ grid-template-columns:1fr; }
}


/* ===== MEGA-MENU NAV ===== */
.has-amega{ position:relative; }
.amega-trigger{ font:inherit; background:none; border:0; cursor:pointer; display:inline-flex; align-items:center; gap:5px; }
.amega-caret{ width:10px; height:6px; transition:transform .16s ease; opacity:.7; }
.has-amega:hover .amega-caret, .has-amega.is-open .amega-caret{ transform:rotate(180deg); }
/* invisible hover bridge between trigger and panel */
.has-amega::after{ content:""; position:absolute; left:-12px; right:-12px; top:100%; height:16px; }
.amega-panel{
  position:absolute; top:calc(100% + 14px); left:50%; transform:translateX(-50%);
  display:none; gap:24px; background:#fff; border:1px solid #e9eef5; border-radius:18px;
  box-shadow:0 26px 64px rgba(22,32,47,.16); padding:24px; z-index:70;
}
.has-amega:hover .amega-panel,
.has-amega:focus-within .amega-panel,
.has-amega.is-open .amega-panel{ display:flex; }
.amega-cols{ display:flex; gap:30px; }
.amega-col{ display:flex; flex-direction:column; gap:7px; min-width:158px; }
.amega-col strong{ font-size:11.5px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:#9aa6b8; margin-bottom:4px; }
.amega-col a{ font-size:14px; font-weight:650; color:#2b3a52; text-decoration:none; padding:2px 0; white-space:nowrap; }
.amega-col a:hover{ color:#0b5e57; }
.amega-pick{ width:236px; background:linear-gradient(160deg,#fff,#e9f6f4); border:1px solid #c8e8e4; border-radius:14px; padding:18px; text-decoration:none; display:flex; flex-direction:column; gap:6px; transition:box-shadow .15s, border-color .15s; }
.amega-pick:hover{ border-color:#0f766e; box-shadow:0 14px 32px rgba(15,118,110,.16); }
.amega-pick-eyebrow{ font-size:11px; font-weight:800; letter-spacing:.05em; color:#0b5e57; }
.amega-pick strong{ font-size:15px; color:#16202f; line-height:1.25; }
.amega-pick p{ font-size:13px; color:#5b6b85; margin:0; line-height:1.45; }
.amega-pick-cta{ font-size:13px; font-weight:800; color:#0b5e57; margin-top:auto; }

/* Mobile: panels become inline accordions inside the open nav */
@media (max-width:1024px){
  .amega-panel{ position:static; transform:none; display:none; box-shadow:none; border:none; border-radius:0;
    padding:6px 0 10px 12px; flex-direction:column; gap:14px; }
  .has-amega.is-open .amega-panel{ display:flex; }
  .has-amega:hover .amega-panel, .has-amega:focus-within .amega-panel{ display:none; }
  .has-amega.is-open .amega-panel{ display:flex; }
  .amega-cols{ flex-direction:column; gap:14px; }
  .amega-col a{ white-space:normal; }
  .amega-pick{ width:100%; }
  .has-amega::after{ display:none; }
}

/* Mega panel: reset inherited nowrap so pick-card text wraps */
.amega-panel, .amega-pick, .amega-pick strong, .amega-pick p, .amega-col strong{ white-space:normal; }

/* ===== MEGA PICK CARD — compact, content-height, centered ===== */
.amega-panel{ align-items:flex-start; }
.amega-pick{ align-self:center; width:240px; text-align:left; background:linear-gradient(165deg,#ffffff,#e6f5f3); border:1px solid #c8e8e4; border-radius:16px; padding:18px 18px 16px; display:flex; flex-direction:column; gap:7px; text-decoration:none; }
.amega-pick-ic{ width:36px; height:36px; border-radius:11px; background:#fff; color:#0f766e; display:grid; place-items:center; box-shadow:0 5px 14px rgba(15,118,110,.20); margin-bottom:4px; }
.amega-pick-ic svg{ width:19px; height:19px; }
.amega-pick-eyebrow{ font-size:10.5px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; color:#0b5e57; }
.amega-pick strong{ font-size:16px; font-weight:800; color:#16202f; line-height:1.2; }
.amega-pick p{ font-size:13px; color:#5b6b85; margin:0; line-height:1.5; }
.amega-pick-cta{ margin-top:6px; font-size:13.5px; font-weight:800; color:#0b5e57; }
.amega-pick:hover{ border-color:#0f766e; box-shadow:0 14px 34px rgba(15,118,110,.16); transform:translateY(-1px); }
.amega-pick:hover .amega-pick-cta{ text-decoration:underline; }
@media (max-width:1024px){ .amega-pick{ align-self:stretch; width:100%; } }

/* Pick card: beat .site-nav a (0,1,1) specificity + left-align */
.amega-panel .amega-pick{ display:flex; flex-direction:column; align-items:flex-start; align-self:center; width:240px; min-height:0; padding:18px 18px 16px; text-align:left; gap:7px; background:linear-gradient(165deg,#ffffff,#e6f5f3); border:1px solid #c8e8e4; border-radius:16px; text-decoration:none; }
.amega-panel .amega-pick .amega-pick-cta{ margin-top:6px; }

/* ===== DRIBBBLE-STYLE MEGA PANELS (icon + title + desc) ===== */
.has-amega:hover .amega-panel, .has-amega:focus-within .amega-panel, .has-amega.is-open .amega-panel{ display:block; }
/* Mobile accordion: a tap focuses the trigger, so hover/focus-within must NOT keep the
   panel open — otherwise removing .is-open can't collapse it. Only the JS click-toggle
   (.is-open) controls the panel at <=1024px. */
@media (max-width:1024px){
  .has-amega:hover .amega-panel,
  .has-amega:focus-within .amega-panel{ display:none; }
  .has-amega.is-open .amega-panel{ display:block; }
}
.amega-panel{ padding:22px 24px; min-width:540px; gap:0; }
.amega-row{ display:grid; grid-template-columns:minmax(300px,1fr) auto; column-gap:54px; }
.amega-main{ display:grid; gap:5px; }
.amega-panel .amega-item{ display:flex; align-items:flex-start; gap:14px; padding:8px 10px; border-radius:10px; text-decoration:none; min-height:0; white-space:normal; }
.amega-panel .amega-item:hover{ background:#f6faf9; }
.amega-item-ic{ color:#16202f; flex:none; margin-top:1px; }
.amega-item-ic svg{ width:22px; height:22px; display:block; }
.amega-panel .amega-item:hover .amega-item-ic{ color:#0f766e; }
.amega-item-tx{ display:flex; flex-direction:column; }
.amega-item-tx strong{ font-size:15px; font-weight:750; color:#16202f; line-height:1.25; }
.amega-item-tx p{ margin:2px 0 0; font-size:13px; color:#8593a8; line-height:1.4; }
.amega-new{ display:inline-block; background:#0f766e; color:#fff; font-size:9px; font-weight:800; letter-spacing:.05em; padding:2px 7px; border-radius:999px; margin-left:8px; vertical-align:middle; position:relative; top:-1px; }
.amega-side{ display:grid; gap:18px; align-content:start; padding-top:6px; }
.amega-panel .amega-side a{ font-size:14.5px; font-weight:750; color:#16202f; text-decoration:none; white-space:nowrap; min-height:0; padding:0; display:inline-block; }
.amega-panel .amega-side a:hover{ color:#0b5e57; }
.amega-arr{ color:#9aa6b8; }
.amega-panel .amega-side a:hover .amega-arr{ color:#0b5e57; }
.amega-panel .amega-foot{ display:flex; align-items:center; gap:11px; margin-top:16px; padding:16px 10px 2px; border-top:1px solid #eef1f6; color:#687386; font-size:13.5px; font-weight:650; text-decoration:none; min-height:0; }
.amega-foot svg{ width:18px; height:18px; color:#9aa6b8; flex:none; }
.amega-panel .amega-foot:hover{ color:#0b5e57; }
.amega-panel .amega-foot:hover svg{ color:#0b5e57; }
@media (max-width:1024px){ .amega-panel{ min-width:0; padding:6px 0 10px 12px; } .amega-row{ grid-template-columns:1fr; row-gap:8px; } .amega-side{ padding-top:0; gap:12px; } .amega-panel .amega-foot{ margin-top:10px; } }

/* Brand mark = inline SVG logo (override old CSS-drawn mark) */
.brand-mark{ background:none; overflow:hidden; }
.brand-mark::before, .brand-mark::after{ content:none; }
.brand-mark > span{ display:none; }
.brand-mark svg{ width:42px; height:42px; display:block; }

/* Filled prose CTA buttons: white text, no underline (beat .guide-body a link color, 0,2,1) */
.pillar-page .guide-body a.dc-verdict-cta,
.pillar-page .editorial-main a.dc-verdict-cta,
.pillar-page .guide-body a.dc-verdict-cta:hover,
.pillar-page .editorial-main a.dc-verdict-cta:hover{ color:#fff; text-decoration:none; }

/* ===== CREDIBILITY MARQUEE (auto-scrolling source ticker) ===== */
.lt-cred{ overflow:hidden; }
.lt-cred .container{ display:block; }
.lt-cred-label{ display:block; text-align:center; margin-bottom:16px; }
.lt-cred-marquee{ position:relative; width:100%; overflow:hidden; -webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent); mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent); }
.lt-cred-track{ display:flex; width:max-content; animation:lt-cred-scroll 34s linear infinite; }
.lt-cred-marquee:hover .lt-cred-track{ animation-play-state:paused; }
.lt-cred-group{ display:flex; flex:0 0 auto; }
.lt-cred-logo{ padding:0 33px; font-size:15px; font-weight:800; color:#aeb8c7; letter-spacing:-.01em; white-space:nowrap; }
@keyframes lt-cred-scroll{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
/* 4-group variant for short logo sets: each group can be < viewport, so 2 groups would
   leave a gap at the loop point. With 4 groups we translate one group-width (-25%),
   keeping ≥3 groups on screen at all times (covers viewports up to ~3× a group). */
.lt-cred-track--quad{ animation-name:lt-cred-scroll-quad; }
@keyframes lt-cred-scroll-quad{ from{ transform:translateX(0); } to{ transform:translateX(-25%); } }
@media (prefers-reduced-motion: reduce){ .lt-cred-track{ animation:none; flex-wrap:wrap; width:100%; justify-content:center; } .lt-cred-group[aria-hidden="true"]{ display:none; } }

/* ===== CARRIER TICKER (chips, reverse direction) ===== */
.lt-carriers{ padding:30px 0 36px; overflow:hidden; }
.lt-carriers-track{ animation-duration:48s; animation-direction:reverse; }
.lt-carrier-chip{ display:inline-flex; align-items:center; gap:9px; margin:0 9px; padding:9px 18px; border:1px solid #eef1f6; border-radius:999px; background:#fff; font-size:15px; font-weight:750; color:#3d4a5c; white-space:nowrap; box-shadow:0 5px 16px rgba(22,32,47,.05); }
.lt-carrier-chip em{ font-style:normal; font-size:10.5px; font-weight:800; color:#0b5e57; background:#e6f5f3; padding:2px 8px; border-radius:999px; }
@media (prefers-reduced-motion: reduce){ .lt-carriers-track{ animation:none; flex-wrap:wrap; width:100%; justify-content:center; gap:10px; } .lt-carriers-track .lt-cred-group[aria-hidden="true"]{ display:none; } }

/* ===== CONTACT FORM (/contact/) =====
   Reuses .adv-request (card) + .adv-request-form (labels, input/textarea) +
   .adv-form-row (two-up) + .adv-checkbox (consent) + .adv-form-fine (fineprint).
   Below adds only what those rules don't cover, scoped to .contact-form /
   .contact-form-section. Accent: teal #0f766e (matches the site). */

/* Topic <select> — match the .adv-request-form input look (those rules cover
   input + textarea only, not select). */
.contact-form select {
  font-family: inherit; font-size: 15px; padding: 11px 13px;
  border: 1px solid #d6deea; border-radius: 10px; background: #fff;
  color: #172949; width: 100%; min-height: 46px;
}
.contact-form textarea { width: 100%; resize: vertical; min-height: 120px; }

/* Teal focus rings. The global rule (styles.css ~836-840) covers input + select;
   this keeps all three consistent and adds the textarea + checkbox it misses. */
.contact-form input:focus,
.contact-form select:focus,
.contact-form textarea:focus {
  outline: none; border-color: rgba(15, 118, 110, 0.62);
  box-shadow: 0 0 0 3px rgba(15, 118, 110, 0.18);
}
.contact-consent input:focus-visible { outline: 2px solid #0f766e; outline-offset: 2px; }

/* Invalid-field state */
.contact-form [aria-invalid="true"] {
  border-color: #b3261e !important;
  box-shadow: 0 0 0 3px rgba(179, 38, 30, 0.12);
}

/* Honeypot — visually + off-screen, out of tab order (kept in the a11y tree
   with a "leave empty" label so screen-reader users skip it). */
.contact-hp {
  position: absolute !important;
  width: 1px; height: 1px;
  overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%);
  white-space: nowrap; border: 0; padding: 0; margin: -1px;
}

/* Per-field inline errors */
.contact-field-err { display: block; margin-top: 5px; font-size: 12.5px; font-weight: 700; color: #b3261e; }
.contact-consent-err { margin-top: -6px; margin-bottom: 14px; margin-left: 28px; }

/* Error summary */
.contact-error-summary {
  margin: 0 0 18px; padding: 14px 16px;
  border: 1px solid #f0c4c0; border-radius: 12px;
  background: #fdf2f1; color: #842420; font-size: 14px;
}
.contact-error-summary ul { margin: 8px 0 0; padding-left: 18px; }
.contact-error-summary a { color: #b3261e; font-weight: 700; }
.contact-error-summary:focus-visible { outline: 2px solid #b3261e; outline-offset: 2px; }

/* aria-live status region */
.contact-status { margin: 12px 0 0; font-size: 14px; line-height: 1.5; min-height: 1em; color: #6a7686; }
.contact-status--success { color: #0b5e57; font-weight: 700; }
.contact-status--error   { color: #b3261e; font-weight: 700; }
.contact-status--preview { color: #0b5e57; font-weight: 600; }

/* Submit spinner */
.cf-spinner {
  display: inline-block; width: 15px; height: 15px; margin-left: 8px;
  border: 2px solid rgba(255, 255, 255, 0.45); border-top-color: #fff;
  border-radius: 50%; vertical-align: -2px;
  animation: cf-spin 0.7s linear infinite;
}
@keyframes cf-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .cf-spinner { animation: none; } }
.contact-form[aria-busy="true"] #cf-submit { opacity: .75; cursor: progress; }

/* Direct-email channels — Dribbble-style icon cards below the form */
.contact-channels-section { margin-top: 30px; }
.contact-channels-head { margin-bottom: 14px; }
.contact-eyebrow {
  display: inline-block; font-size: 12px; font-weight: 800;
  letter-spacing: 0.08em; text-transform: uppercase; color: #0f766e; margin-bottom: 6px;
}
.contact-channels-head h2 { margin: 0; }
.contact-channels { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.contact-channel {
  display: flex; flex-direction: column; gap: 9px; padding: 20px;
  background: #fff; border: 1px solid #e6ebf2; border-radius: 16px;
  box-shadow: 0 6px 18px rgba(22, 32, 47, 0.05); text-decoration: none;
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.contact-channel:hover { transform: translateY(-2px); box-shadow: 0 12px 26px rgba(22, 32, 47, 0.09); border-color: #cfe6e2; }
.contact-channel-ic { width: 42px; height: 42px; border-radius: 12px; background: #e6f5f3; color: #0f766e; display: grid; place-items: center; }
.contact-channel h3 { margin: 0; font-size: 16px; font-weight: 800; color: #0e1a33; }
.contact-channel p { margin: 0; font-size: 13px; color: #6a7686; line-height: 1.5; }
.contact-channel-email { margin-top: auto; font-size: 14px; font-weight: 700; color: #0f766e; word-break: break-word; }
.contact-channel:hover .contact-channel-email { text-decoration: underline; }
@media (max-width: 720px) { .contact-channels { grid-template-columns: 1fr; } }

/* ===== ADVISOR DIRECTORY — audit fixes (focus rings, form a11y) ===== */
.adv-card:focus-visible,
.adv-video-card:focus-visible { outline: 2px solid #0f766e; outline-offset: 3px; }
.adv-star-btn:focus-visible { outline: 2px solid #0f766e; outline-offset: 2px; border-radius: 4px; }
.adv-link-btn:focus-visible { outline: 2px solid #0f766e; outline-offset: 2px; }
.adv-error-summary { margin: 0 0 18px; padding: 14px 16px; border: 1px solid #f0c4c0; border-radius: 12px; background: #fdf2f1; color: #842420; font-size: 14px; }
.adv-error-summary ul { margin: 8px 0 0; padding-left: 18px; }
.adv-error-summary a { color: #b3261e; font-weight: 700; }
.adv-error-summary:focus-visible { outline: 2px solid #b3261e; outline-offset: 2px; }
.adv-field-err { display: block; margin-top: 5px; font-size: 12.5px; font-weight: 700; color: #b3261e; }
.adv-review-form [aria-invalid="true"] { border-color: #b3261e !important; box-shadow: 0 0 0 3px rgba(179,38,30,0.12); }
.adv-hp { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0; padding: 0; margin: -1px; }
.adv-status { margin: 12px 0 0; font-size: 14px; line-height: 1.5; min-height: 1em; color: #6a7686; }
.adv-status--success { color: #0b5e57; font-weight: 700; }
.adv-status--error { color: #b3261e; font-weight: 700; }
.adv-status--preview { color: #0b5e57; font-weight: 600; }
.adv-review-form[aria-busy="true"] button[type="submit"] { opacity: .75; cursor: progress; }

/* ===== AGENT INTAKE FORM (/agents/apply/) ===== */
.intake-page { padding: 36px 0 56px; }
.intake-page h1 { font-size: clamp(26px, 3.4vw, 38px); font-weight: 900; color: #0e1a33; margin: 6px 0 10px; letter-spacing: -0.01em; }
.intake-lede { font-size: 16px; color: #41506a; line-height: 1.6; max-width: 70ch; margin: 0; }
.intake-form { margin-top: 24px; }
.intake-section { background: #fff; border: 1px solid #e6ebf2; border-radius: 16px; padding: 22px 24px; margin-bottom: 18px; }
.intake-section h2 { margin: 0 0 14px; font-size: 18px; color: #0e1a33; }
.intake-note { font-size: 13px; color: #6a7686; margin: -6px 0 14px; }
.intake-form label { display: flex; flex-direction: column; gap: 5px; font-size: 13px; font-weight: 700; color: #41506a; margin-bottom: 14px; }
.intake-form input, .intake-form textarea, .intake-form select {
  font-family: inherit; font-size: 15px; padding: 11px 13px; border: 1px solid #d6deea;
  border-radius: 10px; background: #fff; color: #172949; width: 100%; min-height: 46px;
}
.intake-form textarea { resize: vertical; min-height: 110px; }
.intake-form input:focus, .intake-form textarea:focus, .intake-form select:focus {
  outline: none; border-color: rgba(15, 118, 110, 0.62); box-shadow: 0 0 0 3px rgba(15, 118, 110, 0.18);
}
.intake-form [aria-invalid="true"] { border-color: #b3261e !important; box-shadow: 0 0 0 3px rgba(179, 38, 30, 0.12); }
.intake-checks-group { border: 0; padding: 0; margin: 0 0 14px; min-width: 0; }
.intake-checks-group legend { font-size: 13px; font-weight: 700; color: #41506a; margin-bottom: 8px; padding: 0; }
.intake-checks { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 6px 14px; margin-bottom: 10px; }
.intake-states { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); max-height: 280px; overflow: auto; border: 1px solid #eef1f6; border-radius: 10px; padding: 12px; }
.intake-check { flex-direction: row !important; align-items: center; gap: 8px !important; font-weight: 600 !important; font-size: 13.5px; margin: 0 !important; cursor: pointer; }
.intake-check input { width: 16px; height: 16px; min-height: 0; flex: 0 0 auto; }
.intake-hint { font-size: 12px; color: #6a7686; font-weight: 500; line-height: 1.45; margin-top: 2px; }
.intake-opt { color: #9aa4b2; font-weight: 600; }
.intake-section .adv-checkbox input:focus-visible,
.intake-check input:focus-visible { outline: 2px solid #0f766e; outline-offset: 2px; }

/* Multi-step wizard + rich-text bio editor */
.req { color: #d1453b; font-weight: 800; }
.intake-wizard { background: #fff; border: 1px solid #e6ebf2; border-radius: 16px; padding: 26px 28px; margin-top: 22px; box-shadow: 0 6px 22px rgba(23, 41, 73, 0.05); }
.wiz-head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.wiz-title { font-size: 20px; font-weight: 800; color: #0e1a33; margin: 0; }
.wiz-count { font-size: 14px; font-weight: 700; color: #9aa4b2; white-space: nowrap; }
.wiz-count strong { color: #0f766e; }
.wiz-bar { height: 5px; background: #eef1f6; border-radius: 99px; margin: 12px 0 26px; overflow: hidden; }
.wiz-bar-fill { display: block; height: 100%; background: linear-gradient(90deg, #5ec5bf, #0f766e); border-radius: 99px; transition: width .35s ease; }
.wiz-step { border: 0; padding: 0; margin: 0; min-width: 0; }
.wiz-nav { display: flex; justify-content: flex-end; gap: 12px; margin-top: 10px; }
.wiz-nav [data-wiz-back] { margin-right: auto; }
.wiz-nav .btn { min-width: 130px; }
.intake-subhead { font-size: 15px; font-weight: 800; color: #0e1a33; margin: 24px 0 4px; padding-top: 18px; border-top: 1px solid #eef1f6; }
.rte { border: 1px solid #d6deea; border-radius: 10px; overflow: hidden; margin-bottom: 14px; background: #fff; }
.rte:focus-within { border-color: rgba(15, 118, 110, 0.62); box-shadow: 0 0 0 3px rgba(15, 118, 110, 0.18); }
.rte-toolbar { display: flex; gap: 2px; padding: 6px; border-bottom: 1px solid #eef1f6; background: #fafbfc; }
.rte-btn { min-width: 34px; height: 32px; border: 0; background: none; border-radius: 7px; cursor: pointer; color: #41506a; font-size: 14px; font-weight: 700; }
.rte-btn:hover { background: #eef1f6; }
.rte-btn[aria-pressed="true"] { background: #e6f5f3; color: #0b5e57; }
.rte-btn:focus-visible { outline: 2px solid #0f766e; outline-offset: 1px; }
.rte-area { min-height: 150px; padding: 12px 14px; font-size: 15px; line-height: 1.6; color: #172949; outline: none; }
.rte-area ul, .rte-area ol { margin: 6px 0 6px 22px; }

/* The [hidden] attribute must always win over component display rules
   (.btn=inline-flex, .cf-spinner=inline-block, .adv-field-err=block, etc.). */
[hidden] { display: none !important; }

/* Full Dribbble treatment (Mona Sans): single-story a + g everywhere
   (ss05 + ss06), tighter display tracking on the hero headlines. */
body { font-feature-settings: "ss05" 1, "ss06" 1; }
.hero-redesigned h1, .hp-h1, .adv-hub-hero h1, .calc-hub-hero h1,
.pillar-hero-copy h1, .intake-page h1, .cr-hero-body h1 { letter-spacing: -0.032em; }

/* Best-of at-a-glance comparison table */
.bestof-table-title { font-size: 20px; font-weight: 800; color: #0e1a33; margin: 8px 0 14px; letter-spacing: -0.01em; }
.bestof-table-wrap { overflow-x: auto; border: 1px solid #e6ebf2; border-radius: 14px; margin-bottom: 30px; -webkit-overflow-scrolling: touch; }
.bestof-table-wrap:focus-visible { outline: 2px solid #0f766e; outline-offset: 2px; }
.bestof-table { width: 100%; border-collapse: collapse; font-size: 14px; min-width: 760px; }
.bestof-table thead th { position: sticky; top: 0; background: #0f766e; color: #fff; text-align: left; font-size: 11.5px; font-weight: 800; letter-spacing: .03em; text-transform: uppercase; padding: 11px 14px; white-space: nowrap; }
.bestof-table tbody td { padding: 12px 14px; border-top: 1px solid #eef1f6; color: #2a3854; vertical-align: middle; white-space: nowrap; }
.bestof-table tbody tr:nth-child(even) { background: #fafbfc; }
.bestof-table tbody tr:hover { background: #f0faf9; }
.bestof-table .bt-rank { font-weight: 800; color: #0f766e; }
.bestof-table .bt-name a { color: #0e1a33; font-weight: 800; text-decoration: none; }
.bestof-table .bt-name a:hover { color: #0f766e; text-decoration: underline; }
.bestof-table .bt-bestfor { color: #6a7686; white-space: normal; min-width: 160px; }
.bestof-more { font-size: 13.5px; color: #6a7686; margin-top: 6px; text-align: center; }
.cta-disclosure { display: block; font-size: 11.5px; line-height: 1.45; color: #6a7686; margin-top: 10px; }
.cta-disclosure a { color: #6a7686; text-decoration: underline; }

/* Carrier-review de-templated editorial: best-for / watch-out two-up */
.cr-bestwatch{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:22px 0}
.cr-bw{padding:16px 18px;border-radius:13px;border:1px solid #e9eef4}
.cr-bw strong{display:block;font-size:13px;letter-spacing:.04em;text-transform:uppercase;margin-bottom:6px}
.cr-bw p{margin:0;font-size:14.5px;line-height:1.55;color:#41506a}
.cr-bw-good{background:#f0faf8;border-color:#cfeae6}
.cr-bw-good strong{color:#0f766e}
.cr-bw-warn{background:#fdf6ec;border-color:#f0e2c8}
.cr-bw-warn strong{color:#9a6a16}
@media (max-width:640px){.cr-bestwatch{grid-template-columns:1fr}}

/* ── Cinematic editorial hero (guides + news): cover photo + teal title card ── */
.ed-hero{ position:relative; width:100%; min-height:clamp(340px,40vw,520px); display:flex; align-items:center; overflow:hidden; background:#0b1220; }
.ed-hero-img{ position:absolute; inset:0; z-index:1; width:100%; height:100%; object-fit:cover; object-position:center; }
.ed-hero-shade{ position:absolute; inset:0; z-index:2; background:linear-gradient(100deg, rgba(8,16,22,.66) 0%, rgba(8,16,22,.44) 40%, rgba(8,16,22,.12) 72%, rgba(8,16,22,.22) 100%); }
.ed-hero-inner{ position:relative; z-index:3; width:100%; min-width:0; padding-top:44px; padding-bottom:44px; }
.ed-hero-card{ box-sizing:border-box; width:100%; max-width:560px; background:#0f766e; color:#fff; padding:32px 36px; border-radius:18px; box-shadow:0 22px 60px rgba(8,20,18,.42); }
.ed-hero-title, .ed-hero-dek{ overflow-wrap:break-word; }
.ed-hero-eyebrow{ display:block; font-size:12px; font-weight:800; letter-spacing:.10em; text-transform:uppercase; color:#c2ece7; margin-bottom:13px; }
.ed-hero-title{ margin:0; font-size:clamp(26px,3.3vw,40px); line-height:1.1; font-weight:800; letter-spacing:-.022em; color:#fff; }
/* Win over `.news-article h1` / `.guide-body h1` (0,1,1) which would otherwise force the hero title dark on the teal card. */
.ed-hero-card .ed-hero-title{ color:#fff; -webkit-text-fill-color:#fff; }
.ed-hero-dek{ margin:14px 0 0; font-size:15.5px; line-height:1.55; color:#e8f5f3; }
/* posthero header: title/eyebrow now live in the hero card, so tighten the gap above the byline */
.guide-article-header--posthero{ margin-top:26px; }
@media (max-width:820px){
  .ed-hero{ min-height:330px; align-items:flex-end; }
  .ed-hero-inner{ padding-top:0; padding-bottom:20px; }
  .ed-hero-card{ max-width:none; padding:22px 24px; border-radius:14px; }
  .ed-hero-title{ font-size:23px; }
  .ed-hero-dek{ font-size:14.5px; }
}

/* ── Homepage news section: image-overlay cards (one feature + four small) ── */
.home-news{ padding:16px 0 40px; }
.home-news-grid{ display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:188px; gap:16px; }
.home-news-more{ text-align:center; margin-top:32px; }
.hn-card{ position:relative; display:block; overflow:hidden; border-radius:16px; text-decoration:none; isolation:isolate; background:#0b1220; box-shadow:0 8px 26px rgba(15,30,50,.10); }
.hn-card--feature{ grid-column:span 2; grid-row:span 2; }
.hn-card img{ position:absolute; inset:0; z-index:1; width:100%; height:100%; object-fit:cover; transition:transform .55s ease; }
.hn-card:hover img{ transform:scale(1.06); }
.hn-card-grad{ position:absolute; inset:0; z-index:2; background:linear-gradient(to top, rgba(8,16,22,.9) 0%, rgba(8,16,22,.4) 47%, rgba(8,16,22,0) 78%); }
.hn-card-body{ position:absolute; z-index:3; left:0; right:0; bottom:0; padding:15px 17px; }
.hn-cat{ display:inline-block; font-size:10px; font-weight:800; letter-spacing:.09em; text-transform:uppercase; color:#bfeae5; margin-bottom:6px; }
.hn-title{ display:block; color:#fff; font-size:14.5px; line-height:1.28; font-weight:700; letter-spacing:-.01em; }
.hn-card--feature .hn-title{ font-size:23px; line-height:1.16; }
.hn-card--feature .hn-card-body{ padding:22px 24px; }
.hn-date{ display:block; font-size:11.5px; color:#cdd6e2; margin-top:8px; }
.hn-card:focus-visible{ outline:3px solid #0f766e; outline-offset:2px; }
@media (max-width:900px){
  .home-news-grid{ grid-template-columns:repeat(2,1fr); grid-auto-rows:165px; }
  .hn-card--feature{ grid-column:span 2; grid-row:span 1; }
  .hn-card--feature .hn-title{ font-size:20px; }
}
@media (max-width:540px){
  .home-news-grid{ grid-template-columns:1fr; grid-auto-rows:180px; }
  .hn-card--feature{ grid-column:span 1; }
}

/* ── Animated stripe separator: two teal bands scrolling opposite ways ── */
.stripe-sep{ position:relative; height:186px; margin:10px 0; overflow:hidden; }
.stripe-band{ position:absolute; left:-9%; width:118%; display:flex; overflow:hidden; -webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent); mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent); }
.stripe-band--a{ top:68px; z-index:2; transform:rotate(-3.2deg); background:linear-gradient(90deg,#0b5e57,#0f766e 60%); box-shadow:0 16px 34px rgba(11,94,87,.20); }
.stripe-band--b{ top:68px; z-index:1; transform:rotate(3.2deg); background:#5ec5bf; }
.stripe-track{ display:flex; flex:0 0 auto; align-items:center; padding:13px 0; animation:stripe-scroll 32s linear infinite; }
.stripe-track--rev{ animation-direction:reverse; animation-duration:39s; }
.stripe-group{ display:flex; flex:0 0 auto; }
.stripe-item{ display:inline-flex; align-items:center; white-space:nowrap; font-size:18px; font-weight:800; letter-spacing:.03em; text-transform:uppercase; color:#fff; }
.stripe-item .stripe-mark{ width:19px; height:19px; margin:0 26px; flex:0 0 auto; color:#bff0ea; }
.stripe-band--b .stripe-item{ color:#063c38; }
.stripe-band--b .stripe-item .stripe-mark{ color:#0b5e57; }
@keyframes stripe-scroll{ from{ transform:translateX(0); } to{ transform:translateX(-25%); } }
@media (prefers-reduced-motion: reduce){ .stripe-track{ animation:none; } }
@media (max-width:640px){ .stripe-sep{ height:150px; } .stripe-item{ font-size:14px; } .stripe-band--a, .stripe-band--b{ top:52px; } .stripe-item .stripe-mark{ width:16px; height:16px; margin:0 18px; } }

/* Inline links in section-header subtitles should clearly read as clickable */
.pillar-page .section-header p a{ color:#0f766e; font-weight:700; text-decoration:underline; text-underline-offset:3px; text-decoration-thickness:2px; white-space:nowrap; }
.pillar-page .section-header p a:hover{ color:#0b5e57; }

/* Hero info aside: "Our #1 pick" at-a-glance card (replaces the lead-form on best-of heroes) */
.hero-toppick{ align-self:center; justify-self:end; width:100%; max-width:420px; box-sizing:border-box; background:#fff; border:1px solid #e7eef0; border-radius:20px; padding:26px 28px; box-shadow:0 22px 54px rgba(15,40,60,.12); }
.htp-eyebrow{ display:block; font-size:11px; font-weight:800; letter-spacing:.09em; text-transform:uppercase; color:#0f766e; margin-bottom:13px; }
.htp-head{ display:flex; align-items:baseline; justify-content:space-between; gap:12px; }
.htp-name{ font-size:22px; font-weight:800; color:#172949; letter-spacing:-.015em; line-height:1.1; }
.htp-rating{ font-size:26px; font-weight:800; color:#0f766e; white-space:nowrap; }
.htp-rating small{ font-size:14px; color:#7a8aa0; font-weight:700; }
.htp-why{ margin:11px 0 17px; font-size:14.5px; line-height:1.5; color:#41506a; }
.htp-facts{ list-style:none; display:flex; gap:9px; padding:0; margin:0 0 18px; }
.htp-facts li{ flex:1; background:#f3f8f8; border:1px solid #e4eeec; border-radius:11px; padding:10px 8px; text-align:center; }
.htp-facts span{ display:block; font-size:10px; text-transform:uppercase; letter-spacing:.04em; color:#7a8aa0; margin-bottom:4px; }
.htp-facts strong{ font-size:15px; color:#0f3b37; }
.htp-link{ display:inline-block; font-weight:700; color:#0f766e; text-decoration:underline; text-underline-offset:3px; text-decoration-thickness:2px; }
.htp-link:hover{ color:#0b5e57; }
@media (max-width:900px){ .hero-toppick{ justify-self:stretch; max-width:none; } }

/* Related-guides: balanced 3-up layout (was auto-fill → left-aligned with an empty 4th column) */
.pillar-page .guide-grid--center { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 880px){ .pillar-page .guide-grid--center { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px){ .pillar-page .guide-grid--center { grid-template-columns: 1fr; } }
/* Restore the card image header: legacy `.guide-grid span` (0,1,1) was forcing a 999px pill + mint padding on the thumb */
.pillar-page .guide-grid .guide-card .guide-card-thumb { display:block; padding:0; background:var(--acc-tint,#f4faf7); border-radius:16px 16px 0 0; }

/* Section-header H1 (e.g. the News listing) — base h1 is white/huge for dark heroes; make it visible on white sections */
.pillar-page .section-header h1 { max-width: none; color: #172949; font-size: clamp(28px, 3vw, 38px); font-weight: 800; line-height: 1.15; letter-spacing: -0.01em; margin: 0 0 10px; }

/* Income-card asterisk + disclaimer footnote */
.lt-income-amt sup{ font-size:20px; font-weight:700; color:#b06088; vertical-align:super; margin-left:2px; line-height:0; }
.lt-trust-note{ max-width:900px; margin:34px auto 0; text-align:center; font-size:12px; line-height:1.5; color:#8a96a8; }

/* Rates-by-state directory (on /rates/) */
.state-rates-dir{ padding:8px 0 46px; }
.state-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(155px,1fr)); gap:2px 22px; }
.state-grid a{ display:block; padding:7px 2px; font-size:14px; color:#0f766e; text-decoration:none; border-bottom:1px solid #eef2f5; }
.state-grid a:hover{ text-decoration:underline; }

/* Footer "rates by state" directory row */
.footer-states{ padding:24px 0 6px; border-top:1px solid #e9eef5; }
.footer-states > strong{ display:block; font-size:12.5px; letter-spacing:.05em; text-transform:uppercase; color:#16202f; margin-bottom:14px; }
.footer-states-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(108px,1fr)); gap:5px 18px; }
.footer-states-grid a{ font-size:12.5px; color:#5b6b85; text-decoration:none; }
.footer-states-grid a:hover{ color:#0b5e57; text-decoration:underline; }
@media (max-width:600px){ .footer-states-grid{ grid-template-columns:repeat(2,1fr); } }

/* Guides-hub hero "Start here" card */
.hero-startguides{ align-self:center; justify-self:end; width:100%; max-width:430px; box-sizing:border-box; background:#fff; border:1px solid #e7eef0; border-radius:20px; padding:24px 26px; box-shadow:0 22px 54px rgba(15,40,60,.12); }
.hsg-eyebrow{ display:block; font-size:11px; font-weight:800; letter-spacing:.09em; text-transform:uppercase; color:#0f766e; margin-bottom:5px; }
.hsg-intro{ margin:0 0 14px; font-size:13.5px; color:#5b6b85; }
.hsg-list{ list-style:none; margin:0 0 14px; padding:0; counter-reset:hsg; display:grid; gap:2px; }
.hsg-list li{ counter-increment:hsg; }
.hsg-list a{ display:flex; align-items:flex-start; gap:11px; padding:9px 6px; border-radius:11px; text-decoration:none; transition:background .12s ease; }
.hsg-list a:hover{ background:#f3f8f8; }
.hsg-list a::before{ content:counter(hsg); flex:none; width:22px; height:22px; margin-top:1px; border-radius:999px; background:#e6f5f3; color:#0f766e; font-size:12px; font-weight:800; display:grid; place-items:center; }
.hsg-txt{ display:block; }
.hsg-txt strong{ display:block; font-size:14px; color:#172949; font-weight:700; line-height:1.25; }
.hsg-desc{ display:block; font-size:12px; color:#7a8aa0; margin-top:1px; }
.hsg-quiz{ display:inline-block; font-size:13.5px; font-weight:700; color:#0f766e; text-decoration:underline; text-underline-offset:3px; }
.hsg-quiz:hover{ color:#0b5e57; }
@media (max-width:900px){ .hero-startguides{ justify-self:stretch; max-width:none; } }

/* Guides-hub topic jump-nav */
.guides-topicnav{ border-bottom:1px solid #eef2f5; padding:15px 0; }
.guides-topicnav .container{ display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.gtn-label{ font-size:13px; font-weight:700; color:#5b6b85; margin-right:4px; }
.gtn-chip{ display:inline-block; padding:7px 15px; border:1px solid #d7e3e1; border-radius:999px; font-size:13px; font-weight:600; color:#0f766e; text-decoration:none; transition:all .12s ease; }
.gtn-chip:hover{ background:#0f766e; color:#fff; border-color:#0f766e; }

/* Quiz state dropdown (select step) */
.q-select{display:block;width:100%;max-width:420px;margin:0 auto;padding:14px 44px 14px 16px;font-family:var(--font-sans);font-size:16px;font-weight:600;color:#172949;background:#fff;border:1.5px solid #e3e9f1;border-radius:12px;cursor:pointer;-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 12 8%27 fill=%27none%27 stroke=%27%230f766e%27 stroke-width=%271.8%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M1 1.5l5 5 5-5%27/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;background-size:13px}
.q-select:focus{outline:none;border-color:var(--q-color);box-shadow:0 0 0 3px var(--q-color-soft)}

/* Quiz loading interstitial (between email and phone) */
.q-progress-spacer{display:block;height:34px}
.q-body-loading{text-align:center;padding:30px 0 60px}
.q-loading-step{display:flex;flex-direction:column;align-items:center;gap:22px;margin-top:6px}
.q-loadbar{width:260px;max-width:78%;height:6px;background:#e3eaf2;border-radius:999px;overflow:hidden}
.q-loadbar-fill{height:100%;width:100%;background:var(--q-color);border-radius:999px;transform:scaleX(0);transform-origin:left;animation:qLoadFill linear forwards}
@keyframes qLoadFill{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.q-loading-msg{font-size:16px;font-weight:600;color:#5b6b85;min-height:24px;transition:opacity .18s ease}

/* Quiz self-scheduler + booking confirmation (appointment funnel) */
.q-sched{max-width:520px;margin:0 auto}
.q-sched-label{font-size:13px;font-weight:700;color:#5b6b85;text-align:left;margin:16px 0 8px}
.q-sched-days{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.q-sched-day{display:flex;flex-direction:column;align-items:center;gap:3px;padding:12px 4px;background:#fff;border:1.5px solid #e3e9f1;border-radius:12px;cursor:pointer;font-family:var(--font-sans);transition:all .15s}
@media (hover:hover) and (pointer:fine){.q-sched-day:hover{border-color:var(--q-color)}}
.q-sched-day.is-selected{background:var(--q-color-soft);border-color:var(--q-color)}
.q-sched-dow{font-size:13px;font-weight:800;color:#172949}
.q-sched-date{font-size:11px;color:#6a7686;font-weight:600}
.q-sched-day.is-selected .q-sched-dow,.q-sched-day.is-selected .q-sched-date{color:var(--q-color-deep)}
.q-sched-times{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.q-sched-time{display:flex;flex-direction:column;align-items:center;gap:2px;padding:14px 6px;background:#fff;border:1.5px solid #e3e9f1;border-radius:12px;cursor:pointer;font-family:var(--font-sans);transition:all .15s}
@media (hover:hover) and (pointer:fine){.q-sched-time:hover{border-color:var(--q-color)}}
.q-sched-time.is-selected{background:var(--q-color-soft);border-color:var(--q-color)}
.q-sched-tl{font-size:15px;font-weight:800;color:#172949}
.q-sched-tsub{font-size:11.5px;color:#6a7686;font-weight:600}
.q-sched-time.is-selected .q-sched-tl,.q-sched-time.is-selected .q-sched-tsub{color:var(--q-color-deep)}
@media(max-width:560px){.q-sched-days{grid-template-columns:repeat(3,1fr)}.q-sched-times{grid-template-columns:1fr}}
.q-booked{text-align:center;max-width:560px;margin:0 auto;padding-top:6px}
.q-booked-check{width:72px;height:72px;border-radius:50%;background:var(--q-color-soft);color:var(--q-color-deep);display:flex;align-items:center;justify-content:center;margin:0 auto 16px}
.q-booked-when{font-size:18px;font-weight:800;color:var(--q-color-deep);margin:0 0 4px}
.q-booked-card{text-align:left;background:#fff;border:1px solid #e9eef5;border-radius:16px;padding:20px 22px;margin:26px auto 0;max-width:440px;box-shadow:0 8px 24px rgba(15,40,38,.06)}
.q-booked-card strong{display:block;font-size:15px;color:#16202f;margin-bottom:10px}
.q-booked-card ul{margin:0;padding-left:20px}
.q-booked-card li{font-size:14px;color:#5b6b85;line-height:1.6;margin-bottom:6px}

/* Embedded GHL booking calendar (post-lead screen) */
.q-booking{max-width:820px}
.q-cal-wrap{max-width:760px;margin:20px auto 0}
.q-cal{width:100%;border:0;display:block;min-height:720px;overflow:hidden;background:transparent}

/* Post-booking call-prep guide card (lead magnet) */
.q-guide-card{max-width:760px;margin:18px auto 0;display:flex;gap:16px;align-items:flex-start;background:var(--q-color-soft,#e7f3f0);border:1px solid var(--q-color-line,#cfe6e0);border-radius:16px;padding:18px 20px}
.q-guide-ic{flex:none;width:44px;height:44px;border-radius:12px;background:#fff;color:var(--q-color,#15806c);display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px rgba(15,40,38,.08)}
.q-guide-ic svg{width:24px;height:24px}
.q-guide-eyebrow{font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:800;color:var(--q-color-deep,#0e5d4f);margin-bottom:4px}
.q-guide-body strong{display:block;font-size:16px;line-height:1.3;color:#16202f;margin-bottom:4px}
.q-guide-body p{margin:0 0 12px;font-size:13.5px;line-height:1.55;color:#4a5a6a}
.q-guide-actions{display:flex;gap:10px;flex-wrap:wrap}
.q-guide-btn,.q-guide-dl{display:inline-flex;align-items:center;gap:7px;font-size:14px;font-weight:700;text-decoration:none;padding:10px 18px;border-radius:9px;transition:transform .15s ease,background .15s ease,box-shadow .15s ease}
.q-guide-btn{background:var(--q-color,#15806c);color:#fff;box-shadow:0 6px 16px rgba(15,40,38,.16)}
@media (hover:hover) and (pointer:fine){.q-guide-btn:hover{transform:translateY(-1px)}}
.q-guide-dl{background:#fff;color:var(--q-color-deep,#0e5d4f);border:1px solid var(--q-color-line,#cfe6e0)}
@media (hover:hover) and (pointer:fine){.q-guide-dl:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(15,40,38,.1)}}
.q-guide-dl svg{width:17px;height:17px}
@media(max-width:560px){.q-guide-card{flex-direction:column;gap:12px}.q-guide-actions{width:100%}.q-guide-btn,.q-guide-dl{flex:1;justify-content:center}}
.q-bonus-card{max-width:760px;margin:14px auto 0;display:flex;gap:14px;align-items:flex-start;background:#fcf4e4;border:1px dashed #e0c68a;border-radius:16px;padding:15px 20px}
.q-bonus-tag{flex:none;background:#b47a16;color:#fff;font-size:10.5px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;padding:5px 10px;border-radius:999px;margin-top:2px}
.q-bonus-body strong{display:block;font-size:15px;font-weight:800;color:#5a3d08}
.q-bonus-body p{margin:4px 0 0;font-size:13.5px;line-height:1.5;color:#7a5a1d}
@media(max-width:560px){.q-bonus-card{flex-direction:column;gap:8px}}

.q-provider-note{text-align:center;font-size:13px;color:#8a96a8;font-weight:600;margin:18px 0 0}

/* Book-a-call page (branded GHL calendar embed) */
.book-hero{text-align:center;padding:26px 0 6px}
.book-eyebrow{display:inline-block;font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-weight:800;color:#0f766e;margin-bottom:14px}
.book-hero h1{font-size:clamp(28px,4.4vw,40px);line-height:1.1;letter-spacing:-.5px;color:#16202f;margin:0 auto 14px;max-width:720px;text-align:center;font-weight:800}
.book-hero p{font-size:17px;line-height:1.6;color:#4a5a6a;max-width:56ch;margin:0 auto}
.book-trust{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 22px;margin:22px 0 0;padding:0;list-style:none}
.book-trust li{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:#3a4b63}
.book-trust svg{width:18px;height:18px;color:#0f766e;flex:none}
.book-cal{padding:16px 0 56px}
@media(max-width:560px){.book-hero{padding:32px 0 2px}.book-hero p{font-size:15.5px}}

/* Booking thank-you / confirmation page */
.ty-section{padding:8px 0 56px}
.ty-wrap{max-width:620px;margin:0 auto;text-align:center;padding:48px 0 0}
.ty-badge{width:84px;height:84px;border-radius:50%;background:#e7f3f0;color:#0f766e;display:flex;align-items:center;justify-content:center;margin:0 auto 22px}
.ty-badge svg{width:40px;height:40px}
.ty-eyebrow{display:inline-block;font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-weight:800;color:#0f766e;margin-bottom:12px}
.ty-wrap h1{font-size:clamp(28px,4.2vw,38px);line-height:1.12;letter-spacing:-.5px;color:#16202f;margin:0 auto 14px;max-width:600px;text-align:center;font-weight:800}
.ty-sub{font-size:17px;line-height:1.6;color:#4a5a6a;max-width:52ch;margin:0 auto}
.ty-card{text-align:left;background:#fff;border:1px solid #e9eef5;border-radius:16px;padding:22px 24px;margin:30px auto 0;max-width:480px;box-shadow:0 8px 24px rgba(15,40,38,.06)}
.ty-card h2{font-size:15px;color:#16202f;margin:0 0 14px;font-weight:800}
.ty-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}
.ty-steps li{display:flex;gap:13px;align-items:flex-start;font-size:14.5px;color:#4a5a6a;line-height:1.5}
.ty-steps .n{flex:none;width:26px;height:26px;border-radius:50%;background:#e7f3f0;color:#0f766e;font-weight:800;font-size:13px;display:flex;align-items:center;justify-content:center}
.ty-guide{margin-top:30px;text-align:left}
@media(max-width:560px){.ty-wrap{padding:28px 0 0}.ty-sub{font-size:15.5px}}

.q-reassure{display:flex;align-items:center;gap:12px;max-width:520px;margin:26px auto 0;padding:0 6px}
.q-reassure-av{flex:none;width:42px;height:42px;border-radius:50%;background:var(--q-color-soft);color:var(--q-color-deep);display:flex;align-items:center;justify-content:center}
.q-reassure-tx{margin:0;font-size:14px;color:#5b6b85;line-height:1.45;text-align:left}

.q-reassure-img{object-fit:cover;padding:0}

/* Center a lone last tile in a 2-up icon grid (e.g. 3 options = 2 on top, 1 centered) */
.q-tiles-icon.q-tiles-cols-2 .q-tile:last-child:nth-child(odd){grid-column:1 / -1;justify-self:center;width:140px}

/* Loading checklist (steps light up then check off) */
.q-checklist{max-width:330px;margin:6px auto 0;display:flex;flex-direction:column;gap:18px;text-align:left}
.q-check-row{display:flex;align-items:center;gap:14px;transition:opacity .3s ease}
.q-check-row.is-pending{opacity:.38}
.q-check-ic{flex:none;width:28px;height:28px;display:flex;align-items:center;justify-content:center;color:var(--q-color-deep)}
.q-check-lbl{font-size:15px;font-weight:600;color:#16202f}
.q-check-row.is-pending .q-check-lbl{color:#8a96a8;font-weight:500}
.q-check-spin{width:20px;height:20px;border:2.5px solid var(--q-color-soft);border-top-color:var(--q-color);border-radius:50%;animation:qspin .7s linear infinite;display:inline-block}
@keyframes qspin{to{transform:rotate(360deg)}}

/* Lead-capture layout (badge + benefit checklist) */
.q-badge{display:inline-block;background:#e6f5ec;color:#0b5e57;font-size:12px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;padding:6px 14px;border-radius:999px;margin:30px 0 14px}
.q-fields-label{font-size:15px;font-weight:800;color:#16202f;text-align:center;margin:0 0 14px}
.q-benefits{list-style:none;max-width:430px;margin:0 auto 24px;padding:0;text-align:left;display:flex;flex-direction:column;gap:12px}
.q-benefit{display:flex;align-items:flex-start;gap:10px}
.q-benefit-ck{flex:none;color:#16a34a;margin-top:1px;display:flex}
.q-benefit-tx{font-size:14.5px;color:#46566f;line-height:1.45}
.q-benefit-tx strong{color:#16202f;font-weight:800}

/* ---- /annuity-guide/ landing (guide-lp-page) — Fisher-geometry split hero ---- */
.lpg-head{background:#0c1e36;padding:15px 24px;display:flex;justify-content:center}
.lpg-brand{display:inline-flex;align-items:center;gap:9px;color:#fff;font-weight:800;font-size:19px;letter-spacing:.01em}
.lpg-brand svg{width:24px;height:24px;flex:none}
.lpg-foot{background:#0c1e36;color:#b9c8d8;padding:38px 0 30px}
.lpg-foot-grid{display:grid;grid-template-columns:1fr 1.6fr;gap:44px;align-items:start}
.lpg-foot-brand .lpg-brand{font-size:16px;margin-bottom:12px}
.lpg-foot p{font-size:13px;line-height:1.6;margin:0 0 12px}
.lpg-foot a{color:#9fd4cc;text-decoration:underline}
.lpg-foot-note{font-style:italic}
.lpg-foot-links{margin-top:4px}
.lpg-foot-copy{color:#8296ab;margin-bottom:0}
@media(max-width:760px){.lpg-foot-grid{grid-template-columns:1fr;gap:18px}.lpg-head{padding:13px 16px}.lpg-brand{font-size:17px}}
.lpg-hero{background:linear-gradient(180deg,#eef6f4 0%,#f8fbfa 62%,#fff 100%);padding:48px 0 64px;overflow:hidden}
.lpg-hero-grid{display:grid;grid-template-columns:1.15fr .9fr;gap:56px;align-items:center}
.lpg-stage{position:relative;min-height:480px;display:flex;align-items:center;justify-content:center}
.lpg-glow{position:absolute;width:540px;height:430px;border-radius:50%;background:radial-gradient(ellipse at center,rgba(15,118,110,.13),rgba(15,118,110,.05) 55%,transparent 72%);filter:blur(6px);animation:lpgFade .9s ease-out both}
.lpg-sheet{position:absolute;width:225px;height:325px;background:linear-gradient(180deg,#fff,#fbfdfc);border:1px solid #e6eeec;border-radius:6px;box-shadow:3px 3px 0 -1px #fff,4px 4px 0 -1px #e0eae7,7px 7px 0 -2px #fff,8px 8px 0 -2px #e0eae7,0 14px 34px rgba(15,62,55,.12),0 2px 6px rgba(15,62,55,.06);padding:22px 18px 16px;display:flex;flex-direction:column;gap:8px}
.lpg-sheet .sheet-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;padding-bottom:7px;border-bottom:1px solid #eaf1ef}
.lpg-sheet .sheet-head i{height:5px;border-radius:3px;background:#dfe9e6}
.lpg-sheet .sheet-head i:first-child{width:36%}
.lpg-sheet .sheet-head i:last-child{width:12%}
.lpg-sheet .sheet-quote{border-left:3px solid #2f9c91;padding:7px 0 7px 10px;margin:3px 0;display:flex;flex-direction:column;gap:7px}
.lpg-sheet .sheet-quote .ln{background:#d9e8e4}
.lpg-sheet .sheet-tip{background:#e9f4f1;border-radius:6px;padding:9px 10px;margin:3px 0;display:flex;flex-direction:column;gap:7px}
.lpg-sheet .sheet-tip .ln{background:#c8e0d9}
.lpg-sheet .sheet-cap{width:46%;height:5px;background:#dfe9e6;border-radius:3px;margin:2px auto 3px}
.lpg-sheet .sheet-pg{margin-top:auto;font-size:8px;font-weight:700;color:#b9c8c4;letter-spacing:.08em}
.lpg-sheet .pg-r{text-align:right}
.lpg-sheet-l{--sx:-150px;--sr:-4deg;transform:translateX(var(--sx)) rotate(var(--sr));animation:lpgFan .8s cubic-bezier(.22,.9,.32,1.15) .25s both,lpgSway 8s ease-in-out 2.2s infinite}
.lpg-sheet-r{--sx:150px;--sr:4deg;transform:translateX(var(--sx)) rotate(var(--sr));animation:lpgFan .8s cubic-bezier(.22,.9,.32,1.15) .38s both,lpgSway 9s ease-in-out 2.7s infinite}
.lpg-sheet .sheet-h{width:64%;height:10px;background:#cfe0dc;border-radius:3px;margin-bottom:5px}
.lpg-sheet .ln{height:6px;background:#e8efed;border-radius:3px}
.lpg-sheet .sheet-chart{display:flex;align-items:flex-end;gap:9px;height:70px;margin:3px 0 2px;padding:0 4px;border-bottom:2px solid #e0eae7}
.lpg-sheet .sheet-chart .bar{flex:1;background:linear-gradient(180deg,#2f9c91,#0f766e);border-radius:3px 3px 0 0;transform-origin:bottom;animation:lpgBar .6s cubic-bezier(.25,1.1,.4,1) both}
.lpg-sheet .sheet-chart .bar:nth-child(1){animation-delay:1.05s}
.lpg-sheet .sheet-chart .bar:nth-child(2){animation-delay:1.15s}
.lpg-sheet .sheet-chart .bar:nth-child(3){animation-delay:1.25s}
.lpg-sheet .sheet-chart .bar:nth-child(4){animation-delay:1.35s}
.lpg-flip{position:absolute;inset:0;background:linear-gradient(180deg,#fff,#f6faf9);border:1px solid #e6eeec;border-radius:6px;padding:22px 18px;display:flex;flex-direction:column;gap:8px;transform-origin:left center;opacity:0;box-shadow:-10px 12px 26px rgba(15,62,55,.16);animation:lpgFlip 27s ease-in-out infinite}
.lpg-flip-a{animation-delay:3.5s}
.lpg-flip-b{animation-delay:-5.5s}
.lpg-flip-c{animation-delay:-14.5s}
.lpg-book-shadow{position:absolute;bottom:48px;width:250px;height:30px;border-radius:50%;background:radial-gradient(ellipse,rgba(12,30,54,.30),transparent 68%);filter:blur(7px);animation:lpgFade .7s ease-out both,lpgShadowPulse 6.5s ease-in-out 1s infinite}
.lpg-book{--bt:perspective(1100px) rotateY(-6deg) rotate(-4deg);position:relative;z-index:2;width:252px;aspect-ratio:5/7;transform:var(--bt);background:#0c1e36;border-radius:5px 12px 12px 5px;box-shadow:-20px 30px 46px rgba(12,30,54,.35),0 4px 10px rgba(12,30,54,.22),inset 10px 0 13px -8px rgba(0,0,0,.5),inset -3px 0 6px -2px rgba(255,255,255,.12),inset 0 0 0 1px rgba(255,255,255,.06);padding:26px 24px 22px;display:flex;flex-direction:column;color:#fff;animation:lpgDrop .7s cubic-bezier(.3,1.35,.42,1) both,lpgFloat 6.5s ease-in-out 1s infinite}
.lpg-book::before{content:"";position:absolute;left:10px;right:-4px;bottom:-6px;height:6px;background:linear-gradient(0deg,#d9dfdb,#fbfcfb 55%,#e8ece9);border-radius:0 0 4px 3px;box-shadow:0 2px 5px rgba(0,0,0,.18)}
.bk-art{position:absolute;inset:0;border-radius:inherit;overflow:hidden;pointer-events:none}
.bk-ghost{position:absolute;right:-28px;top:16px;font-size:215px;line-height:1;font-weight:900;letter-spacing:-.02em;color:transparent;-webkit-text-stroke:2.5px rgba(94,202,165,.34)}
.lpg-book .bk-rule{position:relative;width:38px;height:3px;background:#5DCAA5;border-radius:2px;margin:auto 0 12px}
.bk-gloss{position:absolute;inset:0;border-radius:inherit;overflow:hidden;pointer-events:none}
.bk-gloss::before{content:"";position:absolute;top:-20%;bottom:-20%;width:46%;left:0;background:linear-gradient(105deg,transparent,rgba(255,255,255,.15) 45%,rgba(255,255,255,.05) 60%,transparent);transform:translateX(-170%) skewX(-12deg);animation:lpgGloss 7s ease-in-out 2.8s infinite}
.lpg-book::after{content:"";position:absolute;right:-7px;top:7px;bottom:7px;width:7px;background:linear-gradient(90deg,#e8ece9,#fbfcfb 45%,#d9dfdb);border-radius:0 3px 3px 0;box-shadow:1px 2px 5px rgba(0,0,0,.22)}
.lpg-book .bk-kicker{position:relative;font-size:11px;font-weight:700;letter-spacing:.2em;color:#5DCAA5;text-transform:uppercase}
.lpg-book .bk-title{position:relative;font-size:27px;line-height:1.08;font-weight:900;letter-spacing:-.01em;color:#fff}
.lpg-book .bk-sub{position:relative;font-size:13.5px;line-height:1.35;color:#9fb3c8;margin-top:9px;font-weight:600}
.lpg-book .bk-foot{position:relative;margin-top:16px;display:flex;align-items:center;gap:8px;font-size:11px;font-weight:800;letter-spacing:.13em;color:#5DCAA5;text-transform:uppercase;border-top:1px solid rgba(255,255,255,.16);padding-top:12px}
.lpg-book .bk-foot svg{width:15px;height:15px;flex:none}
.lpg-copy{max-width:430px}
.guide-lp-page .lpg-copy h1{font-size:clamp(28px,3vw,36px);line-height:1.12;letter-spacing:-.4px;font-weight:800;color:#16202f;margin:0 0 12px;text-align:left}
.lpg-lede{font-size:16px;line-height:1.6;color:#4a5a6a;margin:0 0 20px}
.lpg-lede em{font-style:italic;font-weight:700;color:#173832}
.lpg-inside-mini{margin-top:30px;padding-top:22px;border-top:1px solid #dfeae6}
.lpg-inside-kicker{font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#0f766e;margin-bottom:12px}
.lpg-inside-mini ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.lpg-inside-mini li{display:flex;align-items:flex-start;gap:9px;font-size:14.5px;font-weight:600;color:#3a4b63;line-height:1.45}
.lpg-inside-mini li svg{width:16px;height:16px;color:#0f766e;flex:none;margin-top:2px}
.lpg-more{font-size:13px;color:#6a7686;font-style:italic;margin:12px 0 0}
.lpg-strip{display:flex;align-items:center;justify-content:center;gap:9px;background:#eef4f2;border-top:1px solid #dfeae6;border-bottom:1px solid #dfeae6;padding:13px 20px;font-size:14px;font-weight:600;color:#28453f;text-align:center}
.lpg-strip svg{width:17px;height:17px;color:#0f766e;flex:none}
@keyframes lpgFade{from{opacity:0}to{opacity:1}}
@keyframes lpgDrop{from{transform:translateY(-48px) perspective(1100px) rotateY(-14deg) rotate(-10deg);opacity:0}to{transform:translateY(0) var(--bt);opacity:1}}
@keyframes lpgFloat{0%,100%{transform:translateY(0) var(--bt)}50%{transform:translateY(-6px) var(--bt)}}
@keyframes lpgFan{from{transform:translateX(0) translateY(8px) rotate(0deg) scale(.92);opacity:0}to{transform:translateX(var(--sx)) translateY(0) rotate(var(--sr)) scale(1);opacity:1}}
@keyframes lpgSway{0%,100%{transform:translateX(var(--sx)) translateY(0) rotate(var(--sr))}50%{transform:translateX(var(--sx)) translateY(4px) rotate(calc(var(--sr)*1.25))}}
@keyframes lpgShadowPulse{0%,100%{transform:scaleX(1);opacity:1}50%{transform:scaleX(.93);opacity:.82}}
@keyframes lpgBar{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@keyframes lpgGloss{0%,70%{transform:translateX(-170%) skewX(-12deg)}88%,100%{transform:translateX(430%) skewX(-12deg)}}
@keyframes lpgFlip{0%,74%{transform:perspective(900px) rotateY(0deg);opacity:0}76.5%{transform:perspective(900px) rotateY(-8deg);opacity:1}86%{transform:perspective(900px) rotateY(-125deg);opacity:1}90%,100%{transform:perspective(900px) rotateY(-160deg);opacity:0}}
@media(max-width:900px){
  .lpg-hero{padding:32px 0 44px}
  .lpg-hero-grid{grid-template-columns:1fr;gap:36px}
  .lpg-stage{min-height:340px}
  .lpg-glow{width:380px;height:300px}
  .lpg-sheet{width:170px;height:246px;padding:18px 14px}
  .lpg-sheet-l{--sx:-105px}
  .lpg-sheet-r{--sx:105px}
  .lpg-book{width:196px;padding:20px 17px 16px}
  .bk-ghost{font-size:160px;right:-20px;top:12px;-webkit-text-stroke-width:2px}
  .lpg-book .bk-title{font-size:21px}
  .lpg-book-shadow{width:190px;bottom:26px}
  .lpg-copy{max-width:none}
}
@media (prefers-reduced-motion:reduce){
  .lpg-glow,.lpg-sheet-l,.lpg-sheet-r,.lpg-flip,.lpg-book,.lpg-book-shadow,.bk-gloss::before,.lpg-sheet .sheet-chart .bar{animation:none}
  .lpg-flip{opacity:0}
}

/* ---- fx.js site-wide enhancement engine (html.fx set only when JS runs and
        the user does NOT prefer reduced motion — without it, zero effect) ---- */
@media (prefers-reduced-motion: no-preference){
  @view-transition{navigation:auto}
  ::view-transition-old(root){animation:fxVtOut .16s ease both}
  ::view-transition-new(root){animation:fxVtIn .24s ease both}
  html{scroll-behavior:smooth}
}
@keyframes fxVtOut{to{opacity:0;transform:translateY(5px)}}
@keyframes fxVtIn{from{opacity:0;transform:translateY(7px)}}
html.fx ::-webkit-scrollbar{width:12px}
html.fx ::-webkit-scrollbar-track{background:#eef3f2}
html.fx ::-webkit-scrollbar-thumb{background:#b9d2cc;border-radius:8px;border:3px solid #eef3f2}
html.fx ::-webkit-scrollbar-thumb:hover{background:#0f766e}
html.fx .guide-body a,html.fx .editorial-main a{transition:text-underline-offset .18s ease,text-decoration-color .18s ease}
html.fx .guide-body a:hover,html.fx .editorial-main a:hover{text-underline-offset:4px}
html.fx .fx-spot{position:relative}
html.fx .fx-spot::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .3s ease;background:radial-gradient(170px circle at var(--fx-mx,50%) var(--fx-my,50%),rgba(15,118,110,.10),transparent 68%)}
html.fx .fx-spot:hover::after{opacity:1}
html.fx .fx-reveal{opacity:0;transform:translateY(16px)}
html.fx .fx-reveal.fx-in{opacity:1;transform:none;transition:opacity .6s ease,transform .6s cubic-bezier(.22,.9,.32,1);transition-delay:var(--fxd,0s)}
.fx-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:200;pointer-events:none}
.fx-progress i{display:block;height:100%;background:linear-gradient(90deg,#0f766e,#5ec5bf);transform-origin:0 50%;transform:scaleX(0)}
::selection{background:#bfe8e2;color:#0b3f36}
html.fx :focus-visible{outline:2px solid #0f766e;outline-offset:2px}
html.fx .pillar-page .btn-primary{position:relative;overflow:hidden}
html.fx .pillar-page .btn-primary::after{content:"";position:absolute;top:0;bottom:0;left:-45%;width:38%;background:linear-gradient(105deg,transparent,rgba(255,255,255,.3),transparent);transform:skewX(-16deg);transition:left .55s ease;pointer-events:none}
html.fx .pillar-page .btn-primary:hover::after{left:118%}
html.fx .pillar-page .btn:active{transform:scale(.97)}
html.fx .pillar-page .faq-item[open]>p{animation:typFaqIn .3s ease}

/* ---- /thank-you/ (typ-*) — post-booking show-rate layout ---- */
.typ-banner{display:flex;align-items:center;justify-content:center;gap:9px;background:#0f766e;color:#fff;font-size:14.5px;font-weight:700;padding:12px 20px;text-align:center}
.typ-banner svg{width:17px;height:17px;flex:none;color:#9fe1cb}
.typ-section{padding:46px 0 52px}
.typ-alt{background:#f4f8f7}
.typ-step{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:14px}
.typ-step .n{width:26px;height:26px;border-radius:50%;background:#0c1e36;color:#fff;font-size:13px;font-weight:800;display:flex;align-items:center;justify-content:center}
.typ-step .t{font-size:12.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#0f766e}
.pillar-page .typ-h{text-align:center;font-size:clamp(24px,3.4vw,32px);line-height:1.12;font-weight:800;letter-spacing:-.4px;color:#16202f;max-width:none;margin:0 auto 8px}
.typ-sub{text-align:center;font-size:15.5px;color:#4b5f5a;max-width:58ch;margin:0 auto 24px}
.typ-vidwrap{max-width:720px;margin:26px auto 0}
.typ-vidwrap .wistia_responsive_padding,.typ-vid-ph{border-radius:16px;overflow:hidden;box-shadow:0 18px 44px rgba(12,30,54,.18)}
.typ-vid-ph{aspect-ratio:16/9;background:linear-gradient(135deg,#0c1e36,#123150);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px}
.typ-play{display:inline-flex;align-items:center;justify-content:center;width:74px;height:74px;border-radius:50%;background:#0f766e;color:#fff;box-shadow:0 10px 28px rgba(15,118,110,.45)}
.typ-play svg{width:30px;height:30px;margin-left:3px}
.typ-vid-cap{font-size:14px;font-weight:700;letter-spacing:.06em;color:#9fb3c8;text-transform:uppercase}
.typ-vidwrap .q-provider-note{text-align:center;margin-top:12px}
.typ-vidwrap code{background:#eef4f2;border-radius:4px;padding:1px 6px;font-size:12px}
.typ-guides{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:26px}
.typ-gcard{display:flex;gap:20px;align-items:center;background:#fff;border:1px solid #e2ebe8;border-radius:16px;padding:22px 24px;box-shadow:0 8px 24px rgba(15,62,55,.06)}
.typ-gbody{min-width:0}
.typ-gbody strong{display:block;font-size:15.5px;font-weight:800;color:#16202f;line-height:1.3;margin:4px 0 6px}
.typ-gbody p{margin:0 0 12px;font-size:13.5px;line-height:1.5;color:#4a5a6a}
.typ-book{position:relative;flex:none;width:118px;aspect-ratio:5/7;transform:perspective(700px) rotateY(-9deg) rotate(-4deg);border-radius:3px 8px 8px 3px;padding:13px 11px 10px;display:flex;flex-direction:column;color:#fff;box-shadow:-10px 14px 24px rgba(12,30,54,.28),inset 6px 0 8px -5px rgba(0,0,0,.45),inset -2px 0 4px -1px rgba(255,255,255,.12);transition:transform .38s cubic-bezier(.3,1.35,.4,1),box-shadow .38s ease;animation:tbIn .75s cubic-bezier(.28,1.35,.42,1) .15s backwards,tbFloat 5.5s ease-in-out 1.2s infinite}
.typ-gcard:nth-child(2) .typ-book{animation-delay:.32s,2.1s;animation-duration:.75s,6.5s}
.typ-gcard{transition:transform .3s ease,border-color .3s ease,box-shadow .3s ease}
.typ-gcard:hover{transform:translateY(-3px);border-color:#c4e0d9;box-shadow:0 16px 38px rgba(15,62,55,.11)}
.typ-gcard:hover .typ-book{transform:perspective(700px) rotateY(5deg) rotate(-1deg) scale(1.08);box-shadow:-14px 22px 34px rgba(12,30,54,.36),inset 6px 0 8px -5px rgba(0,0,0,.45),inset -2px 0 4px -1px rgba(255,255,255,.12)}
.typ-gcard:hover .tb-ghost{-webkit-text-stroke-color:rgba(94,202,165,.6)}
.typ-gcard:hover .tb-badge{transform:scale(1.16) rotate(7deg)}
.tb-gloss{position:absolute;inset:0;border-radius:inherit;overflow:hidden;pointer-events:none}
.tb-gloss::before{content:"";position:absolute;top:-20%;bottom:-20%;width:52%;left:0;background:linear-gradient(105deg,transparent,rgba(255,255,255,.22) 45%,rgba(255,255,255,.06) 62%,transparent);transform:translateX(-170%) skewX(-13deg)}
.typ-gcard:hover .tb-gloss::before{animation:tbSweep .85s ease .06s}
@keyframes tbIn{from{opacity:0;transform:perspective(700px) translateY(26px) rotateY(-55deg) rotate(-11deg) scale(.82)}to{opacity:1;transform:perspective(700px) rotateY(-9deg) rotate(-4deg)}}
@keyframes tbFloat{0%,100%{translate:0 0}50%{translate:0 -5px}}
@keyframes tbSweep{from{transform:translateX(-170%) skewX(-13deg)}to{transform:translateX(300%) skewX(-13deg)}}
@keyframes tbBadge{0%,86%,100%{transform:scale(1) rotate(0deg)}90%{transform:scale(1.14) rotate(-5deg)}95%{transform:scale(1.05) rotate(3deg)}}
.typ-book::after{content:"";position:absolute;right:-4px;top:4px;bottom:4px;width:4px;background:linear-gradient(90deg,#e8e6df,#fcfbf7 45%,#d8d5ca);border-radius:0 2px 2px 0}
.typ-book::before{content:"";position:absolute;left:6px;right:-2px;bottom:-4px;height:4px;background:linear-gradient(0deg,#d8d5ca,#faf9f4);border-radius:0 0 3px 2px}
.typ-book-a{background:#0c1e36;overflow:visible}
.typ-book-b{background:linear-gradient(140deg,#128378,#0b5e57)}
.typ-book .tb-ghost{position:absolute;right:-8px;top:8px;font-size:92px;line-height:1;font-weight:900;color:transparent;-webkit-text-stroke:1.5px rgba(94,202,165,.32);pointer-events:none;transition:-webkit-text-stroke-color .35s ease}
.typ-book .tb-badge{position:absolute;top:-8px;right:-8px;background:#b47a16;color:#fff;font-size:8.5px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;padding:4px 8px;border-radius:999px;box-shadow:0 3px 8px rgba(90,61,8,.35);transition:transform .3s cubic-bezier(.3,1.4,.4,1);animation:tbBadge 5s ease-in-out 2.5s infinite}
.typ-book .tb-kicker{position:relative;font-size:7px;font-weight:700;letter-spacing:.18em;color:#9fd4cc;text-transform:uppercase}
.typ-book .tb-title{position:relative;font-size:14px;line-height:1.12;font-weight:900;margin-top:auto}
.typ-book .tb-sub{position:relative;font-size:8px;line-height:1.3;color:#c9dcd8;margin-top:4px;font-weight:600}
.typ-book .tb-foot{position:relative;font-size:6.5px;font-weight:800;letter-spacing:.12em;color:#8fc9c0;text-transform:uppercase;border-top:1px solid rgba(255,255,255,.18);margin-top:8px;padding-top:6px}
.typ-grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:20px}
.typ-card{background:#fff;border:1px solid #e2ebe8;border-radius:14px;padding:20px 22px;box-shadow:0 6px 18px rgba(15,62,55,.05)}
.typ-card-tint{background:#eaf4f1;border-color:#d5e8e2}
.typ-ic{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:11px;background:#0c1e36;color:#fff;margin-bottom:12px}
.typ-ic svg{width:22px;height:22px}
.typ-card h3{margin:0 0 7px;font-size:16.5px;font-weight:800;color:#16202f}
.typ-card p{margin:0;font-size:14.5px;line-height:1.55;color:#4a5a6a}
.typ-grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;margin:22px 0 16px}
.typ-mini{background:#fff;border:1px solid #e2ebe8;border-radius:14px;padding:22px 18px;text-align:center}
.typ-mini .n{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:#e7f3f0;border:1.5px solid #bfe0d8;color:#0f766e;font-size:14px;font-weight:800;margin-bottom:10px}
.typ-mini h3{margin:0 0 6px;font-size:15.5px;font-weight:800;color:#16202f}
.typ-mini p{margin:0;font-size:13.5px;line-height:1.5;color:#4a5a6a}
.typ-section .q-provider-note{text-align:center;margin-top:6px}
.typ-ready{background:#e7f3f0;border:1px solid #cfe6e0;border-radius:14px;padding:22px 26px;margin-top:20px}
.typ-ready h3{margin:0 0 12px;font-size:17px;font-weight:800;color:#16202f}
.typ-ready ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
.typ-ready li{display:flex;align-items:flex-start;gap:10px;font-size:14.5px;color:#2c4a44;font-weight:600;line-height:1.5}
.typ-ready li svg{width:17px;height:17px;flex:none;color:#0f766e;margin-top:2px}
.typ-readgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:20px}
.typ-read{display:flex;align-items:flex-start;gap:13px;background:#fff;border:1px solid #e2ebe8;border-radius:13px;padding:16px 18px;text-decoration:none;transition:border-color .12s,box-shadow .12s}
.typ-read:hover{border-color:#b9dcd4;box-shadow:0 8px 20px rgba(15,62,55,.08)}
.typ-read-ic{flex:none;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:9px;background:#e7f3f0;color:#0f766e}
.typ-read-ic svg{width:19px;height:19px}
.typ-read-body{display:flex;flex-direction:column;gap:3px}
.typ-read-body strong{font-size:14.5px;font-weight:800;color:#16202f;line-height:1.3}
.typ-read-body span{font-size:13px;line-height:1.45;color:#5d6f6b}
.typ-read-arrow{margin-left:auto;align-self:center;font-size:22px;color:#9fb3ad}
.typ-center{text-align:center;margin-top:24px}
.typ-faq{max-width:720px;margin:20px auto 0}
.typ-band{display:flex;flex-direction:column;align-items:center;gap:14px;background:#eef4f2;border-top:1px solid #dfeae6;padding:34px 20px 38px;text-align:center}
.typ-band strong{font-size:17px;font-weight:800;color:#16202f}
@media(max-width:980px){
  .typ-guides{grid-template-columns:1fr}
}
/* — thank-you polish: banner entrance + check draw — */
.typ-banner{animation:typBanner .5s ease .05s backwards}
.typ-banner svg path{stroke-dasharray:26;stroke-dashoffset:26;animation:typDraw .55s ease .45s forwards}
@keyframes typBanner{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}
@keyframes typDraw{to{stroke-dashoffset:0}}
/* — celebration confetti (build-time spans; falls once, then gone) — */
.typ-confetti{position:fixed;top:0;left:0;right:0;height:0;z-index:60;pointer-events:none}
.typ-confetti i{position:absolute;top:-14px;width:8px;height:13px;opacity:0;animation:typConf 2s linear forwards}
@keyframes typConf{0%{opacity:1;transform:translate(0,-10px) rotate(0deg)}72%{opacity:1}100%{opacity:0;transform:translate(var(--dx),80vh) rotate(var(--rz))}}
/* — pulsing play button on the video frame — */
.typ-play{position:relative}
.typ-play::before,.typ-play::after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid rgba(94,202,165,.45);animation:typRipple 2.6s ease-out infinite}
.typ-play::after{animation-delay:1.3s}
@keyframes typRipple{from{transform:scale(1);opacity:.75}to{transform:scale(1.95);opacity:0}}
/* — micro-interactions — */
.typ-card,.typ-mini{transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease}
.typ-card:hover,.typ-mini:hover{transform:translateY(-4px);box-shadow:0 14px 30px rgba(15,62,55,.10);border-color:#cfe4de}
.typ-ic{transition:background .3s ease,transform .3s ease}
.typ-card:hover .typ-ic{background:#0f766e;transform:scale(1.07) rotate(-4deg)}
.typ-mini .n{transition:background .3s ease,color .3s ease,border-color .3s ease}
.typ-mini:hover .n{background:#0f766e;border-color:#0f766e;color:#fff}
.typ-read .typ-read-arrow{transition:transform .25s ease,color .25s ease}
.typ-read:hover .typ-read-arrow{transform:translateX(4px);color:#0f766e}
.typ-read-ic{transition:background .3s ease,color .3s ease}
.typ-read:hover .typ-read-ic{background:#0f766e;color:#fff}
.typ-faq .faq-item[open]>p{animation:typFaqIn .3s ease}
@keyframes typFaqIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
/* — scroll-reveal choreography (html.typ-js set by inline script; no-JS and
     reduced-motion users get everything visible with zero reveal states) — */
.typ-js [data-reveal] :is(.typ-step,.typ-h,.typ-sub,.typ-vidwrap,.typ-gcard,.typ-card,.typ-mini,.typ-ready,.typ-read,.typ-center,.typ-faq,.typ-band strong,.typ-band .btn){opacity:0;transform:translateY(18px)}
.typ-js [data-reveal].typ-in :is(.typ-step,.typ-h,.typ-sub,.typ-vidwrap,.typ-gcard,.typ-card,.typ-mini,.typ-ready,.typ-read,.typ-center,.typ-faq,.typ-band strong,.typ-band .btn){opacity:1;transform:none;transition:opacity .6s ease,transform .6s cubic-bezier(.22,.9,.32,1)}
.typ-js [data-reveal].typ-in .typ-h{transition-delay:.07s}
.typ-js [data-reveal].typ-in .typ-sub{transition-delay:.13s}
.typ-js [data-reveal].typ-in .typ-vidwrap{transition-delay:.2s}
.typ-js [data-reveal].typ-in :is(.typ-gcard,.typ-card,.typ-mini,.typ-read):nth-child(1){transition-delay:.16s}
.typ-js [data-reveal].typ-in :is(.typ-gcard,.typ-card,.typ-mini,.typ-read):nth-child(2){transition-delay:.26s}
.typ-js [data-reveal].typ-in :is(.typ-card,.typ-mini,.typ-read):nth-child(3){transition-delay:.36s}
.typ-js [data-reveal].typ-in :is(.typ-card,.typ-read):nth-child(4){transition-delay:.46s}
.typ-js [data-reveal].typ-in .typ-read:nth-child(5){transition-delay:.56s}
.typ-js [data-reveal].typ-in .typ-read:nth-child(6){transition-delay:.66s}
.typ-js [data-reveal].typ-in .typ-ready{transition-delay:.5s}
.typ-js [data-reveal].typ-in .typ-center{transition-delay:.72s}
.typ-js [data-reveal].typ-in .typ-band .btn{transition-delay:.12s}
/* books hold their entrance until their section reveals */
.typ-js .typ-gcard .typ-book{animation-play-state:paused,paused}
.typ-js [data-reveal].typ-in .typ-gcard .typ-book{animation-play-state:running,running}
@media (prefers-reduced-motion:reduce){
  .typ-book,.typ-book .tb-badge,.typ-gcard:hover .tb-gloss::before{animation:none}
  .typ-book,.typ-gcard,.typ-book .tb-badge{transition:none}
  .typ-gcard:hover .typ-book{transform:perspective(700px) rotateY(-9deg) rotate(-4deg)}
  .typ-gcard:hover{transform:none}
  .typ-confetti{display:none}
  .typ-banner,.typ-banner svg path,.typ-play::before,.typ-play::after,.typ-faq .faq-item[open]>p{animation:none}
  .typ-banner svg path{stroke-dashoffset:0}
  .typ-card,.typ-mini,.typ-ic,.typ-mini .n,.typ-read .typ-read-arrow,.typ-read-ic{transition:none}
  .typ-card:hover,.typ-mini:hover{transform:none}
}
@media(max-width:700px){
  .typ-grid2,.typ-grid3,.typ-readgrid{grid-template-columns:1fr}
  .typ-section{padding:34px 0 40px}
  .typ-banner{font-size:13px}
  .typ-gcard{flex-direction:column;align-items:flex-start}
  .typ-book{margin:4px auto 8px}
  .typ-play{width:60px;height:60px}
}


/* ===== BOOK PAGE (/book/) ===== */
.bk-lede{font-size:17px;line-height:1.6;color:#42536b;max-width:620px;margin:0 auto 10px}
.book-hero p.bk-honesty{display:flex;align-items:center;gap:12px;text-align:left;font-size:14.5px;font-weight:600;line-height:1.5;color:#0b5e57;background:#e9f5f3;border:1px solid #cde8e3;border-radius:12px;padding:13px 18px;max-width:540px;margin:28px auto 0}
.bk-honesty svg{width:22px;height:22px;flex:0 0 auto;color:#0f766e}
.bk-announce{display:flex;justify-content:center;align-items:center;gap:9px;padding:24px 18px 0;font-size:14.5px;font-weight:500;color:#5b6b85;text-align:center}
.bk-announce svg{width:17px;height:17px;color:#0f766e;flex:none}
.bk-pill{display:inline-block;background:#0f766e;color:#fff;font-weight:700;font-size:14.5px;line-height:1;padding:11px 22px;border-radius:999px;margin-bottom:18px;box-shadow:0 6px 16px rgba(15,118,110,.22)}
@media(max-width:560px){.bk-announce{font-size:13px}.bk-pill{font-size:13.5px;padding:10px 18px}}
.bk-sec{padding:54px 0;border-top:1px solid #eef2f7}
.bk-sec h2{font-size:clamp(22px,3vw,28px);color:#13233d;text-align:center;margin:0 0 8px;letter-spacing:-.02em}
.bk-sec > .container > p{text-align:center;color:#5a6b80;max-width:620px;margin:0 auto 28px;line-height:1.65}
.bk-cover{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px;margin-top:26px}
.bk-cover-card{background:#fff;border:1px solid #e6ecf3;border-radius:14px;padding:20px}
.bk-cover-card strong{display:block;font-size:15.5px;color:#16202f;margin:10px 0 6px}
.bk-cover-card p{font-size:14px;line-height:1.6;color:#5a6b80;margin:0}
.bk-ic{width:26px;height:26px;color:#0f766e}
.bk-who{background:#f7fafb}
.bk-cost{display:inline-flex;flex-direction:column;align-items:center;gap:2px;margin:18px auto 14px;padding:16px 30px;background:#fff;border:1px solid #d9e6e0;border-radius:14px}
.bk-cost strong{font-size:34px;font-weight:800;color:#0f766e;letter-spacing:-.02em}
.bk-cost span{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#8a96a8}
.bk-who .container{text-align:center}
.bk-fine{font-size:13px;color:#7b8698;max-width:620px;margin:14px auto 0;line-height:1.6}
.bk-faqs{max-width:680px;margin:26px auto 0}
.bk-faq{border:1px solid #e6ecf3;border-radius:12px;background:#fff;margin-bottom:10px;overflow:hidden}
.bk-faq summary{cursor:pointer;padding:16px 20px;font-weight:750;color:#16202f;font-size:15.5px;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px}
.bk-faq summary::-webkit-details-marker{display:none}
.bk-faq summary::after{content:"+";font-size:20px;font-weight:700;color:#0f766e;flex:none;line-height:1}
.bk-faq[open] summary::after{content:"\2013"}
.bk-faq p{margin:0;padding:0 20px 18px;color:#5a6b80;font-size:14.5px;line-height:1.65}
.bk-legal{padding:34px 0 8px;text-align:center}
.bk-legal p{font-size:12.5px;line-height:1.65;color:#8a96a8;max-width:720px;margin:0 auto 16px}
.bk-legal p+p{border-top:1px solid #e6ecf3;padding-top:16px}
.bk-legal strong{color:#6a7686;text-transform:uppercase;font-size:11.5px;letter-spacing:.04em}
.bk-final{padding:56px 0 70px;background:#0f766e;text-align:center}
.bk-final h2{color:#fff;font-size:clamp(22px,3vw,28px);margin:0 0 8px;letter-spacing:-.02em}
.bk-final p{color:#cfe9e5;margin:0 0 22px}
.bk-final .btn-primary{background:#fff;color:#0f766e}
@media (prefers-reduced-motion: no-preference){.bk-faq[open] p{animation:bkFaqIn .22s ease}}
@keyframes bkFaqIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
@media(max-width:680px){.bk-sec{padding:40px 0}.bk-cover{grid-template-columns:1fr}}

/* ============== PAYOUT CALCULATOR: keep the comparison honest on mobile ==============
   The generic .rates-table responsive rules drop columns 4 then 3 on narrow screens.
   On the payout comparison those are "Principal at end" and "Expected lifetime total" —
   the two columns that tell the reader the SPIA consumed the premium while the other
   three instruments hand it back. Dropping them leaves a bare "$8,160 vs $1,360" income
   comparison that reads as a 6x advantage, so the table scrolls instead of hiding data. */
.rates-table-wrap.calc-compare-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
@media (max-width: 760px) {
  .calc-compare th:nth-child(4), .calc-compare td:nth-child(4) { display: table-cell; }
}
@media (max-width: 560px) {
  .calc-compare th:nth-child(3), .calc-compare td:nth-child(3) { display: table-cell; }
  .calc-compare { min-width: 560px; }
  .calc-compare th, .calc-compare td { white-space: nowrap; }
}

/* Touch targets for an audience in its 60s and 70s (WCAG 2.5.5 target size). */
.calc-amount-presets button { min-height: 44px; }
.calc-radio { min-height: 44px; display: inline-flex; align-items: center; gap: 8px; }
.calc-radio input[type="radio"] { width: 20px; height: 20px; }

/* The calculator's own source note sat below body size; keep disclosures legible. */
.calc-results .calc-note { font-size: 12px; line-height: 1.55; color: #6a7482; margin: 10px 2px 0; }
.calc-how { margin: 6px 2px 0; font-size: 12px; line-height: 1.55; color: #6a7482; opacity: 1; }
.calc-how summary { cursor: pointer; font-weight: 600; color: #55606f; list-style: none; }
.calc-how summary::-webkit-details-marker { display: none; }
.calc-how summary::before { content: "+ "; }
.calc-how[open] summary::before { content: "\2212 "; }
.calc-how p { margin: 6px 0 0; }

/* Chart text is authored against a 760-unit viewBox and scaled to the column width, so
   on a 375px phone 12px renders at ~5 CSS px — unreadable, and worst for exactly the
   audience these pages serve. Scale the authored size up as the canvas shrinks. */
@media (max-width: 760px) {
  .pillar-page .guide-body .pf-axis,
  .pf-svg .pf-axis { font-size: 20px; }
  .pf-svg .pf-strong { font-size: 22px; }
}
@media (max-width: 560px) {
  .pillar-page .guide-body .pf-axis,
  /* 26/28 is the largest collision-free size for the 5-bar chart at 375px; above it
     the value labels overlap, which is worse than small text. */
  .pf-svg .pf-axis { font-size: 26px; }
  .pf-svg .pf-strong { font-size: 28px; }
}

/* Inline validation message for the payout calculator's premium field. */
.calc-err { margin: 6px 2px 0; font-size: 14px; line-height: 1.5; color: #a83838; font-weight: 600; }
.calc-fieldset { border: 0; padding: 0; margin: 0 0 18px; }
.calc-fieldset > legend { padding: 0; }

/* Calculator hub editorial artwork */
.calc-hub-card { padding: 0; gap: 0; }
.calc-hub-card::before { display: none; }
.calc-hub-card-image { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; background: #e6f5f3; }
.calc-hub-card-body { display: flex; flex: 1; flex-direction: column; gap: 8px; padding: 22px 22px 20px; }
.calc-hub-card-body > span, .calc-hub-card-body > strong { padding-left: 0; }

/* Agent application — single-screen essentials form */
.intake-card { background: #fff; border: 1px solid #e6ebf2; border-radius: 16px; padding: 8px 28px 26px; margin-top: 22px; box-shadow: 0 6px 22px rgba(14, 26, 51, 0.05); }
.intake-group { border: 0; padding: 22px 0 8px; margin: 0; min-width: 0; border-top: 1px solid #eef1f6; }
.intake-group:first-of-type { border-top: 0; }
.intake-group > legend:not(.sr-only) { font-size: 12px; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; color: #0f766e; padding: 0; margin: 0 0 14px; float: left; width: 100%; }
.intake-group > legend:not(.sr-only) + * { clear: both; }
.st-head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin-bottom: 8px; }
.st-label { font-size: 13px; font-weight: 700; color: #41506a; display: block; margin-bottom: 8px; }
.st-head .st-label { margin-bottom: 0; }
.st-count { font-size: 12px; font-weight: 700; color: #0f766e; }
.st-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.st-chip { position: relative; margin: 0 !important; }
.st-chip input { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; }
.st-chip span { display: inline-block; min-width: 42px; text-align: center; padding: 6px 8px; border: 1px solid #d6deea; border-radius: 8px; font-size: 13px; font-weight: 700; color: #41506a; background: #fff; cursor: pointer; user-select: none; transition: background .12s, border-color .12s, color .12s; }
.st-chip input:checked + span { background: #0f766e; border-color: #0f766e; color: #fff; }
.st-chip input:focus-visible + span { outline: 2px solid #0f766e; outline-offset: 2px; }
.st-chip span:hover { border-color: #0f766e; }
.intake-checks--inline { display: flex; flex-wrap: wrap; gap: 8px 22px; margin-bottom: 4px; }
.intake-actions { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; margin-top: 12px; }
.intake-actions .adv-form-fine { margin: 0; flex: 1 1 260px; }
.intake-group--last .adv-checkbox { margin-bottom: 6px; }
@media (max-width: 640px) { .intake-card { padding: 4px 18px 22px; } .adv-form-row { grid-template-columns: 1fr; gap: 0; } }
.intake-group--last .adv-checkbox { display: grid !important; grid-template-columns: 18px minmax(0, 1fr); gap: 10px; align-items: start; }
.intake-group--last .adv-checkbox input { width: 18px !important; height: 18px !important; min-height: 0 !important; margin: 2px 0 0; padding: 0; }
.intake-group--last .adv-checkbox > span { min-width: 0; font-size: 13.5px; font-weight: 500; line-height: 1.5; color: #41506a; }
