@font-face { font-family:Inter; src:url('../fonts/Inter.woff2') format('woff2'); font-style:normal; font-weight:400 700; font-display:swap; }
@font-face { font-family:Sora; src:url('../fonts/Sora.woff2') format('woff2'); font-style:normal; font-weight:700 800; font-display:swap; }
:root {
  --blue:#003399; --blue-deep:#001a3d; --gold:#ffc502; --gold-dark:#e0a900;
  --ink:#12161c; --ink-soft:#3d4656; --ground:#f8fafc; --sand:#edf1f5; --line:#dce2e9;
  --shadow-sm:0 8px 20px -10px rgba(0,51,153,.30);
  --shadow-md:0 22px 48px -16px rgba(0,51,153,.32);
  --shadow-lg:0 40px 90px -24px rgba(0,26,61,.38);
}
* { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; }
body { margin:0; background:var(--ground); color:var(--ink); font-family:Inter,'Segoe UI',Arial,sans-serif; line-height:1.5; }
.shell { width:100%; max-width:1200px; margin:0 auto; padding:0 1.5rem; }
.hero { padding:1.5rem 0 4.5rem; background:var(--blue-deep); background-image:radial-gradient(1100px 650px at 12% -15%,rgba(0,51,153,.55),transparent 60%),linear-gradient(165deg,var(--blue-deep),#00224c 55%,var(--blue)); }
.hero__bar { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.brand { display:flex; align-items:center; gap:.6rem; color:#fff; font-family:Sora,'Segoe UI',Arial,sans-serif; font-size:1.05rem; font-weight:800; letter-spacing:-.01em; text-decoration:none; }
.brand-logo { display:block; width:50px; height:auto; flex:none; }
.brand__name span { color:var(--gold); }
.brand:focus-visible { outline:2px solid var(--gold); outline-offset:4px; border-radius:4px; }
.back-link { color:#c3d0ef; font-size:.875rem; font-weight:600; text-decoration:none; white-space:nowrap; }
.back-link:hover,.back-link:focus-visible { color:#fff; }
.hero h1 span { color:var(--gold); }
.hero__intro { max-width:760px; margin-top:2.5rem; text-align:center; }
.hero h1 { margin:0; color:#fff; font-family:Sora,'Segoe UI',Arial,sans-serif; font-size:clamp(1.9rem,4vw,2.75rem); font-weight:800; line-height:1.1; letter-spacing:-.02em; }
.hero p { margin:1rem 0 0; color:#c3d0ef; font-size:1.05rem; line-height:1.6; }
.wrap { width:100%; max-width:768px; margin:-3.25rem auto 4rem; padding:0 1.5rem; }
.card { background:#fff; border-radius:30px; box-shadow:var(--shadow-lg); }
form { padding:clamp(1.6rem,4vw,2.5rem); }
fieldset { min-width:0; border:0; padding:0; margin:0 0 1.75rem; }
fieldset:last-of-type { margin-bottom:0; }
legend { width:100%; padding:0 0 .9rem; margin-bottom:1.1rem; border-bottom:1px solid var(--line); color:var(--blue); font-family:Sora,'Segoe UI',Arial,sans-serif; font-size:1rem; font-weight:700; }
.optional { color:var(--ink-soft); font-family:Inter,'Segoe UI',Arial,sans-serif; font-size:.8125rem; font-weight:400; }
.row { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:1rem; }
.field { display:flex; flex-direction:column; gap:.4rem; margin-bottom:1.1rem; }
.field label { color:var(--ink); font-size:.875rem; font-weight:700; }
.required { color:#c0392b; }
.field input,.field textarea { width:100%; min-width:0; padding:.8rem .9rem; border:1.5px solid var(--line); border-radius:12px; background:var(--sand); color:var(--ink); font:inherit; font-size:1rem; }
.field input:focus,.field textarea:focus { outline:2px solid var(--blue); outline-offset:1px; background:#fff; }
.field textarea { min-height:7rem; resize:vertical; }
.hint { margin:-.1rem 0 0; color:var(--ink-soft); font-size:.8125rem; line-height:1.5; }
.honeypot { position:absolute; left:-9999px; top:auto; width:1px; height:1px; overflow:hidden; }
.consent { margin:1.1rem 0 1.5rem; padding:1rem 1.1rem; border:1px solid var(--line); border-radius:12px; background:var(--sand); }
.consent label { display:flex; align-items:flex-start; gap:.65rem; color:var(--ink-soft); font-size:.875rem; line-height:1.55; }
.consent input { width:18px; height:18px; flex:none; margin:.25rem 0 0; accent-color:var(--blue); }
button { display:inline-flex; width:100%; align-items:center; justify-content:center; padding:1rem 1.4rem; border:1.5px solid transparent; border-radius:12px; background:var(--gold); color:var(--blue-deep); box-shadow:var(--shadow-sm); cursor:pointer; font:inherit; font-size:.9375rem; font-weight:700; transition:transform .16s ease,box-shadow .16s ease,background-color .16s ease; }
button:hover { background:var(--gold-dark); box-shadow:var(--shadow-md); transform:translateY(-1px); }
button:disabled { opacity:.6; cursor:wait; transform:none; }
#message { display:none; margin-bottom:1.5rem; padding:1rem; border-radius:12px; line-height:1.5; }
#message.success { display:block; color:#185c37; background:#e7f6ed; }
#message.error { display:block; color:#852523; background:#fdebea; }
.site-footer { padding:0 1.5rem 2.5rem; color:var(--ink-soft); font-size:.8125rem; text-align:center; }
.site-footer a { color:var(--blue); text-decoration:underline; }
@media (max-width:620px) { .row { grid-template-columns:1fr; gap:0; } form { padding:1.5rem 1.15rem; } }
@media (max-width:480px) { .hero__bar { flex-wrap:wrap; } .back-link { margin-left:auto; } }
