/*  Theme Name:   WebIsBack
Theme URI:    https://webisback.fr 
Description:  Child Theme 
Author:       JiBe Web Is Back 
Author URI:   https://webisback.fr
Template:     hello-elementor  
Version:      0.1.0 */

@import url('https://fonts.googleapis.com/css2?family=Alfa+Slab+One&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100..900&display=swap');

/* ===================== MENU ===================== */
div.elementor-widget-theme-site-logo { max-width: 120px !important; }
.elementor-nav-menu--main {
  padding: 1rem 2rem;
  border-radius: 4px;
  border: 1px solid #000000;
  background-color: #FFFFFF;
}
.elementor-element-619ab23b { display: flex; }

/* ===================== CURSOR ===================== */
body { cursor: none; }
html, a, button { cursor: none; }

body:hover #custom-cursor { opacity: 1; }
#custom-cursor {
  position: fixed; top: 0; left: 0;
  width: 1.5rem; height: 1.5rem;
  border-radius: 50%;
  background: #fff;
  pointer-events: none;
  mix-blend-mode: difference;
  opacity: 0;
  z-index: 2147483647;
  transform: translate(-50%, -50%) scale(1);
  transition: transform .2s ease, opacity .2s ease;
  will-change: transform, opacity;
}
#custom-cursor.is-link { transform: translate(-50%, -50%) scale(2.2); }
@media (pointer: coarse) { #custom-cursor { display: none; } }

/* ===================== LOGO ===================== */
#logo { display: inline-block; }
#logo > a { position: relative; display: inline-block; line-height: 0; }
#logo img,
#logo .wib-logo-text {
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
  will-change: opacity, transform;
  transition: opacity .8s cubic-bezier(.22,.61,.36,1), transform .8s cubic-bezier(.22,.61,.36,1);
}
#logo img { z-index: 2; opacity: 1; transform: none; }
#logo .wib-logo-text {
  z-index: 1; pointer-events: none;
  font-family: "Alfa Slab One", system-ui, sans-serif;
  font-style: italic !important;
  color: #000000;
  font-weight: 800;
  font-size: 40px !important;
  opacity: 0; transform: translateY(-6px);
}
#logo.wib-top img                 { opacity: 1; transform: none; }
#logo.wib-top .wib-logo-text      { opacity: 0; transform: translateY(-6px); }
#logo.wib-scrolled img            { opacity: 0; transform: translateY(6px); }
#logo.wib-scrolled .wib-logo-text { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  #logo img, #logo .wib-logo-text { transition: none; }
}

/* Anti-flicker mobile/tablette */
@media (pointer: coarse), (max-width: 1024px) {
  .elementor-location-header,
  .elementor-location-header * {
    will-change: auto !important;
    filter: none !important;
    backdrop-filter: none !important;
  }
  .elementor-location-header,
  .elementor-sticky--effects {
    transform: none !important; /* avoid transform to reduce flicker */
    backface-visibility: hidden;
    -webkit-font-smoothing: antialiased;
  }
  .elementor-section {
    background-attachment: scroll !important;
    filter: none !important;
  }
  .elementor-sticky--effects,
  .elementor-location-header {
    transition-property: opacity, color, background-color !important;
  }
  #custom-cursor { display: none !important; }
}

/* ===================== MENU VOLANT ===================== */
/* Popup menu : desktop flyout (≥700px) & mobile subview (≤699px) */
#popup-menu { position: relative; overflow: visible; }
#popup-menu, #popup-menu a {
  font-family: "Poppins", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-size: 14px; font-weight: 700;
}

/* Niveau 1 */
#popup-menu .menu {
  list-style: none; margin: 0; padding: 0;
  display: inline-flex; flex-direction: column; gap: 8px;
}
#popup-menu .menu > li { position: relative; }
#popup-menu .menu > li > a {
  display: block; text-decoration: none;
  padding: 10px 14px;
  border: 1px solid #000000;
  border-radius: 0;
  color: #000000;
  min-width: 300px;
}

