/********************************************************/
/*
/*      General CSS & Typography
/*
/********************************************************/

    /******************************/
    /* Typography
    /******************************/
    /* BOLD - 700 */
    @font-face {
        font-family: 'Graph';
        font-weight: 700;
        font-style: normal;
        src: url('../fonts/graph-bold-web.woff2') format('woff2');
    }
    
    /* BLACK - 900 */
    @font-face {
        font-family: 'Graph';
        font-weight: 900;
        font-style: normal;
        src: url('../fonts/graph-black-web.woff2') format('woff2');
    }
    
    /* CONDENSED BOLD - 700 */
    @font-face {
        font-family: 'GraphCondensed';
        font-weight: 700;
        font-style: normal;
        src: url('../fonts/graph-condensed-bold-web.woff2') format('woff2');
    }
    
    h1, h1 > :is(span, a)                                   { font: var(--stack-heading-2xl); }
    h1.alt, h1.alt > :is(span, a)                           { font: var(--stack-heading-3xl); }
    h2, h2 > :is(span, a)                                   { font: var(--stack-heading-xl); }
    h3, h3 > :is(span, a)                                   { font: var(--stack-heading-l); }
    h4, h4 > :is(span, a)                                   { font: var(--stack-heading-m); }
    h5, h5 > :is(span, a)                                   { font: var(--stack-heading-s); }
    h6, h6 > :is(span, a)                                   { font: var(--stack-heading-xs); }
    blockquote, blockquote :is(p, span, a)                  { font:var(--stack-content-l); }
    p, p > :is(span, a)                                     { font: var(--stack-content-m); }
    p.alt, p.alt > :is(span, a)                             { font: var(--stack-content-s); }
    ul:not([id^="wp-admin-bar"]) > li,
    ul:not([id^="wp-admin-bar"]) > li > :is(span, a)        { font: var(--stack-content-m-alt); }
    label, label > :is(span, a)                             { font: var(--stack-content-s-alt); }
    nav a, nav a > :is(span, a)                             { font: var(--stack-menu); }
    i                                                       { font: var(--stack-icn); }
    
    h1, nav a, p.alt                                        { color: var(--color-light-gray); }
    h2, h3, h4, h5, h6, p, blockquote, ul > li, label       { color: var(--color-black); }
    :not(h1, h2, h3, h4, h5, h6, .menu-item) > a, label     { color: var(--color-4); }
    
    h6, label, :is(h6, label) > :is(span, a)                { letter-spacing: 1px; }
    
    h1, h2, h3, h6, nav a, label                            { text-transform: uppercase; }
    nav .sub-menu a                                         { text-transform: initial; }
    :not(h1, h2, h3, h4, h5, h6) > a                        { text-decoration: underline; }
    nav a, a.btn, .btn > a                                  { text-decoration: unset; }
    
    /* Custom list bullet */
    ul:not([id^="wp-admin-bar"], .sub-menu) > li {
        display: flex;
        align-items: baseline;
        list-style: none;
        gap: 1.5rem;
    }
    
    ul:not([id^="wp-admin-bar"], .sub-menu) > li:not(:last-child) {
        margin-bottom: 2rem;
    }
    
    ul:not([id^="wp-admin-bar"], .sub-menu) > li::before {
        content: "";
        display: inline-block;
        background-color: var(--color-1);
        width: 9.25px;
        min-width: 9.25px;
        height: 7px;
        min-height: 7px;
        translate: 0 -3px;
    }
    
    ul:not([id^="wp-admin-bar"], .sub-menu) > li a {
        display: contents;
    }
    
    /******************************/
    /* Text classes
    /******************************/
    .bold,
    .bold > a                                               { font-weight: 700 !important; }
    .extra-bold,                                            
    .extra-bold > a                                         { font-weight: 900 !important; }
    
    .color-2,
    .color-2 > a                                            { color: var(--color-2) !important;}
    .light-gray,
    .light-gray > a                                         { color: var(--color-light-gray) !important;}
    
    .deco-none                                              { text-decoration: unset; }
    
    /******************************/
    /* Spacing classes
    /******************************/
    .marg-bottom-none                                       { margin-bottom: 0 !important; }
    .marg-bottom-2x                                         { margin-bottom: 2rem !important; }
    .marg-bottom-3x                                         { margin-bottom: 3rem !important; }
    
    /******************************/
    /* Inputs, buttons & links
    /******************************/
    
    /* Buttons & links */
    :not(h1, h2, h3, h4, h5, h6) > a:not(.btn, .menu-item),
    :not(h1, h2, h3, h4, h5, h6) > a:not(.btn, .menu-item) > span {
        font: var(--stack-content-m);
    }
    
    input:is([type="submit"], [type="button"]),
    a.btn,
    a.btn > span,
    p.btn > a {
        font: var(--stack-heading-xs);
        letter-spacing: 1px;
    }
    
    nav a,
    a:not(.btn),
    label,
    input:is([type="submit"], [type="button"]),
    .btn,
    p.btn > a,
    a > p {
        transition: color .5s, background-color .5s;
        width: max-content;
        pointer-events: all !important;
        cursor: pointer !important;
    }
    
    input:is([type="submit"], [type="button"]),
    a.btn,
    p.btn > a {
        border-radius: 2px;
        padding: 1.25rem 2.25rem;
        color: var(--color-black);
        text-transform: uppercase;
        background-color: var(--color-2);
        border: none !important;
    }
    
    input:is([type="submit"], [type="button"]).alt,
    a.btn.alt,
    p.btn.alt > a {
        color: var(--color-light-gray);
        background-color: var(--color-black-rich);
    }
    
    /* Hover effects */
    :not(.mobile) :not(.btn) > a:not(.btn):hover,
    :not(.mobile) a:hover > p {
        color: var(--color-1) !important;
    }
    
    :not(.mobile) nav:not(.btn) li:not(.btn):hover > a,
    nav li:is(.current-menu-item, .current_page_item, .current-menu-ancestor, .current_page_ancestor):not(.btn) > a {
        color: var(--color-4) !important;
    }
    
    :not(.mobile) label:hover {
        color: var(--color-black) !important;
    }
    
    :not(.mobile) input:is([type="submit"], [type="button"]):hover,
    :not(.mobile) a.btn:hover,
    :not(.mobile) p.btn:hover > a,
    nav a:is(.current-menu-item, .current_page_item, .current-menu-ancestor, .current_page_ancestor).btn {
        background-color: var(--color-4) !important;
    }
    
    :not(.mobile) input:is([type="submit"], [type="button"]).alt:hover,
    :not(.mobile) a.btn.alt:hover,
    :not(.mobile) p.btn.alt:hover > a {
        color: var(--color-black);
        background-color: var(--color-3) !important;
    }
    
    /* Custom file input */
    .custom-file-input {
        display: flex;
        align-items: center;
        font: var(--stack-heading-xs);
        color: var(--color-black);
        background-color: transparent;
        border: 1px solid var(--color-black);
        padding: 1.5rem 2rem;
        margin-bottom: 0 !important;
    }
    
    :not(.mobile) .custom-file-input:hover {
        color: var(--color-4) !important;
    }
    
    .custom-file-input::after {
        content: '';
        font: var(--stack-icn);
        font-size: 24px;
        margin-left: 4rem;
        color: var(--color-4);
    }
    
    .custom-file-input + [class$='-file-name-container'] {
        pointer-events: none !important;
        cursor: default !important;
    }
    
    /******************************/
    /* Accordions
    /******************************/
    .accordeon {
        border-bottom: 1px solid var(--color-black);
    }
    
    .accordeon-head {
        display: flex;
        align-items: center;
        width: 100%;
        padding: 2rem 0;
    }
    
    .accordeon-head::after {
        content: '';
        font: var(--stack-icn);
        font-size: 24px;
        margin-left: auto;
        color: var(--color-black);
    }
    
    input[type="checkbox"]:checked + .accordeon-head::after {
        content: '';
    }
    
    .accordeon-body {
        display: grid;
        
        transition: grid-template-rows .5s ease-in-out;
        grid-template-rows: 0fr;
    }
    
    input[type="checkbox"]:checked ~ .accordeon-body {
        grid-template-rows: 1fr;
    }
    
    .accordeon-body-inner {
        overflow: hidden;
    }
    
    .accordeon-body-inner > :first-child {
        margin-top: 2rem;
    }
    
    .accordeon-body-inner > :last-child {
        margin-bottom: 4rem;
    }
    
    .accordeon-body-inner :is(h1, h2, h3, h4):not(:last-child) {
        margin-bottom: 7rem;
    }
    
    .accordeon-body-inner :is(h5, h6):not(:last-child) {
        margin-bottom: 2rem;
    }
    
    .accordeon-body-inner :is(p, ul, blockquote):not(:last-child) {
        margin-bottom: 5rem;
    }
    
    /******************************/
    /* Gravity forms styling
    /******************************/
    .gform_wrapper .gform_fields {
        row-gap: 0 !important;    
    }
    
    .gform_wrapper .gform_fields :is(input, select, textarea) {
        background-color: transparent;
        border: 1px solid var(--color-black);
        font: var(--stack-content-m);
        padding: 1.5rem 2rem !important;
        margin-bottom: 5rem !important;
    }
    
    .gform_wrapper .gfield_html > * {
        margin-bottom: 2.5rem;
    }
    
    .gform_wrapper .gform_footer {
        margin: 0 !important;
        padding: 0 !important;
    }
    
    .gform_wrapper .gform_fields input[type="checkbox"] {
        margin-bottom: 0 !important;
    }
    
    .gform_wrapper .gfield_checkbox {
        display: flex;
        flex-wrap: wrap;
        gap: 1rem;
        margin-bottom: 5rem;
    }
    
    .gform_wrapper .gfield_checkbox label {
        font: var(--stack-content-m);
        color: var(--color-black);
        text-transform: initial;
    }
    
    .gform_wrapper .gfield_checkbox .gchoice {
        display: flex;
        align-items: center;
        flex: 49%;
        gap: 2rem;
    }
    
