/*
Theme Name: Hello Elementor Child
Description: Child theme pour Hello Elementor
Author: Nicolas St-Germain, webmestre Service des communications de la CSN
Template: hello-elementor
Version: 1.0.0
*/

/* Ajoute ici ton CSS custom si nécessaire */

/*******************************************************
 * 1. BULLET POINTS (site-wide)
 *******************************************************/
.bullet-point-wysiwyg ul {
  list-style: none;
  padding-left: 0;
  margin-left: 0;
}

.bullet-point-wysiwyg ul li {
  position: relative;
  padding-left: 1.5rem;
  margin-bottom: 0.25rem;
  line-height: 1.6;
}

.bullet-point-wysiwyg ul li::before {
  font-family: "Font Awesome 5 Free";
  font-weight: 400; /* fa-regular */
  content: "\f35a"; /* fa-arrow-circle-right */
  position: absolute;
  left: 0;
  top: 3px;
  font-size: 1.1rem;
}


/*******************************************************
 * 2. EFFET GLASS (containers)
 *******************************************************/
.glass-container-25,
.glass-container-50,
.glass-container-75 {
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.glass-container-50 {
  background: rgba(255, 255, 255, 0.5);
}

.glass-container-25 {
  background: rgba(255, 255, 255, 0.25);
}

.glass-container-75 {
  background: rgba(255, 255, 255, 0.75);
}


/*******************************************************
 * 3. BOUTON DE RECHERCHE (header) - design
 *******************************************************/

  /* Le layout SearchWP : une vraie ligne flex, avec un input qui peut grandir */
  #searchwp-form-7 .swp-flex--row {
    display: flex;
    align-items: center;
    gap: 8px;                   /* remplace swp-flex--gap-md si trop grand */
  }

  .searchwp-form-input-container {
    flex: 1 1 auto;             /* l’input peut prendre l’espace */
    min-width: 0;               /* empêche les overflow dans les flex items */
  }

  /* L’input doit remplir son container */
  #searchwp-form-7 .swp-input--search,
  #searchwp-form-7 .swp-input {
    width: 100% !important;     /* override les styles inlines/externes */
    box-sizing: border-box;
  }

  /* Le bouton ne doit pas s’étirer */
  #searchwp-form-7 input[type="submit"].swp-button {
    flex: 0 0 auto;
    white-space: nowrap;
  }

  /* Optionnel : si l’icône loupe/placeholder prend trop de place */
  #searchwp-form-7 .swp-input--search::placeholder {
    opacity: .7;
  }

/* Couleur du bouton "recherche" */
  #searchwp-form-7 input[type=submit] {
    border-color: var(--e-global-color-accent) !important;
    background-color: var(--e-global-color-accent) !important;
    color: var(--e-global-color-0eb665c) !important;
}

#searchwp-form-7 input[type=submit]:hover {
    border-color: var(--e-global-color-accent) !important;
    background-color: var(--e-global-color-0eb665c) !important;
    color:  var(--e-global-color-accent) !important;
}

/* ---- Petits mobiles (facultatif) ---- */
@media (max-width: 480px) {
  .header-search-form {
    top: 8px;
	  left: 0%;
    width: min(95vw, 520px);
    padding: 10px;
  }

  #searchwp-form-1 .swp-flex--row {
    gap: 6px;
  }
}



/*******************************************************
 * 4. LOOP GRID — Effets hover + underline animés + icône
 *******************************************************/

/* ===============================
   CARD HOVER ZOOM
================================ */
.carte-hover-zoom {
  overflow: hidden;
  position: relative;
/*  transition: transform 0.3s ease; */
}

/* 
.carte-hover-zoom .loop-article-img-hover {
  transform: scale(1);
  transition: transform 0.5s ease;
}

.carte-hover-zoom:hover .loop-article-img-hover {
  transform: scale(1.1);
}
*/  

/*=====================================================
   TITRE LOOP — Highlight animé (Elementor Heading)
 =====================================================*/

