/* A province-wide atlas: themes and works replace municipal navigation. */
.infrastructure-platform #explorar .map-workspace { display:grid; grid-template-columns:226px minmax(0,1fr); gap:0 24px; max-width:1640px; padding:0 32px 28px; margin:0 auto; }
.infrastructure-platform #explorar .map-searchbar.has-motto { grid-column:1/-1; grid-template-columns:minmax(0,1.35fr) minmax(300px,.8fr); gap:50px; padding:28px 0 22px; border:0; }
.infrastructure-platform #explorar .map-search-heading h1 { font-size:clamp(32px,3.1vw,47px); letter-spacing:-.05em; max-width:none; }
.infrastructure-platform #explorar .map-search-heading .eyebrow { color:#a4243c; font-size:9px; letter-spacing:.18em; margin-bottom:9px; }
.infrastructure-platform #explorar .map-welcome-copy { max-width:660px; font-size:13px; line-height:1.65; margin:12px 0 0; }
.provincial-work-search { min-width:0; }
.provincial-work-search label { display:block; font-size:11px; font-weight:700; color:#324a48; margin-bottom:8px; }
.provincial-work-search > div { display:flex; gap:8px; }
.provincial-work-search input { width:100%; min-width:0; min-height:50px; padding:13px 15px; border:1px solid #cdd7d3; border-radius:9px; font-size:13px; background:#fff; }
.provincial-work-search button { padding:12px 18px; min-height:50px; flex-shrink:0; }
.provincial-work-search p { margin:8px 0 0; color:#79877d; font-size:10px; }
.infrastructure-platform #explorar .infrastructure-intro { grid-column:1/-1; border-top:1px solid #dfe5e0; border-bottom:1px solid #dfe5e0; padding:14px 0; margin:0 0 22px; gap:12px 28px; font-size:11px; }
.infrastructure-platform #explorar .infrastructure-intro strong { font-size:13px; }
.infrastructure-platform #explorar .topic-explorer { margin:0; padding:0 18px 0 0; border:0; border-right:1px solid #e2e7e2; align-self:start; min-width:0; }
.infrastructure-platform #explorar .topic-explorer-heading { display:block; padding:0; margin:0 0 13px; }
.atlas-eyebrow { font-size:8px; font-weight:750; letter-spacing:.17em; color:#74847c; }
.infrastructure-platform #explorar .topic-explorer-heading h2 { color:#203d3b; font-size:23px; line-height:1.12; margin:9px 0 8px; }
.infrastructure-platform #explorar .topic-explorer-heading p { color:#809087; font-size:11px; margin:0; }
.infrastructure-platform #explorar .topic-choices { display:grid; grid-template-columns:minmax(0,1fr); gap:3px; padding:0; overflow:visible; mask-image:none; -webkit-mask-image:none; }
.infrastructure-platform #explorar .discovery-topic { display:flex; flex-direction:row; align-items:center; justify-content:flex-start; text-align:left; gap:11px; width:100%; min-width:0; min-height:42px; padding:8px 10px; border:1px solid transparent; border-radius:7px; background:transparent; box-shadow:none; }
.infrastructure-platform #explorar .discovery-topic:hover { background:#f1f5f1; border-color:#dae3db; }
.infrastructure-platform #explorar .discovery-topic[aria-pressed=true] { color:#fff; border-color:#203d3b; background:#203d3b; box-shadow:none; }
.infrastructure-platform #explorar .discovery-topic-icon { width:23px; height:23px; flex:0 0 23px; color:#657c71; background:none; border-radius:0; }
.infrastructure-platform #explorar .discovery-topic[aria-pressed=true] .discovery-topic-icon { color:#d6e6d5; }
.infrastructure-platform #explorar .discovery-topic-label { font-size:11px; line-height:1.4; min-height:0; justify-content:flex-start; text-align:left; color:inherit; }
.infrastructure-platform #explorar .map-stage { min-width:0; padding:0; }
.map-themebar { display:flex; justify-content:space-between; align-items:center; gap:20px; margin:0 0 15px; padding:17px 20px; border:1px solid #d9e1dc; background:#f4f7f4; border-radius:12px; }
.map-themebar h2 { font-size:20px; letter-spacing:-.035em; margin:4px 0 0; color:#25433e; }
.map-themebar label { display:flex; align-items:center; gap:10px; white-space:nowrap; font-size:10px; color:#62776d; }
.map-themebar select { border:1px solid #cbd7cd; background:#fff; border-radius:7px; padding:10px 30px 10px 11px; color:#2b453f; font-size:11px; min-height:40px; max-width:100%; }
.infrastructure-platform #explorar .map-canvas-wrap { height:620px; min-height:520px; max-height:78vh; border:1px solid #d4dfd6; border-radius:12px; background:#edf3ee; }
.infrastructure-platform #explorar #exploreMap { background:#edf3ee; }
.infrastructure-platform #explorar .map-canvas-wrap { position:relative; }
.infrastructure-platform #explorar #exploreMap { position:absolute; inset:0; width:100%; height:100%; min-height:0; }
.map-load-state { position:absolute; inset:0; z-index:750; display:flex; align-items:center; justify-content:center; flex-direction:column; gap:14px; padding:28px; background:#e4ecd8; color:#29483a; text-align:center; }
.map-load-state p { max-width:290px; margin:0; font-size:14px; line-height:1.6; }
.map-load-state[hidden] { display:none; }
.map-load-state.is-error .loading-spinner { display:none; }
.map-load-state .button { min-height:44px; }
.infrastructure-platform #explorar #exploreMap .province-map-label { color:#31594e; }
.infrastructure-platform #explorar .discovery-panel { width:235px; max-width:calc(100% - 32px); padding:19px; left:18px; bottom:28px; border:1px solid #385b50; background:#203d35; border-radius:12px; box-shadow:0 8px 28px #15362b17; }
.infrastructure-platform #explorar .discovery-panel h2 { font-size:22px; line-height:1.18; margin:14px 0 8px; }
.infrastructure-platform #explorar .discovery-panel-count { font-size:11px; margin:0; }
.infrastructure-platform #explorar .discovery-kicker { font-size:7px; }
.infrastructure-platform #explorar #discoveryPanelBody > p { font-size:12px; line-height:1.65; margin:16px 0; }
.infrastructure-platform #explorar .discovery-primary { min-height:44px; padding:11px; font-size:11px; }
.infrastructure-platform #explorar .discovery-links { margin-top:13px; }
.infrastructure-platform #explorar .discovery-links button { font-size:10px; }
.infrastructure-platform #explorar .map-legend { position:static; margin:12px 0 0; padding:0; display:flex; flex-wrap:wrap; align-items:center; gap:9px 16px; font-size:10px; color:#64766d; background:transparent; border:0; box-shadow:none; }
.map-theme-help { font-size:10px; color:#7c897f; margin:9px 0 0; line-height:1.6; }
.report-themed-pin { background:transparent!important; border:0!important; box-shadow:none!important; }
.report-themed-dot { display:block; width:28px; height:28px; border:3px solid #fff; border-radius:50%; box-shadow:0 1px 8px #18372b66; }
.report-themed-pin.is-municipal .report-themed-dot { border-style:dashed; }
.infrastructure-platform #explorar .map-channel-caption { grid-column:1/-1; padding-top:20px; }
.infrastructure-platform .observatory-charts { grid-template-columns:repeat(2,minmax(0,1fr)); }
.infrastructure-platform #explorar .report-overview article span { max-width:150px; }
@media(min-width:1600px) { .infrastructure-platform #explorar .map-canvas-wrap { height:730px; } }
@media(max-width:1050px) {
  .infrastructure-platform #explorar .map-workspace { grid-template-columns:185px minmax(0,1fr); gap:0 18px; padding:0 22px 24px; }
  .infrastructure-platform #explorar .map-searchbar.has-motto { grid-template-columns:1.2fr 1fr; gap:24px; }
  .infrastructure-platform #explorar .topic-explorer { padding-right:12px; }
  .infrastructure-platform #explorar .discovery-topic { gap:8px; padding:8px 5px; }
  .infrastructure-platform #explorar .discovery-topic-label { font-size:10px; }
  .infrastructure-platform #explorar .map-canvas-wrap { height:610px; }
  .map-themebar { align-items:flex-start; flex-direction:column; gap:12px; padding:16px; }
  .map-themebar label { width:100%; justify-content:space-between; }
}
@media(max-width:760px) {
  .infrastructure-platform #explorar .map-workspace { display:block; padding:0 16px 18px; }
  .infrastructure-platform #explorar .map-searchbar.has-motto { display:block; padding:22px 0 18px; }
  .infrastructure-platform #explorar .map-search-heading h1 { font-size:33px; }
  .infrastructure-platform #explorar .map-welcome-copy { font-size:12px; line-height:1.7; }
  .provincial-work-search { margin-top:20px; }
  .provincial-work-search input { font-size:16px; min-height:48px; }
  .provincial-work-search button { min-height:48px; padding:10px 14px; }
  .infrastructure-platform #explorar .infrastructure-intro { margin-bottom:18px; font-size:10px; gap:8px 18px; }
  .infrastructure-platform #explorar .infrastructure-intro > span:nth-child(2) { display:none; }
  .infrastructure-platform #explorar .infrastructure-intro a { margin-left:auto; }
  .infrastructure-platform #explorar .topic-explorer { border:0; padding:0; margin-bottom:17px; }
  .infrastructure-platform #explorar .topic-explorer-heading h2 { font-size:18px; margin:0 0 10px; }
  .infrastructure-platform #explorar .topic-explorer-heading h2 br { display:none; }
  .infrastructure-platform #explorar .topic-explorer-heading .atlas-eyebrow,.infrastructure-platform #explorar .topic-explorer-heading p { display:none; }
  .infrastructure-platform #explorar .topic-choices { display:flex; overflow-x:auto; gap:7px; padding:2px 2px 9px; scroll-padding:2px; }
  .infrastructure-platform #explorar .discovery-topic { flex:0 0 135px; min-height:58px; border:1px solid #dde5dc; padding:10px; }
  .infrastructure-platform #explorar .discovery-topic-label { font-size:11px; }
  .map-themebar { margin:12px 0; padding:14px; }
  .map-themebar h2 { font-size:19px; }
  .map-themebar select { font-size:16px; min-height:46px; width:100%; }
  .map-themebar label { flex-direction:column; align-items:flex-start; gap:6px; white-space:normal; }
  .infrastructure-platform #explorar .map-canvas-wrap { min-height:480px; height:66vh; max-height:none; }
  .infrastructure-platform #explorar .discovery-panel { left:12px; bottom:30px; width:222px; padding:14px; }
  .infrastructure-platform #explorar .discovery-panel h2 { font-size:19px; margin-top:10px; }
  .infrastructure-platform #explorar .map-legend { gap:8px 13px; font-size:10px; }
  .infrastructure-platform .observatory-charts { grid-template-columns:minmax(0,1fr); }
  .infrastructure-platform .brand small { max-width:240px; white-space:normal; }
}

/* Keep the cartography clear; contextual guidance belongs below the map. */
.infrastructure-platform #explorar .discovery-panel { position:static; width:auto; max-width:none; margin:16px 0 0; padding:16px 18px; color:#36564b; background:#f3f6f2; border-color:#dce5db; box-shadow:none; }
.infrastructure-platform #explorar .discovery-panel-top { gap:18px; }
.infrastructure-platform #explorar .discovery-panel h2 { font-size:18px; margin:7px 0; color:#29483e; }
.infrastructure-platform #explorar .discovery-panel-count,.infrastructure-platform #explorar .discovery-kicker { color:#647a6d; }
.infrastructure-platform #explorar #discoveryPanelToggle { color:#36564b; border-color:#bbc9be; }
.infrastructure-platform #explorar #discoveryPanelBody { display:flex; flex-wrap:wrap; align-items:center; gap:12px 18px; }
.infrastructure-platform #explorar #discoveryPanelBody[hidden] { display:none; }
.infrastructure-platform #explorar #discoveryPanelBody > p { flex:1 1 260px; margin:6px 0; font-size:11px; }
.infrastructure-platform #explorar .discovery-primary { width:auto; min-width:0; min-height:40px; padding:10px 12px; background:#e0ebe0; color:#284a3c; box-shadow:none; }
.infrastructure-platform #explorar .discovery-links { width:100%; margin:0; }
.infrastructure-platform #explorar .discovery-links button { color:#536e60; }

.route-map-key { display:flex; align-items:center; gap:7px; font-size:10px; color:#6d7e74; margin:9px 0 0; }
.route-map-key i { width:19px; border-top:2px solid #c52d43; }

/* Provincial cartographic palette: flat, colored and independent of relief. */
.infrastructure-platform .map .flat-street-map { filter:none; mix-blend-mode:multiply; opacity:.88; }
.infrastructure-platform .map { background:#dce8ca; }
.infrastructure-platform #explorar #exploreMap { background:#dce8ca; }
.infrastructure-platform #explorar .map-canvas-wrap { background:#dce8ca; border-color:#b7c4a6; }
.provincial-atlas-stamp { position:absolute; z-index:600; bottom:30px; left:18px; pointer-events:none; padding:9px 12px; background:#f7f5eadf; border-left:3px solid #ac3045; border-radius:0 5px 5px 0; color:#345345; }
.provincial-atlas-stamp strong { display:block; font-size:13px; font-weight:750; letter-spacing:.04em; }
.provincial-atlas-stamp span { display:block; font-size:7px; letter-spacing:.16em; margin-top:3px; }
.infrastructure-platform #explorar #discoveryPanelTitle { color:#29483e; font-size:18px; margin:7px 0; }
.infrastructure-platform #explorar #discoveryPanelCount,.infrastructure-platform #explorar #discoveryPanelCopy { color:#647a6d; }
.infrastructure-platform body.map-expanded #explorar .infrastructure-intro,
.infrastructure-platform body.map-expanded #explorar .discovery-panel,
.infrastructure-platform body.map-expanded #explorar .map-theme-help,
.infrastructure-platform body.map-expanded #explorar .map-navigation-help { display:none; }
.infrastructure-platform body.map-expanded #explorar .map-stage { position:fixed; inset:0; width:100%; height:100dvh; padding:12px 16px; }
.infrastructure-platform body.map-expanded #explorar .map-themebar { flex-direction:row; align-items:center; margin:8px 0; padding:10px 14px; flex:none; }
.infrastructure-platform body.map-expanded #explorar .map-themebar label { width:auto; }
.infrastructure-platform body.map-expanded #explorar .map-themebar h2 { font-size:17px; }
.infrastructure-platform body.map-expanded #explorar .map-canvas-wrap { flex:1 1 0; min-height:0; height:auto; max-height:none; }
.infrastructure-platform body.map-expanded #explorar .map-legend { flex:none; }
@media(max-width:760px) {
  .infrastructure-platform body.map-expanded #explorar .map-themebar { gap:10px; padding:9px 11px; }
  .infrastructure-platform body.map-expanded #explorar .map-themebar>div { display:none; }
  .infrastructure-platform body.map-expanded #explorar .map-themebar label { width:100%; flex-direction:row; align-items:center; }
  .infrastructure-platform body.map-expanded #explorar .map-themebar select { width:auto; min-width:0; flex:1; }
  .provincial-atlas-stamp { bottom:35px; left:12px; padding:7px 9px; }
  .provincial-atlas-stamp strong { font-size:11px; }
}

.report-themed-dot { display:grid; place-items:center; color:#fff; }
.report-themed-symbol { width:16px; height:16px; display:block; flex:none; }

.road-network-legend { display:flex; flex-wrap:wrap; align-items:center; gap:9px 18px; margin:12px 0 0; padding-bottom:11px; border-bottom:1px solid #dce4d7; color:#586d60; font-size:10px; flex:none; }
.road-network-legend>strong { font-size:8px; letter-spacing:.12em; }
.road-network-legend>span { display:inline-flex; align-items:center; gap:7px; }
.road-network-legend i { width:23px; border-top-style:solid; flex:none; }
.road-national { border-top:3px solid #9f263e; }
.road-provincial { border-top:2px solid #c74645; }
.road-network-legend .road-local { border-top:1px dashed #c52d43; }
.road-network-legend a { margin-left:auto; color:#8e3948; }
@media(max-width:760px) { .infrastructure-platform .site-header nav a:last-child { display:block; } .road-network-legend { gap:8px 12px; font-size:9px; } }

.official-layer-controls { display:flex; flex-wrap:wrap; align-items:center; gap:10px 18px; margin:0 0 13px; padding:13px 16px; border:1px solid #cad9c6; border-radius:10px; background:#eaf1e5; font-size:11px; color:#395445; }
.official-layer-toggle { display:flex; align-items:center; gap:8px; font-weight:700; }
.official-layer-toggle input { accent-color:#375e48; width:17px; height:17px; margin:0; }
.official-source-filter { display:flex; align-items:center; gap:8px; }
.official-source-filter>span { font-size:10px; color:#6b7e6e; }
.official-source-filter select { padding:8px 26px 8px 10px; border:1px solid #c5d2bf; border-radius:6px; font-size:11px; background:#fff; }
#officialWorksCount { margin-left:auto; font-size:10px; }
.official-works-section { margin:34px 0; padding-bottom:30px; border-bottom:1px solid #dce4d7; }
.official-works-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin:17px 0; }
.official-work-card { padding:20px; border:1px solid #d6e0d0; border-radius:11px; background:#fbfcf8; min-width:0; }
.official-work-card h3 { font-size:17px; line-height:1.4; margin:10px 0; }
.official-work-card p { font-size:11px; line-height:1.7; color:#6c7b6d; }
.official-work-card a { color:#a63045; font-size:11px; }
.official-work-card button { border:0; background:transparent; padding:0; color:#355845; font-weight:650; font-size:11px; cursor:pointer; }
.official-source-notes { font-size:11px; color:#6b7d69; line-height:1.7; background:#f4f6ed; border-radius:8px; padding:12px 15px; }
.official-source-notes p { margin:5px 0; }
.official-source-notes a { color:#6d5143; }
.official-point-key { display:flex; gap:16px; font-size:10px; color:#6a7e6f; margin-top:15px; }
.official-point-key span { display:inline-flex; gap:6px; align-items:center; }
.official-key-square,.official-key-circle { display:inline-block; width:10px; height:10px; background:#527360; border-radius:2px; }
.official-key-circle { border-radius:50%; }
.official-work-pin { background:transparent; border:0; }
.official-work-dot { width:28px; height:28px; border:2px solid #fff; border-radius:7px; display:grid; place-items:center; color:#fff; box-shadow:0 1px 7px #213d3060; }
.official-work-pin.is-approximate .official-work-dot { border-style:dashed; }
.official-work-cluster { background:#354d43; color:#fff; border:2px solid white; border-radius:7px; display:grid; place-items:center; font:700 11px system-ui; box-shadow:0 1px 6px #17392944; }
.infrastructure-platform body.map-expanded #explorar .official-layer-controls { flex:none; padding:8px 12px; margin:5px 0; }
@media(max-width:1050px) { .official-works-list { grid-template-columns:minmax(0,1fr); } }
@media(max-width:760px) {
  .official-source-filter { width:100%; }
  .official-source-filter select { font-size:16px; flex:1; min-width:0; min-height:44px; }
  #officialWorksCount { margin-left:0; }
  .official-point-key { flex-wrap:wrap; gap:9px; }
  .official-work-card { padding:17px; }
  .infrastructure-platform body.map-expanded #explorar .official-layer-controls { gap:6px 10px; font-size:10px; }
  .infrastructure-platform body.map-expanded #explorar .official-source-filter { width:auto; flex:1; }
  .infrastructure-platform body.map-expanded #explorar .official-source-filter>span { display:none; }
  .infrastructure-platform body.map-expanded #explorar .official-source-filter select { font-size:12px; min-height:34px; width:100%; }
}

.official-work-marker { background:transparent; border:0; }
.official-work-square { display:grid; place-items:center; width:32px; height:32px; background:var(--official-work-color,#3d5566); color:white; border:2px solid white; border-radius:7px; box-shadow:0 1px 7px #213d3060; }
.official-work-square--reference { border-style:dashed; }
.official-work-marker .official-work-cluster { width:32px; height:32px; }
.official-work-kicker { font-size:9px; letter-spacing:.08em; text-transform:uppercase; color:#527365; font-weight:750; }
.official-work-actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px 18px; margin-top:17px; }
.official-work-card h3 { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; overflow:hidden; }
.official-work-popup { color:#294335; font-size:12px; }
.official-work-popup p { font-size:11px; line-height:1.5; }
.official-work-popup h3 { font-size:15px; line-height:1.4; }
.official-source-disclosure { padding:12px 15px; background:#f4f6ed; border:1px solid #e0e7d8; border-radius:8px; font-size:11px; color:#586c59; }
.official-source-disclosure summary { cursor:pointer; font-weight:650; }
.official-source-disclosure .official-source-notes { padding:10px 0 0; }
.official-work-context { margin:14px 0; padding:14px 16px; border-left:3px solid #bb2d42; border-radius:5px; background:#f4f7ef; }
.official-work-context[hidden] { display:none; }
.official-work-context strong { display:block; font-size:15px; line-height:1.4; }
.official-work-context p { margin:7px 0; font-size:12px; line-height:1.55; }
.official-work-context a { font-size:12px; color:#7e2638; }
.official-work-actions a:last-child { color:#a82b40; font-weight:700; }
@media(max-width:600px) {
  .infrastructure-platform body.map-expanded #explorar #exploreResultCount { display:none; }
  .infrastructure-platform body.map-expanded #explorar .official-layer-controls { display:grid; grid-template-columns:1fr 1fr; }
  .infrastructure-platform body.map-expanded #explorar .official-layer-toggle { grid-column:1/-1; }
  .infrastructure-platform body.map-expanded #explorar .official-source-filter { min-width:0; }
  .infrastructure-platform body.map-expanded #explorar .official-source-filter[for="officialWorksDataset"] { display:none; }
  .infrastructure-platform body.map-expanded #explorar .official-source-filter select { min-height:38px; }
  .infrastructure-platform body.map-expanded #explorar #officialWorksCount { text-align:right; }
  .infrastructure-platform body.map-expanded #explorar .map-legend { flex-wrap:nowrap; overflow-x:auto; white-space:nowrap; min-height:32px; gap:12px; padding-block:7px; }
  .infrastructure-platform body.map-expanded #explorar .map-legend>span { flex:none; }
  .infrastructure-platform body.map-expanded #explorar .road-network-legend { gap:8px; flex-wrap:nowrap; overflow-x:auto; white-space:nowrap; padding-block:8px; }
  .infrastructure-platform body.map-expanded #explorar .road-network-legend>* { flex:none; }
  .infrastructure-platform body.map-expanded #explorar #exploreMapStatus { display:none; }
}
