/*!**************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/styles/app.css ***!
  \**************************************************************************************************************/
:root {
    --eco-green: #7CF7B3;
    --eco-green-dark: #35D98A;
    --eco-bg: #FFFFFF;
    --eco-soft-bg: #F4FFF9;
    --eco-border: #D6FBE6;
}

html, body {
    margin: 0;
    padding: 0;
    width: 100%;
    max-width: 100%;
    font-size: 1rem;
    background-color: #D6FBE6!important;
}
.bg-light{
     background-color: #D6FBE6!important;
}
body {
    overflow-x: hidden;
    
}

/* ===== MOBILE MENU ===== */
.mobile-menu {
    position: fixed;
    top: 0;
    left: 0;
    height: 100%;
    width: 280px;
    background: #D6FBE6;
    transform: translateX(-100%);
    transition: transform 0.25s ease;
    z-index: 1050;
    box-shadow: 10px 0 30px rgba(0,0,0,0.15);
    display: flex;
    flex-direction: column;
}

.mobile-menu.active {
    transform: translateX(0);
}

.mobile-menu-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 15px;
    border-bottom: 1px solid #eee;
}

.mobile-menu-body {
    display: flex;
    flex-direction: column;
    padding: 10px;
}

.mobile-menu-body a {
    padding: 12px;
    text-decoration: none;
    color: black;
    border-radius: 8px;
}

.mobile-menu-body a:hover {
    background: #D6FBE6;
}
.burger-green {
    filter: invert(54%) sepia(97%) saturate(1000%) hue-rotate(85deg);
}

.burger-grey {
    filter: grayscale(100%);
}
.modal-backdrop {
    pointer-events: auto !important;
}
@media (max-width: 768px) {
 
    h1 {
        font-size: 1.8rem !important;
    }

    h2 {
        font-size: 1.5rem !important;
    }

    .btn {
        min-height: 48px;
        font-size: 1rem;
    }

    input,
    select,
    textarea {
        min-height: 18px !important;
        font-size: 16px !important;
    }

    .container,
    .container-fluid {
        padding-left: 10px;
        padding-right: 10px;
        background-color: #D6FBE6!important;
    }
}
/*!******************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/base_twig/base.css ***!
  \******************************************************************************************************************/
/* =======================
   GLOBAL
======================= */
html, body {
    margin: 0;
    padding: 0;
    width: 100%;
    font-size: 1rem;
    overflow-x: hidden;
}

/* =======================
   NAVBAR
======================= */
.navbar {
    z-index: 1030; /* en dessous des modales Bootstrap */
}

.logo {
    height: 36px;
    width: auto;
}

/* =======================
   LED
======================= */
.led-indicator {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    display: inline-block;
}

.led-off {
    background-color: #adb5bd;
}

.led-on {
    background-color: #5cff8d;
    box-shadow: 0 0 6px #5cff8d;
}

/* =======================
   MENU
======================= */
.top-menu {
    display: flex;
    gap: 20px;
    align-items: center;
}

.top-menu a {
    color: white;
    text-decoration: none;
}

.top-menu a:hover {
    opacity: 0.7;
}

/* état caché PROPRE */
.top-menu.hidden {
    display: none;
}

/* =======================
   MOBILE MENU
======================= */
@media (max-width: 991px) {

    .top-menu {
        position: absolute;
        top: 60px;
        right: 10px;

        flex-direction: column;
        gap: 18px;

        background: darkgray;
        padding: 16px 20px;
        border-radius: 10px;

        font-size: 1.2rem;

        z-index: 1035; /* IMPORTANT : sous modal Bootstrap */
    }
}

/* =======================
   BOOTSTRAP OVERRIDE SAFE
======================= */
.modal {
    z-index: 2050;
}

.modal-backdrop {
    z-index: 2040;
}
/*!*********************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/styles/css/cookie.css ***!
  \*********************************************************************************************************************/
#cookie-banner {
    display: none;
    
}

