/* ============== SOMMAIRE ============== */

/* ============== FONT ============== */
@font-face {
    font-family: 'Open Sans';
    src: url('../fonts/OpenSans-ExtraBold.woff2') format('woff2'),
        url('../fonts/OpenSans-ExtraBold.woff') format('woff');
    font-weight: 900;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Open Sans';
    src: url('../fonts/OpenSans-Italic.woff2') format('woff2'),
        url('../fonts/OpenSans-Italic.woff') format('woff');
    font-weight: normal;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'Open Sans';
    src: url('../fonts/OpenSans-BoldItalic.woff2') format('woff2'),
        url('../fonts/OpenSans-BoldItalic.woff') format('woff');
    font-weight: bold;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'Open Sans';
    src: url('../fonts/OpenSans-ExtraBoldItalic.woff2') format('woff2'),
        url('../fonts/OpenSans-ExtraBoldItalic.woff') format('woff');
    font-weight: 900;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'Open Sans';
    src: url('../fonts/OpenSans-Bold.woff2') format('woff2'),
        url('../fonts/OpenSans-Bold.woff') format('woff');
    font-weight: bold;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Open Sans';
    src: url('../fonts/OpenSans-Light.woff2') format('woff2'),
        url('../fonts/OpenSans-Light.woff') format('woff');
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Open Sans';
    src: url('../fonts/OpenSans-SemiBoldItalic.woff2') format('woff2'),
        url('../fonts/OpenSans-SemiBoldItalic.woff') format('woff');
    font-weight: 600;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'Open Sans';
    src: url('../fonts/OpenSans-MediumItalic.woff2') format('woff2'),
        url('../fonts/OpenSans-MediumItalic.woff') format('woff');
    font-weight: 500;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'Open Sans';
    src: url('../fonts/OpenSans-SemiBold.woff2') format('woff2'),
        url('../fonts/OpenSans-SemiBold.woff') format('woff');
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Open Sans';
    src: url('../fonts/OpenSans-Medium.woff2') format('woff2'),
        url('../fonts/OpenSans-Medium.woff') format('woff');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Open Sans';
    src: url('../fonts/OpenSans-LightItalic.woff2') format('woff2'),
        url('../fonts/OpenSans-LightItalic.woff') format('woff');
    font-weight: 300;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'Open Sans';
    src: url('../fonts/OpenSans-Regular.woff2') format('woff2'),
        url('../fonts/OpenSans-Regular.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Coda';
    src: url('../fonts/Coda-ExtraBold.woff2') format('woff2'),
        url('../fonts/Coda-ExtraBold.woff') format('woff');
    font-weight: bold;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Coda';
    src: url('../fonts/Coda-Regular.woff2') format('woff2'),
        url('../fonts/Coda-Regular.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

/* ============== RESET ============== */
/*
  1. Use a more-intuitive box-sizing model.
*/
*, *::before, *::after {
    box-sizing: border-box;
}

/*
2. Remove default margin
*/
* {
    margin: 0;
}

/*
Typographic tweaks!
3. Add accessible line-height
4. Improve text rendering
*/
body {
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
}

/*
5. Improve media defaults
*/
img, picture, video, canvas, svg {
    display: block;
    max-width: 100%;
}

/*
6. Remove built-in form typography styles
*/
input, button, textarea, select {
    font: inherit;
}

/*
7. Avoid text overflows
*/
p, h1, h2, h3, h4, h5, h6 {
    overflow-wrap: break-word;
}

/*
8. Create a root stacking context
*/
#root, #__next {
    isolation: isolate;
}

ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

a {
    text-decoration: none;
}

/* ============== MAIN ============== */

:root {
    --main-orange: #D2502B;
    --main-grey: #5B666A;
}

body {
    font-family: 'Open Sans', Helvetica, sans-serif;
    height: 100%;
    background-color: #fff;
}

main {
    display: flex;
    height: 100%;
    width: 100%;
    max-width: 1920px;
    margin: 0 auto;
    font-size: 16px;
    box-shadow: 0 0 20px rgb(0, 0, 0, 0.25);
}

.content {
    position: relative;
    padding: 0;
    margin-left: 250px;
    display: flex;
    flex-direction: column;
    flex: 1;
    height: 100%;
    background-color: #fff;
    overflow: visible;
}

@media (max-width: 768px) {
    p {
        font-size: 14px;
    }
}
.sidebar__menu li a.active {
    background-color: var(--main-orange);
}

/* ============== CUSTOM ============== */

.padding-section {
    padding: 30px 35px 40px 35px;
}

.section-orange {
    background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%221186%22%20height%3D%22397%22%20viewBox%3D%220%200%201186%20397%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20clip-path%3D%22url(%23clip0_1730_42)%22%3E%3Crect%20width%3D%221186%22%20height%3D%22397%22%20fill%3D%22white%22%2F%3E%3Crect%20width%3D%221187%22%20height%3D%22397%22%20fill%3D%22url(%23paint0_linear_1730_42)%22%20fill-opacity%3D%220.5%22%2F%3E%3Cg%20filter%3D%22url(%23filter0_i_1730_42)%22%3E%3Cpath%20d%3D%22M1145.22%20155.486V93H1329V614H700V426.112H903.627V267.098H1026.15V155.486H1145.22Z%22%20fill%3D%22url(%23paint1_linear_1730_42)%22%20fill-opacity%3D%220.8%22%2F%3E%3C%2Fg%3E%3Cg%20filter%3D%22url(%23filter1_i_1730_42)%22%3E%3Crect%20x%3D%22-81.8223%22%20y%3D%22-70.4551%22%20width%3D%22553.542%22%20height%3D%22842.378%22%20transform%3D%22rotate(-19.9066%20-81.8223%20-70.4551)%22%20fill%3D%22url(%23paint2_linear_1730_42)%22%20fill-opacity%3D%220.2%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cdefs%3E%3Cfilter%20id%3D%22filter0_i_1730_42%22%20x%3D%22700%22%20y%3D%2293%22%20width%3D%22629%22%20height%3D%22525%22%20filterUnits%3D%22userSpaceOnUse%22%20color-interpolation-filters%3D%22sRGB%22%3E%3CfeFlood%20flood-opacity%3D%220%22%20result%3D%22BackgroundImageFix%22%2F%3E%3CfeBlend%20mode%3D%22normal%22%20in%3D%22SourceGraphic%22%20in2%3D%22BackgroundImageFix%22%20result%3D%22shape%22%2F%3E%3CfeColorMatrix%20in%3D%22SourceAlpha%22%20type%3D%22matrix%22%20values%3D%220%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%20127%200%22%20result%3D%22hardAlpha%22%2F%3E%3CfeOffset%20dy%3D%224%22%2F%3E%3CfeGaussianBlur%20stdDeviation%3D%2250%22%2F%3E%3CfeComposite%20in2%3D%22hardAlpha%22%20operator%3D%22arithmetic%22%20k2%3D%22-1%22%20k3%3D%221%22%2F%3E%3CfeColorMatrix%20type%3D%22matrix%22%20values%3D%220%200%200%200%200.823529%200%200%200%200%200.313726%200%200%200%200%200.168627%200%200%200%200.2%200%22%2F%3E%3CfeBlend%20mode%3D%22normal%22%20in2%3D%22shape%22%20result%3D%22effect1_innerShadow_1730_42%22%2F%3E%3C%2Ffilter%3E%3Cfilter%20id%3D%22filter1_i_1730_42%22%20x%3D%22-81.8223%22%20y%3D%22-258.93%22%20width%3D%22807.285%22%20height%3D%22984.52%22%20filterUnits%3D%22userSpaceOnUse%22%20color-interpolation-filters%3D%22sRGB%22%3E%3CfeFlood%20flood-opacity%3D%220%22%20result%3D%22BackgroundImageFix%22%2F%3E%3CfeBlend%20mode%3D%22normal%22%20in%3D%22SourceGraphic%22%20in2%3D%22BackgroundImageFix%22%20result%3D%22shape%22%2F%3E%3CfeColorMatrix%20in%3D%22SourceAlpha%22%20type%3D%22matrix%22%20values%3D%220%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%20127%200%22%20result%3D%22hardAlpha%22%2F%3E%3CfeOffset%20dy%3D%224%22%2F%3E%3CfeGaussianBlur%20stdDeviation%3D%2245%22%2F%3E%3CfeComposite%20in2%3D%22hardAlpha%22%20operator%3D%22arithmetic%22%20k2%3D%22-1%22%20k3%3D%221%22%2F%3E%3CfeColorMatrix%20type%3D%22matrix%22%20values%3D%220%200%200%200%201%200%200%200%200%200.412222%200%200%200%200%200.233333%200%200%200%200.12%200%22%2F%3E%3CfeBlend%20mode%3D%22normal%22%20in2%3D%22shape%22%20result%3D%22effect1_innerShadow_1730_42%22%2F%3E%3C%2Ffilter%3E%3ClinearGradient%20id%3D%22paint0_linear_1730_42%22%20x1%3D%221187%22%20y1%3D%22397%22%20x2%3D%223.39676e-07%22%20y2%3D%22-1.01561e-06%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20stop-color%3D%22%23D2502B%22%20stop-opacity%3D%220.7%22%2F%3E%3Cstop%20offset%3D%220.25%22%20stop-color%3D%22%23D2502B%22%20stop-opacity%3D%220.6%22%2F%3E%3Cstop%20offset%3D%220.535%22%20stop-color%3D%22%23D2502B%22%20stop-opacity%3D%220.3%22%2F%3E%3Cstop%20offset%3D%220.685%22%20stop-color%3D%22%23D2502B%22%20stop-opacity%3D%220.4%22%2F%3E%3Cstop%20offset%3D%220.765%22%20stop-color%3D%22%23D2502B%22%20stop-opacity%3D%220.4%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23D2502B%22%20stop-opacity%3D%220.6%22%2F%3E%3C%2FlinearGradient%3E%3ClinearGradient%20id%3D%22paint1_linear_1730_42%22%20x1%3D%221278.5%22%20y1%3D%22124%22%20x2%3D%22700%22%20y2%3D%22518%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20stop-color%3D%22%23F8BCAB%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23F7B8A6%22%20stop-opacity%3D%220%22%2F%3E%3C%2FlinearGradient%3E%3ClinearGradient%20id%3D%22paint2_linear_1730_42%22%20x1%3D%22-31.01%22%20y1%3D%2226.6001%22%20x2%3D%22474.602%22%20y2%3D%22508.552%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20stop-color%3D%22%23FD9476%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23975846%22%20stop-opacity%3D%220.05%22%2F%3E%3C%2FlinearGradient%3E%3CclipPath%20id%3D%22clip0_1730_42%22%3E%3Crect%20width%3D%221186%22%20height%3D%22397%22%20fill%3D%22white%22%2F%3E%3C%2FclipPath%3E%3C%2Fdefs%3E%3C%2Fsvg%3E');
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
}

.flex-column {
    display: flex;
    flex-direction: column;
    row-gap: 30px;
}

.flex-row {
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    column-gap: 20px;
}

.align-center {
    align-items: center;
}

.align-start {
    align-items: flex-start;
}

.text-center {
    text-align: center;
}

.text-extra-bold {
    font-weight: 900;
}

.f-20 {
    font-size: 20px;
}

.mb-30 {
    margin-bottom: 30px;
}

@media screen and (max-width: 768px) {
    .padding-section {
        padding: 20px 14px 30px 14px;
    }
}

/* ============== MENU ============== */
#sidebar {
    position: fixed;
    top: 0;
    left: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    height: 100vh;
    width: 250px;
    line-height: 1.5;
    padding: 50px 10px 30px 10px;
    background-color: #5B666A;
    box-shadow: 0 0 6px rgb(0, 0, 0, 0.15);
}

.logo {
    display: block;
    margin-bottom: 40px;
}

.logo img {
    width: 146px;
    height: auto;
    margin: 0 auto;
    border: 2px solid #fff;
}

.sidebar__menu {
    display: flex;
    flex-direction: column;
}

.sidebar__menu a {
    display: block;
    padding: 12px 10px;
    font-size: 17px;
    font-weight: 700;
    letter-spacing: 0.5px;
    color: #fff;
}

.sidebar__menu li:not(:first-of-type) a:hover {
    background-color: var(--main-orange);
    transition: all ease-in-out 0.15s;
}

@media (min-width: 1920px) {
    #sidebar {
        left: calc(50% - 960px);
    }
}

