/* Ubicación: mapa a pantalla completa y controles del showroom. */
body.page-map #scene,body.page-map #scene-loading{visibility:hidden}
body.page-map #orientation-control{display:none}
.location-page{position:absolute;inset:0;z-index:6;overflow:hidden;background:#d9ded5}
.location-map{position:absolute;inset:0;z-index:0;font-family:Jakarta,Arial,sans-serif;background:#d9ded5}
.location-map:focus-visible{outline:3px solid #42c6ec;outline-offset:-3px}
body.page-map .toolbar>.right{gap:10px}
.location-layers{position:relative;align-self:stretch;display:flex;flex:none;color:#253137;font-size:13px}
.location-layer-toggle{display:flex;align-items:center;justify-content:space-between;gap:14px;min-width:112px;min-height:0;padding:0 15px;background:#fff;border:1px solid #e2e6e8;border-radius:24px;box-shadow:0 2px 8px #0002;font-weight:500}
.location-layer-toggle svg{color:#7d868a;transition:transform .16s}
.location-layer-toggle[aria-expanded="true"] svg{transform:rotate(180deg)}
.location-layer-menu{position:absolute;top:calc(100% + 5px);left:0;right:0;display:grid;padding:5px 0;border-radius:18px;background:#fff;box-shadow:0 4px 16px #0003;overflow:hidden}
.location-layer-menu button{display:flex;justify-content:space-between;align-items:center;gap:12px;border:0;background:#fff;text-align:left;padding:10px 14px;min-height:40px;font-size:13px}
.location-layer-menu button:hover,.location-layer-menu button:focus-visible{background:#f0f4f5;outline-offset:-3px}
.location-layer-menu button span{visibility:hidden;color:#8a9498}
.location-layer-menu button[aria-checked="true"] span{visibility:visible}
.location-loading{position:absolute;z-index:1;bottom:24px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:8px;padding:9px 14px;margin:0;border-radius:24px;background:#fffffff2;box-shadow:0 2px 12px #0002;font-size:11px;white-space:nowrap;pointer-events:none}
.location-error{position:absolute;z-index:2;bottom:28px;left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100% - 40px);padding:14px 18px;border-radius:16px;background:#fffffff5;box-shadow:0 4px 20px #0002;text-align:center;font-size:12px}
.location-error p{margin:0 0 10px}.location-error button{border-radius:20px;padding:7px 12px;border:1px solid #dfe4e6;margin-right:8px}.location-error a{display:inline-block;line-height:1.7}
.location-project-marker{display:grid;place-items:center;background:transparent;border:0;border-radius:50%}
.location-marker-face{position:relative;display:block;width:24px;height:24px;background:#fff;border:1.5px solid #164056;border-radius:50%;box-shadow:0 2px 7px #0005;transition:box-shadow .2s;pointer-events:none}
.location-marker-face::before,.location-marker-face::after{content:'';position:absolute;inset:-2px;border:1px solid #16405666;border-radius:50%;opacity:0;transform:scale(.95);animation:location-water-ripple 3.6s ease-out infinite;pointer-events:none}
.location-marker-face::after{animation-delay:.55s}
@keyframes location-water-ripple{0%{transform:scale(.95);opacity:0}12%{opacity:.35}65%,100%{transform:scale(1.9);opacity:0}}
.location-project-marker:hover .location-marker-face,.location-project-marker:focus-visible .location-marker-face{box-shadow:0 0 0 4px #ffffff60,0 3px 10px #0005}
.location-project-marker:focus-visible{outline:3px solid #42c6ec;outline-offset:5px}
.location-project-popup{margin-bottom:10px}
.location-project-popup::after{content:'';position:absolute;left:calc(50% - 22px);bottom:-12px;width:44px;height:14px;pointer-events:auto}
.location-popup-motion{position:relative;transform-origin:50% calc(100% + 20px);will-change:transform,opacity}
.location-project-popup .leaflet-popup-content-wrapper{padding:0;border-radius:20px;overflow:hidden;box-shadow:0 4px 25px #0004;background:#fff}
.location-project-popup .leaflet-popup-content{margin:0!important;width:288px!important;max-width:calc(100vw - 40px);font-family:Jakarta,Arial,sans-serif;line-height:1.5}
.location-card-image{display:block;width:100%;height:176px;object-fit:cover;object-position:50% 50%;background:#edf0ed}
.location-card-body{padding:12px 15px 15px}
.location-card h1{margin:0 22px 2px 0;font-size:15px;font-weight:600;color:#222d32;line-height:1.5}
.location-map .location-card p{margin:0 0 12px;font-size:13px;line-height:1.5;color:#788084}
.location-card-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.location-map .location-maps{display:flex;align-items:center;justify-content:center;min-width:0;min-height:39px;padding:8px 12px;border:1px solid #d9dfe2;border-radius:24px;background:#fff;color:#253137;font-size:13px;font-weight:600;line-height:1.2;text-decoration:none;box-shadow:0 1px 3px #0001}
.location-map .location-maps:hover{background:#f0f4f5;border-color:#afbec5}
.location-enter{display:block;width:100%;min-height:39px;border:1px solid #5c7c8b;border-radius:24px;background:#164056;color:#fff;font-weight:650;font-size:13px;box-shadow:inset 0 0 0 2px #ffffff16}
.location-enter:hover{background:#20556e}
.location-map .location-project-popup a.leaflet-popup-close-button{top:8px;right:8px;display:none;place-items:center;width:25px;height:25px;line-height:1;border-radius:50%;background:#fffffff0;color:#33444c;box-shadow:0 1px 5px #0002}
.location-map .leaflet-control-attribution{max-width:calc(100vw - 12px);padding:2px 6px;background:#ffffffe6;font-family:Arial,sans-serif;font-size:9px;line-height:1.35;text-align:right}
@media(max-width:760px), (pointer:coarse) and (max-width:1024px), (max-width:1024px) and (max-height:500px) and (orientation:landscape){
 .location-layers{font-size:11px}
 .location-layer-toggle{min-width:100px;padding-inline:12px;gap:10px;font-size:11px}
 .location-layer-menu button{font-size:12px;min-height:40px}
 .location-marker-face{transform:scale(.85)}
 .location-map .location-project-popup a.leaflet-popup-close-button{display:grid}
 .location-error{bottom:64px;width:calc(100% - 32px);max-width:380px}
 .location-map .leaflet-control-attribution{font-size:8px;max-width:calc(100vw - 6px)}
}
@media(max-height:500px){
 .location-card-image{height:min(25dvh,110px);object-fit:contain}
 .location-card-body{padding:8px 13px 10px}
 .location-card h1{font-size:13px}
 .location-map .location-card p{font-size:11px;margin-bottom:8px}
 .location-enter,.location-map .location-maps{min-height:33px;font-size:12px}
}
@media(prefers-reduced-motion:reduce){.location-layer-toggle svg,.location-marker-face{transition:none}.location-marker-face::before,.location-marker-face::after{animation:none}}

@media(max-width:340px){.location-marker-face{transform:scale(.8)}}
@media(hover:none), (pointer:coarse){.location-map .location-project-popup a.leaflet-popup-close-button{display:grid}}

@media(max-width:760px), (pointer:coarse) and (max-width:1024px){body.page-map .toolbar>.right{gap:8px}}
