:root{
  --navy:#031322;
  --navy-2:#071e33;
  --blue:#0b84ff;
  --blue-2:#27b8ff;
  --ink:#0a1830;
  --muted:#5a6778;
  --line:#dce5ee;
  --soft:#f5f8fb;
  --white:#fff;
  --shadow:0 18px 50px rgba(3,19,34,.12);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:#fff}
a{color:inherit;text-decoration:none}
.wrap{width:min(1180px,calc(100% - 40px));margin:0 auto}
.site-header{position:sticky;top:0;z-index:50;background:rgba(3,19,34,.97);backdrop-filter:blur(12px);border-bottom:1px solid rgba(255,255,255,.08)}
.nav-wrap{height:84px;display:flex;align-items:center;gap:32px}
.brand{display:flex;align-items:center;margin-right:auto}
.brand img{width:245px;max-width:38vw;height:auto;display:block}
.site-nav{display:flex;gap:30px;align-items:center;color:#fff;font-weight:700;font-size:14px}
.site-nav a{opacity:.86}
.site-nav a:hover{opacity:1;color:#55c9ff}
.menu-button{display:none;background:none;color:#fff;border:1px solid rgba(255,255,255,.35);border-radius:8px;padding:9px 12px;font:inherit}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 23px;border-radius:7px;border:0;background:linear-gradient(135deg,var(--blue),#0873df);color:#fff;font-weight:800;letter-spacing:.01em;cursor:pointer;box-shadow:0 10px 24px rgba(11,132,255,.22);transition:.2s ease}
.button:hover{transform:translateY(-1px);filter:brightness(1.06)}
.button-small{min-height:42px;padding:0 17px;font-size:13px}
.button-outline{background:transparent;border:1px solid rgba(255,255,255,.7);box-shadow:none}
.button-dark{background:var(--navy);box-shadow:none}
.button-light{background:#fff;color:var(--navy);box-shadow:none}
.full{width:100%}
.hero{min-height:640px;position:relative;overflow:hidden;background:
  radial-gradient(circle at 80% 55%,rgba(0,133,255,.22),transparent 30%),
  radial-gradient(circle at 58% 30%,rgba(22,91,150,.26),transparent 35%),
  linear-gradient(180deg,#072846 0%,#031322 85%);color:#fff}
.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(3,19,34,.94) 0%,rgba(3,19,34,.78) 40%,rgba(3,19,34,.08) 76%,rgba(3,19,34,.2) 100%);z-index:1}
.mountains{position:absolute;z-index:0;left:0;right:0;bottom:0;height:78%;opacity:.58;background:
  linear-gradient(150deg,transparent 0 26%,rgba(5,28,48,.2) 26% 27%,transparent 27%) 0 0/220px 170px,
  linear-gradient(32deg,transparent 0 45%,#071a2a 45% 68%,transparent 68%) 25% 80%/520px 310px no-repeat,
  linear-gradient(145deg,transparent 0 45%,#092239 45% 70%,transparent 70%) 63% 72%/680px 390px no-repeat,
  linear-gradient(35deg,transparent 0 45%,#061725 45% 69%,transparent 69%) 94% 87%/620px 350px no-repeat}
.fiber{position:absolute;z-index:1;height:3px;border-radius:999px;right:-8%;background:linear-gradient(90deg,transparent,var(--blue-2),#fff,var(--blue));box-shadow:0 0 14px var(--blue),0 0 30px rgba(11,132,255,.8);transform-origin:right center;opacity:.9}
.fiber-one{width:64%;top:58%;transform:rotate(-7deg)}
.fiber-two{width:56%;top:64%;transform:rotate(-3deg)}
.fiber-three{width:49%;top:70%;transform:rotate(1deg)}
.hero-inner{position:relative;z-index:2;min-height:640px;display:flex;align-items:center;padding:70px 0}
.hero-copy{max-width:670px}
.eyebrow{text-transform:uppercase;letter-spacing:.15em;font-weight:800;font-size:12px;color:#63cbff;margin:0 0 15px}
.eyebrow.dark{color:#1170c9}
.hero h1{font-size:clamp(50px,6.5vw,86px);line-height:.96;letter-spacing:-.055em;margin:0;text-transform:uppercase}
.hero h1 span{color:#27a7ff}
.hero-lead{font-size:20px;line-height:1.55;color:#e7f0f7;max-width:600px;margin:26px 0 30px}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap}
.section{padding:92px 0}
.section-heading{max-width:730px;margin-bottom:42px}
.section-heading h2,.benefits h2,.coverage h2,.support h2,.cta-section h2{font-size:clamp(34px,4vw,52px);line-height:1.08;letter-spacing:-.035em;margin:0 0 16px}
.section-heading p{font-size:18px;color:var(--muted);line-height:1.65}
.plans-section{background:#fff}
.plans-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;align-items:stretch}
.plan-card{position:relative;border:1px solid var(--line);border-radius:16px;padding:34px;background:#fff;box-shadow:0 10px 30px rgba(8,30,51,.05);display:flex;flex-direction:column;min-height:430px}
.plan-card.featured{border:2px solid var(--blue);box-shadow:var(--shadow);transform:translateY(-8px)}
.popular{position:absolute;left:-2px;right:-2px;top:-31px;border-radius:12px 12px 0 0;background:var(--blue);color:#fff;text-align:center;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;padding:8px}
.plan-card h3{font-size:31px;margin:0}
.plan-subtitle{color:var(--muted);margin:7px 0 0}
.price{font-size:58px;font-weight:800;letter-spacing:-.04em;color:var(--blue);margin:26px 0}
.price span{font-size:24px;vertical-align:top;position:relative;top:9px}
.price small{font-size:14px;color:var(--muted);font-weight:500;letter-spacing:0}
.plan-card ul{list-style:none;margin:0 0 30px;padding:0;display:grid;gap:14px;color:#263548;line-height:1.45}
.plan-card li{padding-left:24px;position:relative}
.plan-card li:before{content:"✓";position:absolute;left:0;color:var(--blue);font-weight:800}
.plan-card .button{margin-top:auto}
.fine-print{font-size:12px;color:#738092;max-width:900px;line-height:1.6;margin:28px auto 0;text-align:center}
.benefits{background:var(--soft);border-top:1px solid #edf2f6;border-bottom:1px solid #edf2f6}
.benefits-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:90px;align-items:start}
.muted{color:var(--muted);font-size:18px;line-height:1.7}
.benefit-list{display:grid;gap:16px}
.benefit{display:flex;gap:18px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:23px;box-shadow:0 10px 30px rgba(8,30,51,.04)}
.icon{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;flex:0 0 auto;background:#e9f5ff;color:var(--blue);font-weight:900;font-size:22px}
.benefit h3{margin:1px 0 6px;font-size:18px}
.benefit p{margin:0;color:var(--muted);line-height:1.5}
.coverage{position:relative;background:linear-gradient(135deg,#031322,#072b4b);color:#fff;overflow:hidden}
.coverage:after{content:"";position:absolute;width:440px;height:440px;border:1px solid rgba(39,184,255,.18);border-radius:50%;right:-120px;top:-180px;box-shadow:0 0 0 50px rgba(39,184,255,.035),0 0 0 100px rgba(39,184,255,.02)}
.coverage-grid{position:relative;z-index:1;display:grid;grid-template-columns:.85fr 1.15fr;gap:70px;align-items:center}
.coverage p{color:#cddbe7;line-height:1.65}
.coverage-note{font-size:13px;opacity:.82}
.availability-card{background:#fff;color:var(--ink);padding:32px;border-radius:18px;box-shadow:0 22px 50px rgba(0,0,0,.28)}
.availability-card label{font-weight:800;display:block;margin-bottom:10px}
.address-row{display:grid;grid-template-columns:1fr auto;gap:10px}
.address-row input{width:100%;height:50px;border:1px solid #cbd7e2;border-radius:7px;padding:0 15px;font:inherit;font-size:15px;outline:none}
.address-row input:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(11,132,255,.12)}
.privacy-note{font-size:11px!important;color:#7b8793!important;margin:11px 0 0}
.result{display:none;margin-top:18px;padding:17px;border-radius:10px;font-size:15px;line-height:1.5}
.result.show{display:block}
.result.good{background:#ecf9f1;color:#145d31;border:1px solid #bce7cb}
.result.bad{background:#fff4f1;color:#8b2e1f;border:1px solid #f0c9bf}
.result.neutral{background:#f2f6fa;color:#31465b;border:1px solid #d7e1ea}
.support{background:#fff}
.support-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px;align-items:center}
.contact-cards{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.contact-card{border:1px solid var(--line);padding:28px;border-radius:14px;transition:.2s ease;background:#fff}
.contact-card:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:#b9d8f1}
.contact-card span{display:block;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.12em;font-weight:800;margin-bottom:9px}
.contact-card strong{font-size:18px;word-break:break-word}
.cta-section{background:linear-gradient(90deg,#0a7be7,#1599ff);color:#fff;padding:52px 0}
.cta-inner{display:flex;align-items:center;justify-content:space-between;gap:30px}
.cta-section h2{margin:0}
.cta-section .eyebrow{color:#eaf7ff}
.footer{background:#020c15;color:#bdc9d3;padding:52px 0 28px}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:40px}
.footer-logo{width:230px;max-width:100%;filter:none}
.footer p{line-height:1.6;margin:8px 0}
.footer strong{color:#fff}
.footer a:hover{color:#58c7ff}
.copyright{border-top:1px solid rgba(255,255,255,.1);margin-top:40px;padding-top:22px;font-size:12px;color:#80909f}
@media (max-width:980px){
  .nav-cta{display:none}
  .site-nav{gap:18px}
  .plans-grid{grid-template-columns:1fr;max-width:660px;margin:0 auto}
  .plan-card.featured{transform:none;margin-top:22px}
  .benefits-grid,.coverage-grid,.support-grid{grid-template-columns:1fr;gap:42px}
}
@media (max-width:760px){
  .wrap{width:min(100% - 28px,1180px)}
  .nav-wrap{height:72px}
  .brand img{width:205px;max-width:65vw}
  .menu-button{display:block}
  .site-nav{display:none;position:absolute;top:72px;left:0;right:0;background:#031322;padding:18px 20px 24px;flex-direction:column;align-items:flex-start;border-top:1px solid rgba(255,255,255,.08)}
  .site-nav.open{display:flex}
  .hero,.hero-inner{min-height:570px}
  .hero-inner{padding:60px 0}
  .hero h1{font-size:clamp(46px,14vw,68px)}
  .hero-lead{font-size:17px}
  .section{padding:70px 0}
  .plan-card{padding:28px}
  .address-row{grid-template-columns:1fr}
  .contact-cards{grid-template-columns:1fr}
  .cta-inner{align-items:flex-start;flex-direction:column}
  .footer-grid{grid-template-columns:1fr}
}


/* ---------- Customer Portal ---------- */
.portal-link{
  color:#77d6ff!important;
}
.portal-back{
  color:#d9e9f5;
  font-size:14px;
  font-weight:700;
  margin-left:auto;
}
.portal-back:hover{color:#55c9ff}

.portal-body{
  min-height:100vh;
  display:flex;
  flex-direction:column;
  background:#031322;
}
.portal-main{
  position:relative;
  overflow:hidden;
  flex:1;
  display:grid;
  place-items:center;
  padding:72px 20px;
  background:
    radial-gradient(circle at 18% 28%,rgba(19,139,245,.18),transparent 25%),
    radial-gradient(circle at 78% 70%,rgba(39,184,255,.13),transparent 28%),
    linear-gradient(135deg,#031322,#061f36 56%,#031322);
}
.portal-main:before{
  content:"";
  position:absolute;
  inset:0;
  opacity:.16;
  background-image:
    linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px);
  background-size:54px 54px;
  mask-image:linear-gradient(to bottom,transparent,black 20%,black 80%,transparent);
}
.portal-shell{
  width:min(1050px,100%);
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:.95fr 1.05fr;
  gap:70px;
  align-items:center;
}
.portal-intro{
  color:#fff;
}
.portal-intro h1{
  margin:0;
  text-transform:uppercase;
  font-size:clamp(48px,6vw,75px);
  line-height:.98;
  letter-spacing:-.05em;
}
.portal-intro h1 span{color:#2bb9ff}
.portal-intro>p:not(.eyebrow){
  color:#c9d9e7;
  max-width:500px;
  font-size:18px;
  line-height:1.65;
  margin-top:24px;
}
.portal-help{
  margin-top:45px;
  padding-top:25px;
  border-top:1px solid rgba(255,255,255,.13);
  display:grid;
  gap:7px;
}
.portal-help p{margin:0 0 5px!important;font-size:13px!important;color:#fff!important}
.portal-help a{
  color:#8bdcff;
  font-weight:600;
  font-size:14px;
}
.login-card{
  background:#fff;
  border-radius:20px;
  box-shadow:0 30px 80px rgba(0,0,0,.34);
  padding:38px;
}
.login-card-heading{
  display:flex;
  align-items:center;
  gap:16px;
  margin-bottom:31px;
}
.login-mark{
  width:50px;
  height:50px;
  display:grid;
  place-items:center;
  border-radius:12px;
  background:linear-gradient(135deg,#08233b,#031322);
  color:#2bc3ff;
  font-size:25px;
  font-weight:900;
}
.login-card h2{
  margin:0 0 5px;
  font-size:27px;
  letter-spacing:-.025em;
}
.login-card-heading p{
  margin:0;
  color:var(--muted);
  font-size:13px;
}
.login-form{
  display:grid;
  gap:10px;
}
.login-form>label,
.password-label label{
  font-size:13px;
  font-weight:800;
  color:#223247;
}
.login-form input[type="text"],
.login-form input[type="password"]{
  width:100%;
  height:52px;
  border:1px solid #cad6e2;
  border-radius:8px;
  padding:0 14px;
  font:inherit;
  outline:none;
  margin-bottom:10px;
}
.login-form input[type="text"]:focus,
.login-form input[type="password"]:focus{
  border-color:var(--blue);
  box-shadow:0 0 0 3px rgba(11,132,255,.12);
}
.password-label{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
}
.password-label a{
  color:#0878dc;
  font-size:12px;
  font-weight:700;
}
.password-wrap{
  position:relative;
}
.password-wrap input{
  padding-right:66px!important;
}
.show-password{
  position:absolute;
  right:12px;
  top:15px;
  background:none;
  border:0;
  color:#2678ba;
  font-weight:700;
  cursor:pointer;
}
.remember-row{
  display:flex!important;
  align-items:center;
  gap:9px;
  font-weight:500!important;
  color:#556477!important;
  margin:1px 0 13px;
}
.remember-row input{accent-color:var(--blue)}
.portal-submit{height:53px}
.portal-message{
  display:none;
  border-radius:8px;
  padding:13px 14px;
  margin-top:4px;
  font-size:13px;
  line-height:1.5;
}
.portal-message.show{display:block}
.portal-message.error{
  background:#fff2ef;
  border:1px solid #f0c7bd;
  color:#87301e;
}
.portal-message.info{
  background:#eef7ff;
  border:1px solid #bfdef7;
  color:#254c6d;
}
.login-security{
  border-top:1px solid #e5ebf0;
  margin-top:25px;
  padding-top:20px;
  display:flex;
  gap:10px;
  color:#788594;
  font-size:11px;
  line-height:1.55;
}
.login-security p{margin:0}
.portal-footer{
  background:#020c15;
  color:#748593;
  font-size:11px;
  padding:19px 0;
  text-align:center;
}
@media (max-width:800px){
  .portal-main{padding:50px 18px}
  .portal-shell{grid-template-columns:1fr;gap:35px;max-width:600px}
  .portal-intro h1{font-size:50px}
  .portal-intro>p:not(.eyebrow){font-size:16px}
  .portal-help{display:none}
  .login-card{padding:28px 22px}
}
@media (max-width:500px){
  .portal-back{font-size:12px}
  .portal-intro h1{font-size:42px}
}


/* ---------- Account Creation ---------- */
.create-account-divider{
  display:flex;
  align-items:center;
  gap:12px;
  color:#8491a0;
  font-size:11px;
  margin:10px 0 2px;
}
.create-account-divider:before,
.create-account-divider:after{
  content:"";
  height:1px;
  background:#e1e7ed;
  flex:1;
}
.account-header-links{
  display:flex;
  gap:22px;
  align-items:center;
  margin-left:auto;
}
.registration-main{
  flex:1;
  background:
    radial-gradient(circle at 15% 18%,rgba(17,127,228,.18),transparent 25%),
    linear-gradient(145deg,#031322,#082943);
  padding:70px 20px 90px;
}
.registration-shell{
  width:min(1120px,100%);
  margin:0 auto;
  display:grid;
  grid-template-columns:.72fr 1.28fr;
  gap:64px;
  align-items:start;
}
.registration-heading{
  color:#fff;
  position:sticky;
  top:135px;
}
.registration-heading h1{
  margin:0;
  font-size:clamp(42px,5vw,66px);
  line-height:1.02;
  letter-spacing:-.045em;
}
.registration-heading>p:not(.eyebrow){
  color:#cad9e5;
  font-size:17px;
  line-height:1.7;
  margin:23px 0 0;
}
.signup-security-list{
  display:grid;
  gap:12px;
  margin-top:35px;
  color:#dceaf4;
  font-size:14px;
}
.signup-security-list div{
  display:flex;
  gap:10px;
  align-items:center;
}
.signup-security-list span{
  width:23px;
  height:23px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:rgba(43,195,255,.13);
  color:#66d3ff;
  font-weight:900;
}
.registration-card{
  background:#fff;
  border-radius:20px;
  box-shadow:0 30px 80px rgba(0,0,0,.28);
  overflow:hidden;
}
.registration-note{
  display:flex;
  gap:8px;
  flex-direction:column;
  padding:18px 30px;
  background:#edf7ff;
  color:#315772;
  border-bottom:1px solid #cfe5f5;
  font-size:12px;
  line-height:1.45;
}
.registration-note strong{color:#174e77}
#registration-form{
  padding:34px;
}
#registration-form fieldset{
  border:0;
  padding:0;
  margin:0 0 31px;
}
#registration-form legend{
  width:100%;
  font-size:13px;
  text-transform:uppercase;
  letter-spacing:.1em;
  color:#1769ad;
  font-weight:800;
  border-bottom:1px solid #e4eaf0;
  padding-bottom:11px;
  margin-bottom:19px;
}
.form-two{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
}
.form-three{
  display:grid;
  grid-template-columns:1fr .38fr .65fr;
  gap:16px;
}
.field{margin-bottom:16px}
.field label{
  display:block;
  color:#25364b;
  font-size:12px;
  font-weight:800;
  margin-bottom:8px;
}
.field input{
  width:100%;
  height:49px;
  border:1px solid #cbd7e2;
  border-radius:8px;
  padding:0 13px;
  font:inherit;
  outline:none;
}
.field input:focus{
  border-color:var(--blue);
  box-shadow:0 0 0 3px rgba(11,132,255,.11);
}
.field-help{
  font-size:11px;
  line-height:1.5;
  color:#728191;
  margin:7px 0 0;
}
.bot-field{
  position:absolute!important;
  left:-10000px!important;
  width:1px!important;
  height:1px!important;
  overflow:hidden!important;
}
.password-meter{
  height:5px;
  background:#e8edf2;
  border-radius:999px;
  overflow:hidden;
  margin-top:-3px;
}
.password-meter span{
  display:block;
  width:0;
  height:100%;
  background:linear-gradient(90deg,#dd6f48,#e6b126,#29a86e);
  transition:width .2s ease;
}
.human-check{
  padding:20px;
  border:1px solid #dce5ed;
  border-radius:11px;
  background:#f8fafc;
  margin:2px 0 19px;
}
.human-check-title{
  font-size:13px;
  font-weight:800;
  margin:0 0 14px;
}
.terms-row{
  display:flex;
  align-items:flex-start;
  gap:10px;
  color:#5d6b7b;
  font-size:12px;
  line-height:1.5;
  margin-bottom:20px;
}
.terms-row input{
  margin-top:3px;
  accent-color:var(--blue);
}
.registration-submit{min-height:54px}
.signup-footer{
  text-align:center;
  padding:20px;
  border-top:1px solid #e4eaf0;
  color:#6a7888;
  font-size:12px;
}
.signup-footer a{color:#0878dc;font-weight:800}
.registration-result-wrap{
  flex:1;
  display:grid;
  place-items:center;
  padding:60px 20px;
  background:linear-gradient(145deg,#031322,#082943);
}
.success-page{
  width:min(590px,100%);
  padding:42px;
  background:#fff;
  border-radius:18px;
  box-shadow:0 28px 70px rgba(0,0,0,.3);
  text-align:center;
}
.success-page img{
  width:240px;
  max-width:70%;
  background:#031322;
  padding:12px 15px;
  border-radius:10px;
}
.success-page h1{
  font-size:34px;
  margin:28px 0 13px;
  letter-spacing:-.035em;
}
.success-page p{
  color:#59697a;
  line-height:1.65;
  font-size:14px;
  margin-bottom:25px;
}
.good-result{border-top:5px solid #27a968}
.error-result{border-top:5px solid #d26950}
@media(max-width:850px){
  .registration-shell{grid-template-columns:1fr;gap:35px;max-width:700px}
  .registration-heading{position:static}
  .signup-security-list{grid-template-columns:1fr 1fr}
}
@media(max-width:600px){
  .account-header-links .portal-back:first-child{display:none}
  .registration-main{padding:45px 14px 70px}
  .registration-heading h1{font-size:42px}
  #registration-form{padding:25px 20px}
  .form-two,.form-three{grid-template-columns:1fr}
  .signup-security-list{grid-template-columns:1fr}
  .registration-note{padding:16px 20px}
  .success-page{padding:32px 22px}
}
