





.cart-main-wrapper {
    display: flex;
    gap: 40px;
    width: 100%;
    max-width: 1200px;
    margin: 20px auto;
    align-items: flex-start;
    padding: 0 15px;
    background: #fff;
    border-radius: 12px;
    box-shadow: none;
    border: none;
}
.cart-form-section {
    flex: 1 1 66%;
    min-width: 420px;
    background: #fff;
    padding: 0;
    border-radius: 12px;
    box-shadow: none;
    border: none;
    margin-top: 15px;
}
.cart-products-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    padding: 0 0 7px 0;
    font-size: 14px;
    font-weight: 700;
    color: #232323;
    letter-spacing: 0.02em;
    background: transparent;
    text-transform: uppercase;
    margin-bottom: 0;
}
.cart-products-header .header-product {
    flex: 1 1 70%;
    min-width: 120px;
    text-align: left;
}
.cart-products-header .header-total {
    flex: 0 0 80px;
    text-align: right;
    min-width: 60px;
    color: #22249a;
    font-weight: 700;
}
.cart-products-header-line {
    width: 100%;
    height: 2px;
    background: #f4f4f4;
    margin-bottom: 8px;
    margin-top: 0;
    border-radius: 1.5px;
}
.cart-products-ul {
    width: 100%;
    padding: 0;
    margin: 0;
    list-style: none;
    border-radius: 0;
    background: #fff;
    box-shadow: none;
}
.cart-product-item {
    display: flex;
    align-items: flex-start;
    border-bottom: 2px solid #f4f4f4;
    padding: 28px 0 14px 0;
    gap: 20px;
}
.cart-product-thumb {
    flex: 0 0 90px;
    margin-right: 24px;
}
.cart-product-thumb img {
    width: 80px;
    height: 80px;
    border-radius: 12px;
    object-fit: cover;
    background: #f8f8f8;
}
.cart-product-details-row {
    flex: 1 1 100%;
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 0;
}
/* GÓRA: Tytuł produktu (po lewej), Subtotal (po prawej) */
.cart-product-row-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 8px;
}
.cart-product-title {
    font-weight: 400;
    font-size: 16px;
    color: #18184b;
    text-decoration: none !important;
    line-height: 1.1;
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin-right: 10px;
}
.cart-product-title a {
    font-weight: 400;
    font-size: 16px;
    color: #18184b;
    text-decoration: none;
}
.cart-product-title a:hover { color: #0f174e; text-decoration: underline; }
.cart-product-meta {
    font-size: 12.5px;
    color: #888;
}
.cart-product-subtotal {
    font-size: 17px;
    color: #232323;
    font-weight: 700;
    min-width: 90px;
    text-align: right;
    margin-left: auto;
    white-space: nowrap;
    display: flex;
    align-items: center;
}
/* DÓŁ: Ilość, x cena (po lewej), Usuń (po prawej) */
.cart-product-row-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}
.cart-product-qty-x-price {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 15px;
}
.product-qty-label {
    color: #787878;
    font-weight: 400;
    font-size: 14px;
    margin-right: 4px;
}
.product-qty-box {
    margin: 0 6px 0 0;
    display: inline-block;
}
.product-x-cena {
    color: #232323;
    font-size: 15px;
    font-weight: 500;
    margin-left: 18px;
    white-space: nowrap;
}
.cart-product-remove {
    font-size: 19px;
    color: #ba2a2a;
    cursor: pointer;
    display: block;
    margin-left: 24px;
}
.cart-product-remove a.remove {
    color: #ba2a2a;
    text-decoration: none;
    font-size: 22px;
}
.cart-product-remove a.remove:hover {
    color: #e13b3b;
}
/* Quantity input */
.cart-product-quantity input[type="number"],
.cart-product-quantity input[type="text"] {
    width: 48px;
    height: 34px;
    font-size: 16px;
    border-radius: 7px;
    border: 1px solid #dadada;
    background: #fafafc;
    text-align: center;
    margin: 0 5px;
    padding: 4px 0;
}
/* Kupon i buttony */
.cart-actions-row {
    display: flex;
    gap: 16px;
    align-items: center;
    margin: 18px 0 12px 0;
    padding: 0;
    flex-wrap: wrap;
}
.coupon {
    display: flex;
    gap: 8px;
    align-items: center;
}
.coupon input[type="text"] {
    padding: 10px 12px;
    font-size: 15px;
    border-radius: 6px;
    border: 1px solid #dadada;
    background: #fafafc;
    margin: 0;
}
.coupon button,
.cart-actions-row button {
    padding: 10px 20px;
    font-size: 15px;
    background: #ececf1;
    color: #232323;
    border-radius: 7px;
    border: none;
    font-weight: 700;
    cursor: pointer;
    transition: background 0.18s;
}
.coupon button:hover,
.cart-actions-row button:hover {
    background: #dddde7;
    color: #18184b;
}

