/* ArcX site styles.
   Extracted verbatim from the inline <style> block in index.html so the shell
   (tokens, layout, components) is a single source of truth shared by the
   homepage and the Charging Stations pages. Charging-only additions are at the
   very bottom under "Charging Stations section". */
:root{
  --green: oklch(82% 0.22 135);
  --green-2: oklch(88% 0.18 135);
  --green-deep: oklch(62% 0.21 138);
  --bg: #07090a;
  --bg-2: #0c0f10;
  --bg-3: #11151700;
  --line: rgba(255,255,255,0.08);
  --line-2: rgba(255,255,255,0.14);
  --fg: #f4f6f7;
  --fg-2: #c8ccce;
  --fg-3: #8a8f92;
  --fg-4: #555a5d;
  --radius: 14px;
  --radius-lg: 22px;
  --maxw: 1240px;
}
html[data-mode="light"]{
  --bg: #fafafa;
  --bg-2: #f3f3f3;
  --line: rgba(0,0,0,0.08);
  --line-2: rgba(0,0,0,0.16);
  --fg: #0a0c0d;
  --fg-2: #303537;
  --fg-3: #6b7073;
  --fg-4: #a0a4a7;
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--fg);font-family:"Geist",ui-sans-serif,system-ui,sans-serif;font-feature-settings:"ss01","cv11";-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body{overflow-x:hidden}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
.mono{font-family:"Geist Mono",ui-monospace,monospace;font-feature-settings:"ss01"}
.container{max-width:var(--maxw);margin:0 auto;padding:0 28px}
@media (max-width:720px){.container{padding:0 18px}}
@media (max-width:480px){.container{padding:0 16px}}
::selection{background:var(--green);color:#0a0c0d}

.grid-bg{
  background-image:
    linear-gradient(to right, var(--line) 1px, transparent 1px),
    linear-gradient(to bottom, var(--line) 1px, transparent 1px);
  background-size: 56px 56px;
}
@keyframes drift { from{transform:translate3d(0,0,0)} to{transform:translate3d(-56px,-56px,0)} }
.drift{animation:drift 18s linear infinite}
@keyframes arc-draw { 0%{stroke-dashoffset:600} 100%{stroke-dashoffset:0} }
@keyframes pulse-dot { 0%,100%{opacity:.3;transform:scale(1)} 50%{opacity:1;transform:scale(1.4)} }
@keyframes truck-move { 0%{transform:translateX(-10%)} 100%{transform:translateX(110%)} }
@keyframes marquee-scroll { 0%{transform:translateX(0)} 100%{transform:translateX(-50%)} }
@keyframes pulse-ring {
  0%,100%{r:2.5;opacity:.5}
  50%{r:7;opacity:0}
}

.linklike{position:relative}
.linklike::after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:1px;background:currentColor;opacity:.25;transform-origin:left;transition:transform .35s ease}
.linklike:hover::after{transform:scaleX(1.05);opacity:.6}

.reveal{opacity:0;transform:translateY(14px);transition:opacity .8s ease, transform .8s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}

.eyebrow{font-family:"Geist Mono",ui-monospace,monospace;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--fg-3);display:inline-flex;align-items:center}
.eyebrow .dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--green);margin-right:8px;vertical-align:middle;box-shadow:0 0 0 4px color-mix(in oklch, var(--green) 20%, transparent)}

