/* ======================================================
 * SINGLE PRODUCT — DESKTOP / LAPTOP (>= 1025px)
 * GRID / GALLERY / SUMMARY
 * ====================================================== */

@media (min-width: 1025px) {

    /* ======================================================
     * GRID WRAPPER
     *
     * FINAL OVERRIDE:
     * blokujemy natywny display:flex Blocksy/WooCommerce,
     * aby aktualizacje motywu nie zmieniały układu produktu.
     * ====================================================== */

    body.single-product .product-entry-wrapper.is-width-constrained {
        display: grid !important;
        grid-template-columns: minmax(0, 1.18fr) minmax(320px, 0.82fr) !important;
        column-gap: clamp(24px, 2.6vw, 40px) !important;
        row-gap: 0 !important;
        align-items: start !important;
    }

    .product-entry-wrapper.is-width-constrained > * {
        min-width: 0;
        max-width: 100%;
        box-sizing: border-box;
    }

    /* ======================================================
     * REAL GRID ITEMS FROM DOM
     * ====================================================== */

    .product-entry-wrapper.is-width-constrained > .fc-gallery-wrap {
        grid-column: 1;
        grid-row: 1;
    }

    .product-entry-wrapper.is-width-constrained > .woocommerce-tabs.wc-tabs-wrapper {
        grid-column: 1;
        grid-row: 2;
    }

    .product-entry-wrapper.is-width-constrained > .summary.entry-summary.entry-summary-items,
    .product-entry-wrapper.is-width-constrained > .summary.entry-summary {
        grid-column: 2;
        grid-row: 1 / span 2;
    }

    /* ======================================================
     * GALLERY
     * ====================================================== */

    .product-entry-wrapper.is-width-constrained > .fc-gallery-wrap {
        inline-size: 100%;
        width: 100%;
        max-width: 100%;
        min-width: 0;
        justify-self: stretch;
        align-self: start;
        overflow: hidden;

        background: #efe9e2;
        border-radius: 28px;
        padding: clamp(18px, 2vw, 28px);

        position: relative !important;
        top: auto !important;
        bottom: auto !important;
        transform: none !important;
        z-index: 1;
    }

    .fc-gallery-wrap,
    .fc-gallery-wrap * {
        box-sizing: border-box;
    }

    .fc-gallery-wrap .woocommerce-product-gallery,
    .fc-gallery-wrap .woocommerce-product-gallery__wrapper,
    .fc-gallery-wrap .woocommerce-product-gallery__image,
    .fc-gallery-wrap .ct-product-gallery-container,
    .fc-gallery-wrap .flexy-container,
    .fc-gallery-wrap .flexy-view,
    .fc-gallery-wrap .flexy-items,
    .fc-gallery-wrap .flexy-item,
    .fc-gallery-wrap .ct-media-container,
    .fc-gallery-wrap figure.ct-media-container {
        inline-size: 100% !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }

    .fc-gallery-wrap .woocommerce-product-gallery__image,
    .fc-gallery-wrap figure.ct-media-container {
        display: flex;
        align-items: center;
        justify-content: center;
        overflow: hidden;
    }

    .fc-gallery-wrap figure.ct-media-container img,
    .fc-gallery-wrap .woocommerce-product-gallery__image img,
    .fc-gallery-wrap .flexy-item img {
        display: block;
        width: 100%;
        max-width: 100%;
        height: auto;
        object-fit: contain;
    }

    .product-entry-wrapper .entry-summary {
        margin-inline-start: 0 !important;
        padding-left: 10px;
    }

    /* ======================================================
     * THUMBS
     * ====================================================== */

    .flex-control-thumbs {
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: clamp(10px, 1.1vw, 16px);
        width: 100%;
        max-width: 100%;
        margin-top: 24px;
        padding: 0;
    }

    .flex-control-thumbs li {
        width: 100%;
        min-width: 0;
        max-width: 100%;
        list-style: none;
    }

    .flex-control-thumbs img {
        display: block;
        width: 100%;
        max-width: 100%;
        background: #fff;
        border-radius: 14px;
        padding: 6px;
        border: 1px solid transparent;
    }

    .flex-control-thumbs .flex-active img {
        border-color: #b89a7a;
    }

    /* ======================================================
     * GALLERY ARROWS
     * ====================================================== */

    .fc-gallery-wrap .ct-slider-arrows {
        left: 0;
        right: 0;
        width: 100%;
        padding: 0 24px;
        box-sizing: border-box;
        opacity: 0;
        transition: opacity .2s ease;
    }

    .fc-gallery-wrap:hover .ct-slider-arrows {
        opacity: 1;
    }

    .fc-gallery-wrap .ct-slider-arrows .ct-arrow-prev {
        left: 0;
    }

    .fc-gallery-wrap .ct-slider-arrows .ct-arrow-next {
        right: 0;
    }

    /* ======================================================
     * TABS WRAPPER
     * ====================================================== */

    .product-entry-wrapper.is-width-constrained > .woocommerce-tabs.wc-tabs-wrapper {
        position: relative;
        z-index: 2;
        inline-size: 100%;
        width: 100%;
        max-width: 100%;
        min-width: 0;
        overflow: visible;
        border-radius: 28px;
        padding: 0 clamp(18px, 2vw, 28px) clamp(18px, 2vw, 28px);
        margin-top: 80px;
        background-color: var(--theme-palette-color-2);
    }

    .woocommerce-tabs .tabs.wc-tabs {
        display: flex;
        flex-wrap: wrap;
        position: absolute;
        top: -70px;
        left: 0;
        gap: 6px;
        align-items: center;
        padding: 6px;
        margin: 0;
        max-width: 100%;
        list-style: none;
        border: none;
        background: transparent;
    }

    .woocommerce-tabs .tabs.wc-tabs li {
        margin: 0;
        padding: 0;
        position: relative;
    }

    .woocommerce-tabs .tabs.wc-tabs li::before,
    .woocommerce-tabs .tabs.wc-tabs li::after {
        display: none !important;
        content: none !important;
    }

    .woocommerce-tabs .tabs.wc-tabs li a {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-height: 38px;
        min-width: clamp(92px, 7vw, 124px);
        padding: 10px 18px;
        border: none;
        border-radius: 999px;
        background: transparent;
        color: #3f3a36 !important;
        text-decoration: none;
        white-space: nowrap;
        font-size: clamp(0.875rem, 0.84rem + 0.15vw, 1rem);
        font-weight: 600;
        line-height: 1.2;
        opacity: 1 !important;
        visibility: visible !important;
        transition: background-color .2s ease, color .2s ease, box-shadow .2s ease;
    }

    .woocommerce-tabs .tabs.wc-tabs li a:hover,
    .woocommerce-tabs .tabs.wc-tabs li a:focus {
        background: rgba(184, 154, 122, 0.15);
        color: #3f3a36 !important;
        text-decoration: none;
    }

    .woocommerce-tabs .tabs.wc-tabs li.active a,
    .woocommerce div.product div.woocommerce-tabs ul.tabs li.active a {
        background: var(--theme-palette-color-2);
        color: #3f3a36 !important;
        border-radius: 20px;
    }

    .woocommerce div.product div.woocommerce-tabs ul.tabs li.active::before,
    .woocommerce div.product div.woocommerce-tabs ul.tabs li.active::after {
        display: none !important;
        content: none !important;
    }

    .woocommerce-tabs .panel,
    .woocommerce-tabs .woocommerce-Tabs-panel {
        width: 100%;
        max-width: 100%;
        min-width: 0;
        margin: 0;
        padding: 0;
        border: none;
        background: transparent;
    }

    /* ======================================================
     * SUMMARY — WYMIARY PRAWEJ KOLUMNY; STICKY OBSŁUGUJE BLOCKSY
     * ====================================================== */

    .product-entry-wrapper.is-width-constrained > .summary.entry-summary.entry-summary-items,
    .product-entry-wrapper.is-width-constrained > .summary.entry-summary {
        inline-size: 100%;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        justify-self: stretch;
        align-self: start;

        overflow-x: clip;
        overflow-y: visible;
        container-type: inline-size;
    }

    .product-entry-wrapper.is-width-constrained > .summary.entry-summary.entry-summary-items > *,
    .product-entry-wrapper.is-width-constrained > .summary.entry-summary > * {
        width: 100%;
        max-width: 100%;
        min-width: 0;
        box-sizing: border-box;
    }

    /* ======================================================
     * SUMMARY HEADER / TITLE / WISHLIST
     * ====================================================== */

    .summary.entry-summary .fc-summary-header {
        display: flex;
        align-items: flex-start;
        gap: clamp(8px, 1vw, 16px);
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }

    .summary.entry-summary .fc-summary-header > h1.product_title {
        flex: 1 1 auto;
        min-width: 0;
        max-width: 100%;
        margin: 0;
        line-height: 1.08;
        font-weight: 400;
    }

    .summary.entry-summary .fc-summary-header .product_title,
    .summary.entry-summary .fc-summary-header .product_title span {
        display: block;
        min-width: 0;
        max-width: 100%;
        white-space: normal;
        overflow-wrap: anywhere;
        word-break: break-word;
        hyphens: auto;
    }

    /* Jeden układ tytułu na desktopie i mobile: dwie czytelne linie. */
    .summary.entry-summary .fc-summary-header > h1.product_title.fc-product-title {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 0.35rem;
    }

    .summary.entry-summary .fc-summary-header .product_title .paese-title-lead {
        font-size: clamp(1.375rem, 1.15rem + 0.7vw, 1.625rem);
        font-weight: 700;
        text-transform: uppercase;
        line-height: 1.05;
        text-wrap: balance;
    }

    .summary.entry-summary .fc-summary-header .product_title .paese-title-rest {
        font-size: clamp(1.375rem, 1.15rem + 0.7vw, 1.625rem);
        font-weight: 400;
        line-height: 1.35;
        text-transform: none;
    }

    .summary.entry-summary .fc-summary-wishlist {
        flex: 0 0 auto;
    }

    .summary.entry-summary .fc-summary-wishlist .yith-wcwl-add-to-wishlist-button__label {
        display: none !important;
    }

    .summary.entry-summary .fc-summary-wishlist .yith-wcwl-add-to-wishlist-button {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 40px;
        height: 40px;
        padding: 0 !important;
        border: none !important;
        background: transparent !important;
        box-shadow: none !important;
    }

    .summary.entry-summary .fc-summary-wishlist .yith-wcwl-icon {
        display: block;
        width: 36px;
        height: 36px;
    }

    /* YITH PHP renderer (used to avoid REST calls on page load). */
    .summary.entry-summary .fc-summary-wishlist .yith-wcwl-add-to-wishlist {
        width: 40px;
        height: 40px;
        margin: 0;
    }

    .summary.entry-summary .fc-summary-wishlist .yith-wcwl-add-to-wishlist a {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 40px;
        height: 40px;
        min-height: 0 !important;
        padding: 0;
        font-size: 0;
        line-height: 0;
        border: 0;
        border-radius: 0 !important;
        background: transparent;
        box-shadow: none;
        transform: none !important;
        filter: none !important;
        transition: none !important;
    }

    /*
     * Wishlist w nagłówku produktu ma własną ikonę stanu, dlatego nie
     * dziedziczy efektów hover zwykłych przycisków motywu.
     */
    .summary.entry-summary .fc-summary-wishlist .yith-wcwl-add-to-wishlist a:hover {
        color: inherit !important;
        border-color: transparent !important;
        background: transparent !important;
        box-shadow: none !important;
        opacity: 1 !important;
        transform: none !important;
        filter: none !important;
        transition: none !important;
    }

    .summary.entry-summary .fc-summary-wishlist .yith-wcwl-add-to-wishlist a:hover img {
        opacity: 1 !important;
        transform: none !important;
        filter: none !important;
        transition: none !important;
    }

    .summary.entry-summary .fc-summary-wishlist .yith-wcwl-add-to-wishlist i {
        font-size: 32px;
        line-height: 1;
    }

    .summary.entry-summary .fc-summary-wishlist .yith-wcwl-add-to-wishlist .feedback {
        display: none;
    }

    /* ======================================================
     * TEXT / DESCRIPTION / META
     * ====================================================== */

    .summary.entry-summary,
    .summary.entry-summary p,
    .summary.entry-summary .woocommerce-product-details__short-description,
    .summary.entry-summary .woocommerce-product-details__short-description p,
    .summary.entry-summary .product_meta,
    .summary.entry-summary .stock,
    .summary.entry-summary .posted_in,
    .summary.entry-summary .sku_wrapper,
    .summary.entry-summary .fc-summary-price,
    .summary.entry-summary .fc-summary-price *,
    .summary.entry-summary .ct-cart-actions,
    .summary.entry-summary .ct-cart-actions *,
    .summary.entry-summary .ct-payment-methods,
    .summary.entry-summary .ct-payment-methods *,
    .summary.entry-summary .fc-variation-swatches,
    .summary.entry-summary .fc-variation-swatches *,
    .summary.entry-summary .fc-swatches--single,
    .summary.entry-summary .fc-swatches--single *,
    .summary.entry-summary .variations,
    .summary.entry-summary .variations * {
        max-width: 100%;
        min-width: 0;
        overflow-wrap: anywhere;
        word-break: break-word;
    }

    /* ======================================================
     * PRICE
     * ====================================================== */

    .entry-summary .price,
    .fc-summary-price {
        width: 100%;
        max-width: 100%;
        min-width: 0;
        font-size: clamp(1.45rem, 1.18rem + 0.8vw, 2.2rem);
        line-height: 1.1;
    }

    .fc-card-unit-price {
        font-size: clamp(0.8125rem, 0.78rem + 0.15vw, 0.95rem);
        line-height: 1.35;
    }

    /* ======================================================
     * VARIATIONS
     * ====================================================== */

    .variations {
        width: 100%;
        max-width: 100%;
        min-width: 0;
        table-layout: fixed;
    }

    .variations th,
    .variations td {
        min-width: 0;
        max-width: 100%;
        overflow-wrap: anywhere;
        word-break: break-word;
    }

    .variations td.value {
        display: block;
        width: 100%;
        max-width: 100%;
    }

    .variations select[name="attribute_pa_kolor"] {
        display: none !important;
    }

    /* ======================================================
     * SWATCHES
     * ====================================================== */

    .fc-variation-swatches,
    .fc-swatches--single {
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
        width: 100%;
        max-width: 100%;
        min-width: 0;
        margin-top: 8px;
    }

    .fc-variation-swatches .fc-swatch {
        position: relative;
        flex: 0 0 auto;
        width: 28px;
        height: 28px;
        border-radius: 50%;
        border: 1px solid #d8d2c8;
        cursor: pointer;
        transition: transform .15s ease, box-shadow .15s ease;
    }

    .fc-variation-swatches .fc-swatch:hover {
        transform: scale(1.05);
    }

    .fc-variation-swatches .fc-swatch.is-active {
        box-shadow: 0 0 0 2px var(--theme-palette-color-1);
    }

    .fc-swatches--single .fc-swatch--text {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-height: 32px;
        max-width: 100%;
        padding: 6px 14px;
        font-size: clamp(0.8125rem, 0.78rem + 0.15vw, 0.9375rem);
        font-weight: 500;
        line-height: 1.2;
        background: var(--theme-palette-color-2);
        border: 1px solid var(--theme-palette-color-1);
        color: var(--theme-palette-color-5);
        white-space: normal;
        overflow-wrap: anywhere;
        word-break: break-word;
        cursor: pointer;
        transition: background-color .15s ease, color .15s ease, border-color .15s ease;
    }

    .fc-swatches--single .fc-swatch--text:hover {
        background: #eee9e3;
    }

    .fc-swatches--single .fc-swatch--text.is-active {
        background: var(--theme-palette-color-1);
        color: #fff;
        border-color: var(--theme-palette-color-1);
        border-radius: 4px;
        box-shadow: none;
    }

    .fc-swatch.is-active::after {
        content: "";
        position: absolute;
        inset: -4px;
        border: 2px solid currentColor;
        border-radius: 50%;
        opacity: .9;
    }

    .fc-swatch--text.is-active::after {
        content: none !important;
    }

    /* ======================================================
     * CTA
     * ====================================================== */

    .ct-cart-actions {
        display: grid;
        grid-template-columns: minmax(104px, auto) minmax(0, 1fr);
        gap: 12px;
        width: 100%;
        max-width: 100%;
        min-width: 0;
        align-items: stretch;
    }

    .ct-cart-actions > * {
        min-width: 0;
        max-width: 100%;
    }

    .ct-cart-actions .quantity {
        width: 100%;
        max-width: 100%;
    }

    .ct-cart-actions .single_add_to_cart_button,
    .ct-cart-actions .button {
        width: 100%;
        max-width: 100%;
        min-width: 0;
        font-size: clamp(0.875rem, 0.84rem + 0.15vw, 1rem);
    }

    /* ======================================================
     * PAYMENT
     * ====================================================== */

    .ct-payment-methods {
        width: 100%;
        max-width: 100%;
        min-width: 0;
        overflow: hidden;
    }

    .ct-payment-methods svg,
    .ct-payment-methods img {
        display: block;
        max-width: 100%;
        height: auto;
    }

    /* ======================================================
     * WOO VARIATION PRICE — HIDE
     * ====================================================== */

    .woocommerce-variation-price,
    .woocommerce-variation-price .price {
        display: none !important;
    }

    .single_variation {
        width: 100%;
        max-width: 100%;
        min-width: 0;
        margin: 0;
        padding: 0;
    }

    /* Price visibility is controlled by the PHP renderer. */

    .fc-summary-price {
        position: relative;
        z-index: 2;
        width: 100%;
        max-width: 100%;
    }
}

