.ca-site .ca-regional-map { color: #15313e; background: #fff; border: 1px solid #dfe5e1; border-radius: 8px; overflow: hidden; text-align: start; }
.ca-site .ca-regional-map-heading { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; padding: 32px; align-items: end; }
.ca-site .ca-map-eyebrow { display: block; color: #0d783d; font-size: 12px; font-weight: 700; line-height: 1.5; text-transform: uppercase; letter-spacing: .12em; margin-bottom: 12px; }
.ca-site .ca-regional-map h3 { color: #092c45; font-size: clamp(26px, 3vw, 36px); line-height: 1.15; letter-spacing: -.025em; margin: 0; }
.ca-site .ca-regional-map-heading p { color: #425660; font-size: 16px; line-height: 1.7; margin: 0; max-width: 52ch; }
.ca-site .ca-regional-map-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; border-block: 1px solid #dfe5e1; }
.ca-site .ca-regional-map-surface { position: relative; min-width: 0; min-height: 440px; background: #e9efec; }
.ca-site .ca-regional-map-canvas { position: absolute; inset: 0; height: 100%; width: 100%; }
.ca-site .ca-regional-map-status,.ca-site .ca-regional-map-noscript { position: absolute; inset: 40% 24px auto; padding: 20px; margin: 0; color: #15313e; background: #fff; border: 1px solid #dfe5e1; border-radius: 4px; font-size: 15px; line-height: 1.6; z-index: 2; }
.ca-site .ca-regional-map-legend { padding: 28px 24px; background: #f5f7f4; }
.ca-site .ca-regional-map-legend ul { list-style: none; padding: 0; margin: 0 0 20px; }
.ca-site .ca-regional-map-legend li { border-bottom: 1px solid #d5dfd8; }
.ca-site .ca-regional-map-legend button { width: 100%; display: flex; align-items: center; gap: 12px; background: transparent; border: 0; padding: 15px 0; color: #15313e; text-align: start; cursor: pointer; }
.ca-site .ca-regional-map-legend button:hover strong { color: #0d783d; text-decoration: underline; text-underline-offset: 4px; }
.ca-site .ca-regional-map-legend strong { display: block; font-size: 17px; line-height: 1.3; }
.ca-site .ca-regional-map-legend strong + span { display: block; color: #425660; font-size: 13px; line-height: 1.5; margin-top: 4px; }
.ca-map-dot { flex: 0 0 12px; width: 12px; height: 12px; border: 2px solid #536c63; border-radius: 50%; }
.ca-map-dot.is-operational { background: #0d783d; border-color: #0d783d; box-shadow: 0 0 0 4px #dcebdc; }
.ca-map-location-arrow { margin-inline-start: auto; color: #0d783d; }
.ca-site .ca-map-link { display: inline-block; font-size: 14px; line-height: 1.5; color: #0d783d; font-weight: 700; text-decoration: underline; text-underline-offset: 4px; padding-block: 8px; }
.ca-site .ca-regional-map-note { margin: 0; padding: 18px 32px; font-size: 12px; line-height: 1.7; color: #425660; }
.ca-site .ca-regional-map-note a { color: #0d783d; text-decoration: underline; }
.ca-map-marker { position: absolute; width: 44px; height: 44px; background: transparent; border: 0; cursor: pointer; }
.ca-map-marker:before { content: ''; position: absolute; inset: 8px; background: #fff; border: 3px solid #536c63; border-radius: 50%; box-shadow: 0 2px 8px #08233444; }
.ca-map-marker.is-operational:before { background: #0d783d; border-color: #fff; }
.ca-site .ca-regional-map .maplibregl-popup-content { padding: 18px 28px 18px 18px; color: #15313e; font: 14px/1.5 Arial, sans-serif; border-radius: 6px; }
.ca-regional-map .maplibregl-popup-content strong,.ca-regional-map .maplibregl-popup-content span { display: block; }
.ca-regional-map .maplibregl-popup-close-button { min-width: 28px; min-height: 28px; color: #092c45; }
.ca-regional-map .maplibregl-ctrl-group button { width: 44px; height: 44px; }
@media(max-width: 899px) {
    .ca-site .ca-regional-map-heading { grid-template-columns: 1fr; gap: 16px; padding: 24px; }
    .ca-site .ca-regional-map-layout { grid-template-columns: 1fr; }
    .ca-site .ca-regional-map-surface { min-height: 360px; }
    .ca-site .ca-regional-map-legend { padding: 24px; }
    .ca-site .ca-regional-map-legend ul { display: grid; grid-template-columns: 1fr 1fr; column-gap: 24px; }
    .ca-site .ca-regional-map-note { padding: 20px 24px; }
}
@media(max-width: 479px) {
    .ca-site .ca-regional-map-heading,.ca-site .ca-regional-map-legend { padding: 24px 20px; }
    .ca-site .ca-regional-map-legend ul { grid-template-columns: 1fr; }
    .ca-site .ca-regional-map-surface { min-height: 320px; }
}
.ca-about-map { margin-top: 56px; }
.ca-site .ca-regional-map-legend .ca-map-reset { display: block; width: auto; padding: 10px 14px; min-height: 44px; border: 1px solid #819b8e; border-radius: 3px; color: #0d783d; font-size: 13px; font-weight: 700; margin-bottom: 12px; }
.ca-site .ca-regional-map-legend .ca-map-reset:hover { background: #e3ece4; }
.ca-site .ca-regional-map .ca-regional-map-heading h3 { color: #092c45; }
.ca-site .ca-regional-map .ca-regional-map-heading p,
.ca-site .ca-regional-map .ca-regional-map-note { color: #425660; }
.ca-site .ca-regional-map .ca-regional-map-status,
.ca-site .ca-regional-map .ca-regional-map-noscript { color: #15313e; }
