/*
Theme Name: asticotheme
Theme URI: None
Author: asticoweb.com
Author URI: https://asticoweb.com
Description: Simple wordpress theme made with ❤️ by asticoweb.com | All rights reserved ©
Tags: theme, madewithlove, asticonet, asticoweb, asticoweb.com, asticotheme, coding, spreadthelove, personal, personaluseonly
Version: 5.0
License: License asticoweb.com
License URI: https://asticoweb.com
Text Domain: asticotheme
*/

::selection {
    background: var(--orange);
    color: white;
    text-shadow: none;
}

::-webkit-selection {
    background: var(--orange);
    color: white;
    text-shadow: none;
}

::-moz-selection {
    background: var(--orange);
    color: white;
    text-shadow: none;
}

*,
*:after,
*:before {
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    -webkit-font-smoothing: antialiased;
    font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
    outline: none !important;
    text-decoration: none;

}

section,
div,
header,
nav,
article,
section,
aside,
footer,
h1,
h2,
h3,
h4,
h5,
h6,
p,
a,
ul,
li,
figure,
figcaption,
class,
img {

    margin: 0;
    padding: 0;
}


html,
body {

    width: 100%;
    padding: 0;
    margin: 0;
    font-family: "DM Sans", sans-serif;
    position: relative;
    scroll-behavior: smooth;
    -webkit-tap-highlight-color: transparent;
}

body {

    overflow-x: hidden;
    overflow-y: overlay;
    background: white;
}

::-webkit-scrollbar {
    width: 10px;
    height: 10px;
    border-left: solid 1px var(--ciel);
}

::-webkit-scrollbar-thumb {
    background: var(--ciel);
    border-left: solid 1px var(--ciel);
}

::-webkit-scrollbar-button {
    display: none;
}

.page main>section>h1,
br.clear,
a.post-edit-link {

    display: none;
}

input::placeholder,
textarea::placeholder {

    opacity: 1 !important;
}

input {

    accent-color: var(--rose);
}

:root {
    --rose: #C54189;
    --orange: #E7862A;
    --bleu: #2C2F6F;
    --bleu2: #222554;
    --ciel: #A8DDE2;
    --gris25: #3F3E3D;
    --gris50: #7F7E7C;
    --gris75: #BFBCB8;
    --blanc90: #E5E1DA;
    --blanc95: #F1E9DE;
}

/*------------------------------------*\
    ROOT
\*------------------------------------*/

input[type="search"] {

    background: white;
}

main li {

    list-style: inside square;
}

main li::marker {

    color: var(--rose);
}

.balance {

    text-wrap: balance;
}

.shadow {

    -webkit-box-shadow: 0px 0px 37.5px 0px rgba(20, 23, 51, 0.5);
    box-shadow: 0px 0px 37.5px 0px rgba(20, 23, 51, 0.5);
}

.title span,
.title2 span {

    border-radius: .25em;
    display: inline-block;
    background-color: var(--orange);
    color: white;
}

.title span {

    padding: 12.5px;
    margin: -6.25px 0;
    rotate: -2deg;
}

.title span:nth-of-type(even) {

    rotate: 2deg;
    background-color: var(--rose);
}

.title2 span {

    padding: 10px;
    rotate: 1deg;
    margin: -3.125px 0;
}

.title2 span:nth-of-type(even) {

    rotate: -1deg;
    background-color: var(--rose);
}

/*------------------------------------*\
    OVERLAY
\*------------------------------------*/

.overlay:not(:has(.elementor-background-video-container)):before,
.overlay:not(:has(.elementor-background-video-container)):after,
.overlay .elementor-background-video-container:before,
.overlay .elementor-background-video-container:after {

    content: '' !important;
    position: absolute;
    inset: 0;
    background: var(--bleu);
}

.overlay:before,
.overlay .elementor-background-video-container:before {

    mix-blend-mode: color !important;
    z-index: 1;
}

.overlay:after,
.overlay .elementor-background-video-container:after {

    opacity: .9;
    z-index: 2;
}

/*------------------------------------*\
    SWIPER
\*------------------------------------*/

.custom-swiper .swiper {

    overflow: visible;
    padding: 0 !important;
}

