/* Harmonisation visuelle des pages secondaires avec la page d'accueil */
body.site-modern {
  --site-primary: #022620d3;
  --site-primary-solid: #022620;
  --site-ink: #17312d;
  --site-muted: #53635f;
  --site-surface: #fff;
  --site-soft: #f3f7f5;
  background: #f7f9f8;
  color: var(--site-ink);
  font-size: 12pt;
  line-height: 1.7;
}
body.site-modern p { color: var(--site-muted); }
body.site-modern h1, body.site-modern h2, body.site-modern h3, body.site-modern h4, body.site-modern h5 { color: var(--site-primary-solid); letter-spacing: -.02em; line-height: 1.25; }
body.site-modern h2 { font-size: clamp(1.55rem, 2.2vw, 2.15rem); }
body.site-modern a { transition: color .2s ease, background-color .2s ease, box-shadow .2s ease; }
/* Barre de navigation commune, fixe et pleine largeur */
body.site-modern #header, body.site-modern #header.alt {
  position: fixed !important; top: 0 !important; left: 0 !important; right: 0 !important;
  width: 100% !important; height: 4.2em; line-height: 4.2em; z-index: 10000;
  box-sizing: border-box; background: #022620d3 !important;
  backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
  box-shadow: 0 8px 28px rgba(0,25,20,.16); border-bottom: 1px solid rgba(255,255,255,.12);
}
body.site-modern #header h1 { position:absolute; left:1rem; top:0; height:4.2em; line-height:4.2em; margin:0; padding:0; z-index:2; }
body.site-modern #header h1 a { display:flex; align-items:center; height:100%; color:#fff; text-decoration:none; font-size:0; }
body.site-modern #header h1 .image.logo { display:inline-flex; align-items:center; height:100%; width:auto; max-width:none; }
body.site-modern #header h1 img { display:block; max-height:3.15em; width:auto; max-width:150px; object-fit:contain; }
body.site-modern #header nav { position:absolute; inset:0; top:0; width:100%; z-index:1; background:transparent !important; text-align:center; }
body.site-modern #header nav > ul { display:flex; justify-content:center; align-items:center; gap:.25rem; height:100%; margin:0; padding:0 1rem 0 170px; box-sizing:border-box; }
body.site-modern #header nav > ul > li { display:inline-block; margin:0 .2rem; vertical-align:middle; }
body.site-modern #header nav > ul > li > a { color:#f7fbf9 !important; font-size:.86rem; font-weight:600; text-decoration:none; padding:.55em .65em; border-radius:7px; white-space:nowrap; }
body.site-modern #header nav > ul > li > a:hover { background:rgba(255,255,255,.12); color:#fff !important; }
body.site-modern #header nav ul ul { background:#022620; border-radius:10px; box-shadow:0 12px 30px rgba(0,0,0,.2); }
body.site-modern #header nav ul ul a { color:#f7fbf9 !important; }
/* Laisser de la place à la navigation fixe, sans modifier les proportions des images */
body.site-modern #bannerparc, body.site-modern #bannerpiscine, body.site-modern #bannersalle,
body.site-modern #bannercontact, body.site-modern #bannertourisme { position:relative; background-position:center; background-size:cover; }
body.site-modern #bannerparc, body.site-modern #bannerpiscine, body.site-modern #bannersalle,
body.site-modern #bannercontact, body.site-modern #bannertourisme { border-radius:0 0 18px 18px; overflow:hidden; }
body.site-modern #bannerparc::before, body.site-modern #bannerpiscine::before, body.site-modern #bannersalle::before,
body.site-modern #bannercontact::before, body.site-modern #bannertourisme::before { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(2,38,32,.18),rgba(2,38,32,.66)); pointer-events:none; }
body.site-modern #bannerparc .container, body.site-modern #bannerpiscine .container, body.site-modern #bannersalle .container,
body.site-modern #bannercontact .container, body.site-modern #bannertourisme .container { position:relative; z-index:1; }
body.site-modern .wrapper { padding:2.2em 0; }
body.site-modern #main { background:#f7f9f8; padding-top:2.2rem; }
body.site-modern #main > .container, body.site-modern .wrapper > .container { max-width:1240px; }
body.site-modern #main .container > section { margin-top:1.8rem; }
body.site-modern .image.fit, body.site-modern .image img, body.site-modern img.image-cliquable { border-radius:14px; overflow:hidden; }
body.site-modern .image.fit { display:block; }
body.site-modern #main .row > div > section, body.site-modern #main .row > section,
body.site-modern .features > section, body.site-modern .box, body.site-modern .service-card {
  border-radius:14px;
}
body.site-modern .button, body.site-modern input[type="submit"], body.site-modern input[type="button"], body.site-modern button {
  border-radius:9px; background:#022620d3; color:#fff !important; border:1px solid rgba(2,38,32,.18); box-shadow:0 4px 12px rgba(2,38,32,.12);
}
body.site-modern .button:hover, body.site-modern input[type="submit"]:hover, body.site-modern input[type="button"]:hover { background:#16473d; }
body.site-modern .icon-bullets li, body.site-modern .labeled-icons li { line-height:1.55; }
body.site-modern footer { color:#eaf1ee; }
body.site-modern footer a { color:#fff; }
@media (max-width: 980px) {
  body.site-modern #header h1 { left:.6rem; }
  body.site-modern #header h1 img { max-width:100px; max-height:2.7em; }
  body.site-modern #header nav > ul { padding-left:112px; padding-right:.35rem; gap:0; }
  body.site-modern #header nav > ul > li { margin:0; }
  body.site-modern #header nav > ul > li > a { font-size:.72rem; padding:.45em .4em; }
}
@media (max-width: 736px) {
  body.site-modern #header, body.site-modern #header.alt { height:auto; min-height:4em; line-height:1.2; }
  body.site-modern #header h1 { height:4em; line-height:4em; }
  body.site-modern #header h1 img { max-width:72px; max-height:2.35em; }
  body.site-modern #header nav > ul { min-height:4em; padding-left:82px; flex-wrap:wrap; align-content:center; }
  body.site-modern #header nav > ul > li > a { font-size:.65rem; padding:.35em .32em; }
  body.site-modern .wrapper { padding:1.5em 0; }
  body.site-modern #main { padding-top:1.5rem; }
}


/* Ajustements demandés : bannières carrées, pieds de page et cartes d'équipements */
body.site-modern #bannerparc, body.site-modern #bannerpiscine,
body.site-modern #bannersalle, body.site-modern #bannercontact,
body.site-modern #bannertourisme {
  border-radius: 0 !important;
  overflow: hidden;
}
body.site-modern #bannerparc img, body.site-modern #bannerpiscine img,
body.site-modern #bannersalle img, body.site-modern #bannercontact img,
body.site-modern #bannertourisme img {
  border-radius: 0 !important;
}
/* Le logo blanc reste présent dans la barre de navigation de chaque page secondaire. */
body.site-modern #header h1 img {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}
/* Pieds de page dans la couleur principale du site. */
body.site-modern #footer, body.site-modern footer,
body.site-modern #footer .container, body.site-modern footer .container {
  background-color: #022620 !important;
  color: #eef5f2 !important;
}
body.site-modern #footer h1, body.site-modern #footer h2,
body.site-modern #footer h3, body.site-modern #footer h4,
body.site-modern footer h1, body.site-modern footer h2,
body.site-modern footer h3, body.site-modern footer h4 {
  color: #fff !important;
}
body.site-modern #footer p, body.site-modern footer p,
body.site-modern #footer li, body.site-modern footer li {
  color: #e2ece8;
}
body.site-modern #footer a, body.site-modern footer a { color: #fff !important; }
body.site-modern #footer a:hover, body.site-modern footer a:hover { color: #c6ddd4 !important; }
/* Les éléments d'équipement sont présentés en cartes cohérentes avec les services de l'accueil. */
body.site-modern #main li.icon {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: .65rem;
  height: calc(100% - .8rem);
  min-height: 145px;
  margin: 0 0 .8rem;
  padding: 1.1rem .85rem;
  border: 1px solid rgba(2, 38, 32, .10);
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 5px 18px rgba(15, 44, 36, .06);
  text-align: center;
  list-style: none;
}
body.site-modern #main li.icon > img {
  display: block;
  width: 48px;
  height: 48px;
  object-fit: contain;
  border-radius: 0 !important;
  margin: 0 auto;
}
body.site-modern #main li.icon p {
  margin: 0;
  color: #17312d;
  text-align: center;
  line-height: 1.45;
}
body.site-modern #main li.icon:hover {
  border-color: rgba(2, 38, 32, .25);
  box-shadow: 0 8px 22px rgba(15, 44, 36, .10);
  transform: translateY(-2px);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
