/* 
 Theme Name:     Défi de l'île
 Author:         Eklore 
 Author URI:     https://eklore.ca
 Template:       Divi
 Version:        1.0 
*/ 
/* ----------- PUT YOUR CUSTOM CSS BELOW THIS LINE -- DO NOT EDIT ABOVE THIS LINE --------------------------- */ 
:root{
--bleufonce:#081D56;
--bleu:#3A61ED;
--bleupale:#E6F4FF;
--lilas:#D7B6EF;
--gris:#D8D8D8;
--offwhite:#FCFBFF;
box-sizing:border-box;
}

::selection {
  color: var(--bleufonce);
  background: var(--lilas);}

sup {font-size: xx-small;}

@font-face {
    font-family: 'Fraunces';
    src:  url('/wp-content/themes/defi/assets/Fraunces-VariableFont_wght.ttf') format('truetype supports variations'),
          url('/wp-content/themes/defi/assets/Fraunces-VariableFont_wght.ttf') format('truetype-variations');
    font-style: normal;}
 @font-face {
    font-family: 'Work';
    src:  url('/wp-content/themes/defi/assets/WorkSans-VariableFont_wght.ttf') format('truetype supports variations'),
          url('/wp-content/themes/defi/assets/WorkSans-VariableFont_wght.ttf') format('truetype-variations');
    font-style: normal;}   

h1,h2,h3 {font-family: 'Fraunces'; }
h4,h5,h6 {font-family: 'Work'; }
body {font-family: 'Work'; }

#main-content h1 {font-size: clamp(2.5rem, 2.5890vw + 1.8932rem, 85px);}
#main-content h2 {font-size: clamp(2rem, 1.5534vw + 1.7359rem, 60px);}
#main-content h3 {font-size: clamp(1.75rem, 0.7767vw + 1.5680rem, 30px);}
#main-content h4 {font-size: clamp(1.35rem, 0.5178vw + 1.2786rem, 24px);}
#main-content h5 {font-size: clamp(1.25rem, 0.5178vw + 1.1286rem, 1.75rem);}
#main-content h6 {font-size: clamp(1.1rem, 0.4142vw + 1.0029rem, 1.5rem);}
	h1.search_title {font-size:clamp(1.5rem, 1.5rem, 30px);font-weight:900;padding-bottom:25px;}
	h2.search_result {font-size:clamp(1rem, 1.2rem, 20px);font-weight:900;padding:10px 0}
p + :is(h2, h3, h4, h5, h6), :is(h2, h3, h4, h5, h6) + :is(h2, h3, h4, h5, h6) {margin-top: 20px;}

input:focus:not(.et-search-field), a:focus-visible, a:focus-visible img, select:focus, #et_search_icon:focus {
outline: 3px solid var(--lilas);}

.et-pb-parallax-background {background-size: auto!important;}
	
