/* ============================================================
   CAPA SOMMAIRE (Homepage) — Kerzerho
   Slider, sections, mosaïques, camping list
   Couleur primaire : #0f527d | Accent : #e1d9d0
   ============================================================ */


h1{text-align:left !important;}

/* === SLIDER HERO (style Tarn Tourisme) === */
#slider {
  position: relative;
  width: 100%;
  height: calc(100vh - 40px);
  overflow: hidden;
  background: #0f527d;
}

.slider {
  position: relative;
  width: 100%;
  height: 100%;
}

/* Slide : image plein écran + overlay gradient */
.slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 1s linear;
  z-index: 1;
}

.slide.active { opacity: 1; z-index: 10; }

.slide-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  /* État par défaut : zoomé (fin de l'anim précédente) pour éviter le saut */
  transform: scale(1.12);
}

/* Ken Burns zoom sur le slide actif */
@keyframes kenBurnsZoom {
  0%   { transform: scale(1); }
  100% { transform: scale(1.12); }
}

.slide.active .slide-bg {
  animation: kenBurnsZoom 4s ease-out forwards;
}

/* Scrim haut pour lisibilité de la navigation */
#slider::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 280px;
  background: linear-gradient(to bottom, rgba(10, 58, 90, 0.8) 0%, rgba(10, 58, 90, 0.35) 50%, transparent 100%);
  z-index: 20;
  pointer-events: none;
}

/* Conteneur interne centré horizontalement + verticalement */
.slide-container {
  position: absolute;
  inset: 0;
  z-index: 20;
  max-width: 1220px;
  margin: 0 auto;
  padding: 0 40px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
}

/* Bloc texte + dots : centré verticalement, flex column */
.slide-content {
  position: relative;
  max-width: 650px;
  text-align: left;
  color: white;
  padding: 40px 45px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

/* Halo diffus derrière le texte — déborde et flouté pour éviter l'effet bloc */
.slide-content::before {
  content: '';
  position: absolute;
  inset: -40px -60px;
    background: radial-gradient(ellipse at 30% 40%, rgb(0 0 0 / 40%) 0%, rgb(14 16 16 / 30%) 40%, transparent 70%);
  filter: blur(30px);
  z-index: -1;
  pointer-events: none;
}

/* Titre principal : gros, blanc, uppercase, gras */
.slide-content .slide-title {
  font-family: "itc-avant-garde-gothic-pro", sans-serif;
  font-size: 55px;
  font-weight: 900;
  color: white;
  text-transform: uppercase;
  line-height: 1.3;
  margin: 0 0 15px 0;
  /* Animation : caché par défaut, joué via .is-animating */
  opacity: 0;
  transform: translateY(60%);
}

/* Sous-titre */
.slide-content .slide-subtitle {
  font-family: "futura-pt", sans-serif;
  font-size: clamp(16px, 2vw, 22px);
  font-weight: 400;
  color: rgba(255, 255, 255, 0.9);
  margin: 0 0 25px 0;
  max-width: 600px;
  line-height: 1.5;
  /* Animation : caché par défaut */
  opacity: 0;
  transform: translateY(40%);
}

/* Bouton CTA — style locatif-mobile-tab */
.slide-content .slide-cta {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: "futura-pt", sans-serif;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 2px;
  color: white;
  background: transparent;
  padding: 12px 35px;
  text-decoration: none;
  transition: color 0.25s ease;
  /* Animation : caché par défaut */
  opacity: 0;
  transform: translateY(40%);
}

/* Bordure — forme externe avec clip-path */
.slide-content .slide-cta::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.35);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 10px 100%, 0 calc(100% - 10px));
  z-index: 0;
}

/* Fond — forme interne 1px plus petite */
.slide-content .slide-cta::after {
  content: '';
  position: absolute;
  top: 1px; left: 1px; right: 1px; bottom: 1px;
  background: rgba(255, 255, 255, 0.08);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 9px 100%, 0 calc(100% - 9px));
  transition: background 0.25s ease;
  z-index: 0;
}

