/* ═══════════════════════════════════════════════════════════════════════════════
   MC MINI CART — CSS strukturalny
   Zmienne domyślne nadpisywane przez Elementor per widget-instance.
   ═══════════════════════════════════════════════════════════════════════════════ */

/* ─── Domyślne zmienne ─── */
.mc-cart-instance {
    --mc-trig-bg:           transparent;
    --mc-trig-bg-hover:     transparent;
    --mc-trig-color:        #252525;
    --mc-trig-color-hover:  #555555;
    --mc-trig-gap:          6px;

    --mc-icon-size:         24px;

    --mc-badge-bg:          #333333;
    --mc-badge-color:       #ffffff;
    --mc-badge-size:        18px;
    --mc-badge-radius:      50%;
    --mc-badge-top:         -6px;
    --mc-badge-right:       -6px;
    --mc-badge-bottom:      auto;
    --mc-badge-left:        auto;

    --mc-panel-width:       400px;
    --mc-panel-bg:          #ffffff;
    --mc-panel-duration:    300ms;
    --mc-panel-max-h:       0px;

    --mc-overlay-bg:        rgba(0, 0, 0, 0.45);

    --mc-hdr-bg:            #ffffff;
    --mc-hdr-height:        60px;
    --mc-hdr-border:        #E5E5E5;
    --mc-hdr-title-color:   #252525;
    --mc-hdr-close-color:   #252525;
    --mc-hdr-close-size:    36px;

    --mc-item-border:       #F0F0F0;
    --mc-item-pad-y:        12px;
    --mc-item-pad-x:        16px;

    --mc-img-width:         72px;

    --mc-name-color:        #252525;
    --mc-name-hover:        #555555;
    --mc-price-color:       #252525;
    --mc-remove-color:      #AAAAAA;
    --mc-remove-hover:      #e74c3c;
    --mc-remove-size:       18px;

    --mc-total-bg:          #F9F9F9;
    --mc-total-border:      #E5E5E5;

    --mc-btn1-bg:           #F5F5F5;
    --mc-btn1-color:        #252525;
    --mc-btn1-bg-hover:     #E8E8E8;
    --mc-btn1-color-hover:  #252525;

    --mc-btn2-bg:           #252525;
    --mc-btn2-color:        #ffffff;
    --mc-btn2-bg-hover:     #444444;
    --mc-btn2-color-hover:  #ffffff;

    --mc-btns-direction:    column;
    --mc-btns-gap:          8px;

    position: relative;
    display:  inline-block;
}

/* ─── Reset ─── */
.mc-cart-instance *,
.mc-cart-instance *::before,
.mc-cart-instance *::after { box-sizing: border-box; }

/* Elementor Kit + WooCommerce global button reset */
.mc-cart-instance .mc-cart-panel .elementor-button,
.mc-cart-instance .mc-cart-panel button:not(.mc-cart-panel__close):not(.mc-minicart-opts-toggle),
.mc-cart-instance .mc-cart-panel a.button,
.mc-cart-instance .mc-cart-panel a.wc-forward {
    background:       transparent;
    background-color: transparent;
    background-image: none;
    color:            inherit;
    border:           none;
    box-shadow:       none;
    text-shadow:      none;
    border-radius:    0;
    padding:          0;
    font-family:      inherit;
    font-size:        inherit;
    display:          block;
    cursor:           pointer;
    text-align:       center;
    text-decoration:  none;
}
.mc-cart-instance .elementor-menu-cart__products,
.mc-cart-instance .woocommerce-mini-cart,
.mc-cart-instance .elementor-menu-cart__product,
.mc-cart-instance .woocommerce-mini-cart-item,
.mc-cart-instance .cart_item {
    background: transparent;
}
.mc-cart-instance .elementor-menu-cart__product-name a,
.mc-cart-instance .woocommerce-mini-cart-item > a:not(.remove_from_cart_button) {
    background: none;
    text-decoration: none;
    box-shadow: none;
}
.mc-cart-instance .remove_from_cart_button,
.mc-cart-instance .elementor_remove_from_cart_button {
    background: none;
    border: none;
    box-shadow: none;
}
.mc-cart-instance .mc-cart-panel__close {
    background: none;
    border: none;
    box-shadow: none;
}

