/************************************************
 * PRODUCT CARD — CORE
 * Wspólny układ kafelka produktu
 ************************************************/

/* =================================================
   01. ROOT / CARD BASE
================================================= */

.fc-product-card {
    --fc-card-topbar-height: 40px;
    --fc-card-wishlist-size: 40px;
    --fc-card-wishlist-right: 4px;
    --fc-card-wishlist-gap: 4px;

    --fc-card-header-height: 58px;
    --fc-card-swatches-height: 28px;
    --fc-card-rating-height: 18px;
    --fc-card-price-height: 66px;

    position: relative;
    container-type: inline-size;
    container-name: paese-product-card;

    display: flex;
    flex-direction: column;
    align-self: stretch;

    width: 100%;
    height: 100%;
    min-height: 0;

    cursor: default;
    text-align: left;
    gap: 0;

    overflow: visible !important;
    z-index: 5;
}

.fc-product-card * {
    text-align: left;
}

.fc-card {
    display: contents;
}

/* =================================================
   02. NATIVE LOOP ORDER
================================================= */

.fc-product-card > figure {
    order: 1;
}

.fc-product-card > .fc-card-rating {
    order: 2;
}

.fc-product-card > .fc-card-body {
    order: 3;
}

.fc-product-card > .ct-woo-card-actions {
    order: 4;
}

/* =================================================
   03. LISTS / GRID / CAROUSEL EQUAL HEIGHT
================================================= */

ul.products {
    align-items: stretch;
}

ul.products > li {
    display: flex;
    height: 100%;
}

ul.products > li.fc-product-card {
    flex-direction: column;
    align-self: stretch;
    min-height: 0;
}

.stk-block-carousel .stk-block-carousel__slider,
.stk-block-carousel [role="listitem"],
.stk-block-carousel .stk-block-column,
.stk-block-carousel .wp-block-stackable-column,
.stk-block-carousel .stk-column-wrapper,
.stk-block-carousel .stk-inner-blocks {
    align-items: stretch;
}

.stk-block-carousel .paese-shortcode-single-product,
.stk-block-carousel .paese-shortcode-single-product .woocommerce,
.stk-block-carousel .paese-shortcode-single-product ul.products,
.stk-block-carousel .paese-shortcode-single-product ul.products > li {
    height: 100%;
}

.paese-shortcode-single-product ul.products {
    display: flex;
    align-items: stretch;
    height: 100%;
    margin: 0;
    padding: 0;
}

.paese-shortcode-single-product ul.products > li.fc-product-card,
.stk-block-carousel li.fc-product-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
}

/* Natywny slider produktów Blocksy. */
.is-layout-slider > ul.products,
.is-layout-slider ul.products[data-products],
.is-layout-slider [data-products] {
    align-items: stretch !important;
}

.is-layout-slider > ul.products > li.fc-product-card,
.is-layout-slider ul.products[data-products] > li.fc-product-card,
.is-layout-slider [data-products] > li.fc-product-card {
    display: flex !important;
    flex-direction: column;
    align-self: stretch !important;
    height: auto !important;
    min-height: 0 !important;
}

/* =================================================
   04. IMAGE
================================================= */

.fc-product-card > figure {
    --product-element-spacing: 0;

    position: relative !important;

    display: flex !important;
    flex-direction: column !important;
    flex: 0 0 auto;

    box-sizing: border-box;
    width: 100% !important;
    min-width: 0;

    margin: 0 !important;
    padding: 0 !important;
    gap: 0 !important;

    overflow: visible !important;
    background-color: transparent;
}

/* Rezerwa na wishlistę również przy braku badges. */
.fc-product-card > figure:not(:has(.ct-woo-badges)) {
    padding-top: var(--fc-card-topbar-height) !important;
}

.fc-product-card > figure img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;

    transform: none !important;
    scale: 1 !important;
    transition: none !important;
}

.fc-product-card > figure .ct-media-container {
    position: relative;
    display: block;
    order: 2;

    width: 100%;
    aspect-ratio: 1 / 1;

    overflow: hidden;
    background-color: #f7f4ef;

    transform: none !important;
    transition: none !important;
}

