/* NWEP — nwep.ca
   Light-first, high contrast, system fonts only. No webfonts, no imports,
   nothing render-blocking. Dark mode follows the visitor's OS setting. */

*,*::before,*::after{box-sizing:border-box}

:root{
  --bg:#ffffff;
  --surface:#f6f8fb;
  --surface2:#eef2f7;
  --border:#dfe5ee;
  --text:#101620;
  --muted:#5a6678;
  --accent:#d32f3a;
  --accent-dark:#a8232d;
  --accent-solid:#a8232d;   /* white text on this = 7.13:1 */
  --accent-soft:#fdecec;
  --ok:#0b7a5a;
  --ok-soft:#e6f5ef;
  --ink-shadow:#101620;
  --radius:14px;
  --maxw:1160px;
  --font:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  color-scheme:light;
}

@media (prefers-color-scheme:dark){
  :root{
    --bg:#0e1319; --surface:#151c25; --surface2:#1c242f; --border:#2a3440;
    --text:#e9eef5; --muted:#9aa7b8; --accent:#ff4d5a; --accent-dark:#d32f3a; --accent-solid:#d32f3a; /* white on this = 4.96:1 */
    --accent-soft:#2a1619; --ok:#3ddba0; --ok-soft:#10261f; --ink-shadow:#000;
    color-scheme:dark;
  }
}

/* Must outrank the display:grid/flex rules below, or [hidden] panels still show. */
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font:17px/1.7 var(--font);-webkit-font-smoothing:antialiased}
img,svg{max-width:100%;height:auto;display:block}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
/* WCAG 1.4.1: colour alone must not be the only cue. Body-copy links are
   underlined; nav, buttons and cards opt out because they are visually
   distinct by shape and position. */
main p a,main li a,main td a,main th a,.foot-bottom a,details a,
.lede a,.calc-foot a{text-decoration:underline;text-underline-offset:2px;
  text-decoration-thickness:1px}
h1,h2,h3,h4{line-height:1.18;margin:0 0 .45em;font-weight:800;letter-spacing:-.025em;color:var(--text)}
h1{font-size:clamp(2rem,4.8vw,3.35rem)}
h2{font-size:clamp(1.6rem,3.2vw,2.35rem)}
h3{font-size:clamp(1.12rem,1.8vw,1.35rem);font-weight:700}
h4{font-size:1rem}
p{margin:0 0 1.1em}
ul,ol{padding-left:1.25em}
.wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:20px}
section{padding-block:clamp(52px,7vw,92px)}
.tint{background:var(--surface);border-block:1px solid var(--border)}
.eyebrow{display:inline-block;color:var(--accent);font-size:.75rem;font-weight:800;
  letter-spacing:.15em;text-transform:uppercase;margin:0 0 .8em}
.lede{color:var(--muted);font-size:1.1rem;max-width:64ch}
.center{text-align:center}
.center .lede{margin-inline:auto}
.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* ---------- buttons: offset-shadow press ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;
  font:inherit;font-size:.97rem;font-weight:700;letter-spacing:-.01em;
  padding:14px 26px;border-radius:10px;border:2px solid var(--ink-shadow);
  cursor:pointer;text-decoration:none!important;white-space:nowrap;
  box-shadow:3px 3px 0 var(--ink-shadow);
  transition:transform .11s ease,box-shadow .11s ease}
