/* ============================================================
   HomeMortgageSuccess — Design System v4
   "Private Banking Intelligence" — warm ivory + deep navy + indigo
   Fonts: Fraunces (serif display) + Outfit (geometric sans)
   Stack: Pure CSS — zero build tools — cPanel ready
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,300;0,9..144,400;1,9..144,300;1,9..144,400&family=Outfit:wght@300;400;500;600;700;800&display=swap');

/* ── DESIGN TOKENS */
:root {
  --ink:#090e1a; --navy:#0f1f3d; --navy-mid:#18336b; --navy-light:#1f4299;
  --indigo:#4361ee; --indigo-dim:#3451d1; --indigo-faint:rgba(67,97,238,.07); --indigo-glow:rgba(67,97,238,.20);
  --teal:#0ca678; --teal-light:#20c997; --teal-faint:rgba(12,166,120,.08);
  --amber:#f59f00; --green:#2f9e44; --red:#e03131;
  --bg:#faf8f5; --paper:#ffffff; --surf-1:#f8f6f2; --surf-2:#f1ede6; --surf-3:#e7e2d9;
  --line:#e5e0d7; --line-strong:#ccc6bb;
  --t1:#0c1220; --t2:#2b3a55; --t3:#5d6e8a; --t4:#95a3b8;
  --white:#ffffff; --navy-alias:#0f1f3d;
  --serif:'Fraunces',Georgia,serif; --sans:'Outfit',system-ui,sans-serif;
  --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s5:20px; --s6:24px;
  --s7:28px; --s8:32px; --s10:40px; --s12:48px; --s16:64px; --s20:80px; --s24:96px;
  --r1:4px; --r2:8px; --r3:12px; --r4:16px; --r5:20px; --r6:28px;
  --sh0:0 1px 2px rgba(9,14,26,.04);
  --sh1:0 2px 6px rgba(9,14,26,.07),0 1px 2px rgba(9,14,26,.04);
  --sh2:0 4px 16px rgba(9,14,26,.08),0 2px 4px rgba(9,14,26,.04);
  --sh3:0 8px 28px rgba(9,14,26,.10),0 3px 8px rgba(9,14,26,.05);
  --sh4:0 20px 48px rgba(9,14,26,.12),0 6px 16px rgba(9,14,26,.06);
  --sh5:0 36px 72px rgba(9,14,26,.14),0 12px 24px rgba(9,14,26,.08);
  --sh-i:0 4px 20px rgba(67,97,238,.30); --sh-t:0 4px 20px rgba(12,166,120,.28);
  --ease:cubic-bezier(.22,1,.36,1); --fast:.15s; --mid:.22s; --slow:.38s;
  --mw:1160px; --mwt:720px;
}

/* ── RESET */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;font-size:16px;-webkit-text-size-adjust:100%}
body{font-family:var(--sans);color:var(--t2);background:var(--bg);line-height:1.65;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
img,video{max-width:100%;display:block}
a{color:var(--indigo);text-decoration:none;transition:color var(--mid) var(--ease)}
a:hover{color:var(--indigo-dim)}
ul{list-style:none}
button,input,select,textarea{font-family:inherit}
:focus-visible{outline:2px solid var(--indigo);outline-offset:3px;border-radius:var(--r1)}

/* ── TYPOGRAPHY */
h1,h2,h3{font-family:var(--serif);font-weight:300;line-height:1.14;color:var(--t1);letter-spacing:-.03em}
h4,h5,h6{font-family:var(--sans);font-weight:700;line-height:1.3;color:var(--t1);letter-spacing:-.01em}
h1{font-size:clamp(2.2rem,5vw,3.6rem)}
h2{font-size:clamp(1.75rem,3.5vw,2.7rem)}
h3{font-size:clamp(1.3rem,2.5vw,2rem)}
h4{font-size:1.05rem} h5{font-size:.875rem}
p{color:var(--t2);margin-bottom:1rem;line-height:1.78}
p:last-child{margin-bottom:0}
strong{color:var(--t1);font-weight:700}
.lead{font-size:clamp(1.05rem,2vw,1.22rem);color:var(--t3);line-height:1.78;font-weight:300}
.section-kicker{display:inline-block;font-size:.7rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--teal);margin-bottom:var(--s3)}
.label-sm{font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--t3)}

/* ── LAYOUT */
.container{max-width:var(--mw);margin:0 auto;padding:0 var(--s5)}
.container-sm{max-width:var(--mwt);margin:0 auto;padding:0 var(--s5)}
.section{padding:var(--s20) 0} .section-sm{padding:var(--s12) 0} .section-lg{padding:112px 0}
.grid{display:grid;gap:var(--s6)}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}
.text-center{text-align:center} .text-muted{color:var(--t3)} .text-faint{color:var(--t4)}
.text-success{color:var(--green)} .text-danger{color:var(--red)}
.d-flex{display:flex} .flex-center{display:flex;align-items:center;justify-content:center}
.flex-between{display:flex;align-items:center;justify-content:space-between}
.align-center{align-items:center}
.gap-1{gap:var(--s2)} .gap-2{gap:var(--s4)} .gap-3{gap:var(--s6)} .gap-4{gap:var(--s8)}
.mt-1{margin-top:var(--s2)} .mt-2{margin-top:var(--s4)} .mt-3{margin-top:var(--s6)} .mt-4{margin-top:var(--s10)}
.mb-1{margin-bottom:var(--s2)} .mb-2{margin-bottom:var(--s4)} .mb-3{margin-bottom:var(--s6)} .mb-4{margin-bottom:var(--s10)}
.w-full{width:100%} .hidden{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}

/* ── BUTTONS */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);padding:11px 24px;border-radius:var(--r3);font-family:var(--sans);font-size:.9rem;font-weight:600;line-height:1;letter-spacing:-.01em;border:none;cursor:pointer;text-decoration:none;white-space:nowrap;position:relative;isolation:isolate;transition:background var(--mid) var(--ease),box-shadow var(--mid) var(--ease),transform var(--mid) var(--ease),border-color var(--mid) var(--ease),color var(--mid) var(--ease)}
.btn::before{content:'';position:absolute;inset:0;border-radius:inherit;background:linear-gradient(180deg,rgba(255,255,255,.13) 0%,transparent 55%);pointer-events:none}
.btn-primary{background:var(--navy);color:var(--white);box-shadow:0 1px 3px rgba(9,14,26,.25),0 4px 14px rgba(9,14,26,.14)}
.btn-primary:hover{background:var(--navy-mid);box-shadow:0 2px 8px rgba(9,14,26,.3),0 8px 24px rgba(9,14,26,.18);transform:translateY(-1px);color:var(--white)}
.btn-indigo{background:var(--indigo);color:var(--white);box-shadow:var(--sh-i)}
.btn-indigo:hover{background:var(--indigo-dim);box-shadow:0 6px 28px rgba(67,97,238,.42);transform:translateY(-1px);color:var(--white)}
.btn-secondary{background:var(--paper);color:var(--t1);border:1.5px solid var(--line);box-shadow:var(--sh0)}
.btn-secondary::before{display:none}
.btn-secondary:hover{border-color:var(--indigo);color:var(--indigo-dim);background:var(--indigo-faint);box-shadow:0 0 0 3px var(--indigo-glow)}
.btn-teal{background:var(--teal);color:var(--white);box-shadow:var(--sh-t)}
.btn-teal:hover{background:#099163;box-shadow:0 6px 28px rgba(12,166,120,.4);transform:translateY(-1px);color:var(--white)}
.btn-ghost{background:transparent;color:var(--t3);border:1.5px solid var(--line)}
.btn-ghost::before{display:none}
.btn-ghost:hover{background:var(--surf-1);color:var(--t1);border-color:var(--line-strong)}
.btn-lg{padding:14px 32px;font-size:1rem;border-radius:var(--r4)}
.btn-sm{padding:7px 15px;font-size:.82rem;border-radius:var(--r2)}
.btn-xs{padding:5px 10px;font-size:.78rem;border-radius:var(--r1)}
.btn-primary:active,.btn-indigo:active,.btn-teal:active{transform:none}
.btn-block{width:100%}

/* ── NAVIGATION */
.site-header{position:sticky;top:0;z-index:900;background:rgba(250,248,245,.88);backdrop-filter:blur(22px) saturate(180%);-webkit-backdrop-filter:blur(22px) saturate(180%);border-bottom:1px solid transparent;transition:border-color var(--mid) var(--ease),box-shadow var(--slow) var(--ease),background var(--mid) var(--ease)}
.site-header.scrolled{border-bottom-color:var(--line);box-shadow:0 1px 24px rgba(9,14,26,.06);background:rgba(250,248,245,.97)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:66px;gap:var(--s8)}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;flex-shrink:0}
.logo-mark{width:36px;height:36px;background:var(--navy);border-radius:10px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(9,14,26,.22);transition:transform var(--mid) var(--ease),box-shadow var(--mid) var(--ease)}
.logo:hover .logo-mark{transform:rotate(-5deg) scale(1.07);box-shadow:0 4px 16px rgba(9,14,26,.28)}
.logo-mark svg{color:var(--white)}
.logo-text{font-family:var(--serif);font-size:1.1rem;color:var(--t1);line-height:1;letter-spacing:-.025em;font-weight:400}
.logo-text span{color:var(--indigo)}
.nav-links{display:flex;align-items:center;gap:2px;flex:1}
.nav-links a{padding:6px 13px;border-radius:var(--r2);color:var(--t3);font-size:.875rem;font-weight:500;transition:all var(--mid) var(--ease);text-decoration:none;position:relative}
.nav-links a::after{content:'';position:absolute;bottom:2px;left:13px;right:13px;height:2px;background:var(--indigo);border-radius:2px;transform:scaleX(0);transition:transform var(--mid) var(--ease)}
.nav-links a:hover{color:var(--t1);background:var(--surf-1)}
.nav-links a.active{color:var(--t1);font-weight:600}
.nav-links a.active::after{transform:scaleX(1)}
.nav-cta{flex-shrink:0}
.nav-toggle{display:none;background:none;border:none;cursor:pointer;padding:var(--s2);border-radius:var(--r2);color:var(--t3);transition:all var(--fast);flex-direction:column}
.nav-toggle:hover{background:var(--surf-1);color:var(--t1)}
.nav-toggle .bar{display:block;width:20px;height:2px;background:currentColor;border-radius:2px;transition:all var(--mid) var(--ease)}
.nav-toggle .bar+.bar{margin-top:5px}
.mobile-menu{display:none;flex-direction:column;padding:var(--s3) var(--s5) var(--s5);border-top:1px solid var(--line);background:rgba(250,248,245,.98);gap:2px}
.mobile-menu a{display:block;padding:10px 12px;color:var(--t2);font-weight:500;border-radius:var(--r2);text-decoration:none;font-size:.9rem;transition:all var(--fast)}
.mobile-menu a:hover{background:var(--surf-1);color:var(--t1)}
.mobile-menu.open{display:flex}

