/* CUSTOM CSS */

/*
 *
 * INITIALISATION 
 *
 */

html, body{
    width : 100%;
    overflow: hidden;
    overflow-y: auto;
}

body.home, body.page-id-405{
    overflow-y: hidden;
}

@media screen and (max-width : 1024px){
    body.home{
        overflow: hidden;
    }
}

header .elementor-widget-image a img[src$=".svg"]{
    width: auto;
}

footer .elementor-widget-image a img[src$=".svg"]{
    width: auto;
}

/*
 *
 * GENERAL 
 *
 */

.d-none{
    display: none;
}

 .h-100{
    height : 100%;
 }

 .h-100-vh{
    height : 100vh;
    min-height: 100vh;
    max-height: 100vh;
 }

 .picto-wrapper{
    background-color : #fff;
    -webkit-box-shadow: 0px 1px 4px 0px rgba(0,0,0,0.15);
    -moz-box-shadow: 0px 1px 4px 0px rgba(0,0,0,0.15);
    box-shadow: 0px 1px 4px 0px rgba(0,0,0,0.15);
    border-radius: 500px;
 }


/*
 *
 * HEADER 
 *
 */

#main-header{
    position : absolute;
    top : 0;
    left : 0;
    right : 0;
    z-index: 5;
}

#main-header.open{
    height : 100vh;
}

.menu-toggler-wrapper{
    width: 3.7rem;
    padding: 20px 19px;
    background-color : #fff;
    -webkit-box-shadow: 0px 1px 4px 0px rgba(0,0,0,0.15);
    -moz-box-shadow: 0px 1px 4px 0px rgba(0,0,0,0.15);
    box-shadow: 0px 1px 4px 0px rgba(0,0,0,0.15);
    border-radius: 500px;
}
.nav-icon {
    width: 22px;
    height: 13px;
    position: relative;
    cursor: pointer;
    display: inline-block;
}
.nav-icon span{
    background-color: var(--e-global-color-secondary);
    position: absolute;
    border-radius: 2px;
    transition: .3s cubic-bezier(.8, .5, .2, 1.4);
    width:100%;
    height: 1px;
    transition-duration: 500ms
}
.nav-icon span:nth-child(1){
    top:0px;
    left: 0px;
}
.nav-icon span:nth-child(2){
    top: 6px;
    left: 0px;
    opacity:1;
}
.nav-icon span:nth-child(3){
    bottom:0px;
    left: 0px;
}
.nav-icon:not(.open):hover span:nth-child(1){
    transform: rotate(-3deg) scaleY(1.1);
}
.nav-icon:not(.open):hover span:nth-child(2){
    transform: rotate(3deg) scaleY(1.1);
}
.nav-icon:not(.open):hover span:nth-child(3){
    transform: rotate(-4deg) scaleY(1.1);
}
.nav-icon.open span:nth-child(1){
    transform: rotate(45deg);
    top: 7px;
}
.nav-icon.open span:nth-child(2){
    opacity:0;
}
.nav-icon.open span:nth-child(3){
    transform: rotate(-45deg);
    top: 7px;
}
.mb-0 {
    margin-bottom: 0px;
}
.nav-wrapper .menu-content {
    overflow: hidden;
    transition: all .3s;
}
.nav-wrapper .menu-content:not(.open) {
    height: 0;
}
.nav-wrapper .menu-content.open {
    height: 100%;
}
.nav-wrapper.open {
    height: 100vh;
}

#menu-wrapper{
    margin-top : 1rem;
    position: absolute;
    top: 0;
    left: 0;
    width: 150px;
    transition: .3s cubic-bezier(.8, .5, .2, 1.4);
    z-index: -1;
    pointer-events: none;
}

#menu-wrapper.active{
    transform: translateY(3.5rem);
    pointer-events: all;
}

#menu-wrapper .menu-item {
    display: flex;
    opacity : 0;
    pointer-events: none;
    transition: .3s cubic-bezier(.8, .5, .2, 1.4);
}

#menu-wrapper.active .menu-item {
    opacity : 1;
    pointer-events:all;
}

#menu-wrapper .menu-item a{
    background-color: #fff;
    border-radius : 30px;
    -webkit-box-shadow: 0px 1px 4px 0px rgba(0,0,0,0.15);
    -moz-box-shadow: 0px 1px 4px 0px rgba(0,0,0,0.15);
    box-shadow: 0px 1px 4px 0px rgba(0,0,0,0.15);
    cursor: pointer;
}

@media (max-width: 1024px) {
    .nav-wrapper.open {
        height: auto;
    }

    .menu-toggler-wrapper{
        width: 3.3rem;
        padding: 16.5px 15px;
    }
}
 
/* CONTACT */
#contact-btn{
    cursor: pointer;
}

#contact-btn .elementor-icon{
    -webkit-box-shadow: 0px 1px 4px 0px rgba(0,0,0,0.15);
    -moz-box-shadow: 0px 1px 4px 0px rgba(0,0,0,0.15);
    box-shadow: 0px 1px 4px 0px rgba(0,0,0,0.15);
}

#contact-btn:hover path, #contact-btn:focus path{
    color : #fff;
} 

#contact-wrapper{
    display : none;
    position: relative;
    height: 100%;
}

#contact-wrapper:before{
    content : "";
    position: absolute;
    top : -10rem;
    left: 0;
    right : 0;
    height : 10rem;
    background-color: #fff;
    z-index: -1;
}


#contact-wrapper #close-button{
    width: 127px;
    height: 127px;
    position: absolute;
    cursor: pointer;
    display: inline-block;
    bottom: 100%;
    right: 0;
    background-color : var(--e-global-color-51dd690 );
}

#contact-wrapper #close-button:before, #contact-wrapper #close-button:after{
    content : "";
    background-color: var(--e-global-color-secondary);
    position: absolute;
    border-radius: 2px;
    transition: .3s cubic-bezier(.8, .5, .2, 1.4);
    width: 40px;
    height: 1px;
    top: 50%;
    left : 50%;
    transform-origin: 0;
}

#contact-wrapper #close-button:before{
    transform: rotate(45deg) translate(-50%, -50%);
}

