
:root{--ink:#102033;--muted:#617089;--line:#dce6f2;--soft:#f6f9fc;--card:#fff;--blue:#155eef;--blue2:#0f46b8;--navy:#0f1f33;--teal:#0d9488;--gold:#b7791f;--shadow:0 18px 48px rgba(15,31,51,.08);--r:24px;--max:1180px}*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:var(--ink);background:#fff;line-height:1.58}a{text-decoration:none;color:inherit}.top{background:var(--navy);color:#dbeafe;font-size:13px}.top .inner,.nav .inner,.wrap,.container{max-width:var(--max);margin:auto}.top .inner{padding:8px 20px;display:flex;justify-content:space-between;gap:14px}.nav{position:sticky;top:0;z-index:10;background:rgba(255,255,255,.94);backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}.nav .inner{padding:15px 20px;display:flex;justify-content:space-between;align-items:center;gap:18px}.brand{font-size:22px;font-weight:900;letter-spacing:-.04em;display:flex;align-items:center;gap:10px}.logo{width:34px;height:34px;border-radius:11px;background:linear-gradient(135deg,var(--blue),#8db7ff);box-shadow:0 10px 24px rgba(21,94,239,.22)}.navlinks{display:flex;gap:19px;align-items:center;font-size:14px;color:#30405a}.navlinks a:hover{color:var(--blue)}.btn{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:11px 18px;font-weight:800;border:1px solid var(--line);background:#fff;box-shadow:0 5px 15px rgba(15,31,51,.04)}.btn.primary{background:var(--blue);color:#fff;border-color:var(--blue)}.btn.primary:hover{background:var(--blue2)}.btn.soft{background:#eef4ff;color:#1746a2;border-color:#d8e6ff}.hero{background:radial-gradient(circle at 74% 8%,#e5efff 0,#fff 43%,#f6f9fc 100%);border-bottom:1px solid var(--line)}.wrap{padding:72px 20px}.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:42px;align-items:center}.kicker{font-size:13px;text-transform:uppercase;letter-spacing:.09em;color:var(--blue);font-weight:900;margin-bottom:13px}.h1,h1{font-size:clamp(38px,6vw,70px);line-height:1;letter-spacing:-.06em;margin:0 0 18px}.h2,h2{font-size:clamp(27px,4vw,43px);line-height:1.08;letter-spacing:-.045em;margin:0 0 14px}.h3,h3{font-size:23px;letter-spacing:-.025em;line-height:1.16;margin:0 0 10px}.lede{font-size:20px;color:var(--muted);max-width:760px;margin:0 0 26px}.actions{display:flex;gap:12px;flex-wrap:wrap}.trust{display:flex;gap:18px;flex-wrap:wrap;color:#40516a;font-size:14px;margin-top:24px}.dot{width:8px;height:8px;border-radius:50%;background:var(--teal);display:inline-block;margin-right:7px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}.tool{padding:24px}.mini{display:grid;gap:12px}.row{display:grid;grid-template-columns:1fr 1fr;gap:12px}label{font-size:13px;font-weight:800;display:block;margin-bottom:6px}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:14px;padding:12px 13px;font-size:16px;background:#fff;color:var(--ink)}textarea{min-height:120px}.result{background:#f1f6ff;border:1px solid #d7e5ff;border-radius:18px;padding:18px;margin-top:14px}.result strong{font-size:34px;letter-spacing:-.05em}.section{padding:68px 20px}.section.soft{background:var(--soft);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}.feature{padding:24px}.feature p,.article p,.article li{color:var(--muted)}.pill{display:inline-flex;border-radius:999px;background:#eef4ff;color:#1746a2;padding:6px 10px;font-size:12px;font-weight:800}.article{max-width:850px}.article h1{font-size:clamp(38px,5vw,60px)}.article h2{margin-top:36px}.callout{background:#fff8e7;border:1px solid #f0d69a;border-radius:20px;padding:20px;color:#5d4214}.note{background:#effcf8;border:1px solid #bceadd;border-radius:20px;padding:20px}.cta{background:var(--navy);color:#fff;border-radius:30px;padding:34px;display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center}.cta p{color:#c7d3e2;margin:0}.calc-grid{display:grid;grid-template-columns:minmax(0,1fr) 390px;gap:24px;align-items:start}.sticky{position:sticky;top:92px;padding:24px}.metric{display:flex;justify-content:space-between;gap:18px;border-top:1px solid var(--line);padding:14px 0}.metric:first-child{border-top:0}.small{font-size:13px;color:var(--muted)}.form-page{display:grid;grid-template-columns:1fr .8fr;gap:28px}.towns{columns:3;column-gap:30px}.towns span{display:block;padding:4px 0;color:#34506f}.footer{background:var(--navy);color:#c7d3e2;padding:46px 20px;margin-top:60px}.footer .inner{max-width:var(--max);margin:auto;display:grid;grid-template-columns:1.2fr repeat(3,1fr);gap:24px}.footer h4{color:#fff;margin:0 0 12px}.footer a{display:block;color:#c7d3e2;font-size:14px;margin:7px 0}.notice{font-size:12px;color:#95a5b8;margin-top:18px}.page-hero{background:linear-gradient(180deg,#f6f9fc,#fff);border-bottom:1px solid var(--line)}@media(max-width:900px){.hero-grid,.grid3,.grid2,.calc-grid,.form-page,.footer .inner{grid-template-columns:1fr}.navlinks{display:none}.row{grid-template-columns:1fr}.cta{grid-template-columns:1fr}.wrap{padding:52px 20px}.section{padding:48px 20px}.sticky{position:static}.towns{columns:1}}

.state-card{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:start}.state-card .badge{background:#eef4ff;color:#1746a2;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:900}.stack{display:grid;gap:16px}.rich-list li{margin:9px 0}.divider{height:1px;background:var(--line);margin:28px 0}.mini-nav{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.mini-nav a{background:#fff;border:1px solid var(--line);border-radius:999px;padding:8px 12px;font-weight:800;font-size:13px;color:#30405a}

.article a{color:var(--blue);font-weight:800}.article strong{color:var(--ink)}.article ul{padding-left:1.25rem}.article .rich-list{padding-left:1.25rem}.article .rich-list li{margin:10px 0}.feature .btn{margin-top:8px}.article blockquote{margin:24px 0;padding:20px;border-left:4px solid var(--blue);background:#f6f9fc;border-radius:0 18px 18px 0;color:#41536e}.answer-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.answer-card{border:1px solid var(--line);border-radius:20px;padding:20px;background:#fff}@media(max-width:900px){.answer-grid{grid-template-columns:1fr}}

.pathway-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(245px,1fr));gap:18px;margin-top:26px}
.pathway-card{border:1px solid var(--line);border-radius:24px;background:#fff;padding:24px;box-shadow:var(--shadow)}
.pathway-card h3{margin-top:0}
.pathway-card p{color:var(--muted)}
.pathway-card a{color:var(--blue);font-weight:900}
.decision-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-top:22px}
.decision-strip a{display:block;border:1px solid var(--line);border-radius:18px;padding:16px;background:#fff;font-weight:850}
.anchor-note{font-size:14px;color:var(--muted);margin-top:10px}
.pillar-map{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;margin-top:24px}
.pillar-map .card{padding:22px}
.pillar-map ul{margin:10px 0 0;padding-left:18px}
.pillar-map li{margin:7px 0;color:var(--muted)}
.home-section{padding:64px 20px}
.home-section.soft{background:var(--soft);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.hero-choice{background:#fff;border:1px solid var(--line);border-radius:28px;padding:24px;box-shadow:var(--shadow)}
.choice-list{display:grid;gap:12px}
.choice-list a{display:flex;justify-content:space-between;gap:12px;border:1px solid var(--line);border-radius:16px;padding:14px 16px;font-weight:900;background:#fff}
.choice-list a span{color:var(--muted);font-weight:700}

.page-intro-block{margin-bottom:28px}
.next-decision{border:1px solid var(--line);border-radius:24px;background:linear-gradient(135deg,#f4f8ff,#fff);padding:24px;margin-top:28px}
.next-decision h2{margin-top:0}
.next-links{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-top:16px}
.next-links a{display:block;border:1px solid var(--line);border-radius:16px;background:#fff;padding:14px 16px;text-decoration:none;font-weight:850}
.comparison-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin:18px 0}
.comparison-row .mini-card{border:1px solid var(--line);border-radius:18px;background:#fff;padding:18px}
.score-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:18px 0}
.score-strip div{background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px}
.score-strip strong{display:block;font-size:22px;margin-bottom:5px}
.truth-box{border-left:4px solid var(--blue);background:#f6f9ff;border-radius:14px;padding:18px;margin:22px 0}
.editor-note{font-size:14px;color:var(--muted);border-top:1px solid var(--line);padding-top:14px;margin-top:18px}
.form-note{font-size:13px;color:var(--muted);line-height:1.5}

.tool-panel{border:1px solid var(--line);border-radius:18px;padding:22px;background:#fff;margin:22px 0;box-shadow:0 8px 24px rgba(15,23,42,.06)}
.tool-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.tool-field label{display:block;font-weight:700;margin-bottom:6px}
.tool-field input,.tool-field select{width:100%;padding:12px;border:1px solid var(--line);border-radius:12px;font:inherit}
.tool-result{background:#f8fafc;border:1px solid var(--line);border-radius:14px;padding:16px;margin-top:16px}
.tool-result strong{font-size:1.15rem}
@media (max-width:700px){.tool-grid{grid-template-columns:1fr}}


/* Phase 2 recovery cleanup: safe link and card layout */
*,
*::before,
*::after{box-sizing:border-box}
html,body{max-width:100%;overflow-x:hidden}
img,svg,video,canvas,iframe{max-width:100%;height:auto}
.wrap,.container,.article,.page-hero .wrap,.section .container{width:min(1120px,calc(100% - 40px));max-width:1120px;margin-left:auto;margin-right:auto}
.card,.cta-panel,.next-decision,section.card,.article section{max-width:100%;min-width:0;overflow-wrap:break-word}
.link-grid,.next-links,.grid,.cards,.card-grid,.resource-grid,.guide-grid,.tool-grid,.local-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:14px;margin:16px 0;max-width:100%}
.link-grid a,.next-links a,.grid a,.cards a,.card-grid a,.resource-grid a,.guide-grid a,.tool-grid a,.local-grid a{display:block;min-width:0;max-width:100%;padding:13px 15px;border:1px solid var(--line,#d9e2ec);border-radius:13px;background:#fff;line-height:1.35;white-space:normal;overflow-wrap:anywhere;text-decoration:none}
.article ul,.article ol{padding-left:1.35rem}
.article li{margin:7px 0;line-height:1.45}
@media(max-width:720px){.wrap,.container,.article,.page-hero .wrap,.section .container{width:calc(100% - 28px)}.link-grid,.next-links,.grid,.cards,.card-grid,.resource-grid,.guide-grid,.tool-grid,.local-grid{grid-template-columns:1fr}}



/* Batch 76 CSS-only layout stabilization
   Purpose: fix overflow, card padding, grid gaps, footer widening, and mobile spacing.
   No HTML/content sections are removed or rewritten in this batch. */

*,
*::before,
*::after {
  box-sizing: border-box;
}

html,
body {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

body {
  margin: 0;
}

img,
svg,
video,
canvas,
iframe {
  max-width: 100%;
  height: auto;
}

.wrap,
.container,
.inner,
.article {
  width: min(1120px, calc(100% - 32px));
  max-width: 1120px;
  margin-left: auto;
  margin-right: auto;
}

.section {
  width: 100%;
  max-width: 100%;
  padding: clamp(22px, 4vw, 42px) 0;
}

.section + .section {
  padding-top: 0;
}

/* Card/container stability */
.card,
.cta,
.cta-panel,
.next-decision,
.article > section,
.container > section,
section.card {
  max-width: 100%;
  min-width: 0;
  overflow: hidden;
  overflow-wrap: break-word;
  word-break: normal;
  border-radius: 22px;
}

.card,
.next-decision,
.article > section,
.container > section,
section.card {
  padding: clamp(20px, 3vw, 34px);
  margin: 0 0 clamp(18px, 3vw, 30px);
}

.cta,
.cta-panel {
  padding: clamp(20px, 3vw, 34px);
  margin: 0 0 clamp(18px, 3vw, 30px);
}

.card > :first-child,
.next-decision > :first-child,
.article > section > :first-child,
.container > section > :first-child,
.cta > :first-child,
.cta-panel > :first-child {
  margin-top: 0;
}

.card > :last-child,
.next-decision > :last-child,
.article > section > :last-child,
.container > section > :last-child,
.cta > :last-child,
.cta-panel > :last-child {
  margin-bottom: 0;
}

.card p,
.article p,
.container p,
.card li,
.article li,
.container li {
  line-height: 1.58;
}

.article ul,
.article ol,
.card ul,
.card ol,
.container ul,
.container ol {
  padding-left: 1.45rem;
  margin: 14px 0;
}

.article li,
.card li,
.container li {
  margin: 7px 0;
}

/* Grid/link-card stability */
.grid,
.cards,
.card-grid,
.link-grid,
.next-links,
.resource-grid,
.guide-grid,
.tool-grid,
.local-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr));
  gap: clamp(11px, 2vw, 16px);
  width: 100%;
  max-width: 100%;
  min-width: 0;
  margin: 18px 0;
  align-items: stretch;
}

.grid > *,
.cards > *,
.card-grid > *,
.link-grid > *,
.next-links > *,
.resource-grid > *,
.guide-grid > *,
.tool-grid > *,
.local-grid > * {
  min-width: 0;
  max-width: 100%;
}

.grid a,
.cards a,
.card-grid a,
.link-grid a,
.next-links a,
.resource-grid a,
.guide-grid a,
.tool-grid a,
.local-grid a {
  display: flex;
  align-items: center;
  min-height: 54px;
  padding: 14px 16px;
  border: 1px solid var(--line, #d9e2ec);
  border-radius: 14px;
  background: #fff;
  line-height: 1.35;
  white-space: normal;
  overflow-wrap: anywhere;
  text-decoration: none;
}

/* Prevent loose link runs from forcing wide pages */
.card > a,
.article > a,
.container > a,
section > a {
  display: inline-flex;
  align-items: center;
  max-width: 100%;
  margin: 6px 8px 6px 0;
  overflow-wrap: anywhere;
  white-space: normal;
}

h1,
h2,
h3,
h4 {
  max-width: 100%;
  overflow-wrap: break-word;
}

p {
  max-width: 78ch;
}

/* Tables/inputs should not widen the page */
.table-wrap,
.table-scroll {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
}

table {
  width: 100%;
  max-width: 100%;
  border-collapse: collapse;
}

input,
select,
textarea,
button {
  max-width: 100%;
}

/* Header/nav safety */
.nav .inner,
.top .inner {
  max-width: 1120px;
}

.navlinks {
  min-width: 0;
  flex-wrap: wrap;
}

/* Footer stability */
.footer {
  width: 100%;
  max-width: 100%;
  overflow: hidden;
}

.footer .inner {
  display: grid;
  grid-template-columns: minmax(240px, 1.5fr) repeat(3, minmax(160px, 1fr));
  gap: clamp(18px, 3vw, 30px);
  align-items: start;
}

.footer a {
  display: block;
  margin: 8px 0;
  overflow-wrap: anywhere;
  white-space: normal;
}

.footer .notice {
  max-width: 70ch;
}

@media (max-width: 760px) {
  .wrap,
  .container,
  .inner,
  .article {
    width: min(100% - 24px, 1120px);
  }

  .section {
    padding: 24px 0;
  }

  .card,
  .next-decision,
  .article > section,
  .container > section,
  section.card,
  .cta,
  .cta-panel {
    padding: 18px;
    margin-bottom: 18px;
    border-radius: 18px;
  }

  .grid,
  .cards,
  .card-grid,
  .link-grid,
  .next-links,
  .resource-grid,
  .guide-grid,
  .tool-grid,
  .local-grid {
    grid-template-columns: 1fr !important;
    gap: 11px;
  }

  .grid a,
  .cards a,
  .card-grid a,
  .link-grid a,
  .next-links a,
  .resource-grid a,
  .guide-grid a,
  .tool-grid a,
  .local-grid a {
    min-height: 48px;
    padding: 13px 14px;
  }

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


/* Batch 83 containment patch
   Fixes loose lower-page card sections that escaped article/container wrappers.
   Keeps all direct main/body card sections centered in the same content column. */

main {
  width: 100%;
  max-width: 100%;
  overflow-x: clip;
}

/* Cards accidentally placed as direct children of main/body should not span from the viewport edge. */
main > section.card,
body > section.card,
main.section > section.card,
body > .card {
  width: min(1120px, calc(100% - 32px));
  max-width: 1120px;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* If a direct main/body card follows another direct card, keep normal vertical rhythm. */
main > section.card + section.card,
body > section.card + section.card {
  margin-top: clamp(18px, 3vw, 30px);
}

/* Hero-style sections that are direct children of main should use the same centered card treatment,
   not the full-width homepage hero behavior. */
main > section.hero {
  width: min(1120px, calc(100% - 32px));
  max-width: 1120px;
  margin-left: auto;
  margin-right: auto;
  border-radius: 22px;
  background: var(--card);
  border: 1px solid var(--line);
  box-shadow: var(--shadow);
  padding: clamp(20px, 3vw, 34px);
  overflow: hidden;
}

/* Inner article/card groups inside main need stable containment even if the HTML closes a wrapper early. */
main.section > .container,
main.section > .article,
main.section > .calc-grid {
  width: min(1120px, calc(100% - 32px));
  max-width: 1120px;
  margin-left: auto;
  margin-right: auto;
}

/* Prevent bottom CTA bands from creating a full-width visual jump when inserted after loose cards. */
main + section.section,
footer.footer + section.section {
  width: 100%;
}

@media (max-width: 760px) {
  main > section.card,
  body > section.card,
  main.section > section.card,
  body > .card,
  main > section.hero,
  main.section > .container,
  main.section > .article,
  main.section > .calc-grid {
    width: min(100% - 24px, 1120px);
  }
}


/* Batch 84 spacing/footer polish
   Reduces oversized section gaps, keeps card stacks readable, and fixes footer utility-link containment. */

:root {
  --section-y: clamp(22px, 3vw, 36px);
  --card-gap: clamp(16px, 2.2vw, 24px);
}

/* Tighter vertical rhythm while preserving readable breathing room */
.section {
  padding-top: var(--section-y) !important;
  padding-bottom: var(--section-y) !important;
}

.section + .section {
  padding-top: var(--section-y) !important;
}

.page-hero .wrap,
.hero .wrap {
  padding-top: clamp(42px, 5vw, 64px);
  padding-bottom: clamp(36px, 5vw, 58px);
}

.card,
.next-decision,
.article > section,
.container > section,
section.card,
main > section.card,
main > section.hero {
  margin-bottom: var(--card-gap) !important;
}

/* Avoid giant empty bands between cards and lower content */
.card + .card,
section.card + section.card,
.article > section + section,
.container > section + section,
main > section.card + section.card {
  margin-top: 0 !important;
}

/* Keep headings visually connected to the content that follows */
.card h2,
.card h3,
.article h2,
.article h3,
.container h2,
.container h3 {
  margin-bottom: clamp(10px, 1.4vw, 16px);
}

.card p + .grid,
.card p + .cards,
.card p + .link-grid,
.card p + .next-links {
  margin-top: clamp(12px, 1.6vw, 18px);
}

.grid,
.cards,
.card-grid,
.link-grid,
.next-links,
.resource-grid,
.guide-grid,
.tool-grid,
.local-grid {
  margin-top: clamp(12px, 1.6vw, 18px) !important;
  margin-bottom: clamp(10px, 1.6vw, 16px) !important;
  gap: clamp(10px, 1.5vw, 14px) !important;
}

/* Footer utility links must stay inside the same grid/margins, not drift below-left. */
.footer .inner > div {
  min-width: 0;
}

.footer .notice,
.footer p,
.footer a {
  max-width: 100%;
}

.footer .footer-legal,
.footer .utility,
.footer .footer-utility,
.footer .footer-bottom {
  grid-column: 1 / -1;
  max-width: 1120px;
  margin-left: 0;
  margin-right: 0;
}

.footer a[href*="advertise"] {
  display: inline-block;
  margin-top: 8px;
}

/* If any old footer text/link was placed as a direct footer child, pull it back into the footer width. */
.footer > a,
.footer > p,
.footer > div:not(.inner) {
  width: min(1120px, calc(100% - 32px));
  max-width: 1120px;
  margin-left: auto;
  margin-right: auto;
}

@media (max-width: 760px) {
  :root {
    --section-y: 22px;
    --card-gap: 16px;
  }

  .page-hero .wrap,
  .hero .wrap {
    padding-top: 38px;
    padding-bottom: 34px;
  }
}


/* Batch 84 conversation page order/spacing */
body:has(form[name="conversation"]) .page-hero .wrap {
  padding-bottom: clamp(24px, 3vw, 36px);
}

body:has(form[name="conversation"]) main.section {
  padding-top: clamp(18px, 2.5vw, 28px) !important;
}

form[name="conversation"] {
  gap: 12px;
}

form[name="conversation"] .row {
  gap: 12px;
}

.form-note,
.form-consent p {
  font-size: 13px;
  line-height: 1.45;
}

.form-consent {
  margin-top: 4px;
}

.checkbox-consent {
  font-size: 13px;
  line-height: 1.45;
}


/* Batch 85 spacing/alignment polish
   Further tightens remaining large vertical gaps and aligns homepage starting-point rows. */

/* The main visual gap was still too large between hero and first content card. */
.page-hero + main.section,
.hero + main.section {
  padding-top: clamp(10px, 1.6vw, 18px) !important;
}

.page-hero .wrap,
.hero .wrap {
  padding-bottom: clamp(24px, 3.2vw, 40px) !important;
}

/* Bring stacked cards closer together without eliminating the breathing room. */
main.section {
  row-gap: 0 !important;
}

.card,
section.card,
main > section.card,
main > section.hero,
.next-decision {
  margin-bottom: clamp(12px, 1.5vw, 18px) !important;
}

.card + .card,
section.card + section.card,
.article > section + section,
.container > section + section,
.next-decision + .card,
.card + .next-decision {
  margin-top: 0 !important;
}

/* Tighten cards that start with an H2 after a prior card/section. */
.card h2:first-child,
section.card h2:first-child,
.next-decision h2:first-child {
  margin-top: 0;
}

/* Reduce the internal dead space in broad cards and grids. */
.card,
section.card,
.next-decision,
main > section.hero {
  padding-top: clamp(18px, 2.2vw, 26px) !important;
  padding-bottom: clamp(18px, 2.2vw, 26px) !important;
}

.grid,
.cards,
.card-grid,
.link-grid,
.next-links,
.resource-grid,
.guide-grid,
.tool-grid,
.local-grid {
  gap: clamp(8px, 1.2vw, 12px) !important;
}

/* Homepage: align the two-column "Choose a starting point" rows. */
.starting-points,
.starting-point,
.start-grid,
.choice-grid,
.decision-grid {
  align-items: stretch;
}

.starting-points a,
.starting-point a,
.start-grid a,
.choice-grid a,
.decision-grid a,
.starting-points .card,
.starting-point .card,
.start-grid .card,
.choice-grid .card,
.decision-grid .card {
  display: flex;
  align-items: center;
}

/* Actual homepage chooser rows are simple anchor/cards inside a grid; normalize all direct children. */
.home-chooser,
.choose-starting-point,
.choose-path,
.path-grid {
  align-items: stretch;
}

.home-chooser > *,
.choose-starting-point > *,
.choose-path > *,
.path-grid > * {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between;
  min-height: 64px;
  gap: 16px;
}

/* Fallback: row-like links/cards with two text spans should align to the center instead of baseline/top. */
.card .grid a,
.card .cards a,
.card .link-grid a,
.card .next-links a {
  align-items: center;
}

/* Do not let very large H2s create an oversized gap before link rows. */
.card h2 + .grid,
.card h2 + .cards,
.card h2 + .link-grid,
.card h2 + .next-links,
.next-decision h2 + .next-links {
  margin-top: clamp(10px, 1.4vw, 14px) !important;
}

/* Keep the homepage chooser rows visually consistent even when labels wrap. */
.card a {
  line-height: 1.25;
}

@media (max-width: 760px) {
  .page-hero + main.section,
  .hero + main.section {
    padding-top: 10px !important;
  }

  .card,
  section.card,
  main > section.card,
  main > section.hero,
  .next-decision {
    margin-bottom: 12px !important;
  }

  .home-chooser > *,
  .choose-starting-point > *,
  .choose-path > *,
  .path-grid > * {
    min-height: 58px;
  }
}


/* Batch 89 uniform card spacing
   Establishes one consistent moderate gap between cards and sections across the site. */

:root {
  --uniform-card-gap: clamp(24px, 3vw, 42px);
  --uniform-section-y: clamp(24px, 3vw, 38px);
  --uniform-card-pad-y: clamp(20px, 2.4vw, 30px);
}

/* Keep the page rhythm consistent: enough separation, no giant dead zones. */
.section,
main.section {
  padding-top: var(--uniform-section-y) !important;
  padding-bottom: var(--uniform-section-y) !important;
}

.page-hero + main.section,
.hero + main.section {
  padding-top: clamp(18px, 2.4vw, 30px) !important;
}

.page-hero .wrap,
.hero .wrap {
  padding-bottom: clamp(28px, 3.6vw, 46px) !important;
}

/* Standard card stack gap: target roughly 25-50px depending on viewport. */
.card,
section.card,
.next-decision,
.article > section,
.container > section,
main > section.card,
main > section.hero {
  margin-top: 0 !important;
  margin-bottom: var(--uniform-card-gap) !important;
  padding-top: var(--uniform-card-pad-y) !important;
  padding-bottom: var(--uniform-card-pad-y) !important;
}

.card + .card,
section.card + section.card,
.article > section + section,
.container > section + section,
main > section.card + section.card,
.next-decision + .card,
.card + .next-decision {
  margin-top: 0 !important;
}

/* Last card before footer should not create a huge empty band. */
main > section.card:last-of-type,
.article > section:last-of-type,
.container > section:last-of-type,
.card:last-child {
  margin-bottom: clamp(18px, 2.2vw, 30px) !important;
}

/* Internal rhythm inside cards. */
.card h2,
.card h3,
section.card h2,
section.card h3 {
  margin-top: 0;
  margin-bottom: clamp(10px, 1.3vw, 16px) !important;
}

.card p,
section.card p {
  margin-top: 0;
}

.card p:last-child,
section.card p:last-child,
.card ul:last-child,
section.card ul:last-child {
  margin-bottom: 0;
}

.grid,
.cards,
.card-grid,
.link-grid,
.next-links,
.resource-grid,
.guide-grid,
.tool-grid,
.local-grid,
.home-chooser {
  gap: clamp(12px, 1.8vw, 18px) !important;
  margin-top: clamp(12px, 1.6vw, 18px) !important;
  margin-bottom: 0 !important;
}

/* Avoid card grids visually gluing to the next card. */
.card .grid:last-child,
.card .cards:last-child,
.card .link-grid:last-child,
.card .next-links:last-child {
  margin-bottom: 0 !important;
}

@media (max-width: 760px) {
  :root {
    --uniform-card-gap: 24px;
    --uniform-section-y: 22px;
    --uniform-card-pad-y: 20px;
  }
}


/* Batch 90 calculator fixes */
.calc .button,
.calc button.button,
.calc button[data-action="calculate"] {
  margin-top: 16px;
  border: 0;
  cursor: pointer;
}

.result-stack {
  display: grid;
  gap: 12px;
  align-items: start;
}

.result-stack > div {
  display: grid;
  gap: 4px;
}

.result-label {
  display: block;
  font-size: 13px;
  line-height: 1.35;
  color: var(--muted);
  font-weight: 700;
}

.result-stack strong {
  display: block;
  line-height: 1.25;
}


/* Batch 91 mobile hamburger and calculator result polish */
.nav-toggle {
  display: none;
  width: 44px;
  height: 40px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
  align-items: center;
  justify-content: center;
  gap: 4px;
  flex-direction: column;
  cursor: pointer;
}

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

.result.result-stack {
  display: grid !important;
  gap: 8px !important;
  align-items: start !important;
}

.result.result-stack > div {
  display: grid !important;
  gap: 4px !important;
}

.result.result-stack strong {
  display: block !important;
  line-height: 1.25 !important;
  white-space: normal !important;
}

.result-label {
  display: block;
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
  line-height: 1.35;
}

@media (max-width: 900px) {
  .nav .inner {
    position: relative;
  }

  .nav-toggle {
    display: inline-flex;
    margin-left: auto;
  }

  .navlinks {
    display: none;
    position: absolute;
    top: calc(100% + 12px);
    left: 20px;
    right: 20px;
    z-index: 50;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 18px;
    box-shadow: var(--shadow);
    padding: 12px;
    flex-direction: column;
    align-items: stretch;
    gap: 4px;
  }

  .navlinks.is-open {
    display: flex;
  }

  .navlinks a {
    display: block;
    padding: 11px 12px;
    border-radius: 12px;
  }

  .navlinks a:hover {
    background: #f3f6fb;
  }

  .navlinks .btn {
    justify-content: center;
    margin-top: 6px;
  }
}


/* Batch 92 remaining layout escape containment
   Keeps any legacy section blocks after </main> aligned to the same centered content width. */
body > section.section {
  padding-left: 20px !important;
  padding-right: 20px !important;
}

body > section.section > .container,
body > section.section > .contain,
body > section.section > .wrap {
  width: min(1120px, 100%) !important;
  max-width: 1120px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

body > section.section .card,
body > section.section .cta,
body > section.section .cta-panel,
body > section.section .grid,
body > section.section .cards,
body > section.section .link-grid {
  max-width: 1120px;
}


/* Batch 93 real main-section containment fix
   Fixes pages such as Long Island where direct children of main.section could escape
   to the viewport edge even though they were technically inside <main>. */
main.section {
  display: block !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Center every direct content block inside main.section. */
main.section > section,
main.section > div,
main.section > article {
  width: min(1120px, calc(100% - 40px)) !important;
  max-width: 1120px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  box-sizing: border-box !important;
}

/* Keep internal wrappers from re-expanding or shifting. */
main.section > section > .container,
main.section > section > .contain,
main.section > section > .wrap {
  width: 100% !important;
  max-width: 1120px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  box-sizing: border-box !important;
}

/* Full-width section wrappers should still center their inner content. */
main.section > section.section {
  width: 100% !important;
  max-width: none !important;
  padding-left: 20px !important;
  padding-right: 20px !important;
}

main.section > section.section > .container,
main.section > section.section > .contain,
main.section > section.section > .wrap {
  width: min(1120px, 100%) !important;
  max-width: 1120px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Prevent card/link grids from overflowing their centered parent. */
main.section .card,
main.section .grid-2,
main.section .decision-grid,
main.section .link-grid,
main.section .next-links,
main.section .grid,
main.section .cards,
main.section .cta,
main.section .cta-panel,
main.section .next-decision {
  box-sizing: border-box !important;
  max-width: 100% !important;
}

/* On narrow screens, keep a normal mobile gutter. */
@media (max-width: 760px) {
  main.section > section,
  main.section > div,
  main.section > article {
    width: min(100% - 28px, 1120px) !important;
  }

  main.section > section.section {
    padding-left: 14px !important;
    padding-right: 14px !important;
  }
}


/* Batch 95 homepage chooser alignment and tighter section rhythm */

/* Tighten the large blank gaps between homepage/pillar card sections. */
main.section {
  padding-top: clamp(18px, 2vw, 28px) !important;
  padding-bottom: clamp(18px, 2vw, 28px) !important;
}

.card,
section.card,
main > section.card,
main.section > section,
main.section > div,
main.section > article {
  margin-bottom: clamp(18px, 2.2vw, 32px) !important;
}

.card + .card,
section.card + section.card,
main.section > section + section,
main.section > div + div,
main.section > article + article {
  margin-top: 0 !important;
}

/* Keep hero-to-first-section spacing modest. */
.page-hero + main.section,
.hero + main.section {
  padding-top: clamp(14px, 1.8vw, 24px) !important;
}

/* Homepage chooser: fixed left column so the right column begins at the same x-position on every row. */
.home-chooser {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 12px !important;
}

.home-chooser > a,
.home-chooser > * {
  display: grid !important;
  grid-template-columns: minmax(190px, 42%) 1fr !important;
  align-items: center !important;
  column-gap: 22px !important;
  min-height: 58px !important;
  padding: 13px 18px !important;
  box-sizing: border-box !important;
}

.home-chooser > a > span,
.home-chooser > * > span {
  align-self: center !important;
  line-height: 1.25 !important;
}

.home-chooser > a > span:first-child,
.home-chooser > * > span:first-child {
  min-width: 0 !important;
}

.home-chooser > a > span:last-child,
.home-chooser > * > span:last-child {
  justify-self: start !important;
  text-align: left !important;
  min-width: 0 !important;
}

/* If the chooser links are plain text with inline children, keep the layout stable anyway. */
.home-chooser a {
  text-decoration: none;
}

/* Make standalone inline navigation links look intentional. */
.inline-cta {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 44px !important;
  padding: 11px 16px !important;
  border: 1px solid var(--line) !important;
  border-radius: 14px !important;
  font-weight: 800 !important;
  color: var(--blue) !important;
  background: #fff !important;
  text-decoration: none !important;
  margin-top: 12px !important;
}

.inline-cta:hover {
  background: #f3f6fb !important;
}

/* Avoid huge desktop gaps caused by older spacing patches. */
.section + .section,
.card + .section,
.section + .card {
  margin-top: 0 !important;
}

@media (max-width: 760px) {
  .home-chooser > a,
  .home-chooser > * {
    grid-template-columns: 1fr !important;
    row-gap: 6px !important;
    min-height: 64px !important;
    padding: 13px 16px !important;
  }

  .home-chooser > a > span:last-child,
  .home-chooser > * > span:last-child {
    color: var(--muted);
  }

  .card,
  section.card,
  main > section.card,
  main.section > section,
  main.section > div,
  main.section > article {
    margin-bottom: 22px !important;
  }
}


/* Batch 95b actual hero choice-list alignment */
.hero-choice .choice-list {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 12px !important;
}

.hero-choice .choice-list > a {
  display: grid !important;
  grid-template-columns: minmax(190px, 42%) 1fr !important;
  align-items: center !important;
  column-gap: 22px !important;
  min-height: 58px !important;
  padding: 13px 18px !important;
  box-sizing: border-box !important;
}

.hero-choice .choice-list > a > span {
  justify-self: start !important;
  text-align: left !important;
  line-height: 1.25 !important;
}

/* Tighter homepage section spacing specifically after the hero. */
body.home .section,
.home .section,
header.hero + section.section,
header.hero + section.section + section.section {
  padding-top: clamp(16px, 2vw, 26px) !important;
  padding-bottom: clamp(16px, 2vw, 26px) !important;
}

header.hero + section.section {
  margin-top: 0 !important;
}

header.hero + section.section + section.section {
  margin-top: 0 !important;
}

@media (max-width: 760px) {
  .hero-choice .choice-list > a {
    grid-template-columns: 1fr !important;
    row-gap: 6px !important;
  }
}


/* Batch 97 final vertical rhythm fix
   Reduces oversized blank gaps between major cards/sections while preserving readable separation. */
.page-hero {
  padding-top: clamp(34px, 4vw, 58px) !important;
  padding-bottom: clamp(20px, 2.5vw, 34px) !important;
}

.hero {
  padding-bottom: clamp(22px, 3vw, 38px) !important;
}

main.section {
  padding-top: clamp(16px, 2vw, 26px) !important;
  padding-bottom: clamp(28px, 3vw, 44px) !important;
}

main.section > .container,
main.section > .wrap,
main.section > .contain {
  display: grid !important;
  gap: clamp(22px, 2.7vw, 36px) !important;
}

main.section > section,
main.section > article,
main.section > div {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

main.section .card,
main.section section.card,
main.section article.card,
main.section .cta,
main.section .cta-panel,
main.section .next-decision {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

main.section .card + .card,
main.section section.card + section.card,
main.section article.card + article.card,
main.section .next-decision + .card,
main.section .card + .next-decision {
  margin-top: 0 !important;
}

main.section .section {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

main.section .section > .container,
main.section .section > .wrap,
main.section .section > .contain {
  display: grid !important;
  gap: clamp(22px, 2.7vw, 36px) !important;
}

.next-decision + .conversation-cta,
.card + .conversation-cta,
section + .conversation-cta {
  margin-top: clamp(22px, 2.7vw, 36px) !important;
}

.conversation-cta {
  padding-top: clamp(8px, 1vw, 14px) !important;
}

/* Keep legal pages readable after the new grid rhythm. */
.legal-content {
  display: grid !important;
  gap: clamp(20px, 2.4vw, 32px) !important;
}

/* Tighten card internals where older patches created visual air. */
.card {
  padding-top: clamp(24px, 3vw, 38px) !important;
  padding-bottom: clamp(24px, 3vw, 38px) !important;
}

.card > :first-child {
  margin-top: 0 !important;
}

.card > :last-child {
  margin-bottom: 0 !important;
}

@media (max-width: 760px) {
  .page-hero {
    padding-top: 30px !important;
    padding-bottom: 18px !important;
  }

  main.section {
    padding-top: 14px !important;
    padding-bottom: 30px !important;
  }

  main.section > .container,
  main.section > .wrap,
  main.section > .contain,
  main.section .section > .container,
  main.section .section > .wrap,
  main.section .section > .contain {
    gap: 22px !important;
  }

  .card {
    padding-top: 22px !important;
    padding-bottom: 22px !important;
  }
}


/* Batch 102 state guide hub card layout fix */
.guide-card-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 18px !important;
  align-items: stretch !important;
  width: 100% !important;
}

.guide-card-grid .guide-card {
  display: block !important;
  min-width: 0 !important;
  width: 100% !important;
  min-height: 0 !important;
  padding: 20px 22px !important;
  border: 1px solid var(--line) !important;
  border-radius: 18px !important;
  background: #fff !important;
  text-decoration: none !important;
  color: var(--text) !important;
  box-sizing: border-box !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
  white-space: normal !important;
  line-height: 1.45 !important;
}

.guide-card-grid .guide-card-title {
  display: block !important;
  margin: 0 0 8px !important;
  font-size: 1.08rem !important;
  line-height: 1.25 !important;
  font-weight: 900 !important;
  color: var(--text) !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
  white-space: normal !important;
}

.guide-card-grid .guide-card-desc {
  display: block !important;
  margin: 0 !important;
  font-size: 0.98rem !important;
  line-height: 1.45 !important;
  font-weight: 500 !important;
  color: var(--muted) !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
  white-space: normal !important;
}

.guide-card-grid .guide-card:hover {
  border-color: rgba(30, 99, 255, 0.45) !important;
  box-shadow: 0 12px 30px rgba(15, 23, 42, 0.08) !important;
}

@media (max-width: 980px) {
  .guide-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 640px) {
  .guide-card-grid {
    grid-template-columns: 1fr !important;
    gap: 14px !important;
  }
  .guide-card-grid .guide-card {
    padding: 18px !important;
  }
}