.custom-swiper .swiper-slide {

    overflow: hidden;
    background-color: white;
    border: solid 1px var(--blanc90);
    border-radius: 1em;
    -webkit-box-shadow: 0px 0px 18.75px 0px rgba(20, 23, 51, 0.5);
    box-shadow: 0px 0px 18.75px 0px rgba(20, 23, 51, 0.5);
}

.custom-swiper .swiper-slide a {

    height: 100%;
}

.custom-swiper .elementor-swiper-button {

    background-color: var(--orange);
    border-radius: 100vh;
    width: 50px;
    height: 50px;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 1em !important;
    top: auto !important;
    bottom: calc(100% + 50px) !important;
    transform: none !important;
}

.custom-swiper .elementor-swiper-button:hover {

    background-color: var(--rose);
}

.custom-swiper .elementor-swiper-button svg {

    fill: white !important;
}

.custom-swiper .elementor-swiper-button-prev {

    left: auto !important;
    right: 62.5px;
}

.custom-swiper .swiper-button-disabled {

    pointer-events: none;
    opacity: 1 !important;
    background-color: var(--blanc90);
}

.custom-swiper .swiper-pagination {

    position: absolute !important;
    left: 0 !important;
    transform: none !important;
    bottom: auto !important;
    top: calc(100% + 50px) !important;
    color: var(--gris50) !important;
}

@media screen and (max-width: 1024px) {


    .custom-swiper .elementor-swiper-button {

        display: none !important;
    }
}

@media screen and (max-width: 650px) {


    .custom-swiper .swiper {

        margin-right: 37.5px;
    }
}

/*------------------------------------*\
    UNDERLINE
\*------------------------------------*/

.underline .elementor-button-text,
.elementor-widget-text-editor a,
#nav .contact a,
#footer ul li a,
#footer ul li button {

    position: relative;
}

.elementor-widget-text-editor a {

    line-height: 1.25 !important;
    display: inline-block;
}

.underline .elementor-button-text:after,
.elementor-widget-text-editor a:after,
#footer ul li a:after,
#nav .contact a:after,
#footer ul li button:after {
    content: '';
    transform-origin: 100% 50%;
    transform: scale3d(0, 1, 1);
    transition: transform .3s;
    position: absolute;
    width: 100%;
    height: 2px;
    background: var(--rose);
    top: 100%;
    left: 0;
    pointer-events: none;
}

.underline .elementor-button-text:after,
.elementor-widget-text-editor a:after,
#nav .contact a:hover::after,
#footer ul li a:hover::after,
#footer ul li button:hover::after {

    transform-origin: 0% 50% !important;
    transform: scale3d(1, 1, 1) !important;
}

.underline a:hover .elementor-button-text:after,
.elementor-widget-text-editor a:hover::after {

    transform-origin: 100% 50% !important;
    transform: scale3d(0, 1, 1) !important;
}

.underline a {

    background: transparent !important;
    border-radius: 0 !important;
    padding: 0 !important;
    line-height: 1 !important;
}

/*------------------------------------*\
    LOADER
\*------------------------------------*/

main {

    translate: 0 150px;
    transition: translate .5s;
}

.active-main {

    translate: 0;
}

.active-main-link {

    translate: 0 -150px;
}

.loader {

    position: fixed;
    inset: 0;
    z-index: 9999;
    transition: translate .5s;
}

.loader-1 {

    background-color: var(--rose);
    transition-delay: .3s;
}

.loader-2 {

    background-color: var(--orange);
    transition-delay: .2s;
}

.loader-3 {

    background-color: var(--ciel);
    transition-delay: .1s;
}

.loader-4 {

    background-color: var(--bleu);
}

.active-loader {

    translate: 0 -100%;
}

.active-loader-link {

    opacity: 0;
    translate: 0 100%;
}

.active-loader-1 {

    transition-delay: 0s;
}

.active-loader-2 {

    transition-delay: .1s;
}

.active-loader-3 {

    transition-delay: .2s;
}

.active-loader-4 {

    transition-delay: .3s;
}

/*------------------------------------*\
    EXIT
\*------------------------------------*/

#exit {

    position: fixed;
    z-index: 998;
    inset: 0;
    background-color: rgba(20, 23, 51, 0.5);
    cursor: pointer;
    display: none;
}

/*------------------------------------*\
    HEADER
\*------------------------------------*/