.btn{display:inline-flex;align-items:center;gap:10px;padding:12px 18px;border-radius:999px;border:1px solid var(--line-2);background:var(--bg-2);color:var(--fg);font-weight:500;font-size:14px;transition:transform .2s ease, background .2s ease, border-color .2s ease;cursor:pointer}
.btn:hover{transform:translateY(-1px);border-color:color-mix(in oklch, var(--green) 60%, var(--line-2))}
.btn-primary{background:var(--green);color:#0a0c0d;border-color:var(--green)}
.btn-primary:hover{background:var(--green-2);border-color:var(--green-2)}
.btn .arr{transition:transform .25s ease}
.btn:hover .arr{transform:translateX(3px)}

.hr{height:1px;background:var(--line);width:100%}
.card{border:1px solid var(--line);border-radius:var(--radius-lg);background:linear-gradient(180deg, color-mix(in srgb, var(--bg-2) 80%, transparent), transparent)}
html[data-mode="light"] .card{background:linear-gradient(180deg, #ffffff, #fafafa)}
section{scroll-margin-top:80px}

/* ---------- Sticky header ---------- */
.site-header{
  position:sticky; top:0; z-index:50;
  -webkit-backdrop-filter:saturate(180%) blur(14px);
  backdrop-filter:saturate(180%) blur(14px);
  background:transparent;
  border-bottom:1px solid transparent;
  transition: background .3s ease, border-color .3s ease;
}
.site-header.is-scrolled{
  background:color-mix(in srgb, var(--bg) 78%, transparent);
  border-bottom:1px solid var(--line);
}
.site-header .nav-row{display:flex;align-items:center;justify-content:space-between;height:64px}
.nav-links{display:flex;gap:6px;align-items:center}
.nav-links a{padding:8px 12px;border-radius:999px;font-size:13px;color:var(--fg-2);transition:color .2s ease}
.nav-links a:hover{color:var(--fg)}
.nav-tools{display:flex;align-items:center;gap:10px}
.theme-toggle{width:36px;height:36px;border-radius:999px;border:1px solid var(--line);display:inline-flex;align-items:center;justify-content:center;color:var(--fg-2)}
.brand{display:inline-flex;align-items:center;color:var(--fg)}
.brand img{display:block;height:22px;width:auto}
.brand .brand-img-dark{display:block}
.brand .brand-img-light{display:none}
html[data-mode="light"] .brand .brand-img-dark{display:none}
html[data-mode="light"] .brand .brand-img-light{display:block}
.site-footer .brand img{height:44px}
@media (max-width:480px){
  .brand img{height:17px}
  .site-footer .brand img{height:36px}
}
@media (max-width:860px){ .nav-links{display:none} }

/* ---------- Section utilities ---------- */
.section{padding:100px 0;border-top:1px solid var(--line)}
.h2-display{font-size:clamp(32px, 4.4vw, 56px);letter-spacing:-0.03em;line-height:1.0;font-weight:600;margin:0 0 16px}
.lead{color:var(--fg-2);font-size:17px;line-height:1.55;margin:0;max-width:520px}
@media (max-width:860px){
  .section{padding:72px 0}
}
@media (max-width:720px){
  .section{padding:56px 0}
}

/* ---------- Hero ---------- */
.hero{position:relative;overflow:hidden;padding-top:24px}
.hero-grid{position:absolute;inset:-20% -10% -10% -10%;mask-image:radial-gradient(ellipse at 50% 30%, #000 30%, transparent 70%);-webkit-mask-image:radial-gradient(ellipse at 50% 30%, #000 30%, transparent 70%)}
.hero-glow{position:absolute;left:50%;top:30%;width:900px;height:900px;transform:translate(-50%,-50%);background:radial-gradient(closest-side, color-mix(in oklch, var(--green) 30%, transparent), transparent 70%);filter:blur(20px);pointer-events:none;opacity:.55}
.hero-inner{position:relative;padding-top:48px;padding-bottom:40px;text-align:center;max-width:920px;margin:0 auto}
.hero-h1{font-size:clamp(40px, 7.4vw, 96px);line-height:0.98;letter-spacing:-0.035em;font-weight:600;margin:4px 0 22px}
.hero-h1 .grad{background:linear-gradient(90deg, var(--fg), color-mix(in oklch, var(--green) 80%, var(--fg)));-webkit-background-clip:text;background-clip:text;color:transparent}
.hero-sub{font-size:clamp(16px, 1.4vw, 19px);color:var(--fg-2);max-width:640px;margin:0 auto;line-height:1.55}
.hero-ctas{display:flex;gap:12px;justify-content:center;margin-top:28px;flex-wrap:wrap}

.hero-stats{display:grid;grid-template-columns:repeat(4, 1fr);gap:1px;margin-top:48px;border-radius:18px;overflow:hidden;border:1px solid var(--line);background:var(--line)}
.hero-stats > div{padding:22px 18px;background:var(--bg);text-align:center}
.hero-stats dt, .hero-stats dd{margin:0}
.hero-stats .v{font-size:clamp(28px, 3.2vw, 40px);letter-spacing:-0.03em;font-weight:600;line-height:1}
.hero-stats .l{font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:var(--fg-3);margin-top:8px}
@media (max-width:720px){ .hero-stats{grid-template-columns:repeat(2, 1fr)} }

.hero{padding-bottom:0}
@media (max-width:860px){ .hero{padding-top:0} .hero-inner{padding-top:36px;padding-bottom:24px} }
@media (max-width:720px){ .hero-ctas .btn{flex:1 1 auto;justify-content:center;min-width:0} }
@media (max-width:480px){ .hero-ctas .btn{width:100%} }

.arc-stage{position:relative;width:100%;height:220px;margin-top:-20px}
.arc-stage svg{display:block}
.arc-stage .truck-track{position:absolute;bottom:36px;left:0;right:0;height:44px;animation:truck-move 12s linear infinite}

/* ---------- Marquee ---------- */
.marquee-section{padding:48px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.marquee-row{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:32px}
.marquee-row .label{font-family:"Geist Mono",ui-monospace,monospace;font-size:11px;color:var(--fg-3);letter-spacing:.18em;white-space:nowrap}
.marquee-track{overflow:hidden;mask-image:linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent);-webkit-mask-image:linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent)}
.marquee-track > div{display:flex;gap:48px;animation:marquee-scroll 28s linear infinite;white-space:nowrap;width:max-content}
.marquee-track span{font-family:"Geist Mono",ui-monospace,monospace;font-size:14px;color:var(--fg-2);letter-spacing:.1em}
@media (max-width:720px){ .marquee-row{grid-template-columns:1fr;gap:14px} }

/* ---------- Problem / Why ArcX ---------- */
.problem-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:48px;align-items:start}
.problem-cards{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:18px;overflow:hidden}
.problem-cards > div{padding:26px 22px;background:var(--bg)}
.problem-cards .v{font-size:clamp(28px, 3.2vw, 40px);letter-spacing:-0.03em;font-weight:600;margin-top:10px;line-height:1}
.problem-cards .d{color:var(--fg-2);margin-top:8px;font-size:14px}
@media (max-width:880px){ .problem-grid{grid-template-columns:1fr} }

/* ---------- Services ---------- */
.services-head{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:36px;flex-wrap:wrap}
.services-grid{display:grid;grid-template-columns:repeat(3, 1fr);gap:18px}
.service-card{padding:24px;position:relative;overflow:hidden;min-height:300px;display:flex;flex-direction:column}
.service-illo{height:120px;margin-top:16px;border-radius:12px;border:1px dashed var(--line-2);background:repeating-linear-gradient(135deg, color-mix(in srgb, var(--green) 10%, transparent) 0 10px, transparent 10px 20px);position:relative;overflow:hidden}
.service-card .title{margin-top:18px;font-size:20px;letter-spacing:-0.01em;font-weight:600;line-height:1.2}
.service-card .copy{margin-top:8px;color:var(--fg-2);font-size:14px;line-height:1.55;flex:1}
.service-card .stat{margin-top:14px;font-family:"Geist Mono",ui-monospace,monospace;font-size:12px;color:var(--green);letter-spacing:.1em}
@media (max-width:920px){ .services-grid{grid-template-columns:1fr 1fr} }
@media (max-width:640px){ .services-grid{grid-template-columns:1fr} }

/* ---------- Fleet ---------- */
.fleet-grid{display:grid;grid-template-columns:repeat(4, 1fr);gap:18px}
.fleet-card{padding:26px 24px 24px;position:relative;overflow:hidden;display:flex;flex-direction:column;transition:transform .25s ease, border-color .25s ease}
.fleet-card:hover{transform:translateY(-2px);border-color:color-mix(in oklch, var(--green) 35%, var(--line))}

.fleet-illo{
  height:96px;border-radius:14px;
  background:
    radial-gradient(120% 80% at 50% 110%, color-mix(in srgb, var(--green) 14%, transparent) 0%, transparent 60%),
    linear-gradient(180deg, color-mix(in srgb, var(--bg-2) 60%, transparent), transparent);
  border:1px solid var(--line);
  position:relative;overflow:hidden;
}

.fleet-capacity-row{
  display:flex;align-items:baseline;justify-content:space-between;gap:10px;
  margin-top:22px;padding-top:20px;
  border-top:1px solid var(--line);
}
.fleet-capacity{
  font-size:clamp(48px, 5.6vw, 68px);
  font-weight:700;
  letter-spacing:-0.045em;
  line-height:0.9;
  color:var(--fg);
  font-variant-numeric:tabular-nums;
  font-feature-settings:"ss01","cv11";
  display:inline-flex;align-items:baseline;
}
.fleet-capacity .t{
  color:var(--green);
  margin-left:1px;
}
.fleet-capacity-unit{
  font-family:"Geist Mono",ui-monospace,monospace;
  font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--fg-3);font-weight:500;
  align-self:flex-end;
  padding-bottom:6px;
}

.fleet-card .title{
  margin:14px 0 0;
  font-size:17px;font-weight:600;letter-spacing:-0.01em;line-height:1.25;color:var(--fg)
}
.fleet-card .copy{margin:8px 0 0;color:var(--fg-2);font-size:13.5px;line-height:1.55;flex:1}

.fleet-spec{display:grid;gap:10px;margin:18px 0 0;padding-top:16px;border-top:1px solid var(--line)}
.fleet-spec > div{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:baseline;margin:0}
.fleet-spec dt{font-family:"Geist Mono",ui-monospace,monospace;font-size:10px;letter-spacing:.18em;color:var(--fg-3);text-transform:uppercase;margin:0;font-weight:500}
.fleet-spec dd{font-size:13.5px;color:var(--fg);margin:0;text-align:right;font-weight:500}
.fleet-spec dd.accent{color:var(--green)}

.fleet-disclaimer{margin-top:20px;font-size:11px;letter-spacing:.12em;color:var(--fg-4);text-align:right;font-family:"Geist Mono",ui-monospace,monospace;text-transform:uppercase}
@media (max-width:1100px){ .fleet-grid{grid-template-columns:1fr 1fr} }
@media (max-width:560px){
  /* Horizontal swipe layout instead of vertical stack — bleeds to viewport edges,
     scroll-snaps to each card, native iOS-style swipe with no visible scrollbar. */
  .fleet-grid{
    display:flex;
    gap:14px;
    overflow-x:auto;
    overflow-y:visible;
    scroll-snap-type:x mandatory;
    scrollbar-width:none;
    -ms-overflow-style:none;
    -webkit-overflow-scrolling:touch;
    margin:0 -18px;
    padding:4px 18px 8px;
    scroll-padding-left:18px;
  }
  .fleet-grid::-webkit-scrollbar{display:none}
  .fleet-grid > .fleet-card{
    flex:0 0 84%;
    max-width:320px;
    scroll-snap-align:start;
    scroll-snap-stop:always;
  }
  .fleet-disclaimer{text-align:left}
  .fleet-capacity{font-size:clamp(52px, 14vw, 64px)}
}
@media (max-width:480px){
  .fleet-grid{margin:0 -16px;padding-left:16px;padding-right:16px;scroll-padding-left:16px}
}

/* ---------- Compare ---------- */
.compare-section .compare-head{max-width:760px;margin-bottom:56px}
.compare-cards{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:18px;
  align-items:stretch;
}
.compare-card{
  border:1px solid var(--line);
  border-radius:22px;
  padding:32px 28px 30px;
  background:linear-gradient(180deg, color-mix(in srgb, var(--bg-2) 80%, transparent), transparent);
  display:flex;
  flex-direction:column;
  position:relative;
  transition:transform .25s ease, border-color .25s ease;
}
.compare-card:hover{transform:translateY(-2px)}
.compare-card-primary{
  border-color:color-mix(in oklch, var(--green) 55%, var(--line));
  background:
    radial-gradient(120% 80% at 0% 0%, color-mix(in srgb, var(--green) 12%, transparent) 0%, transparent 60%),
    linear-gradient(180deg, color-mix(in srgb, var(--bg-2) 90%, transparent), transparent);
  box-shadow:
    0 0 0 1px color-mix(in oklch, var(--green) 30%, transparent) inset,
    0 14px 40px color-mix(in srgb, var(--green) 10%, transparent);
}
.compare-card-head{
  display:flex;align-items:flex-start;gap:14px;
  padding-bottom:22px;margin-bottom:22px;
  border-bottom:1px solid var(--line);
}
.compare-card-primary .compare-card-head{
  border-bottom-color:color-mix(in oklch, var(--green) 25%, var(--line));
}
.compare-card-pulse{
  width:10px;height:10px;border-radius:999px;background:var(--green);
  box-shadow:0 0 0 5px color-mix(in oklch, var(--green) 22%, transparent);
  margin-top:9px;flex-shrink:0;
  animation:pulse-dot 2.4s ease-in-out infinite;
}
.compare-card-head .titles{flex:1;min-width:0}
.compare-card-head h3{
  font-size:22px;font-weight:600;letter-spacing:-0.015em;line-height:1.2;
  margin:0 0 6px;color:var(--fg);
}
.compare-card-head p{
  font-family:"Geist Mono",ui-monospace,monospace;
  font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--fg-3);margin:0;font-weight:500;
}
.compare-card-primary .compare-card-head h3{color:var(--fg)}
.compare-feat-list{
  list-style:none;padding:0;margin:0;
  display:grid;gap:18px;flex:1;
}
.compare-feat-list > div{display:grid;gap:5px;margin:0}
.compare-feat-list dt{
  font-family:"Geist Mono",ui-monospace,monospace;
  font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--fg-3);font-weight:500;margin:0;
}
.compare-feat-list dd{
  font-size:15px;color:var(--fg-2);margin:0;line-height:1.45;font-weight:400;
}
.compare-card-primary .compare-feat-list dd{
  color:var(--fg);font-weight:500;
}
@media (max-width:980px){
  .compare-cards{grid-template-columns:1fr;gap:16px}
  .compare-card-primary{order:-1}
}
@media (max-width:480px){
  .compare-card{padding:24px 22px}
  .compare-card-head h3{font-size:20px}
}