/* ── HERO */
.hero{background:var(--bg);padding:96px 0 84px;position:relative;overflow:hidden}
.hero::before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(67,97,238,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(67,97,238,.035) 1px,transparent 1px);background-size:56px 56px;mask-image:radial-gradient(ellipse 90% 90% at 55% 45%,black 0%,transparent 100%);pointer-events:none}
.hero-inner{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;position:relative;z-index:1}
.hero-badge{display:inline-flex;align-items:center;gap:var(--s2);padding:5px 13px;background:var(--indigo-faint);border:1px solid rgba(67,97,238,.18);border-radius:99px;font-size:.74rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--indigo);margin-bottom:var(--s5)}
.hero-badge svg{animation:pulse 2.4s ease infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}
.hero h1{margin-bottom:var(--s5)}
.hero h1 em{font-style:italic;color:var(--indigo)}
.hero .lead{margin-bottom:var(--s10);max-width:460px}
.hero-actions{display:flex;gap:var(--s3);flex-wrap:wrap}
.hero-visual{position:relative}
.hero-card{background:var(--paper);border-radius:var(--r6);padding:var(--s8);box-shadow:var(--sh5);border:1px solid var(--line);position:relative;overflow:hidden;animation:float 6s ease-in-out infinite}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
.hero-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--indigo),var(--teal))}
.hero-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--s6)}
.hero-card-label{font-size:.7rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--t4)}
.hero-card-stat{font-family:var(--serif);font-size:3.2rem;color:var(--t1);line-height:1;letter-spacing:-.05em;margin-bottom:var(--s2)}
.hero-card-stat span{font-size:1.3rem;font-family:var(--sans);color:var(--t4);font-weight:300}
.hero-bar{height:5px;background:var(--surf-2);border-radius:99px;overflow:hidden;margin-top:var(--s5)}
.hero-bar-fill{height:100%;background:linear-gradient(90deg,var(--indigo),var(--teal));border-radius:99px;animation:barFill 2s var(--ease) forwards;width:0}
@keyframes barFill{to{width:67%}}
.hero-metrics{display:grid;grid-template-columns:1fr 1fr;gap:var(--s3);margin-top:var(--s5)}
.hero-metric{background:var(--surf-1);border-radius:var(--r2);padding:var(--s4);border:1px solid var(--line);text-align:center}
.hero-metric-val{display:block;font-size:1.5rem;font-weight:800;color:var(--t1);letter-spacing:-.03em;line-height:1}
.hero-metric-lbl{font-size:.73rem;color:var(--t4);margin-top:3px;font-weight:500}

/* ── TRUST BAR */
.trust-bar{background:var(--navy);padding:18px 0}
.trust-items{display:flex;align-items:center;justify-content:center;gap:var(--s12);flex-wrap:wrap}
.trust-item{display:flex;align-items:center;gap:9px;color:rgba(255,255,255,.65);font-size:.8rem;font-weight:600;white-space:nowrap}
.trust-item svg{color:var(--teal-light);flex-shrink:0}

/* ── SECTION HEADER */
.section-header{margin-bottom:var(--s12)}
.section-header.text-center{text-align:center}
.section-header.text-center p{max-width:520px;margin:var(--s3) auto 0}
.section-header h2{margin-bottom:var(--s3)}


/* Remove gap between section header and grid */
.section-header {
    margin-bottom: 24px; /* reduce from whatever it is now */
}

/* Force single column on mobile for ALL grids */
@media (max-width: 768px) {
    .grid,
    .grid-3,
    .grid-4 {
        grid-template-columns: 1fr !important;
        gap: 16px;
    }
}

/* Fix the benefits section two-column layout on mobile */
@media (max-width: 768px) {
    .benefits-section [style*="grid-template-columns:1fr 1fr"] {
        display: block !important;
    }
    
    .comparison-card {
        margin-top: 32px;
    }
}

/* Remove the fade-up top spacing gap */
@media (max-width: 768px) {
    .fade-up {
        margin-top: 0 !important;
    }
}

/* ── CARDS */
.card{background:var(--paper);border-radius:var(--r4);border:1px solid var(--line);box-shadow:var(--sh1);transition:box-shadow var(--slow) var(--ease),transform var(--slow) var(--ease),border-color var(--mid);overflow:hidden;position:relative}
.card:hover{box-shadow:var(--sh3);transform:translateY(-4px);border-color:var(--line-strong)}
.card-body{padding:var(--s7) var(--s8)}
.card-icon{width:46px;height:46px;background:var(--indigo-faint);border:1px solid rgba(67,97,238,.14);border-radius:var(--r2);display:flex;align-items:center;justify-content:center;margin-bottom:var(--s4);color:var(--indigo);transition:all var(--mid) var(--ease)}
.card:hover .card-icon{background:rgba(67,97,238,.13);transform:scale(1.06) rotate(-2deg)}
.card-icon svg{width:20px;height:20px}
.card-title{font-family:var(--serif);font-size:1.25rem;color:var(--t1);margin-bottom:var(--s2);letter-spacing:-.025em}
.card p{font-size:.875rem;color:var(--t3);line-height:1.68}
.card-link{display:inline-flex;align-items:center;gap:5px;font-size:.82rem;font-weight:700;color:var(--indigo);margin-top:var(--s4);transition:gap var(--mid) var(--ease),color var(--mid);text-decoration:none}
.card-link:hover{gap:9px;color:var(--indigo-dim)}
.card-featured{background:var(--navy);border:none;box-shadow:var(--sh4)}
.card-featured::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--indigo),var(--teal))}
.card-featured .card-icon{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.1);color:var(--white)}
.card-featured:hover .card-icon{background:rgba(255,255,255,.16)}
.card-featured .card-title{color:var(--white)}
.card-featured p{color:rgba(255,255,255,.6)}
.card-featured .card-link{color:var(--teal-light)}

/* ── TOOL PAGES */
.tool-layout{display:grid;grid-template-columns:1fr 420px;gap:var(--s10);align-items:start}
.calc-card{background:var(--paper);border-radius:var(--r5);border:1px solid var(--line);box-shadow:var(--sh3);overflow:hidden}
.calc-card-head{background:var(--navy);padding:var(--s7) var(--s8);position:relative;overflow:hidden}
.calc-card-head::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--indigo),var(--teal),var(--amber))}
.calc-card-head::after{content:'';position:absolute;right:-80px;bottom:-80px;width:240px;height:240px;background:radial-gradient(circle,rgba(67,97,238,.1) 0%,transparent 70%);pointer-events:none}
.calc-card-head h2{color:var(--white);font-size:1.4rem;margin-bottom:4px;position:relative;z-index:1}
.calc-card-head p{color:rgba(255,255,255,.5);font-size:.83rem;margin:0;position:relative;z-index:1}
.calc-form{padding:var(--s8)}

/* ── FORMS */
.form-group{margin-bottom:var(--s5)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--s4)}
.form-label{display:block;font-size:.79rem;font-weight:700;color:var(--t2);margin-bottom:var(--s2);letter-spacing:.01em}
.form-hint{font-size:.74rem;color:var(--t4);margin-top:var(--s1);line-height:1.4}
.form-error{font-size:.74rem;color:var(--red);margin-top:var(--s1);line-height:1.4;display:none}
.form-error.visible{display:block}
.input-wrap{position:relative}
.input-prefix,.input-suffix{position:absolute;top:50%;transform:translateY(-50%);color:var(--t4);font-size:.875rem;font-weight:600;pointer-events:none;transition:color var(--mid)}
.input-prefix{left:13px} .input-suffix{right:13px}
.input-wrap:focus-within .input-prefix,.input-wrap:focus-within .input-suffix{color:var(--indigo)}
.input-wrap .form-control{padding-left:30px}
.input-wrap .form-control.has-suffix{padding-right:36px}
.form-control{display:block;width:100%;padding:10px 14px;background:var(--surf-1);border:1.5px solid var(--line);border-radius:var(--r2);font-size:.9rem;color:var(--t1);font-weight:500;transition:border-color var(--mid) var(--ease),background var(--mid),box-shadow var(--mid);line-height:1.5;-webkit-appearance:none}
.form-control:hover{border-color:var(--line-strong);background:var(--paper)}
.form-control:focus{outline:none;border-color:var(--indigo);background:var(--paper);box-shadow:0 0 0 4px var(--indigo-glow)}
.form-control::placeholder{color:var(--t4);font-weight:400}
.form-control.is-invalid,.form-control.error{border-color:var(--red)}
.form-control.is-invalid:focus,.form-control.error:focus{box-shadow:0 0 0 4px rgba(224,49,49,.12)}
select.form-control{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath fill='none' stroke='%2395a3b8' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' d='M1 1l4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:38px;cursor:pointer}
textarea.form-control{resize:vertical;min-height:120px;line-height:1.7}
.form-check{display:flex;align-items:center;gap:var(--s2);margin-bottom:var(--s2)}
.form-check input{width:16px;height:16px;accent-color:var(--indigo);flex-shrink:0;cursor:pointer}
.form-check label{font-size:.9rem;color:var(--t2);cursor:pointer}