#header {

    position: fixed;
    width: 100%;
    top: 0;
    z-index: 999;
    -webkit-box-shadow: 0 0 0 0 rgba(20, 23, 51, 0.5);
    box-shadow: 0 0 0 0 rgba(20, 23, 51, 0.5);
    transition: background-color .3s, box-shadow .3s;
    padding: 0 50px;
}

.active-header {

    background-color: white;
    -webkit-box-shadow: 0 0 37.5px 0 rgba(20, 23, 51, 0.5) !important;
    box-shadow: 0 0 37.5px 0 rgba(20, 23, 51, 0.5) !important;
}

#header .wrapper {

    max-width: 1680px;
    width: 100%;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

#header a {
    color: white;
    transition: color .3s;
}

#nav ul {

    list-style: none;
    display: flex;
    gap: 18.75px;
}

#nav .menu a {

    display: block;
    padding: 6.25px 12.5px;
    border-radius: .5em;
    transition: background-color .3s, rotate .3s, color .3s;
}

#nav .menu a:hover,
#nav .menu .current-menu-item a {

    color: white !important;
}

#nav .menu li:nth-child(odd) a:hover,
#nav .menu .current-menu-item:nth-child(odd) a {

    background-color: var(--orange);
    rotate: -2deg;
}

#nav .menu li:nth-child(even) a:hover,
#nav .menu .current-menu-item:nth-child(even) a {

    background-color: var(--rose);
    rotate: 2deg;
}

#header ul.btn {

    gap: 12.5px;
    display: flex;
    align-items: center;
}

.active-header ul:not(.btn):not(.contact) li a {

    color: var(--bleu) !important;
}

#header #nav .contact,
#header #nav #devis,
#header ul.btn li:has(button) {

    display: none;
}

#header a#logo {

    padding: 18.75px;
    margin-bottom: -18.75px;
    line-height: 0;
    position: relative;
    background-color: white;
    border-radius: 0 0 100vh 100vh;
    transition: background-color .3s;
}

#header a#logo:hover {

    background-color: var(--blanc90);
}

#header a#logo img {

    height: 125px;
    width: auto;
    transition: height .3s;
}

.active-header a#logo img {

    height: 100px !important;
}

#header ul.btn li {

    display: flex;
}

#header ul.btn a,
#header #nav a#devis,
#header ul.btn button {

    padding: 15px 25px;
    border-radius: .5em;
    transition: background-color .3s;
    cursor: pointer;
    border: none;
    line-height: 1.75em;
}

#header a#devis {

    background-color: var(--rose);
}

#header a#devis:hover {

    background-color: var(--orange);
}

/*------------------------------------*\
    BURGER
\*------------------------------------*/

#menu {

    display: flex;
    align-items: center;
    gap: 6.25px;
    background-color: var(--ciel);
}

#menu>span {

    color: var(--bleu);
    transition: color .3s;
}

#menu:hover>span {

    color: white;
}

#menu:hover {

    background-color: var(--bleu);
}

#menu div {

    width: 1.25cap;
    height: .75cap;
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
}

#menu div span {

    width: 100%;
    height: .125em;
    border-radius: 100vh;
    background: var(--bleu);
    position: absolute;
    transition: margin .3s, transform .3s, background-color .3s;
    transform-origin: center;
    margin-bottom: -.125em;
}

#menu:hover div span {

    background-color: white;
}

#menu div span.a {

    margin-bottom: calc(.75cap - .125em);
}

.active-first-span {

    transform: rotate(45deg) !important;
    margin: 0 !important;
}

#menu div span.b {

    margin-top: calc(.75cap - .125em);
}

.active-last-span {

    transform: rotate(-45deg) !important;
    margin: 0 !important;
}

/*------------------------------------*\
    FOOTER
\*------------------------------------*/

#footer {

    -webkit-box-shadow: 0 0 37.5px 0 rgba(20, 23, 51, 0.5);
    box-shadow: 0 0 37.5px 0 rgba(20, 23, 51, 0.5);

}

#footer .wrapper {

    max-width: 1680px;
    width: 100%;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
}

#footer .container {

    display: flex;
    justify-content: space-between;
    padding: 100px 100px 50px 100px;
}

#footer .container>div {

    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: space-between;
    gap: 25px;
}

#footer li {

    list-style: none;
    font-weight: bold;
}