/* Sous-menu (desktop) */
#popup-menu .menu > li > .sub-menu {
  position: absolute; top: 0; left: calc(100% + 8px);
  display: none;
  margin: 0; padding: 6px; list-style: none;
  min-width: 300px;
  border: 1px solid #000000; border-radius: 0;
  z-index: 9999;
}
#popup-menu .menu > li.open > .sub-menu { display: block; }

/* Liens N2 */
#popup-menu .sub-menu > li > a {
  display: block; padding: 10px 12px;
  text-decoration: none; color: #000000; border-radius: 0;
}

/* Focus */
#popup-menu a:focus-visible { outline: 2px solid #2563eb; outline-offset: 2px; }

/* Ouverture à gauche si besoin */
#popup-menu.align-left .menu > li > .sub-menu { left: auto; right: calc(100% + 8px); }

/* Mobile (≤699px) */
@media (max-width: 699px) {
  #popup-menu .menu > li { position: static; }
	.wib-logo-text{ margin-top:20%;}
  #popup-menu .menu > li > .sub-menu {
    position: static; left: auto; right: auto;
    box-shadow: none; border: none; border-radius: 0; padding: 0; min-width: 0;
    display: none !important; /* caché en vue liste N1 */
  }

  /* Header + panneau sous-vue (injectés par JS) */
  #popup-menu .mobile-header {
    display: none; align-items: center; gap: 10px;
    padding: 12px 14px; border-bottom: 1px solid rgba(0,0,0,.08);
    position: sticky; top: 0; z-index: 10000;
  }
  #popup-menu .mobile-back {
    appearance: none; border: 1px solid rgba(0,0,0,.12);
    color: #000000; border-radius: 0;
    padding: 8px 10px; line-height: 1; cursor: pointer;
    background-color: #FFFFFF;
  }
  #popup-menu .mobile-title { font-weight: 700; }

  #popup-menu .mobile-subpanel {
    display: block; visibility: hidden; pointer-events: none;
    transform: translateX(-16px); opacity: 0;
    transition: transform .28s cubic-bezier(.22,.61,.36,1), opacity .28s cubic-bezier(.22,.61,.36,1);
    will-change: transform, opacity;
  }

  #popup-menu.is-subview .menu { display: none; }
  #popup-menu.is-subview .mobile-header { display: flex !important; }
  #popup-menu.is-subview .mobile-subpanel {
    visibility: visible; pointer-events: auto; transform: translateX(0); opacity: 1;
  }
  #popup-menu.is-subview.is-closing .mobile-subpanel { transform: translateX(24px); opacity: 0; }

  #popup-menu .mobile-subpanel ul { list-style: none; margin: 0; padding: 0; }
  #popup-menu .mobile-subpanel li { position: relative; }
  #popup-menu .mobile-subpanel li a {
    display: block; padding: 12px 14px; text-decoration: none;
    border-bottom: 1px solid rgba(0,0,0,.06);
  }
  #popup-menu .mobile-subpanel li ul { display: none; padding-left: 10px; }
  #popup-menu .mobile-subpanel li.open > ul { display: block; }
}

/* Underline centre→extérieur (desktop uniquement) */
#popup-menu {
  --u-color: currentColor; --u-h: 2px; --u-gap: 6px; --u-dur: .25s; --u-ease: cubic-bezier(.25,.8,.25,1);
}
#popup-menu a .u-line { position: relative; display: inline-block; line-height: 1.2; }
#popup-menu a .u-line::after {
  content: ""; position: absolute; left: 50%; bottom: calc(-1 * var(--u-gap));
  width: 100%; height: var(--u-h); background: var(--u-color);
  transform: translateX(-50%) scaleX(0); transform-origin: 50% 50%;
  transition: transform var(--u-dur) var(--u-ease); opacity: .95;
}
#popup-menu .menu > li > a:hover .u-line::after,
#popup-menu .menu > li > a:focus-visible .u-line::after,
#popup-menu .sub-menu > li > a:hover .u-line::after,
#popup-menu .sub-menu > li > a:focus-visible .u-line::after {
  transform: translateX(-50%) scaleX(1);
}
@media (prefers-reduced-motion: reduce) { #popup-menu * { transition: none !important; } }

/* Désactiver underline + forcer header en mobile */
#popup-menu .mobile-header, #popup-menu .mobile-subpanel { display: none; }
@media (max-width: 699px), (pointer: coarse) {
  #popup-menu a .u-line::after { content: none !important; }
  #popup-menu.is-subview .mobile-header {
    display: flex !important; align-items: center; gap: 10px; padding: 12px 14px;
    position: sticky; top: 0; z-index: 2147483647; border-bottom: 1px solid rgba(0,0,0,.08);
  }
}

