:root{
  --blue:#23479A; --navy:#14275A; --gold:#E0A23C;
  --surface:#F4F6FA; --white:#fff;
  --ink:#0f1e3d; --muted:#5b6b8a; --line:#e4e9f2;
  --maxw:720px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; background:var(--white); color:var(--ink);
  font:400 17px/1.65 "Public Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
img{max-width:100%}
a{color:var(--blue)}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 20px}
.wide{max-width:960px}

/* header */
header{border-bottom:1px solid var(--line); background:var(--white)}
.bar{display:flex; align-items:center; justify-content:space-between; gap:16px; padding:18px 0}
.mark{display:flex; align-items:baseline; gap:2px; text-decoration:none; color:var(--navy);
  font:600 22px/1 "Newsreader",Georgia,"Times New Roman",serif; letter-spacing:-.01em}
.mark .dk{color:var(--blue)}
.mark .dot{color:var(--gold)}
nav a{margin-left:20px; font-size:15px; color:var(--muted); text-decoration:none}
nav a:hover{color:var(--blue)}

/* hero */
.hero{background:var(--surface); border-bottom:1px solid var(--line); padding:64px 0 56px}
h1{font:600 40px/1.2 "Newsreader",Georgia,serif; letter-spacing:-.02em; margin:0 0 18px; color:var(--navy)}
.lede{font-size:19px; color:var(--muted); margin:0 0 28px; max-width:56ch}
.btn{display:inline-block; background:var(--blue); color:#fff; text-decoration:none;
  padding:15px 30px; border-radius:6px; font-weight:600; font-size:17px; border:0; cursor:pointer}
.btn:hover{background:var(--navy)}

/* sections */
section{padding:56px 0}
h2{font:600 27px/1.25 "Newsreader",Georgia,serif; color:var(--navy); margin:0 0 20px; letter-spacing:-.01em}
h3{font-size:17px; margin:0 0 8px; color:var(--navy)}
.steps{display:grid; grid-template-columns:repeat(3,1fr); gap:28px; margin-top:8px}
.step p{margin:0; color:var(--muted); font-size:16px}
.num{display:inline-flex; align-items:center; justify-content:center; width:28px; height:28px;
  border-radius:50%; background:var(--blue); color:#fff; font-size:14px; font-weight:600; margin-bottom:12px}
.band{background:var(--surface); border-top:1px solid var(--line); border-bottom:1px solid var(--line)}

/* form */
.form-card{background:var(--white); border:1px solid var(--line); border-radius:10px; padding:32px}
label{display:block; font-size:14px; font-weight:600; margin:0 0 6px; color:var(--navy)}
input[type=text],input[type=email],input[type=tel],textarea{
  width:100%; padding:12px 14px; border:1px solid var(--line); border-radius:6px;
  font:inherit; font-size:16px; background:var(--white); color:var(--ink)}
input:focus,textarea:focus{outline:2px solid var(--blue); outline-offset:-1px; border-color:var(--blue)}
.field{margin-bottom:18px}
.consent{display:flex; gap:12px; align-items:flex-start; margin:24px 0;
  padding:16px; background:var(--surface); border-radius:6px}
.consent input{margin-top:3px; width:18px; height:18px; flex:0 0 auto; accent-color:var(--blue)}
.consent label{font-weight:400; font-size:14px; line-height:1.55; color:var(--ink); margin:0}
.progline{font-size:13px; color:var(--muted); margin:10px 0 0}
.note{font-size:14px; color:var(--muted)}
[hidden]{display:none!important}
.msg{padding:14px 16px; border-radius:6px; font-size:15px; margin-bottom:18px}
.msg.err{background:#fdf0f0; color:#8a1f1f; border:1px solid #f0d0d0}

/* legal */
.legal{padding:56px 0 24px}
.legal h1{font-size:33px}
.legal h2{font-size:21px; margin-top:38px}
.legal p,.legal li{color:#243352; font-size:16px}
.legal ul{padding-left:22px}
.eff{color:var(--muted); font-size:15px; margin-top:-8px}

/* footer */
footer{border-top:1px solid var(--line); background:var(--surface); padding:40px 0; margin-top:56px}
footer p{margin:0 0 10px; font-size:14px; color:var(--muted); line-height:1.6}
footer a{color:var(--muted)}
.fmark{font:600 17px/1 "Newsreader",Georgia,serif; color:var(--navy); margin-bottom:12px; display:block}

@media (max-width:640px){
  h1{font-size:31px}
  .hero{padding:44px 0 40px}
  section{padding:40px 0}
  .steps{grid-template-columns:1fr; gap:22px}
  nav a{margin-left:14px; font-size:14px}
  .form-card{padding:22px}
}