#footer a {

    color: var(--bleu);
}

#footer img.logo {

    width: 200px;
    height: 200px;
}

#footer a:has(img) {

    transition: scale .3s;
    line-height: 0;
}

#footer a:has(img):hover {

    scale: 1.05;
}

#footer img {

    width: 150px;
    height: auto;
}

#footer .contact li:first-child {

    color: var(--rose);
    font-size: 20px;
}

#footer small {

    color: var(--orange);
}

#footer .links a {

    color: var(--gris50);
}

#footer a#devis {

    padding: 15px 25px;
    border-radius: .5em;
    background-color: var(--rose);
    color: white;
    transition: background-color .3s;
}

#footer a#devis:hover {

    background-color: var(--orange);
}

#footer .bottom {

    padding: 25px 100px;
    border-top: solid 1px var(--blanc90);
}

#footer .bottom a,
#footer .bottom button {

    color: var(--gris50);
    padding: 0;
    border: none;
    border-radius: 0;
    background-color: transparent;
    font-size: 14px;
    line-height: normal;
    cursor: pointer;
}

#footer .bottom ul {

    display: flex;
    gap: 37.5px;
}

#footer a#asticoweb {

    position: relative;
    display: flex;
    align-items: center;
    transition: color .3s;
}

#footer a#asticoweb:hover {

    color: var(--rose);
}

#footer a#asticoweb:before {

    content: '';
    display: inline-block;
    width: 22.5px;
    height: 22.5px;
    margin-right: 6.25px;
    background-color: var(--gris50);
    transition: background-color .3s;
    -webkit-mask: url('data:image/svg+xml,<%3Fxml version="1.0" encoding="UTF-8"%3F><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 194.4 200"><path d="M90.5,102.2c-1.2-.2-2.9-.3-4.1-.3-5.9-.4-12.2,1.5-15.3,6.3-5,6.9-3.9,19,3.7,23.8,3.4,2.3,7.8,2.8,13.4,2.2h0c11.7-1,22.3-7.9,28.6-17.6-6.6-7.8-15.9-13.2-26.3-14.4Z"/><path d="M108.3,0C59.7,0,0,59.3,0,109.3s59.7,90.7,108.3,90.7,86.1-40.7,86.1-90.7h0C194.4,59.5,156.9,0,108.3,0ZM137.2,142.2c0,3-2.5,5.4-5.5,5.3-2.9,0-5.3-2.4-5.3-5.3,0-3.1-.4-6.2-1.2-9.1-10,10.4-24.1,16.7-38.5,16.9-7.2.3-14.5-1.2-20.5-5.5-10.6-7.3-14.6-21.3-11.6-33.4,3-12.6,13.9-21.7,26.8-22.3,1.8-.2,3.7-.1,5.5,0,1,.1,3.1.2,4.1.3,11.6,1.5,22.6,7,30.8,15.3.4-1.6.6-3.5.8-5.1.1-1.1.1-2.7.1-3.9-.1-3.6-.8-7.1-2.3-10.4-.5-.9-1.1-2.3-1.7-3.1-8.6-14.2-28.9-16.6-40.3-4.5-9.8,9.5-24-4-14.9-14.3,17.9-18.3,49.2-17.5,65.9,2,6.7,7.5,10.7,17.4,11.1,27.4h0c.5,10.2-2.2,20.5-7.2,29.4,2.7,6.5,4,13.5,3.9,20.3Z"/></svg>') no-repeat;
    mask: url('data:image/svg+xml,<%3Fxml version="1.0" encoding="UTF-8"%3F><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 194.4 200"><path d="M90.5,102.2c-1.2-.2-2.9-.3-4.1-.3-5.9-.4-12.2,1.5-15.3,6.3-5,6.9-3.9,19,3.7,23.8,3.4,2.3,7.8,2.8,13.4,2.2h0c11.7-1,22.3-7.9,28.6-17.6-6.6-7.8-15.9-13.2-26.3-14.4Z"/><path d="M108.3,0C59.7,0,0,59.3,0,109.3s59.7,90.7,108.3,90.7,86.1-40.7,86.1-90.7h0C194.4,59.5,156.9,0,108.3,0ZM137.2,142.2c0,3-2.5,5.4-5.5,5.3-2.9,0-5.3-2.4-5.3-5.3,0-3.1-.4-6.2-1.2-9.1-10,10.4-24.1,16.7-38.5,16.9-7.2.3-14.5-1.2-20.5-5.5-10.6-7.3-14.6-21.3-11.6-33.4,3-12.6,13.9-21.7,26.8-22.3,1.8-.2,3.7-.1,5.5,0,1,.1,3.1.2,4.1.3,11.6,1.5,22.6,7,30.8,15.3.4-1.6.6-3.5.8-5.1.1-1.1.1-2.7.1-3.9-.1-3.6-.8-7.1-2.3-10.4-.5-.9-1.1-2.3-1.7-3.1-8.6-14.2-28.9-16.6-40.3-4.5-9.8,9.5-24-4-14.9-14.3,17.9-18.3,49.2-17.5,65.9,2,6.7,7.5,10.7,17.4,11.1,27.4h0c.5,10.2-2.2,20.5-7.2,29.4,2.7,6.5,4,13.5,3.9,20.3Z"/></svg>') no-repeat;
}

