:root{--sans:'Montserrat',sans-serif;--paper:#fff;--image-radius:16px}
.site-header,footer{background:#fff}
.brand img,.footer-brand img{filter:brightness(0)}
.hero-logo{filter:brightness(0) invert(1)}
.hero,.gallery,.story-image,.about-hero>div:first-child{border-radius:var(--image-radius);overflow:hidden}
.hero{margin:0 16px}
.story-image img,.about-hero img{border-radius:var(--image-radius)}
.gallery::after,.story-image::after,.about-hero>div:first-child::after{content:'';position:absolute;inset:0 auto 0 -100%;width:50%;background:linear-gradient(to right,transparent,rgba(255,255,255,.3));transform:skewX(-25deg);pointer-events:none;z-index:2}
.story-image,.about-hero>div:first-child{position:relative}
.slide{overflow:hidden}
.card-meta h3 a{position:relative}
.card-meta h3 a::after{content:'';position:absolute;left:0;bottom:0;width:100%;height:2px;background:currentColor;opacity:0;transform:translateY(1px);transition:opacity .15s cubic-bezier(.39,.575,.565,1),transform .15s cubic-bezier(.39,.575,.565,1);pointer-events:none}
.text-link,.site-header nav a,.footer-main a,.footer-bottom a{transition:color .3s ease,border-color .3s ease}
.button,.header-cta{border-radius:8px;transition:background .6s cubic-bezier(.55,0,.1,1),border-color .6s cubic-bezier(.55,0,.1,1),color .6s cubic-bezier(.55,0,.1,1)}
.roll-mask{display:block;position:relative;overflow:hidden;line-height:1.3em;height:1.3em}
.roll-track{display:block;transition:transform .6s cubic-bezier(.55,0,.1,1)}
.roll-front,.roll-back{display:block;line-height:1.3em;transition:transform .45s cubic-bezier(.55,0,.1,1)}
.roll-front{transform-origin:100%}
.roll-back{position:absolute;top:100%;left:0;right:0;transform:rotate(40deg);transform-origin:0;white-space:nowrap}
.button:focus-visible .roll-track,.header-cta:focus-visible .roll-track{transform:translateY(-1.3em)}
.button:focus-visible .roll-front,.header-cta:focus-visible .roll-front{transform:rotate(40deg)}
.button:focus-visible .roll-back,.header-cta:focus-visible .roll-back{transform:rotate(0)}
.location-section{max-width:1640px;margin:0 auto;padding:0 7% 90px;display:grid;grid-template-columns:1.3fr 1fr;gap:7%;align-items:center}
.map-frame{position:relative;min-width:0;height:430px;border:1px solid #ececec;border-radius:16px;overflow:hidden;background:#f2f2f2}
.property-map{height:100%;width:100%}
.map-status,.map-noscript{position:absolute;left:20px;right:20px;top:20px;background:#fff;padding:14px 18px;border-radius:8px;font-size:14px;z-index:3;box-shadow:0 2px 12px #0001}
.map-status[hidden]{display:none}
.map-pin{width:34px;height:34px;border-radius:50% 50% 50% 0;background:#111;border:3px solid #fff;box-shadow:0 3px 10px #0003;transform:rotate(-45deg)}
.map-pin::after{content:'';width:8px;height:8px;border-radius:50%;background:white;position:absolute;top:10px;left:10px}
.map-marker{display:flex;flex-direction:column;align-items:center;gap:8px}
.map-marker span{font:500 12px/1.4 var(--sans);background:white;padding:6px 10px;box-shadow:0 2px 10px #0002;border-radius:4px;color:#111;white-space:nowrap}
.location-copy p:not(.eyebrow){color:var(--muted)}
.nearby{margin-top:30px;border-top:1px solid var(--line);padding-top:24px}.nearby-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:9px 20px}.nearby-list li{font-size:14px;color:var(--muted)}
.maplibregl-map,.maplibregl-popup{font-family:var(--sans)}
.maplibregl-ctrl-attrib a{color:#333}
@media(hover:hover) and (prefers-reduced-motion:no-preference){
 .project-card:hover .gallery::after,.detail-gallery:hover::after,.story-image:hover::after,.about-hero>div:first-child:hover::after{animation:kevala-shine 1s}
 .button:hover .roll-track,.header-cta:hover .roll-track{transform:translateY(-1.3em)}
 .button:hover .roll-front,.header-cta:hover .roll-front{transform:rotate(40deg)}
 .button:hover .roll-back,.header-cta:hover .roll-back{transform:rotate(0)}
}
@media(hover:hover){
 .card-meta h3 a:hover::after{opacity:1;transform:translateY(-2px);transition-delay:.2s}
 .text-link:hover,.site-header nav a:hover,.footer-main a:hover,.footer-bottom a:hover{color:#927344;border-color:#927344}
 .button:hover,.button.light:hover,.header-cta:hover,.filter-bar button:hover,.gallery-controls button:hover,.menu-toggle:hover{background:#000;border-color:#000;color:#fff}
 .gallery-controls .dot:hover::before{background:#fff}
 .maplibregl-ctrl-group button:hover{background:#000}
 .maplibregl-ctrl-group button:hover .maplibregl-ctrl-icon{filter:invert(1)}
}
.button:focus-visible,.button.light:focus-visible,.header-cta:focus-visible,.filter-bar button:focus-visible,.gallery-controls button:focus-visible,.menu-toggle:focus-visible{background:#000;border-color:#000;color:#fff}
@keyframes kevala-shine{100%{left:125%}}
@media(max-width:1150px){.site-header nav{gap:18px}.site-header nav a{font-size:13px}.site-header .portal{display:none}}
@media(max-width:800px){.location-section{grid-template-columns:1fr;gap:30px;padding:0 6% 60px}.map-frame{height:360px}.hero{margin:0 8px;border-radius:12px}.location-copy h2{font-size:36px}}
@media(max-width:700px){.site-header .portal{display:block}.card-meta{align-items:flex-start}.card-meta .text-link{margin-top:22px}.site-header nav a{font-size:16px}}
@media(prefers-reduced-motion:reduce){.roll-track,.roll-front,.roll-back{transition:none!important;transform:none!important}.roll-back{display:none}}

.spam-field{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.consent-label{display:flex!important;align-items:center;gap:12px;grid-column:1/-1}.consent-label input{width:20px!important;height:20px;flex:none}.draft-banner{padding:14px 24px;background:#eedaa1;color:#20231e;text-align:center}.draft-banner a{text-decoration:underline}.empty-gallery{margin:auto;padding:80px 20px}.gallery .dots{max-width:65%;flex-wrap:wrap}button:disabled{opacity:.5;cursor:wait}