/* ---------- How it works ---------- */
.how-grid{display:grid;grid-template-columns:repeat(4, 1fr);gap:0;border:1px solid var(--line);border-radius:18px;overflow:hidden;list-style:none;padding:0;margin:0}
.how-grid > li, .how-grid > div{
  padding:30px 26px 28px;background:var(--bg);min-height:220px;
  display:flex;flex-direction:column;
  border-right:1px solid var(--line);
  position:relative;overflow:hidden;
  list-style:none;
}
.how-grid > li:last-child, .how-grid > div:last-child{border-right:none}

/* Big translucent step number sitting behind the title + body — editorial watermark style. */
.how-grid .num{
  position:absolute;bottom:-14px;right:6px;
  margin:0;
  font-family:"Geist Mono",ui-monospace,monospace;
  font-size:clamp(96px, 9.5vw, 144px);
  font-weight:700;
  letter-spacing:-0.05em;
  line-height:0.85;
  color:var(--green);
  opacity:.10;
  z-index:0;
  pointer-events:none;
  user-select:none;
}

.how-grid .title{
  position:relative;z-index:1;
  font-size:20px;font-weight:600;letter-spacing:-0.01em;
  margin:0;
}
.how-grid .body{
  position:relative;z-index:1;
  color:var(--fg-2);margin:10px 0 0;
  font-size:14px;line-height:1.55;flex:1;
}