#footer a#asticoweb:hover::before {

    background-color: var(--rose);
}

/*------------------------------------*\
    ACCESSIBILITÉ
\*------------------------------------*/

#accessibilityWrapper {

    max-width: 1680px;
    width: 100%;
    display: flex;
    padding: 0 50px;
    justify-content: flex-end;
    position: fixed;
    left: 50%;
    translate: -50%;
    bottom: 0;
    z-index: 10;
    pointer-events: none;
}

.openAccessibility {

    cursor: pointer;
}

#accessibility {

    border: none;
    border-radius: 0;
    display: flex;
    align-items: center;
    gap: 6.25px;
    border-top-left-radius: .5em;
    border-top-right-radius: .5em;
    -webkit-box-shadow: 0 0 18.75px 0 rgba(20, 23, 51, 0.5);
    box-shadow: 0 0 18.75px 0 rgba(20, 23, 51, 0.5);
    background-color: var(--bleu);
    transition: background-color .3s, transform .3s;
    pointer-events: all;
}

#accessibility svg {

    fill: white;
    height: 25px;
    width: 25px;
}

#accessibility:hover {
    background-color: var(--rose);
}

.active-accessibility {

    transform: translateY(100%);
}

/* PopUp */

#accessibilityOverlay {
    position: fixed;
    inset: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 9999;
    background-color: rgba(20, 23, 51, 0.5);
    cursor: pointer;
}

#accessibilityPopup {

    background: white;
    border-radius: 1em;
    border: 1px solid var(--blanc90);
    width: 640px !important;
    height: auto !important;
    max-height: 100svh;
    overflow-y: auto;
}

#accessibilityPopup .accessibilityHeader {

    display: flex;
    justify-content: space-between;
    padding: 50px;
}

#accessibilityPopup form {

    padding-bottom: 25px;
}

#accessibilityPopup fieldset {

    padding: 6.25px 50px 25px 50px;
    margin: 0;
    border: none;
    border-top: solid 1px var(--blanc90);
    display: flex;
    flex-wrap: wrap;
    gap: 25px;
}

#accessibilityPopup legend {

    font-weight: bold;
    padding: 0 25px;
    margin-left: -25px;
}

#accessibilityPopup label {

    font-size: var(--e-global-typography-text-font-size);
    font-weight: normal;
    color: var(--bleu);
    transition: color .3s;
}

#accessibilityPopup input {

    margin: 0;
}

#accessibilityPopup h4 {

    font-family: var(--e-global-typography-primary-font-family), Sans-serif;
    font-size: var(--e-global-typography-primary-font-size);
    font-weight: var(--e-global-typography-primary-font-weight);
    line-height: 1;
}

#accessibilityPopup button {
    transition: background .3s;
    background-color: var(--rose);
    width: 30px;
    height: 30px;
    aspect-ratio: 1;
    border-radius: .333em;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 0;
    border: 0;
    cursor: pointer;
}

#accessibilityPopup button:hover {

    background-color: var(--bleu);
}

#accessibilityPopup button svg {

    fill: white;
    height: 10px;
    width: 10px;
}

