/* Карта офисов на сайтах (OfficeMapWidget). */
.office-map { width: 100%; border-radius: 10px; overflow: hidden; background: #eef0e6; }
.office-map--error { display: flex; align-items: center; justify-content: center; color: #6c757d; }
.office-map-pin { width: 36px; height: 36px; border-radius: 50%; display: flex; align-items: center; justify-content: center; border: 2px solid #fff; box-shadow: 0 2px 6px rgba(0, 0, 0, .35); cursor: pointer; }
.office-map-pin .office-map-icon { display: flex; }
/* Корневые элементы меток — без position: их позиционирует MapLibre (position: absolute у .maplibregl-marker);
   свой position: relative ставил метки в поток друг за другом, и они «уезжали» при смене масштаба.
   Стрелка — квадрат, остриё в центре (поворот вокруг острия): сдвиг рисунка — отступами, не position. */
.office-map-arrow { width: 60px; height: 60px; pointer-events: none; }
.office-map-arrow svg { display: block; margin: 30px 0 0 20px; pointer-events: auto; cursor: pointer; filter: drop-shadow(0 1px 2px rgba(0, 0, 0, .35));
    transform-origin: 50% 0; /* масштаб с картой (office-map.js → scaleArrows) — вокруг острия */ }
.office-map-arrow--main { width: 80px; height: 80px; }
.office-map-arrow--main svg { margin: 40px 0 0 26px; }
.office-map-pin svg { width: 20px; height: 20px; }
.office-map-dot { width: 28px; height: 28px; border-radius: 50%; background: #fff; border: 2px solid; display: flex; align-items: center; justify-content: center; box-shadow: 0 1px 4px rgba(0, 0, 0, .3); cursor: pointer; }
.office-map-dot svg { width: 16px; height: 16px; }
/* «Метка» со своим цветом и значком: заливка, белая обводка, подпись под кругом (.office-map-area-label). */
.office-map-dot--filled { width: 30px; height: 30px; border: 2px solid #fff; }
.office-map-dot--filled svg { width: 17px; height: 17px; }
/* Значок области (парковка) в её середине — без обводки, как и сама область. */
.office-map-area-icon { width: 26px; height: 26px; border-radius: 50%; background: rgba(255, 255, 255, .85); display: flex; align-items: center; justify-content: center; cursor: pointer; }
.office-map-area-icon svg { width: 18px; height: 18px; }
/* Здание/зона «без значка» — только подпись по центру области. */
.office-map-area-icon--none { width: 0; height: 0; background: none; }
.office-map-area-icon--none .office-map-area-label { top: 50%; transform: translate(-50%, -50%); margin-top: 0; pointer-events: auto; cursor: pointer; }
/* Подпись зоны — под значком, не сдвигая его с центра зоны (корень метки позиционирует сама карта). */
.office-map-area-label { position: absolute; top: 100%; left: 50%; transform: translateX(-50%); margin-top: 2px; width: max-content; max-width: 160px; text-align: center; line-height: 1.2; font-size: 12px; font-weight: 700; color: #262b33; text-shadow: 0 0 2px #fff, 0 0 2px #fff, 0 0 3px #fff; pointer-events: none; }
.office-map-popup { font-size: 13px; line-height: 1.4; }
.office-map-popup strong { display: block; font-size: 14px; margin-bottom: 2px; }
.office-map-popup__muted { color: #6c757d; font-size: 12px; }
.office-map-popup__phone { display: block; font-weight: 700; }
.office-map-popup__actions { display: flex; gap: 12px; margin-top: 6px; }
/* Во весь экран: карта на весь экран (или на всё окно, если браузер не дал полноэкранный режим). */
.office-map:fullscreen { width: 100% !important; height: 100% !important; border-radius: 0; background: #fff; }
.office-map.office-map--full { position: fixed !important; inset: 0; z-index: 100000; width: 100% !important; height: 100% !important; border-radius: 0; background: #fff; }
html.office-map-no-scroll, html.office-map-no-scroll body { overflow: hidden; }