.slide-content .slide-cta:hover::after {
  background: rgba(255, 255, 255, 0.2);
}

/* === Animations d'entrée (sur le slide actif) === */
@keyframes slideUp {
  0%   { opacity: 0; transform: translateY(60%); }
  100% { opacity: 1; transform: translateY(0); }
}

@keyframes slideUpSmall {
  0%   { opacity: 0; transform: translateY(40%); }
  100% { opacity: 1; transform: translateY(0); }
}

.slide.active .slide-title {
  animation: slideUp 1.2s 0.3s both ease;
}

.slide.active .slide-subtitle {
  animation: slideUpSmall 1.2s 0.6s both ease;
}

.slide.active .slide-cta {
  animation: slideUpSmall 1.2s 0.9s both ease;
}

/* Dots — dans le flux de .slide-content */
.slide-content .slider-dots {
  display: flex;
  gap: 12px;
  margin-top: 30px;
}

.slider-dots .dot {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.4);
  border: 2px solid rgba(255, 255, 255, 0.6);
  cursor: pointer;
  transition: all 0.3s;
  padding: 0;
}

.slider-dots .dot.active {
  background: #e1d9d0;
  border-color: #e1d9d0;
  transform: scale(1.2);
}

.slider-dots .dot:hover { background: white; border-color: white; }

/* Scroll-down — positionné en bas du slider */
.slide-container .scroll-down {
  position: absolute;
  bottom: 30px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  text-decoration: none;
  color: white;
  opacity: 0.85;
  transition: opacity 0.3s, transform 0.3s;
}

.slide-container .scroll-down:hover { opacity: 1; transform: translateX(-50%) translateY(-3px); }

.scroll-down .scroll-icon {
  width: 60px;
  height: 60px;
  border: 2px solid rgba(255, 255, 255, 0.7);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  background: rgba(255, 255, 255, 0.08);
  backdrop-filter: blur(4px);
  animation: scrollBounce 2s infinite;
}

.scroll-down .scroll-label {
  font-family: "futura-pt", sans-serif;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  font-weight: 600;
}

@keyframes scrollBounce {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(8px); }
}

/* Scrim bas retiré */
#slider::before {
  display: none;
}

/* === Boutons prev / next — style locatif-mobile-tab === */
.slider-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 30;
  width: 52px;
  height: 52px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: none;
  color: white;
  cursor: pointer;
  padding: 0;
  transition: color 0.25s ease;
}

/* Bordure — forme externe avec clip-path */
.slider-nav::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.35);
  z-index: 0;
}

/* Fond — forme interne 1px plus petite */
.slider-nav::after {
  content: '';
  position: absolute;
  top: 1px; left: 1px; right: 1px; bottom: 1px;
  background: rgba(255, 255, 255, 0.08);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  transition: background 0.25s ease;
  z-index: 0;
}

.slider-nav:hover::after {
  background: rgba(255, 255, 255, 0.2);
}

/* Clip-path signature : encoche bas-gauche */
.slider-nav--prev { left: 30px; }
.slider-nav--prev::before {
  clip-path: polygon(0 0, 100% 0, 100% 100%, 10px 100%, 0 calc(100% - 10px));
}
.slider-nav--prev::after {
  clip-path: polygon(0 0, 100% 0, 100% 100%, 9px 100%, 0 calc(100% - 9px));
}

/* Clip-path signature miroir : encoche bas-droite */
.slider-nav--next { right: 30px; }
.slider-nav--next::before {
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 10px), calc(100% - 10px) 100%, 0 100%);
}
.slider-nav--next::after {
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 9px), calc(100% - 9px) 100%, 0 100%);
}

.slider-nav svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  position: relative;
  z-index: 1;
}

/* Responsive : boutons plus petits sur mobile */
@media (max-width: 620px) {
  .slider-nav {
    width: 40px;
    height: 40px;
  }
  .slider-nav--prev { left: 12px; }
  .slider-nav--next { right: 12px; }
  .slider-nav svg { width: 16px; height: 16px; }
}


