:root{
  --navy:#0B1F36; --navy-2:#132C4A; --navy-3:#1B3A5E;
  --blue:#0A7FC9; --blue-bright:#2E9BE0; --blue-deep:#075E96; --blue-tint:#E4F0FA;
  --red:#D63A1F; --green:#1FA35A; --amber:#E0A100;
  --ink:#14212F; --ink-2:#44546A; --ink-3:#7A8797;
  --bg:#F5F7FA; --surface:#FFFFFF; --surface-2:#EAEFF4; --line:#D8E0E8; --line-2:#C2CCD7;
  --on-dark:#F4F7FA; --on-dark-2:#A6B6C8; --dark-line:rgba(255,255,255,.12);
  --display:"Archivo","Helvetica Neue",Arial,sans-serif;
  --body:"Source Sans 3","Segoe UI",Helvetica,Arial,sans-serif;
  --mono:"IBM Plex Mono",Consolas,"Courier New",monospace;
  --shadow:0 2px 4px rgba(11,31,54,.06),0 16px 40px rgba(11,31,54,.12);
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --navy:#070F1A; --navy-2:#0C1826; --navy-3:#132338;
    --blue:#3FA3E6; --blue-bright:#5DB6F0; --blue-deep:#7CC3F2; --blue-tint:#10283A;
    --ink:#E6ECF2; --ink-2:#B7C3CF; --ink-3:#8494A4;
    --bg:#0E1821; --surface:#15212E; --surface-2:#1C2A3A; --line:#2A3A4C; --line-2:#36485C;
    --shadow:0 2px 4px rgba(0,0,0,.4),0 16px 40px rgba(0,0,0,.4);
  }
}
:root[data-theme="dark"]{
  --navy:#070F1A; --navy-2:#0C1826; --navy-3:#132338;
  --blue:#3FA3E6; --blue-bright:#5DB6F0; --blue-deep:#7CC3F2; --blue-tint:#10283A;
  --ink:#E6ECF2; --ink-2:#B7C3CF; --ink-3:#8494A4;
  --bg:#0E1821; --surface:#15212E; --surface-2:#1C2A3A; --line:#2A3A4C; --line-2:#36485C;
  --shadow:0 2px 4px rgba(0,0,0,.4),0 16px 40px rgba(0,0,0,.4);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto} *{animation:none!important;transition:none!important}}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--body);font-size:17px;line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:var(--blue-deep)}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--blue-bright);outline-offset:2px}
img{max-width:100%;height:auto;display:block}
h1,h2,h3,h4{font-family:var(--display);margin:0;line-height:1.1;text-wrap:balance;font-weight:700;letter-spacing:-.015em}
p{margin:0}
.wrap{max-width:1200px;margin:0 auto;padding-inline:24px}
.eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--blue);font-weight:500;display:inline-flex;align-items:center;gap:10px}
.eyebrow::before{content:"";width:22px;height:2px;background:var(--blue)}
.dark .eyebrow{color:var(--blue-bright)} .dark .eyebrow::before{background:var(--blue-bright)}
section{padding-block:96px}
@media (max-width:700px){section{padding-block:64px}}
.h2{font-size:clamp(30px,4.2vw,48px)}
.lead{font-size:19px;color:var(--ink-2);max-width:60ch}
.dark{background:var(--navy);color:var(--on-dark)}
.dark .lead{color:var(--on-dark-2)}
.btn{display:inline-flex;align-items:center;gap:10px;padding:14px 24px;border-radius:4px;font-weight:600;font-size:16px;text-decoration:none;border:1px solid transparent;cursor:pointer;font-family:var(--body);line-height:1.2;transition:transform .15s,background .15s}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:var(--blue);color:#fff}
.btn-primary:hover{background:var(--blue-bright)}
.btn-light{background:transparent;color:var(--on-dark);border-color:rgba(255,255,255,.35)}
.btn-light:hover{background:rgba(255,255,255,.08)}
.btn-dark{background:transparent;color:var(--ink);border-color:var(--line-2)}
.btn-dark:hover{border-color:var(--ink)}
.btn svg{width:18px;height:18px}