/* Przycisk kalkulatora Alior Bank w sekcji cart-actions */
.cart-actions-row #aliorKalkulator {
    display: block;
    margin-left: auto;
}

.cart-actions-row #aliorKalkulator img {
    display: block;
    max-width: 180px;
    height: auto;
    transition: transform 0.2s;
}

.cart-actions-row #aliorKalkulator img:hover {
    transform: scale(1.05);
}

/* Prawa kolumna (podsumowanie) */
.cart-summary-section {
    flex: 1 1 34%;
    min-width: 310px;
    max-width: 380px;
    background: #fcfcfc;
    padding: 17px 24px 28px 24px;
    border-radius: 12px;
    box-shadow: none;
    margin-left: auto;
    position: sticky;
    top: 40px;
    border: 1px solid #f4f4f4;
}
.cart-summary-section .cart-collaterals {
    width: 100%;
}
.woocommerce .cart-collaterals .cart_totals,
.woocommerce-page .cart-collaterals .cart_totals {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    background: transparent;
    border: none;
    padding: 0;
    box-shadow: none;
}
.cart-summary-section h2,
.woocommerce .cart-collaterals .cart_totals h2 {
    font-size: 14px;
    font-weight: 600;
    color: #18184b;
    margin-bottom: 15px;
    margin-top: 0;
    letter-spacing: 0.01em;
    text-transform: uppercase;
    border-bottom: 2px solid #ededed;
    padding-bottom: 10px;
}
.woocommerce .cart-collaterals .cart_totals table,
.woocommerce .cart-collaterals .cart_totals tr,
.woocommerce .cart-collaterals .cart_totals td,
.woocommerce .cart-collaterals .cart_totals th {
    border: none;
    background: transparent;
    font-size: 15px;
    color: #232323;
    padding: 8px 0;
    line-height: 1.4;
    box-shadow: none;
}
.woocommerce .cart-collaterals .cart_totals th {
    font-weight: 500;
    color: #22249a;
    width: 44%;
}
.woocommerce .cart-collaterals .cart_totals tr.order-total th,
.woocommerce .cart-collaterals .cart_totals tr.order-total td {
    font-weight: bold;
    font-size: 20px;
    color: #18184b;
    padding-top: 14px;
}
.woocommerce .cart-collaterals .cart_totals tr.order-total th {
    text-transform: uppercase;
}
.woocommerce .cart-collaterals .cart_totals td {
    text-align: right;
}
.woocommerce .cart-collaterals .cart_totals .wc-proceed-to-checkout {
    margin: 22px 0 0 0;
    padding: 0;
    text-align: center;
}
.woocommerce .cart-collaterals .cart_totals .wc-proceed-to-checkout a.checkout-button {
    width: 100%;
    display: block;
    padding: 14px 0;
    background: #22249a;
    color: #fff !important;
    border-radius: 7px;
    font-size: 18px;
    font-weight: 700;
    border: none;
    box-shadow: none;
    text-align: center;
    transition: background 0.17s;
    margin-top: 6px;
    letter-spacing: 0.01em;
}
.woocommerce .cart-collaterals .cart_totals .wc-proceed-to-checkout a.checkout-button:hover {
    background: #18184b;
}
/* Cross-sells (Zobacz inne równie interesujące) - pełna szerokość pod koszykiem */
.cart-cross-sells-wrapper {
    width: 100%;
    max-width: 1200px;
    margin: 40px auto 20px auto;
    padding: 0 15px;
    box-sizing: border-box;
}

