/* ==========================================



   Typographie - Adobe Elza



   ========================================== */



/* Décalage des ancres sous le header sticky */

html {

  scroll-padding-top: 200px;

}



section[id],

article[id],

.anchor-target {

  scroll-margin-top: 200px;

}



/* Police de base */



body {



    font-family: "elza", sans-serif;



    font-weight: 400;



    font-style: normal;



    background: url(../images/bg.jpg) repeat;



    font-size: 18px;

    overflow-x: hidden;



}



a {

  color: var(--color-violet);

}

a:hover, a:link, a:focus {

  color: var(--color-violet);

}

a.btn-success:link,

a.btn-success {

  color: white !important;

}



/* Variante Regular */



.font-elza-regular {



    font-family: "elza", sans-serif;



    font-weight: 400;



    font-style: normal;



}







/* Variante Oblique (Italique) */



.font-elza-oblique {



    font-family: "elza", sans-serif;



    font-weight: 400;



    font-style: italic;



}







/* Variante Bold */



.font-elza-bold {



    font-family: "elza", sans-serif;



    font-weight: 700;



    font-style: normal;



}







/* Variante Bold Oblique */



.font-elza-bold-oblique {



    font-family: "elza", sans-serif;



    font-weight: 700;



    font-style: italic;



}







/* ==========================================



   Variables globales



   ========================================== */



:root {



  /* Couleurs principales */



  --color-turquoise: rgba(0, 158, 130, 1);   /* turquoise */



  --color-violet: rgba(149, 64, 134, 1);     /* violet */







  --bs-border-radius: 2rem; /* par défaut Bootstrap = 0.375rem */







  /* Déclinaisons */



  --color-turquoise-light: rgba(0, 158, 130, 0.1);



  --color-turquoise-dark: rgba(0, 120, 100, 1);







  --color-violet-light: rgba(149, 64, 134, 0.1);



  --color-violet-dark: rgba(110, 40, 100, 1);







  /* Neutres */



  --color-black: #000000;



  --color-dark: #333333;



  --color-gray: #777777;



  --color-light: #f8f9fa;



  --color-white: #ffffff;







  /* Utilitaires (par ex. Bootstrap override) */



  --bs-primary: var(--color-turquoise);



  --bs-secondary: var(--color-violet);







  --swiper-navigation-color: var(--color-violet); /* tes variables déjà définies */



  --swiper-pagination-color: var(--color-violet); /* si tu veux aussi les bullets */











}











/* ==========================================



   Menu principal



   ========================================== */



#main {



  margin-top: 0;



}



/* Liens par défaut */



.navbar-nav .nav-link {



  color: white !important;



  font-weight: 400;



  transition: color 0.3s ease, font-size 0.25s ease, padding 0.25s ease;



  font-size: 1.2rem;



}



.navbar-nav .menu-item-579 .nav-link {

  color: white !important;

}





/* État hover / actif */



.navbar-nav .nav-link:hover,



.navbar-nav .nav-link:focus,



.navbar-nav .nav-item.active .nav-link,



.navbar-nav .current-menu-item > .nav-link {



  color: var(--color-violet) !important;



}







/* Turquoise custom */



.bg-turquoise {



  background-color: var(--color-turquoise);



}



.bg-violet {



    background-color: var(--color-violet);



}



.text-turquoise {



    color: var(--color-turquoise);



}



.text-violet {



    color: var(--color-violet);



}



a.text-violet:hover {



  color: var(--color-turquoise);



}



/* Wrapper vidéo */



.video-bg-wrapper {



  position: relative;



  width: 100%;



  height: 100%;



  overflow: hidden;



}







.video-bg {



  position: absolute;



  top: 0;



  left: 0;



  width: 100%;



  height: 100%;



  object-fit: cover; /* remplit la zone en conservant les proportions */



  object-position: center; /* centre la vidéo */



  z-index: 1;



}