/** HEADER **/
#main-header .container {width:calc(95% - 60px);margin-top:30px;}
/** NAV **/
@media (min-width: 1375px) {li.current-menu-item>a::after,
li.current_page_item>a::after,
	#top-menu li a:hover::after{
 	content: "";
  position: absolute;
  left: 50%;
  bottom: 21px; 
  transform: translateX(-50%);
  width: 40px;  
  height: 12px;  
  background: url('/wp-content/uploads/2025/10/active_link.svg') no-repeat center;
  background-size: contain;
  pointer-events: none;}
}
.mobile_menu_bar:before {color:#fff!Important;}
ul#mobile_menu{background-color:#fff!important;}
.btn_menu1 a {border:solid 1px #fff; padding:16px!important;border-radius:30px;}
.btn_menu1 a:after, .btn_menu1 a:hover::after, .btn_menu2 a:after, .btn_menu2 a:hover::after {  bottom: -21px!important; }
.btn_menu2 a {color:var(--bleufonce)!important; background-color:#fff; padding:16px!important;border-radius:30px;}

/* Étendre le mode mobile jusqu'à 1364px */
@media (max-width: 1374px) {
  /* cacher le menu desktop */
  #top-menu,
  #et-top-navigation nav { display: none !important; }

  /* montrer l'icône hamburger + le conteneur mobile */
  .mobile_menu_bar,
  #et_mobile_nav_menu { display: block !important; }

  /* éviter que le logo/zone nav saute de ligne bizarrement */
  #et-top-navigation { float: none; }
}

/* Revenir au menu desktop au-dessus de 1364px */
@media (min-width: 1375px) {
  #top-menu,
  #et-top-navigation nav { display: block !important; }
  .mobile_menu_bar,
  #et_mobile_nav_menu { display: none !important; }
}



/*Mobile Menu Collapse*/ 
/*change hamburger icon to x when mobile menu is open*/
#et_mobile_nav_menu .mobile_nav.opened .mobile_menu_bar::before,
.et_pb_module.et_pb_menu .et_mobile_nav_menu .mobile_nav.opened .mobile_menu_bar::before {
	content: '\4d';
}
/*adjust the new toggle element which is added via jQuery*/
ul.et_mobile_menu li.menu-item-has-children .mobile-toggle,
ul.et_mobile_menu li.page_item_has_children .mobile-toggle,
.et-db #et-boc .et-l ul.et_mobile_menu li.menu-item-has-children .mobile-toggle,
.et-db #et-boc .et-l ul.et_mobile_menu li.page_item_has_children .mobile-toggle {
	width: 44px;
	height: 100%;
	padding: 0px !important;
	max-height: 44px;
	border: none;
	position: absolute;
	right: 0px;
	top: 0px;
	z-index: 999;
	background-color: transparent;
}
/*some code to keep everyting positioned properly*/
ul.et_mobile_menu>li.menu-item-has-children,
ul.et_mobile_menu>li.page_item_has_children,
ul.et_mobile_menu>li.menu-item-has-children .sub-menu li.menu-item-has-children,
.et-db #et-boc .et-l ul.et_mobile_menu>li.menu-item-has-children,
.et-db #et-boc .et-l ul.et_mobile_menu>li.page_item_has_children,
.et-db #et-boc .et-l ul.et_mobile_menu>li.menu-item-has-children .sub-menu li.menu-item-has-children {
	position: relative;
}
/*remove default background color from menu items that have children*/
.et_mobile_menu .menu-item-has-children>a,
.et-db #et-boc .et-l .et_mobile_menu .menu-item-has-children>a {
	background-color: transparent;
}
/*hide the submenu by default*/
ul.et_mobile_menu .menu-item-has-children .sub-menu,
#main-header ul.et_mobile_menu .menu-item-has-children .sub-menu,
.et-db #et-boc .et-l ul.et_mobile_menu .menu-item-has-children .sub-menu,
.et-db #main-header ul.et_mobile_menu .menu-item-has-children .sub-menu {
	display: none !important;
	visibility: hidden !important;
}
/*show the submenu when toggled open*/
ul.et_mobile_menu .menu-item-has-children .sub-menu.visible,
#main-header ul.et_mobile_menu .menu-item-has-children .sub-menu.visible,
.et-db #et-boc .et-l ul.et_mobile_menu .menu-item-has-children .sub-menu.visible,
.et-db #main-header ul.et_mobile_menu .menu-item-has-children .sub-menu.visible {
	display: block !important;
	visibility: visible !important;
}
/*adjust the toggle icon position and transparency*/
ul.et_mobile_menu li.menu-item-has-children .mobile-toggle,
.et-db #et-boc .et-l ul.et_mobile_menu li.menu-item-has-children .mobile-toggle {
	text-align: center;
	opacity: 1;
}
/*submenu toggle icon when closed*/
ul.et_mobile_menu li.menu-item-has-children .mobile-toggle::after,
.et-db #et-boc .et-l ul.et_mobile_menu li.menu-item-has-children .mobile-toggle::after {
	top: 10px;
	position: relative;
	font-family: "ETModules";
	content: '\33';
	color: #1c203f;
	background: #f0f3f6;
	border-radius: 50%;
	padding: 3px;
}
/*submenu toggle icon when open*/
ul.et_mobile_menu li.menu-item-has-children.dt-open>.mobile-toggle::after,
.et-db #et-boc .et-l ul.et_mobile_menu li.menu-item-has-children.dt-open>.mobile-toggle::after {
	content: '\32';
}
/*add point on top of the menu submenu dropdown*/
.et_pb_menu_0.et_pb_menu .et_mobile_menu:after {
	position: absolute;
	right: 5%;
	margin-left: -20px;
	top: -14px;
	width: 0;
	height: 0;
	content: '';
	border-left: 20px solid transparent;
	border-right: 20px solid transparent;
	border-bottom: 20px solid #ffffff;
}
/*adjust the position of the hamburger menu*/
.mobile_menu_bar {
	position: relative;
	display: block;
	/*bottom: 10px;*/
	line-height: 0;
}
/*force the background color and add a rounded border*/
.et_pb_menu_0.et_pb_menu .et_mobile_menu,
.et_pb_menu_0.et_pb_menu .et_mobile_menu ul {
	background-color: #ffffff!important;
	border-radius: 10px;
}
/*** BODY ***/


/*** MODULES ***/


/*** FOOTER ***/

/*** DIVERS ***/
/** Contenu sans DIVI **/
#contenu-page .et_pb_row_1_tb_body:not(:has(.et-l--post)){width:85%; max-width: 1600px;}
body.single-actualites:not(.et_pb_pagebuilder_layout) #contenu-page .et_pb_row_1_tb_body { width: 85%; max-width: 1600px;}
body.single-actualites:not(.et_pb_pagebuilder_layout) #contenu-page .et_pb_row_1_tb_body .et_pb_post_content, body.single:not(.et_pb_pagebuilder_layout) #contenu-page .et_pb_row_1_tb_body .et_pb_post_content{padding-top:50px;padding-bottom:50px;}