/* nav */
.nav{position:sticky;top:env(safe-area-inset-top,0px);z-index:30;background:var(--navy);color:var(--on-dark);border-bottom:1px solid var(--dark-line)}
.nav .wrap{display:flex;align-items:center;gap:32px;height:70px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit}
.brand svg{width:36px;height:36px;flex:none}
.brand .word{font-family:var(--display);font-weight:800;font-size:19px;letter-spacing:.12em;line-height:1}
.brand .sub{display:block;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--on-dark-2);line-height:1;margin-top:5px}
.nav-links{display:flex;gap:2px;margin-left:auto;list-style:none;padding:0;margin-block:0;align-items:center}
.nav-links a{color:var(--on-dark-2);text-decoration:none;font-size:15px;font-weight:500;padding:8px 12px;border-radius:3px}
.nav-links a:hover{color:#fff}
.nav-links a.phone{color:#fff;font-family:var(--display);font-weight:700;letter-spacing:.03em;margin-left:8px}
.nav-links a.cta{color:#fff;background:var(--blue);margin-left:6px}
.nav-links a.cta:hover{background:var(--blue-bright)}
@media (max-width:960px){.nav-links a:not(.phone):not(.cta){display:none}}
@media (max-width:560px){.nav-links a.phone{display:none}}

/* hero */
.hero{background:var(--navy);color:var(--on-dark);position:relative;overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;background:
  radial-gradient(900px 500px at 78% 40%,rgba(10,127,201,.28),transparent 65%),
  radial-gradient(600px 400px at 10% 100%,rgba(10,127,201,.12),transparent 60%);pointer-events:none}
.hero::after{content:"";position:absolute;inset:0;background:
  repeating-linear-gradient(90deg,rgba(255,255,255,.03) 0 1px,transparent 1px 80px),
  repeating-linear-gradient(0deg,rgba(255,255,255,.03) 0 1px,transparent 1px 80px);
  mask-image:linear-gradient(180deg,rgba(0,0,0,.7),transparent 90%);pointer-events:none}
.hero .wrap{position:relative;display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:56px;align-items:center;padding-block:88px 96px}
.hero h1{font-size:clamp(40px,5.6vw,68px);color:#fff}
.hero h1 span{color:var(--blue-bright)}
.hero .lead{margin-top:22px;font-size:20px}
.hero .actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}
.hero .meta{display:flex;flex-wrap:wrap;gap:10px 28px;margin-top:40px;font-size:14px;color:var(--on-dark-2)}
.hero .meta b{color:#fff;font-weight:600}
.device{position:relative}
.sysrender{width:100%;height:auto;filter:drop-shadow(0 30px 40px rgba(0,0,0,.5))}
.screen{background:#0B1F36;border-radius:10px;padding:14px;box-shadow:0 40px 80px rgba(0,0,0,.45),0 0 0 1px rgba(255,255,255,.12) inset;transform:rotateY(-7deg) rotateX(3deg);transform-origin:center}
.screen img{border-radius:4px;width:100%}
.screen .bezel{position:absolute;left:14px;right:14px;bottom:4px;height:6px;border-radius:0 0 8px 8px;background:rgba(255,255,255,.05)}
.leds{margin:22px 0 0 auto;width:fit-content;display:flex;gap:10px;background:var(--navy-2);border:1px solid var(--dark-line);border-radius:6px;padding:10px 14px;box-shadow:var(--shadow)}
.leds span{display:flex;align-items:center;gap:7px;font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--on-dark-2)}
.leds i{width:10px;height:10px;border-radius:50%;background:#2B3A4C;box-shadow:inset 0 0 0 1px rgba(0,0,0,.3)}
.leds i.on{background:var(--green);box-shadow:0 0 10px var(--green)}
.leds i.red{background:#4A2420}
.leds i.amb{background:#4A3B10}
.device figcaption{margin-top:18px;font-family:var(--mono);font-size:12px;color:var(--on-dark-2);text-align:right}
@media (max-width:900px){.hero .wrap{grid-template-columns:1fr;padding-block:56px 72px}.screen{transform:none}.leds{margin:16px auto 0}.device figcaption{text-align:left;margin-top:14px}}

/* group strip */
.groupstrip{background:var(--surface);border-bottom:1px solid var(--line)}
.groupstrip .wrap{display:grid;gap:22px;padding-block:32px 28px}
.groupstrip .intro{font-size:18px;color:var(--ink-2);max-width:80ch}
.groupstrip .intro b{color:var(--ink)}
.groupstrip a{justify-self:start;font-weight:600;text-decoration:none;color:var(--blue-deep)}
.org{position:relative;display:grid;gap:56px;padding-block:6px}
.org-lines{position:absolute;inset:0;width:100%;height:100%;z-index:0}
.org-centre{position:relative;z-index:1;justify-self:center;width:min(360px,100%);text-align:center;background:var(--navy);color:var(--on-dark);border-radius:8px;padding:18px 22px;display:grid;gap:4px;box-shadow:var(--shadow)}
.org-centre b{font-family:var(--display);font-size:22px;color:#fff}
.org-centre span{font-size:14px;color:var(--on-dark-2)}
.org .k{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--blue-bright)}
.org-row{position:relative;z-index:1;display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.org-node{background:var(--bg);border:1px solid var(--line-2);border-radius:8px;padding:16px 18px;display:grid;gap:5px;text-align:center}
.org-node b{font-family:var(--display);font-size:17px;color:var(--ink)}
.org-node span{font-size:15px;color:var(--ink-2)}
.org-node .k{color:var(--blue-deep)}
.org-node.lead{background:var(--blue-tint);border-color:var(--blue);box-shadow:0 0 0 3px rgba(10,127,201,.12)}
.org-node.lead b{font-size:19px}
@media (max-width:760px){.org-lines{display:none}.org{gap:16px}.org-row{grid-template-columns:1fr}.org-centre{width:100%}}
/* ore band */
.ores{background:var(--navy);color:var(--on-dark-2);border-top:1px solid var(--dark-line);border-bottom:1px solid var(--dark-line)}
.ores .wrap{display:flex;flex-wrap:wrap;gap:12px 0;align-items:center;min-height:60px;font-size:14px}
.ores b{color:#fff;font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;margin-right:24px;font-weight:500}
.ores span{padding:6px 18px;border-left:1px solid var(--dark-line);font-weight:500;color:var(--on-dark)}
.ores span:first-of-type{border-left:0;padding-left:0}

/* learn more */
.learn{margin-top:36px;border:1px solid var(--line);border-radius:8px;background:var(--surface);overflow:hidden}
.learn>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 22px;font-family:var(--display);font-weight:600;font-size:17px;color:var(--ink)}
.learn>summary::-webkit-details-marker{display:none}
.learn>summary::after{content:"Learn more +";font-family:var(--body);font-size:14px;font-weight:600;color:var(--blue-deep);white-space:nowrap}
.learn[open]>summary::after{content:"Show less \2212"}
.learn>summary::before{display:none}
.learn .inner{padding:8px 22px 26px;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:28px 40px}
.learn h4{font-family:var(--display);font-size:15px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--blue-deep);margin:18px 0 8px}
.learn p{color:var(--ink-2);font-size:16px;margin:0 0 10px}
.learn ul{margin:0;padding-left:18px;color:var(--ink-2);font-size:16px;display:grid;gap:6px}
.learn table{width:100%;border-collapse:collapse;font-size:15px;margin-top:6px}
.learn td{padding:7px 0;border-top:1px solid var(--line);vertical-align:top;color:var(--ink-2)}
.learn td:first-child{color:var(--ink);font-weight:600;width:42%;padding-right:12px}
.learn .full{grid-column:1/-1}
.learn .faq p{margin-bottom:4px}.learn .faq b{color:var(--ink)}
/* data sheet + price guide */
.datasheet{background:var(--surface);border-block:1px solid var(--line)}
.ds-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);gap:32px;align-items:start;margin-top:32px}
@media (max-width:900px){.ds-grid{grid-template-columns:1fr}}
.dsform{display:grid;gap:18px;background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:28px}
.dsform fieldset{border:0;padding:0;margin:0;display:grid;gap:12px}
.dsform legend{font-family:var(--display);font-weight:700;font-size:15px;text-transform:uppercase;letter-spacing:.04em;color:var(--blue-deep);padding:0;margin-bottom:6px}
.dsform .row{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}
.dsform label{display:grid;gap:5px;font-size:13px;font-weight:600;color:var(--ink-2)}
.dsform input,.dsform select,.dsform textarea{font:inherit;font-size:15px;padding:9px 11px;border:1px solid var(--line-2);border-radius:4px;background:var(--surface);color:var(--ink);width:100%}
.dsform textarea{min-height:80px;resize:vertical}
.dsform .chk{display:flex;align-items:center;gap:8px;font-weight:500;color:var(--ink-2)}
.dsform .chk input{width:auto}
.dsform .actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.dsform small{color:var(--ink-3);font-size:13px}
.ds-side{display:grid;gap:16px}
.quote-panel{border:1px solid var(--blue);border-radius:8px;background:var(--surface);padding:20px;display:grid;gap:14px}
.qp-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;align-items:baseline}
.qp-head b{font-family:var(--display);font-size:20px}
.qp-head span{font-family:var(--mono);font-size:12px;color:var(--ink-3)}
#qp-table{width:100%;border-collapse:collapse;font-size:15px}
#qp-table td{padding:8px 0;border-top:1px solid var(--line);vertical-align:top}
#qp-table td:last-child{text-align:right;font-family:var(--mono);white-space:nowrap;font-variant-numeric:tabular-nums}
#qp-table td small{display:block;color:var(--ink-3);font-size:13px}
.qp-total{display:flex;justify-content:space-between;align-items:baseline;padding-top:10px;border-top:2px solid var(--navy)}
.qp-total b{font-family:var(--display);font-size:24px;font-variant-numeric:tabular-nums}
.qp-ai{background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:14px 16px;display:grid;gap:8px}
.qp-ai-head{display:flex;align-items:center;gap:8px;font-family:var(--display);font-weight:600;font-size:14px}
.qp-ai-head .dot{width:8px;height:8px;border-radius:50%;background:var(--green)}
#qp-ai-text{white-space:pre-wrap;font-size:15px;color:var(--ink-2)}
.qp-note{font-size:13px;color:var(--ink-3)}
.ds-card{background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:20px;display:grid;gap:12px}
.ds-card img{border:1px solid var(--line);border-radius:4px;width:150px}
.ds-card b{font-family:var(--display);font-size:16px}
.ds-card p{color:var(--ink-2);font-size:15px}
.ds-card .btn{justify-self:start}
.dims{display:grid;gap:8px}
.dims svg{width:100%;height:auto}
.price .inner{grid-template-columns:1fr}
.price table{font-size:15px}
.price td:last-child,.price th:last-child{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums;white-space:nowrap}
.price th{text-align:left;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);padding:6px 0;border-bottom:1px solid var(--line-2)}
.price .cols3{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px 40px}
.price .note{font-size:14px;color:var(--ink-3);border-left:3px solid var(--amber);padding:8px 12px;background:var(--bg);border-radius:0 4px 4px 0}
/* slideshow */
.slides{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);overflow:hidden}
.slides .track{position:relative;aspect-ratio:4/3;background:#F5F7FA}
.slides figure{position:absolute;inset:0;margin:0;opacity:0;transition:opacity .35s;pointer-events:none}
.slides figure.on{opacity:1;pointer-events:auto}
.slides figure img{width:100%;height:100%;object-fit:cover;display:block}
.slides figcaption{position:absolute;left:0;right:0;bottom:0;padding:10px 14px;font-size:13px;font-family:var(--mono);letter-spacing:.04em;color:#fff;background:linear-gradient(180deg,transparent,rgba(11,31,54,.75))}
.slides .nav{position:absolute;top:50%;transform:translateY(-50%);width:40px;height:40px;border-radius:50%;border:0;background:rgba(11,31,54,.72);color:#fff;font-size:26px;line-height:1;cursor:pointer;display:grid;place-items:center;transition:background .15s}
.slides .nav:hover{background:var(--blue)}
.slides .prev{left:12px}.slides .next{right:12px}
.slides .count{position:absolute;top:12px;right:12px;font-family:var(--mono);font-size:12px;color:#fff;background:rgba(11,31,54,.72);padding:4px 8px;border-radius:3px}
.slides .thumbs{display:flex;gap:6px;padding:8px;overflow-x:auto;background:var(--surface-2);scrollbar-width:thin}
.slides .thumbs button{flex:0 0 72px;height:54px;padding:0;border:2px solid transparent;border-radius:4px;overflow:hidden;background:#fff;cursor:pointer;opacity:.7}
.slides .thumbs button img{width:100%;height:100%;object-fit:cover;display:block}
.slides .thumbs button.on{border-color:var(--blue);opacity:1}
.slides.dark .track{background:#0F2740}
.learn .gallery-wrap{grid-column:1/-1}
/* overview */
.overview{background:var(--surface);border-bottom:1px solid var(--line)}
.ov-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;margin-top:36px}
.ov{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:8px;background:var(--surface);text-decoration:none;color:var(--ink);overflow:hidden;transition:border-color .15s,transform .15s,box-shadow .15s}
.ov:hover{border-color:var(--blue);transform:translateY(-3px);box-shadow:var(--shadow)}
.ov .pic{aspect-ratio:4/3;background:#F5F7FA;border-bottom:1px solid var(--line);overflow:hidden}
.ov .pic img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s}
.ov:hover .pic img{transform:scale(1.04)}
.ov .txt{display:flex;flex-direction:column;gap:6px;padding:18px 20px 20px;flex:1}
.ov b{font-family:var(--display);font-size:20px;font-weight:700}
.ov span{color:var(--ink-2);font-size:15px}
.ov em{font-style:normal;font-size:14px;color:var(--blue-deep);font-weight:600;margin-top:auto;padding-top:10px}
.prod-head{display:grid;gap:8px;margin-bottom:40px;padding-bottom:24px;border-bottom:2px solid var(--navy)}
:root[data-theme="dark"] .prod-head,:root:not([data-theme="light"]) .prod-head{border-bottom-color:var(--blue)}
.prod .feature{border-top:0;padding-block:0}
.prod.alt{background:var(--surface);border-block:1px solid var(--line)}
/* feature rows */
.features{background:var(--bg)}
.feature{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:center;padding-block:56px;border-top:1px solid var(--line)}
.feature:first-of-type{border-top:0;padding-top:0}
.feature.flip .media{order:2}
.feature h3{font-size:clamp(26px,3vw,36px);margin-top:14px}
.feature .tag{font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);display:block;margin-bottom:6px}
.feature p{color:var(--ink-2);font-size:17px;margin-top:8px;max-width:56ch}
.feature ul{list-style:none;padding:0;margin:20px 0 0;display:grid;gap:8px;color:var(--ink-2);font-size:16px}
.feature li{display:grid;grid-template-columns:18px 1fr;gap:10px;align-items:start}
.feature li>span b{color:var(--ink)}
.feature li::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--blue);margin-top:9px}
.feature .kpi{display:flex;gap:32px;margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}
.feature .kpi b{display:block;font-family:var(--display);font-size:26px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink)}
.feature .kpi span{font-size:13px;color:var(--ink-3)}
.media{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:24px;box-shadow:var(--shadow);position:relative;overflow:hidden}
.media img{border-radius:4px}
.media .ctrl{max-height:400px;width:auto;margin:0 auto}

.media svg{width:100%;height:auto;display:block}
.media.photo{padding:0}
.media.photo img{width:100%;border-radius:8px}
.gallery{display:grid;gap:8px}
.gallery .thumbs2{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:0 8px 8px}
.gallery .thumbs2 img{border-radius:6px;aspect-ratio:16/9;object-fit:cover}
.media.photo .cap{position:absolute;left:14px;bottom:12px;font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#fff;background:rgba(11,31,54,.7);padding:5px 9px;border-radius:3px}
.diagram-cap{font-family:var(--mono);font-size:12px;color:var(--ink-3);margin-top:12px}
@media (max-width:860px){.feature{grid-template-columns:1fr;gap:28px}.feature.flip .media{order:0}}

/* how it works */
.how{background:var(--surface);border-block:1px solid var(--line)}
.how .cols{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:56px;align-items:center}
.steps{list-style:none;padding:0;margin:28px 0 0;display:grid;gap:0;counter-reset:s}
.steps li{display:grid;grid-template-columns:44px 1fr;gap:16px;padding-block:18px;border-top:1px solid var(--line)}
.steps li::before{counter-increment:s;content:counter(s,decimal-leading-zero);font-family:var(--mono);font-size:13px;color:var(--blue);padding-top:4px}
.steps b{display:block;font-family:var(--display);font-size:18px;font-weight:600}
.steps span{color:var(--ink-2);font-size:16px}
.plot{background:var(--navy);border-radius:8px;padding:20px;box-shadow:var(--shadow)}
.plot canvas{width:100%;height:auto;display:block;border-radius:4px}
.plot .legend{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:12px;font-family:var(--mono);font-size:12px;color:var(--on-dark-2)}
.plot .legend i{display:inline-block;width:18px;height:3px;vertical-align:middle;margin-right:8px;border-radius:2px}
@media (max-width:860px){.how .cols{grid-template-columns:1fr}}

/* specs */
.specs .grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;margin-top:8px}
.spec{background:var(--surface);border:1px solid var(--line);border-radius:6px;overflow:hidden}
.spec h3{font-size:12px;font-family:var(--mono);font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--on-dark);background:var(--navy);padding:12px 18px}
.spec table{width:100%;border-collapse:collapse;font-size:15px}
.spec td{padding:9px 18px;border-top:1px solid var(--line);vertical-align:top}
.spec tr:first-child td{border-top:0}
.spec td:first-child{color:var(--ink-2)}
.spec td:last-child{font-family:var(--mono);font-size:14px;text-align:right;font-variant-numeric:tabular-nums}

/* services */
.services{background:var(--surface);border-block:1px solid var(--line)}
.svc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;margin-top:8px}
.svc{padding:28px;border:1px solid var(--line);border-radius:6px;background:var(--bg);display:flex;flex-direction:column;gap:12px;transition:border-color .15s,transform .15s}
.svc:hover{border-color:var(--blue);transform:translateY(-2px)}
.svc svg{width:40px;height:40px;color:var(--blue)}
.svc h3{font-size:21px}
.svc p{color:var(--ink-2);font-size:16px}

/* support (dark) */
.support{background:var(--navy);color:var(--on-dark)}
.support .head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;align-items:end;margin-bottom:40px}
.support .head p{color:var(--on-dark-2);font-size:18px}
.assist{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:28px;align-items:start}
@media (max-width:960px){.assist{grid-template-columns:1fr}.support .head{grid-template-columns:1fr;gap:16px}}
.chat{background:var(--surface);color:var(--ink);border-radius:8px;display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow)}
.chat-head{display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--line);background:var(--surface-2)}
.chat-head .dot{width:9px;height:9px;border-radius:50%;background:var(--green);flex:none;box-shadow:0 0 8px var(--green)}
.chat-head .dot.off{background:var(--ink-3);box-shadow:none}
.chat-head .dot.busy{background:var(--amber);box-shadow:0 0 8px var(--amber)}
.chat-head b{font-family:var(--display);font-size:16px;font-weight:600}
.chat-head small{color:var(--ink-3);font-size:12px;margin-left:auto;font-family:var(--mono)}
.chat-log{flex:1;padding:18px;display:flex;flex-direction:column;gap:14px;overflow-y:auto;max-height:600px;min-height:360px;background:var(--bg)}
.msg{max-width:90%;padding:12px 15px;border-radius:8px;font-size:16px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}
.msg.user{align-self:flex-end;background:var(--navy-3);color:var(--on-dark);border-bottom-right-radius:2px}
.msg.bot{align-self:flex-start;background:var(--surface);border:1px solid var(--line);color:var(--ink);border-bottom-left-radius:2px}
.msg.bot.thinking{color:var(--ink-3);font-style:italic}
.msg .note{display:block;margin-top:8px;font-size:13px;color:var(--ink-3);font-style:italic}
.msg .thumbs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.msg .thumbs img{height:84px;width:auto;border-radius:4px;border:1px solid rgba(255,255,255,.25)}
.chat-chips{display:flex;flex-wrap:wrap;gap:8px;padding:12px 18px;background:var(--bg);border-top:1px solid var(--line)}
.chat-chips button{font:inherit;font-size:14px;padding:6px 12px;border-radius:999px;border:1px solid var(--line-2);background:var(--surface);color:var(--ink-2);cursor:pointer}
.chat-chips button:hover{border-color:var(--blue);color:var(--blue-deep)}
.attach-bar{display:none;gap:10px;align-items:center;flex-wrap:wrap;padding:10px 18px;border-top:1px solid var(--line);background:var(--surface);font-size:14px;color:var(--ink-2)}
.attach-bar.on{display:flex}
.attach-bar .thumb{position:relative}
.attach-bar .thumb img{height:56px;width:auto;border-radius:3px;border:1px solid var(--line)}
.attach-bar .thumb button{position:absolute;top:-6px;right:-6px;width:20px;height:20px;border-radius:50%;border:0;background:var(--navy);color:#fff;font-size:12px;line-height:1;cursor:pointer}
.chat-form{display:flex;gap:10px;padding:14px 18px;border-top:1px solid var(--line);background:var(--surface);align-items:flex-end}
.chat-form textarea{flex:1;resize:none;font:inherit;font-size:16px;padding:10px 12px;border:1px solid var(--line-2);border-radius:4px;background:var(--bg);color:var(--ink);min-height:44px;max-height:140px}
.chat-form button{font:inherit;font-weight:600;font-size:15px;height:44px;padding:0 18px;border-radius:4px;border:1px solid transparent;cursor:pointer;background:var(--blue);color:#fff;white-space:nowrap}
.chat-form button.photo{background:var(--surface);color:var(--ink-2);border-color:var(--line-2);display:none;gap:6px;align-items:center}
.chat-form button.photo.on{display:inline-flex}
.chat-form button.photo svg{width:18px;height:18px}
.chat-form button.stop{background:transparent;color:var(--red);border-color:var(--red)}
.chat-form button:disabled{opacity:.5;cursor:default}
.chat-foot{padding:10px 18px;font-size:13px;color:var(--ink-3);border-top:1px solid var(--line);background:var(--surface)}
.chat-off{padding:24px 18px;color:var(--ink-2);font-size:16px;display:none;background:var(--surface)}
.chat-off b{display:block;font-family:var(--display);font-size:18px;margin-bottom:6px;color:var(--ink)}
.side{display:flex;flex-direction:column;gap:16px}
.annot{background:var(--navy-2);border:1px solid var(--dark-line);border-radius:8px;overflow:hidden}
.annot .shot{position:relative}
.annot img{width:100%}
.annot .pin{position:absolute;width:24px;height:24px;border-radius:50%;background:var(--red);color:#fff;font-family:var(--mono);font-size:12px;font-weight:500;display:grid;place-items:center;box-shadow:0 0 0 3px rgba(214,58,31,.3)}
.annot ol{margin:0;padding:14px 18px 16px 34px;font-size:14px;color:var(--on-dark-2);display:grid;gap:6px}
.annot ol li::marker{color:var(--red);font-family:var(--mono)}
.annot ol b{color:var(--on-dark);font-weight:600}
.annot .cap{padding:12px 18px 0;font-family:var(--display);font-size:15px;font-weight:600;color:var(--on-dark)}
.ref{display:flex;flex-direction:column;gap:8px}
details{background:var(--navy-2);border:1px solid var(--dark-line);border-radius:6px;color:var(--on-dark)}
details summary{cursor:pointer;padding:11px 14px;font-weight:600;font-size:15px;list-style:none;display:flex;align-items:center;gap:10px}
details summary::-webkit-details-marker{display:none}
details summary::before{content:"";width:7px;height:7px;border-right:2px solid var(--blue-bright);border-bottom:2px solid var(--blue-bright);transform:rotate(-45deg);transition:transform .15s;flex:none}
details[open] summary::before{transform:rotate(45deg)}
details .body{padding:0 14px 14px;font-size:14px;color:var(--on-dark-2)}
details .body ol,details .body ul{margin:0;padding-left:18px;display:grid;gap:6px}
details .body b{color:var(--on-dark)}
details .body code{font-family:var(--mono);font-size:13px;background:rgba(255,255,255,.08);padding:1px 5px;border-radius:3px;color:var(--on-dark)}
.led{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;vertical-align:-1px}
.warnbox{border-left:3px solid var(--red);background:var(--navy-2);padding:12px 16px;font-size:14px;color:var(--on-dark-2);border-radius:0 6px 6px 0}
.warnbox b{color:#FF7A64}

/* group */
.group .cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;margin-top:40px}
.co{padding:32px 28px;background:var(--surface);border:1px solid var(--line);border-radius:6px;position:relative;overflow:hidden}
.co::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--blue)}
.co .n{font-family:var(--mono);font-size:12px;color:var(--ink-3);letter-spacing:.12em}
.co.lead{grid-column:1/-1;background:var(--navy);color:var(--on-dark);border-color:var(--navy)}
.co.lead::before{background:var(--blue-bright)}
.co.lead .n{color:var(--blue-bright)}
.co.lead h3{font-size:28px;color:#fff}
.co.lead p{color:var(--on-dark-2);font-size:17px;max-width:80ch}
.co .pills{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.co .pills span{font-size:13px;font-weight:600;padding:5px 11px;border-radius:999px;background:rgba(255,255,255,.1);color:#fff}
.co h3{font-size:22px;margin:10px 0 10px}
.co p{color:var(--ink-2);font-size:16px}
.group .quote{margin-top:48px;padding:32px;border-radius:6px;background:var(--surface);border:1px solid var(--line);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:32px;align-items:center}
.group .quote p{font-size:19px;color:var(--ink-2);max-width:70ch}
.group .quote .vals{display:grid;gap:6px;font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--blue)}
@media (max-width:760px){.group .quote{grid-template-columns:1fr}}

/* contact */
.contact{background:var(--navy);color:var(--on-dark)}
.contact .cols{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:56px;align-items:start}
.contact dl{display:grid;grid-template-columns:auto 1fr;gap:18px 24px;margin:32px 0 0;font-size:17px}
.contact dt{color:var(--on-dark-2);font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;padding-top:5px}
.contact dd{margin:0;color:var(--on-dark)}
.contact dd a{font-family:var(--display);font-size:24px;font-weight:700;text-decoration:none;color:#fff}
.contact dd a:hover{color:var(--blue-bright)}
.contact dd small{color:var(--on-dark-2)}
.enq{background:var(--surface);color:var(--ink);border-radius:8px;padding:32px;display:grid;gap:16px;box-shadow:var(--shadow)}
.enq label{display:grid;gap:6px;font-size:14px;font-weight:600;color:var(--ink-2)}
.enq input,.enq textarea,.enq select{font:inherit;font-size:16px;padding:11px 12px;border:1px solid var(--line-2);border-radius:4px;background:var(--bg);color:var(--ink);width:100%}
.enq textarea{min-height:110px;resize:vertical}
.enq .two{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.enq small{color:var(--ink-3);font-size:13px}
@media (max-width:860px){.contact .cols{grid-template-columns:1fr}.enq .two{grid-template-columns:1fr}}

footer{background:var(--navy-2);color:var(--on-dark-2);padding-block:36px;font-size:14px;border-top:1px solid var(--dark-line)}
footer .wrap{display:flex;flex-direction:column;gap:18px}
footer .row{display:flex;flex-wrap:wrap;gap:16px 40px;align-items:center;justify-content:space-between}
footer a{color:var(--on-dark);text-decoration:none}
footer .links{display:flex;flex-wrap:wrap;gap:6px 20px}

/* ---------- multi-page additions ---------- */
.skip { position:absolute;left:-999px;top:0;background:var(--blue);color:#fff;padding:10px 16px;z-index:100 }
.skip:focus { left:12px;top:12px }
.nav-links a[aria-current="page"] { color:#fff;box-shadow:inset 0 -2px 0 var(--blue-bright) }
.nav-toggle { display:none;margin-left:auto;width:44px;height:44px;border:0;background:transparent;cursor:pointer;flex-direction:column;justify-content:center;gap:6px;padding:8px;border-radius:4px }
.nav-toggle span { display:block;height:2px;background:#fff;border-radius:2px;transition:transform .2s,opacity .2s }
.nav-toggle[aria-expanded="true"] span:nth-child(1) { transform:translateY(8px) rotate(45deg) }
.nav-toggle[aria-expanded="true"] span:nth-child(2) { opacity:0 }
.nav-toggle[aria-expanded="true"] span:nth-child(3) { transform:translateY(-8px) rotate(-45deg) }
@media (max-width:1000px){
  .nav-toggle { display:flex }
  .nav-links { display:none;position:absolute;left:0;right:0;top:70px;background:var(--navy);border-bottom:1px solid var(--dark-line);flex-direction:column;align-items:stretch;padding:8px 16px 16px;gap:2px;box-shadow:0 12px 30px rgba(0,0,0,.35) }
  .nav-links.open { display:flex }
  .nav-links a,.nav-links a:not(.phone):not(.cta),.nav-links a.phone { display:block;padding:12px 10px;font-size:17px }
  .nav-links a.cta { text-align:center;margin:8px 0 0 }
  .nav-links a.phone { margin:0 }
}
.crumbs { background:var(--surface);border-bottom:1px solid var(--line) }
.crumbs ol { list-style:none;margin:0;padding:12px 0;display:flex;flex-wrap:wrap;gap:6px;font-size:14px;color:var(--ink-3) }
.crumbs li+li::before { content:"/";margin-right:6px;color:var(--line-2) }
.crumbs a { color:var(--ink-2);text-decoration:none }
.crumbs a:hover { color:var(--blue) }
.learn.open>.learn-title { padding:16px 22px;font-family:var(--display);font-weight:600;font-size:17px;color:var(--ink);margin:0 }
.learn.open .inner { border-top:1px solid var(--line) }
.cta-band { background:var(--navy);color:var(--on-dark);padding-block:56px }
.cta-band .wrap { display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px 40px }
.cta-band h2 { color:#fff;font-size:clamp(24px,3vw,32px) }
.cta-band p { margin:8px 0 0;max-width:60ch;color:var(--on-dark-2);font-size:17px }
.cta-band .actions { display:flex;flex-wrap:wrap;gap:12px }
.simple { min-height:50vh }
.simple .lead a { color:var(--blue) }
.links404 { display:grid;gap:8px;margin-top:28px;max-width:480px }
.links404 a { color:var(--blue-deep);font-weight:600;text-decoration:none;padding:10px 14px;border:1px solid var(--line);border-radius:4px;background:var(--surface) }
.links404 a:hover { border-color:var(--blue) }
.hp { position:absolute;left:-9999px;opacity:0;height:0;width:0 }
.promo { max-width:760px;margin:0 auto 44px;border-radius:8px;overflow:hidden;background:#0B1F36;box-shadow:var(--shadow);border:1px solid var(--line) }
.promo video { display:block;width:100%;aspect-ratio:16/9;background:#000 }
.promo figcaption { padding:10px 16px;font-size:14px;color:var(--ink-3);background:var(--surface) }
.form-busy { opacity:.6;pointer-events:none }
.msg.bot a { color:var(--blue-bright) }
