/* AstroCore — site styles */
:root{
  --navy:#061523; --navy-2:#04101A; --panel:#0E2A40; --panel-2:#12344D; --line:#1E4A66; --line-2:#2E5A78;
  --teal:#14F0D6; --teal-2:#0CADC1; --teal-3:#6EFEE3; --teal-ink:#04202A; --teal-dark:#0A7F8F;
  --ink:#0B1F2E; --ink-2:#33495A; --muted:#5C7282; --mist:#F4F8FA; --rule:#E1E9EE;
  --on-dark:#F4F8FA; --on-dark-2:#B7C9D6; --on-dark-3:#9FB3C2;
  --grad:linear-gradient(135deg,#6EFEE3,#14F0D6 45%,#0CADC1);
  --display:'Poppins',sans-serif; --body:'Plus Jakarta Sans',sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#fff;color:var(--ink);font-family:var(--body);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:var(--teal-dark)} a:hover{color:#065B67}
.wrap{max-width:1240px;margin:0 auto;padding:0 24px;position:relative;z-index:1}
.eyebrow{margin:0 0 12px;font:700 14px/1 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--teal-dark)}
.dark .eyebrow{color:var(--teal)}
h1,h2,h3{font-family:var(--display);margin:0}
.h2{font:800 clamp(32px,4vw,52px)/1.08 var(--display);letter-spacing:-.02em;max-width:820px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 26px;border-radius:999px;font:700 16px/1 var(--body);text-decoration:none;cursor:pointer;border:0;transition:transform .15s,box-shadow .15s,background .15s}
.btn:hover{transform:translateY(-2px)}
.btn-teal{background:var(--teal);color:var(--teal-ink)} .btn-teal:hover{color:var(--teal-ink);box-shadow:0 10px 30px rgba(20,240,214,.35)}
.btn-ghost{border:1px solid var(--line-2);color:var(--on-dark);background:transparent} .btn-ghost:hover{color:#fff;border-color:var(--teal)}
.dark{background:var(--navy);color:var(--on-dark)}
section{position:relative;overflow:hidden}

/* ---------- blueprint city band ---------- */
.city{position:absolute;left:0;right:0;bottom:0;pointer-events:none;overflow:hidden;z-index:0}
.city-track{display:flex;height:100%;width:max-content;animation:city-drift 140s linear infinite}
.city-track svg{height:100%;width:auto;flex:none;display:block}
@keyframes city-drift{from{transform:translateX(0)}to{transform:translateX(-50%)}}
#city path{stroke-dasharray:3000;animation:bp-draw 4.5s cubic-bezier(.4,0,.2,1) both}
@keyframes bp-draw{from{stroke-dashoffset:3000}to{stroke-dashoffset:0}}

/* ---------- header / hero ---------- */
.hero{background:var(--navy);color:var(--on-dark);position:relative;overflow:hidden}
.hero-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(20,240,214,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(20,240,214,.05) 1px,transparent 1px);background-size:56px 56px;pointer-events:none}
.hero-glow{position:absolute;right:-10%;top:-20%;width:70%;height:140%;background:radial-gradient(closest-side,rgba(20,240,214,.18),rgba(20,240,214,0));pointer-events:none}
.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,21,35,.85) 0%,rgba(6,21,35,.45) 50%,rgba(6,21,35,.05) 100%);pointer-events:none;z-index:0}
.nav{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;padding-top:22px;padding-bottom:22px}
.nav-logo img{height:46px;width:auto}
.nav-links{display:flex;flex-wrap:wrap;gap:28px;font:600 15px/1 var(--body)}
.nav-links a{color:#C9D8E2;text-decoration:none} .nav-links a:hover{color:var(--teal)}
.nav-cta{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.nav-phone{color:var(--on-dark);text-decoration:none;font:600 15px/1 var(--body);padding:14px 6px}
.nav-phone:hover{color:var(--teal)}
.hero-body{padding-top:64px;padding-bottom:96px}
.hero-copy{max-width:680px;display:flex;flex-direction:column;gap:26px}
.pill{display:inline-flex;align-self:flex-start;align-items:center;gap:10px;padding:9px 16px;border-radius:999px;border:1px solid rgba(20,240,214,.4);background:rgba(20,240,214,.08);font:600 14px/1 var(--body);color:#9FF7EA}
.dot{width:8px;height:8px;border-radius:50%;background:var(--teal);animation:pulse 1.6s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}
.hero h1{font:800 clamp(40px,5.4vw,72px)/1.04 var(--display);letter-spacing:-.03em}
.hero h1 span{color:var(--teal)}
.hero-sub{margin:0;max-width:560px;font:400 20px/1.6 var(--body);color:var(--on-dark-2)}
.hero-ctas{display:flex;flex-wrap:wrap;gap:12px}
.hero-ctas .btn{min-height:58px;font-size:17px}
.checks{display:flex;flex-wrap:wrap;gap:22px;font:500 15px/1.4 var(--body);color:var(--on-dark-3)}
.brokers{position:relative;z-index:1;border-top:1px solid #12344D;padding:30px 0 34px;background:rgba(4,16,26,.55)}
.brokers p{margin:0 0 20px;text-align:center;font:600 13px/1.4 var(--body);letter-spacing:.16em;text-transform:uppercase;color:var(--on-dark-3)}
.marquee{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.marquee ul{list-style:none;margin:0;padding:0 110px 0 0;display:flex;flex-wrap:nowrap;width:max-content;gap:110px;align-items:center;animation:marquee 45s linear infinite}
.marquee ul:hover{animation-play-state:paused}
.marquee li{flex:none;width:170px;height:72px;display:flex;align-items:center;justify-content:center;opacity:.85;transition:opacity .2s,transform .2s}
.marquee li:hover{opacity:1;transform:translateY(-2px)}
.marquee img{width:auto;max-width:160px}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ---------- process animation ---------- */
.process{background:var(--navy-2);color:var(--on-dark);padding:96px 0}
.proc{display:flex;flex-wrap:wrap;gap:28px;align-items:stretch}
.stage{flex:999 1 560px;min-width:0;min-height:520px;border-radius:32px;background:radial-gradient(120% 90% at 80% 0%,#12344D,#071C2B 60%);border:1px solid var(--line);position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;padding:64px 36px 36px}
.stage-top{position:absolute;left:24px;right:16px;top:16px;display:flex;justify-content:space-between;align-items:center}
.stage-count{font:700 13px/1 var(--body);letter-spacing:.12em;color:var(--on-dark-3)}
.stage-play{height:40px;padding:0 16px;border-radius:999px;border:1px solid var(--line-2);background:transparent;color:#E6EEF3;font:700 13px/1 var(--body);cursor:pointer}
.scene{display:none;width:100%;max-width:520px;flex-direction:column;gap:16px}
.scene.active{display:flex}
.scene.center{align-items:center;text-align:center}
.card-w{background:#fff;color:var(--ink);border-radius:20px;padding:18px 22px;box-shadow:0 30px 60px rgba(0,0,0,.4)}
.searchbar{display:flex;align-items:center;gap:14px;font:600 22px/1.2 var(--body)}
.typed{display:inline-block;overflow:hidden;white-space:nowrap;border-right:3px solid var(--teal-dark);width:0}
.scene.active .typed{animation:type 1.3s steps(13) .3s both,blink .8s step-end infinite}
@keyframes type{from{width:0}to{width:13.5ch}}
@keyframes blink{50%{border-color:transparent}}
.mini3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.mini{padding:16px;border-radius:18px;background:var(--panel);border:1px solid var(--line)}
.mini small{display:block;font:700 12px/1 var(--body);letter-spacing:.08em;color:var(--on-dark-3)}
.mini b{display:block;margin-top:8px;font:700 17px/1.3 var(--display)}
.check-row{display:flex;align-items:center;gap:14px;font:600 17px/1.3 var(--body)}
.tick{width:30px;height:30px;flex:none;border-radius:50%;background:var(--teal);display:flex;align-items:center;justify-content:center;font:800 16px/1 var(--display);color:var(--teal-ink)}
.badge-grad{align-self:flex-start;padding:12px 18px;border-radius:999px;background:var(--grad);color:var(--teal-ink);font:800 16px/1 var(--display)}
.bubble-in{align-self:flex-start;max-width:82%;padding:16px 20px;border-radius:22px 22px 22px 6px;background:#E8EEF2;color:#0B2A40;font:500 18px/1.45 var(--body)}
.bubble-out{align-self:flex-end;max-width:85%;padding:16px 20px;border-radius:22px 22px 6px 22px;background:var(--grad);color:var(--teal-ink);font:600 18px/1.45 var(--body)}
.ringer{position:relative;width:150px;height:150px;display:flex;align-items:center;justify-content:center}
.ringer i{position:absolute;inset:0;border-radius:50%;border:3px solid var(--teal);animation:ring 1.4s ease-out infinite}
.ringer i+i{animation-delay:.7s}
.ringer span{width:110px;height:110px;border-radius:50%;background:#2ECC71;display:flex;align-items:center;justify-content:center;animation:shake .7s ease-in-out infinite}
@keyframes ring{0%{transform:scale(.6);opacity:.9}100%{transform:scale(1.9);opacity:0}}
@keyframes shake{0%,100%{transform:rotate(0)}20%{transform:rotate(-8deg)}40%{transform:rotate(8deg)}60%{transform:rotate(-6deg)}80%{transform:rotate(6deg)}}
.hub{width:120px;height:120px;border-radius:34px;background:var(--navy);border:1px solid #2E7A8A;display:flex;align-items:center;justify-content:center;position:relative}
.hub i{position:absolute;inset:0;border-radius:34px;border:2px solid var(--teal);animation:ring 1.4s ease-out infinite}
.scene.active .anim{animation:fadeup .6s cubic-bezier(.2,.8,.2,1) both}
.scene.active .anim-pop{animation:pop .5s cubic-bezier(.2,.8,.2,1) both}
@keyframes fadeup{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes pop{0%{opacity:0;transform:scale(.6)}70%{transform:scale(1.06)}100%{opacity:1;transform:none}}
.steps{flex:1 1 340px;min-width:0;display:flex;flex-direction:column;gap:6px;margin:0;padding:0;list-style:none}
.step{border:0;background:transparent;text-align:left;cursor:pointer;padding:18px 20px;border-radius:18px;display:flex;flex-direction:column;gap:10px;color:#7F97AA;width:100%;font-family:inherit}
.step:hover{background:rgba(20,240,214,.06)}
.step.on{background:var(--panel);color:var(--on-dark)}
.step-h{display:flex;align-items:center;gap:14px}
.step-n{font:800 14px/1 var(--display);color:var(--teal)}
.step-t{font:700 18px/1.3 var(--display)}
.bar{height:4px;border-radius:4px;background:#12344D;overflow:hidden;display:block}
.bar span{display:block;height:100%;width:0;background:var(--teal)}

/* ---------- stats / services ---------- */
.stats{padding:88px 0 40px}
.grid4{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:20px}
.stat{padding:30px;border-radius:24px;background:var(--mist);border:1px solid var(--rule)}
.stat.dark{background:var(--navy);border-color:var(--navy)}
.stat b{display:block;font:800 52px/1 var(--display)}
.stat.dark b{color:var(--teal)}
.stat span{display:block;margin-top:12px;font:600 17px/1.45 var(--body);color:var(--ink-2)}
.stat.dark span{color:var(--on-dark)}
.foot-note{margin:18px 0 0;font:400 13px/1.5 var(--body);color:var(--muted)}
.services{padding:56px 0 88px}
.svc2{margin-top:44px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:20px}
.svc{display:flex;flex-direction:column;gap:14px;padding:36px;border-radius:28px;text-decoration:none;background:var(--mist);border:1px solid var(--rule);color:var(--ink)}
.svc.dark{background:var(--navy);border-color:var(--navy);color:var(--on-dark)}
.svc small{font:700 14px/1 var(--body);letter-spacing:.12em;color:var(--teal-dark)}
.svc.dark small{color:var(--teal)}
.svc strong{font:800 32px/1.15 var(--display)}
.svc span{font:400 17px/1.6 var(--body);color:var(--ink-2)}
.svc.dark span{color:var(--on-dark-2)}
.feat{margin-top:20px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:20px}
.feat div{padding:28px;border-radius:22px;border:1px solid var(--rule);background:rgba(255,255,255,.85)}
.feat div.hl{background:#E3FBF8;border-color:#B8F1EA}
.feat h3{margin:0 0 10px;font:700 19px/1.3 var(--display)}
.feat p{margin:0;font:400 15px/1.6 var(--body);color:var(--ink-2)}

/* ---------- reviews ---------- */
.reviews{padding:96px 0}
.rev-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:44px}
.chips-st{display:flex;flex-wrap:wrap;gap:8px}
.chips-st span{padding:10px 16px;border-radius:999px;background:var(--panel);border:1px solid var(--line);font:700 14px/1 var(--body)}
.rev-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr));gap:20px}
.rev{margin:0;padding:30px;border-radius:26px;background:var(--panel);border:1px solid var(--line);display:flex;flex-direction:column;justify-content:space-between;gap:26px}
.rev blockquote{margin:0;font:500 18px/1.6 var(--body);color:#E6EEF3}
.rev figcaption{display:flex;align-items:center;gap:14px}
.rev img{width:64px;height:64px;border-radius:50%;object-fit:cover;flex:none;border:2px solid var(--teal);background:#fff}
.rev .who{flex:1;min-width:0}
.rev .who b{display:block;font:700 17px/1.3 var(--display)}
.rev .who span{display:block;font:500 14px/1.3 var(--body);color:var(--on-dark-3)}
.rev .st{padding:8px 12px;border-radius:999px;background:var(--teal);color:var(--teal-ink);font:800 13px/1 var(--display)}

/* ---------- discovery ---------- */
.discovery{padding:96px 0;background:var(--mist)}
.phases{margin-top:28px;display:flex;flex-wrap:wrap;gap:10px;list-style:none;padding:0}
.phase{display:inline-flex;align-items:center;gap:10px;padding:10px 16px;border-radius:999px;font:700 14px/1 var(--body);background:#fff;color:var(--ink-2)}
.phase i{width:24px;height:24px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--rule);color:var(--teal-ink);font:800 12px/1 var(--display);font-style:normal}
.phase.on{background:var(--navy);color:var(--on-dark)} .phase.on i,.phase.done i{background:var(--teal)}
.disc{margin-top:28px;display:flex;flex-wrap:wrap;gap:24px;align-items:stretch}
.mapbox{flex:999 1 600px;min-width:0;border-radius:32px;background:radial-gradient(120% 100% at 50% 0%,#0E2A40,#061523 70%);padding:28px;color:var(--on-dark)}
.map-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px}
.map-head b{font:700 18px/1.3 var(--display)}
.map-head span{font:600 13px/1 var(--body);color:var(--on-dark-3)}
.usmap{display:grid;grid-template-columns:repeat(11,minmax(0,1fr));gap:6px}
.tile{border:1px solid var(--line);background:var(--panel);color:var(--on-dark-3);border-radius:10px;font:700 13px/1 var(--body);cursor:pointer;aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;padding:0;transition:transform .15s,background .15s,border-color .15s;animation:tile .5s cubic-bezier(.2,.8,.2,1) both}
.tile:hover,.tile:focus-visible{transform:translateY(-3px);border-color:var(--teal);color:var(--on-dark);background:var(--panel-2);outline:none}
.tile.on{background:var(--grad);color:var(--teal-ink);border-color:var(--teal-3);transform:translateY(-3px) scale(1.06);box-shadow:0 10px 30px rgba(20,240,214,.45)}
@keyframes tile{from{opacity:0;transform:scale(.4)}to{opacity:1;transform:none}}
.panel{flex:1 1 380px;min-width:0;border-radius:32px;background:#fff;border:1px solid var(--rule);padding:30px;display:flex;flex-direction:column;gap:16px;min-height:560px}
.pane{display:flex;flex-direction:column;gap:14px;flex:1}
.pane[hidden]{display:none}
.pane-h{display:flex;justify-content:space-between;align-items:center;gap:10px}
.pane-h b{font:800 26px/1.2 var(--display)}
.linkbtn{border:0;background:transparent;color:var(--teal-dark);font:700 14px/1 var(--body);cursor:pointer;padding:10px}
.pane p{margin:0;font:400 16px/1.6 var(--body);color:var(--ink-2)}
.field{height:54px;border:1px solid #CFDCE4;border-radius:14px;padding:0 16px;font:500 16px/1 var(--body);color:var(--ink);background:#fff;width:100%}
.field:focus{outline:2px solid var(--teal);border-color:var(--teal-dark)}
.lbl{font:700 13px/1 var(--body);letter-spacing:.12em;color:var(--muted);margin-top:8px}
.cnt-row{display:flex;justify-content:space-between;align-items:center;font:600 13px/1 var(--body);color:var(--muted)}
.chips{display:flex;flex-wrap:wrap;gap:8px;max-height:300px;overflow-y:auto;padding:2px}
.chip{border:1px solid #CFDCE4;background:#fff;color:#22394A;border-radius:999px;padding:10px 14px;font:600 14px/1 var(--body);cursor:pointer;min-height:40px}
.chip:hover{border-color:var(--teal-dark)}
.chip[aria-pressed="true"]{background:var(--navy);border-color:var(--navy);color:var(--teal)}
.btn-dark{margin-top:auto;height:56px;border:0;border-radius:16px;background:var(--navy);color:var(--teal);font:800 17px/1 var(--display);cursor:pointer}
.err{min-height:20px;font:600 14px/1.4 var(--body);color:#B3261E}
.market{padding:14px 16px;border-radius:14px;background:#E3FBF8;font:600 15px/1.45 var(--body);color:#0B3A44}
.booking{width:100%;min-height:640px;border:0;border-radius:18px;background:var(--mist)}
.newtab{font:600 14px/1.4 var(--body);text-align:center}

/* ---------- compare / faq ---------- */
.compare{padding:88px 0 40px}
.tbl{margin-top:40px;overflow-x:auto;border:1px solid var(--rule);border-radius:24px}
.tbl table{width:100%;min-width:640px;border-collapse:collapse;font:500 17px/1.5 var(--body)}
.tbl th,.tbl td{text-align:left;padding:20px 28px;border-top:1px solid var(--rule)}
.tbl thead th{border-top:0;background:var(--mist);font:700 17px/1 var(--display);color:#4F6676;padding:22px 28px}
.tbl thead th.us{background:var(--navy);color:var(--teal)}
.tbl td{color:var(--muted)} .tbl td.us{background:#F2FDFB;font-weight:700;color:var(--ink)}
.faq{padding:88px 0}
.faq .wrap{max-width:900px}
.faq h2{text-align:center;margin-bottom:36px;font:800 clamp(32px,4vw,48px)/1.1 var(--display);letter-spacing:-.02em}
.faq details{border:1px solid var(--rule);border-radius:20px;padding:22px 26px;margin-bottom:12px;background:#fff}
.faq summary{cursor:pointer;list-style:none;font:700 19px/1.4 var(--display);display:flex;justify-content:space-between;gap:16px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--teal-dark);font-size:26px;line-height:1}
.faq details[open] summary::after{content:"–"}
.faq details p{margin:14px 0 0;font:400 17px/1.65 var(--body);color:var(--ink-2)}

/* ---------- footer ---------- */
.footer{background:var(--navy-2);color:var(--on-dark-2);padding:64px 0 36px;position:relative;overflow:hidden}
.foot-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:36px}
.foot-grid h3{font:700 14px/1 var(--display);color:var(--on-dark);letter-spacing:.08em;margin-bottom:6px}
.foot-col{display:flex;flex-direction:column;gap:10px;font:500 15px/1.5 var(--body)}
.foot-col a{color:var(--on-dark-2);text-decoration:none} .foot-col a:hover{color:var(--teal)}
.foot-col b{color:#E6EEF3}
.foot-bottom{margin-top:44px;padding-top:24px;border-top:1px solid #16324A;display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;font:500 14px/1.5 var(--body)}
.foot-bottom nav{display:flex;flex-wrap:wrap;gap:22px}
.foot-bottom a{color:var(--on-dark-2)}

/* ---------- legal pages ---------- */
.legal-head{background:var(--navy);color:var(--on-dark)}
.legal-title{max-width:820px;margin:0 auto;padding:48px 24px 64px}
.legal-title h1{font:800 clamp(36px,5vw,56px)/1.08 var(--display);letter-spacing:-.02em}
.legal-title p{margin:18px 0 0;font:500 15px/1.5 var(--body);color:var(--on-dark-3)}
.legal{max-width:820px;margin:0 auto;padding:56px 24px 96px}
.legal h2{margin:44px 0 14px;font:700 26px/1.3 var(--display)}
.legal p,.legal li{font:400 17px/1.75 var(--body);color:var(--ink-2)}
.legal p{margin:0 0 16px}
.legal ul{margin:0 0 18px;padding-left:22px}

/* ---------- reveal on scroll ---------- */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s cubic-bezier(.2,.8,.2,1),transform .7s cubic-bezier(.2,.8,.2,1)}
.reveal.in{opacity:1;transform:none}

@media (max-width:820px){
  .nav-links{display:none}
}
@media (max-width:640px){
  .nav{gap:10px}
  .nav-logo img{height:38px}
  .nav-cta .btn{min-height:44px;padding:0 16px;font-size:14px}
  .nav-phone{font-size:14px;padding:10px 2px}
  .hero-body{padding-top:40px;padding-bottom:64px}
  .stage{min-height:460px;padding:60px 18px 24px}
  .mini3{grid-template-columns:1fr}
  .usmap{gap:4px} .tile{font-size:10px;border-radius:7px}
  .mapbox,.panel{padding:18px;border-radius:24px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .reveal{opacity:1;transform:none}
}

/* ---------- channels / requests (process scenes) ---------- */
.req{display:flex;align-items:center;gap:14px;width:100%;text-align:left;padding:14px 18px}
.req b{display:block;font:700 17px/1.3 var(--display)}
.req span span,.req>span>span{display:block;font:500 14px/1.4 var(--body);color:#4F6676}
.req-tag{font:700 12px/1 var(--body);padding:8px 10px;border-radius:999px;background:var(--navy);color:var(--teal)}
.callpill{width:40px;height:40px;border-radius:50%;background:var(--teal);display:inline-flex;align-items:center;justify-content:center;flex:none;animation:shake .9s ease-in-out infinite}

/* ---------- theme toggle ---------- */
.theme-toggle{width:44px;height:44px;border-radius:50%;border:1px solid var(--line-2);background:transparent;color:var(--on-dark);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .2s,border-color .2s,color .2s}
.theme-toggle:hover{border-color:var(--teal);color:var(--teal);transform:rotate(18deg)}
.theme-toggle .i-moon{display:none}
.logo-day{display:none}

/* ---------- DAY MODE ---------- */
[data-theme="light"] .theme-toggle{border-color:#CFDCE4;color:var(--ink)}
[data-theme="light"] .theme-toggle .i-sun{display:none}
[data-theme="light"] .theme-toggle .i-moon{display:inline}
[data-theme="light"] .logo-night{display:none}
[data-theme="light"] .logo-day{display:block}
[data-theme="light"] .hero,[data-theme="light"] .legal-head{background:#EEF5F8;color:var(--ink)}
[data-theme="light"] .hero-grid{background-image:linear-gradient(rgba(10,94,122,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(10,94,122,.07) 1px,transparent 1px)}
[data-theme="light"] .hero-glow{background:radial-gradient(closest-side,rgba(20,240,214,.22),rgba(20,240,214,0))}
[data-theme="light"] .hero-shade{background:linear-gradient(90deg,rgba(238,245,248,.94) 0%,rgba(238,245,248,.55) 50%,rgba(238,245,248,.05) 100%)}
[data-theme="light"] .hero .city{color:#0A7F8F!important;opacity:.5!important}
[data-theme="light"] .hero h1{color:var(--ink)}
[data-theme="light"] .hero h1 span{color:var(--teal-dark)}
[data-theme="light"] .hero-sub{color:var(--ink-2)}
[data-theme="light"] .pill{color:#0A5E7A;border-color:rgba(10,127,143,.35);background:rgba(20,240,214,.12)}
[data-theme="light"] .checks{color:var(--muted)}
[data-theme="light"] .nav-links a{color:var(--ink-2)} [data-theme="light"] .nav-links a:hover{color:var(--teal-dark)}
[data-theme="light"] .nav-phone{color:var(--ink)}
[data-theme="light"] .btn-ghost{color:var(--ink);border-color:#9FB3C2} [data-theme="light"] .btn-ghost:hover{color:var(--ink);border-color:var(--teal-dark)}
[data-theme="light"] .brokers{background:rgba(255,255,255,.7);border-top-color:var(--rule)}
[data-theme="light"] .brokers p{color:var(--muted)}
[data-theme="light"] .marquee img{filter:invert(1) brightness(.25)}
[data-theme="light"] .legal-title p{color:var(--muted)}
[data-theme="light"] .legal-title .eyebrow{color:var(--teal-dark)!important}
[data-theme="light"] .process{background:#EEF5F8;color:var(--ink)}
[data-theme="light"] .process .city,[data-theme="light"] .reviews .city,[data-theme="light"] .footer .city{color:#0A5E7A!important;opacity:.12!important}
[data-theme="light"] .stage{box-shadow:0 30px 70px rgba(6,21,35,.25);color:var(--on-dark)}
[data-theme="light"] .step{color:var(--muted)}
[data-theme="light"] .step:hover{background:rgba(10,127,143,.06)}
[data-theme="light"] .step.on{background:#fff;color:var(--ink);box-shadow:0 8px 24px rgba(6,21,35,.08)}
[data-theme="light"] .step-n{color:var(--teal-dark)}
[data-theme="light"] .bar{background:#D5E2E9}
[data-theme="light"] .bar span{background:var(--teal-dark)}
[data-theme="light"] .reviews{background:#EEF5F8;color:var(--ink)}
[data-theme="light"] .reviews .eyebrow{color:var(--teal-dark)}
[data-theme="light"] .chips-st span{background:#fff;border-color:var(--rule)}
[data-theme="light"] .rev{background:#fff;border-color:var(--rule);box-shadow:0 10px 30px rgba(6,21,35,.06)}
[data-theme="light"] .rev blockquote{color:var(--ink)}
[data-theme="light"] .rev .who span{color:var(--muted)}
[data-theme="light"] .footer{background:#EEF5F8;color:var(--ink-2)}
[data-theme="light"] .foot-grid h3{color:var(--ink)}
[data-theme="light"] .foot-col a,[data-theme="light"] .foot-bottom a{color:var(--ink-2)}
[data-theme="light"] .foot-col b{color:var(--ink)}
[data-theme="light"] .foot-bottom{border-top-color:var(--rule)}

/* ---------- multi-state ---------- */
.hint{font:500 14px/1.4 var(--body);color:var(--muted);padding:8px 2px}
.stabs{display:flex;flex-wrap:wrap;gap:8px}
.stab{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 14px;border-radius:12px;border:1px solid #CFDCE4;background:#fff;color:var(--ink);font:800 14px/1 var(--display);cursor:pointer}
.stab em{font-style:normal;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--teal);color:var(--teal-ink);font:800 11px/20px var(--body);text-align:center}
.stab em:empty{display:none}
.stab.on{background:var(--navy);border-color:var(--navy);color:var(--teal)}
#stateChips{max-height:160px}


/* channel logos (step 1) */
.chan-row{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px}
.chan-logo{position:relative;height:64px;min-width:64px;padding:12px;border-radius:20px;background:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 30px rgba(0,0,0,.28),0 0 0 1px rgba(255,255,255,.08)}
.chan-logo img{height:100%;width:auto;display:block}
.chan-logo.wide{padding:20px 18px}
.chan-logo.more{height:44px;min-width:44px;padding:0;border-radius:50%;background:transparent;border:1.5px dashed rgba(53,214,200,.55);box-shadow:none;color:var(--teal);font:600 24px/1 var(--display)}
.scene.active .chan-logo:not(.more)::after{content:"";position:absolute;inset:-4px;border-radius:24px;border:2px solid var(--teal);opacity:0;animation:chanPing 2.4s ease-out infinite;animation-delay:inherit}
@keyframes chanPing{0%{opacity:.7;transform:scale(1)}70%,100%{opacity:0;transform:scale(1.12)}}
[data-theme="light"] .chan-logo{box-shadow:0 8px 24px rgba(10,40,70,.12),0 0 0 1px rgba(10,40,70,.08)}
.req-logo{width:46px;height:46px;border-radius:12px;background:#fff;border:1px solid #E3EAF0;display:flex;align-items:center;justify-content:center;padding:7px;flex:none}
.req-logo img{max-width:100%;max-height:100%;display:block}
@media (max-width:640px){.chan-row{gap:10px}.chan-logo{height:58px;min-width:58px;padding:11px;border-radius:16px}.chan-logo.wide{padding:15px 16px}}