#contact-wrapper #close-button:after{
    transform: rotate(-45deg) translate(-50%, -50%);
}

#contact-wrapper #close-button:hover:before, #contact-wrapper #close-button:focus:before{
    transform: rotate(135deg) translate(-50%, -50%);
}

#contact-wrapper #close-button:hover:after, #contact-wrapper #close-button:focus:after{
    transform: rotate(45deg) translate(-50%, -50%);
}

#contact-wrapper.open{
    display: block;
}

#contact-wrapper form input[type="text"], #contact-wrapper form input[type="textarea"]{
    outline: none;
    box-shadow: 0 0 0;
}

@media (max-width: 1024px) {
    #contact-wrapper:before{
        top : -6rem;
        height : 6rem;
    }

    #contact-wrapper #close-button{
        width: 90px;
        height: 90px;
    }

    #contact-wrapper #close-button:before, #contact-wrapper #close-button:after{
        width: 30px;
    }

    #contact-wrapper form label[for="form-field-rgpd"]{
        font-size : .8rem;
    }

    #contact-wrapper form input[type="text"], #contact-wrapper form input[type="textarea"]{
        min-height: 36px;
        padding: 5px 11px;
    }


    .nav-wrapper.open {
        height: auto;
    }
}

body.home #logo-site, body.page-id-405 #logo-site{
    display: none;
}

body:not(.home):not(.page-id-405) main{
    margin-top: 8rem;
}

/*
 *
 * WOOCOMMERCE
 *
 */

/* MY ACCCOUNT */
body.woocommerce-account .woocommerce:before, body.woocommerce-account .woocommerce:after{
    display: none;
}

body.woocommerce-account .woocommerce{
    display: flex;
    gap: 4rem;
}

body.woocommerce-account .woocommerce .woocommerce-MyAccount-navigation ul{
    padding: 0;
}

body.woocommerce-account .woocommerce .woocommerce-MyAccount-navigation ul{
    padding: 0;
}

body.woocommerce-account .woocommerce .woocommerce-MyAccount-navigation ul li{
    list-style-type: none;
}

body.woocommerce-account .woocommerce .woocommerce-MyAccount-navigation ul li{
    border-left : 1px solid rgba(0,0,0,.2);
    border-right : 1px solid rgba(0,0,0,.2);
    border-top : 1px solid rgba(0,0,0,.2);
}

body.woocommerce-account .woocommerce .woocommerce-MyAccount-navigation ul li:last-child{
    border-bottom : 1px solid rgba(0,0,0,.2);
}

body.woocommerce-account .woocommerce .woocommerce-MyAccount-navigation ul li a{
    display: block;
    padding : 1rem;
    text-decoration: none;
    transition: background-color .3s ease;
}

body.woocommerce-account .woocommerce .woocommerce-MyAccount-navigation ul li a:hover, body.woocommerce-account .woocommerce .woocommerce-MyAccount-navigation ul li a:focus{
    background-color: rgba(0,0,0,.05);
}

body.woocommerce-account .woocommerce fieldset{
    border: 1px solid rgba(0,0,0,.2);
    margin-top : 1rem;
    margin-bottom: 1rem;
}

.woocommerce-form.woocommerce-form-login .form-row:nth-child(3){
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-direction: row-reverse;
    justify-content: flex-end;
}

.woocommerce-form.woocommerce-form-login .form-row:before, .woocommerce-form.woocommerce-form-login .form-row:after{
    display: none;
}

body.woocommerce-account input[type="submit"].woocommerce-Button, body.woocommerce-account button[type="submit"].woocommerce-Button, body.woocommerce-account button[type="submit"].woocommerce-button{
    font-family: "work-sans", Sans-serif;
    font-size: 1rem;
    font-weight: 400;
    color: #FFFFFF;
    background-color: var(--e-global-color-accent);
    border-radius: 50rem 50rem 50rem 50rem;
    transition: all .3s ease;
    margin-top : 1rem;
    padding : 1rem 2rem;
}

body.woocommerce-account input[type="submit"].woocommerce-Button:hover, body.woocommerce-account input[type="submit"].woocommerce-Button:focus, body.woocommerce-account button[type="submit"].woocommerce-Button:hover, body.woocommerce-account button[type="submit"].woocommerce-Button:focus, body.woocommerce-account button[type="submit"].woocommerce-button:hover, body.woocommerce-account button[type="submit"].woocommerce-button:focus{
    background-color: var(--e-global-color-secondary);
}

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

    body.woocommerce-account .woocommerce{
        display: flex;
        flex-wrap: wrap;
        gap: 4rem;
    }
    
}

/* MY ACCCOUNT END */


/*
 *
 * BODY
 *
 */


#scene{
    width : 100%;
    height: 100vh;
}

#main-container{
    position: relative;
}

/*
 *
 * CONTROLS
 *
 */

#main-controls{
    position: absolute;
    z-index: 4;
    left : 50%;
    bottom : 4rem;
    transform: translateX(-50%);
    display: flex;
    align-items: center;
    gap : 1rem;
}

#main-controls #general-controls{
    display: flex;
    align-items: center;
    gap : 1rem;
}

#main-controls .controls-wrapper{
    display: flex;
    align-items: center;
    background-color: #fff;
    border-radius: 50px;
}

#main-controls .controls-wrapper .controls{
    display: flex;
    align-items: center;
    width: 0;
    opacity: 0;
    pointer-events: none;
    transition : all .3s ease;
}

#main-controls .controls-wrapper .control{
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0.5rem;
    border-radius: 50px;
    min-width : 2.5rem;
    min-height: 2.5rem;
    cursor: pointer;
}

#main-controls .controls-wrapper .controls .control{
    opacity: 0;
    transition : opacity .3s ease;
    transition-delay: .3s;
}

#main-controls .controls-wrapper .toggler.active{
    background-color: var(--e-global-color-primary);
    -webkit-box-shadow: 0px 1px 4px 0px rgba(0,0,0,0.15);
    -moz-box-shadow: 0px 1px 4px 0px rgba(0,0,0,0.15);
    box-shadow: 0px 1px 4px 0px rgba(0,0,0,0.15);
}