.video-bg-wrapper .overlay {



  position: absolute;



  top: 0;



  left: 0;



  right: 0;



  bottom: 0;



  background: rgba(0,0,0,0.3); /* assombrit un peu la vidéo */



  z-index: 2;



}







.video-bg-wrapper > * {



  z-index: 1;



}











/* Hero Slider spécifique */



.hero-slider .swiperfront {



  width: 100%;



  min-height: 50vh;



}







.hero-slider .swiper-slide {



  width: 100%;



  height: 50vh;



  display: flex;



  align-items: stretch; /* force les colonnes à avoir la même hauteur */



}







.hero-slider .row {



  width: 100%;



  height: 100%;



  margin: 0; /* supprime éventuels espacements */



}







.hero-slider .col-lg-6 {



  padding: 0; /* supprime padding Bootstrap si tu veux un rendu collé */



}







/* Ajustement du display-3 dans le hero slider */



.hero-slider .display-3 {



  font-size: 3rem;       /* taille du texte */



  line-height: 1.2;      /* meilleure lisibilité */



}















.navbar-brand img {

  max-height: 80px;

  width: auto;

  height: auto;

}



.compact .navbar-brand img {

  max-height: 50px;

  width: auto;

  height: auto;

}

.cta-icons {

  position: relative;

  z-index: 99;

  top: -50px;

}



.icon-circle {

  width: 250px;

  height: 250px;

  border-radius: 50%;

  background: url(../images/icones/forme-circle.svg) no-repeat center center !important;

  background-size: contain !important;

  display: flex;

  align-items: center;

  justify-content: center;

  color: var(--color-violet);

  transition: all 0.3s ease;

  padding: 2rem;

  text-align: center;

  line-height: 1.25;

}



.icon-circle .display-4,

.icon-circle .display-5 {

  color: var(--color-violet);

  line-height: 1;

  margin: 0.4rem 0;

}



.icon-circle .smalltext {

  color: var(--color-violet);

  font-size: 1.25rem;

  line-height: 1.35;

}





/* Version mobile */

.mobile-stats {

  display: flex;

  flex-direction: column;

  gap: 2rem;

  padding: 1.5rem 0;

}



.mobile-stat {

  display: grid;

  grid-template-columns: 1fr 110px;

  column-gap: 1.75rem;

  align-items: center;

}



.mobile-stat-text {

  color: var(--color-violet);

  font-size: 1.1rem;

  line-height: 1.35;

  text-align: right;

}



.mobile-stat-text strong {

  display: block;

  font-size: 1.25rem;

  line-height: 1.25;

}



.mobile-stat-circle-wrap {

  text-align: left;

}



.mobile-stat-circle {

  width: 96px;

  height: 96px;

  border-radius: 50%;



  background: url(../images/icones/forme-circle.svg) no-repeat center center !important;

  background-size: contain !important;



  color: var(--color-violet);

  display: flex;

  align-items: center;

  justify-content: center;



  text-align: center;

  font-size: 2rem;

  font-weight: 700;

  line-height: 1;

  padding: 0.75rem;

}



.mobile-stat-circle-large {

  font-size: 1.35rem;

}





/* Très petits écrans */

@media (max-width: 380px) {

  .mobile-stats {

    gap: 1.5rem;

  }



  .mobile-stat {

    grid-template-columns: 1fr 140px;

    column-gap: 1.25rem;

  }



  .mobile-stat-circle {

    width: 84px;

    height: 84px;

    font-size: 1.7rem;

  }



  .mobile-stat-circle-large {

    font-size: 1.15rem;

  }



  .mobile-stat-text {

    font-size: 1rem;

  }



  .mobile-stat-text strong {

    font-size: 1.1rem;

  }

}





.icon-circle.circle-small {



 width: 50px;



 height: 50px;



}







