:root{
    --navy:#0F2438;
    --navy-2:#16324A;
    --slate:#3B5875;
    --teal:#5FA8AE;
    --teal-dark:#2E6E73;
    --bg:#F5F7FA;
    --card:#FFFFFF;
    --ink:#16232E;
    --muted:#5B6B78;
    --line:#E1E7EC;
}

*{margin:0;padding:0;box-sizing:border-box;}

section[id]{scroll-margin-top:90px;}

body{
    font-family:'Source Sans 3',system-ui,sans-serif;
    background:var(--bg);
    color:var(--ink);
    line-height:1.6;
}

h1,h2,h3{
    font-family:'Source Serif 4',Georgia,serif;
    font-weight:600;
    color:var(--navy);
    line-height:1.2;
}

.wrap{width:min(1160px,92%);margin:0 auto;}

a{color:inherit;}

/* Header */
.site-header{
    background:var(--card);
    border-bottom:1px solid var(--line);
    position:sticky;
    top:0;
    z-index:50;
}
.header-inner{
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:16px 0;
}
.brand{
    display:flex;
    align-items:center;
    gap:10px;
    text-decoration:none;
    font-weight:700;
    font-size:18px;
    color:var(--navy);
}
.brand em{
    font-style:normal;
    color:var(--teal-dark);
}
.main-nav{
    display:flex;
    align-items:center;
    gap:28px;
}
.main-nav a{
    text-decoration:none;
    font-weight:600;
    font-size:14.5px;
    color:var(--slate);
}
.nav-cta{
    background:var(--navy);
    color:#fff !important;
    padding:10px 18px;
    border-radius:8px;
}

/* Hero */
.hero{
    padding:70px 0 90px;
    background:linear-gradient(180deg,#EEF3F6 0%, var(--bg) 100%);
}
.hero-grid{
    display:grid;
    grid-template-columns:1.15fr .85fr;
    gap:56px;
    align-items:start;
}
.eyebrow{
    display:inline-block;
    font-size:13px;
    font-weight:700;
    letter-spacing:.04em;
    text-transform:uppercase;
    color:var(--teal-dark);
    background:#E4F1F1;
    padding:6px 14px;
    border-radius:50px;
    margin-bottom:22px;
}
.hero h1{
    font-size:44px;
    margin-bottom:20px;
}
.lede{
    font-size:17.5px;
    color:var(--muted);
    max-width:52ch;
    margin-bottom:28px;
}
.trust-row{
    list-style:none;
    display:flex;
    flex-wrap:wrap;
    gap:22px;
}
.trust-row li{
    display:flex;
    align-items:center;
    gap:8px;
    font-size:13.5px;
    font-weight:600;
    color:var(--slate);
}

.hero-banner{display:none;}
.hero-form-panel{
    background:var(--card);
    border:1px solid var(--line);
    border-radius:16px;
    box-shadow:0 18px 50px rgba(15,36,56,.10);
    overflow:hidden;
}
.panel-head{
    background:var(--navy);
    color:#fff;
    padding:16px 20px;
    display:flex;
    align-items:baseline;
    justify-content:space-between;
}
.panel-head span{font-weight:700;font-size:15px;}
.panel-head small{opacity:.7;font-size:12px;}
.loan-form-box{
    padding:4px;
}
.form-disclaimer{
    font-size:11.5px;
    line-height:1.6;
    color:var(--muted);
    text-align:center;
    padding:0 20px 18px;
}
.form-disclaimer a{color:var(--teal-dark);}

/* Stats */
.stats{
    background:var(--navy);
    color:#fff;
    padding:44px 0;
}
.stats-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:24px;
    text-align:center;
}
.stat strong{
    display:block;
    font-family:'Source Serif 4',serif;
    font-size:19px;
    margin-bottom:6px;
    color:#EAF4F4;
}
.stat span{
    font-size:13.5px;
    font-weight:600;
    color:#C3D4DF;
}
.stat sup{font-size:.7em;}

/* How it works */
.how{padding:90px 0 70px;}
.how h2{
    font-size:32px;
    text-align:center;
    margin-bottom:48px;
}
.steps{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:22px;
}
.step{
    background:var(--card);
    border:1px solid var(--line);
    border-radius:14px;
    padding:26px 22px;
}
.step-no{
    font-family:'Source Serif 4',serif;
    font-size:26px;
    color:var(--teal-dark);
    margin-bottom:10px;
}
.step h3{
    font-size:17px;
    margin-bottom:8px;
}
.step p{
    font-size:14px;
    color:var(--muted);
}

/* Why */
.why{
    padding:70px 0 90px;
    background:#EEF3F6;
}
.why-grid{
    display:grid;
    grid-template-columns:.8fr 1.2fr;
    gap:50px;
    align-items:start;
}
.why-copy h2{font-size:28px;margin-bottom:14px;}
.why-copy p{color:var(--muted);font-size:15.5px;max-width:42ch;}
.why-cards{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:20px;
}
.why-card{
    background:var(--card);
    border:1px solid var(--line);
    border-radius:14px;
    padding:22px;
}
.why-card svg{margin-bottom:12px;}
.why-card h3{font-size:15.5px;margin-bottom:6px;}
.why-card p{font-size:13.5px;color:var(--muted);}