/** Contenu avec DIVI - retrait padding premiere section **/
#contenu-page .et_pb_row .et_pb_row {width: 85%;max-width: 1600px;}
#contenu-page .et_pb_row #carte.et_pb_row {width: 100%;max-width: 100%;}
#contenu-page .et_pb_row .et_pb_row .et_pb_row {width: initial;}

/***ACCESSIBILITE***/
.sr-only {
    position: absolute !important;
    height: 1px; width: 1px;
    overflow: hidden;
    clip: rect(1px, 1px, 1px, 1px);
    white-space: nowrap;
}

/***Témoignages ***/
/* 1. Carrousel horizontal, uniquement en front-end */
body:not(.et-fb) .carousel-col {
  display: flex;
  gap: 2rem;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  cursor: grab;
  user-select: none;
  -ms-overflow-style: none;
  scrollbar-width: none;
  align-items: stretch;
}
body:not(.et-fb) .carousel-col::-webkit-scrollbar {
  display: none;
}
body:not(.et-fb) .carousel-col.dragging {
  scroll-snap-type: none;
  cursor: grabbing;
}

/* 2. Carte de témoignage = module Group */
body:not(.et-fb) .carousel-item {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  flex: 0 0 600px;
  scroll-snap-align: start;
  padding: 4%;
  border-radius: 30px;
  box-sizing: border-box;
  min-height: 100%;
}
@media (max-width : 450px){body:not(.et-fb) .carousel-item {flex: 0 0 275px;}}
@media (min-width:451px) and (max-width : 685px){body:not(.et-fb) .carousel-item {flex: 0 0 375px;}}


/* 3. Permet de ne pas écraser les modules à l'intérieur */
body:not(.et-fb) .carousel-item > .et_pb_module {
  flex-shrink: 0;
}

/* 4. Couleurs en alternance (1-2-3-1-2-3...) */
body:not(.et-fb) .carousel-item:nth-child(3n+1) {
  background-color: var(--bleu);
  color: #fff;
}
body:not(.et-fb) .carousel-item:nth-child(3n+2) {
  background-color: var(--lilas);
  color: var(--bleufonce);
}
body:not(.et-fb) .carousel-item:nth-child(3n) {
  background-color: var(--bleupale);
  color: var(--bleufonce);
}

/* 5. Style des flèches */
.carousel-nav {
  display: flex;
  justify-content: center;
  gap: 2rem;
  margin-top: 1rem;
}
.carousel-arrow {
  background-color: var(--bleufonce);
  color: #fff;
  border: solid 1 px;
  border-radius: 50%;
  width: 48px;
  height: 48px;
  font-size: 1.5rem;
  cursor: pointer;
  transition: background 0.3s ease;
	font-family:"Work";
}
.carousel-arrow:hover {
  color:var(--bleufonce) ;
	background-color: #fff;
}


/* Bande defilante horizontale pour Divi 5 */
.band-marquee{
  --speed: 35s;
  --gap: clamp(1rem, 3vw, 3rem);
  position: relative;
  overflow: hidden;
  width: 100vw;
}

.et_pb_row.band-marquee{
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}

/* Piste defilante */
.band-marquee .band-track{
  display: flex;
  align-items: center;
  gap: var(--gap);
  width: max-content;
  will-change: transform;

  /* Animation paramétrique */
  animation-duration: var(--speed);
  animation-timing-function: linear;
  animation-iteration-count: infinite;
  animation-name: band-scroll-ltr;          /* défaut = gauche → */
  animation-delay: calc(var(--offset, 0s) * -1);
}

/* Pause au survol */
.band-marquee:hover .band-track{
  animation-play-state: paused;
}

/* Chaque module devient un item horizontal non retrecissable */
.band-marquee .band-item{
  flex: 0 0 auto;
  display: flex;
  align-items: center;
}

/* Images conservees telles quelles selon ton markup */
.band-marquee .band-item img{
  display: block;
  width: auto; /* pas de hauteur forcee */
}

/* Texte conserve tel quel, sans taille forcee */
.band-marquee .band-item .et_pb_text_inner{
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
}

/* Inversion du sens pour la ligne marquée data-direction="rtl" */
.band-marquee[data-direction="rtl"] .band-track{
  animation-name: band-scroll-rtl;          /* → droite */
}



/* Keyframes LTR/RTL (remplacent l'ancien @keyframes band-scroll) */
@keyframes band-scroll-ltr { from{transform:translateX(0)}     to{transform:translateX(-50%)} }
@keyframes band-scroll-rtl { from{transform:translateX(-50%)}  to{transform:translateX(0)} }

@media (prefers-reduced-motion: reduce){
  .band-marquee .band-track{ animation:none; }
}
