/* ====== RESET ====== */
@font-face{font-family:"Open";font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/open-sans.woff2") format("woff2")}
@font-face{font-family:"Open";font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/open-sans-bold.woff2") format("woff2")}
@font-face{font-family:"Brush";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/brush-script-mt.woff2") format("woff2")}
:root {
  --main-font: "Open",-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI","Helvetica Neue",Arial,sans-serif;
  --main-color: #969916;
  --second-color: #76ADA1;
  --grey-color: #4b4b4b;
  --hero-min-vh: 60vh;
  --hero-pt: 100px;
  --hero-pb: 50px;
  --ss-hero-pt: 65px;
  --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: 30px;
}
body.has-topbar{
  --hero-min-vh: 70vh;
  --hero-pt: 150px;
  --hero-pb: 20px;
  --ss-hero-pt: 90px;
  --ss-hero-mt: 70px;
}
@media (max-width:1279px){
  :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;letter-spacing: 0.01rem;}
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}

/* Skip-link "Aller au contenu" - cache jusqu'au focus clavier */
.skip-link {position: absolute;top: -100px;left: 8px;z-index: 10000;display: inline-block;padding: 10px 16px;background: var(--main-color, #9dae46);color: #fff;font-weight: 700;font-size: .95rem;text-decoration: none;border-radius: var(--border-radius-md, 8px);box-shadow: 0 6px 18px rgba(0, 0, 0, .25);transform: translateY(-10px);opacity: 0;transition: transform .2s ease, opacity .2s ease, top .2s ease}
.skip-link:focus,
.skip-link:focus-visible {top: 8px;transform: translateY(0);opacity: 1;outline: 3px solid #fff;outline-offset: 2px}

/* ====================================================== */
/* --- CMP : Banniere de consentement RGPD --------------- */
.consent-banner {position: fixed;left: 0;right: 0;bottom: 0;z-index: 9998;background: #ffffff;border-top: 3px solid var(--main-color, #9dae46);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: var(--grey-color, #4d534a)}
.consent-banner__desc a {color: var(--main-color, #9dae46);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}
@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%}
}

/* --- Modale "Personnaliser" ---------------------------- */
.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: var(--border-radius-lg, 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, #9dae46);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: var(--grey-color, #4d534a)}
.consent-modal__lead a {color: var(--main-color, #9dae46);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: var(--border-radius-md, 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: var(--grey-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}

/* --- Toggle switch ------------------------------------- */
.consent-toggle {position: relative;display: inline-flex;align-items: center;gap: .5rem;flex: 0 0 auto;cursor: pointer}
.consent-toggle--locked {color: var(--grey-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, #9dae46)}
.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, #9dae46);outline-offset: 2px}

body.consent-modal-open {overflow: hidden}

/* Placeholder consent dans les widgets booking (cache quand consent.booking accorde) */
.booking-widget__consent {padding: 1rem 1.1rem;background: #fafaf6;border: 1px dashed #cdd2c2;border-radius: var(--border-radius-md, 8px);text-align: center;font-size: .92rem;color: var(--grey-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, #9dae46);text-decoration: underline}
html.consent-booking-granted .booking-widget__consent {display: none}

/* Placeholder consent dans les cartes Leaflet (visible tant que consent.map n'est pas accorde) */
.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: var(--border-radius-md, 8px);text-align: center;color: var(--grey-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}

/* ------ 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}
a.btn span {font-weight: 400;font-size: .8rem;}
.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:var(--second-color)}
.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: 3rem}
.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}
}

/* ------ 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}}

/* ------ Popup information sejour ------ */
.site-info-trigger {position: fixed;left: 14px;bottom: 14px;z-index: 960;display: inline-flex;align-items: center;justify-content: center;width: 48px;height: 48px;border: 1px solid rgba(255, 255, 255, .7);border-radius: 50%;background: linear-gradient(135deg, var(--main-color), var(--second-color));color: #fff;font-size: 1.25rem;font-weight: 800;line-height: 1;box-shadow: 0 16px 36px rgba(15, 22, 15, .22);cursor: pointer;transition: transform .2s ease, box-shadow .2s ease, filter .2s ease}
.site-info-trigger:hover,.site-info-trigger:focus-visible {color: #fff;transform: translateY(-3px);box-shadow: 0 20px 44px rgba(15, 22, 15, .28);filter: saturate(1.08)}
.site-info-popup[hidden] {display: none}
.site-info-popup {position: fixed;inset: 0;z-index: 9900;display: grid;place-items: center;padding: clamp(1rem, 4vw, 2rem);opacity: 0;visibility: hidden;pointer-events: none;transition: opacity .24s ease, visibility 0s linear .24s}
.site-info-popup.is-open {opacity: 1;visibility: visible;pointer-events: auto;transition: opacity .24s ease}
.site-info-popup__backdrop {position: absolute;inset: 0;background: rgba(20, 31, 23, .54);backdrop-filter: blur(4px);-webkit-backdrop-filter: blur(4px);cursor: zoom-out}
.site-info-popup__dialog {position: relative;width: min(620px, calc(100vw - 2rem));padding: clamp(2rem, 4vw, 2.65rem) clamp(1.35rem, 4vw, 2.7rem);border: 1px solid rgba(157, 174, 70, .28);border-radius: var(--border-radius-xl);background: linear-gradient(180deg, #fff 0%, #faf8f0 100%);color: #242824;text-align: center;box-shadow: 0 30px 80px rgba(15, 22, 15, .28), 0 2px 0 rgba(255, 255, 255, .75) inset;overflow: hidden;transform: translateY(10px) scale(.985);transition: transform .24s ease}
.site-info-popup__dialog::before {content: "";position: absolute;inset: 0 0 auto 0;height: 5px;background: linear-gradient(90deg, var(--main-color), var(--second-color))}
.site-info-popup__dialog::after {content: "";position: absolute;right: -80px;bottom: -90px;width: 210px;height: 210px;border-radius: 50%;background: rgba(118, 173, 161, .12);pointer-events: none}
.site-info-popup.is-open .site-info-popup__dialog {transform: translateY(0) scale(1)}
.site-info-popup__close {position: absolute;top: 14px;right: 14px;display: inline-flex;align-items: center;justify-content: center;width: 38px;height: 38px;border: 1px solid rgba(157, 174, 70, .18);border-radius: 50%;background: rgba(255, 255, 255, .7);color: #5f6818;font-size: 1.45rem;font-weight: 700;line-height: 1;z-index: 2;transition: color .2s ease, background .2s ease, transform .2s ease, border-color .2s ease}
.site-info-popup__close:hover,.site-info-popup__close:focus-visible {background: #fff;color: var(--main-color);border-color: rgba(157, 174, 70, .45);transform: rotate(90deg)}
.site-info-popup__eyebrow {position: relative;z-index: 1;display: inline-flex;align-items: center;justify-content: center;gap: 10px;margin: 0 auto 12px;font-family: "Brush", var(--main-font);font-size: clamp(1.35rem, 3vw, 1.7rem);line-height: 1;font-weight: 400;background: linear-gradient(135deg, var(--main-color), var(--second-color));-webkit-background-clip: text;background-clip: text;color: transparent}
.site-info-popup__eyebrow::before {content: "";width: 23px;height: 30px;flex: 0 0 23px;background: url('../img/icon-ferme-des-poulardieres.webp') center / contain no-repeat}
.site-info-popup__title {position: relative;z-index: 1;margin: 0 auto 1rem;color: #1f231f;font-size: clamp(1.7rem, 4vw, 2.35rem);font-weight: 800;line-height: 1.16;letter-spacing: -.06rem}
.site-info-popup__dialog p:not(.site-info-popup__eyebrow) {position: relative;z-index: 1;margin: 0 auto;font-size: clamp(.98rem, 1.2vw, 1.06rem);line-height: 1.75;max-width: 48ch;color: #3e443c}
.site-info-popup__dialog p + p {margin-top: .75rem}
.site-info-popup__dialog strong {display: inline-block;margin-top: .15rem;padding: .85rem 1rem;border-radius: 12px;background: rgba(157, 174, 70, .09);color: #20251f;font-weight: 800;line-height: 1.55}
@media (max-width: 640px) {
  .site-info-trigger {width: 42px;height: 42px;left: 12px;bottom: 12px;font-size: 1.12rem}
  .site-info-popup__dialog {width: min(100%, calc(100vw - 1.2rem));padding: 1.9rem 1.1rem 1.35rem}
  .site-info-popup__close {top: 8px;right: 8px;width: 34px;height: 34px}
  .site-info-popup__title {max-width: 14ch}
}
@media (prefers-reduced-motion: reduce) {
  .site-info-trigger,.site-info-popup,.site-info-popup__dialog,.site-info-popup__close {transition: none}
}

/* ------ title ------ */
.title .before{display: inline-flex;align-items: center;gap: 10px;margin-bottom: 12px;width: fit-content;font-family: "Brush", var(--main-font);font-size: clamp(1.45rem, 2vw, 1.8rem);line-height: 1;font-weight: 400;letter-spacing: normal;text-transform: none;background: linear-gradient(135deg, var(--main-color), var(--second-color));-webkit-background-clip: text;background-clip: text;color: transparent;}
.title .before::before{content:"";width: 23px;height: 30px;flex: 0 0 23px;background: url('../img/ferme-poulardieres-classic.webp') center / contain no-repeat}
.title .before.blanc::before{content:"";width: 23px;height: 30px;flex: 0 0 23px;border-radius: 50%;background: url('../img/ferme-poulardieres-blanc.webp') center / contain no-repeat}
.title h2 {font-weight:800;font-size: clamp(1.8rem, 3vw, 2.2rem);line-height: 1.35;letter-spacing: -.07rem;}
.title p.lead,.title h3 {background: linear-gradient(135deg, var(--second-color), var(--main-color));-webkit-background-clip: text;background-clip: text;color: transparent;font-size: 1rem;font-weight: 600;letter-spacing: normal;text-transform: none;margin-top: 15px;line-height: 1.7}
.title a {margin-top: 40px;}
.title hr {width: 90px;height: 3px;border: none;margin: 20px 0 22px 0;background: linear-gradient(135deg, var(--main-color), var(--second-color));}
.title.center hr {margin: 20px auto 30px auto}
@media (max-width:768px){
  .title .before {font-size: 1.45rem;margin-bottom: 14px;}
  .title .before::before {width: 24px;height: 24px;flex-basis: 24px}
}
/* ------ 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;box-sizing: border-box;width: min(calc(100vw - 32px), 1280px);height: min(calc(100vh - 32px), 820px);padding: 0 70px;display: flex;justify-content: center;align-items: center;margin: 0 auto}
#vanilla-lightbox picture {width: 100%;height: 100%;display: flex;justify-content: center;align-items: center}
#vanilla-lightbox .lb-image {display: block;width: auto;height: auto;max-width: 100%;max-height: 100%;object-fit: contain;cursor: grab;margin: 0 auto}
#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: calc(100vw - 24px);height: calc(100vh - 24px);padding: 0 12px}
  #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: calc(100px + var(--starter-topbar-height));padding-top: 50px;}
#pagelegale h1 {font-weight:800;font-size: clamp(1.8rem, 3vw, 2.2rem);line-height: 1.35;letter-spacing: -.07rem;}
#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:1279px){
  #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-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}
/* Le label "Langue" et le nom de langue sont caches par defaut (desktop : drapeau seul) */
.language-switcher__eyebrow,
.language-switcher__current-name {display: none}

/* Si le switcher est deja dans la topbar (body.has-topbar), on le masque
   dans le main menu en desktop (>=1280px) pour eviter le doublon.
   On utilise body.has-topbar pour battre la specificite de la regle
   header.classic .menu_content nav ul.main-menu > li {display:inline-block}. */
@media (min-width: 1280px) {
  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: 1279px) {
  .language-switcher__current {border: none;border-radius: 0;}

}

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}
/* Les regles du switcher mobile sont gerees plus bas dans @media (max-width:1279px) */

/* ====== MENU ====== */
header.classic #menu {width: 100%;position: fixed;left: 0;top: 0;height: 100px;z-index: 999;background: #fff;transform: translateY(var(--starter-topbar-height));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(var(--starter-topbar-height));box-shadow: none}
header.classic #menu.stickyON {height: 70px;transform: translateY(0);box-shadow: 0px 0px 20px rgba(0, 0, 0, .15)}
header.classic #menu .grid-menu {grid-template-columns: 300px 1fr;height:100%;gap:0}
header.classic #menu .grid-menu .grid-item {display: flex;align-items: center;}
/* ------ logo ------ */
header.classic #menu .menu_logo a {display: flex;align-items: center;gap: 10px;font-family:"Brush";font-size: 2rem;line-height: 1.8rem;}
header.classic #menu .menu_logo a img,
header.classic #menu.stickyOFF .menu_logo a img,
header.classic #menu.stickyON .menu_logo a img {height: 50px;width: 38px}
/* ------ 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;letter-spacing: -.02rem;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: 10px 18px;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,
header.classic .menu_content nav ul.main-menu > li > a.menu-link--button.actif:hover,
header.classic .menu_content nav ul.main-menu > li:last-child > a.actif,
header.classic .menu_content nav ul.main-menu > li:last-child > a.actif:hover {color:#fff;background: var(--main-color);border-color: var(--main-color)}
header.classic .menu_content nav ul.main-menu > li > a.menu-link--button.actif .menu-link__label,
header.classic .menu_content nav ul.main-menu > li > a.menu-link--button.actif .menu-link__subtitle,
header.classic .menu_content nav ul.main-menu > li:last-child > a.actif .menu-link__label,
header.classic .menu_content nav ul.main-menu > li:last-child > a.actif .menu-link__subtitle {color:#fff}
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: 10px 18px}
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: 1279px){
  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: 1680px){
  header.classic #menu .menu_logo a {font-size: 1.8rem;margin-top: 2px;}
  header.classic .menu_content nav ul.main-menu > li > a {font-size: .9rem;padding: 12px 15px;}
  header.classic #menu .grid-menu {grid-template-columns: 280px 1fr;}
}

@media (max-width:1279px){
  header.classic #menu {box-shadow: 0px 0px 20px rgba(0, 0, 0, .15);transform: none}
  header.classic #menu.stickyOFF,header.classic #menu.stickyON {box-shadow: 0px 0px 20px rgba(0, 0, 0, .15)}
  header.classic #menu.stickyOFF,header.classic #menu.stickyON {transform: none}
  header.classic #menu .grid-menu {grid-template-columns: 300px 1fr}
  header.classic #menu .grid-menu .grid-item.menu_meta {display: none;}
  header.classic #menu .menu_logo a {font-size: 1.4rem}
  header.classic #menu .menu_logo a img,header.classic #menu.stickyOFF .menu_logo a img,header.classic #menu.stickyON .menu_logo a img {height: 41px;width: 31px}
  header.classic .menu_content nav ul.main-menu > li:last-child > a {margin: 0;border-radius: 0;}
  header.classic .menu-link__subtitle {position:relative}
  header.classic .menu_content {justify-content: end}
  header.classic .menu_content nav ul.main-menu li.mobilemenu {display: block}
  header.classic #menu .menu_content nav ul.main-menu > li > a,
  header.classic #menu.stickyON .menu_content nav ul.main-menu > li > a,
  header.classic #menu.stickyOFF .menu_content nav ul.main-menu > li > a {height: auto;min-height: 48px;align-items: center;padding: 12px 20px;line-height: 1.25;}
  header.classic #menu.stickyON,header.classic #menu.stickyOFF,header.classic #menu {height: 50px;position: fixed;top:0;left: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_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 > a {font-size: .9rem;color:#333}
  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:.8rem;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: var(--main-color);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}

  /* --- Mode hamburger : neutralise le style "bouton" du dernier item (Reservez)
        pour qu'il s'aligne sur les autres items du menu mobile. */
  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: #333;background: transparent;border: 0;border-radius: 0;margin: 0;padding: 12px 20px;font-size: .9rem;font-weight: 500}
  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: #f7f4ed;color: var(--main-color)}
  header.classic .menu_content nav ul.main-menu > li > a.menu-link--button.actif,
  header.classic .menu_content nav ul.main-menu > li > a.menu-link--button.actif:hover,
  header.classic .menu_content nav ul.main-menu > li:last-child > a.actif,
  header.classic .menu_content nav ul.main-menu > li:last-child > a.actif:hover {color: #fff;background: var(--main-color)}
  header.classic .menu_content nav ul.main-menu > li > a.menu-link--button.actif .menu-link__label,
  header.classic .menu_content nav ul.main-menu > li > a.menu-link--button.actif .menu-link__subtitle,
  header.classic .menu_content nav ul.main-menu > li:last-child > a.actif .menu-link__label,
  header.classic .menu_content nav ul.main-menu > li:last-child > a.actif .menu-link__subtitle {color: #fff}

  /* --- Mode hamburger : switcher de langue integre au menu mobile ---------- */
  header.classic .menu_content nav ul.main-menu > li.language-switcher-item--menu {display: block;width: 350px;height: auto;padding: 0;border-bottom: 1px solid #eee;background: #fff}
  header .menu_content nav ul.main-menu > li.language-switcher-item--menu .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;padding: 12px 20px;width: 100%;color: #333;font-size: .9rem;font-weight: 500;cursor: pointer}
  header .language-switcher--menu .language-switcher__current::-webkit-details-marker {display: none}
  header .language-switcher--menu .language-switcher__eyebrow {display: inline-block;font-size: .68rem;font-weight: 700;letter-spacing: .08em;text-transform: uppercase;color: var(--main-color);margin-right: .35rem}
  header .language-switcher--menu .language-switcher__current-name {display: inline-block;flex: 1 1 auto;color: #333;font-size: .9rem;font-weight: 500}
  header .language-switcher--menu .language-switcher__chevron {margin-left: auto;transition: transform .2s ease}
  header .language-switcher--menu[open] .language-switcher__chevron {transform: rotate(180deg)}
  header .language-switcher--menu .language-switcher__dropdown {position: static;display: flex;flex-direction: column;width: 100%;padding: 0;background: #f7f4ed;box-shadow: none;border: 0;border-top: 1px solid #eee}
  header .language-switcher--menu .language-switcher__dropdown .language-switcher__link {display: flex;align-items: center;gap: .55rem;padding: 10px 20px 10px 32px;color: #333;font-size: .85rem;text-decoration: none;border-bottom: 1px solid rgba(0, 0, 0, .05)}
  header .language-switcher--menu .language-switcher__dropdown .language-switcher__link:last-child {border-bottom: 0}
  header .language-switcher--menu .language-switcher__dropdown .language-switcher__link.actif {color: var(--main-color);font-weight: 700;background: rgba(157, 174, 70, .08)}
  header .language-switcher--menu .language-switcher__dropdown .language-switcher__link:hover {background: rgba(157, 174, 70, .12)}
}
@media (max-width:768px){
  header.classic #menu .grid-menu {grid-template-columns: 1fr 1fr}
  header.classic #menu .menu_logo a {font-size: 1.1rem;line-height: 1}
}
/*
|
|
|
|
|
|
|
|
|
|
*/
/* ====== FOOTER ====== */
footer {background: #fff;border-top: 1px solid rgba(33,33,33,.08);}
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 .footer-owner-photo {width: min(190px, 100%);margin: 22px 0 0;padding: 0}
footer .footer-owner-photo--featured {width: min(220px, 100%);margin: 0 0 18px}
footer .footer-owner-photo picture,
footer .footer-owner-photo img {display: block;width: 100%;height: auto}
footer .footer-owner-photo img {border-radius: 18px;box-shadow: 0 18px 42px rgba(31,41,30,.12);border: 1px solid rgba(157,174,70,.18)}
footer .footer-owner-photo--featured img {border-radius: 22px;box-shadow: 0 20px 50px rgba(31,41,30,.14)}
footer .footer-owner-photo figcaption {margin-top: 8px;color: var(--main-color);font-size: .82rem;font-weight: 700;letter-spacing: .03em}
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-contact .footer-social {list-style: none;display: flex;flex-wrap: wrap;gap: 10px;margin: 18px 0 0;padding: 0}
footer .grid-footer .grid-item.bloc-contact .footer-social li {margin: 0}
footer .grid-footer .grid-item.bloc-contact .footer-social .footer-social__link {display: inline-flex;align-items: center;justify-content: center;width: 38px;height: 38px;border-radius: 50%;background: #f3f5ec;color: var(--main-color);border: 1px solid rgba(157,174,70,.25);transition: background-color .2s ease, color .2s ease, transform .2s ease, border-color .2s ease}
footer .grid-footer .grid-item.bloc-contact .footer-social .footer-social__link:hover {background: var(--main-color);color: #fff;border-color: var(--main-color);transform: translateY(-2px)}
footer .grid-footer .grid-item.bloc-contact .footer-social .footer-social__link svg {width: 20px;height: 20px;margin: 0;color: currentColor}
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%;color:#fff}
#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 .footer-owner-photo {margin-inline: auto}
  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%}
}
/*
|
|
|
|
|
|
|
|
|
|
*/
  /* ====== PAGES COMMUNES ====== */
.ss-hero {position: relative;isolation: isolate;display: flex;flex-direction: column;justify-content: center;align-items: stretch;gap: clamp(.55rem, 1.4vh, 1rem);text-align: center;min-height: clamp(340px, 52vh, 420px);color: #fff;overflow: hidden;margin: var(--ss-hero-mt) auto 0;padding: var(--ss-hero-pt) 0 clamp(3.5rem, 7vh, 5.5rem);}
.ss-hero__media {
  position: absolute;
  inset: 0;
  z-index: -2;
  overflow: hidden;
}

.ss-hero__media picture {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
}

.ss-hero__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  filter: saturate(1.02) contrast(1.04);
}
.ss-hero__overlay {position: absolute;inset: 0;z-index: -1;background: linear-gradient(135deg, rgba(23, 32, 24, .94) 0%, rgba(74, 93, 58, .92) 60%, rgba(150, 153, 22, .85) 100%), radial-gradient(circle at top right, rgba(255, 255, 255, .10), transparent 42%)}
.ss-hero__top, .ss-hero__inner {position: relative;z-index: 1}
.ss-hero__inner {display: grid;gap: clamp(.6rem, 1.5vh, 1.1rem);justify-items: center}
.ss-hero__heading {display: grid;gap: inherit}
.ss-hero__heading h1 {margin: 0;margin-inline: auto;color: #fff;text-shadow: 0 2px 18px rgba(0, 0, 0, .35);max-width: 30ch;line-height: 1.1}
.ss-hero__lead {margin: 0;margin-inline: auto;color: rgba(255, 255, 255, .94);max-width: 80ch;font-size: 1rem;line-height: 1.8;letter-spacing: .01rem}
.ss-hero__actions {display: flex;flex-wrap: wrap;gap: 12px;margin-top: clamp(.4rem, 1vh, 1rem);justify-content: center;margin-bottom: 20px}
.ss-hero #breadcrumb {padding: 0;color: rgba(255, 255, 255, .82);font-size: .85rem}
.ss-hero #breadcrumb a {color: rgba(255, 255, 255, .92);text-decoration: underline;text-decoration-thickness: 1px;text-underline-offset: .2em;text-decoration-color: rgba(255, 255, 255, .25);transition: color .2s ease, text-decoration-color .2s ease}
.ss-hero #breadcrumb a:hover {color: #fff;text-decoration-color: rgba(255, 255, 255, .7)}
.ss-hero #breadcrumb .actif {color:#d8e7ad}
.ss-hero #breadcrumb span[aria-hidden="true"] {color: rgba(255, 255, 255, .45);margin: 0 .3rem}
.ss-hero-stats {position: relative;z-index: 2;margin-top: clamp(-3.5rem, -5.5vh, -2.8rem);margin-bottom: clamp(2rem, 4vh, 3rem)}
.ss-hero-stats__grid {list-style: none;margin: 0;padding: clamp(1.4rem, 3vw, 2.5rem) clamp(1.2rem, 3vw, 2.4rem);background: #fff;border-radius: var(--border-radius-xl);box-shadow: 0 26px 60px rgba(15, 22, 15, .14), 0 2px 8px rgba(15, 22, 15, .04);display: grid;grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));gap: clamp(1.4rem, 2.5vw, 2rem);align-items: center}
.ss-hero-stats__item {display: flex;flex-direction: column;align-items: center;gap: 6px;text-align: center;position: relative}
.ss-hero-stats__item + .ss-hero-stats__item::before {content: "";position: absolute;left: calc(-1 * clamp(.7rem, 1.25vw, 1rem));top: 50%;transform: translateY(-50%);width: 1px;height: 80%;background: rgba(15, 22, 15, .25)}
.ss-hero-stats__value {font-family: var(--main-font);font-size: clamp(1.8rem, 2.2vw + .4rem, 2.6rem);line-height: 1;font-weight: 700;background: linear-gradient(135deg, var(--main-color), var(--second-color));-webkit-background-clip: text;background-clip: text;color: transparent;letter-spacing: -.01em}
.ss-hero-stats__label {color: var(--grey-color);font-size: .82rem;letter-spacing: .04em;text-transform: uppercase;font-weight: 600}
.ss-hero-stats__label span.small {text-transform: none;font-size: .78rem;letter-spacing: -.04em;font-weight: 400;opacity: .8}
@media (max-width: 1279px) {
  .ss-hero {min-height: auto;padding: clamp(1.4rem, 3vh, 2.4rem) 0 clamp(1.6rem, 3vh, 2.6rem)}
  .ss-hero__heading h1 {max-width: none}
  .ss-hero-stats {margin-top: clamp(1.2rem, 2.5vh, 1.8rem)}
  .ss-hero-stats__grid {grid-template-columns: repeat(2, 1fr);gap: 1.2rem}
  .ss-hero-stats__item + .ss-hero-stats__item::before {display: none}
}
@media (max-width: 640px) {
  .ss-hero__actions .btn {flex: 1 1 100%}
}

/* --- /SS-HERO --------------------------------------------------------- */
.faq-avis-cta {position: relative;display: block;background: linear-gradient(-90deg, #f7f4ed 0%, #fff 60%, #eef2df 100%)}
/*--- AVIS ---*/
.avis {position: relative;isolation: isolate;overflow: hidden;border-bottom: 1px solid rgba(33,33,33,.08)}
.avis .container {position: relative;z-index: 1}
.avis__split {display: grid;grid-template-columns: 1fr;gap: clamp(2rem, 4vw, 4rem);align-items: stretch}
.avis__story {display: grid;gap: clamp(1rem, 2vw, 1.6rem);align-content: start;text-align: left}
.avis__story-media {position: relative;border-radius: var(--border-radius-xl);overflow: hidden;box-shadow: 0 22px 60px rgba(10, 16, 12, .35)}
.avis__story-media img {width: 100%;height: 250px;display: block;object-fit: cover;object-position: center}
.avis__story-body {display: grid;gap: clamp(.6rem, 1.5vh, 1.1rem);max-width: 60ch}
.avis .title {margin-top: 40px;}
.avis__reviews {display: flex;flex-direction: column;gap: clamp(18px, 2vw, 26px)}
.content_avis {padding: clamp(1.6rem, 3vw, 2.6rem);border-radius: var(--border-radius-xl);background: rgba(255, 255, 255, .80);border: 1px solid rgba(255, 255, 255, .55);box-shadow: 0 25px 50px rgba(15, 22, 15, .20)}
.content_avis__stars {margin-bottom: 18px;color: var(--main-color);letter-spacing: .12em;font-size: 1.5rem}
.content_avis blockquote {margin: 0;font-size: .92rem;line-height: 1.8;letter-spacing: .01rem;color: #1f2820}
.content_avis figcaption {display: flex;gap: 10px;align-items: baseline;margin-top: 24px;color: var(--grey-color)}
.content_avis figcaption strong {color: #172018}
.content_avis figcaption cite {font-size: .9rem;font-style: normal}
.ap-reviews-grid {background: linear-gradient(-90deg, #f7f4ed 0%, #fff 60%, #eef2df 100%)}
.ap-reviews-grid .grid {gap: 24px}
.ap-reviews-grid .ap-review-card {background: #fff;padding: 34px 30px;border-radius: 20px;border: 1px solid rgba(0, 0, 0, 0.06);box-shadow: 0 18px 30px rgba(12, 12, 9, 0.05)}
.ap-reviews-grid .ap-review-card__stars {color: #f4b400;letter-spacing: 0.18em;font-size: 1rem;margin-bottom: 18px}
.ap-reviews-grid blockquote {margin: 0 0 22px 0;font-size: 1rem;line-height: 1.7;color: #2a2a2a}
.content_avis .review-body,
.ap-reviews-grid .review-body {display: grid;gap: 12px}
.content_avis .review-body .review-text,
.ap-reviews-grid .review-body .review-text {display: block}
.content_avis .review-body.is-collapsed .review-text,
.ap-reviews-grid .review-body.is-collapsed .review-text {display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 5;overflow: hidden}
.content_avis .review-body.is-expanded .review-text,
.ap-reviews-grid .review-body.is-expanded .review-text {display: block;overflow: visible}
.content_avis .review-toggle,
.ap-reviews-grid .review-toggle {justify-self: start;border: 0;background: transparent;padding: 0;color: var(--main-color);font: inherit;font-weight: 700;cursor: pointer;text-decoration: underline}
.ap-reviews-grid .ap-review-card__author {display: flex;flex-direction: column;gap: 4px;color: #666}
.ap-reviews-grid .ap-review-card__author strong {color: #1c1c1c}
@media (max-width: 1024px) {
  .ap-reviews-grid .grid {grid-template-columns: 1fr}
}
@media (min-width: 1025px) {
  .avis__split {grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);gap: clamp(2.4rem, 4vw, 5rem);align-items: center}
}
/*--- FAQ ---*/
#accueil .faq {background: linear-gradient(90deg, #f7f4ed 0%, #fff 60%, #eef2df 100%);}
#reserver .faq {margin-bottom: 4rem}
.faq .grid-2 {align-items: center;gap: clamp(2rem, 5vw, 5rem)}
.faq__list {display: grid;gap: 12px}
.faq details {border-radius: var(--border-radius-xl);background: rgba(255,255,255,.88);border: 1px solid rgba(157,174,70,.18);overflow: hidden;transition: border-color .25s ease, box-shadow .25s ease, background-color .25s ease}
.faq details[open] {border-color: rgba(157,174,70,.45);box-shadow: 0 12px 32px rgba(31,41,30,.08);background: #fff}
.faq summary {cursor: pointer;padding: 20px 24px;color: #172018;font-weight: 700;list-style: none;display: flex;align-items: center;justify-content: space-between;gap: 16px;transition: color .2s ease, background-color .2s ease}
.faq summary:hover {color: var(--main-color);background: rgba(157,174,70,.05)}
.faq summary::-webkit-details-marker {display: none}
.faq summary::after {content: "+";display: inline-flex;flex: 0 0 auto;color: var(--main-color);font-weight: 700;font-size: 1.4rem;line-height: 1;transform-origin: 50% 50%;transition: transform .32s cubic-bezier(.4,0,.2,1), color .2s ease;will-change: transform}
.faq details[open] summary::after {transform: rotate(45deg)}
.faq details .details-content {overflow: hidden;max-height: 0;opacity: 0;transition: max-height .32s cubic-bezier(.4,0,.2,1), opacity .28s ease}
.faq details[open] .details-content {opacity: 1}
.faq details p {padding: 0 24px 22px;margin: 0;color: var(--grey-color)}
.faq--domaine__inner {display: grid;gap: clamp(2rem, 4vw, 3.5rem)}
.faq--domaine .title.center {max-width: 850px;margin-inline: auto;text-align: center}
.faq--domaine .title.center .before {margin-inline: auto}
.faq--domaine .title.center .lead {max-width: 760px;margin-inline: auto}
.faq--domaine .faq__list {grid-template-columns: repeat(2, minmax(0, 1fr));align-items: start;gap: 16px}
@media (prefers-reduced-motion: reduce) {
  .faq details, .faq summary, .faq summary::after, .faq details .details-content {transition: none}
}
/*--- CTA ---*/
.final-cta {position: relative;overflow: hidden}
#accueil .final-cta {padding-bottom:clamp(4.5rem, 5vw, 9rem);background: linear-gradient(90deg, #f7f4ed 0%, #fff 60%, #eef2df 100%);}
.final-cta__box {position: relative;text-align: center;padding: clamp(2.6rem, 5vw, 4.8rem);border-radius: var(--border-radius-xl);background: linear-gradient(135deg, rgba(23, 32, 24, .94) 0%, rgba(74, 93, 58, .92) 60%, rgba(150, 153, 22, .85) 100%), url('../img/cta.avif') center / cover;color: #fff;box-shadow: 0 30px 80px rgba(31, 41, 30, .20)}
.final-cta__box .before {margin-inline: auto;color: #dcebb3}
.final-cta__box h2 {margin: 0 0 14px;color: #fff;text-shadow: 0 2px 18px rgba(0, 0, 0, .35)}
.final-cta__box .lead {max-width: 60ch;margin: 0 auto;color: rgba(255, 255, 255, .92);line-height: 1.7}
.final-cta__actions {display: flex;flex-wrap: wrap;justify-content: center;gap: 12px;margin-top: clamp(1.4rem, 2.5vh, 2rem)}

@media (max-width: 1024px) {
  .faq .grid-2 {grid-template-columns: 1fr}
  .faq--domaine .faq__list {grid-template-columns: 1fr}
  .home-label-card {min-height: 0}
  .home-onsite__grid {grid-template-columns: repeat(2, minmax(0, 1fr))}
}
@media (max-width: 768px) {
  .home-labels__featured {grid-template-columns: 1fr}
  .home-onsite__grid {grid-template-columns: 1fr}
  .home-labels__partners ul {display: grid;grid-template-columns: 1fr}
  .content_avis figcaption {display: grid;gap: 2px}
  .final-cta__actions {flex-direction: column}
  .final-cta__actions .btn {width: 100%;justify-content: center}
}



/*
|
|
|
|
|
|
|
|
|
|
*/
/* ======================================================== */
/* --- MODALE PDF (reutilisable) --------------------------- */

.pdf-modal {position: fixed;inset: 0;z-index: 9999;display: flex;align-items: center;justify-content: center;padding: clamp(0.6rem, 2vw, 1.4rem);opacity: 0;visibility: hidden;transition: opacity .25s ease, visibility 0s linear .25s}
.pdf-modal.is-open {opacity: 1;visibility: visible;transition: opacity .25s ease}
.pdf-modal[hidden] {display: none}

.pdf-modal__backdrop {position: absolute;inset: 0;background: rgba(15, 22, 15, .72);backdrop-filter: blur(4px);-webkit-backdrop-filter: blur(4px);cursor: zoom-out}

.pdf-modal__dialog {position: relative;display: flex;flex-direction: column;width: min(1100px, 100%);max-height: min(92vh, 1000px);background: #fff;border-radius: var(--border-radius-xl, 18px);box-shadow: 0 30px 80px rgba(0, 0, 0, .45);overflow: hidden;transform: translateY(8px) scale(.985);transition: transform .3s cubic-bezier(.2, .7, .2, 1)}
.pdf-modal.is-open .pdf-modal__dialog {transform: translateY(0) scale(1)}

.pdf-modal__head {display: flex;align-items: center;gap: 14px;padding: 14px clamp(1rem, 2.2vw, 1.6rem);border-bottom: 1px solid rgba(15, 22, 15, .08);background: linear-gradient(180deg, #fafbf6, #f3f5ea)}
.pdf-modal__title {margin: 0;flex: 1;min-width: 0;color: #172018;font-size: clamp(1rem, 1.4vw, 1.15rem);font-weight: 700;line-height: 1.3;letter-spacing: -.005em;overflow: hidden;text-overflow: ellipsis;white-space: nowrap}

.pdf-modal__close {display: inline-flex;align-items: center;justify-content: center;width: 40px;height: 40px;flex: 0 0 auto;border: 1px solid rgba(15, 22, 15, .12);background: #fff;color: #172018;border-radius: 50%;cursor: pointer;transition: transform .2s ease, color .2s ease, border-color .2s ease, background .2s ease}
.pdf-modal__close:hover {color: var(--main-color);border-color: var(--main-color);transform: rotate(90deg)}
.pdf-modal__close:focus-visible {outline: 3px solid var(--main-color);outline-offset: 2px}

.pdf-modal__body {flex: 1;position: relative;min-height: 0;background: #2a2e26}
.pdf-modal__viewer {position: absolute;inset: 0}
.pdf-modal__iframe {width: 100%;height: 100%;border: 0;background: #2a2e26;display: block}
.pdf-modal__nojs {margin: 0;padding: 24px;text-align: center;color: #fff;font-size: .92rem}
.pdf-modal__nojs-link {color: #dcebb3;font-weight: 700;text-decoration: underline}

.pdf-modal__foot {display: flex;flex-wrap: wrap;gap: 10px;justify-content: flex-end;padding: 14px clamp(1rem, 2.2vw, 1.6rem);border-top: 1px solid rgba(15, 22, 15, .08);background: #fafbf6}
.pdf-modal__btn {display: inline-flex;align-items: center;justify-content: center;gap: 8px;text-decoration: none}
.pdf-modal__btn svg {flex: 0 0 auto}

html.pdf-modal--open,
body.pdf-modal--open {overflow: hidden;touch-action: none}

@media (max-width: 640px) {
  .pdf-modal {padding: 0}
  .pdf-modal__dialog {width: 100%;max-height: 100vh;height: 100vh;border-radius: 0}
  .pdf-modal__title {font-size: .95rem}
  .pdf-modal__foot {justify-content: stretch}
  .pdf-modal__btn {flex: 1 1 100%}
}

@media (prefers-reduced-motion: reduce) {
  .pdf-modal,
  .pdf-modal__dialog,
  .pdf-modal__close {transition: none !important}
}

/* --- /MODALE PDF ----------------------------------------- */
/* ======================================================== */

/* ======================================================== */
/* --- MODALE RESERVATION MULTI-WIDGETS -------------------- */

.gite-booking__widget--cta {gap: 12px}
.gite-booking__widget--cta .btn-block {width: 100%;justify-content: center}
.gite-booking__widget-hint {margin: 0;color: var(--grey-color);font-size: .82rem;line-height: 1.5;text-align: center;opacity: .85}

.booking-modal {position: fixed;inset: 0;z-index: 9999;display: flex;align-items: center;justify-content: center;padding: clamp(0.6rem, 2vw, 1.4rem);opacity: 0;visibility: hidden;transition: opacity .25s ease, visibility 0s linear .25s}
.booking-modal.is-open {opacity: 1;visibility: visible;transition: opacity .25s ease}
.booking-modal[hidden] {display: none}

.booking-modal__backdrop {position: absolute;inset: 0;background: rgba(15, 22, 15, .72);backdrop-filter: blur(4px);-webkit-backdrop-filter: blur(4px);cursor: zoom-out}

.booking-modal__dialog {position: relative;display: flex;flex-direction: column;width: min(1200px, 100%);max-height: min(92vh, 1000px);background: #fff;border-radius: var(--border-radius-xl, 18px);box-shadow: 0 30px 80px rgba(0, 0, 0, .45);overflow: hidden;transform: translateY(8px) scale(.985);transition: transform .3s cubic-bezier(.2, .7, .2, 1)}
.booking-modal.is-open .booking-modal__dialog {transform: translateY(0) scale(1)}

.booking-modal__head {position: relative;padding: clamp(1rem, 1.8vw, 1.4rem) clamp(1.2rem, 2.2vw, 1.8rem);padding-right: clamp(3.5rem, 6vw, 4.5rem);border-bottom: 1px solid rgba(15, 22, 15, .08);background: linear-gradient(180deg, #fafbf6, #f3f5ea)}
.booking-modal__title {margin: 0 0 .35rem;color: #172018;font-size: clamp(1.05rem, 1.5vw, 1.25rem);font-weight: 700;line-height: 1.3;letter-spacing: -.005em}
.booking-modal__hint {margin: 0;color: var(--grey-color);font-size: .85rem;line-height: 1.5;max-width: 720px}

.booking-modal__close {position: absolute;top: 14px;right: 14px;display: inline-flex;align-items: center;justify-content: center;width: 40px;height: 40px;border: 1px solid rgba(15, 22, 15, .12);background: #fff;color: #172018;border-radius: 50%;cursor: pointer;transition: transform .2s ease, color .2s ease, border-color .2s ease, background .2s ease}
.booking-modal__close:hover {color: var(--main-color);border-color: var(--main-color);transform: rotate(90deg)}
.booking-modal__close:focus-visible {outline: 3px solid var(--main-color);outline-offset: 2px}

.booking-modal__body {flex: 1;min-height: 0;overflow-y: auto;-webkit-overflow-scrolling: touch;background: #fafbf6;padding: clamp(1rem, 2vw, 1.6rem)}

.booking-modal__grid {list-style: none;margin: 0;padding: 0;display: grid;grid-template-columns: repeat(2, minmax(0, 1fr));gap: clamp(1rem, 1.6vw, 1.4rem)}
.booking-modal__item {display: flex;flex-direction: column;background: #fff;border: 1px solid rgba(15, 22, 15, .08);border-radius: var(--border-radius-lg, 14px);overflow: hidden;box-shadow: 0 4px 14px rgba(15, 22, 15, .04);transition: border-color .25s ease, box-shadow .25s ease}
.booking-modal__item:hover {border-color: rgba(157, 174, 70, .35);box-shadow: 0 8px 22px rgba(15, 22, 15, .08)}

.booking-modal__item-head {display: flex;align-items: center;gap: 12px;padding: 12px 14px;background: linear-gradient(90deg, rgba(157, 174, 70, .12), rgba(157, 174, 70, .02));border-bottom: 1px solid rgba(15, 22, 15, .06)}

.booking-modal__item-icon {display: inline-flex;align-items: center;justify-content: center;width: 34px;height: 34px;flex: 0 0 auto;background: #fff;color: var(--main-color);border: 1px solid rgba(157, 174, 70, .35);border-radius: 50%;box-shadow: 0 2px 6px rgba(15, 22, 15, .06)}
.booking-modal__item-icon svg {width: 18px;height: 18px}

.booking-modal__item--water .booking-modal__item-icon {color: #2b7aa8;border-color: rgba(43, 122, 168, .35);background: linear-gradient(180deg, #f0f8fc, #fff)}
.booking-modal__item--water .booking-modal__item-head {background: linear-gradient(90deg, rgba(43, 122, 168, .12), rgba(43, 122, 168, .02))}
.booking-modal__item--woods .booking-modal__item-icon {color: #6a8a3a;border-color: rgba(106, 138, 58, .4);background: linear-gradient(180deg, #f6f9ec, #fff)}
.booking-modal__item--woods .booking-modal__item-head {background: linear-gradient(90deg, rgba(106, 138, 58, .14), rgba(106, 138, 58, .02))}

.booking-modal__item-titles {display: flex;flex-direction: column;gap: 2px;min-width: 0;flex: 1 1 auto}
.booking-modal__item-label {color: #172018;font-size: 1rem;font-weight: 800;letter-spacing: .02em;line-height: 1.2;text-transform: uppercase}
.booking-modal__item-location {color: var(--grey-color);font-size: .78rem;font-weight: 500;line-height: 1.3;letter-spacing: .005em}
.booking-modal__item--water .booking-modal__item-location {color: #2b7aa8}
.booking-modal__item--woods .booking-modal__item-location {color: #6a8a3a}

.booking-modal__item-widget {padding: 10px}
.booking-modal__item-widget .booking-widget {min-height: 56px}
.booking-modal__item-widget .booking-widget:empty::before,
.booking-modal__item-widget .booking-widget:not(:has(*))::before {content: "Chargement du module…";display: block;padding: 14px;color: var(--grey-color);font-size: .85rem;text-align: center;background: rgba(157, 174, 70, .08);border: 1px dashed rgba(157, 174, 70, .3);border-radius: var(--border-radius-md, 10px)}

html.booking-modal--open,
body.booking-modal--open {overflow: hidden;touch-action: none}

@media (max-width: 900px) {
  .booking-modal__grid {grid-template-columns: minmax(0, 1fr)}
}

@media (max-width: 640px) {
  .booking-modal {padding: 0}
  .booking-modal__dialog {width: 100%;max-height: 100vh;height: 100vh;border-radius: 0}
  .booking-modal__title {font-size: 1rem}
  .booking-modal__hint {font-size: .8rem}
}

@media (prefers-reduced-motion: reduce) {
  .booking-modal,
  .booking-modal__dialog,
  .booking-modal__close {transition: none !important}
}

/* --- /MODALE RESERVATION MULTI-WIDGETS ------------------- */
/* ======================================================== */
