:root {
    /* Primary colors */
    --color-primary: #002E5E;
    --color-white: #fff;
    --color-light-gray: #f3f3f3;

    /* Spacing scale */
    --space-xs: 0.2rem;
    --space-sm: 0.4rem;
    --space-md: 0.8rem;
    --space-lg: 1.2rem;
    --space-xl: 1.6rem;
    --space-2xl: 2rem;
    --space-3xl: 3.2rem;
    --space-4xl: 4rem;
    --space-5xl: 6rem;

    /* Border radius */
    --radius: 0.8rem;

    /* Typography */
    --font-heading: 'Oswald', sans-serif;

    /* Transitions */
    --transition-fast: all 0.2s;
    --transition-base: all 0.5s;

    /* Sizing */
    --button-size: 4rem;
}

.pdRecoCarousel {
    h2 {
        margin-bottom: var(--space-2xl);
    }

    &.newRecommendations {
        h2 {
            font-weight: 600;
        }

        .pdRecoCarousel__recommendations:nth-child(2n+1) {
            margin-top: var(--space-2xl);
        }

        .newRecommendations__bloc .swiper-scrollbar {
            width: 100%;
            left: 0;
        }
    }
}

.newRecommendations {
    > .recom-calloutMsg,
    > h2.recom-calloutMsg {
        margin-bottom: var(--space-2xl);
        font-family: var(--font-heading);
        color: var(--color-primary);
        font-size: 2.8rem;
        font-weight: 600;
        line-height: var(--space-3xl);
        text-transform: none;
        text-align: left;
        display: flex;
        justify-content: space-between;
        align-items: center;

        .swiper-buttons {
            display: none;
            z-index: 1;
            justify-content: center;
            align-items: center;

            .swiper-button-next,
            .swiper-button-prev {
                position: unset;
                border: 1px solid var(--color-primary);
                border-radius: var(--radius);
                background: var(--color-white);
                width: var(--button-size);
                height: var(--button-size);
                z-index: 1;
                display: flex;
                justify-content: center;
                align-items: center;
                text-align: center;
                color: var(--color-primary);
                transition: var(--transition-fast);
                cursor: pointer;

                &::before {
                    display: none;
                }

                &:hover,
                &:focus {
                    background: rgba(255, 255, 255, 1);
                    transition: var(--transition-base);
                }

                &.swiper-button-disabled {
                    display: flex;
                }
            }
        }
    }

    @media screen and (min-width: 1024px) {
        > .recom-calloutMsg,
        > h2.recom-calloutMsg {
            font-size: 3.4rem;
            line-height: 4rem;

            .swiper-buttons {
                display: flex;
                gap: var(--space-lg);
            }
        }
    }
}