.btn:hover{transform:translate(1px,1px);box-shadow:2px 2px 0 var(--ink-shadow)}
.btn:active{transform:translate(3px,3px);box-shadow:0 0 0 var(--ink-shadow)}
.btn:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.btn-primary{background:var(--accent-solid);color:#fff}
.btn-dark{background:var(--text);color:var(--bg)}
.btn-light{background:var(--bg);color:var(--text)}
.btn-sm{padding:9px 16px;font-size:.87rem;box-shadow:2px 2px 0 var(--ink-shadow);border-width:2px}
.btn-sm:hover{box-shadow:1px 1px 0 var(--ink-shadow)}
.btn-lg{padding:17px 34px;font-size:1.05rem}

/* ---------- header ---------- */
.site-header{position:sticky;top:0;z-index:60;background:var(--bg);border-bottom:2px solid var(--text)}
.nav{display:flex;align-items:center;gap:26px;min-height:70px}
.brand{display:flex;align-items:center;gap:9px;font-weight:900;font-size:1.15rem;
  letter-spacing:-.04em;color:var(--text);text-decoration:none!important;flex:none}
.brand:hover{text-decoration:none}
.brand b{color:var(--accent);font-weight:900}
.nav-links{display:flex;align-items:center;gap:22px;list-style:none;padding:0;margin:0 auto 0 14px}
.nav-links a{color:var(--text);font-size:.93rem;font-weight:600;text-decoration:none!important;
  padding:5px 0;border-bottom:2px solid transparent}
.nav-links a:hover{border-bottom-color:var(--accent)}
.nav-links a[aria-current="page"]{color:var(--accent);border-bottom-color:var(--accent)}
/* live-chat nav item: a quiet "we're online" pulse, desktop and mobile menu */
.nav-links a.nav-live{display:inline-flex;align-items:center;gap:7px}
.nav-pulse{position:relative;width:7px;height:7px;border-radius:50%;background:var(--ok);flex:none}
/* The halo is a pseudo-element animating transform+opacity only, so it runs on
   the compositor. Animating box-shadow repaints the whole element every frame,
   which is what drove Lighthouse's main-thread rendering time up. */
.nav-pulse::after{content:"";position:absolute;inset:0;border-radius:50%;
  background:var(--ok);animation:nav-halo 2.2s infinite;will-change:transform,opacity}
@keyframes nav-halo{
  0%{transform:scale(1);opacity:.55}
  70%{transform:scale(3);opacity:0}
  100%{transform:scale(3);opacity:0}
}
.nav-end{display:flex;align-items:center;gap:12px;flex:none}
.nav-toggle{display:none;background:var(--bg);border:2px solid var(--text);border-radius:9px;
  color:var(--text);padding:8px 12px;font-size:1.05rem;cursor:pointer;line-height:1;
  box-shadow:2px 2px 0 var(--ink-shadow)}

/* ---------- hero ---------- */
.hero{padding-block:clamp(44px,6vw,80px)}
.hero-grid{display:grid;grid-template-columns:1fr 1.08fr;gap:clamp(30px,5vw,64px);align-items:center}
.hero h1{margin-bottom:.35em}
.hero h2{font-size:clamp(1.05rem,1.9vw,1.3rem);font-weight:600;color:var(--muted);
  letter-spacing:-.01em;line-height:1.5;margin-bottom:.9em}
.hero-actions{display:flex;gap:13px;flex-wrap:wrap;margin:26px 0 22px}
.hero-fig{border:2px solid var(--text);border-radius:var(--radius);overflow:hidden;
  box-shadow:7px 7px 0 var(--ink-shadow);background:var(--surface2)}
.hero-fig img{width:100%}

/* latency badge */
.latency{display:inline-flex;align-items:center;gap:10px;background:var(--surface);
  border:2px solid var(--text);border-radius:999px;padding:8px 17px;font-size:.87rem;font-weight:600}
.latency .pulse{position:relative;width:9px;height:9px;border-radius:50%;background:var(--ok);flex:none}
.latency .pulse::after{content:"";position:absolute;inset:0;border-radius:50%;
  background:var(--ok);animation:nav-halo 2.4s infinite;will-change:transform,opacity}
.latency b{font-variant-numeric:tabular-nums}

.chips{display:flex;gap:9px;flex-wrap:wrap}
.chip{display:inline-flex;align-items:center;gap:7px;background:var(--surface);
  border:1px solid var(--border);border-radius:999px;padding:6px 14px;font-size:.84rem;
  font-weight:600;color:var(--muted)}
.chip strong{color:var(--text)}

/* ---------- generic grids & cards ---------- */
.grid{display:grid;gap:20px}
.g2{grid-template-columns:repeat(auto-fit,minmax(290px,1fr))}
.g3{grid-template-columns:repeat(auto-fit,minmax(245px,1fr))}
.g4{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.card{background:var(--bg);border:2px solid var(--text);border-radius:var(--radius);
  padding:26px;box-shadow:4px 4px 0 var(--ink-shadow)}
.card.soft{border:1px solid var(--border);box-shadow:none;background:var(--surface)}
.card h3{margin-bottom:.35em}
.card p:last-child{margin-bottom:0}
.card p{color:var(--muted);font-size:.96rem}

/* numbered points */
.points{list-style:none;padding:0;margin:26px 0 0;display:grid;gap:18px}
.points li{display:flex;gap:15px;align-items:flex-start}
.points .n{flex:none;width:34px;height:34px;border-radius:9px;background:var(--accent-solid);color:#fff;
  display:grid;place-items:center;font-weight:800;font-size:.92rem;border:2px solid var(--text)}
.points h3{margin-bottom:.15em;font-size:1.06rem}
.points p{margin:0;color:var(--muted);font-size:.95rem}

/* ---------- node / ISP strips ---------- */
.nodes{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:16px;margin-top:34px}
.node{background:var(--bg);border:2px solid var(--text);border-radius:var(--radius);padding:20px;
  box-shadow:4px 4px 0 var(--ink-shadow)}
.node .city{font-weight:800;font-size:1.08rem;display:flex;align-items:center;gap:8px}
.node .prov{color:var(--muted);font-size:.82rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase}
.node .ms{margin-top:12px;font-size:1.9rem;font-weight:800;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.node .ms small{font-size:.88rem;color:var(--muted);font-weight:600}
.node .bar{height:6px;border-radius:99px;background:var(--surface2);margin-top:10px;overflow:hidden}
.node .bar i{display:block;height:100%;background:var(--ok);width:0;transition:width .7s ease}

.isp-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.isp{display:flex;align-items:center;gap:11px;background:var(--bg);border:2px solid var(--text);
  border-radius:11px;padding:13px 19px;box-shadow:3px 3px 0 var(--ink-shadow);font-weight:700;font-size:.95rem}
.isp .tick{width:22px;height:22px;border-radius:50%;background:var(--ok-soft);color:var(--ok);
  display:grid;place-items:center;font-size:.78rem;font-weight:900;flex:none}
.isp span{display:block;font-size:.76rem;color:var(--muted);font-weight:600}

/* ---------- device tiles ---------- */
.devices{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin-top:34px}
.device{background:var(--bg);border:2px solid var(--text);border-radius:var(--radius);
  padding:20px 14px;text-align:center;box-shadow:4px 4px 0 var(--ink-shadow);
  transition:transform .12s,box-shadow .12s}
.device:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--ink-shadow)}
.device img{margin:0 auto 10px}
.device b{display:block;font-size:.93rem;font-weight:700}
.device span{display:block;font-size:.76rem;color:var(--muted);margin-top:2px}

/* ---------- sports ---------- */
.sports{display:grid;grid-template-columns:repeat(auto-fit,minmax(175px,1fr));gap:14px;margin-top:32px}
.sport{background:var(--bg);border:2px solid var(--text);border-radius:var(--radius);padding:19px;
  box-shadow:4px 4px 0 var(--ink-shadow)}
.sport b{display:block;font-size:1.02rem;font-weight:800}
.sport span{display:block;font-size:.85rem;color:var(--muted);margin-top:3px}
.sport .live{display:inline-flex;align-items:center;gap:6px;background:var(--accent-solid);color:#fff;
  font-size:.75rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;
  padding:3px 9px;border-radius:99px;margin-bottom:9px}

/* ---------- pricing ---------- */
.tabs{display:flex;gap:9px;justify-content:center;flex-wrap:wrap;margin:32px 0 30px}
.tab{background:var(--bg);border:2px solid var(--text);border-radius:10px;padding:10px 20px;
  font:inherit;font-size:.93rem;font-weight:700;cursor:pointer;color:var(--text);
  box-shadow:2px 2px 0 var(--ink-shadow);transition:transform .1s,box-shadow .1s}
.tab:hover{transform:translate(1px,1px);box-shadow:1px 1px 0 var(--ink-shadow)}
.tab[aria-selected="true"]{background:var(--accent-solid);color:#fff}
.plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(248px,1fr));gap:20px;align-items:start}
.plan{background:var(--bg);border:2px solid var(--text);border-radius:var(--radius);padding:26px;
  position:relative;box-shadow:5px 5px 0 var(--ink-shadow)}