/* ── RESULT PANEL */
.results-panel{background:var(--paper);border-radius:var(--r5);border:1px solid var(--line);box-shadow:var(--sh3);overflow:hidden;position:sticky;top:84px}
.results-panel-head{padding:var(--s3) var(--s6);background:var(--surf-1);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}
.results-panel-head h3{font-family:var(--sans);font-size:.72rem;font-weight:800;color:var(--t4);text-transform:uppercase;letter-spacing:.12em}
.results-panel-head .live-dot{width:7px;height:7px;background:var(--teal);border-radius:50%;animation:livePulse 2s ease infinite;display:none}
.results-panel.is-active .live-dot{display:block}
@keyframes livePulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.75)}}
.result-primary{background:var(--navy);padding:var(--s6) var(--s6) var(--s5);position:relative;overflow:hidden}
.result-primary::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--indigo),var(--teal))}
.result-primary::after{content:'';position:absolute;bottom:-60px;right:-60px;width:200px;height:200px;background:radial-gradient(circle,rgba(67,97,238,.18) 0%,transparent 70%);pointer-events:none}
.result-primary-label{font-size:.66rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.38);margin-bottom:var(--s2)}
.result-primary-value{font-family:var(--serif);font-size:3.4rem;color:var(--white);line-height:1;letter-spacing:-.06em;position:relative;z-index:1;animation:countIn .5s var(--ease) both}
@keyframes countIn{from{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}
.result-primary-sub{font-size:.74rem;color:rgba(255,255,255,.36);margin-top:var(--s2)}
.result-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line)}
.result-item{background:var(--paper);padding:var(--s4) var(--s5);transition:background var(--fast)}
.result-item:hover{background:var(--surf-1)}
.result-item-label{font-size:.66rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--t4);margin-bottom:var(--s1)}
.result-item-value{font-size:1.2rem;font-weight:800;color:var(--t1);letter-spacing:-.025em;line-height:1.2}
.result-item-value.positive{color:var(--green)}
.result-item-value.negative{color:var(--red)}
.result-breakdown{padding:var(--s2) var(--s6) var(--s4)}
.result-breakdown-row{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--line);font-size:.875rem}
.result-breakdown-row:last-child{border-bottom:none}
.result-breakdown-row .label{color:var(--t3);font-weight:500}
.result-breakdown-row .value{font-weight:700;color:var(--t1)}
.result-breakdown-row .value.positive{color:var(--green)}
.result-actions{padding:var(--s4) var(--s6) var(--s6);display:flex;flex-direction:column;gap:var(--s2);border-top:1px solid var(--line)}
.results-placeholder{padding:var(--s12) var(--s8);text-align:center}
.results-placeholder h3{font-family:var(--sans);font-size:1rem;font-weight:700;margin-bottom:var(--s2)}
.results-placeholder p{font-size:.84rem;color:var(--t4);max-width:220px;margin:0 auto}

/* ── TABLE */
.table-wrap{overflow-x:auto;border-radius:var(--r4);border:1px solid var(--line);box-shadow:var(--sh1);-webkit-overflow-scrolling:touch}
.table-scroll-hint{font-size:.74rem;color:var(--t4);margin-bottom:var(--s2);display:none}
.data-table{width:100%;border-collapse:collapse;font-size:.84rem}
.data-table thead{background:var(--navy)}
.data-table thead th{padding:11px 16px;color:rgba(255,255,255,.6);font-weight:700;font-size:.68rem;letter-spacing:.09em;text-transform:uppercase;text-align:left;white-space:nowrap}
.data-table tbody tr{border-bottom:1px solid var(--line);transition:background var(--fast)}
.data-table tbody tr:last-child{border-bottom:none}
.data-table tbody tr:hover{background:rgba(67,97,238,.025)}
.data-table tbody tr.year-row{background:rgba(67,97,238,.04);font-weight:700}
.data-table td{padding:10px 16px;color:var(--t2)}
.data-table td:first-child{font-weight:700;color:var(--t1)}

/* ── GUIDE / ARTICLE */
.guide-hero{background:var(--bg);border-bottom:1px solid var(--line);padding:var(--s16) 0 var(--s12);position:relative;overflow:hidden}
.guide-hero::before{content:'';position:absolute;inset:0;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:44px 44px;opacity:.38;pointer-events:none}
.guide-meta{display:flex;align-items:center;gap:var(--s4);margin-bottom:var(--s4);flex-wrap:wrap}
.guide-tag{display:inline-block;padding:3px 10px;background:var(--indigo-faint);border:1px solid rgba(67,97,238,.15);color:var(--indigo);border-radius:99px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em}
.guide-meta-text{font-size:.82rem;color:var(--t4);font-weight:500}
.guide-content{padding:var(--s16) 0}
.guide-layout{display:grid;grid-template-columns:1fr 300px;gap:var(--s16);align-items:start}
.prose h2{margin:var(--s10) 0 var(--s4)}
.prose h3{margin:var(--s8) 0 var(--s3);font-family:var(--sans);font-size:1.05rem;font-weight:800;color:var(--t1)}
.prose p{margin-bottom:var(--s5);line-height:1.84}
.prose ul,.prose ol{margin:0 0 var(--s5) var(--s5);color:var(--t2);line-height:1.82}
.prose li{margin-bottom:var(--s2)}
.prose strong{color:var(--t1)} .prose a{font-weight:600}
.summary-box{background:var(--teal-faint);border-left:3px solid var(--teal);border-radius:0 var(--r2) var(--r2) 0;padding:var(--s5) var(--s6);margin:var(--s8) 0}
.summary-box h4{color:var(--teal);font-size:.875rem;margin-bottom:var(--s2)}
.summary-box p{color:var(--t2);font-size:.9rem;margin:0}
.info-box{background:var(--indigo-faint);border:1px solid rgba(67,97,238,.15);border-radius:var(--r2);padding:var(--s5) var(--s6);margin:var(--s6) 0}
.info-box h4{color:var(--indigo);font-size:.875rem;margin-bottom:var(--s2)}
.info-box p{color:var(--t2);font-size:.875rem;margin:0}
.guide-sidebar{position:sticky;top:84px}
.sidebar-card{background:var(--paper);border-radius:var(--r4);border:1px solid var(--line);box-shadow:var(--sh1);padding:var(--s6);margin-bottom:var(--s4)}
.sidebar-card h4{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--t4);margin-bottom:var(--s4)}
.sidebar-toc a{display:block;padding:7px 0;font-size:.84rem;color:var(--t3);border-bottom:1px solid var(--line);font-weight:500;transition:color var(--mid),padding-left var(--mid) var(--ease);text-decoration:none}
.sidebar-toc a:hover{color:var(--indigo);padding-left:4px}
.sidebar-toc a:last-child{border:none}

/* ── CTA SECTION */
.cta-section{background:var(--navy);padding:var(--s20) 0;position:relative;overflow:hidden}
.cta-section::before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.022) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.022) 1px,transparent 1px);background-size:60px 60px;pointer-events:none}
.cta-section::after{content:'';position:absolute;width:700px;height:700px;background:radial-gradient(circle,rgba(67,97,238,.14) 0%,transparent 60%);left:-200px;bottom:-350px;pointer-events:none}
.cta-section-inner{position:relative;z-index:1;text-align:center}
.cta-section h2{color:var(--white);margin-bottom:var(--s4)}
.cta-section p{color:rgba(255,255,255,.6);font-size:1.1rem;margin-bottom:var(--s10)}
.cta-actions{display:flex;gap:var(--s3);justify-content:center;flex-wrap:wrap}
.inline-cta{background:linear-gradient(135deg,var(--indigo-faint) 0%,var(--teal-faint) 100%);border:1px solid rgba(67,97,238,.15);border-radius:var(--r4);padding:var(--s6) var(--s8);display:flex;align-items:center;justify-content:space-between;gap:var(--s6);flex-wrap:wrap;margin:var(--s10) 0}
.inline-cta-text h4{color:var(--t1);margin-bottom:4px}
.inline-cta-text p{color:var(--t3);font-size:.875rem;margin:0}

/* ── MONETIZATION COMPONENTS */

/* Quote CTA block */
.quote-cta-block{background:linear-gradient(135deg,var(--navy) 0%,var(--navy-mid) 100%);border-radius:var(--r4);padding:var(--s7) var(--s8);position:relative;overflow:hidden;margin-top:var(--s8)}
.quote-cta-block::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--indigo),var(--teal))}
.quote-cta-block::after{content:'';position:absolute;right:-60px;top:-60px;width:200px;height:200px;background:radial-gradient(circle,rgba(67,97,238,.14) 0%,transparent 70%);pointer-events:none}
.quote-cta-block-inner{position:relative;z-index:1}
.quote-cta-block h4{color:var(--white);font-family:var(--sans);font-size:1.05rem;font-weight:700;margin-bottom:var(--s2)}
.quote-cta-block p{color:rgba(255,255,255,.6);font-size:.84rem;margin-bottom:var(--s5)}
.quote-cta-block .cta-trust{font-size:.72rem;color:rgba(255,255,255,.35);margin-top:var(--s3)}