.cart-cross-sells-wrapper .cross-sells {
    width: 100%;
}

.cart-cross-sells-wrapper h2 {
    font-size: 22px;
    font-weight: 700;
    color: #18184b;
    margin-bottom: 20px;
    text-align: left;
}

/* Cross-sell products grid - 4 kolumny */
.cart-cross-sells-wrapper ul.products,
.cart-cross-sells-wrapper .woocommerce ul.products,
.cart-cross-sells-wrapper .cross-sells ul.products {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 20px !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
    width: 100% !important;
}

/* 3 kolumny na tablet */
@media (max-width: 1024px) {
    .cart-cross-sells-wrapper ul.products,
    .cart-cross-sells-wrapper .woocommerce ul.products,
    .cart-cross-sells-wrapper .cross-sells ul.products {
        grid-template-columns: repeat(3, 1fr) !important;
        gap: 16px !important;
    }
}

/* 2 kolumny na małych tabletach */
@media (max-width: 768px) {
    .cart-cross-sells-wrapper ul.products,
    .cart-cross-sells-wrapper .woocommerce ul.products,
    .cart-cross-sells-wrapper .cross-sells ul.products {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 16px !important;
    }

    .cart-cross-sells-wrapper {
        margin: 30px auto 15px auto;
        padding: 0 10px;
    }
}

/* 1 kolumna na mobile */
@media (max-width: 480px) {
    .cart-cross-sells-wrapper ul.products,
    .cart-cross-sells-wrapper .woocommerce ul.products,
    .cart-cross-sells-wrapper .cross-sells ul.products {
        grid-template-columns: 1fr !important;
        gap: 16px !important;
    }
}
@media (max-width: 900px) {
    .cart-main-wrapper { flex-direction: column; gap: 18px; padding: 0 1vw; }
    .cart-form-section, .cart-summary-section, .cart-products-list { max-width: 100%; min-width: 0; border-radius: 10px; margin: 0 auto; }
    .cart-summary-section { position: static; margin-left: 0; }
}


.continue-shopping-wrap {
    text-align: center;
    padding-top: 10px;
}

.woocommerce-message {
    border-top-color: #293391;
}

/* === STYLE DLA LISTY PRODUKTÓW WOOCOMMERCE - CSS GRID === */
.woocommerce ul.products,
.woocommerce-page ul.products,
ul.products {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 20px !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
    box-sizing: border-box;
    width: 100%;
}

.woocommerce ul.products::before,
.woocommerce-page ul.products::before,
ul.products::before {
    display: none !important;
}

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product,
ul.products li.product {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    float: none !important;
    box-sizing: border-box;
    position: relative;
    background: #fff;
    border: 1px solid #ececec;
    border-radius: 8px;
    overflow: visible;
    transition: box-shadow 0.2s, transform 0.2s;
}

.woocommerce ul.products li.product:hover,
.woocommerce-page ul.products li.product:hover,
ul.products li.product:hover {
    box-shadow: 0 4px 16px rgba(0,0,0,0.1);
    transform: translateY(-2px);
}

.woocommerce ul.products li.product a,
ul.products li.product a {
    display: block;
    text-decoration: none;
    color: inherit;
}

.woocommerce ul.products li.product a.woocommerce-LoopProduct-link,
ul.products li.product a.woocommerce-LoopProduct-link {
    overflow: hidden;
    border-radius: 8px 8px 0 0;
    position: relative;
}