/* ============== MENU RESPOSIVE ============== */
  
@media (max-width: 768px) {
    .content {
        margin-top: 60px;
        margin-left: 0;
        padding-bottom: 60px;
    }

    #sidebar {
        position: absolute;
        top: 60px;
        width: 100%;
        height: auto;
        padding: 20px 14px 30px 14px;
        box-shadow: 0 6px 8px rgb(0, 0, 0, 0.35);
        transform: translateX(-100%);
        z-index: 10;
        transition: 0.3s;
    }

    .logo {
        display: block;
        width: 100%;
        margin-bottom: 10px;
    }

    .logo img {
        width: 77px;
    }
}
  
.icon-burger__input {
    display: none;
    z-index: 100;
}

.icon-burger__button {
    display: none;
    z-index: 100;
}
  
.icon-burger__button-mark {
    background-color: #000; 
    display: block;
    height: 1px;
    transition: 0.3s; 
    width: 20px; 
}
  
@media screen and (max-width: 768px) {
    .icon-burger__button {
        position: absolute;
        top: 10px;
        right: 6px;
        display: flex;
        flex-direction: column;
        align-items: center;
        appearance: none;
        background-color: transparent;
        border: none;
        cursor: pointer;
        gap: 5px; 
        height: 32px; 
        justify-content: center;
        width: 32px;
    }

    #icon-burger:checked ~ #sidebar {
        transform: translateX(0%);
        transition: 0.3s;
      }

    #icon-burger:checked ~ .icon-burger__bg{
        position: absolute;
        width: 100%;
        height: 100%;
        z-index: 1;
    }
    
    #icon-burger:checked
        ~ .icon-burger__button
        .icon-burger__button-mark:nth-of-type(1) {
        transform: translate(2px, 1px) rotate(45deg); 
        transform-origin: 0%;
    }
    #icon-burger:checked
        ~ .icon-burger__button
        .icon-burger__button-mark:nth-of-type(2) {
        opacity: 0;
    }
    #icon-burger:checked
        ~ .icon-burger__button
        .icon-burger__button-mark:nth-of-type(3) {
        transform: translate(2px, 3px) rotate(-45deg); 
        transform-origin: 0%;
    }
}