#main-controls .controls-wrapper .toggler.active{
    background-color: var(--e-global-color-primary)!important;
    -webkit-box-shadow: 0px 1px 4px 0px rgba(0,0,0,0.15);
    -moz-box-shadow: 0px 1px 4px 0px rgba(0,0,0,0.15);
    box-shadow: 0px 1px 4px 0px rgba(0,0,0,0.15);
}

#main-controls .controls-wrapper .toggler.active img{
    filter: brightness(0) invert(1);
}

#main-controls .controls-wrapper .toggler.active + .controls{
    opacity: 1;
    pointer-events: auto;
}

#main-controls .controls-wrapper .toggler.active + .controls .control{
    transition : all 0.2s ease;
    opacity: 1;
}

#main-controls .controls-wrapper #save-button{
    position: relative;
}

#main-controls .controls-wrapper #save-button.animated{
    animation: saved 1s 1;
}

#main-controls .controls-wrapper #save-button.animated img{
    animation: saved-img 1s 1;
}

@keyframes saved {
    0% {
        background-color : rgba(255, 255, 255, 1);
        transform: scale(1);
        opacity: 1;
    }
    60%{
        opacity: 1;
    }
    80% {
        background-color : rgba(127, 116, 116, 1);
        transform: scale(2);
    }
    100%{
        background-color : transparent;
    }
}

@keyframes saved-img {
    0% {
        filter: brightness(0) invert(0);
    }
    80% {
        filter: brightness(0) invert(1);
        opacity: 1;
    }
    100%{
        opacity: 0;   
    }
}



@media screen and (min-width:1025px) {
    #main-controls #general-controls{
        background-color : transparent;
    }
    
    #main-controls #general-controls > .toggler{
        display: none;
    }

    #main-controls #general-controls > .controls{
        width: auto;
        gap: 1rem;
        opacity: 1;
    }

    #main-controls #general-controls > .controls .controls-wrapper .toggler{
        pointer-events: auto;
    }

    #main-controls #general-controls > .controls .controls-wrapper .control{
        opacity: 1;
    }

    #main-controls #camera-controls.controls-wrapper .toggler.active + .controls{
        width: 120px;
    }
    
    #main-controls #env-controls.controls-wrapper .toggler.active + .controls{
        width: 80px;
    }
    
    #main-controls #share-controls.controls-wrapper .toggler.active + .controls{
        width: 40px;
        /*width: 80px;*/
    }
}

@media screen and (max-width : 1024px){
    #main-controls{
        bottom: 9rem;
        left: auto;
        right: 1rem;
        transform: translateX(0);
        align-items: end;
        gap : .5rem;
    }

    #main-controls #general-controls{
        flex-direction: column-reverse;
        order: 3;
    }

    #main-controls #general-controls > .toggler{
        display: flex;
        align-items: center;
        background-color: #fff;
        border-radius: 50px;
        min-width: 2.5rem;
        min-height: 2.5rem;
        padding: 0.5rem;
    }

    #main-controls .controls-wrapper .controls-wrapper{
        position: relative;
        opacity: 0;
        pointer-events: none;
        transform: translateY(2rem);
        flex-direction: row-reverse;
        background-color: transparent;
    }

    #main-controls .controls-wrapper .toggler + .controls{
        z-index: -1;
    }

    #main-controls .controls-wrapper .toggler.active + .controls{
        z-index: 1;
    }

    #main-controls .controls-wrapper .controls-wrapper > .controls{
        position : absolute;
        right: 100%;
        width : auto;
        gap : .5rem;
        transition: all .3s ease;
    }

    #main-controls .controls-wrapper .controls-wrapper .toggler.active + .controls{
        transform: translateX(-.5rem);
    }

    #main-controls > .controls-wrapper{
        flex-direction: column-reverse;
        background-color: transparent;
    }

    #main-controls > .controls-wrapper  .control{
        flex-direction: column-reverse;
        background-color: #fff;
    }

    #main-controls > .controls-wrapper > .controls{
        flex-direction: column-reverse;
        width: auto;
    }

    #main-controls > .controls-wrapper > .controls .control{
        margin-bottom : .5rem;
        transform: translateY(2rem);
    }

    #main-controls > .controls-wrapper > .toggler + .controls .control{
        pointer-events: none;
    }

    #main-controls > .controls-wrapper > .toggler.active + .controls .control, #main-controls .controls-wrapper .toggler.active + .controls .controls-wrapper {
        transform: translateY(0);
        transition : all 0.2s ease;
        opacity: 1;
        pointer-events: auto;
    }

    #main-controls > .controls-wrapper#general-controls{
        gap : 0;
    }

    #main-controls > .controls-wrapper#print-controls{
        display: none;
    }
    
}


 /*
 *
 * ASIDE
 *
 */

#aside-container{
    position: relative;
    overflow: hidden;
}


#aside-container > .elementor-element, #aside-container > .elementor-element > .e-con-inner, #aside-container > .elementor-element > .e-con-inner > .elementor-element:nth-child(2), #aside-container > .elementor-element > .e-con-inner > .elementor-element:nth-child(2) > .e-con-inner > .elementor-widget-shortcode {
    height : 100%;
}

#aside-container > .elementor-element > .e-con-inner > .elementor-element:nth-child(2){
    overflow: hidden;
    overflow-y: scroll;
}

@media screen and (max-width : 1024px){
    #aside-container{
        position: absolute;
        top : 100%;
        transform: translateY(-7rem);
        border-top-left-radius: 1rem;
        border-top-right-radius: 1rem;
        z-index: 20;
        transition: all .3s ease;
    }

    #aside-container.inactive{
        transform: translateY(0);
    }

    #aside-container.active{
        top : 0;
        transform: translateY(0);
    }

    #aside-container #aside-container-heading .elementor-heading-title span:nth-child(1){
        position: relative;
        padding-right: 2.5rem;
        background-image: url(../images/picto-settings.svg);
        background-repeat: no-repeat;
        background-size: 2rem;
        background-position: right 50%;
    }
    
    #aside-container #aside-container-heading .elementor-heading-title span:nth-child(2){
        position: relative;
        display: none;
        padding-right : 2rem;
        background-image: url(../images/picto-close.svg);
        background-repeat: no-repeat;
        background-size: 2rem;
        background-position: right 50%;
    }

    #aside-container.active #aside-container-heading .elementor-heading-title span:nth-child(1){
        display: none;
    }

    #aside-container.active #aside-container-heading .elementor-heading-title span:nth-child(2){
        display: block;
    }
}


