html, body {
  overflow-x: hidden !important;
  max-width: 100% !important;
}

.elementor-nav-menu--dropdown, 
.elementor-menu-toggle,
.elementor-nav-menu {
  max-width: 100% !important;
  overflow-x: hidden !important;
}
body.menu-open {
  transform: none !important;
}

/********************/

.top-header {
  max-height: 70px;
  line-height: 50px;   /* pour centrer verticalement */
  font-size: 14px;
}
.top-header i { /* icones */
  font-size: 18px;
  margin: 0 8px;
}

/************************* Container avec ronds blancs ******************/
/* Effet petits ronds blancs en background */ 

.bg-dots { 
position: relative; 
/*background-color: #2a74d6; couleur de fond */ 
overflow: hidden; 
    
}

.elementor-element.bg-dots {
    position: relative; /* nécessaire pour ::before */
    overflow: hidden;   /* pour que les points ne dépassent pas */
}

.elementor-element.bg-dots::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: radial-gradient(rgba(255, 255, 255, 0.3) 1px, transparent 1px);
    background-size: 20px 20px;
    z-index: 0; /* derrière le contenu */
    pointer-events: none;
}

.elementor-element.bg-dots > .elementor-widget-wrap {
    position: relative;
    z-index: 1; /* contenu au-dessus des points */
}



/******************* grille ronde coaching page ********************/
/* Cercle */
.grille-ronde {
  width: 250px !important;
  height: 250px !important;
  aspect-ratio: 1 / 1;
  border-radius: 50%;
  display: flex;
  flex-direction: column;       /* empile icône et texte */
  align-items: center;          /* centre horizontalement */
  justify-content: center;      /* centre verticalement */
  text-align: center;
  margin: auto;
  padding: 0;
  box-sizing: border-box;
  max-width: none !important;
}

