:root { --ink:#1b1f24; --muted:#4a5560; --brand:#1f3a5f; --brand-dark:#142a46; --line:#c9d2dc; --bg-alt:#f2f5f8; --focus:#b35c00; }
* { box-sizing:border-box; }
html { font-size:100%; scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior:auto; } }
body { margin:0; font-family: -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; color:var(--ink); background:#fff; line-height:1.6; font-size:1.0625rem; }
.wrap { max-width:62rem; margin:0 auto; padding:0 1.25rem; }
a { color:#1a4f8b; text-underline-offset:0.15em; }
a:hover { color:var(--brand-dark); }
:focus-visible { outline:3px solid var(--focus); outline-offset:2px; }
.skip-link { position:absolute; left:-999px; top:0; background:#fff; color:var(--brand); padding:0.6rem 1rem; z-index:10; font-weight:600; }
.skip-link:focus { left:0.5rem; top:0.5rem; }
.site-header { border-bottom:1px solid var(--line); background:#fff; }
.header-inner { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:0.5rem 1.5rem; padding-top:0.85rem; padding-bottom:0.85rem; }
.brand { font-weight:700; font-size:1.4rem; color:var(--brand); text-decoration:none; letter-spacing:0.01em; }
nav ul { list-style:none; display:flex; flex-wrap:wrap; gap:0.25rem 1.1rem; margin:0; padding:0; }
nav a { color:var(--ink); text-decoration:none; padding:0.35rem 0; display:inline-block; }
nav a:hover { text-decoration:underline; }
section { padding:2.75rem 0; }
section.alt { background:var(--bg-alt); }
.hero { padding:3.25rem 0 2.75rem; background:#eef3f8; border-bottom:1px solid var(--line); }
h1 { font-size:clamp(1.75rem, 4vw, 2.5rem); line-height:1.2; color:var(--brand-dark); margin:0 0 1rem; max-width:44rem; }
h2 { font-size:1.6rem; color:var(--brand-dark); margin:0 0 1rem; }
h3 { font-size:1.15rem; margin:1.4rem 0 0.35rem; color:var(--ink); }
.card h3 { margin-top:0; }
p { margin:0 0 1rem; max-width:46rem; }
.lead { font-size:1.2rem; color:#2c3440; }
.small { font-size:0.95rem; color:var(--muted); }
.button { display:inline-block; background:var(--brand); color:#fff; padding:0.75rem 1.2rem; border-radius:6px; text-decoration:none; font-weight:600; border:2px solid var(--brand); }
.button:hover { background:var(--brand-dark); color:#fff; }
.button-secondary { background:#fff; color:var(--brand); }
.button-secondary:hover { background:#e6edf5; color:var(--brand-dark); }
.hero-actions { display:flex; flex-wrap:wrap; gap:0.75rem; margin-top:1.5rem; }
.cards { display:grid; gap:1.25rem; margin:1.25rem 0 1.5rem; }
.cards.two { grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr)); }
.card { background:#fff; border:1px solid var(--line); border-radius:8px; padding:1.25rem 1.4rem; }
.date { font-size:1.6rem; font-weight:700; color:var(--brand); margin:0.25rem 0 0; }
.price { margin:0.25rem 0 0.75rem; color:var(--muted); }
.amount { font-size:2.2rem; font-weight:700; color:var(--ink); }
.price-card ul { padding-left:1.2rem; margin:0 0 1.25rem; }
.price-card li { margin-bottom:0.35rem; }
.checklist { padding-left:1.2rem; max-width:50rem; }
.checklist li { margin-bottom:0.6rem; }
.downloads { padding-left:1.2rem; }
.downloads li { margin-bottom:0.5rem; }
.meta { color:var(--muted); font-size:0.95rem; }
.contact-list { list-style:none; padding:0; }
.contact-list li { margin-bottom:0.5rem; }
.label { font-weight:600; display:inline-block; min-width:4.5rem; }
.site-footer { border-top:1px solid var(--line); padding:2rem 0; font-size:0.95rem; color:#333c46; }
@media (max-width: 40rem) { body { font-size:1rem; } .header-inner { flex-direction:column; align-items:flex-start; } section { padding:2rem 0; } }