/********************************************************/
/*
/*      Main
/*
/********************************************************/

    html {
        background-color: var(--color-light-gray);
        scroll-behavior: smooth;
    }
    
    body.menu-open {
        height: 100vh;
        overflow-y: hidden;
    }
    
    .bg-shape-container {
        pointer-events: none !important;
    }

/********************************************************/
/*
/*      Header, footer & menus
/*
/********************************************************/

    header, footer {
        background-color: var(--color-black-rich);
    }

    :is(header, footer) hr {
        grid-column: full;
        height: 1px;
        background-color: var(--color-gray);
        border: none;
    }
    
    :is(header, footer) img.logo {
        height: 10rem;
    }
    
    /******************************/
    /* Banner
    /******************************/
    aside.banner {
        background-color: var(--color-1);
        padding: 2rem 0;
    }
    
    aside.banner [data-part="inner"] {
        display: flex;
        justify-content: center;
        align-items: center;
        text-transform: uppercase;
    }
    
    /******************************/
    /* Header
    /******************************/
    
    header menu {
        padding: 2rem 0;
    }
    
    header nav {
        grid-column: inner;
        display: flex;
        align-items: center;
        gap: 4rem;
    }
    
    /* Utility menu */
    header menu.utility :is(a, a > span) {
        font: var(--stack-content-s);
        text-transform: unset;
    }
    
    header menu.utility nav {
        justify-content: end;
    }
    
    /* Main menu */
    header menu.main nav {
        justify-content: center;
    }
    
    header menu.main li.logo {
        margin-right: auto;
    }
    
    header menu.main nav > li:nth-last-child(2) {
        margin-left: auto;
    }
    
    header menu.main li.icons {
        z-index: 6;
    }
    
    header menu.main label.icons > i {
        font-size: 3.5rem;
        width: 3rem;
        
        transition: color .5s;
        color: var(--color-light-gray);
    }
    
    header menu.main label.icons:hover > i {
        color: var(--color-4);
    }
    
    header menu.main li.icons, #menu-toggle:checked ~ header menu.main .icons > i.fa-bars, #menu-toggle:not(:checked) ~ header menu.main .icons > i.fa-times {
        display: none;
    }
    
    @media screen and (max-width: 1000px) {
        header menu.main nav > li:not(.logo, .icons, :nth-last-child(2)) { 
            display: none; 
        }
        header menu.main li.icons {
            display: block;
        }
    }
    
    /******************************/
    /* Submenu
    /******************************/
    
    header nav > li.menu-item-has-children {
        position: relative;
        display: flex;
        justify-content: space-between;
        align-items: center;
    }
    
    header nav > li.menu-item-has-children::after {
        content: '';
        font: var(--stack-icn);
        font-size: 2rem;
        margin-left: 1.5rem;
        
        transition: color .5s;
        color: var(--color-light-gray);
    }
    
    header nav > li.menu-item-has-children:hover::after {
        color: var(--color-4);
    }
    
    header nav > li.menu-item-has-children > ul.sub-menu {
        position: absolute;
        top: 100%;
        left: 50%;
        transform: translateX(-50%);
        display: flex;
        flex-direction: column;
        gap: 2rem;
        background-color: var(--color-black-rich);
        box-shadow: 0 1rem 2rem rgb(0 0 0 / 0.2);
        z-index: 2;
        list-style: none;
        
        transition: opacity .5s;
        opacity: 0;
        pointer-events: none !important;
    }
    
    header nav > li.menu-item-has-children:hover > ul.sub-menu {
        opacity: 1;
        pointer-events: all !important;
    }
    
    header nav > li.menu-item-has-children:not(:hover) > ul.sub-menu * {
        pointer-events: none !important;
    }
    
    header nav > li.menu-item-has-children:hover > ul.sub-menu * {
        pointer-events: all !important;
    }
    
    header nav > li.menu-item-has-children > ul.sub-menu > li:first-child {
        padding-top: 6rem;
    }
    
    header nav > li.menu-item-has-children > ul.sub-menu > li {
        padding-left: 3rem;
        padding-right: 3rem;
    }
    
    header nav > li.menu-item-has-children > ul.sub-menu > li:last-child {
        padding-bottom: 3rem;
    }
    
    header nav > li.menu-item-has-children > ul.sub-menu > li.menu-item-has-children {
        position: relative;
        display: flex;
        flex-direction: column;
    }
    
    header nav > li.menu-item-has-children > ul.sub-menu > li.menu-item-has-children ul.sub-menu {
        position: absolute;
        left: 99%;
        width: max-content;
        background-color: var(--color-black-rich);
        box-shadow: 0 1rem 2rem rgb(0 0 0 / 0.2);
        overflow: hidden;
        
        transition: max-width 1s, opacity .25s;
        max-width: 0;
        opacity: 0;
    }
    
    header nav > li.menu-item-has-children > ul.sub-menu > li.menu-item-has-children:hover ul.sub-menu {
        transition: max-width 1s;
        max-width: 1000px;
        opacity: 1;
    }
    
    header nav > li.menu-item-has-children > ul.sub-menu > li.menu-item-has-children ul.sub-menu li:first-child {
        padding-top: 2rem;
    }
    
    header nav > li.menu-item-has-children > ul.sub-menu > li.menu-item-has-children ul.sub-menu li {
        min-width: max-content;
        padding-left: 2rem;
        padding-right: 2rem;
    }
    
    header nav > li.menu-item-has-children > ul.sub-menu > li.menu-item-has-children ul.sub-menu li:last-child {
        padding-bottom: 2rem;
    }
    
    header nav > li.menu-item-has-children > ul.sub-menu > li.menu-item-has-children ul.sub-menu li span {
        font-size: 2.5rem;
    }  
    
    /******************************/
    /* Footer
    /******************************/
    
    footer > :is(.footer-body, .footer-foot) {
        grid-column: inner;
        display: flex;
        align-items: center;
        gap: 10rem;
        padding: 3rem 0;
    }
    
    footer .footer-body {
        padding: 5.75rem 0;
    }
    
    footer :is(nav.social, a.logo-cake) {
        margin-left: auto;
    }
    
    footer .coord {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 2rem;
    }
    
    footer a.logo-cake {
        position: relative;
        display: flex;
        align-items: center;
    }
    
    footer a.logo-cake img {
        min-width: 7rem;
        aspect-ratio: 50 / 13;
        filter: brightness(0) saturate(100%) invert(100%) sepia(1%) saturate(2085%) hue-rotate(328deg) brightness(99%) contrast(91%);
        z-index: 1;
        
    }
    
    footer a.logo-cake img.hover {
        position: absolute;
        inset: 0;
        filter: brightness(0) saturate(100%) invert(52%) sepia(16%) saturate(7455%) hue-rotate(11deg) brightness(105%) contrast(98%);
        z-index: 2;
        
        transition: opacity .5s;
        opacity: 0;
    }
    
    footer a.logo-cake:hover img.hover {
        opacity: 1;
    }
    
    @media screen and (max-width: 800px) {
        footer .footer-body {
            flex-wrap: wrap;
            row-gap: 3rem;
        }
        footer .footer-body > :is(.logo, .coord) {
            width: 100%;
        }
        footer .footer-body > .social {
            margin-left: 0;
        }
    }
    
    @media screen and (max-width: 600px) {
        footer .footer-foot {
            flex-wrap: wrap;
            justify-content: center;
            row-gap: 3rem;
        }
        footer .footer-foot > p {
            width: 100%;
            text-align: center;
        }
        footer .footer-foot > a {
            margin-left: 0;
        }
    }
    
    /******************************/
    /* Burger menu
    /******************************/
    .burger-menu-container {
        position: fixed;
        inset: 0;
        width: 100vw;
        height: 100dvh;
        background-color: var(--color-black-rich);
        z-index: 5;
        overflow: hidden;
        
        transition: opacity .5s;
        opacity: 0;
        pointer-events: none;
    }
    
    #menu-toggle:checked ~ .burger-menu-container {
        opacity: 1;
        pointer-events: all;
    }
    
    #menu-toggle:not(:checked) ~ .burger-menu-container * {
        pointer-events: none !important;
        cursor: default !important;
    }
    
    .burger-menu-container :is(menu, nav) {
        display: flex;
    }
    
    .burger-menu-container menu {
        justify-content: center;
    }
    
    .burger-menu-container nav {
        padding-top: 25rem;
        flex-direction: column;
        align-items: center;
        gap: 6rem;
    }
    
    .burger-menu-container nav .close-submenu {
        display: none;
    }
    
    .burger-menu-container nav > li { 
        position: relative;
        display: flex;
        align-items: center;
        flex-direction: row;
        transition: all .5s; 
    }
    
    .burger-menu-container nav > li.selected { 
        flex-direction: column; 
    }
    
    .burger-menu-container nav > li.disabled {
        pointer-events: none;
        display: none; 
    }
    
    .burger-menu-container nav > li.menu-item-has-children::after { 
        content: '';
        font: var(--stack-icn);
        font-size: 2rem;
        margin-left: 1.5rem;
        color: var(--color-light-gray);
        
        transition: transform .5s;
    }
    
    .burger-menu-container nav > li > a { 
        transition: all .5s;
        transform: translateX(0px);
    }
    
    .burger-menu-container nav > li.top-level-hidden::after, .burger-menu-container nav > li.top-level-hidden > a { 
        transform: translateX(-100vw);
    }
    
    .burger-menu-container nav > li .sub-menu { 
        position: absolute; 
        display: flex;
        flex-direction: column;
        gap: 3rem;
        align-items: center;
        top: 0; 
        transform: translateX(100vw);
        margin-bottom: 0; 
        
        transition: all .5s, height .1s, width .1s;
        width: 0px;
        height: 0px;
    }
    
    .burger-menu-container nav > li.selected > .sub-menu { 
        transform: translateX(0px);
    }
    
    .burger-menu-container nav :is(a, a > span):not(.btn, .close-submenu) {
        font-size: 5rem;
        line-height: 5rem;
    }
    
    .burger-menu-container nav :is(a, a > span).btn, .burger-menu-container nav > li .sub-menu :is(a, a > span) {
        font-size: 3rem;
        line-height: 3rem;
    }
    
    .burger-menu-container nav > li .sub-menu .sub-menu {
        display: none;
    }
    
    /******************************/
    /* Social menu
    /******************************/
	nav.social   {
		display: flex;
		gap: 0.5rem;
	}
	
	nav.social > li.icn > a {
	  display: block;
	}
	
    nav.social > li.icn > a::after {
        content: '';
        display: flex;
        justify-content: center;
        align-items: center;
     
        color: var(--color-2);
		filter: brightness(0) saturate(100%) invert(73%) sepia(36%) saturate(4695%) hue-rotate(359deg) brightness(100%) contrast(107%);
		
		display: block;

    }
    
 
    nav.social > li.fb a::after {
        background: url(../images/symbol/facebook.svg) no-repeat center;
		width: 52px;
		height: 48px;
    }
	
	nav.social > li.ig a::after {
		background: url(../images/symbol/instagram.svg) no-repeat center;
		width: 52px;
		height: 52px;
	}
	
	nav.social > li.icn a span  {
		display: none;
	}
    
    /******************************/
    /* Logo hover animation
    /******************************/
    /* figure:is(.footer, .header).logo {
        position: relative;
        perspective: 9999px;
        perspective-origin: bottom;
    }
    
    figure:is(.footer, .header).logo::before, figure:is(.footer, .header).logo::after {
        position: absolute;
        content: '';
    }
    
    figure:is(.footer, .header).logo::before {
        min-width: 29.5px;
        min-height: 10.5px;
        background-color: #FEFEFE;
        bottom: 2.25px;
        left: 11.5px;
        z-index: 2;
        border-radius: 0 0 3px 3px;
    }
    
    figure:is(.footer, .header).logo::after {
        min-width: 28px;
        min-height: 59px;
        background-color: var(--color-2);
        top: 11.5px;
        left: 12px;
        z-index: 1;
        
        transition: transform .5s ease-in-out;
        transform: rotateX(25deg) rotateY(70deg) rotateZ(0deg);
        transform-style: preserve-3d;
        transform-origin: left;
    }
    
    figure:is(.footer, .header).logo:hover::after {
        transform: rotate3d(0, 1, 0, 0deg);
    }
     */