/* Etat visuel N1 (hover + ouvert) */
#popup-menu .menu > li > a:hover,
#popup-menu .menu > li > a:focus-visible,
#popup-menu .menu > li.open > a {
  background: #000000; color: #FFFFFF; border-color: #000000;
}

/* ===================== FOOTER ===================== */
#footer-nav {
  --fg: #111;
  --muted: #6b7280;
  --link: #111;
  --gap: 24px;
  --radius: 10px;
  --pad-x: 12px;

  font-family: "Poppins", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color: var(--fg);
}

/* Grille 3 colonnes (desktop) */
#footer-nav .footer-menu {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--gap); list-style: none; margin: 0; padding: 0;
}

/* Titre de colonne (N1) */
#footer-nav .menu-head {
  width: 100%; text-align: left;
  font-size: 14px; font-weight: 700;
  padding: 10px var(--pad-x);
	border:none;
  background: #fff; color: var(--fg);
  cursor: default;
  display: flex; align-items: center; justify-content: space-between; gap: 8px;
}

/* Sous-menu (N2) visible par défaut en desktop */
#footer-nav .sub-menu { list-style: none; margin: 8px 0 0 0; padding: 0; }
#footer-nav .sub-menu a {
  display: block; padding: 9px var(--pad-x);
  font-size: 14px; font-weight: 300 !important;
  color: var(--link); text-decoration: none !important;
  width: fit-content;
}
/* pas de surlignage au hover */
#footer-nav .sub-menu a:hover,
#footer-nav .sub-menu a:focus,
#footer-nav .sub-menu a:focus-visible {
  text-decoration: none !important; background: transparent !important; color: inherit !important;
}

/* Desktop : pas de bordure sur N1 */
@media (min-width: 700px) { #footer-nav .menu-head { border: none !important; } }

/* Mobile (≤699px) : accordéon + chevrons SVG */
@media (max-width: 699px), (hover: none) {
  #footer-nav .footer-menu { grid-template-columns: 1fr; gap: 12px; }

  /* têtes cliquables */
  #footer-nav .menu-head {
    cursor: pointer; position: relative;
    border-radius: 0 !important; padding-right: 42px;
  }

  /* neutralise tout ancien chevron texte */
  #footer-nav .menu-head::after,
  #footer-nav .menu-head::before { content: none !important; }

  /* panneau fermé par défaut (le JS anime la hauteur) */
  #footer-nav .sub-menu { margin: 0; overflow: hidden; height: 0; padding: 0; }
  #footer-nav .menu-col.open .sub-menu { margin-top: 6px; }
#footer-nav .menu-head { padding: 10px 0; }
  /* liens N2 arrondis en mobile */
  #footer-nav .sub-menu a { padding: 10px 0; }

  /* chevron SVG injecté (même taille que menu principal) */
  #footer-nav .menu-head .chev {
    position: absolute; right: 12px; top: 50%; transform: translateY(-50%);
    display: inline-flex; width: 18px; height: 18px; pointer-events: none;
  }
  #footer-nav .menu-head .chev svg {
    width: 18px; height: 18px; display: block;
    transition: transform .22s ease; transform: rotate(0deg); /* fermé = droite */
  }
  /* ouvert = vers le bas */
  #footer-nav .menu-col.open .menu-head .chev svg,
  #footer-nav .menu-head[aria-expanded="true"] .chev svg { transform: rotate(90deg); }
}
/*======= Formulaire =======*/
div.elementor-field-group-field_2a1e7b3 div.elementor-field-subgroup span.elementor-field-option{
	display:flex;
	align-items:center;
}
div.elementor-field-group-field_2a1e7b3 div.elementor-field-subgroup span.elementor-field-option label{
	font-size:10px!important;
	margin-left: 10px;
  	line-height: 1.4;
}
input[type="checkbox"] {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	border: 1px solid #000000;
	border-radius: 0;
	box-sizing: border-box;
	cursor: pointer;
	display: flex;
	flex-shrink: 0;
	height: 20px !important;
	position: relative;
	width: 20px !important;
}