@media only screen and (max-width:650px) {

    #accessibilityPopup .accessibilityHeader {

        padding: 25px;
    }

    #accessibilityPopup form {

        padding-bottom: 0;
    }

    #accessibilityPopup fieldset {

        padding: 6.25px 25px 25px 25px;
    }

    #accessibilityWrapper {

        padding: 0;
    }

    #accessibility {

        border-radius: 0;
        border-top-left-radius: .5em;
        padding: 12.5px;
    }

    #accessibility svg {

        width: 33.333px;
        height: 33.333px;
    }

    #accessibility span {

        display: none;
    }

}

/* Renforcé */

body.contrast-high .underline .elementor-button-text:after,
body.contrast-high .elementor-widget-text-editor a:after,
body.contrast-high #footer ul li a:after,
body.contrast-high #nav .contact a:after,
body.contrast-high #footer ul li button:after {

    background-color: var(--bleu) !important;
}

body.contrast-high ::selection {
    background: var(--bleu) !important;
    color: white !important;
}

body.contrast-high ::-webkit-selection {
    background: var(--bleu) !important;
    color: white !important;
}

body.contrast-high ::-moz-selection {
    background: var(--bleu) !important;
    color: white !important;
}

body.contrast-high main li::marker {

    color: var(--bleu) !important;
}

body.contrast-high::-webkit-scrollbar-thumb {
    background-color: var(--bleu) !important;
}

body.contrast-high,
body.contrast-high *:not(.loader):not(#exit):not(#accessibilityOverlay):not(#accessibilityWrapper):not(a#devis):not(button):not(button *):not(.custom-swiper .elementor-swiper-button):not(.custom-swiper .elementor-swiper-button *):not(.elementor-button):not(.elementor-button *):not(#nav .menu li.current-menu-item a):not(#nav .menu li a:hover):not(.title span):not(.title2 span):not(.pie-chart-legend span) {

    accent-color: var(--bleu) !important;
    color: var(--bleu) !important;
    background-color: white !important;
}

body.contrast-high #header a#devis,
body.contrast-high #footer a#devis,
body.contrast-high #header #nav a#devis,
body.contrast-high button:not(#footer .bottom button),
body.contrast-high button .custom-swiper .elementor-swiper-button,
body.contrast-high .elementor-button:not(.underline .elementor-button),
body.contrast-high #nav .menu li a:hover,
body.contrast-high #nav .menu .current-menu-item a {

    background-color: var(--bleu);
    border-color: var(--bleu);
    color: white;
}

body.contrast-high #header a#devis:hover,
body.contrast-high #footer a#devis:hover,
body.contrast-high #header #nav a#devis:hover,
body.contrast-high button:not(#footer .bottom button):hover,
body.contrast-high .custom-swiper .elementor-swiper-button:hover,
body.contrast-high .elementor-button:not(.underline .elementor-button):hover {

    background-color: var(--rose) !important;
    border-color: var(--rose) !important;
}

body.contrast-high .custom-swiper .elementor-swiper-button {

    background-color: var(--bleu) !important;
}

body.contrast-high .custom-swiper .swiper-button-disabled {

    background-color: var(--blanc90) !important;
}

body.contrast-high .contrast {

    border: solid 1px var(--blanc90) !important;
}

body.contrast-high .contrast-bottom {

    border-bottom: solid 1px var(--blanc90) !important;
}

body.contrast-high #footer {

    border-top: solid 1px var(--blanc90) !important;
}

body.contrast-high #footer .bottom a, body.contrast-high #footer .bottom button {

    color: var(--bleu) !important;
}

body.contrast-high #footer a#asticoweb:before {

    background-color: var(--bleu);
}

body.contrast-high #menu div span {

    background-color: white !important;
}

body.contrast-high #menu>span {

    color: white !important;
}

/* Inversé */

body.contrast-invert .underline .elementor-button-text:after,
body.contrast-invert .elementor-widget-text-editor a:after,
body.contrast-invert #footer ul li a:after,
body.contrast-invert #nav .contact a:after,
body.contrast-invert #footer ul li button:after {

    background-color: var(--ciel) !important;
}

body.contrast-invert ::selection {
    background: white !important;
    color: var(--bleu) !important;
}

body.contrast-invert ::-webkit-selection {
    background: white !important;
    color: var(--bleu) !important;
}

body.contrast-invert ::-moz-selection {
    background: white !important;
    color: var(--bleu) !important;
}

body.contrast-invert main li::marker {

    color: var(--ciel) !important;
}

