:root { --ink:#063442; --forest:#06495b; --cream:#0B1F2A; --paper:#fcfefe; --accent:#d4af37; --accent-deep:#a97913; --line:#d8e2e3; --muted:#5f7379; --danger:#b54040; --success:#26744c; }
* { box-sizing:border-box; }
body { margin:0; color:#f5fbfb; background:var(--cream); font-family:"DM Sans",Arial,sans-serif; }
body::before { content:""; position:fixed; z-index:-1; width:58vw; height:58vw; min-width:500px; min-height:500px; border-radius:50%; background:radial-gradient(circle,rgba(212,175,55,.20),transparent 66%); top:-28vw; right:-16vw; }
.container { width:min(1180px,calc(100% - 48px)); margin:auto; }
.page-shell { min-height:100vh; padding:28px 0 48px; }
.site-header { height:62px; display:flex; align-items:center; justify-content:space-between; }
.brand { display:inline-flex; align-items:center; gap:12px; color:inherit; text-decoration:none; }
.brand-mark { display:grid; place-items:center; width:42px; aspect-ratio:1; border:1.5px solid var(--accent); border-radius:50%; color:var(--accent); font:600 29px/1 "Playfair Display",serif; }
.brand-name { font:700 18px/1.05 "Playfair Display",serif; letter-spacing:.01em; }.brand-name em { display:block; margin-top:3px; font:500 8px/1 "DM Sans",sans-serif; letter-spacing:.17em; text-transform:uppercase; }.header-caption { color:#c6d9dc; font-size:13px; }
.hero { display:grid; grid-template-columns:.88fr 1.12fr; gap:clamp(42px,8vw,120px); align-items:center; min-height:calc(100vh - 138px); padding:54px 0; }
.eyebrow,.card-kicker { margin:0; color:var(--accent-deep); font-weight:700; font-size:11px; letter-spacing:.13em; text-transform:uppercase; }.eyebrow { display:flex; align-items:center; gap:9px; }.eyebrow span { width:25px; height:1px; background:currentColor; }
h1 { margin:17px 0 20px; font:600 clamp(42px,5vw,68px)/1.03 "Playfair Display",serif; letter-spacing:-.04em; }.hero h1 em { color:var(--accent); }.intro { max-width:455px; margin:0; color:#c6d9dc; font-size:16px; line-height:1.7; }.trust-points { display:flex; flex-wrap:wrap; gap:12px 20px; margin-top:31px; color:#d9e7e9; font-size:12px; font-weight:600; }.trust-points span::before { content:"✓"; color:var(--accent); margin-right:7px; }
.form-card { color:var(--ink); background:rgba(255,253,249,.96); padding:clamp(26px,4vw,46px); border:1px solid rgba(255,255,255,.9); border-radius:20px; box-shadow:0 26px 65px rgba(0,20,28,.34),0 2px 5px rgba(0,20,28,.16); backdrop-filter:blur(10px); }.form-heading { display:flex; justify-content:space-between; align-items:flex-start; padding-bottom:27px; border-bottom:1px solid var(--line); margin-bottom:27px; }.form-heading h2 { margin:7px 0 0; font:600 clamp(24px,2.4vw,31px)/1.1 "Playfair Display",serif; letter-spacing:-.025em; }.step-indicator { display:grid; place-items:center; width:37px; height:37px; border-radius:50%; background:#edf1ed; color:var(--forest); font-size:11px; font-weight:700; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; column-gap:18px; }.field { position:relative; padding-bottom:21px; }.field-full { grid-column:1/-1; }.field label { display:block; margin-bottom:8px; color:#31474b; font-size:12px; font-weight:700; }.field label span { color:#879193; font-weight:400; } input,select { width:100%; min-height:49px; border:1px solid #d7d9d3; border-radius:9px; outline:0; background:#fffefa; padding:0 14px; color:var(--ink); font:500 14px "DM Sans",sans-serif; transition:border .2s,box-shadow .2s,background .2s; } input::placeholder { color:#9ba3a3; font-weight:400; } select { appearance:none; background-image:linear-gradient(45deg,transparent 50%,#657276 50%),linear-gradient(135deg,#657276 50%,transparent 50%); background-position:calc(100% - 18px) 21px,calc(100% - 13px) 21px; background-size:5px 5px,5px 5px; background-repeat:no-repeat; color:#667276; } select:valid { color:var(--ink); } input:focus,select:focus { border-color:var(--accent); background:#fff; box-shadow:0 0 0 4px rgba(190,147,99,.15); }.field.invalid input,.field.invalid select { border-color:var(--danger); }.field.invalid input:focus,.field.invalid select:focus { box-shadow:0 0 0 4px rgba(181,64,64,.12); }.error-message { position:absolute; bottom:3px; left:1px; color:var(--danger); font-size:10px; font-weight:600; }.form-feedback { display:none; align-items:center; min-height:45px; margin:1px 0 17px; padding:10px 13px; border-radius:8px; font-size:12px; font-weight:600; }.form-feedback.success { display:flex; color:var(--success); background:#eaf6ef; }.form-feedback.error { display:flex; color:var(--danger); background:#fbeeee; }.submit-button { width:100%; display:flex; align-items:center; justify-content:center; gap:11px; min-height:53px; border:0; border-radius:9px; cursor:pointer; color:white; background:var(--forest); box-shadow:0 9px 18px rgba(13,52,57,.18); font:700 14px "DM Sans",sans-serif; transition:transform .2s,background .2s,box-shadow .2s; }.submit-button svg { width:19px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; transition:transform .2s; }.submit-button:hover { background:#17464b; transform:translateY(-2px); box-shadow:0 12px 22px rgba(13,52,57,.25); }.submit-button:hover svg { transform:translateX(3px); }.submit-button:active { transform:translateY(0); }.privacy-note { margin:14px 0 0; color:#899191; text-align:center; font-size:10px; line-height:1.45; }
@media (max-width:800px) { .hero { grid-template-columns:1fr; gap:35px; padding-top:35px; }.hero-copy { text-align:center; }.eyebrow { justify-content:center; }.intro { margin:auto; }.trust-points { justify-content:center; }.form-card { max-width:650px; width:100%; margin:auto; } }
@media (max-width:530px) { .container { width:min(100% - 32px,1180px); }.page-shell { padding-top:16px; }.header-caption { display:none; }.hero { padding:34px 0 20px; }.form-card { padding:25px 19px; border-radius:16px; }.form-grid { grid-template-columns:1fr; }.field-full { grid-column:auto; } h1 { font-size:42px; } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; transition:none!important; animation:none!important; } }
.submit-button:disabled { cursor:wait; opacity:.72; }