@media (max-width: 736px) {
  body.site-modern #main li.icon { min-height: 125px; padding: .9rem .65rem; }
  body.site-modern #main li.icon > img { width: 42px; height: 42px; }
}


/* Correctifs transversaux : images sans contour gris, logo visible et navigation ajustée */
body.site-modern img,
body.site-modern .image,
body.site-modern .image img,
body.site-modern img.image-cliquable,
body.site-modern .image.fit,
body.site-modern .image.fit img {
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
}

/* Logo blanc : le placer au-dessus des autres éléments du bandeau et garantir son affichage. */
body.site-modern #header {
  isolation: isolate;
}
body.site-modern #header h1 {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  z-index: 20 !important;
  left: 1rem !important;
  width: auto !important;
}
body.site-modern #header h1 a,
body.site-modern #header h1 .image.logo {
  display: inline-flex !important;
  visibility: visible !important;
  opacity: 1 !important;
  align-items: center !important;
  width: auto !important;
  height: 100% !important;
  max-width: none !important;
  background: transparent !important;
}
body.site-modern #header h1 img,
body.site-modern #header .image.logo img {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  width: auto !important;
  height: auto !important;
  max-width: 150px !important;
  max-height: 3.15em !important;
  object-fit: contain !important;
  border: 0 !important;
  box-shadow: none !important;
}
body.site-modern #header nav {
  z-index: 10 !important;
}