/* Lender comparison CTA */
.lender-cta-section{background:var(--surf-1);border:1px solid var(--line);border-radius:var(--r5);padding:var(--s8) var(--s10);margin:var(--s10) 0}
.lender-cta-section h3{font-family:var(--sans);font-size:1.1rem;font-weight:800;color:var(--t1);margin-bottom:var(--s2)}
.lender-cta-section p{font-size:.875rem;color:var(--t3);margin-bottom:var(--s6)}
.lender-cta-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s4);margin-bottom:var(--s6)}
.lender-cta-item{background:var(--paper);border:1px solid var(--line);border-radius:var(--r3);padding:var(--s5);text-align:center;transition:all var(--mid) var(--ease)}
.lender-cta-item:hover{border-color:rgba(67,97,238,.3);box-shadow:var(--sh2);transform:translateY(-2px)}
.lender-cta-item .lender-name{font-weight:700;font-size:.875rem;color:var(--t1);margin-bottom:var(--s1)}
.lender-cta-item .lender-badge{font-size:.7rem;color:var(--t4);margin-bottom:var(--s3)}
.lender-cta-item .lender-rate{font-size:1.5rem;font-weight:800;color:var(--indigo);letter-spacing:-.03em;font-family:var(--serif);display:block;margin-bottom:var(--s3)}

/* Email capture */
.email-capture-block{background:linear-gradient(135deg,#f0f7ff 0%,#f0fdf8 100%);border:1px solid rgba(67,97,238,.18);border-radius:var(--r5);padding:var(--s10) var(--s12);text-align:center;margin:var(--s10) 0;position:relative;overflow:hidden}
.email-capture-block::before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(67,97,238,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(67,97,238,.03) 1px,transparent 1px);background-size:32px 32px;pointer-events:none}
.email-capture-block-inner{position:relative;z-index:1}
.email-capture-icon{width:52px;height:52px;background:var(--indigo-faint);border:1px solid rgba(67,97,238,.2);border-radius:var(--r3);display:flex;align-items:center;justify-content:center;margin:0 auto var(--s5);color:var(--indigo)}
.email-capture-block h3{font-family:var(--sans);font-size:1.3rem;font-weight:800;color:var(--t1);margin-bottom:var(--s3);letter-spacing:-.025em}
.email-capture-block .checklist{display:flex;gap:var(--s4);justify-content:center;flex-wrap:wrap;margin:var(--s5) 0 var(--s7)}
.email-capture-block .checklist-item{display:flex;align-items:center;gap:var(--s2);font-size:.82rem;color:var(--t2);font-weight:500}
.email-capture-block .checklist-item svg{color:var(--teal);flex-shrink:0}
.email-capture-form{display:flex;gap:var(--s3);max-width:480px;margin:0 auto}
.email-capture-form input{flex:1;padding:12px 16px;border:1.5px solid var(--line);border-radius:var(--r3);font-family:var(--sans);font-size:.9rem;color:var(--t1);background:var(--paper);transition:border-color var(--mid),box-shadow var(--mid)}
.email-capture-form input:focus{outline:none;border-color:var(--indigo);box-shadow:0 0 0 4px var(--indigo-glow)}
.email-capture-disclaimer{font-size:.72rem;color:var(--t4);margin-top:var(--s3)}
.email-capture-success{display:none;padding:var(--s5);background:rgba(47,158,68,.06);border:1px solid rgba(47,158,68,.2);border-radius:var(--r3);color:#175c1e;font-size:.875rem;font-weight:600}

/* Affiliate block */
.affiliate-block{background:var(--paper);border:1px solid var(--line);border-radius:var(--r4);padding:var(--s6) var(--s7);margin:var(--s8) 0}
.affiliate-block-label{font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--t4);margin-bottom:var(--s4);display:flex;align-items:center;gap:var(--s2)}
.affiliate-block-label::after{content:'';flex:1;height:1px;background:var(--line)}
.affiliate-items{display:flex;flex-direction:column;gap:var(--s3)}
.affiliate-item{display:flex;align-items:center;justify-content:space-between;gap:var(--s4);padding:var(--s4) var(--s5);background:var(--surf-1);border:1px solid var(--line);border-radius:var(--r3);transition:all var(--mid) var(--ease);text-decoration:none}
.affiliate-item:hover{border-color:rgba(67,97,238,.25);background:var(--paper);box-shadow:var(--sh1);transform:translateX(3px)}
.affiliate-item-info{flex:1}
.affiliate-item-name{font-size:.875rem;font-weight:700;color:var(--t1);display:block;margin-bottom:2px}
.affiliate-item-desc{font-size:.75rem;color:var(--t4)}
.affiliate-item-badge{font-size:.7rem;font-weight:700;padding:3px 9px;border-radius:99px;background:var(--teal-faint);color:var(--teal);border:1px solid rgba(12,166,120,.2);white-space:nowrap}
.affiliate-disclosure{font-size:.68rem;color:var(--t4);margin-top:var(--s3);padding-top:var(--s3);border-top:1px solid var(--line)}

/* Internal links */
.internal-links-module{background:var(--surf-1);border:1px solid var(--line);border-radius:var(--r4);padding:var(--s6) var(--s7);margin:var(--s8) 0}
.internal-links-module h4{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--t4);margin-bottom:var(--s5)}
.internal-links-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s3)}
.internal-link-item{display:flex;align-items:center;gap:var(--s3);padding:var(--s3) var(--s4);background:var(--paper);border:1px solid var(--line);border-radius:var(--r2);text-decoration:none;transition:all var(--mid) var(--ease)}
.internal-link-item:hover{border-color:rgba(67,97,238,.25);color:var(--indigo);box-shadow:var(--sh0)}
.internal-link-item .link-icon{width:30px;height:30px;background:var(--indigo-faint);border-radius:var(--r1);display:flex;align-items:center;justify-content:center;color:var(--indigo);flex-shrink:0}
.internal-link-item .link-text{font-size:.82rem;font-weight:600;color:var(--t2)}
.internal-link-item:hover .link-text{color:var(--indigo)}

/* Sticky mobile CTA */
.mobile-cta-bar{display:none;position:fixed;bottom:0;left:0;right:0;z-index:800;background:var(--navy);border-top:1px solid rgba(255,255,255,.1);padding:var(--s3) var(--s5);box-shadow:0 -8px 24px rgba(9,14,26,.18)}
.mobile-cta-bar-inner{display:flex;gap:var(--s3);align-items:center;max-width:var(--mw);margin:0 auto}
.mobile-cta-bar-text{flex:1;font-size:.82rem;color:rgba(255,255,255,.65);line-height:1.3}
.mobile-cta-bar-text strong{color:var(--white);display:block;font-size:.9rem}
.mobile-cta-bar .btn{flex-shrink:0;padding:10px 20px}

/* ── BENEFITS */
.benefits-section{background:var(--surf-1);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.benefit-check{width:28px;height:28px;background:var(--teal-faint);border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--teal);font-weight:800;font-size:.82rem;border:1px solid rgba(12,166,120,.2)}
.comparison-card{background:var(--paper);border-radius:var(--r5);border:1px solid var(--line);box-shadow:var(--sh3);padding:var(--s8)}
.comparison-row{display:flex;justify-content:space-between;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}
.comparison-row:last-child{border-bottom:none}

/* ── FAQ */
.faq-list{max-width:760px}
.faq-item{border:1px solid var(--line);border-radius:var(--r2);margin-bottom:var(--s2);overflow:hidden;transition:border-color var(--mid),box-shadow var(--mid)}
.faq-item:has(.faq-question.open){border-color:rgba(67,97,238,.28);box-shadow:0 0 0 3px rgba(67,97,238,.08)}
.faq-question{width:100%;background:var(--paper);border:none;padding:var(--s5) var(--s6);text-align:left;font-size:.9rem;font-weight:600;color:var(--t1);cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:var(--s4);transition:background var(--fast);font-family:var(--sans)}
.faq-question:hover{background:var(--surf-1)}
.faq-question.open{background:rgba(67,97,238,.03);color:var(--navy-mid)}
.faq-chevron{flex-shrink:0;color:var(--t4);transition:transform var(--mid) var(--ease),color var(--mid)}
.faq-question.open .faq-chevron{transform:rotate(180deg);color:var(--indigo)}
.faq-answer{display:none;padding:0 var(--s6) var(--s5);font-size:.875rem;color:var(--t3);line-height:1.78;border-top:1px solid var(--line);background:rgba(67,97,238,.02)}
.faq-answer.open{display:block}

/* ── RATES */
.rates-table-wrap{overflow-x:auto;border-radius:var(--r4);box-shadow:var(--sh2);-webkit-overflow-scrolling:touch}
.rates-table{width:100%;border-collapse:separate;border-spacing:0;border-radius:var(--r4);overflow:hidden;border:1px solid var(--line)}
.rates-table thead{background:var(--navy)}
.rates-table thead th{padding:13px 20px;color:rgba(255,255,255,.6);font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;text-align:left}
.rates-table tbody tr{border-bottom:1px solid var(--line);transition:background var(--fast)}
.rates-table tbody tr:hover{background:rgba(67,97,238,.025)}
.rates-table td{padding:15px 20px;color:var(--t2);font-size:.875rem}
.rates-table td strong{color:var(--t1);font-size:1rem}
.rate-val{font-size:1.4rem;font-weight:800;color:var(--t1);letter-spacing:-.03em}
.rate-badge{display:inline-block;padding:2px 9px;background:var(--teal-faint);color:var(--teal);border-radius:99px;font-size:.72rem;font-weight:700;border:1px solid rgba(12,166,120,.22)}