/* ============== TOP PAGE ============== */

/* Header title */

.main-title {
    position: relative;
    top: 0;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    height: 96px;
    width: 100%;
    padding: 0 36px;
    background-color: #fff;
    box-shadow: 0 4px 6px rgb(0, 0, 0, 0.15);
}

.logo-sycodes {
    width: 60px;
    height: auto;
}

.main-title h1 {    
    line-height: 1.2;
    margin-left: 25px;
    font-size: 32px;
    font-weight: 900;
}

@media screen and (max-width: 768px) {
    .main-title {
        position: fixed;
        top: 0;
        left: 0;
        height: 60px;
        padding: 8px 14px;
        z-index: 10;
    }

    .logo-sycodes {
        width: 42px;
    }

    .main-title h1 {    
        margin-left: 14px;
        margin-right: 20px;
        font-size: 20px;
    }
}

@media screen and (max-width: 350px) {
    .main-title h1 {    
        font-size: 16px;
    }
}

/* 1st section */

#top-page h2 {
    font-size: 22px;
    font-weight: 900;
}

.with-border {
    position: relative;
    padding: 0 0 5px 26px;
    margin: 16px 0 30px 0;
}

.with-border:before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 6px;
    background-color: var(--main-orange);
    border-radius: 6px;
}

@media screen and (max-width: 768px) {
    #top-page h2 {
        font-size: 16px;
    }

    .with-border {
        padding: 0 0 5px 20px;
    }
}