.icon-circle-fcd {

  aspect-ratio: 1 / 1;

  border-radius: 50%;

  background: url("../images/icones/forme-circle.svg") no-repeat center center !important;

  background-size: contain !important;



  display: flex;

  align-items: center;

  justify-content: center;



  transition: all 0.3s ease;

}



.page-id-571 .icon-circle-fcd {

  min-height: 80px;

}



.icon-circle-fcd img {

  max-width: 60%;

  max-height: 60%;

  width: auto;

  height: auto;

}



.mission-figure {

  margin-left: auto;

  margin-right: auto;

}







.cta-icon:hover .icon-circle {



  color: var(--color-white);



}



.cta-icon:hover .icon-circle svg {



    fill: white !important;



}







.cta-icon span {



  display: block;



  margin-top: 0.5rem;



  color: var(--color-violet);



}







/* Boutons adaptés */



div.wpforms-container-full input[type=submit]:not(:hover):not(:active), div.wpforms-container-full button[type=submit]:not(:hover):not(:active), div.wpforms-container-full .wpforms-page-button:not(:hover):not(:active), .wp-core-ui div.wpforms-container-full input[type=submit]:not(:hover):not(:active), .wp-core-ui div.wpforms-container-full button[type=submit]:not(:hover):not(:active), .wp-core-ui div.wpforms-container-full .wpforms-page-button:not(:hover):not(:active),



.btn-success {



  background-color: var(--color-turquoise) !important;



  border-color: var(--color-turquoise) !important;



}



.btn-success:hover {



  background-color: var(--color-turquoise-dark);



  border-color: var(--color-turquoise-dark);



}







.btn-secondary {



  background-color: var(--color-violet);



  border-color: var(--color-violet);



}



.btn-secondary:hover {



  background-color: var(--color-violet-dark);



  border-color: var(--color-violet-dark);



}







.news-slider .card {



  border-radius: var(--bs-border-radius-lg);



}







.news-slider .card-title {



  font-size: 1rem;



  line-height: 1.4;



}







.news-slider .btn-success {



  background-color: var(--color-turquoise);



  border-color: var(--color-turquoise);



}







/* Images du swiper news avec ratio fixe */



.news-slider .card-img-top,



.card-img-top {



  width: 100%;



  height: 240px;          /* hauteur fixe, à ajuster selon ton design */



  object-fit: cover;      /* conserve le ratio, rogne si besoin */



  object-position: center;



  border-top-left-radius: var(--bs-border-radius-lg);



  border-top-right-radius: var(--bs-border-radius-lg);



  display: block;



}











.newsletter-social .form-control:focus {



  box-shadow: none;



  outline: none;



}







.newsletter-social .btn-success {



  background-color: var(--color-turquoise);



  border: none;



}







.newsletter-social .btn-success:hover {



  background-color: var(--color-turquoise-dark);



}







.newsletter-social .text-violet {



  color: var(--color-violet);



}







/* Menu secondaire */



.bg-white .nav.small .nav-link {



  color: var(--color-black);       /* par défaut noir */



  font-weight: 500;



  transition: color 0.3s ease;



}







.bg-white .nav.small .nav-link:hover,



.bg-white .nav.small .nav-link:focus {



  color: var(--color-turquoise);   /* survol turquoise */



}







/* État actif ou page en cours */



.bg-white .nav.small .current-menu-item > .nav-link,



.bg-white .nav.small .nav-link.active {



  color: var(--color-turquoise);



}







/* Hero simple (vidéo à droite, texte à gauche) */



.hero-simple {



  min-height: 50vh; /* même hauteur que le swiper */



}







.hero-simple .row {



  min-height: 50vh; /* garantit que les colonnes prennent toute la hauteur */



}







.hero-simple .bg-turquoise {



  display: flex;



  flex-direction: column;



  justify-content: center;



}







.hero-simple .video-bg-wrapper {



  position: relative;



  width: 100%;



  height: 50vh;



  overflow: hidden;



}







