:root{
  --ink:#132433;
  --ink-soft:#3C5266;
  --paper:#F4F7FA;
  --paper-dim:#E7ECF1;
  --navy:#1B3A5C;
  --navy-dark:#122A44;
  --gold:#B8863B;
  --slate:#5C6E7D;
  --line:#DCE3E9;
  --maxw:1140px;
  --radius-s:8px;
  --radius-m:14px;
  --radius-l:22px;
  --shadow-card:0 12px 32px -16px rgba(19,36,51,0.25);
  --font-display:'Source Serif 4', serif;
  --font-body:'Public Sans', system-ui, sans-serif;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:var(--font-body); line-height:1.55; -webkit-font-smoothing:antialiased;
}
h1,h2,h3{font-family:var(--font-display); margin:0 0 0.4em; font-weight:600; letter-spacing:-0.01em; color:var(--ink);}
h1{font-size:clamp(2rem, 4.2vw, 3.1rem); line-height:1.1;}
h2.section-title{font-size:clamp(1.5rem, 2.8vw, 2.1rem); line-height:1.18;}
h3{font-size:1.1rem;}
p{margin:0 0 1em;}
a{color:var(--navy); text-decoration-color:rgba(27,58,92,0.35);}
a:focus-visible,button:focus-visible{outline:3px solid var(--gold); outline-offset:2px;}

.wrap{max-width:var(--maxw); margin:0 auto; padding:0 20px;}
.skip-link{position:absolute; left:-999px; top:0; background:var(--ink); color:#fff; padding:10px 16px; z-index:100; border-radius:0 0 8px 0;}
.skip-link:focus{left:0;}

.eyebrow{
  font-family:var(--font-body); font-size:0.78rem; letter-spacing:0.08em;
  text-transform:uppercase; color:var(--navy); font-weight:700; margin:0 0 0.9em;
}
.eyebrow.center{text-align:center;}
.section-title.center{text-align:center; max-width:640px; margin-left:auto; margin-right:auto;}

.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  font-family:var(--font-body); font-weight:700; font-size:0.98rem;
  padding:13px 26px; border-radius:999px; border:2px solid transparent;
  cursor:pointer; text-decoration:none; transition:transform .15s ease, background .15s ease, border-color .15s ease;
}
.btn-primary{background:var(--navy); color:#fff;}
.btn-primary:hover{background:var(--navy-dark); transform:translateY(-1px);}
.btn-large{padding:15px 30px; font-size:1.02rem;}
.btn-small{padding:9px 18px; font-size:0.88rem;}
.btn-ghost{background:transparent; color:var(--ink); border-color:var(--line);}
.btn-ghost:hover{border-color:var(--navy); color:var(--navy);}

.site-header{position:sticky; top:0; z-index:50; background:rgba(244,247,250,0.92); backdrop-filter:blur(8px); border-bottom:1px solid var(--line);}
.header-row{display:flex; align-items:center; justify-content:space-between; padding:14px 0; gap:12px;}
.header-actions{display:flex; align-items:center; gap:10px;}
.brand{display:flex; align-items:center; gap:10px; text-decoration:none; color:var(--ink); font-family:var(--font-display); font-weight:600; font-size:1.05rem;}

.hero{padding:56px 0 60px;}
.hero .wrap{max-width:760px;}
.hero-sub{font-size:1.08rem; color:var(--ink-soft); max-width:56ch;}
.hero-actions{display:flex; flex-wrap:wrap; gap:14px; margin-top:28px;}

.how{padding:52px 0; background:var(--paper-dim); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.how-grid{display:grid; grid-template-columns:1fr; gap:22px; margin-top:34px;}
.how-card{background:var(--paper); padding:24px 22px; border-radius:var(--radius-m); border:1px solid var(--line);}
.card-index{font-family:var(--font-body); color:var(--gold); font-weight:700; font-size:0.85rem; letter-spacing:0.05em;}
.how-card h3{margin-top:10px;}
.how-card p{margin-bottom:0; font-size:0.95rem; color:var(--ink-soft);}
@media (min-width:768px){
  .how-grid{grid-template-columns:repeat(3,1fr); gap:28px;}
}

.partner{padding:56px 0;}
.partner-grid{display:grid; grid-template-columns:1fr; gap:32px; align-items:start;}
.partner-lede{font-size:1.02rem; color:var(--ink-soft); max-width:52ch;}
.partner-card{background:var(--navy); color:var(--paper); padding:28px 26px; border-radius:var(--radius-l); box-shadow:var(--shadow-card);}
.partner-card h3{color:#fff;}
.partner-card p{color:#C9D6E2; font-size:0.95rem;}
.partner-card .btn-ghost{border-color:rgba(244,247,250,0.4); color:#fff;}
.partner-card .btn-ghost:hover{border-color:#fff; color:#fff;}
@media (min-width:900px){
  .partner-grid{grid-template-columns:1.15fr 0.85fr; gap:48px;}
}

.site-footer{border-top:1px solid var(--line); padding:36px 0 20px;}
.footer-grid{display:grid; grid-template-columns:1fr; gap:24px; padding-bottom:20px;}
.brand-footer{margin-bottom:12px;}
.footer-disclosure{font-size:0.8rem; color:var(--slate); max-width:52ch;}
.footer-contact-title{font-size:0.78rem; text-transform:uppercase; letter-spacing:0.06em; color:var(--slate); margin-bottom:6px;}
.footer-contact a{display:block; font-size:0.92rem;}
.footer-copyright{text-align:center; font-size:0.78rem; color:var(--slate); border-top:1px solid var(--line); padding-top:16px; margin:0;}
@media (min-width:640px){
  .footer-grid{grid-template-columns:1fr auto;}
}

@media (prefers-color-scheme:dark){
  :root{
    --ink:#E9EEF3; --ink-soft:#B6C4D0; --paper:#101A24; --paper-dim:#16212C;
    --navy:#4A79A8; --navy-dark:#6B96C0; --slate:#8CA0AF; --line:#26343F;
  }
  body{background:var(--paper);}
  .site-header{background:rgba(16,26,36,0.92);}
  .how-card{background:var(--paper);}
  .partner-card{background:#16283A;}
}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  .btn{transition:none;}
}