/* ======================================================
 * LAPTOP — TIGHTER RATIO
 * ====================================================== */

@media (min-width: 1025px) and (max-width: 1280px) {
    .product-entry-wrapper.is-width-constrained {
        grid-template-columns: minmax(0, 1.08fr) minmax(300px, 0.86fr);
        column-gap: 24px;
    }

    .product-entry-wrapper.is-width-constrained > .fc-gallery-wrap {
        padding: 22px;
        border-radius: 24px;
    }

    .summary.entry-summary .fc-summary-header > h1.product_title {
        font-size: clamp(1.6rem, 1.15rem + 0.9vw, 2.2rem);
    }

    .entry-summary .price,
    .fc-summary-price {
        font-size: clamp(1.3rem, 1.08rem + 0.5vw, 1.85rem);
    }
}

/* ======================================================
 * PAESE PRODUCT REVIEWS — CUSTOM SECTION
 * ====================================================== */

.paese-product-reviews {
    margin: 40px 0 32px;
}

.paese-product-reviews__inner {
    width: 100%;
    max-width: var(--theme-container-width, 1320px);
    margin: 0 auto;
    padding: 0;
    box-sizing: border-box;
}

.paese-product-reviews__box {
    background: #f7f2ed;
    border: 1px solid rgba(180, 147, 115, 0.18);
    border-radius: 22px;
    padding: clamp(20px, 2.3vw, 34px);
    box-sizing: border-box;
}

