:root { --navy:#0B1F33; --navy-2:#13314F; --green:#19C37D; --green-l:#DDF6EA; --paper:#F4F7FA; --soft:#56677A; --line:#DCE3EB; --amber:#E9A23B; --amber-l:#FCF0DC; --red:#E14B4B; --red-l:#FCE3E3; --blue-l:#E4EEF9; }
* { box-sizing:border-box; }
body { margin:0; background:var(--paper); color:var(--navy); font:17px/1.6 'Instrument Sans',system-ui,sans-serif; -webkit-font-smoothing:antialiased; }
a { color:inherit; }
h1, h2, h3 { font-weight:700; line-height:1.05; letter-spacing:-.025em; }
.mono { font-family:'DM Mono',ui-monospace,monospace; }
.wrap { max-width:1140px; margin:0 auto; padding:0 24px; }
@media (max-width:480px) { .wrap { padding:0 16px; } }
.skip { position:absolute; left:-999px; } .skip:focus { left:8px; top:8px; background:var(--green); padding:8px; }
:focus-visible { outline:3px solid var(--green); outline-offset:3px; }
.top { background:var(--navy); color:#E8F0F8; }
.top .wrap { display:flex; align-items:center; gap:24px; height:64px; }
.logo { display:flex; align-items:center; gap:10px; text-decoration:none; }
.logo svg { width:32px; height:32px; }
.logo span { font-weight:700; font-size:20px; letter-spacing:-.02em; }
.logo small { font:500 13px 'DM Mono'; color:var(--green); margin-left:4px; }
.top { position:sticky; top:0; z-index:20; }
.top nav { margin-left:auto; display:flex; gap:22px; align-items:center; }
.top nav a { text-decoration:none; color:#A9BCD0; font-weight:600; font-size:15.5px; }
.top nav a[aria-current], .top nav a:hover { color:#fff; }
.top nav .nav-contact { display:none; }
.cta { background:var(--green); color:#062A1A; font-weight:700; text-decoration:none; border-radius:10px; padding:9px 16px; font-size:15px; white-space:nowrap; }
.cta:hover { background:#14A86B; }
.nav-btn { display:none; margin-left:auto; background:none; border:0; padding:10px; cursor:pointer; }
.nav-btn span { display:block; width:22px; height:2px; background:#fff; margin:5px 0; border-radius:2px; transition:transform .2s, opacity .2s; }
.nav-btn[aria-expanded="true"] span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.nav-btn[aria-expanded="true"] span:nth-child(2) { opacity:0; }
.nav-btn[aria-expanded="true"] span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }
.hero { background:var(--navy); color:#fff; padding:56px 0 90px; position:relative; overflow:hidden; }
.hero::after { content:''; position:absolute; right:-120px; top:-120px; width:520px; height:520px; border-radius:50%; border:1px solid rgba(25,195,125,.25); box-shadow:0 0 0 60px rgba(25,195,125,.05), 0 0 0 120px rgba(25,195,125,.03); }
.hero h1 { font-size:clamp(42px,6vw,82px); margin:0 0 14px; max-width:12em; position:relative; }
.hero h1 em { font-style:normal; color:var(--green); }
.hero p { color:#B9CADB; font-size:19px; max-width:34em; margin:0 0 26px; position:relative; }
.form { display:flex; gap:10px; max-width:640px; position:relative; }
.form input { flex:1; min-width:0; font:500 19px 'DM Mono'; padding:14px 16px; border-radius:12px; border:2px solid #2A4766; background:#0F2A44; color:#fff; }
.form input:focus { border-color:var(--green); outline:none; }
.btn { background:var(--green); color:#062A1A; font-weight:700; border:0; border-radius:12px; padding:14px 22px; font-size:16px; cursor:pointer; text-decoration:none; display:inline-block; font-family:inherit; }
.btn:hover { background:#14A86B; }
.res { margin-top:-50px; position:relative; z-index:2; display:none; }
.res.on { display:block; animation:up .35s both; } @keyframes up { from { opacity:0; transform:translateY(10px); } }
.card { background:#fff; border:1px solid var(--line); border-radius:18px; box-shadow:0 30px 60px -40px rgba(11,31,51,.5); overflow:hidden; }
.card .hd { display:grid; grid-template-columns:1fr auto; gap:14px; padding:22px 24px; border-bottom:1px solid var(--line); align-items:center; }
.card .hd h2 { margin:0; font:500 26px 'DM Mono'; letter-spacing:-.02em; word-break:break-all; }
.card .hd small { color:var(--soft); }
.score { font:700 15px 'Instrument Sans'; border-radius:999px; padding:6px 14px; }
.grid { display:grid; grid-template-columns:1fr 1fr; }
.grid > div { padding:20px 24px; }
.grid > div + div { border-left:1px solid var(--line); }
.f { display:grid; grid-template-columns:22px 1fr; gap:10px; padding:10px 0; border-bottom:1px solid var(--line); }
.f:last-child { border-bottom:0; }
.f i { width:14px; height:14px; border-radius:50%; margin-top:6px; }
.f i.ok { background:var(--green); } .f i.warn { background:var(--amber); } .f i.bad { background:var(--red); } .f i.info { background:#8CA3BA; }
.f b { display:block; } .f span { color:var(--soft); font-size:15px; word-break:break-word; }
.kv { font:14px/1.7 'DM Mono'; }
.kv div { display:grid; grid-template-columns:120px 1fr; gap:10px; border-bottom:1px dashed var(--line); padding:4px 0; }
.kv dt { color:var(--soft); } .kv dd { margin:0; word-break:break-all; }
.err { display:none; margin-top:14px; background:var(--red-l); color:#8E1F1F; padding:12px 16px; border-radius:12px; position:relative; }
.err.on { display:block; }
.sec { padding:84px 0; }
.sec h2 { font-size:clamp(32px,4vw,52px); margin:0 0 14px; }
.lede { color:var(--soft); font-size:19px; max-width:36em; margin:0 0 34px; }
.svc { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.svc div { background:#fff; border:1px solid var(--line); border-radius:16px; padding:22px; }
.svc h3 { font-size:21px; margin:0 0 6px; } .svc p { margin:0; color:var(--soft); font-size:16px; }
.src { font-size:13.5px; color:var(--soft); }
.foot { background:var(--navy); color:#A9BCD0; font-size:14.5px; padding:56px 0 36px; }
.foot-g { display:grid; grid-template-columns:2fr repeat(4,1fr); gap:28px; padding-bottom:30px; border-bottom:1px solid #1F3A57; }
.foot-g > div > a { display:block; color:#C9D7E5; text-decoration:none; padding:3px 0; }
.foot-g > div > a:hover { color:#fff; text-decoration:underline; }
.foot-h { font:500 12.5px 'DM Mono'; letter-spacing:.08em; text-transform:uppercase; color:#7F95AC; margin:0 0 10px; }
.foot-b { font-weight:700; font-size:20px; color:#fff; margin:0 0 8px; letter-spacing:-.02em; }
.foot-b small { font:500 13px 'DM Mono'; color:var(--green); margin-left:4px; }
.foot-about p { margin:0 0 12px; max-width:30em; }
.foot-mail a { display:block; color:#fff; font-weight:600; text-decoration:none; }
.foot-mail a:hover { text-decoration:underline; }
.foot .fine { color:#7F95AC; margin:22px 0 0; font-size:13.5px; }
/* inner pages */
.page-hd { background:var(--navy); color:#fff; padding:56px 0 64px; position:relative; overflow:hidden; }
.page-hd .eyebrow { font:500 13px 'DM Mono'; letter-spacing:.08em; text-transform:uppercase; color:var(--green); margin:0 0 12px; }
.page-hd h1 { font-size:clamp(36px,5vw,64px); margin:0 0 16px; max-width:15em; }
.page-hd p { color:#B9CADB; font-size:19px; max-width:36em; margin:0; }
.page-hd .actions { margin-top:26px; display:flex; gap:12px; flex-wrap:wrap; }
.btn-ghost { display:inline-block; border:2px solid #2A4766; color:#fff; text-decoration:none; font-weight:700; border-radius:12px; padding:12px 20px; }
.btn-ghost:hover { border-color:var(--green); }
.sec.alt { background:#fff; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.sec h3 { font-size:22px; margin:0 0 8px; }
.split { display:grid; grid-template-columns:1.1fr .9fr; gap:48px; align-items:center; }
.split.rev > :first-child { order:2; }
.ph { margin:0; border-radius:18px; overflow:hidden; background:var(--line); aspect-ratio:4/3; }
.ph img { width:100%; height:100%; object-fit:cover; display:block; }
.hero-g { display:grid; grid-template-columns:1.15fr .85fr; gap:44px; align-items:center; position:relative; }
.hero-ph { border-radius:20px; overflow:hidden; aspect-ratio:4/3.3; box-shadow:0 30px 60px -30px rgba(0,0,0,.6); position:relative; z-index:1; }
.hero-ph img { width:100%; height:100%; object-fit:cover; display:block; }
.hero .fine { font-size:14px; color:#8FA6BD; margin:14px 0 0; }
.cards { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.cards.two { grid-template-columns:repeat(2,1fr); }
.cards.four { grid-template-columns:repeat(4,1fr); }
.cards > div { background:#fff; border:1px solid var(--line); border-radius:16px; padding:22px; }
.cards h3 { font-size:19px; margin:0 0 6px; }
.cards p { margin:0; color:var(--soft); font-size:16px; }
.cards .k { font:500 12.5px 'DM Mono'; letter-spacing:.06em; text-transform:uppercase; color:#0B6B42; margin:0 0 10px; }
.plans { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; align-items:stretch; }
.plan { background:#fff; border:1px solid var(--line); border-radius:18px; padding:26px; display:flex; flex-direction:column; }
.plan.pick { border:2px solid var(--green); box-shadow:0 30px 60px -45px rgba(11,31,51,.6); }
.plan .tag { font:500 12px 'DM Mono'; letter-spacing:.06em; text-transform:uppercase; color:#0B6B42; background:var(--green-l); border-radius:999px; padding:4px 10px; align-self:flex-start; margin:0 0 12px; }
.plan h3 { font-size:24px; margin:0 0 4px; }
.plan .for { color:var(--soft); margin:0 0 16px; font-size:15.5px; }
.price { font-weight:700; font-size:44px; letter-spacing:-.03em; line-height:1; margin:0; }
.price small { font-size:16px; font-weight:600; color:var(--soft); letter-spacing:0; }
.price-y { color:var(--soft); font-size:14.5px; margin:6px 0 18px; }
.plan ul { list-style:none; padding:0; margin:0 0 20px; flex:1; }
.plan li { padding:7px 0 7px 26px; position:relative; border-top:1px solid var(--line); font-size:15.5px; }
.plan li::before { content:''; position:absolute; left:2px; top:13px; width:12px; height:7px; border-left:2.5px solid var(--green); border-bottom:2.5px solid var(--green); transform:rotate(-45deg); }
.plan li.no { color:var(--soft); }
.plan li.no::before { border:0; width:11px; height:2.5px; background:#9AAABB; transform:none; top:18px; }
.plan .btn { text-align:center; }
.tbl-wrap { overflow-x:auto; border:1px solid var(--line); border-radius:16px; background:#fff; }
table.tbl { border-collapse:collapse; width:100%; font-size:15.5px; min-width:640px; }
.tbl th, .tbl td { text-align:left; padding:12px 16px; border-bottom:1px solid var(--line); vertical-align:top; }
.tbl thead th { font:500 12.5px 'DM Mono'; letter-spacing:.06em; text-transform:uppercase; color:var(--soft); background:var(--paper); }
.tbl tbody tr:last-child td { border-bottom:0; }
.tbl td.y { color:#0B6B42; font-weight:700; } .tbl td.n { color:#8C9BAA; }
.faq { max-width:820px; }
.faq details { background:#fff; border:1px solid var(--line); border-radius:14px; margin:0 0 10px; }
.faq summary { cursor:pointer; padding:16px 20px; font-weight:700; list-style:none; position:relative; padding-right:48px; }
.faq summary::-webkit-details-marker { display:none; }
.faq summary::after { content:'+'; position:absolute; right:20px; top:12px; font-size:24px; color:var(--soft); font-weight:400; }
.faq details[open] summary::after { content:'–'; }
.faq details > p, .faq details > ul { margin:0; padding:0 20px 16px; color:#33475B; }
.faq details > ul { padding-left:40px; }
.steps { counter-reset:s; list-style:none; padding:0; margin:0; display:grid; gap:14px; }
.steps li { counter-increment:s; background:#fff; border:1px solid var(--line); border-radius:16px; padding:20px 22px 20px 72px; position:relative; }
.steps li::before { content:counter(s); position:absolute; left:22px; top:18px; width:34px; height:34px; border-radius:50%; background:var(--navy); color:#fff; font:500 16px/34px 'DM Mono'; text-align:center; }
.steps h3 { font-size:19px; margin:0 0 4px; } .steps p { margin:0; color:var(--soft); font-size:16px; }
.note { background:var(--blue-l); border-radius:14px; padding:16px 20px; font-size:16px; }
.note.warn { background:var(--amber-l); }
.rec { font:14px/1.6 'DM Mono'; background:var(--navy); color:#D7E4F1; border-radius:14px; padding:16px 20px; overflow-x:auto; white-space:pre; }
.rec b { color:var(--green); font-weight:500; }
.prose { max-width:760px; }
.prose h1 { font-size:clamp(34px,4.6vw,56px); margin:0 0 16px; }
.prose h2 { font-size:26px; margin:38px 0 10px; }
.prose p, .prose li { color:#2A3E52; }
.prose ul { padding-left:22px; }
.prose li { margin:4px 0; }
.list { padding-left:20px; margin:0; } .list li { margin:6px 0; }
.band { background:var(--navy); color:#fff; border-radius:22px; padding:40px; display:grid; grid-template-columns:1fr auto; gap:24px; align-items:center; }
.band h2 { color:#fff; font-size:clamp(26px,3vw,38px); margin:0 0 8px; }
.band p { color:#B9CADB; margin:0; }
.band .actions { display:flex; gap:12px; flex-wrap:wrap; }
.contact-g { display:grid; grid-template-columns:repeat(2,1fr); gap:16px; }
.contact-g > div { background:#fff; border:1px solid var(--line); border-radius:16px; padding:24px; }
.contact-g .big { font-size:24px; font-weight:700; text-decoration:none; display:inline-block; margin:6px 0 4px; word-break:break-word; }
.mt { margin-top:28px; } .mt-l { margin-top:48px; }
@media (max-width:980px) {
  .top nav { position:absolute; top:64px; left:0; right:0; background:var(--navy); flex-direction:column; align-items:stretch; gap:0; padding:8px 24px 18px; border-top:1px solid #1F3A57; display:none; box-shadow:0 20px 30px -20px rgba(0,0,0,.5); }
  .top nav.open { display:flex; }
  .top nav a { padding:12px 0; border-bottom:1px solid #1F3A57; font-size:17px; }
  .top nav .nav-contact { display:block; border-bottom:0; color:var(--green); }
  .nav-btn { display:block; } .cta { display:none; }
  .foot-g { grid-template-columns:1fr 1fr; } .foot-about { grid-column:1 / -1; }
  .plans, .cards.four { grid-template-columns:1fr 1fr; }
}
@media (max-width:820px) { .split, .hero-g { grid-template-columns:1fr; gap:28px; } .split.rev > :first-child { order:0; } .cards, .cards.two, .plans, .cards.four, .contact-g { grid-template-columns:1fr; } .band { grid-template-columns:1fr; padding:28px; } .sec { padding:60px 0; } .page-hd { padding:40px 0 48px; } .hero-ph { aspect-ratio:16/10; } }
@media (max-width:820px) { .grid { grid-template-columns:1fr; } .grid > div + div { border-left:0; border-top:1px solid var(--line); } .svc { grid-template-columns:1fr; } .form { flex-direction:column; } }
.hero h1.long { font-size:clamp(32px,3.9vw,50px); max-width:none; line-height:1.08; }
.hero #checkup { margin-top:30px; padding-top:24px; border-top:1px solid #1F3A57; position:relative; }
.hero #checkup .lbl { font-size:16px; color:#D3E0EC; margin:0 0 12px; }
.hero .fine a { color:#B9CADB; }
.res-cta { border-top:1px solid var(--line); padding:16px 24px; background:var(--paper); }
.res-cta p { margin:0; font-size:16px; }
.btn-line { display:inline-block; text-align:center; border:2px solid var(--navy); color:var(--navy); font-weight:700; text-decoration:none; border-radius:12px; padding:12px 20px; }
.btn-line:hover { background:var(--navy); color:#fff; }
.sec a:not(.btn):not(.btn-line):not(.btn-ghost) { color:#0B6B42; }
.split p { font-size:17.5px; }
.src { font-size:13.5px; color:var(--soft); }
.sec h3.mt-l { margin-top:48px; }
.sec h2 + .cards, .sec h2 + .tbl-wrap, .sec h2 + .plans { margin-top:28px; }
.sec .tbl-wrap + .src { margin-top:12px; }
@media (max-width:640px) {
  .tbl-wrap.stack { overflow:visible; border:0; background:none; }
  .stack table.tbl { min-width:0; }
  .stack .tbl thead { display:none; }
  .stack .tbl tr { display:block; background:#fff; border:1px solid var(--line); border-radius:14px; margin:0 0 10px; padding:6px 0; }
  .stack .tbl td { display:block; border:0; padding:6px 16px; }
  .stack .tbl td[data-label]:not([data-label=""])::before { content:attr(data-label); display:block; font:500 11.5px 'DM Mono'; letter-spacing:.06em; text-transform:uppercase; color:var(--soft); }
  .stack .tbl td:first-child { font-weight:700; }
}
.note .mono { white-space:nowrap; }
.sec h2.mt-l { margin-top:56px; }
[id] { scroll-margin-top:84px; }
.card .hd h2 { word-break:normal; overflow-wrap:anywhere; }
@media (max-width:520px) { .card .hd { grid-template-columns:1fr; } .card .hd h2 { font-size:21px; } .score { justify-self:start; } }
