/**
 * VinVic × Apaczka Mapa Punktów — stock modal w body (jak HauMru), bez portalu VinVic.
 *
 * ⚠️  NIE RUSZAĆ BEZ CZYTANIA: inc/shipping/APACZKA-CHECKOUT-NOTE.md
 * NIGDY transform:none !important na .leaflet-tile — psuje siatkę kafelków OSM.
 */

#apaczka_pl_geowidget_classic {
    display: none !important;
}

/* Modal stock Apaczki — w dedykowanej warstwie #vv-apaczka-map-layer (ostatnie dziecko body). */
#vv-apaczka-map-layer {
    position: fixed !important;
    inset: 0 !important;
    z-index: 2147483647 !important;
    pointer-events: none !important;
    isolation: isolate !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    background: transparent !important;
}

#vv-apaczka-map-layer .apaczka_mp_geowidget_modal,
#vv-apaczka-map-layer #apaczka_mp_geowidget_modal_dynamic,
body.vv-apaczka-map-open .apaczka_mp_geowidget_modal,
body.vv-apaczka-map-open #apaczka_mp_geowidget_modal_dynamic,
.apaczka_mp_geowidget_modal,
#apaczka_mp_geowidget_modal_dynamic {
    z-index: 2147483647 !important;
}

.apaczka_mp_geowidget_modal[style*='display: none'],
.apaczka_mp_geowidget_modal[style*='display:none'],
#apaczka_mp_geowidget_modal_dynamic[style*='display: none'],
#apaczka_mp_geowidget_modal_dynamic[style*='display:none'] {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
}

.apaczka_mp_geowidget_modal[style*='flex'],
.apaczka_mp_geowidget_modal[style*='block'],
#apaczka_mp_geowidget_modal_dynamic[style*='flex'],
#apaczka_mp_geowidget_modal_dynamic[style*='block'] {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    visibility: visible !important;
    pointer-events: auto !important;
}

/* Bez overflow:hidden na html — psuje render kafelków Leaflet w części przeglądarek. */
body.vv-apaczka-map-open {
    overscroll-behavior: none !important;
}

body.vv-apaczka-map-open.vv-wc-prices-loading::after,
body.vv-apaczka-map-open.vv-wc-prices-loading::before,
body.vv-apaczka-map-open .vv-checkout-genius-hub #order_review.woocommerce-checkout-review-order::after,
body.vv-apaczka-map-open .vv-checkout-genius-hub #order_review.woocommerce-checkout-review-order::before {
    display: none !important;
    content: none !important;
    pointer-events: none !important;
}

/*
 * Checkout VinVic (.vv-co-order-review-aside / #order_review) — przy otwartej mapie
 * nie może tworzyć warstwy nad modalem Apaczki (overflow, isolation, AJAX overlay).
 */
body.vv-apaczka-map-open .vv-vinvic-checkout-shortcode-root,
body.vv-apaczka-map-open .vv-vinvic-checkout-shortcode-inner,
body.vv-apaczka-map-open .page-body-content,
body.vv-apaczka-map-open .vv-checkout-wrapper,
body.vv-apaczka-map-open .vv-checkout-live-shell,
body.vv-apaczka-map-open .vv-checkout-genius-hub,
body.vv-apaczka-map-open form.checkout.woocommerce-checkout {
    pointer-events: none !important;
    z-index: auto !important;
}

body.vv-apaczka-map-open .vv-co-order-review-aside,
body.vv-apaczka-map-open #order_review,
body.vv-apaczka-map-open #order_review.woocommerce-checkout-review-order,
body.vv-apaczka-map-open .woocommerce-checkout-review-order-table,
body.vv-apaczka-map-open #order_review .woocommerce-checkout-review-order-table tfoot,
body.vv-apaczka-map-open #order_review #payment {
    overflow: visible !important;
    isolation: auto !important;
    pointer-events: none !important;
}

body.vv-apaczka-map-open .vv-site-header,
body.vv-apaczka-map-open .vv-nav-overlay,
body.vv-apaczka-map-open .vv-nav-panel,
body.vv-apaczka-map-open #vvfs-trigger,
body.vv-apaczka-map-open #vvscp-cart-trigger {
    z-index: auto !important;
}