.plan.best{background:var(--surface);box-shadow:5px 5px 0 var(--accent)}
.plan .flag{position:absolute;top:-13px;left:24px;background:var(--accent-solid);color:#fff;
  border:2px solid var(--text);font-size:.75rem;font-weight:800;letter-spacing:.08em;
  text-transform:uppercase;padding:3px 11px;border-radius:99px}
.plan .term{font-size:.8rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase;color:var(--muted)}
.plan .cost{display:flex;align-items:flex-start;gap:3px;margin:8px 0 2px}
.plan .cost .cur{font-size:1.05rem;font-weight:700;color:var(--muted);margin-top:8px}
.plan .cost .num{font-size:2.85rem;font-weight:900;letter-spacing:-.045em;line-height:1}
.plan .vs{font-size:.83rem;color:var(--muted);margin-bottom:16px}
.plan .vs s{text-decoration-thickness:1px}
.plan .vs b{color:var(--ok);font-weight:800}
.plan ul{list-style:none;padding:0;margin:0 0 20px;font-size:.92rem}
.plan li{padding:6px 0 6px 25px;position:relative;color:var(--muted)}
.plan li::before{content:"";position:absolute;left:1px;top:13px;width:12px;height:6px;
  border-left:2.5px solid var(--ok);border-bottom:2.5px solid var(--ok);transform:rotate(-45deg)}