.fc-product-card > figure .ct-media-container img,
.fc-product-card > figure .ct-media-container picture,
.fc-product-card > figure .ct-media-container video,
.fc-product-card > figure .has-hover-effect,
.fc-product-card > figure .ct-media-container.has-hover-effect {
    transform: none !important;
    scale: 1 !important;
    transition: none !important;
}

.fc-product-card > figure:hover .ct-media-container,
.fc-product-card > figure:hover .ct-media-container img,
.fc-product-card > figure:hover img,
.fc-product-card:hover .ct-media-container,
.fc-product-card:hover .ct-media-container img,
.fc-product-card:hover img {
    transform: none !important;
    scale: 1 !important;
    transition: none !important;
}

/*
 * Overlay zdjęcia wariantu jest generowany jako bezpośrednie
 * dziecko figure, a nie .ct-media-container.
 *
 * Figure zawiera również pasek badges, dlatego inset: 0
 * powodował wejście zdjęcia wariantu pod badges.
 *
 * Overlay zaczynamy dokładnie od dolnej krawędzi topbara.
 */
.fc-product-card > figure > .fc-card-image-overlay {
    position: absolute !important;

    top: var(--fc-card-topbar-height) !important;
    right: 0 !important;
    bottom: 0 !important;
    left: 0 !important;

    width: 100% !important;

    background-position: center center !important;
    background-repeat: no-repeat !important;
    background-size: contain !important;
    background-color: #f7f4ef !important;

    pointer-events: none !important;
    z-index: 2 !important;
}

/*.is-visible {*/
/*    background-color: #f7f4ef;*/
/*}*/

/* =================================================
   05. BADGES
   Domyślnie pionowo.
   Przy szerokim kafelku poziomo.
================================================= */

/*
 * Domyślny i bezpieczny wariant:
 * badges jeden pod drugim.
 *
 * Układ nie zależy od szerokości viewportu, tylko od
 * rzeczywistej szerokości kafelka produktu.
 */
.fc-product-card > figure .ct-woo-badges {
    position: relative !important;
    inset: auto !important;
    transform: none !important;

    order: 1 !important;

    display: flex !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    flex: 0 0 auto;

    justify-content: center !important;
    align-items: flex-start !important;
    align-content: flex-start !important;

    box-sizing: border-box;

    width: calc(
            100% -
            var(--fc-card-wishlist-size) -
            var(--fc-card-wishlist-right) -
            var(--fc-card-wishlist-gap)
    ) !important;

    max-width: calc(
            100% -
            var(--fc-card-wishlist-size) -
            var(--fc-card-wishlist-right) -
            var(--fc-card-wishlist-gap)
    ) !important;

    min-width: 0 !important;
    min-height: var(--fc-card-topbar-height);
    height: auto;

    column-gap: 0 !important;
    row-gap: 2px !important;

    padding: 2px 0 !important;
    margin: 0 !important;

    overflow: visible !important;
    z-index: 5 !important;
    pointer-events: none;
}

.fc-product-card > figure .ct-woo-badges > span {
    position: static !important;

    display: inline-flex !important;
    flex: 0 0 auto !important;

    align-items: center;
    justify-content: center;

    box-sizing: border-box;

    width: auto !important;
    min-width: 0;
    max-width: 100% !important;

    height: auto;
    min-height: 17px;

    margin: 0 !important;
    padding: 2px 6px;

    font-size: 9px;
    line-height: 1.1;
    text-transform: uppercase;
    letter-spacing: .2px;
    font-weight: 400;

    white-space: normal !important;
    overflow-wrap: anywhere;

    pointer-events: none;
}

.fc-product-card > figure .ct-woo-badge-new {
    border: 1px solid var(--theme-palette-color-6);
    background-color: var(--theme-palette-color-3);
}

/*
 * Szeroki kafelek:
 * badges w jednym rzędzie.
 *
 * Container query reaguje na szerokość samego kafelka,
 * a nie na szerokość ekranu.
 */