/* ═══════════════════════════════════════════════════════════════════════════════
   PRZYCISK WYZWALACZA
   ═══════════════════════════════════════════════════════════════════════════════ */
.mc-cart-trigger {
    display:          flex !important;
    align-items:      center !important;
    gap:              var(--mc-trig-gap) !important;
    position:         relative !important;
    background:       var(--mc-trig-bg) !important;
    background-color: var(--mc-trig-bg) !important;
    color:            var(--mc-trig-color) !important;
    border:           none !important;
    box-shadow:       none !important;
    cursor:           pointer;
    font:             inherit;
    text-decoration:  none !important;
    transition:       background-color .2s ease, color .2s ease;
    -webkit-tap-highlight-color: transparent;
}

.mc-cart-trigger:hover,
.mc-cart-trigger:focus {
    background:       var(--mc-trig-bg-hover) !important;
    background-color: var(--mc-trig-bg-hover) !important;
    color:            var(--mc-trig-color-hover) !important;
    box-shadow:       none !important;
}

/* ─── Ikona ─── */
.mc-cart-icon {
    display:     flex;
    align-items: center;
    font-size:   var(--mc-icon-size);
    line-height: 1;
    color:       inherit;
    flex-shrink: 0;
}

.mc-cart-icon svg,
.mc-cart-icon i {
    width:  var(--mc-icon-size);
    height: var(--mc-icon-size);
    display: block;
}

/* ─── Etykieta tekstowa ─── */
.mc-cart-label {
    color:       inherit;
    white-space: nowrap;
}

/* ─── Odznaczka (licznik) ─── */
.mc-cart-badge {
    position:        absolute;
    top:             var(--mc-badge-top);
    right:           var(--mc-badge-right);
    bottom:          var(--mc-badge-bottom);
    left:            var(--mc-badge-left);
    min-width:       var(--mc-badge-size);
    height:          var(--mc-badge-size);
    line-height:     var(--mc-badge-size);
    padding:         0 4px;
    background:      var(--mc-badge-bg);
    color:           var(--mc-badge-color);
    border-radius:   var(--mc-badge-radius);
    font-size:       11px;
    font-weight:     700;
    text-align:      center;
    pointer-events:  none;
    z-index:         2;
    transition:      transform .2s ease, background-color .2s ease;
}

.mc-cart-badge.mc-badge-pop {
    animation: mc-badge-pop .35s cubic-bezier(.36,.07,.19,.97);
}

@keyframes mc-badge-pop {
    0%  { transform: scale(1); }
    40% { transform: scale(1.4); }
    70% { transform: scale(0.9); }
    100%{ transform: scale(1); }
}

/* ═══════════════════════════════════════════════════════════════════════════════
   OVERLAY
   ═══════════════════════════════════════════════════════════════════════════════ */
.mc-cart-overlay {
    position:   fixed;
    inset:      0;
    background: var(--mc-overlay-bg);
    z-index:    99998;
    opacity:    0;
    visibility: hidden;
    transition: opacity var(--mc-panel-duration) ease, visibility var(--mc-panel-duration) ease;
}

.mc-cart-overlay.is-open {
    opacity:    1;
    visibility: visible;
}

/* ─── Dropdown nie używa overlay ─── */
.mc-cart-instance[data-type="dropdown"] .mc-cart-overlay { display: none; }

/* ═══════════════════════════════════════════════════════════════════════════════
   PANEL — DRAWER (drawer-right / drawer-left)
   ═══════════════════════════════════════════════════════════════════════════════ */
.mc-cart-panel {
    position:       fixed;
    top:            0;
    bottom:         0;
    width:          var(--mc-panel-width);
    max-width:      100vw;
    background:     var(--mc-panel-bg);
    z-index:        99999;
    display:        flex;
    flex-direction: column;
    overflow:       hidden;
    transition:     transform var(--mc-panel-duration) ease,
                    opacity   var(--mc-panel-duration) ease;
}

/* Blokuje animację przy pierwszym renderowaniu (usuwa JS po inicjalizacji) */
.mc-cart-panel.mc-no-anim {
    transition: none !important;
    animation:  none !important;
}

/* W edytorze Elementora — żadnych animacji + panel zawsze ukryty gdy nie otwarty */
.elementor-editor-active .mc-cart-panel,
.elementor-editor-active .mc-cart-overlay {
    transition: none !important;
    animation:  none !important;
}

