
/* ============ Services page additions ============ */
.crumb ol{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;list-style:none;margin:0 0 1.8rem;padding:0;font-size:.88rem;color:rgba(255,255,255,.7)}
.crumb li+li::before{content:"\2039";margin-inline-end:.5rem;opacity:.6}
.crumb a{transition:color .2s}
.crumb a:hover{color:var(--acc)}
.crumb [aria-current]{color:#fff;font-weight:600}
.hero.hero--in{padding:clamp(1.4rem,3vw,2.2rem) 0 clamp(3.5rem,7vw,5.5rem)}
.hero--in h1{margin-top:0}
.hero--in .hv{width:min(100%,500px)}
.hx{fill:rgba(255,255,255,.05);stroke:rgba(255,255,255,.22);stroke-width:1.5}
.hx-c{fill:var(--em);stroke:rgba(255,255,255,.55);stroke-width:1.5}
.hx-g{fill:rgba(255,255,255,.015);stroke:rgba(255,255,255,.08);stroke-dasharray:3 6}
.cell{animation:cellglow 9s ease-in-out infinite;animation-delay:var(--cd,0s)}
@keyframes cellglow{0%,16%,100%{fill:rgba(255,255,255,.05)}6%{fill:rgba(43,185,133,.42)}}
.fc-d{top:2%;right:0;display:flex;gap:.7rem;align-items:center;--k:-10;animation-delay:-2s}
.fc-d .ci{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:var(--em);color:#fff}
.fc-d b{display:block;font-family:var(--head);font-size:.95rem;line-height:1.3}
.fc-d span{font-size:.76rem;color:#55657A;line-height:1.4;display:block}
.hero--in .fc-b{bottom:4%;right:auto;left:0}

.finder{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:2rem;padding:1rem 1.2rem;border:1px solid var(--line);border-radius:20px;background:var(--bg-alt)}
.finder b{font-family:var(--head);font-size:.95rem;margin-inline-end:.6rem}
.finder a{display:inline-flex;align-items:center;gap:.5rem;min-height:44px;padding:.4rem 1rem;border-radius:999px;background:var(--surface);border:1px solid var(--line);font-size:.9rem;font-weight:500;transition:background-color .25s,color .25s,border-color .25s,transform .25s}
.finder a .ico{color:var(--em-text);width:1.1rem;height:1.1rem;transition:color .25s}
.finder a:hover{background:var(--navy);color:#fff;border-color:var(--navy);transform:translateY(-2px)}
.finder a:hover .ico{color:var(--acc)}

.svc{scroll-margin-top:calc(var(--hh) + 1.5rem)}
.svc .stretch::after{content:"";position:absolute;inset:0;border-radius:20px}
.svc:focus-within{border-color:var(--em)}
.svc:target{border-color:var(--acc);box-shadow:0 0 0 4px rgba(245,165,36,.28)}
.svc-meta{display:flex;gap:.5rem;align-items:flex-start;font-size:.84rem;color:var(--muted);line-height:1.6;padding-top:.85rem;border-top:1px dashed var(--line)}
.svc-meta .ico{color:var(--em-text);width:1rem;height:1rem;margin-top:.2rem}

.wgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:28px;overflow:hidden}
.wcell{background:var(--surface);padding:2.2rem 2rem;transition:background-color .3s}
.wcell:hover{background:var(--mint)}
.wcell .ci{display:grid;place-items:center;width:56px;height:56px;margin-bottom:1.3rem;border-radius:16px;background:var(--mint);color:var(--em-text);transition:background-color .3s,color .3s}
.wcell:hover .ci{background:var(--em);color:#fff}
.wcell .ci .ico{width:1.6rem;height:1.6rem}
.wcell h3{font-size:1.15rem;margin-bottom:.5rem}
.wcell p{color:var(--muted);font-size:.95rem;line-height:1.85}
.lens-n{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--acc);color:#1A1405;font-family:var(--head);font-size:.72rem;font-weight:800}
.plan-cap .lens-n{width:20px;height:20px;font-size:.7rem}
@media (max-width:1024px){.wgrid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.wgrid{grid-template-columns:minmax(0,1fr)}.wcell{padding:1.6rem 1.3rem}.finder{padding:.9rem}.finder b{flex:1 1 100%;margin:0 0 .2rem}.hero--in .fc-b{left:0}.fc-d{right:0}}

/* ============ Cities page additions ============ */
.mapbox{position:relative;aspect-ratio:13/12;border-radius:28px;overflow:hidden;background:#0B2A4E;border:1px solid rgba(255,255,255,.14);box-shadow:0 40px 80px -40px rgba(0,0,0,.6)}
.mapbox>svg{position:absolute;inset:0;width:100%;height:100%;display:block}
.mapbox .fc-d{top:1rem;right:1rem}
.maplegend{position:absolute;left:1rem;bottom:1rem;display:flex;gap:1rem;flex-wrap:wrap;padding:.5rem .9rem;border-radius:999px;background:rgba(6,23,48,.72);border:1px solid rgba(255,255,255,.16);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-size:.78rem;color:rgba(255,255,255,.85)}
.maplegend span{display:inline-flex;align-items:center;gap:.45rem}
.maplegend i{width:10px;height:10px;border-radius:50%;background:#fff;border:2px solid #0A2342}
.maplegend i.q{background:var(--acc)}
.link{fill:none;stroke:rgba(43,185,133,.7);stroke-width:1.5;stroke-dasharray:4 7;animation:dash 7s linear infinite;transition:opacity .3s}
@keyframes dash{to{stroke-dashoffset:-110}}
.pin{cursor:pointer;transition:opacity .3s}
.pin .pin-dot{fill:#fff;stroke:#0A2342;stroke-width:2.5;transform-box:fill-box;transform-origin:center;transition:transform .25s,fill .25s}
.pin .pin-ring{fill:none;stroke:var(--em-400);stroke-width:2;opacity:0;transform-box:fill-box;transform-origin:center}
.pin .pin-lbl{font-family:var(--head);font-size:15px;font-weight:700;fill:#fff;paint-order:stroke;stroke:#0A2342;stroke-width:4px;stroke-linejoin:round}
.pin.hq .pin-dot{fill:var(--acc)}
.pin.hq .pin-ring,.pin.hot .pin-ring{opacity:1;animation:pinring 2.2s ease-out infinite}
.pin:hover .pin-dot,.pin.hot .pin-dot,.pin:focus-visible .pin-dot{fill:var(--acc);transform:scale(1.35)}
.pin:focus-visible{outline:none}
.pin:focus-visible .pin-dot{stroke:var(--acc);stroke-width:5}
.pin.dim,.link.dim{opacity:.22}
@keyframes pinring{0%{transform:scale(1);opacity:.8}100%{transform:scale(3);opacity:0}}

.tools{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem 2rem;margin-bottom:1.2rem}
.search{position:relative;flex:1 1 320px;max-width:440px}
.search input{width:100%;min-height:54px;padding:.6rem 1rem;padding-inline-start:3rem;border:1.5px solid var(--line);border-radius:14px;background:var(--surface);color:var(--text);font:inherit;font-size:1rem;transition:border-color .2s,box-shadow .2s}
.search input:focus{outline:0;border-color:var(--em);box-shadow:0 0 0 4px color-mix(in srgb,var(--em) 18%,transparent)}
.search .ico{position:absolute;top:50%;inset-inline-start:1rem;transform:translateY(-50%);width:1.3rem;height:1.3rem;color:var(--muted);pointer-events:none}
.tools .tabs{margin:0}
.count{margin-bottom:1.4rem;font-size:.92rem;color:var(--muted)}
.count b{color:var(--text)}
.cgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:1.1rem}
.city-card{position:relative;display:flex;flex-direction:column;gap:.85rem;padding:1.6rem;border:1px solid var(--line);border-radius:22px;background:var(--surface);overflow:hidden;transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s,border-color .3s}
.city-card[hidden]{display:none}
.city-card::before{content:"";position:absolute;inset-inline:0;top:0;height:4px;background:var(--em);transform:scaleX(0);transform-origin:right;transition:transform .45s cubic-bezier(.2,.8,.2,1)}
.city-card:hover,.city-card.hot,.city-card:focus-within{transform:translateY(-5px);box-shadow:var(--sh);border-color:var(--em)}
.city-card:hover::before,.city-card.hot::before,.city-card:focus-within::before{transform:scaleX(1)}
.cc-top{display:flex;align-items:center;justify-content:space-between;gap:.6rem}
.cc-hex{display:grid;place-items:center;width:56px;height:62px;clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);background:var(--mint);color:var(--em-text);transition:background-color .3s,color .3s}
.cc-hex .ico{width:1.5rem;height:1.5rem}
.city-card:hover .cc-hex,.city-card.hot .cc-hex{background:var(--navy);color:var(--acc)}
.city-card[data-hq] .cc-hex{background:var(--acc);color:#1A1405}
.cc-tags{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:flex-end}
.cc-zone{padding:.1rem .7rem;border-radius:999px;border:1px solid var(--line);font-size:.78rem;font-weight:600;color:var(--muted)}
.city-card h3{font-size:1.4rem}
.city-card p{flex:1;color:var(--muted);font-size:.95rem;line-height:1.85}
.cc-link{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-top:1rem;border-top:1px dashed var(--line);font-weight:600;color:var(--em-text)}
.cc-link.stretch::after{content:"";position:absolute;inset:0}
.cc-link:focus-visible{outline-offset:-4px}
.cc-go{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--mint);flex:none;transition:background-color .3s,color .3s,transform .3s}
.cc-go .ico{width:1rem;height:1rem}
.city-card:hover .cc-go,.city-card.hot .cc-go{background:var(--acc);color:#1A1405;transform:translateX(-4px)}
.empty{margin-top:1rem;padding:2rem;border:1.5px dashed var(--line);border-radius:22px;text-align:center;background:var(--bg-alt)}
.empty[hidden]{display:none}
.empty h3{font-size:1.2rem;margin-bottom:.5rem}
.empty p{color:var(--muted);margin-bottom:1.2rem}

.cov{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(2rem,5vw,5rem);align-items:start}
.cov h2{font-size:clamp(1.7rem,3vw,2.5rem);line-height:1.5;text-wrap:balance}
.cov-p{margin-top:1.2rem;color:var(--muted);max-width:58ch}
.zpanel{background:var(--navy);color:#fff;border-radius:28px;padding:.5rem;background-image:radial-gradient(circle at 100% 0,rgba(43,185,133,.25),transparent 55%);box-shadow:var(--sh)}
.zone{padding:1.4rem 1.4rem 1.5rem}
.zone+.zone{border-top:1px solid rgba(255,255,255,.12)}
.zone h3{display:flex;align-items:center;justify-content:space-between;gap:.8rem;font-size:1.12rem}
.zone h3 span{font-family:var(--body);font-size:.8rem;font-weight:600;padding:.1rem .75rem;border-radius:999px;background:rgba(255,255,255,.1)}
.zone p{margin:.4rem 0 .9rem;font-size:.9rem;color:rgba(255,255,255,.7);line-height:1.7}
.zone ul{display:flex;flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none}
.zone a{display:inline-flex;align-items:center;min-height:42px;padding:.2rem 1rem;border-radius:999px;border:1px solid rgba(255,255,255,.22);font-size:.92rem;transition:background-color .25s,color .25s,border-color .25s}
.zone a:hover{background:var(--acc);color:#1A1405;border-color:var(--acc)}
.svc-links{margin-top:clamp(2rem,4vw,3rem);padding-top:2rem;border-top:1px solid var(--line)}
.svc-links h3{font-size:1.2rem;margin-bottom:1rem}
.svc-links ul{display:flex;flex-wrap:wrap;gap:.6rem;margin:0;padding:0;list-style:none}
.svc-links a{display:inline-flex;align-items:center;min-height:44px;padding:.3rem 1.1rem;border-radius:999px;border:1px solid var(--line);background:var(--surface);font-size:.92rem;font-weight:500;transition:background-color .25s,color .25s,border-color .25s,transform .25s}
.svc-links a:hover{background:var(--navy);color:#fff;border-color:var(--navy);transform:translateY(-2px)}
@media (max-width:1024px){.cov{grid-template-columns:minmax(0,1fr)}.hero--in .mapbox{width:min(100%,520px);margin-inline:auto}}
@media (max-width:640px){.search{max-width:none}.tools .tabs{width:100%}.maplegend{left:.6rem;bottom:.6rem;font-size:.72rem;gap:.6rem}.mapbox .fc-d{top:.6rem;right:.6rem;padding:.6rem .8rem}.mapbox .fc-d .ci{display:none}}