.plan .btn{width:100%}

/* ---------- map ---------- */
.map-wrap{background:var(--bg);border:2px solid var(--text);border-radius:var(--radius);
  padding:clamp(16px,3vw,30px);box-shadow:5px 5px 0 var(--ink-shadow);margin-top:32px}
.map-wrap svg{width:100%;height:auto}
.map-legend{display:flex;gap:18px;flex-wrap:wrap;justify-content:center;margin-top:18px;
  font-size:.84rem;color:var(--muted)}
.map-legend i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;vertical-align:-1px}

/* ---------- reviews ---------- */
.reviews{display:grid;grid-template-columns:repeat(auto-fit,minmax(285px,1fr));gap:20px;margin-top:34px}
.review{background:var(--bg);border:2px solid var(--text);border-radius:var(--radius);padding:24px;
  box-shadow:4px 4px 0 var(--ink-shadow);display:flex;flex-direction:column}
.review .stars{color:var(--accent);letter-spacing:2px;font-size:1rem;margin-bottom:10px}
.review p{font-size:.97rem;color:var(--text);flex:1}
.review .who{display:flex;align-items:center;gap:11px;margin-top:16px;padding-top:15px;border-top:1px solid var(--border)}
.review .av{width:38px;height:38px;border-radius:50%;background:var(--accent-solid);color:#fff;
  display:grid;place-items:center;font-weight:800;font-size:.9rem;flex:none;border:2px solid var(--text)}
.review .who b{display:block;font-size:.9rem}
.review .who span{display:block;font-size:.79rem;color:var(--muted)}
.review-empty{background:var(--surface);border:2px dashed var(--border);border-radius:var(--radius);
  padding:36px 26px;text-align:center;margin-top:30px}

/* ---------- faq ---------- */
.faq{max-width:840px;margin:32px auto 0}
details{background:var(--bg);border:2px solid var(--text);border-radius:11px;margin-bottom:12px;
  box-shadow:3px 3px 0 var(--ink-shadow)}
summary{padding:17px 21px;font-weight:700;cursor:pointer;list-style:none;display:flex;
  justify-content:space-between;align-items:center;gap:16px;font-size:1rem}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";color:var(--accent);font-size:1.5rem;font-weight:400;line-height:1;flex:none}
details[open] summary::after{content:"\2212"}
details > div{padding:0 21px 19px;color:var(--muted);font-size:.96rem}
details > div p:last-child{margin-bottom:0}

/* ---------- split (image + text) ---------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,60px);align-items:center}
.split.rev .split-txt{order:2}
.split-fig{border:2px solid var(--text);border-radius:var(--radius);overflow:hidden;
  box-shadow:6px 6px 0 var(--ink-shadow);background:var(--surface2)}

/* ---------- blog ---------- */
.posts{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;margin-top:34px}
.post{background:var(--bg);border:2px solid var(--text);border-radius:var(--radius);padding:24px;
  box-shadow:4px 4px 0 var(--ink-shadow);display:flex;flex-direction:column}