/* Supprime les marges internes d’Elementor pour centrer parfaitement */
.grille-ronde .elementor-icon-box-wrapper {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

/* Ajuste marges de l’icône et du titre */
.grille-ronde .elementor-icon-box-icon {
  margin-bottom: 10px;  /* espace entre icône et texte */
}

.grille-ronde .elementor-icon-box-content {
  margin: 0;
}


/* Centrer horizontalement toutes les Icon Box dans le container */
.elementor-element-63a9153 {
    display: flex;
    justify-content: center; /* centre horizontalement */
    gap: 30px; /* espace entre chaque icône, ajuste selon besoin */
}

 Centrer verticalement icône et texte dans chaque Icon Box 
.elementor-element.elementor-element-31212e1.elementor-element,
.elementor-element.elementor-element-4810a83.elementor-element,
.elementor-element.elementor-element-5fb15c4.elementor-element,
.elementor-element.elementor-element-b23ae74.elementor-element {
    display: flex;
    flex-direction: column; /* icône au-dessus du texte */
    align-items: center; /* centre horizontalement */
    text-align: center;   /* texte centré */
}




/**************** fin ******************/



.soustitre-section{
	    font-family: 'Montserrat', sans-serif;
    font-weight: 500;
    font-size: 1.1rem;
    color: #10b9e0;
    margin-bottom: 10px;
    border-bottom: 1px solid #ad4197;
    padding-bottom: 8px;
    line-height: 1.2;
    letter-spacing: 1px;
    text-transform: capitalize;
}
.text1-section{
	font-family: 'Poppins', serif;
    font-weight: 400;
    font-size: 19.2px;
    color: #333333;
    text-align: justify;
    line-height: 1.8;
    text-indent: 20px;
    margin-bottom: 15px;
}
.text2-section{
	font-family: 'Poppins', serif;
    font-weight: 400;
    font-size: 1.2rem;
    color: #333333;
    text-align: justify;
    line-height: 1.8;
    text-indent: 20px;
    margin-bottom: 15px;
}
.img1-section {
display: inline-block;
    border-radius: 0 20px !important; /* coins arrondis */
    background: #fff; /* blanc autour de image */
    padding: 8px; /* espace blanc avant le shadow */
    box-shadow: 0 8px 20px rgba(0,0,0,0.1); /* ombre douce */
    max-width: 100%;
    height: auto;

    /* Ajout pour que image respecte le radius */
    overflow: hidden;  
    display: inline-block;
}

.img1-section img {
    border-radius: 0 20px !important; /* applique arrondi aussi image */
    display: block; /* supprime petit espace sous image */
}
/*.elementor img {
	border-radius: 0 20px !important; /* applique arrondi aussi image */
/*    display: block; /* supprime petit espace sous limage */
/*}*/
/*************** style des titres - sections **************/
.titre-section{
	    font-family: 'Montserrat', sans-serif;
    font-weight: 700;
    font-size: 2rem;
    color: #10b9e0;
    margin-bottom: 15px;
    border-bottom: 3px solid #ad4197;
    padding-bottom: 8px;
    line-height: 1.2;
    letter-spacing: 1px;
    text-transform: capitalize;
}

.title-magenta h2{
    font-family: 'Montserrat', sans-serif;
    font-weight: 500;
    font-size: 35px;
    color: #f01480 !important; /* magenta du logo */
    text-align: center; /* centrer le titre */
    margin-bottom: 10px;
    padding-bottom: 0; /* plus besoin de padding pour le soulignement */
    line-height: 1.3;
    letter-spacing: 1px;
    text-transform: capitalize;
}
.title-purple h2{
    font-family: 'Montserrat', sans-serif;
    font-weight: 700;
    font-size: 40px;
    color: #ad4197 !important; /* purple du logo */
    text-align: center; /* centrer le titre */
    margin-bottom: 10px;
    padding-bottom: 0; /* plus besoin de padding pour le soulignement */
    line-height: 1.3;
    letter-spacing: 1px;
    text-transform: capitalize;
}

/********** fin style des titres-sections **********/


.section-textnoir  {
    font-family: 'Poppins', serif !important;
    font-weight: 400 !important;
    font-size: 1.2rem !important;
    color: #333333 !important;
    text-align: center !important;
    line-height: 1.8 !important;
    text-indent: 20px !important;
    margin-bottom: 15px !important;
}

.section-text3 p{
	font-size: 26px;
    color: #534e8b;
    font-family: 'Montserrat', sans-serif;
    font-weight: 700;
    background: rgba(255, 255, 255, 0.4);
	text-align: center;
}
/****************************** footer ****************************/
.footer-bottom {
  background: #000;              /* couleur de fond */
  color: #fff;                   /* couleur du texte */
  text-align: center;
  padding: 0px;
  font-size: 11px;
  /*border-top: 3px solid #333;*/
}
.footer-bottom p {
  margin: 0;
}
.footer-bottom a {
  color: #ff6600;                /* lien en orange  */
  text-decoration: none;
}
.footer-bottom a:hover {
  color: #fff;
}
/********************************* fin**********************************/

/**************icone drapeau *********************/

/* Style ellipse pour les icônes de langue */
.bg-dots.icone-langue .elementor-icon-box-icon .elementor-icon {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    width: 140px !important;   /* largeur de l’ellipse */
    height: 100px !important;  /* hauteur de l’ellipse */
    margin: 0 auto;
    padding: 8px;
    border-radius: 50%;        /* contour arrondi */
    box-shadow: 0 0 10px rgba(0,0,0,0.15);
    background-color: transparent;   /* <-- ne pas écraser la couleur définie dans Elementor */
    transition: transform 0.3s ease;
}

.bg-dots.icone-langue .elementor-icon-box-icon .elementor-icon svg,
.bg-dots.icone-langue .elementor-icon-box-icon .elementor-icon img {
    width: 126px !important;   /* largeur du drapeau */
    height: 93px !important;   /* hauteur pour ellipse */
    display: block;
    object-fit: cover;
    transition: transform 0.3s ease;
    border-radius: 50%;
}

.bg-dots.icone-langue:hover .elementor-icon {
    transform: scale(1.05);
}

/* Icon box page contact */
.contact-icone-box p {
    color: #ffffff !important;
    font-weight: bold;
}


/***************************/
/********whatsapp***********************/

.whatsapp-float {
  position: fixed;
  width: 60px;
  height: 60px;
  bottom: 15px;
  right: 15px;
  background-color: #25D366;
  color: #fff;
  border-radius: 50%;
  text-align: center;
  font-size: 30px;
  box-shadow: 0 3px 10px rgba(0,0,0,0.3);
  z-index: 999;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.3s ease;
}

.whatsapp-float:hover {
  transform: scale(1.1);
  background-color: #20b858;
}

@media (max-width: 768px) {
  .whatsapp-float {
    right: 10px !important;
    bottom: 10px !important;
  }
}


/***********fin whats app******/


/******************************* formulaire inscription *****/

/* Style des sections Parent / Enfant */
.parent-info,
.child1-info,
.child2-info, 
.contact-info {
    background-color: #f0f8ff; /* fond léger pour distinguer la section */
    border: 2px solid #10b9e0; /* bordure cyan du logo */
    border-radius: 15px;       /* coins arrondis */
    padding: 20px;             /* espace interne */
    margin-bottom: 25px;       /* espace entre sections */
}

/* Titre des sections */
.parent-info h3,
.child1-info h3,
.child2-info h3,
.contact-info h3{
    font-family: 'Montserrat', sans-serif;
    font-weight: 500;
    font-size: 18px;
    color: #ad4197; /* violet/magenta du logo */
    margin-bottom: 15px;
}

/* Champs à l'intérieur de la section */
.parent-info input,
.child1-info input,
.child2-info input,
.contact-info input{
    width: 100%;
    padding: 10px;
    border: 1px solid #ccc;
    border-radius: 8px;
    font-size: 1rem;
    margin-bottom: 10px;
}

/********************* fin inscription********************/

/***************** card actualité ***************************/

/* Carte actualité */
.rt-holder   {
  background: #fff;
  border-radius: 0 0 15px 15px; /* coins arrondis uniquement en bas */
  box-shadow: 0 5px 20px rgba(0, 0, 0, 0.08);
  overflow: hidden;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

/* Effet au survol */
.rt-holder:hover  {
  transform: translateY(-5px);
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
}

/* Image responsive des posts – conserver proportions */
.rt-img-holder img.rt-img-responsive {
    width: 100% !important;        /* occupe toute la largeur du conteneur */
    height: 100% !important;       /* conserve le ratio original */
    object-fit: contain; /* affiche toute l'image sans recadrage */
    display: block;
    border-radius: 0;   /* pas d'arrondi */
}

/* Désactiver les liens des catégories */
.categories-links a {
  pointer-events: none; /* Empêche le clic */
  cursor: default;      /* Change le curseur pour indiquer que ce n’est pas cliquable */
  text-decoration: none; /* Supprime le soulignement si nécessaire */
  color: inherit;       /* Garde la même couleur que le texte */
}

/*******************fin*******************************/
/*********************** grille responsive**************/
@media (max-width: 768px) {
  #bg-dots {
    display: flex;                 /* ligne horizontale */
    overflow-x: auto;              /* scroll horizontal */
    scroll-snap-type: x mandatory; /* snap sur chaque box */
    -webkit-overflow-scrolling: touch;
  }

  #bg-dots > .elementor-element {
    flex: 0 0 85%;                /* chaque box prend 100% du viewport */
    scroll-snap-align: start;      /* snap sur le début de la box */
    box-sizing: border-box;        /* pour inclure padding/border */
    margin-right: 0;               /* pas d'espace, full width */
  }

  /* optionnel : cacher la scrollbar */
  #bg-dots::-webkit-scrollbar {
    display: none;
  }
}



@media (max-width: 768px) {
  /* Conteneur parent */
  .elementor-element-63a9153.e-con-full.e-flex.e-con.e-child,
  .elementor-element-dcd15db.e-con-full.e-flex.e-con.e-child {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
  }

  /* Chaque bloc */
  .elementor-element-63a9153.e-con-full.e-flex.e-con.e-child > .elementor-widget-icon-box,
  .elementor-element-dcd15db.e-con-full.e-flex.e-con.e-child > .elementor-widget-icon-box {
    flex: 0 0 85%;            /* prend toute la largeur de l'écran */
    /*width: 100vw;                /* s'assure de prendre 100% du viewport */
    scroll-snap-align: start;
    box-sizing: border-box;
    margin: 0;                   /* enlever margin */
    padding: 5 15px;             /* optionnel : padding interne pour le texte */
  }

  /* Optionnel : cacher la scrollbar */
  .elementor-element-63a9153.e-con-full.e-flex.e-con.e-child::-webkit-scrollbar,
  .elementor-element-dcd15db.e-con-full.e-flex.e-con.e-child::-webkit-scrollbar {
    display: none;
  }
}