.woocommerce ul.products li.product img,
ul.products li.product img {
    width: 100%;
    height: auto;
    display: block;
    aspect-ratio: 4/3;
    object-fit: cover;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product h2,
ul.products li.product .woocommerce-loop-product__title,
ul.products li.product h2 {
    font-size: 16px;
    font-weight: 400;
    margin: 10px 12px;
    line-height: 1.3;
    color: #333;
    text-align: center;
}

.woocommerce ul.products li.product .price,
ul.products li.product .price {
    font-size: 18px;
    font-weight: 600;
    color: #000;
    margin: 8px 12px 12px 12px;
    display: block;
    text-align: center;
}

.woocommerce ul.products li.product .price .amount,
ul.products li.product .price .amount {
    font-size: inherit;
    color: inherit;
}

/* === BADGE PROMOCJA - ZUNIFIKOWANY DLA WSZYSTKICH PRODUKTÓW === */
.woocommerce ul.products li.product .onsale,
ul.products li.product .onsale {
    position: absolute;
    top: 13px;
    right: 13px;
    background: #e63946;
    color: #fff;
    font-size: 11.5px;
    font-weight: 600;
    padding: 0px 10px;
    border-radius: 4px;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    line-height: 1;
    z-index: 10;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
    will-change: transform;
    transform: translateZ(0);
}

@keyframes pulse-sale {
    0%, 100% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.05);
    }
}

/* 2 kolumny na tablet */
@media (max-width: 900px) {
    .woocommerce ul.products,
    .woocommerce-page ul.products,
    ul.products {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 16px !important;
    }
}

/* 1 kolumna na mobile */
@media (max-width: 600px) {
    .woocommerce ul.products,
    .woocommerce-page ul.products,
    ul.products {
        grid-template-columns: 1fr !important;
        gap: 16px !important;
    }
}

/* === ARCHIWUM SKLEPU === */
.shop-archive-layout {
    display: flex;
    gap: 24px;
    max-width: var(--content-max-width);
    margin: 0 auto 0 auto;
    box-sizing: border-box;
    padding: 0 15px;
}
.shop-sidebar {
    flex: 0 0 260px;
    max-width: 260px;
    min-width: 260px;
	text-transform: uppercase;
	margin-top: 12px;
    box-sizing: border-box;
}

/* ✅ PERFORMANCE: Fix CLS for Alior Bank banner */
.shop-sidebar img[alt*="meble raty"],
.shop-sidebar img[src*="Aliorbank"] {
    width: 100%;
    max-width: 260px;
    height: auto;
    display: block;
    aspect-ratio: 300 / 250;
}

.shop-products {
    flex: 1;
    width: auto;
    max-width: calc(100% - 260px - 24px);
    min-width: 0;
    box-sizing: border-box;
}

/* Komunikat "Brak produktów" */
.no-products-found {
    text-align: center;
    padding: 60px 20px;
    background: #f9f9f9;
    border-radius: 8px;
    margin: 20px 0;
}

.no-products-found h2 {
    font-size: 24px;
    color: #333;
    margin-bottom: 16px;
}

.no-products-found p {
    font-size: 16px;
    color: #666;
    line-height: 1.6;
}

.no-products-found a {
    color: var(--tb-theme-color);
    font-weight: 600;
    text-decoration: underline;
}

.no-products-found a:hover {
    color: var(--tb-theme-color-hover);
}

@media (max-width: 1000px) {
    .shop-archive-layout {
        flex-direction: column;
        gap: 24px;
        margin-top: 15px;
    }
    .shop-sidebar, .shop-products {
        max-width: 100%;
        flex: 1 1 100%;
    }
}

/* === GALERIA PRODUKTU & MINIATUR - SLIDER === */
.product-gallery-main img {
    width: 100%;
    max-width: 700px;
    border: 1px solid #ebebeb;
    border-radius: 5px;
    margin-bottom: 15px;
    cursor: zoom-in;
    display: block;
}

.product-gallery-thumbnails {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 22px;
}

.product-gallery-thumbnails img {
    width: 64px;
    height: 64px;
    object-fit: cover;
    border: 2px solid #ddd;
    border-radius: 8px;
    cursor: pointer;
    transition: border 0.18s;
}