/* ── PAGE HERO */
.page-hero{background:var(--surf-1);border-bottom:1px solid var(--line);padding:var(--s12) 0 var(--s10);position:relative;overflow:hidden}
.page-hero::before{content:'';position:absolute;inset:0;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:36px 36px;opacity:.4;pointer-events:none}
.page-hero>.container{position:relative;z-index:1}

/* ── BREADCRUMBS */
.breadcrumb{display:flex;align-items:center;gap:var(--s2);font-size:.8rem;color:var(--t4);margin-bottom:var(--s5);flex-wrap:wrap}
.breadcrumb a{color:var(--t4);font-weight:500;text-decoration:none}
.breadcrumb a:hover{color:var(--indigo)}
.breadcrumb span{color:var(--line-strong)}

/* ── STATS */
.stat-item{text-align:center;padding:var(--s6)}
.stat-val{font-family:var(--serif);font-size:2.8rem;color:var(--t1);line-height:1;letter-spacing:-.04em}
.stat-label{font-size:.8rem;color:var(--t4);margin-top:var(--s2);font-weight:600}
.stats-band{background:var(--surf-1);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}

/* ── FILTER BAR */
.filter-bar{display:flex;gap:var(--s2);flex-wrap:wrap;margin-bottom:var(--s8)}
.filter-btn{padding:7px 16px;border:1.5px solid var(--line);border-radius:99px;font-size:.82rem;font-weight:600;font-family:var(--sans);background:var(--paper);color:var(--t3);cursor:pointer;transition:all var(--mid) var(--ease)}
.filter-btn:hover{border-color:var(--indigo);color:var(--indigo);background:var(--indigo-faint)}
.filter-btn.active{background:var(--navy);border-color:var(--navy);color:var(--white);box-shadow:var(--sh1)}

/* ── QUOTE FORM */
.quote-hero{background:var(--navy);padding:var(--s20) 0;text-align:center;position:relative;overflow:hidden}
.quote-hero::before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.022) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.022) 1px,transparent 1px);background-size:48px 48px;pointer-events:none}
.quote-hero h1{color:var(--white);margin-bottom:var(--s3);position:relative}
.quote-hero p{color:rgba(255,255,255,.6);font-size:1.1rem;margin:0;position:relative}
.quote-form-section{padding:var(--s20) 0;background:var(--surf-1)}
.quote-form-wrap{max-width:780px;margin:0 auto;background:var(--paper);border-radius:var(--r6);border:1px solid var(--line);box-shadow:var(--sh5);overflow:hidden}
.quote-form-head{background:var(--surf-1);border-bottom:1px solid var(--line);padding:var(--s6) var(--s10)}
.quote-form-head p{font-size:.85rem;color:var(--t3);margin:var(--s1) 0 0}
.quote-form-body{padding:var(--s10)}