.elementor-editor-active .mc-cart-instance[data-type="drawer-right"] .mc-cart-panel:not(.is-open),
.elementor-editor-active .mc-cart-panel:not([data-type]).mc-cart-panel:not(.is-open) {
    transform:     translateX(100%) !important;
    visibility:    hidden !important;
    pointer-events: none !important;
}
.elementor-editor-active .mc-cart-instance[data-type="drawer-left"] .mc-cart-panel:not(.is-open) {
    transform:     translateX(-100%) !important;
    visibility:    hidden !important;
    pointer-events: none !important;
}
.elementor-editor-active .mc-cart-instance[data-type="dropdown"] .mc-cart-panel:not(.is-open) {
    opacity:       0 !important;
    visibility:    hidden !important;
    pointer-events: none !important;
}
.elementor-editor-active .mc-cart-overlay:not(.is-open) {
    opacity:    0 !important;
    visibility: hidden !important;
}

/* Drawer prawy */
.mc-cart-instance[data-type="drawer-right"] .mc-cart-panel {
    right:     0;
    left:      auto;
    transform: translateX(100%);
}
.mc-cart-instance[data-type="drawer-right"] .mc-cart-panel.is-open {
    transform: translateX(0);
}

/* Drawer lewy */
.mc-cart-instance[data-type="drawer-left"] .mc-cart-panel {
    left:      0;
    right:     auto;
    transform: translateX(-100%);
}
.mc-cart-instance[data-type="drawer-left"] .mc-cart-panel.is-open {
    transform: translateX(0);
}

/* Fade dla obu drawer */
.mc-cart-instance[data-anim="fade"][data-type^="drawer"] .mc-cart-panel {
    transform: translateX(0) !important;
    opacity:   0;
    visibility: hidden;
}
.mc-cart-instance[data-anim="fade"][data-type^="drawer"] .mc-cart-panel.is-open {
    opacity:    1;
    visibility: visible;
}

/* ═══════════════════════════════════════════════════════════════════════════════
   PANEL — DROPDOWN
   ═══════════════════════════════════════════════════════════════════════════════ */
.mc-cart-instance[data-type="dropdown"] .mc-cart-panel {
    position:      absolute;
    top:           calc(100% + 8px);
    right:         0;
    bottom:        auto;
    left:          auto;
    height:        auto;
    max-height:    80vh;
    overflow-y:    auto;
    transform:     translateY(-8px);
    opacity:       0;
    visibility:    hidden;
    transition:    transform var(--mc-panel-duration) ease,
                   opacity   var(--mc-panel-duration) ease,
                   visibility var(--mc-panel-duration) ease;
    box-shadow:    0 8px 40px rgba(0,0,0,.12);
}

.mc-cart-instance[data-type="dropdown"] .mc-cart-panel.is-open {
    transform:  translateY(0);
    opacity:    1;
    visibility: visible;
}

/* ─── Max-height dla body (drawer) ─── */
.mc-cart-panel[style*="--mc-panel-max-h"]:not([style*="--mc-panel-max-h: 0"]) .mc-cart-panel__body {
    max-height: var(--mc-panel-max-h);
    overflow-y: auto;
}

/* ═══════════════════════════════════════════════════════════════════════════════
   NAGŁÓWEK PANELU
   ═══════════════════════════════════════════════════════════════════════════════ */
.mc-cart-panel__hdr {
    display:       flex;
    align-items:   center;
    gap:           12px;
    height:        var(--mc-hdr-height);
    padding:       0 16px;
    background:    var(--mc-hdr-bg);
    border-bottom: 1px solid var(--mc-hdr-border);
    flex-shrink:   0;
}

.mc-cart-panel__title {
    flex:          1;
    color:         var(--mc-hdr-title-color);
    font-weight:   600;
    white-space:   nowrap;
    overflow:      hidden;
    text-overflow: ellipsis;
}

