*{box-sizing:border-box}
body{font-family:system-ui,sans-serif;background:#ccd9e7;margin:0;display:flex;min-height:100vh}
aside{width:190px;background:#1f4e79;color:#fff;padding:1rem .8rem;flex-shrink:0}
aside .logo{font-weight:800;font-size:1.05rem;margin-bottom:.2rem}
aside .logo span{color:#fab700}
aside .zona{font-size:.72rem;opacity:.8;margin-bottom:1rem}
aside a{display:block;color:#dbe6f2;text-decoration:none;font-size:.78rem;padding:.14rem .3rem;border-radius:3px}
aside a:hover{background:#2d6396;color:#fff}
aside a.activa{background:#fab700;color:#1f4e79;font-weight:700}
main{flex:1;padding:1.6rem;text-align:center}
.marco{background:#fff;max-width:940px;margin:auto;padding:1.4rem;border-radius:8px;box-shadow:0 2px 12px rgba(0,0,0,.15)}
h1{font-size:1.1rem;color:#1f4e79;margin:.2rem 0 .9rem}
.foto{position:relative;max-width:860px;margin:auto}
.foto img{width:100%;display:block;border:1px solid #999;border-radius:4px}
.dot{position:absolute;width:18px;height:18px;margin:-9px 0 0 -9px;background:radial-gradient(circle at 35% 35%,#ff6b6b,#c00);border-radius:50%;border:1.5px solid #fff;animation:puls 1.2s infinite}
@keyframes puls{0%,100%{box-shadow:0 0 4px 1px rgba(220,0,0,.8)}50%{box-shadow:0 0 12px 5px rgba(255,40,40,.95)}}
.flecha{position:absolute;color:#fab700;font-size:30px;margin:-18px 0 0 -12px;text-shadow:0 1px 3px #000;text-decoration:none;line-height:1}
.tip{visibility:hidden;opacity:0;transition:opacity .15s;position:absolute;bottom:135%;left:50%;transform:translateX(-50%);background:#1f4e79;color:#fff;font-size:.72rem;padding:3px 9px;border-radius:4px;white-space:nowrap;pointer-events:none;z-index:3}
.dot:hover .tip,.flecha:hover .tip{visibility:visible;opacity:1}
.calles{margin-top:1rem;font-size:.78rem;line-height:1.8;color:#555}
.calles a{color:#b45309;text-decoration:none;margin:0 .12rem}
.calles a:hover{text-decoration:underline}
footer{font-size:.7rem;color:#666;margin-top:.9rem}