
:root{--navy:#0d2b57;--gold:#b87918;--cream:#f7f2e9;--white:#fff;--ink:#1f3150;--muted:#657087;--line:#e7dfd2}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:#fff;line-height:1.6}h1,h2,h3{font-family:Georgia,'Times New Roman',serif;color:var(--navy);line-height:1.05;margin:0 0 18px}h1{font-size:clamp(44px,6vw,76px)}h2{font-size:clamp(34px,4vw,54px)}h3{font-size:28px}p{margin:0 0 18px}.container{width:min(1180px,92%);margin:auto}.topbar{height:76px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;position:sticky;top:0;z-index:50}.nav{display:flex;align-items:center;justify-content:space-between;gap:25px}.logo{display:flex;align-items:center;gap:8px;text-decoration:none;color:var(--navy)}.logo-mark{font-family:Georgia,serif;font-size:38px;line-height:1;color:var(--navy)}.logo-mark span{color:var(--gold)}.logo-text{font-family:Georgia,serif;font-size:15px;line-height:1.05;text-transform:uppercase;letter-spacing:.03em}.links{display:flex;align-items:center;gap:24px}.links a,.dropbtn{font-size:14px;color:var(--navy);text-decoration:none;background:none;border:0;cursor:pointer}.links a:hover,.dropbtn:hover{color:var(--gold)}.dropdown{position:relative}.menu{display:none;position:absolute;top:30px;left:-18px;background:#fff;border:1px solid var(--line);box-shadow:0 12px 35px #0d2b5715;border-radius:10px;min-width:230px;padding:10px}.dropdown:hover .menu{display:block}.menu a{display:block;padding:9px 12px}.cta{display:inline-flex;align-items:center;justify-content:center;background:var(--gold);color:#fff!important;border-radius:28px;padding:13px 22px;text-decoration:none;font-weight:700;font-size:14px}.mobile{display:none}.mobile-panel{display:none!important}.hero{background:var(--cream);padding:70px 0}.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:55px}.eyebrow{color:var(--gold);text-transform:uppercase;letter-spacing:.14em;font-size:12px;font-weight:700;margin-bottom:14px}.hero-img{width:100%;height:520px;object-fit:cover;border-radius:2px}.soft{background:var(--cream)}.section{padding:80px 0}.center{text-align:center}.intro{max-width:720px;margin:0 auto 40px}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.card{border:1px solid var(--line);border-radius:12px;background:#fff;padding:24px;box-shadow:0 10px 25px #0d2b5708}.card img{width:100%;height:190px;object-fit:cover;border-radius:8px;margin-bottom:18px}.icon{font-size:28px;color:var(--gold);margin-bottom:12px}.link{color:var(--gold);font-weight:700;text-decoration:none}.band{background:var(--navy);color:#fff;padding:70px 0}.band h2,.band h3{color:#fff}.band .card{background:#fff;color:var(--ink)}.split{display:grid;grid-template-columns:1fr 1fr;gap:55px;align-items:center}.split img{width:100%;height:430px;object-fit:cover;border-radius:10px}.quote{font-family:Georgia,serif;font-size:30px;color:var(--navy)}.team{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.team-card{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}.team-photo{height:230px;background:#d9d0c3;display:flex;align-items:center;justify-content:center;color:#fff;text-align:center;font-family:Georgia,serif;font-style:italic}.team-photo img{width:100%;height:100%;object-fit:cover}.team-body{padding:18px}.role{color:var(--gold);font-size:12px;text-transform:uppercase;letter-spacing:.12em;font-weight:700}.team-body h3{font-size:23px;margin:7px 0}.bio{font-size:14px;color:#34435b}.tags{display:flex;flex-wrap:wrap;gap:9px;margin:25px 0}.tag{padding:8px 13px;border:1px solid var(--line);border-radius:20px;font-size:13px;background:#fff}.resource-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.resource-grid .card img{height:210px}.calculator{background:var(--cream);padding:35px;border-radius:14px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:13px;font-weight:700}.field input,.field select,.field textarea{padding:13px;border:1px solid #d8d0c4;border-radius:8px;font:inherit}.field textarea{min-height:130px}.full{grid-column:1/-1}.result{background:#fff;border-radius:10px;padding:20px;margin-top:18px}.newsletter{background:var(--navy);color:#fff;border-radius:16px;padding:45px}.newsletter h2{color:#fff}.newsletter-form{display:flex;gap:10px;max-width:650px}.newsletter-form input{flex:1;padding:15px;border:0;border-radius:26px}.footer{background:#0a2245;color:#dce4f1;padding:55px 0 25px}.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:40px}.footer a{color:#dce4f1;text-decoration:none;display:block;margin:6px 0}.copyright{border-top:1px solid #ffffff20;margin-top:35px;padding-top:20px;font-size:12px}.article{max-width:820px;margin:auto}.article img{width:100%;max-height:480px;object-fit:cover;border-radius:10px}.note{padding:15px 18px;background:#fff8e9;border-left:4px solid var(--gold);margin:20px 0}.crumb{font-size:13px;color:var(--muted);margin-bottom:25px}@media(max-width:900px){.links{display:none}.mobile{display:block;border:0;background:none;font-size:25px;color:var(--navy)}.nav{position:relative}.mobile-panel{display:none;position:absolute;top:76px;left:0;right:0;background:#fff;border-bottom:1px solid var(--line);padding:15px}.mobile-panel.open{display:block!important}.mobile-panel a{display:block;padding:12px;text-decoration:none;color:var(--navy)}.hero-grid,.split{grid-template-columns:1fr}.hero-img{height:380px}.cards{grid-template-columns:repeat(2,1fr)}.team{grid-template-columns:repeat(2,1fr)}.resource-grid{grid-template-columns:1fr 1fr}.footer-grid{grid-template-columns:1fr 1fr}}@media(max-width:600px){.cards,.team,.resource-grid,.form-grid{grid-template-columns:1fr}.hero{padding:50px 0}.section{padding:55px 0}.newsletter-form{flex-direction:column}.newsletter-form .cta{width:100%}.hero-img{height:300px}.footer-grid{grid-template-columns:1fr}.logo-text{font-size:12px}}


/* KFWE service pages + calculators */
.service-hero{padding:72px 20px;text-align:center}
.service-hero h1{margin-bottom:16px}
.service-hero p{max-width:820px;margin:0 auto 28px}
.service-section{padding:54px 20px}
.service-section .container{max-width:1100px;margin:0 auto}
.service-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px}
.service-card,.calc-card,.faq-item{padding:24px;border-radius:14px;border:1px solid rgba(0,0,0,.10);background:#fff}
.service-card h3,.calc-card h3{margin-top:0}
.service-cta{text-align:center;padding:60px 20px}
.button-row{display:flex;flex-wrap:wrap;gap:14px;justify-content:center}
.calc-wrap{max-width:980px;margin:0 auto;padding:30px 20px}
.calc-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px}
.calc-form label{display:flex;flex-direction:column;gap:7px;font-weight:600}
.calc-form input{padding:12px;border:1px solid #bbb;border-radius:8px;font:inherit}
.calc-results{margin-top:28px;padding:24px;border-radius:14px;background:#f7f7f7}
.result-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px}
.result-box{padding:18px;border-radius:10px;background:#fff;border:1px solid rgba(0,0,0,.08)}
.disclaimer{font-size:.9rem;opacity:.8}
.portal-note{padding:22px;border-left:4px solid currentColor;background:#f7f7f7}
@media(max-width:700px){.service-hero{padding:50px 16px}.service-section{padding:42px 16px}.button-row{flex-direction:column}.button-row a{width:100%;box-sizing:border-box;text-align:center}}

.brand-logo{display:block;width:230px;height:72px;object-fit:contain;object-position:left center}.footer-logo{width:250px;object-position:left center}.footer .logo{display:block}.footer .brand-logo{height:72px}@media(max-width:900px){.brand-logo{width:190px;height:62px}.footer-logo{width:220px}}

/* Mobile polish */
@media (max-width: 900px){
  .topbar{height:64px;overflow:visible}
  .nav{min-height:64px;gap:10px}
  .brand-logo{width:180px;height:52px;object-fit:contain;object-position:left center}
  .topbar > .container > .cta{display:none}
  .mobile{display:flex;align-items:center;justify-content:center;width:42px;height:42px;margin-left:auto;padding:0;font-size:24px;line-height:1;cursor:pointer}
  .mobile-panel{top:64px;left:0;right:0;z-index:100;padding:10px 16px;box-shadow:0 12px 24px rgba(13,43,87,.10)}
  .mobile-panel a{padding:13px 8px;border-bottom:1px solid var(--line)}
  .mobile-panel a:last-child{border-bottom:0}
  .hero-grid{gap:30px}
}
@media (max-width:600px){
  .container{width:calc(100% - 32px)}
  h1{font-size:42px;line-height:1.02}
  h2{font-size:34px}
  h3{font-size:24px}
  .hero{padding:42px 0 48px}
  .hero p{font-size:17px}
  .hero-img{height:320px;border-radius:10px}
  .section{padding:48px 0}
  .band{padding:52px 0}
  .cards{gap:14px}
  .card{padding:20px}
  .brand-logo{width:170px;height:48px}
  .footer-logo{width:200px;height:58px!important}
  .service-hero h1{font-size:40px}
  .service-section{padding:38px 16px}
}


/* V13: mobile logo + layout correction */
.brand-logo{display:block;max-width:100%;height:auto;position:static;transform:none;}
.topbar .brand-logo{width:210px!important;height:auto!important;max-height:58px;object-fit:contain;}
.footer .logo{width:190px;max-width:100%;overflow:hidden;position:static;}
.footer .brand-logo{width:190px!important;height:auto!important;max-width:100%;object-fit:contain;}
@media(max-width:900px){
  .topbar{height:64px;}
  .topbar .brand-logo{content:url("../images/kfwe-logo-mobile-mark.png")!important;width:58px!important;height:48px!important;max-height:48px;object-fit:contain;}
  .topbar .logo{width:58px;height:48px;display:flex;align-items:center;overflow:hidden;position:static;}
  .topbar .nav{min-height:64px;}
  .topbar > .container > .cta{display:none!important;}
  .mobile{margin-left:auto!important;}
  .footer .logo{width:170px;max-width:100%;overflow:hidden;}
  .footer .brand-logo{width:170px!important;height:auto!important;max-width:100%;}
}
@media(max-width:600px){
  .container{width:calc(100% - 32px);}
  .hero-grid{gap:28px;}
  .hero-img{height:300px;}
  .card img{height:190px;}
  .resource-grid .card img{height:190px;}
  .footer .logo{width:155px;}
  .footer .brand-logo{width:155px!important;}
  .footer-grid{gap:28px;}
}

/* V14: hard mobile viewport guard — prevents horizontal page drift/scroll */
html, body { max-width:100%; overflow-x:hidden; }
img { max-width:100%; }
@media (max-width:900px){
  .topbar { width:100%; height:64px; overflow:visible; }
  .topbar > .container.nav { width:100%; max-width:none; margin:0; padding:0 16px; display:flex; align-items:center; justify-content:space-between; gap:0; }
  .topbar .logo { flex:0 0 58px; width:58px; height:48px; max-width:58px; margin:0; padding:0; overflow:hidden; display:flex; align-items:center; }
  .topbar .brand-logo { display:block; flex:0 0 58px; width:58px !important; max-width:58px !important; height:48px !important; max-height:48px !important; object-fit:contain; object-position:center; }
  .topbar > .container > .cta { display:none !important; }
  .topbar .mobile { flex:0 0 44px; width:44px; max-width:44px; height:44px; margin:0; padding:0; border:0; background:transparent; display:flex; align-items:center; justify-content:center; font-size:28px; line-height:1; color:var(--navy); }
  .topbar .mobile-panel { left:16px; right:16px; width:auto; max-width:none; top:64px; box-sizing:border-box; }
  .hero-grid, .split { min-width:0; }
  .hero-grid > *, .split > * { min-width:0; max-width:100%; }
}
@media (max-width:600px){
  .topbar > .container.nav { padding:0 16px; }
  .topbar .logo { flex-basis:52px; width:52px; max-width:52px; }
  .topbar .brand-logo { flex-basis:52px; width:52px !important; max-width:52px !important; height:44px !important; max-height:44px !important; }
  .topbar .mobile { flex-basis:44px; width:44px; max-width:44px; }
}


/* Newsletter signup */
.newsletter-form{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.newsletter-form input{flex:1 1 180px;min-width:0}
.newsletter-success{margin:0;font-weight:600}
@media (max-width:640px){.newsletter-form{display:grid;grid-template-columns:1fr;gap:10px}.newsletter-form .cta{width:100%}}
.newsletter-unsubscribe-form{display:flex;flex-direction:column;gap:16px}.newsletter-unsubscribe-form .cta{align-self:flex-start}.newsletter-success{min-height:24px}@media(max-width:600px){.newsletter-unsubscribe-form .cta{width:100%}}

/* Newsletter preference controls */
.newsletter-preferences label{cursor:pointer}.newsletter-preferences input{margin-right:7px;accent-color:#1f3a5f}.newsletter-form fieldset{width:100%}
@media(max-width:700px){.newsletter-form{width:100%}.newsletter-preferences{font-size:14px}.newsletter-form .cta{width:100%}}


/* V20: KFWEG FIN calculator + unsubscribe mobile repair */
.fin-section{background:#fff}
.fin-wrap{max-width:1050px}
.fin-brand{text-align:center;max-width:780px;margin:0 auto 30px}
.fin-brand h2{margin-bottom:10px}
.fin-subtitle{font-size:17px;max-width:720px;margin:0 auto}
.fin-inflation-option{display:flex;flex-direction:column;gap:7px;font-weight:600}
.fin-check{display:flex!important;flex-direction:row!important;align-items:center;gap:8px}
.fin-check input{width:18px;height:18px;margin:0}
.fin-inflation-option small{font-weight:400;color:var(--muted);line-height:1.45}
.fin-results{background:var(--cream);border:1px solid var(--line)}
.fin-results-title{text-align:center;margin-bottom:18px}
.fin-results-title h3{margin:0;font-size:30px}
.fin-primary{border:2px solid var(--gold);background:#fffdf8}
.fin-primary > div{font-size:30px;font-weight:700;color:var(--navy)}
.result-box small{display:block;color:var(--muted);margin-top:7px;font-weight:400;line-height:1.4}
.fin-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:22px}
.fin-actions .button{appearance:none;border:0;background:var(--navy);color:#fff;border-radius:28px;padding:12px 20px;font:inherit;font-weight:700;cursor:pointer}
.fin-actions .button:hover{background:var(--gold)}
.fin-home-card{max-width:900px;margin:0 auto;text-align:center}
.fin-home-card .button-row{align-items:center}
@media print{
  .topbar,.footer,.fin-actions,.fin-section .disclaimer{display:none!important}
  .fin-section{padding-top:20px}
  .fin-results{border:1px solid #999;background:#fff}
}
.unsubscribe-page .topbar .nav{min-height:76px}
.unsubscribe-page .topbar .brand-logo{width:205px!important;height:auto!important;max-height:58px!important;object-fit:contain!important;object-position:left center!important}
.unsubscribe-page .topbar .logo{width:205px;max-width:205px;overflow:hidden;display:flex;align-items:center}
.unsubscribe-page .unsubscribe-back{white-space:nowrap}
@media(max-width:900px){
  .unsubscribe-page .topbar{height:64px}
  .unsubscribe-page .topbar .nav{min-height:64px;width:100%;padding:0 16px}
  .unsubscribe-page .topbar .logo{width:58px!important;max-width:58px!important;height:48px;overflow:hidden}
  .unsubscribe-page .topbar .brand-logo{content:url("../images/kfwe-logo-mobile-mark.png")!important;width:58px!important;max-width:58px!important;height:48px!important;max-height:48px!important;object-fit:contain!important;object-position:center!important}
  .unsubscribe-page .unsubscribe-back{font-size:14px}
  .unsubscribe-page .calculator{padding:26px 20px}
  .unsubscribe-page .section{padding:42px 0}
  .unsubscribe-page .newsletter-unsubscribe-form .field input{width:100%;min-width:0}
  .unsubscribe-page .newsletter-unsubscribe-form .cta{width:100%}
}
@media(max-width:600px){
  .fin-wrap{padding-left:0;padding-right:0}
  .fin-brand h2{font-size:34px}
  .fin-subtitle{font-size:16px}
  .fin-results{padding:18px}
  .fin-primary > div{font-size:27px}
  .fin-actions{flex-direction:column}
  .fin-actions .button{width:100%}
  .unsubscribe-page .container{width:calc(100% - 32px)}
  .unsubscribe-page .topbar .nav{justify-content:space-between;gap:12px}
  .unsubscribe-page .unsubscribe-back{font-size:13px}
}

/* v22 calculator mobile access and result actions */
.calculator-directory{background:#fff}
.calculator-links{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.calculator-link{display:flex;flex-direction:column;gap:8px;padding:22px;border:1px solid var(--line);border-radius:12px;background:var(--cream);color:var(--navy);text-decoration:none}
.calculator-link strong{font-family:Georgia,'Times New Roman',serif;font-size:21px}
.calculator-link span{font-size:14px;color:#34435b}
.calc-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
.calc-actions .button{min-height:44px}
@media(max-width:900px){.calculator-links{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.calculator-links{grid-template-columns:1fr}.calc-actions{flex-direction:column}.calc-actions .button{width:100%;box-sizing:border-box;text-align:center}}
@media print{.topbar,.footer,.mobile-panel,.cta,.button,.calc-actions,.calculator-directory,.newsletter,.disclaimer{display:none!important}.service-section{padding:25px 0}.calc-wrap{box-shadow:none!important;border:0!important}.result-box{break-inside:avoid}}

/* V24: simplified navigation + calculator organization */
@media (min-width: 901px){
  .topbar > .container.nav{gap:14px;}
  .topbar .logo{flex:0 0 175px;max-width:175px;}
  .topbar .brand-logo{width:175px!important;max-width:175px;height:auto!important;max-height:56px;}
  .topbar .links{flex:1 1 auto;min-width:0;justify-content:flex-end;gap:14px;}
  .topbar .links a,.topbar .links .dropbtn{font-size:13px;white-space:nowrap;padding:4px 0;}
  .topbar > .container > .cta{flex:0 0 auto;white-space:nowrap;padding:11px 16px;font-size:13px;}
  .topbar .menu{min-width:220px;}
}
@media (min-width:901px) and (max-width:1150px){
  .topbar > .container.nav{gap:10px;}
  .topbar .logo{flex-basis:155px;max-width:155px;}
  .topbar .brand-logo{width:155px!important;max-width:155px;}
  .topbar .links{gap:10px;}
  .topbar .links a,.topbar .links .dropbtn{font-size:12px;}
  .topbar > .container > .cta{padding:10px 12px;font-size:12px;}
}
@media (max-width:900px){
  .topbar .mobile-panel{max-height:calc(100vh - 64px);overflow-y:auto;-webkit-overflow-scrolling:touch;}
}


/* V25: unified calculator typography, snapshots, buttons, and FIN layout */
.fin-section .calc-form{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;}
.fin-section .calc-form > label{min-width:0;}
.fin-section .fin-assumption-block,
.fin-section .fin-inflation-option{grid-column:1/-1;min-width:0;}
.fin-section .fin-assumption-block > label,
.fin-section .fin-inflation-option > label:not(.fin-check){display:flex;flex-direction:column;gap:7px;font-weight:600;}
.fin-section .calc-form input{width:100%;min-width:0;}
.fin-section .assumption-options{grid-template-columns:repeat(4,minmax(0,1fr));}

/* Use the same typography hierarchy on every calculator. */
#retirement,#savings,#debt,#fin{font-family:Arial,Helvetica,sans-serif;color:var(--ink);}
#retirement h2,#savings h2,#debt h2,#fin h2,
#retirement h3,#savings h3,#debt h3,#fin h3{font-family:Georgia,'Times New Roman',serif;color:var(--navy);}
#retirement .calc-wrap > p,#savings .calc-wrap > p,#debt .calc-wrap > p,#fin .fin-subtitle{font-family:Arial,Helvetica,sans-serif;}

/* Matching KFWEG snapshot treatment: tan outer panel + blue result cards. */
#retirement .calc-results,#savings .calc-results,#debt .calc-results,
#fin .fin-results{background:var(--cream);border:1px solid var(--line);border-radius:14px;padding:24px;}
#retirement .result-box,#savings .result-box,#debt .result-box,
#fin .result-box{background:var(--navy);color:#fff;border:1px solid var(--navy);border-radius:10px;padding:20px;box-shadow:0 8px 18px rgba(13,43,87,.08);min-height:120px;}
#retirement .result-box strong,#savings .result-box strong,#debt .result-box strong,
#fin .result-box strong{display:block;color:#fff;font-family:Arial,Helvetica,sans-serif;font-size:15px;line-height:1.35;}
#retirement .result-box > div,#savings .result-box > div,#debt .result-box > div,
#fin .result-box > div{color:#fff;font-family:Georgia,'Times New Roman',serif;font-size:25px;font-weight:700;line-height:1.2;margin-top:8px;}
#retirement .result-box small,#savings .result-box small,#debt .result-box small,
#fin .result-box small{color:rgba(255,255,255,.82);font-family:Arial,Helvetica,sans-serif;}
#fin .fin-primary{background:var(--navy);border:2px solid var(--gold);}
#fin .fin-primary > div{color:#fff;}

/* Make action buttons match the FIN buttons across every calculator. */
#retirement .calc-actions .button,#savings .calc-actions .button,#debt .calc-actions .button,
#fin .fin-actions .button{appearance:none;border:0;background:var(--navy);color:#fff;border-radius:28px;padding:12px 20px;min-height:44px;font-family:Arial,Helvetica,sans-serif;font-size:14px;font-weight:700;line-height:1.2;cursor:pointer;}
#retirement .calc-actions .button:hover,#savings .calc-actions .button:hover,#debt .calc-actions .button:hover,
#fin .fin-actions .button:hover{background:var(--gold);color:#fff;}

/* Keep the FIN assumption choices readable instead of squeezing them into the form grid. */
#fin .assumption-btn{font-family:Arial,Helvetica,sans-serif;background:#fff;color:var(--navy);border:1px solid var(--line);border-radius:9px;padding:12px;min-height:68px;}
#fin .assumption-btn strong{font-size:14px;line-height:1.25;}
#fin .assumption-btn span{font-size:12px;color:var(--muted);}
#fin .assumption-btn:hover,#fin .assumption-btn:focus{border-color:var(--gold);outline:2px solid rgba(202,165,91,.2);}

@media(max-width:900px){
  .fin-section .assumption-options{grid-template-columns:1fr 1fr;}
}
@media(max-width:600px){
  .fin-section .calc-form{grid-template-columns:1fr;}
  .fin-section .fin-assumption-block,.fin-section .fin-inflation-option{grid-column:auto;}
  .fin-section .assumption-options{grid-template-columns:1fr;}
  #retirement .calc-results,#savings .calc-results,#debt .calc-results,#fin .fin-results{padding:18px;}
  #retirement .result-box,#savings .result-box,#debt .result-box,#fin .result-box{min-height:110px;padding:18px;}
}