#vv-apaczka-map-layer .apaczka_mp_geowidget_modal,
#vv-apaczka-map-layer #apaczka_mp_geowidget_modal_dynamic {
    pointer-events: auto !important;
}

body.vv-apaczka-map-open .apaczka_mp_geowidget_modal,
body.vv-apaczka-map-open #apaczka_mp_geowidget_modal_dynamic {
    position: fixed !important;
    inset: 0 !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    max-height: none !important;
    margin: 0 !important;
    pointer-events: auto !important;
    background-color: rgba(0, 0, 0, 0.5) !important;
}

body.vv-apaczka-map-open .apaczka_mp_geowidget_modal *,
body.vv-apaczka-map-open #apaczka_mp_geowidget_modal_dynamic * {
    pointer-events: auto;
}

body.vv-apaczka-map-open #vvscp-cart-overlay,
body.vv-apaczka-map-open .vvscp-cart-box,
body.vv-apaczka-map-open #vvscp-cart-trigger,
body.vv-apaczka-map-open #vvfs-overlay,
body.vv-apaczka-map-open #vvfs-trigger,
body.vv-apaczka-map-open .vv-panel-overlay,
body.vv-apaczka-map-open .vv-side-panel,
body.vv-apaczka-map-open .vv-floating-badge,
body.vv-apaczka-map-open #vvc-cookie-overlay,
body.vv-apaczka-map-open .vv-product-zoom-overlay,
body.vv-apaczka-map-open #haumru-ai-chat-root,
body.vv-apaczka-map-open .haumru-ai-chat-widget,
body.vv-apaczka-map-open .select2-container--open,
body.vv-apaczka-map-open .select2-dropdown,
body.vv-apaczka-map-open .vv-wishlist-panel,
body.vv-apaczka-map-open .vv-wishlist-overlay {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

/*
 * Globalne vinvic-frontend-global: [class*="vv-"] th/td — nie może psuć tabeli w BPWidget.
 */
#vv-apaczka-map-layer table,
.apaczka_mp_geowidget_modal table,
#apaczka_mp_geowidget_modal_dynamic table,
#BPWidget table {
    width: auto !important;
    border-collapse: separate !important;
    margin: 0 !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
}

#vv-apaczka-map-layer th,
#vv-apaczka-map-layer td,
.apaczka_mp_geowidget_modal th,
.apaczka_mp_geowidget_modal td,
#apaczka_mp_geowidget_modal_dynamic th,
#apaczka_mp_geowidget_modal_dynamic td,
#BPWidget th,
#BPWidget td,
#apaczka_mp_geowidget_modal_inner_content th,
#apaczka_mp_geowidget_modal_inner_content td {
    padding: revert !important;
    border: revert !important;
    background: revert !important;
    color: revert !important;
    font-size: revert !important;
    text-align: revert !important;
    line-height: revert !important;
    opacity: 1 !important;
    visibility: visible !important;
}

#vv-apaczka-map-layer .leaflet-container,
.apaczka_mp_geowidget_modal .leaflet-container,
#apaczka_mp_geowidget_modal_inner_content .leaflet-container {
    visibility: visible !important;
    opacity: 1 !important;
    background: #ddd !important;
}

#vv-apaczka-map-layer .leaflet-tile-pane,
.apaczka_mp_geowidget_modal .leaflet-tile-pane,
#apaczka_mp_geowidget_modal_inner_content .leaflet-tile-pane {
    visibility: visible !important;
    opacity: 1 !important;
}

/*
 * Kafelki Leaflet MUSZĄ zachować inline transform: translate3d(...) — transform: none je układa w jednym rogu.
 * Reset tylko dekoracji z [class*="vv-"] img (border-radius, cień, transition).
 */
