.attps-uni-truncated-text {

    .attps-uni-truncated-text__content {
        transition: max-height 0.4s ease-in-out;
        display: block;
        overflow: hidden;

        &.truncated {
            display: -webkit-box;
            -webkit-line-clamp: var(--line-clamp, 4);
            line-clamp: var(--line-clamp, 4);
            -webkit-box-orient: vertical;
            text-overflow: ellipsis;


            &>* {
                padding-top: 0;
                padding-bottom: 0;
                margin-top: 0;
                margin-bottom: 0;
            }
        }
    }

    .attps-uni-truncated-text__toggle {
        margin-top: 0.5rem;
        cursor: pointer;

        &:hover {
            text-decoration: underline;
        }
    }
}

.no-scroll {
    overflow: hidden;
}

header {
    position: relative;
    z-index: 10;
}

/* Composants autonomes extraits du header (shortcodes [attps_uni_google_card]
   et [attps_uni_stores_link]) : styles à plat, ne dépendent d'aucun parent. */
.attps-uni-google-card {
    background: var(--atb-neutral);
    color: var(--atb-light);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 1rem;
}

.attps-uni-google-card__average {
    display: flex;
    align-items: center;
    gap: 1rem;
    justify-content: center;
    padding-bottom: 0.75rem;
    padding-inline: 0.5rem;
    border-bottom: 1px solid color-mix(in srgb, var(--atb-light) 40%, transparent);
}

.attps-uni-google-card__average .grade {
    font-family: var(--atb-font-heading);
}

.attps-uni-google-card__average .grade .attps-reviews-average {
    font-size: 1.5rem;
    font-weight: bold;
}

.attps-uni-google-card__average .grade .max {
    font-size: 1rem;
    translate: -5px;
    display: inline-block;
}

.attps-uni-google-card__count {
    padding-top: 0.75rem;
    font-family: var(--atb-font-condensed);
    font-size: 0.875rem;
    font-weight: 300;
}

.attps-uni-google-card__count .attps-reviews-count {
    font-weight: bold;
}

.attps-uni-stores-link {
    background: #E3E3E3;
    color: #000;
    padding: 1rem;
    display: flex;
    align-items: center;
    justify-content: center;
}