/* 3 box */

.container-box {
    display: flex;
    column-gap: 10px;
    padding: 10px 0;
}

.box {
    flex: 1;
    width: 100%;
    max-width: 370px;
    padding: 25px;
    background-color: #fff;
    box-shadow: 0 0 6px rgb(0, 0, 0, 0.15);
    border-radius: 6px;
}

.box-title {
    margin-bottom: 6px;
    font-weight: 900;
    text-transform: uppercase;
}

.box-key-number {
    margin-bottom: 6px;
    font-family: 'Open sans', Helvetica, sans-serif;
    font-size: 32px;
    font-weight: 900;
    color: var(--main-orange);
}

.box-text {
    font-size: 14px;
}

/* 3 box with orange percent */

.container-box-percent {
    justify-content: center;
    text-align: center;
}

.container-box-percent .box {
    max-width: 320px;
    margin-bottom: 8px;
}

.box.box-image {
    padding: 12px;
}

.box.box-image img {
    width: 100%;
    aspect-ratio: 3 / 2;
    object-fit: cover;
    object-position: top center;
}

.box-key-number-percent {
    font-weight: 900;
}

.box-key-number-percent .number {
    margin-right: 6px;
    font-family: 'Open sans', Helvetica, sans-serif;
    font-size: 37px;
    color: var(--main-orange);
}

.box-key-number-percent .percent {
    font-family: 'Open Sans', Helvetica, sans-serif;
    font-size: 26px;
}

@media screen and (max-width: 980px) {
    .container-box {
        flex-direction: column;
        align-items: center;
        row-gap: 10px;
    }
}

/* Chiffre du moment */

.moment-number--bloc {
    display: flex;
    flex-direction: column;
}