#vv-apaczka-map-layer .leaflet-tile-pane img,
.apaczka_mp_geowidget_modal .leaflet-tile-pane img,
#vv-apaczka-map-layer img.leaflet-tile,
.apaczka_mp_geowidget_modal img.leaflet-tile,
#BPWidget img.leaflet-tile {
    visibility: visible !important;
    opacity: 1 !important;
    max-width: none !important;
    max-height: none !important;
    width: auto !important;
    height: auto !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    transition: none !important;
    filter: none !important;
    mix-blend-mode: normal !important;
    object-fit: unset !important;
}

#vv-apaczka-map-layer .leaflet-fade-anim .leaflet-tile,
.apaczka_mp_geowidget_modal .leaflet-fade-anim .leaflet-tile,
#vv-apaczka-map-layer .leaflet-fade-anim .leaflet-tile-loaded,
.apaczka_mp_geowidget_modal .leaflet-fade-anim .leaflet-tile-loaded {
    opacity: 1 !important;
}

/* Jawne wymiary — Leaflet potrzebuje px, nie % z ukrytego rodzica */
.apaczka_mp_geowidget_modal_inner {
    position: relative !important;
    display: flex !important;
    flex-direction: column !important;
    box-sizing: border-box !important;
    width: min(96vw, 1100px) !important;
    height: min(85vh, 720px) !important;
    max-width: 1100px !important;
    max-height: min(85dvh, 720px) !important;
    min-height: 420px !important;
    margin: 0 !important;
    padding: 36px 16px 16px !important;
    overflow: hidden !important;
}

#apaczka_mp_geowidget_modal_inner_content {
    display: flex !important;
    flex-direction: column !important;
    flex: 1 1 auto !important;
    min-height: 320px !important;
    height: 100% !important;
    width: 100% !important;
    overflow: hidden !important;
    position: relative !important;
    margin: 0 !important;
}

#apaczka_mp_geowidget_modal_inner_content #BPWidget,
#apaczka_mp_geowidget_modal_inner_content .leaflet-container,
#apaczka_mp_geowidget_modal_inner_content #BPWidgetMap {
    flex: 1 1 auto !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 320px !important;
}

.vv-apaczka-hidden-fields {
    display: none !important;
}

.vv-checkout-genius-hub #payment {
    overflow: visible !important;
}

.vv-checkout-genius-hub tr.woocommerce-shipping-totals td {
    overflow: visible !important;
}

.vv-checkout-genius-hub #shipping_method.woocommerce-shipping-methods li:has(#amp-map-button),
.vv-checkout-genius-hub #shipping_method.woocommerce-shipping-methods li:has(.apaczka_mp_pl_after_rate_btn),
.vv-checkout-genius-hub #shipping_method.woocommerce-shipping-methods li:has(#amp-map-button) > div {
    overflow: visible !important;
}