/* === Widget recherche dans le slider === */
.slider-search-widget {
  position: absolute;
  bottom: 15%;
  left: 50%;
  transform: translateX(-50%);
  z-index: 30;
  width: 1300px;
  max-width: 94%;
}

.slider-search-widget thr-search-engine {
  display: block !important;
  background: #fff !important;
  box-shadow: 0 4px 24px rgba(10, 58, 90, 0.10) !important;
  padding: 0 !important;
  margin: 0 !important;
  border: none !important;
  border-radius: 0 !important;
}

.slider-search-widget .thr-search-engine-multi,
.slider-search-widget .thr-search-engine-main {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 !important;
  border-radius: 0 !important;
}

.slider-search-widget .thr-search-engine-main > * {
  margin-bottom: 0 !important;
}

.slider-search-widget .thr-search-engine-main-full {
  display: flex !important;
  flex-wrap: nowrap !important;
  padding: 0 !important;
  margin: 0 !important;
  gap: 0 !important;
  align-items: stretch !important;
  min-height: 60px !important;
}

.slider-search-widget .thr-search-engine-multi .form-group {
  margin: 0 !important;
  padding: 0 !important;
}

.slider-search-widget .thr-search-engine .thr-search-engine-main > .thr-search-engine-dates,
.slider-search-widget .thr-search-engine .thr-search-engine-main > .thr-search-engine-type,
.slider-search-widget .thr-search-engine .thr-search-engine-main > .thr-search-engine-pers {
  border-top: 0 !important;
  border-bottom: 0 !important;
}

.slider-search-widget .thr-search-engine .thr-search-engine-main > .thr-btn-search {
  margin-bottom: 0 !important;
}

.slider-search-widget .thr-search-engine-main-full > * {
  flex: 1 1 0 !important;
  margin: 0 !important;
  padding: 14px 20px !important;
  border: none !important;
  border-right: 1px solid #e0ddd6 !important;
  border-radius: 0 !important;
  background: #fff !important;
  min-width: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
}

.slider-search-widget .thr-search-engine-main-full > *:last-child {
  border-right: none !important;
}

.slider-search-widget .thr-search-engine-main-full > .thr-btn-search,
.slider-search-widget button.thr-btn-search {
  flex: 1 1 0 !important;
  align-self: stretch !important;
  height: auto !important;
  min-height: 100% !important;
  margin: 0 !important;
  background: #0f527d !important;
  color: #fff !important;
  border: none !important;
  border-right: none !important;
  border-top: 0 !important;
  border-bottom: 0 !important;
  border-radius: 0 !important;
  font-family: "futura-pt", sans-serif !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  padding: 14px 40px !important;
  cursor: pointer !important;
  transition: background 0.25s ease !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.slider-search-widget button.thr-btn-search:hover {
  background: #0a3a5a !important;
}

.slider-search-widget label {
  font-family: "futura-pt", sans-serif !important;
  font-weight: 600 !important;
  font-size: 11px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  color: #0f527d !important;
  margin-bottom: 4px !important;
}

.slider-search-widget .thr-range-picker i,
.slider-search-widget .thr-select-placeholder i {
  color: #0f527d !important;
}

.slider-search-widget .thr-range-picker span {
  color: #b5c8d8 !important;
}

.slider-search-widget select,
.slider-search-widget input {
  font-family: "futura-pt", sans-serif !important;
  font-size: 14px !important;
  color: #1a1a1a !important;
  border: none !important;
  border-radius: 0 !important;
  background: transparent !important;
  padding: 0 !important;
  margin: 0 !important;
  width: 100% !important;
  box-shadow: none !important;
  outline: none !important;
}

@media (max-width: 768px) {
  .slider-search-widget { display: none; }
}

/* === SEARCH CONTAINER (widget réservation) === */
.chapo { position: relative; }

.search-container {
  width: 1300px;
  background: white;
  margin: 0 auto;
  position: absolute;
  bottom: -43px;
  padding: 15px 0 10px 0;
  left: calc(50% - 650px);
  z-index: 10;
  box-shadow: 0 8px 24px rgba(0, 0, 0, .08);
}

.thr-search-engine-multi .form-group label { color: black !important; }

.thr-search-engine-multi .thr-search-engine-main.thr-search-engine-main-full > .thr-btn-search {
  background-color: #e1d9d0 !important;
  color: black !important;
}


/* === SECTION TEXTE + IMAGE === */
h1 {
  font-family: "itc-avant-garde-gothic-pro", sans-serif;
  font-weight: 300;
  font-size: 3em;
  max-width: 1400px;
  margin: 0 auto;
  margin: 40px 0px 0 0px !important;
}

h1 span {
  font-family: "itc-avant-garde-gothic-pro", sans-serif;
  font-weight: 600;
  font-size: 1.2em;
  display: block;
}

.texte-image-container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  max-width: 1440px;
  margin: 30px auto;
  padding: 20px;
  flex-wrap: wrap;
}