.product-gallery-thumbnails img:hover {
    border-color: #2A3392;
}

.woocommerce div.product .product_title {
    margin-top: 10px;
    margin-bottom: 10px;
}
.product-gallery-thumbnails-slider {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 20px;
    justify-content: center;
    max-width: 700px;
    width: 100%;
    margin-left: 0;
    margin-right: 0;
}
.thumbs-arrow {
    background: #fff;
    border: 1px solid #000000;
    font-size: 18px;
    border-radius: 50%;
    width: 24px;
    height: 24px;
    cursor: pointer;
    transition: background 0.2s;
    color: #000000;
    font-weight: bold;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 2;
    padding: 2px 2px 5px 2px;
}
.thumbs-arrow:disabled {
    opacity: 0.35;
    cursor: not-allowed;
}
.thumbs-arrow[style*="visibility: hidden"] {
    display: none;
}
.thumbs-viewport {
    overflow: hidden;
    width: 650px;
    max-width: 100%;
    position: relative;
    display: block;
}
.thumbs-track {
    display: flex;
    gap: 6px;
    transition: transform 0.3s cubic-bezier(.77,0,.18,1);
    will-change: transform;
}
.thumb-link {
    display: block;
    flex: 0 0 126px;
    width: 126px;
    height: 126px;
    border-radius: 10px;
    overflow: hidden;
    box-sizing: border-box;
}
.thumb-link img {
    width: 126px !important;
    height: 126px !important;
    object-fit: cover;
    border: 2px solid #ddd;
    border-radius: 10px;
    cursor: pointer;
    transition: border 0.18s;
    background: #fff;
    box-sizing: border-box;
    display: block;
}
.thumb-link img:hover,
.thumb-link.active img {
    border-color: #2A3392;
}
@media (max-width: 900px) {
    .product-gallery-main img,
    .product-gallery-thumbnails-slider,
    .thumbs-viewport {
        max-width: 92vw;
        width: 92vw;
    }
    .thumb-link,
    .thumb-link img {
        width: 64px !important;
        height: 64px !important;
		flex: 0 0 56px;
        border-radius: 8px;
    }
    .thumbs-arrow {
        width: 20px;
        height: 20px;
        font-size: 14px;
    }
}

/* === CENA PRODUKTU === */
.woocommerce div.product p.price,
.woocommerce div.product span.price {
    color: #232323;
    font-size: 22px;
}

/* === SELECTY (warianty produktu) === */
.woocommerce div.product form.cart .variations select {
    padding: 8px 10px;
    border-radius: 6px;
    border: 1px solid #ddd;
    font-size: 16px;
    background: #fafaff;
}

/* === QUANTITY === */
.woocommerce .quantity .qty {
    width: 48px;
    padding: 9px 0px 9px 10px;
    text-align: center;
    font-size: 18px;
    border-radius: 6px;
    border: 1px solid #ddd;
    background: #fff;
    box-sizing: border-box;
}

/* === PRZYCISK "DODAJ DO KOSZYKA" === */
.single_add_to_cart_button, .woocommerce button.button.alt {
    background: #2A3392;
    color: #fff;
    border-radius: 0px;
    border: none;
    padding: 12px 34px;
    font-size: 18px;
    font-weight: 700;
    transition: background 0.18s;
    margin-bottom: 30px;
}
.single_add_to_cart_button:hover,
.woocommerce button.button.alt:hover {
    background: #232323;
    color: #fff;
}

/* === FIX: Odstęp między formularzem produktu a sekcją poniżej === */
.woocommerce div.product form.cart {
    margin-bottom: 30px;
    clear: both;
}

/* ✅ ACCESSIBILITY: Better contrast for disabled state (WCAG AA 4.5:1) */
button.single_add_to_cart_button.button.alt.disabled.wc-variation-selection-needed {
    background: #5a5a5a;
    color: #ffffff;
    cursor: not-allowed;
    opacity: 0.7;
}

