.header-glass {
    background-color: #ffffffb9;
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
}

/* Pour que le menu mobile puisse prendre tout l'espace, et ne pas être confiné au Header */
.header-glass:has(.wp-block-navigation__responsive-container.is-menu-open) {
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

.wp-block-navigation__responsive-container.is-menu-open {
    background-color: rgba(244, 243, 239, 0.72);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
}

@media (max-width: 1147px) {
    .primlogix-hidden-mobile {
        display: none !important;
    }
}

@media (min-width: 1148px) {
    .primlogix-hidden-desktop {
        display: none !important;
    }
}

/** HELPERS RESPONSIVE CLASSES **/
/* tablette only ex: 480px < width <= 782px */

@media (max-width: 782px) {
    .primlogix-is-mobile-centered {
        justify-content: center;
        align-items: center;
        text-align: center;
    }
}

/** Animations d'entrée **/

.primlogix-js-scroll-reveal .primlogix-reveal-on-scroll {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.7s ease, transform 0.7s ease;
}

/* Combiner la classe de base avec une seule variante. La direction indique l'origine. */
.primlogix-js-scroll-reveal .primlogix-reveal-on-scroll.primlogix-reveal-from-bottom {
    transform: translateY(20px);
}

.primlogix-js-scroll-reveal .primlogix-reveal-on-scroll.primlogix-reveal-from-top {
    transform: translateY(-20px);
}

.primlogix-js-scroll-reveal .primlogix-reveal-on-scroll.primlogix-reveal-from-left {
    transform: translateX(-20px);
}

.primlogix-js-scroll-reveal .primlogix-reveal-on-scroll.primlogix-reveal-from-right {
    transform: translateX(20px);
}

.primlogix-js-scroll-reveal .primlogix-reveal-on-scroll.primlogix-reveal-grow {
    transform: scale(0.9);
}

.primlogix-js-scroll-reveal .primlogix-reveal-on-scroll.primlogix-reveal-delay-300 {
    transition-delay: 0.3s;
}

.primlogix-js-scroll-reveal .primlogix-reveal-on-scroll.primlogix-reveal-delay-600 {
    transition-delay: 0.6s;
}

.primlogix-js-scroll-reveal .primlogix-reveal-on-scroll.primlogix-is-visible {
    opacity: 1;
    transform: none;
}

@media (prefers-reduced-motion: reduce) {

    /* Classe répétée pour égaler la spécificité des variantes et de l'état visible. */
    .primlogix-js-scroll-reveal .primlogix-reveal-on-scroll.primlogix-reveal-on-scroll {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

/** Page sections **/

.primlogix-page-main-section {
    min-height: calc(100vh - 76px);
}

.primlogix-page-bordered-section,
.primlogix-page-main-section,
.primlogix-page-section {
    padding: 100px 20px;
}

.primlogix-page-bordered-section-columns>* {
    border-right: 1px solid color-mix(in srgb, var(--wp--preset--color--base) 90%, black);
}

.primlogix-page-bordered-section-columns>*:last-child {
    border-right: none;
}

@media (max-width: 782px) {

    .primlogix-page-bordered-section,
    .primlogix-page-main-section,
    .primlogix-page-section {
        padding: 56px 20px;
    }

    .primlogix-page-bordered-section-columns>* {
        border-bottom: 1px solid color-mix(in srgb, var(--wp--preset--color--base) 90%, black);
        border-right: none;
    }

    .primlogix-page-bordered-section-columns>*:last-child {
        border-bottom: none;
        border-right: none;
    }
}

.primlogix-page-bordered-section {
    padding-top: 0px;
    padding-bottom: 0px;
    border-top: 1px solid color-mix(in srgb, var(--wp--preset--color--base) 90%, black);
    border-bottom: 1px solid color-mix(in srgb, var(--wp--preset--color--base) 90%, black);
}

/** Posts (articles) **/

.primlogix-post-title {
    padding-left: 20px;
    padding-right: 20px;
}

.primlogix-post-content>* {
    padding-left: 20px;
    padding-right: 20px;
}

/** Hero section **/

.primlogix-hero-heading {
    letter-spacing: -1.5px;
    margin-bottom: var(--wp--preset--spacing--primlogix-md);
    font-family: var(--wp--preset--font-family--dm-serif-display);
    font-size: clamp(36px, 4.6vw, 62px);
    line-height: 1.06;
}

/** Chips **/

.primlogix-chip {
    background-color: color-mix(in srgb, currentColor 10%, transparent);
    border: 1px solid color-mix(in srgb, currentColor 70%, transparent);
}

/** Grille de partenaires **/

figure.primlogix-partner-grid-logo img {
    object-fit: contain;
}

/** Boutons **/

.wp-block-button__link {
    transition: filter 0.2s ease;
}

.wp-block-button__link:hover {
    filter: brightness(1.05);
}

.wp-block-button__link:focus-visible {
    outline: 2px solid var(--wp--preset--color--contrast);
    outline-offset: 3px;
}

/* Ajouter primlogix-button-shine dans les classes CSS du bloc Button. */
.wp-block-button.primlogix-button-shine .wp-block-button__link {
    position: relative;
    overflow: hidden;
    isolation: isolate;
}

.wp-block-button.primlogix-button-shine .wp-block-button__link::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(115deg,
            transparent 30%,
            rgba(255, 255, 255, 0.35) 48%,
            rgba(255, 255, 255, 0.12) 58%,
            transparent 75%);
    transform: translateX(-100%);
}

.wp-block-button.primlogix-button-shine .wp-block-button__link::before {
    /* Passage de 0.8 s, puis pause de 3.2 s entre les passages. */
    animation: primlogix-button-shine 4s ease-in-out infinite;
}

@keyframes primlogix-button-shine {
    0% {
        transform: translateX(-100%);
    }

    20%,
    100% {
        transform: translateX(100%);
    }
}

@media (prefers-reduced-motion: reduce) {
    .wp-block-button.primlogix-button-shine .wp-block-button__link::before {
        display: none;
    }
}

/** Éléments Cliquables **/

.primlogix-clickable {
    transition: all .1s;
}

.primlogix-clickable.primlogix-clickable-hover-underline:hover,
.primlogix-clickable:hover .primlogix-clickable-hover-underline {
    text-decoration: underline;
}

.primlogix-clickable.primlogix-clickable-hover-outline,
.primlogix-clickable .primlogix-clickable-hover-outline {
    outline: 1px solid transparent;
}

.primlogix-clickable.primlogix-clickable-hover-outline:hover,
.primlogix-clickable:hover .primlogix-clickable-hover-outline {
    outline-color: var(--primlogix-card-color, currentColor);
}

.primlogix-clickable.primlogix-clickable-hover-move-up,
.primlogix-clickable .primlogix-clickable-hover-move-up {
    transform: translateY(0);
}

.primlogix-clickable.primlogix-clickable-hover-move-up:hover,
.primlogix-clickable:hover .primlogix-clickable-hover-move-up {
    transform: translateY(-2px);
}