.moment-number {
    display: flex;
    justify-content: center;
    align-items: center;
    column-gap: 15px;
    width: 100%;
    margin-right: 20px;
    font-weight: 900;
    color: var(--main-orange);
}

.moment-number .number {
    font-family: 'Open sans', Helvetica, sans-serif;
    font-size: 65px;
    line-height: 1.5;
}

.moment-number .percent {
    font-size: 38px;
}

.image-elements {
    width: 900px;
    height: auto;
}

/* ============== Other Pages ============== */

#top-page h2.page-title {
    font-size: 30px;
    line-height: 1.2;
    font-weight: 900;
    margin-bottom: 16px;
}

.container-small .box {
    max-width: 250px;
    padding: 18px;
}

.container-small .box-title {
    font-size: 16px;
    margin-bottom: 2px;
}

.container-small .box-key-number {
    font-size: 26px;
    margin-bottom: 4px;
}

/* ============== Footer ============== */
#footer {
    position: relative;
    color: #fff;
}

.footer-main {
    position: relative;
    padding: 35px;
    background-color: #403E3F;
}

#footer a {
    color: #fff;
}

.footer-container {
    display: flex;
}

.footer-container > div:not(.column-logo) {
    padding: 0 40px;
}

.column-logo {
    padding: 0;
}

.column-news, .column-menu {
    border-right: 1px dotted #989DA1;
}

#footer .logo {
    margin-bottom: 0;
}

#footer .logo img {
    width: 105px;
    border: none;
}

#footer strong {
    font-size: 14px;
}

/* Newsletter */

.btn-newsletter {
    display: block;
    text-align: center;
    padding: 10px 20px;
    margin-top: 10px;
    font-weight: 600;
    border: 1px solid #fff;
    border-radius: 50px;
}

.btn-newsletter:hover {
    border: 1px solid #D2502B;
    background-color: #D2502B;
    transition: all ease .2s;
}

/* Menu */

.column-menu strong {
    display: block;
    margin-bottom: 12px;
}

.column-menu li a {
    display: block;
    font-size: 13px;
    font-weight: 600;
    margin-bottom: 8px;
}

#footer .column-menu li a:hover, #footer .column-address a:hover {
    color: #D2502B;
    transition: all ease .2s;
}

/* Adress */

#footer address {
    font-size: 13px;
    font-style: normal;
}

.column-address strong {
    display: inline-block;
    margin-bottom: 6px;
}

#footer address p {
    margin-bottom: 14px;
}

.footer-rs ul {
    display: flex;
    column-gap: 20px;
}

.footer-rs img {
    width: 30px;
}

.footer-mentions {
    position: relative;
    text-align: center;
    font-size: 12px;
    padding: 10px;
    background-color: #575556;
}


@media screen and (max-width: 1100px) {
    .footer-main {
        padding: 20px;
    }
    .footer-container {
        flex-direction: column;
    }

    .column-news, .column-menu {
        border-right: none;
        border-bottom: 1px dotted #989DA1;
    }

    .footer-container > div {
        text-align: center;
        padding: 20px 0!important;
    }

    .footer-container .column-news {
        padding: 0 0 20px 0!important;
    }

    .btn-newsletter {
        width: fit-content;
        margin: 10px auto;
    }

    .footer-rs ul {
        justify-content: center;
    }
}

/* =========== Interactive house ========== */
#interactive-zone {
    position: relative;
}

.image-map {
    width: 100%;
    max-width: 1000px;
    transition: all .1s ease-in-out;
}

area {
    cursor: pointer;
}

.modal {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translateY(-50%) translateX(-50%);
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 350px;
    opacity: 0;
    padding: 4px;
    font-size: 14px;
    background-color: #ebebeb;
    box-shadow: 0 0 20px rgb(0, 0, 0, 0.25);
    transition: all .3s;
    z-index: 3;
    overflow: visible;
}

.visible-modal {
    opacity: 1;
    transition: all .3s;
}

.modal li {
    background-color: #fff;
    padding: 2px 20px;
    margin-top: 2px;
}

.modal li.modal-number {
    color: var(--main-orange);
    font-size: 24px;
    font-weight: 900;
    margin-top: 0;
}

.modal li.modal-title {
    font-size: 20px;
    font-weight: bold;
    margin-top: 0;
}

.modal b {
    display: inline-block;
    margin-right: 5px;
    font-size: 16px;
}

.modalClose {
    position: absolute;
    width: 12px;
    height: 12px;
    cursor: pointer;
    right: 10px;
    top: 10px;
}

.map-opacity {
    opacity: .85;
    transition: all .1s ease-in-out;
}

