/* =========================================================
   0. NAPRAWA OVERFLOW (Wymuszenie Sticky na WordPressie)
   ========================================================= */

.tw-product-meta {
    display: none !important;
}


.tw-premium-single, .tw-premium-single * { box-sizing: border-box !important; }

/* =========================================================
   1. GŁÓWNY GRID PRODUKTU 
   ========================================================= */
.tw-premium-single {
    max-width: 1300px !important;
    margin: 30px auto 40px auto !important; 
    padding: 0 20px !important;
    width: 100% !important;
}

.tw-single-top-grid {
    display: grid !important;
    grid-template-columns: 50% 50% !important;
    gap: 0 !important; 
    align-items: stretch !important; 
    margin-bottom: 20px !important; /* Mniejszy odstęp przed zakładkami */
    width: 100% !important;
}

/* =========================================================
   2. LEWA KOLUMNA & PREMIUM GALERIA Z MASKĄ I STRZAŁKAMI
   ========================================================= */
.tw-single-gallery-column {
    padding-right: 50px !important; 
    position: sticky !important; 
    top: 40px !important;
    align-self: start !important; 
    height: max-content !important; 
    z-index: 10 !important;
    width: 100% !important;
}

.tw-sticky-gallery-wrap .woocommerce-product-gallery {
    width: 100% !important; max-width: 100% !important; margin: 0 !important; float: none !important;
}

/* Wyróżnienie głównego zdjęcia */
.tw-sticky-gallery-wrap .woocommerce-product-gallery__wrapper {
    border-radius: 16px !important;
    background-color: #ffffff !important;
    border: 1px solid #E5E7EB !important;
    box-shadow: 0 8px 30px rgba(0,0,0,0.03) !important;
    overflow: hidden !important;
}

.tw-sticky-gallery-wrap .woocommerce-product-gallery__image img {
    border-radius: 16px !important; width: 100% !important; height: auto !important; display: block !important;
}

/* ================== KONTENER MINIATUREK ================== */
/* ================== KONTENER MINIATUREK ================== */
.tw-thumbs-slider-wrap {
    position: relative !important;
    width: 100% !important;
    margin-top: 16px !important;
}

/* KRYTYCZNE: Zwiększony padding (góra/dół 14px, lewo 14px), aby ramka miała miejsce na wyrysowanie się! */
.tw-sticky-gallery-wrap .flex-control-thumbs {
    display: flex !important; flex-wrap: nowrap !important; overflow-x: auto !important;
    gap: 12px !important; 
    padding: 14px 40px 14px 14px !important; /* <--- To rozwiązuje problem uciętej ramki */
    margin: 0 !important;
    scroll-behavior: smooth !important;
    -ms-overflow-style: none !important; scrollbar-width: none !important;
    
    -webkit-mask-image: linear-gradient(to right, black 80%, transparent 100%) !important;
    mask-image: linear-gradient(to right, black 80%, transparent 100%) !important;
}
.tw-sticky-gallery-wrap .flex-control-thumbs::-webkit-scrollbar { display: none !important; }

/* Kształt miniatury */
.tw-sticky-gallery-wrap .flex-control-thumbs li {
    flex: 0 0 80px !important; width: 80px !important; height: 80px !important;
    list-style: none !important; cursor: pointer !important; position: relative !important;
}

/* Zgaszone miniatury */
.tw-sticky-gallery-wrap .flex-control-thumbs img {
    width: 100% !important; height: 100% !important; object-fit: cover !important;
    border-radius: 12px !important; opacity: 0.55 !important;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
    box-sizing: border-box !important; margin: 0 !important;
}

/* AKTYWNA MINIATURA: Złota/Sezonowa podwójna ramka */
.tw-sticky-gallery-wrap .flex-control-thumbs img:hover,
.tw-sticky-gallery-wrap .flex-control-thumbs img.flex-active {
    opacity: 1 !important;
    transform: translateY(-2px) !important;
    /* Dzięki padding: 14px ten cień ma w końcu po czym się "rozlać" */
    box-shadow: 0 0 0 2px #ffffff, 0 0 0 4px var(--season-text, #111827) !important;
}