/*
 * Assistant configurateur 
 */

/* BUTTON */
#assistant-configurateur{
    cursor: pointer;
}

@media screen and (max-width:1024px){
    /*#assistant-configurateur{
        position: absolute;
        bottom: 8rem;
        left: 1rem;
        right: auto;
        top: auto;
        display: flex;
        flex-direction: row-reverse;
        width: auto;
    }*/

    #assistant-configurateur .elementor-widget-heading{
        text-align: left;
    }

    #assistant-configurateur .picto-wrapper{
        width : 62px;
    }
}

/* PANEL */
#aside-container #configurator-assistant-panel{
    position: absolute;
    top :0;
    left : 0;
    right : 0;
    bottom : 0; 
    z-index: 10;
    transform: translateX(100%);
    transition : transform .3s ease;
}

#aside-container #configurator-assistant-panel.active{
    transform: translateX(0);
}

#aside-container #configurator-assistant-panel .close-button{
    position: absolute;
    cursor: pointer;
    top: 1rem;
    right: 1rem;
}

#aside-container #configurator-assistant-panel .close-icon{
    width: 60px;
    height: 60px;
    display: inline-block;
    background-color : #fff;
    border-radius: 50%;
    -webkit-box-shadow: 0px 1px 4px 0px rgba(0,0,0,0.15);
    -moz-box-shadow: 0px 1px 4px 0px rgba(0,0,0,0.15);
    box-shadow: 0px 1px 4px 0px rgba(0,0,0,0.15);
}

#aside-container #configurator-assistant-panel .close-icon:before, #aside-container #configurator-assistant-panel .close-icon:after{
    content : "";
    background-color: var(--e-global-color-secondary);
    position: absolute;
    border-radius: 2px;
    transition: .3s cubic-bezier(.8, .5, .2, 1.4);
    width: 30px;
    height: 1px;
    top: 50%;
    left : 50%;
    transform-origin: 0;
}

#aside-container #configurator-assistant-panel .close-icon:before{
    transform: rotate(45deg) translate(-50%, -50%);
}

#aside-container #configurator-assistant-panel .close-icon:after{
    transform: rotate(-45deg) translate(-50%, -50%);
}

#aside-container #configurator-assistant-panel .close-icon:hover:before, #aside-container #configurator-assistant-panel .close-icon:focus:before{
    transform: rotate(135deg) translate(-50%, -50%);
}

#aside-container #configurator-assistant-panel .close-icon:hover:after, #aside-container #configurator-assistant-panel .close-icon:focus:after{
    transform: rotate(45deg) translate(-50%, -50%);
}

#aside-container #configurator-assistant-panel .close-title{
    display : none;
}

@media screen and (max-width : 1024px){
    #aside-container #configurator-assistant-panel{
        background-color : #fff;
    }

    #aside-container #configurator-assistant-panel .close-button{
        top : 0;
    }

    #aside-container #configurator-assistant-panel .close-icon{
        -webkit-box-shadow: 0px 0px 0px 0px;
        -moz-box-shadow: 0px 0px 0px 0px;
        box-shadow: 0px 0px 0px 0px;
    }

    #aside-container #configurator-assistant-panel .close-title{
        display : block;
    }
}

/* WRAPPER */
#configurator-assistant-wrapper{
    position: absolute;
    top : 0;
    left : 0;
    right : 0;
    bottom : 0;
    padding-top: 10rem;
    z-index: 5;
    transform: translateX(-100%);
    transition : transform .3s ease;
}

#configurator-assistant-wrapper:before{
    content : "";
    position: absolute;
    top : 0;
    left : 0;
    right : 0;
    height : 8rem;
    background-color : #ffffff;
}

#configurator-assistant-wrapper.active{
    transform: translateX(0);
}

@media screen and (max-width:1024px){
    #configurator-assistant-wrapper{
        padding-top: 6rem;
        padding-left : 0;
        padding-right : 0;
    }
    
    #configurator-assistant-wrapper:before{
        height : 6rem;
    }

    #configurator-assistant-loop .elementor-loop-container{
        width: 100%;
        overflow: auto;
        white-space: nowrap;
        display: flex;
        padding: 2rem;
        -ms-overflow-style: none;  /* IE and Edge */
        scrollbar-width: none;  /* Firefox */
    }

    /* Hide scrollbar for Chrome, Safari and Opera */
    #configurator-assistant-loop .elementor-loop-container::-webkit-scrollbar {
        display: none;
    }

    #configurator-assistant-loop .configurator-assistant-item{
        width: 15rem;
        height: 100%;
    }

    #configurator-assistant-loop .configurator-assistant-item .configurator-assistant-item-text{
        white-space: normal;
    }

    #configurator-assistant-wrapper .horizontal-scroll-arrow{
        width:60px;
        height:30px;
        display: flex;
        background: 
            linear-gradient(#fff 0 0) center/calc(100% - 15px) 1px,
            conic-gradient(from -136deg at right,#0000 ,#fff 1deg 90deg,#0000 91deg) right/6px 100%,
            conic-gradient(from   44deg at left ,#0000 ,#fff 1deg 90deg,#0000 91deg) left /6px 100%;
        background-repeat: no-repeat;
        animation: horizontal-scroll 1s infinite linear alternate;
        margin-top: -1.3rem;
        margin-bottom: 1rem;
    }
}

@keyframes horizontal-scroll {
    0%   {transform: translate(-30px)}
    100% {transform: translate( 30px)}
  }


/* 
 * Configurateur 
 */

#configurator{
    /*position: relative;*/
    overflow-y: auto;
}

/* Controls */

#configurator-controls{
    padding-top : 1rem;
    background-color: #ffffff;
}

#configurator-controls #configurator-prev-next{
    display: flex;
    justify-content: space-between;
    margin-bottom: 1rem;
}

#configurator-controls #configurator-prev-next .prev, #configurator-controls #configurator-prev-next .next{
    position: relative;
    display: flex;
    align-items: center;
    gap : .3rem;
    cursor: pointer;
}

