/* Contra Costa WiFi
   Premium, family-friendly, tech-forward aesthetic inspired by modern ISP sites.
   Accent blend: Xfinity crimson + Astound-ish purple/green.
*/
:root{
  --bg:#0b1020;
  --card:#0f1733;
  --text:#0b1220;
  --muted:#5a677c;
  --surface:#ffffff;
  --surface2:#f6f8ff;
  --border:rgba(12, 24, 54, .12);
  --shadow:0 18px 50px rgba(2, 8, 23, .18);
  --shadow2:0 10px 30px rgba(2, 8, 23, .14);

  --accent:#c8001d;         /* Xfinity crimson (approx) */
  --accent2:#6a2deb;        /* purple */
  --accent3:#22c55e;        /* green */
  --accent4:#1f69ff;        /* blue ribbon-ish */

  --radius:18px;
  --radius2:26px;

  --max:1140px;
  --grid: clamp(16px, 2vw, 26px);
  --h1: clamp(34px, 4.4vw, 56px);
  --h2: clamp(26px, 3vw, 38px);
  --h3: clamp(18px, 2vw, 22px);
  --p: 16px;

  --font: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
}

*{box-sizing:border-box;}
html,body{height:100%;}
body{
  margin:0;
  font-family:var(--font);
  line-height:1.55;
  color:var(--text);
  background: radial-gradient(1200px 800px at 20% -10%, rgba(106,45,235,.15), transparent 55%),
              radial-gradient(1000px 700px at 90% 0%, rgba(200,0,29,.14), transparent 55%),
              radial-gradient(900px 700px at 70% 110%, rgba(34,197,94,.12), transparent 55%),
              #0b1020;
}

a{color:inherit; text-decoration:none;}
a:hover{opacity:.92;}
img{max-width:100%; height:auto;}
.container{width:min(var(--max), calc(100% - 2*var(--grid))); margin:0 auto;}
.section{padding: clamp(46px, 6vw, 84px) 0;}
.section.tight{padding: clamp(34px, 5vw, 64px) 0;}
.surface{
  background: var(--surface);
  border-radius: var(--radius2);
  box-shadow: var(--shadow);
  border: 1px solid var(--border);
  overflow:hidden;
}

.topbar{
  position:sticky;
  top:0;
  z-index:1000;
  backdrop-filter: blur(14px);
  background: rgba(11,16,32,.72);
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.nav{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding: 12px 0;
}
.brand{
  display:flex; align-items:center; gap:10px;
  color:white;
  font-weight:800;
  letter-spacing:.2px;
}
.logo{
  width:38px; height:38px; border-radius:12px;
  background: conic-gradient(from 210deg, var(--accent), var(--accent2), var(--accent3), var(--accent4), var(--accent));
  box-shadow: 0 10px 24px rgba(0,0,0,.25);
  position:relative;
  overflow:hidden;
}
.logo:after{
  content:"";
  position:absolute; inset:-1px;
  background: radial-gradient(16px 16px at 28% 26%, rgba(255,255,255,.55), transparent 60%),
              radial-gradient(18px 18px at 70% 72%, rgba(255,255,255,.38), transparent 60%);
  mix-blend-mode: overlay;
}
.navlinks{display:flex; align-items:center; gap:16px; flex-wrap:wrap;}
.navlinks a{
  color: rgba(255,255,255,.88);
  font-weight:650;
  font-size: 14px;
  padding: 8px 10px;
  border-radius: 12px;
}
.navlinks a.active,
.navlinks a:hover{
  background: rgba(255,255,255,.08);
}
.navcta{display:flex; align-items:center; gap:10px;}
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  gap:10px;
  border-radius: 999px;
  padding: 10px 14px;
  font-weight:800;
  font-size:14px;
  border: 1px solid rgba(255,255,255,.16);
  background: rgba(255,255,255,.06);
  color:white;
  transition: transform .12s ease, box-shadow .12s ease, background .12s ease;
  white-space:nowrap;
}
.btn:hover{transform: translateY(-1px); background: rgba(255,255,255,.10);}
.btn.primary{
  border-color: rgba(255,255,255,.22);
  background: linear-gradient(135deg, var(--accent), var(--accent2));
  box-shadow: 0 14px 34px rgba(200,0,29,.18);
}
.btn.primary:hover{box-shadow: 0 18px 44px rgba(200,0,29,.26);}
.btn.light{
  background: rgba(11,16,32,.05);
  border-color: rgba(11,16,32,.12);
  color: var(--text);
}
.btn.light:hover{background: rgba(11,16,32,.08);}

.burger{
  display:none;
  width:42px; height:42px;
  border-radius: 14px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.14);
  color: white;
}
.burger svg{width:20px; height:20px;}
.mobile-panel{
  display:none;
  padding: 8px 0 16px;
}
.mobile-panel a{display:block; color:white; padding:10px 12px; border-radius:12px;}
.mobile-panel a:hover{background: rgba(255,255,255,.08);}

