/* ============================================================
   CORENIX — Design tokens
   ============================================================ */
:root{
  --bg: #090c14;
  --surface: #12172a;
  --surface-alt: #1a2036;
  --surface-raised: #1c2340;
  --border: #232a45;
  --border-soft: #1a2038;
  --text: #edeff7;
  --text-muted: #8790ac;
  --text-faint: #5b6485;

  --blue: #4f8bff;
  --violet: #7c6ff0;
  --cyan: #35e0c8;
  --green: #35d399;
  --amber: #f2b84b;

  --grad: linear-gradient(135deg, var(--blue), var(--violet));
  --grad-soft: linear-gradient(135deg, rgba(79,139,255,.14), rgba(124,111,240,.14));

  --radius-s: 6px;
  --radius-m: 12px;
  --radius-l: 20px;

  --font-head: 'Space Grotesk', sans-serif;
  --font-body: 'IBM Plex Sans', sans-serif;
  --font-mono: 'IBM Plex Mono', monospace;

  --container: 1180px;
  --header-h: 76px;
}

*,*::before,*::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
  margin:0;
  background: var(--bg);
  color: var(--text);
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; margin:0; padding:0; }
button{ font-family:inherit; cursor:pointer; }

h1,h2,h3,h4{
  font-family: var(--font-head);
  font-weight: 600;
  line-height: 1.15;
  margin: 0 0 .5em;
  letter-spacing: -0.01em;
}
h1{ font-size: clamp(2.2rem, 4vw, 3.4rem); font-weight: 600; }
h2{ font-size: clamp(1.7rem, 2.6vw, 2.4rem); }
h3{ font-size: 1.25rem; }
p{ margin:0 0 1em; color: var(--text-muted); }

code, .mono{ font-family: var(--font-mono); }

.container{
  width: 100%;
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 24px;
}

.section{ padding: 96px 0; border-top: 1px solid var(--border-soft); }
.section:first-of-type{ border-top:none; }
.section-head{ max-width: 620px; margin-bottom: 48px; }
.section-head p{ margin-bottom:0; }
.section-tag{
  display:inline-flex; align-items:center; gap:8px;
  font-size: .85rem; color: var(--cyan); margin-bottom: 14px;
}
.section-tag::before{
  content:''; width:6px; height:6px; border-radius:50%;
  background: var(--cyan); box-shadow: 0 0 8px var(--cyan);
}