.paese-product-reviews__grid {
    display: grid;
    grid-template-columns: minmax(280px, 340px) minmax(0, 1fr);
    gap: clamp(26px, 4vw, 54px);
    align-items: start;
}

/* ======================================================
 * LEFT
 * ====================================================== */

.paese-reviews-summary__title {
    margin: 0 0 18px;
    font-size: clamp(22px, 2vw, 34px);
    line-height: 1.15;
    font-weight: 500;
    text-transform: uppercase;
    color: #2f3440;
}

.paese-reviews-summary__avg-row {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 10px;
}

.paese-reviews-summary__avg {
    font-size: clamp(34px, 3vw, 48px);
    line-height: 1;
    font-weight: 500;
    color: #2f3440;
}

.paese-reviews-summary__count {
    margin-bottom: 18px;
    font-size: 15px;
    color: #666d78;
}

.paese-reviews-summary__toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    width: 100%;
    padding: 12px 18px;
    border: 0;
    border-radius: 12px;
    background: #b49373;
    color: #fff;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    cursor: pointer;
    transition: opacity .2s ease, transform .2s ease;
    margin-bottom: 22px;
}

.paese-reviews-summary__toggle:hover {
    opacity: .92;
    transform: translateY(-1px);
}

.paese-reviews-summary__bars {
    display: grid;
    gap: 10px;
}

