/* =========================================================
   UPS Telecom – Global Styles (2025-11-08 heroTighter+pages)
   ========================================================= */

:root{
  --bg-0:#0a0f1c;
  --bg-1:#0e1628;
  --text:#e6eefc;
  --muted:#9db0cf;
  --accent:#21c1ff;
  --accent-2:#6b5bff;
  --glass:rgba(255,255,255,.08);
  --glass-stroke:rgba(255,255,255,.14);
  --ring:rgba(33,193,255,.35);
  --nav-pill-bg:rgba(18,27,46,.9);
  --nav-pill-border:rgba(255,255,255,.08);

  /* Accessible links */
  --link:#6bd6ff;
  --link-hover:#c6efff;
  --link-visited:#b8a6ff;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,"Helvetica Neue",Arial,"Apple Color Emoji","Segoe UI Emoji";
  color:var(--text);
  background:
    radial-gradient(1200px 800px at 85% -10%,#16233d 0%,transparent 60%),
    var(--bg-0);
  overflow-x:hidden;
}

/* Links */
a{color:var(--link);text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:2px}
a:hover{color:var(--link-hover);text-decoration-thickness:2px;text-underline-offset:3px}
a:visited{color:var(--link-visited)}
a:focus-visible{outline:2px solid rgba(33,193,255,.65);outline-offset:2px;border-radius:4px;background:rgba(33,193,255,.08)}

/* Nav */
.nav{
  position:fixed;inset:0 0 auto 0;height:64px;display:flex;align-items:center;justify-content:space-between;
  padding:0 24px;background:linear-gradient(to bottom,rgba(10,15,28,.85),rgba(10,15,28,.3));
  backdrop-filter:blur(8px);border-bottom:1px solid rgba(255,255,255,.06);z-index:80
}
.brand{font-weight:700;letter-spacing:.2px;text-decoration:none;color:var(--text)}
.brand-accent{color:var(--accent)}
.nav-toggle{display:none}
.nav-burger{display:none;cursor:pointer;width:36px;height:36px;align-items:center;justify-content:center}
.nav-burger span,.nav-burger span::before,.nav-burger span::after{display:block;width:18px;height:2px;background:var(--text);border-radius:2px;position:relative}
.nav-burger span::before,.nav-burger span::after{content:"";position:absolute;left:0}
.nav-burger span::before{top:-6px}
.nav-burger span::after{top:6px}
.nav-links{display:flex;align-items:center;gap:10px}
.nav-links a{text-decoration:none;font-size:14px;color:var(--text)}
.pill{color:var(--text);opacity:.9;padding:10px 14px;border-radius:999px;background:var(--nav-pill-bg);border:1px solid var(--nav-pill-border)}
.pill:hover{opacity:1;box-shadow:0 8px 24px rgba(33,193,255,.1)}
.pill.current{box-shadow:inset 0 0 0 1px rgba(33,193,255,.45)}
.nav .cta{
  display:inline-flex;align-items:center;gap:10px;padding:10px 16px;border-radius:12px;color:#ecf7ff;
  background:linear-gradient(180deg,rgba(18,27,46,.95),rgba(18,27,46,.85));
  border:1px solid rgba(33,193,255,.55);box-shadow:inset 0 0 0 1px rgba(33,193,255,.35);
  text-decoration:none;white-space:nowrap;transition:transform .25s ease,box-shadow .25s ease
}
.nav .cta:hover{transform:translateY(-1px);box-shadow:0 10px 30px rgba(33,193,255,.18),inset 0 0 0 1px rgba(33,193,255,.6)}
.cta .dot{width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 16px var(--accent)}

/* Hero */
.hero{
  position:relative;min-height:620px;display:grid;place-items:center;padding:120px 24px 64px;
  overflow:clip;background:radial-gradient(60% 80% at 50% 20%,rgba(33,193,255,.08),transparent 65%),radial-gradient(40% 70% at 10% 80%,rgba(107,91,255,.08),transparent 55%),var(--bg-1);
  isolation:isolate
}
.bg-flow{
  position:absolute;inset:-10% -10% -10% -10%;z-index:-1;pointer-events:none;
  background:
    radial-gradient(circle at 50% 50%,rgba(255,255,255,.06),transparent 50%) 0 0/400px 400px,
    linear-gradient(100deg,rgba(33,193,255,.22),rgba(33,193,255,0) 30%) 0 0/900px 100%,
    linear-gradient(100deg,rgba(107,91,255,.18),rgba(107,91,255,0) 40%) 0 30%/900px 100%,
    linear-gradient(100deg,rgba(33,193,255,.18),rgba(33,193,255,0) 35%) 0 60%/900px 100%,
    linear-gradient(100deg,rgba(107,91,255,.14),rgba(107,91,255,0) 45%) 0 85%/900px 100%,
    linear-gradient(180deg,rgba(255,255,255,.01),rgba(255,255,255,0));
  animation:flow-x 22s linear infinite;will-change:background-position
}
@keyframes flow-x{
  from{background-position:0 0,0 0,0 0,0 0,0 0,0 0}
  to{background-position:-900px 0,-900px 0,-900px 0,-900px 0,-900px 0,0 0}
}

/* Card + type */
.card{
  width:100%;max-width:1100px;background:var(--glass);backdrop-filter:blur(12px);
  border:1px solid var(--glass-stroke);border-radius:24px;padding:36px 32px;
  box-shadow:0 20px 80px rgba(0,0,0,.35),inset 0 0 0 1px rgba(255,255,255,.04);
  position:relative
}
.card::after{
  content:"";position:absolute;inset:-1px;border-radius:24px;pointer-events:none;
  background:radial-gradient(600px 200px at 10% 10%,var(--ring),transparent 40%),radial-gradient(600px 200px at 90% 90%,rgba(107,91,255,.25),transparent 40%);
  filter:blur(12px);opacity:.40
}
.eyebrow{color:var(--accent);font-weight:600;letter-spacing:.18em;text-transform:uppercase;font-size:12px;margin:0}
.h1{font-size:clamp(36px,6vw,64px);line-height:1.03;margin:12px 0 8px;font-weight:800;letter-spacing:-.01em}
.sub{font-size:clamp(16px,2vw,20px);color:var(--muted);margin:0 0 20px;max-width:70ch}

/* HERO STACK (home) */
.card.hero-stack{display:grid;grid-template-columns:1fr;grid-auto-rows:auto;gap:12px}
.hero-stack .h1{max-width:none;margin:6px 0 2px;letter-spacing:-.012em}
.hero-stack .flow-visual--hero{
  width:100%;border-radius:14px;background:rgba(255,255,255,0.03);border:1px solid rgba(255,255,255,0.06);
  overflow:hidden;aspect-ratio:40/6;min-height:clamp(90px,12vw,150px);padding:0;margin:2px 0
}
.hero-stack .flow-visual--hero canvas{width:100%;height:100%;display:block}
.hero-stack .sub-after-visual{max-width:72ch;margin:6px auto 0}

/* Buttons & chips */
.cta-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.btn{
  position:relative;border:1px solid var(--glass-stroke);border-radius:14px;padding:12px 18px;
  background:linear-gradient(180deg,rgba(255,255,255,.12),rgba(255,255,255,.04));color:var(--text);
  text-decoration:none;font-weight:600;letter-spacing:.2px;display:inline-flex;gap:10px;align-items:center;
  transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;white-space:nowrap
}
.btn.primary{border-color:rgba(33,193,255,.5);box-shadow:inset 0 0 0 1px rgba(33,193,255,.6),0 10px 30px rgba(33,193,255,.12)}
.btn .pulse{position:absolute;inset:-6px;border-radius:18px;background:radial-gradient(120px 60px at 10% 40%,rgba(33,193,255,.20),transparent 40%);filter:blur(12px);opacity:.7;pointer-events:none}
.btn:hover{transform:translateY(-1px);box-shadow:0 20px 40px rgba(33,193,255,.18)}
.kickers{display:flex;gap:14px;flex-wrap:wrap;margin-top:10px;padding:0;list-style:none}
.chip{padding:8px 12px;border-radius:999px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);font-size:12px;color:var(--muted)}

