:root { color-scheme: light; font-family: Inter, Arial, sans-serif; color: #121a2b; background: #f3f5f9; }
* { box-sizing: border-box; }
body { margin: 0; }
.shell { min-height: 100vh; display: grid; grid-template-columns: minmax(0, .9fr) minmax(320px, 1.1fr); gap: 4rem; align-items: center; max-width: 1120px; margin: auto; padding: 4rem 1.5rem; }
.eyebrow { color: #174ea6; font-weight: 800; letter-spacing: .14em; }
h1 { font-size: clamp(2.6rem, 7vw, 5.2rem); line-height: .95; margin: .5rem 0 1.25rem; }
.lead { font-size: 1.25rem; line-height: 1.6; max-width: 34rem; }
.notice { border-left: 5px solid #f5c518; display: grid; gap: .3rem; padding: .75rem 1rem; margin: 2rem 0; background: #fff; }
.location { color: #566074; }
.card { background: #fff; border-radius: 22px; padding: clamp(1.4rem, 4vw, 2.5rem); box-shadow: 0 18px 50px rgba(18, 26, 43, .12); }
h2 { margin-top: 0; }
form, label { display: grid; gap: .45rem; }
form { gap: 1rem; }
.two-column { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
label { font-weight: 700; font-size: .92rem; }
label span { font-weight: 400; color: #6b7280; }
input, select, textarea { width: 100%; border: 1px solid #c8ceda; border-radius: 9px; padding: .85rem; font: inherit; background: #fff; }
input:focus, select:focus, textarea:focus { outline: 3px solid rgba(23, 78, 166, .18); border-color: #174ea6; }
.consent { grid-template-columns: auto 1fr; align-items: start; font-weight: 500; line-height: 1.4; }
.consent input { width: auto; margin-top: .2rem; }
button { border: 0; border-radius: 999px; padding: 1rem 1.4rem; font: inherit; font-weight: 800; color: #fff; background: #174ea6; cursor: pointer; }
button:disabled { opacity: .6; cursor: wait; }
.status { min-height: 1.5rem; margin: 0; line-height: 1.5; }
.status.error { color: #b42318; }
.status.success { color: #137333; }
.honeypot { position: absolute; left: -10000px; }
@media (max-width: 780px) { .shell { grid-template-columns: 1fr; gap: 2rem; padding-top: 2rem; } .two-column { grid-template-columns: 1fr; } }
