.xleb-yandex-map { position:relative; width:100%; overflow:hidden; aspect-ratio:var(--map-aspect-xs,3/2); }
.xleb-yandex-map iframe { position:absolute; inset:0; width:100%; height:100%; border:0; }
@media(min-width:768px) { .xleb-yandex-map { aspect-ratio:var(--map-aspect-sm,3/2); } }
@media(min-width:992px) { .xleb-yandex-map { aspect-ratio:var(--map-aspect-md,16/9); } }
.xleb-yandex-map--api { height:var(--map-height-xs,auto); background:var(--bgColor,#f3f3f3); }
.xleb-map-canvas { position:absolute; inset:0; }
.xleb-map-fallback { position:absolute; inset:0; padding:24px; overflow:auto; background:var(--bgColor,#f3f3f3); }
.xleb-yandex-map--api.is-ready .xleb-map-fallback { display:none; }
.xleb-map-pin { transform:translate(-50%,-100%); width:44px; height:44px; padding:6px; border:2px solid white; border-radius:50%; background:var(--primary500,#245cdb); color:white; cursor:pointer; box-shadow:0 2px 8px #0003; }
.xleb-map-pin-image { display:block; width:100%; height:100%; object-fit:contain; }
.xleb-map-popup { position:absolute; bottom:54px; left:0; transform:translateX(-50%); width:240px; max-height:220px; overflow:auto; padding:24px 16px 16px; border-radius:12px; background:white; color:#222; box-shadow:0 4px 24px #0003; font:14px/1.5 sans-serif; }
.xleb-map-popup[hidden] { display:none; }
.xleb-map-popup p { white-space:pre-line; margin:8px 0; }
.xleb-map-close { position:absolute; right:4px; top:0; border:0; background:white; color:#222; cursor:pointer; font-size:24px; }
.xleb-map-zoom { position:absolute; top:12px; right:12px; display:grid; gap:4px; }
.xleb-map-zoom button { width:44px; height:44px; border:0; border-radius:8px; background:white; color:#222; font:24px sans-serif; cursor:pointer; box-shadow:0 2px 8px #0002; }
.xleb-yandex-map--api button:focus-visible { outline:3px solid #245cdb; outline-offset:3px; }
@media(min-width:768px) { .xleb-yandex-map--api { height:var(--map-height-sm,auto); } }
@media(min-width:992px) { .xleb-yandex-map--api { height:var(--map-height-md,auto); } }
