.fit-content{
	width: fit-content;
}


/* Conteneur parent pour faciliter la superposition */
.outline-stack {
  position: relative;
}

/* Titre du dessous : uniquement le contour */
.outline-only .elementor-heading-title {
  color: transparent; /* pas de remplissage */
  -webkit-text-stroke: var(--outline-width, 15px) var(--outline-color, #003B89);
  /* text-stroke (non standard) pour certains navigateurs */
  text-stroke: var(--outline-width, 4px) var(--outline-color, #000);
  line-height: 1em;
  margin: 0;
}

.outline-only-white .elementor-heading-title {
  color: transparent; /* pas de remplissage */
  -webkit-text-stroke: var(--outline-width, 5px) var(--outline-color-white, #fff);
  /* text-stroke (non standard) pour certains navigateurs */
  text-stroke: var(--outline-width, 4px) var(--outline-color, #000);
  line-height: 1em;
  margin: 0;
}

/* Titre du dessus : remplissage uniquement, sans contour */
.outline-fill {
  position: absolute;
	z-index: 1;
  inset: 0;
  display: grid; 
  place-items: center;
  pointer-events: none;
}

.outline-fill .elementor-heading-title {
  color: var(--fill-color, #ffffff);
  line-height: 1em;
  margin: 0;
}

/* clignotement titre */


.blink-title {
  animation: pulse-opacity 1.8s ease-in-out infinite;
}

@keyframes pulse-opacity {
  0%   { opacity: 1; }
  50%  { opacity: 0.4; }
  100% { opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
  .blink-title { animation: none; }
}

html, body{
	background-color: #48befb;
}


e-flex.e-con-boxed.e-con.e-parent.e-lazyloaded {
  position: relative;
  z-index: 0;
}



.main-container {
  position: relative; /* Indispensable pour que l'overlay reste dans le cadre */
}

.main-container::after {
  content: "";
  position: absolute;
  inset: 0;
  background: 
    linear-gradient(to bottom, #48befb 0%, rgba(72,190,251,0) 15%),
    linear-gradient(to top, #48befb 0%, rgba(72,190,251,0) 15%);
  pointer-events: none; /* Laisse passer les clics vers la carte/grille */
  z-index: 1; /* Doit être au-dessus du contenu mais sous la Lightbox (qui est à 999999) */
}

.e-con-inner{
	z-index: 2;
}

img {
	pointer-events: none;
}

.follow-us-container{
	width:auto;
}

/* --- INTERACTIF --- */
.img-clickable {
    cursor: pointer !important;
    pointer-events: auto !important;
    position: relative;
    z-index: 10;
    transition: opacity 0.2s;
}
.img-clickable:hover { opacity: 0.8; }

.itin-btn-large { display: flex !important; align-items: center; justify-content: center; padding: 5px; border-radius: 50%; transition: background 0.2s; }
.itin-btn-large:hover { background: rgba(0, 115, 170, 0.1); }

.custom-lightbox-wp-force { 
    position: fixed !important; 
    top: 0 !important; 
    left: 0 !important; 
    width: 100vw !important; 
    height: 100vh !important; 
    background: rgba(0,0,0,0.95) !important; 
    z-index: 99999999 !important; 
    display: flex !important; 
    align-items: center !important; 
    justify-content: center !important; 
    cursor: pointer !important;
}

.custom-lightbox-wp-force img { 
    max-width: 90% !important; 
    max-height: 85% !important; 
    border: 4px solid #fff !important; 
    border-radius: 4px !important; 
    box-shadow: 0 0 30px rgba(0,0,0,0.5) !important;
    object-fit: contain !important;
}

.close-btn-x { position: absolute !important; top: 30px !important; right: 40px !important; color: #fff !important; font-size: 70px !important; font-weight: bold !important; cursor: pointer !important; line-height: 0.5 !important; z-index: 100000000 !important; }
.nav-btn { position: absolute !important; color: #fff !important; font-size: 100px !important; cursor: pointer !important; top: 50% !important; transform: translateY(-50%) !important; user-select: none !important; padding: 20px !important; z-index: 100000000 !important; }
.prev { left: 20px !important; }
.next { right: 20px !important; }

/* --- MOBILE --- */
@media (max-width: 768px) {
    .locator-grid-area { grid-template-columns: 1fr !important; grid-template-rows: repeat(4, 1fr) !important; }
    .locator-card-container { height: auto !important; min-height: 800px !important; }
}