/* Sections & grid */
.section{padding:88px 24px}
.section-inner{max-width:1200px;margin:0 auto}
.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:20px}
.card-mini{background:var(--glass);border:1px solid var(--glass-stroke);border-radius:18px;padding:24px;position:relative;overflow:hidden}
.card-mini .halo{content:"";position:absolute;inset:-1px;border-radius:18px;pointer-events:none;background:radial-gradient(300px 120px at 20% 20%,var(--ring),transparent 40%);filter:blur(10px);opacity:.7}
.card-mini h2{margin:0 0 6px;font-size:18px}
.card-mini p{margin:0;color:var(--muted);font-size:14px}
.card-mini{grid-column:span 12}
@media (min-width:640px){.card-mini{grid-column:span 6}}
@media (min-width:960px){.card-mini{grid-column:span 6}} /* two columns on desktop */

/* Helper spans (no inline styles) */
.span-12{grid-column:span 12}
@media (min-width:960px){.span-6{grid-column:span 6}}

/* ---------- Page hero (inner pages) ---------- */
.page-hero{position:relative;padding:140px 24px 56px;background:var(--bg-1);overflow:hidden}
.page-hero .bg-flow{position:absolute;inset:-10% -10% -10% -10%;z-index:-1}
.page-hero .page-hero-card{max-width:1100px;width:100%;margin:0 auto;display:grid;gap:12px}
.page-hero h1{margin:0 0 4px}
.page-hero .sub{margin:0 0 6px}