#configurator-controls #configurator-prev-next .prev:before, #configurator-controls #configurator-prev-next .next:after{
    transform: translateY(-2px);
}

#configurator-controls #configurator-prev-next .prev:before{
    content : url("../images/arrow-left.svg");
}

#configurator-controls #configurator-prev-next .next:after{
    content : url("../images/arrow-right.svg");
}

#configurator-controls #configurator-submit{
    width: 100%;
    text-align: center;
}

#configurator-controls #configurator-submit:hover, #configurator-controls #configurator-submit:focus{
    border-color : var(--e-global-color-secondary );
}

@media screen and (max-width:1024px){
    #configurator-controls{
        padding : 1rem 2rem;
        border-top-left-radius: 50px;
        border-top-right-radius: 50px;
        background-color: #F0F0F0;
    }
}


 /* Accordion */
#configurator .accordion{
    position: relative;
    border-top : 1px solid #3B3131;
}

#configurator .accordion:first-of-type{
    border-top: 0;
}

#configurator .accordion:last-of-type{
    border-bottom : 1px solid #3B3131;
}

#configurator .accordion > i{
    content: url('../images/picto-informations.svg');
    position: absolute;
    font-size: 13px;
    margin-left: 5px;
    right: 2.5rem;
    top : .6rem;
    display: inline-block;
    padding: 0.65rem 0.8rem;
    border-radius: 50%;
    border: 1px solid var(--e-global-color-primary);
    background-color : #fff;
    z-index: 1;
    cursor: pointer;
}

#configurator .accordion-header {
    position : relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    cursor: pointer;
    padding: 1rem;
    padding-right: 6rem;
    width: 100%;
    text-align: left;
    border: none;
    outline: none;
    transition: 0.4s;
}

#configurator .accordion-header h3{
    font-size: 1rem;
    text-transform: uppercase;
    margin : 0;
}
  
#configurator .accordion-header.active, #configurator .accordion-header:hover {
    /*background-color: #ccc;*/
}

#configurator .accordion-header:after {
    content: url('../images/arrow-bottom.svg');
    position: absolute;
    font-size: 13px;
    margin-left: 5px;
    right: 0;
    display: inline-block;
    padding: 0.45rem 0.8rem;
    border-radius: 50%;
    background-color: #F0F0F0;
}

#configurator .accordion-header.active:after {
    transform: rotate(180deg);
}
  
#configurator .accordion-panel {
    padding: 0 1rem; 
    background-color: white;
    max-height: 0;
    overflow: hidden;
    transition: all 0.2s ease-out;
}

#configurator .active + .accordion-panel {
    padding: 1rem; 
}

/* Tabs */
#configurator .tabs {
    width: 100%;
    background-color: white;
}

#configurator .tabs .tabsButtonWrapper {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    border-bottom : 1px solid #F0F0F0;
}

#configurator .tabs .tabsButtonWrapper .tab-button {
    border: none;
    padding: 10px;
    background-color: #ffffff;
    color: #232c3d;
    font-size: 18px;
    cursor: pointer;
    transition: 0.5s;
    box-shadow: 0 0 0;
    border-radius: 0;
    opacity : 50%;
}

#configurator .tabs .tabsButtonWrapper img {
    max-height : 40px;
    width: auto;
    pointer-events: none;
}

#configurator .tabs .tabsButtonWrapper .tab-button:hover {
    background-color: #F0F0F0;
    opacity : 1;
}

#configurator .tabs .tabsButtonWrapper .tab-button.active {
    background-color: #F0F0F0;
    opacity : 1;
}

#configurator .tabs .tabsButtonWrapper .active, #configurator .tabs .tabsContentWrapper .active{
    background-color: white;
}

#configurator .tabs .tabsContentWrapper .tab-content {
    display: none;
    padding: 10px 20px;
}

#configurator .tabs .tabsContentWrapper .tab-content.active {
    display: block;
}

/* Catégories */
#configurator [data-type="categorie"]{
    display: flex;
    flex-wrap: wrap;
    margin-bottom: 1rem;
    gap : 1rem;
}

#configurator [data-type="categorie"] .categorie_title{
    width : 100%;
    text-transform: uppercase;
    font-weight: 300;
    font-size: 1rem;
    margin-bottom: 0;
}

#configurator [data-type="categorie"] input[type="radio"], #configurator [data-type="categorie"] input[type="checkbox"]{
    display: none;
}

/* Elément */
#configurator [data-type="element"]{
    width : 30%;
    cursor: pointer;
}

#configurator [data-type="element"].disabled figure{
    position: relative;
}

#configurator [data-type="element"].disabled:not(.exclusivity) figure:before{
    content : "Non Disponible";
    position: absolute;
    top : 50%;
    transform : translateY(-50%);
    color:  #000;
    font-weight: 700;
    text-align: center;
    width: 100%;
    padding: 1rem;
    font-size: .8rem;
    z-index: 10;
    word-spacing: 100vw;
}

#configurator [data-type="element"].disabled.exclusivity{
    display: none;
}


#configurator [data-type="element"].disabled img{
  -webkit-filter: grayscale(100%); /* Safari 6.0 - 9.0 */
  filter: grayscale(100%);
  opacity: .1;
}

#configurator [data-type="element"].disabled:after, #configurator [data-type="element"].disabled h5,  #configurator [data-type="element"].disabled p{
    opacity: .5;
}

#configurator section[data-type="element"]:not(.optional){
    -webkit-box-shadow: 0px 1px 4px 0px rgba(0,0,0,0.15);
    -moz-box-shadow: 0px 1px 4px 0px rgba(0,0,0,0.15);
    box-shadow: 0px 1px 4px 0px rgba(0,0,0,0.15);
}

#configurator input[type="radio"]:checked + label[data-type="element"], 
#configurator input[type="checkbox"]:checked + label[data-type="element"],
#configurator section[data-type="element"].optional.active{
    -webkit-box-shadow: 0px 1px 4px 0px rgba(0,0,0,0.15);
    -moz-box-shadow: 0px 1px 4px 0px rgba(0,0,0,0.15);
    box-shadow: 0px 1px 4px 0px rgba(0,0,0,0.15);
}

