.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;
}

/* Barre fixe en bas d'écran du header mobile — colonne du builder portant la
   classe (page d'options Commons › Header).

   Écrit SANS imbrication CSS, volontairement : ces règles vivaient dans le CSS
   perso de la colonne, en syntaxe `& { … }`, que Safari ne comprend qu'à
   partir d'iOS 16.5. Sur un iPhone plus ancien, tout le bloc était jeté, la
   colonne n'était jamais fixée et restait dans le flux, en haut du header,
   par-dessus le reste (vu le 04/09/2026). Des sélecteurs plats passent partout.

   Spécificité (0,3,0), au-dessus des règles de grille du builder sur
   `.atb-row--flexible-columns > .atb-column` (largeur, arrondi par variable) :
   l'ancien `#id` les battait d'office, une classe seule perdait — la barre
   tombait à 250 px de large et sans arrondi. */
.atb-row > .atb-column.attps-uni-header-mobile-bottom-fixed {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100vw;
    max-width: 100vw;
    display: flex;
    flex-direction: row;
    justify-content: space-around;
    padding: 0.7rem;
    border-radius: 1rem 1rem 0 0;
    overflow: hidden;
}

.atb-row > .atb-column.attps-uni-header-mobile-bottom-fixed > * {
    flex: 1;
}

.atb-row > .atb-column.attps-uni-header-mobile-bottom-fixed > *:first-child {
    border-right: 1px solid #fff;
}

.atb-row > .atb-column.attps-uni-header-mobile-bottom-fixed .attps-uni-stores-link {
    padding: 0;
}

/* 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;
    }
}