.texte-image-container .texte-container {
  flex: 1 1 50%;
  text-align: left;
  margin: 0;
  width: auto;
  padding: 0 16px;
  max-width: 1400px;
}

.texte-image-container img {
  height: auto;
  display: block;
  border-radius: 0;
  max-width: 660px;
}

.intro-img img { max-width: 400px; }


/* === MOSAÏQUE BLEUE (présentation) === */
.presentation-container {
  width: 100%;
  padding: 100px 0;
  padding-top: 20px;
}

.mosaique-bleu {
  background: white;
  display: flex;
  flex-direction: row;
  justify-content: stretch;
  align-items: stretch;
  margin: 0 auto;
  max-width: 1400px;
  height: 450px;
  position: relative;
}

.mosaique-bleu .bloc-bleu {
  position: relative;
  background: #e1d9d0;
  clip-path: polygon(0 0, 100% 0, 100% 100%, 40px 100%, 0 calc(100% - 40px));
  padding: 40px 20px;
  width: 40%;
  margin: 2px 2px 0 0;
}

.mosaique-bleu .bloc-bleu p {
  color: black;
  font-family: "futura-pt", sans-serif;
  font-size: 1em;
  text-align: justify;
  font-weight: 300;
  margin-bottom: 15px;
}

.mosaique-bleu img.vagues {
  position: absolute;
  bottom: 10px;
  z-index: 10;
  left: 16%;
}

.mosaique-row {
  display: flex;
  flex-wrap: wrap;
  flex-direction: row;
  justify-content: center;
  width: 55%;
  align-items: stretch;
}

.mosaique-row img { padding: 2px; object-fit: cover; height: 50%; }
.mosaique-row img:nth-child(1) { width: 50%; }
.mosaique-row img:nth-child(2) { width: 50%; }
.mosaique-row img:nth-child(3) { width: 50%; }
.mosaique-row img:nth-child(4) { width: 50%; }
.mosaique-row img:nth-child(5) { width: 50%; }

.mosaique-column {
  display: flex;
  flex-wrap: nowrap;
  flex-direction: column;
  justify-content: stretch;
  align-items: stretch;
  flex-basis: fit-content;
  width: 20%;
  height: 100%;
}

.mosaique-column img { padding: 2px; object-fit: cover; }
.mosaique-column img:nth-child(1) { width: 100%; height: 60%; }
.mosaique-column img:nth-child(2) { width: 100%; height: 40%; }



.image-full::after {
background:none;
}



/* === CAMPING LIST (vignettes des campings du groupe) === */
.camping-list {
  background: #0f527d;
  width: 100%;
  padding: 40px 0;
}

.camping-bordure {
  max-width: 1400px;
  padding: 1px;
  clip-path: polygon(0 0, 100% 0, 100% 100%, 40px 100%, 0 calc(100% - 40px));
  background: #8ba8c4;
  margin: 20px auto;
}