/* ── ALERTS */
.alert{padding:var(--s4) var(--s5);border-radius:var(--r2);font-size:.875rem;margin-bottom:var(--s4);border:1px solid;line-height:1.62}
.alert-success{background:rgba(47,158,68,.05);border-color:rgba(47,158,68,.25);color:#175c1e}
.alert-error{background:rgba(224,49,49,.05);border-color:rgba(224,49,49,.25);color:#7c1515}
.alert-info{background:var(--indigo-faint);border-color:rgba(67,97,238,.2);color:#1e3a8a}

/* ── PAGINATION */
.pagination ul{display:flex;gap:var(--s1);margin-top:var(--s8);flex-wrap:wrap}
.pagination li a{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:1.5px solid var(--line);border-radius:var(--r2);color:var(--t3);font-size:.85rem;font-weight:700;text-decoration:none;transition:all var(--mid) var(--ease)}
.pagination li a:hover{border-color:var(--indigo);color:var(--indigo)}
.pagination li.active a{background:var(--navy);border-color:var(--navy);color:var(--white);box-shadow:var(--sh1)}

/* ── TAGS */
.tag{display:inline-block;padding:3px 10px;background:var(--surf-1);color:var(--t3);border-radius:99px;font-size:.78rem;font-weight:600;text-decoration:none;border:1px solid var(--line);transition:all var(--mid)}
.tag:hover{background:var(--indigo-faint);border-color:rgba(67,97,238,.2);color:var(--indigo)}
.badge{display:inline-block;padding:2px 8px;border-radius:99px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.badge-green{background:rgba(47,158,68,.1);color:var(--green)}
.badge-blue{background:var(--indigo-faint);color:var(--indigo)}
.badge-gold{background:rgba(245,159,0,.1);color:var(--amber)}
.badge-red{background:rgba(224,49,49,.1);color:var(--red)}
.badge-gray{background:var(--surf-2);color:var(--t3)}

/* ── PROGRESS */
.progress-bar{background:var(--surf-2);border-radius:99px;height:6px;overflow:hidden}
.progress-fill{height:100%;border-radius:99px;transition:width .6s var(--ease)}
.progress-fill.blue{background:linear-gradient(90deg,var(--indigo),var(--navy-mid))}
.progress-fill.teal{background:linear-gradient(90deg,var(--teal),var(--teal-light))}

/* ── SCENARIO PLANNER */
.scenario-tabs{display:flex;gap:0;background:var(--surf-1);border:1px solid var(--line);border-radius:var(--r3);padding:3px;margin-bottom:var(--s6)}
.scenario-tab{flex:1;padding:9px 16px;background:transparent;border:none;border-radius:var(--r2);font-family:var(--sans);font-size:.84rem;font-weight:600;color:var(--t3);cursor:pointer;transition:all var(--mid) var(--ease);text-align:center}
.scenario-tab:hover{color:var(--t1)}
.scenario-tab.active{background:var(--paper);color:var(--t1);box-shadow:var(--sh1)}
.scenario-panel{display:none}
.scenario-panel.active{display:block}
.scenario-results-table{width:100%;border-collapse:collapse;font-size:.875rem}
.scenario-results-table thead{background:var(--navy)}
.scenario-results-table thead th{padding:12px 16px;color:rgba(255,255,255,.65);font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.09em;text-align:left;white-space:nowrap}
.scenario-results-table tbody tr{border-bottom:1px solid var(--line);transition:background var(--fast)}
.scenario-results-table tbody tr:hover{background:rgba(67,97,238,.025)}
.scenario-results-table td{padding:12px 16px;color:var(--t2)}
.scenario-results-table td:first-child{font-weight:700;color:var(--t1);font-size:.8rem}
.scenario-results-table td.best{color:var(--green);font-weight:800}
.scenario-insight-list{list-style:none;display:flex;flex-direction:column;gap:var(--s3)}
.scenario-insight-item{display:flex;align-items:flex-start;gap:var(--s3);padding:var(--s4) var(--s5);background:var(--surf-1);border:1px solid var(--line);border-radius:var(--r3);font-size:.875rem;color:var(--t2);line-height:1.62}
.scenario-insight-item .insight-dot{width:8px;height:8px;border-radius:50%;background:var(--indigo);flex-shrink:0;margin-top:5px}
.scenario-insight-item.insight-positive{background:rgba(47,158,68,.05);border-color:rgba(47,158,68,.2)}
.scenario-insight-item.insight-positive .insight-dot{background:var(--green)}
.scenario-insight-item.insight-warning{background:rgba(245,159,0,.05);border-color:rgba(245,159,0,.2)}
.scenario-insight-item.insight-warning .insight-dot{background:var(--amber)}
.mini-chart{display:flex;align-items:flex-end;gap:var(--s3);height:120px;padding:var(--s4) 0;border-bottom:2px solid var(--line)}
.mini-bar-group{display:flex;flex-direction:column;align-items:center;gap:var(--s2);flex:1}
.mini-bar-label{font-size:.72rem;font-weight:700;color:var(--t4);white-space:nowrap}
.mini-bar{width:100%;max-width:60px;border-radius:4px 4px 0 0;transition:height .5s var(--ease);min-height:4px;position:relative}
.mini-bar.bar-a{background:linear-gradient(180deg,var(--indigo),var(--navy-mid))}
.mini-bar.bar-b{background:linear-gradient(180deg,var(--teal),#079963)}
.mini-bar.bar-c{background:linear-gradient(180deg,var(--amber),#d48f00)}
.mini-bar-val{font-size:.7rem;color:var(--t3);font-weight:600}

/* ── FOOTER */
.site-footer{background:var(--ink);color:rgba(255,255,255,.5);padding:var(--s20) 0 var(--s8);position:relative;overflow:hidden}
.site-footer::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(67,97,238,.4),rgba(12,166,120,.28),transparent)}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:var(--s12);margin-bottom:var(--s16)}
.footer-brand .logo{margin-bottom:var(--s4)}
.footer-brand .logo-text{color:var(--white)}
.footer-brand .logo-mark{background:rgba(255,255,255,.1)}
.footer-brand p{font-size:.85rem;line-height:1.75;color:rgba(255,255,255,.36);margin-bottom:var(--s5)}
.footer-col h5{color:rgba(255,255,255,.85);font-size:.7rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;margin-bottom:var(--s4)}
.footer-col a{display:block;font-size:.84rem;color:rgba(255,255,255,.36);padding:4px 0;transition:color var(--mid),padding-left var(--mid) var(--ease);text-decoration:none}
.footer-col a:hover{color:rgba(255,255,255,.85);padding-left:5px}
.footer-bottom{border-top:1px solid rgba(255,255,255,.06);padding-top:var(--s6);display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s5);flex-wrap:wrap}
.footer-bottom p{font-size:.78rem;color:rgba(255,255,255,.26);line-height:1.65;max-width:680px}
.footer-legal{display:flex;gap:var(--s4);flex-shrink:0}
.footer-legal a{font-size:.78rem;color:rgba(255,255,255,.3);text-decoration:none;transition:color var(--mid)}
.footer-legal a:hover{color:rgba(255,255,255,.7)}

/* ── ADMIN */
.admin-body{background:var(--surf-1);font-family:var(--sans)}
.admin-layout{display:flex;min-height:100vh}
.admin-sidebar{width:236px;background:var(--ink);flex-shrink:0;position:fixed;top:0;left:0;bottom:0;overflow-y:auto;z-index:100}
.admin-logo{padding:var(--s6) var(--s5);border-bottom:1px solid rgba(255,255,255,.06);margin-bottom:var(--s2)}
.admin-logo span{font-family:var(--serif);color:var(--white);font-size:1.05rem;display:block}
.admin-logo small{color:rgba(255,255,255,.3);font-size:.72rem}
.admin-nav a{display:flex;align-items:center;gap:var(--s3);padding:9px var(--s5);color:rgba(255,255,255,.46);font-size:.85rem;font-weight:500;transition:all var(--mid) var(--ease);text-decoration:none;border-left:2px solid transparent}
.admin-nav a:hover{background:rgba(255,255,255,.05);color:rgba(255,255,255,.86)}
.admin-nav a.active{background:rgba(67,97,238,.12);color:var(--white);border-left-color:var(--indigo)}
.admin-nav .nav-group{padding:var(--s4) var(--s5) var(--s2);font-size:.66rem;font-weight:800;text-transform:uppercase;letter-spacing:.12em;color:rgba(255,255,255,.2)}
.admin-main{margin-left:236px;flex:1}
.admin-topbar{background:var(--paper);border-bottom:1px solid var(--line);padding:0 var(--s8);height:60px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:90;box-shadow:var(--sh0)}
.admin-topbar h1{font-size:.95rem;font-family:var(--sans);font-weight:800;color:var(--t1);letter-spacing:-.01em}
.admin-content{padding:var(--s8)}
.admin-card{background:var(--paper);border-radius:var(--r4);border:1px solid var(--line);box-shadow:var(--sh1);overflow:hidden}
.admin-card-head{padding:var(--s4) var(--s6);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;background:var(--surf-1)}
.admin-card-head h3{font-family:var(--sans);font-size:.875rem;font-weight:800;color:var(--t1)}
.admin-card-body{padding:var(--s6)}
.stat-card{background:var(--paper);border-radius:var(--r4);border:1px solid var(--line);padding:var(--s6);display:flex;align-items:center;gap:var(--s4);box-shadow:var(--sh1);transition:box-shadow var(--mid) var(--ease),transform var(--mid) var(--ease)}
.stat-card:hover{box-shadow:var(--sh3);transform:translateY(-2px)}
.stat-card-icon{width:46px;height:46px;border-radius:var(--r2);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.stat-card-icon.blue{background:var(--indigo-faint);color:var(--indigo)}
.stat-card-icon.teal{background:var(--teal-faint);color:var(--teal)}
.stat-card-icon.gold{background:rgba(245,159,0,.1);color:var(--amber)}
.stat-card-icon.green{background:rgba(47,158,68,.1);color:var(--green)}
.stat-card-val{font-size:1.9rem;font-weight:800;color:var(--t1);line-height:1;letter-spacing:-.03em}
.stat-card-label{font-size:.78rem;color:var(--t4);margin-top:3px;font-weight:600}
.admin-table{width:100%;border-collapse:collapse;font-size:.855rem}
.admin-table thead tr{border-bottom:2px solid var(--line)}
.admin-table th{padding:var(--s3) var(--s4);text-align:left;font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--t4)}
.admin-table td{padding:11px var(--s4);color:var(--t2);border-bottom:1px solid var(--line)}
.admin-table tr:last-child td{border-bottom:none}
.admin-table tr:hover td{background:var(--surf-1)}
.action-links a{font-size:.78rem;font-weight:700;margin-right:var(--s3);text-decoration:none}
.action-links a.edit{color:var(--indigo)}
.action-links a.delete{color:var(--red)}

/* ── RESPONSIVE */
@media(max-width:1040px){
  .tool-layout{grid-template-columns:1fr}
  .guide-layout{grid-template-columns:1fr}
  .guide-sidebar{position:static}
  .results-panel{position:static}
  .hero-inner{grid-template-columns:1fr;gap:var(--s10);text-align:center}
  .hero .lead{max-width:100%}
  .hero-actions{justify-content:center}
  .hero-visual{display:none}
  .footer-grid{grid-template-columns:1fr 1fr;gap:var(--s8)}
  .lender-cta-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:768px){
  .nav-links,.nav-cta{display:none}
  .nav-toggle{display:flex}
  .grid-2,.grid-3,.grid-4{grid-template-columns:1fr}
  .form-row{grid-template-columns:1fr}
  .result-grid{grid-template-columns:1fr 1fr}
  .section,.section-sm{padding:var(--s16) 0}
  .hero{padding:var(--s12) 0}
  .calc-form{padding:var(--s6)}
  .calc-card-head{padding:var(--s5) var(--s6)}
  .quote-form-body{padding:var(--s6)}
  .footer-grid{grid-template-columns:1fr;gap:var(--s8)}
  .trust-items{gap:var(--s6)}
  .lender-cta-section{padding:var(--s6)}
  .lender-cta-grid{grid-template-columns:1fr}
  .email-capture-block{padding:var(--s8) var(--s6)}
  .email-capture-form{flex-direction:column}
  .internal-links-grid{grid-template-columns:1fr}
  .mobile-cta-bar{display:block}
  body.has-mobile-cta{padding-bottom:72px}
  .table-scroll-hint{display:block}
  .admin-sidebar{width:100%;position:fixed;bottom:0;top:auto;height:58px;overflow:visible;display:flex;flex-direction:row;align-items:center;padding:0 var(--s5)}
  .admin-main{margin-left:0;padding-bottom:68px}
  .admin-nav{display:none}
}
@media (min-width: 480px) and (max-width: 768px) {
    .grid-3 {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media(max-width:480px){
  .result-grid{grid-template-columns:1fr}
  .hero-actions .btn{width:100%}
  .cta-actions{flex-direction:column;align-items:center}
  .result-primary-value{font-size:2.8rem}
  .quote-form-head{padding:var(--s5) var(--s6)}
  .quote-cta-block{padding:var(--s5) var(--s6)}
  .email-capture-block .checklist{flex-direction:column;align-items:center}
  .scenario-tabs{flex-direction:column}
}

/* ── SCROLL FADE-IN */
@media(prefers-reduced-motion:no-preference){
  .fade-up{opacity: 1; transform:translateY(0px);
  transition:opacity .6s var(--ease),transform .6s var(--ease)}
  .fade-up.visible{opacity:1;transform:none}
  .fade-up:nth-child(2){transition-delay:.08s}
  .fade-up:nth-child(3){transition-delay:.16s}
  .fade-up:nth-child(4){transition-delay:.24s}
}

/* ══════════════════════════════════════════════════════════════════
   MORTGAGE STRATEGY REPORT — v4.1
   Generated inline after calculator runs. Zero external dependencies.
══════════════════════════════════════════════════════════════════ */

/* Reveal animation */
@keyframes reportSlideIn {
  from { opacity:0; transform:translateY(24px); }
  to   { opacity:1; transform:translateY(0); }
}

/* ── Report wrapper ─────────────────────────────────────────────── */
.strategy-report {
  margin-top: var(--s12);
  border: 1px solid var(--line);
  border-radius: var(--r5);
  background: var(--paper);
  box-shadow: var(--sh3);
  overflow: hidden;
  animation: reportSlideIn .48s var(--ease) both;
}

/* ── Report header ─────────────────────────────────────────────── */
.report-header {
  background: var(--navy);
  padding: var(--s8) var(--s8) var(--s6);
  position: relative;
  overflow: hidden;
}
.report-header::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--indigo), var(--teal), var(--indigo));
  background-size: 200% 100%;
  animation: shimmer 3s linear infinite;
}
@keyframes shimmer { to { background-position: 200% 0; } }
.report-header::after {
  content: '';
  position: absolute;
  bottom: -80px; right: -80px;
  width: 280px; height: 280px;
  background: radial-gradient(circle, rgba(67,97,238,.16) 0%, transparent 70%);
  pointer-events: none;
}
.report-header-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--s4);
  flex-wrap: wrap;
  position: relative;
  z-index: 1;
}
.report-header-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 12px;
  background: rgba(255,255,255,.09);
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 99px;
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(255,255,255,.6);
  margin-bottom: var(--s3);
}
.report-title {
  font-family: var(--serif);
  font-size: clamp(1.5rem, 3vw, 2.2rem);
  font-weight: 300;
  color: var(--white);
  line-height: 1.12;
  letter-spacing: -.04em;
  margin: 0 0 var(--s2);
}
.report-subtitle {
  font-size: .82rem;
  color: rgba(255,255,255,.42);
  margin: 0;
}
.report-generated {
  font-size: .72rem;
  color: rgba(255,255,255,.3);
  white-space: nowrap;
  padding-top: 4px;
}

/* ── Stat pill row beneath header ──────────────────────────────── */
.report-stat-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
  gap: 1px;
  background: var(--line);
  border-bottom: 1px solid var(--line);
}
.report-stat {
  background: var(--paper);
  padding: var(--s5) var(--s6);
  text-align: center;
}
.report-stat-val {
  font-family: var(--serif);
  font-size: 1.65rem;
  font-weight: 300;
  color: var(--t1);
  letter-spacing: -.04em;
  line-height: 1.1;
  margin-bottom: 4px;
}
.report-stat-val.positive { color: var(--green); }
.report-stat-val.negative { color: var(--red); }
.report-stat-val.accent   { color: var(--indigo); }
.report-stat-label {
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--t4);
}