/* Przycisk mapy — kolory z szablonu checkout */
.vv-checkout-genius-hub .apaczka_pl_after_rate_btn,
.vv-checkout-genius-hub .apaczka_mp_pl_after_rate_btn,
.vv-checkout-genius-hub #amp-map-button,
.vv-checkout-genius-hub #amp-map-button.amp-map-button,
.vv-checkout-genius-hub .amp-map-button,
.vv-checkout-genius-hub #shipping_method .apaczka_pl_after_rate_btn,
.vv-checkout-genius-hub #shipping_method .apaczka_mp_pl_after_rate_btn,
.vv-checkout-genius-hub #shipping_method #amp-map-button,
.vv-checkout-genius-hub #shipping_method .button.alt.apaczka_mp_pl_after_rate_btn {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    background: var(--vv-harmony-primary-bg, var(--vvscp-btn-bg, var(--vv-co-btn-bg, #111827))) !important;
    background-color: var(--vv-harmony-primary-bg, var(--vvscp-btn-bg, var(--vv-co-btn-bg, #111827))) !important;
    color: var(--vv-harmony-primary-text, var(--vvscp-btn-text, var(--vv-co-btn-text, #fff))) !important;
    border-radius: var(--vv-harmony-radius, var(--vv-co-radius, 12px)) !important;
    padding: 12px 14px !important;
    font-weight: 800 !important;
    font-size: 14px !important;
    line-height: 1.25 !important;
    text-transform: none !important;
    border: 1px solid var(--vv-harmony-primary-bg, var(--vvscp-btn-bg, var(--vv-co-btn-bg, #111827))) !important;
    margin-top: 10px !important;
    margin-bottom: 0 !important;
    cursor: pointer !important;
    text-align: center !important;
    text-decoration: none !important;
    pointer-events: auto !important;
    position: relative !important;
    z-index: 2 !important;
    min-height: 44px !important;
    box-shadow: none !important;
    -webkit-appearance: none;
    appearance: none;
}

.vv-checkout-genius-hub .amp-map-button.hidden,
.vv-checkout-genius-hub #amp-map-button.hidden {
    display: none !important;
}

.vv-checkout-genius-hub .apaczka_mp_pl_after_rate_description,
.vv-checkout-genius-hub #shipping_method .apaczka_mp_pl_after_rate_description {
    display: block !important;
    margin-top: 10px !important;
    padding: 12px 14px !important;
    border: 2px dashed var(--vv-co-accent, var(--vv-co-btn-bg, #111827)) !important;
    border-radius: var(--vv-co-radius-sm, 12px) !important;
    background: var(--vv-co-input-bg, var(--vv-co-card, #fff)) !important;
    color: var(--vv-co-text, #1e293b) !important;
    font-size: 13px !important;
    line-height: 1.45 !important;
}

#vv-apaczka-point-summary,
.vv-apaczka-point-summary {
    display: none !important;
}

/* Mobile: pełny ekran + flex bez vh — slot mapy (#BPWidgetMap) dostaje px z JS (applyMobileMapDimensions). */
@media (max-width: 782px) {
    body.vv-apaczka-map-open .apaczka_mp_geowidget_modal,
    body.vv-apaczka-map-open #apaczka_mp_geowidget_modal_dynamic {
        align-items: stretch !important;
        justify-content: stretch !important;
        padding: 0 !important;
    }

    body.vv-apaczka-map-open .apaczka_mp_geowidget_modal_inner,
    #vv-apaczka-map-layer .apaczka_mp_geowidget_modal_inner {
        width: 100vw !important;
        width: 100dvw !important;
        max-width: none !important;
        height: 100dvh !important;
        height: -webkit-fill-available !important;
        max-height: 100dvh !important;
        min-height: 0 !important;
        margin: 0 !important;
        border-radius: 0 !important;
        padding: 34px 8px max(8px, env(safe-area-inset-bottom)) !important;
        padding-top: max(34px, calc(env(safe-area-inset-top, 0px) + 28px)) !important;
    }

    #apaczka_mp_geowidget_modal_inner_content {
        min-height: 0 !important;
        flex: 1 1 auto !important;
        overflow: hidden !important;
    }

    #apaczka_mp_geowidget_modal_inner_content #BPWidget {
        display: flex !important;
        flex-direction: column !important;
        flex: 1 1 auto !important;
        min-height: 0 !important;
        height: 100% !important;
        width: 100% !important;
    }

    #apaczka_mp_geowidget_modal_inner_content #BPWidgetMap,
    #apaczka_mp_geowidget_modal_inner_content .bp-map {
        position: relative !important;
        flex: 1 1 auto !important;
        min-height: 160px !important;
        width: 100% !important;
        overflow: hidden !important;
    }

    #apaczka_mp_geowidget_modal_inner_content #BPWidgetMap .leaflet-container,
    #apaczka_mp_geowidget_modal_inner_content .bp-map .leaflet-container {
        position: absolute !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        width: 100% !important;
        height: 100% !important;
        touch-action: pan-x pan-y pinch-zoom !important;
    }

    #vv-apaczka-map-layer .leaflet-tile-pane,
    .apaczka_mp_geowidget_modal .leaflet-tile-pane {
        z-index: 200 !important;
        opacity: 1 !important;
        visibility: visible !important;
    }

    #vv-apaczka-map-layer img.leaflet-tile,
    .apaczka_mp_geowidget_modal img.leaflet-tile {
        max-width: none !important;
        width: auto !important;
        height: auto !important;
    }
}