.attps-uni-stores-link__content {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.attps-uni-stores-link .text {
    font-weight: bold;
    line-height: 1.2;
}

/* Logo du header — autonome ([attps_uni_header_logo]). Le positionnement de la
   colonne (.attps-uni-header__main__first) reste dans le layout du header. */
.attps-uni-header__main__logo-wrapper {
    padding: 1rem clamp(1.000rem, calc(0.294rem + 3.529vw), 3.250rem);
    display: block;

    img {
        width: clamp(11.250rem, calc(10.073rem + 5.882vw), 15.000rem);
    }
}

/* Navigation centrale — autonome ([attps_uni_header_nav]). Le centrage dans la
   colonne (.attps-uni-header__main__middle) reste dans le layout du header. */
.attps-uni-header__main__content {
    display: flex;
    flex-direction: column;
    gap: var(--atb-space-4);

    .attps-uni-header__main__icon-links {
        .attps-uni-header__main__icon-links__list {
            list-style: none;
            display: flex;
            align-items: center;
            flex-wrap: wrap;
            row-gap: var(--atb-space-2);
            column-gap: var(--atb-space-4);
            padding: 0;

            li {
                a {
                    display: flex;
                    align-items: center;
                    gap: var(--atb-space-2);

                    .atb-icon {
                        height: 1.25rem;
                    }

                    .text {
                        color: var(--atb-secondary);
                        text-decoration: underline;
                    }

                    &:hover {
                        .text {
                            color: var(--atb-primary);
                        }
                    }
                }
            }
        }
    }

    .attps-uni-header__main__links {
        .attps-uni-header__main__links__list {
            list-style: none;
            display: flex;
            align-items: center;
            flex-wrap: wrap;
            column-gap: var(--atb-space-6);
            padding: 0;

            li {

                display: flex;
                align-items: center;
                gap: var(--atb-space-2);
                position: relative;

                &:not(:last-child) {
                    &::after {
                        width: 1px;
                        height: 100%;
                        background: var(--atb-secondary);
                        position: absolute;
                        content: "";
                        right: -0.75rem;
                    }

                }

                .icon {
                    font-size: 0.6rem;
                    color: var(--atb-primary);
                    display: none;
                    aspect-ratio: 1 / 1;

                    .fa-stack-2x {
                        color: color-mix(in srgb, var(--atb-primary) 10%, transparent);
                    }
                }



                a {
                    line-height: 1;

                    .text {
                        color: var(--atb-secondary);
                        font-weight: bold;
                        text-transform: uppercase;

                    }

                    &:hover {
                        .text {
                            color: var(--atb-primary);
                        }
                    }
                }
            }
        }
    }
}

/* Bottom-bar / déclencheur du méga menu — autonome ([attps_uni_header_bottom_bar]).
   Le contenu du panneau .attps-uni-mega-menu est stylé plus bas (déjà autonome).
   Les sélecteurs internes (&) restent relatifs à .attps-uni-header-bottom-bar :
   l'ouverture au survol/clic fonctionne partout. */
.attps-uni-header-bottom-bar {
    width: 100%;
    background: var(--atb-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0.5rem;
    position: relative;

    .attps-uni-header-bottom-bar__content {
        width: 90%;
        list-style: none;
        padding: 0;
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(165px, 1fr));
        gap: var(--atb-space-2);

        li {

            .attps-uni-header-bottom-bar__item {
                background: color-mix(in oklab, var(--atb-light) 10%, transparent);
                color: var(--atb-light);
                display: flex;
                align-items: center;
                justify-content: center;
                padding: 0.5rem;
                border-radius: var(--atb-radius-lg);
                gap: var(--atb-space-2);
                height: 100%;
                transition: 150ms ease-in-out;
                cursor: pointer;

                .label-term {
                    font-weight: bold;
                    text-transform: uppercase;
                    line-height: 1;
                }

                img,
                svg {

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

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


                    *[fill] {
                        fill: currentColor;
                    }

                    *[stroke] {
                        stroke: currentColor;
                    }
                }

                &:hover {
                    background: var(--atb-light);
                    color: var(--atb-primary);
                }
            }

            &.is-active .attps-uni-header-bottom-bar__item {
                background: var(--atb-light);
                color: var(--atb-primary);
            }

            /* Clic : l'item verrouillé reste ouvert */
            &.is-active .attps-uni-mega-menu {
                display: block;
            }

            /* Survol : n'ouvre que si aucun item n'est verrouillé au clic
                       (le clic prend le pas sur le hover) */
            .attps-uni-header-bottom-bar:not(:has(li.is-active)) &:hover .attps-uni-mega-menu {
                display: block;
            }

            .attps-uni-mega-menu {
                display: none;
                position: absolute;
                top: 100%;
                left: 0;
                right: 0;
                background: var(--atb-primary);

                &::before {
                    content: "";
                    position: absolute;
                    bottom: 100%;
                    left: 0;
                    right: 0;
                    height: 1rem;
                }

                .atb-row {
                    padding: var(--atb-space-8) 0;
                    --row-l-w: 90%;
                }
            }
        }

    }
}

.attps-uni-mega-menu {
    padding: 0;

    .attps-uni-mega-menu__wrapper {
        .attps-uni-mega-menu__content {
            .attps-uni-mega-menu__content__title {
                text-transform: uppercase;
                font-size: var(--atb-text-2xl);
            }

            .attps-uni-mega-menu__content__childs-terms {

                list-style: none;
                --atb-flex-col-gap: 1.5rem;
                column-gap: var(--atb-flex-col-gap);
                row-gap: 0.5rem;
                padding: 0;


                li {

                    a {
                        line-height: var(--atb-leading-tight);
                        padding: var(--atb-space-4);
                        border-radius: var(--atb-radius);
                        display: block;

                        &:hover {
                            background-color: color-mix(in srgb, var(--atb-light) 10%, transparent);
                        }

                        .attps-uni-mega-menu__content__item__description {}
                    }
                }
            }

            .attps-uni-mega-menu__content__button {
                border-radius: var(--atb-radius);
                width: 100%;
                max-width: 280px;
                min-width: fit-content;
            }
        }

        .attps-uni-mega-menu__sidebar {
            display: flex;
            flex-direction: row;
            /* annule le flex-direction: column hérité de .atb-column,
               pour retrouver le même comportement wrap que .atb-row */
            flex-wrap: wrap;
            align-items: stretch;
            /* évite que l'image s'étire à la hauteur du form (stretch) */
            align-content: flex-start;
            --atb-flex-col-min-width: 250px;
            --atb-flex-col-gap: 1rem;
            column-gap: var(--atb-flex-col-gap);
            row-gap: var(--atb-flex-col-gap);


            .attps-uni-mega-menu__sidebar__image {
                display: flex;
                position: relative;
                min-height: 300px;
                margin-bottom: 0;

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

            .attps-uni-mega-menu__sidebar__more {
                border-radius: var(--atb-radius);
                overflow: hidden;

                &>* {
                    height: 100%;

                    &:has(:only-child) {
                        height: 100%;
                    }
                }
            }
        }
    }
}


/* Burger mobile — taille pilotée par une seule variable, façon font-size d'icône.
   Surcharger `--atb-burger-size` (en rem) suffit : largeur, hauteur, épaisseur
   des barres, espacement, arrondi et padding en découlent.

   L'épaisseur (`--atb-burger-bar`) est indépendante de l'encombrement : la
   surcharger amincit ou épaissit les barres sans changer la largeur ni la
   hauteur de l'icône — l'espacement absorbe la différence.

   Ex. :  { --atb-burger-size: 2rem; }                     // taille globale
          { --atb-burger-bar: 2px; }                       // barres fines, même gabarit
          { --atb-burger-width: 4rem; }                    // barres larges, même hauteur
          { --atb-burger-cross-scale: 1.2; }               // branches de la croix plus longues */
#attps-uni-header-mobile-burger-icon-container {
    cursor: pointer;
    /* ── Réglages ────────────────────────────────────────────────────── */
    --atb-burger-size: 1.5rem;
    /* hauteur totale de l'icône */
    --atb-burger-ratio: 1.3333;
    /* largeur / hauteur (= ancien 60/45) */
    --atb-burger-width: calc(var(--atb-burger-size) * var(--atb-burger-ratio));
    /* largeur — surchargeable directement pour ignorer le ratio */
    --atb-burger-bar: calc(var(--atb-burger-size) / 8);
    /* épaisseur des barres — libre, n'affecte pas le gabarit */
    --atb-burger-gap: calc((var(--atb-burger-size) - 3 * var(--atb-burger-bar)) / 2);
    /* espace entre barres — par défaut le reste, pour remplir la hauteur */
    --atb-burger-radius: var(--atb-burger-bar);
    --atb-burger-padding: calc(var(--atb-burger-size) * 0.3556);
    /* = ancien 1rem à taille par défaut */
    --atb-burger-cross-scale: 1;
    /* longueur des branches de la croix (1 = longueur des barres) */

    /* ── Dérivés (ne pas surcharger) ─────────────────────────────────── */
    --_burger-step: calc(var(--atb-burger-bar) + var(--atb-burger-gap));
    --_burger-height: calc(3 * var(--atb-burger-bar) + 2 * var(--atb-burger-gap));
    --_burger-middle: calc((var(--_burger-height) - var(--atb-burger-bar)) / 2);

    padding: var(--atb-burger-padding);
    background-color: var(--atb-primary);
    color: var(--atb-light);
    border-radius: var(--atb-radius-sm);
    width: fit-content;

    #attps-uni-header-mobile-burger-icon {
        width: var(--atb-burger-width);
        height: var(--_burger-height);
        position: relative;
        transform: rotate(0deg);
        transition: .5s ease-in-out;
        cursor: pointer;

        span {
            display: block;
            position: absolute;
            height: var(--atb-burger-bar);
            width: 100%;
            background: var(--atb-light);
            border-radius: var(--atb-burger-radius);
            opacity: 1;
            left: 0;
            transform: rotate(0deg);
            /* origine au centre : la croix se construit autour du milieu exact
               de la boîte, sans décalage de rattrapage à recalculer */
            transform-origin: center;
            transition: .25s ease-in-out;

            &:nth-child(1) {
                top: 0;
            }

            &:nth-child(2) {
                top: var(--_burger-step);
            }

            &:nth-child(3) {
                top: calc(2 * var(--_burger-step));
            }
        }
    }

    &.open {

        #attps-uni-header-mobile-burger-icon {
            span {

                /* Les deux barres extrêmes rejoignent la ligne médiane puis
                   pivotent sur place : la croix est centrée par construction.
                   scaleX s'applique après la rotation, donc dans le repère de
                   la barre — il allonge la branche sans l'épaissir. */
                &:nth-child(1) {
                    top: var(--_burger-middle);
                    transform: rotate(45deg) scaleX(var(--atb-burger-cross-scale));
                }

                &:nth-child(2) {
                    width: 0%;
                    opacity: 0;
                }

                &:nth-child(3) {
                    top: var(--_burger-middle);
                    transform: rotate(-45deg) scaleX(var(--atb-burger-cross-scale));
                }
            }
        }
    }
}