.hero-simple .video-bg {



  position: absolute;



  top: 0;



  left: 0;



  width: 100%;



  height: 100%;



  object-fit: cover;



  object-position: center;



  z-index: 1;



}







.single-etude-de-cas .hero-simple .video-bg-wrapper {



  max-height: 60vh !important;



}







.hero-simple .video-bg-wrapper .overlay {



  position: absolute;



  inset: 0;



  background: rgba(0,0,0,0.05);



  z-index: 2;



}



/* Utilitaire pour petit texte */



.text-small {



  font-size: 0.875rem;   /* équivalent à small */



  line-height: 1.4;      /* améliore la lisibilité */



}







.site-header {

  position: sticky;

  top: 0;

  z-index: 99998;

}



.modal {

  z-index: 99999 !important;

}



/* Header compact au scroll : logo réduit, sans disparition pour éviter les sauts */

.site-header .navbar {

  transition: padding 0.25s ease, transform 0.25s ease;

}



.site-header .navbar:first-child {

  transition: padding 0.25s ease;

}



.site-header .navbar-brand {

  overflow: hidden;

  transition: padding 0.25s ease;

}



.site-header .site-logo {

  max-height: 120px;

  width: auto;

  height: auto;

  opacity: 1;

  transform: translateY(0);

  transition: max-height 0.25s ease, opacity 0.25s ease, transform 0.25s ease;

}



.site-header.is-scrolled .site-logo {

  max-height: 58px;

  opacity: 1;

  transform: translateY(0);

  pointer-events: auto;

}



.site-header.is-scrolled .navbar:first-child {

  padding-top: 0.25rem !important;

  padding-bottom: 0.25rem !important;

}



.site-header.is-scrolled .navbar-brand {

  padding-top: 0.25rem;

  padding-bottom: 0.25rem;

}



/* Ancienne classe compact conservée sans translation verticale pour éviter les effets de saut */

.site-header.compact .topbar {

  opacity: 1;

  pointer-events: auto;

  transform: none;

}



.site-header.compact .navbar {

  transform: none;

}



.sticky-appels {

  top: 100px;

}



.navbar-nav .text-white .nav-link { 



  color: white;



}







/* Pagination Bootstrap personnalisée */



.pagination .page-item.active .page-link {



  background-color: var(--color-violet-dark);



  border-color: var(--color-violet-dark);



  color: #fff;



}







.pagination .page-link {



  color: var(--color-violet-dark);



}







.pagination .page-link:hover {



  color: #fff;



  background-color: var(--color-violet-dark);



  border-color: var(--color-violet-dark);



}







.pagination .page-item.disabled .page-link {



  color: #999;



  background-color: #f8f9fa;



  border-color: #dee2e6;



}







.navbar-expand-lg .navbar-nav .dropdown-menu {



  overflow: hidden;



}







.dropdown-item.active, .dropdown-item:active {



    background-color: var(--color-violet-dark) !important;



    color: white !important;



    text-decoration: none;



}







.play-icon img {



  width: 90px;



  height: 90px;



  filter: drop-shadow(0 3px 6px rgba(0,0,0,0.4));



  transition: transform 0.3s ease;



}







.video-trigger:hover .play-icon img {



  transform: scale(1.1);



}







.menu-item-111 a:before {

  content: ' ';

  display: block;

  background: url(../images/icones/medecine.svg) no-repeat top center;

  width: 40px;

  height: 38px;

  background-size: contain;

  transition: width 0.25s ease, height 0.25s ease, transform 0.25s ease;

}







.menu-item-201 a,



.menu-item-187 a,



.menu-item-111 a {



  display: flex;



  flex-direction: column;



  align-items: center;



}







.menu-item-187 a:before {

  content: ' ';

  display: block;

  background: url(../images/icones/hand.svg) no-repeat top center;

  width: 60px;

  height: 38px;

  background-size: contain;

  transition: width 0.25s ease, height 0.25s ease, transform 0.25s ease;

}