.hero{
  padding: clamp(44px, 5.5vw, 74px) 0 clamp(26px, 3vw, 46px);
  color: white;
}
.hero-grid{
  display:grid;
  grid-template-columns: 1.1fr .9fr;
  gap: clamp(18px, 4vw, 46px);
  align-items:center;
}
.kicker{
  display:inline-flex; align-items:center; gap:10px;
  font-weight:800;
  font-size:13px;
  color: rgba(255,255,255,.86);
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.12);
}
.kicker .dot{
  width:10px; height:10px; border-radius:99px;
  background: var(--accent3);
  box-shadow: 0 0 0 6px rgba(34,197,94,.18);
}
.h1{font-size:var(--h1); line-height:1.05; margin:14px 0 10px; letter-spacing:-.6px;}
.lead{font-size: clamp(16px, 1.55vw, 19px); color: rgba(255,255,255,.86); margin: 0 0 18px; max-width: 58ch;}
.hero-actions{display:flex; gap:12px; flex-wrap:wrap; align-items:center;}
.hero-bullets{
  margin: 18px 0 0;
  display:flex; flex-wrap:wrap; gap:10px;
}
.pill{
  display:inline-flex; align-items:center; gap:10px;
  padding: 10px 12px;
  border-radius: 999px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.12);
  color: rgba(255,255,255,.88);
  font-weight:750;
  font-size: 13px;
}
.pill svg{width:16px; height:16px; opacity:.9;}

.hero-card{
  border-radius: var(--radius2);
  border: 1px solid rgba(255,255,255,.16);
  background: linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.04));
  box-shadow: 0 18px 48px rgba(0,0,0,.32);
  overflow:hidden;
  position:relative;
}
.hero-card:before{
  content:"";
  position:absolute; inset:-2px;
  background: radial-gradient(600px 420px at 70% 18%, rgba(106,45,235,.38), transparent 60%),
              radial-gradient(520px 380px at 18% 70%, rgba(200,0,29,.28), transparent 60%),
              radial-gradient(520px 360px at 70% 78%, rgba(34,197,94,.20), transparent 60%);
  filter: blur(2px);
  opacity:.85;
  pointer-events:none;
}
.hero-card-inner{
  position:relative;
  padding: 18px;
}
.mini-grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:12px;
}
.mini{
  background: rgba(11,16,32,.38);
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 16px;
  padding: 12px 12px;
}
.mini h3{margin:0 0 4px; color:white; font-size:14px; letter-spacing:.1px;}
.mini p{margin:0; color: rgba(255,255,255,.8); font-size:13px;}
.big-stat{
  margin-top:12px;
  display:flex; justify-content:space-between; align-items:flex-end; gap:12px;
  background: rgba(11,16,32,.32);
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 16px;
  padding: 14px;
}
.big-stat .num{
  font-size: 30px; font-weight:900; color:white; letter-spacing:-.4px;
}
.big-stat .sub{color: rgba(255,255,255,.8); font-size:13px; font-weight:650;}

.wave{
  height: 16px;
  background: linear-gradient(90deg, rgba(255,255,255,.12), rgba(255,255,255,.02), rgba(255,255,255,.12));
  background-size: 220% 100%;
  animation: shimmer 7s linear infinite;
  border-radius: 999px;
  margin-top: 10px;
}
@keyframes shimmer{0%{background-position:0%}100%{background-position:220%}}

.grid3{display:grid; grid-template-columns: repeat(3, 1fr); gap: 18px;}
.grid2{display:grid; grid-template-columns: repeat(2, 1fr); gap: 18px;}
.card{
  background: var(--surface);
  border-radius: var(--radius);
  border: 1px solid var(--border);
  box-shadow: var(--shadow2);
  padding: 18px;
}
.card.dark{
  background: linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.04));
  border-color: rgba(255,255,255,.14);
  color:white;
}
.card h3{margin:0 0 6px; font-size: var(--h3); letter-spacing:-.2px;}
.card p{margin:0; color: var(--muted); font-size: 15px;}
.card.dark p{color: rgba(255,255,255,.82);}

.icon{
  width:42px; height:42px;
  border-radius: 14px;
  background: rgba(200,0,29,.10);
  border: 1px solid rgba(200,0,29,.18);
  display:grid; place-items:center;
  margin-bottom: 10px;
}
.icon.alt{background: rgba(106,45,235,.10); border-color: rgba(106,45,235,.18);}
.icon.alt2{background: rgba(34,197,94,.10); border-color: rgba(34,197,94,.18);}
.icon svg{width:20px; height:20px; color: var(--accent); }
.icon.alt svg{color: var(--accent2);}
.icon.alt2 svg{color: var(--accent3);}