/* ── Report body sections ───────────────────────────────────────── */
.report-body {
  padding: var(--s8);
  display: flex;
  flex-direction: column;
  gap: var(--s10);
}
.report-section-title {
  font-family: var(--sans);
  font-size: .7rem;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--t4);
  margin: 0 0 var(--s4);
  display: flex;
  align-items: center;
  gap: var(--s3);
}
.report-section-title::after {
  content: '';
  flex: 1;
  height: 1px;
  background: var(--line);
}

/* ── Loan overview grid ─────────────────────────────────────────── */
.report-overview-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: var(--s4);
}
.report-overview-item {
  background: var(--surf-1);
  border: 1px solid var(--line);
  border-radius: var(--r3);
  padding: var(--s4) var(--s5);
}
.report-overview-item-label {
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--t4);
  margin-bottom: var(--s1);
}
.report-overview-item-val {
  font-family: var(--serif);
  font-size: 1.2rem;
  font-weight: 300;
  color: var(--t1);
  letter-spacing: -.03em;
}
.report-overview-item-val.highlight { color: var(--indigo); font-weight: 500; }

/* ── Cost breakdown bar chart ───────────────────────────────────── */
.report-cost-breakdown {
  display: flex;
  flex-direction: column;
  gap: var(--s3);
}
.report-cost-row {
  display: grid;
  grid-template-columns: 160px 1fr 80px;
  align-items: center;
  gap: var(--s4);
}
@media (max-width: 560px) {
  .report-cost-row { grid-template-columns: 110px 1fr 60px; gap: var(--s3); }
}
.report-cost-label {
  font-size: .82rem;
  color: var(--t2);
  font-weight: 500;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.report-cost-bar-track {
  height: 10px;
  background: var(--surf-2);
  border-radius: 99px;
  overflow: hidden;
}
.report-cost-bar-fill {
  height: 100%;
  border-radius: 99px;
  transition: width .7s var(--ease);
}
.bar-pi      { background: var(--navy); }
.bar-tax     { background: var(--indigo); }
.bar-ins     { background: var(--teal); }
.bar-pmi     { background: var(--amber); }
.bar-hoa     { background: var(--t4); }
.bar-interest{ background: var(--red); opacity:.75; }
.bar-principal{background: var(--green); }
.report-cost-amount {
  font-size: .82rem;
  font-weight: 700;
  color: var(--t1);
  text-align: right;
  white-space: nowrap;
}

/* ── Payment-over-time sparkline ────────────────────────────────── */
.report-sparkline-wrap {
  position: relative;
  height: 120px;
  background: var(--surf-1);
  border: 1px solid var(--line);
  border-radius: var(--r3);
  overflow: hidden;
}
.report-sparkline-wrap canvas {
  display: block;
  width: 100% !important;
  height: 100% !important;
}
.report-sparkline-labels {
  position: absolute;
  bottom: 6px;
  left: 12px;
  right: 12px;
  display: flex;
  justify-content: space-between;
  font-size: .68rem;
  color: var(--t4);
  pointer-events: none;
}
.sparkline-legend {
  display: flex;
  gap: var(--s5);
  flex-wrap: wrap;
  margin-top: var(--s3);
}
.sparkline-legend-item {
  display: flex;
  align-items: center;
  gap: var(--s2);
  font-size: .78rem;
  color: var(--t3);
}
.sparkline-legend-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  flex-shrink: 0;
}

/* ── Scenario comparison ────────────────────────────────────────── */
.report-scenario-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: var(--s4);
}
.report-scenario-card {
  border: 1.5px solid var(--line);
  border-radius: var(--r4);
  overflow: hidden;
  transition: box-shadow var(--mid) var(--ease);
}
.report-scenario-card:hover { box-shadow: var(--sh2); }
.report-scenario-card.is-best { border-color: var(--green); }
.report-scenario-card-head {
  padding: var(--s3) var(--s4);
  background: var(--surf-1);
  border-bottom: 1px solid var(--line);
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.report-scenario-card-head.is-best { background: rgba(47,158,68,.06); border-bottom-color: rgba(47,158,68,.2); }
.report-scenario-name {
  font-size: .82rem;
  font-weight: 700;
  color: var(--t1);
}
.report-scenario-best-tag {
  font-size: .65rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--green);
  background: rgba(47,158,68,.1);
  padding: 2px 8px;
  border-radius: 99px;
  border: 1px solid rgba(47,158,68,.2);
}
.report-scenario-card-body {
  padding: var(--s4);
}
.report-scenario-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 6px 0;
  border-bottom: 1px solid var(--line);
  font-size: .82rem;
}
.report-scenario-row:last-child { border-bottom: none; }
.report-scenario-row span:first-child { color: var(--t3); }
.report-scenario-row span:last-child  { font-weight: 700; color: var(--t1); }
.report-scenario-row.best-val span:last-child { color: var(--green); }

/* ── Insights list ──────────────────────────────────────────────── */
.report-insights {
  display: flex;
  flex-direction: column;
  gap: var(--s3);
}
.report-insight-item {
  display: flex;
  gap: var(--s4);
  align-items: flex-start;
  padding: var(--s4) var(--s5);
  border-radius: var(--r3);
  border: 1px solid var(--line);
  font-size: .875rem;
  line-height: 1.6;
}
.report-insight-item.insight-positive {
  background: rgba(47,158,68,.04);
  border-color: rgba(47,158,68,.18);
}
.report-insight-item.insight-warning {
  background: rgba(245,159,0,.04);
  border-color: rgba(245,159,0,.2);
}
.report-insight-item.insight-info {
  background: var(--indigo-faint);
  border-color: rgba(67,97,238,.15);
}
.report-insight-icon {
  width: 28px;
  height: 28px;
  border-radius: var(--r2);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 1rem;
}
.insight-positive .report-insight-icon { background: rgba(47,158,68,.12); }
.insight-warning  .report-insight-icon { background: rgba(245,159,0,.12); }
.insight-info     .report-insight-icon { background: var(--indigo-faint); }
.report-insight-content strong {
  display: block;
  font-size: .8rem;
  font-weight: 700;
  color: var(--t1);
  margin-bottom: 3px;
}

/* ── Payoff timeline ────────────────────────────────────────────── */
.report-timeline {
  position: relative;
  padding: var(--s4) 0;
}
.report-timeline-track {
  height: 8px;
  background: var(--surf-2);
  border-radius: 99px;
  position: relative;
  overflow: visible;
  margin: var(--s6) 0 var(--s4);
}
.report-timeline-fill {
  height: 100%;
  border-radius: 99px;
  background: linear-gradient(90deg, var(--navy), var(--indigo));
  transition: width .9s var(--ease);
}
.report-timeline-markers {
  display: flex;
  justify-content: space-between;
  font-size: .7rem;
  color: var(--t4);
  margin-top: 8px;
}
.report-timeline-milestone {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: var(--s3);
  margin-top: var(--s5);
}
.report-milestone-item {
  padding: var(--s3) var(--s4);
  background: var(--surf-1);
  border: 1px solid var(--line);
  border-radius: var(--r2);
  font-size: .8rem;
}
.report-milestone-item strong {
  display: block;
  font-size: .72rem;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--t4);
  font-weight: 700;
  margin-bottom: 3px;
}

/* ── Report CTA ─────────────────────────────────────────────────── */
.report-cta {
  background: linear-gradient(135deg, var(--navy) 0%, #1a2f6e 100%);
  padding: var(--s8);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s6);
  flex-wrap: wrap;
  position: relative;
  overflow: hidden;
}
.report-cta::before {
  content: '';
  position: absolute;
  top: -60px; right: -60px;
  width: 220px; height: 220px;
  background: radial-gradient(circle, rgba(12,166,120,.18) 0%, transparent 70%);
  pointer-events: none;
}
.report-cta-text h4 {
  font-family: var(--serif);
  font-size: 1.35rem;
  font-weight: 300;
  color: var(--white);
  letter-spacing: -.03em;
  margin: 0 0 var(--s2);
}
.report-cta-text p {
  font-size: .84rem;
  color: rgba(255,255,255,.48);
  margin: 0;
  line-height: 1.6;
}
.report-cta-actions {
  display: flex;
  gap: var(--s3);
  flex-wrap: wrap;
  flex-shrink: 0;
  position: relative;
  z-index: 1;
}

/* ── Print / download strip ─────────────────────────────────────── */
.report-actions-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--s3) var(--s5);
  background: var(--surf-1);
  border-top: 1px solid var(--line);
  gap: var(--s3);
  flex-wrap: wrap;
}
.report-actions-bar span {
  font-size: .75rem;
  color: var(--t4);
}
.report-action-btns {
  display: flex;
  gap: var(--s2);
}
.report-icon-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 14px;
  border: 1.5px solid var(--line);
  border-radius: var(--r2);
  font-size: .78rem;
  font-weight: 600;
  font-family: var(--sans);
  color: var(--t3);
  background: var(--paper);
  cursor: pointer;
  transition: all var(--mid) var(--ease);
  text-decoration: none;
}
.report-icon-btn:hover {
  border-color: var(--indigo);
  color: var(--indigo);
  background: var(--indigo-faint);
}

