.attps-uni-product-single {
    padding: var(--atb-space-8) 0;

    .atb-row {
        --atb-column-gap: 2rem;
        --atb-column-min-width: 300px;



    }
}

.attps-uni-product-single__content {
    display: flex;
    flex-direction: column;
    gap: var(--atb-space-6);

    .attps-uni-product-single__content__taxonomy {
        display: flex;
        flex-wrap: wrap;
        gap: var(--atb-space-2);

        .attps-uni-product-single__content__taxonomy__term {
            background-color: color-mix(in oklab, var(--atb-secondary) 5%, transparent);
            color: var(--atb-secondary, #3b3b3b);
            padding: 0.25rem 0.5rem;
            border-radius: 0.5rem;
            font-size: 0.875rem;
            font-weight: 500;
        }
    }

    .attps-uni-product-single__content__title {
        font-size: 3rem;
        font-weight: bold;
    }

    .attps-uni-product-single__content__description {
        font-family: var(--atb-font-condensed, inherit);
        font-weight: 300;
        font-size: 1rem;

        .attps-uni-truncated-text__toggle {
            font-weight: 500;
        }
    }

    .attps-uni-product-single__content__cartes {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
        gap: var(--atb-space-4);

        .attps-uni-product-single__content__cartes__item {
            background-color: color-mix(in oklab, var(--atb-primary) 5%, transparent);
            padding: 1rem;
            border-radius: var(--atb-radius-lg);
            text-align: center;
            line-height: var(--atb-leading-tight);

            .attps-uni-product-single__content__cartes__item__title {
                font-weight: 700;
                margin-bottom: 0.25rem;
                color: var(--atb-primary);
                font-size: 0.875rem;
                text-transform: uppercase;
            }

            .attps-uni-product-single__content__cartes__item__value {
                color: color-mix(in oklab, var(--atb-neutral) 95%, transparent);
                font-family: var(--atb-font-condensed, inherit);
                font-weight: bold;
                font-size: 1.125rem;
            }

            .attps-uni-product-single__content__cartes__item__description {
                color: color-mix(in oklab, var(--atb-neutral) 95%, transparent);
                font-family: var(--atb-font-condensed, inherit);
                font-weight: 300;
                font-size: 0.875rem;
            }

        }
    }

    .attps-uni-product-single__content__more-data {
        .atb-details-item {
            details {
                border: none;
                padding: 0;
                margin-bottom: 1rem;

                summary {
                    font-weight: 500;
                    cursor: pointer;
                    list-style: none;
                    display: flex;
                    gap: var(--atb-space-2);


                    &::-webkit-details-marker {
                        display: none;
                    }

                    .title {
                        font-family: var(--atb-font-condensed, inherit);
                        font-weight: 700;
                        color: color-mix(in oklab, var(--atb-neutral) 95%, transparent);
                        font-size: 1.125rem;
                    }

                    .icon-wrapper {
                        width: 25px;
                        height: 25px;
                        position: relative;
                        border-radius: var(--atb-radius-pill);
                        background-color: color-mix(in oklab, var(--atb-primary) 10%, transparent);

                        .plus,
                        .minus {
                            color: var(--atb-primary);
                            width: 25px;
                            height: 25px;
                            line-height: 25px;
                            display: block;
                            position: absolute;
                            top: 0;
                            left: 0;
                            right: 0;
                            bottom: 0;
                            text-align: center;
                            box-sizing: border-box;
                            transition: .5s all ease-out;
                        }

                        .plus {
                            opacity: 1;
                            transform: rotate(0deg);
                        }



                        .minus {
                            opacity: 0;
                            transform: rotate(-90deg);
                        }

                    }
                }

                &.active {
                    .icon-wrapper {
                        .plus {
                            opacity: 0;
                            transform: rotate(90deg);
                        }

                        .minus {
                            opacity: 1;
                            transform: rotate(0deg);
                        }
                    }
                }

                .atb-details-answer {
                    padding-top: 0.5rem;
                    padding-left: calc(25px + 0.5rem);

                    &>ul {
                        &>li {
                            &::marker {
                                color: var(--atb-primary);

                            }

                            li {
                                &::marker {
                                    color: color-mix(in oklab, var(--atb-primary) 50%, transparent);
                                }
                            }
                        }
                    }
                }
            }
        }
    }

    .attps-uni-product-single__content__labels_wrapper {
        .attps-uni-product-single__content__labels__title {
            display: flex;
            align-items: center;
            gap: var(--atb-space-2);

            .title {

                font-family: var(--atb-font-condensed, inherit);
                font-weight: 700;
                color: color-mix(in oklab, var(--atb-neutral) 95%, transparent);
                font-size: 1.125rem;
            }

            .icon-wrapper {
                width: 25px;
                height: 25px;
                position: relative;
                border-radius: var(--atb-radius-pill);
                background-color: color-mix(in oklab, var(--atb-primary) 10%, transparent);
                display: grid;
                place-items: center;



            }
        }

        .attps-uni-product-single__content__labels {
            display: flex;
            flex-wrap: wrap;
            gap: var(--atb-space-2);
            padding-left: calc(25px + 0.5rem);

            .attps-uni-product-single__content__labels__item {


                img {
                    max-height: 40px;
                    width: auto;
                    height: 100%;
                    object-fit: contain;
                    display: block;
                }
            }
        }
    }
}

.attps-uni-product-single__gallery {
    position: relative;
    aspect-ratio: 9/12;

    .attps-uni-product-single__gallery__logo {
        position: absolute;
        top: 1rem;
        right: 1rem;
        z-index: 2;
        max-width: max(20%, 100px);

        img {
            border-radius: var(--atb-radius-lg);
            box-shadow: rgba(0, 0, 0, 0.05) 0px 6px 24px 0px, rgba(0, 0, 0, 0.08) 0px 0px 0px 1px;


        }
    }

    .attps-uni-product-single__gallery__main {
        height: 100%;
        width: 100%;

        .swiper-wrapper {
            .swiper-slide {
                height: auto;

                img {
                    width: 100%;
                    height: 100%;
                    object-fit: cover;
                    border-radius: var(--atb-radius-lg);

                }
            }
        }
    }

    .attps-uni-product-single__gallery__thumbs {
        position: absolute;
        bottom: 0;
        left: 0;
        width: 100%;
        padding: 10px;
        box-sizing: border-box;

        .swiper-wrapper {
            .swiper-slide {
                height: auto;
                opacity: 0.5;

                img {
                    width: 100%;
                    aspect-ratio: 1 / 1;
                    object-fit: cover;
                    border-radius: var(--atb-radius-lg);
                    box-shadow: rgba(0, 0, 0, 0.05) 0px 6px 24px 0px, rgba(0, 0, 0, 0.08) 0px 0px 0px 1px;
                }

                &.swiper-slide-thumb-active {
                    opacity: 1;
                }
            }
        }
    }
}


/* ===================================================================
 * CATALOGUE FILTRÉ
 * ================================================================ */

.atb-row:has(.attps-uni-catalog) {
    overflow: visible;
}

.attps-uni-catalog {
    display: grid;
    grid-template-columns: minmax(220px, 340px) 1fr;
    gap: var(--atb-space-8);
    align-items: start;
    column-gap: 4.75rem;

    @media (max-width: 768px) {
        & {
            grid-template-columns: 1fr;
        }

    }
}

.attps-uni-catalog__sidebar {
    .attps-uni-catalog__filters-toggle {
        display: none;

        @media (max-width: 768px) {
            display: flex;

        }
    }

    .attps-uni-catalog__filters-wrapper {
        position: relative;
        border: none;
        padding: 0;
        background: none;
        background-color: var(--atb-light);
        border-radius: var(--atb-radius-lg);
        margin: 0;
        width: 100%;

        .attps-uni-catalog__filters-wrapper__close {
            position: absolute;
            top: 0.5rem;
            right: 0.5rem;
            cursor: pointer;
            font-size: 1.5rem;
            color: var(--atb-secondary);
            display: none;
            z-index: 10;

            @media (max-width: 768px) {
                display: block;
            }
        }

        .attps-uni-catalog__filters {
            display: flex;
            flex-direction: column;
            gap: var(--atb-space-4);
            background: color-mix(in oklab, var(--atb-secondary) 5%, transparent);
            padding: 1.25rem 2rem;
            border-radius: var(--atb-radius-lg);


            .attps-uni-catalog__filters__header {
                display: flex;
                align-items: center;
                gap: var(--atb-space-4);

                .atb-icon {
                    color: var(--atb-primary);
                    width: 2.5rem;


                    img,
                    svg {

                        &[fill]:not([fill="none"]) {
                            fill: currentColor;
                        }

                        &[stroke]:not([stroke="none"]) {
                            stroke: currentColor;
                        }


                        *[fill] {
                            fill: currentColor;
                        }

                        *[stroke] {
                            stroke: currentColor;
                        }
                    }
                }

                .attps-uni-catalog__filters__header__title {
                    font-weight: 700;
                    font-size: 1.25rem;
                    color: var(--atb-secondary);
                    padding: 0;
                }


            }

        }

        @media (max-width: 768px) {
            position: fixed;
            max-width: 90%;
            width: 400px;
            margin: auto;

            .attps-uni-catalog__filters {
                max-height: 80vh;
                max-height: 80dvh;
                overflow-y: auto;
            }

        }
    }




}

.attps-uni-catalog__terms {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex;
    flex-direction: column;
    gap: var(--atb-space-1);

    .attps-uni-catalog__term {
        display: block;
        padding: 0.75rem 1rem;
        border-radius: var(--atb-radius-pill);
        cursor: pointer;
        font-size: 0.95rem;
        transition: background-color 0.2s ease, color 0.2s ease;

        input {
            display: none;
        }

        &:hover {
            background-color: color-mix(in oklab, var(--atb-primary) 8%, transparent);
        }

        &.is-active {
            background-color: var(--atb-primary);
            color: var(--atb-light);
            font-weight: 600;
        }
    }
}

.attps-uni-catalog__filter {

    .attps-uni-catalog__filter__title {
        font-weight: 600;
        cursor: pointer;
        list-style: none;
        display: flex;
        justify-content: space-between;
        align-items: center;

        &::-webkit-details-marker {
            display: none;
        }

        a {
            width: 100%;
            /* Bouton rendu par le champ at_button : c'est son jeton qui pilote
               la couleur, plus l'ancienne variable --atb-btn-current-color. */
            --at-btn-current: var(--atb-grey);

            &:active {
                pointer-events: none;
            }

            .at-btn__icon--left {
                color: var(--atb-primary);
            }

            .at-btn__icon--right {
                margin-left: auto;
            }
        }
    }

    .attps-uni-catalog__filter__body {
        display: flex;
        flex-direction: column;
        gap: 0.4rem;
        padding-top: 0.6rem;
        padding-left: 1rem;
    }

    &.attps-uni-catalog__filter--checkbox .attps-uni-catalog__option--single {
        position: relative;
        display: inline-flex;
        align-items: center;
        justify-content: flex-start;
        gap: 0.5em;
        border-radius: var(--atb-radius-pill);
        padding: 0.75rem 1.5rem;
        transition: all 0.2s ease;
        font-size: 1rem;
        cursor: pointer;
        --atb-btn-current-color: var(--atb-grey);
        --atb-btn-text-color: var(--atb-btn-current-color, var(--atb-light));
        --atb-btn-bg-color: color-mix(in oklab, var(--atb-btn-current-color) 15%, var(--atb-light));
        border: 2px solid var(--atb-btn-bg-color, var(--atb-primary));

        background-color: var(--atb-btn-bg-color, var(--atb-grey));
        color: var(--atb-btn-text-color, contrast-color(var(--atb-btn-bg-color, var(--atb-grey))));
        width: 100%;

        input[type="checkbox"] {
            opacity: 0;
            pointer-events: none;
        }

        &::before {
            content: '';
            position: absolute;
            left: 1.5rem;
            top: 50%;
            transform: translateY(-50%);
            width: 1rem;
            height: 1rem;
            border: 2px solid var(--atb-btn-text-color, var(--atb-primary));
            transition: all 0.2s ease;
        }

        &::after {
            content: "\f00c";
            position: absolute;
            left: 1.7rem;
            top: 50%;
            transform: translateY(-50%);
            width: 1rem;
            height: 1rem;
            transition: all 0.2s ease;
            font-family: "Font Awesome 6 Pro";
            font-weight: bold;
            font-size: 1rem;
            line-height: 1;
            opacity: 0;
        }

        &:has(input:checked) {
            &::after {
                opacity: 1;
            }
        }


        &:has(input:checked),
        &:hover {
            scale: 1.02;
            --atb-btn-bg-color: var(--atb-btn-current-color, var(--atb-primary));
            --atb-btn-text-color: color-mix(in oklab, var(--atb-btn-current-color, var(--atb-primary)) 10%, var(--atb-light));

        }
    }

    &:open {
        .attps-uni-catalog__filter__title {
            .at-btn__icon--right {
                transform: rotate(90deg);
            }
        }
    }
}

.attps-uni-catalog__option {
    display: flex;
    align-items: center;
    gap: var(--atb-space-2);
    font-size: 0.9rem;
    cursor: pointer;

    input {
        accent-color: var(--atb-primary);
    }
}

.attps-uni-catalog__reset {
    margin-top: 0.5rem;
    background: none;
    border: none;
    color: var(--atb-primary);
    font-weight: 600;
    cursor: pointer;
    text-align: left;
    padding: 0;
}

.attps-uni-catalog__results {
    position: relative;
    min-height: 200px;
}

.attps-uni-catalog__count {
    font-size: 0.9rem;
    color: color-mix(in oklab, var(--atb-neutral) 70%, transparent);
    margin-bottom: 1rem;
}

.attps-uni-catalog__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: var(--atb-space-5);

    @media (max-width: 768px) {
        & {
            grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
            gap: var(--atb-space-2);

        }
    }
}

