/* ====== RESET ====== */
@font-face{font-family:"Inter";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/Inter-Regular.woff2") format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:800;font-display:swap;src:url("../fonts/Inter-ExtraBold.woff2") format("woff2")}
:root {
  --main-font: "Inter",-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI","Helvetica Neue",Arial,sans-serif;
  --main-color: #9DAE46;
  --second-color: #23311F;
  --hero-min-vh: 60vh;
  --hero-pt: 100px;
  --hero-pb: 50px;
  --ss-hero-pt: 65px;
  --ss-hero-pb: 35px;
  --ss-hero-mt: 70px;
  --fs-h1: clamp(2.25rem, 1.8rem + 2vw, 4rem);
  --fs-h2: clamp(1.75rem, 1.45rem + 1.2vw, 2.5rem);
  --fs-h3: 1.1rem;
  --fs-h4: clamp(1.8rem, 1.05rem + 0.4vw, 2rem);
  --fs-h5: clamp(1rem, 0.95rem + 0.2vw, 1.2rem);
  --fs-h6: 1rem;
  --border-radius-xl: 20px;
  --border-radius-sm: 5px;
  --starter-topbar-height: 35px;
}
body.has-topbar{
  --hero-min-vh: 70vh;
  --hero-pt: 150px;
  --hero-pb: 20px;
  --ss-hero-pt: 90px;
  --ss-hero-mt: 70px;
}
@media (max-width:1024px){
  :root {--ss-hero-mt: 50px}
  body.has-topbar{--ss-hero-mt: 50px}
}
*,*::before,*::after {box-sizing: border-box;margin:0;padding:0}
::selection {color: white;background: var(--main-color)}
html,body {scroll-padding-top: 70px;-webkit-tap-highlight-color: transparent;font-family: var(--main-font);background: #fff;color:#1c1c1c}
html.no-scroll,body.no-scroll {overflow: hidden}
html {scroll-behavior: smooth;scrollbar-width: thin; scrollbar-color: #666 #222}
@media (prefers-reduced-motion: reduce) {html {scroll-behavior: auto}}

/* ------ Titre ------ */
h1,h2,h3,h4,h5,h6 {line-height: 1.2;font-weight: 700}
h1 {font-size: var(--fs-h1)}
h2,.ss-hero h1 {font-size: var(--fs-h2)}
h3 {font-size: var(--fs-h3)}
h4 {font-size: var(--fs-h4)}
h5 {font-size: var(--fs-h5)}
h6 {font-size: var(--fs-h6)}

/* ------ Texte ------ */
p {font-size:1rem;line-height: 1.8}
p.small {font-size:.9rem}
p.big {font-size:1.1rem}
p.border {border-left: 2px solid var(--main-color);padding-left: 1rem;}
.center {text-align: center}
.sr-only {position: absolute;width: 1px;height: 1px;padding: 0;margin: -1px;overflow: hidden;clip: rect(0, 0, 0, 0);white-space: nowrap;border: 0}

/* ------ Btn & Link ------ */
a,a:visited,a:hover,a:active {text-decoration: none;color: inherit}
button {border: none;cursor: pointer;font-family: var(--main-font);color: inherit}
a:focus-visible,button:focus-visible {outline: 2px solid var(--main-color);outline-offset: 3px}
.btn,a.btn,button.btn {display:inline-block;font-size: 1rem;font-weight: 700;height: auto;border-radius:  5px;padding: 12px 30px;transition: color 200ms ease-in-out, background 200ms ease-in-out, border 200ms ease-in-out}
.btn-main,a.btn-main,button.btn-main {background: var(--main-color);border: 2px solid var(--main-color);color:#fff}
.btn-main:hover,a.btn-main:hover,button.btn-main:hover {background: #fff;color:var(--main-color)}
.btn-second,a.btn-second,button.btn-second {background: #fff;border: 2px solid var(--main-color);color:var(--main-color)}
.btn-second:hover,a.btn-second:hover,button.btn-second:hover {border: 2px solid #fff}
.btn-white,a.btn-white,button.btn-white {background: #fff;border: 2px solid #fff;color:#1c1c1c}
.btn-white:hover,a.btn-white:hover,button.btn-white:hover {background: transparent;color:#fff}
.btn-white-line,a.btn-white-line,button.btn-white-line {background: transparent;border: 2px solid #fff;color:#fff}
.btn-white-line:hover,a.btn-white-line:hover,button.btn-white-line:hover {background: #fff;color:var(--main-color)}
a.link span {color:var(--main-color)}
a.link {font-size:.9rem;transition: color 200ms ease-in-out}
a.link:hover {color:var(--main-color)}

/* ------ List ul li ------ */
ul li{list-style-type: none;font-size:1rem;color: #1c1c1c;line-height: 1.8}
ul.check li {list-style-image: url('../img/check.svg');margin-left:24px;margin-bottom:10px;padding-left: 5px}
ul.disc li {list-style-type: disc;padding: 10px 0 10px 2px;margin-left:14px;border-bottom: 1px solid rgba(0, 0, 0, .05)}
ul.disc li:last-child {border: none}
ul.disc li::marker {color: var(--main-color)}

/* ------ Images ------ */
picture {display:block;margin:0;padding: 0}
img {max-width:100%;height: auto;display: block}

/* ------ Grid ------ */
.grid {display:grid;width:100%;gap: 1.5rem}
.grid-2 {grid-template-columns: repeat(2, minmax(0, 1fr))}
.grid-3 {grid-template-columns: repeat(3, minmax(0, 1fr))}
.grid-4 {grid-template-columns: repeat(4, minmax(0, 1fr))}
.grid-5 {grid-template-columns: repeat(5, minmax(0, 1fr))}
.grid-6 {grid-template-columns: repeat(6, minmax(0, 1fr))}
@media (max-width: 1024px) {.grid-3,.grid-4,.grid-5,.grid-6 {grid-template-columns: 1fr}}
@media (max-width: 768px) {.grid-2 {grid-template-columns: 1fr}}

/* ------ Padding ------ */
.p1 {padding-block: clamp(0.75rem, 1vw, 1rem)}
.p2 {padding-block: clamp(1rem, 1.5vw, 2rem)}
.p3 {padding-block: clamp(1.5rem, 2vw, 3rem)}
.p4 {padding-block: clamp(2rem, 2.5vw, 4rem)}
.p5 {padding-block: clamp(2.5rem, 3vw, 4.5rem)}
.p6 {padding-block: clamp(3rem, 3.5vw, 6rem)}
.p7 {padding-block: clamp(3.5rem, 4vw, 7rem)}
.p8 {padding-block: clamp(4rem, 4.5vw, 8rem)}
.p9 {padding-block: clamp(4.5rem, 5vw, 9rem)}
.p10 {padding-block: clamp(5rem, 5.5vw, 10rem)}
.p11 {padding-block: clamp(5.5rem, 6vw, 11rem)}
.p12 {padding-block: clamp(6rem, 6.5vw, 12rem)}
.p13 {padding-block: clamp(6.5rem, 7vw, 13rem)}
.p14 {padding-block: clamp(7rem, 7.5vw, 14rem)}
.p15 {padding-block: clamp(7.5rem, 8vw, 15rem)}

/* ------ Container ------ */
.container,.container-fluid,.container-max{box-sizing: border-box;margin: 0 auto}
.container{max-width: 1280px}
.container-fluid{max-width: 1680px}
.container-max{width: 100%;padding-inline: clamp(2rem, 2.5vw, 3rem)}
@media (max-width:1920px){
  .container-fluid{max-width: 1520px}
  .container{max-width: 1280px}
}
@media (max-width:1680px){
  .container {max-width: 1200px}
  .container-fluid{max-width: 1300px}
}
@media (max-width:1366px){
  .container {max-width: 1120px}
  .container-fluid{max-width: 1250px}
}
@media (max-width:1279px){
  .container {max-width: 900px}
  .container-fluid {width: 100%;padding-inline: clamp(2rem, 2.5vw, 3rem)}
}
@media (max-width:1024px){
  .container,.container-fluid,.container-max {width: 100%;padding-inline: clamp(2rem, 2.5vw, 3rem)}
}
@media (max-width:768px){
  .container,.container-fluid,.container-max {padding-inline: clamp(1rem, 5vw, 2rem)}
}

/* ------ Animations ------ */
@keyframes slideDown {from {transform: translateY(-20px);opacity: 0}to{transform: translateY(0);opacity: 1}}
@keyframes slideLeft {from {transform: translateX(-20px);opacity: 0}to{transform: translateX(0);opacity: 1}}
@keyframes fadeSlideUp {from {opacity: 0;transform: translateY(40px);}to {opacity: 1;transform: translateY(0)}}
@keyframes fadeSlideDown {from {opacity: 0;transform: translateY(-40px);} to {opacity: 1;transform: translateY(0)}}
@keyframes fadeIn {from {opacity: 0;} to {opacity: 1}}
[data-ui-animations] [data-motion] {opacity: 0;transform: translate3d(0, 28px, 0);transition: opacity 0.55s ease, transform 0.55s ease;will-change: opacity, transform}
[data-ui-animations] [data-motion].is-visible {opacity: 1;transform: translate3d(0, 0, 0)}

/* ------ Overlay ------ */
#overlay {position: fixed;top: 0;left: 0;width: 100%;height: 100%;backdrop-filter: blur(2px);background: rgba(10,10,10,.22);opacity: 0;display: none;transition: opacity .22s ease}
#overlay.open-modal {display: block;z-index: 998;opacity: 1}
#overlay.open-navbar {display: block;z-index: 996;opacity: 1}
.modal[hidden] {display: none !important}
.modal {position: fixed;inset: 0;display: none;align-items: center;justify-content: center;padding: 24px;z-index: 999;overflow: auto;opacity: 0;pointer-events: none;transition: opacity .22s ease}
.modal.open {display: flex;opacity: 1;pointer-events: auto}
.modal__dialog {position: relative;width: min(1200px, calc(100vw - 40px));max-height: calc(100vh - 40px);overflow: auto;border-radius: 18px;background: #fff;box-shadow: 0 30px 80px rgba(0, 0, 0, 0.28);transform: translateY(12px) scale(.985);opacity: .98;transition: transform .22s ease, opacity .22s ease}
.modal.open .modal__dialog {transform: translateY(0) scale(1);opacity: 1}
.modal .close {position: absolute;top: 18px;right: 18px;width: 48px;height: 48px;border: 0;border-radius: 50%;display: inline-flex;align-items: center;justify-content: center;background: rgba(0, 0, 0, 0.08);color: #111;cursor: pointer;z-index: 5;transition: background .2s ease, color .2s ease}
.modal .close:hover {background: rgba(0, 0, 0, 0.16);color: var(--main-color)}
@media (prefers-reduced-motion: reduce) {
  #overlay,.modal,.modal__dialog {transition: none}
}
@media (max-width: 768px) {
  .modal {padding: 12px}
  .modal__dialog {width: calc(100vw - 24px);max-height: calc(100vh - 24px);border-radius: 14px}
  .modal .close {top: 12px;right: 12px}
}

/* ------ Consentement cookies ------ */
.consent-banner {position:fixed;left:0;right:0;bottom:0;z-index:9998;background:#fff;border-top:3px solid var(--main-color);box-shadow:0 -8px 24px rgba(0,0,0,.12);transform:translateY(110%);transition:transform .25s ease}
.consent-banner.is-visible {transform:translateY(0)}
.consent-banner__inner {max-width:1280px;margin:0 auto;padding:clamp(1rem,2vw,1.4rem) clamp(1rem,3vw,2rem);display:grid;grid-template-columns:1fr auto;align-items:center;gap:clamp(1rem,2vw,2rem)}
.consent-banner__title {margin:0 0 .35rem;font-weight:800;font-size:1.05rem;color:#182018}
.consent-banner__desc {margin:0;font-size:.92rem;line-height:1.55;color:#4d534a}
.consent-banner__desc a {color:var(--main-color);text-decoration:underline}
.consent-banner__actions {display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end}
.consent-banner__btn {flex:0 0 auto;min-width:130px;padding:.55rem 1.05rem;font-size:.9rem}
.consent-modal {position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:clamp(.6rem,2vw,1.4rem);opacity:0;visibility:hidden;transition:opacity .25s ease,visibility 0s linear .25s}
.consent-modal.is-open {opacity:1;visibility:visible;transition:opacity .25s ease}
.consent-modal__backdrop {position:absolute;inset:0;background:rgba(15,22,15,.55);backdrop-filter:blur(2px)}
.consent-modal__dialog {position:relative;z-index:1;width:min(640px,96vw);max-height:min(92vh,720px);overflow:auto;background:#fff;border-radius:14px;box-shadow:0 20px 60px rgba(0,0,0,.35);transform:translateY(16px);transition:transform .25s ease}
.consent-modal.is-open .consent-modal__dialog {transform:translateY(0)}
.consent-modal__head {display:flex;align-items:center;justify-content:space-between;padding:1.1rem 1.4rem;border-bottom:1px solid #eee}
.consent-modal__title {margin:0;font-size:1.15rem;font-weight:800;color:#182018}
.consent-modal__close {background:transparent;border:0;color:#182018;padding:6px;cursor:pointer;border-radius:50%;transition:background .15s ease}
.consent-modal__close:hover,.consent-modal__close:focus-visible {background:#f1f1f1;outline:2px solid var(--main-color);outline-offset:2px}
.consent-modal__body {padding:1.2rem 1.4rem}
.consent-modal__lead {margin:0 0 1rem;font-size:.93rem;line-height:1.55;color:#4d534a}
.consent-modal__lead a {color:var(--main-color);text-decoration:underline}
.consent-modal__list {list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.75rem}
.consent-modal__item {display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 1rem;border:1px solid #eee;border-radius:8px;background:#fafafa}
.consent-modal__item-text {flex:1 1 auto;min-width:0}
.consent-modal__item-text strong {display:block;font-size:1rem;color:#182018;margin-bottom:.25rem}
.consent-modal__item-text span {display:block;font-size:.85rem;line-height:1.45;color:#4d534a}
.consent-modal__foot {display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end;padding:1rem 1.4rem;border-top:1px solid #eee;background:#fafafa}
.consent-toggle {position:relative;display:inline-flex;align-items:center;gap:.5rem;flex:0 0 auto;cursor:pointer}
.consent-toggle--locked {color:#4d534a;font-size:.8rem;font-weight:600;cursor:default;padding:6px 12px;background:#ecedea;border-radius:999px;border:1px solid #d8dad4}
.consent-toggle input[type="checkbox"] {position:absolute;opacity:0;width:0;height:0;pointer-events:none}
.consent-toggle__slider {position:relative;display:inline-block;width:46px;height:26px;background:#cfd1cc;border-radius:999px;transition:background .2s ease}
.consent-toggle__slider::before {content:"";position:absolute;left:3px;top:3px;width:20px;height:20px;background:#fff;border-radius:50%;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .2s ease}
.consent-toggle input[type="checkbox"]:checked + .consent-toggle__slider {background:var(--main-color)}
.consent-toggle input[type="checkbox"]:checked + .consent-toggle__slider::before {transform:translateX(20px)}
.consent-toggle input[type="checkbox"]:focus-visible + .consent-toggle__slider {outline:2px solid var(--main-color);outline-offset:2px}
body.consent-modal-open {overflow:hidden}
.booking-widget__consent {padding:1rem 1.1rem;background:#fafaf6;border:1px dashed #cdd2c2;border-radius:8px;text-align:center;font-size:.92rem;color:#4d534a;display:flex;flex-direction:column;gap:.65rem;align-items:center}
.booking-widget__consent p {margin:0;line-height:1.5}
.booking-widget__consent .btn {width:100%;max-width:320px;justify-content:center}
.booking-widget__consent-hint {font-size:.82rem;opacity:.85}
.booking-widget__consent-hint a {color:var(--main-color);text-decoration:underline}
html.consent-booking-granted .booking-widget__consent {display:none}
.leaflet-consent-placeholder {height:100%;min-height:220px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.9rem;padding:1.5rem;background:linear-gradient(180deg,#f7f4ed 0%,#fff 100%);border:1px dashed #cdd2c2;border-radius:8px;text-align:center;color:#4d534a;font-size:.95rem}
.leaflet-consent-placeholder p {margin:0;max-width:520px;line-height:1.5}
.leaflet-consent-placeholder .btn {min-width:240px;justify-content:center}
html.consent-map-granted .leaflet-consent-placeholder {display:none}
@media (max-width:768px){
  .consent-banner__inner {grid-template-columns:1fr}
  .consent-banner__actions {justify-content:stretch}
  .consent-banner__actions .consent-banner__btn {flex:1 1 100%}
  .consent-modal__item {align-items:flex-start}
  .consent-modal__foot .btn {width:100%}
}

/* ------ scroll-to-top ------ */
#scroll-to-top {position:fixed;background:#000;padding:18px 15px 12px 15px;right: 10px;pointer-events: none;bottom: -50px;z-index: 70;cursor: pointer;transition: bottom .25s ease, opacity .25s ease;border-radius:5px}
#scroll-to-top.is-visible{bottom: 10px;opacity: 1;pointer-events: auto}
#scroll-to-top .arrow {border: solid white;border-width: 0 3px 3px 0;display: block;padding: 4px;transform: rotate(-135deg)}
#scroll-to-top:hover .arrow {border-color: var(--main-color);transition: border-color 0.3s ease-out}
@media (max-width:1024px){#scroll-to-top {display: none}}

/* ------ title ------ */
.title .before{display: inline-flex;align-items: center;gap: 8px;padding: 6px 12px;border-radius: 999px;border: 1px solid rgba(157,174,70,.22);background: rgba(157,174,70,.08);color: #62742a;width: fit-content;margin-bottom: 22px;font-size: .78rem;font-weight: 700;letter-spacing: .08em;text-transform: uppercase}
.title .before::before{content:"";width: 6px;height: 6px;border-radius: 50%;background: currentColor}
.title h2 {color:#1f291e;font-weight:800;font-size: clamp(1.8rem, 3vw, 2.2rem);line-height: 1.35}
.title h3 {color: #4d5a37;font-size: 1rem;font-weight: 600;letter-spacing: normal;text-transform: none;margin-top: 6px;line-height: 1.7}
.title hr {width: 72px;height: 3px;border: none;margin: 18px 0 26px 0;background: var(--main-color)}
.title.center hr {margin: 20px auto 30px auto}
@media (max-width:768px){
  .title .before {font-size: .8rem;margin-bottom: 20px;}
}
/* ------ info-box ------ */
.info-box {display: flex;align-items: flex-start;gap: 1rem;margin-top: 50px;padding: 2rem;border: 1px solid rgba(157,174,70,.24);border-radius: 10px;background: rgba(157,174,70,.08)}
.info-box__icon {flex: 0 0 auto;width: 2.75rem;height: 2.75rem;border-radius: 50%;display: flex;align-items: center;justify-content: center;background: #ffffff;color: #62742a;border: 1px solid rgba(157,174,70,.24);box-shadow: 0 4px 14px rgba(0, 0, 0, 0.05)}
.info-box__content {flex: 1 1 auto}
.info-box__content p {margin: 0;line-height: 1.65;color: #415135}
.info-box__content strong {font-weight: 700}
@media (max-width:768px){
  .info-box {display: flex;flex-direction: column;text-align:justify}
  .info-box__icon {margin: -3.5rem auto 0 auto}
}

/* ------ swiper / gallery ------ */
[data-ui-swiper] {width: 100%;max-width: 100%;min-width: 0;min-height: 320px;border-radius: 14px;display: flex;flex-direction: column;position: relative;overflow: hidden;cursor: grab;user-select: none;touch-action: pan-y;background: #111}
[data-ui-swiper] .swiper-wrapper {display: flex;flex-grow: 1;transition: transform .5s ease;will-change: transform;width: 100%;min-width: 0;height: 100%;touch-action: pan-y}
[data-ui-swiper] .swiper-slide {flex: 0 0 100%;width: 100%;min-width: 100%;height: 100%;overflow: hidden}
[data-ui-swiper] .swiper-slide picture {display: block;width: 100%;height: 100%}
[data-ui-swiper] .swiper-slide img {width: 100%;height: 100%;display: block;object-fit: cover}
[data-ui-swiper] .swiper-button-prev,[data-ui-swiper] .swiper-button-next {position: absolute;top: 50%;transform: translateY(-50%);width: 48px;height: 48px;padding: 0;border: 0;border-radius: 50%;background: rgba(0, 0, 0, 0.22);color: #fff;display: flex;align-items: center;justify-content: center;font-size: 1.4rem;cursor: pointer;z-index: 5;transition: background .2s ease, color .2s ease}
[data-ui-swiper] .swiper-button-prev:hover,[data-ui-swiper] .swiper-button-next:hover {background: rgba(0, 0, 0, 0.5);color: #fff}
[data-ui-swiper] .swiper-button-prev {left: 14px}
[data-ui-swiper] .swiper-button-next {right: 14px}
[data-ui-swiper] .swiper-pagination {position: absolute;left: 0;right: 0;bottom: 16px;text-align: center;z-index: 5}
[data-ui-swiper] .swiper-pagination span {display: inline-block;width: 9px;height: 9px;border-radius: 50%;margin: 0 5px;background: rgba(255, 255, 255, .42);transition: background .2s ease, transform .2s ease;cursor: pointer}
[data-ui-swiper] .swiper-pagination .active {background: #fff;transform: scale(1.1)}
[data-ui-swiper] .swiper-wrapper.grabbing {cursor: grabbing}
#vanilla-lightbox {position: fixed;inset: 0;background: rgba(0, 0, 0, .86);display: flex;justify-content: center;align-items: center;opacity: 0;pointer-events: none;transition: opacity .3s ease;z-index: 9999}
#vanilla-lightbox.active {opacity: 1;pointer-events: auto}
#vanilla-lightbox .lb-overlay {position: absolute;inset: 0}
#vanilla-lightbox .lb-content {position: relative;width: min(80vw, 1280px);height: min(80vh, 820px);display: flex;justify-content: center;align-items: center}
#vanilla-lightbox .lb-image {width: calc(100% - 120px);height: auto;max-height: 100%;object-fit: contain;cursor: grab}
#vanilla-lightbox .lb-image.lb-grabbing {cursor: grabbing}
#vanilla-lightbox .lb-close, #vanilla-lightbox .lb-prev, #vanilla-lightbox .lb-next {position: absolute;z-index: 9;border: 0;border-radius: 50%;display: flex;justify-content: center;align-items: center;cursor: pointer;background: rgba(0, 0, 0, 0.5);color: #fff}
#vanilla-lightbox .lb-close {top: 0;right: 0;width: 50px;height: 50px;font-size: 20px}
#vanilla-lightbox .lb-prev, #vanilla-lightbox .lb-next {top: 50%;transform: translateY(-50%);width: 50px;height: 50px;font-size: 40px;padding: 0 0 5px}
#vanilla-lightbox .lb-prev {left: 0}
#vanilla-lightbox .lb-next {right: 0}
#vanilla-lightbox .lb-prev:hover, #vanilla-lightbox .lb-next:hover, #vanilla-lightbox .lb-close:hover {background: rgba(0, 0, 0, 0.8);color: var(--main-color)}
@media (max-width: 768px) {
  [data-ui-swiper] {min-height: 300px}
  #vanilla-lightbox .lb-content {width: 90vw;height: 70vh}
  #vanilla-lightbox .lb-prev {left: 5px}
  #vanilla-lightbox .lb-next {right: 5px}
  #vanilla-lightbox .lb-close {top: 5px;right: 5px}
}

/* ------ MAP ------ */
#map {height: 500px;border-radius: 10px}
#map .leaflet-tile {filter: grayscale(100%) contrast(95%) brightness(105%)}
#map .leaflet-top,#map .leaflet-bottom.leaflet-right {z-index: 900;}
@media (max-width:768px){
  #map {height: 380px}
}

/* ------ Pages Légales ------ */
#pagelegale {background: #f5f5f5;border-top: 1px solid rgba(99,99,99,.15);padding-bottom: clamp(4rem, 4.5vw, 8rem);margin-top: 100px;}
#pagelegale h2 {margin-top: 40px;}
#pagelegale h3 {margin-top: 40px;}
#pagelegale .title a {margin: 0;display: inline-block;}
@media (max-width:1024px){
  #pagelegale {margin-top: 50px;}
}

/* ------ 404 ------ */
.page-404__hero {margin-top: 100px;min-height: calc(100vh - 240px);display: flex;align-items: center;background: #f5f5f5;}
.page-404__content {max-width: 860px;margin: 0 auto;padding: clamp(28px, 4vw, 54px);background: #fff;border: 1px solid rgba(0,0,0,.08);border-radius: 14px;box-shadow: 0 18px 45px rgba(0,0,0,.08)}
.page-404__content p {max-width: 62ch;margin-inline: auto}
.page-404__content h1 {font-size: clamp(2.3rem, 5vw, 4rem);line-height: 1.04;max-width: 11ch;margin-inline: auto}
.page-404__content h3 {max-width: 34rem;margin-inline: auto}
.page-404__actions {display: flex;flex-wrap: wrap;justify-content: center;gap: 14px;margin-top: 30px}
.page-404__debug {margin-top: 28px;padding: clamp(20px, 2.6vw, 30px);border-radius: 14px;background: #0f1115;color: #dbe7d7}
.page-404__debug summary,.page-404__debug-slugs summary {cursor: pointer;font-weight: 700;color: #fff}
.page-404__debug-meta {display: grid;grid-template-columns: repeat(2, minmax(0, 1fr));gap: 14px;margin: 18px 0}
.page-404__debug-meta article {padding: 16px;border-radius: 10px;background: rgba(255,255,255,.04)}
.page-404__debug-meta strong {display: block;margin-bottom: 8px;color: #fff}
.page-404__debug-meta p {margin: 0;color: rgba(219,231,215,.8)}
.page-404__debug pre {margin-top: 0;padding: 18px;border-radius: 10px;background: rgba(255,255,255,.04);overflow: auto;line-height: 1.55;color: #dbe7d7}
.page-404__debug-slugs {margin-top: 14px}
.page-404__debug-slugs pre {margin-top: 14px;padding: 18px;border-radius: 10px;background: rgba(255,255,255,.04);overflow: auto;line-height: 1.55;color: #dbe7d7}
@media (max-width: 1024px) {
  .page-404__hero {margin-top: 50px;min-height: auto}
  .page-404__debug-meta {grid-template-columns: 1fr}
}
@media (max-width: 768px) {
  .page-404__actions {display: grid;grid-template-columns: 1fr}
  .page-404__actions .btn {width: 100%;text-align: center}
  .page-404__content h1 {max-width: none}
}

/* ------ formulaire ------ */
#formulaire {max-width: 100%}
#formulaire button {margin-top: 20px}
#formulaire .form-group {margin-bottom: 20px}
#formulaire .checkbox-group {display: flex;flex-wrap: wrap;gap: 10px}
#formulaire .checkbox-wrapper {display: flex;align-items: center;gap: 6px;background-color: #333;padding: 12px;border-radius: 4px;font-weight: normal;white-space: nowrap;cursor: pointer}
#formulaire .radio-group {display: flex;flex-wrap: wrap;gap: 10px}
#formulaire .radio-wrapper {display: flex;align-items: center;gap: 6px;background-color: #333;padding: 12px;border-radius: 4px;font-weight: normal;white-space: nowrap;cursor: pointer;color: #fff;transition: color 0.3s;user-select: none;}
#formulaire .radio-wrapper input[type="radio"] {accent-color: var(--main-color)}
#formulaire .radio-wrapper input[type="radio"]:checked + span {color: var(--main-color)}
#formulaire input[type="checkbox"] {accent-color: var(--main-color);width: 16px;height: 16px;cursor: pointer}
#formulaire .radio-wrapper:has(input[type="radio"]:checked) {color: var(--main-color)}
#formulaire input[type="checkbox"]:checked + span {color: var(--main-color)}
#formulaire input.add {margin-top: 5px;}
#formulaire input.add::placeholder {font-size: .8rem;}
input, select, textarea {width: 100%;padding: 12px;color: var(--main-color);border: 1px solid #999;border-radius: 4px;background-color: #eee;font-size: 1em;transition: border-color 0.3s ease;}
input:focus, select:focus, textarea:focus {border-color: var(--main-color);background-color: #fff;outline: none}
#formulaire textarea {height: 150px;resize: vertical}
#formulaire input.error, #formulaire select.error, #formulaire textarea.error,
#formulaire input[aria-invalid="true"], #formulaire select[aria-invalid="true"], #formulaire textarea[aria-invalid="true"] {border-color: red}
#formulaire input.valid, #formulaire select.valid, #formulaire textarea.valid {border-color: #27ae60}
#formulaire label {display: block;margin: 10px 0 5px;font-size: 1em}
#formulaire .error-message {color: red;font-size: 0.75em;margin-top: 6px}
#formulaire .error-message:empty {display: none}
#formulaire button:disabled {background-color: #ccc;cursor: not-allowed}
#formulaire .required {color: red}
#formulaire ul.recap li {color:#fff;padding: 2px 5px}
#formulaire ul.recap strong {color: #f28e22}
#formulaire ul.recap h3 {margin-bottom: 10px;background: #333;color:#999;padding: 10px 10px;border-radius: 5px;font-weight: 700;}
#formulaire ul.recap li small {color:#999;font-weight: 400;font-style: italic}
#formulaire #submitBtn {position: relative; display: inline-flex; align-items: center; gap: 10px}
#formulaire .btn-loader {display: none;border: 3px solid #f3f3f3;border-top: 3px solid var(--main-color);border-radius: 50%;width: 18px;height: 18px;animation: spin 0.8s linear infinite}
#formulaire.is-loading .btn-loader {display: inline-block}
#formulaire.is-loading .btn-text {opacity: .7}
#formulaire.is-loading input,#formulaire.is-loading textarea,#formulaire.is-loading button {pointer-events: none}
#formulaire.is-loading { opacity: .7}
#feedback {max-width: 100%;margin-top: 40px;}
#feedback.feedback-message[hidden] {display: none}
#feedback.feedback-message {padding: 40px;border-radius: 8px;font-size: 1.1em;width: 100%;opacity: 0;transition: opacity 0.6s ease}
#feedback.feedback-message.visible {opacity: 1}
#feedback.feedback-message h2 {margin-bottom: 20px;font-size: 1.5rem}
#feedback.feedback-message p {margin-bottom: 0}
#feedback.feedback-message small {display: block;margin-top: 20px}
#feedback.feedback-message:focus-visible {outline: 2px solid var(--main-color);outline-offset: 4px}
#feedback.feedback-message.success {background-color: #dff5dd;border: 1px solid #27ae60;color: #2c662d}
#feedback.feedback-message.success h2 {color:#27ae60}
#feedback.feedback-message.error {background-color: #fdecea;border: 1px solid #e74c3c;color: #a94442}
@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
/*
|
|
|
|
|
|
|
|
|
|
*/
/* ====== TOPBAR ======
   Active automatiquement quand `layout.topbar` vaut true dans config/site.php. */
#header #top-bar {width: 100%;height: var(--starter-topbar-height);position: fixed;top: 0;left: 0;z-index: 1000;background: #1c1c1c;color: #fff;transform: translateY(0);transition: transform 200ms ease-in-out;will-change: transform}
#header #top-bar.stickyOFF {transform: translateY(0)}
#header #top-bar.stickyON {transform: translateY(calc(var(--starter-topbar-height) * -1))}
#header #top-bar .grid-2 {height:100%;grid-template-columns:1fr auto;align-items:center;gap:20px}
#header #top-bar nav {min-width:0}
#header #top-bar ul {display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin:0;padding:0}
#header #top-bar .contact-links {justify-content:flex-end}
#header #top-bar li {display:flex;align-items:center;gap:5px;color:#fff;font-size:.76rem;line-height:1;white-space:nowrap}
#header #top-bar li i {font-style:italic;font-weight:300;color:rgba(255,255,255,.78);letter-spacing: -.03rem}
#header #top-bar a {display:inline-flex;align-items:center;gap:5px;color:#fff;letter-spacing: -.03rem;font-size:.76rem;font-weight:500;line-height:1;transition:color 200ms ease-in-out}
#header #top-bar a:hover,
#header #top-bar a.actif {color:var(--main-color)}
#header #top-bar svg {width:14px;height:14px;flex:0 0 auto;color:var(--main-color)}
@media (max-width:1024px){
  #header #top-bar {display:none}
}

/* ====== LANGUAGE SWITCHER ======
   S'affiche uniquement quand `i18n.enabled` vaut true. */
.language-switcher {position:relative;display:inline-block;line-height:1}
.language-switcher__current {display:inline-flex;align-items:center;gap:7px;min-height:28px;padding:5px 8px;border:1px solid rgba(157,174,70,.25);border-radius:999px;background:rgba(255,255,255,.08);cursor:pointer;list-style:none;transition:background 200ms ease-in-out,border-color 200ms ease-in-out}
.language-switcher__current::-webkit-details-marker {display:none}
.language-switcher__current:hover {border-color:var(--main-color);background:rgba(157,174,70,.12)}
.language-switcher__chevron {width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);margin-top:-3px;transition:transform 180ms ease-in-out}
.language-switcher[open] .language-switcher__chevron {transform:rotate(-135deg);margin-top:3px}
.language-switcher__dropdown {position:absolute;top:calc(100% + 8px);right:0;z-index:1002;min-width:150px;padding:7px;border:1px solid rgba(0,0,0,.08);border-radius:12px;background:#fff;box-shadow:0 18px 35px rgba(0,0,0,.16);display:grid;gap:3px}
.language-switcher__link {display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:9px;color:#1c1c1c;font-size:.82rem;font-weight:800;line-height:1.1;white-space:nowrap;transition:color 200ms ease-in-out,background 200ms ease-in-out}
.language-switcher__link:hover,
.language-switcher__link.actif {color:var(--second-color);background:rgba(157,174,70,.14)}
.language-switcher__name {display:block}
.language-switcher__eyebrow,
.language-switcher__current-name {display:none}
.language-flag {position:relative;display:inline-block;flex:0 0 auto;width:24px;height:16px;border-radius:3px;overflow:hidden;background:#f5f5f5;box-shadow:inset 0 0 0 1px rgba(0,0,0,.14)}
.language-flag--fr {background:linear-gradient(90deg,#0055a4 0 33.333%,#fff 33.333% 66.666%,#ef4135 66.666% 100%)}
.language-flag--en {background:#fff}
.language-flag--en::before,
.language-flag--en::after {content:"";position:absolute;left:0;top:0;right:0;bottom:0;margin:auto;background:#cf142b}
.language-flag--en::before {height:4px}
.language-flag--en::after {width:4px}
#header #top-bar .language-switcher-item {gap:0}
#header #top-bar .language-switcher__current {min-height:24px;padding:3px 7px;color:#fff;background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.16)}
#header #top-bar .language-switcher__dropdown .language-switcher__link {color:#1c1c1c;font-size:.82rem}
#header #top-bar .language-switcher__dropdown .language-switcher__link:hover,
#header #top-bar .language-switcher__dropdown .language-switcher__link.actif {color:var(--second-color)}
header .menu_content nav ul.main-menu > li.language-switcher-item--menu {display:inline-flex;align-items:center;height:100px;padding:0 10px;vertical-align:middle}
header #menu.stickyON .menu_content nav ul.main-menu > li.language-switcher-item--menu {height:70px}
header .language-switcher--menu {color:var(--second-color)}
header.centered-logo .menu-side-panel__contact .language-switcher--panel {display:flex;margin-top:16px;color:#fff}
header.centered-logo .menu-side-panel__contact .language-switcher--panel .language-switcher__dropdown {left:0;right:auto}
@media (min-width:1025px){
  body.has-topbar header .menu_content nav ul.main-menu > li.language-switcher-item--mobile-only,
  body.has-topbar header #menu .menu_content nav ul.main-menu > li.language-switcher-item--mobile-only {display:none}
}
@media (max-width:1024px){
  header .menu_content nav ul.main-menu > li.language-switcher-item--menu,
  header #menu.stickyON .menu_content nav ul.main-menu > li.language-switcher-item--menu {display:block;height:auto;width:350px;padding:0;justify-content:flex-start;border-bottom:1px solid #eee;background:#fff}
  header .language-switcher--menu {display:block;width:100%;padding:0;border:0;border-radius:0;background:transparent}
  header .language-switcher--menu .language-switcher__current {display:flex;align-items:center;gap:.65rem;width:100%;padding:15px 20px;border:0;border-radius:0;background:transparent;color:#333;font-size:.9rem;font-weight:500}
  header .language-switcher--menu .language-switcher__eyebrow {display:inline-block;margin-right:.35rem;color:var(--main-color);font-size:.68rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
  header .language-switcher--menu .language-switcher__current-name {display:inline-block;flex:1 1 auto;color:#333}
  header .language-switcher--menu .language-switcher__chevron {margin-left:auto}
  header .language-switcher--menu[open] .language-switcher__chevron {transform:rotate(180deg);margin-top:-3px}
  header .language-switcher__dropdown {position:static;left:auto;right:auto;display:flex;flex-direction:column;width:100%;padding:0;background:#f7f4ed;box-shadow:none;border:0;border-top:1px solid #eee}
  header .language-switcher__dropdown .language-switcher__link {display:flex;align-items:center;gap:.55rem;padding:10px 20px 10px 32px;color:#333;font-size:.85rem;border-bottom:1px solid rgba(0,0,0,.05)}
  header .language-switcher__dropdown .language-switcher__link:last-child {border-bottom:0}
}

/* ====== MENU ====== */
header.classic #menu {width: 100%;top:0;height:100px;position: fixed;z-index: 999;border-top:3px solid var(--main-color);background: #fff;transform: translateY(0);transition:height 200ms ease-in-out,transform 200ms ease-in-out,box-shadow 200ms ease-in-out;will-change: transform, height}
header.classic #menu.stickyOFF {height: 100px;transform: translateY(0);box-shadow: none}
header.classic #menu.stickyON {height: 70px;transform: translateY(0);box-shadow: 0px 0px 20px rgba(0, 0, 0, .15)}
body.has-topbar header.classic #menu:not(.stickyON),
body.has-topbar header.classic #menu.stickyOFF {transform: translateY(var(--starter-topbar-height))}
header.classic #menu .grid-menu {grid-template-columns: 182px 1fr;height:100%;gap:0}
header.classic #menu .grid-menu .grid-item {display: flex;align-items: center;}
/* ------ logo ------ */
header.classic #menu .starter-brand--menu {display:flex;align-items:center;gap:12px;color:var(--second-color)}
header.classic #menu .starter-brand__mark {width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,var(--main-color),var(--second-color))}
header.classic #menu .starter-brand__body {display:block;line-height:1.1}
header.classic #menu .starter-brand__title {display:block;font-size:1rem;font-weight:800}
header.classic #menu .starter-brand__subtitle {display:block;font-size:.72rem;color:rgba(0,0,0,.58)}
header.classic #menu .menu_logo a img,header.classic #menu.stickyOFF .menu_logo a img{height: 80px;width: 127px;transition: all 200ms ease-in-out}
header.classic #menu.stickyON .menu_logo a img {height: 60px;width: 95px;transition: all 200ms ease-in-out}
/* ------ menu_content ------ */
header.classic .menu_content {display: flex;align-items: center;justify-content: right;height: 100%}
header.classic .menu_content nav {display: flex;gap: 0px;align-items: center}
header.classic .menu_content nav ul.main-menu > li {display: inline-block;vertical-align:middle}
header.classic .menu_content nav ul.main-menu > li > a {display: flex;align-items:center;font-size: 1rem;font-weight: 500;color:#333;position: relative;padding: 12px 22px;height:100px;transition: height 200ms ease-in-out, color 200ms ease-in-out}
header.classic .menu_content nav ul.main-menu > li > a.actif {color: var(--main-color);}
header.classic .menu_content nav ul.main-menu > li > a:hover {color: var(--main-color);}
header.classic .menu_content nav ul.main-menu > li > a svg.arrow {height: 15px;width: 15px;margin:2px -5px 0 5px;fill: var(--main-color);transition: transform 300ms ease-in-out}
header.classic .menu-link__stack {display:block;position:relative;line-height:1.2}
header.classic .menu-link__subtitle {display:block;position:absolute;left:0;bottom:calc(100% + 3px);margin:0;font-size:.78rem;font-weight:500;letter-spacing:0;text-transform:none;white-space:nowrap;color:var(--main-color)}
header.classic .menu-link__label {display:block}
header.classic .menu_content nav ul.main-menu > li > a.menu-link--button,
header.classic .menu_content nav ul.main-menu > li:last-child > a {height: auto;color:#fff;background: var(--main-color);border-radius:  5px;margin:0 0 0 20px;border:2px solid var(--main-color);padding: 8px 30px;transition: color 200ms ease-in-out, background 200ms ease-in-out, padding 200ms ease-in-out}
header.classic .menu_content nav ul.main-menu > li > a.menu-link--button.actif {color:#fff;background: var(--main-color)}
header.classic .menu_content nav ul.main-menu > li > a.menu-link--button:hover,
header.classic .menu_content nav ul.main-menu > li:last-child > a:hover {background: #fff;color:var(--main-color)}
header.classic .menu_content nav a.clic svg.arrow {transform: rotate(-180deg)}
header.classic #menu.stickyON .menu_content nav ul.main-menu > li > a {height:70px}
header.classic #menu.stickyON .menu_content nav ul.main-menu > li > a.menu-link--button,
header.classic #menu.stickyON .menu_content nav ul.main-menu > li:last-child > a {height:auto;padding: 8px 30px}
header.classic .submenu-toggle,header.classic .flyout-toggle {display: none}
/* ------ mega-menu ------ */
header.classic .mega-menu .grid-mega-menu {grid-template-columns: 1fr;gap:0px}
header.classic .mega-menu {display: none;max-height: 0;position: absolute;top: 100%;left: auto;width: auto;z-index: 99;opacity: 0;background: #F9F9F9;padding: 0px 40px 20px 25px;transition: max-height 400ms ease,opacity 400ms ease;box-shadow: 0 15px 20px rgba(0, 0, 0, 0.1)}
header.classic .mega-menu.open {display: block;max-height: 500px;opacity: 1;transition: max-height 400ms ease,opacity 400ms ease;animation: slideDown 0.4s ease}
header.classic .mega-menu ul {list-style-type: none;padding: 0;margin: 0 auto}
header.classic .mega-menu ul li a {display: block;color:#333;padding: 8px 15px 8px 0;font-size:.9rem}
header.classic .mega-menu ul li a span {color :var(--main-color);font-size:.6rem;font-weight:600;margin-right:5px}
header.classic .mega-menu ul li a:hover {transition: color 200ms ease-in-out;color: var(--main-color)}
header.classic .mega-menu ul li a.actif {color:var(--main-color)}
header.classic .hamburger-container {display: none}
/* ------ Flyout niveau 3 ------ */
header.classic .mega-menu li.mm-l2{position: relative}
header.classic .mega-menu .chevron {width: .4rem;height: .4rem;display: inline-block;border-right: 2px solid var(--main-color);border-bottom: 2px solid var(--main-color);transform: rotate(-45deg);transition: transform .2s ease}
header.classic .mega-menu .mm-flyout{display: none;position: absolute;top: 0;left: 100%;width: auto;background: #eee;padding: 10px 0 10px 0;z-index: 50;box-shadow: 0 15px 20px rgba(0, 0, 0, 0.1);animation: slideLeft 0.4s ease}
header.classic .mega-menu .mm-flyout a{display: block;padding: 8px 30px 8px 20px;font-size: .9rem;white-space: nowrap;color:var(--second-color)}
@media (hover: hover) and (pointer: fine) and (min-width: 1025px){
  header.classic .mega-menu li.mm-l2.has-flyout:hover > .mm-flyout{ display:block}
}
@media (min-width: 1024px){
  header.classic .mega-menu li.mm-l2.has-flyout{display:flex;align-items:center;position: relative}
  header.classic .mega-menu li.mm-l2.has-flyout > a{flex: 1 1 auto;padding-right: 3px}
  header.classic .mega-menu li.mm-l2.has-flyout > .flyout-toggle{display:inline-flex;align-items:center;justify-content:center;width: 34px;height: 34px;border:0;background:transparent;padding:0;cursor:pointer;color: inherit}
  header.classic .mega-menu li.mm-l2.has-flyout.flyout-left > ul.mm-flyout{left: auto;right: 100%}
}

@media (max-width:1366px){
  header.classic .menu_content nav ul.main-menu > li > a svg.arrow {height: 12px;width: 12px;margin:0px -5px 0 3px}
  header.classic .menu_content nav ul.main-menu > li > a {font-size: .95rem}
  header.classic .menu_content nav ul.main-menu > li > a {padding: 12px 14px}
  header.classic .menu-link__subtitle {font-size:.7rem}
  header.classic .menu_content nav ul.main-menu > li > a.menu-link--button,
  header.classic .menu_content nav ul.main-menu > li:last-child > a {margin:0 10px 0 10px;}
  header.classic .menu_content .icon-link span {font-size: 0.75rem}
  header.classic .mega-menu {padding: 0px 16px 16px 16px}
  header.classic .mega-menu ul li a,.mega-menu .mm-flyout a {font-size: .8rem}
}
@media (max-width:1024px){
  body.has-topbar #header.stick #menu {top: 0;transform: translateY(0)}
  header.classic #menu {border-top:0px solid var(--main-color);box-shadow: 0px 0px 20px rgba(0, 0, 0, .15);}
  header.classic .menu_content nav ul.main-menu li.mobilemenu {display: block}
  header.classic #menu.stickyOFF .menu_content nav ul.main-menu > li > a {height:auto}
  header.classic #menu.stickyON,header.classic #menu.stickyOFF,header.classic #menu {height: 50px;position: fixed;top:0;left:0;transform: translateY(0)}
  header.classic #navbar.open {right: 0px;opacity:1}
  header.classic #navbar {right: -350px;opacity:0;overflow-y: auto;transition: right 250ms ease-in-out,opacity 250ms ease-in-out;box-shadow: 0 15px 20px rgba(0, 0, 0, 0.1)}
  header.classic #menu .starter-brand__mark {width:34px;height:34px}
  header.classic #menu .starter-brand__title {font-size:.86rem}
  header.classic #menu .starter-brand__subtitle {display:none}
  header.classic #menu .menu_logo a img,header.classic #menu.stickyON .menu_logo a img,header.classic #menu.stickyOFF .menu_logo a img{width: 117px;height:45px;margin-top:-4px}
  header.classic .menu_content nav {display: flex;position: absolute;top:50px;background:#fff;border-top: 1px solid #eee}
  header.classic .menu_content nav ul.main-menu {height: 100vh;overflow-y: auto;}
  header.classic .menu_content nav ul.main-menu > li {display: block;width:350px;border-bottom: 1px solid #eee}
  header.classic .menu_content nav ul.main-menu > li:last-child {border-bottom: 0px}
  header.classic .menu_content nav ul.main-menu > li > a {font-size: .9rem;color:#333}
  header.classic .menu_content nav ul.main-menu > li > a {padding: 15px 20px;height:auto}
  header.classic .menu-link__stack {display:flex;flex-direction:column;align-items:flex-start;line-height:1.1}
  header.classic .menu-link__subtitle {position:static;margin:0 0 3px 0;font-size:.7rem}
  header.classic .menu_content nav ul.main-menu > li,header.classic .menu_content nav ul.main-menu > li:last-child {border-color: var(--main-color);}
  header.classic .menu_content nav ul.main-menu > li,header.classic .menu_content nav ul.main-menu > li:last-child {border:none}
  header.classic .menu_content nav ul.main-menu > li > a.menu-link--button,
  header.classic .menu_content nav ul.main-menu > li:last-child > a {background:var(--main-color);color:#fff;margin:0;border:0;border-radius: 0;padding: 15px 20px}
  header.classic .menu_content nav ul.main-menu > li > a.menu-link--button:hover,
  header.classic .menu_content nav ul.main-menu > li:last-child > a:hover {background:var(--main-color);color:#fff}
  header.classic .mega-menu {position: relative;top: 0;margin-top: 0px;left: auto;width: auto;padding: 0;box-shadow: none;background:#F9F9F9 }
  header.classic .mega-menu ul li a {padding: 8px 0;border-top: 1px solid #eee;padding: 12px 20px;font-size:.85rem;color:#1c1c1c}
  header.classic .mega-menu ul li a span {font-size:.6rem}
  header.classic .hamburger-container {display: flex;align-items: center;cursor: pointer;background: transparent;border: 0;padding: 0}
  header.classic .menu-label {font-size: .9rem;margin-right: -10px;color: #fff;font-weight: 700}
  header.classic .hamburger {position: relative;width: 50px;height: 50px;transform: rotate(0deg);transition: .5s ease-in-out;cursor: pointer}
  header.classic .hamburger span {display: block;position: absolute;height: 3.2px;width: 40px;background: var(--main-color);border-radius: 5px;right: 0%;margin-top:9px;transform: rotate(0deg);transition: .25s ease-in-out}
  header.classic .hamburger span:nth-child(1) {top: 6px;width: 50%}
  header.classic .hamburger span:nth-child(2) {top: 14px;width: 50%}
  header.classic .hamburger span:nth-child(3) {top: 14px;width: 50%;opacity: 0}
  header.classic .hamburger span:nth-child(4) {top: 22px;width: 50%}
  header.classic .hamburger.open span:nth-child(1) {top: 12px;width: 0%;left: 50%}
  header.classic .hamburger.open span:nth-child(2) {transform: rotate(45deg)}
  header.classic .hamburger.open span:nth-child(3) {transform: rotate(-45deg);opacity: 1}
  header.classic .hamburger.open span:nth-child(4) {top: 12px;width: 0%;left: 50%}
  /* ------ Flyout niveau 3 ------ */
  header.classic .menu_content nav ul.main-menu > li > a svg.arrow {display:none}
  header.classic .submenu-toggle,header.classic .flyout-toggle {display: inline-flex;align-items: center;justify-content: center;width: 52px;min-width: 52px;border: 0;background: transparent;cursor: pointer}
  header.classic .menu_content nav ul.main-menu > li.has-children{display:flex;flex-wrap: wrap;align-items: stretch}
  header.classic .menu_content nav ul.main-menu > li.has-children > a{flex: 1 1 auto}
  header.classic .menu_content nav ul.main-menu > li.has-children > .submenu-toggle{flex: 0 0 52px}
  header.classic .menu_content nav ul.main-menu > li.has-children > .mega-menu{flex: 0 0 100%;width: 100%}
  header.classic .submenu-toggle__icon{width: 18px;height: 18px;transition: transform 300ms ease-in-out;fill: var(--main-color)}
  header.classic .submenu-toggle[aria-expanded="true"] .submenu-toggle__icon{transform: rotate(-180deg)}
  header.classic .mega-menu li.mm-l2.has-flyout{display:flex;flex-wrap: wrap;align-items: stretch}
  header.classic .mega-menu li.mm-l2.has-flyout > a{flex: 1 1 auto}
  header.classic .mega-menu li.mm-l2.has-flyout > .flyout-toggle{flex: 0 0 52px}
  header.classic .flyout-toggle .chevron{transition: transform 200ms ease-in-out;border-right: 2px solid #333;border-bottom: 2px solid #333}
  header.classic .flyout-toggle[aria-expanded="true"] .chevron{transform: rotate(45deg)}
  header.classic .mega-menu .mm-flyout{position: relative;left: auto;top: auto;width: auto;margin-left: 0;box-shadow: none;animation: slideDown 0.4s ease;background: #eee;padding: 0;}
  header.classic .mega-menu .mm-flyout a {border-top: 1px solid #e1e1e1;padding: 10px 0px 10px 38px;}
  header.classic .mega-menu .mm-flyout[hidden]{display:none}
  header.classic .mega-menu li.mm-l2.has-flyout > .mm-flyout{flex: 0 0 100%;width: 100%}
  header.classic .mega-menu .mm-flyout[hidden]{display:none}
  header.classic .mega-menu .mm-flyout:not([hidden]){display:block}
}

/* ====== MENU : CENTERED CONTACT ======
   Variante activable avec 'layout.menu' => 'centered-contact'.
   Structure : logo a gauche, navigation centree, telephone a droite. */
header.centered-contact #menu .starter-brand--menu {display:flex;align-items:center;gap:12px;color:var(--second-color)}
header.centered-contact #menu .starter-brand__mark {width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,var(--main-color),var(--second-color));box-shadow:inset 10px 10px 18px rgba(255,255,255,.18)}
header.centered-contact #menu .starter-brand__body {display:block;line-height:1.1}
header.centered-contact #menu .starter-brand__title {display:block;font-size:1rem;font-weight:800}
header.centered-contact #menu .starter-brand__subtitle {display:block;font-size:.72rem;color:rgba(0,0,0,.58)}
header.centered-contact #menu .menu_logo a img,header.centered-contact #menu.stickyOFF .menu_logo a img{height: 50px;width: 169px;transition: all 200ms ease-in-out}
header.centered-contact #menu.stickyON .menu_logo a img {height: 40px;width: 136px;transition: all 200ms ease-in-out}
header.centered-contact #menu {width: 100%;top:0;height:100px;position: fixed;z-index: 999;background: #FBF9F5;}
header.centered-contact #menu.stickyON {height: 70px;transition: height 200ms ease-in-out;box-shadow: 0px 0px 20px rgba(0, 0, 0, .15)}
header.centered-contact #menu.stickyOFF {height: 100px;transition: height 200ms ease-in-out}
header.centered-contact #menu .grid-menu {grid-template-columns: 250px 1fr 250px;height:100%;gap:0}
header.centered-contact #menu .grid-menu .grid-item {display: flex;align-items: center;}
header.centered-contact .menu_content {display: flex;align-items: center;justify-content: center;height: 100%}
header.centered-contact .menu_content nav {display: flex;gap: 0px;align-items: center;margin: 0 auto}
header.centered-contact .menu_meta {display: flex;align-items: center;justify-content: flex-end;gap: 14px;height: 100%;padding-right: 10px}
header.centered-contact .menu_meta__call {display: flex;flex-direction: column;align-items: flex-end;justify-content: center;text-decoration: none;color: #333;line-height: 1.1}
header.centered-contact .menu_meta__call-label {font-size: .75rem;font-weight: 700;color: #777;transition: font-size 300ms ease-in-out, color 300ms ease-in-out}
header.centered-contact .menu_meta__call-phone {font-size: 1rem;font-weight: 900;margin-top: 3px;letter-spacing: .2px;transition: font-size 300ms ease-in-out}
header.centered-contact .menu_meta__phone-icon {display: flex;align-items: center;justify-content: center;text-decoration: none;line-height: 0;width: 40px;height: 40px;border-radius: 50%;background: var(--second-color);color: #fff;border:1px solid var(--second-color);transition: width 300ms ease-in-out,height 300ms ease-in-out,color 300ms ease-in-out,background 300ms ease-in-out}
header.centered-contact .menu_meta__phone-icon svg {width: 20px;height: 20px;transition: width 300ms ease-in-out,height 300ms ease-in-out}
header.centered-contact .menu_meta:hover .menu_meta__phone-icon {background: #fff;color: var(--second-color)}
header.centered-contact .menu_meta:hover .menu_meta__call-label {color:var(--second-color)}
header.centered-contact #menu.stickyON .menu_meta__call-label {font-size: .68rem}
header.centered-contact #menu.stickyON .menu_meta__call-phone {font-size: .92rem}
header.centered-contact #menu.stickyON .menu_meta__phone-icon {width: 34px;height: 34px}
header.centered-contact #menu.stickyON .menu_meta__phone-icon svg {width: 16px;height: 16px}
header.centered-contact .menu_content nav ul.main-menu > li {display: inline-block;vertical-align:middle}
header.centered-contact .menu_content nav ul.main-menu > li > a {display: flex;font-size: 1rem;font-weight: 400;color:#333;height: 100px;position: relative;padding: 12px 20px;transition: height 200ms ease-in-out, color 200ms ease-in-out}
header.centered-contact .menu_content nav ul.main-menu > li > a.actif {color: var(--second-color);}
header.centered-contact .menu_content nav ul.main-menu > li > a:hover {color: var(--main-color);}
header.centered-contact .menu_content nav ul.main-menu > li > a svg.arrow {height: 15px;width: 15px;margin:2px -5px 0 5px;fill: var(--main-color);transition: transform 300ms ease-in-out}
header.centered-contact .menu_content nav ul.main-menu > li > a.menu-link--button {height: auto;color:#fff;background: var(--main-color);border-radius: 5px;margin:0 0 0 20px;border:2px solid var(--main-color);padding: 8px 30px;transition: color 200ms ease-in-out, background 200ms ease-in-out, padding 200ms ease-in-out}
header.centered-contact .menu_content nav ul.main-menu > li > a.menu-link--button.actif {color:#fff;background: var(--main-color)}
header.centered-contact .menu_content nav ul.main-menu > li > a.menu-link--button:hover {background: #fff;color:var(--main-color)}
header.centered-contact .menu_content nav a.clic svg.arrow {transform: rotate(-180deg)}
header.centered-contact #menu.stickyON .menu_content nav ul.main-menu > li > a {height:70px}
header.centered-contact #menu.stickyON .menu_content nav ul.main-menu > li > a.menu-link--button {height:auto;padding: 8px 30px}
header.centered-contact .submenu-toggle,header.centered-contact .flyout-toggle {display: none}
header.centered-contact .mega-menu .grid-mega-menu {grid-template-columns: 1fr;gap:0px}
header.centered-contact .mega-menu {display: none;max-height: 0;position: absolute;top: 100%;left: auto;width: auto;z-index: 99;opacity: 0;background: #FBF9F5;padding: 0px 40px 10px 25px;border-radius: 0 0 10px 10px;transition: max-height 400ms ease,opacity 400ms ease;box-shadow: 0 15px 20px rgba(0, 0, 0, 0.1)}
header.centered-contact .mega-menu.open {display: block;max-height: 500px;opacity: 1;transition: max-height 400ms ease,opacity 400ms ease;animation: slideDown 0.4s ease}
header.centered-contact .mega-menu ul {list-style-type: none;padding: 0;margin: 0 auto}
header.centered-contact .mega-menu ul li {border-top: 1px dashed rgba(0,0,0,.32);}
header.centered-contact .mega-menu ul li a {display: block;color:#333;padding: 8px 15px 8px 0;font-size:.9rem}
header.centered-contact .mega-menu ul li a span {color:var(--main-color);font-size:.6rem;font-weight:600;margin-right:5px}
header.centered-contact .mega-menu ul li a:hover {transition: color 200ms ease-in-out;color: var(--main-color)}
header.centered-contact .mega-menu ul li a.actif {color:var(--main-color)}
header.centered-contact .hamburger-container {display: none}
header.centered-contact .mega-menu li.mm-l2{position: relative}
header.centered-contact .mega-menu .chevron {width: .4rem;height: .4rem;display: inline-block;border-right: 2px solid var(--main-color);border-bottom: 2px solid var(--main-color);transform: rotate(-45deg);transition: transform .2s ease}
header.centered-contact .mega-menu .mm-flyout{display: none;position: absolute;top: 0;left: 100%;width: auto;background: #eee;padding: 10px 0 10px 0;z-index: 50;box-shadow: 0 15px 20px rgba(0, 0, 0, 0.1);animation: slideLeft 0.4s ease}
header.centered-contact .mega-menu .mm-flyout a{display: block;padding: 8px 30px 8px 20px;font-size: .9rem;white-space: nowrap;color:var(--second-color)}
@media (hover: hover) and (pointer: fine) and (min-width: 1025px){
  header.centered-contact .mega-menu li.mm-l2.has-flyout:hover > .mm-flyout{display:block}
}
@media (min-width: 1024px){
  header.centered-contact .mega-menu li.mm-l2.has-flyout{display:flex;align-items:center;position: relative}
  header.centered-contact .mega-menu li.mm-l2.has-flyout > a{flex: 1 1 auto;padding-right: 3px}
  header.centered-contact .mega-menu li.mm-l2.has-flyout > .flyout-toggle{display:inline-flex;align-items:center;justify-content:center;width: 34px;height: 34px;border:0;background:transparent;padding:0;cursor:pointer;color: inherit}
  header.centered-contact .mega-menu li.mm-l2.has-flyout.flyout-left > ul.mm-flyout{left: auto;right: 100%}
}
@media (max-width:1279px){
  header.centered-contact #menu .grid-menu {grid-template-columns: 200px 1fr}
  header.centered-contact #menu .grid-menu .grid-item.menu_meta {display: none;}
  header.centered-contact .menu_content {justify-content: center}
}
@media (max-width:1024px){
  header.centered-contact #menu {border-top:0px solid var(--main-color);box-shadow: 0px 0px 20px rgba(0, 0, 0, .15)}
  header.centered-contact #menu .grid-menu {grid-template-columns: 150px 1fr}
  header.centered-contact #menu .grid-menu .grid-item.menu_meta {display: none;}
  header.centered-contact .menu_content {justify-content: end}
  header.centered-contact .menu_content nav ul.main-menu li.mobilemenu {display: block}
  header.centered-contact #menu .menu_content nav ul.main-menu > li > a,
  header.centered-contact #menu.stickyON .menu_content nav ul.main-menu > li > a,
  header.centered-contact #menu.stickyOFF .menu_content nav ul.main-menu > li > a {height: auto;min-height: 48px}
  header.centered-contact #menu.stickyON,header.centered-contact #menu.stickyOFF,header.centered-contact #menu {height: 50px;position: fixed;top:0;left:0}
  header.centered-contact #navbar.open {right: 0px;opacity:1}
  header.centered-contact #navbar {right: -350px;opacity:0;overflow-y: auto;transition: right 250ms ease-in-out,opacity 250ms ease-in-out;box-shadow: 0 15px 20px rgba(0, 0, 0, 0.1)}
  header.centered-contact #menu .starter-brand__mark {width:34px;height:34px}
  header.centered-contact #menu .starter-brand__title {font-size:.86rem}
  header.centered-contact #menu .starter-brand__subtitle {display:none}
  header.centered-contact .menu_content nav {display: flex;position: absolute;top:50px;background:#fff;border-top: 1px solid #eee}
  header.centered-contact .menu_content nav ul.main-menu {height: 100vh;overflow-y: auto;}
  header.centered-contact .menu_content nav ul.main-menu > li {display: block;width:350px;border-bottom: 1px solid #eee}
  header.centered-contact .menu_content nav ul.main-menu > li > a {font-size: .9rem;color:#333}
  header.centered-contact .mega-menu {position: relative;top: 0;margin-top: 0px;left: auto;width: auto;padding: 0;box-shadow: none;background:#F9F9F9}
  header.centered-contact .mega-menu ul li a {padding: 12px 20px;font-size:.85rem;color:#1c1c1c;border-top: 1px solid #eee}
  header.centered-contact .mega-menu ul li a span {font-size:.6rem}
  header.centered-contact .hamburger-container {display: flex;align-items: center;cursor: pointer;background: transparent;border: 0;padding: 0}
  header.centered-contact .menu-label {font-size: .9rem;margin-right: -10px;color: var(--main-color);font-weight: 700}
  header.centered-contact .hamburger {position: relative;width: 50px;height: 50px;transform: rotate(0deg);transition: .5s ease-in-out;cursor: pointer}
  header.centered-contact .hamburger span {display: block;position: absolute;height: 3.2px;width: 40px;background: var(--main-color);border-radius: 5px;right: 0%;margin-top:9px;transform: rotate(0deg);transition: .25s ease-in-out}
  header.centered-contact .hamburger span:nth-child(1) {top: 6px;width: 50%}
  header.centered-contact .hamburger span:nth-child(2) {top: 14px;width: 50%}
  header.centered-contact .hamburger span:nth-child(3) {top: 14px;width: 50%;opacity: 0}
  header.centered-contact .hamburger span:nth-child(4) {top: 22px;width: 50%}
  header.centered-contact .hamburger.open span:nth-child(1) {top: 12px;width: 0%;left: 50%}
  header.centered-contact .hamburger.open span:nth-child(2) {transform: rotate(45deg)}
  header.centered-contact .hamburger.open span:nth-child(3) {transform: rotate(-45deg);opacity: 1}
  header.centered-contact .hamburger.open span:nth-child(4) {top: 12px;width: 0%;left: 50%}
  header.centered-contact .menu_content nav ul.main-menu > li > a svg.arrow {display:none}
  header.centered-contact .submenu-toggle,header.centered-contact .flyout-toggle {display: inline-flex;align-items: center;justify-content: center;width: 52px;min-width: 52px;border: 0;background: transparent;cursor: pointer}
  header.centered-contact .menu_content nav ul.main-menu > li.has-children{display:flex;flex-wrap: wrap;align-items: stretch}
  header.centered-contact .menu_content nav ul.main-menu > li.has-children > a{flex: 1 1 auto}
  header.centered-contact .menu_content nav ul.main-menu > li.has-children > .submenu-toggle{flex: 0 0 52px}
  header.centered-contact .menu_content nav ul.main-menu > li.has-children > .mega-menu{flex: 0 0 100%;width: 100%}
  header.centered-contact .submenu-toggle__icon{width: 18px;height: 18px;transition: transform 300ms ease-in-out;fill: var(--main-color)}
  header.centered-contact .submenu-toggle[aria-expanded="true"] .submenu-toggle__icon{transform: rotate(-180deg)}
  header.centered-contact .mega-menu li.mm-l2.has-flyout{display:flex;flex-wrap: wrap;align-items: stretch}
  header.centered-contact .mega-menu li.mm-l2.has-flyout > a{flex: 1 1 auto}
  header.centered-contact .mega-menu li.mm-l2.has-flyout > .flyout-toggle{flex: 0 0 52px}
  header.centered-contact .flyout-toggle .chevron{transition: transform 200ms ease-in-out;border-right: 2px solid #333;border-bottom: 2px solid #333}
  header.centered-contact .flyout-toggle[aria-expanded="true"] .chevron{transform: rotate(45deg)}
  header.centered-contact .mega-menu .mm-flyout{position: relative;left: auto;top: auto;width: auto;margin-left: 0;box-shadow: none;animation: slideDown 0.4s ease;background: #eee;padding: 0;}
  header.centered-contact .mega-menu .mm-flyout a {border-top: 1px solid #e1e1e1;padding: 10px 0px 10px 38px;}
  header.centered-contact .mega-menu .mm-flyout[hidden]{display:none}
  header.centered-contact .mega-menu li.mm-l2.has-flyout > .mm-flyout{flex: 0 0 100%;width: 100%}
header.centered-contact .mega-menu .mm-flyout:not([hidden]){display:block}
}

/* ====== MENU : CENTERED LOGO ======
   Variante activable avec 'layout.menu' => 'centered-logo'.
   Structure : navigation sur une seule liste, logo centré, menu mobile commun. */
header.centered-logo #menu {width:100%;top:0;height:120px;position:fixed;z-index:999;background:#fff;border-bottom:1px solid rgba(0,0,0,.08);transition:height 200ms ease-in-out,box-shadow 200ms ease-in-out}
header.centered-logo #menu.stickyON {height:82px;box-shadow:0 14px 30px rgba(0,0,0,.12)}
header.centered-logo #menu.stickyOFF {height:120px}
header.centered-logo .centered-logo-shell {position:relative;height:100%;display:flex;align-items:center;justify-content:center;width:min(1440px,calc(100% - 48px));margin:0 auto}
header.centered-logo .menu_logo--center {position:absolute;left:50%;top:50%;z-index:4;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center}
header.centered-logo #menu .starter-brand--menu {width:150px;height:86px;display:grid;place-items:center;padding:12px 18px;border-radius:999px;background:#fff;color:var(--second-color);text-align:center;box-shadow:0 18px 42px rgba(0,0,0,.10);transition:width 200ms ease-in-out,height 200ms ease-in-out,box-shadow 200ms ease-in-out}
header.centered-logo #menu.stickyON .starter-brand--menu {width:132px;height:66px;box-shadow:0 10px 26px rgba(0,0,0,.10)}
header.centered-logo #menu .starter-brand__mark {display:none}
header.centered-logo #menu .starter-brand__body {display:block;line-height:1}
header.centered-logo #menu .starter-brand__title {display:block;font-size:1.08rem;font-weight:900;letter-spacing:.04em;text-transform:uppercase;color:var(--second-color)}
header.centered-logo #menu .starter-brand__subtitle {display:block;margin-top:5px;font-size:.72rem;font-weight:700;color:var(--main-color)}
header.centered-logo .menu_content {width:100%;height:100%;display:flex;align-items:center;justify-content:center}
header.centered-logo .menu_content nav {width:100%;display:flex;justify-content:center}
header.centered-logo .menu_content nav ul.main-menu {display:flex;align-items:center;justify-content:center;width:100%;gap:0}
header.centered-logo .menu_content nav ul.main-menu > li {display:inline-block;vertical-align:middle}
header.centered-logo .menu_content nav ul.main-menu > li.main-menu__item--after-logo {margin-left:clamp(150px,16vw,255px)}
header.centered-logo .menu_content nav ul.main-menu > li > a {height:120px;display:flex;align-items:center;padding:12px clamp(9px,1.2vw,18px);font-size:.82rem;font-weight:800;letter-spacing:.055em;text-transform:uppercase;color:#252525;position:relative;transition:height 200ms ease-in-out,color 200ms ease-in-out}
header.centered-logo #menu.stickyON .menu_content nav ul.main-menu > li > a {height:82px}
header.centered-logo .menu_content nav ul.main-menu > li > a:hover,
header.centered-logo .menu_content nav ul.main-menu > li > a.actif {color:var(--main-color)}
header.centered-logo .menu_content nav ul.main-menu > li > a::after {content:"";position:absolute;left:18px;right:18px;bottom:30px;height:1px;background:currentColor;opacity:0;transform:scaleX(.65);transition:opacity 180ms ease-in-out,transform 180ms ease-in-out}
header.centered-logo .menu_content nav ul.main-menu > li > a:hover::after,
header.centered-logo .menu_content nav ul.main-menu > li > a.actif::after {opacity:.55;transform:scaleX(1)}
header.centered-logo .menu_content nav ul.main-menu > li > a svg.arrow {height:13px;width:13px;margin:0 -5px 0 5px;fill:var(--main-color);transition:transform 300ms ease-in-out}
header.centered-logo .menu_content nav a.clic svg.arrow {transform:rotate(-180deg)}
header.centered-logo .menu_content nav ul.main-menu > li > a.menu-link--button {height:auto;margin-left:12px;padding:9px 18px;border:1px solid var(--main-color);border-radius:999px;background:var(--main-color);color:#fff}
header.centered-logo .menu_content nav ul.main-menu > li > a.menu-link--button:hover {background:#fff;color:var(--main-color)}
header.centered-logo .menu_content nav ul.main-menu > li > a.menu-link--button::after {display:none}
header.centered-logo .submenu-toggle,header.centered-logo .flyout-toggle {display:none}
header.centered-logo .mega-menu .grid-mega-menu {grid-template-columns:1fr;gap:0}
header.centered-logo .mega-menu {display:none;max-height:0;position:absolute;top:100%;left:auto;width:auto;z-index:99;opacity:0;background:#fff;padding:0 34px 18px 22px;border-top:1px solid rgba(0,0,0,.08);box-shadow:0 18px 32px rgba(0,0,0,.12);transition:max-height 400ms ease,opacity 400ms ease}
header.centered-logo .mega-menu.open {display:block;max-height:500px;opacity:1;animation:slideDown .4s ease}
header.centered-logo .mega-menu ul {list-style-type:none;padding:0;margin:0 auto}
header.centered-logo .mega-menu ul li a {display:block;color:#252525;padding:9px 16px 9px 0;font-size:.88rem;font-weight:700}
header.centered-logo .mega-menu ul li a span {color:var(--main-color);font-size:.6rem;font-weight:700;margin-right:6px}
header.centered-logo .mega-menu ul li a:hover,
header.centered-logo .mega-menu ul li a.actif {color:var(--main-color)}
header.centered-logo .hamburger-container {display:none}
header.centered-logo .mega-menu li.mm-l2 {position:relative}
header.centered-logo .mega-menu .chevron {width:.48rem;height:.48rem;display:inline-block;border-right:2px solid var(--main-color);border-bottom:2px solid var(--main-color);transform:rotate(-45deg);transition:transform .2s ease}
header.centered-logo .mega-menu .mm-flyout {display:none;position:absolute;top:0;left:100%;width:auto;background:#f6f2eb;padding:10px 0;z-index:50;box-shadow:0 15px 20px rgba(0,0,0,.1);animation:slideLeft .4s ease}
header.centered-logo .mega-menu .mm-flyout a {display:block;padding:8px 30px 8px 20px;font-size:.88rem;white-space:nowrap;color:var(--second-color)}
@media (hover:hover) and (pointer:fine) and (min-width:1025px){
  header.centered-logo .mega-menu li.mm-l2.has-flyout:hover > .mm-flyout{display:block}
}
@media (min-width:1025px){
  header.centered-logo .mega-menu li.mm-l2.has-flyout{display:flex;align-items:center;position:relative}
  header.centered-logo .mega-menu li.mm-l2.has-flyout > a{flex:1 1 auto;padding-right:3px}
  header.centered-logo .mega-menu li.mm-l2.has-flyout > .flyout-toggle{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:0;background:transparent;padding:0;cursor:pointer;color:inherit}
  header.centered-logo .mega-menu li.mm-l2.has-flyout.flyout-left > ul.mm-flyout{left:auto;right:100%}
}
@media (max-width:1279px){
  header.centered-logo .menu_content nav ul.main-menu > li.main-menu__item--after-logo {margin-left:clamp(125px,14vw,190px)}
  header.centered-logo .menu_content nav ul.main-menu > li > a {font-size:.76rem;padding-inline:8px}
}
@media (max-width:1024px){
  header.centered-logo #menu,
  header.centered-logo #menu.stickyON,
  header.centered-logo #menu.stickyOFF {height:58px;position:fixed;top:0;left:0;box-shadow:0 0 20px rgba(0,0,0,.14)}
  header.centered-logo .centered-logo-shell {width:calc(100% - 28px);display:grid;grid-template-columns:180px 1fr;gap:10px}
  header.centered-logo .menu_logo--center {position:relative;left:auto;top:auto;transform:none;justify-content:flex-start}
  header.centered-logo #menu .starter-brand--menu,
  header.centered-logo #menu.stickyON .starter-brand--menu {width:auto;height:auto;display:flex;align-items:center;justify-content:flex-start;padding:0;background:transparent;box-shadow:none;text-align:left}
  header.centered-logo #menu .starter-brand__title {font-size:.9rem}
  header.centered-logo #menu .starter-brand__subtitle {display:none}
  header.centered-logo .menu_content {justify-content:flex-end}
  header.centered-logo .menu_content nav {display:flex;position:absolute;top:58px;background:#fff;border-top:1px solid #eee}
  header.centered-logo #navbar {right:-350px;opacity:0;overflow-y:auto;transition:right 250ms ease-in-out,opacity 250ms ease-in-out;box-shadow:0 15px 20px rgba(0,0,0,.1)}
  header.centered-logo #navbar.open {right:0;opacity:1}
  header.centered-logo .menu_content nav ul.main-menu {height:100vh;display:block;overflow-y:auto}
  header.centered-logo .menu_content nav ul.main-menu > li,
  header.centered-logo .menu_content nav ul.main-menu > li.main-menu__item--after-logo {display:block;width:350px;margin-left:0;border-bottom:1px solid #eee}
  header.centered-logo #menu .menu_content nav ul.main-menu > li > a,
  header.centered-logo #menu.stickyON .menu_content nav ul.main-menu > li > a,
  header.centered-logo #menu.stickyOFF .menu_content nav ul.main-menu > li > a {height:auto;min-height:52px;padding:15px 20px;font-size:.88rem;color:#333}
  header.centered-logo .menu_content nav ul.main-menu > li > a::after {display:none}
  header.centered-logo .mega-menu {position:relative;top:0;left:auto;width:auto;padding:0;box-shadow:none;background:#f8f8f8;border-top:0}
  header.centered-logo .mega-menu ul li a {padding:12px 20px;font-size:.85rem;border-top:1px solid #eee}
  header.centered-logo .hamburger-container {display:flex;align-items:center;cursor:pointer;background:transparent;border:0;padding:0}
  header.centered-logo .menu-label {font-size:.84rem;margin-right:-10px;color:var(--main-color);font-weight:800}
  header.centered-logo .hamburger {position:relative;width:50px;height:50px;transform:rotate(0deg);transition:.5s ease-in-out;cursor:pointer}
  header.centered-logo .hamburger span {display:block;position:absolute;height:3px;width:40px;background:var(--main-color);border-radius:5px;right:0;margin-top:9px;transform:rotate(0deg);transition:.25s ease-in-out}
  header.centered-logo .hamburger span:nth-child(1){top:6px;width:50%}
  header.centered-logo .hamburger span:nth-child(2){top:14px;width:50%}
  header.centered-logo .hamburger span:nth-child(3){top:14px;width:50%;opacity:0}
  header.centered-logo .hamburger span:nth-child(4){top:22px;width:50%}
  header.centered-logo .hamburger.open span:nth-child(1){top:12px;width:0;left:50%}
  header.centered-logo .hamburger.open span:nth-child(2){transform:rotate(45deg)}
  header.centered-logo .hamburger.open span:nth-child(3){transform:rotate(-45deg);opacity:1}
  header.centered-logo .hamburger.open span:nth-child(4){top:12px;width:0;left:50%}
  header.centered-logo .menu_content nav ul.main-menu > li > a svg.arrow {display:none}
  header.centered-logo .submenu-toggle,header.centered-logo .flyout-toggle {display:inline-flex;align-items:center;justify-content:center;width:52px;min-width:52px;border:0;background:transparent;cursor:pointer}
  header.centered-logo .menu_content nav ul.main-menu > li.has-children{display:flex;flex-wrap:wrap;align-items:stretch}
  header.centered-logo .menu_content nav ul.main-menu > li.has-children > a{flex:1 1 auto}
  header.centered-logo .menu_content nav ul.main-menu > li.has-children > .submenu-toggle{flex:0 0 52px}
  header.centered-logo .menu_content nav ul.main-menu > li.has-children > .mega-menu{flex:0 0 100%;width:100%}
  header.centered-logo .submenu-toggle__icon{width:18px;height:18px;transition:transform 300ms ease-in-out;fill:var(--main-color)}
  header.centered-logo .submenu-toggle[aria-expanded="true"] .submenu-toggle__icon{transform:rotate(-180deg)}
  header.centered-logo .mega-menu li.mm-l2.has-flyout{display:flex;flex-wrap:wrap;align-items:stretch}
  header.centered-logo .mega-menu li.mm-l2.has-flyout > a{flex:1 1 auto}
  header.centered-logo .mega-menu li.mm-l2.has-flyout > .flyout-toggle{flex:0 0 52px}
  header.centered-logo .flyout-toggle .chevron{transition:transform 200ms ease-in-out;border-right:2px solid #333;border-bottom:2px solid #333}
  header.centered-logo .flyout-toggle[aria-expanded="true"] .chevron{transform:rotate(45deg)}
  header.centered-logo .mega-menu .mm-flyout{position:relative;left:auto;top:auto;width:auto;margin-left:0;box-shadow:none;animation:slideDown .4s ease;background:#eee;padding:0}
  header.centered-logo .mega-menu .mm-flyout a{border-top:1px solid #e1e1e1;padding:10px 0 10px 38px}
  header.centered-logo .mega-menu .mm-flyout[hidden]{display:none}
  header.centered-logo .mega-menu li.mm-l2.has-flyout > .mm-flyout{flex:0 0 100%;width:100%}
  header.centered-logo .mega-menu .mm-flyout:not([hidden]){display:block}
}

/* Ajustement centered-logo : menu central + panneau lateral type Gourdon. */
header.centered-logo #menu {height:118px}
header.centered-logo #menu.stickyOFF {height:118px}
header.centered-logo .centered-logo-shell {width:min(1440px,calc(100% - 56px))}
header.centered-logo .menu_logo--center {z-index:5}
header.centered-logo #menu .starter-brand--menu {width:148px;min-height:86px;height:auto;padding:14px 18px;transition:min-height 200ms ease-in-out,box-shadow 200ms ease-in-out,transform 200ms ease-in-out}
header.centered-logo #menu.stickyON .starter-brand--menu {width:148px;min-height:64px;height:auto;transform:scale(.94)}
header.centered-logo #menu .starter-brand__title {font-size:1.02rem}
header.centered-logo #menu .starter-brand__subtitle {font-size:.7rem}
header.centered-logo .menu_content nav ul.main-menu {padding:0 72px;margin:0}
header.centered-logo .menu_content nav ul.main-menu > li.main-menu__item--after-logo {margin-left:clamp(145px,15vw,235px)}
header.centered-logo .menu_content nav ul.main-menu > li > a {height:118px;padding:12px clamp(8px,1.05vw,17px);font-size:.8rem}
header.centered-logo #menu.stickyON .menu_content nav ul.main-menu > li > a {height:82px}
header.centered-logo .hamburger-container {position:absolute;right:0;top:50%;z-index:6;display:flex;align-items:center;gap:8px;cursor:pointer;background:transparent;border:0;padding:0;transform:translateY(-50%)}
header.centered-logo .menu-label {font-size:.78rem;color:var(--main-color);font-weight:900;letter-spacing:.08em;text-transform:uppercase;margin-right:0}
header.centered-logo .hamburger {position:relative;width:42px;height:42px;transform:rotate(0deg);transition:.5s ease-in-out;cursor:pointer}
header.centered-logo .hamburger span {display:block;position:absolute;height:2px;width:28px;background:var(--main-color);border-radius:5px;right:0;margin-top:9px;transform:rotate(0deg);transition:.25s ease-in-out}
header.centered-logo .hamburger span:nth-child(1){top:7px;width:45%}
header.centered-logo .hamburger span:nth-child(2){top:15px;width:62%}
header.centered-logo .hamburger span:nth-child(3){top:15px;width:62%;opacity:0}
header.centered-logo .hamburger span:nth-child(4){top:23px;width:45%}
header.centered-logo .hamburger.open span:nth-child(1){top:15px;width:0;left:50%}
header.centered-logo .hamburger.open span:nth-child(2){transform:rotate(45deg)}
header.centered-logo .hamburger.open span:nth-child(3){transform:rotate(-45deg);opacity:1}
header.centered-logo .hamburger.open span:nth-child(4){top:15px;width:0;left:50%}
header.centered-logo .menu-side-panel {position:fixed;top:0;right:0;width:min(390px,calc(100vw - 28px));height:100vh;height:100dvh;z-index:1001;background:#181818;color:#fff;box-shadow:-26px 0 60px rgba(0,0,0,.32);transform:translateX(106%);opacity:0;visibility:hidden;transition:transform 260ms ease-in-out,opacity 260ms ease-in-out,visibility 260ms ease-in-out;display:flex;flex-direction:column}
header.centered-logo .menu-side-panel.open {transform:translateX(0);opacity:1;visibility:visible}
header.centered-logo .menu-side-panel__head {display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:28px 28px 18px}
header.centered-logo .menu-side-panel__brand {color:#fff}
header.centered-logo .starter-brand--panel {display:block;color:#fff}
header.centered-logo .starter-brand--panel .starter-brand__mark {display:none}
header.centered-logo .starter-brand--panel .starter-brand__title {display:block;font-size:1.05rem;font-weight:900;letter-spacing:.04em;text-transform:uppercase;color:#fff}
header.centered-logo .starter-brand--panel .starter-brand__subtitle {display:block;margin-top:6px;font-size:.72rem;font-weight:700;color:var(--main-color)}
header.centered-logo .menu-side-panel__close {width:42px;height:42px;border:1px solid rgba(255,255,255,.2);border-radius:50%;background:transparent;color:#fff;font-size:1.5rem;line-height:1;cursor:pointer;transition:background 180ms ease-in-out,color 180ms ease-in-out}
header.centered-logo .menu-side-panel__close:hover {background:var(--main-color);color:#fff}
header.centered-logo .menu-side-panel__nav {flex:1 1 auto;overflow-y:auto;padding:10px 0 20px}
header.centered-logo .side-menu,
header.centered-logo .side-menu__children {list-style:none;margin:0;padding:0}
header.centered-logo .side-menu__link {display:flex;align-items:center;gap:10px;color:#f5f1ea;text-decoration:none;border-left:4px solid transparent;transition:background 180ms ease-in-out,border-color 180ms ease-in-out,color 180ms ease-in-out}
header.centered-logo .side-menu__link--level-1 {padding:17px 28px;font-size:.82rem;font-weight:800;letter-spacing:.075em;text-transform:uppercase}
header.centered-logo .side-menu__link--level-2 {padding:11px 28px 11px 44px;font-size:.86rem;font-weight:700;color:rgba(255,255,255,.82)}
header.centered-logo .side-menu__link--level-3 {padding:9px 28px 9px 66px;font-size:.82rem;font-weight:600;color:rgba(255,255,255,.68)}
header.centered-logo .side-menu__link:hover,
header.centered-logo .side-menu__link.actif {background:#111;border-left-color:var(--main-color);color:#fff}
header.centered-logo .side-menu__marker {color:var(--main-color);font-size:.58rem;line-height:1}
header.centered-logo .side-menu__children {padding:0 0 8px;background:rgba(255,255,255,.035)}
header.centered-logo .side-menu__link--button {justify-content:center;margin:14px 28px;padding:12px 18px;border:1px solid var(--main-color);border-radius:999px;background:var(--main-color);color:#fff}
header.centered-logo .menu-side-panel__contact {padding:22px 28px 28px;border-top:1px solid rgba(255,255,255,.12)}
header.centered-logo .menu-side-panel__eyebrow {display:block;margin-bottom:10px;font-size:.68rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase;color:var(--main-color)}
header.centered-logo .menu-side-panel__contact a {display:block;margin-top:7px;color:#fff;font-weight:800}
@media (max-width:1320px){
  header.centered-logo .menu_content nav ul.main-menu > li.main-menu__item--after-logo {margin-left:clamp(122px,13vw,188px)}
  header.centered-logo .menu_content nav ul.main-menu > li > a {font-size:.72rem;padding-inline:7px}
}
@media (max-width:1120px) and (min-width:1025px){
  header.centered-logo .menu_content nav ul.main-menu > li > a {font-size:.68rem;letter-spacing:.04em}
  header.centered-logo .menu_content nav ul.main-menu {padding:0 62px}
}
@media (max-width:1024px){
  header.centered-logo #menu,
  header.centered-logo #menu.stickyON,
  header.centered-logo #menu.stickyOFF {height:64px}
  header.centered-logo .centered-logo-shell {width:calc(100% - 28px);display:flex;justify-content:space-between;gap:10px}
  header.centered-logo .menu_logo--center {position:relative;left:auto;top:auto;transform:none;justify-content:flex-start}
  header.centered-logo #menu .starter-brand--menu,
  header.centered-logo #menu.stickyON .starter-brand--menu {width:auto;min-height:0;height:auto;display:flex;align-items:center;justify-content:flex-start;padding:0;background:transparent;box-shadow:none;text-align:left;transform:none}
  header.centered-logo #menu .starter-brand__title {font-size:.9rem}
  header.centered-logo #menu .starter-brand__subtitle {display:none}
  header.centered-logo .menu_content {width:auto;justify-content:flex-end}
  header.centered-logo .menu_content nav {display:none}
  header.centered-logo .hamburger-container {position:relative;right:auto;top:auto;transform:none}
  header.centered-logo .menu-label {font-size:.8rem}
  header.centered-logo .menu-side-panel {width:min(360px,calc(100vw - 22px))}
  header.centered-logo .menu-side-panel__head {padding:22px 22px 14px}
  header.centered-logo .side-menu__link--level-1 {padding:15px 22px}
  header.centered-logo .side-menu__link--level-2 {padding-left:38px}
  header.centered-logo .side-menu__link--level-3 {padding-left:58px}
}

/*
|
|
|
|
|
|
|
|
|
|
*/
/* ====== FOOTER ====== */
footer {background: #fff;color:#fff}
footer p, footer li {color:#1c1c1c}
footer a:hover {color :var(--main-color)}
footer .grid-footer {display: grid;grid-template-columns: 1fr 1fr 1fr;gap:0}
footer .grid-footer h3 {color:var(--second-color);margin-bottom: 1.5rem}
footer .grid-footer .grid-item:nth-child(2) {border-right: 1px solid rgba(0, 0, 0, .2);border-left: 1px solid rgba(0, 0, 0, .2)}
footer .grid-footer .grid-item.bloc-logo {padding-right: 4rem}
footer .grid-footer .grid-item.bloc-logo picture {margin-bottom: 1rem}
footer .grid-footer .grid-item.bloc-logo img {width: 200px;height: 141px}
footer .grid-footer .grid-item.bloc-contact {padding: 1rem 3rem}
footer .grid-footer .grid-item.bloc-contact address p {display: flex; align-items: start;font-style: normal;padding-bottom: 8px;margin-bottom: 8px}
footer .grid-footer .grid-item.bloc-contact address p svg {margin-right: 8px;margin-top: 4px;color :var(--main-color);height: 20px}
footer .grid-footer .grid-item.bloc-liens {padding: 1rem 0 1rem 3rem}
footer .grid-footer .grid-item.bloc-liens li a {padding: 4px 0;display: block}
footer .grid-footer .grid-item.bloc-liens li a span {color :var(--main-color);margin-right:5px;transition: margin-right 200ms ease-in-out}
footer .grid-footer .grid-item.bloc-liens li a:hover span {transition: margin-right 200ms ease-in-out;margin-right:10px}
footer .grid-footer .grid-item.bloc-liens li a.actif {color :var(--main-color)}
footer .grid-footer .grid-item.bloc-liens li a.actif:hover span {margin-right:5px}
#bottom-bar {font-size: .8rem;background: #000;padding:6px 0;width:100%}
#bottom-bar div.grid-item {justify-self: start}
#bottom-bar nav.grid-item {justify-self: end}
#bottom-bar nav.grid-item a.actif {color :var(--main-color)}
@media (max-width:1279px){
  footer .grid-footer {grid-template-columns: 1fr 1.3fr 1fr}
  footer .grid-footer .grid-item.bloc-logo {padding-right: 2rem}
  footer .grid-footer .grid-item.bloc-contact {padding: 1rem 2rem}
  footer .grid-footer .grid-item.bloc-liens {padding: 1rem 0 1rem 2rem}
  #bottom-bar .grid-2 {grid-template-columns: 1fr;gap:5px}
  #bottom-bar div.grid-item {justify-self: center;text-align: center;}
  #bottom-bar nav.grid-item {justify-self: center;text-align: center;opacity: .75}
}
@media (max-width:1024px){
  footer .grid-footer {display: grid;grid-template-columns: 1fr;gap:0}
  footer .grid-footer .grid-item {margin: 0 auto 2rem auto;width: 320px}
  footer .grid-footer .grid-item:nth-child(2) {border-left:none;border-right:none;border-top: 1px solid rgba(0, 0, 0, .2);border-bottom: 1px solid rgba(0, 0, 0, .2)}
  footer .grid-footer .grid-item.bloc-logo {padding-right: 0}
  footer .grid-footer .grid-item.bloc-contact {padding: 2rem 0;}
  footer .grid-footer .grid-item.bloc-liens {padding: 0}
}
@media (max-width:768px){
  footer .grid-footer .grid-item {width: 100%}
}
/*
|
|
|
|
|
|
|
|
|
|
*/
/* ====== ACCEUIL ====== */
.hero {height: 1500px;width: 100%;background: #f5f5f5;}