/* ── Print styles ───────────────────────────────────────────────── */
@media print {
  .site-header, .site-footer, .mobile-cta-bar,
  .report-cta, .report-actions-bar,
  .lender-cta-section, .email-capture-block,
  .affiliate-block, .internal-links-module,
  .calc-form, .result-actions, .page-hero .btn { display: none !important; }
  .strategy-report { box-shadow: none; border: 1px solid #ccc; }
  .report-header { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  body { background: white !important; }
}

/* ── Responsive ─────────────────────────────────────────────────── */
@media (max-width: 640px) {
  .report-body { padding: var(--s5); gap: var(--s8); }
  .report-header { padding: var(--s6); }
  .report-cta { padding: var(--s6); }
  .report-stat-val { font-size: 1.3rem; }
  .report-cost-row { grid-template-columns: 100px 1fr 55px; }
  .report-overview-item-val { font-size: 1.05rem; }
}

/* ══════════════════════════════════════════════════════════════════
   MORTGAGE DATA LIBRARY — CSS (v4.2)
══════════════════════════════════════════════════════════════════ */

/* ── Data hero variant ──────────────────────────────────────────── */
.data-hero {
  background: var(--navy);
  padding: var(--s16) 0 var(--s12);
  position: relative;
  overflow: hidden;
}
.data-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 80% 60% at 60% 100%, rgba(67,97,238,.18) 0%, transparent 70%);
  pointer-events: none;
}
.data-hero .breadcrumb a,
.data-hero .breadcrumb span { color: rgba(255,255,255,.45); }
.data-hero h1 { color: var(--white); font-size: clamp(2rem,5vw,3.2rem); margin-bottom: var(--s4); }
.data-hero .lead { color: rgba(255,255,255,.55); }
.data-hero .section-kicker { color: var(--teal-light); }

/* ── Library index cards ────────────────────────────────────────── */
.data-lib-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: var(--s6);
}
.data-lib-card {
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: var(--r5);
  padding: var(--s7);
  transition: box-shadow var(--mid) var(--ease), border-color var(--mid) var(--ease), transform var(--mid) var(--ease);
  display: flex;
  flex-direction: column;
  gap: var(--s4);
  text-decoration: none;
  color: inherit;
}
.data-lib-card:hover {
  box-shadow: var(--sh3);
  border-color: var(--indigo);
  transform: translateY(-2px);
  color: inherit;
}
.data-lib-card-icon {
  width: 44px; height: 44px;
  background: var(--indigo-faint);
  border: 1px solid rgba(67,97,238,.15);
  border-radius: var(--r3);
  display: flex; align-items: center; justify-content: center;
  color: var(--indigo);
}
.data-lib-card-title {
  font-family: var(--sans);
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--t1);
  margin: 0;
}
.data-lib-card-desc {
  font-size: .875rem;
  color: var(--t3);
  line-height: 1.6;
  margin: 0;
  flex: 1;
}
.data-lib-card-meta {
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--teal);
}

/* ── Data section wrapper ───────────────────────────────────────── */
.data-section {
  margin-bottom: var(--s12);
}
.data-section-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: var(--s6);
  gap: var(--s4);
  flex-wrap: wrap;
  border-bottom: 1px solid var(--line);
  padding-bottom: var(--s4);
}
.data-section-head h2 {
  font-size: 1.35rem;
  margin: 0;
}
.data-source-note {
  font-size: .72rem;
  color: var(--t4);
}

/* ── Chart container ────────────────────────────────────────────── */
.chart-container {
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: var(--r4);
  padding: var(--s6);
  position: relative;
}
.chart-canvas-wrap {
  position: relative;
  width: 100%;
  height: 280px;
}
.chart-canvas-wrap canvas {
  display: block;
  width: 100% !important;
  height: 100% !important;
}
.chart-legend {
  display: flex;
  gap: var(--s5);
  flex-wrap: wrap;
  margin-top: var(--s4);
  padding-top: var(--s4);
  border-top: 1px solid var(--line);
}
.chart-legend-item {
  display: flex;
  align-items: center;
  gap: var(--s2);
  font-size: .78rem;
  color: var(--t3);
}
.chart-legend-swatch {
  width: 12px; height: 12px;
  border-radius: 3px;
  flex-shrink: 0;
}

/* ── Stat highlight band ────────────────────────────────────────── */
.data-stat-band {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px,1fr));
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
  border-radius: var(--r4);
  overflow: hidden;
  margin-bottom: var(--s8);
}
.data-stat-cell {
  background: var(--paper);
  padding: var(--s5) var(--s6);
  text-align: center;
}
.data-stat-cell-val {
  font-family: var(--serif);
  font-size: 1.75rem;
  font-weight: 300;
  color: var(--t1);
  letter-spacing: -.04em;
  line-height: 1.1;
  margin-bottom: 4px;
}
.data-stat-cell-val.up   { color: var(--red); }
.data-stat-cell-val.down { color: var(--green); }
.data-stat-cell-label {
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .09em;
  text-transform: uppercase;
  color: var(--t4);
}

/* ── State grid on index ────────────────────────────────────────── */
.state-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: var(--s3);
}
.state-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--s3) var(--s4);
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: var(--r3);
  text-decoration: none;
  transition: all var(--mid) var(--ease);
}
.state-card:hover {
  border-color: var(--indigo);
  background: var(--indigo-faint);
  transform: translateX(2px);
}
.state-card-name {
  font-size: .875rem;
  font-weight: 600;
  color: var(--t1);
}
.state-card-price {
  font-size: .78rem;
  color: var(--t4);
}
.state-card-abbr {
  width: 30px; height: 30px;
  background: var(--surf-2);
  border-radius: var(--r2);
  font-size: .7rem;
  font-weight: 800;
  color: var(--t3);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

/* ── State page layout ──────────────────────────────────────────── */
.state-hero-flag {
  width: 56px; height: 56px;
  background: rgba(255,255,255,.1);
  border: 1px solid rgba(255,255,255,.15);
  border-radius: var(--r3);
  display: flex; align-items: center; justify-content: center;
  font-size: 1.4rem; font-weight: 800; color: var(--white);
  margin-bottom: var(--s5);
}
.affordability-scenarios {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px,1fr));
  gap: var(--s4);
  margin-top: var(--s5);
}
.aff-scenario-card {
  border: 1.5px solid var(--line);
  border-radius: var(--r4);
  overflow: hidden;
}
.aff-scenario-head {
  padding: var(--s3) var(--s4);
  background: var(--surf-1);
  border-bottom: 1px solid var(--line);
  font-size: .78rem;
  font-weight: 700;
  color: var(--t2);
}
.aff-scenario-body { padding: var(--s4); }
.aff-scenario-price {
  font-family: var(--serif);
  font-size: 1.75rem;
  font-weight: 300;
  color: var(--t1);
  letter-spacing: -.04em;
  margin-bottom: var(--s2);
}
.aff-scenario-row {
  display: flex;
  justify-content: space-between;
  font-size: .82rem;
  padding: 4px 0;
  border-bottom: 1px solid var(--line);
  color: var(--t3);
}
.aff-scenario-row:last-child { border: none; }
.aff-scenario-row span:last-child { font-weight: 600; color: var(--t1); }

/* ── Example page ───────────────────────────────────────────────── */
.example-hero-price {
  font-family: var(--serif);
  font-size: clamp(2.8rem,7vw,4.5rem);
  font-weight: 300;
  color: var(--white);
  letter-spacing: -.06em;
  line-height: 1;
  margin: var(--s3) 0 var(--s2);
}
.example-quick-answer {
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: var(--r5);
  padding: var(--s8);
  box-shadow: var(--sh3);
  margin-bottom: var(--s8);
}
.example-payment-display {
  text-align: center;
  padding: var(--s6) 0;
  border-bottom: 1px solid var(--line);
  margin-bottom: var(--s6);
}
.example-payment-label {
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--t4);
  margin-bottom: var(--s2);
}
.example-payment-value {
  font-family: var(--serif);
  font-size: clamp(2.5rem,6vw,3.8rem);
  font-weight: 300;
  color: var(--navy);
  letter-spacing: -.05em;
  line-height: 1;
  margin-bottom: var(--s2);
}
.example-payment-sub {
  font-size: .82rem;
  color: var(--t4);
}
.example-params-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(130px,1fr));
  gap: var(--s3);
  margin-bottom: var(--s5);
}
.example-param {
  background: var(--surf-1);
  border: 1px solid var(--line);
  border-radius: var(--r2);
  padding: var(--s3) var(--s4);
}
.example-param-label {
  font-size: .66rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--t4);
  margin-bottom: 3px;
}
.example-param-val {
  font-size: 1rem;
  font-weight: 700;
  color: var(--t1);
}
.variation-table {
  width: 100%;
  border-collapse: collapse;
  font-size: .875rem;
}
.variation-table thead th {
  padding: 10px 14px;
  background: var(--surf-1);
  font-weight: 700;
  font-size: .7rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--t3);
  border-bottom: 2px solid var(--line);
  text-align: left;
  white-space: nowrap;
}
.variation-table tbody tr { border-bottom: 1px solid var(--line); }
.variation-table tbody tr.highlight-row { background: rgba(67,97,238,.04); }
.variation-table tbody td {
  padding: 10px 14px;
  color: var(--t2);
}
.variation-table tbody td:first-child { font-weight: 600; color: var(--t1); }
.variation-table tbody td.current { color: var(--indigo); font-weight: 700; }
.example-nav {
  display: flex;
  gap: var(--s3);
  flex-wrap: wrap;
  margin-top: var(--s6);
}
.example-nav a {
  padding: 8px 16px;
  border: 1.5px solid var(--line);
  border-radius: var(--r3);
  font-size: .82rem;
  font-weight: 600;
  color: var(--t2);
  text-decoration: none;
  transition: all var(--mid) var(--ease);
}
.example-nav a:hover, .example-nav a.active {
  border-color: var(--indigo);
  color: var(--indigo);
  background: var(--indigo-faint);
}