#cookie-banner.show {
    display: block;
    
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmNzcyIsIm1hcHBpbmdzIjoiOzs7QUFBQTtJQUNJLG9CQUFvQjtJQUNwQix5QkFBeUI7SUFDekIsaUJBQWlCO0lBQ2pCLHNCQUFzQjtJQUN0QixxQkFBcUI7QUFDekI7O0FBRUE7SUFDSSxTQUFTO0lBQ1QsVUFBVTtJQUNWLFdBQVc7SUFDWCxlQUFlO0lBQ2YsZUFBZTtJQUNmLG1DQUFtQztBQUN2QztBQUNBO0tBQ0ssbUNBQW1DO0FBQ3hDO0FBQ0E7SUFDSSxrQkFBa0I7O0FBRXRCOztBQUVBLDRCQUE0QjtBQUM1QjtJQUNJLGVBQWU7SUFDZixNQUFNO0lBQ04sT0FBTztJQUNQLFlBQVk7SUFDWixZQUFZO0lBQ1osbUJBQW1CO0lBQ25CLDRCQUE0QjtJQUM1QixnQ0FBZ0M7SUFDaEMsYUFBYTtJQUNiLHdDQUF3QztJQUN4QyxhQUFhO0lBQ2Isc0JBQXNCO0FBQzFCOztBQUVBO0lBQ0ksd0JBQXdCO0FBQzVCOztBQUVBO0lBQ0ksYUFBYTtJQUNiLDhCQUE4QjtJQUM5QixtQkFBbUI7SUFDbkIsYUFBYTtJQUNiLDZCQUE2QjtBQUNqQzs7QUFFQTtJQUNJLGFBQWE7SUFDYixzQkFBc0I7SUFDdEIsYUFBYTtBQUNqQjs7QUFFQTtJQUNJLGFBQWE7SUFDYixxQkFBcUI7SUFDckIsWUFBWTtJQUNaLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLG1CQUFtQjtBQUN2QjtBQUNBO0lBQ0ksZ0VBQWdFO0FBQ3BFOztBQUVBO0lBQ0ksdUJBQXVCO0FBQzNCO0FBQ0E7SUFDSSwrQkFBK0I7QUFDbkM7QUFDQTs7SUFFSTtRQUNJLDRCQUE0QjtJQUNoQzs7SUFFQTtRQUNJLDRCQUE0QjtJQUNoQzs7SUFFQTtRQUNJLGdCQUFnQjtRQUNoQixlQUFlO0lBQ25COztJQUVBOzs7UUFHSSwyQkFBMkI7UUFDM0IsMEJBQTBCO0lBQzlCOztJQUVBOztRQUVJLGtCQUFrQjtRQUNsQixtQkFBbUI7UUFDbkIsbUNBQW1DO0lBQ3ZDO0FBQ0osQzs7OztBQzFHQTs7eUJBRXlCO0FBQ3pCO0lBQ0ksU0FBUztJQUNULFVBQVU7SUFDVixXQUFXO0lBQ1gsZUFBZTtJQUNmLGtCQUFrQjtBQUN0Qjs7QUFFQTs7eUJBRXlCO0FBQ3pCO0lBQ0ksYUFBYSxFQUFFLHFDQUFxQztBQUN4RDs7QUFFQTtJQUNJLFlBQVk7SUFDWixXQUFXO0FBQ2Y7O0FBRUE7O3lCQUV5QjtBQUN6QjtJQUNJLFdBQVc7SUFDWCxZQUFZO0lBQ1osa0JBQWtCO0lBQ2xCLHFCQUFxQjtBQUN6Qjs7QUFFQTtJQUNJLHlCQUF5QjtBQUM3Qjs7QUFFQTtJQUNJLHlCQUF5QjtJQUN6QiwyQkFBMkI7QUFDL0I7O0FBRUE7O3lCQUV5QjtBQUN6QjtJQUNJLGFBQWE7SUFDYixTQUFTO0lBQ1QsbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0ksWUFBWTtJQUNaLHFCQUFxQjtBQUN6Qjs7QUFFQTtJQUNJLFlBQVk7QUFDaEI7O0FBRUEsc0JBQXNCO0FBQ3RCO0lBQ0ksYUFBYTtBQUNqQjs7QUFFQTs7eUJBRXlCO0FBQ3pCOztJQUVJO1FBQ0ksa0JBQWtCO1FBQ2xCLFNBQVM7UUFDVCxXQUFXOztRQUVYLHNCQUFzQjtRQUN0QixTQUFTOztRQUVULG9CQUFvQjtRQUNwQixrQkFBa0I7UUFDbEIsbUJBQW1COztRQUVuQixpQkFBaUI7O1FBRWpCLGFBQWEsRUFBRSxxQ0FBcUM7SUFDeEQ7QUFDSjs7QUFFQTs7eUJBRXlCO0FBQ3pCO0lBQ0ksYUFBYTtBQUNqQjs7QUFFQTtJQUNJLGFBQWE7QUFDakIsQzs7OztBQ2pHQTtJQUNJLGFBQWE7O0FBRWpCOztBQUVBO0lBQ0ksY0FBYzs7QUFFbEIsQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL2Fzc2V0cy9zdHlsZXMvYXBwLmNzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvYmFzZV90d2lnL2Jhc2UuY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zdHlsZXMvY3NzL2Nvb2tpZS5jc3MiXSwic291cmNlc0NvbnRlbnQiOlsiOnJvb3Qge1xyXG4gICAgLS1lY28tZ3JlZW46ICM3Q0Y3QjM7XHJcbiAgICAtLWVjby1ncmVlbi1kYXJrOiAjMzVEOThBO1xyXG4gICAgLS1lY28tYmc6ICNGRkZGRkY7XHJcbiAgICAtLWVjby1zb2Z0LWJnOiAjRjRGRkY5O1xyXG4gICAgLS1lY28tYm9yZGVyOiAjRDZGQkU2O1xyXG59XHJcblxyXG5odG1sLCBib2R5IHtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgIGZvbnQtc2l6ZTogMXJlbTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNENkZCRTYhaW1wb3J0YW50O1xyXG59XHJcbi5iZy1saWdodHtcclxuICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRDZGQkU2IWltcG9ydGFudDtcclxufVxyXG5ib2R5IHtcclxuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcclxuICAgIFxyXG59XHJcblxyXG4vKiA9PT09PSBNT0JJTEUgTUVOVSA9PT09PSAqL1xyXG4ubW9iaWxlLW1lbnUge1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIHdpZHRoOiAyODBweDtcclxuICAgIGJhY2tncm91bmQ6ICNENkZCRTY7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xyXG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMjVzIGVhc2U7XHJcbiAgICB6LWluZGV4OiAxMDUwO1xyXG4gICAgYm94LXNoYWRvdzogMTBweCAwIDMwcHggcmdiYSgwLDAsMCwwLjE1KTtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG59XHJcblxyXG4ubW9iaWxlLW1lbnUuYWN0aXZlIHtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcclxufVxyXG5cclxuLm1vYmlsZS1tZW51LWhlYWRlciB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIHBhZGRpbmc6IDE1cHg7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VlZTtcclxufVxyXG5cclxuLm1vYmlsZS1tZW51LWJvZHkge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBwYWRkaW5nOiAxMHB4O1xyXG59XHJcblxyXG4ubW9iaWxlLW1lbnUtYm9keSBhIHtcclxuICAgIHBhZGRpbmc6IDEycHg7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICBjb2xvcjogYmxhY2s7XHJcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XHJcbn1cclxuXHJcbi5tb2JpbGUtbWVudS1ib2R5IGE6aG92ZXIge1xyXG4gICAgYmFja2dyb3VuZDogI0Q2RkJFNjtcclxufVxyXG4uYnVyZ2VyLWdyZWVuIHtcclxuICAgIGZpbHRlcjogaW52ZXJ0KDU0JSkgc2VwaWEoOTclKSBzYXR1cmF0ZSgxMDAwJSkgaHVlLXJvdGF0ZSg4NWRlZyk7XHJcbn1cclxuXHJcbi5idXJnZXItZ3JleSB7XHJcbiAgICBmaWx0ZXI6IGdyYXlzY2FsZSgxMDAlKTtcclxufVxyXG4ubW9kYWwtYmFja2Ryb3Age1xyXG4gICAgcG9pbnRlci1ldmVudHM6IGF1dG8gIWltcG9ydGFudDtcclxufVxyXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcclxuIFxyXG4gICAgaDEge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS44cmVtICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgaDIge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS41cmVtICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgLmJ0biB7XHJcbiAgICAgICAgbWluLWhlaWdodDogNDhweDtcclxuICAgICAgICBmb250LXNpemU6IDFyZW07XHJcbiAgICB9XHJcblxyXG4gICAgaW5wdXQsXHJcbiAgICBzZWxlY3QsXHJcbiAgICB0ZXh0YXJlYSB7XHJcbiAgICAgICAgbWluLWhlaWdodDogMThweCAhaW1wb3J0YW50O1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTZweCAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG5cclxuICAgIC5jb250YWluZXIsXHJcbiAgICAuY29udGFpbmVyLWZsdWlkIHtcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XHJcbiAgICAgICAgcGFkZGluZy1yaWdodDogMTBweDtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRDZGQkU2IWltcG9ydGFudDtcclxuICAgIH1cclxufSIsIi8qID09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIEdMT0JBTFxyXG49PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5odG1sLCBib2R5IHtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGZvbnQtc2l6ZTogMXJlbTtcclxuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcclxufVxyXG5cclxuLyogPT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgTkFWQkFSXHJcbj09PT09PT09PT09PT09PT09PT09PT09ICovXHJcbi5uYXZiYXIge1xyXG4gICAgei1pbmRleDogMTAzMDsgLyogZW4gZGVzc291cyBkZXMgbW9kYWxlcyBCb290c3RyYXAgKi9cclxufVxyXG5cclxuLmxvZ28ge1xyXG4gICAgaGVpZ2h0OiAzNnB4O1xyXG4gICAgd2lkdGg6IGF1dG87XHJcbn1cclxuXHJcbi8qID09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIExFRFxyXG49PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG4ubGVkLWluZGljYXRvciB7XHJcbiAgICB3aWR0aDogMTBweDtcclxuICAgIGhlaWdodDogMTBweDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxufVxyXG5cclxuLmxlZC1vZmYge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2FkYjViZDtcclxufVxyXG5cclxuLmxlZC1vbiB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWNmZjhkO1xyXG4gICAgYm94LXNoYWRvdzogMCAwIDZweCAjNWNmZjhkO1xyXG59XHJcblxyXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBNRU5VXHJcbj09PT09PT09PT09PT09PT09PT09PT09ICovXHJcbi50b3AtbWVudSB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZ2FwOiAyMHB4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxufVxyXG5cclxuLnRvcC1tZW51IGEge1xyXG4gICAgY29sb3I6IHdoaXRlO1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG59XHJcblxyXG4udG9wLW1lbnUgYTpob3ZlciB7XHJcbiAgICBvcGFjaXR5OiAwLjc7XHJcbn1cclxuXHJcbi8qIMOpdGF0IGNhY2jDqSBQUk9QUkUgKi9cclxuLnRvcC1tZW51LmhpZGRlbiB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG59XHJcblxyXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBNT0JJTEUgTUVOVVxyXG49PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5AbWVkaWEgKG1heC13aWR0aDogOTkxcHgpIHtcclxuXHJcbiAgICAudG9wLW1lbnUge1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB0b3A6IDYwcHg7XHJcbiAgICAgICAgcmlnaHQ6IDEwcHg7XHJcblxyXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICAgZ2FwOiAxOHB4O1xyXG5cclxuICAgICAgICBiYWNrZ3JvdW5kOiBkYXJrZ3JheTtcclxuICAgICAgICBwYWRkaW5nOiAxNnB4IDIwcHg7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcclxuXHJcbiAgICAgICAgZm9udC1zaXplOiAxLjJyZW07XHJcblxyXG4gICAgICAgIHotaW5kZXg6IDEwMzU7IC8qIElNUE9SVEFOVCA6IHNvdXMgbW9kYWwgQm9vdHN0cmFwICovXHJcbiAgICB9XHJcbn1cclxuXHJcbi8qID09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIEJPT1RTVFJBUCBPVkVSUklERSBTQUZFXHJcbj09PT09PT09PT09PT09PT09PT09PT09ICovXHJcbi5tb2RhbCB7XHJcbiAgICB6LWluZGV4OiAyMDUwO1xyXG59XHJcblxyXG4ubW9kYWwtYmFja2Ryb3Age1xyXG4gICAgei1pbmRleDogMjA0MDtcclxufSIsIiNjb29raWUtYmFubmVyIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICBcclxufVxyXG5cclxuI2Nvb2tpZS1iYW5uZXIuc2hvdyB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIFxyXG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9*/