input[type="checkbox"]:checked::after {
  border: solid #000000;
    border-top-width: medium;
    border-right-width: medium;
    border-bottom-width: medium;
    border-left-width: medium;
  border-width: 0 1px 1px 0;
  content: "";
  height: 10px;
  left: 6px;
  position: absolute;
  top: 2px;
  transform: rotate(45deg);
  width: 5px;
}
/* ===== Chevron sur le MENU STANDARD (Elementor) — Desktop ===== */
@media (min-width: 700px) and (hover: hover) {
  /* espace pour l'icône */
  .elementor-nav-menu--main .menu-item-has-children > a {
    position: relative;
    padding-right: 22px;
  }
  /* chevron (hérite de la couleur du lien via currentColor) */
  .elementor-nav-menu--main .menu-item-has-children > a::after {
    content: "";
    position: absolute;
    right: 8px;
    top: 50%;
    width: 14px;
    height: 14px;
    transform: translateY(-50%) rotate(0deg);
    opacity: .9;
    pointer-events: none;
    background: no-repeat center/14px 14px
      url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M6 9l6 6 6-6' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  }
  /* option : tourner le chevron quand le parent est survolé / actif */
  .elementor-nav-menu--main li.menu-item-has-children:hover > a::after,
  .elementor-nav-menu--main li.menu-item-has-children:focus-within > a::after,
  .elementor-nav-menu--main li.current-menu-parent > a::after {
    transform: translateY(-50%) rotate(180deg);
  }
}

/* ===== (Optionnel) Chevron aussi sur le MENU VOLANT #popup-menu — Desktop ===== */
@media (min-width: 700px) and (hover: hover) {
  #popup-menu .menu > li.menu-item-has-children > a,
  #popup-menu .menu > li.has-sub > a {
    position: relative;
    padding-right: 22px;
  }
  #popup-menu .menu > li.menu-item-has-children > a::after,
  #popup-menu .menu > li.has-sub > a::after {
    content: "";
    position: absolute;
    right: 8px;
    top: 50%;
    width: 14px;
    height: 14px;
    transform: translateY(-50%) rotate(0deg);
    opacity: .9;
    pointer-events: none;
    background: no-repeat center/14px 14px
      url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M9 6l6 6-6 6' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  }
  /* si le sous-menu est "ouvert" (classe .open déjà posée par ton JS) */
  #popup-menu .menu > li.open > a::after {
    transform: translateY(-50%) rotate(90deg); /* vers la droite (flyout) */
  }
}
/* Popup Elementor : retirer le carré bleu autour de la croix (mobile/tactile) */
@media (hover: none), (max-width: 699px) {
  .elementor-popup-modal .dialog-close-button,
  .elementor-popup-modal .dialog-close-button:focus,
  .elementor-popup-modal .dialog-close-button:active,
  .elementor-popup-modal .dialog-close-button:focus-visible {
    outline: none !important;
    box-shadow: none !important;
    -webkit-appearance: none;
    background: transparent;
    border: 0;
  }

  /* iOS/Android tap highlight */
  .elementor-popup-modal .dialog-close-button,
  .elementor-popup-modal .dialog-close-button * {
    -webkit-tap-highlight-color: transparent;
  }
}

/*======= Home Page =======*/
/* Titre hero : centré et lisible */
.title-hero{
	display: flex;
	justify-content: center;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px;                 /* espace entre les <span> */
	font-size: 14px!important;
	font-weight:300!important;
	line-height: 1.4;
	text-align: center;     
	margin: 0 auto;
}

/* “Badges” du hero */
.title-hero .hero-chip{
	display: inline-block;
	padding: 1rem 2rem;      
	border: 1px solid #000000;       
  }
@media (max-width: 699px){
	.title-hero .hero-chip{
		padding: 0.5rem 1rem;             
  	}
}

