.elementor-kit-1448{--e-global-color-primary:#6EC1E4;--e-global-color-secondary:#54595F;--e-global-color-text:#7A7A7A;--e-global-color-accent:#61CE70;--e-global-typography-primary-font-family:"Roboto";--e-global-typography-primary-font-weight:600;--e-global-typography-secondary-font-family:"Roboto Slab";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Roboto";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Roboto";--e-global-typography-accent-font-weight:500;--e-page-transition-entrance-animation:e-page-transition-fade-out;--e-page-transition-animation-duration:1400ms;--e-preloader-animation:shake;--e-preloader-animation-duration:5000ms;--e-preloader-delay:0ms;--e-preloader-width:10%;--e-preloader-opacity:1;}.elementor-kit-1448 e-page-transition{background-color:transparent;background-image:radial-gradient(at center center, #6EC1E4 20%, #FFFFFF 100%);}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;}.elementor-widget:not(:last-child){margin-block-end:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}/* Start custom CSS *//* 1. Scroll fluide & polices optimisées & désactivation double-tap iOS & suppression scroll horizontal */
.elementor-kit-1448 html {
  scroll-behavior: smooth;
  font-display: swap;
  touch-action: manipulation;       /* désactive le double-tap zoom sur iOS */
  -webkit-text-size-adjust: 100%;   /* empêche le zoom texte iOS */
  overflow-x: hidden;               /* supprime le scroll horizontal parasite */
}

/* 2. Box-sizing universel */
.elementor-kit-1448,
.elementor-kit-1448 * ,
.elementor-kit-1448 *::before,
.elementor-kit-1448 *::after {
  box-sizing: border-box;
}

/* 3. Antialiasing & rendu optimisé du texte & hauteur de ligne */
.elementor-kit-1448 body {
  -webkit-font-smoothing: antialiased;   /* lissage macOS/WebKit */
  -moz-osx-font-smoothing: grayscale;    /* lissage macOS */
  text-rendering: optimizeLegibility;    /* meilleure lisibilité */
  line-height: 1.6;                      /* hauteur de ligne améliorée */
}

/* 5. Bloquer la sélection inappropriée (titres, liens, boutons) */
.elementor-kit-1448 h1,
.elementor-kit-1448 h2,
.elementor-kit-1448 h3,
.elementor-kit-1448 h4,
.elementor-kit-1448 h5,
.elementor-kit-1448 h6,
.elementor-kit-1448 a,
.elementor-kit-1448 button {
  user-select: none;
}

/* 2. Sticky header & shadow  
   – Garde ton header collé en haut  
   – Un ombrage apparaît (« box-shadow ») pour marquer visuellement la séparation */
.elementor-kit-1448 header {
  position: sticky;
  top: 0;
  z-index: 1000;
  background: white;
  transition: box-shadow 0.3s ease;
}
.elementor-kit-1448 header.scrolled {
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.elementor-kit-1448 h1,
.elementor-kit-1448 h2 {
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}

/* =========================
   CSS GLOBAL — ELEMENTOR
   À coller dans :
   Elementor > Réglages du site > CSS personnalisé
   (ou Apparence > Personnaliser > CSS additionnel)
   — Pas de <style></style> ici —
   ========================= */

/* --- RESET minimal & anti débordements --- */
html, body {            /* supprime marges par défaut et empêche le scroll horizontal */
  margin: 0;
  padding: 0;
  overflow-x: hidden;
}
*, *::before, *::after { /* box-sizing cohérent partout */
  box-sizing: border-box;
}
img, video {            /* médias responsives */
  max-width: 100%;
  height: auto;
  display: block;
}

/* --- TOKENS : variables globales (typo, espaces, mesures de ligne) --- */
:root{
  /* Typographies fluides : clamp(min, vw, max) pour s'adapter du mobile au desktop */
  --fz-base: clamp(16px, 1.6vw, 18px); /* corps de texte */
  --fz-h1:   clamp(28px, 5.0vw, 42px); /* titres H1 */
  --fz-h2:   clamp(22px, 3.7vw, 32px); /* titres H2 */
  --fz-h3:   clamp(18px, 2.8vw, 26px); /* titres H3 */

  /* Échelle d’espacement (système 8pt) */
  --space-4: 4px;
  --space-8: 8px;
  --space-12: 12px;
  --space-16: 16px;
  --space-20: 20px;
  --space-24: 24px;
  --space-32: 32px;
  --space-40: 40px;

  /* Largeurs de ligne confort de lecture (ch = “caractères” approximatifs) */
  --measure:         68ch; /* desktop */
  --measure-mobile:  40ch; /* mobile */
}

/* --- TYPOGRAPHIE de base --- */
body {
  font-size: var(--fz-base); /* taille de base fluide */
  line-height: 1.6;          /* hauteur de ligne confortable */
}
h1 {
  font-size: var(--fz-h1);
  line-height: 1.15;
  margin: 0 0 var(--space-16);
}
h2 {
  font-size: var(--fz-h2);
  line-height: 1.2;
  margin: 0 0 var(--space-12);
}
h3 {
  font-size: var(--fz-h3);
  line-height: 1.25;
  margin: 0 0 var(--space-8);
}

/* --- Limiter la longueur de ligne des titres/paragraphes pour la lisibilité --- */
.e-con .elementor-widget-text-editor,
.e-con .elementor-heading-title {
  max-width: var(--measure); /* largeur max sur desktop */
}

@media (max-width: 767px){
  .e-con .elementor-widget-text-editor,
  .e-con .elementor-heading-title {
    max-width: var(--measure-mobile); /* plus étroit sur mobile */
  }
}

/* --- UTILITAIRES d’affichage mobile/desktop --- */
.u-hide-mobile { /* afficher par défaut, cacher en mobile */
  display: block;
}
.u-show-mobile { /* cacher par défaut, afficher en mobile */
  display: none;
}
@media (max-width: 767px){
  .u-hide-mobile { display: none !important; } /* force le hide en mobile */
  .u-show-mobile { display: block !important; }/* force le show en mobile */
}

/* --- UTILITAIRES de layout pour containers Elementor (Flexbox) --- */
/* À appliquer sur un container parent pour forcer le stacking propre des enfants en mobile */
.stack-m > .elementor-widget,
.stack-m > .e-con-inner,
.stack-m > .e-con {
  width: 100%; /* enfants prennent toute la largeur */
}

@media (max-width: 767px){
  .row-to-col {             /* bascule row -> column en mobile quand nécessaire */
    flex-direction: column !important;
  }
  .w-100-m {                /* force 100% de largeur sur mobile */
    width: 100% !important;
  }
  .no-fixed-h-m {           /* supprime les hauteurs fixes qui cassent en mobile */
    height: auto !important;
    min-height: unset !important;
  }
  .gap-16-m {               /* utilitaire d’espacement entre enfants en mobile */
    gap: var(--space-16) !important;
  }
  .pad-16-m {               /* utilitaire de padding interne en mobile */
    padding: var(--space-16) !important;
  }
}

/* --- Fond couvrant qui ne se déforme pas --- */
.bg-cover {
  background-size: cover;      /* l’image remplit le conteneur sans déformation */
  background-position: center; /* centrage */
  background-repeat: no-repeat;
}

/* --- Boutons plein écran en mobile (tap targets confortables) --- */
@media (max-width: 767px){
  .btn-100-m .elementor-button {
    width: 100%;                 /* bouton pleine largeur */
    padding: 12px 16px;          /* zone de clic confortable */
    font-size: 16px;             /* lisible sans zoom */
  }
}

/* --- Corrige la “scrollbar horizontale fantôme” sur certains containers --- */
.e-con {
  overflow: visible; /* évite les coupes d’ombres/éléments internes */
}

/* --- Utilitaire optionnel pour héros “quasi plein écran” en mobile ---
   Applique la classe .hero-mvh-70 sur le container hero (au lieu d'utiliser 100vh)
   pour éviter les soucis avec la barre d’URL mobile qui change de hauteur. */
@media (max-width: 767px){
  .hero-mvh-70 {
    min-height: 70dvh; /* d = dynamique, plus fiable qu’un 100vh strict */
  }
}/* End custom CSS */