/* Malé city map — loaded only on pages containing [mle_male_map]. */
.ml-male-map-section{width:100%;margin:0;background:#79bdd0;overflow-x:clip}
.ml-male-map{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,340px);height:min(86vh,860px);min-height:560px;border-block:1px solid #d4dde1;background:#79bdd0}
.ml-male-map__mapcol{position:relative;min-width:0;overflow:hidden;border-inline-end:1px solid #d4dde1;background:#79bdd0;isolation:isolate}
.ml-male-map__canvas,.ml-male-map__stage{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none}
.ml-male-map__canvas{cursor:grab}.ml-male-map__canvas.is-dragging{cursor:grabbing}
.ml-male-map__stage{background:#9ed7e3}.ml-male-map__stage canvas{display:block;width:100%;height:100%;touch-action:none}
.ml-male-map__markers{position:absolute;inset:0;z-index:3;pointer-events:none;overflow:hidden}
.ml-male-map__marker{position:absolute;display:grid;width:20px;height:20px;padding:0;place-items:center;transform:translate(-50%,-50%);border:2px solid #fff;border-radius:50%;background:#0c5c84;box-shadow:0 2px 8px rgba(5,44,65,.38);color:#fff;cursor:pointer;pointer-events:auto;transition:transform .15s,background .15s}
.ml-male-map__marker::after{content:"";width:5px;height:5px;border-radius:50%;background:currentColor}
.ml-male-map__marker:hover,.ml-male-map__marker:focus-visible,.ml-male-map__marker[aria-pressed="true"]{z-index:2;transform:translate(-50%,-50%) scale(1.3);background:#d5533f;outline:0}
.ml-male-map__marker[data-category="market"]{color:#f3d78c}.ml-male-map__marker[data-category="culture"]{color:#fff}.ml-male-map__marker[data-category="shopping"]{color:#edb9ca}.ml-male-map__marker[data-category="food"]{color:#bce6ce}
.ml-male-map__float{position:absolute;z-index:5;top:1rem;left:1rem;display:flex;gap:.7rem;align-items:center;max-width:calc(100% - 2rem);pointer-events:none}
.ml-male-map__float h1{margin:0;padding:.5rem .75rem;border-radius:10px;background:rgba(255,255,255,.9);box-shadow:0 3px 12px rgba(7,48,66,.14);color:#17384a;font:600 clamp(1.15rem,2.2vw,1.65rem)/1.2 "Noto Serif TC",serif;white-space:nowrap}
.ml-male-map__float label{pointer-events:auto}.ml-male-map__float select{min-height:46px;max-width:220px;padding:.55rem 2.2rem .55rem .8rem;border:1px solid rgba(12,92,132,.22);border-radius:10px;background:rgba(255,255,255,.94);color:#17384a;font:inherit;font-weight:600}
.ml-male-map__controls{position:absolute;z-index:6;right:1rem;bottom:1rem;display:grid;overflow:hidden;border:1px solid rgba(12,92,132,.2);border-radius:10px;background:#fff;box-shadow:0 6px 20px rgba(6,40,60,.18)}
.ml-male-map__controls button{display:grid;width:46px;height:44px;padding:0;place-items:center;border:0;border-bottom:1px solid #dde5e8;background:#fff;color:#17384a;font:700 1.15rem/1 sans-serif;cursor:pointer}.ml-male-map__controls button:last-child{border:0}.ml-male-map__controls button:hover,.ml-male-map__controls button:focus-visible{background:#e8f5f8;color:#0c5c84;outline:0}.ml-male-map__controls [data-action="toggle"]{font-size:.9rem}
.ml-male-map__card{position:absolute;z-index:7;left:1rem;bottom:1rem;width:min(310px,calc(100% - 90px));padding:1rem 1.1rem;border:1px solid rgba(12,92,132,.18);border-radius:12px;background:#fff;box-shadow:0 12px 30px rgba(6,40,60,.24);color:#17384a}.ml-male-map__card[hidden]{display:none}.ml-male-map__card button{position:absolute;top:.35rem;right:.45rem;border:0;background:none;color:#536c79;font-size:1.3rem;cursor:pointer}.ml-male-map__card strong,.ml-male-map__card small{display:block;padding-right:1.2rem}.ml-male-map__card small{margin-top:.15rem;color:#68808d}.ml-male-map__card p{margin:.55rem 0;font-size:.9rem;line-height:1.55}.ml-male-map__card a{color:#0c5c84;font-size:.86rem;font-weight:700;text-decoration:none}.ml-male-map__card a:hover{text-decoration:underline}
.ml-male-map__status{position:absolute;z-index:6;left:50%;bottom:1rem;max-width:45%;margin:0;padding:.4rem .65rem;transform:translateX(-50%);border-radius:999px;background:rgba(19,42,56,.8);color:#fff;font-size:.75rem;text-align:center}.ml-male-map__status:empty{display:none}
.ml-male-map__attribution{position:absolute;z-index:5;left:.5rem;bottom:.25rem;color:#214d62;font-size:.62rem}.ml-male-map__attribution a{color:inherit}
.ml-male-map__side{overflow:auto;background:#fff;padding:1rem}.ml-male-map__side>h2{margin:.15rem 0 1rem;color:#17384a;font-size:1.25rem}.ml-male-map__side section{margin:0 0 1rem}.ml-male-map__side h3{position:sticky;top:-1rem;z-index:1;margin:0 -.25rem .35rem;padding:.65rem .25rem .35rem;background:#fff;color:#9a7425;font-size:.9rem}.ml-male-map__row{display:grid;grid-template-columns:minmax(0,1fr) 36px;align-items:center;border-bottom:1px solid #edf0f2}.ml-male-map__row>button{display:block;min-width:0;padding:.65rem .25rem;border:0;background:none;color:#17384a;text-align:left;cursor:pointer}.ml-male-map__row>button:hover span,.ml-male-map__row>button:focus-visible span,.ml-male-map__row.is-active span{color:#0c5c84}.ml-male-map__row span,.ml-male-map__row small{display:block}.ml-male-map__row span{font-weight:700}.ml-male-map__row small{overflow:hidden;margin-top:.1rem;color:#71838c;text-overflow:ellipsis;white-space:nowrap}.ml-male-map__row>a{display:grid;width:36px;height:36px;place-items:center;border-radius:50%;color:#0c5c84;text-decoration:none}.ml-male-map__row>a:hover{background:#e8f5f8}
.ml-male-map__noscript{margin:0;padding:1rem;background:#fff;color:#17384a}
.ml-male-map.is-fullscreen{position:fixed;inset:0;z-index:9990;width:100vw;height:100vh;height:100dvh;max-height:none;min-height:0}.ml-male-map.is-fullscreen .ml-male-map__mapcol{border:0}body.ml-male-map-fullscreen{overflow:hidden}body.ml-male-map-fullscreen #fcp-root{display:none!important}
.ml-male-map[data-mode="3d"] .ml-male-map__canvas{visibility:hidden}.ml-male-map[data-mode="3d"] .ml-male-map__stage{display:block}.ml-male-map[data-mode="3d"] .ml-male-map__attribution{color:#244d5e}
@media(max-width:760px){.ml-male-map{display:block;height:72vh;min-height:540px}.ml-male-map__mapcol{height:100%;border:0}.ml-male-map__side{display:none}.ml-male-map__float{top:.75rem;left:.75rem;right:.75rem;display:grid;grid-template-columns:auto minmax(0,1fr)}.ml-male-map__float h1{font-size:1.1rem}.ml-male-map__float select{width:100%;max-width:none}.ml-male-map__controls{right:.7rem;bottom:.7rem}.ml-male-map__controls button{width:44px;height:42px}.ml-male-map__card{left:.7rem;bottom:.7rem}.ml-male-map__attribution{bottom:.1rem;max-width:calc(100% - 70px);white-space:nowrap;overflow:hidden}.ml-male-map.is-fullscreen{height:100dvh}.ml-male-map.is-fullscreen .ml-male-map__side{display:none}}
@media(prefers-reduced-motion:reduce){.ml-male-map__marker{transition:none}}

/* Hidden surfaces and pins must not override the active map. */
.ml-male-map [hidden]{display:none!important}
.ml-male-map__marker{left:0;top:0;margin:0;transition:background .15s}
/* Architectural symbols remain legible without loading WebGL in flat mode. */
.ml-male-map__marker{width:40px;height:40px;border:0;background:transparent!important;box-shadow:none;filter:drop-shadow(0 2px 2px #173f5066);color:inherit}
.ml-male-map__marker svg{width:100%;height:100%;overflow:visible;pointer-events:none}
.ml-male-map__marker::after{display:none}
.ml-male-map__marker:focus-visible{outline:2px solid #0c5c84;outline-offset:3px}
.ml-male-map__marker:hover::after,.ml-male-map__marker[aria-pressed="true"]::after{content:attr(data-name);display:block;position:absolute;top:100%;left:50%;transform:translateX(-50%);width:max-content;max-width:180px;height:auto;padding:3px 6px;border-radius:4px;background:#fff;color:#17384a;font-size:12px;font-weight:700}
.ml-male-map[data-mode="3d"] .ml-male-map__marker{width:16px;height:16px;border:2px solid #fff;background:#0c5c84!important;filter:none;box-shadow:0 1px 4px #173f5055}
.ml-male-map[data-mode="3d"] .ml-male-map__marker svg{display:none}
.ml-male-map[data-mode="3d"] .ml-male-map__marker[aria-pressed="true"]{background:#d5533f!important}
.ml-male-map__leader{position:absolute;left:0;top:0;width:0;border-left:1.5px dashed #244f64;pointer-events:none}
.ml-male-map[data-mode="2d"] .ml-male-map__leader{display:none}
.ml-male-map__labels{position:absolute;inset:0;z-index:2;overflow:hidden;pointer-events:none}
.ml-male-map__label{position:absolute;left:0;top:0;white-space:nowrap;font:600 11px/1.4 sans-serif;color:#35525e;text-shadow:0 1px 2px #fff,1px 0 2px #fff,-1px 0 2px #fff}
.ml-male-map__label--area{font-size:12px;font-weight:700;color:#183f50;letter-spacing:.04em}
.ml-male-map__label--pier{color:#135776;background:#edf9fac9;border-radius:4px;padding:2px 5px}