#attps-uni-header-mobile-burger-menu {
    overflow-y: auto;

    &.hidden {
        display: none;
    }

    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    background-color: var(--atb-light);
    padding-left: var(--atb-space-4);
    padding-right: var(--atb-space-4);

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

        a {
            background-color: var(--atb-primary);
            color: var(--atb-light);
            padding: var(--atb-space-2) var(--atb-space-4);
            border-radius: var(--atb-radius-pill);
            display: flex;
            align-items: center;
            justify-content: flex-start;
            gap: var(--atb-space-6);
            font-weight: bold;
            font-size: var(--atb-text-lg);
            text-transform: uppercase;
            line-height: var(--atb-leading-relaxed);

            .atb-icon {
                width: var(--atb-space-6);
                height: var(--atb-space-6);
            }

        }
    }

    .attps-uni-header__main__content {
        padding: var(--atb-space-4) 0;

        .attps-uni-header__main__links__list {
            gap: var(--atb-space-2);

            li {
                flex: 1 1 0%;
                min-width: min-content;

                &::after {
                    content: none;
                }

                a {
                    line-height: 1;
                    display: flex;
                    align-items: center;
                    gap: 0.5rem;

                    .icon {
                        display: inline-block;
                    }
                }
            }
        }
    }

}

#gform_wrapper_2 {
    font-family: var(--atb-font-condensed, inherit);

    .gform_required_legend {
        display: none !important;
    }

    form {

        .gform_body {
            .gform_fields {
                --gf-form-gap-y: var(--atb-space-4);
                --gf-form-gap-x: 0rem;
                display: grid !important;

                .gfield--type-consent {
                    order: 4;


                    label {
                        font-size: var(--atb-text-sm);
                        line-height: var(--atb-leading-relaxed);
                        color: inherit;
                    }
                }

                .gfield--input-type-email {
                    grid-column: span 8 !important;

                    input {
                        color: var(--atb-light);
                        padding: var(--atb-space-3) var(--atb-space-3);
                        border-radius: var(--atb-radius) 0 0 var(--atb-radius);
                        border: 1px solid color-mix(in srgb, var(--atb-light) 12%, transparent);
                        border-right: 0;
                        background: color-mix(in srgb, var(--atb-light) 5%, transparent);
                        line-height: var(--atb-leading-relaxed);
                        height: auto;
                        box-sizing: border-box;

                        &::placeholder {
                            color: color-mix(in srgb, var(--atb-light) 60%, transparent);
                            opacity: 0.6;
                        }
                    }
                }

                #field_submit_2 {
                    grid-column: span 4 !important;
                    align-items: flex-start;
                    height: fit-content;
                    position: relative;
                    transition: 150ms ease-in-out;
                    max-width: 175px;
                    min-width: 150px;


                    &::before {
                        content: "\e20a";
                        position: absolute;
                        font-family: "Font Awesome 7 Pro";
                        top: 50%;
                        left: 1rem;
                        transform: translateY(-50%);
                        color: var(--atb-secondary);
                        rotate: -45deg;
                        transition: 150ms ease-in-out;
                        transform-origin: top;
                    }

                    &:hover::before {
                        color: var(--atb-light);
                        rotate: 0deg;
                    }

                    /* Le bouton d'envoi est rendu en <button> par
                       attps-get-field (filtre atgf_gform_button_forms) ; on
                       garde input[type="submit"] pour rester bon si la
                       conversion est désactivée. */
                    button[type="submit"],
                    input[type="submit"],
                    .at-gfbtn {
                        width: 100%;
                        --gf-local-color: var(--atb-secondary);
                        background: var(--atb-light);
                        border-radius: 0 var(--atb-radius) var(--atb-radius) 0;
                        padding: var(--atb-space-3) var(--atb-space-3);
                        padding-left: var(--atb-space-6);
                        border: 1px solid color-mix(in srgb, var(--atb-light) 100%, transparent);
                        line-height: var(--atb-leading-relaxed);
                        font-weight: bold;
                        border-left: 0;
                        transition: 150ms ease-in-out;

                        &:hover {
                            background: var(--atb-secondary);
                            --gf-local-color: var(--atb-light);
                            border-color: var(--atb-secondary);
                        }
                    }
                }
            }
        }
    }
}