.camping-vignette {
  background: white;
  display: flex;
  flex-direction: row;
  justify-content: stretch;
  align-items: stretch;
  margin: 0 auto;
  max-width: 1400px;
  height: 400px;
  position: relative;
  clip-path: polygon(0 0, 100% 0, 100% 100%, 40px 100%, 0 calc(100% - 40px));
  box-shadow: 0 0 0 4px #e2dfd8 inset;
}

.camping-vignette .slogan {
  width: 15%;
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 10;
}

.camping-vignette .slogan p {
  font-size: 2em;
  font-weight: 600;
  font-family: "futura-pt", sans-serif;
  text-align: center;
  color: white;
  margin: 0;
  padding: 10px;
}

.camping-vignette .image { width: 30%; }

.camping-vignette .image .details {
  position: absolute;
  top: 0;
  display: flex;
  flex-direction: row;
  justify-content: flex-start;
  align-items: flex-start;
}

.camping-vignette .image .pitches,
.camping-vignette .image .squares {
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 15px), calc(100% - 15px) 100%, 0 100%);
  background: white;
  color: black;
  font-family: "futura-pt", sans-serif;
  padding: 5px 20px 10px 20px;
  margin: 0 10px 0 0;
}

.camping-vignette .image .pitches p,
.camping-vignette .image .squares p { margin: 0; line-height: 1.1; }

.camping-vignette .image .pitches strong,
.camping-vignette .image .squares strong { display: block; font-weight: 700; font-size: 1.2em; line-height: 1.1; }

.camping-vignette .image img { height: 100%; object-fit: cover; width: 100%; }

.camping-vignette .camping-details { width: 55%; background: white; }

.camping-vignette .camping-details .titre {
  border-left: 4px solid;
  border-right: 4px solid;
  margin: 20px 30px;
  padding: 10px 20px;
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  max-width: 100%;
}

.camping-vignette .camping-details .titre h3 {
  font-family: "itc-avant-garde-gothic-pro", sans-serif;
  color: black;
  font-size: 30px;
  font-weight: 300;
  text-align: left;
  margin: 0;
}

.camping-vignette .camping-details .titre h3 span { font-size: 20px; display: block; }

.camping-vignette .camping-details .titre .departement {
  padding: 10px 15px 10px 20px;
  clip-path: polygon(0 0, 100% 0, 100% 100%, 15px 100%, 0 calc(100% - 15px));
  color: white;
}

.camping-vignette .camping-details .titre .departement p {
  margin: 0;
  font-weight: 300;
  font-family: "itc-avant-garde-gothic-pro", sans-serif;
}

.camping-vignette .camping-details .services-list {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: center;
  max-width: 100%;
  margin: 20px 30px;
  padding: 10px 20px;
}

.camping-vignette .camping-details .services-list h4 {
  font-family: "futura-pt", sans-serif;
  font-weight: 300;
  margin-bottom: 0;
  font-size: 22px;
  margin-right: 5px;
}

.camping-vignette .camping-details .services-list h4 span {
  font-weight: 700;
  border: none;
  background: white !important;
  padding: 0 !important;
  font-size: 22px !important;
  margin: 0 !important;
}

.camping-vignette .camping-details .services-list span {
  border: 1px solid black;
  border-radius: 20px;
  color: black;
  padding: 2px 20px;
  font-size: 16px;
  font-family: "futura-pt", sans-serif;
  margin: 3px;
}

.camping-vignette .camping-details .services-general {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  max-width: 100%;
  margin: 20px 30px;
  padding: 10px 20px;
}

.camping-vignette .camping-details .services-general p {
  color: black;
  font-family: "futura-pt", sans-serif;
  background: white;
  display: block;
  margin-bottom: 10px;
}

.camping-vignette .camping-details .plus {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  max-width: 100%;
  margin: 20px 30px;
  padding: 10px;
}

.camping-vignette .camping-details .plus h4 {
  font-family: "itc-avant-garde-gothic-pro", sans-serif;
  font-size: 1.2em;
  font-weight: 700;
  margin-right: 5px;
}