/* Chaque lien de navigation est encadré individuellement : le cadre épouse le texte. */
body.site-modern #header nav > ul {
  gap: .35rem !important;
}
body.site-modern #header nav > ul > li {
  display: flex !important;
  align-items: center !important;
  flex: 0 0 auto !important;
  margin: 0 .12rem !important;
}
body.site-modern #header nav > ul > li > a {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: max-content !important;
  padding: .48em .68em !important;
  line-height: 1.25 !important;
  white-space: nowrap !important;
  border: 1px solid rgba(205, 215, 211, .58) !important;
  border-radius: 7px !important;
  background: rgba(235, 240, 238, .07) !important;
  box-sizing: border-box !important;
}
body.site-modern #header nav > ul > li > a:hover,
body.site-modern #header nav > ul > li > a:focus-visible {
  background: rgba(225, 232, 229, .18) !important;
  border-color: rgba(225, 232, 229, .85) !important;
  outline: none !important;
}
body.site-modern #header nav ul ul {
  min-width: max-content;
}
@media (max-width: 980px) {
  body.site-modern #header h1 { left: .6rem !important; }
  body.site-modern #header h1 img,
  body.site-modern #header .image.logo img { max-width: 100px !important; max-height: 2.7em !important; }
  body.site-modern #header nav > ul { padding-left: 112px !important; padding-right: .35rem !important; gap: .15rem !important; }
  body.site-modern #header nav > ul > li > a { padding: .42em .42em !important; font-size: .72rem !important; }
}
@media (max-width: 736px) {
  body.site-modern #header h1 img,
  body.site-modern #header .image.logo img { max-width: 72px !important; max-height: 2.35em !important; }
  body.site-modern #header nav > ul { padding-left: 82px !important; gap: .12rem !important; }
  body.site-modern #header nav > ul > li > a { padding: .32em .3em !important; font-size: .65rem !important; }
}


/* Images: no grey outlines or shadows; rounded corners on content images, not page banners. */
body.site-modern img {
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
}
body.site-modern a.image img,
body.site-modern .image img,
body.site-modern .features img,
body.site-modern .gallery img,
body.site-modern img[src*="essai2.jpeg"],
body.site-modern img[src*="20260617_Domaine-de-Fontsauzine_Air-006.jpg"],
body.site-modern img[src*="Exte" i] {
  border-radius: 12px !important;
}
body.site-modern #banner img,
body.site-modern #header img { border-radius: 0 !important; }

/* Match the homepage navigation behavior and layout on all secondary pages. */
body.site-modern #header,
body.site-modern #header.alt {
  height: 4.2em !important;
  line-height: 4.2em !important;
  background: #022620d3 !important;
  position: fixed !important;
  top: 0 !important; left: 0 !important; right: 0 !important;
  width: 100% !important; z-index: 10000 !important;
  box-shadow: 0 8px 28px rgba(0,25,20,.16) !important;
  border-bottom: 1px solid rgba(255,255,255,.12) !important;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