#configurator [data-type="element"] h5{
    font-size: .8rem;
    font-weight: 600;
    margin: 0;
}

#configurator [data-type="element"] .element-title, #configurator [data-type="element"] .element-subtitle, #configurator [data-type="element"] .element-options{
    padding-left : .5rem;
    padding-right : .5rem;
}

#configurator [data-type="element"] :last-child{
    padding-bottom : .5rem;
}

#configurator [data-type="element"] .subtitle{
    font-size: .8rem;
}

#configurator [data-type="element"].optional .element-subtitle{
    font-size: .8rem;
    font-style: italic;
}

#configurator [data-type="element"] figure{
    position: relative;
    overflow: hidden;
}

#configurator [data-type="element"].optional figure:after{
    content : "Opt";
    position: absolute;
    font-size : .5rem;
    background-color : #3B3131;
    font-weight : 600;
    color : #fff;
    text-transform: uppercase;
    padding : .1rem 2rem;
    left : 0;
    top : 0;
    transform: rotate(-45deg) translateX(-26%) translateY(-0.8rem)
}

#configurator [data-type="element"].optional h5{
    font-weight: 300;
}

#configurator [data-type="element"] .element-options{
    display: flex;
    align-items: center;
    gap : 1rem;
    margin-top: 1rem;
}

#configurator [data-type="element"] .element-options .element-cat-options{
    font-weight: 700;
    text-transform: uppercase;
    font-size : .8rem;
    width: auto;
    padding: 0;
    border: 0;
    overflow: visible;
    display: inline-block;
    cursor: pointer;
    outline : none;
    box-shadow: 0 0 0;
    background-color: transparent;
    color: var(--e-global-color-secondary);
}

#configurator [data-type="element"] .element-options [data-option-type="color"].element-cat-options{
    width: 30px;
    height: 30px;
    border: 1px solid #DDDDDD;
    border-radius: 20px;
}

#configurator [data-type="element"] .element-options [data-option-type="visuel"].element-cat-options{
    width: 30px;
    height: 30px;
    border: 1px solid #DDDDDD;
    border-radius: 20px;
    background-size: cover;
    background-position: center;
}

@media screen and (max-width:1024px){
    #configurator .accordion > i{
        right: 3.5rem;
    }

    #configurator .accordion .accordion-header{
        padding-right : 7rem;
    }

    #configurator .accordion .accordion-header:after{
        right: 1rem;
    }
}

/*
 *
 * INIT POPUP
 *
 */

#configurator-init-popup{
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 100;
    display: flex;
    justify-content: center;
    align-items: center;
    transition: all .3s ease;
}

#configurator-init-popup.inactive{
    opacity: 0;
    pointer-events : none;
}

#configurator-init-popup #init-popup-wrapper{
    width : 36rem;
    background-color: #fff;
    padding : 3rem;
}

#configurator-init-popup .title{
    color: var(--e-global-color-primary);
    font-family: "bebas-neue", Sans-serif;
    font-size: 3rem;
    text-transform: uppercase;
    line-height: 1.2;
    text-align: center;
}

#configurator-init-popup p{
    text-align: center;
}

#configurator-init-popup form{
    display: flex;
    justify-content: center;
    gap : 2rem;
    flex-wrap: wrap;
}

#configurator-init-popup form{
    margin-top : 2rem;
}

#configurator-init-popup form label{
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap : 1rem;
    flex-wrap: wrap;
    background-color: #fff;
    cursor: pointer;
    max-width: 40%;
}

#configurator-init-popup form.two-cols label{
    max-width: 40%;
}

#configurator-init-popup form.three-cols label{
    max-width: 27%;
}

#configurator-init-popup #init-popup-step-1 form label{
    padding : 1rem;
}

#configurator-init-popup :not(#init-popup-step-1) form label h5{
    margin: 0;
    padding: 0rem 1rem 1rem;
}

#configurator-init-popup form label .element-title{
    font-size: .8rem;
    font-weight: 600;
}

#configurator-init-popup form input:disabled + label{
    opacity: .2;
}

#configurator-init-popup form input:checked + label{
    -webkit-box-shadow: 0px 1px 4px 0px rgba(0,0,0,0.15);
    -moz-box-shadow: 0px 1px 4px 0px rgba(0,0,0,0.15);
    box-shadow: 0px 1px 4px 0px rgba(0,0,0,0.15);
    z-index : 1;
}

#configurator-init-popup form input:disabled + label{
    cursor: not-allowed;
}

#configurator-init-popup form input:not([type="submit"]):not(.return-button){
    display: none;
}

#configurator-init-popup form footer{
    display: flex;
    justify-content: space-between;
    width: 100%;
    text-align: center;
}

#configurator-init-popup form#init-form-step-1 footer{
    justify-content: center;
}

#configurator-init-popup form footer .return-button{
    width: 4rem;
    border: 0;
    outline: none;
}

#configurator-init-popup .init-popup-step.active{
    border: 0;
    padding: 0;
}

#configurator-init-popup .init-popup-step.active{
    border: 1px solid #eeeeee;
    border-radius: 15px;
    padding: 2rem;
}

#configurator-init-popup .init-popup-step{
    opacity: 0;
    max-height: 0;
    pointer-events: none;
    transition: opacity .3s ease;
}

#configurator-init-popup .init-popup-step.active{
    opacity: 1!important;
    max-height: none!important;
    pointer-events: auto!important;
}

@media screen and (max-width:768px){
    #configurator-init-popup .title{
        font-size: 1.5rem;
    }

    #configurator-init-popup #init-popup-wrapper{
        padding: 2rem 1rem;
    }

    #configurator-init-popup .init-popup-step.active{
        padding: 1rem;
    }

    #configurator-init-popup form{
        gap: 1rem;
    }

    #configurator-init-popup #init-popup-step-1 form label{
        padding: 0.5rem;
    }

    #configurator-init-popup form label{
        gap: .5rem;
        max-width: 45%;
    }

    #configurator-init-popup :not(#init-popup-step-1) form label h5{
        padding: 0rem .5rem .5rem;
    }
}

/*
 *
 * POPUP OPTIONS
 *
 */