/********************************************************/
/*
/*      Popup alerts
/*
/********************************************************/
    /******************************/
    /* Popup alert
    /******************************/
    /* body:not(.logged-in) :is(.popup-overlay, .popup-alert) {
        display: none !important
    }
     */
    .popup-overlay,
    .popup-alert {
        position: fixed;
        opacity: 0;
        pointer-events: none !important;
        transition: opacity .4s;
    }
    
    :is(.popup-overlay, .popup-alert).visible {
        pointer-events: all !important;
    }
    
    .popup-overlay.visible {
        opacity: .66;
    }
    
    .popup-alert.visible {
        opacity: 1;
    }
    
    .popup-alert.visible ~ .popup-alert {
        opacity: 0 !important;
        pointer-events: none !important;
    }
    
    .popup-overlay {
        inset: 0;
        width: 100vw;
        height: 100vh;
        background: #212429;
        margin: 0;
        cursor: pointer;
        z-index: 19;
    }
    
    .popup-alert {
        display: grid;
        grid-template-rows: max-content 1fr;
        top: 50%;
        left: 50%;
        min-width: calc(100vw / 3);
        max-width: calc(100vw * (2/3));
        max-height: 85vh;
        background-color: var(--color-1);
        margin: 0 !important;
        box-sizing: border-box;
        overflow: hidden;
        translate: -50% -50%;
        z-index: 20;
        /* mask: url(../images/symbol/mass_photo-temoignage.svg) top left / cover no-repeat, linear-gradient(#000 0 0); */
        /* mask-composite: intersect; */
    }
    
    .popup-alert .popup-thumbnail {
        grid-row: 1;
        /* width: 100%; */
        height: min(400px, 40vh);
        object-fit: cover;
        pointer-events: none;
        user-select: none;
    }
    
    /* TEMPORARY */
    .popup-alert .popup-thumbnail {
        justify-self: center;
        width: auto;
        aspect-ratio: 333/188;
    }
    /* TEMPORARY */
    
    .popup-alert .popup-close::before {
        content: '';
        position: absolute;
        top: 4.5rem;
        left: 1.5rem;
        font-family: var(--font-icon);
        font-size: 4.5rem;
        color: var(--color-light-gray);
        cursor: pointer;
        z-index: 2;
        transition: color .4s ease;
    }
    
    .popup-alert .popup-close:hover::before {
        color: var(--color-4);
    }
    
    .wp-site-blocks:has(.popup-alert.visible ~ .popup-alert.visible) .popup-alert .popup-close::before {
        content: '';
    }
    
    .popup-alert .popup-content {
        grid-row: 2;
        display: flex;
        flex-direction: column;
        padding: 4rem;
        z-index: 1;
    }
    
    .popup-alert .popup-content > * {
        text-align: center;
        margin-block: 0;
        box-sizing: border-box;
    }
    
    .popup-alert .popup-content > * + * {
        margin-top: .8em;
    }
    
    .popup-alert .popup-content > .btn {
        margin-block: 1rem;
        margin-inline: auto;
    }
    
    .popup-alert .popup-content > .btn > a {
        font: var(--stack-heading-m);
        color: var(--color-1);
        background-color: var(--color-white);
    }
    
    .popup-alert .popup-content > .btn:last-child,
    .popup-alert .popup-content > .btn:has(+ :last-child:empty) {
        margin-top: 6rem;
    }
    
    @media screen and (max-width: 1200px) {
        .popup-alert { min-width: 55vw; max-width: 70vw; }
        .popup-alert .popup-thumbnail { height: min(350px, 35vh); }
    }
    
    @media screen and (max-width: 950px),
    (max-height: 800px) {
        .popup-alert .popup-thumbnail { height: min(250px, 30vh); }
    }
    
    @media screen and (max-width: 850px) {
        .popup-alert { min-width: calc(100vw * (2/3)); max-width: 90vw; }
        .popup-alert .popup-content { padding: 3rem 2rem; }
    }
    
    @media screen and (max-width: 650px) {
        .popup-alert .popup-thumbnail { height: min(200px, 25vh); }
    }
    
    @media screen and (max-width: 500px) {
        .popup-alert { min-width: 90vw; max-width: 90vw; }
    }
    
    @media screen and (max-width: 400px) {
        .popup-alert { min-width: 100vw; max-width: 100vw; }
        .popup-alert .popup-thumbnail { height: min(150px, 20vh); }
    }
    
    /* Screen height responsiveness */
    @media screen and (max-height: 800px) {
        /* .popup-alert { max-height: 90vh; mask: url(../images/symbol/mass_photo-temoignage.svg) top -15vh left / cover no-repeat, linear-gradient(#000 0 0); mask-composite: intersect; } */
        .popup-alert { max-height: 90vh; }
    }
    
    @media screen and (max-height: 650px) {
        .popup-alert { max-height: 95vh; }
    }
    
    @media screen and (max-height: 550px) {
        /* .popup-alert { max-height: 100vh;  mask: url(../images/symbol/mass_photo-temoignage.svg) top -25vh left / cover no-repeat, linear-gradient(#000 0 0); mask-composite: intersect; } */
        .popup-alert { max-height: 100vh; }
    }
    
    @media screen and (max-height: 450px) {
        .popup-alert { grid-template-rows: 100%; mask: unset; }
        .popup-alert .popup-thumbnail { display: none; }
        .popup-alert .popup-close::before { top: 1.5rem; left: 1.5rem; font-size: 3rem; color: var(--color-black-rich); }
        .popup-alert .popup-content { grid-row: 1; }
    }