/* === OMNIBUS PRICE INFO === */
.pwp-omnibus-price__info {
    margin-bottom: 8px;
}

/* === PAGINACJA === */
.woocommerce nav.woocommerce-pagination,
.shop-products nav.woocommerce-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    margin: 10px 0 0 0;
    padding: 0;
    background: none;
}
.woocommerce nav.woocommerce-pagination ul.page-numbers,
.shop-products nav.woocommerce-pagination ul.page-numbers {
    display: flex;
    gap: 4px;
    margin: 0;
    padding: 0;
    list-style: none;
    background: none;
    border: none;
    font-size: 16px;
}
.woocommerce nav.woocommerce-pagination ul li,
.shop-products nav.woocommerce-pagination ul li {
    display: block;
    margin: 0;
    padding: 0;
    background: none;
    border: none;
}
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span,
.shop-products nav.woocommerce-pagination ul li a,
.shop-products nav.woocommerce-pagination ul li span {
    margin: 0;
    text-decoration: none;
    padding: 0.5em;
    line-height: 1;
    font-size: 1em;
    font-weight: bold;
    min-width: 2.5em;
    display: block;
    border: 1px solid #eee;
    background: #fff;
    color: #232323;
    font-family: 'Helvetica', Arial, sans-serif;
    border-radius: 0;
    transition: all .18s;
    box-sizing: border-box;
    outline: none;
}
.woocommerce nav.woocommerce-pagination ul li span.current,
.shop-products nav.woocommerce-pagination ul li span.current {
    background: #2a3392;
    color: #fff;
    border-color: #2a3392;
}
.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce nav.woocommerce-pagination ul li a:focus,
.shop-products nav.woocommerce-pagination ul li a:hover,
.shop-products nav.woocommerce-pagination ul li a:focus {
    background: #2a3392;
    color: #fff;
    border-color: #2a3392;
    text-decoration: none;
}
.woocommerce nav.woocommerce-pagination ul li span.dots,
.shop-products nav.woocommerce-pagination ul li span.dots {
    background: #fff;
    color: #232323;
    border-color: #eee;
    font-weight: 400;
    pointer-events: none;
}
.woocommerce nav.woocommerce-pagination ul li a,
.shop-products nav.woocommerce-pagination ul li a {
    cursor: pointer;
}


/* === STRONA PROMOCJI - 3 KOLUMNY === */
body.tax-product_tag-promocja .woocommerce ul.products,
body.product-template-default.term-promocje .woocommerce ul.products {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    width: 100%;
    margin: 0;
    padding: 0;
}

body.tax-product_tag-promocja ul.products li.product,
body.product-template-default.term-promocje ul.products li.product {
    width: 100% !important;
    margin: 0 !important;
    padding: 0;
    display: flex;
    flex-direction: column;
    position: relative;
    background: #fff;
    border: 1px solid #e8e8e8;
    border-radius: 10px;
    overflow: hidden;
    transition: all 0.3s ease;
}

body.tax-product_tag-promocja ul.products li.product:hover,
body.product-template-default.term-promocje ul.products li.product:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(42, 51, 146, 0.15);
    border-color: #2a3392;
}

/* Responsywność dla promocji - 2 kolumny na tablet */
@media (max-width: 900px) {
    body.tax-product_tag-promocja .woocommerce ul.products,
    body.product-template-default.term-promocje .woocommerce ul.products {
        grid-template-columns: repeat(2, 1fr);
        gap: 16px;
    }
}

/* 1 kolumna na mobile */
@media (max-width: 600px) {
    body.tax-product_tag-promocja .woocommerce ul.products,
    body.product-template-default.term-promocje .woocommerce ul.products {
        grid-template-columns: 1fr;
    }
}

/* --- KONTENT & OPIS KATEGORII --- */
.category-desc-wrap {
    width: 100%;
    background: #fff;
    padding-top: 24px;
    padding-bottom: 5px; /* padding na odstęp od footer, można zmienić */
    box-sizing: border-box;
    margin-bottom: 0;
    overflow-x: hidden;
}

