:root{
  --font-display:'Erode','Georgia',serif;
  --font-body:'General Sans','Inter',system-ui,sans-serif;
  --text-xs:.75rem;--text-sm:.875rem;--text-base:1.0625rem;--text-lg:1.25rem;--text-xl:1.5rem;--text-2xl:2.125rem;--text-hero:clamp(2rem,5.2vw,3.25rem);
  --space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-6:1.5rem;--space-8:2rem;--space-12:3rem;--space-16:4rem;--space-24:6rem;
  --radius-sm:6px;--radius-md:12px;--radius-lg:20px;
  --color-bg:#FAF6EF;--color-surface:#FFFFFF;--color-text:#1C2430;--color-muted:#5B6673;--color-line:#E6DED1;
  --color-primary:#17395C;--color-primary-ink:#0F2941;--color-accent:#E08E2B;--color-accent-ink:#B86F17;--color-ok:#2E7D5B;--color-err:#B3261E;
  --shadow:0 10px 30px -12px rgba(23,57,92,.25);
}
body{background:var(--color-bg)}
.wrap{width:min(1120px,100% - 2rem);margin-inline:auto}

/* header */
.top{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) 0}
.brand{display:flex;align-items:center;gap:.6rem;text-decoration:none;color:var(--color-primary)}
.brand svg{width:34px;height:34px;flex:none}
.brand span{font-family:var(--font-body);font-weight:600;font-size:var(--text-sm);letter-spacing:.01em}
.top .local{font-size:var(--text-xs);color:var(--color-muted);display:flex;align-items:center;gap:.4rem}
.top .local::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--color-ok)}

/* hero */
.hero{display:grid;grid-template-columns:1.1fr .9fr;gap:var(--space-12);align-items:start;padding:var(--space-8) 0 var(--space-16)}
.eyebrow{font-size:var(--text-xs);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--color-accent-ink);margin-bottom:var(--space-4)}
h1{font-family:var(--font-display);font-weight:500;font-size:var(--text-hero);color:var(--color-primary-ink);margin-bottom:var(--space-6)}
.sub{font-size:var(--text-lg);color:var(--color-muted);margin-bottom:var(--space-8);max-width:40ch}
.bullets{display:grid;gap:var(--space-4);margin-bottom:var(--space-8)}
.bullets li{display:grid;grid-template-columns:28px 1fr;gap:var(--space-3);align-items:start}
.bullets svg{width:28px;height:28px;color:var(--color-ok)}
.bullets strong{display:block;color:var(--color-text)}
.bullets span{color:var(--color-muted);font-size:var(--text-sm)}
.photo{border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow);aspect-ratio:4/3;background:#D9D2C5;position:relative}
.photo img{width:100%;height:100%;object-fit:cover}
.photo figcaption{position:absolute;left:var(--space-4);bottom:var(--space-4);background:rgba(255,255,255,.92);padding:.4rem .7rem;border-radius:var(--radius-sm);font-size:var(--text-xs);color:var(--color-muted)}