@media (max-width:980px){
  .how-grid{grid-template-columns:1fr 1fr}
  .how-grid > li:nth-child(2), .how-grid > div:nth-child(2){border-right:none}
  .how-grid > li:nth-child(1), .how-grid > div:nth-child(1),
  .how-grid > li:nth-child(2), .how-grid > div:nth-child(2){border-bottom:1px solid var(--line)}
}
@media (max-width:600px){
  .how-grid{grid-template-columns:1fr}
  .how-grid > li, .how-grid > div{border-right:none;border-bottom:1px solid var(--line)}
  .how-grid > li:last-child, .how-grid > div:last-child{border-bottom:none}
  .how-grid .num{font-size:clamp(110px, 28vw, 160px);bottom:-20px}
}

/* ---------- Stations ---------- */
.stations-grid{display:grid;grid-template-columns:1fr 1.3fr;gap:48px;align-items:start}
.hub-card{text-align:left;padding:18px;border-radius:14px;width:100%;border:1px solid color-mix(in oklch, var(--green) 50%, var(--line));background:color-mix(in srgb, var(--green) 8%, transparent);display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;margin-bottom:14px}
.hub-card .pulse{width:12px;height:12px;border-radius:999px;background:var(--green);box-shadow:0 0 0 5px color-mix(in oklch, var(--green) 25%, transparent)}
.hub-card .title{font-weight:600;font-size:16px}
.hub-card .sub{font-family:"Geist Mono",ui-monospace,monospace;font-size:11px;color:var(--fg-3);margin-top:3px}
.hub-card .badge{font-family:"Geist Mono",ui-monospace,monospace;font-size:10px;letter-spacing:.18em;color:var(--green)}
.reach-list{display:grid;gap:8px}
.reach-btn{text-align:left;padding:12px 14px;border-radius:10px;border:1px solid var(--line);background:transparent;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;cursor:pointer;color:inherit;font:inherit;width:100%}
.reach-btn.is-active{border-color:color-mix(in oklch, var(--green) 35%, var(--line))}
.reach-btn .pip{width:6px;height:6px;border-radius:999px;background:var(--fg-3)}
.reach-btn .name{font-weight:500;font-size:14px}
.reach-btn .desc{font-family:"Geist Mono",ui-monospace,monospace;font-size:11px;color:var(--fg-3);margin-top:2px}
.reach-btn .time{font-family:"Geist Mono",ui-monospace,monospace;font-size:11px;color:var(--fg-2)}
.map-card{padding:24px;position:relative;overflow:hidden;aspect-ratio:5/4}
.map-head{display:flex;justify-content:space-between;align-items:center}
.map-svg{position:absolute;inset:24px;top:48px;width:calc(100% - 48px);height:calc(100% - 72px)}
.map-coords{position:absolute;left:24px;right:24px;bottom:18px;display:flex;justify-content:space-between;color:var(--fg-4);font-family:"Geist Mono",ui-monospace,monospace;font-size:10px;letter-spacing:.15em}
[data-hub-line]{transition:all .3s ease;stroke:var(--fg-3);stroke-width:.35;stroke-dasharray:1 1.4;opacity:.55}
[data-hub-line].is-active{stroke:var(--green);stroke-width:.55;stroke-dasharray:0;opacity:1}
[data-hub-pin] circle{fill:var(--fg-2);transition:fill .3s ease, r .3s ease}
[data-hub-pin] text{fill:var(--fg-3);transition:fill .3s ease}
[data-hub-pin].is-active circle{fill:var(--green);r:1.7}
[data-hub-pin].is-active text{fill:var(--fg)}
@media (max-width:980px){ .stations-grid{grid-template-columns:1fr} }

