:root{
  --paper:#F6F7F9; --surface:#FFFFFF; --ink:#18212F; --muted:#5A6577;
  --rule:#D8DDE4; --blue:#1F4E8C; --blue-soft:#E6EDF6; --amber:#E8A33D;
  --on-blue:#FFFFFF;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){
  :root{
    --paper:#121821; --surface:#19212D; --ink:#E7EBF0; --muted:#9AA6B6;
    --rule:#2C3746; --blue:#6E9FE0; --blue-soft:#1C2A3E; --amber:#F0B657;
    --on-blue:#0E1520; color-scheme:dark;
  }
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--paper);color:var(--ink);
  font:400 17px/1.6 "IBM Plex Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;}
h1,h2,h3{font-family:"IBM Plex Sans Condensed","Arial Narrow",system-ui,sans-serif;font-weight:600;line-height:1.12;margin:0}
h1{font-size:clamp(2.4rem,5.2vw,4rem);letter-spacing:-.01em}
h2{font-size:clamp(1.8rem,3.4vw,2.6rem)}
h3{font-size:1.3rem;font-weight:500}
p{margin:0}
a{color:var(--blue)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--amber);outline-offset:2px}
.wrap{max-width:1140px;margin:0 auto;padding:0 24px}
.measure{max-width:62ch}
.skip{position:absolute;left:-999px}.skip:focus{left:16px;top:12px;background:var(--surface);padding:8px 12px;z-index:9}

/* header */
header{border-bottom:1px solid var(--rule);background:var(--paper);position:sticky;top:0;z-index:5}
.bar{display:flex;align-items:center;justify-content:space-between;height:68px;gap:16px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);font-weight:600}
.brand img{width:30px;height:30px}
nav ul{display:flex;gap:28px;list-style:none;margin:0;padding:0}
nav a{color:var(--ink);text-decoration:none;font-weight:500}
nav a:hover{color:var(--blue)}
.btn{display:inline-block;background:var(--blue);color:var(--on-blue);text-decoration:none;font-weight:600;
  padding:12px 22px;border-radius:4px;border:2px solid var(--blue);cursor:pointer;font:inherit;font-weight:600}
.btn:hover{filter:brightness(1.08)}
.btn.ghost{background:transparent;color:var(--blue)}
@media (max-width:760px){nav ul{display:none}}

/* hero */
.hero{padding:72px 0 64px}
.hero-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:48px;align-items:center}
.hero .lede{font-size:1.2rem;color:var(--muted);margin:20px 0 32px}
.hero .actions{display:flex;gap:12px;flex-wrap:wrap}
.flow{width:100%;height:auto;display:block}
.flow .node rect{fill:var(--surface);stroke:var(--rule);stroke-width:1.5}
.flow .node text{fill:var(--ink);font:500 15px "IBM Plex Sans",sans-serif}
.flow .node .sub{fill:var(--muted);font-size:12px;font-weight:400}
.flow .hub rect{fill:var(--blue)}
.flow .hub text{fill:var(--on-blue)}
.flow .hub .sub{fill:var(--on-blue);opacity:.8}
.flow .ch{fill:none;stroke:var(--rule);stroke-width:2;stroke-dasharray:5 6}
.flow .msg{fill:var(--amber)}
.flow-caption{font-size:.9rem;color:var(--muted);margin-top:10px}
@media (max-width:900px){.hero-grid{grid-template-columns:1fr}.hero{padding-top:48px}}

/* platforms strip */
.platforms{border-block:1px solid var(--rule);background:var(--surface)}
.platforms ul{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 28px;list-style:none;margin:0 auto;padding:22px 24px;color:var(--muted);font-weight:500}

/* sections */
section.block{padding:88px 0}
.intro{margin-bottom:48px}
.intro p{color:var(--muted);margin-top:14px;font-size:1.1rem}

/* services: ruled list, not cards */
.services{display:grid;grid-template-columns:1fr 1fr;gap:0 56px}
.svc{padding:28px 0;border-top:1px solid var(--rule)}
.svc p{color:var(--muted);margin-top:10px}
@media (max-width:760px){.services{grid-template-columns:1fr}}

