/* Load after styles.css. MapLibre owns the outer element's transform. */
/* Keep zoom controls above marker labels, including hovered markers (z-index 8). */
.map-canvas .maplibregl-ctrl-top-right{z-index:10}
.map-pin.map-place-marker{--marker-fill:#e2e8dc;--marker-ink:#365845;width:46px;height:46px;display:flex;align-items:center;justify-content:center;border:0;border-radius:50%;padding:0;background:transparent;box-shadow:none;overflow:visible;color:var(--marker-ink);font-family:inherit;isolation:isolate;z-index:1;cursor:pointer;touch-action:manipulation}
.map-pin.map-place-marker:hover,.map-pin.map-place-marker:focus-visible{z-index:8}
.map-pin.map-place-marker:focus-visible{outline:3px solid #2d5363;outline-offset:2px}
.map-pin.map-place-marker--park{--marker-fill:#dcebd9;--marker-ink:#315e45}
.map-pin.map-place-marker--cafe{--marker-fill:#ffe9d0;--marker-ink:#92502f}
.map-pin.map-place-marker--culture{--marker-fill:#ece6f4;--marker-ink:#65517c}
.map-pin.map-place-marker--shopping{--marker-fill:#f1e5cd;--marker-ink:#816341}
.map-pin.map-place-marker--sport{--marker-fill:#dcecf5;--marker-ink:#3c6680}
.map-pin.map-place-marker--daily{--marker-fill:#e9e6d7;--marker-ink:#69624b}
.map-pin.map-place-marker .map-marker-disc{display:flex;align-items:center;justify-content:center;width:36px;height:36px;flex:none;box-sizing:border-box;border:2px solid #fffaf2;border-radius:50%;background:var(--marker-fill);box-shadow:0 2px 7px #303e322b;color:var(--marker-ink);font-size:14px;font-weight:700;line-height:1;transform:none;transition:box-shadow .15s,background .15s}
.map-pin.map-place-marker:hover .map-marker-disc,.map-pin.map-place-marker:focus-visible .map-marker-disc{box-shadow:0 0 0 3px #fffaf2,0 4px 13px #30423438}
.map-place-marker .map-marker-disc svg{display:block;width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round;pointer-events:none}
.map-pin.map-place-marker--featured{z-index:3}
.map-pin.map-place-marker--featured .map-marker-disc{width:39px;height:39px;border-color:#bc597d;box-shadow:0 0 0 3px #fffaf2,0 3px 10px #4c353128}
.map-pin.map-place-marker .map-marker-order{position:absolute;left:31px;top:0;display:grid;place-items:center;width:18px;height:18px;background:#33533e;color:#fffefa;border:2px solid #fffaf2;border-radius:50%;font-size:10px;font-weight:700;line-height:1;transform:none;pointer-events:none}
.map-pin.map-place-marker--numbered .map-marker-disc{width:35px;height:35px;background:#bb557a;border:2px solid #fffaf2;color:#fff;font-size:14px}
.map-pin.map-place-marker .map-marker-label{position:absolute;left:50%;top:50%;display:block;width:max-content;max-width:160px;padding:7px 10px;border:1px solid #deded0;border-radius:8px;background:#fffef6;box-shadow:0 2px 7px #30423416;color:#344b36;font-size:11px;font-weight:600;line-height:1.3;text-align:left;white-space:normal;overflow-wrap:break-word;opacity:0;visibility:hidden;pointer-events:none;transform:translate(var(--marker-label-x,25px),var(--marker-label-y,-50%));transition:opacity .12s}
.map-pin.map-place-marker:hover .map-marker-label,.map-pin.map-place-marker:focus-visible .map-marker-label,.map-pin.map-place-marker--label-visible .map-marker-label{opacity:1;visibility:visible}
.map-pin.map-place-marker--featured .map-marker-label{border-color:#d7bac6}
.map-route-caption{position:absolute;left:12px;bottom:29px;z-index:4;max-width:calc(100% - 24px);padding:6px 9px;border-radius:6px;background:#fffef1eb;color:#52604c;font-size:10px;line-height:1.35;pointer-events:none}
.map-labels-all .map-pin.map-place-marker{z-index:2}
.map-labels-all .map-pin.map-place-marker--featured{z-index:3}
.map-labels-all .map-pin.map-place-marker:hover,.map-labels-all .map-pin.map-place-marker:focus-visible{z-index:8}
.map-labels-all .map-pin.map-place-marker .map-marker-label{max-width:140px;padding:5px 8px;pointer-events:auto;cursor:pointer}
.map-route-focus .map-pin.map-place-marker .map-marker-label{transform:translate(-50%,calc(-100% - 27px))}
.map-route-focus .map-pin.map-place-marker--label-right .map-marker-label{transform:translate(27px,-50%)}
.map-route-focus .map-pin.map-place-marker--label-left .map-marker-label{transform:translate(calc(-100% - 27px),-50%)}
.map-route-focus .map-pin.map-place-marker--label-visible .map-marker-label{pointer-events:auto;cursor:pointer}
@media(max-width:760px){.map-pin.map-place-marker .map-marker-label{max-width:125px;padding:6px 8px;font-size:10px}.map-pin.map-place-marker .map-marker-disc{width:34px;height:34px}.map-pin.map-place-marker--featured .map-marker-disc{width:37px;height:37px}.map-place-marker .map-marker-disc svg{width:20px;height:20px}}
@media(max-width:480px){.map-labels-all .map-pin.map-place-marker .map-marker-label{max-width:112px;padding:5px 7px;font-size:10px;line-height:1.25}.map-labels-all .map-pin.map-place-marker .map-marker-disc{width:30px;height:30px}.map-labels-all .map-pin.map-place-marker--featured .map-marker-disc{width:33px;height:33px}.map-labels-all .map-place-marker .map-marker-disc svg{width:18px;height:18px}.map-labels-all .map-pin.map-place-marker .map-marker-order{left:29px;top:1px}}
@media(prefers-reduced-motion:reduce){.map-pin.map-place-marker .map-marker-label,.map-pin.map-place-marker .map-marker-disc{transition:none}}