body.site-modern #header h1 {
  position: absolute !important; left: 1rem !important; top: 0 !important;
  height: inherit !important; line-height: inherit !important;
  margin: 0 !important; padding: 0 !important; z-index: 2 !important;
}
body.site-modern #header h1 a {
  display: flex !important; align-items: center !important; height: 100% !important;
  color: #fff !important; text-decoration: none !important; font-size: 0 !important;
}
body.site-modern #header h1 .image.logo {
  display: inline-flex !important; align-items: center !important;
  width: auto !important; max-width: none !important; height: inherit !important;
}
body.site-modern #header .image.logo img {
  display: block !important; max-height: 3.25em !important; max-width: 150px !important;
  width: auto !important; object-fit: contain !important; border: 0 !important; box-shadow: none !important;
}
body.site-modern #header nav {
  position: absolute !important; inset: 0 !important; top: 0 !important;
  width: 100% !important; z-index: 1 !important; background: transparent !important;
  text-align: right !important;
}
body.site-modern #header nav > ul {
  display: flex !important; justify-content: flex-end !important; align-items: center !important;
  height: 100% !important; margin: 0 !important; padding: 0 1rem 0 170px !important;
  box-sizing: border-box !important; gap: 0 !important;
}
body.site-modern #header nav > ul > li {
  display: inline-block !important; flex: 0 0 auto !important;
  margin: 0 0 0 .85em !important; vertical-align: middle !important;
}
body.site-modern #header nav > ul > li > a {
  display: inline-block !important; width: auto !important; min-width: 0 !important;
  color: #f7fbf9 !important; font-size: .9rem !important; font-weight: 600 !important;
  text-decoration: none !important; padding: .55em .65em !important;
  border: 0 !important; border-radius: 7px !important; background: transparent !important;
  white-space: nowrap !important; line-height: inherit !important;
}
body.site-modern #header nav > ul > li > a:hover,
body.site-modern #header nav > ul > li > a:focus-visible {
  background: rgba(255,255,255,.12) !important; color: #fff !important; outline: none !important;
}
body.site-modern #header nav ul ul { min-width: max-content !important; }
@media (max-width: 980px) {
  body.site-modern #header h1 { left: .6rem !important; }
  body.site-modern #header .image.logo img { max-width: 100px !important; max-height: 2.7em !important; }
  body.site-modern #header nav > ul { padding-left: 112px !important; padding-right: .35rem !important; }
  body.site-modern #header nav > ul > li { margin-left: .25em !important; }
  body.site-modern #header nav > ul > li > a { padding: .42em .42em !important; font-size: .72rem !important; }
}
@media (max-width: 736px) {
  body.site-modern #header .image.logo img { max-width: 72px !important; max-height: 2.35em !important; }
  body.site-modern #header nav > ul { padding-left: 82px !important; }
  body.site-modern #header nav > ul > li { margin-left: .12em !important; }
  body.site-modern #header nav > ul > li > a { padding: .32em .3em !important; font-size: .65rem !important; }
}