.paese-rating-row {
    display: grid;
    grid-template-columns: 18px 18px minmax(0, 1fr) 34px;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    color: #2f3440;
}

.paese-rating-row__star {
    color: #b49373;
    font-size: 15px;
    line-height: 1;
}

.paese-rating-row__bar {
    height: 8px;
    background: #e7ddd4;
    border-radius: 999px;
    overflow: hidden;
}

.paese-rating-row__bar span {
    display: block;
    height: 100%;
    background: #b49373;
    border-radius: 999px;
}

.paese-rating-row__count {
    text-align: right;
    color: #666d78;
}

.paese-review-form-wrap {
    margin-top: 24px;
    padding-top: 20px;
    border-top: 1px solid rgba(47, 52, 64, 0.1);
}

.paese-review-form-wrap[hidden] {
    display: none !important;
}

.paese-review-form-wrap .comment-reply-title {
    display: block;
    margin: 0 0 16px;
    font-size: 20px;
    font-weight: 600;
    color: #2f3440;
}

.paese-review-form-wrap label {
    display: block;
    margin-bottom: 6px;
    font-size: 14px;
    color: #5f6470;
}

.paese-review-form-wrap input[type="text"],
.paese-review-form-wrap input[type="email"],
.paese-review-form-wrap textarea,
.paese-review-form-wrap select {
    width: 100%;
    min-height: 46px;
    padding: 12px 14px;
    border: 1px solid #ddd1c5;
    border-radius: 12px;
    background: #fff;
    box-sizing: border-box;
    color: #2f3440;
}