.post .tag{font-size:.75rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:9px}
.post h3{font-size:1.1rem;margin-bottom:.4em}
.post p{color:var(--muted);font-size:.93rem;flex:1}
.post a.more{font-weight:700;font-size:.9rem}

/* ---------- tables ---------- */
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border:2px solid var(--text);
  border-radius:var(--radius);box-shadow:4px 4px 0 var(--ink-shadow);margin-top:26px;background:var(--bg)}
table{width:100%;border-collapse:collapse;font-size:.94rem;min-width:540px}
th,td{padding:14px 17px;text-align:left;border-bottom:1px solid var(--border)}
th{background:var(--surface);font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;font-weight:800}
tbody tr:last-child td{border-bottom:0}

/* ---------- CTA band ---------- */
.band{background:var(--text);color:var(--bg);border-radius:var(--radius);padding:clamp(30px,5vw,52px);
  text-align:center;margin-top:10px}
.band h2{color:var(--bg)}
.band p{color:var(--bg);opacity:.82;max-width:58ch;margin-inline:auto}
.band .btn{border-color:var(--bg);box-shadow:3px 3px 0 var(--bg)}
.band .btn:hover{box-shadow:2px 2px 0 var(--bg)}
.band .btn:active{box-shadow:0 0 0 var(--bg)}

/* ---------- footer ---------- */
.site-footer{background:var(--surface);border-top:2px solid var(--text);padding-block:52px 26px;font-size:.93rem}
.foot-grid{display:grid;gap:34px;grid-template-columns:1.7fr repeat(4,1fr)}
.foot-grid h4,.foot-grid .foot-h{font-size:.76rem;text-transform:uppercase;letter-spacing:.11em;color:var(--muted);margin-bottom:1.1em}
.foot-grid ul{list-style:none;padding:0;margin:0}
.foot-grid li{margin-bottom:2px}
/* Footer links were ~20px tall, below the minimum touch target. Padding gives
   them a real hit area without changing the visual rhythm. */
.foot-grid li a{display:inline-block;padding:7px 0;min-height:24px}
.foot-grid a{color:var(--text);font-size:.9rem;text-decoration:none}
.foot-grid a:hover{color:var(--accent);text-decoration:underline}
.foot-seo{color:var(--muted);font-size:.88rem;line-height:1.65;max-width:44ch;margin:14px 0 18px}
.pay{display:inline-flex;align-items:center;gap:9px;background:var(--bg);border:2px solid var(--text);
  border-radius:9px;padding:9px 14px;font-size:.82rem;font-weight:700;box-shadow:2px 2px 0 var(--ink-shadow)}
.foot-bottom{border-top:1px solid var(--border);margin-top:36px;padding-top:22px;color:var(--muted);font-size:.85rem}
.foot-bottom p{margin-bottom:.6em}


/* ---------- Canadian ISP bandwidth & buffer calculator ---------- */
.calc{background:var(--bg);border:2px solid var(--text);border-radius:var(--radius);
  box-shadow:5px 5px 0 var(--ink-shadow);overflow:hidden;margin-top:32px}
.calc-head{background:var(--text);color:var(--bg);padding:16px 22px;display:flex;
  align-items:center;gap:12px;flex-wrap:wrap}
.calc-head h3{margin:0;font-size:1.05rem;color:var(--bg)}
.calc-head span{font-size:.85rem;opacity:.8;margin-left:auto}
.calc-grid{display:grid;grid-template-columns:1fr 1fr 1.15fr;gap:0}
.calc-col{padding:22px;border-right:1px solid var(--border)}
.calc-col:last-child{border-right:0;background:var(--surface)}
.calc-step{font-size:.75rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;
  color:var(--accent-solid);margin-bottom:10px}
.calc-col h4{font-size:1rem;margin-bottom:.7em}
.calc-col label{display:block;font-size:.82rem;font-weight:700;color:var(--muted);margin:14px 0 6px}
.calc-col select,.calc-col input[type=number]{width:100%;background:var(--bg);
  border:2px solid var(--border);border-radius:9px;color:var(--text);padding:10px 12px;
  font:inherit;font-size:.95rem}
