/* Final site-wide rules. The approved reference remains in styles.css. */
:root {
  --brand-navy: #001020;
  --brand-blue: #00a8f0;
  --brand-link: #006b9f;
  --brand-red: #d32632;
  --brand-chrome: #afc4d6;
  --chart-pi: #d32632;
  --chart-tax: #00a8f0;
  --chart-insurance: #afc4d6;
  --chart-mi: #467397;
  --chart-hoa: #102d49;
}
html[data-theme="dark"] { --brand-link: #68d2ff; }
[hidden] { display: none !important; }
html { scroll-padding-top: 110px; }
body { line-height: 1.6; }
main { min-height: 50vh; }
img { max-width: 100%; }
button, input, select { font: inherit; }
button, a, input, select { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
button:disabled { cursor: not-allowed; opacity: .6; }
:focus-visible { outline: 3px solid var(--brand-blue) !important; outline-offset: 4px; }
button:focus-visible, input:focus-visible, select:focus-visible { box-shadow: 0 0 0 5px rgba(0,168,240,.16); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.skip-link { z-index: 1000; }
.reveal { opacity: 1; transform: none; }
.nav { min-width: 0; }
.brand img { height: 76px; width: 218px; object-fit: contain; }
.header { background: #061927; }
.links a[aria-current="page"] { color: #71d7ff; border-bottom: 2px solid var(--brand-blue); padding-block: 8px; }
.mobilemenu { max-height: calc(100dvh - 100px); overflow: auto; background: #061927; }
.mobilemenu a { color: #f2f8ff; }
.mobilemenu a[aria-current="page"] { color: #71d7ff; }
.foot { grid-template-columns: 1.15fr .7fr .9fr 1.2fr; }
.foot > div { min-width: 0; }
.foot a, .foot span { overflow-wrap: anywhere; }
.foot img { width: 240px; height: 90px; object-fit: contain; object-position: left center; }
.compliance-links { display: flex; flex-wrap: wrap; gap: 12px 24px; padding-bottom: 32px; }
.compliance-links a { color: #c8e9fc; text-decoration: underline; text-underline-offset: 4px; }
.btn { text-align: center; line-height: 1.3; }
.btn-secondary { color: var(--brand-link); background: var(--card); border: 1px solid var(--brand-link); box-shadow: none; }
.btn-secondary:hover { color: var(--brand-link); background: var(--soft); border-color: var(--brand-blue); }
.btn-primary { background: linear-gradient(135deg,#d32632,#ae1723); color: #fff; }
.btn-primary:hover { background: #a81820; }
.page-hero,.comparison-hero,.lead-magnet-hero {
  color: #f2f8ff;
  background: radial-gradient(ellipse at 85% 20%,rgba(0,168,240,.16),transparent 55%),linear-gradient(120deg,#001020,#03263d);
  border-bottom: 1px solid rgba(0,168,240,.3);
}
.page-hero .wrap,.comparison-hero .wrap { padding-block: clamp(42px,5vw,82px); }
.page-hero,.comparison-hero { padding-block: 0; }
.page-hero h1,.comparison-hero h1,.lead-magnet-hero h1 { color: #f2f8ff; max-width: 1100px; font-size: clamp(2.35rem,4.5vw,4.8rem); line-height: 1.07; letter-spacing: -.045em; }
html[data-theme] main .page-hero p, html[data-theme] main .comparison-hero p,
html[data-theme] main .lead-magnet-hero p { color: #c0d5e6 !important; max-width: 850px; }
.page-hero .eyebrow,.comparison-hero .eyebrow,.lead-magnet-hero .eyebrow { color: #6ad5ff; }
.breadcrumbs { margin-bottom: 22px; color: #b8d1e1; }
.breadcrumbs a { text-decoration: underline; text-underline-offset: 3px; }
.page-hero .btn-light,.comparison-hero .btn-light,.lead-magnet-hero .btn-light { color: #e9f7ff; border-color: #2084b4; background: #042033; }
.section-nav { border-bottom: 1px solid var(--line); background: var(--card); }
.section-nav .wrap { display:flex; align-items:center; gap:14px 24px; flex-wrap:wrap; padding-block: 18px; }
.section-nav span { font-weight: 800; color: var(--ink); }
.section-nav img { flex: 0 0 44px; object-fit: contain; }
.section-nav a { color:var(--brand-link); font-weight:650; font-size:.88rem; text-decoration:underline; text-underline-offset:4px; }
.content-grid { grid-template-columns: minmax(0,1fr) minmax(250px,.36fr); }
.prose,.legal-page { color: var(--ink); }
.prose p,.legal-page p { max-width: 76ch; line-height: 1.8; }
.prose h2,.legal-page h2 { margin-top: 2rem; margin-bottom: 1rem; font-size: clamp(1.45rem,2vw,2rem); line-height: 1.2; scroll-margin-top: 120px; }
.prose h2:first-child,.legal-page h2:first-child { margin-top: 0; }
.prose li { margin-block: .6em; }
.legal-page a:not(.btn),.prose a:not(.btn),.source-note a { color: var(--brand-link); text-decoration: underline; text-underline-offset: 3px; }
.callout { border-left: 4px solid var(--brand-blue); background: var(--soft); color: var(--ink); padding: 24px; line-height: 1.7; }
.sidebar-card { background: var(--card); border: 1px solid var(--line); border-top: 3px solid var(--brand-blue); }
.sidebar-card a { color: var(--brand-link); }
.card,.loan-type-card,.resource-card { background:var(--card); border:1px solid var(--line); }
.loan-badge { background: var(--soft); color: var(--brand-link); border:1px solid var(--line); }
.loan-card-grid { grid-template-columns: repeat(auto-fit,minmax(min(100%,270px),1fr)); }
.comparison-table-wrap { max-width:100%; overflow:auto; border-radius:18px; border:1px solid var(--line); }
.comparison-table { min-width: 850px; background:var(--card); color:var(--ink); }
.comparison-table th { background:#032238; color:#e9f7ff; }
.comparison-table td { color:var(--ink); border-color:var(--line); }
.comparison-table tbody tr:nth-child(even) { background: var(--soft); }
.resource-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.resource-card { padding:32px; border-radius:20px; display:flex; flex-direction:column; box-shadow:0 10px 32px rgba(0,30,50,.045); }
.resource-card h2 { font-size:1.45rem; line-height:1.2; margin-block:16px 4px; }
.resource-card p { flex:1; }
.resource-number { font-size:.8rem; letter-spacing:.12em; color:var(--brand-link); font-weight:800; }
.resource-card a { color:var(--brand-link); font-weight:750; }
.calculator-shell { max-width: 1520px; }
.calculator-controls,.prequal-panel,.wizard-panel,.schedule-placeholder { background:var(--card); color:var(--ink); }
.calculator-tabs { gap:8px; }
.calculator-tab { color:var(--ink); border:1px solid var(--line); background:var(--card); min-height:54px; }
.calculator-tab.active { background:#006b9f; color:white; border-color:#006b9f; }
.slider-field label,.slider-heading,.field label { color:var(--ink); font-weight:700; }
.slider-heading output { color:var(--brand-link); }
.field input,.field select,.prequal-grid input,.prequal-grid select,.glossary-search input {
  width:100%; min-width:0; min-height:48px; padding:12px 14px; color:var(--ink); background:var(--card); border:1px solid var(--line); border-radius:10px;
}
.field { margin-bottom:18px; }
input[type="range"] { accent-color:#008aca; }
.slider-field input[type="range"] { background:linear-gradient(to right,#008aca 0 var(--range-progress),var(--line) var(--range-progress) 100%); }
.slider-field input[type="range"]::-webkit-slider-thumb { border-color:#008aca; }
.slider-field input[type="range"]::-moz-range-thumb { border-color:#008aca; }
.prequal-progress span.active,.wizard-progress span.active { background:#008aca; }
input[type="checkbox"] { accent-color:#0077af; width:20px; height:20px; flex:0 0 20px; }
.help-tip.show-help::after { opacity:1; visibility:visible; }
.help-tip { color:var(--brand-link); border-color:var(--brand-link); }
html[data-theme] .calculator-results { color:#f2f8ff; background:linear-gradient(145deg,#032c46,#001020); }
html[data-theme] .calculator-results p,html[data-theme] .calculator-results .disclaimer,
html[data-theme] .calculator-results .result-summary { color:#bed4e3 !important; }
.calculator-results .disclaimer a { color:#8cdeff; text-decoration:underline; }
.calculator-results .big-result,.calculator-results strong { color:#fff; }
.calculator-results .payment-donut > div { background:#032238; }
.calculator-results .secondary-results span,.calculator-results .breakdown-row span { color:#d2e4f1; }
.legend-dot.pi { background:var(--chart-pi); }.legend-dot.tax { background:var(--chart-tax); }
.legend-dot.ins { background:var(--chart-insurance); }.legend-dot.pmi { background:var(--chart-mi); }.legend-dot.hoa { background:var(--chart-hoa); }
.prequal-options button,.wizard-option { background:var(--card); color:var(--ink); border:1px solid var(--line); }
.prequal-options button.selected,.wizard-option.selected { border-color:var(--brand-link); background:var(--soft); color:var(--brand-link); box-shadow:0 0 0 2px rgba(0,168,240,.16); }
.prequal-options button.selected::after,.wizard-option.selected::after { content:' ✓'; }
.prequal-nav,.wizard-nav,.finder-controls { display:flex; gap:12px; flex-wrap:wrap; margin-top:24px; }
.form-error { padding:12px 16px; border:1px solid #b92330; border-radius:10px; color:#a71c28; background:#fff1f2; }
[aria-invalid="true"] { border:2px solid #b92330 !important; }
.inquiry-summary { padding:20px 20px 20px 40px; background:var(--soft); color:var(--ink); border-radius:12px; }
html[data-theme="light"] .prequal-sidebar p,html[data-theme="light"] .prequal-sidebar h3,
html[data-theme="light"] .schedule-notes h3 { color:#eaf6ff !important; }
.checklist-status { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:24px; border:1px solid var(--line); border-radius:18px; background:var(--card); }
.checklist-status > div { flex:1; }.checklist-status small { display:block; color:var(--muted); }
.checklist-status progress { display:block; width:100%; accent-color:#008ac6; height:12px; margin-block:14px; }
.checklist li label { display:flex; align-items:flex-start; gap:12px; cursor:pointer; }
.checklist input { margin-top:4px; }
.refinance-content { max-width:1160px; }
.refinance-grid { display:grid; grid-template-columns:1fr 1fr; gap:28px; margin-bottom:48px; }
.refinance-result { border:1px solid #176189; border-radius:22px; padding:36px; color:#e9f6ff; background:linear-gradient(140deg,#043752,#001020); display:flex; flex-direction:column; justify-content:center; }
.refinance-result > strong { font-size:clamp(2rem,4vw,3.6rem); line-height:1.1; margin-block:20px; }
html[data-theme] .refinance-result p { color:#c4dce9 !important; }
.refinance-result small { color:#adc7d7; }
.source-note { font-size:.85rem; }
.textlink { color:var(--brand-link) !important; }
html[data-theme] main .loan-page-hero p,
html[data-theme] main .component-hero p,
html[data-theme] main .loan-finder-visual p { color:#c0d5e6 !important; }
html[data-theme] main .lightning-detail .eyebrow,
html[data-theme] main .prequal-sidebar .eyebrow,
html[data-theme] main .refinance-result .eyebrow { color:#6ad5ff !important; }
html[data-theme="light"] main .finder-step-label,
html[data-theme="light"] main .component-section .eyebrow { color:#006b9f !important; }
html[data-theme="light"] main .schedule-notes h3 { color:#0b2740 !important; }
.finder-lightning-program { color:#f2f8ff; font-weight:750; }
.system-hero { min-height:55vh; display:flex; align-items:center; }
.system-hero img { width:220px; max-height:110px; object-fit:contain; object-position:left; }
.noscript-note { padding:20px; text-align:center; color:var(--ink); background:var(--card); }
.glossary-search { margin-bottom:28px; }
#glossaryCount { color:var(--muted); margin-bottom:22px; }
.guide-cover { background:linear-gradient(145deg,#054365,#001020); border:1px solid #1181b5; color:#e8f5ff; }
.guide-cover strong { color:#ff7180; }
.guide-cover img { width:240px; height:110px; object-fit:contain; }
.lead-magnet-form,.lead-magnet-grid { min-width:0; }
@media (max-width:1250px) { .links { gap:14px; }.links a { font-size:.82rem; }.actions .phone { display:none; } }
@media (max-width:1050px) { .links { display:none; }.menu { display:inline-grid; place-items:center; }.actions { margin-left:auto; }.resource-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:800px) { .content-grid,.refinance-grid { grid-template-columns:1fr; }.foot { grid-template-columns:1fr 1fr; }.checklist-status { flex-direction:column; align-items:stretch; }.section-nav .wrap { gap:10px 18px; }.section-nav a { font-size:.8rem; } }
@media (max-width:560px) {
  .wrap { width:calc(100% - 32px); }.brand img { width:164px; height:65px; }.nav { height:76px; gap:8px; }.actions { gap:8px; }.actions > .btn { display:none; }
  .topbar .wrap { justify-content:center; }.topbar .wrap > span:first-child { display:none; }
  .actions .theme { display:inline-grid; place-items:center; }
  .section,.section.soft { padding-block:54px; }.resource-grid,.foot { grid-template-columns:1fr; }.resource-card { padding:26px; }
  .inline-actions,.result-actions { align-items:stretch; }.inline-actions .btn { max-width:100%; }
  .page-hero h1,.comparison-hero h1 { font-size:2.3rem; }.section-nav img { width:34px; height:34px; flex-basis:34px; }
  .calculator-tabs { flex-direction:column; }.calculator-tab { width:100%; }.calculator-results { padding:24px; }
  .floating-actions { bottom:90px; }.mobilebar { padding:10px 12px max(10px,env(safe-area-inset-bottom)); }
  body { padding-bottom:76px; }.finder-orbit { max-width:calc(100% - 32px); }.foot { gap:28px; }
  .refinance-result { padding:28px; }.legal { flex-direction:column; gap:8px; }
}
@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; }
  .reveal,.finder-lightning-program { opacity:1 !important; transform:none !important; }
}
.state-disclosures { padding-block:22px; border-top:1px solid rgba(175,196,214,.28); font-size:.85rem; line-height:1.65; color:#d5e1ee; }
.state-disclosures p { margin:0 0 10px; max-width:100%; }
.state-disclosures a { color:#fff; text-decoration:underline; text-underline-offset:3px; }
.company-identity { font-weight:700; }
.service-area { font-size:.95rem; color:#e5eef8; letter-spacing:.02em; }
.license-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin:24px 0; }
.license-card { padding:24px; border:1px solid var(--line); border-radius:16px; background:var(--panel); }
.license-card h3 { margin:0 0 12px; }
.license-card p { margin:0 0 10px; }
.license-card a { text-decoration:underline; text-underline-offset:3px; }
.texas-notice { padding-top:24px; margin-top:30px; border-top:1px solid var(--line); }
.texas-notice p { font-size:1rem; line-height:1.7; }
.calculator-assumptions,.contact-notice { font-size:.95rem; line-height:1.6; }
.snapshot-programs a { display:flex; justify-content:center; align-items:center; text-decoration:none; }
.snapshot-top strong { font-size:clamp(1.7rem,3vw,2.6rem); }
.topbar .wrap { flex-wrap:wrap; gap:4px 20px; }
#clearWorksheet { margin-top:20px; }
@media (max-width:600px) { .license-grid { grid-template-columns:1fr; }.service-area { font-size:.87rem; }.state-disclosures { font-size:.82rem; }.topbar { font-size:.72rem; } }
@media print {
  html { font-size:11pt !important; }body { padding:0; background:white !important; color:#10213a !important; }
  .topbar,.header,body>footer,.floating-actions,.mobilebar,.section-nav,.skip-link,button,.noscript-note { display:none !important; }
  .wrap { width:100% !important; }.section,.section.soft,.page-hero { padding:16px 0 !important; background:white !important; color:#10213a !important; }
  .page-hero h1,.page-hero p { color:#10213a !important; }.card,.prose,.legal-page { box-shadow:none; }
  .pdf-report-header { background:#001020 !important; color:#fff !important; padding:20px; print-color-adjust:exact; }
  .pdf-report-header h2 { color:#fff !important; font-size:22px; }.pdf-report-header img { width:180px; height:90px; object-fit:contain; }
  .printing-calculator-report main > :not(.pdf-report) { display:none !important; }.printing-calculator-report .pdf-report { display:block !important; }
}