.paese-review-form-wrap textarea {
    min-height: 130px;
    resize: vertical;
}

.paese-review-form-wrap .comment-form-rating,
.paese-review-form-wrap .comment-form-author,
.paese-review-form-wrap .comment-form-email,
.paese-review-form-wrap .comment-form-comment {
    margin-bottom: 14px;
}

.paese-review-form-wrap .comment-form-cookies-consent {
    margin: 12px 0 0;
    font-size: 13px;
    color: #666d78;
}

.paese-review-form-wrap .comment-form-cookies-consent label {
    display: inline;
    margin: 0 0 0 6px;
    font-size: 13px;
    color: #666d78;
}

.paese-review-form-wrap .form-submit {
    margin: 18px 0 0;
}

.paese-review-form-wrap .submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    padding: 12px 18px;
    border: 0;
    border-radius: 12px;
    background: #b49373;
    color: #fff;
    font-size: 14px;
    font-weight: 600;
    text-transform: uppercase;
    cursor: pointer;
    transition: opacity .2s ease, transform .2s ease;
}

.paese-review-form-wrap .submit:hover {
    opacity: .92;
    transform: translateY(-1px);
}

/* ======================================================
 * RIGHT
 * ====================================================== */

.paese-reviews-list__items {
    display: grid;
    gap: 18px;
}