body.contrast-invert::-webkit-scrollbar {

    border-color: var(--bleu2) !important;
}

body.contrast-invert::-webkit-scrollbar-thumb {
    background-color: var(--ciel) !important;
}

body.contrast-invert,
body.contrast-invert *:not(.loader):not(#exit):not(#accessibilityOverlay):not(#accessibilityWrapper):not(a#devis):not(button):not(button *):not(.custom-swiper .elementor-swiper-button):not(.custom-swiper .elementor-swiper-button *):not(.elementor-button):not(.elementor-button *):not(#nav .menu li.current-menu-item a):not(#nav .menu li a:hover):not(.title span):not(.title2 span):not(.pie-chart-legend span):not(a#logo):not(a#logo *):not(.swiper-slide-image):not(#footer img) {

    accent-color: var(--ciel) !important;
    color: white !important;
    background-color: var(--bleu) !important;
    border-color: var(--bleu2) !important;
}

body.contrast-invert #header a#devis,
body.contrast-invert #footer a#devis,
body.contrast-invert #header #nav a#devis,
body.contrast-invert button:not(#footer .bottom button),
body.contrast-invert button .custom-swiper .elementor-swiper-button,
body.contrast-invert .elementor-button:not(.underline .elementor-button),
body.contrast-invert #nav .menu li a:hover,
body.contrast-invert #nav .menu .current-menu-item a {

    background-color: var(--ciel);
    border-color: var(--ciel);
    color: var(--bleu);
}

body.contrast-invert #header a#devis:hover,
body.contrast-invert #footer a#devis:hover,
body.contrast-invert #header #nav a#devis:hover,
body.contrast-invert button:not(#footer .bottom button):hover,
body.contrast-invert .custom-swiper .elementor-swiper-button:hover,
body.contrast-invert .elementor-button:not(.underline .elementor-button):hover {

    background-color: white !important;
    border-color: white !important;
}

body.contrast-invert .custom-swiper .elementor-swiper-button {

    background-color: var(--ciel) !important;
}

body.contrast-invert .custom-swiper .swiper-button-disabled {

    background-color: var(--bleu2) !important;
}

body.contrast-invert .custom-swiper .elementor-swiper-button i:before,
body.contrast-invert #nav .menu li a:hover,
body.contrast-invert #nav .menu .current-menu-item a {

    color: var(--bleu) !important;
}

body.contrast-invert .contrast {

    border: solid 1px var(--bleu2) !important;
}

body.contrast-invert .contrast-bottom {

    border-bottom: solid 1px var(--bleu2) !important;
}

body.contrast-invert #footer {

    border-top: solid 1px var(--bleu2) !important;
}

body.contrast-invert #footer .bottom a, body.contrast-invert #footer .bottom button, body.contrast-invert .underline .elementor-button-text {

    color: white !important;
}

body.contrast-invert #footer a#asticoweb:before {

    background-color: white;
}

body.contrast-invert #footer img {

    padding: 18.75px !important;
    background-color: white !important;
    border-radius: .5em !important;
}

body.contrast-invert #footer img.logo {

    aspect-ratio: 1 !important;
    object-fit: contain !important;
    border-radius: 100% !important;
}

body.contrast-invert #accessibilityPopup button svg,
body.contrast-invert #accessibility svg {

    fill: var(--bleu) !important;
}

body.contrast-invert #menu div span {

    background-color: var(--bleu) !important;
}

body.contrast-invert #menu>span {

    color: var(--bleu) !important;
}

/* Contrastes */

body:is(.contrast-high, .contrast-invert) .recent-post:after,
body:is(.contrast-high, .contrast-invert) .overlay .elementor-background-video-container,
body:is(.contrast-high, .contrast-invert) #mission:before {

    display: none !important;
}

body:is(.contrast-high, .contrast-invert) .title span,
body:is(.contrast-high, .contrast-invert) .title2 span {

    background-color: transparent !important;
    border-radius: 0 !important;
    margin: 0 !important;
    display: inline !important;
    padding: 0 !important;
    rotate: 0 !important;
    color: var(--bleu) !important;
}

body.contrast-invert .title span,
body.contrast-invert .title2 span {

    color: white !important;
}

/* Niveau de gris */

