:root{
  --ink:#22262A;
  --ink-soft:#6B7178;
  --gold:#00E5FF;
  --gold-deep:#00B2CC;
  --ivory:#FAF7F0;
  --white:#FFFFFF;
  --line:#E7E1D3;
  --navy:#1A453F;
  --btn-bg:#1A453F;
  --btn-bg-hover:#133530;
  --ease:cubic-bezier(.22,.61,.36,1);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;background:var(--white);color:var(--ink);font-family:'Inter', sans-serif;line-height:1.65;-webkit-font-smoothing:antialiased;}
h1,h2,h3{font-weight:600;margin:0;}
p{margin:0;}
a{color:inherit;text-decoration:none;}
img{display:block;max-width:100%;height:auto;}
button{font-family:inherit;cursor:pointer;border:none;background:none;}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;}

/* Reveal animation */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s var(--ease),transform .7s var(--ease);}
.reveal.in{opacity:1;transform:translateY(0);}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;} html{scroll-behavior:auto;}}

/* Eyebrow shared */
.eyebrow{font-size:12px;letter-spacing:.26em;text-transform:uppercase;color:#00B2CC;font-weight:600;margin-bottom:14px;display:block;}

/* Legacy btn (backward compat) */
.btn{display:inline-block;padding:14px 32px;font-size:13px;letter-spacing:.08em;text-transform:uppercase;font-weight:600;transition:.3s ease;text-align:center;}
.btn-line.on-dark{border:1px solid rgba(255,255,255,.5);color:#fff;}
.btn-line.on-dark:hover{background:#fff;color:#1A453F;}

/* MAP ANIMATIONS */
@keyframes ring-pulse{0%,100%{opacity:1;} 50%{opacity:.4;}}
@keyframes beam-flow{from{stroke-dashoffset:40;} to{stroke-dashoffset:0;}}
@keyframes center-pulse{0%{transform:scale(1);opacity:.8;} 70%{transform:scale(1.6);opacity:0;} 100%{transform:scale(1.6);opacity:0;}}
@keyframes dot-pulse{0%{transform:scale(1);opacity:.6;} 70%{transform:scale(2.2);opacity:0;} 100%{opacity:0;}}

/* Plan tabs active state (toggled by JS) */
.plan-tab-btn{color:#003e63;border-color:rgba(0,62,99,0.3);}
.plan-tab-btn.active{background-color:#003e63;color:#fff;border-color:#003e63;}

/* Location map classes */
.lm-ring{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border-radius:50%;border:1px solid rgba(56,155,143,0.15);animation:ring-pulse 4s ease-in-out infinite;}
.lm-ring-1{width:36%;height:36%;animation-delay:0s;}
.lm-ring-2{width:64%;height:64%;animation-delay:.6s;border-color:rgba(56,155,143,0.1);}
.lm-ring-3{width:92%;height:92%;animation-delay:1.2s;border-color:rgba(56,155,143,0.06);}
.lm-beams{position:absolute;inset:0;width:100%;height:100%;overflow:visible;}
.beam{stroke-width:1;fill:none;stroke-dasharray:6 4;animation:beam-flow 2.5s linear infinite;animation-delay:var(--d,0s);}
.beam-teal{stroke:#389B8F;opacity:.7;}
.beam-gold{stroke:#C9A84C;opacity:.7;}
.beam-red{stroke:#e74c3c;opacity:.8;}
.lm-center-pulse{position:absolute;inset:-14px;border-radius:50%;background:rgba(56,155,143,0.15);animation:center-pulse 2.5s ease-out infinite;}
.lm-dot{width:12px;height:12px;border-radius:50%;border:2px solid #fff;position:relative;transition:transform .3s;}
.lm-node:hover .lm-dot{transform:scale(1.4);}
.lm-dot::after{content:'';position:absolute;inset:-5px;border-radius:50%;animation:dot-pulse 2s ease-out infinite;}
.lm-node-teal .lm-dot{background:#389B8F;border-color:#389B8F;box-shadow:0 0 8px rgba(56,155,143,0.6);}
.lm-node-teal .lm-dot::after{background:rgba(56,155,143,0.3);}
.lm-node-gold .lm-dot{background:#C9A84C;border-color:#C9A84C;box-shadow:0 0 8px rgba(201,168,76,0.6);}
.lm-node-gold .lm-dot::after{background:rgba(201,168,76,0.3);}
.lm-node-red .lm-dot{background:#e74c3c;border-color:#e74c3c;box-shadow:0 0 10px rgba(231,76,60,0.7);}
.lm-node-red .lm-dot::after{background:rgba(231,76,60,0.35);animation-duration:1s;}
.lm-dot-infra{border-radius:3px!important;}
.lm-label{font-size:9.5px;font-weight:500;color:rgba(255,255,255,0.85);text-align:center;line-height:1.3;white-space:nowrap;background:rgba(10,30,27,0.7);padding:3px 6px;backdrop-filter:blur(4px);transform:rotateZ(30deg) rotateX(-60deg) translateY(-20px);transform-origin:center bottom;}
.lm-time{color:#389B8F;font-weight:700;display:block;font-size:9px;letter-spacing:.06em;}
.lm-time-red{color:#ff6b6b!important;}

/* Util tab bar */
.util-tab-bar .tab-btn{padding:13px 20px;font-size:12.5px;letter-spacing:.05em;text-transform:uppercase;color:#6B7178;border-bottom:2px solid transparent;background:none;border-top:none;border-left:none;border-right:none;}
.util-tab-bar .tab-btn.active{color:#22262A;border-bottom-color:#00E5FF;font-weight:600;}

/* Sticky CTA – show on mobile */
@media(max-width:760px){body{padding-bottom:52px;}}

/* Extra small – hide map decorations */
@media(max-width:480px){.lm-beams{display:none;} .lm-ring-3{display:none;}}
/* Nav scrolled: links turn brand dark blue */
nav[data-scrolled="true"] ul a {
  color: #003e63 !important;
}
nav[data-scrolled="true"] ul a:hover {
  color: #E8C96C !important;
}