/* ================== STRZAŁKI NAWIGACYJNE (Bulletproof Data URI SVG) ================== */
.tw-gal-arrow {
    position: absolute !important; top: 50% !important; transform: translateY(-50%) !important;
    width: 36px !important; height: 36px !important; border-radius: 50% !important;
    background-color: #ffffff !important; border: 1px solid #E5E7EB !important; 
    display: block !important; cursor: pointer !important; z-index: 20 !important;
    box-shadow: 0 4px 12px rgba(0,0,0,0.1) !important; transition: all 0.2s ease !important;
    outline: none !important; color: transparent !important; font-size: 0 !important;
    
    /* Wspólne ustawienia dla obrazka tła (ikony) */
    background-repeat: no-repeat !important;
    background-position: center !important;
    background-size: 16px !important; /* Wielkość samej strzałki w kółku */
}

/* Strzałka Lewa (Ikona zakodowana w 100% odpornym formacie Data URI) */
.tw-gal-prev { 
    left: -8px !important; 
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23111827' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 18l-6-6 6-6'/%3E%3C/svg%3E") !important;
}

/* Strzałka Prawa */
.tw-gal-next { 
    right: 0px !important; 
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23111827' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 18l6-6-6-6'/%3E%3C/svg%3E") !important;
}

/* HOVER - Wypełnienie kolorem sezonowym i fizyczna zmiana strzałki na BIAŁĄ */
.tw-gal-arrow:hover {
    background-color: var(--season-text, #111827) !important; 
    border-color: transparent !important;
    transform: translateY(-50%) scale(1.1) !important;
}
.tw-gal-prev:hover {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 18l-6-6 6-6'/%3E%3C/svg%3E") !important;
}
.tw-gal-next:hover {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 18l6-6-6-6'/%3E%3C/svg%3E") !important;
}
/* =========================================================
   3. PRAWA KOLUMNA (Minimalizacja marginesów)
   ========================================================= */
.tw-single-summary-column {
    padding-left: 50px !important;
    border-left: 1px solid #E5E7EB !important;
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
}

.tw-product-title {
    font-size: 30px !important; font-weight: 700 !important; color: #111827 !important;
    margin: 0 0 10px 0 !important; line-height: 1.2 !important;
}

/* Opinie */
.tw-custom-reviews { display: flex !important; align-items: center !important; gap: 10px !important; margin-bottom: 8px !important; }
.tw-review-badge { background-color: var(--season-text, #111827) !important; color: #ffffff !important; font-size: 13px !important; font-weight: 700 !important; padding: 3px 6px !important; border-radius: 4px !important; display: flex !important; }
.tw-custom-reviews .star-rating { font-size: 12px !important; color: #f59e0b !important; width: 5.4em !important; margin: 0 !important; float: none !important; }
.tw-custom-reviews .star-rating::before { color: #e5e7eb !important; }
.tw-custom-reviews .star-rating span { color: #f59e0b !important; }
.tw-review-count { display: flex !important; align-items: center !important; gap: 4px !important; font-size: 13px !important; color: #6b7280 !important; font-weight: 500 !important; }

/* Cena (Margines w dół zredukowany) */
.tw-product-price .price { font-size: 24px !important; font-weight: 800 !important; color: #111827 !important; margin: 10px 0 10px 0 !important; }
.tw-product-price ins { text-decoration: none !important; }
.tw-product-price del { font-size: 16px !important; color: #9ca3af !important; margin-right: 6px !important; font-weight: 500 !important; }

/* Krótki opis (Mniejszy margines) */
.tw-product-excerpt { font-size: 14px !important; line-height: 1.6 !important; color: #4b5563 !important; margin-bottom: 16px !important; }

/* =========================================================
   4. KWADRATY INFORMACYJNE
   ========================================================= */
.tw-info-squares { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 10px !important; margin-bottom: 20px !important; width: 100% !important; }
.tw-info-square { background-color: var(--bg-info, rgb(249, 250, 251)) !important; border: 1px solid #e5e7eb !important; border-radius: 8px !important; padding: 10px 12px !important; display: flex !important; align-items: center !important; gap: 10px !important; }
.tw-info-square svg { color: var(--season-text, #111827) !important; flex-shrink: 0 !important; }
.tw-info-square span { font-size: 12px !important; font-weight: 600 !important; color: #374151 !important; line-height: 1.2 !important; }

/* =========================================================
   5. BOXY (Dostosuj + Podsumowanie z równym wierszem 20/80)
   ========================================================= */
.tw-purchase-flow { width: 100% !important; }
.tw-purchase-flow form.cart { display: flex !important; flex-direction: column !important; margin: 0 !important; padding: 0 !important; border: none !important; background: transparent !important; width: 100% !important; }

/* BOX 1: Dostosuj */
.wpcpo-wrapper { background-color: var(--bg-info, rgb(249, 250, 251)) !important; border: 1px solid #E2E8F0 !important; border-radius: 12px !important; padding: 20px !important; width: 100% !important; margin-bottom: 16px !important; }
.tw-wpc-title { font-size: 16px !important; font-weight: 700 !important; color: #0f172a !important; margin-bottom: 14px !important; padding-bottom: 10px !important; border-bottom: 1px solid #e2e8f0 !important; }

/* BOX 2: Podsumowanie (zbudowane przez JS) */
.tw-summary-box { background-color: #ffffff !important; border: 1px solid #E2E8F0 !important; border-radius: 12px !important; padding: 20px !important; width: 100% !important; box-shadow: 0 4px 16px rgba(0, 0, 0, 0.02) !important; }
.tw-summary-title { font-size: 16px !important; font-weight: 700 !important; color: #0f172a !important; margin-bottom: 14px !important; padding-bottom: 10px !important; border-bottom: 1px solid #e2e8f0 !important; }
.tw-cloned-totals { color: #0f172a !important; margin-bottom: 16px !important; }

.wpcpo-clear { display: none !important }
#product-456 > div.tw-single-top-grid > div.tw-single-summary-column > div.tw-purchase-flow > form > div.tw-summary-box > div.wpcpo-total.tw-cloned-totals > ul { padding: 0 !important }

/* Wiersz akcji trzymający ilość i przycisk */
.tw-action-row {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

/* Kontener ilości – ma stałą, odpowiednią szerokość i wysokość 48px */
.tw-action-row .quantity {
    display: inline-flex !important;
    align-items: center !important;
    height: 48px !important;
    flex: 0 0 auto !important; /* Zapobiega kurczeniu się lub rozciąganiu pola ilości */
    box-sizing: border-box !important;
    padding: 4px !important;
    background: #ffffff !important;
    border: 1px solid #E2E8F0 !important;
    border-radius: 8px !important;
}

/* Wewnętrzne pole input w ilości */
.tw-action-row .quantity input.qty {
    height: 100% !important;
    line-height: normal !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    border: none !important;
    outline: none !important;
    background: transparent !important;
    text-align: center !important;
    width: 40px !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Przyciski Plus i Minus w ilości */
.tw-action-row .quantity .qty-btn {
    height: 38px !important;
    width: 38px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 6px !important;
    background: var(--bg-info, rgb(249, 250, 251)) !important;
    border: none !important;
    color: #374151 !important;
    font-size: 16px !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    transition: all 0.2s ease !important;
    padding: 0 !important;
    margin: 0 !important;
}

.tw-action-row .quantity .qty-btn:hover {
    background-color: var(--season-text, #af9072) !important;
    color: #ffffff !important;
}

/* KLUCZOWE: Przycisk "Dodaj do koszyka" wypełnia całą pozostałą szerokość */
.tw-action-row .single_add_to_cart_button {
    flex: 1 1 auto !important; /* Sprawia, że przycisk zajmuje całą wolną przestrzeń w rzędzie */
    width: auto !important;
    max-width: none !important;
    height: 48px !important;
    box-sizing: border-box !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 0 !important;
}

/* =========================================================
   6. ZAKŁADKI DASHBOARD 
   ========================================================= */
.tw-dashboard-section {
    display: grid !important;
    grid-template-columns: 260px 1fr !important; 
    gap: 40px !important;
    width: 100% !important;
    margin: 0 !important;
    border-top: 1px solid #e5e7eb !important;
    padding-top: 40px !important;
}

.tw-dashboard-sidebar {
    display: flex !important; flex-direction: column !important; gap: 6px !important;
    position: sticky !important; top: 40px !important; align-self: start !important; /* Prawdziwe sticky! */
}

.tw-dash-tab-btn {
    display: flex !important; align-items: center !important; gap: 12px !important;
    padding: 12px 16px !important; border-radius: 8px !important; border: none !important;
    background: transparent !important; color: #4b5563 !important; font-size: 15px !important;
    font-weight: 600 !important; cursor: pointer !important; text-align: left !important; transition: all 0.2s ease !important;
}
.tw-dash-tab-btn:hover { background-color: var(--bg-info, rgb(249, 250, 251)) !important; color: #111827 !important; }
.tw-dash-icon { display: flex !important; align-items: center !important; justify-content: center !important; color: #9ca3af !important; }

.tw-dash-tab-btn.tw-active {
    background-color: color-mix(in srgb, var(--season-text) 10%, transparent) !important;
    color: var(--season-text, #111827) !important;
}
.tw-dash-tab-btn.tw-active .tw-dash-icon { color: var(--season-text, #111827) !important; }

.tw-dash-panel { display: none !important; width: 100% !important; }
.tw-dash-panel.tw-active { display: block !important; animation: fade-in 0.3s ease-in-out !important; }
@keyframes fade-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }

.tw-dash-panel-title { font-size: 22px !important; font-weight: 700 !important; color: #111827 !important; margin: 0 0 20px 0 !important; padding-bottom: 12px !important; border-bottom: 1px solid #e5e7eb !important; }
.tw-dash-panel-inner { font-size: 15px !important; line-height: 1.7 !important; color: #374151 !important; width: 100% !important; }
.tw-dash-panel-inner h2 { display: none !important; }

/* Domyślnie ukrywamy przyciski akordeonu na komputerze */
.tw-mobile-accordion-btn {
    display: none !important;
}

/* =========================================================
   7. IDEALNY UKŁAD MOBILNY (KWADRATOWA GALERIA + WIDOCZNY TYTUŁ)
   ========================================================= */
@media (max-width: 768px) {
    .tw-premium-single { 
        padding: 0 !important; 
        margin: 0 !important; 
        width: 100% !important; 
        max-width: 100% !important; 
        overflow: visible !important; 
    }
    
    .tw-single-top-grid { 
        display: flex !important; 
        flex-direction: column !important; 
        width: 100% !important; 
        gap: 35px !important;
        position: relative !important; 
    }
    
    /* GALERIA: W pełni widoczna na górze */
    .tw-single-gallery-column { 
        padding: 0 !important; 
        position: relative !important; 
        width: 100% !important; 
        background: #ffffff !important;
        order: 1 !important;
        margin-bottom: 20px !important;
        padding: 0 10px !important;
    }
    
    .tw-sticky-gallery-wrap {
        width: 100% !important;
        touch-action: pan-y pinch-zoom !important;
    }

    /* Główne zdjęcie: Idealny kwadrat (aspect-ratio 1/1) taki sam jak na komputerze */
    .tw-sticky-gallery-wrap .woocommerce-product-gallery__image img { 
        width: 100% !important;
        height: auto !important;
        aspect-ratio: 1 / 1 !important; /* Wymusza dokładnie kwadratowy kształt jak na PC */
        object-fit: cover !important; 
        object-position: center center !important;
        border-radius: 12px !important; 
        border: none !important;
        box-shadow: 0 4px 15px rgba(0,0,0,0.04) !important;
    }

    /* Miniaturki pod zdjęciem */
    .tw-sticky-gallery-wrap .flex-control-thumbs {
        display: flex !important;
        gap: 8px !important;
        padding: 12px 0 0 0 !important;
        list-style: none !important;
    }

    .tw-sticky-gallery-wrap .flex-control-thumbs li {
        width: 55px !important;
        border-radius: 8px !important;
        overflow: hidden !important;
        border: 1px solid #e5e7eb !important;
    }

    .tw-sticky-gallery-wrap .flex-control-thumbs img {
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
        opacity: 0.6;
        transition: opacity 0.2s ease;
    }

    .tw-sticky-gallery-wrap .flex-control-thumbs img.flex-active {
        opacity: 1 !important;
        border-color: var(--season-text, #111827) !important;
    }
    
    /* SEKCJA TEKSTOWA: Zaczyna się stabilnie pod galerią, przywrócony tytuł */
    .tw-single-summary-column {
        padding: 0 15px 24px 15px !important; 
        border-left: none !important; 
        position: relative !important; 
        order: 2 !important; 
        background: #ffffff !important;
        margin-top: 0 !important; 
        box-shadow: none !important; 
        width: 100% !important;
    }

    /* Gwarancja widoczności i odpowiedniej wielkości tytułu */
    .tw-product-title { 
        display: block !important;
        line-height: 1.3 !important;
        margin: 0 0 12px 0 !important;
        color: #111827 !important;
    }

    .tw-info-squares { grid-template-columns: 1fr !important; gap: 8px !important; margin-bottom: 20px !important; }
    .wpcpo-wrapper, .tw-summary-box { padding: 16px !important; width: 100% !important; }
    .tw-action-row { flex-direction: row !important; gap: 10px !important; }
    .tw-action-row .quantity { flex: 0 0 30% !important; } 

    /* =============== DASHBOARD MOBILE: AKORDEON =============== */
    .tw-dashboard-section { display: flex !important; padding: 0 10px !important; flex-direction: column !important; width: 100% !important; order: 3 !important; }
    .tw-dashboard-sidebar { display: none !important; }
    .tw-dashboard-content { display: flex !important; flex-direction: column !important; width: 100% !important; }

    .tw-mobile-accordion-btn {
        display: flex !important;
        justify-content: space-between !important;
        align-items: center !important;
        width: 100% !important;
        padding: 16px 20px !important;
        background: #ffffff !important;
        border: 1px solid #e5e7eb !important;
        border-radius: 12px !important;
        margin-bottom: 12px !important;
        font-size: 15px !important;
        font-weight: 700 !important;
        color: #111827 !important;
        cursor: pointer !important;
        transition: all 0.2s ease !important;
    }
    
    .tw-mobile-accordion-btn.tw-active {
        border-bottom-color: transparent !important;
        border-radius: 12px 12px 0 0 !important;
        margin-bottom: 0 !important;
        background-color: var(--bg-info, rgb(249, 250, 251)) !important;
    }

    .tw-mobile-acc-left { display: flex !important; align-items: center !important; gap: 12px !important; }
    
    .tw-acc-chevron svg { transition: transform 0.3s ease !important; color: #9ca3af !important; }
    .tw-mobile-accordion-btn.tw-active .tw-acc-chevron svg { transform: rotate(180deg) !important; color: var(--season-text, #111827) !important; }
    .tw-mobile-accordion-btn.tw-active .tw-dash-icon { color: var(--season-text, #111827) !important; }

    .tw-dash-panel { display: none !important; }
    .tw-dash-panel.tw-active {
        display: block !important;
        border: 1px solid #e5e7eb !important;
        border-top: none !important;
        border-radius: 0 0 12px 12px !important;
        background: #ffffff !important;
        margin-bottom: 16px !important;
        padding: 20px !important;
    }
    .tw-dash-panel-title { display: none !important; }
}
/* =========================================================
   10. STATUS DOSTĘPNOŚCI (Premium Badges)
   ========================================================= */

/* Główny kontener statusu */
.custom-delivery-info {
    display: inline-flex !important;
    align-items: center !important;
    gap: 10px !important;
    padding: 10px 12px !important;
    border-radius: 8px !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    width: 100% !important; 
    box-sizing: border-box !important;
    line-height: 1.4 !important;
}

/* 1. NA ZAMÓWIENIE (Ciepły, bursztynowy kolor) */
.custom-delivery-info {
    background-color: var(--bg-info, rgb(249, 250, 251)) !important;
    color: rgb(55, 65, 81) !important;
    border: 1px solid #e5e7eb !important;
}

/* =========================================================
   BADGE PROMOCJI NA ZDJĘCIU PRODUKTU
   ========================================================= */
.tw-sticky-gallery-wrap .woocommerce-product-gallery {
    position: relative !important;
}

.tw-sticky-gallery-wrap .onsale {
    position: absolute !important;
    top: 15px !important;
    left: 15px !important;
    z-index: 10 !important;
    background-color: var(--season-text, #111827) !important;
    color: #ffffff !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 1px !important;
    padding: 6px 12px !important;
    border-radius: 6px !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1) !important;
}

/* =========================================================
   STYLIZACJA CENY PROMOCYJNEJ (Stara vs Nowa)
   ========================================================= */
.tw-product-price .price {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    font-size: 24px !important;
    font-weight: 800 !important;
    color: #111827 !important;
    margin: 10px 0 16px 0 !important;
}

/* Stara, przekreślona cena */
.tw-product-price .price del {
    font-size: 16px !important;
    font-weight: 500 !important;
    color: #9ca3af !important;
    text-decoration: line-through !important;
}

/* Nowa, promocyjna cena */
.tw-product-price .price ins {
    background: transparent !important;
    color: #ef4444 !important; /* Wyrazisty, elegancki czerwony akcent promocyjny */
    text-decoration: none !important;
    font-size: 24px !important;
    font-weight: 800 !important;
}

/* =========================================================
   UJEDNOLICONY STYL DLA WSZYSTKICH KOMUNIKATÓW O STANIE I DOSTĘPNOŚCI
   ========================================================= */

/* Wspólny styl dla własnego komunikatu oraz standardowego badge'a WooCommerce */
.custom-delivery-info,
p.stock {
    display: flex !important;
    flex-direction: column !important;
    gap: 6px !important;
    padding: 12px 14px !important;
    border-radius: 8px !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    width: 100% !important; 
    box-sizing: border-box !important;
    line-height: 1.4 !important;
    background-color: var(--bg-info, rgb(249, 250, 251)) !important;
    color: #374151 !important;
    border: 1px solid #e5e7eb !important;
    margin: 10px 0 15px 0 !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.02) !important;
}

/* Neutralizacja domyślnych marginesów WordPressa wewnątrz komunikatów */
.custom-delivery-info p, p.stock p {
    margin: 0 !important;
    padding: 0 !important;
    font-size: inherit !important;
    color: inherit !important;
    line-height: inherit !important;
}

/* Wyróżnienie dla stanu "Dostępny na zamówienie" (backorder) */
p.stock.available-on-backorder {
    background-color: color-mix(in srgb, var(--season-text, #af9072) 8%, transparent) !important;
    border-color: var(--season-text, #af9072) !important;
    color: var(--season-text, #af9072) !important;
}

/* Wariant dla produktów w magazynie (in-stock) – opcjonalnie stonowany */
p.stock.in-stock {
    background-color: #f0fdf4 !important;
    border-color: #bbf7d0 !important;
    color: #166534 !important;
}

/* =========================================================
   NOWOCZESNE I WYRAŹNE BADGE LIMITÓW ILOŚCIOWYCH
   ========================================================= */
.tw-quantity-rules-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 0 0 15px 0 !important;
}

.tw-qty-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background-color: var(--bg-info, rgb(249, 250, 251));
    border: 1px solid #cbd5e1; /* Wyraźniejsza, elegancka ramka */
    color: #334155;
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 12.5px;
    font-weight: 500;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.02);
}

/* Styl wyróżnionej wartości (liczby sztuk) */
.tw-qty-badge strong {
    color: #0f172a;
    font-weight: 700;
    background: #e2e8f0;
    padding: 1px 6px;
    border-radius: 4px;
    font-size: 12px;
}

/* Dodanie delikatnego akcentu kolorystycznego (np. sezonowego) na najazd lub jako kropka */
.tw-qty-badge::before {
    content: '';
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background-color: var(--season-text, #af9072);
}

.tw-sticky-gallery-wrap .woocommerce-product-gallery {
    position: relative;
}

/* Wymuszenie poprawnej widoczności tylko aktywnego slajdu WooCommerce */
.tw-sticky-gallery-wrap .flex-viewport .woocommerce-product-gallery__image {
    display: none;
}
.tw-sticky-gallery-wrap .flex-viewport .woocommerce-product-gallery__image.flex-active-slide {
    display: block !important;
}

.tw-sticky-gallery-wrap .flex-viewport,
.tw-sticky-gallery-wrap .woocommerce-product-gallery__wrapper,
.tw-sticky-gallery-wrap .woocommerce-product-gallery__image {
    width: 100% !important;
    max-width: 100% !important;
    transform: none !important; /* Blokuje inline'owe przesunięcia FlexSlidera */
}

/* 1. Blokujemy szerokość całego wrapper i viewportu flexslidera */
.tw-sticky-gallery-wrap .flex-viewport,
.tw-sticky-gallery-wrap .woocommerce-product-gallery__wrapper {
    width: 100% !important;
    max-width: 100% !important;
    transform: none !important;
    display: block !important;
}

/* 2. Każdy kontener slajdu ma mieć pełną szerokość i zero floatów */
.tw-sticky-gallery-wrap .woocommerce-product-gallery__image {
    width: 100% !important;
    max-width: 100% !important;
    float: none !important;
    margin-right: 0 !important;
    display: none !important;
}

/* 3. Aktywny slajd zawsze widoczny */
.tw-sticky-gallery-wrap .woocommerce-product-gallery__image.flex-active-slide {
    display: block !important;
    width: 100% !important;
}

/* 4. KLUCZOWE: Zmuszamy sam obrazek (<img>), żeby nie rozszerzał się do dziwnych rozmiarów i trzymał proporcji */
.tw-sticky-gallery-wrap .woocommerce-product-gallery__image img {
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    object-fit: contain;
}


/* ========================================================================== 
   PEWNA NAPRAWA DLA POJEDYNCZEGO ZDJĘCIA W PRODUKCIE
   ========================================================================== */

/* Jeśli galeria nie ma miniaturek (flex-control-thumbs nie istnieje lub jest pusty), traktujemy ją jako pojedyncze zdjęcie */
.woocommerce-product-gallery:not(:has(.flex-control-thumbs)) .woocommerce-product-gallery__wrapper {
    display: block !important;
    transform: none !important;
}

.woocommerce-product-gallery:not(:has(.flex-control-thumbs)) .woocommerce-product-gallery__image {
    display: block !important;
    width: 100% !important;
    position: relative !important;
}

.woocommerce-product-gallery:not(:has(.flex-control-thumbs)) .woocommerce-product-gallery__image img.wp-post-image {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    border-radius: 12px;
}

/* Ukrywamy trigger lupy, jeśli produkt ma tylko 1 zdjęcie i przeszkadza */
.woocommerce-product-gallery:not(:has(.flex-control-thumbs)) .woocommerce-product-gallery__trigger {
    display: none !important;
}