.booking-page .booking-map-launch{position:relative;display:block;width:100%;height:96px;padding:0;margin:0 0 23px;overflow:hidden;border:1px solid #d8e1d5;border-radius:12px;cursor:pointer;background:#e8eee7;color:#203328}
.booking-map-launch svg{position:absolute;inset:0;width:100%;height:100%;transition:transform .2s}
.booking-map-launch:hover svg{transform:scale(1.06)}
.booking-map-launch__label{position:relative;display:inline-flex;align-items:center;gap:16px;padding:10px 16px;background:rgba(255,255,255,.96);border-radius:8px;box-shadow:0 3px 14px #243c2818;font:600 14px/1.3 Outfit,sans-serif}
.booking-map-launch:focus-visible,.booking-map-close:focus-visible,.booking-map-retry:focus-visible{outline:3px solid #c49f00;outline-offset:3px}
.booking-map-launch:disabled{cursor:default;opacity:.55}
dialog.booking-map-dialog{width:min(1000px,calc(100vw - 40px));max-height:calc(100dvh - 40px);padding:0;border:0;border-radius:20px;background:white;color:#203328;box-shadow:0 24px 100px #07170b66;overflow:auto;font-family:Outfit,sans-serif}
dialog.booking-map-dialog::backdrop{background:#13251bc4;backdrop-filter:blur(3px)}
.booking-map-dialog__header{position:sticky;top:0;z-index:1100;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:24px 26px 14px;background:#fff}
.booking-map-dialog__header p{margin:0 0 5px;font-size:10px;font-weight:600;letter-spacing:.12em;color:#7a857d}
.booking-map-dialog__header h2{font-size:26px;line-height:1.2;letter-spacing:-.035em;margin:0;color:#1e3025}
.booking-map-close{flex:none;display:grid;place-items:center;width:42px;height:42px;padding:0;border:1px solid #e1e6df;border-radius:50%;background:#f5f7f2;color:#3d5141;font:400 29px/1 Outfit,sans-serif;cursor:pointer}
.booking-map-stops{display:grid;grid-template-columns:1fr 1fr;gap:12px 24px;padding:0 26px 18px}
.booking-map-stops p{display:flex;align-items:flex-start;gap:10px;margin:0;font-size:13px;line-height:1.5;overflow-wrap:anywhere;min-width:0}
.booking-map-dot{flex:none;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#f0c200;color:#27331c;font-size:10px;font-weight:700}
.booking-map-dot--end{background:#26382e;color:#fff}
.booking-map-status{padding:32px 26px;text-align:center;color:#687b6c;font-size:14px}
.booking-map-status:empty{display:none}
.booking-map-retry{display:block;margin:0 auto 28px;padding:11px 18px;border:1px solid #26382e;border-radius:8px;background:#26382e;color:white;cursor:pointer;font:500 14px Outfit,sans-serif}
.booking-map-retry[hidden],.booking-map-canvas[hidden]{display:none!important}
.booking-map-canvas{width:100%;height:clamp(300px,54vh,560px);background:#eef1e9;isolation:isolate}
.booking-map-canvas .leaflet-control-attribution{max-width:100%;font-size:10px;background:rgba(255,255,255,.95)}
.booking-map-canvas .leaflet-control-attribution a{color:#2b5e3b}
.booking-map-canvas .leaflet-tooltip{font-family:Outfit,sans-serif;font-size:12px}
.booking-map-footer{padding:16px 26px 20px}
.booking-map-footer strong{display:block;font-size:15px;color:#294834;margin-bottom:6px}
.booking-map-footer p{font-size:11px;line-height:1.6;color:#7b877c;margin:0}
@media(max-width:575px){
 dialog.booking-map-dialog{width:calc(100vw - 20px);max-height:calc(100dvh - 20px);border-radius:15px}
 .booking-map-dialog__header{padding:18px 17px 14px}.booking-map-dialog__header h2{font-size:22px}
 .booking-map-stops{grid-template-columns:1fr;padding:0 17px 16px;gap:9px}.booking-map-stops p{font-size:12px}
 .booking-map-canvas{height:48dvh;min-height:260px}.booking-map-footer{padding:14px 17px 18px}.booking-map-footer strong{font-size:14px}
 .booking-map-dialog .leaflet-bar a{width:36px;height:36px;line-height:36px}
}
@media(prefers-reduced-motion:reduce){.booking-map-launch svg{transition:none}dialog.booking-map-dialog::backdrop{backdrop-filter:none}}