.paese-review-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 220px;
    gap: 22px;
    padding: 0 0 18px;
    border-bottom: 1px solid rgba(47, 52, 64, 0.12);
}

.paese-review-card:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.paese-review-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 14px;
    margin-bottom: 10px;
    font-size: 14px;
    color: #7f8590;
}

.paese-review-card__author {
    font-weight: 600;
    color: #2f3440;
}

.paese-review-card__date {
    color: #7f8590;
}

.paese-review-card__content {
    font-size: 15px;
    line-height: 1.7;
    color: #3f4550;
}

.paese-review-card__content p:last-child {
    margin-bottom: 0;
}

.paese-review-card__side {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 16px;
    text-align: right;
}

.paese-review-card__rating {
    display: flex;
    align-items: center;
    gap: 10px;
}

.paese-review-card__rating-value {
    font-size: 15px;
    font-weight: 500;
    color: #2f3440;
}

.paese-review-card__votes {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
}

.paese-review-card__votes-label {
    display: block;
    margin-bottom: 8px;
    font-size: 13px;
    color: #7f8590;
}

.paese-review-card__vote-row {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    flex-wrap: wrap;
}

.paese-review-vote {
    padding: 0;
    border: 0;
    background: transparent;
    color: #2f3440;
    font-size: 14px;
    cursor: pointer;
    transition: opacity .2s ease;
}

.paese-review-vote:hover {
    opacity: .72;
}

.paese-review-vote span {
    color: #7f8590;
}

/* ======================================================
 * STARS
 * ====================================================== */

.paese-review-stars {
    position: relative;
    display: inline-block;
    font-size: 22px;
    line-height: 1;
    letter-spacing: 2px;
    color: #e3d7cc;
}

.paese-review-stars__base {
    display: block;
}

.paese-review-stars__fill {
    position: absolute;
    inset: 0 auto 0 0;
    overflow: hidden;
    white-space: nowrap;
    color: #b49373;
}

/* ======================================================
 * EMPTY
 * ====================================================== */

.paese-reviews-list__empty {
    font-size: 15px;
    color: #666d78;
}

/* ======================================================
 * MOBILE
 * ====================================================== */

@media (max-width: 1024px) {
    .paese-product-reviews__grid {
        grid-template-columns: 1fr;
    }

    .paese-review-card {
        grid-template-columns: 1fr;
    }

    .paese-review-card__side {
        align-items: flex-start;
        text-align: left;
    }

    .paese-review-card__votes {
        align-items: flex-start;
    }

    .paese-review-card__vote-row {
        justify-content: flex-start;
    }
}

@media (max-width: 767px) {
    .paese-product-reviews {
        margin: 28px 0 24px;
    }

    .paese-product-reviews__inner {
        padding: 0 12px;
    }

    .paese-product-reviews__box {
        border-radius: 18px;
        padding: 18px;
    }

    .paese-review-stars {
        font-size: 18px;
    }

    .paese-reviews-summary__avg {
        font-size: 34px;
    }

    .paese-reviews-summary__toggle,
    .paese-review-form-wrap .submit {
        width: 100%;
    }
}