.menu-item-201 a:before {

  content: ' ';

  display: block;

  background: url(../images/icones/don.svg) no-repeat top center;

  width: 26px;

  height: 38px;

  background-size: contain;

  transition: width 0.25s ease, height 0.25s ease, transform 0.25s ease;

}



.site-header.is-scrolled .menu-item-111 a:before {

  width: 28px;

  height: 27px;

}



.site-header.is-scrolled .menu-item-187 a:before {

  width: 42px;

  height: 27px;

}



.site-header.is-scrolled .menu-item-201 a:before {

  width: 20px;

  height: 29px;

}



.site-header.is-scrolled .menu-item-217 {

  padding: 6px 16px;

}







.menu-item-217 {



    align-self: center; /* ou auto */



  height: auto;       /* empêche l’étirement vertical */



  padding: 8px 20px; /* ajuste la hauteur normale d’un bouton */



}







.video-cover {



    position: absolute;



    top: 0; left: 0;



    width: 100%;



    height: 100%;



    background-size: cover;



    background-position: center;



    cursor: pointer;



    z-index: 2;



}







.cta-icon span.smalltext {



  font-size: 16px;



}







.facetwp-checkbox {



line-height: 1;



font-size: .85rem



}







.partenaires-logos .list-inline-item {



  vertical-align: middle;



}







.partenaires-logos img {



  max-height: 100px;



}



.floating {



  float: right;



}



.footer-menu .nav-link {



  color: white;



}







.navbar-nav #menu-mobile-menu .nav-link {



  color: var(--color-violet);



}







#menu-mobile-menu {



  margin: 0;



  padding: 0;



  list-style: none; 



}







#menu-mobile-menu .nav-link {



  font-size: initial;



  color: var(--color-turquoise);



  padding: 7px 0;



}







.bg-white .nav.small #menu-item-217 .nav-link {



  font-weight: bold;



  color: white;



}



.domaines-list {

  column-count: 2;

  column-gap: 40px;

  padding-left: 1.2rem;

  margin-top: 1.5rem;

}



.domaines-list li {

  break-inside: avoid;

  margin-bottom: 0.75rem;

}



.domaines-figure img {

  width: 100%;

  height: auto;

  display: block;

}



.newsletter div.wpforms-container-full input[type=checkbox]+label, 

.newsletter div.wpforms-container-full input[type=radio]+label,

.newsletter div.wpforms-container-full .wpforms-field-label,

.newsletter .wp-core-ui div.wpforms-container-full .wpforms-field-label {

  color: white !important;

  font-size: .875em !important;

}



.newsletter #wpforms-346 {

  margin-top: 0 !important;

}

.newsletter .div.wpforms-container-full input[type=submit]:not(:hover):not(:active), 

.newsletter div.wpforms-container-full button[type=submit]:not(:hover):not(:active), 

.newsletter div.wpforms-container-full .wpforms-page-button:not(:hover):not(:active), 

.newsletter .wp-core-ui div.wpforms-container-full input[type=submit]:not(:hover):not(:active), 

.newsletter .wp-core-ui div.wpforms-container-full button[type=submit]:not(:hover):not(:active), 

.newsletter .wp-core-ui div.wpforms-container-full .wpforms-page-button:not(:hover):not(:active),

.newsletter .btn-success {

  background-color: white !important;

  border-color: white !important;

  color: var(--color-turquoise) !important;

} 



.lh-05 {

  line-height: 1;

}





.news-container {

  position: relative;

}



/* Filtres taxonomie */

.taxonomy-filters {

  display: flex;

  flex-wrap: wrap;

  gap: 0.75rem;

}



.taxonomy-filter-item {

  cursor: pointer;

  margin: 0;

}



.taxonomy-filter-item input {

  position: absolute;

  opacity: 0;

  pointer-events: none;

}