@container paese-product-card (min-width: 280px) {
    .fc-product-card > figure .ct-woo-badges {
        flex-direction: row !important;
        flex-wrap: wrap !important;

        justify-content: flex-start !important;
        align-items: center !important;
        align-content: center !important;

        column-gap: 4px !important;
        row-gap: 2px !important;
    }

    .fc-product-card > figure .ct-woo-badges > span {
        white-space: nowrap !important;
        overflow-wrap: normal;
    }
}

/* =================================================
   06. WISHLIST
================================================= */

.fc-product-card > .yith-add-to-wishlist-button-block {
    display: none !important;
}

/* Wishlist renderowana przed figure. */
.fc-product-card > .yith-wcwl-add-to-wishlist {
    position: absolute !important;

    top: calc(
            (var(--fc-card-topbar-height) - var(--fc-card-wishlist-size)) / 2
    ) !important;

    right: var(--fc-card-wishlist-right) !important;
    bottom: auto !important;
    left: auto !important;

    z-index: 30 !important;

    display: flex !important;
    align-items: center;
    justify-content: center;

    box-sizing: border-box;
    width: var(--fc-card-wishlist-size) !important;
    height: var(--fc-card-wishlist-size) !important;

    margin: 0 !important;
    padding: 0 !important;

    transform: none !important;
}

/* Oryginalny H2 jest wyłącznie nośnikiem wishlisty. */
.fc-product-card > h2.woocommerce-loop-product__title {
    position: absolute !important;

    top: calc(
            (var(--fc-card-topbar-height) - var(--fc-card-wishlist-size)) / 2
    ) !important;

    right: var(--fc-card-wishlist-right) !important;
    bottom: auto !important;
    left: auto !important;

    z-index: 30 !important;
    display: block !important;

    box-sizing: border-box;
    width: var(--fc-card-wishlist-size) !important;
    height: var(--fc-card-wishlist-size) !important;
    min-width: var(--fc-card-wishlist-size) !important;
    min-height: var(--fc-card-wishlist-size) !important;

    margin: 0 !important;
    padding: 0 !important;

    line-height: 0 !important;
    overflow: visible !important;
    pointer-events: none;

    transform: none !important;
}

.fc-product-card > h2.woocommerce-loop-product__title > a {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    box-sizing: border-box;
    width: var(--fc-card-wishlist-size) !important;
    height: var(--fc-card-wishlist-size) !important;

    margin: 0 !important;
    padding: 0 !important;

    font-size: 0 !important;
    line-height: 0 !important;
    color: transparent !important;
    text-decoration: none !important;

    pointer-events: none;
}

.fc-product-card .yith-wcwl-add-to-wishlist-button,
.fc-product-card .yith-wcwl-add-to-wishlist-button.yith-wcwl-add-to-wishlist-button-over-image--top-left,
.fc-product-card .yith-wcwl-add-to-wishlist-button.yith-wcwl-add-to-wishlist-button-over-image--top-right,
.fc-product-card > h2.woocommerce-loop-product__title .yith-wcwl-add-to-wishlist-button {
    position: relative !important;
    inset: auto !important;

    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    box-sizing: border-box;
    width: var(--fc-card-wishlist-size) !important;
    height: var(--fc-card-wishlist-size) !important;
    min-width: var(--fc-card-wishlist-size) !important;
    min-height: var(--fc-card-wishlist-size) !important;

    margin: 0 !important;
    padding: 0 !important;

    transform: none !important;
    pointer-events: auto;

    font-size: initial !important;
    line-height: 1 !important;
}

.fc-product-card .yith-wcwl-add-to-wishlist-button:is(button) {
    border: 0 !important;
    background-color: transparent !important;
}

.fc-card-wishlist {
    position: relative;
    z-index: 20;
}

.fc-card-wishlist .yith-wcwl-add-to-wishlist-button__label {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;

    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    clip-path: inset(50%);

    white-space: nowrap;
    border: 0;
}

/* Starszy renderer YITH. */
.fc-product-card > h2.woocommerce-loop-product__title .yith-wcwl-add-to-wishlist,
.fc-card-wishlist .yith-wcwl-add-to-wishlist {
    position: relative !important;
    inset: auto !important;

    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    box-sizing: border-box;
    width: var(--fc-card-wishlist-size, 40px) !important;
    height: var(--fc-card-wishlist-size, 40px) !important;

    margin: 0 !important;
    padding: 0 !important;

    pointer-events: auto;
    transform: none !important;
}