#configurator-options-popup, #controls-popup{
    position: fixed;
    top : 0;
    left : 0;
    right : 0;
    bottom : 0;
    z-index: 0;
    background-color : rgba(0,0,0,.5);
    opacity: 0;
    pointer-events: none;
    transition: opacity .3s ease;
}


/* LOADERS */
#option-popup-loader, #controls-popup-loader{
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
    display: grid;
    place-items: center;
    opacity : 0;
}

#option-popup-loader.active, #controls-popup-loader.active{
    opacity : 1;
}

#option-popup-loader .cube-wrapper, #controls-popup-loader .cube-wrapper {
    transform-style: preserve-3d;
    animation: bouncing 2s infinite;
}

#option-popup-loader .cube, #controls-popup-loader .cube {
    transform-style: preserve-3d;
    transform: rotateX(45deg) rotateZ(45deg);
    animation: rotation 2s infinite;
}

#option-popup-loader .cube-faces, #controls-popup-loader .cube-faces  {
    transform-style: preserve-3d;
    height: 40px;
    width: 40px;
    position: relative;
    transform-origin: 0 0;
    transform: translateX(0) translateY(0) translateZ(-20px);
}

#option-popup-loader .cube-face, #controls-popup-loader .cube-face {
    position: absolute;
    inset: 0;
    background: var(--e-global-color-secondary);
    border: solid 1px var(--e-global-color-primary);
}
#option-popup-loader .cube-face.shadow, #controls-popup-loader .cube-face.shadow {
    transform: translateZ(-40px);
    animation: bouncing-shadow 2s infinite;
}
#option-popup-loader .cube-face.top, #controls-popup-loader .cube-face.top {
    transform: translateZ(40px);
}
#option-popup-loader .cube-face.front, #controls-popup-loader .cube-face.front {
    transform-origin: 0 50%;
    transform: rotateY(-90deg);
}
#option-popup-loader .cube-face.back, #controls-popup-loader .cube-face.back {
    transform-origin: 0 50%;
    transform: rotateY(-90deg) translateZ(-40px);
}
#option-popup-loader .cube-face.right, #controls-popup-loader .cube-face.right {
    transform-origin: 50% 0;
    transform: rotateX(-90deg) translateY(-40px);
}
#option-popup-loader .cube-face.left, #controls-popup-loader .cube-face.left {
    transform-origin: 50% 0;
    transform: rotateX(-90deg) translateY(-40px) translateZ(40px);
}

@keyframes rotation {
    0% {
        transform: rotateX(45deg) rotateY(0) rotateZ(45deg);
        animation-timing-function: cubic-bezier(0.17, 0.84, 0.44, 1);
    }
    50% {
        transform: rotateX(45deg) rotateY(0) rotateZ(225deg);
        animation-timing-function: cubic-bezier(0.76, 0.05, 0.86, 0.06);
    }
    100% {
        transform: rotateX(45deg) rotateY(0) rotateZ(405deg);
        animation-timing-function: cubic-bezier(0.17, 0.84, 0.44, 1);
    }
}
@keyframes bouncing {
    0% {
        transform: translateY(-40px);
        animation-timing-function: cubic-bezier(0.76, 0.05, 0.86, 0.06);
    }
    45% {
        transform: translateY(40px);
        animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);
    }
    100% {
        transform: translateY(-40px);
        animation-timing-function: cubic-bezier(0.76, 0.05, 0.86, 0.06);
    }
}
@keyframes bouncing-shadow {
    0% {
        transform: translateZ(-80px) scale(1.3);
        animation-timing-function: cubic-bezier(0.76, 0.05, 0.86, 0.06);
        opacity: 0.05;
    }
    45% {
        transform: translateZ(0);
        animation-timing-function: cubic-bezier(0.23, 1, 0.32, 1);
        opacity: 0.3;
    }
    100% {
        transform: translateZ(-80px) scale(1.3);
        animation-timing-function: cubic-bezier(0.76, 0.05, 0.86, 0.06);
        opacity: 0.05;
    }
}

/* POPUP BODY */
#options-popup-wrapper,  #informations-popup-wrapper, #save-popup-wrapper, #incompatibilities-popup-wrapper{
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translateX(-50%) translateY(-50%);
    background-color: #fff;
    -webkit-box-shadow: 0px 1px 4px 0px rgba(0,0,0,0.15);
    -moz-box-shadow: 0px 1px 4px 0px rgba(0,0,0,0.15);
    box-shadow: 0px 1px 4px 0px rgba(0,0,0,0.15);
    padding: 2rem;
    padding-top : 4rem;
    width: 90%;
    max-width: 500px;
    z-index: 2;
    opacity : 0;
    transition: opacity .3s ease;
    pointer-events: none;
    max-height: 95%;
    overflow-y: auto;
}

#options-popup-wrapper.active,  #informations-popup-wrapper.active, #save-popup-wrapper.active, #incompatibilities-popup-wrapper.active{
    opacity : 1;
    pointer-events: auto;
}

#configurator-options-popup.active{
    z-index: 10;
    opacity: 1;
    pointer-events: auto;
}

#controls-popup.active{
    z-index: 100;
    opacity: 1;
    pointer-events: auto;
}

#configurator-options-popup .close, #controls-popup.active .close{
    display: block;
    margin: 0;
    padding: 0;
    border: 0;
    background: none;
    width: 30px;
    height: 30px;
    position: absolute;
    top : 1rem;
    right : 1rem;
    cursor: pointer;
}

#configurator-options-popup .close:before, #configurator-options-popup .close:after, #controls-popup.active .close:before, #controls-popup.active .close:after{
    content: "";
    position: absolute;
    top: 14px;
    left: 0;
    right: 0;
    height: 1px;
    background: #000;
    border-radius: 2px;
}

#configurator-options-popup .close:before, #controls-popup.active .close:before{
    transform: rotate(45deg);
}

#configurator-options-popup .close:after, #controls-popup.active .close:after{
    transform: rotate(-45deg);
}

#informations-wrapper, #incompatibilities-wrapper{
    display: flex;
    flex-direction: column;
    gap : 1rem;
}