/* form card */
.card{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-lg);padding:var(--space-8);box-shadow:var(--shadow);position:sticky;top:var(--space-6)}
.card h2{font-family:var(--font-body);font-weight:600;font-size:var(--text-lg);margin-bottom:.25rem}
.card .hint{font-size:var(--text-sm);color:var(--color-muted);margin-bottom:var(--space-6)}
.field{margin-bottom:var(--space-4)}
.field label{display:block;font-size:var(--text-sm);font-weight:500;margin-bottom:.35rem}
.field input,.field select{width:100%;padding:.8rem .9rem;border:1px solid var(--color-line);border-radius:var(--radius-md);background:#FDFBF7;font-size:var(--text-base)}
.field input:focus,.field select:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px rgba(23,57,92,.12)}
.row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}
.choices{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}
.choices label{border:1px solid var(--color-line);border-radius:var(--radius-md);padding:.65rem .75rem;font-size:var(--text-sm);display:flex;align-items:center;gap:.5rem;cursor:pointer;background:#FDFBF7;transition:border-color .15s,background .15s}
.choices label:has(input:checked){border-color:var(--color-primary);background:#EEF3F8}
.choices input{accent-color:var(--color-primary);width:18px;height:18px;flex:none;padding:0}
.btn{width:100%;display:inline-flex;justify-content:center;align-items:center;gap:.5rem;padding:1rem 1.25rem;border-radius:var(--radius-md);background:var(--color-accent);color:#1C1300;font-weight:600;font-size:var(--text-base);transition:background .15s,transform .15s}
.btn:hover{background:#F09C38}.btn:active{transform:translateY(1px)}
.btn[disabled]{opacity:.7;cursor:progress}
.consent{font-size:var(--text-xs);color:var(--color-muted);line-height:1.5;margin-top:var(--space-4)}
.consent a{color:var(--color-primary)}
.msg{display:none;margin-top:var(--space-4);padding:.75rem .9rem;border-radius:var(--radius-md);font-size:var(--text-sm)}
.msg.err{display:block;background:#FBEAE8;color:var(--color-err)}
.hp{position:absolute;left:-9999px;opacity:0;height:0;width:0}

/* sections */
section.band{padding:var(--space-16) 0;border-top:1px solid var(--color-line)}
h2.sec{font-family:var(--font-display);font-weight:500;font-size:var(--text-2xl);color:var(--color-primary-ink);margin-bottom:var(--space-8);max-width:24ch}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-8)}
.step .n{font-family:var(--font-display);font-size:var(--text-2xl);color:var(--color-accent);line-height:1;margin-bottom:var(--space-3)}
.step h3{font-size:var(--text-lg);font-weight:600;margin-bottom:.4rem}
.step p{color:var(--color-muted);font-size:var(--text-sm)}
.promise{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-12);align-items:center}
.promise blockquote{font-family:var(--font-display);font-size:var(--text-xl);color:var(--color-primary-ink);line-height:1.35;border-left:3px solid var(--color-accent);padding-left:var(--space-6)}
.promise p{color:var(--color-muted)}
.faq{display:grid;gap:var(--space-3);max-width:760px}
.faq details{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-md);padding:var(--space-4) var(--space-6)}
.faq summary{cursor:pointer;font-weight:600;list-style:none;display:flex;justify-content:space-between;align-items:center}
.faq summary::after{content:"+";color:var(--color-accent);font-size:1.4rem;line-height:1}
.faq details[open] summary::after{content:"–"}
.faq p{margin-top:var(--space-3);color:var(--color-muted);font-size:var(--text-sm)}
.cta-band{background:var(--color-primary);color:#fff;border-radius:var(--radius-lg);padding:var(--space-12);display:flex;justify-content:space-between;align-items:center;gap:var(--space-8);margin:var(--space-8) 0 var(--space-16)}
.cta-band h2{font-family:var(--font-display);font-weight:500;font-size:var(--text-xl);max-width:26ch}
.cta-band .btn{width:auto;padding-inline:var(--space-8)}

footer{padding:var(--space-8) 0 var(--space-12);border-top:1px solid var(--color-line);font-size:var(--text-xs);color:var(--color-muted);display:flex;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap}
footer a{color:var(--color-primary)}

/* thank-you / legal */
.center{max-width:640px;margin:var(--space-16) auto;text-align:center}
.center .check{width:72px;height:72px;margin:0 auto var(--space-6);color:var(--color-ok)}
.center h1{font-size:var(--text-2xl)}
.center p{margin-inline:auto;color:var(--color-muted);margin-bottom:var(--space-4)}
.next{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-lg);padding:var(--space-6);text-align:left;margin-top:var(--space-8)}
.next li{margin:.4rem 0 .4rem 1.2rem}
.legal{max-width:760px;margin:var(--space-8) auto var(--space-24)}
.legal h1{font-size:var(--text-2xl);margin-bottom:var(--space-2)}
.legal .date{color:var(--color-muted);font-size:var(--text-sm);margin-bottom:var(--space-8)}
.legal h2{font-family:var(--font-body);font-size:var(--text-lg);font-weight:600;margin:var(--space-8) 0 var(--space-3)}
.legal p,.legal li{color:#2F3A47;margin-bottom:var(--space-3)}
.legal li{margin-left:1.25rem}
.notice{background:#FFF4E3;border:1px solid #F3D9B0;border-radius:var(--radius-md);padding:var(--space-4);font-size:var(--text-sm);color:#6B4A12;margin-bottom:var(--space-8)}

@media (max-width:900px){
  .hero{grid-template-columns:1fr;gap:var(--space-8);padding-top:var(--space-4)}
  .card{position:static;padding:var(--space-6)}
  .steps{grid-template-columns:1fr}
  .promise{grid-template-columns:1fr}
  .cta-band{flex-direction:column;align-items:flex-start;padding:var(--space-8)}
  .cta-band .btn{width:100%}
  .top .local{display:none}
}
@media (max-width:480px){.row{grid-template-columns:1fr}.choices{grid-template-columns:1fr}}
