/* Quiet regional geography with woodland, administrative lines and place names. */
.hero-map{margin:24px 24px 24px 0;min-width:0;display:flex;flex-direction:column;border:1px solid #b8cbcd;background:var(--paper);position:relative;isolation:isolate;box-shadow:0 16px 38px #173b4b0b}
.map-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:19px 24px 18px;background:var(--ink);color:#f4f6f1;border-bottom:1px solid #355b6c}
.map-heading-copy{min-width:0}
.map-heading-copy>p{font-size:8px;letter-spacing:.22em;color:#b6cbd3;line-height:1.5}
.map-heading h2{font-family:var(--serif);font-size:22px;letter-spacing:.055em;line-height:1.45;margin-top:6px}
.map-reset{display:flex;align-items:center;gap:7px;flex-shrink:0;background:transparent;color:inherit;border:1px solid #688794;padding:9px 10px;font-size:9px;letter-spacing:.025em;transition:background .2s,border-color .2s}
.map-reset svg{width:15px;height:15px;flex-shrink:0}
.map-reset:hover{background:#315c6d;border-color:#b6cbd3}
.map-reset[hidden]{display:none}
.map-viewport{position:relative;flex:1;min-height:360px;overflow:hidden;background:#c7dce4}
#portfolio-map{position:absolute;inset:0;background:#c7dce4;font-family:var(--sans);z-index:0}
#portfolio-map .leaflet-relief-pane{mix-blend-mode:multiply;filter:contrast(.7)}
#portfolio-map.map-regional-view .region-boundary--local{opacity:0}
.region-map-label{border:0;background:none;pointer-events:none!important;transition:opacity .18s}
.region-map-label>span{position:absolute;left:var(--label-x,0px);top:var(--label-y,0px);transform:translate(-50%,-50%);white-space:nowrap;font-size:12px;line-height:1.4;font-weight:500;letter-spacing:.12em;color:#778176;text-shadow:0 1px 2px #f7f6ed,1px 0 2px #f7f6ed,-1px 0 2px #f7f6ed}
.region-map-label--water>span{font-family:var(--serif);font-size:13px;color:#668e9c;letter-spacing:.2em;text-shadow:0 1px 3px #d2e4e9}
.region-map-label.is-colliding{opacity:0}
html[lang="en"] .region-map-label>span{font-size:10px;letter-spacing:.02em}
html[lang="en"] .region-map-label--water>span{font-size:12px;letter-spacing:.07em}
.map-north{position:absolute;top:22px;left:23px;z-index:1;color:#637b84;display:flex;flex-direction:column;align-items:center;gap:5px;pointer-events:none}
.map-north span{font-family:Georgia,serif;font-size:9px;letter-spacing:.05em}
.map-north svg{width:12px;height:33px}
.map-footer{position:relative;z-index:1;background:var(--paper);padding:0 24px 17px}
.map-area-buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:0}
.map-area-buttons button{display:flex;align-items:center;gap:8px;min-width:0;min-height:40px;padding:9px 10px;line-height:1.5;border-top:1px solid #a9bbbd;border-bottom:1px solid #d5dfdc;background:transparent;text-align:left;transition:background .2s,border-color .2s}
.map-area-buttons button:first-child{padding-left:4px}
.map-area-buttons button+button{border-left:1px solid #dce3df}
.map-area-index{font-size:8px;letter-spacing:.08em;color:#7e9299;flex-shrink:0}
.map-area-name{font-family:var(--serif);font-size:13px;letter-spacing:.06em;white-space:nowrap}
.map-area-arrow{font-size:15px;color:#728b94;margin-left:auto;transition:transform .2s,color .2s}
.map-area-buttons button:hover,.map-area-buttons button:focus-visible,.map-area-buttons button.is-active{background:#eaf0ed;border-top-color:var(--ink)}
.map-area-buttons button:hover .map-area-arrow,.map-area-buttons button.is-active .map-area-arrow{color:var(--ink);transform:translate(2px,-2px)}
.map-notes{display:flex;justify-content:space-between;gap:4px 18px;flex-wrap:wrap;padding-top:12px}
.map-hint{font-size:9px;line-height:1.7;color:#526b75;letter-spacing:.025em}
.map-location-note{font-size:8px;line-height:1.7;color:#7b8d92}
.map-load-notice{position:absolute;z-index:2;left:18px;right:18px;bottom:36px;background:#f8faf7f5;border:1px solid #c2d1d4;padding:13px 16px;font-size:11px;line-height:1.8;color:var(--ink)}
.map-load-notice[hidden]{display:none}
#portfolio-map .leaflet-control-zoom{border:1px solid #d3ddda;border-radius:0;box-shadow:0 3px 14px #173b4b08;margin:0 18px 12px 0}
#portfolio-map .leaflet-control-zoom a{color:var(--ink);background:#f8f8f4ed;font-family:var(--sans);font-size:18px;font-weight:400;width:29px;height:29px;line-height:29px;border-radius:0;border-color:#dce4e0}
#portfolio-map .leaflet-control-zoom a:hover{background:#e5ede9}
#portfolio-map .leaflet-control-attribution{font-size:8px;background:#f8f8f4e6;color:#647b84;padding:3px 7px}
#portfolio-map .leaflet-control-attribution a{color:#425f6b;text-decoration:underline;text-underline-offset:2px}
.portfolio-pin{border:0!important;background:transparent!important;overflow:visible!important;outline-offset:8px}
.portfolio-pin:focus-visible{outline:0!important}
.portfolio-pin:focus-visible .portfolio-pin-label{outline:2px solid #65838e;outline-offset:3px}
.portfolio-pin-label{position:absolute;bottom:23px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:8px;text-align:center;background:var(--ink);color:#f7f8f4;border:1px solid #ecf1ed;padding:8px 12px;font-family:var(--serif);font-size:14px;white-space:nowrap;box-shadow:0 6px 18px #173b4b2b;letter-spacing:.08em;transition:background .2s,color .2s,border-color .2s}
.portfolio-pin-label:before{content:attr(data-index);font-family:var(--sans);font-size:8px;letter-spacing:.05em;color:#b6cbd4}
.portfolio-pin-label:after{content:"";position:absolute;bottom:-17px;left:50%;height:16px;width:1px;background:#365f70}
.portfolio-pin-dot{display:block;position:absolute;left:12px;bottom:0;width:8px;height:8px;border:1px solid #f8f8f4;background:var(--ink);border-radius:50%;box-shadow:0 0 0 4px #f8f8f4cc,0 0 0 5px #365f7099}
.portfolio-pin:focus-visible .portfolio-pin-label,.portfolio-pin:hover .portfolio-pin-label,.portfolio-pin.is-active .portfolio-pin-label{background:#376479;color:#fff;border-color:#fff}
.portfolio-pin:focus-visible .portfolio-pin-label:before,.portfolio-pin:hover .portfolio-pin-label:before,.portfolio-pin.is-active .portfolio-pin-label:before{color:#bed0d6}
.portfolio-tooltip.leaflet-tooltip{background:#f8f8f4;border:1px solid #c7d4d4;border-top:2px solid var(--ink);border-radius:0;box-shadow:0 10px 30px #173b4b14;padding:17px 19px;white-space:normal;min-width:195px;max-width:250px;font-family:var(--sans);color:var(--ink)}
.portfolio-tooltip.leaflet-tooltip-top:before{border-top-color:#f8f8f4}
.portfolio-tooltip.leaflet-tooltip-bottom:before{border-bottom-color:#f8f8f4;left:calc(50% + var(--tooltip-shift-x,0px))}
.portfolio-tooltip.leaflet-tooltip-right:before{border-right-color:#f8f8f4;top:calc(50% + var(--tooltip-shift-y,0px))}
.portfolio-tooltip.leaflet-tooltip-left:before{border-left-color:#f8f8f4;top:calc(50% + var(--tooltip-shift-y,0px))}
.portfolio-tooltip-title{display:block;font-family:var(--serif);font-size:17px;line-height:1.5;letter-spacing:.025em}
.portfolio-tooltip-status{display:block;margin:7px 0 9px;font-size:8px;letter-spacing:.1em;text-transform:uppercase;color:#69848f}
.portfolio-tooltip-summary{font-size:11px;line-height:1.8;color:var(--body);margin-bottom:12px}
.portfolio-tooltip button{background:transparent;border-bottom:1px solid #a5b9bf;padding:0 0 4px;font-size:10px;color:var(--ink)}
.portfolio-dialog{max-width:760px}
.portfolio-dialog-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:31px;margin-top:26px}
.portfolio-media{background:#e4ecea;min-height:250px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:25px;text-align:center;color:#5b7b88}
.portfolio-media svg{width:100%;max-width:205px}
.portfolio-media p{font-size:10px;line-height:1.8;color:var(--body)}
.portfolio-media img{width:100%;height:100%;max-height:345px;object-fit:cover}
.portfolio-status{display:inline-block;font-size:9px;letter-spacing:.06em;color:#597581;padding:4px 7px;border:1px solid #bfcfd2}
.portfolio-dialog-copy h2{font-size:32px;line-height:1.4;margin:13px 0}
.portfolio-description{font-size:12px;line-height:1.9;color:var(--body)}
.portfolio-facts{margin:19px 0 0}
.portfolio-facts>div{padding:11px 0;border-top:1px solid #ccd9dc}
.portfolio-facts dt{font-size:10px;color:var(--muted);line-height:1.7}
.portfolio-facts dd{font-size:12px;color:var(--ink);margin:4px 0 0;line-height:1.7}
html[lang="en"] .map-area-name{font-family:var(--sans);font-size:13px;letter-spacing:.015em}
html[lang="en"] .portfolio-pin-label{font-family:var(--sans);font-size:12px;letter-spacing:.035em}
@media(max-width:1100px){.hero-map{margin:18px 18px 18px 0}.map-heading{padding:18px}.map-heading h2{font-size:20px}.map-footer{padding:0 18px 15px}.map-area-buttons button{gap:7px;padding:8px 9px}.map-area-name{font-size:13px}.map-notes{gap:3px}.map-hint{font-size:8px}}
@media(max-width:850px){.map-heading{gap:12px;padding:17px 15px}.map-heading h2{font-size:18px}.map-heading-copy>p{font-size:7px}.map-reset{padding:8px}.map-reset-label{display:none}.map-footer{padding:0 15px 14px}.map-area-buttons button{gap:6px;padding:8px 7px}.map-area-name{font-size:12px}.map-area-arrow{font-size:14px}.map-north{left:18px;top:20px}.portfolio-pin-label{font-size:13px;padding:8px 10px}}
@media(max-width:600px){.hero-map{margin:0 16px 17px}.map-viewport{flex:none;height:360px;min-height:360px}.map-heading{padding:18px}.map-heading h2{font-size:20px}.map-heading-copy>p{font-size:8px}.map-footer{padding:0 18px 16px}.map-area-buttons button{gap:5px;min-height:40px;padding:7px 6px;line-height:1.5}.map-area-name{font-size:12px}.map-area-arrow{font-size:13px}.map-hint{font-size:9px}.map-location-note{font-size:8px}.map-notes{padding-top:11px}.portfolio-dialog-layout{display:flex;flex-direction:column;gap:22px}.portfolio-media{min-height:150px;padding:16px}.portfolio-media svg{height:120px;width:145px}.portfolio-dialog-copy h2{font-size:29px}.portfolio-dialog{max-height:87dvh}.hero:has(.hero-map) .hero-foot{position:static;padding-top:21px}.hero:has(.hero-map) .hero-foot>a{margin-left:0}.portfolio-tooltip.leaflet-tooltip{min-width:170px;max-width:190px;padding:14px 15px}html[lang="en"] .map-area-name{font-size:12px}}
@media(max-width:380px){.map-heading{padding:17px 14px}.map-heading h2{font-size:17px}.map-heading-copy>p{font-size:7px}.map-footer{padding:0 14px 14px}.map-area-buttons button{padding:7px 6px;gap:5px}.map-area-index{display:none}.map-area-name{font-size:12px}html[lang="en"] .map-area-name{font-size:11px}.map-hint{font-size:8px}}
@media print{.hero-map{display:none}}

.portfolio-media[hidden]{display:none}.portfolio-dialog-layout.is-text-only{display:block}.portfolio-dialog-layout.is-text-only .portfolio-dialog-copy{max-width:560px}