/* Le wrapper du titre (ta classe) */
.titre-article-loop {
  position: relative;
}

/* Le vrai texte du heading Elementor */
.titre-article-loop .elementor-heading-title {
  position: relative;
  display: inline-block;        /* ✅ largeur = texte réel */
  z-index: 1;
}

/* Highlight animé derrière le texte */
.titre-article-loop .elementor-heading-title::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0.15em;               /* ≈ 25–30% sous la ligne */
  width: 100%;
  height: 0.35em;               /* effet highlight */
  border-radius: 2px;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.25s ease 0.1s;
  z-index: -1;
}

/* Couleurs du highlight */
.titre-article-loop-BGblue .elementor-heading-title::after {
  background-color: var(--e-global-color-secondary);
}

.titre-article-loop-BGW .elementor-heading-title::after {
  background-color: #fff;
}

/* Hover déclenché par la carte complète */
.carte-hover-zoom:hover 
.titre-article-loop .elementor-heading-title::after {
  transform: scaleX(1);
}

/* ===============================
   ICON SLIDE LOOP — SANS POSITION ABSOLUE
================================ */

.icon-slide-wrap {
  display: inline-flex;
  align-items: center;
  overflow: hidden;
}

.icon-slide {
  display: inline-block;
  transform: translateX(0);
  opacity: 0;
}

/* Hover déclenché par la carte */
.carte-hover-zoom:hover .icon-slide {
  animation: icon-slide-inline-loop 0.6s ease-in-out ;
  opacity: 1;
}

/* Animation inline */
@keyframes icon-slide-inline-loop {
  0% {
    transform: translateX(0);
    opacity: 1;
  }

  40% {
    transform: translateX(120%);
    opacity: 0;
  }

  45% {
    transform: translateX(-120%);
    opacity: 0;
  }

  100% {
    transform: translateX(0);
    opacity: 1;
  }
}

/* ===============================
   LINKS CLASSIQUES (inchangé)
================================ */
.link-underline a:hover {
  text-decoration: underline;
}


/*******************************************************
 * 5. The Events Calendar (organizer links + layout)
 *******************************************************/
.tec-events-elementor-event-widget__organizer-email-link,
.tec-events-elementor-event-widget__organizer-phone-link {
  color: var(--e-global-color-bdc7cb0) !important;
}

.tec-events-elementor-event-widget__organizer-email-link:hover,
.tec-events-elementor-event-widget__organizer-phone-link:hover {
  color: var(--e-global-color-accent) !important;
}

/* Retire la largeur max du template standard */
.tribe-events-pg-template {
  max-width: none !important;
  width: 100% !important;
  padding: 0 !important;
}

.tec-events-elementor-event-widget__organizer
  .tec-events-elementor-event-widget__organizer-email-wrapper,
.tec-events-elementor-event-widget__organizer
  .tec-events-elementor-event-widget__organizer-phone-wrapper,
.tec-events-elementor-event-widget__organizer
  .tec-events-elementor-event-widget__organizer-website-wrapper {
    margin: 0 !important;
}


/*******************************************************
 * 6. Général
 *******************************************************/
sup {
  text-transform: lowercase;
}


/*******************************************************
 * 8. Loop Documents — Gras sur termes / date
 *******************************************************/
.info-loop-document :is(.elementor-post-info__terms-list-item, time) {
  font-weight: bold;
}

/*******************************************************
 * 7. SearchWP — Chip "mots-clés" (proche visuel BFWE) -- Page "voûte documentaire"
 *******************************************************/
.swp-chip, .swp-chip__close {
  display: inline-flex;
  align-items: center;
  gap: .10px;
  font-size: var(--e-global-typography-5721314-font-size);
  line-height: var(--e-global-typography-5721314-line-height);
  letter-spacing: var(--e-global-typography-5721314-letter-spacing);
  font-family: var( --e-global-typography-5721314-font-family ), Sans-serif;
  font-weight: var( --e-global-typography-5721314-font-weight );
  text-transform: var( --e-global-typography-5721314-text-transform );
  color:var( --e-global-color-1ad8b9d );
}

