
:root{
  --ink:#16283C; --ink-soft:#3D5061; --paper:#FFFFFF; --wash:#EFF3F6;
  --rule:#C9D4DD; --green:#1F5C41; --ochre:#8A5A12; --focus:#B8862B;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  font-size:18px; line-height:1.6;
}
.wrap{max-width:660px; margin:0 auto; padding:0 20px}
a{color:var(--green); text-underline-offset:3px}
a:focus-visible,button:focus-visible,select:focus-visible{outline:3px solid var(--focus); outline-offset:2px}

header.site{background:var(--ink); color:#fff; padding:18px 0}
header.site a{color:#fff; text-decoration:none}
.brand{font-family:Georgia,'Times New Roman',serif; font-size:24px; letter-spacing:.2px}
.brand span{display:block; font-family:inherit; font-size:13px; color:#B7C6D4; letter-spacing:.4px; margin-top:2px; font-family:-apple-system,sans-serif}

nav.main{border-bottom:1px solid var(--rule); background:var(--wash)}
nav.main ul{list-style:none; margin:0; padding:10px 0; display:flex; flex-wrap:wrap; gap:4px 18px}
nav.main a{color:var(--ink); text-decoration:none; font-size:15px; padding:4px 0; display:inline-block}
nav.main a:hover{text-decoration:underline}
nav.main a[aria-current=page]{font-weight:600; text-decoration:underline}

.notice{
  border:2px solid var(--ink); padding:14px 16px; margin:22px 0;
  font-size:16px; line-height:1.5;
}
.notice strong{display:block; margin-bottom:4px}

h1{font-family:Georgia,'Times New Roman',serif; font-weight:normal; font-size:34px; line-height:1.22; margin:26px 0 14px}
h2{font-family:Georgia,'Times New Roman',serif; font-weight:normal; font-size:24px; line-height:1.3; margin:34px 0 10px}
h3{font-size:18px; margin:24px 0 8px}
p,li{max-width:62ch}
ul.plain{padding-left:22px}
ul.plain li{margin-bottom:8px}

.stamp{font-size:15px; color:var(--ink-soft); border-left:3px solid var(--rule); padding-left:12px; margin:0 0 24px}

.hero{border-bottom:1px solid var(--rule); padding-bottom:26px}
.hero .date{font-family:Georgia,serif; font-size:52px; line-height:1; display:block; margin-bottom:6px}
.hero p.lede{font-size:20px; line-height:1.5}

.cta{
  display:inline-block; background:var(--green); color:#fff; text-decoration:none;
  padding:14px 22px; font-size:18px; font-weight:600; margin:8px 0 4px; border:2px solid var(--green);
}
.cta:hover{background:#17462F}

.warn{border-left:5px solid var(--ochre); background:#FDF8EF; padding:14px 16px; margin:22px 0; font-size:17px}
.warn strong{color:var(--ochre)}

.q{border-top:1px solid var(--rule); padding:20px 0}
.q:first-of-type{border-top:none}
.q legend{font-family:Georgia,serif; font-size:20px; padding:0; margin-bottom:6px}
fieldset{border:0; padding:0; margin:0}
.opt{display:block; padding:9px 0; font-size:17px}
.opt input{margin-right:10px; width:20px; height:20px; vertical-align:-4px}
.hint{font-size:15px; color:var(--ink-soft); margin:2px 0 10px}

#result{margin-top:28px; padding-top:8px}
.outcome{border:2px solid var(--green); padding:18px; margin-bottom:18px}
.outcome.neutral{border-color:var(--ink)}
.outcome h2{margin-top:0}
.formbox{border:1px solid var(--rule); background:var(--wash); padding:18px; margin-top:20px}
.formbox label{display:block; margin:14px 0 4px; font-weight:600; font-size:16px}
.formbox input,.formbox select{width:100%; padding:11px; font-size:17px; border:1px solid var(--ink-soft); background:#fff}
.consent{display:flex; gap:12px; align-items:flex-start; margin:20px 0 8px; font-size:16px}
.consent input{width:22px; height:22px; flex:0 0 auto; margin-top:3px}

footer.site{border-top:1px solid var(--rule); margin-top:48px; padding:26px 0 50px; font-size:16px; color:var(--ink-soft)}
footer.site ul{list-style:none; padding:0; margin:0 0 16px; display:flex; flex-wrap:wrap; gap:6px 18px}
footer.site a{color:var(--ink-soft)}

@media (max-width:520px){
  body{font-size:17px}
  h1{font-size:28px}
  .hero .date{font-size:40px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
