
:root {
  --ink: #111111;
  --muted: #686868;
  --line: #d9d9d6;
  --soft-line: #ececea;
  --paper: #ffffff;
  --wash: #f4f4f1;
  --error: #9b1c1c;
  --max: 1180px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 16px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; display: block; }
a { color: inherit; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
[hidden] { display: none !important; }

.skip-link {
  position: fixed; left: 12px; top: 12px; z-index: 100;
  transform: translateY(-180%); background: #fff; color: #111;
  border: 1px solid #111; padding: 10px 14px; text-decoration: none;
}
.skip-link:focus { transform: translateY(0); }

.progress-line { position: fixed; inset: 0 0 auto 0; height: 3px; z-index: 80; background: transparent; }
.progress-line > span { display:block; width:0; height:100%; background:#111; transition: width .2s ease; }

.site-header {
  background: rgba(255,255,255,.96);
  border-bottom: 1px solid var(--soft-line);
  position: sticky; top: 0; z-index: 50;
  backdrop-filter: blur(14px);
}
.header-inner {
  width: min(calc(100% - 48px), var(--max)); margin: 0 auto;
  min-height: 92px; display:flex; align-items:center; justify-content:space-between; gap:32px;
}
.brand { display:inline-flex; align-items:center; text-decoration:none; }
.brand img { width: 260px; height: auto; }
.header-meta { display:flex; align-items:center; gap:28px; color:var(--muted); font-size:13px; letter-spacing:.02em; }
.header-meta a { text-decoration:none; }
.header-meta a:hover { color:#111; }
.header-kicker { text-transform: uppercase; letter-spacing:.18em; font-size:11px; color:#111; }

.hero { background: var(--wash); border-bottom: 1px solid var(--line); }
.hero-inner {
  width: min(calc(100% - 48px), var(--max)); margin: 0 auto;
  padding: 84px 0 78px; display:grid; grid-template-columns: minmax(0,1.45fr) minmax(260px,.55fr); gap:84px; align-items:end;
}
.eyebrow { margin:0 0 24px; font-size:11px; font-weight:700; letter-spacing:.22em; text-transform:uppercase; }
h1 { margin:0; font-weight:400; letter-spacing:-.045em; font-size:clamp(48px,6.5vw,88px); line-height:.98; }
.hero-copy { margin:34px 0 0; max-width:720px; font-size:19px; color:#3e3e3e; line-height:1.62; }
.hero-side { border-top:1px solid #111; padding-top:18px; font-size:13px; color:#4f4f4f; }
.hero-side strong { display:block; color:#111; font-size:12px; letter-spacing:.12em; text-transform:uppercase; margin-bottom:10px; }

.page-shell {
  width:min(calc(100% - 48px), var(--max)); margin:0 auto;
  display:grid; grid-template-columns: 220px minmax(0, 1fr); gap:82px; padding:72px 0 112px;
}
.form-nav { align-self:start; position:sticky; top:132px; }
.form-nav p { margin:0 0 22px; font-size:11px; letter-spacing:.18em; text-transform:uppercase; font-weight:700; }
.form-nav ol { list-style:none; padding:0; margin:0; border-top:1px solid #111; }
.form-nav li { display:flex; align-items:center; gap:12px; padding:14px 0; color:#999; border-bottom:1px solid var(--soft-line); font-size:13px; transition:color .2s; }
.form-nav li::before { content: attr(data-number); width:24px; font-size:10px; letter-spacing:.08em; }
.form-nav li.active { color:#111; }
.form-nav .completion { margin-top:22px; color:var(--muted); font-size:12px; }

.form { min-width:0; }
.form-intro { margin:0 0 48px; max-width:760px; color:#4f4f4f; }
.form-intro strong { color:#111; }
.section {
  scroll-margin-top:130px; padding:0 0 74px; margin:0 0 72px; border-bottom:1px solid var(--line);
}
.section:last-of-type { margin-bottom:38px; }
.section-head { display:grid; grid-template-columns:72px 1fr; gap:20px; margin-bottom:40px; }
.section-number { font-size:12px; letter-spacing:.12em; padding-top:8px; }
.section h2 { margin:0; font-size:clamp(28px,4vw,42px); line-height:1.12; font-weight:400; letter-spacing:-.025em; }
.section-lead { margin:12px 0 0; color:var(--muted); max-width:680px; font-size:14px; }

.grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:26px 28px; }
.span-2 { grid-column:1/-1; }
.field { display:flex; flex-direction:column; gap:9px; min-width:0; }
.field > span, .group-label { font-size:12px; font-weight:600; letter-spacing:.035em; }
.field em { color:#111; font-style:normal; }
.field small { color:var(--muted); font-size:11px; }
input, select, textarea {
  width:100%; min-height:52px; border:1px solid var(--line); border-radius:0;
  background:#fff; color:#111; padding:13px 14px; outline:none;
  transition:border-color .18s, box-shadow .18s, background .18s;
}
textarea { min-height:150px; resize:vertical; }
input::placeholder, textarea::placeholder { color:#a2a2a2; }
input:hover, select:hover, textarea:hover { border-color:#aaa; }
input:focus, select:focus, textarea:focus { border-color:#111; box-shadow:0 0 0 1px #111; }
input:invalid:not(:placeholder-shown), select:invalid:not(:focus) { box-shadow:none; }

.choice-group { display:flex; flex-wrap:wrap; gap:10px; }
.choice {
  position:relative; display:inline-flex; align-items:center; min-height:50px;
  border:1px solid var(--line); padding:0 17px; cursor:pointer; transition:.18s; background:#fff;
}
.choice:hover { border-color:#111; }
.choice input { position:absolute; opacity:0; pointer-events:none; }
.choice:has(input:checked) { background:#111; color:#fff; border-color:#111; }

.conditional {
  grid-column:1/-1; border-left:2px solid #111; background:var(--wash); padding:26px;
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:26px 28px;
  animation:reveal .22s ease both;
}
@keyframes reveal { from { opacity:0; transform:translateY(-4px); } }

.notice { border:1px solid var(--line); padding:22px 24px; color:#4c4c4c; font-size:13px; margin-bottom:32px; }
.notice strong { color:#111; }
.checkbox-list { display:grid; gap:16px; }
.check { display:grid; grid-template-columns:22px 1fr; gap:13px; align-items:start; cursor:pointer; font-size:13px; color:#3f3f3f; }
.check input { appearance:none; width:20px; height:20px; min-height:20px; padding:0; margin:1px 0 0; border:1px solid #777; display:grid; place-items:center; }
.check input:checked { background:#111; border-color:#111; }
.check input:checked::after { content:""; width:9px; height:5px; border-left:2px solid #fff; border-bottom:2px solid #fff; transform:rotate(-45deg) translateY(-1px); }

.form-error { border-left:3px solid var(--error); background:#fff4f4; color:#681010; padding:16px 18px; margin:24px 0; font-size:13px; }
.submit-row { display:flex; align-items:center; justify-content:space-between; gap:24px; }
.submit-row p { margin:0; max-width:520px; font-size:12px; color:var(--muted); }
.submit-button {
  border:1px solid #111; background:#111; color:#fff; min-height:58px; padding:0 34px;
  display:inline-flex; align-items:center; justify-content:center; gap:18px; text-transform:uppercase;
  font-size:11px; font-weight:700; letter-spacing:.16em; transition:.2s;
}
.submit-button::after { content:"→"; font-size:18px; font-weight:400; }
.submit-button:hover { background:#fff; color:#111; }
.hp { position:absolute !important; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }

.site-footer { background:#111; color:#fff; }
.footer-inner {
  width:min(calc(100% - 48px), var(--max)); margin:0 auto; padding:68px 0 34px;
  display:grid; grid-template-columns:1.2fr .8fr .8fr; gap:64px;
}
.footer-logo { width:190px; margin-bottom:26px; }
.footer-text { color:#bdbdbd; max-width:400px; font-size:13px; }
.footer-title { margin:0 0 18px; font-size:10px; letter-spacing:.18em; text-transform:uppercase; color:#aaa; }
.footer-block { font-size:13px; line-height:1.8; }
.footer-block a { color:#fff; text-decoration:none; }
.footer-bottom { width:min(calc(100% - 48px), var(--max)); margin:0 auto; padding:24px 0 30px; border-top:1px solid #333; display:flex; justify-content:space-between; gap:24px; color:#8f8f8f; font-size:11px; }
.footer-links { display:flex; gap:20px; }

.legal-page { width:min(calc(100% - 48px),900px); margin:0 auto; padding:82px 0 110px; }
.legal-page h1 { font-size:clamp(44px,7vw,72px); margin-bottom:54px; }
.legal-page h2 { margin:42px 0 14px; font-size:25px; font-weight:400; }
.legal-page p, .legal-page li { color:#444; }
.back-link { display:inline-block; margin-top:46px; text-decoration:none; border-bottom:1px solid #111; }

.success-page { min-height:100vh; display:grid; grid-template-rows:auto 1fr auto; }
.success-main { width:min(calc(100% - 48px),900px); margin:0 auto; padding:96px 0; }
.success-mark { width:64px; height:64px; display:grid; place-items:center; border:1px solid #111; font-size:28px; margin-bottom:40px; }
.success-main h1 { font-size:clamp(46px,7vw,80px); }
.success-main p { max-width:650px; color:#555; font-size:18px; }

@media (max-width: 900px) {
  .header-meta .header-kicker { display:none; }
  .hero-inner { grid-template-columns:1fr; gap:44px; padding:66px 0; }
  .hero-side { max-width:520px; }
  .page-shell { grid-template-columns:1fr; gap:42px; padding-top:46px; }
  .form-nav { position:static; }
  .form-nav ol { display:flex; overflow:auto; border-bottom:1px solid var(--soft-line); }
  .form-nav li { min-width:max-content; padding:12px 18px 12px 0; border-bottom:0; }
  .footer-inner { grid-template-columns:1fr 1fr; }
  .footer-brand { grid-column:1/-1; }
}

@media (max-width: 640px) {
  .header-inner, .hero-inner, .page-shell, .footer-inner, .footer-bottom, .legal-page, .success-main { width:min(calc(100% - 32px), var(--max)); }
  .header-inner { min-height:76px; }
  .brand img { width:220px; }
  .header-meta { display:none; }
  .hero-inner { padding:52px 0; }
  .hero-copy { font-size:16px; }
  .page-shell { padding-bottom:78px; }
  .grid, .conditional { grid-template-columns:1fr; }
  .span-2 { grid-column:auto; }
  .section { padding-bottom:54px; margin-bottom:52px; }
  .section-head { grid-template-columns:42px 1fr; gap:12px; margin-bottom:30px; }
  .choice-group { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .choice { justify-content:center; padding:0 8px; }
  .conditional { padding:20px; }
  .submit-row { align-items:stretch; flex-direction:column; }
  .submit-button { width:100%; }
  .footer-inner { grid-template-columns:1fr; gap:38px; padding-top:52px; }
  .footer-brand { grid-column:auto; }
  .footer-bottom { flex-direction:column; }
}