/* Section réalisations top */
.absolute-transparent{
	height:100%;
}
.wib-text-block{
	font-size: 14px;
	height:100%;
	color:transparent;
	display: flex;
    align-items: flex-end;
	padding: 0 20px 15px 20px;
	transition: background-color .25s ease;
	padding: 0 2.8rem 1.7rem;
}
.wib-text-block:hover{
	background-color: rgba(255, 127, 0, 0.43);
	color:#000000;
}
.wib-text-paragraph { 
	font-weight: 300;
	margin: 0 0 .25rem;
}
.wib-text-paragraph--second {
	font-weight: 500;
}
.wib-text-paragraph,
.wib-chip,
.wib-text-block a {
	color: inherit;
	transition: color .25s ease;
}
.wib-chip {
	display: inline-block;
	padding: 0.25rem 0.25rem;
	border: 1px solid currentColor;
	font-weight: 300;
	margin-right: 0.25rem;
	margin-bottom:0.25rem;
	color: inherit;
	font-size: inherit;
	line-height: 1.25;
	transition: color .25s ease, border-color .25s ease;
}
@media (max-width: 699px){
	.wib-text-block{
		background-color: #00000069;
		color:#FFFFFF;
		padding: 0 1.4rem 0.85rem;
	}
	.wib-text-block:hover{
		background-color: #00000069;
		color:#FFFFFF;
	}
	.wib-chip{
		display: none;
	}
}
/* Mobile : garder les 3 cartes sur une seule ligne + scroll horizontal */
@media (max-width: 699px), (hover: none) {
	/* Le conteneur et son inner restent en rangée, sans retour à la ligne */
	.elementor-element-81dcfb8,
	.elementor-element-81dcfb8 > .e-con-inner,
	.elementor-element-904f438,
	.elementor-element-904f438 > .e-con-inner{
		display: flex !important;
		flex-direction: row !important;
		flex-wrap: nowrap !important;
		gap: 16px;                      /* espace entre cartes */
		overflow-x: auto;               /* scroll horizontal */
		overflow-y: visible;
		-webkit-overflow-scrolling: touch;
		scroll-snap-type: x mandatory;  /* snap agréable */
	}

	/* Chaque carte garde sa largeur, pas de 100% imposé par Elementor */
	.elementor-element-81dcfb8 .e-con.e-child,
	.elementor-element-904f438 .e-con.e-child{
		flex: 0 0 auto !important;
		width: 72vw;                    /* largeur d’une carte (ajuste 65–90vw) */
		scroll-snap-align: start;
	}

	/* Images fluides */
	.elementor-element-81dcfb8 img,
	.elementor-element-904f438 img{
		display: block;
		width: 100%;
		height: auto;
	}

	/* Option : masque la scrollbar (laisser si tu veux la voir) */
	.elementor-element-81dcfb8::-webkit-scrollbar,
	.elementor-element-81dcfb8 > .e-con-inner::-webkit-scrollbar,
	.elementor-element-904f438::-webkit-scrollbar,
	.elementor-element-904f438 > .e-con-inner::-webkit-scrollbar{ 
		display: none; 
	}
}
/* Stopper le "wiggle" horizontal de la page en mobile */
@media (max-width: 699px), (hover: none) {
	html, body { overflow-x: hidden; }

	/* Neutralise le translateX d’Elementor pour CE conteneur en mobile */
	.elementor-element-81dcfb8, .elementor-element-904f438 {
		transform: none !important;
		--translateX: 0 !important;
		width: 100% !important;
		max-width: 100vw;
		margin-left: 0 !important;
		margin-right: 0 !important;
		overflow: hidden;                 /* clip ce qui dépasse du ruban */
	}

	/* Le scroll horizontal reste confiné à l’inner */
	.elementor-element-81dcfb8 > .e-con-inner,
	.elementor-element-904f438 > .e-con-inner{
		overflow-x: auto;
		overflow-y: visible;
		-webkit-overflow-scrolling: touch;
		scroll-snap-type: x mandatory;
		padding-bottom: 2px;               /* évite la barre iOS qui déclenche un micro-saut */
	}

	/* Les cartes ne s’étirent pas à 100% (pas de retour à la ligne) */
	.elementor-element-81dcfb8 .e-con.e-child,
	.elementor-element-904f438 .e-con.e-child{
		flex: 0 0 auto !important;
		scroll-snap-align: start;
	}
}
/*======= Accordion ==========*/
.e-n-accordion-item-title{
	display: flex!important;
	justify-content: space-between!important;
	padding-right: 3%!important;
}



