/* EduPassion – Lista życzeń v1.5.1. Bez zewnętrznych fontów i bibliotek. */
.epwl-table-form .epwl-table input[type="checkbox"] { width:18px; height:18px; cursor:pointer; }
.epwl-table-form .epwl-table td:first-child { width:90px; }
.epwl-table-form .epwl-actions { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin-top:16px; }
.epwl-table-form .epwl-actions .button { margin:0; }

/* Astra: ikona wewnątrz .astra-shop-thumbnail-wrap, obok zdjęcia (nie w linku). */
.woocommerce ul.products li.product,
.woocommerce .astra-shop-thumbnail-wrap { position:relative; }
.woocommerce ul.products li.product .astra-shop-thumbnail-wrap .epwl-overlay { z-index:12; }

/* Standardowy WooCommerce: nakładka jest pozycjonowana względem kafelka produktu. */
.woocommerce ul.products li.product > .epwl-overlay { z-index:12; }

/* Pojedynczy produkt: nakładka jest BEZPOŚREDNIM dzieckiem całej galerii,
   a nie przewijanej ramki .flex-viewport (która obcina zawartość). */
.woocommerce div.product .woocommerce-product-gallery { position:relative; }
.woocommerce div.product .woocommerce-product-gallery > .epwl-overlay-single { z-index:120; }

/* Przy wyłączonym JavaScript formularz działa pod galerią (fallback).
   Gdy skrypt przeniesie go do galerii, wraca do pozycji absolute. */
.woocommerce div.product .epwl-overlay-single:not(.epwl-gallery-placed) {
    position:static; display:inline-block; vertical-align:top; margin:8px 0;
}

/* Serce jest zawsze w prawym górnym rogu, bez rozwijającego się tekstu. */
.woocommerce .epwl-add-wrap.epwl-overlay {
    position:absolute; top:12px; right:12px; left:auto; bottom:auto;
    display:block; margin:0; padding:0; width:44px; height:44px;
    max-width:none; border:0; background:transparent; line-height:normal;
}
.woocommerce .epwl-overlay .epwl-heart {
    box-sizing:border-box; appearance:none; cursor:pointer; font-family:inherit;
    display:flex; align-items:center; justify-content:center;
    width:44px; height:44px; min-width:44px; min-height:44px;
    padding:0; margin:0; border:1px solid rgba(0,0,0,.16); border-radius:50%;
    color:#454545; background:rgba(255,255,255,.97);
    text-decoration:none; line-height:1; box-shadow:0 2px 8px rgba(0,0,0,.12);
    transition:color .15s ease, background-color .15s ease, border-color .15s ease;
}
.woocommerce .epwl-overlay .epwl-heart:hover,
.woocommerce .epwl-overlay .epwl-heart:focus-visible {
    background:#fff2f6; color:#a52b56; border-color:#d9a2b4;
    text-decoration:none;
}
.woocommerce .epwl-overlay .epwl-heart:focus-visible { outline:2px solid #a52b56; outline-offset:2px; }
.woocommerce .epwl-overlay .epwl-heart .epwl-heart-icon {
    display:block; flex:none; width:22px; height:22px; fill:transparent;
    transition:fill .15s ease, color .15s ease;
}
.woocommerce .epwl-overlay .epwl-heart[aria-pressed="true"] { color:#bd315c; border-color:#edb9ca; }
.woocommerce .epwl-overlay .epwl-heart[aria-pressed="true"] .epwl-heart-icon { fill:currentColor; }
.woocommerce .epwl-overlay .epwl-toggle-button:disabled { opacity:.6; cursor:wait; }

/* Ukryte komunikaty dla czytników ekranu, ale błędy połączenia pokaż klientowi. */
.epwl-overlay .epwl-status:not(.epwl-status-error) {
    position:absolute; width:1px; height:1px; padding:0; margin:-1px;
    overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}
.woocommerce .epwl-overlay .epwl-status-error {
    display:block; position:absolute; top:calc(100% + 6px); right:0; z-index:13;
    width:210px; max-width:calc(100vw - 30px); padding:7px 9px;
    background:#fff; color:#a91b1b; border:1px solid #e2b2b2;
    border-radius:6px; box-shadow:0 3px 12px rgba(0,0,0,.12);
    font-size:12px; font-weight:500; line-height:1.4;
}

/* Domyślny WooCommerce wyświetla lupę również w prawym górnym rogu galerii.
   Przesuwamy ją w dół, aby nie nachodziła na serduszko. */
.woocommerce div.product .woocommerce-product-gallery .woocommerce-product-gallery__trigger {
    top:64px; right:12px;
}

/* Astra Header Builder: bez zmian — osobna ikona obok koszyka. */
.ast-header-woo-cart { display:inline-flex; align-items:center; gap:12px; }
.ast-header-woo-cart .epwl-header-heart,
.epwl-header-heart {
    display:inline-flex; flex:none; align-items:center; justify-content:center;
    width:36px; height:36px; box-sizing:border-box; text-decoration:none;
    background:transparent; border:0; color:inherit; border-radius:50%;
    transition:background-color .18s ease, color .18s ease;
}
.epwl-header-heart .epwl-heart-icon { width:23px; height:23px; fill:transparent; }
.epwl-header-heart:hover,
.epwl-header-heart:focus-visible { background:rgba(100,100,100,.08); color:#bd315c; }
.epwl-header-heart:focus-visible { outline:2px solid currentColor; outline-offset:2px; }
@media (max-width:544px) {
    .ast-header-woo-cart { gap:4px; }
    .epwl-header-heart { width:32px; height:36px; }
    .epwl-header-heart .epwl-heart-icon { width:21px; height:21px; }
}
@media (prefers-reduced-motion:reduce) {
    .woocommerce .epwl-overlay .epwl-heart,
    .woocommerce .epwl-overlay .epwl-heart .epwl-heart-icon,
    .epwl-header-heart { transition:none; }
}
