@import url('https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');
*,
*::before,
*::after {
    margin: 0;padding:0;
    box-sizing: border-box;
}
html {scroll-behavior: smooth;}
section {scroll-margin-top: min(10em,15vw);}
html.lenis, html.lenis body {height: auto;}

body:has( [class^="sc"]) {
    margin: 0;
    color: #696C6D;
    line-height: 1.3;
    font-weight: 400;
    overflow-x: hidden;
    letter-spacing: -0.5%;
    font-size: 16px;
    font-family: "Poppins", sans-serif;
    & hr {border-bottom: 2px solid var(--cLPurpleVivid);}
    & ol,
    & ul {
        margin: 0;
        padding: 0;
        & li {
            &::marker { 
                line-height: 0;
                font-size: 1.3em;
                color: currentColor;
            }
        }
        &[class] {list-style: none;}
        &:not([class]) {
            display: grid;
            row-gap: .3em;
            padding-left: 1.7em;
        }
        &:is(ol) {
            list-style: none;
            counter-reset: item;
            padding-left: 0 !important;
            & li {
                position: relative;
                padding-left: 1.7em;
                counter-increment: item;
                &::before {
                    position: absolute;
                    top: 0;
                    left: 0;
                    line-height: 1;
                    display: block;
                    font-weight: 800;
                    font-size: 1.3em;
                    content: counter(item) ". ";
                    color: transparent !important;
                    -webkit-text-stroke: 1px var(--cLAccentYellow);
                }
            }
        }
    }

    & img,
    & video,
    & canvas,
    & svg {
        height: auto;
        display: block;
        max-width: 100%;
    }
    hr {
        width: 100%;
        border: none;
        display: block;
        margin-block: min(15px, 5vw);
        border-bottom: 2px solid var(--cLcurrentTheme);
    }
    & button {
        background: none;
        border: none;
        padding: 0;
    }
    & img {
        width: 100%;
        height: 100%;
        max-width: 100%;
        object-fit: contain;
    }
    & picture {
        position: relative;
        height: 100%;
        display: block;
        overflow: hidden;
        & img {
            object-fit: cover;
            max-width: inherit;
        }
    }
    
    & *:focus {outline: none;}
    & [class^="text"] {
        width: 100%;
        display: flex;
        row-gap: min(1em, 3vw);
        flex-direction: column;
        &.text-center {
            text-align: center;
            align-items: center;
        }
        &.text-right {
            text-align: right;
            align-items: flex-end;
        }
    }
    & button.btn {cursor: pointer;}
    & a {
        color: #7ab036;
        text-decoration: none;
        &:not([class]):hover {color: var(--cLAccentYellow);}
    }
    & strong {font-weight: 700;}
    & p:has( :is(.btn, .tag)) {
        width: 100%;
        display: flex;
        flex-wrap: wrap;
        gap: min(10px, 4vw);
        &:is(.text-center &) {
            justify-content: center;
        }
    }
    & :is(h1,h2,h3,h4,h5,h6) {line-height: 1.2;font-weight: 600;}
    & :is(h1,h2,h3,h4,h5,h6) em {font: inherit;color: #7ab036;}
    & p:has( :is([class^="btn-"], .tag)) {
        display: flex;
        flex-wrap: wrap;
        gap: min(10px, 4vw);
        &:is(.text-center &) {
            justify-content: center;
        }
    }
    & [style^="--icn-"] {
        align-items: center;
        display: inline-flex;
        column-gap: min(.5em, 3vw);
        &[style^="--icn-before"]::before,
        &[style^="--icn-after"]::after {
            position: relative;
            content: "";
            display: block;
            transition: initial;
            pointer-events: none;
            padding: min(.6em, 5vw);
            background-color: currentcolor;
        }
        &[style^="--icn-before"]::before {
            -webkit-mask : var(--icn-before) center / contain no-repeat;
            mask : var(--icn-before) center / contain no-repeat;
        }
        &[style^="--icn-after"]::after {
            -webkit-mask : var(--icn-after) center / contain no-repeat;
            mask : var(--icn-after) center / contain no-repeat;
        }
    }

    
    /* Container */
    & section {position: relative;}
    & [style^="--w:"] {width: var(--w);}
    & .row,
    & .flex {
        display: flex;
        flex-wrap: wrap;
        row-gap: min(2rem, 10vw);
        &.items-center {align-items: center;}
        &.space-between {
            justify-content: space-between;
        }
        &.direction-reverse {
            flex-direction: row-reverse;
        }
        &.direction-column {
            flex-wrap: nowrap;
            flex-direction: column;
            row-gap: min(50px, 10vw);
        }
        @media screen and (width<700px) {
            &.direction-reverse {
                flex-direction: column-reverse;
            }
        }
    }
    
    & .overlay {
        position: absolute;
        inset: 0;
        z-index: 2;
        font-size: 0;
        &:has(:is(.arrow, .plus)) {
            padding: min(15px, 6vw);
            display: flex;
            align-items: flex-start;
            justify-content: flex-end;
            & .arrow {
                rotate: -45deg;
                color: currentColor;
            }
        }
        &:has( .play) {
            display: flex;
            align-items: center;
            justify-content: center;
            & .play {
                color: var(--cLRedVivid);
                &::before {padding: min(3rem, 10vw);}
            }
        }
    }
    /* form */
    & input {
        &:not(:is(.qty-value,[type="radio"],[type="checkbox"],[type="submit"],[type=image],[type=file])) {
            width:100%;
            line-height: 1
        }

        &:is([type="radio"],[type="checkbox"]) {
            margin: 0;
            outline: none;
            flex: 0 0 auto;
            width: min(1.5rem, 6vw);
            height: min(1.5rem, 6vw);
            accent-color: #7ab036;
            &[type="checkbox"] {box-shadow: inset 0 0 0 1px #7ab036;}

            &[type="radio"]: not(:checked) {
                appearance:none;
                border-radius: 2rem;
                border: 1px solid #7ab036;
            }
        }

        &[type="date"] {
            position: relative;
            -webkit-appearance: none;
            -moz-appearance: none;
            appearance: none
        }

        &.gform_button[type="submit"] {
            border: none;
            display: block;
            line-height: 1;
            overflow: hidden;
            font-weight: 600;
            border-radius: 0;
            white-space: nowrap;
            transition: all .3s;
            color: var(--cLWhite);
            font-size: var(--fs14);
            text-transform: uppercase;
            border: 1px solid #7ab036;
            background-color: #7ab036;
            font-family: 'Popins',sans-serif;
            padding: min(0.8575em,3vw) min(.6875em,5vw);
            text-shadow: calc((var(--lg) - min(.6875em,5vw) * 2.25) * -1) 0 0 transparent
        }
    }

    & input:not(:is(.qty-value,[type="radio"],[type="checkbox"],[type="button"],[type="submit"],[type="image"],[type="file"])),& select,& textarea {
        width: 100%;
        outline: none;
        border-radius: 5px;
        height: min(40px, 13vw);
        border: 1px solid #696C6D;
        background-color: #ffffff;
        font-size: clamp(min(13px,3vw),1vw,14px);
        padding: min(0.7em, 2vw) min(1em, 2.5vw);
        &:is([multiple="multiple"]) {height: auto}

        &::-webkit-input-placeholder {
            font: inherit;
            color: #696C6D;
            text-align: left;
        }

        &::-moz-placeholder {
            font: inherit;
            color: #696C6D;
            text-align: left;
        }

        &::-ms-input-placeholder {
            font: inherit;
            color: #696C6D;
            text-align: left;
        }
        
        &::placeholder {
            font: inherit;
            color: #696C6D;
            text-align: left;
        }

        &:is(textarea) {
            width: 100%;
            resize: none;
            font-family: inherit;
            height: min(80px, 20vw)!important
        }
    }

    & label:not([class]):has(>input[type="radio"]),.accept {
        position:relative;
        display: flex;
        column-gap: min(1rem, 3vw)
    }

    & .accept {
        font-weight: 400;
        line-height: 1.5;
        font-size: min(14px, 4vws)
    }

    & :is(.label-form,label:not(:is([class],:has(input[type="radio"])))) {
        font-weight:500;
        font-size: min(20px, 4vw);
        & span {
            font-weight: 400;
            font-size: min(20px, 3.5vw)
        }
    }

    /* accordion */
    & .accordion {
        display: flex;
        flex-direction: column;
        row-gap: min(0.3em, 3vw);

        & .accordion-item {
            position: relative;
            display: grid;
            border-radius: 5px;
            transition: all .3s;
            grid-template-rows: 2.1em 0fr;
            border: 1px solid hsl(from #696C6D h s l / .1);
            padding: min(.9em, 3vw) min(1.3em, 5vw);

            &:has( input:checked) {grid-template-rows: 2.1em 1fr;}

            & .accordion-head {
                display: flex;
                color: initial;
                cursor: pointer;
                align-items: center;
                column-gap: min(20px, 5vw);
                justify-content: space-between;
                & * {font-size: clamp(min(11px, 3.5vw), 1vw, 12px);}

                & .accordion-btn {
                    display: grid;
                    flex: 0 0 auto;
                    aspect-ratio: 1/1;
                    align-content: center;
                    width: min(1em, 3vw);
                    &::before,
                    &::after {
                       position: relative;
                       content: '';
                       width: 100%;
                       height: 2px;
                       background-color: currentColor;     
                    }
                    &::after {
                        rotate: -90deg;
                        margin-top: -2px;
                        transition: all .3s;
                    }
                    /* transition: all .3s; */
                    /* background-color: currentcolor;
                    -webkit-mask-repeat: no-repeat;
                    mask-repeat: no-repeat;
                    -webkit-mask-size: contain;
                    mask-size: contain;
                    -webkit-mask-position: center;
                    mask-position: center;
                    -webkit-mask-image: url(assets/images/angle-down.svg);
                    mask-image: url(assets/images/angle-down.svg); */
                    &:has( input:checked)::after {rotate: 0deg;}
                }
            }

            & .accorrdion-body {
                overflow: hidden;
                transition: all .3s;
                font-size: clamp(min(11px, 3.5vw), 1vw, 11px);

                &:is(.accordion-item:has( input:checked) &) {
                    padding-top: min(15px, 5vw);
                }
            }
            @media screen and (width >= 1000px) {
                & {
                    grid-template-rows: 1.1em 0fr;
                    &:has( input:checked) {grid-template-rows: 1.1em 1fr;}
                }
            }
        }
    }
    /* sc1 */
    & .sc1 {
        position: relative;
        & > picture {
            position: absolute;
            inset: 0;
            pointer-events: none;
            /* inset: 0 0 0 calc((100vw - min(1170px,90vw)) / 4); */
            & img {
                mask: linear-gradient(90deg,rgba(0, 0, 0, 0) 40%, rgba(0, 0, 0, 1) 60%, rgba(0, 0, 0, 1) 70%) left center / cover no-repeat;
            }
            & + * {
                position: relative;
                z-index: 1;
            }
        }
        & .row {
            column-gap: 10%;
            padding-block: min(5em,10vw);
            & .text {
                row-gap: min(1em,5vw);
                flex: 1 1 max(min(400px,80vw),50%);
                & h1 {font-size: clamp(min(30px,8vw),2vw,32px);}
                & .location {
                    color: #7ab036;
                    font-weight: 600;
                    text-transform: uppercase;
                    font-family: "Poppins", sans-serif;
                    font-size: clamp(min(15px,6vw),1.2vw,17px);
                }
                & .lst {
                    display: grid;
                    gap: min(1em,3vw);
                    grid-template-columns: repeat(auto-fill, minmax(max(min(200px,30vw), 20%), 1fr));
                    & li[style^="--icn-before:"] {
                        font-weight: 600;
                        align-items: center;
                        font-size: clamp(min(13px,3vw),1vw,14px);
                        &::before {
                            color: #7ab036;
                            padding: min(1em,5vw);
                        }
                    }
                    @media screen and (width >= 1200px) {
                        & {display: flex;}
                    }
                }
                & .note {
                    font-size: clamp(min(13px,3vw),1vw,14px);
                    &::before {background-color: #7ab036;}
                }
                & .info {font-size: clamp(min(11px,3vw),1vw,12px);}
                & .btn-devis,
                & .btn-tel {
                    cursor: pointer;
                    font-weight: 600;
                    text-transform: uppercase;
                    border: 1px solid #7ab036;
                    border-radius: min(5px,4vw);
                    padding: min(10px,5vw) min(20px,7vw);
                    font-size: clamp(min(13px,3vw),1vw,14px);
                }
                & .btn-devis {
                    color: #ffffff;
                    background-color: #7ab036;
                }
                & .btn-tel {
                    color: #696C6D;
                    border-color: #696C6D;
                    background-color: transparent;
                }
            }
            & .form {
                padding: min(2em,5vw);
                background-color: #ffffff;
                border-radius: min(10px,5vw);
                flex: 1 1 max(min(200px,80vw),30%);
                & .row {
                     padding-block:5px;
                }
                & .caldera-grid {
                    margin-top: 0px;
                }
                & .flex {
                    row-gap: min(.3em,3vw);
                    & .text {
                        row-gap: min(.3em,4vw);
                        font-size: clamp(min(13px,3vw),1vw,14px);
                        & .title {
                            text-transform: uppercase;
                            font-size: clamp(min(20px,8vw),1.2vw,22px);
                        }
                    }
                    & [type="submit"] {
                        width: 100%;
                        cursor: pointer;
                        font-weight: 600;
                        color: #ffffff;
                        text-align: center;
                        text-transform: uppercase;
                        background-color: #7ab036;
                        border: 1px solid #7ab036;
                        border-radius: min(5px,4vw);
                        padding: min(10px,5vw) min(20px,7vw);
                        font-size: clamp(min(13px,3vw),1vw,14px);
                    }
                    & .info {
                        width: 100%;
                        justify-content: center;
                        font-size: clamp(min(13px,3vw),1vw,14px);
                    }
                }
            }
        }
    }
    & .sc2 {
        background-color: #2a373f;
        & > div {
            color: #ffffff;
            padding-block: min(2em,10vw);
            & .lst {
                display: flex;
                flex-wrap: wrap;
                gap: min(1em,5vw) min(1em,5vw);
                justify-content: space-between;
                font-size: clamp(min(13px,3vw),1vw,14px);
                & [style^="--icn-before"]::before {
                    position: relative;
                    content: "";
                    display: block;
                    transition: initial;
                    pointer-events: none;
                    padding: min(1.5em, 5vw);
                    background-color: currentcolor;
                }
                & .btn {
                    position: relative;
                    padding: 5px 1em;
                    border-radius: 5px;
                    font-weight: 600;
                    border: 1px solid currentColor;
                }
            }
        }
    }
    & .sc3 {
        & > .row {
            gap: min(2em,5vw) 2%;
            padding-block: min(5em,10vw);
            font-size: clamp(min(13px,3.8vw),1vw,14px);
            & > .flex {
                gap: min(2em,5vw) 2%;
                /* padding-block: min(5em,10vw); */
                flex: 1 1 max(min(300px,80vw),65%);
                & .first-title {
                    color: #7ab036;
                    font-weight: 600;
                    text-transform: uppercase;
                    font-family: "Poppins", sans-serif;
                    font-size: clamp(min(15px,6vw),1.2vw,16px);
                    & + .title {
                        position: relative;
                        margin-top: calc(min(.3em, 1vw) * -1);
                    }
                }
                & .title {font-size: clamp(min(25px,8vw),2vw,28px);}
                & .card {
                    display: grid;
                    flex: 1 1 100%;
                    gap: min(1.5em,3vw) min(.7em,5vw);
                    grid-template-columns: repeat(auto-fill, minmax(max(min(120px,80vw), 12%), 1fr));
                    & li {
                        position: relative;
                        display: flex;
                        text-align: center;
                        transition: all .3s;
                        align-items: center;
                        row-gap: min(.4em,5vw);
                        flex-direction: column;
                        border-radius: min(1em,5vw);
                        padding: min(1.5em,6vw) min(.5em,5vw);
                        font-size: clamp(min(11px,3.5vw),1vw,11px);
                        border: 1px solid hsl(from #696C6D h s l/.1);
                        &:hover {
                            color: #ffffff;
                            background-color: #2a373f;
                        }
                        & .title {
                            font-weight: 600;
                            font-size: clamp(min(12px,3.5vw),1vw,13px);
                            & + p {
                                display: -webkit-box;
                                -webkit-line-clamp: 3;
                                -webkit-box-orient: vertical;
                                overflow: hidden;
                            }
                        }
                        & [style^="--img:"] {
                           position: relative;
                           display: block;
                           max-width: max-content;
                           &::before {
                            position: relative;
                            width: 0;
                            height: 0;
                            content: '';
                            display: block;
                            padding: min(1.8em,5vw);
                            background: var(--img) center/contain no-repeat;
                           }
                        }
                        & > p:has( .btn) {margin-top: auto;}
                        & .btn {
                            width: 100%;
                            cursor: pointer;
                            color: #7ab036;
                            font-weight: 600;
                            align-items: center;
                            font-size: inherit;
                            display: inline-flex;
                            justify-content: center;
                            text-transform: uppercase;
                            column-gap: min(.5em, 3vw);
                            &::after {
                                position: relative;
                                content: "";
                                display: block;
                                transition: initial;
                                pointer-events: none;
                                padding: min(.6em, 5vw);
                                background-color: currentcolor;
                                -webkit-mask: url(images/arrow.svg) center / contain no-repeat;
                                mask: url(images/arrow.svg) center / contain no-repeat;
                            }
                        }
                    }
                }
                & > .text {
                    flex: 1 1 max(min(200px,80vw),40%);
                    
                    & .location {
                        align-items: flex-start;
                        &::before {
                            color: #7ab036;
                            padding: min(1em, 5vw);
                        }
                    }
                }
                & > div:has( iframe) {
                    flex: 1 1 max(min(200px,80vw),15%);
                    & iframe {
                        width: 100%;
                        height: auto;
                        aspect-ratio: 1/0.9;
                        border-radius: min(1em,5vw);
                    }
                }
                & > .lst {
                    height: max-content;
                    border-radius: min(1em,5vw);
                    flex: 1 1 max(min(200px,80vw),15%);
                    border: 1px solid hsl(from #696C6D h s l/.1);
                    & li {
                        width: 100%;
                        padding: min(0.9em,5vw);
                        border-top: 1px solid hsl(from #696C6D h s l/.1);
                        &::before {
                            color: #7ab036;
                            padding: min(1.4em, 5vw);
                        }
                    }
                }
                & > .ct-reviews {
                    flex: 1 1 max(min(300px,80vw),65%);
                    & .reviews {
                        display: grid;
                        flex: 1 1 100%;
                        gap: min(1.5em,3vw) min(.7em,5vw);
                        grid-template-columns: repeat(auto-fill, minmax(max(min(120px,80vw), 12%), 1fr));
                        & > li {
                            position: relative;
                            display: flex;
                            transition: all .3s;
                            padding: min(1em, 5vw);
                            flex-direction: column;
                            row-gap: min(.8em, 5vw);
                            border-radius: min(1em, 5vw);
                            font-size: clamp(min(11px, 3.5vw), 1vw, 11px);
                            border: 1px solid hsl(from #696C6D h s l / .1);
                            & > div {
                                display: flex;
                                flex: 0 0 auto;
                                margin-top: auto;
                                align-items: center;
                                column-gap: min(1em,5vw);
                                & img {
                                    overflow: hidden;
                                    object-fit: cover;
                                    border-radius: 50%;
                                    width: min(3em,6vw);
                                    height: min(3em,6vw);
                                }
                            }
                        }
                    }
                }
                & > .ct-accordion {
                    flex: 1 1 max(min(200px,80vw),25%);
                    & .btn {
                        cursor: pointer;
                        color: #7ab036;
                        font-weight: 600;
                        display: inline-flex;
                        justify-content: center;
                        text-transform: uppercase;
                        column-gap: min(.5em, 3vw);
                        font-size: clamp(min(11px, 3.5vw), 1vw, 12px);
                        &::after {
                            position: relative;
                            content: "";
                            display: block;
                            transition: initial;
                            pointer-events: none;
                            padding: min(.6em, 5vw);
                            background-color: currentcolor;
                            -webkit-mask: url(images/arrow.svg) center / contain no-repeat;
                            mask: url(images/arrow.svg) center / contain no-repeat;
                        }
                    }
                }
            }
            & aside {
                flex: 1 1 max(min(200px,80vw),20%);
                & .row {
                    gap: min(2em,5vw) 5%;
                    /* padding-block: min(5em,10vw); */
                    & .green-box {
                        color: #ffffff;
                        padding: min(1.5em,5vw);
                        background-color: #7ab036;
                        border-radius: min(10px,5vw);
                        flex: 1 1 max(min(200px,80vw),30%);
                        & .btn {
                            cursor: pointer;
                            color: #7ab036;
                            font-weight: 600;
                            display: inline-flex;
                            justify-content: center;
                            text-transform: uppercase;
                            column-gap: min(.5em, 3vw);
                            background-color: #ffffff;
                            border: 1px solid #ffffff;
                            border-radius: min(5px,4vw);
                            padding: min(10px,5vw) min(20px,7vw);
                            font-size: clamp(min(13px,3vw),1vw,14px);
                            &::after {
                                position: relative;
                                content: "";
                                display: block;
                                transition: initial;
                                pointer-events: none;
                                padding: min(.6em, 5vw);
                                background-color: currentcolor;
                                -webkit-mask: url(images/arrow.svg) center / contain no-repeat;
                                mask: url(images/arrow.svg) center / contain no-repeat;
                            }
                        }
                        & .title {
                            text-transform: uppercase;
                            font-size: clamp(min(20px,8vw),1.2vw,22px);
                        }
                    }
                    & picture {flex: 1 1 max(min(200px,80vw),30%);}
                    & .carte-table {
                        flex: 1 1 max(min(200px,80vw),30%);
                        & table {
                            display: flex;
                            color: #ffffff;
                            text-align: left;
                            padding: min(1.5em,5vw);
                            border-radius: min(10px,5vw);
                            font-size: clamp(min(11px,3.5vw),1vw,12px);
                            background: #3e4952 url(images/carte.webp) calc(100% - min(70px,20vw) / 5) center/min(70px,20vw) no-repeat;
                            & .title {
                                color: #7ab036;
                                font-weight: 600;
                                text-transform: uppercase;
                                font-family: "Poppins", sans-serif;
                                font-size: clamp(min(15px,6vw),1.2vw,16px);
                            }
                        }
                    }
                }
            }
        }
    }
    & .avis {
        width: min(300px,100%);
        object-fit: contain;
    }
    & .acf-map {
        height: 235px;
        border-radius: min(1em, 5vw);
        margin-top: 0;
    }
}
@media screen and (width >= 1200px) {
    & .mob {display: none !important;}
}
@media screen and (width < 1200px) {
    & .desk {display: none !important;}
}