/* ======= Section Swiper ========== */
.wibsw-section{
  --gap: 24px;
  --ctrl: 40px;
  --pad-left: 0px;              /* mesuré en JS si Elementor met du padding */
 
  margin-left: auto;            /* colle à droite */
  position: relative;
  overflow: visible;
}

/* Swiper : la piste est toujours en 100vw (= scroll pleine largeur) */
.wibsw{
  position: relative;
  width: 100vw;
  /* full-bleed aligné à gauche du viewport, même si la section est à droite */
  margin-left: calc(100% - 100vw - var(--pad-left));
  padding-top: calc(var(--ctrl) + 12px);     /* place sous les boutons */
}
.swiper{
	padding-right: 10%!important;
}
/* Boutons en haut à droite */
.wibsw-navs{
  position: absolute;
  top: -100px; 
	right: 2%;
  display: flex; gap: 10px;
  z-index: 5;
}
.wibsw-btn {
    width: 42px !important;
    height: 42px !important;
    display: grid !important;
    place-items: center;
    border: 1px solid #000000 !important;
	border-radius:9px!important;
    cursor: pointer;
    padding: 0 !important;
}
.wibsw-btn[disabled]{ opacity:.4; pointer-events:none; }

/* Slides */
.wibsw .swiper-slide { 
	height: auto; 
}

/* Cards + typo (h3 20/700, p 14/300) */
.wibsw-card{
	border: 1px solid #000;
	border-radius:9px; 
	padding: 16px;
	text-align: center;
	display: grid;
	grid-template-rows: auto auto auto;
	gap: 8px;
}
.wibsw-icon { width: 48px; height: 48px!important; object-fit: contain; margin: 0 auto 4px; display: block; }
.wibsw-title{ 
	margin: 0; 
	font-weight: 700; 
	font-size:20px!important; 
}
.wibsw-icon-80p{
	width:80px;
}
.wibsw-text { 
	font-weight: 300; 
	font-size:14px; 
}
@media (max-width: 699px){
	.wibsw-navs{
		top: -60px; 
		left: 5%;
	}
	.swiper-slide-first{
		margin-left:-5%;
	}
	.swiper-slide{
		width:260px;
	}
}
/* Option : cacher une éventuelle scrollbar desktop */
@media (min-width: 1025px){
  .swiper{ scrollbar-width: none; -ms-overflow-style: none; }
  .swiper::-webkit-scrollbar{ width:0; height:0; background:transparent; }
}

/* Anti wiggle global */
html, body{ overflow-x: hidden; }

/*======================Button================================*/
.wib-ink-btn .elementor-button-text, .wib-ink-btn-grey .elementor-button-text {
	align-content:center;
}
.wib-ink-btn .elementor-button-icon, .wib-ink-btn-grey .elementor-button-icon{
    border-radius: 100%;
    justify-content: center;
    align-items: center;
    width: 28px;
    height: 28px;
    margin-left: 12px;
    display: flex;
	transition: background-color .25s ease, color .25s ease;
}

.wib-ink-btn-grey .elementor-button-icon svg{
	filter: invert(1);
}
.wib-ink-btn .elementor-button-icon, .wib-ink-btn-grey .elementor-button-icon {
	    background-color: #e4e4e4;
}
.wib-ink-btn-grey .elementor-button-icon, .wib-ink-btn-grey .elementor-button-icon {
	    background-color: #000;
}
/* au survol/focus du bouton */
.wib-ink-btn .elementor-button:hover .elementor-button-icon,
.wib-ink-btn .elementor-button:focus-visible .elementor-button-icon,
.wib-ink-btn .elementor-button-link:hover .elementor-button-icon,
.wib-ink-btn .elementor-button-link:focus-visible .elementor-button-icon 
{
 	background-color: #fff !important; /* ton fond blanc au hover */
}
.wib-ink-btn-grey .elementor-button:hover .elementor-button-icon,
.wib-ink-btn-grey .elementor-button:focus-visible .elementor-button-icon,
.wib-ink-btn-grey .elementor-button-link:hover .elementor-button-icon,
.wib-ink-btn-grey .elementor-button-link:focus-visible .elementor-button-icon{
	background-color: #e4e4e4 !important;

}
.wib-ink-btn-grey .elementor-button-link:hover .elementor-button-icon > svg,
.wib-ink-btn-grey .elementor-button-link:focus-visible .elementor-button-icon > svg{
	filter: invert(0);
}


