  :root{
    --ink:#1B2A41;
    --paper:#F7F6F2;
    --card:#FFFFFF;
    --accent:#2456A6;
    --accent-dark:#1A4080;
    --line:#D9D6CE;
    --muted:#5C6672;
    --ok:#1E7A46;
  }
  *{box-sizing:border-box;margin:0;padding:0;}
  html{font-size:17px;}
  body{
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
    background:var(--paper);
    color:var(--ink);
    min-height:100vh;
    display:flex;
    flex-direction:column;
    align-items:center;
  }
  .topbar{
    width:100%;
    text-align:center;
    padding:1.1rem 1rem .9rem;
    border-bottom:1px solid var(--line);
    background:var(--card);
  }
  .brand{
    font-family:Georgia,"Times New Roman",serif;
    font-size:1.25rem;
    letter-spacing:.01em;
    color:var(--ink);
  }
  .brand span{color:var(--accent);}
  main{
    width:100%;
    max-width:560px;
    padding:2.5rem 1.25rem 3rem;
    flex:1;
  }
  h1{
    font-family:Georgia,"Times New Roman",serif;
    font-weight:600;
    font-size:2rem;
    line-height:1.2;
    text-align:center;
    margin-bottom:.75rem;
  }
  .sub{
    text-align:center;
    color:var(--muted);
    font-size:1.05rem;
    line-height:1.55;
    margin-bottom:2rem;
  }
  .card{
    background:var(--card);
    border:1px solid var(--line);
    border-radius:12px;
    padding:1.75rem 1.5rem;
    box-shadow:0 1px 3px rgba(27,42,65,.06);
  }
  .field{margin-bottom:1.15rem;}
  label{
    display:block;
    font-size:.95rem;
    font-weight:600;
    margin-bottom:.4rem;
  }
  input[type=text],
  input[type=tel],
  input[type=email]{
    width:100%;
    font-size:1.1rem;
    padding:.8rem .9rem;
    border:1.5px solid var(--line);
    border-radius:8px;
    background:#fff;
    color:var(--ink);
  }
  input:focus{
    outline:3px solid rgba(36,86,166,.25);
    border-color:var(--accent);
  }
  .row{display:flex;gap:1rem;}
  .row .field{flex:1;}
  .consent{
    display:flex;
    gap:.6rem;
    align-items:flex-start;
    font-size:.8rem;
    color:var(--muted);
    line-height:1.5;
    margin:1.25rem 0 1.4rem;
  }
  .consent input{margin-top:.2rem;flex-shrink:0;width:1rem;height:1rem;}
  button{
    width:100%;
    font-size:1.15rem;
    font-weight:700;
    color:#fff;
    background:var(--accent);
    border:none;
    border-radius:8px;
    padding:1rem;
    cursor:pointer;
    transition:background .15s ease;
  }
  button:hover{background:var(--accent-dark);}
  button:focus-visible{outline:3px solid rgba(36,86,166,.4);outline-offset:2px;}
  .error{
    color:#A33030;
    font-size:.85rem;
    margin-top:.35rem;
    display:none;
  }
  /* Thank-you state */
  .thanks{
    display:none;
    text-align:center;
    padding:2.5rem 1.5rem;
  }
  .thanks.show{display:block;}
  .check{
    width:56px;height:56px;
    margin:0 auto 1.25rem;
    border-radius:50%;
    background:var(--ok);
    display:flex;align-items:center;justify-content:center;
  }
  .check svg{width:28px;height:28px;stroke:#fff;stroke-width:3;fill:none;}
  .thanks h2{
    font-family:Georgia,"Times New Roman",serif;
    font-size:1.6rem;
    margin-bottom:.6rem;
  }
  .thanks p{color:var(--muted);line-height:1.55;}
  footer{
    width:100%;
    border-top:1px solid var(--line);
    padding:1.5rem 1.25rem 2rem;
    text-align:center;
  }
  footer p{
    max-width:640px;
    margin:0 auto .6rem;
    font-size:.72rem;
    line-height:1.55;
    color:var(--muted);
  }
  @media (max-width:480px){
    .row{flex-direction:column;gap:0;}
    h1{font-size:1.65rem;}
  }
  @media (prefers-reduced-motion:reduce){
    *{transition:none!important;}
  }