/* Slimmer animation used on subpages (optional use) */
.flow-visual--slim{
  width:100%;border-radius:12px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06);
  overflow:hidden;aspect-ratio:36/6;min-height:clamp(90px,14vw,160px);margin:2px 0
}
.flow-visual--slim canvas{width:100%;height:100%;display:block}

/* ---------- Contact page ---------- */
.contact-page .form-wrap{display:grid;grid-template-columns:1fr 320px;gap:24px}
@media (max-width:960px){.contact-page .form-wrap{grid-template-columns:1fr}}
.contact-form{width:100%;max-width:720px;background:var(--glass);border:1px solid var(--glass-stroke);border-radius:18px;padding:24px}
.field{display:block;margin:0 0 16px}
.field label{display:block;font-size:14px;color:var(--muted);margin:0 0 6px}
.field input,.field textarea{
  display:block;width:100%;min-width:0;padding:12px 14px;border-radius:12px;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);color:var(--text)
}
.field textarea{resize:vertical}
.field input:focus,.field textarea:focus{outline:none;border-color:rgba(33,193,255,.6);box-shadow:0 0 0 3px rgba(33,193,255,.18)}
.consent{display:flex;align-items:flex-start;gap:10px;margin:10px 0 16px;font-size:14px;color:var(--muted)}
.contact-aside{background:var(--glass);border:1px solid var(--glass-stroke);border-radius:18px;padding:20px}