.swp-chip__close {
  place-items: center;
  cursor: pointer;
  transition: .3s;
  margin-right: 0.15rem;
  padding:0;
  border : 0;
  background-color: transparent;
  border-radius:0;
}

.swp-chip__close:hover {
  color: var(--e-global-color-primary);
  margin-right: 0.15rem;
  padding:0;
  border : 0;
  background-color: transparent;
  border-radius:0;
}

.swp-chip__close:active {
  transform: scale(.92);
}

/* Alignement avec les chips BFWE si présents dans le même conteneur */
.quick-deselect-ec5ca22 .swp-chip + .bpfwe-filter-chip,
.quick-deselect-ec5ca22 .bpfwe-filter-chip + .swp-chip {
  margin-left: .35rem;
}

/* Responsif : réduire la taille sur mobile étroit */
@media (max-width: 480px) {
  .swp-chip {
    font-size: .88rem;
    padding: .22rem .5rem .22rem .45rem;
  }
  .swp-chip__close {
    width: 1.25rem;
    height: 1.25rem;
  }
}

/*******************************************************
 * 8. SearchWP — Bouton "recherche" du formulaire de recherche -- Page "voûte documentaire"
 *******************************************************/
#searchwp-form-6 input[type=submit] {
    border-color: var(--e-global-color-45bd6ca) !important;
    background-color: var(--e-global-color-45bd6ca) !important;
    color: var(--e-global-color-bdc7cb0) !important;
}

#searchwp-form-6 input[type=submit]:hover {
    border-color: var(--e-global-color-45bd6ca) !important;
    background-color: var(--e-global-color-bdc7cb0) !important;
    color:  var(--e-global-color-45bd6ca) !important;
}

/*******************************************************
 * 9. Carroussel photo - déplacement des flèches sous les images
 *******************************************************/
.icon-list-galerie-texte .swiper .elementor-swiper-button-prev {
    position: relative !important;
    left: 10px;
    bottom: 0px;
    margin-top: 25px;
}

.icon-list-galerie-texte .swiper .elementor-swiper-button-next {
    position: relative !important;
    left: 25px;
    bottom: 0px;
    margin-top: 25px
}


/*******************************************************
 * 10. Effet bouton - déplacement des icônes -- droite->gauche (Lien) // bas->haut (téléchargement)
 *******************************************************/

 /*============= 
   BOUTON LIEN 
  =============*/
.btn-link-anim .elementor-button {
  position: relative;
  display: inline-flex;
  align-items: center;
}

/* wrapper */
.btn-link-anim .elementor-button-content-wrapper {
  display: flex;
  align-items: center;
  gap: 8px;
}

/* TEXTE */
.btn-link-anim .elementor-button-text {
  position: relative;
  transition: transform 0.3s ease;
}

/* ✅ icône originale (droite) */
.btn-link-anim .elementor-button-icon {
  transition: transform 0.4s ease, opacity 0.4s ease;
}

/* ✅ FAUSSE icône à gauche */
.btn-link-anim .elementor-button-text::before {
  content: "\f35a"; /* icône → (Font Awesome) */
  font-family: "Font Awesome 5 Free"; 
  font-weight: 900;
  position: absolute;
  left: -20px;
  opacity: 0;
  transform: translateX(-10px);
  transition: transform 0.4s ease, opacity 0.4s ease;
}

/* ✅ HOVER */

/* icône droite sort */
.btn-link-anim:hover .elementor-button-icon {
  transform: translateX(20px);
  opacity: 0;
}

/* icône gauche entre */
.btn-link-anim:hover .elementor-button-text::before {
  opacity: 1;
  transform: translateX(0);
}

/* petit mouvement texte */
.btn-link-anim:hover .elementor-button-text {
  transform: translateX(15px);
}

/*======================== 
   BOUTON TÉLÉCHARGEMENT 
 ========================*/
.btn-download-anim .elementor-button {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  overflow: hidden;
}