.fc-product-card .yith-wcwl-add-to-wishlist a,
.fc-card-wishlist .yith-wcwl-add-to-wishlist a {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    box-sizing: border-box;
    width: var(--fc-card-wishlist-size, 40px) !important;
    height: var(--fc-card-wishlist-size, 40px) !important;

    margin: 0 !important;
    padding: 0 !important;

    font-size: 0;
    line-height: 0;

    border: 0;
    background: transparent;
    transform: none !important;
}

/* Nadpisanie sztywnych wymiarów YITH z global.css. */
body .fc-product-card .yith-wcwl-add-to-wishlist .yith-wcwl-add-button {
    position: static !important;
}

body .fc-product-card .yith-wcwl-add-to-wishlist .yith-wcwl-add-button,
body .fc-product-card .yith-wcwl-add-to-wishlist .yith-wcwl-add-button > a {
    box-sizing: border-box;
    width: var(--fc-card-wishlist-size) !important;
    height: var(--fc-card-wishlist-size) !important;
    min-width: var(--fc-card-wishlist-size) !important;
    min-height: var(--fc-card-wishlist-size) !important;

    margin: 0 !important;
    padding: 0 !important;
}

body .fc-product-card .yith-wcwl-add-to-wishlist .yith-wcwl-add-button > a {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.fc-product-card .yith-wcwl-add-to-wishlist i,
.fc-card-wishlist .yith-wcwl-add-to-wishlist i {
    font-size: 26px;
    line-height: 1;
}

.fc-product-card .yith-wcwl-add-to-wishlist .feedback,
.fc-card-wishlist .yith-wcwl-add-to-wishlist .feedback {
    display: none;
}

.fc-product-card .yith-wcwl-add-to-wishlist a.add_to_wishlist > img,
.fc-product-card .yith-wcwl-add-to-wishlist a.move_to_another_wishlist > img,
.fc-product-card .yith-wcwl-add-to-wishlist a.delete_item > img {
    display: block !important;
    flex: 0 0 25px;
    width: 25px !important;
    max-width: 25px !important;
    height: 25px !important;
    margin: 0 !important;
}

/* =================================================
   07. HIDE ORIGINAL LOOP ELEMENTS
================================================= */

.fc-product-card > .price,
.fc-product-card > .star-rating,
.fc-product-card > .ct-woo-card-rating {
    display: none !important;
}

/* =================================================
   08. CUSTOM RATING
================================================= */

.fc-product-card .fc-card-rating,
.fc-product-card .fc-card-rating.woocommerce-loop-product__rating,
.fc-product-card .fc-card-rating:empty {
    display: flex;
    align-items: center;

    box-sizing: border-box;
    flex: 0 0 auto;
    order: 2;

    width: 100%;
    min-height: var(--fc-card-rating-height);

    margin: 0;
    padding: 2px 0 0;
}

/* =================================================
   09. BODY
================================================= */

.fc-product-card .fc-card-body {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;

    box-sizing: border-box;
    width: 100%;
    min-width: 0;

    gap: 4px;
    margin: 0;
    padding: 2px 0 0;
}

/* =================================================
   10. HEADER / TITLE / CAPACITY
================================================= */

.fc-product-card .fc-card-header-slot {
    flex: 0 0 auto;
    width: 100%;
    min-height: var(--fc-card-header-height);
    margin: 0;
}

.fc-product-card .fc-card-header-slot > .card-header {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) max-content !important;
    align-items: start !important;

    column-gap: 10px !important;
    row-gap: 0 !important;

    width: 100% !important;
    min-width: 0 !important;

    margin: 0;
    padding: 0;

    text-align: left;
}

.fc-product-card .fc-card-header-slot > .card-header > .woocommerce-loop-product__title {
    grid-column: 1;
    grid-row: 1;

    display: block;
    min-width: 0;
    max-width: 100%;

    margin: 0;
    padding: 0;

    line-height: 1.2;
}

