.hero-map-section { position:relative; isolation:isolate; overflow:hidden; background:#edf4f5; color:#103b67; padding:0; }
.hero-map-section .hero-layout { position:relative; z-index:2; min-height:530px; pointer-events:none; }
.hero-map-section .hero-copy { width:51%; max-width:610px; margin:0; padding:52px 38px 64px 0; text-align:left; pointer-events:none; }
.hero-map-section h1 { color:var(--brand-ink); font-size:clamp(1.9rem,2.65vw,2.55rem); }
.hero-map-section .hero-subtitle { color:#425b70; font-size:1.05rem; margin:1.3rem 0 1.8rem; }
.hero-map-section .hero-actions { justify-content:flex-start; gap:.7rem; }
.hero-map-section .btn-primary { background:var(--brand-action); color:white; }
.hero-map-section .btn-primary:hover { background:var(--brand-hover); }
.hero-map-section .btn-secondary { background:#fff; color:var(--brand-ink); border-color:var(--brand-action); }
.hero-map-stage { z-index:0; position:absolute; inset:0 0 0 35%; background:linear-gradient(135deg,#dceef0,#edf4e8); }
#hero-map { width:100%; height:100%; background:transparent; }
#hero-map::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,#edf4f5 0%,rgba(237,244,245,.84) 8%,rgba(237,244,245,0) 36%); z-index:450; pointer-events:none; }

#hero-map .leaflet-control-attribution { font-size:11px; background:rgba(255,255,255,.94); padding:3px 7px; }

.hero-map-caption { position:absolute; bottom:35px; right:24px; z-index:501; display:flex; flex-wrap:wrap; gap:8px 14px; align-items:center; color:#345269; font-size:.75rem; background:rgba(255,255,255,.94); border:1px solid #dbe6e9; border-radius:10px; padding:8px 12px; }
.hero-map-caption button { background:none; border:0; color:#075985; text-decoration:underline; cursor:pointer; padding:3px; font-size:inherit; }
.hero-bus { border:0; background:none; display:flex; align-items:center; justify-content:center; }
.hero-bus svg { width:22px; height:46px; transform-origin:center; filter:drop-shadow(0 2px 3px #38556b66); }
.hero-bus.is-hidden { opacity:0; }

@media (max-width:1024px) {
 .hero-map-section .hero-copy { width:56%; padding-right:20px; }
 .hero-map-section .hero-layout { min-height:530px; }
 .hero-map-stage { left:30%; }
}
@media (max-width:600px) {
 .hero-map-section { padding:0; }
 .hero-map-section .hero-layout { min-height:0; }
 .hero-map-section .hero-copy { width:100%; max-width:none; padding:25px 0 430px; }
 .hero-map-section h1 { font-size:1.65rem; }
 .hero-map-section .hero-subtitle { font-size:1rem; margin:.8rem 0 1rem; }
 .hero-map-stage { inset:auto 0 0; height:410px; }
 #hero-map::after { background:linear-gradient(180deg,#edf4f5,transparent 10%); }
 .hero-map-caption { bottom:28px; right:10px; left:10px; justify-content:center; font-size:.7rem; gap:4px 10px; }
 .hero-bus svg { width:20px; height:42px; }
}

#hero-map .leaflet-control-zoom { margin:16px; }
#hero-map .leaflet-control-zoom a { color:#103b67; }

.hero-map-section .hero-copy > * { pointer-events:auto; }


@media(max-width:600px) { .hero-map-caption { bottom:38px; } #hero-map .leaflet-control-attribution { font-size:10px; max-width:100%; } }

.hero-map-caption { padding:5px 9px; border-radius:6px; }
@media(max-width:600px) { .hero-map-caption { left:auto; right:10px; bottom:34px; } }

/* Describe the illustration beside the regional heading, away from map controls. */
.hero-map-label { margin:0 0 .65rem; color:#425b70; font-size:.75rem; }

.hero-map-section .btn-secondary:hover { background:var(--brand-soft); color:var(--brand-hover); border-color:var(--brand-hover); }

/* One primary corporate action; direct contact remains a quieter alternative. */
.hero-map-section .corporate-hero-actions{flex-direction:column;align-items:flex-start;gap:14px}
.corporate-hero-actions .btn-primary{max-width:390px;width:100%;white-space:normal;line-height:1.45;padding:15px 22px;text-align:center}
.hero-map-section .hero-offer-button{background:var(--brand-soft);color:var(--brand-ink);border-color:#b9dbe8;max-width:390px;width:100%;white-space:normal;line-height:1.45;padding:19px 22px;font-size:1.08rem;min-height:68px;text-align:center}
.hero-map-section .hero-offer-button:hover{background:#d6edf6;border-color:var(--brand-action)}
@media(max-width:600px){.corporate-hero-actions .btn-primary,.corporate-hero-actions .hero-offer-button{max-width:100%}}
#hero-map .leaflet-tile-pane{filter:saturate(.28) brightness(1.06) contrast(.9)}