/* Navigation: mêmes dimensions, logo, alignement et comportement que la page d'accueil */
body.site-modern #header,
body.site-modern #header.alt,
body.site-modern #header.alt.reveal {
  position: fixed !important; top: 0 !important; left: 0 !important; right: 0 !important;
  width: 100% !important; height: 4.2em !important; line-height: 4.2em !important;
  box-sizing: border-box !important; background: #022620d3 !important; background-color: #022620d3 !important;
  border-bottom: 1px solid rgba(255,255,255,.12) !important;
  box-shadow: 0 8px 28px rgba(0,25,20,.16) !important;
  backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); z-index: 10000 !important;
}
body.site-modern #header h1, body.site-modern #header.alt h1 {
  display: block !important; position: absolute !important; left: .85rem !important; top: 0 !important;
  height: 4.2em !important; line-height: 4.2em !important; margin: 0 !important; padding: 0 !important;
  opacity: 1 !important; visibility: visible !important; transform: none !important; z-index: 3 !important;
}
body.site-modern #header h1 > a { display: flex !important; align-items: center !important; height: 100% !important; padding: 0 !important; line-height: 1 !important; }
body.site-modern #header h1 .image.logo {
  display: flex !important; align-items: center !important; justify-content: center !important;
  width: 3.05em !important; height: 3.05em !important; overflow: hidden !important; margin: 0 !important;
  padding: 0 !important; line-height: 1 !important; background: transparent !important; border: 0 !important; box-shadow: none !important;
}
body.site-modern #header .image.logo img {
  display: block !important; width: 100% !important; height: 100% !important; max-width: none !important; max-height: none !important;
  object-fit: contain !important; object-position: center !important; transform: scale(1.22); transform-origin: center;
  border: 0 !important; box-shadow: none !important; background: transparent !important;
}
body.site-modern #header nav, body.site-modern #header.alt nav {
  position: absolute !important; inset: 0 !important; width: 100% !important; height: 4.2em !important; line-height: 4.2em !important;
  margin: 0 !important; padding: 0 5.5em !important; box-sizing: border-box !important; text-align: center !important;
  background: transparent !important; top: 0 !important; left: 0 !important; right: 0 !important; z-index: 2 !important;
}
body.site-modern #header nav > ul {
  display: inline-flex !important; align-items: center !important; justify-content: center !important; flex-wrap: nowrap !important;
  height: 100% !important; margin: 0 auto !important; padding: 0 !important; white-space: nowrap !important;
}
body.site-modern #header nav > ul > li { display: inline-block !important; margin: 0 .45em !important; padding: 0 !important; }
body.site-modern #header nav > ul > li > a { line-height: 1.3 !important; }
@media screen and (max-width: 980px) {
  body.site-modern #header, body.site-modern #header.alt, body.site-modern #header.alt.reveal { height: 3.7em !important; line-height: 3.7em !important; }
  body.site-modern #header h1, body.site-modern #header.alt h1 { height: 3.7em !important; line-height: 3.7em !important; }
  body.site-modern #header h1 .image.logo { width: 2.7em !important; height: 2.7em !important; }
  body.site-modern #header nav, body.site-modern #header.alt nav { height: 3.7em !important; line-height: 3.7em !important; padding: 0 4.7em !important; }
  body.site-modern #header nav > ul > li { margin: 0 .2em !important; }
}
@media screen and (max-width: 736px) { body.site-modern #header.alt { display: none !important; } }


/* Contact : restaurer les pictogrammes Font Awesome dans la liste d'icônes */
body.site-modern #main .labeled-icons h3.icon {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 2.25em !important;
  height: 2.25em !important;
  min-width: 2.25em !important;
  margin: 0 .8em .5em 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: #022620 !important;
  font-size: 1.25em !important;
  line-height: 1 !important;
  text-align: center !important;
  vertical-align: middle !important;
}
body.site-modern #main .labeled-icons h3.icon:before {
  display: inline-block !important;
  font-family: FontAwesome !important;
  font-style: normal !important;
  font-weight: normal !important;
  text-transform: none !important;
  line-height: 1 !important;
  speak: none;
  color: #022620 !important;
}
body.site-modern #main .labeled-icons h3.fa-map-marker:before { content: "\\f041" !important; }
body.site-modern #main .labeled-icons h3.fa-phone:before { content: "\\f095" !important; }
body.site-modern #main .labeled-icons h3.fa-envelope:before { content: "\\f0e0" !important; }
body.site-modern #main .labeled-icons h3.fa-facebook:before { content: "\\f09a" !important; }
body.site-modern #main .labeled-icons h3.fa-instagram:before { content: "\\f16d" !important; }
body.site-modern #main .labeled-icons h3.icon .label { display: none !important; }


/* Correction ciblée de la boîte de contact : pas de cartes blanches derrière les pictogrammes */
body.site-modern #main .carre ul.icon-bullets,
body.site-modern #main .carre ul.icon-bullets li,
body.site-modern #main .carre ul.icon-bullets li.icon {
  background: transparent !important;
  background-color: transparent !important;
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
}
body.site-modern #main .carre ul.icon-bullets li {
  border-radius: 0 !important;
  margin: 0 0 1rem !important;
  padding: .35rem 0 !important;
  color: #fff !important;
  list-style: none !important;
}
body.site-modern #main .carre ul.icon-bullets li img {
  display: inline-block !important;
  width: 72px !important;
  height: 72px !important;
  max-width: 100% !important;
  object-fit: contain !important;
  background: transparent !important;
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  filter: none !important;
}
body.site-modern #main .carre ul.icon-bullets li a,
body.site-modern #main .carre ul.icon-bullets li a:link,
body.site-modern #main .carre ul.icon-bullets li a:visited,
body.site-modern #main .carre ul.icon-bullets li a center,
body.site-modern #main .carre .fit p,
body.site-modern #main .carre .fit p:not(:has(strong)) {
  color: #fff !important;
}
body.site-modern #main .carre .fit p strong,
body.site-modern #main .carre .fit h2,
body.site-modern #main .carre .fit h3,
body.site-modern #main .carre > h2 {
  color: #fff !important;
}
body.site-modern #main .carre .fit,
body.site-modern #main .carre .fit *:not(a):not(h1):not(h2):not(h3):not(h4):not(strong) {
  color: #fff !important;
}
body.site-modern #main .carre .fit a { color: #fff !important; }