/* FAQ */
.faq{padding:90px 0;}
.faq h2{
    font-size:30px;
    text-align:center;
    margin-bottom:44px;
}
.faq-list{max-width:800px;margin:0 auto;}
.faq-group-label{
    font-family:'Source Sans 3',sans-serif;
    font-size:12.5px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.04em;
    color:var(--teal-dark);
    margin:28px 0 12px;
}
.faq-group-label:first-child{margin-top:0;}
.faq details{
    background:var(--card);
    border:1px solid var(--line);
    border-radius:12px;
    margin-bottom:14px;
    padding:0 22px;
}
.faq summary{
    cursor:pointer;
    list-style:none;
    padding:19px 0;
    font-weight:600;
    font-size:15.5px;
    position:relative;
    padding-right:28px;
}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{
    content:"+";
    position:absolute;
    right:0;
    top:50%;
    transform:translateY(-50%);
    font-size:20px;
    color:var(--teal-dark);
}
.faq details[open] summary::after{content:"\2212";}
.faq details p{
    padding-bottom:20px;
    color:var(--muted);
    font-size:14.5px;
}

/* CTA */
.cta{
    background:var(--navy);
    color:#fff;
    text-align:center;
    padding:80px 0;
}
.cta h2{color:#fff;font-size:28px;margin-bottom:12px;}
.cta p{color:#A9BCCB;margin-bottom:26px;}
.btn-primary{
    display:inline-block;
    background:var(--teal-dark);
    color:#fff;
    padding:14px 30px;
    border-radius:8px;
    text-decoration:none;
    font-weight:700;
}

/* Footer */
.site-footer{
    background:#0B1C2C;
    color:#9FB3C4;
}
.cl-footer-grid{
    display:grid;
    grid-template-columns:1fr;
    gap:30px;
    padding:48px 0 34px;
    border-bottom:1px solid #1B3247;
}
.footer-brand-name{
    display:flex;
    align-items:center;
    gap:10px;
    font-family:'Source Serif 4',serif;
    font-weight:600;
    font-size:19px;
    color:#EAF4F4;
    margin-bottom:10px;
}
.footer-brand p{font-size:13.5px;line-height:1.65;color:#A9BCCB;max-width:36ch;}
.cl-footer-col{display:flex;flex-direction:column;align-items:flex-start;gap:10px;}
.cl-footer-col h2{
    font-family:'Source Sans 3',sans-serif;
    font-size:12px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.06em;
    color:var(--teal);
    margin-bottom:4px;
}
.cl-footer-col a,
.cl-legal-btn{
    font-family:inherit;
    font-size:14px;
    line-height:1.45;
    color:#C3D4DF;
    text-decoration:none;
    text-align:left;
    background:none;
    border:0;
    padding:0;
    cursor:pointer;
}
.cl-footer-col a:hover,
.cl-legal-btn:hover{color:#fff;text-decoration:underline;text-underline-offset:3px;}
.cl-disclosure{
    padding:30px 0 44px;
    display:grid;
    gap:14px;
    font-size:12.5px;
    line-height:1.8;
}
.cl-disclosure p{max-width:960px;}
.cl-disclosure a,
.cl-legal-inline{
    font:inherit;
    color:#DCE8EF;
    text-decoration:underline;
    text-decoration-color:rgba(95,168,174,.7);
    text-underline-offset:2px;
    background:none;
    border:0;
    padding:0;
    cursor:pointer;
}
.cl-disclosure a:hover,
.cl-legal-inline:hover{color:#fff;text-decoration-color:#fff;}
.copyright{font-size:12px;color:#8EA4B8;padding-top:6px;}
.site-footer :focus-visible{outline-color:var(--teal);}
@media (min-width:641px){
    .cl-footer-grid{grid-template-columns:1fr 1fr;gap:34px 40px;}
}
@media (min-width:1000px){
    .cl-footer-grid{grid-template-columns:1.35fr 1fr 1.1fr 1.3fr;gap:40px;}
}

/* Legal documents (popover) */
.cl-doc{
    width:min(94vw,780px);
    max-height:86vh;
    margin:auto;
    padding:0;
    border:1px solid var(--line);
    border-top:4px solid var(--teal-dark);
    border-radius:14px;
    background:var(--card);
    color:var(--ink);
    box-shadow:0 24px 64px rgba(11,28,44,.35);
    overflow:auto;
    overscroll-behavior:contain;
}
.cl-doc::backdrop{background:rgba(11,28,44,.62);}
.cl-doc-head{
    position:sticky;
    top:0;
    z-index:1;
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:16px;
    padding:22px 26px 16px;
    background:var(--card);
    border-bottom:1px solid var(--line);
}
.cl-doc-head h2{font-size:25px;line-height:1.2;}
.cl-doc-updated{font-size:13px;color:var(--muted);margin-top:4px;}
.cl-doc-close{
    flex:none;
    width:38px;
    height:38px;
    border-radius:8px;
    border:1px solid var(--line);
    background:#EEF3F6;
    color:var(--navy);
    font-size:22px;
    line-height:1;
    cursor:pointer;
}
.cl-doc-close:hover{background:var(--navy);border-color:var(--navy);color:#fff;}
.cl-doc-body{
    padding:20px 26px 32px;
    display:grid;
    gap:20px;
    font-size:15px;
    line-height:1.65;
    color:var(--muted);
}
.cl-doc-body h3{
    display:flex;
    align-items:baseline;
    gap:10px;
    font-size:17px;
    line-height:1.3;
    margin-bottom:6px;
}
.cl-doc-no{
    flex:none;
    font-size:14px;
    color:var(--teal-dark);
    font-variant-numeric:tabular-nums;
}
.cl-doc-body ul{margin-top:8px;padding-left:20px;display:grid;gap:6px;}
.cl-doc-body p+p{margin-top:10px;}
.cl-doc-body a{color:var(--teal-dark);}
.cl-doc-note{
    background:#E4F1F1;
    border-left:3px solid var(--teal-dark);
    border-radius:0 10px 10px 0;
    padding:12px 16px;
    color:var(--ink);
    font-size:14.5px;
}
.cl-doc-note strong{color:var(--navy);}
@media (max-width:640px){
    .cl-doc{width:100%;max-width:100%;max-height:90vh;margin:auto 0 0;border-radius:14px 14px 0 0;border-bottom:0;}
    .cl-doc-head{padding:18px 18px 14px;}
    .cl-doc-head h2{font-size:21px;}
    .cl-doc-body{padding:16px 18px 28px;}
}
/* no popover support: the documents sit open at the foot of the page */
@supports not selector(:popover-open){
    .cl-doc{display:block;position:static;width:auto;max-width:780px;max-height:none;margin:0 auto 24px;overflow:visible;box-shadow:none;}
    .cl-doc-head{position:static;}
    .cl-doc-close{display:none;}
}

@media (prefers-reduced-motion:reduce){
    html{scroll-behavior:auto;}
    *,*::before,*::after{transition:none !important;animation:none !important;}
}

/* Focus states */
a:focus-visible,
button:focus-visible,
summary:focus-visible{
    outline:2px solid var(--teal);
    outline-offset:3px;
    border-radius:4px;
}

@media (max-width:900px){
    .hero-grid,.why-grid{grid-template-columns:1fr;}
    .hero-banner{
        display:block;
        order:1;
        text-align:center;
        font-size:13px;
        font-weight:700;
        color:var(--teal-dark);
        background:#E4F1F1;
        padding:9px 16px;
        border-radius:50px;
        margin-bottom:4px;
    }
    .hero-form-panel{order:2;}
    .hero-copy{order:3;}
    .steps,.stats-grid{grid-template-columns:repeat(2,1fr);}
    .why-cards{grid-template-columns:1fr;}
    .main-nav a:not(.nav-cta){display:none;}
    .hero h1{font-size:34px;}
}

/* Legal pages */
.legal-page{padding:50px 0 90px;}
.legal-page .wrap{max-width:780px;}
.legal-back{
    display:inline-block;
    font-size:13.5px;
    font-weight:600;
    color:var(--teal-dark);
    text-decoration:none;
    margin-bottom:28px;
}
.legal-page h1{font-size:34px;margin-bottom:8px;}
.legal-updated{font-size:13px;color:var(--muted);margin-bottom:36px;}
.legal-page section{margin-bottom:30px;}
.legal-page h2{font-size:19px;margin-bottom:10px;}
.legal-page p, .legal-page li{font-size:14.5px;color:var(--muted);margin-bottom:12px;}
.legal-page ul, .legal-page ol{padding-left:22px;margin-bottom:12px;}
.legal-page a{color:var(--teal-dark);}
.legal-page table{width:100%;border-collapse:collapse;margin:16px 0;font-size:13.5px;}
.legal-page th,.legal-page td{border:1px solid var(--line);padding:10px 12px;text-align:left;color:var(--muted);}
.legal-page th{background:#F5F7FA;color:var(--ink);}
.unsub-form{
    display:flex;
    gap:10px;
    max-width:420px;
    margin:18px 0 8px;
}
.unsub-form input{
    flex:1;
    padding:12px 14px;
    border:1px solid var(--line);
    border-radius:8px;
    font-size:14px;
    font-family:inherit;
}
.unsub-form button{
    background:var(--navy);
    color:#fff;
    border:none;
    padding:12px 22px;
    border-radius:8px;
    font-weight:700;
    font-size:14px;
    cursor:pointer;
}

.container {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

main {
  flex: 1;
}