/* HA band */
.ha{background:var(--blue);color:var(--on-blue)}
.ha .wrap{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start}
.ha p{opacity:.9;margin-top:16px}
.ha ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:1px;background:rgba(255,255,255,.25);border:1px solid rgba(255,255,255,.25)}
.ha li{background:var(--blue);padding:22px}
.ha li strong{display:block;font-family:"IBM Plex Sans Condensed",sans-serif;font-size:1.25rem;font-weight:600}
.ha li span{font-size:.92rem;opacity:.85}
@media (max-width:860px){.ha .wrap{grid-template-columns:1fr}}

/* two columns */
.pair{display:grid;grid-template-columns:1fr 1fr;gap:56px}
.pair article{border-left:3px solid var(--amber);padding-left:24px}
.pair article p{color:var(--muted);margin-top:12px}
@media (max-width:760px){.pair{grid-template-columns:1fr}}

/* security */
.security{background:var(--surface);border-block:1px solid var(--rule)}
.security .wrap{display:grid;grid-template-columns:1fr 1.2fr;gap:56px}
.security p+p{margin-top:14px}
.security p{color:var(--muted)}
.checks{list-style:none;padding:0;margin:0}
.checks li{padding:14px 0;border-bottom:1px solid var(--rule);display:flex;gap:12px}
.checks li::before{content:"";flex:none;width:10px;height:10px;margin-top:8px;border-radius:50%;background:var(--amber)}
@media (max-width:860px){.security .wrap{grid-template-columns:1fr}}

/* booking */
.book .wrap{display:grid;grid-template-columns:1fr 1.1fr;gap:56px}
.book .intro{margin:0}
form{display:grid;gap:16px}
label{display:grid;gap:6px;font-weight:500;font-size:.95rem}
input,select,textarea{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--rule);border-radius:4px;padding:11px 12px}
textarea{min-height:120px;resize:vertical}
.row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.hp{display:none}
@media (max-width:860px){.book .wrap{grid-template-columns:1fr}.row{grid-template-columns:1fr}}

footer{border-top:1px solid var(--rule);padding:40px 0;color:var(--muted);font-size:.95rem}
footer .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:20px}
footer ul{list-style:none;display:flex;gap:20px;margin:0;padding:0}
footer a{color:var(--muted)}

/* service pages */
.crumb{font-size:.92rem;color:var(--muted);margin-bottom:18px}
.crumb a{color:var(--muted)}
.page-hero{padding:64px 0 56px;border-bottom:1px solid var(--rule)}
.page-hero .lede{font-size:1.2rem;color:var(--muted);margin-top:18px}
.detail{display:grid;grid-template-columns:1fr 1fr;gap:56px}
.detail h2{font-size:1.6rem;margin-bottom:16px}
.detail p{color:var(--muted)}
.detail p+p{margin-top:14px}
@media (max-width:860px){.detail{grid-template-columns:1fr}}
.steps{list-style:none;counter-reset:s;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,1fr);gap:28px}
.steps li{counter-increment:s;border-top:3px solid var(--blue);padding-top:16px}
.steps li::before{content:counter(s);display:block;font-family:"IBM Plex Sans Condensed",sans-serif;font-size:1.8rem;font-weight:600;color:var(--blue);line-height:1;margin-bottom:10px}
.steps strong{display:block;margin-bottom:6px}
.steps span{color:var(--muted);font-size:.95rem}
@media (max-width:860px){.steps{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.steps{grid-template-columns:1fr}}
.cta{background:var(--blue);color:var(--on-blue);padding:64px 0}
.cta .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px}
.cta p{opacity:.9;margin-top:10px}
.cta .btn{background:var(--on-blue);color:var(--blue);border-color:var(--on-blue)}
.others ul{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:0 40px}
.others li{border-top:1px solid var(--rule)}
.others a{display:block;padding:16px 0;text-decoration:none;font-weight:500}
.others a:hover{text-decoration:underline}
@media (max-width:760px){.others ul{grid-template-columns:1fr}}
.more{display:inline-block;margin-top:12px;font-weight:600}