#configurator-options-popup header, #informations-wrapper .element-infos, #incompatibilities-wrapper .element-infos{
    display: flex;
    gap : 1rem;
}

#informations-wrapper .element-infos, #incompatibilities-wrapper .element-infos{
    align-items: center;
}

#configurator-options-popup-form header h5, #informations-wrapper .element-infos h5, #incompatibilities-wrapper .element-infos h5{
    font-weight: 700;
    margin-top : 0;
    margin-bottom: 0.2rem
}

#incompatibilities-wrapper #element-incompatibility-selection label{
    cursor: pointer;
    padding : .5rem;
    box-shadow: 0px 0px 0px 0px rgba(0,0,0,0.15);
    transition: box-shadow .3s ease;
}

#incompatibilities-wrapper #element-incompatibility-selection label:hover, #incompatibilities-wrapper #element-incompatibility-selection label:focus{
    box-shadow: 0px 1px 4px 0px rgba(0,0,0,0.15);
}

#incompatibilities-wrapper .configurator-incompatibility-infos h3{
    font-size: 1rem;
}

#incompatibilities-popup-wrapper .configurator-incompatibility-infos h5{
    position: absolute;
    width : 75%;
    top: 1rem;
    left: 2rem;
    font-weight: 700;
}

#incompatibilities-popup-wrapper #element-incompatibility-selection > input{
    display: none;
}

#incompatibilities-popup-wrapper #element-incompatibility-selection {
    display: flex;
    gap : 2rem;
}

#incompatibilities-popup-wrapper #element-incompatibility-selection [data-type="element"]{
    width: 30%;
}

#configurator-options-popup #incompatibilities-popup-wrapper #element-incompatibility-selection figure{
    width: 100%;
}

#configurator-options-popup #incompatibilities-popup-wrapper #element-incompatibility-selection .element-title{
    font-size: .8rem;
    font-weight: 600;
    margin: 0;
}

#configurator-options-popup figure, #informations-wrapper .element-infos figure, #incompatibilities-wrapper .element-infos figure{
    width : 40%;
}

#configurator-options-popup #configurator-options-infos, #informations-wrapper .element-infos .configurator-options-infos{
    width : 60%;
}

#configurator-options-popup #configurator-options-popup-controls{
    display: flex;
    gap : 1rem;
    padding-top: 2rem;
}

#configurator-options-popup #configurator-options-popup-controls input{
    width : 100%;
    box-shadow: 0 0 0;
}

#configurator-options-popup #configurator-options-popup-controls input#reboot{
    border: 1px solid var(--e-global-color-secondary );
    background-color: var(--e-global-color-secondary );
    color : #fff;
    border-radius: 50rem 50rem 50rem 50rem;
}

#configurator-options-popup #configurator-options-popup-controls input#reboot:hover, #configurator-options-popup #configurator-options-popup-controls input#reboot:focus{
    background-color: #fff;
    color: var(--e-global-color-secondary );
}

#configurator-options-popup #configurator-options-popup-controls input#submit:hover, #configurator-options-popup #configurator-options-popup-controls input#submit:focus{
    border-color : var(--e-global-color-secondary );
}

/* POPUP CATEGORY */
#configurator-options-popup-form .category-wrapper{
    display: flex;
    flex-wrap: wrap;
}

#configurator-options-popup-form .category-wrapper + .category-wrapper{
    margin-top : 1rem;
}

#configurator-options-popup-form .category-wrapper h5{
    width: 100%;
}

#configurator-options-popup-form .category-wrapper .options-container{
    width: 100%;
    display: flex;
}

#configurator-options-popup-form .category-wrapper.normal .options-container{
    flex-wrap : wrap;
}

#configurator-options-popup-form .category-wrapper.switch .options-container{
    border-radius: 1.5rem;
    background-color: #F0F0F0;
}

#configurator-options-popup-form .category-wrapper.switch .options-container [data-type="option"], #configurator-options-popup-form .category-wrapper.switch .options-container [data-type="option"] label{
    width: 100%;
}

#configurator-options-popup-form .category-wrapper.switch .options-container [data-type="option"].disabled{
    opacity: .1;
    text-decoration: line-through;
    cursor : not-allowed;
}


/* POPUP OPTIONS */
#configurator-options-popup-form [data-type="option"] label input{
    display: none;
}

#configurator-options-popup-form [data-type="option"] label .option-wrapper{
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 1rem 1.2rem;
    border-radius: 1.5rem;
    cursor: pointer;
    max-width: 110px;
    text-align: center;
    line-height: 1.2;
}

#configurator-options-popup-form .switch [data-type="option"] label .option-wrapper{
    max-width: 100%;
}

#configurator-options-popup-form [data-type="option"] label input:checked + .option-wrapper{
    background-color: #fff;
    -webkit-box-shadow: 0px 1px 4px 0px rgba(0,0,0,0.15);
    -moz-box-shadow: 0px 1px 4px 0px rgba(0,0,0,0.15);
    box-shadow: 0px 1px 4px 0px rgba(0,0,0,0.15);
    z-index : 1;
}

#configurator-options-popup-form [data-type="option"] label .option-wrapper .option{
    width: 50px;
    height: 50px;
    border: 1px solid #DDDDDD;
    border-radius: 50px;
    margin-bottom: 1rem;
}

#configurator-options-popup-form [data-type="option"] label .option-wrapper .option-name{
    font-weight: 700;
}

#configurator-options-popup-form [data-type="option"] label .option-wrapper .option.visuel{
    background-size: cover;
    background-position: center;
}

@media screen and (max-width:1024px){
    #configurator-options-popup-form header h5, #informations-wrapper .element-infos h5{
        font-size : 1rem;
    }

    #configurator-options-popup-form header p, #informations-wrapper .element-infos p{
        font-size : .8rem;
    }
}

/* SAVE CONFIGURATION FORM */
#save-popup-wrapper #save-form-wrapper #save-form button[type="submit"]{
    margin-top : 1rem;
}

@media print {
    /* All your print styles go here */
    #aside-container,
    #assistant-configurateur,
    #configurator-assistant-wrapper,
    #main-controls,
    #controls-popup,
    #main-header {
      display: none !important;
    }

    #scene{
        width : 100%;
    }
  }