/********************************************************/
/*
/*      Archives
/*
/********************************************************/

    /******************************/
    /* Product Archive
    /******************************/
    .product-items {
        display: flex;
        flex-wrap: wrap;
        column-gap: 4rem;
        row-gap: 7rem;
        padding: 0 1rem;
    }
    
    .product-items .product-item {
        display: flex;
        flex-direction: column;
        justify-content: center;
        width: calc((100% - (4rem * 3)) / 4);
    }
    
    .product-item h4 {
       /* margin-top: 1.5rem;*/
        background-color: #F8F9FA;
		padding: 1.5rem;
        margin-bottom: auto;
    }
	
	.product-item:hover h4 {
		color: var(--color-2);
	}
    
    .product-thumbnail {
        position: relative;
        display: flex;
        justify-content: center;
        align-items: center;
        background-color: #F8F9FA;
        padding: 5rem 8rem;
        min-height: 400px;
        max-height: 400px;
        /* margin: auto 0; */
        margin: 0;
        overflow: hidden;
    }
    
    .product-thumbnail img {
        position: absolute;
        height: calc(100% - (5rem * 2));
        max-width: calc(100% - (8rem * 2));
        object-fit: contain;
        
        transition: transform .5s;
        transform: scale(0.9);
    }
    
    /* .product-thumbnail:is(.vertical-full, .horizontal-full, .horizontal-centered) { */
    .product-thumbnail:is(.horizontal-full, .horizontal-centered) {
        min-height: 250px;
        max-height: 250px;
    }
    
    .product-thumbnail:is(.vertical-full, .horizontal-full) {
        padding: 0;
    }
    
    .product-thumbnail:is(.vertical-full, .horizontal-full) img {
        /* width: 120%; */
        /* max-width: 120%; */
        
        max-width: unset;
        transform: scale(1);
    }
    
    .product-thumbnail.vertical-full img {
        height: 100%;
        top: 0;
        transform-origin: top;
        object-position: top;
    }
    
    .product-thumbnail.horizontal-full img {
        /* height: 120%; */
        right: 0;
        transform-origin: right;
        object-position: right;
    }

    .product-thumbnail.horizontal-full img.is-default-thumbnail {
        width: 80%;
        right: 50%;
        translate: 50%;
        transform-origin: center;
        filter: brightness(50%) saturate(0);
    }
    
    :not(.mobile) .product-item:hover .product-thumbnail img {
        transform: scale(1);
    }
    
    :not(.mobile) .product-item:hover .product-thumbnail:is(.vertical-full, .horizontal-full) img {
        transform: scale(1.03);
    }
    
    .product-thumbnail .promotion {
        position: absolute;
        top: 0;
        left: 2rem;
        background-color: var(--color-1);
        color: var(--color-black);
        padding: 3rem 1.5rem 1.25rem 1.5rem;
        writing-mode: tb;
        transform: rotate(180deg);
        clip-path: polygon(0 17.5%, 100% 0, 100% 100%, 0% 100%);
        z-index: 1;
        pointer-events: none !important;
    }
    
    /* TEMPORARY */
    #product-1151 .product-thumbnail {
        background-color: unset;
    }
    
    #product-1151 .product-thumbnail .promotion {
        display: none;
    }
    
    @media screen and (max-width: 400px) {
        #product-1151 .product-thumbnail {
            min-height: 400px !important;
        }
    }
    /* TEMPORARY */

    @media screen and (max-width: 1200px) {
        .product-items .product-item {
            width: calc((100% - (4rem * 2)) / 3);
        }
    }
    
    @media screen and (max-width: 900px) {
        .product-items .product-item {
            width: calc((100% - (4rem * 1)) / 2);
        }
    }
    
    @media screen and (max-width: 600px) {
        .product-items .product-item {
            width: 100%;
        }
        .product-thumbnail {
            min-height: 600px;
        }
    }
    
    @media screen and (max-width: 500px) {
        .product-thumbnail {
            min-height: 500px;
        }
    }