/* Effet "ink fill" sous le contenu */
.wib-ink-btn .elementor-button, 
.wib-ink-btn-grey .elementor-button{
	position: relative;   /* si déjà présent, ne duplique pas */
	overflow: hidden;     /* si déjà présent, ne duplique pas */
	isolation: isolate;   /* important pour gérer les z-index proprement */
}

.wib-ink-btn .elementor-button::before, 
.wib-ink-btn-grey .elementor-button::before{
	content: "";
	position: absolute;
	inset: 0;
	clip-path: circle(0% at var(--x, 50%) var(--y, 50%));
	transition: clip-path .45s cubic-bezier(.22,.61,.36,1);
	pointer-events: none;
	z-index: 0;           /* passe derrière le contenu */
}

.wib-ink-btn .elementor-button::before{
  	background: #e4e4e4;  /* couleur de remplissage */
}
.wib-ink-btn-grey .elementor-button::before{
  	background: #FFF;
}

/* Assure que texte + icônes restent visibles */
.wib-ink-btn .elementor-button > *,
.wib-ink-btn .elementor-button svg, 
.wib-ink-btn-grey .elementor-button > *,
.wib-ink-btn-grey .elementor-button svg {
  position: relative;
  z-index: 1;
}

.wib-ink-btn .elementor-button:hover::before,
.wib-ink-btn .elementor-button:focus-visible::before,
.wib-ink-btn-grey .elementor-button:hover::before,
.wib-ink-btn-grey .elementor-button:focus-visible::before{
  clip-path: circle(150% at var(--x, 50%) var(--y, 50%));
}

@media (prefers-reduced-motion: reduce){
  	.wib-ink-btn .elementor-button::before, 
	.wib-ink-btn-grey .elementor-button::before
	{ 
		transition: none; 
	}
}
/*=====================FAQ===========================*/
.e-n-accordion > details:last-of-type > summary{
	border:none!important;
}
/*==================== Ticker base ====================*/

/* ===== Ticker H2 OUTLINE défilant ===== */
.wib-ticker{
  --speed: 18s;      /* plus petit = plus rapide */
  --gap: 2.5rem;     /* espace entre les répétitions */
  background: #000;
  overflow: hidden;
  width: 100%;
  line-height: 1;
}

.wib-ticker__track{
  display: inline-flex;       /* important : suit la largeur du contenu */
  width: max-content;         /* important : largeur = somme des enfants */
  gap: var(--gap);
  white-space: nowrap;
  will-change: transform;
  animation: wib-ticker-slide var(--speed) linear infinite;
}

.wib-ticker__item{
  margin: 0;
  padding-block: 14px;
  font-weight: 700!important;
  font-size: 54px!important;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: transparent;
  -webkit-text-stroke: 1px #fff;
  text-stroke: 1px #fff;
  /* Fallback de contour pour moteurs sans -webkit-text-stroke */
  text-shadow:
    1px 0 #fff, -1px 0 #fff, 0 1px #fff, 0 -1px #fff,
    .5px .5px #fff, -.5px .5px #fff, .5px -.5px #fff, -.5px -.5px #fff;
}
@media (max-width: 699px) {
	.wib-ticker__item{
		font-size:24px!important;
	}
}
/* anime une longueur = largeur d’un bloc (on a 2 copies → -50%) */
@keyframes wib-ticker-slide{
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

/* Pause au hover (optionnel) */
.wib-ticker:hover .wib-ticker__track { animation-play-state: paused; }

/* Désactive seulement si l’OS demande explicitement de réduire les anims */
@media (prefers-reduced-motion: reduce){
  .wib-ticker__track{ animation: none; transform: none; }
}
/*=====================ACCORDION=========================*/

/* ===== Accordion (scopé) ===== */
#wib-acc-1{ color:#000; }

#wib-acc-1 .wib-acc__item{ border-bottom:1px solid #eaeaea; }

/* header cliquable (DIV avec role="button") */
#wib-acc-1 .wib-acc__header{
  width:100%;
  display:flex; align-items:center; justify-content:space-between;
  gap:16px;
  padding:16px 0; margin:0;
  cursor:pointer;
  outline: none;
}
#wib-acc-1 .wib-acc__header:focus-visible{
  outline:2px solid #111; outline-offset:2px; border-radius:4px;
}