.calc-col select:focus,.calc-col input:focus{outline:none;border-color:var(--accent)}
.calc-btn{width:100%;background:var(--accent-solid);color:#fff;border:2px solid var(--text);
  border-radius:10px;padding:12px 16px;font:inherit;font-weight:800;font-size:.95rem;
  cursor:pointer;box-shadow:3px 3px 0 var(--ink-shadow);transition:transform .1s,box-shadow .1s}
.calc-btn:hover{transform:translate(1px,1px);box-shadow:2px 2px 0 var(--ink-shadow)}
.calc-btn[disabled]{opacity:.6;cursor:progress}
.calc-m{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px}
.calc-m div{background:var(--surface);border:1px solid var(--border);border-radius:9px;
  padding:10px 6px;text-align:center}
.calc-m b{display:block;font-size:1.25rem;font-weight:800;letter-spacing:-.02em;
  font-variant-numeric:tabular-nums;line-height:1.1}
.calc-m span{display:block;font-size:.72rem;color:var(--muted);text-transform:uppercase;
  letter-spacing:.07em;margin-top:3px}
.calc-need{text-align:center;padding:10px 0 4px}
.calc-need b{display:block;font-size:3rem;font-weight:900;letter-spacing:-.04em;line-height:1}
.calc-need span{font-size:.85rem;color:var(--muted)}
.calc-bar{height:12px;border-radius:99px;background:var(--surface2);overflow:hidden;
  margin:16px 0 8px;border:1px solid var(--border)}