/* ---------- Night ops ---------- */
.night-section{position:relative;overflow:hidden;background:linear-gradient(180deg, var(--bg), color-mix(in srgb, #0a1f12 18%, var(--bg)));padding:110px 0;border-top:1px solid var(--line)}
.night-bg{position:absolute;inset:0;opacity:.4;pointer-events:none}
.night-bg .grid-bg{position:absolute;inset:0;mask-image:radial-gradient(ellipse at 30% 50%, #000 30%, transparent 70%);-webkit-mask-image:radial-gradient(ellipse at 30% 50%, #000 30%, transparent 70%)}
.night-head{display:grid;grid-template-columns:1fr 1.2fr;gap:48px;align-items:end;margin-bottom:36px}
.night-visual{position:relative;aspect-ratio:5/3;display:flex;align-items:center;justify-content:center}
.night-grid{display:grid;grid-template-columns:repeat(4, 1fr);gap:0;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:color-mix(in srgb, var(--bg-2) 60%, transparent)}
.night-grid > div{padding:24px 22px;min-height:180px;border-right:1px solid var(--line);display:flex;flex-direction:column}
.night-grid > div:last-child{border-right:none}
.night-grid .tag{font-family:"Geist Mono",ui-monospace,monospace;font-size:11px;letter-spacing:.18em;color:var(--green);text-transform:uppercase}
.night-grid .title{font-size:18px;font-weight:600;letter-spacing:-0.01em;margin-top:14px}
.night-grid .body{color:var(--fg-2);margin-top:8px;font-size:14px;line-height:1.55;flex:1}
@media (max-width:980px){
  .night-head{grid-template-columns:1fr}
  .night-grid{grid-template-columns:1fr 1fr}
  .night-grid > div:nth-child(2){border-right:none}
  .night-grid > div:nth-child(1),.night-grid > div:nth-child(2){border-bottom:1px solid var(--line)}
}
@media (max-width:600px){
  .night-grid{grid-template-columns:1fr}
  .night-grid > div{border-right:none;border-bottom:1px solid var(--line)}
  .night-grid > div:last-child{border-bottom:none}
}

/* ---------- Impact ---------- */
.impact-section{position:relative;overflow:hidden;padding:100px 0;border-top:1px solid var(--line)}
.impact-bg{position:absolute;inset:0;opacity:.4;mask-image:radial-gradient(ellipse at 70% 50%, #000, transparent 70%);-webkit-mask-image:radial-gradient(ellipse at 70% 50%, #000, transparent 70%)}
.impact-bg .grid-bg{position:absolute;inset:0}
.impact-grid{display:grid;grid-template-columns:repeat(3, 1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:18px;overflow:hidden}
.impact-grid > div{padding:28px 24px;background:var(--bg)}
.impact-grid .label{font-family:"Geist Mono",ui-monospace,monospace;font-size:11px;letter-spacing:.18em;color:var(--fg-3);text-transform:uppercase}
.impact-grid .row{display:flex;align-items:baseline;gap:8px;margin-top:14px}
.impact-grid .v{font-size:clamp(36px, 5vw, 64px);letter-spacing:-0.035em;font-weight:600;line-height:1;color:var(--fg);font-variant-numeric:tabular-nums}
.impact-grid .v.accent{color:var(--green)}
.impact-grid .suf{font-family:"Geist Mono",ui-monospace,monospace;color:var(--fg-3);font-size:14px}
@media (max-width:760px){ .impact-grid{grid-template-columns:1fr} }

/* ---------- Contact ---------- */
.contact-section{padding:120px 0;border-top:1px solid var(--line);position:relative;overflow:hidden}
.contact-glow{position:absolute;inset:0;opacity:.6;pointer-events:none}
.contact-glow > div{position:absolute;left:50%;top:50%;width:900px;height:600px;transform:translate(-50%,-50%);background:radial-gradient(closest-side, color-mix(in oklch, var(--green) 22%, transparent), transparent 70%);filter:blur(20px)}
.contact-inner{position:relative;text-align:center;max-width:760px;margin:0 auto}
.contact-h2{font-size:clamp(40px, 6vw, 80px);letter-spacing:-0.035em;line-height:0.98;font-weight:600;margin:0 0 18px}
.contact-h2 .accent{color:var(--green)}
.contact-card{padding:36px 32px;margin-top:8px;text-align:center}
.contact-card .label{font-family:"Geist Mono",ui-monospace,monospace;font-size:11px;letter-spacing:.18em;color:var(--fg-3);text-transform:uppercase}
.contact-card .number{display:block;margin-top:12px;font-size:clamp(28px, 4.4vw, 44px);font-weight:600;letter-spacing:-0.025em;line-height:1.05;color:var(--fg);white-space:nowrap}
.contact-card .actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:22px}
.contact-meta{margin-top:18px;color:var(--fg-3);font-size:13px;display:flex;gap:18px;justify-content:center;flex-wrap:wrap}
@media (max-width:640px){
  .contact-card .number{font-size:clamp(22px, 8vw, 32px);white-space:normal}
}

/* ---------- Footer ---------- */
.site-footer{padding:56px 0 36px;border-top:1px solid var(--line)}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:32px}
.footer-bottom{display:flex;justify-content:space-between;margin-top:48px;font-size:12px;color:var(--fg-4)}
.footer-col h4{font-family:"Geist Mono",ui-monospace,monospace;font-size:11px;letter-spacing:.18em;color:var(--fg-3);text-transform:uppercase;margin:0 0 14px;font-weight:500}
.footer-col ul{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.footer-col a{color:var(--fg-2);font-size:14px;width:max-content}
@media (max-width:760px){ .footer-grid{grid-template-columns:1fr 1fr} }
@media (max-width:480px){
  .footer-grid{grid-template-columns:1fr;gap:24px}
  .footer-bottom{flex-direction:column;gap:8px;align-items:flex-start}
}

/* ---------- FAQ ---------- */
.faq-section{padding:100px 0;border-top:1px solid var(--line)}
.faq-grid{display:grid;grid-template-columns:1fr 1.3fr;gap:48px;align-items:start}
.faq-list{display:grid;gap:8px}
.faq-item{border:1px solid var(--line);border-radius:14px;background:color-mix(in srgb, var(--bg-2) 60%, transparent);overflow:hidden;transition:border-color .2s ease, background .2s ease}
.faq-item[open]{border-color:color-mix(in oklch, var(--green) 35%, var(--line))}
.faq-item summary{list-style:none;cursor:pointer;padding:18px 20px;display:flex;justify-content:space-between;align-items:center;gap:16px;font-weight:500;font-size:15.5px;letter-spacing:-0.005em;color:var(--fg)}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+";font-family:"Geist Mono",ui-monospace,monospace;font-size:18px;color:var(--fg-3);transition:transform .25s ease, color .2s ease;line-height:1}
.faq-item[open] summary::after{content:"−";color:var(--green);transform:rotate(0deg)}
.faq-item .answer{padding:0 20px 18px;color:var(--fg-2);font-size:14.5px;line-height:1.65;margin:0}
@media (max-width:860px){ .faq-section{padding:72px 0} .faq-grid{grid-template-columns:1fr;gap:24px} }
@media (max-width:720px){ .faq-section{padding:56px 0} }

/* ---------- Mobile section rail ---------- */
.m-rail{display:none}
@media (max-width:860px){
  .m-rail{
    position:fixed;right:10px;top:50%;transform:translateY(-50%);
    z-index:45;display:flex;flex-direction:column;gap:6px;
    padding:10px 6px;border-radius:999px;
    background:color-mix(in srgb, var(--bg-2) 78%, transparent);
    -webkit-backdrop-filter:saturate(180%) blur(14px);
    backdrop-filter:saturate(180%) blur(14px);
    border:1px solid var(--line);
    box-shadow:0 6px 24px rgba(0,0,0,.18);
    opacity:0;pointer-events:none;
    transition:opacity .35s ease, transform .35s ease;
    transform:translate(8px,-50%);
  }
  .m-rail.is-scrolling,
  .m-rail.is-open,
  .m-rail:focus-within{
    opacity:1;pointer-events:auto;transform:translate(0,-50%);
  }
  .m-rail-dot{
    position:relative;width:22px;height:22px;
    display:flex;align-items:center;justify-content:center;
    background:transparent;border:0;padding:0;cursor:pointer;
    -webkit-tap-highlight-color:transparent;
  }
  .m-rail-tick{
    display:block;width:6px;height:6px;border-radius:999px;background:var(--fg-4);
    transition:width .25s ease, height .25s ease, background .25s ease, box-shadow .25s ease;
  }
  .m-rail-dot.active .m-rail-tick{
    width:10px;height:10px;background:var(--green);
    box-shadow:0 0 0 4px color-mix(in oklch, var(--green) 22%, transparent);
  }
  .m-rail-dot:hover .m-rail-tick,.m-rail-dot:focus-visible .m-rail-tick{background:var(--fg-2)}
  .m-rail-dot:focus-visible{outline:none}
  .m-rail-label{
    position:absolute;right:28px;top:50%;transform:translateY(-50%) translateX(6px);
    opacity:0;pointer-events:none;
    font-family:"Geist Mono",ui-monospace,monospace;
    font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--fg);
    background:color-mix(in srgb, var(--bg-2) 92%, transparent);
    padding:4px 9px;border-radius:7px;border:1px solid var(--line);
    white-space:nowrap;transition:opacity .2s ease, transform .2s ease;
  }
  .m-rail.is-open .m-rail-label,.m-rail-dot.active .m-rail-label{
    opacity:1;transform:translateY(-50%) translateX(0);
  }
  .m-rail.is-open .m-rail-label{pointer-events:auto}
}
@media (max-width:360px){
  .m-rail{right:6px;padding:8px 6px;gap:4px}
}

/* ---------- Visually hidden ---------- */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ============================================================
   Charging Stations section
   New layouts only — everything above is shared with the homepage.
   All colors come from the tokens above so dark/light theming works.
   ============================================================ */

/* Breadcrumbs */
.breadcrumbs{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-family:"Geist Mono",ui-monospace,monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-3);padding:22px 0 0}
.breadcrumbs a{color:var(--fg-3);transition:color .2s ease}
.breadcrumbs a:hover{color:var(--fg)}
.breadcrumbs .sep{color:var(--fg-4)}
.breadcrumbs [aria-current="page"]{color:var(--green)}

/* Charging hero — lighter than the homepage hero, no background art */
.charging-hero{padding:56px 0 8px;border-top:none}
.charging-hero .h1{font-size:clamp(36px, 6vw, 76px);letter-spacing:-0.035em;line-height:1.0;font-weight:600;margin:16px 0 18px}
.charging-hero .h1 .accent{color:var(--green)}
.charging-hero .lead{max-width:640px}
@media (max-width:720px){ .charging-hero{padding:40px 0 8px} }

/* Location cards grid (landing facility list) */
.location-grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(248px, 1fr));gap:18px}
.location-card{padding:24px;display:flex;flex-direction:column;min-height:210px;transition:transform .25s ease, border-color .25s ease}
.location-card.is-live:hover{transform:translateY(-2px);border-color:color-mix(in oklch, var(--green) 35%, var(--line))}
.location-card .name{font-size:20px;font-weight:600;letter-spacing:-0.01em;margin:16px 0 0}
.location-card .meta{font-family:"Geist Mono",ui-monospace,monospace;font-size:11px;letter-spacing:.14em;color:var(--fg-3);text-transform:uppercase;margin-top:6px}
.location-card .copy{color:var(--fg-2);font-size:14px;line-height:1.55;margin:12px 0 0;flex:1}
.location-card .go{margin-top:16px;font-size:13px;color:var(--green);font-weight:500;display:inline-flex;align-items:center;gap:6px}
.status-badge{align-self:flex-start;font-family:"Geist Mono",ui-monospace,monospace;font-size:10px;letter-spacing:.18em;text-transform:uppercase;padding:5px 10px;border-radius:999px;border:1px solid var(--line)}
.status-badge.live{color:var(--green);border-color:color-mix(in oklch, var(--green) 45%, var(--line));background:color-mix(in srgb, var(--green) 8%, transparent)}
.status-badge.soon{color:var(--fg-3)}

/* Two-column split for the hub facility layout */
.charging-split{display:grid;grid-template-columns:1.1fr 1fr;gap:48px;align-items:start}
@media (max-width:980px){ .charging-split{grid-template-columns:1fr;gap:32px} }

/* Map section (placeholder until a real embed URL is provided) */
.map-embed{position:relative;aspect-ratio:16/9;border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;background:var(--bg-2)}
.map-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.map-ph{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;padding:24px;background-image:linear-gradient(to right, var(--line) 1px, transparent 1px),linear-gradient(to bottom, var(--line) 1px, transparent 1px);background-size:32px 32px}
.map-ph .pin{width:14px;height:14px;border-radius:999px;background:var(--green);box-shadow:0 0 0 6px color-mix(in oklch, var(--green) 22%, transparent)}
.map-ph .t{font-weight:600;font-size:16px}
.map-ph .d{font-family:"Geist Mono",ui-monospace,monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-3)}

/* Info list (address / hours / contact placeholders) */
.info-list{display:grid;gap:0;border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;margin-top:20px}
.info-list > div{display:grid;grid-template-columns:120px 1fr;gap:16px;padding:18px 20px;border-bottom:1px solid var(--line);align-items:start}
.info-list > div:last-child{border-bottom:none}
.info-list dt{font-family:"Geist Mono",ui-monospace,monospace;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--fg-3);margin:0;padding-top:2px}
.info-list dd{margin:0;font-size:14px;color:var(--fg);line-height:1.5}
.info-list dd a{color:var(--green)}
@media (max-width:480px){ .info-list > div{grid-template-columns:1fr;gap:6px} }

/* Amenities grid */
.amenity-grid{display:grid;grid-template-columns:repeat(3, 1fr);gap:14px}
.amenity{display:flex;gap:14px;align-items:flex-start;padding:20px;border:1px solid var(--line);border-radius:14px;background:color-mix(in srgb, var(--bg-2) 60%, transparent)}
.amenity .ico{flex-shrink:0;width:24px;height:24px;color:var(--green)}
.amenity .ico svg{width:24px;height:24px;display:block}
.amenity .t{font-weight:600;font-size:15px;letter-spacing:-0.005em}
.amenity .d{color:var(--fg-2);font-size:13px;line-height:1.5;margin-top:4px}
@media (max-width:860px){ .amenity-grid{grid-template-columns:1fr 1fr} }
@media (max-width:520px){ .amenity-grid{grid-template-columns:1fr} }

/* Benefit / feature grid (commercial + personal) */
.benefit-grid{display:grid;grid-template-columns:repeat(3, 1fr);gap:16px}
.benefit{padding:24px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(180deg, color-mix(in srgb, var(--bg-2) 80%, transparent), transparent);display:flex;flex-direction:column}
.benefit .ico{width:26px;height:26px;color:var(--green);margin-bottom:14px}
.benefit .ico svg{width:26px;height:26px;display:block}
.benefit .t{font-size:16px;font-weight:600;letter-spacing:-0.01em}
.benefit .d{color:var(--fg-2);font-size:13.5px;line-height:1.55;margin-top:8px;flex:1}
.benefit .tag{display:inline-block;align-self:flex-start;margin-top:12px;font-family:"Geist Mono",ui-monospace,monospace;font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--fg-4)}
@media (max-width:920px){ .benefit-grid{grid-template-columns:1fr 1fr} }
@media (max-width:560px){ .benefit-grid{grid-template-columns:1fr} }

/* CTA banner */
.cta-banner{position:relative;overflow:hidden;text-align:center;padding:56px 32px;border:1px solid var(--line);border-radius:var(--radius-lg);background:radial-gradient(120% 120% at 50% 0%, color-mix(in srgb, var(--green) 10%, transparent), transparent 60%)}
.cta-banner h2{font-size:clamp(28px, 4vw, 44px);letter-spacing:-0.03em;line-height:1.05;font-weight:600;margin:0 0 14px}
.cta-banner p{color:var(--fg-2);font-size:16px;max-width:560px;margin:0 auto 24px;line-height:1.55}
.cta-banner .actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
@media (max-width:480px){ .cta-banner .actions .btn{width:100%} }

/* CTA button row used on the hub page */
.cta-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
@media (max-width:480px){ .cta-row .btn{width:100%;justify-content:center} }