.mc-cart-panel__close {
    width:            var(--mc-hdr-close-size) !important;
    height:           var(--mc-hdr-close-size) !important;
    display:          flex !important;
    align-items:      center !important;
    justify-content:  center !important;
    color:            var(--mc-hdr-close-color) !important;
    background:       transparent !important;
    background-color: transparent !important;
    border:           none !important;
    box-shadow:       none !important;
    border-radius:    50% !important;
    cursor:           pointer !important;
    flex-shrink:      0 !important;
    padding:          0 !important;
    transition:       background .15s ease;
    -webkit-tap-highlight-color: transparent;
    font:             inherit;
}
.mc-cart-panel__close:hover {
    background:       rgba(0,0,0,.06) !important;
    background-color: rgba(0,0,0,.06) !important;
    color:            var(--mc-hdr-close-color) !important;
}

/* ═══════════════════════════════════════════════════════════════════════════════
   BODY PANELU — scroll
   ═══════════════════════════════════════════════════════════════════════════════ */
.mc-cart-panel__body {
    flex:                       1;
    overflow-y:                 auto;
    -webkit-overflow-scrolling: touch;
}

/* ═══════════════════════════════════════════════════════════════════════════════
   WOOCOMMERCE MINI CART — stylizacja elementów
   Selektory obsługują zarówno standardowe klasy WC jak i klasy Elementora
   ═══════════════════════════════════════════════════════════════════════════════ */

/* Lista produktów */
.mc-cart-instance .woocommerce-mini-cart,
.mc-cart-instance .elementor-menu-cart__products {
    margin:  0;
    padding: 0;
    list-style: none;
}