/********************************************************/
/*
/*      Singles
/*
/********************************************************/
    
    /******************************/
    /* Product Single
    /******************************/
    .product-single-header {
        overflow: hidden;
    }
    
    .product-single-header [data-part="inner"] {
        display: flex;
        gap: 10rem;
        padding: 4rem 12rem 7rem 0;
    }
    
    .product-single-header .product-info {
        position: relative;
        display: flex;
        flex-direction: column;
        gap: 0;
        flex: 3;
        padding-bottom: 15rem;
        padding-left: calc(var(--grid-width) / 20);
        height: max-content;
    }
    
    .product-single-header .product-info > :not(.bg-shape-container) {
        max-width: 90%;
    }
    
    .product-single-header .product-info > :not(.bg-shape-container), .product-single-header .product-images {
        z-index: 1;
    }

    .product-single-header .product-info :is(h1, h2, h3) {
        color: var(--color-black);
        margin-bottom: 2rem;
    }

    .product-single-header .product-info .spec {
        margin-bottom: 4rem;
    }
    
    .product-single-header .product-info :is(h4, h5, .product-description h6, .breadcrumb) {
        margin-bottom: 6rem;
    }
    
    .product-single-header .product-info .product-description :is(p, span, ul, blockquote) {
        margin-bottom: 7rem;
    }
    
    .product-single-header .breadcrumb {
        display: flex;
        flex-direction: row-reverse;
        justify-content: start;
        gap: 2rem;
    }
    
    .product-single-header .breadcrumb a > h6 {
        transition: color .5s;
        color: var(--color-2);
    }
    
    :not(.mobile) .product-single-header .breadcrumb a:hover > h6 {
        color: var(--color-4);
    }
    
    .product-single-header .product-specs h6 {
        padding-bottom: .5rem;
        border-bottom: 1.5px solid var(--color-black);
        margin-bottom: 2rem;
    }
    
    .product-single-header .bg-shape {
        position: absolute;
        top: -4rem;
        left: calc(var(--spacing) * -1);
        max-width: var(--grid-width);
        height: calc(100% + 4rem);
        aspect-ratio: 22 / 25;
        object-fit: cover;
    }
    
    .product-single-header .bg-shape-container::before {
        content: '';
        display: block;
        width: calc(var(--grid-pad) + 1rem);
        height: calc(100% + 4rem);
        position: absolute;
        top: -4rem;
        left: calc((var(--grid-pad) + var(--spacing)) * -1);
        background-color: var(--color-white);
    }
    
    .product-single-header .spec-items {
        display: flex;
        gap: 1rem;
        align-items: end;
    }
    
    .product-single-header .spec-items:not(:last-of-type) {
        margin-bottom: .5rem;
    }
    
    .product-single-header .spec-items > p:first-child {
        width: 75%;
        border-bottom: 1px solid var(--color-black);
    }
    
    .product-single-header .product-images {
        position: relative;
        flex: 2;
        margin-top: 3rem;
        max-height: calc((600px * 2) + 2rem); /* Fit 2 images + gap at once */
        padding-left: 7rem;
        overflow: hidden;
    }
    
    .product-single-header a[data-rel="next"] {
        position: absolute;
        bottom: calc(600px + 2rem);
        left: 0;
        font: var(--stack-icn);
        font-size: 32px;
        
        transition: color .5s;
        color: var(--color-black);
    }
    
    .product-single-header .image-items {
        display: flex;
        flex-direction: column;
        gap: 2rem;
        
        transition: transform .5s;
        transform: translateY(0px);
    }
    
    .product-single-header .image-item {
        position: relative;
        background-color: #F8F9FA;
        min-height: 600px;
        max-height: 600px;
    }
    
    .product-single-header .product-images figure img {
        position: absolute;
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
    
    /* TEMPORARY */
    body.single-carr_product.postid-1151 .product-single-header .product-thumbnail {
       min-height: 500px;
       max-height: 500px;
       background-color: unset;
    }
    
    body.single-carr_product.postid-1151 .product-single-header .product-thumbnail img {
        height: 100%;
        max-width: unset;
        transform: scale(1);
    }
    
    body.single-carr_product.postid-1151 .product-single-header .product-thumbnail .promotion {
        display: none;
    }
    
    body.single-carr_product.postid-1151 .product-single-header .product-info .product-description :is(p, span, ul, blockquote) {
        margin-bottom: 3rem;
    }
    
    @media screen and (max-width: 1100px) {
        body.single-carr_product.postid-1151 .product-single-header .product-thumbnail {
           min-height: 450px;
           max-height: 450px;
        }
    }
    
    @media screen and (max-width: 350px) {
        body.single-carr_product.postid-1151 .product-single-header .product-thumbnail {
           min-height: 400px;
           max-height: 400px;
        }
    }
    /* TEMPORARY */
    
    @media screen and (max-width: 1440px) {
        .product-single-header .bg-shape-container::before {
            display: none;
        }
    }
    
    @media screen and (max-width: 1200px) {
        .product-single-header [data-part="inner"] {
            padding: 4rem 0 7rem;
            gap: 8rem;
        }
    }
    
    @media screen and (max-width: 1000px) {
        .product-single-header [data-part="inner"] {
            gap: 0;
        }
        .product-single-header .product-info > :not(.bg-shape-container) {
            max-width: 85%;
        }
    }
    
    @media screen and (max-width: 900px) {
        .product-single-header [data-part="inner"] {
            flex-direction: column;
        }
        .product-single-header .product-info {
            padding-left: 0;
        }
        .product-single-header .bg-shape {
            height: calc(120% + 4rem);
        }
        .product-single-header .product-images {
            padding-left: 25%;
            padding-right: 25%;
        }
        .product-single-header a[data-rel="next"] {
            left: 15%;
        }
    }
    
    @media screen and (max-width: 800px) {
        .product-single-header .product-info > :not(.bg-shape-container) {
            max-width: 100%;
        }
        .product-single-header .product-images {
            padding-left: 20%;
            padding-right: 20%;
        }
        .product-single-header a[data-rel="next"] {
            left: 10%;
        }
    }
    
    @media screen and (max-width: 700px) {
        .product-single-header .product-images {
            padding-left: 15%;
            padding-right: 15%;
        }
        .product-single-header a[data-rel="next"] {
            left: 10%;
        }
    }
    
    @media screen and (max-width: 600px) {
        .product-single-header .bg-shape {
            height: calc(100% + 4rem);
        }
        .product-single-header .product-images {
            padding-left: 15%;
            padding-right: 5%;
        }
        .product-single-header a[data-rel="next"] {
            left: 5%;
        }
    }
    
    @media screen and (max-width: 500px) {
        .product-single-header .product-images {
            padding-left: 0;
            padding-right: 0;
        }
        .product-single-header a[data-rel="next"] {
            display: none;
        }
    }
    
    /******************************/
    /* Idea Single
    /******************************/
    .idea-single-header {
        overflow: hidden;
    }
    
    .idea-single-header [data-part="inner"] {
        position: relative;
        display: flex;
        flex-wrap: wrap;
        padding: 4rem 0 11rem;
    }
    
    .idea-single-header [data-part="inner"] > a {
        width: 100%;
        padding-left: calc(var(--grid-width) / 20);
    }
    
    .idea-single-header [data-part="inner"] > a h6 {
        color: var(--color-2);
    }
    
    .idea-single-header [data-part="inner"] > :not(.bg-shape-container) {
        z-index: 1;
    }
    
    .idea-single-header :is(.idea-info, .idea-images) {
        width: calc((100% - 3rem) / 2);
    }
    
    .idea-single-header .idea-info {
        padding-left: calc(var(--grid-width) / 20);
        padding-top: 7rem;
    }
    
    .idea-single-header .idea-info > h1 {
        color: var(--color-black);
        margin-bottom: 3rem;
    }
    
    .idea-single-header .idea-info > label {
        margin-bottom: 6rem;
        pointer-events: none !important;
    }
    
    .idea-single-header .idea-content :is(h1, h2, h3, h4, h5, h6):not(:last-child) {
        margin-bottom: 3rem;
    }
    
    .idea-single-header .idea-content :is(p, ul, blockquote, .btn):not(:last-child), .idea-single-header .idea-content {
        margin-bottom: 6rem;
    }
    
    .idea-single-header .idea-images {
        position: relative;
        max-height: calc((420px * 3) + (2rem * 2)); /* Fit 3 images + gap at once */
        padding-left: 12rem;
        overflow: hidden;
    }
    
    .idea-single-header a[data-rel="next"] {
        position: absolute;
        top: calc(420px - 4rem);
        left: 4rem;
        font: var(--stack-icn);
        font-size: 32px;
        
        transition: color .5s;
        color: var(--color-black);
    }
    
    .idea-single-header .image-items {
        display: flex;
        flex-direction: column;
        gap: 2rem;
        
        transition: transform .5s;
        transform: translateY(0px);
    }
    
    .idea-single-header .image-item {
        min-height: 420px;
        max-height: 420px;
    }
    
    .idea-single-header .image-item img {
        width: 100%;
        height: 420px;
        object-fit: cover;
    }
    
    .idea-single-header .bg-shape {
        position: absolute;
        top: 0;
        left: calc(var(--spacing) * -1);
        min-width: calc(100% * (2/3));
        width: auto;
        height: 100%;
        /* height: calc(100% * (2/3)); */
        aspect-ratio: 22 / 25;
        object-fit: cover;
        object-position: top;
    }
    
    .idea-single-header .bg-shape-container::before {
        content: '';
        display: block;
        width: calc(var(--grid-pad) + 1rem);
        height: 100%;
        /* height: calc(100% * (2/3)); */
        position: absolute;
        top: 0;
        left: calc((var(--grid-pad) + var(--spacing)) * -1);
        background-color: var(--color-white);
    }
    
    @media screen and (max-width: 1440px) {
        .idea-single-header .bg-shape-container::before {
            display: none;
        }
    }
    
    @media screen and (max-width: 1200px) {
        .idea-single-header .bg-shape {
            width: calc(100% * (4/5));
        }
    }
    
    @media screen and (max-width: 900px) {
        .idea-single-header {
            background-color: var(--color-white);
        }
        .idea-single-header [data-part="inner"] {
            flex-direction: column;
        }
        .idea-single-header .idea-info {
            margin-bottom: 12rem;
            padding-left: 0;
        }
        .idea-single-header [data-part="inner"] > a {
            padding-left: 0;
        }
        .idea-single-header :is(.idea-info, .idea-images) {
            width: 100%;
        }
        .idea-single-header .idea-images {
            padding-left: 10%;
            padding-right: 10%;
        }
        .idea-single-header .bg-shape {
            display: none;
        }
        .idea-single-header a[data-rel="next"] {
            left: 5%;
        }
    }
    
    @media screen and (max-width: 800px) {
        .idea-single-header .idea-images {
            padding-left: 7.5%;
            padding-right: 7.5%;
        }
        .idea-single-header a[data-rel="next"] {
            left: 2.5%;
        }
    }
    
    @media screen and (max-width: 700px) {
        .idea-single-header .idea-images {
            padding-left: 0;
            padding-right: 0;
            max-height: calc((375px * 3) + (2rem * 2));
        }
        .idea-single-header .image-item {
            min-height: 375px;
            max-height: 375px;
        }
        .idea-single-header .image-item img {
            height: 375px;
        }
        .idea-single-header a[data-rel="next"] {
            display: none;
        }
    }
    
    @media screen and (max-width: 500px) {
        .idea-single-header .idea-images {
            max-height: calc((300px * 3) + (2rem * 2));
        }
        .idea-single-header .image-item {
            min-height: 300px;
            max-height: 300px;
        }
        .idea-single-header .image-item img {
            height: 300px;
        }
    }
    
/********************************************************/
/*
/*      Wrapped content
/*
/********************************************************/

    /* Promotions banner margin */
    .cake-def-wrap [data-part="inner"] > .wp-block-cover {
        margin: 7rem 0;
    }
    
    /* Wrapped columns */
    .cake-def-wrap [data-part="inner"] > .wp-block-columns {
        padding: 8rem 0 10rem;
    }
    
    .cake-def-wrap [data-part="inner"] > .wp-block-columns > .wp-block-column {
        flex-basis: 0 !important;
    }
    
    /* Wrapped text spacing */
    .cake-def-wrap:has([data-part="inner"] > :is(h1, h2, h3, h4, h5, h6, p, ul, blockquote, .btn)) {
        & > [data-part="inner"] > :is(h1, h2, h3, h4, h5, h6, p, ul, blockquote, .btn) {
            max-width: calc(100% * (2/3));
            
            &:first-child {
                margin-top: 12rem;
            }
            
            &:last-child {
                margin-bottom: 12rem;
            }
        }
        
        &.cake-margins-half > [data-part="inner"] > :is(h1, h2, h3, h4, h5, h6, p, ul, blockquote, .btn) {
            &:first-child {
                margin-top: 6rem;
            }
            
            &:last-child {
                margin-bottom: 6rem;
            }
        }
        
        &.cake-margin-top-75-percent > [data-part="inner"] > :is(h1, h2, h3, h4, h5, h6, p, ul, blockquote, .btn) {
            &:first-child {
                margin-top: 8rem;
            }
        }
        
        &.cake-margin-bottom-25-percent > [data-part="inner"] > :is(h1, h2, h3, h4, h5, h6, p, ul, blockquote, .btn) {
            &:last-child {
                margin-bottom: 4rem;
            }
        }
    }
    
    .cake-def-wrap.cake-margins-half [data-part="inner"] > :is(h1, h2, h3, h4, h5, h6, p, ul, blockquote, .btn):first-child {
        margin-top: 6rem;
    }
    
    .cake-def-wrap.cake-margins-half [data-part="inner"] > :is(h1, h2, h3, h4, h5, h6, p, ul, blockquote, .btn):last-child {
        margin-bottom: 6rem;
    }
    
    .cake-def-wrap [data-part="inner"] > :is(h1, h2, h3, h4, h5, h6, p, ul, blockquote, .btn).has-text-align-center {
        margin-left: auto;
        margin-right: auto;
    }
    
    :is(.cake-def-wrap, .wp-block-column) :is(h1, h2, h3):not(:last-child) {
        margin-bottom: 2rem;
    }
    
    :is(.cake-def-wrap, .wp-block-column) :is(h4, h5, h6):not(:last-child) {
        margin-bottom: 4rem;
    }
    
    :is(.cake-def-wrap, .wp-block-column) :is(p, ul, blockquote, .btn):not(:last-child) {
        margin-bottom: 6rem;
    }
    
    @media screen and (max-width: 1000px) {
        .cake-def-wrap [data-part="inner"] > :is(h1, h2, h3, h4, h5, h6, p, ul, blockquote, .btn) {
            max-width: 100% !important;
        }
    }
    
    @media screen and (max-width: 900px) {
        .cake-def-wrap [data-part="inner"] > .wp-block-columns {
            flex-direction: column;
        }
    }
    
    @media screen and (max-width: 700px) {
        .cake-def-wrap [data-part="inner"] > .wp-block-cover {
            padding: 0;
        }
        .cake-def-wrap [data-part="inner"] > .wp-block-cover :is(.wp-block-cover__inner-container, .btn, .btn > a) {
            display: block;
            width: 100%;
            height: 100%;
            background: transparent;
            color: transparent;
        }
    }

/********************************************************/
/*
/*      Blocks
/*
/********************************************************/

    /******************************/
    /* Def Wrap
    /******************************/
    .cake-def-wrap [data-part="inner"] > * {
        grid-column: inner;
    }

    /******************************/
    /* Block Page Header
    /******************************/
    .block-page-header {
        background-color: var(--color-black-rich);
    }
    
    .block-page-header [data-part="inner"] {
        grid-column: full;
        display: flex;
        width: calc(var(--grid-width) - 15px);
        max-width: 100vw;
        margin: 0 auto;
    }
    
    .block-page-header .wp-block-cover {
        width: 100%;
    }

    .block-page-header .wp-block-cover__background {
        background: linear-gradient(90deg, var(--color-black-rich) 0%, rgba(0,0,0,0) 50%, rgba(0,0,0,0) 60%, var(--color-black-rich) 100%);
        background-color: unset !important;
        opacity: 1 !important;
    }
    
    .block-page-header .wp-block-cover .wp-block-cover__inner-container {
        max-width: 60%;
    }
    
    @media screen and (max-width: 1000px) {
        .block-page-header .wp-block-cover__background {
            background: linear-gradient(90deg, var(--color-black-rich) 0%, rgba(0,0,0,0) 75%, rgba(0,0,0,0) 85%, var(--color-black-rich) 100%);
        }
    }
    
    @media screen and (max-width: 600px) {
        .block-page-header .wp-block-cover__background {
            background: unset;
            background-color: rgba(33, 36, 41, 0.5) !important;
        }
    }
    
    /******************************/
    /* Block Product Categories
    /******************************/
    .block-product-categories [data-part="inner"] {
        padding: 7rem 1rem;
    }
    
    .block-product-categories .category-items {
        grid-column: inner;
        display: flex;
        flex-wrap: wrap;
        gap: 4rem;
    }
    
    .block-product-categories .category-item {
        display: block;
        position: relative;
        width: calc((100% - 4rem) / 2);
        height: 50rem;
    }
    
    .block-product-categories .category-item > img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        
        transition: filter .5s;
        filter: grayscale(1);
    }
    
    :not(.mobile) .block-product-categories .category-item:hover > img, main.mobile .block-product-categories .category-item > img {
        filter: grayscale(0);
    }
    
    .block-product-categories .category-item > span {
        position: absolute;
        left: 50%;
        transform: translateX(-50%);
        bottom: 4.25rem;
        width: max-content;
        padding: 1rem 3rem;
        font: var(--stack-menu);
        color: var(--color-light-gray);
        text-align: center;
        text-decoration: none;
        text-transform: uppercase;
        
        transition: background-color .5s;
        background-color: var(--color-black-rich);
    }
    
    .block-product-categories .category-item > span > span {
        font-size: var(--font-size-s);
        line-height: var(--line-height-s);
    }
    
    :not(.mobile) .block-product-categories .category-item:hover > span {
        background-color: var(--color-3);
    }
    
    .block-product-categories :is(.product-items, .no-content) {
        grid-column: inner;
    }
    
    .block-product-categories .no-content {
        text-align: center;
    }
    
    @media screen and (max-width: 700px) {
        .block-product-categories .category-item {
            width: 100%;
            height: 40rem;
        }
    }
    
    @media screen and (max-width: 500px) {
        .block-product-categories .category-item {
            height: 30rem;
        }
    }
    
    /******************************/
    /* Block Text-Media
    /******************************/
    .block-text-media [data-part="inner"] {
        position: relative;
    }
    
    .block-text-media .bg-shape {
        position: absolute;
        top: 0;
        left: calc(var(--spacing) * -1);
        width: auto;
    }
    
    .block-text-media .bg-shape-container::before {
        content: '';
        display: block;
        width: calc(var(--grid-pad) + 1rem);
        position: absolute;
        top: 0;
        left: calc((var(--grid-pad) + var(--spacing)) * -1);
    }
    
    .block-text-media.shape-gray .bg-shape-container::before {
        background-color: var(--color-light-gray);
    }
    
    .block-text-media.shape-white .bg-shape-container::before {
        background-color: var(--color-white);
    }
    
    .block-text-media.shape-gray .bg-shape {
        filter: brightness(0) saturate(100%) invert(83%) sepia(3%) saturate(2118%) hue-rotate(323deg) brightness(124%) contrast(89%);
    }
    
    .block-text-media.shape-small .bg-shape, .block-text-media.shape-small .bg-shape-container::before  {
        height: calc(100% * (2/3));
    }
    
    .block-text-media.shape-small .bg-shape {
        aspect-ratio: 212 / 150;
    }
    
    .block-text-media.shape-tall .bg-shape, .block-text-media.shape-tall .bg-shape-container::before {
        height: calc(100% * (3/4));
    }
    
    .block-text-media.shape-full .bg-shape, .block-text-media.shape-full .bg-shape-container::before {
        height: 100%;
    }
    
    .block-text-media.shape-full .wp-block-columns:first-child + .bg-shape-container .bg-shape {
        width: calc(100% * (2/3));
        object-fit: cover;
    }
    
    .block-text-media:is(.shape-tall, .shape-full) .bg-shape {
        aspect-ratio: 22 / 25;
    }
    
    .block-text-media .wp-block-columns {
        grid-column: col-start 2 / col-end 11;
        z-index: 1;
        gap: 17.5rem;
        padding: 10rem 0;
    }
    
    .block-text-media .wp-block-column {
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-self: unset !important;
    }
    
    .block-text-media .wp-block-column figure {
        height: 100%;
    }
    
    .block-text-media .wp-block-column figure:not(.no-max-height) {
        max-width: 500px;
        max-height: 500px;
    }
    
    .block-text-media .wp-block-column img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
    
    /* TEMPORARY */
    @media screen and (max-width: 1100px) {
        .block-text-media .wp-block-column figure#contest img {
            object-fit: contain;
        }
    }
    
    @media screen and (max-width: 1100px) {
        .block-text-media .bg-shape-container::before {
            display: none;
        }
        .block-text-media.shape-small .bg-shape {
            height: calc(100% * (1.75/3));
        }
        .block-text-media.shape-tall .bg-shape {
            height: calc(100% * (2/3));
        }
    }
    
    @media screen and (max-width: 800px) {
        .block-text-media .wp-block-columns {
            flex-direction: column;
            row-gap: 6rem;
        }
        .block-text-media .wp-block-columns:first-of-type:not(:last-of-type) {
            flex-direction: column-reverse;
            padding: 10rem 0 5rem;
        }
        .block-text-media .wp-block-columns:last-of-type:not(:first-of-type) {
            padding: 5rem 0 10rem;
        }
        .block-text-media .wp-block-columns:not(:first-of-type, :last-of-type) {
            padding: 5rem 0;
        }
        .block-text-media .bg-shape {
            object-position: top;
            object-fit: contain;
        }
        .block-text-media.shape-full .wp-block-columns:first-child + .bg-shape-container .bg-shape {
            width: auto;
            object-fit: contain;
        }
    }
        
    /******************************/
    /* Block Testimonies & Block Slideshow
    /******************************/
    :is(.block-testimonies, .block-slideshow) [data-part="inner"] > :is(figure, .slideshow-images) {
        grid-column: inner-start / col-end 4;
        height: 100%;
        transform: translateX(calc(var(--spacing) * -1));
        -webkit-mask-image: url(../images/symbol/mass_photo-temoignage.svg);
        -webkit-mask-size: cover;
        -webkit-mask-repeat: no-repeat;
        mask-image: url(../images/symbol/mass_photo-temoignage.svg);
        mask-size: cover;
        mask-repeat: no-repeat; 
    }
    
    :is(.block-testimonies, .block-slideshow) [data-part="inner"] > :is(figure, .slideshow-images) img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    :is(.block-testimonies, .block-slideshow) [data-part="inner"] > div:not(.slideshow-images) {
        grid-column: col-start 6 / col-end 11;
        display: flex;
        flex-direction: column;
        justify-content: center;
        gap: 2.25rem;
        padding: 11rem 0 7rem;
    }
    
    :is(.block-testimonies, .block-slideshow) :is(.testimony-items, .slideshow-items) {
        position: relative;
        flex-grow: 2;
    }
    
    :is(.block-testimonies, .block-slideshow)  :is(.testimony-item, .slideshow-item) {
        position: absolute;
        inset: 0;
        height: max-content;
        
        transition: opacity .5s;
        opacity: 0;
    }
    
    :is(.block-testimonies, .block-slideshow).has-min-height  :is(.testimony-item, .slideshow-item) {
        height: auto;
    }
    
    :is(.block-testimonies, .block-slideshow)  :is(.testimony-item, .slideshow-item).active {
        transition: opacity .5s .4s;
        opacity: 1;
    }

    :is(.block-testimonies, .block-slideshow) :is(.testimony-controls, .slideshow-controls) {
        display: flex;
        gap: 4rem;
        padding-top: 3rem;
        border-top: 1px solid var(--color-gray);
    }
    
    :is(.block-testimonies, .block-slideshow) :is(.testimony-controls, .slideshow-controls) > a {
        font: var(--stack-icn);
        text-decoration: none;
        pointer-events: all;
        cursor: pointer;
        
        transition: color .4s;
        color: var(--color-black);
    }
    
    :not(.mobile) :is(.block-testimonies, .block-slideshow) :is(.testimony-controls, .slideshow-controls) > a:hover {
        color: var(--color-1);
    }
    
    @media screen and (max-width: 800px) {
        :is(.block-testimonies, .block-slideshow) [data-part="inner"] > :is(figure, .slideshow-images) {
            min-height: 600px !important;
            max-height: 600px !important;
        }
        :is(.block-testimonies, .block-slideshow) [data-part="inner"] > :is(figure, .slideshow-images), :is(.block-testimonies, .block-slideshow) [data-part="inner"] > div:not(.slideshow-images) {
            grid-column: inner;
        }
        :is(.block-testimonies, .block-slideshow) [data-part="inner"] > :is(figure, .slideshow-images) {
            grid-row: 2;
            width: calc(100% + (var(--spacing) * 2));
        }
    }
    
    /* Testimonies specific CSS */
    .block-testimonies .testimony-item {
        display: flex;
        flex-direction: column;
        gap: 4rem;
    }
    
    .block-testimonies .testimony-item > label {
        color: var(--color-black);
        margin-top: auto;
    }
    
    /* Slideshow specific CSS */
    .block-slideshow [data-part="inner"] {
        position: relative;
    }
    
    .block-slideshow [data-part="inner"]::before {
        content: '';
        display: block;
        width: var(--grid-pad);
        height: 100%;
        position: absolute;
        top: 0;
        left: calc((var(--grid-pad) + var(--spacing)) * -1);
    }
    
    .block-slideshow [data-part="inner"]::before, .block-slideshow .slideshow-images {
        background-color: var(--color-white);
    }
    
    .block-slideshow .slideshow-images {
        position: relative;
    }
    
    .block-slideshow .slideshow-images figure {
        display: contents;
    }
    
    .block-slideshow .slideshow-images figure img {
        position: absolute;
        inset: 0;
        object-fit: contain !important;
        transform: scale(.5) translateY(20%);
        
        transition: opacity .5s;
        opacity: 0;
    }
    
    .block-slideshow .slideshow-images figure.active img {
        transition: opacity .5s .4s;
        opacity: 1;
    }
    
    /******************************/
    /* Block Product List
    /******************************/
    .block-product-list [data-part="inner"] {
        padding: 4rem 0 7rem;
        position: relative;
        display: flex;
        flex-direction: column;
    }
    
    .block-product-list [data-part="inner"] > :not(.bg-shape-container) {
        z-index: 1;
    }
    
    .block-product-list [data-part="inner"] > :is(h1, h4) {
        color: var(--color-black);
        max-width: 60%;
        margin-top: 2rem;
    }
    
    .block-product-list [data-part="inner"] > h4 > p {
        font: var(--stack-heading-m);
    }
    
    .block-product-list .breadcrumb {
        display: flex;
        flex-direction: row-reverse;
        justify-content: start;
        gap: 2rem;
        margin-bottom: 3rem;
    }
    
    .block-product-list .breadcrumb a > h6 {
        transition: color .5s;
        color: var(--color-2);
    }
    
    :not(.mobile) .block-product-list .breadcrumb a:hover > h6 {
        color: var(--color-4);
    }
    
    .block-product-list .bg-shape {
        position: absolute;
        top: 0;
        left: calc(var(--spacing) * -1);
        width: auto;
        height: calc(100% * (2/3));
        aspect-ratio: 22 / 25;
        object-fit: cover;
        object-position: right;
    }
    
    .block-product-list .bg-shape-container::before {
        content: '';
        display: block;
        width: calc(var(--grid-pad) + 1rem);
        height: calc(100% * (2/3));
        position: absolute;
        top: 0;
        left: calc((var(--grid-pad) + var(--spacing)) * -1);
        background-color: var(--color-white);
    }
    
    .block-product-list .no-content {
        text-align: center;
    }
    
    .block-product-list .no-content + .bg-shape-container {
        display: none;
    }
    
    .block-product-list .product-items {
        margin-top: 13rem;
    }
    
    @media screen and (max-width: 1440px) {
        .block-product-list .bg-shape-container::before {
            display: none;
        }
        .block-product-list .bg-shape {
            height: auto;
            max-height: 80%;
            
        }
    }
    
    @media screen and (max-width: 800px) {
        .block-product-list [data-part="inner"] > :is(h1, h4) {
            max-width: 100%;
        }
    }
    
    /******************************/
    /* Block Photo Mosaic
    /******************************/
    .block-photo-mosaic {
        border-top: 1px solid var(--color-black);
    }
    
    .block-photo-mosaic :is([data-part="inner"], [data-part="inner"] > div) {
        display: flex;
    }
    
    .block-photo-mosaic [data-part="inner"] {
        flex-direction: column;
        gap: 4rem;
        padding: 8rem 1rem;
    }
    
    .block-photo-mosaic [data-part="inner"] > div {
        flex-wrap: wrap;
        justify-content: stretch;
        gap: 2rem; 
    }
    
    .block-photo-mosaic figure {
        max-height: 300px;
        flex-basis: max-content;
        flex-shrink: 1;
        min-width: calc((100% - (2rem * 2)) * (2/12)); 
        margin-bottom: 0;
    }
    
    .block-photo-mosaic figure:last-of-type {
        flex-grow: 1 !important;
    }
    
    .block-photo-mosaic figure img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
    
    @media screen and (max-width: 1000px) {
        .block-photo-mosaic figure {
            min-width: calc((100% - (2rem * 1)) * (6/12));
        }
    }
    
    @media screen and (max-width: 650px) {
        .block-photo-mosaic figure {
            min-width: 100%;
        }
    }
    
    /******************************/
    /* Block Recommended Products
    /******************************/
    .block-recommended-products [data-part="inner"] {
        display: flex;
        flex-direction: column;
        gap: 5rem;
        padding: 9rem 0 6rem;   
        overflow: hidden;
    }
    
    .block-recommended-products .product-items {
        flex-wrap: nowrap;
        padding: 0;
        
        transition: transform .6s;
        transform: translateX(0);
    }
    
    .block-recommended-products .product-item {
        min-width: calc((100% - (4rem * 3)) / 4);
    }
    
    .block-recommended-products .controls {
        display: flex;
        gap: 4rem;
        padding-top: 3rem;
        border-top: 1px solid var(--color-gray);
    }
    
    .block-recommended-products .controls > a {
        font: var(--stack-icn);
        text-decoration: none;
        pointer-events: all;
        cursor: pointer;
        
        transition: color .4s;
        color: var(--color-black);
    }
    
    :not(.mobile) .block-recommended-products .controls > a:hover {
        color: var(--color-1);
    }
    
    @media screen and (max-width: 1200px) {
        .block-recommended-products .product-item {
            min-width: calc((100% - (4rem * 2)) / 3);
        }
        .block-recommended-products .product-thumbnail {
            min-height: 450px;   
        }
    }
    
    @media screen and (max-width: 900px) {
        .block-recommended-products .product-item {
            min-width: calc((100% - (4rem * 1)) / 2);
        }
        .block-recommended-products .product-thumbnail {
            min-height: 475px;   
        }
    }
    
    @media screen and (max-width: 600px) {
        .block-recommended-products .product-item {
            min-width: 100%;
        }
        .block-recommended-products .product-thumbnail {
            min-height: 600px;   
        }
    }
    
    /******************************/
    /* Block History
    /******************************/
    .block-history [data-part="inner"] {
        position: relative;
        padding: 9rem 0 30rem;
    }
    
    .block-history .bg-shape-container::before {
        content: '';
        display: block;
        width: var(--grid-pad);
        height: calc(100% * (4/5));
        position: absolute;
        top: 0;
        left: calc((var(--grid-pad) + var(--spacing)) * -1);
        background-color: var(--color-white);
    }
    
    .block-history .bg-shape {
        position: absolute;
        top: 0;
        left: calc(var(--spacing) * -1);
        max-width: var(--grid-width);
        height: calc(100% * (4/5));
        aspect-ratio: 22 / 25;
        object-fit: cover;
    }
    
    .block-history [data-part="inner"] > .wp-block-columns {
        grid-column: inner;
        display: flex;
        gap: 25rem;
        z-index: 1;
    }
    
    .block-history :is(h1, h2, p, blockquote, ul):not(:last-child) {
        margin-bottom: 7.5rem;
    }
    
    .block-history :is(h3, h5, h6) {
        margin-bottom: 6rem;
    }
    
    .block-history :is(h4, h6) {
        color: var(--color-2);
    }
    
    .block-history h4 {
        margin-bottom: 0 !important;
    }
    
    .block-history .wp-block-column:last-child {
        position: sticky;
        top: 0;
    }
    
    .block-history .wp-block-image {
        height: 450px;
        max-height: 450px;
    }
    
    .block-history .wp-block-image:not(:last-child) {
        margin-bottom: 2rem;
    }
    
    .block-history .wp-block-image img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
    
    @media screen and (max-width: 1440px) {
        .block-history .bg-shape-container::before {
            display: none;
        }
    }
    
    @media screen and (max-width: 1000px) {
        .block-history [data-part="inner"] {
            padding: 9rem 0 15rem
        }
        .block-history [data-part="inner"] > .wp-block-columns {
            gap: 12rem;
        }
        .block-history .bg-shape {
            height: calc(100% * (3/5));
        }
    }
    
    @media screen and (max-width: 800px) {
        .block-history [data-part="inner"] > .wp-block-columns {
            flex-direction: column;
        }
        .block-history .bg-shape {
            height: calc(100% * (2/5));
        }
    }
    
    @media screen and (max-width: 500px) {
        .block-history {
            background-color: var(--color-white);
        }
        .block-history .wp-block-image {
            height: 350px;
            max-height: 350px;
        }
        .block-history .bg-shape {
            display: none;
        }
    }
    
    /******************************/
    /* Block Team Members
    /******************************/
    .block-team-members :is([data-part="inner"], .member-items, .member-item) {
        display: flex;    
    }
    
    .block-team-members :is([data-part="inner"], .member-item) {
        flex-direction: column;
    }
    
    .block-team-members [data-part="inner"] {
        gap: 4rem;
        padding: 11rem 2rem;
    }
    
    .block-team-members .member-items {
        flex-wrap: wrap;
        column-gap: 4rem;
        row-gap: 7rem;
    }
    
    .block-team-members .member-item {
        width: calc((100% - (4rem * 2)) / 3);
        gap: .5rem;
    }
    
    .block-team-members .member-thumbnail {
        display: block;
        width: 100%;
        height: 30rem;
        overflow: hidden;
        margin-bottom: 3.5rem;
    }
    
    .block-team-members .member-thumbnail img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        
        transition: filter .5s;
        filter: grayscale(1);
    }
    
    :not(.mobile) .block-team-members .member-thumbnail:hover img {
        filter: grayscale(0);
    }
    
    .block-team-members .member-item label {
        color: var(--color-black);
    }
    
    @media screen and (max-width: 1000px) {
        .block-team-members .member-item {
            width: calc((100% - (4rem * 1)) / 2);
        }
    }
    
    @media screen and (max-width: 650px) {
        .block-team-members .member-item {
            width: 100%;
        }
        .block-team-members .member-thumbnail {
            height: 40rem;
        }
    }
    
    @media screen and (max-width: 450px) {
        .block-team-members .member-thumbnail {
            height: 30rem;
        }
    }
    
    /******************************/
    /* Block Idea List
    /******************************/
    .block-idea-list [data-part="inner"] {
        position: relative;
        display: flex;
        flex-direction: column;
        padding: 4rem 0 12rem;
    }
    
    .block-idea-list [data-part="inner"] > :not(.bg-shape-container) {
        z-index: 1;
    }
    
    .block-idea-list [data-part="inner"] > :is(h1, h2, h3, h4, h5, h6, p) {
        color: var(--color-black);
        max-width: 50%;
    }
    
    .block-idea-list [data-part="inner"] > :is(h1, h2, h3):not(:last-child) {
        margin-bottom: 2rem;
    }
    
    .block-idea-list [data-part="inner"] > :is(h4,h5, h6, p):not(:last-child) {
        margin-bottom: 4rem;
    }
    
    .block-idea-list #idea-filters {
        display: flex;
        flex-wrap: wrap;
        gap: 3rem;
        margin: 10rem 0 9rem;
    }
    
    .block-idea-list #idea-filters label a {
        display: block;
    }
    
    .block-idea-list #idea-filters input:checked + label a {
        color: var(--color-light-gray);
        background-color: var(--color-4) !important;
    }
    
    .block-idea-list .idea-items {
        display: flex;
        flex-wrap: wrap;
        column-gap: 4rem;
        row-gap: 7rem;
    }
    
    .block-idea-list .idea-item {
        display: flex;
        flex-direction: column;
        gap: 2rem;
        width: calc((100% - (4rem * 2)) / 3);
        padding-bottom: 2rem;
        border-bottom: 1px solid var(--color-black);
    }
    
    .block-idea-list .idea-thumbnail {
        width: 100%;
        max-height: 30rem;
    }
    
    .block-idea-list .idea-thumbnail img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
    
    .block-idea-list .spacer {
        color: transparent;
        pointer-events: none !important;
    }
    
    .block-idea-list .idea-item > a:last-child {
        margin-top: auto;
    }
    
    .block-idea-list .idea-item > a:last-child::after {
        content: '';
        font: var(--stack-icn);
        font-size: 14px;
        margin-left: 2.5rem;
        
        transition: color .5s;
        color: var(--color-black);
    }
    
    :not(.mobile) .block-idea-list .idea-item > a:last-child:hover::after {
        color: var(--color-1);
    }
    
    .block-idea-list .bg-shape {
        position: absolute;
        top: 0;
        left: calc(var(--spacing) * -1);
        width: auto;
        min-height: 95rem;
        height: 50%;
        max-height: 150rem;
        aspect-ratio: 22 / 25;
    }
    
    .block-idea-list .bg-shape-container::before {
        content: '';
        display: block;
        width: calc(var(--grid-pad) + 1rem);
        min-height: 95rem;
        height: 50%;
        max-height: 150rem;
        position: absolute;
        top: 0;
        left: calc((var(--grid-pad) + var(--spacing)) * -1);
        background-color: var(--color-white);
    }
    
    @media screen and (max-width: 1440px) {
        .block-idea-list .bg-shape-container::before {
            display: none;
        }
    }
    
    @media screen and (max-width: 900px) {
        .block-idea-list {
            background-color: var(--color-white);
        }
        .block-idea-list .idea-item {
            width: calc((100% - (4rem * 1)) / 2);
        }
        .block-idea-list .bg-shape {
            display: none;
        }
    }
    
    @media screen and (max-width: 600px) {
        .block-idea-list .idea-item {
            width: 100%;
        }
    }
    
    /******************************/
    /* Block Job Offers
    /******************************/
    .block-job-offers {
        border-top: 1px solid var(--color-black);
    }
    
    .block-job-offers [data-part="inner"] {
        display: flex;
        gap: 15rem;
        padding: 9rem 1.5rem 11rem;
    }
    
    .block-job-offers [data-part="inner"] > * {
        flex: 1;
    }
    
    .block-job-offers .offer-items {
        margin-top: 3.5rem;
    }
    
    @media screen and (max-width: 1000px) {
        .block-job-offers [data-part="inner"] {
            gap: 8rem;
        }
    }
    
    @media screen and (max-width: 800px) {
        .block-job-offers [data-part="inner"] {
            flex-direction: column;
        }
    }
    
    /******************************/
    /* Block Google Map
    /******************************/
    .block-google-map [data-part="inner"] {
        display: flex;
        width: calc(100% + (var(--spacing) * 2));
        transform: translateX(calc(var(--spacing) * -1));
    }
    
    .block-google-map #map {
        width: 100%;
        height: 400px;
    }
    
    /******************************/
    /* Cookie banner/modal
    /******************************/
    .moove-gdpr-info-bar-container {
        background-color: var(--color-black-rich);
    }
    
    .moove-gdpr-company-logo-holder img {
        object-fit: contain;
    }
    
    #moove_gdpr_save_popup_settings_button {
        background-color: var(--color-2) !important;
        cursor: pointer;
    }
    
    #moove_gdpr_save_popup_settings_button span.moove_gdpr_icon svg {
        translate: -.5px .5px;
    }