body.contrast-grayscale:after {

    content: '';
    inset: 0;
    position: fixed;
    z-index: 999999;
    backdrop-filter: grayscale(1);
    pointer-events: none;
}

/* Police */

body.font-dyslexic *:not(.fa):not(.fas):not([class*=" eicon-"]):not([class^=eicon]) {
    font-family: "Open Dyslexic", Sans-serif !important;
}

/* Espacement et Justifié */

body.linespace-large :is(p) {
    line-height: 2 !important;
}

body.linespace-large :is(h1, h2, h3, h4, h5, h6) {
    line-height: 1.25 !important;
}

body.justify-no * {
    text-align: left !important;
}

/*------------------------------------------------------------------------*\
    RESPONSIVE
\*------------------------------------------------------------------------*/

@media only screen and (max-width:1024px) {

    #header ul:not(.btn) li a {

        color: var(--bleu);
    }

    #header #nav {

        position: absolute;
        background-color: var(--ciel);
        transform: translateX(-100%);
        left: 0;
        top: 100%;
        bottom: 0;
        padding: 50px;
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        border-radius: 0;
        transition: transform .75s cubic-bezier(.85, 0, .075, 1), -webkit-transform .75s cubic-bezier(.85, 0, .075, 1);
        height: 100dvh;
        max-height: calc(100dvh - 118.75px);
        overflow-y: auto;
        z-index: -1;
    }

    #header #nav::-webkit-scrollbar {
        width: 0;
    }

    .active-nav {

        transform: translateX(0) !important;
    }

    #header #nav a#devis {

        text-align: center;
        display: inline-block;
    }

    #header #nav .contact,
    #header ul.btn li:has(button) {

        display: inherit;
    }

    #header #nav ul {

        flex-direction: column;
        gap: 0;
    }

    #header #nav ul.menu {

        gap: 0;
    }

    #nav .menu a {

        padding: 12.5px 25px;
        border-radius: .25em;
    }

    #header #nav ul.menu li,
    #header #nav ul.menu li a {

        line-height: 1;
    }

    #header #nav ul.menu li a {

        font-size: var(--e-global-typography-primary-font-size);
        display: inline-block;
    }

    #header #nav .contact li {

        font-weight: bold;
    }

    #header #nav .contact li:first-child {
        color: var(--rose);
        font-size: 20px;
    }

    #header #nav .contact small {

        color: var(--orange)
    }

    /*------------------------------------*\
    FOOTER
\*------------------------------------*/

    #footer .container {

        flex-direction: column;
        align-items: center;
        text-align: center;
        padding: 100px 50px 50px 50px;
    }

    #footer .container,
    #footer .container>div {

        align-items: center;
    }

    #footer .container:not(.bottom) {

        gap: 50px;
    }

    #footer .container>div {

        gap: 0;
    }

    #footer .container div.logos a {

        line-height: 0;
    }

    #footer .container div.logos {

        flex-direction: row;
        align-items: baseline;
        gap: 50px;
    }

    #footer a#devis {

        margin-top: 50px;
    }

    #footer .bottom {
        gap: 12.5px;
        padding: 25px 50px;

    }
}

@media only screen and (max-width:650px) {

    #header {

        padding: 0 25px;
    }

    #header a#logo {

        padding: 12.5px;
        margin-bottom: -12.5px;
    }

    #header a#logo img,
    .active-header a#logo img {

        height: 87.5px !important;
    }

    #header #nav {

        width: 100vw;
        padding: 50px 25px 25px 25px;
        max-height: calc(100dvh - 100px);
    }

    #header #devis {

        display: none;
    }

    #header #nav #devis {

        display: inherit;
    }

    /*------------------------------------*\
    FOOTER
\*------------------------------------*/

    #footer .container {

        padding: 50px 25px;
    }

    #footer .container:not(.bottom) {

        gap: 25px;
    }


    #footer .container div.logos {

        gap: 37.5px;
    }


    #footer a#devis {

        margin-top: 25px;
    }

    #footer img.logo {

        width: 150px;
        height: 150px;
    }

    #footer img {

        width: 125px;
    }

    #footer .bottom {
        padding: 25px;
        gap: 25px;

    }

    #footer .bottom ul {

        gap: 25px;
    }

    #footer li {

        line-height: 1;
    }


    #footer .bottom button,
    #footer .bottom a {

        font-size: 12px;
    }
}