.fc-product-card .fc-card-header-slot > .card-header > .woocommerce-loop-product__title > a {
    display: block;
    overflow: visible;

    max-width: 100%;
    max-height: none;

    line-height: 1.22;
    font-size: 1.125rem;
    font-weight: 400;

    text-decoration: none;
    text-align: left;

    white-space: normal;
    word-break: normal;
    overflow-wrap: normal;

    text-overflow: unset;
    -webkit-line-clamp: unset;
    line-clamp: unset;
    -webkit-box-orient: unset;
}

.fc-product-card .fc-card-header-slot .paese-title-lead {
    display: block !important;

    font-weight: 700;
    text-transform: uppercase;
    line-height: 1.1;

    margin-bottom: 1px;
}

.fc-product-card .fc-card-header-slot .paese-title-rest {
    display: block !important;

    font-weight: 400;
    font-size: 1rem;
    line-height: 1.22;

    white-space: normal;
    word-break: normal;
    overflow-wrap: normal;
}

.fc-product-card .fc-card-header-slot .paese-title-rest::before {
    content: none;
    display: none;
}

.fc-product-card .fc-card-header-slot > .card-header > .fc-card-capacity {
    grid-column: 2;
    grid-row: 1;

    justify-self: end;
    align-self: start;

    margin: 0;
    padding: 0;

    white-space: nowrap;

    font-size: 1rem;
    line-height: 1.15;
    font-weight: 700;

    color: var(--theme-text-color, #777);
    text-align: right;
}

.fc-card-capacity {
    font-size: 12px;
    line-height: 1.15;
}

/* =================================================
   11. SWATCHES
================================================= */

.fc-product-card .fc-card-swatches-slot,
.fc-product-card .fc-card-swatches-slot:empty,
.fc-product-card .fc-card-swatches-slot:not(:has(.fc-swatches--card)) {
    position: relative;
    display: block;
    flex: 0 0 auto;

    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    height: auto;
    min-height: var(--fc-card-swatches-height);

    margin: 0;
    overflow: visible !important;
}

.fc-card-swatches,
.fc-swatches {
    display: flex;
    gap: 5px;

    align-items: center;
    justify-content: flex-start;

    width: 100%;
    max-width: 100%;
    min-width: 0;
}

.fc-swatches--card {
    position: relative;
    z-index: 50;

    flex-wrap: nowrap;

    width: 100%;
    max-width: 100%;
    min-width: 0;

    overflow: hidden !important;
}

.fc-swatches--card > .fc-swatch[hidden] {
    display: none !important;
}

.fc-swatches--card:has(.fc-swatches-overlay.is-visible) {
    overflow: visible !important;
}

.fc-swatches-overlay.is-visible {
    display: flex;
}

.fc-swatch {
    position: relative;
    flex: 0 0 auto;

    width: 12px;
    height: 12px;

    border: 1px solid rgba(0, 0, 0, .15);
    border-radius: 50%;

    cursor: pointer;
}

.fc-swatch--text {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    flex: 0 1 auto;

    width: auto;
    min-width: 24px;
    max-width: 92px;
    height: 18px;

    padding: 0 5px;
    border-radius: 10px;

    font-size: 10px;

    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.fc-swatch--more {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    flex: 0 0 auto;

    min-width: 16px;
    height: 16px;

    border: 1px solid rgba(0, 0, 0, .2);
    border-radius: 50%;

    font-size: 11px;
    line-height: 1;

    color: var(--theme-text-color, #777);
    white-space: nowrap;
}

.fc-swatches-overlay {
    position: absolute;
    bottom: 100%;
    left: 0;
    z-index: 9999;

    display: none;
    flex-wrap: wrap;
    gap: 8px;

    width: max-content;
    max-width: 260px;

    padding: 10px;
    background: #fff;

    border: 1px solid rgba(0, 0, 0, .12);
    border-radius: 10px;

    box-shadow: 0 6px 20px rgba(0, 0, 0, .18);
}

.fc-swatch::after {
    content: attr(data-tooltip);

    position: absolute;
    bottom: calc(100% + 6px);
    left: 50%;
    z-index: 10000;

    transform: translateX(-50%) scale(.95);

    padding: 4px 8px;
    border-radius: 4px;

    background: rgba(0, 0, 0, .85);
    color: #fff;

    font-size: 11px;
    line-height: 1.2;
    white-space: nowrap;

    opacity: 0;
    pointer-events: none;

    transition:
            opacity .15s ease,
            transform .15s ease;
}

/* =================================================
   12. PRICE / OMNIBUS
================================================= */

.fc-product-card .fc-card-price-slot {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    flex: 0 0 auto;

    box-sizing: border-box;
    width: 100%;
    min-height: var(--fc-card-price-height);

    margin: auto 0 0;
    text-align: left;
}

.price,
.fc-price {
    display: flex;
    flex-direction: column;
    gap: 1px;
    align-items: flex-start;
    text-align: left;
}

.fc-price-dynamic-notice,
.iworks-omnibus,
.fc-price-main .iworks-omnibus,
.fc-omnibus-notice {
    min-height: 14px;
    margin: 0;

    font-size: 11px;
    line-height: 1.25;
    font-weight: 400;

    color: var(--theme-text-color, #777);
}

.iworks-omnibus .woocommerce-Price-amount {
    font-weight: 600;
}

.fc-card-unit-price {
    margin-top: 0;
    font-size: 11px;
    color: var(--theme-text-color, #777);
}

.fc-price-main ins,
.fc-price-main ins .woocommerce-Price-amount {
    font-weight: 600;
    font-size: clamp(17px, 1.5vw, 20px);
    color: var(--theme-palette-color-6);
    text-decoration: none;
}

.fc-price-main del,
.fc-price-main del .woocommerce-Price-amount {
    font-size: .85rem;
    color: #9a9a9a;
}

.fc-price-main:not(:has(del)) .woocommerce-Price-amount {
    font-size: 1.3rem;
    font-weight: 600;
    color: var(--theme-palette-color-5);
}

/* =================================================
   13. CTA
================================================= */

.fc-product-card > .ct-woo-card-actions {
    display: flex;
    flex-direction: column;
    flex: 0 0 auto;

    gap: 4px;
    width: 100%;

    margin: 0;
    padding-top: 4px;

    text-align: left;
}

.fc-product-card > .ct-woo-card-actions .button,
.fc-product-card > .ct-woo-card-actions a.button,
.fc-product-card > .ct-woo-card-actions .add_to_cart_button {
    display: flex !important;
    align-items: center;
    justify-content: center;

    box-sizing: border-box;
    width: 100% !important;
    min-height: 40px;

    padding-top: 8px;
    padding-bottom: 8px;

    text-align: center !important;
}

.fc-product-card > .ct-woo-card-actions .button.fc-archive-bis-trigger {
    font-size: 12px;
    line-height: 1.2;
    letter-spacing: 0;
    text-transform: none;
    white-space: nowrap;
}

/* =================================================
   14. CTA AFTER AJAX ADD TO CART
================================================= */

.fc-product-card .ct-woo-card-actions .add_to_cart_button.fc-is-hidden-after-add,
.fc-product-card .ct-woo-card-actions .add_to_cart_button.added,
.fc-product-card .ct-woo-card-actions .button.fc-is-hidden-after-add {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

.fc-product-card .ct-woo-card-actions:has(.added_to_cart.wc-forward) .add_to_cart_button,
.fc-product-card .ct-woo-card-actions:has(.added_to_cart.wc-forward) .fc-variable-archive-cta,
.fc-product-card .ct-woo-card-actions:has(.added_to_cart.fc-cart-forward-visible) .add_to_cart_button,
.fc-product-card .ct-woo-card-actions:has(.added_to_cart.fc-cart-forward-visible) .fc-variable-archive-cta {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

.fc-product-card .ct-woo-card-actions .added_to_cart.wc-forward,
.fc-product-card .ct-woo-card-actions .added_to_cart.fc-cart-forward-visible {
    display: flex !important;
    align-items: center;
    justify-content: center;

    width: 100% !important;
    min-height: 40px;

    padding: 8px 12px;

    text-align: center !important;
    text-decoration: none;
}

/* =================================================
   15. OUT OF STOCK
================================================= */

li.fc-product-card:has(.out-of-stock-badge) {
    opacity: 1;
}

li.fc-product-card:has(.out-of-stock-badge) figure {
    position: relative;
}

li.fc-product-card:has(.out-of-stock-badge) figure .ct-media-container::after {
    content: '';

    position: absolute;
    inset: 0;
    z-index: 2;

    background: rgba(255, 255, 255, .6);
    pointer-events: none;
}

li.fc-product-card:has(.out-of-stock-badge) figure:not(:has(.ct-media-container))::after {
    content: '';

    position: absolute;
    inset: var(--fc-card-topbar-height) 0 0;
    z-index: 2;

    background: rgba(255, 255, 255, .6);
    pointer-events: none;
}

li.fc-product-card:has(.out-of-stock-badge) .ct-woo-badges,
li.fc-product-card:has(.out-of-stock-badge) .ct-woo-badges * {
    opacity: 1 !important;
    filter: none !important;
}

li.fc-product-card:has(.out-of-stock-badge) .ct-woo-card-actions,
li.fc-product-card:has(.out-of-stock-badge) .ct-woo-card-actions .button {
    opacity: 1;
    pointer-events: auto;
    filter: none;
}

li.fc-product-card:has(.out-of-stock-badge) .onsale {
    display: none;
}

/* =================================================
   16. RESPONSIVE — TABLET / SMALL DESKTOP
================================================= */

@media (max-width: 1440px) {
    .fc-product-card {
        --fc-card-header-height: 52px;
    }

    .fc-product-card .fc-card-header-slot > .card-header > .woocommerce-loop-product__title > a {
        -webkit-line-clamp: 2;
    }
}

/* =================================================
   17. RESPONSIVE — MOBILE / TABLET
================================================= */

@media (max-width: 768px) {
    .fc-product-card {
        --fc-card-header-height: 50px;
        --fc-card-price-height: 72px;
    }

    .fc-product-card .fc-card-header-slot > .card-header {
        column-gap: 8px !important;
    }

    .fc-product-card .fc-card-header-slot > .card-header > .woocommerce-loop-product__title > a {
        font-size: 1rem;
        line-height: 1.2;
    }

    .fc-product-card .fc-card-header-slot > .card-header > .fc-card-capacity {
        font-size: .875rem;
    }

    .fc-card-unit-price {
        display: none;
    }

    .fc-product-card > .ct-woo-card-actions .button,
    .fc-product-card > .ct-woo-card-actions a.button,
    .fc-product-card > .ct-woo-card-actions .add_to_cart_button {
        min-height: 38px;
        padding: 8px 12px;
        font-size: 12px;
        line-height: 1.2;
    }

    .fc-product-card > .ct-woo-card-actions .button.fc-archive-bis-trigger {
        font-size: 11px;
    }

    [data-products] .fc-product-card.product {
        height: auto !important;
        min-height: 0 !important;
        align-self: stretch;
        isolation: auto;
    }

    .is-layout-slider [data-products] .fc-product-card.product,
    .is-layout-slider ul.products > .fc-product-card.product {
        height: auto !important;
        min-height: 0 !important;
        align-self: stretch !important;
    }
}

/* =================================================
   18. MOBILE — BADGES + WISHLIST
================================================= */

@media (max-width: 689px) {
    .fc-product-card {
        --fc-card-wishlist-size: 30px;
        --fc-card-wishlist-right: 2px;
        --fc-card-wishlist-gap: 4px;
    }

    .fc-product-card > figure .ct-woo-badges > span {
        min-height: 17px;
        padding: 2px 5px;

        font-size: 8.5px;
        line-height: 1.1;
        letter-spacing: .1px;
    }
}

/* =================================================
   19. SWATCHES — MOBILE
================================================= */

@media (max-width: 767px) {
    .fc-swatches--card {
        gap: 6px;
        padding-inline: 2px;
    }

    .fc-swatches--card > .fc-swatch--color {
        width: 16px;
        height: 16px;
    }

    .fc-swatches--card > .fc-swatch--text {
        max-width: calc(100% - 40px);
    }

    .fc-swatches--card > .fc-swatch--more {
        min-width: 22px;
        padding-inline: 5px;
    }
}