.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding: 13px 26px; border-radius: var(--radius-s);
  font-weight: 600; font-size: .95rem; border: 1px solid transparent;
  transition: transform .15s ease, border-color .15s ease, background .15s ease;
  white-space: nowrap;
}
.btn-primary{ background: var(--grad); color:#fff; }
.btn-primary:hover{ transform: translateY(-2px); }
.btn-ghost{ border-color: var(--border); color: var(--text); background: rgba(255,255,255,.02); }
.btn-ghost:hover{ border-color: var(--blue); background: rgba(79,139,255,.08); }
.btn-block{ width:100%; }
.btn-sm{ padding: 9px 16px; font-size:.85rem; }

/* ============================================================
   HEADER + MEGA MENU
   ============================================================ */
.site-header{
  position: sticky; top:0; z-index: 200;
  height: var(--header-h);
  display:flex; align-items:center;
  background: rgba(9,12,20,.82);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--border-soft);
}
.header-inner{
  display:flex; align-items:center; justify-content:space-between;
  gap: 24px;
}
.logo{ display:flex; align-items:center; gap:10px; font-family: var(--font-head); font-weight:700; font-size:1.25rem; color:#fff; flex-shrink:0; }
.logo-mark{
  width: 30px; height:30px; border-radius: 8px; background: var(--grad);
  position:relative; flex-shrink:0;
}
.logo-mark::before, .logo-mark::after{
  content:''; position:absolute; background:#fff; border-radius:50%;
}
.logo-mark::before{ width:5px; height:5px; top:7px; left:7px; }
.logo-mark::after{ width:5px; height:5px; bottom:7px; right:7px; box-shadow: -9px -1px 0 rgba(255,255,255,.55); }

.main-nav{ display:flex; align-items:stretch; gap: 4px; flex:1; margin-left: 24px; }
.nav-item{ position:relative; display:flex; align-items:center; }
.nav-link{
  display:flex; align-items:center; gap:6px;
  padding: 0 16px; height: var(--header-h);
  font-size: .93rem; color: var(--text-muted);
  transition: color .15s ease;
}
.nav-item:hover .nav-link, .nav-link.active{ color: #fff; }
.nav-caret{ width:9px; height:9px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform: rotate(45deg) translateY(-2px); transition: transform .2s ease; opacity:.7; }
.nav-item:hover .nav-caret{ transform: rotate(225deg) translateY(2px); }

.header-actions{ display:flex; align-items:center; gap:12px; flex-shrink:0; }
.header-phone{ font-size:.85rem; color: var(--text-muted); font-family: var(--font-mono); }

/* mega panel */
.mega{
  position:absolute; top: 100%; left: 50%;
  transform: translateX(-50%) translateY(-8px);
  width: min(880px, 92vw);
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-m);
  box-shadow: 0 24px 60px rgba(0,0,0,.45);
  padding: 28px;
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 32px;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .2s ease, transform .2s ease, visibility .2s;
  margin-top: 10px;
}
.nav-item:hover .mega{
  opacity:1; visibility: visible; pointer-events: auto;
  transform: translateX(-50%) translateY(0);
}
.mega-col-title{ font-size:.75rem; text-transform:uppercase; letter-spacing:.08em; color: var(--text-faint); margin-bottom:14px; }
.mega-link{ display:block; padding: 10px 12px; border-radius: var(--radius-s); margin: 0 -12px; transition: background .15s ease; }
.mega-link:hover{ background: var(--surface-alt); }
.mega-link strong{ display:block; font-size:.95rem; color:#fff; font-weight:600; }
.mega-link span{ display:block; font-size:.82rem; color: var(--text-muted); margin-top:2px; }
.mega-locations{ display:flex; flex-wrap:wrap; gap:8px; }
.mega-loc{
  display:flex; align-items:center; gap:8px; padding: 8px 12px;
  border:1px solid var(--border); border-radius: 999px; font-size:.82rem;
  color: var(--text-muted); transition: border-color .15s ease, color .15s ease;
}
.mega-loc:hover{ border-color: var(--blue); color:#fff; }
.mega-flag{ width:16px; height:12px; object-fit:cover; border-radius:2px; }

/* mobile nav */
.burger{ display:none; flex-direction:column; gap:5px; width:24px; }
.burger span{ height:2px; background:#fff; border-radius:2px; transition: all .2s ease; }

.mobile-panel{
  position: fixed; inset:0; z-index: 300;
  background: var(--bg);
  transform: translateX(100%);
  transition: transform .3s ease;
  overflow-y:auto;
}
.mobile-panel.open{ transform: translateX(0); }
.mobile-panel-header{ display:flex; align-items:center; justify-content:space-between; height: var(--header-h); padding:0 24px; border-bottom:1px solid var(--border-soft); }
.mobile-close{ font-size:1.6rem; color: var(--text-muted); background:none; border:none; }
.mobile-track{ display:flex; width:300%; transition: transform .3s ease; }
.mobile-screen{ width: 33.333%; padding: 8px 24px 40px; flex-shrink:0; }
.mobile-track.show-1{ transform: translateX(-33.333%); }
.mobile-track.show-2{ transform: translateX(-66.666%); }
.mobile-back{ display:flex; align-items:center; gap:8px; color: var(--text-muted); padding: 16px 4px; font-size:.9rem; }
.mobile-link{ display:flex; align-items:center; justify-content:space-between; padding: 16px 4px; border-bottom:1px solid var(--border-soft); font-size:1.05rem; }
.mobile-link span.sub{ display:block; font-size:.8rem; color:var(--text-muted); font-weight:400; margin-top:3px;}

@media (max-width: 980px){
  .main-nav{ display:none; }
  .burger{ display:flex; }
  .header-phone{ display:none; }
}

/* ============================================================
   HERO + NETWORK GRAPH MOTIF
   ============================================================ */
.hero{
  position:relative; overflow:hidden;
  padding: 88px 0 100px;
  border-bottom: 1px solid var(--border-soft);
}
.hero-grid{
  display:grid; grid-template-columns: 1.05fr .95fr; gap:40px; align-items:center;
  position:relative; z-index:2;
}
.hero-kicker{ display:flex; align-items:center; gap:10px; color:var(--text-muted); font-size:.88rem; margin-bottom: 22px; }
.hero-kicker .dot{ width:7px; height:7px; border-radius:50%; background: var(--green); box-shadow:0 0 8px var(--green); }
.hero h1{ color:#fff; margin-bottom:20px; }
.hero-lead{ font-size:1.1rem; max-width: 480px; }
.hero-ctas{ display:flex; gap:14px; margin-top:32px; flex-wrap:wrap; }
.hero-stats{ display:flex; gap:32px; margin-top:48px; flex-wrap:wrap; }
.hero-stat b{ display:block; font-family: var(--font-head); font-size:1.5rem; color:#fff; }
.hero-stat span{ font-size:.82rem; color: var(--text-muted); }

.graph-wrap{ position:relative; height: 420px; }
.graph-wrap svg{ width:100%; height:100%; }
.graph-line{ stroke: url(#lineGrad); stroke-width:1; fill:none; opacity:.55; }
.graph-node{ fill: var(--surface-raised); stroke: var(--border); stroke-width:1; }
.graph-node.on{ fill: var(--cyan); filter: drop-shadow(0 0 6px rgba(53,224,200,.7)); }
.graph-pulse{ fill: none; stroke: var(--cyan); stroke-width:1.4; opacity:0; }

.bg-glow{ position:absolute; border-radius:50%; filter: blur(90px); opacity:.28; z-index:1; pointer-events:none; }
.bg-glow.g1{ width:480px; height:480px; background: var(--blue); top:-160px; right:-120px; }
.bg-glow.g2{ width:380px; height:380px; background: var(--violet); bottom:-140px; left:20%; }

@media (max-width: 900px){
  .hero-grid{ grid-template-columns:1fr; }
  .graph-wrap{ height:260px; order:-1; }
}

/* ============================================================
   OFFER GRID (home)
   ============================================================ */
.offer-grid{ display:grid; grid-template-columns: repeat(4,1fr); gap:20px; }
.offer-card{
  background: var(--surface); border:1px solid var(--border); border-radius: var(--radius-m);
  padding: 28px 24px; transition: border-color .2s ease, transform .2s ease;
  display:flex; flex-direction:column;
}
.offer-card:hover{ border-color: var(--blue); transform: translateY(-4px); }
.offer-icon{ width:44px; height:44px; border-radius:10px; background: var(--grad-soft); display:flex; align-items:center; justify-content:center; margin-bottom:20px; }
.offer-icon svg{ width:22px; height:22px; stroke: var(--cyan); }
.offer-card h3{ color:#fff; margin-bottom:8px; }
.offer-card p{ font-size:.92rem; flex:1; }
.offer-price{ font-family: var(--font-mono); color:#fff; font-size:.95rem; margin: 14px 0 18px; }
.offer-price span{ color: var(--text-faint); font-size:.78rem; }
.offer-card a.link{ font-size:.88rem; color: var(--blue); font-weight:600; }

@media (max-width: 980px){ .offer-grid{ grid-template-columns: repeat(2,1fr); } }
@media (max-width: 560px){ .offer-grid{ grid-template-columns: 1fr; } }

/* ============================================================
   FEATURE ROW / WHY US
   ============================================================ */
.feature-row{ display:grid; grid-template-columns: repeat(3,1fr); gap: 32px; }
.feature-item{ padding-right: 12px; }
.feature-num{ font-family: var(--font-mono); color: var(--text-faint); font-size:.85rem; margin-bottom:12px; display:block; }
.feature-item h3{ color:#fff; }

@media (max-width: 900px){ .feature-row{ grid-template-columns:1fr; gap:36px; } }

/* ============================================================
   LOCATIONS / MAP
   ============================================================ */
.loc-strip{ display:flex; flex-wrap:wrap; gap:12px; margin-top: 32px; }
.loc-chip{
  display:flex; align-items:center; gap:10px; padding:10px 16px;
  background: var(--surface); border:1px solid var(--border); border-radius:999px; font-size:.88rem;
}
.loc-chip img{ width:18px; height:13px; border-radius:2px; }

/* ============================================================
   STEPS
   ============================================================ */
.steps{ display:grid; grid-template-columns: repeat(4,1fr); gap:24px; counter-reset: step; }
.step{ position:relative; padding-top: 20px; border-top: 1px solid var(--border); }
.step::before{
  counter-increment: step; content: counter(step, decimal-leading-zero);
  font-family: var(--font-mono); color: var(--cyan); font-size:.85rem; display:block; margin-bottom:14px;
}
.step h3{ color:#fff; font-size:1.05rem; }
.step p{ font-size:.9rem; margin-bottom:0; }
@media (max-width: 900px){ .steps{ grid-template-columns: repeat(2,1fr); } }
@media (max-width: 560px){ .steps{ grid-template-columns: 1fr; } }

/* ============================================================
   PRICING TABLE
   ============================================================ */
.pricing-grid{ display:grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.plan{
  background: var(--surface); border:1px solid var(--border); border-radius: var(--radius-m);
  padding: 26px 22px; display:flex; flex-direction:column;
}
.plan.featured{ border-color: var(--violet); background: linear-gradient(180deg, rgba(124,111,240,.09), var(--surface) 40%); position:relative; }
.plan-badge{ position:absolute; top:-12px; left:22px; background: var(--grad); color:#fff; font-size:.72rem; font-weight:700; padding:4px 12px; border-radius:999px; }
.plan-name{ font-family: var(--font-head); font-size:1.05rem; color:#fff; margin-bottom:4px; }
.plan-desc{ font-size:.82rem; margin-bottom:18px; }
.plan-price{ display:flex; align-items:baseline; gap:6px; margin-bottom:2px; }
.plan-price b{ font-family: var(--font-head); font-size:2rem; color:#fff; }
.plan-price span{ color: var(--text-muted); font-size:.85rem; }
.plan-note{ font-size:.78rem; color: var(--text-faint); margin-bottom:20px; }
.plan-specs{ margin: 0 0 22px; display:flex; flex-direction:column; gap:9px; }
.plan-specs li{ font-size:.87rem; display:flex; justify-content:space-between; color: var(--text-muted); border-bottom:1px dashed var(--border-soft); padding-bottom:9px; }
.plan-specs li b{ color:#fff; font-weight:600; font-family: var(--font-mono); font-size:.85rem; }
.plan .btn{ margin-top:auto; }

@media (max-width: 980px){ .pricing-grid{ grid-template-columns: repeat(2,1fr); } }
@media (max-width: 560px){ .pricing-grid{ grid-template-columns: 1fr; } }

.region-tabs{ display:flex; gap:8px; flex-wrap:wrap; margin-bottom:32px; }
.region-tab{ padding:9px 16px; border-radius:999px; border:1px solid var(--border); font-size:.85rem; color:var(--text-muted); display:flex; gap:8px; align-items:center; }
.region-tab.active{ border-color: var(--blue); color:#fff; background: rgba(79,139,255,.08); }

/* ============================================================
   TESTIMONIALS
   ============================================================ */
.testi-grid{ display:grid; grid-template-columns: repeat(3,1fr); gap:20px; }
.testi{ background: var(--surface); border:1px solid var(--border); border-radius: var(--radius-m); padding:24px; }
.testi-stars{ color: var(--amber); font-size:.85rem; margin-bottom:12px; letter-spacing:2px; }
.testi p{ font-size:.92rem; color: var(--text); margin-bottom:18px; }
.testi-who{ display:flex; align-items:center; gap:10px; }
.testi-avatar{ width:34px; height:34px; border-radius:50%; background: var(--grad); display:flex; align-items:center; justify-content:center; font-size:.75rem; font-weight:700; color:#fff; flex-shrink:0; }
.testi-who b{ display:block; font-size:.88rem; color:#fff; }
.testi-who span{ font-size:.78rem; color: var(--text-faint); }
@media (max-width: 900px){ .testi-grid{ grid-template-columns:1fr; } }

/* ============================================================
   CTA BANNER
   ============================================================ */
.cta-banner{
  background: var(--surface); border:1px solid var(--border); border-radius: var(--radius-l);
  padding: 56px; display:flex; align-items:center; justify-content:space-between; gap:32px;
  position:relative; overflow:hidden;
}
.cta-banner::after{
  content:''; position:absolute; inset:0; background: var(--grad-soft); opacity:.5; z-index:0;
}
.cta-banner > *{ position:relative; z-index:1; }
.cta-banner h2{ margin-bottom:6px; }
.cta-banner p{ margin-bottom:0; }
@media (max-width: 700px){ .cta-banner{ flex-direction:column; text-align:center; padding:40px 24px; } }

/* ============================================================
   TABLE (compare)
   ============================================================ */
.compare-table{ width:100%; border-collapse: collapse; }
.compare-table th, .compare-table td{ padding: 14px 16px; border-bottom:1px solid var(--border-soft); text-align:left; font-size:.9rem; }
.compare-table thead th{ color:#fff; font-family: var(--font-head); font-weight:600; }
.compare-table tbody td:first-child{ color: var(--text-muted); }
.compare-table td b{ color:#fff; font-family: var(--font-mono); font-weight:500; }
.table-wrap{ overflow-x:auto; }

/* ============================================================
   PAGE HEADER (inner pages)
   ============================================================ */
.page-hero{ padding: 64px 0 72px; position:relative; overflow:hidden; border-bottom:1px solid var(--border-soft); }
.breadcrumb{ display:flex; gap:8px; align-items:center; font-size:.82rem; color: var(--text-faint); margin-bottom:20px; }
.breadcrumb a:hover{ color: var(--text-muted); }
.page-hero-grid{ display:grid; grid-template-columns: 1.2fr .8fr; gap:40px; align-items:center; position:relative; z-index:2; }
@media (max-width: 900px){ .page-hero-grid{ grid-template-columns:1fr; } }

.icon-panel{ background: var(--surface); border:1px solid var(--border); border-radius: var(--radius-l); padding:32px; }
.spec-line{ display:flex; justify-content:space-between; padding:12px 0; border-bottom:1px dashed var(--border-soft); font-size:.88rem; }
.spec-line:last-child{ border-bottom:none; }
.spec-line b{ font-family: var(--font-mono); color:#fff; font-weight:500; }

/* two column content */
.split{ display:grid; grid-template-columns: 1fr 1fr; gap:56px; align-items:center; }
@media (max-width: 900px){ .split{ grid-template-columns:1fr; gap:32px; } }
.split.reverse .split-media{ order:2; }
.check-list{ display:flex; flex-direction:column; gap:14px; margin: 20px 0; }
.check-list li{ display:flex; gap:12px; font-size:.94rem; color: var(--text); align-items:flex-start; }
.check-list li::before{
  content:''; width:18px; height:18px; border-radius:50%; background: var(--grad-soft); border:1px solid var(--cyan);
  flex-shrink:0; margin-top:2px;
  background-image: linear-gradient(135deg, var(--cyan), var(--cyan));
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E") center/12px no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E") center/12px no-repeat;
}
.media-card{ background: var(--surface); border:1px solid var(--border); border-radius: var(--radius-l); padding:32px; position:relative; overflow:hidden; }

/* FAQ */
.faq{ max-width: 760px; }
.faq-item{ border-bottom:1px solid var(--border-soft); }
.faq-q{ display:flex; justify-content:space-between; align-items:center; padding:20px 0; cursor:pointer; color:#fff; font-weight:600; font-size:.98rem; }
.faq-q::after{ content:'+'; font-size:1.4rem; color: var(--text-muted); transition: transform .2s ease; }
.faq-item.open .faq-q::after{ transform: rotate(45deg); }
.faq-a{ max-height:0; overflow:hidden; transition: max-height .25s ease; }
.faq-item.open .faq-a{ max-height: 240px; }
.faq-a p{ padding-bottom:20px; margin:0; font-size:.92rem; }

/* rack visual (housing) */
.rack{ width: 220px; margin: 0 auto; background: var(--bg); border:2px solid var(--border); border-radius:8px; padding:10px; }
.rack-unit{ height:16px; background: var(--surface-alt); border:1px solid var(--border); border-radius:3px; margin-bottom:6px; display:flex; align-items:center; padding:0 8px; gap:4px; }
.rack-unit.on span{ background: var(--green); box-shadow:0 0 5px var(--green); }
.rack-unit span{ width:4px; height:4px; border-radius:50%; background: var(--text-faint); }

/* IP block visual */
.ip-block{ font-family: var(--font-mono); font-size:.85rem; }
.ip-row{ display:flex; justify-content:space-between; padding:10px 14px; border-radius: var(--radius-s); background: var(--surface-alt); margin-bottom:8px; }
.ip-row .tag{ color: var(--cyan); font-size:.72rem; border:1px solid var(--cyan); padding:1px 8px; border-radius:999px; }

/* ============================================================
   FORM (contact)
   ============================================================ */
.form-grid{ display:grid; grid-template-columns: 1fr 1fr; gap:16px; }
.field{ display:flex; flex-direction:column; gap:8px; }
.field.full{ grid-column: 1 / -1; }
.field label{ font-size:.85rem; color: var(--text-muted); }
.field input, .field select, .field textarea{
  background: var(--surface); border:1px solid var(--border); border-radius: var(--radius-s);
  padding: 12px 14px; color:#fff; font-family: inherit; font-size:.92rem;
}
.field input:focus, .field select:focus, .field textarea:focus{ outline:none; border-color: var(--blue); }
.contact-info{ display:flex; flex-direction:column; gap:22px; }
.contact-info-item{ display:flex; gap:14px; }
.contact-info-item .ic{ width:38px; height:38px; border-radius:9px; background: var(--surface); border:1px solid var(--border); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.contact-info-item .ic svg{ width:18px; height:18px; stroke: var(--cyan); }
.contact-info-item h3{ font-size:.95rem; color:#fff; margin-bottom:2px; }
.contact-info-item p{ font-size:.88rem; margin:0; }

@media (max-width: 700px){ .form-grid{ grid-template-columns:1fr; } }

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer{ background: var(--surface); border-top:1px solid var(--border-soft); padding: 64px 0 28px; }
.footer-top{ display:grid; grid-template-columns: 1.4fr repeat(4, 1fr); gap: 32px; padding-bottom: 48px; }
.footer-brand p{ font-size:.88rem; max-width: 260px; }
.footer-social{ display:flex; gap:10px; margin-top:18px; }
.footer-social a{ width:34px; height:34px; border-radius:8px; border:1px solid var(--border); display:flex; align-items:center; justify-content:center; }
.footer-social a:hover{ border-color: var(--blue); }
.footer-col h4{ font-size:.82rem; text-transform:uppercase; letter-spacing:.06em; color: var(--text-faint); margin-bottom:16px; font-weight:600; }
.footer-col a{ display:block; font-size:.88rem; color: var(--text-muted); padding: 6px 0; }
.footer-col a:hover{ color:#fff; }
.footer-bottom{ display:flex; justify-content:space-between; align-items:center; padding-top:24px; border-top:1px solid var(--border-soft); flex-wrap:wrap; gap:16px; }
.footer-bottom small{ color: var(--text-faint); font-size:.8rem; }
.footer-pay{ display:flex; gap:8px; }
.footer-pay div{ width:38px; height:24px; background: var(--surface-alt); border-radius:4px; border:1px solid var(--border); }

@media (max-width: 980px){ .footer-top{ grid-template-columns: repeat(2,1fr); } }
@media (max-width: 560px){ .footer-top{ grid-template-columns: 1fr; } }

/* reduced motion */
@media (prefers-reduced-motion: reduce){
  *{ animation-duration:.001ms !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
}

/* focus visibility */
a:focus-visible, button:focus-visible, input:focus-visible, .nav-link:focus-visible{
  outline: 2px solid var(--cyan); outline-offset: 2px;
}