/* ======================================================
 * REVIEWS — LOAD MORE
 * ====================================================== */

.paese-reviews-list__actions {
    margin-top: 24px;
    display: flex;
    justify-content: center;
}

.paese-reviews-load-more {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-width: 220px;
    min-height: 48px;
    padding: 12px 22px;
    border: 1px solid #b49373;
    border-radius: 12px;
    background: transparent;
    color: #b49373;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    cursor: pointer;
    transition: opacity .2s ease, transform .2s ease, background .2s ease, color .2s ease;
}

.paese-reviews-load-more:hover {
    background: #b49373;
    color: #fff;
    transform: translateY(-1px);
}

.paese-reviews-load-more__text {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.paese-reviews-load-more__loader {
    display: none;
    width: 16px;
    height: 16px;
    border: 2px solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
    animation: paese-load-more-spin 0.7s linear infinite;
    flex: 0 0 16px;
}

.paese-reviews-load-more.is-loading {
    pointer-events: none;
    opacity: 0.82;
}

.paese-reviews-load-more.is-loading .paese-reviews-load-more__loader {
    display: inline-block;
}

@keyframes paese-load-more-spin {
    to {
        transform: rotate(360deg);
    }
}

/* ======================================================
 * REVIEW FORM — REQUIRED STAR RATING
 * ====================================================== */

.paese-comment-form-rating {
    margin-bottom: 16px;
}

.paese-comment-form-rating > .stars,
.paese-comment-form-rating p.stars,
.paese-comment-form-rating select#rating,
.paese-comment-form-rating .select2,
.paese-comment-form-rating .woocommerce-product-rating,
.paese-comment-form-rating .star-rating:not(.comment-form-rating__stars) {
    display: none !important;
}

.paese-comment-form-rating > label {
    display: block;
    margin-bottom: 8px;
    font-size: 14px;
    color: #5f6470;
    text-transform: uppercase;
    font-weight: 600;
    line-height: 1.35;
}

.comment-form-rating__stars {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.comment-form-rating__stars .rating-star {
    padding: 0;
    border: 0;
    background: transparent;
    font-size: 30px;
    line-height: 1;
    color: #d9cec2;
    cursor: pointer;
    transition: transform .15s ease, color .15s ease, opacity .15s ease;
}

.comment-form-rating__stars .rating-star:hover {
    transform: scale(1.08);
    color: #b49373;
}

.comment-form-rating__stars .rating-star.is-active {
    color: #b49373;
}

.paese-review-form-wrap input#rating {
    position: absolute;
    opacity: 0;
    pointer-events: none;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

.paese-review-form-wrap textarea#comment {
    min-height: 130px;
}

/* ======================================================
 * REVIEW FORM — ACCESS NOTE
 * ====================================================== */

.paese-review-login-note {
    margin-top: 24px;
    padding-top: 20px;
    border-top: 1px solid rgba(47, 52, 64, 0.1);
}

.paese-review-login-note__text {
    margin: 0 0 14px;
    font-size: 14px;
    line-height: 1.6;
    color: #5f6470;
}

.paese-review-login-note__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 10px 18px;
    border-radius: 12px;
    background: #b49373;
    color: #fff;
    text-decoration: none;
    font-size: 14px;
    font-weight: 600;
    transition: opacity .2s ease, transform .2s ease;
}

.paese-review-login-note__button:hover {
    opacity: .92;
    transform: translateY(-1px);
    color: #fff;
    text-decoration: none;
}

/* ======================================================
 * REVIEWS — FILTER / VOTES / STATES
 * ====================================================== */