/* Footer */
.site-footer{border-top:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,0))}
.footer-inner{max-width:1200px;margin:0 auto;padding:28px 24px;display:grid;grid-template-columns:1fr auto;align-items:center;gap:16px}
.footer-links{display:flex;gap:16px;flex-wrap:wrap;justify-content:flex-end}
.footer-brand{margin:0;font-weight:700}
.copyright{margin:0;color:#c6d6f0;grid-column:1 / -1}

/* Scroll cue */
.scroll-cue{position:absolute;left:50%;bottom:24px;transform:translateX(-50%);color:var(--muted);font-size:12px;opacity:.9}
.scroll-cue::after{content:"";display:block;width:2px;height:24px;margin:6px auto 0;border-radius:2px;background:linear-gradient(var(--accent),transparent);animation:drop 1.2s ease-in-out infinite}
@keyframes drop{from{transform:translateY(0);opacity:1}to{transform:translateY(6px);opacity:.3}}

/* Tables (resources) */
.table-wrap{overflow-x:auto;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06);border-radius:14px}
.table{width:100%;border-collapse:collapse;min-width:640px}
.table th,.table td{padding:14px 16px;text-align:left;border-bottom:1px solid rgba(255,255,255,.06)}
.table thead th{font-size:13px;text-transform:uppercase;letter-spacing:.14em;color:var(--muted)}
.table tbody tr:hover{background:rgba(255,255,255,.04)}
.fine-print{color:var(--muted);margin-top:10px;font-size:13px}
.action-bar{display:flex;gap:10px;justify-content:flex-end;margin:0 0 10px}
.table--dns{border-collapse:separate;border-spacing:0 12px}
.table--dns thead tr th{border-bottom:1px solid rgba(255,255,255,.10)}
.table--dns tbody tr{background:rgba(255,255,255,.02)}
.table--dns tbody tr + tr.notes-row{background:transparent}
.notes-row td{padding:0;border:none}
.table--dns td a{overflow-wrap:anywhere;word-break:break-word}
details.notes{margin-top:6px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:12px 14px}
details.notes summary{cursor:pointer;list-style:none;font-weight:600;color:var(--text);display:flex;align-items:center;gap:8px}
details.notes summary::-webkit-details-marker{display:none}
details.notes .chev{width:10px;height:10px;border-right:2px solid var(--text);border-bottom:2px solid var(--text);transform:rotate(45deg);opacity:.7;transition:transform .2s ease,opacity .2s ease}
details.notes[open] .chev{transform:rotate(225deg);opacity:1}
details.notes ul{margin:8px 0 0;padding-left:18px;color:var(--muted)}
details.notes li{margin:4px 0}

/* Mobile */
@media (max-width:1080px){.section{padding:80px 16px}}
@media (max-width:640px){
  .nav-burger{display:inline-flex}
  .nav-links{
    position:fixed;top:64px;right:0;left:0;background:rgba(10,15,28,.96);border-bottom:1px solid rgba(255,255,255,.06);
    flex-direction:column;padding:12px;gap:8px;transform:translateY(-120%);transition:transform .25s ease;z-index:85
  }
  .nav-toggle:checked ~ .nav-links{transform:translateY(0)}
  .nav-links .cta{width:100%;justify-content:center}
}

/* DNS table → mobile cards */
@media (max-width:640px){
  .table--dns colgroup,.table--dns thead{display:none}
  .table--dns{min-width:0;border-collapse:separate;border-spacing:0}
  .table--dns tbody tr{
    display:block;margin:12px 0;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.10);
    border-radius:12px;overflow:hidden
  }
  .table--dns tbody tr > th[scope="row"]{
    display:block;padding:14px 14px 8px;font-weight:700;border-bottom:1px solid rgba(255,255,255,.06)
  }
  .table--dns tbody td{display:flex;gap:10px;padding:10px 14px;border:0}
  .table--dns tbody td::before{content:attr(data-label);min-width:88px;font-weight:600;color:var(--muted)}
  .notes-row td{padding:0}
  .notes-row details.notes{border:0;border-top:1px solid rgba(255,255,255,.08);border-radius:0;margin-top:0}
  .action-bar{justify-content:stretch}
  .action-bar .btn{flex:1 1 auto;text-align:center}
}

/* iOS hardening */
@media (max-width:740px){
  :where(body,body *){writing-mode:horizontal-tb !important;text-orientation:mixed !important}
  .hero{padding:104px 16px 56px}
  .card{border-radius:20px;padding:22px 16px;backdrop-filter:none}
  .card::after{display:none}
  .hero-stack .h1{font-size:clamp(28px,9vw,44px)}
  .hero-stack .flow-visual--hero{aspect-ratio:20/5;min-height:110px;margin:2px 0}
  .cta-row .btn{width:100%;justify-content:center;white-space:normal}
  .section-inner{max-width:100%}
  .footer-inner{grid-template-columns:1fr}
  .footer-links{justify-content:center;gap:12px}
}

/* Reduced motion */
@media (prefers-reduced-motion:reduce){
  .bg-flow{animation:none;background-position:-450px 0}
  .btn{transition:none}
}

/* Safe areas */
@supports (padding: env(safe-area-inset-top)){
  .hero{padding-top:calc(96px + env(safe-area-inset-top))}
}