.taxonomy-filter-item span {

  display: inline-flex;

  align-items: center;

  border: 1px solid var(--color-turquoise);

  color: var(--color-turquoise);

  border-radius: 999px;

  padding: 0.45rem 1rem;

  font-size: 0.95rem;

  line-height: 1.2;

  transition: all 0.2s ease;

}



.taxonomy-filter-item:hover span,

.taxonomy-filter-item input:checked + span,

.taxonomy-filter-item.is-active span {

  background-color: var(--color-turquoise);

  color: #fff;

}

.active-filters .badge {

  font-weight: 500;

}



/* Mobile : offcanvas Bootstrap */

@media (max-width: 991.98px) {

  .filters-sidebar {

    background: #fff;

    --bs-offcanvas-width: min(90vw, 360px);

  }



  .filters-sidebar .offcanvas-body {

    padding: 1.5rem;

  }



  .filters-inner {

    display: block;

  }



  .filter-block {

    margin-bottom: 1.5rem;

    padding-bottom: 1.25rem;

    border-bottom: 1px solid rgba(0, 0, 0, 0.08);

  }



  .taxonomy-filters {

    display: block;

  }



  .taxonomy-filter-item {

    display: block;

    margin-bottom: 0.75rem;

  }



  .taxonomy-filter-item span {

    width: 100%;

    justify-content: center;

  }



  .filter-actions {

    display: block;

    margin-top: 1.5rem;

  }



  .filter-actions .btn {

    width: 100%;

  }



  .filter-mobile-submit {

    margin-top: 1rem;

  }

}



/* Desktop : filtres en ligne pleine largeur */

@media (min-width: 992px) {

  .filters-sidebar {

    position: static !important;

    transform: none !important;

    visibility: visible !important;

    opacity: 1 !important;

    z-index: auto !important;



    width: 100% !important;

    max-width: 100% !important;

    height: auto !important;



    border: 0 !important;

    background: transparent !important;

    box-shadow: none !important;

  }



  .filters-sidebar.offcanvas {

    flex: 0 0 100%;

  }



  .filters-sidebar .offcanvas-body {

    display: block !important;

    overflow: visible !important;

    padding: 0 !important;

  }



  .filters-inner {

    display: flex;

    flex-wrap: wrap;

    align-items: flex-end;

    gap: 1.5rem;

    width: 100%;

    padding: 1.5rem;

    background: #fff;

    border-radius: var(--bs-border-radius);

  }



  .filter-block {

    flex: 1 1 auto;

    margin-bottom: 0;

  }



  .filter-block h5 {

    color: var(--color-violet);

    font-weight: 700;

    font-size: 1rem;

    margin-bottom: 1rem;

  }



  .filter-actions {

    display: flex;

    gap: 0.5rem;

    flex: 0 0 auto;

  }

}



/* Cartes */

.news-container .card-img-top {

  width: 100%;

  aspect-ratio: 4 / 3;

  object-fit: cover;

}



.news-container .card-title {

  font-size: 1.1rem;

  line-height: 1.25;

}



.news-container .card-text {

  line-height: 1.5;

}



.navbar-nav .btn-secondary .nav-link {

  color: white !important;

}



#menu-menu-secondaire.navbar-nav .nav-link {

  font-size: 1rem;

  transition: color 0.3s ease, font-size 0.25s ease, padding 0.25s ease;
  color: var(--color-violet) !important;
}

#menu-menu-secondaire.navbar-nav .btn .nav-link {
  color: white !important;
}

.site-header.is-scrolled #menu-menu-secondaire.navbar-nav .nav-link {

  font-size: 0.9rem;

}



@media (max-width: 991.98px) {

  .site-header .site-logo {

    max-height: 80px;

  }



  .site-header.is-scrolled .site-logo {

    max-height: 58px;

  }

}



.bg-light {

  --bs-light-rgb: 233, 236, 239;

  --bs-bg-opacity: 1;

  background-color: rgba(var(--bs-light-rgb), var(--bs-bg-opacity)) !important;

}