.paese-reviews-summary__count {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    width: auto;
    padding: 0;
    margin: 0 0 18px;
    border: 0;
    background: transparent;
    color: #666d78;
    font-size: 15px;
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.paese-reviews-summary__count:hover,
.paese-reviews-summary__count.is-active {
    color: #2f3440;
}

.paese-rating-row__bar {
    appearance: none;
    border: 0;
    padding: 0;
    cursor: pointer;
}

.paese-rating-row__count {
    appearance: none;
    border: 0;
    background: transparent;
    padding: 0;
    text-align: right;
    color: #666d78;
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.paese-rating-row__count:hover,
.paese-rating-row__count.is-active,
.paese-rating-row.is-active .paese-rating-row__count {
    color: #2f3440;
    font-weight: 600;
}

.paese-rating-row.is-active .paese-rating-row__bar span {
    background: #8f6e4f;
}

.paese-reviews-list__topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 18px;
}

.paese-reviews-list__filter-label {
    font-size: 15px;
    font-weight: 600;
    color: #2f3440;
}

.paese-reviews-list__reset {
    padding: 0;
    border: 0;
    background: transparent;
    color: #b49373;
    font-size: 14px;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
    cursor: pointer;
}

.paese-reviews-list__items.is-loading {
    opacity: 0.55;
    pointer-events: none;
    transition: opacity .2s ease;
}

.paese-review-vote {
    position: relative;
}

.paese-review-vote.is-active {
    color: #8f6e4f;
    font-weight: 700;
}

.paese-review-card__votes.is-loading {
    opacity: 0.7;
    pointer-events: none;
}

.paese-review-card__vote-message {
    margin-top: 6px;
    min-height: 18px;
    font-size: 12px;
    color: #7f8590;
}

@media (max-width: 767px) {
    .paese-reviews-list__topbar {
        flex-direction: column;
        align-items: flex-start;
    }
}

/* ======================================================
   PRODUCT QUESTION SECTION — CENTERED
====================================================== */

.paese-product-question-section {
    width: 100%;
    max-width: var(--theme-container-width);
    height: auto;
    margin: 0 auto;
    padding: 0;
    text-align: center;
}

.paese-product-question-section__inner {
    width: 100%;
    margin: 0 auto;
}

.paese-product-question-section__box {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 22px;
    width: 100%;
    text-align: center;
}

.paese-product-question-section__content {
    width: 100%;
    max-width: 760px;
    margin: 0 auto;
    text-align: center;
}

.paese-product-question-section__eyebrow {
    display: inline-flex;
    justify-content: center;
    text-align: center;
}

.paese-product-question-section__title {
    margin-left: auto;
    margin-right: auto;
    text-align: center;
}

.paese-product-question-section__text {
    max-width: 680px;
    margin-left: auto;
    margin-right: auto;
    text-align: center;
}

.paese-product-question-section__action {
    display: flex;
    justify-content: center;
    width: 100%;
}

.paese-product-question-section__button {
    margin: 0 auto;
}

/* Pozwól zaznaczać i kopiować treść desktopowych oraz mobilnych zakładek. */
.woocommerce-tabs .woocommerce-Tabs-panel,
.woocommerce-tabs .woocommerce-Tabs-panel :where(
    p,
    li,
    div,
    span,
    strong,
    em,
    h2,
    h3,
    h4,
    td,
    th
),
.fc-mobile-tab-content,
.fc-mobile-tab-content :where(
    p,
    li,
    div,
    span,
    strong,
    em,
    h2,
    h3,
    h4,
    td,
    th
) {
    -webkit-user-select: text !important;
    user-select: text !important;
}

/*
 * Mobilny tytuł produktu odwzorowuje desktop: nazwa linii produktowej i opis
 * zawsze zajmują osobne wiersze. Reguła jest celowo na końcu arkusza, aby
 * integracje Blocksy/YITH nie mogły ponownie ustawić spanów jako inline.
 */
@media (max-width: 1024px) {
    body.single-product
    .summary.entry-summary
    .fc-summary-header
    > h1.product_title.entry-title.fc-product-title {
        display: flex !important;
        flex: 1 1 auto;
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 0.3rem !important;
        min-width: 0;
        margin: 0 !important;
    }

    body.single-product
    .summary.entry-summary
    .fc-summary-header
    > h1.product_title.entry-title.fc-product-title
    > .paese-title-lead,
    body.single-product
    .summary.entry-summary
    .fc-summary-header
    > h1.product_title.entry-title.fc-product-title
    > .paese-title-rest {
        display: block !important;
        width: 100% !important;
        max-width: 100%;
        margin: 0 !important;
        padding: 0 !important;
        font-size: clamp(1.125rem, 5.2vw, 1.375rem) !important;
        white-space: normal !important;
    }

    body.single-product
    .summary.entry-summary
    .fc-summary-header
    > h1.product_title.entry-title.fc-product-title
    > .paese-title-lead {
        font-weight: 700 !important;
        line-height: 1.05 !important;
        text-transform: uppercase !important;
    }

    body.single-product
    .summary.entry-summary
    .fc-summary-header
    > h1.product_title.entry-title.fc-product-title
    > .paese-title-rest {
        font-weight: 400 !important;
        line-height: 1.35 !important;
        text-transform: none !important;
    }
}