.camping-vignette .camping-details .plus h4 span {
  font-family: "itc-avant-garde-gothic-pro", sans-serif;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: white;
  padding: 2px;
  border: 1px solid;
  width: 38px; height: 38px;
  border-radius: 50%;
}

.camping-vignette .camping-details .plus h4 span strong {
  font-family: "itc-avant-garde-gothic-pro", sans-serif;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: white;
  padding: 2px;
  width: 30px; height: 30px;
  border-radius: 50%;
  font-size: 30px;
}

.camping-vignette .camping-details .plus p { color: black; font-family: "futura-pt", sans-serif; }


/* Couleurs par camping */
/* Kerzerho */
.camping-vignette.kerzerho .slogan,
.camping-vignette.kerzerho .camping-details .titre .departement,
.camping-vignette.kerzerho .camping-details .services-list span,
.camping-vignette.kerzerho .camping-details .plus h4 span strong { background: #a3c0de; }

.camping-vignette.kerzerho .image .pitches strong,
.camping-vignette.kerzerho .image .squares strong,
.camping-vignette.kerzerho .camping-details .titre h3 span,
.camping-vignette.kerzerho .camping-details .stars i,
.camping-vignette.kerzerho .camping-details .services-list h4,
.camping-vignette.kerzerho .camping-details .services-list h4 span,
.camping-vignette.kerzerho .camping-details .services-general p span,
.camping-vignette.kerzerho .camping-details .plus h4 { color: #6687ac; }

.camping-vignette.kerzerho .camping-details .titre,
.camping-vignette.kerzerho .camping-details .plus h4 span { border-color: #a3c0de; }

/* Soleya */
.camping-vignette.soleya .slogan,
.camping-vignette.soleya .camping-details .titre .departement,
.camping-vignette.soleya .camping-details .services-list span,
.camping-vignette.soleya .camping-details .plus h4 span strong { background: #fdde60; }

.camping-vignette.soleya .image .pitches strong,
.camping-vignette.soleya .image .squares strong,
.camping-vignette.soleya .camping-details .titre h3 span,
.camping-vignette.soleya .camping-details .stars i,
.camping-vignette.soleya .camping-details .services-list h4,
.camping-vignette.soleya .camping-details .services-list h4 span,
.camping-vignette.soleya .camping-details .services-general p span,
.camping-vignette.soleya .camping-details .plus h4 { color: #c9b84a; }

.camping-vignette.soleya .camping-details .titre,
.camping-vignette.soleya .camping-details .plus h4 span { border-color: #fdde60; }

/* Bouti */
.camping-vignette.bouti .slogan,
.camping-vignette.bouti .camping-details .titre .departement,
.camping-vignette.bouti .camping-details .services-list span,
.camping-vignette.bouti .camping-details .plus h4 span strong { background: #b5d4a0; }

.camping-vignette.bouti .image .pitches strong,
.camping-vignette.bouti .image .squares strong,
.camping-vignette.bouti .camping-details .titre h3 span,
.camping-vignette.bouti .camping-details .stars i,
.camping-vignette.bouti .camping-details .services-list h4,
.camping-vignette.bouti .camping-details .services-list h4 span,
.camping-vignette.bouti .camping-details .services-general p span,
.camping-vignette.bouti .camping-details .plus h4 { color: #99ba7f; }

.camping-vignette.bouti .camping-details .titre,
.camping-vignette.bouti .camping-details .plus h4 span { border-color: #b5d4a0; }

/* Leveno */
.camping-vignette.leveno .slogan,
.camping-vignette.leveno .camping-details .titre .departement,
.camping-vignette.leveno .camping-details .services-list span,
.camping-vignette.leveno .camping-details .plus h4 span strong { background: #cfc27b; }

.camping-vignette.leveno .image .pitches strong,
.camping-vignette.leveno .image .squares strong,
.camping-vignette.leveno .camping-details .titre h3 span,
.camping-vignette.leveno .camping-details .stars i,
.camping-vignette.leveno .camping-details .services-list h4,
.camping-vignette.leveno .camping-details .services-list h4 span,
.camping-vignette.leveno .camping-details .services-general p span,
.camping-vignette.leveno .camping-details .plus h4 { color: #cabc6c; }

.camping-vignette.leveno .camping-details .titre,
.camping-vignette.leveno .camping-details .plus h4 span { border-color: #cfc27b; }

/* Palace */
.camping-vignette.palace .slogan,
.camping-vignette.palace .camping-details .titre .departement,
.camping-vignette.palace .camping-details .services-list span,
.camping-vignette.palace .camping-details .plus h4 span strong { background: #e4bc82; }

.camping-vignette.palace .image .pitches strong,
.camping-vignette.palace .image .squares strong,
.camping-vignette.palace .camping-details .titre h3 span,
.camping-vignette.palace .camping-details .stars i,
.camping-vignette.palace .camping-details .services-list h4,
.camping-vignette.palace .camping-details .services-list h4 span,
.camping-vignette.palace .camping-details .services-general p span,
.camping-vignette.palace .camping-details .plus h4 { color: #e4bc82; }

.camping-vignette.palace .camping-details .titre,
.camping-vignette.palace .camping-details .plus h4 span { border-color: #e4bc82; }


/* === CONTENEUR TEXTE (articles sur sommaire) === */
.texte-container {
  max-width: 1400px;
  margin: 80px auto;
  text-align: center;
  width: auto;
  padding: 0 16px;
}

.texte-container p {
  font-family: "futura-pt", sans-serif;
  font-size: 16px;
  line-height: 1.65;
}


/* === RESPONSIVE === */

/* Search container : masquer sur tablette/mobile */
@media (max-width: 1330px) {
  .search-container { display: none; }
}

/* Intro image : limiter la taille */
.intro-img img { max-width: 350px; border-radius: 8px; }

/* Texte paragraphes dans le contenu */
.content p { font-family: "futura-pt", sans-serif; font-size: 16px; line-height: 1.65; }
.content p.medium-p { font-family: "itc-avant-garde-gothic-pro", sans-serif; font-weight: 600; font-size: 1.4em; color: black; margin: 10px 0; }

/* Mosaique row/column : masquer les containers vides quand carousel prend le relai */
@media (max-width: 1200px) {
  .mosaique-row, .mosaique-column { display: none; }
  .mosaique-bleu .carrousel-container { display: block; }
}

@media (max-width: 1200px) {
  .mosaique-bleu img.vagues { display: none; }

  .carrousel-container { width: 100% !important; margin-top: 2px; }
  .mosaique-bleu .bloc-bleu { width: 100% !important; padding: 20px 40px; margin: 2px 0 0 0; }

  .mosaique-bleu {
    height: auto !important;
    flex-wrap: wrap;
    width: 100%;
    max-width: 800px;
    padding: 20px;
  }

  .mosaic-owl .owl-item img { display: block; width: 100%; height: 350px; object-fit: cover; }

  .mosaic-owl.owl-theme .owl-nav { position: absolute; top: 0; right: 10px; }

  .mosaic-owl.owl-carousel .owl-nav button.owl-prev,
  .mosaic-owl.owl-carousel .owl-nav button.owl-next {
    background: white;
    width: 40px; height: 40px;
    font-size: 50px;
    display: inline-flex;
    justify-content: center; align-items: center;
    padding-bottom: 10px !important;
    border-radius: 50%;
    transition: all 250ms;
  }

  .mosaic-owl.owl-theme .owl-dots { width: 100%; position: absolute; bottom: 10px; }
  .mosaic-owl.owl-theme .owl-dots .owl-dot.active span,
  .mosaic-owl.owl-theme .owl-dots .owl-dot:hover span { background: white; }
  .mosaic-owl.owl-theme .owl-dots .owl-dot span { background: black; }

  /* Camping vignette responsive */
  .camping-vignette { flex-wrap: wrap; max-width: 800px; height: 100%; }
  .camping-bordure { max-width: 800px; margin: 20px auto; }
  .camping-vignette .slogan { width: 100%; }
  .camping-vignette .image { width: 100%; height: 350px; }
  .camping-vignette .camping-details { width: 100%; }
  .camping-vignette .camping-details .plus,
  .camping-vignette .camping-details .services-general { padding: 10px; margin: 10px; }
}

@media (max-width: 900px) {
  .camping-bordure { max-width: 600px; }
}

@media (max-width: 620px) {
  .texte-image-container img { display: none; }
  .texte-image-container { padding: 0; }

  h1, h2 { font-size: 24px; text-align: center; padding: 0 10px; }
  h1 { margin-bottom: 20px; text-align: center; font-size: 33px; line-height: 1.2; }
  h1 span { font-size: 22px; text-align: center; }

  /* Slider mobile */
  .slide-container { padding: 0 20px; }
  .slide-content { max-width: 100%; padding: 25px 20px; }
  .slide-content .slide-title { font-size: 28px; line-height: 1.2; }
  .slide-content .slide-subtitle { font-size: 14px; max-width: 100%; }
  .slide-content .slide-cta { font-size: 11px; padding: 10px 25px; }
  .slide-content .slider-dots { margin-top: 20px; }
  .slide-container .scroll-down { margin-top: 20px; }
  .scroll-down .scroll-icon { width: 46px; height: 46px; font-size: 18px; }
  .scroll-down .scroll-label { font-size: 10px; }

  .camping-bordure { margin: 20px; }

  .camping-vignette .camping-details .titre { border: none; margin: 0; padding: 10px; }
  .camping-vignette .camping-details .geo { display: none; }
  .camping-vignette .camping-details .titre .departement { padding: 5px; }
  .camping-vignette .camping-details .services-list h4 { width: 100%; }
  .camping-vignette .camping-details .services-list { justify-content: center; }
  .camping-vignette .camping-details .titre h3 { font-size: 21px; }
  .camping-vignette .camping-details .titre h3 span { font-size: 18px; }
  .camping-vignette .camping-details .services-general { justify-content: space-evenly; }
  .camping-vignette .camping-details .plus h4 { margin: 5px; padding: 5px; }
  .camping-vignette .camping-details .services-general p { margin: 5px; }
  .camping-vignette .camping-details .services-list span { width: 145px; }
}

/* Hébergements mosaïque : tablette */
@media (max-width: 1100px) and (min-width: 901px) {
  .herbergement-mosaique .bloc { height: 250px; }
  .herbergement-mosaique .bloc:nth-child(1) { width: 40%; }
  .herbergement-mosaique .mosaique-text:nth-child(2) { width: 60%; padding: 0 5%; }
  .herbergement-mosaique .bloc:nth-child(3) { width: 30%; }
  .herbergement-mosaique .bloc:nth-child(4) { width: 35%; }
  .herbergement-mosaique .bloc:nth-child(5) { width: 35%; }
  .herbergement-mosaique .mosaique-text:nth-child(6) { width: 30%; padding: 30px 2% 10px 2%; }
  .herbergement-mosaique .bloc:nth-child(7) { width: 38%; }
  .herbergement-mosaique .bloc:nth-child(8) { width: 32%; }
}

@media (max-width: 520px) {
  #slider { margin-top: 0; }

  .slider-home {
    height: calc(100vh - 120px);
    margin-top: 125px;
  }

  .slider .slide:nth-child(1) { background-position: right; }
  .slide-content span { font-size: 1.2em; }
  .slide-content h3 { font-size: 2.5em; }
  .slide-content h4 { font-size: 2.5em; }
  .slide-content p { font-size: 25px; }

  .slide-content p.mini-p { line-height: 1.5; font-size: 14px; margin-bottom: 10px; }
  .slide-content img { object-fit: cover; object-position: center; }
  .slider-btn { bottom: 0%; }

  /* Texte container : réduire les marges */
  .texte-container { margin: 40px auto; }
  .presentation-container { padding: 40px 0; }
  .hebergement-container { padding: 20px 10px; }
}