.btn-download-anim .elementor-button-icon {
  display: inline-block;
  transition: transform 0.4s ease;
}

/* Animation hover */
.btn-download-anim:hover .elementor-button-icon {
  animation: slide-download 0.6s ease forwards;
}

@keyframes slide-download {
  0% {
    transform: translateY(0);
    opacity: 1;
  }
  40% {
    transform: translateY(150%);
    opacity: 0;
  }
  41% {
    transform: translateY(-150%);
    opacity: 0;
  }
  100% {
    transform: translateY(0);
    opacity: 1;
  }
}

/*******************************************************
 * 11. Effet Hover underline lien cliquable
 * Déplacement de l'icône droite->gauche
 * Grow underline
 * Compatible :
 * - Elementor Icon List
 * - Widget Texte (.hover-lien-href.hightlight-hover a)
 *******************************************************/

/*============
   BASE LINK
 ============*/

 :root {
  --highlight-color: var(--e-global-color-accent);
}

/* Orange accent */
.hightlight-hover.is-orange {
  --highlight-color: var(--e-global-color-accent);
}

/* Bleu principal */
.hightlight-hover.is-blue-main {
  --highlight-color: var(--e-global-color-primary);
}

/* Bleu secondaire */
.hightlight-hover.is-blue-secondary {
  --highlight-color: var(--e-global-color-secondary);
}

/* Gris-bleu */
.hightlight-hover.is-grey-blue {
  --highlight-color: var(--e-global-color-0eb665c);
}

/* Liens listes Elementor */
.hightlight-hover .elementor-icon-list-item a {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 8px;
  text-decoration: none;
}


/*========
   TEXTE
 ========*/

/* Elementor */
.hightlight-hover a .elementor-icon-list-text {
  position: relative;
  z-index: 1;
}

/* Highlight Elementor */
.hightlight-hover a .elementor-icon-list-text::after {
  content: "";
  position: absolute;
  left: 2px;
  bottom: 0;

  width: 100%;
  height: 5px;

  background: var(--highlight-color);
  opacity: 0.75;

  z-index: -1;

  transform: scaleX(1);
  transform-origin: left;

  will-change: transform, height;
  transition: height 0.3s ease;
}

/* Hover Elementor */
.hightlight-hover .elementor-icon-list-item a:hover .elementor-icon-list-text::after {
  height: 10px;
}


/* ==================================
   WYSIWYG / TEXT EDITOR LINKS
 ================================== */

.elementor-widget-text-editor.hightlight-hover a {
  position: relative !important;
  display: inline-block !important;
  text-decoration: none !important;
  z-index: 1 !important;
}

.elementor-widget-text-editor.hightlight-hover a::after {
  content: "" !important;
  position: absolute !important;
  left: 2px !important;
  bottom: 0 !important;

  width: calc(100% - 2px) !important;
  height: 5px !important;

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

  opacity: 0.75 !important;

  z-index: -1 !important;

  transition: height 0.3s ease !important;
}

.elementor-widget-text-editor.hightlight-hover a:hover::after {
  height: 10px !important;
}

/* =======
   ICÔNE
 ========*/

.hightlight-hover .elementor-icon-list-icon {
  display: inline-flex;
  align-items: center;
  overflow: hidden;
  flex-shrink: 0;
}

.hightlight-hover .elementor-icon-list-icon i,
.hightlight-hover .elementor-icon-list-icon svg {
  display: inline-block;
  will-change: transform, opacity;
}

/* Hover icône */
.hightlight-hover .elementor-icon-list-item a:hover .elementor-icon-list-icon i,
.hightlight-hover .elementor-icon-list-item a:hover .elementor-icon-list-icon svg {
  animation: icon-slide 0.5s cubic-bezier(0.65, 0, 0.35, 1);
}


/*===========
  KEYFRAMES
===========*/

@keyframes icon-slide {
  0% {
    transform: translateX(0);
    opacity: 1;
  }

  45% {
    transform: translateX(18px);
    opacity: 0;
  }

  46% {
    transform: translateX(-18px);
    opacity: 0;
  }

  100% {
    transform: translateX(0);
    opacity: 1;
  }
}