.attps-uni-catalog__card {
    background: var(--atb-light);
    border-radius: var(--atb-radius-lg);
    overflow: hidden;
    box-shadow: rgba(0, 0, 0, 0.05) 0px 6px 24px 0px, rgba(0, 0, 0, 0.08) 0px 0px 0px 1px;
    transition: transform 0.2s ease;

    &:hover {
        transform: translateY(-4px);
    }

    .attps-uni-catalog__card__link {
        display: block;
        color: inherit;
        text-decoration: none;
    }

    .attps-uni-catalog__card__image {
        position: relative;
        width: 100%;
        aspect-ratio: 1 / 1;

        img {
            width: 100%;
            height: 100%;
            object-fit: cover;
        }

        .attps-uni-catalog__card__labels {
            position: absolute;
            top: 0.5rem;
            left: 0.5rem;
            display: flex;
            gap: var(--atb-space-1);
            z-index: 2;

            img {
                width: auto;
                height: 24px;
                object-fit: contain;
            }
        }
    }

    .attps-uni-catalog__card__content {
        padding: 0.75rem 1rem 1rem;

        .attps-uni-catalog__card__marque {
            font-size: 0.75rem;
            color: var(--atb-primary);
        }

        .attps-uni-catalog__card__title {
            font-weight: 700;
            color: var(--atb-secondary);
            font-size: 1rem;
            margin: 0.1rem 0 0;
        }
    }
}

.attps-uni-catalog__empty {
    font-style: italic;
    color: color-mix(in oklab, var(--atb-neutral) 60%, transparent);
}



.attps-uni-product-single__related {
    background-color: color-mix(in oklab, var(--atb-grey) 10%, transparent);

    .atb-row {
        --atb-column-gap: 2rem;

        .atb-column {

            .attps-uni-product-single__related__list {
                display: flex;
                flex-wrap: wrap;

                justify-content: center;
                gap: var(--atb-space-4);

                .attps-uni-product-single__related__item {
                    width: min(100%, calc(15rem - 0.5rem));
                    box-sizing: border-box;
                    background: var(--atb-light);
                    border-radius: var(--atb-radius-lg);
                    overflow: hidden;

                    .attps-uni-product-single__related__item__image {
                        width: 100%;
                        aspect-ratio: 1 / 1;

                        img {
                            width: 100%;
                            height: 100%;
                            object-fit: cover;
                        }
                    }

                    .attps-uni-product-single__related__item__content {
                        padding: 1rem;

                        .attps-uni-product-single__related__item__title {
                            font-weight: 700;
                            color: var(--atb-secondary);
                            font-size: 1.25rem;
                        }
                    }

                }
            }

        }
    }
}