.slide-out-blurred-right {
    -webkit-animation: slide-out-blurred-right 0.45s cubic-bezier(0.755, 0.050, 0.855, 0.060) both;
    animation: slide-out-blurred-right 0.45s cubic-bezier(0.755, 0.050, 0.855, 0.060) both;
}

.slide-in-blurred-right {
    -webkit-animation: slide-in-blurred-right 0.6s cubic-bezier(0.230, 1.000, 0.320, 1.000) both;
    animation: slide-in-blurred-right 0.6s cubic-bezier(0.230, 1.000, 0.320, 1.000) both;
}

/* Mouvement réduit : on écrase la durée plutôt que de couper l'animation.
   `animation: none` ne déclencherait pas `animationend`, et les scripts qui
   attendent la fin de la sortie (devis express) resteraient en plan. */
@media (prefers-reduced-motion: reduce) {

    .slide-out-blurred-right,
    .slide-in-blurred-right {
        -webkit-animation-duration: 0.01ms;
        animation-duration: 0.01ms;
    }
}

/* ----------------------------------------------
 * Generated by Animista on 2026-7-28 16:26:38
 * Licensed under FreeBSD License.
 * See http://animista.net/license for more info. 
 * w: http://animista.net, t: @cssanimista
 * ---------------------------------------------- */