/*******************************************************
 * 12. Paramètrage des images dans les blocs de textes 
*******************************************************/
.img-wysiwyg img {
  border-style: solid;
  border-width: 3px 3px 3px 3px;
  border-color: var(--e-global-color-primary);
  border-radius: 7px 7px 7px 7px;
  box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.5);
  margin-bottom: 1rem;
}

/*******************************************************
 * 13. Paramètrage du breadcrumbs sur page layout 100% et 75% (shortcode via ce fichier : parent-breadcrumb.php)
*******************************************************/
.parent-breadcrumb {
    display: inline-block;
    color: var(--e-global-color-primary);
    font-size: var(--e-global-typography-5721314-font-size);
    font-family: var(--e-global-typography-5721314-font-family);
    font-weight: var(--e-global-typography-5721314-font-weight);
    text-transform: var(--e-global-typography-5721314-text-transform);
    line-height: var(--e-global-typography-5721314-line-height);
    letter-spacing: var(--e-global-typography-5721314-letter-spacing);
    background-color: var(--e-global-color-0eb665c);
    border-radius: 5px;
    padding: 10px;
}

/*******************************************************
 * 14. Paramètrage du menu dans le hamburger
 *******************************************************/

/* ==========================
   NIVEAU 1
   ========================== */

/* État normal */
.menu-hamburger .menu-item > .elementor-item {
  margin-bottom: 5px !important;
  padding : 3px 10px 3px 10px!important;
  border-left: 5px solid var(--e-global-color-primary);
}

/* Hover */
.menu-hamburger .menu-item:hover > .elementor-item {
  border-color: var(--e-global-color-secondary);
  color: var(--e-global-color-secondary) !important;
}

/* Menu ouvert */
.menu-hamburger .menu-item > .elementor-item.highlighted {
  border-color: var(--e-global-color-secondary);
  color: var(--e-global-color-secondary) !important;
}



/* ==========================
 CONTENEURS DE SOUS-MENU
 ========================== */

/* Sous-menu ouvert */
.elementor-nav-menu--dropdown .menu-item-has-children > ul.sub-menu {
  margin: 12px !important;
  padding: 6px !important;
}

/* Hover sur le parent */
.elementor-nav-menu--dropdown .menu-item-has-children:hover > ul.sub-menu {
  border-color: var(--e-global-color-secondary);
}

/* Sous-menu actif/ouvert */
.elementor-nav-menu--dropdown .menu-item-has-children > .highlighted + ul.sub-menu {
  border-color: var(--e-global-color-secondary);
  color: var(--e-global-color-secondary) !important;
}


/* ==========================
 NIVEAU 2
 ========================== */

/* État normal */
.elementor-nav-menu--dropdown .elementor-sub-item {
  transition: all .2s ease;
}

/* Lien sans sous-menu */
.elementor-nav-menu--dropdown .elementor-sub-item:hover {
  color: var(--e-global-color-accent) !important;
}

/* Élément possédant un sous-menu */
.elementor-nav-menu--dropdown .menu-item-has-children:hover > .elementor-sub-item.has-submenu {
  border-color: var(--e-global-color-secondary);
}

/* Sous-menu niveau 2 ouvert */
.elementor-nav-menu--dropdown .menu-item-has-children > .elementor-sub-item.has-submenu.highlighted {
  border-color: var(--e-global-color-secondary);
}


/* ==========================
 NIVEAU 3
 ========================== */

/* Les liens du niveau 3 deviennent orange au hover */
.elementor-nav-menu--dropdown
.sub-menu
.sub-menu
.elementor-sub-item:hover {
  color: var(--e-global-color-accent) !important;
}

/* Optionnel : garder orange lorsqu'actif */
.elementor-nav-menu--dropdown
.sub-menu
.sub-menu
.elementor-sub-item.highlighted {
  color: var(--e-global-color-accent) !important;
}

