* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body { margin: 0; background: #ffffff; color: #33475b; font-family: Manrope, system-ui, sans-serif; font-size: 17px; line-height: 1.6; text-wrap: pretty; -webkit-font-smoothing: antialiased; }
h1, h2, h3 { font-family: Spectral, Georgia, serif; font-weight: 500; color: #0b2a45; margin: 0; letter-spacing: -0.01em; }
p { margin: 0; }
a { color: #0a7178; text-decoration: none; }
a:hover { color: #0b2a45; }
summary { list-style: none; cursor: pointer; }
summary::-webkit-details-marker { display: none; }
details .sign { transition: transform .18s ease; }
details[open] .sign { transform: rotate(45deg); }
details[open] .q { color: #0f8f96; }
.pill { transition: filter .15s ease, box-shadow .15s ease; }
.pill:hover { filter: brightness(1.08); box-shadow: 0 8px 20px rgba(11,42,69,.18); }
:focus-visible { outline: 2px solid #0f8f96; outline-offset: 3px; }
::selection { background: #bdece9; }
a { transition: color .15s ease; }
a:hover { text-decoration: underline; }
.brand:hover, .pill:hover, .nav-link:hover, .ov-link:hover { text-decoration: none; }
.brand:hover { opacity: .85; }
.nav-links { display: flex; align-items: center; gap: clamp(12px,2vw,28px); }
.nav-link { font-size: 13px; font-weight: 700; letter-spacing: 0.09em; text-transform: uppercase; color: #0b2a45; white-space: nowrap; }
.nav-link:hover { color: #0a7178; }
.nav-link.current { color: #0a7178; }
.nav-toggle { position: absolute; width: 1px; height: 1px; opacity: 0; }
.burger { display: none; flex-direction: column; justify-content: center; gap: 5px; width: 46px; height: 46px; padding: 11px; border-radius: 12px; background: #0b2a45; cursor: pointer; transition: background .15s ease; }
.burger span { display: block; height: 3px; border-radius: 2px; background: #ffffff; }
.burger:hover { background: #0f8f96; }
.nav-toggle:focus-visible + .burger { outline: 2px solid #0f8f96; outline-offset: 3px; }
.nav-overlay { display: none; position: fixed; inset: 0; z-index: 60; background: linear-gradient(150deg,#0b2a45 0%,#0d5f6d 58%,#0f8f96 100%); flex-direction: column; justify-content: center; align-items: flex-start; gap: 4px; padding: clamp(24px,8vw,80px); overflow-y: auto; }
.nav-toggle:checked ~ .nav-overlay { display: flex; }
.ov-link { font-family: Spectral, Georgia, serif; font-size: clamp(28px,7vw,52px); line-height: 1.3; color: #ffffff; }
.ov-link:hover, .ov-link.current { color: #7fe3d8; }
.nav-close { position: absolute; top: clamp(16px,4vw,36px); right: clamp(16px,4vw,36px); width: 48px; height: 48px; display: grid; place-items: center; border-radius: 999px; background: rgba(255,255,255,.16); color: #ffffff; font-size: 30px; line-height: 1; cursor: pointer; transition: background .15s ease, color .15s ease; }
.nav-close:hover { background: #ffffff; color: #0b2a45; }
.lift { transition: transform .18s ease, box-shadow .18s ease; }
.lift:hover { transform: translateY(-4px); box-shadow: 0 22px 44px rgba(11,42,69,.16); }
.lift-soft { transition: transform .18s ease, box-shadow .18s ease; }
.lift-soft:hover { transform: translateY(-2px); box-shadow: 0 14px 30px rgba(11,42,69,.10); }
.chip { transition: box-shadow .15s ease, color .15s ease; }
.chip:hover { box-shadow: 0 8px 18px rgba(11,42,69,.12); color: #0a7178; }
.faq { transition: background .15s ease; }
.faq:hover { background: #ece6e0; }
.faq summary:hover .q { color: #0a7178; }
@media (max-width: 1060px) { .nav-links { display: none; } .burger { display: flex; } }
@media (max-width: 560px) { body { font-size: 16px; } }
input, textarea { font-family: inherit; font-size: 16px; color: #0b2a45; width: 100%; padding: 13px 16px; background: #ffffff; border: 1px solid #ccd9e6; border-radius: 10px; }
input:hover, textarea:hover { border-color: #0f8f96; }
input:focus, textarea:focus { outline: 2px solid #0f8f96; outline-offset: 0; border-color: #0f8f96; }
textarea { min-height: 130px; resize: vertical; }
label { display: block; font-size: 12.5px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: #5a6b7d; margin-bottom: 8px; }
a:hover { color: #0b2a45; text-decoration: underline; }
.pill:hover { filter: brightness(1.08); box-shadow: 0 8px 20px rgba(11,42,69,.18); text-decoration: none; }
.brand:hover, .nav-link:hover, .ov-link:hover { text-decoration: none; }
.ov-link:hover { color: #7fe3d8; }

/* layout shell */
.top { background: linear-gradient(168deg,#dbeaf7 0%,#cdeae7 46%,#eef7f5 78%,#ffffff 100%); }
.top-plain { background: #ffffff; }
.top-hero { padding-bottom: 40px; }
.top-404 { min-height: 100vh; display: flex; flex-direction: column; }
.topbar { height: 6px; background: #0b2a45; }
.wrap { max-width: 1240px; margin: 0 auto; padding: 0 clamp(20px,4vw,40px); }
.wrap-narrow { max-width: 1100px; }
.notice { border-radius: 14px; padding: 18px 22px; margin-bottom: 26px; font-size: 16px; }
.notice-ok { background: #e2f4ec; color: #0b4a39; }
.notice-bad { background: #fde8e8; color: #7a1b1b; }
.field-error { border-color: #c0392b !important; }

/* long-form legal pages */
.wrap-narrow { font-size: 16.5px; line-height: 1.75; }