.newRecommendations__bloc {
    margin: 0;
    padding: 0;

    ul {
        display: flex;
    }

    .recom-calloutMsg,
    .recom-calloutMsg p {
        margin-bottom: var(--space-2xl);
        font-family: var(--font-heading);
        color: var(--color-primary);
        font-size: 2.8rem;
        font-weight: 600;
        line-height: var(--space-3xl);
        text-transform: none;
        text-align: left;
        display: flex;
        justify-content: space-between;
    }

    .swiper-container {
        position: relative;
        display: flex;
        flex-direction: column;
        margin: var(--space-2xl) calc(-1 * var(--space-2xl));
        padding: 0 var(--space-2xl);
    }

    .swiper-wrapper {
        align-items: flex-start;
        list-style-type: none;
        margin: 0;
        padding: 0 0 var(--space-2xl);

        .product-tile {
            .wishlist {
                top: var(--space-lg);
                right: var(--space-lg);

                a {
                    color: var(--color-primary);
                    font-size: 2.2rem;
                    height: 2.4rem;
                    width: 2.4rem;
                    border-radius: var(--radius);
                    margin: 0;

                    .filled-heart-icon {
                        display: none;
                    }

                    .empty-heart-icon {
                        display: block;
                    }

                    svg {
                        position: absolute;
                        top: 50%;
                        left: 50%;
                        transform: translate(-50%, -50%);
                    }

                    &::before {
                        display: none;
                    }

                    &.in-wishlist {
                        .filled-heart-icon {
                            display: block;
                        }

                        .empty-heart-icon {
                            display: none;
                        }
                    }
                }
            }

            .product-image {
                img {
                    border-radius: var(--radius);
                }

                .quickview-newproducttile {
                    a {
                        border-radius: var(--radius);

                        svg {
                            display: block;
                        }

                        &::before {
                            display: none;
                        }
                    }
                }
            }

            .product-tile-top,
            .product-tile-bottom {
                margin-bottom: var(--space-md);
            }

            .inline_rating_container {
                order: 3;
            }
        }
    }

    .grid-tile {
        width: 15.5rem;
        display: flex;

        .product-name {
            margin-top: 0;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;

            .name-link {
                font-size: 1.8rem;
                text-transform: unset;
                font-weight: 600;
            }
        }

        .product-tile-bottom {
            display: flex;
            align-items: center;
            margin-bottom: var(--space-lg);

            p {
                margin-bottom: 0;
            }

            .product-pricing {
                flex-direction: column;
                align-items: flex-start;
                gap: var(--space-md);

                .display-pricing-cart-reco-standard,
                .display-pricing-cart {
                    display: flex;
                    gap: var(--space-md);
                    align-items: center;

                    .product-standard-price {
                        color: var(--color-primary);
                        font-size: 1.4rem;
                        font-weight: 400;
                        text-decoration-line: line-through;
                        background-image: unset;
                        margin-left: 0;
                    }

                    .product-sales-price {
                        font-size: var(--space-xl);
                        font-weight: 600;
                        color: var(--color-primary);
                    }
                }
            }
        }

        .number-colors {
            margin-top: 12px;

            a {
                color: var(--color-primary);
            }
        }

        .quickview-newproducttile {
            align-self: flex-start;
        }
    }

    .swiper-scrollbar {
        top: calc(100% - var(--space-sm));
        left: var(--space-5xl);
        height: var(--space-xs);
        width: calc(100% - 8rem);
        background: var(--color-light-gray);
        border-radius: 2px;
        cursor: pointer;
        transition: var(--transition-fast);

        &:hover,
        &:focus,
        &:active {
            height: var(--space-sm);
            transform: translateY(-0.1rem);
            transition: var(--transition-fast);
        }

        .swiper-scrollbar-drag {
            background-color: var(--color-primary);
            border-radius: 2px;

            &:hover,
            &:focus,
            &:active {
                height: var(--space-sm);
                transform: translateY(-0.1rem);
                transition: var(--transition-fast);
            }
        }
    }

    .swiper-buttons {
        display: none;
        z-index: 1;
        justify-content: center;
        align-items: center;

        &:has(.swiper-button-prev.swiper-button-disabled):has(.swiper-button-next.swiper-button-disabled),
        &:has(.abtasty-nav-prev.disabled):has(.abtasty-nav-next.disabled) {
            display: none;
        }

        .swiper-button-next,
        .swiper-button-prev {
            position: unset;
            border: 1px solid var(--color-primary);
            border-radius: var(--radius);
            background: var(--color-white);
            width: var(--button-size);
            height: var(--button-size);
            z-index: 1;
            display: flex;
            justify-content: center;
            align-items: center;
            text-align: center;
            color: var(--color-primary);
            transition: var(--transition-fast);
            cursor: pointer;

            &::before {
                display: none;
            }

            &:hover,
            &:focus {
                background: rgba(255, 255, 255, 1);
                transition: var(--transition-base);
            }

            &.swiper-button-disabled {
                display: flex;
            }
        }

        .swiper-button-prev {
            left: var(--space-5xl);
        }

        .swiper-button-next {
            right: var(--space-5xl);
        }
    }
}

/* Mobile styles (max-width: 1024px) */
@media screen and (max-width: 1023px) {
    .newRecommendations__bloc {
        .grid-tile .number-colors {
            margin-top: 8px;
        }

        .swiper-wrapper .product-tile {
            .wishlist {
                top: var(--space-md);
                right: var(--space-md);
            }

            .product-image .quickview-newproducttile {
                bottom: var(--space-md);
                right: var(--space-md);
            }
        }
    }
}

/* Desktop styles (min-width: 1024px) */
@media screen and (min-width: 1024px) {
    .newRecommendations__bloc {
        .recom-calloutMsg,
        .recom-calloutMsg p {
            font-size: 3.4rem;
            line-height: 4rem;
        }

        .swiper-container {
            padding: 0;
        }

        .grid-tile {
            width: 18.6rem;
        }

        .swiper-scrollbar {
            display: none;
        }

        .swiper-buttons {
            display: flex;
            gap: var(--space-lg);
        }
    }
}

@media screen and (min-width: 1440px) {
    .newRecommendations__bloc {
        .grid-tile {
            width: 22.2rem;
        }
    }
}