.category-desc-wrap .container-content {
    overflow-x: hidden;
}

.term-description {
    position: relative;
    transition: max-height 0.5s ease;
    max-height: 220px;
    overflow: hidden;
    margin-bottom: 2px;
    font-size: 17px;
    line-height: 1.7;
    word-break: break-word;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    overflow-x: hidden;
}

.term-description.is-open,
.term-description.show {
    max-height: 5000px !important;
    overflow: visible !important;
    overflow-x: hidden !important;
    margin-bottom: 80px;
    width: 100%;
    max-width: 100%;
}

.term-description.truncated::after {
    content: "";
    display: block;
    position: absolute;
    left: 0; right: 0; bottom: 0;
    height: 40px;
    background: linear-gradient(180deg, transparent 0%, #fff 100%);
    pointer-events: none;
    z-index: 1;
}
.term-description.is-open::after,
.term-description.show::after {
    display: none !important;
}

.term-description__btn {
    display: flex;
    justify-content: center;
    align-items: center;
    position: absolute;
    width: 100%;
    max-width: 100%;
    height: 48px;
    left: 0;
    right: 0;
    bottom: 0;
    background: #fff;
    cursor: pointer;
    font-weight: 700;
    font-size: 16px;
    color: #2A3392;
    text-decoration: underline;
    transition: color 0.2s;
    z-index: 2;
    box-sizing: border-box;
}
.term-description__btn:hover {
    color: #232b7c;
}
.term-description.is-open .term-description__btn,
.term-description.show .term-description__btn {
    position: static;
    width: 100%;
    max-width: 100%;
    height: auto;
    margin: 20px auto 0 auto;
    background: none;
    box-shadow: none;
}
/* --- DROBNE NAPRAWY WC/WPBakery/itp. --- */
.woocommerce-notices-wrapper {
    padding: 10px;
}
.woocommerce .woocommerce-ordering select {
    padding: 4px;
}
.breadcrumbs-single-product .breadcrumbs-location {
    display: flex;
    justify-content: center;
    width: 100%;
    text-align: center;
    padding-top: 15px;
}
.wc-block-components-sidebar {
    background: #FCFCFC;
}
a.wc-block-components-button.wp-element-button.wc-block-cart__submit-button.contained {
    background: #2A3392;
    color: #fff;
    font-weight: bold;
    border-radius: 6px;
    transition: background 0.2s, color 0.2s;
}
a.wc-block-components-button.wp-element-button.wc-block-cart__submit-button.contained:hover,
a.wc-block-components-button.wp-element-button.wc-block-cart__submit-button.contained:focus {
    background: #14B8A6;
    color: #fff;
}
.is-large.wc-block-cart .wc-block-cart__totals-title {
    font-size: 1em;
    font-weight: bold;
    margin-bottom: 10px;
    color: #2a3392;
}
.is-large.wc-block-cart {
    margin: 2em 0;
}
.product-short-description,
.woocommerce-product-details__short-description {
    font-size: 18px;
    color: #474747;
    margin: 1px 0 18px 0;
    line-height: 1.6;
}
p.price {
    margin: 0px;
    padding: 0px;
}
/* ✅ ACCESSIBILITY: Removed - replaced with better contrast rule at line 606 */
/* button.single_add_to_cart_button.button.alt.disabled.wc-variation-selection-needed {
    background: #050f1e;
} */
/* === PRODUCT PAGE LAYOUT === */
.product-page-container {
    display: flex;
    gap: 40px;
    flex-wrap: wrap;
    margin-top: 10px;
}

.product-gallery-section {
    flex: 1 1 400px;
    min-width: 320px;
}

.product-info-section {
    flex: 1 1 340px;
    min-width: 280px;
}

.product-tabs-section {
    margin-top: 38px;
}

/* === PRODUCT REVIEW LINK === */
.woocommerce-review-link {
    margin-left: 8px;
    font-size: 14px;
    color: #2A3392;
    text-decoration: underline;
}

/* === PRODUCT META (SKU, Kategorie, Tagi) === */
.product_meta {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 20px;
    padding-top: 15px;
    border-top: 1px solid #e0e0e0;
    font-size: 14px;
    line-height: 1.6;
}

.product_meta > span {
    display: block;
    color: #555;
}

.product_meta .sku_wrapper,
.product_meta .posted_in,
.product_meta .tagged_as {
    margin: 0;
    padding: 0;
}

.product_meta .sku_wrapper {
    font-weight: 600;
    color: #333;
}

.product_meta .sku {
    font-weight: 400;
    color: #666;
    margin-left: 5px;
}

.product_meta .posted_in,
.product_meta .tagged_as {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
}

/* ✅ ACCESSIBILITY: Linki w product_meta z lepszym kontrastem i podkreśleniem */
.product_meta .posted_in a,
.product_meta .tagged_as a {
    color: #2A3392;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
    transition: color 0.2s;
}

.product_meta .posted_in a:hover,
.product_meta .tagged_as a:hover {
    color: #1a2060;
    text-decoration-thickness: 2px;
}

/* Pogrubienie TYLKO tekstu "Kategoria:" lub "Kategorie:" */
.product_meta .posted_in {
    font-weight: 600;
    color: #333;
}

.product_meta .posted_in a {
    font-weight: 400;
}

/* Fix przesunięcia strony przy otwieraniu Fancybox */
html.with-fancybox body {
    margin-right: 0 !important;
    overflow: visible !important;
}

html.with-fancybox body.hide-scrollbar {
    margin-right: 0 !important;
}

/* === PAYMENT METHODS IMAGE === */
.payment-methods-wrapper {
    width: 100%;
    margin-top: 30px;
    text-align: left;
    clear: both;
}

.payment-methods-image {
    max-width: 280px;
    height: auto;
    display: block;
}

/* Fix dla formularza produktu - żeby metody płatności były pod przyciskiem */
.woocommerce div.product form.cart {
    flex-wrap: wrap;
}

.woocommerce div.product form.cart .payment-methods-wrapper {
    flex-basis: 100%;
}

@media (max-width: 767px) {
    .payment-methods-image {
        max-width: 100%;
    }
}

/* === VARIATIONS TABLE (Atrybuty produktu) === */
.woocommerce div.product form.cart table.variations {
    margin-top: 0;
    margin-bottom: 20px;
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
}

.woocommerce div.product form.cart table.variations tr {
    margin-bottom: 5px;
    display: table;
    width: 100%;
}

.woocommerce div.product form.cart table.variations th,
.woocommerce div.product form.cart table.variations td {
    padding: 8px 0;
    vertical-align: top;
    border: none;
}

.woocommerce div.product form.cart table.variations th.label {
    width: 120px;
    text-align: left;
    font-weight: 600;
    color: #333;
    padding-right: 10px;
    vertical-align: top;
}

.woocommerce div.product form.cart table.variations td.value {
    width: calc(100% - 120px);
}

.woocommerce div.product form.cart table.variations td.value select {
    width: 100%;
    max-width: 300px;
}

/* Odstęp między wierszami atrybutów */
.woocommerce div.product form.cart table.variations tbody tr {
    margin-bottom: 5px;
}

/* Zmniejszenie odstępu między wariantami a ceną po wyborze */
.woocommerce div.product form.cart .woocommerce-variation.single_variation {
    margin-top: 0;
    padding-top: 0;
}

/* === TABS - Całość sekcji z zakładkami === */
.woocommerce div.product .woocommerce-tabs {
    margin-top: 20px;
}

.woocommerce div.product .woocommerce-tabs ul.tabs {
    background: transparent;
    border: none;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li {
    border: 1px solid #cfc8d8;
    background-color: #f5f5f7;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
    color: #333;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active {
    background-color: #fff;
    border-bottom-color: #fff;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
    color: #2A3392;
}

.woocommerce div.product .woocommerce-tabs .woocommerce-Tabs-panel {
    background: #fff;
    padding: 20px;
}