.h2{font-size:var(--h2); margin:0 0 10px; letter-spacing:-.4px;}
.subhead{margin:0; color: rgba(11,18,32,.70); max-width: 70ch;}
.subhead.invert{color: rgba(255,255,255,.78);}

.split{
  display:grid; grid-template-columns: 1.05fr .95fr; gap: 24px; align-items:start;
}
.note{
  background: var(--surface2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 16px;
}
.note strong{display:block; margin-bottom: 6px;}
.note p{margin:0; color: rgba(11,18,32,.72); font-size: 15px;}

.badges{display:flex; gap:10px; flex-wrap:wrap; margin-top: 12px;}
.badge{
  font-size: 12px; font-weight:800;
  border-radius: 999px;
  padding: 8px 10px;
  background: rgba(31,105,255,.10);
  border: 1px solid rgba(31,105,255,.18);
  color: rgba(11,18,32,.86);
}
.badge.red{background: rgba(200,0,29,.10); border-color: rgba(200,0,29,.18);}
.badge.green{background: rgba(34,197,94,.10); border-color: rgba(34,197,94,.18);}
.badge.purple{background: rgba(106,45,235,.10); border-color: rgba(106,45,235,.18);}

.table{
  width:100%;
  border-collapse: collapse;
  overflow:hidden;
  border-radius: var(--radius);
  border: 1px solid var(--border);
}
.table th, .table td{
  padding: 12px 12px;
  border-bottom: 1px solid var(--border);
  font-size: 14px;
}
.table th{background: var(--surface2); text-align:left;}
.table tr:last-child td{border-bottom:none;}

.faq .q{
  border-radius: var(--radius);
  border: 1px solid var(--border);
  padding: 14px 14px;
  background: var(--surface);
  box-shadow: var(--shadow2);
  cursor:pointer;
}
.faq .q + .q{margin-top: 10px;}
.faq .q h3{margin:0; font-size: 16px;}
.faq .a{display:none; color: rgba(11,18,32,.76); margin-top: 8px; font-size: 15px;}
.faq .q.open .a{display:block;}
.faq .q .chev{float:right; opacity:.55;}
.faq .q.open .chev{transform: rotate(180deg);}

.footer{
  padding: 34px 0 50px;
  color: rgba(255,255,255,.84);
}
.footer-grid{
  display:grid;
  grid-template-columns: 1.4fr 1fr 1fr;
  gap: 18px;
  align-items:start;
}
.footer a{color: rgba(255,255,255,.84);}
.footer a:hover{color:white;}
.fine{opacity:.68; font-size: 12px; margin-top: 10px;}

.breadcrumbs{
  color: rgba(255,255,255,.72);
  font-size: 13px;
  margin-top: 10px;
}
.breadcrumbs a{color: rgba(255,255,255,.86);}
.breadcrumbs a:hover{color:white;}

.reveal{opacity:0; transform: translateY(10px); transition: opacity .6s ease, transform .6s ease;}
.reveal.visible{opacity:1; transform: translateY(0);}

.page-hero{
  padding: 38px 0 24px;
  color: white;
}
.page-hero h1{margin: 10px 0 6px; font-size: clamp(30px, 4vw, 44px); letter-spacing:-.5px;}
.page-hero p{margin:0; color: rgba(255,255,255,.84); max-width: 78ch;}
.page-hero .chiprow{margin-top: 12px; display:flex; flex-wrap:wrap; gap:10px;}

.form{
  display:grid;
  gap: 12px;
}
.field{
  display:grid; gap:6px;
}
label{font-weight:800; font-size: 13px; color: rgba(11,18,32,.78);}
input, select, textarea{
  border-radius: 14px;
  border: 1px solid var(--border);
  background: white;
  padding: 12px 12px;
  font-size: 15px;
  font-family: var(--font);
  outline:none;
}
textarea{min-height: 120px; resize: vertical;}
input:focus, select:focus, textarea:focus{
  border-color: rgba(31,105,255,.45);
  box-shadow: 0 0 0 4px rgba(31,105,255,.12);
}

.callout{
  border-radius: var(--radius2);
  padding: 18px;
  border: 1px solid rgba(255,255,255,.14);
  background: linear-gradient(135deg, rgba(255,255,255,.10), rgba(255,255,255,.05));
  color: white;
  box-shadow: 0 18px 48px rgba(0,0,0,.30);
}
.callout h3{margin:0 0 6px;}
.callout p{margin:0 0 12px; color: rgba(255,255,255,.84);}

@media (max-width: 920px){
  .hero-grid{grid-template-columns: 1fr;}
  .split{grid-template-columns:1fr;}
  .grid3{grid-template-columns:1fr;}
  .grid2{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr;}
  .navlinks{display:none;}
  .burger{display:inline-flex; align-items:center; justify-content:center;}
  .mobile-panel{display:block;}
}