/**
 * ----------------------------------------
 * animation slide-out-blurred-right
 * ----------------------------------------
 */
@-webkit-keyframes slide-out-blurred-right {
    0% {
        -webkit-transform: translateX(0) scaleY(1) scaleX(1);
        transform: translateX(0) scaleY(1) scaleX(1);
        -webkit-transform-origin: 50% 50%;
        transform-origin: 50% 50%;
        -webkit-filter: blur(0);
        filter: blur(0);
        opacity: 1;
    }

    100% {
        -webkit-transform: translateX(1000px) scaleX(2) scaleY(0.2);
        transform: translateX(1000px) scaleX(2) scaleY(0.2);
        -webkit-transform-origin: 0% 50%;
        transform-origin: 0% 50%;
        -webkit-filter: blur(40px);
        filter: blur(40px);
        opacity: 0;
    }
}

@keyframes slide-out-blurred-right {
    0% {
        -webkit-transform: translateX(0) scaleY(1) scaleX(1);
        transform: translateX(0) scaleY(1) scaleX(1);
        -webkit-transform-origin: 50% 50%;
        transform-origin: 50% 50%;
        -webkit-filter: blur(0);
        filter: blur(0);
        opacity: 1;
    }

    100% {
        -webkit-transform: translateX(1000px) scaleX(2) scaleY(0.2);
        transform: translateX(1000px) scaleX(2) scaleY(0.2);
        -webkit-transform-origin: 0% 50%;
        transform-origin: 0% 50%;
        -webkit-filter: blur(40px);
        filter: blur(40px);
        opacity: 0;
    }
}

/* ----------------------------------------------
 * Generated by Animista on 2026-7-28 16:28:12
 * Licensed under FreeBSD License.
 * See http://animista.net/license for more info. 
 * w: http://animista.net, t: @cssanimista
 * ---------------------------------------------- */

/**
 * ----------------------------------------
 * animation slide-in-blurred-right
 * ----------------------------------------
 */
@-webkit-keyframes slide-in-blurred-right {
    0% {
        -webkit-transform: translateX(1000px) scaleX(2.5) scaleY(0.2);
        transform: translateX(1000px) scaleX(2.5) scaleY(0.2);
        -webkit-transform-origin: 0% 50%;
        transform-origin: 0% 50%;
        -webkit-filter: blur(40px);
        filter: blur(40px);
        opacity: 0;
    }

    100% {
        -webkit-transform: translateX(0) scaleY(1) scaleX(1);
        transform: translateX(0) scaleY(1) scaleX(1);
        -webkit-transform-origin: 50% 50%;
        transform-origin: 50% 50%;
        -webkit-filter: blur(0);
        filter: blur(0);
        opacity: 1;
    }
}

@keyframes slide-in-blurred-right {
    0% {
        -webkit-transform: translateX(1000px) scaleX(2.5) scaleY(0.2);
        transform: translateX(1000px) scaleX(2.5) scaleY(0.2);
        -webkit-transform-origin: 0% 50%;
        transform-origin: 0% 50%;
        -webkit-filter: blur(40px);
        filter: blur(40px);
        opacity: 0;
    }

    100% {
        -webkit-transform: translateX(0) scaleY(1) scaleX(1);
        transform: translateX(0) scaleY(1) scaleX(1);
        -webkit-transform-origin: 50% 50%;
        transform-origin: 50% 50%;
        -webkit-filter: blur(0);
        filter: blur(0);
        opacity: 1;
    }
}