/* Pojedyncza pozycja */
.mc-cart-instance .woocommerce-mini-cart-item,
.mc-cart-instance .elementor-menu-cart__product {
    padding:       var(--mc-item-pad-y, 12px) var(--mc-item-pad-x, 16px);
    border-bottom: 1px solid var(--mc-item-border, #f0f0f0);
    position:      relative;
}

/* WC standard — flex */
.mc-cart-instance .woocommerce-mini-cart-item {
    display:     flex;
    flex-wrap:   wrap;
    align-items: flex-start;
    gap:         var(--mc-item-gap, 12px);
}

/* Elementor — grid: [image] [nazwa / cena / netto / opcje] */
.mc-cart-instance .elementor-menu-cart__product {
    display:               grid !important;
    grid-template-columns: var(--mc-img-width, 72px) 1fr;
    grid-template-rows:    auto auto;
    column-gap:            var(--mc-item-gap, 12px);
    row-gap:               0;
    align-items:           start;
}
.mc-cart-instance.mc-no-image .elementor-menu-cart__product {
    grid-template-columns: 1fr;
}

/* Zdjęcie */
.mc-cart-instance .woocommerce-mini-cart-item img,
.mc-cart-instance .elementor-menu-cart__product-image img {
    width:         var(--mc-img-width, 72px) !important;
    height:        var(--mc-img-height, auto) !important;
    max-width:     var(--mc-img-width, 72px) !important;
    flex-shrink:   0;
    display:       block;
    object-fit:    var(--mc-img-fit, cover);
    border-radius: var(--mc-img-radius, 4px);
}

/* Kontener zdjęcia Elementor */
.mc-cart-instance .elementor-menu-cart__product-image {
    grid-column: 1;
    grid-row:    1 / span 2;
    width:       var(--mc-img-width, 72px);
    align-self:  start;
}

/* Ukryj zdjęcia */
.mc-cart-instance.mc-no-image .woocommerce-mini-cart-item img,
.mc-cart-instance.mc-no-image .elementor-menu-cart__product-image { display: none !important; }

/* Nazwa produktu (WC standard) */
.mc-cart-instance .woocommerce-mini-cart-item > a:not(.remove_from_cart_button) {
    display:         flex !important;
    flex-wrap:       wrap !important;
    align-items:     flex-start !important;
    gap:             8px !important;
    flex:            1 !important;
    color:           var(--mc-name-color, #252525) !important;
    text-decoration: none !important;
    background:      none !important;
    box-shadow:      none !important;
    transition:      color .15s ease;
}
.mc-cart-instance .woocommerce-mini-cart-item > a:not(.remove_from_cart_button):hover {
    color:      var(--mc-name-hover, #555) !important;
    background: none !important;
}

/* Nazwa produktu (Elementor) */
.mc-cart-instance .elementor-menu-cart__product-name {
    grid-column: 2;
    grid-row:    1;
    min-width:   0;
    color:       var(--mc-name-color, #252525) !important;
    word-break:  break-word;
}
.mc-cart-instance .elementor-menu-cart__product-name a {
    color:           inherit !important;
    text-decoration: none !important;
    background:      none !important;
    box-shadow:      none !important;
}
.mc-cart-instance .elementor-menu-cart__product-name a:hover {
    color: var(--mc-name-hover, #555) !important;
}

/* Cena (Elementor) — grid row 2, kolumna nazwy */
.mc-cart-instance .elementor-menu-cart__product-price {
    grid-column: 2;
    grid-row:    2;
    width:       auto !important;
    flex-basis:  auto !important;
    color:       var(--mc-price-color, #252525) !important;
    margin-top:  4px;
}
.mc-cart-instance .elementor-menu-cart__product-price .quantity {
    display: block !important;
    color:   var(--mc-price-color, #252525) !important;
}

/* Remove (Elementor) — nie zajmuje miejsca w gridzie */
.mc-cart-instance .elementor-menu-cart__product-remove {
    display: contents;
}

/* Ilość × cena (WC + Elementor) */
.mc-cart-instance .woocommerce-mini-cart-item .quantity {
    display:    block !important;
    width:      100% !important;
    color:      var(--mc-price-color, #252525) !important;
    margin-top: 4px !important;
}
.mc-cart-instance .quantity .woocommerce-Price-amount,
.mc-cart-instance .quantity .amount {
    color: var(--mc-price-color, #252525) !important;
}

/* Przycisk usuń (WC + Elementor) */
.mc-cart-instance .remove_from_cart_button,
.mc-cart-instance .elementor_remove_from_cart_button {
    position:        absolute !important;
    top:             var(--mc-item-pad-y, 12px) !important;
    right:           var(--mc-item-pad-x, 16px) !important;
    display:         flex !important;
    align-items:     center !important;
    justify-content: center !important;
    width:           var(--mc-remove-size, 18px) !important;
    height:          var(--mc-remove-size, 18px) !important;
    color:           var(--mc-remove-color, #aaa) !important;
    font-size:       var(--mc-remove-size, 18px) !important;
    line-height:     1 !important;
    text-decoration: none !important;
    background:      none !important;
    box-shadow:      none !important;
    border:          none !important;
    transition:      color .15s ease;
    padding:         0 !important;
}
.mc-cart-instance .remove_from_cart_button:hover,
.mc-cart-instance .elementor_remove_from_cart_button:hover {
    color:      var(--mc-remove-hover, #e74c3c) !important;
    background: none !important;
}

.mc-cart-instance .elementor-menu-cart__product-remove .elementor_remove_from_cart_button {
    display: none !important;
}
.mc-cart-instance .remove_from_cart_button::before {
    content: '\00d7';
}

/* Ukryj przycisk usuń */
.mc-cart-instance.mc-no-remove .remove_from_cart_button,
.mc-cart-instance.mc-no-remove .elementor_remove_from_cart_button,
.mc-cart-instance.mc-no-remove .elementor-menu-cart__product-remove { display: none !important; }

/* ─── Pusta lista ─── */
.mc-cart-instance .woocommerce-mini-cart__empty-message {
    padding:    32px 16px;
    text-align: center;
    color:      #888;
}

/* Ukryj dl.variation */
.mc-cart-instance dl.variation { display: none !important; }

/* ═══════════════════════════════════════════════════════════════════════════════
   PODSUMOWANIE (TOTAL) — WC + Elementor
   ═══════════════════════════════════════════════════════════════════════════════ */
.mc-cart-instance .woocommerce-mini-cart__total,
.mc-cart-instance .elementor-menu-cart__subtotal {
    display:         flex;
    align-items:     center;
    justify-content: space-between;
    margin:          0;
}

/* ═══════════════════════════════════════════════════════════════════════════════
   PRZYCISKI (View Cart + Checkout) — WC + Elementor
   ═══════════════════════════════════════════════════════════════════════════════ */
.mc-cart-instance .woocommerce-mini-cart__buttons,
.mc-cart-instance .elementor-menu-cart__footer-buttons {
    display:        flex;
    flex-direction: column;
    margin:         0;
}

.mc-cart-instance .woocommerce-mini-cart__buttons .button,
.mc-cart-instance .elementor-menu-cart__footer-buttons .elementor-button {
    display:         block;
    text-align:      center;
    text-decoration: none;
    border:          none;
    box-shadow:      none;
    outline:         none;
    transition:      background-color .2s ease, color .2s ease;
    flex:            1;
}

/* ═══════════════════════════════════════════════════════════════════════════════
   CENA NETTO W MINI-CART
   ═══════════════════════════════════════════════════════════════════════════════ */
.mc-cart-instance .mc-minicart-net {
    display:    block;
    margin-top: var(--mc-net-mt, 2px);
    color:      var(--mc-net-color, #888);
    line-height: 1.3;
}
.mc-cart-instance .mc-minicart-net .woocommerce-Price-amount { color: inherit !important; font-size: inherit !important; }
.mc-cart-instance .mc-minicart-net small { font-weight: 400; }

/* ═══════════════════════════════════════════════════════════════════════════════
   ROZWIJANA LISTA OPCJI KONFIGURATORA W MINI-CART
   ═══════════════════════════════════════════════════════════════════════════════ */
.mc-cart-instance .mc-minicart-opts { margin-top: 6px; width: 100%; }
.mc-cart-instance .mc-minicart-opts-toggle {
    background: none !important; border: none !important; cursor: pointer !important;
    padding: 2px 0 !important; margin: 0 !important;
    font-weight: 600 !important; color: var(--mc-opts-toggle-color, #888) !important;
    display: inline-flex !important; align-items: center !important; gap: 4px !important;
    box-shadow: none !important; text-shadow: none !important;
    font-family: inherit !important; line-height: 1.4 !important;
}
.mc-cart-instance .mc-minicart-opts-toggle:hover { color: var(--mc-opts-toggle-hover, #252525) !important; }
.mc-cart-instance .mc-minicart-opts-arrow {
    font-size: 8px; transition: transform 0.2s; display: inline-block;
}
.mc-cart-instance .mc-minicart-opts-toggle.mc-open .mc-minicart-opts-arrow {
    transform: rotate(180deg);
}
.mc-cart-instance .mc-minicart-opts-list {
    list-style: none; margin: 4px 0 0; padding: 0;
}
.mc-cart-instance .mc-minicart-opts-list li {
    display: flex; align-items: baseline; gap: 6px; padding: 2px 0;
    color: var(--mc-opts-text-color, #555);
    border-bottom: 1px solid var(--mc-opts-border, #f3f4f6);
    line-height: 1.4;
}
.mc-cart-instance .mc-minicart-opts-list li:last-child { border-bottom: none; }
.mc-minicart-opt-name { flex: 1; min-width: 0; }
.mc-minicart-opt-price { white-space: nowrap; font-weight: 700; color: var(--mc-opts-price-color, #16a34a); margin-left: auto; }
.mc-minicart-opt-price .woocommerce-Price-amount { color: inherit !important; font-size: inherit !important; }

/* ═══════════════════════════════════════════════════════════════════════════════
   SCROLL LOCK (body)
   ═══════════════════════════════════════════════════════════════════════════════ */
body.mc-cart-open { overflow: hidden; }

/* ═══════════════════════════════════════════════════════════════════════════════
   FOCUS — dostępność
   ═══════════════════════════════════════════════════════════════════════════════ */
.mc-cart-trigger:focus-visible,
.mc-cart-panel__close:focus-visible {
    outline:        2px solid var(--mc-btn2-bg, #252525);
    outline-offset: 2px;
    border-radius:  4px;
}

/* ═══════════════════════════════════════════════════════════════════════════════
   ANIMACJA IKONY — po dodaniu do koszyka
   ═══════════════════════════════════════════════════════════════════════════════ */
@keyframes mc-icon-bounce {
    0%   { transform: scale(1)    rotate(0deg); }
    15%  { transform: scale(1.25) rotate(-12deg); }
    30%  { transform: scale(1.25) rotate(12deg); }
    45%  { transform: scale(1.15) rotate(-8deg); }
    60%  { transform: scale(1.15) rotate(8deg); }
    75%  { transform: scale(1.05) rotate(-4deg); }
    90%  { transform: scale(1.05) rotate(4deg); }
    100% { transform: scale(1)    rotate(0deg); }
}

.mc-cart-icon.mc-icon-bounce {
    animation: mc-icon-bounce 0.6s cubic-bezier(.36,.07,.19,.97) both;
    display:   inline-block;
}