/* h3 + numéro */
#wib-acc-1 .wib-acc__title{
  margin:0; font-size:18px; font-weight:700; color:#000;
  display:flex; align-items:center; gap:.5rem;
}
#wib-acc-1 .wib-acc__num{
  	color:#e4e4e4; 
	font-weight:700; 
	font-size:32px; 
	line-height:1;
	margin-right:10px;
}

/* signe à droite */
#wib-acc-1 .wib-acc__toggle{
  font-size:22px; font-weight:700; color:#000; flex:0 0 auto;
}

/* panneau animé (grid trick) */
#wib-acc-1 .wib-acc__panel{
  display:grid; grid-template-rows:0fr;
  transition:grid-template-rows .28s cubic-bezier(.22,.61,.36,1);
}
#wib-acc-1 .wib-acc__panel-inner{ overflow:hidden; padding:0; }

#wib-acc-1 .wib-acc__item--open .wib-acc__panel{ grid-template-rows:1fr; }
#wib-acc-1 .wib-acc__item--open .wib-acc__panel-inner{ padding:0 0 16px 0; }

/* texte */
#wib-acc-1 .wib-acc__panel p{ margin:.5rem 0 0 0; font-size:14px; font-weight:300; color:#000; }

/*========================ACCORDION INFO==============*/
/* ===== Hover Accordion ===== */
.wib-ha{
  display: grid;
  gap: 10px;
}
.wib-ha__item{
  position: relative;
  border-bottom: 1px solid #e4e4e4;
  padding: 16px; /* place pour la flèche à droite */
  transition: box-shadow .25s ease, border-color .25s ease, background-color .25s ease;
  background: #fff;
}
.wib-ha__item:hover{
  border-color: #000;
  background: #fff;
  box-shadow: 0 8px 24px rgba(0,0,0,.08);
}

/* Head (titre + flèche) */
.wib-ha__head{
  position: relative;
  min-height: 28px;
}
.wib-ha__title{
  margin: 0;
  padding-right: 40px; /* pour ne pas passer sous la flèche */
}

/* Flèche ronde à droite (position milieu-droit par défaut) */
.wib-ha__arrow{
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  width: 32px; height: 32px;
  border-radius: 999px;
  background: #e4e4e4;
  display: grid; place-items: center;
  transition: background-color .25s ease, color .25s ease, transform .25s ease, top .25s ease;
  color: #fff; /* couleur de l’icône (blanc par défaut) */
}

/* Au hover : la flèche monte en haut à droite, le fond devient noir, l’icône blanche */
.wib-ha__item:hover .wib-ha__arrow{
  top: 0;
  transform: none;            /* plus de translateY */
  background: #000;
}
.wib-ha__item:hover .wib-ha__arrow svg{
	filter: invert(1);
}

/* Panneau (ouverture au hover) — technique grid */
.wib-ha__panel{
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows .70s cubic-bezier(.22,.61,.36,1), margin-top .70s ease;
  margin-top: 0;
}
.wib-ha__item:hover .wib-ha__panel{
  grid-template-rows: 1fr;
  margin-top: 10px;
}
.wib-ha__panel > *{
  overflow: hidden;
}
.wib-ha__panel p{
  margin: 0 0 .75rem 0;
}

/* Accessibilité focus via :focus-within (ouvre quand on tab sur le titre) */
/*.wib-ha__item:focus-within{
  border-color:#000;
  box-shadow: 0 8px 24px rgba(0,0,0,.08);
}*/
.wib-ha__item:focus-within .wib-ha__panel{
  grid-template-rows: 1fr;
  margin-top: 10px;
}