.calc-bar i{display:block;height:100%;width:0;background:var(--ok);transition:width .6s ease}
.calc-bar i.tight{background:var(--warn)}
.calc-bar i.short{background:var(--accent)}
.calc-verdict{border-radius:10px;padding:13px 15px;font-size:.9rem;font-weight:600;line-height:1.45}
.calc-verdict.ok{background:var(--ok-soft);color:var(--ok)}
.calc-verdict.tight{background:rgba(245,158,11,.14);color:#b45309}
.calc-verdict.short{background:var(--accent-soft);color:var(--accent)}
.calc-verdict.idle{background:var(--surface2);color:var(--muted);font-weight:500}
.calc-can{list-style:none;padding:0;margin:14px 0 0;font-size:.86rem}
.calc-can li{display:flex;justify-content:space-between;gap:10px;padding:6px 0;
  border-bottom:1px solid var(--border);color:var(--muted)}
.calc-can li:last-child{border-bottom:0}
.calc-can b{color:var(--text);font-variant-numeric:tabular-nums}
.calc-can .yes{color:var(--ok);font-weight:800}
.calc-can .no{color:var(--accent);font-weight:800}
.calc-foot{padding:14px 22px;border-top:1px solid var(--border);background:var(--surface);
  font-size:.82rem;color:var(--muted)}
@media(max-width:900px){.calc-grid{grid-template-columns:1fr}
  .calc-col{border-right:0;border-bottom:1px solid var(--border)}}

/* ---------- checkout ---------- */
.checkout{display:grid;grid-template-columns:1fr 1fr;gap:26px;align-items:start;margin-top:30px}
.panel{background:var(--bg);border:2px solid var(--text);border-radius:var(--radius);
  padding:clamp(20px,3vw,30px);box-shadow:5px 5px 0 var(--ink-shadow)}
.panel h2{font-size:clamp(1.25rem,2.2vw,1.6rem);margin-bottom:.2em}
.panel > p.sub{color:var(--muted);font-size:.93rem;margin-bottom:1.4em}

.order-line{display:flex;justify-content:space-between;align-items:baseline;gap:14px;
  padding:11px 0;border-bottom:1px solid var(--border);font-size:.95rem}
.order-line:last-of-type{border-bottom:0}
.order-line span{color:var(--muted)}
.order-line b{font-weight:700;text-align:right}
.order-total{display:flex;justify-content:space-between;align-items:baseline;gap:14px;
  margin-top:14px;padding-top:16px;border-top:2px solid var(--text)}
.order-total span{font-weight:700}
.order-total b{font-size:1.9rem;font-weight:900;letter-spacing:-.03em}

.field{margin-bottom:17px}
.field label{display:block;font-size:.86rem;font-weight:700;margin-bottom:6px}
.field label .req{color:var(--accent)}
.field input{width:100%;background:var(--surface);border:2px solid var(--border);border-radius:9px;
  color:var(--text);padding:12px 14px;font:inherit;font-size:.97rem}
.field input:focus{outline:none;border-color:var(--accent)}
.field input:user-invalid{border-color:var(--accent)}
.field .hint{font-size:.8rem;color:var(--muted);margin-top:5px}

.seg{display:flex;gap:0;border:2px solid var(--text);border-radius:10px;overflow:hidden}
.seg input{position:absolute;opacity:0;pointer-events:none}
.seg label{flex:1;text-align:center;padding:12px 10px;font-size:.89rem;font-weight:700;
  cursor:pointer;background:var(--bg);margin:0;transition:background .12s}
.seg label + input + label{border-left:2px solid var(--text)}
.seg input:checked + label{background:var(--accent);color:#fff}
.seg input:focus-visible + label{outline:2px solid var(--accent);outline-offset:-4px}

.interac-head{display:flex;align-items:center;gap:12px;margin-bottom:6px}
.interac-mark{width:42px;height:42px;border-radius:9px;background:var(--accent-solid);color:#fff;
  display:grid;place-items:center;font-weight:900;font-size:1.25rem;border:2px solid var(--text);flex:none}

.copy-row{background:var(--surface);border:2px solid var(--border);border-radius:11px;
  padding:13px 15px;margin-bottom:11px;display:flex;align-items:center;gap:12px}
.copy-row .body{flex:1;min-width:0}
.copy-row .k{font-size:.76rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.copy-row .v{font-weight:700;font-size:1rem;word-break:break-word;font-variant-numeric:tabular-nums}
.copy-row button{flex:none;background:var(--bg);border:2px solid var(--text);border-radius:8px;
  padding:8px 14px;font:inherit;font-size:.82rem;font-weight:700;cursor:pointer;color:var(--text);
  box-shadow:2px 2px 0 var(--ink-shadow);transition:transform .1s,box-shadow .1s,background .12s}
.copy-row button:hover{transform:translate(1px,1px);box-shadow:1px 1px 0 var(--ink-shadow)}
.copy-row button.done{background:var(--ok);color:#fff;border-color:var(--ok)}

.note{background:var(--surface2);border-left:4px solid var(--accent);border-radius:8px;
  padding:13px 16px;font-size:.89rem;color:var(--muted);margin-bottom:12px}
.note.calm{border-left-color:var(--ok)}
.note b{color:var(--text)}

.done-screen{text-align:center;padding:clamp(28px,5vw,48px) 20px}
.done-screen .tick{width:76px;height:76px;border-radius:50%;background:var(--ok);margin:0 auto 22px;
  display:grid;place-items:center;border:3px solid var(--text)}
.done-screen .tick svg{width:38px;height:38px;stroke:#fff;stroke-width:3.5;fill:none}

/* ---------- responsive ---------- */
@media(max-width:1000px){
  .foot-grid{grid-template-columns:1fr 1fr 1fr}
}
@media(max-width:900px){
  .hero-grid,.split,.checkout{grid-template-columns:1fr}
  .split.rev .split-txt{order:0}
  .hero-fig,.split-fig{order:-1}
  .nav-links{display:none;position:absolute;top:70px;left:0;right:0;background:var(--bg);
    border-bottom:2px solid var(--text);flex-direction:column;align-items:stretch;
    gap:0;padding:6px 20px 16px;margin:0}
  .nav-links.open{display:flex}
  .nav-links a{padding:13px 0;border-bottom:1px solid var(--border)}
  .nav-toggle{display:block;margin-left:auto}
  .nav-end .btn{display:none}
}
@media(max-width:640px){
  body{font-size:16px}
  .foot-grid{grid-template-columns:1fr 1fr}
  .btn{padding:13px 20px}
}
@media(max-width:430px){
  .foot-grid{grid-template-columns:1fr}
  .hero-actions{flex-direction:column;align-items:stretch}
  .hero-actions .btn{width:100%}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
@media print{.site-header,.site-footer,.btn{display:none}}
