/*
Theme Name: Implantcast
Theme URI: https://wordpress.org/themes/twentytwentyfour/
Author: HARVEST
Author URI: https://wordpress.org
Description:
Requires at least: 6.4
Tested up to: 6.4
Requires PHP: 7.0
Version: 1.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
Text Domain: twentytwentyfive
Template: twentytwentyfive
Tags: one-column, custom-colors, custom-menu, custom-logo, editor-style, featured-images, full-site-editing, block-patterns, rtl-language-support, sticky-post, threaded-comments, translation-ready, wide-blocks, block-styles, accessibility-ready, blog, portfolio, news
*/


/* -------------------------------------------------------------------------- */
/* 0) Imports & resets                                                        */
/* -------------------------------------------------------------------------- */

@import url("https://use.typekit.net/coa5avj.css");

/* Le navigateur garde le scroll vertical natif, on gère l'horizontal */
.slider-viewport{
  touch-action: pan-y;
  overscroll-behavior: contain;           /* évite le rebond iOS/Android dans la section pin */
  -webkit-overflow-scrolling: touch;
}

html,
body {
  min-height: 100vh;
  width: 100% !important;
  overflow-x: hidden !important;
  overscroll-behavior: none;
/* /*   cursor: none; */ */
}

a,
a:focus,
a:active {
  outline: 0 !important;
/*   cursor: none; */
}

.wp-block-navigation a:where(:not(.wp-element-button)):focus,
.wp-block-post-title a:where(:not(.wp-element-button)):focus,
.wp-block-site-title a:where(:not(.wp-element-button)):focus,
a:where(:not(.wp-element-button)):focus,
a {
  text-decoration: none !important;
}

.gform_confirmation_message_3.gform_confirmation_message{
	display: none;
}

/* -------------------------------------------------------------------------- */
/* 1) États init / préchargement                                              */
/* -------------------------------------------------------------------------- */

/* la loading ne doit JAMAIS intercepter les clics une fois cachée */
.loading[hidden] { display: none !important; }      /* kill total */
.loading.is-gone  { display: none !important; }     /* classe de secours */

/* quand l’overlay est à 0 d’opacité, on n’intercepte plus les clics */
.loading:not([data-active="1"]) { pointer-events: none !important; }

.smooth-content { visibility: hidden; }

.loading {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  background-color: rgb(26, 26, 26);
  overflow: hidden;
  z-index: 999999;
  opacity: 0;
  backdrop-filter: blur(2px);
  transition: opacity .3s ease; /* sécurité si JS en panne */
}

.admin-bar .wp-site-blocks,
.admin-bar .wp-block-template-part{
  margin-top: 32px;
}

/*
.admin-bar main.smooth-content{
  padding-top: 100px !important;
}
*/


/* -------------------------------------------------------------------------- */
/* 3) Header / navigation                                                     */
/* -------------------------------------------------------------------------- */

/* Anti-flicker logo pendant l'init */
html.is-prep header .heading .wp-block-site-logo,
html.is-prep header .heading .wp-block-site-logo img {
  transition: none !important;
}

/* Un petit coup de pouce au moteur de rendu (WebKit) */
header .heading .wp-block-site-logo {
  will-change: transform, opacity;
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
}

header {
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 9999999;
  background-color: transparent;
  transition: 0.3s all ease-in-out;
}

/* avant : transition: 0.4s all ...  ->  provoque flicker sur mask/height */
header .heading .wp-block-site-logo {
  height: 237px;
  width: 101px;
  transform-origin: top left;
  background-color: var(--wp--preset--color--contrast);
  mask: url(/wp-content/uploads/logo_harvest.svg) no-repeat top left;
  -webkit-mask: url(/wp-content/uploads/logo_harvest.svg) no-repeat top left;
  mask-size: contain;
  transition: 0.4s all cubic-bezier(0.5, 0, 0.58, 1);
}

header .heading .wp-block-site-logo img {
  opacity: 0;
  height: 237px;
  width: 101px;
  /* idem : pas de transition sur width/height */
  transition: 0.4s all cubic-bezier(0.5, 0, 0.58, 1);
}

/* État scrolled : on change la hauteur et le mask, MAIS sans transition de mask/height */
header.main-tool-bar--scrolled .heading .wp-block-site-logo {
  height: 80px; /* se fait instantanément, sans anim -> pas de flash */
  transform-origin: top left;
}

header.main-tool-bar--scrolled {
  background: rgba(255, 255, 255, 0.80);
  backdrop-filter: blur(10px);
}

header.main-tool-bar--scrolled .heading nav li {
  font-size: 1rem !important;
  padding: 11px 0;
}

header.main-tool-bar--scrolled .wp-block-site-logo img {
/*
  width: 45px;
  height: 118px;
*/
}

header.open { height: 100%; }

/* État actif menu / archive projets */
.wp-block-navigation .wp-block-navigation-item__content.wp-block-navigation-item__content:hover {
  color: var(--wp--preset--color--primary);
}
.current-menu-item,
.post-type-archive-projets .projets,
.single-projets .projets{
  font-style: italic;
}

/* Forcer l'ouverture quand .keep-open est appliqué par le JS */
.gw-mm-item.has-children.keep-open > .gw-mm-item__dropdown-wrapper {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto;
  height: auto;
}


/* -------------------------------------------------------------------------- */
/* 4) Hero / Intro                                                            */
/* -------------------------------------------------------------------------- */

section.intro { position: relative; }
section.intro .title { position: relative; z-index: 2; }
section.intro .two { position: relative; z-index: 3; }
section.intro .lines { position: relative; z-index: 1; }
section.two { margin-top: -50vh; }

/* h1 { opacity: 0; } /* (corrigé: suppression espace invisible) */ */


/* -------------------------------------------------------------------------- */
/* 5) Éléments graphiques (cercles, flair, gradients)                         */
/* -------------------------------------------------------------------------- */

.circles {
  position: fixed;
  min-height: 100vh;
  width: 100vw;
}

.circle { position: absolute; }
.circle svg { width: 100% !important; height: 30vw; }
.circle.one { right: 5vw; top: 0; visibility: hidden; }
.circle.two { left: 5vw; top: 50vh; visibility: hidden; }

.logo svg { fill: red; }

mark a {
  position: relative;
  text-decoration: none;
  background:
    linear-gradient(to right, var(--wp--preset--color--contrast), var(--wp--preset--color--contrast)),
    linear-gradient(to right, var(--wp--preset--color--primary), var(--wp--preset--color--primary));
  background-size: 100% 2px, 0 2px;
  background-position: 100% 100%, 0 100%;
  background-repeat: no-repeat;
  transition: all 400ms;
}

mark a:hover {
  color: var(--wp--preset--color--primary);
  background-size: 0 2px, 100% 2px;
}

.gradient {
  background: -webkit-linear-gradient(var(--wp--preset--color--base), #313131);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.wp-block-button__link:hover{
  background-color: var(--wp--preset--color--accent-1) !important;
  color: white !important;
}

/* Curseur flair (desktop) */
@media screen and (min-width: 600px) {
  :not(.wp-admin) .flair {
    position: fixed;
    top: 0; left: 0;
    width: 20px; height: 20px;
    pointer-events: none;
    transition: opacity 0.3s ease;
    z-index: 10000;
    mix-blend-mode: difference;
  }
  .flair {/*  cursor: none; */ }
  .flair svg { width: 100%; height: 100%; }
  .flair #currentShape { fill: #FFD07B; }
  
  /* 1) Désactiver le pointeur partout sauf zones de saisie */
  :where(html, body) { /* cursor: none !important;  */}
  
  /* UA defaults sur tous les liens (y compris Safari) */
  :where(:any-link),
  :where(a), 
  a:-webkit-any-link { /* cursor: none !important; */ }
  
  /* Boutons & rôles cliquables */
  :where(button, [role="button"], [role="link"], .wp-element-button,
         input[type="button"], input[type="submit"], input[type="reset"],
         label, summary) { /* cursor: none !important; */ }
  
  /* Ne PAS masquer le curseur dans les zones de saisie */
  :where(input[type="text"], input[type="search"], input[type="email"],
         input[type="number"], input[type="password"], textarea,
         [contenteditable="true"]) { cursor: text !important; }
  
  /* 2) Éléments spécifiques de ton thème */
  .projects-as-slider .slider-nav button { cursor: none !important; }
  
  /* Navigation WP (parfois réimpose pointer via styles core) */
  .wp-block-navigation a,
  .wp-block-navigation__responsive-container-open,
  .wp-block-navigation__submenu-icon { /* cursor: none !important; */ }
  
  /* 3) Sécurité générale : tout élément interactif restant */
  :where([onclick], [data-action], [role="menuitem"], [role="tab"], [role="switch"]) {
  /*   cursor: none !important */;
  }
  
  /* 4) Le flair ne doit jamais capter les events ni réactiver un curseur */
  .flair { pointer-events: none; cursor: none !important; }
}

@media screen and (max-width: 600px) {
  .flair { display: none; }
}

/* Vignette qui suit la souris */
.cursor-sidecar{
  position: fixed;
  top: 0; left: 8%;
  width: clamp(150px, 15vw, 300px);
  aspect-ratio: 1 / 1;
  background: center / cover no-repeat;
  border-radius: 50%;
  pointer-events: none;
  z-index: 100;
  opacity: 0;
  transform: translate(-50%, -50%);
  box-shadow: 0 12px 48px rgba(0,0,0,.35);
}

@media (pointer: coarse) {
  .cursor-sidecar { display: none !important; }
}


/* -------------------------------------------------------------------------- */
/* 6) Texte scindé / animations de lignes                                     */
/* -------------------------------------------------------------------------- */

.lines { position: relative; will-change: transform; }
.split-line,
.line-wrap,
.line { display: block; overflow: hidden; }

.line-inner {
  display: inline-block;
  will-change: transform;
  transform: translate3d(0,0,0);
  backface-visibility: hidden;
  -webkit-font-smoothing: antialiased;
}

/* Hover d’expérience */
.exp .line {
  transition: all .5s ease-in-out;
  cursor: pointer;
  transform-origin: left;
}
.exp .line:hover { transform: scale(1.1); }


/* -------------------------------------------------------------------------- */
/* 7) Blocs divers                                                            */
/* -------------------------------------------------------------------------- */

/* Citation en dégradé animé (texte en “mask”) */
.citation > div {
  background: linear-gradient(to right, var(--wp--preset--color--contrast) 50%, rgb(37,37,37) 50%);
  background-size: 200% 100%;
  background-position-x: 100%;
  color: transparent;
  background-clip: text;
  -webkit-background-clip: text;
}
.light .citation > div {
  background: linear-gradient(to right, var(--wp--preset--color--base) 50%, rgb(37,37,37) 50%);
}

.siteWeb figure::before {
  content: '';
  display: block;
  width: 100%;
  height: 43px;
  background-color: #262626;
  border-radius: 25px 25px 0 0;
}

.grid img { border-radius: 20px; }

.wp-block-group.is-layout-grid {
  display: grid;
  /* si ce n’est pas déjà le cas */
  /* grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); */
  align-items: center; /* centrage vertical */
  justify-items: center; /* centrage horizontal */
  gap: 6rem; /* espace entre les logos */
}

.wp-block-group.is-layout-grid figure {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0; /* supprime les marges inline */
}

.wp-block-group.is-layout-grid img {
  max-width: 100%;
  height: auto;
  object-fit: contain; /* meilleure gestion des ratios */
}

.selected { color: var(--wp--preset--color--custom-rose-cp) !important; }

.pages_title{ position: relative; z-index: 100;}

.SiteVids video{
  border-radius: 0 !important;
}

/* liste pages contenu */
.ListeInfos p{
  margin: 0;
}
.ListeInfos a {
  inline-size: 25.3rem;
  display: flex !important;
  text-decoration: none !important;
  margin: 0;
  padding-bottom: 10px;
  justify-content: space-between; /* texte à gauche, flèche à droite */
  align-items: center;
  border-bottom: 1px solid #ccc;
  cursor: pointer;
  transition: transform 0.3s ease-in-out ;
}

/* la flèche */
.ListeInfos a::after {
  content: "→"; /* flèche simple */
  font-weight: 400;
  font-size: 40px;
  color: inherit;
}

/* effet au survol */
.ListeInfos a:hover {
  color: var(--wp--preset--color--primary) !important;
  transform: translateX(5px);
}

.ListeInfos a:hover::after {
  transform: translateX(5px); /* la flèche glisse légèrement à droite */
}


/* -------------------------------------------------------------------------- */
/* 8) Footer                                                                 */
/* -------------------------------------------------------------------------- */

@media (min-width: 1017px){
  .bottom{
    margin-top: -100px;
    z-index: 300;
    position: relative;
  }
}


/* -------------------------------------------------------------------------- */
/* 9) Images “qui”                                                            */
/* -------------------------------------------------------------------------- */

.imgQui img {
  max-height: 90vh;
  vertical-align: top;
}


/* -------------------------------------------------------------------------- */
/* 10) Accordéon                                                              */
/* -------------------------------------------------------------------------- */

.accordion { width: 250px; margin: 15px; box-shadow: 0 8px 17px rgba(0,0,0,.2); }
.accordion-menu { color: #fff; padding: 10px; cursor: pointer !important; user-select: none; position: relative; }
.accordion-content { height: 0; overflow: hidden; font-size: 14px; width: 60%; }
.accordion-content.expanded { height: 0; overflow: hidden; } /* (semble volontaire) */
.accordion-plus,
.accordion-minus { position: absolute; top: 7px; right: 8px; }


/* -------------------------------------------------------------------------- */
/* 11) Formulaires (Gravity Forms)                                            */
/* -------------------------------------------------------------------------- */

/*
.gform_wrapper .ginput_container input {
  background: none;
  border: none;
  border-bottom: 1px solid var(--wp--preset--color--contrast);
  color: var(--wp--preset--color--contrast);
}

.gform_wrapper .ginput_container textarea {
  background: none;
  border-color: var(--wp--preset--color--contrast);
  color: var(--wp--preset--color--contrast);
}

.contact .message .gform-field-label,
.email .gform-field-label,
.nom .gform-field-label {
  font-size: 2rem !important;
  font-weight: 400 !important;
}

.ginput_container_consent { padding-top: 3rem; }

.gform_button {
  background-color: var(--wp--preset--color--contrast);
  color: var(--wp--preset--color--base);
  border: none;
  border-radius: 20px;
  padding: 20px 40px;
  font-size: medium;
  text-transform: uppercase;
  letter-spacing: 0.1rem;
  font-weight: 600;
  transition: transform 0.3s ease;
}
*/

.gform_wrapper .gform_footer input[type="submit"]:hover,
.gform_wrapper .gform_page_footer input[type="submit"]:hover {
  transform: scale(1.05);
}

/*
.gfield_consent_label::after {
  content: "*";
  position: relative;
  top: -0.5rem;
  color: #FFD07B;
  font-weight: bold;
  font-size: 1rem;
}

.gfield_required::before {
  content: "*";
  position: relative;
  top: -1rem;
  color: #FFD07B;
  font-weight: bold;
  font-size: 1rem;
}
*/

.gfield_required_text { display: none !important; }

.gform_required_legend{ display: none !important;}

/* -------------------------------------------------------------------------- */
/* 12) Mise en page Contact                                                   */
/* -------------------------------------------------------------------------- */

.contact-page .circle.one,
.contact-page .circle.two {
  display: flex;
  position: relative !important;
  flex-wrap: wrap;
  align-items: center;
  align-content: center;
  transform: rotate(90deg) !important;
}

.contact-page .circle.one { right: -13.7vw !important; }
.contact-page .circle.two { left: -13.7vw; top: -7vh; }


/* -------------------------------------------------------------------------- */
/* 13) Sections “for” (marquee + SVG latéraux)                                */
/* -------------------------------------------------------------------------- */

.panel .marquee-track {
  display: flex;
  gap: clamp(2rem, 6vw, 8rem);
  will-change: transform;
  transform: translate3d(0,0,0);
}

.panel .wp-block-heading {
  white-space: nowrap;
  display: inline-block;
}

section.for { position: relative; overflow: visible; }
section.for .panel { position: relative; z-index: 2; }

section.for .svg1,
section.for .svg2 {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
  z-index: 0;
  display: grid;
  place-items: center;
}

section.for .svg1 { left: 0; }
section.for .svg2 { right: 0; }

section.for .svg1 svg,
section.for .svg2 svg {
  width: min(35vw, 50vw);
  height: auto;
  transform-box: fill-box;
  transform-origin: 50% 50%;
}


/* -------------------------------------------------------------------------- */
/* 14) Éléments décoratifs positionnés                                       */
/* -------------------------------------------------------------------------- */

.get-on-front { position: relative; z-index: 999 !important; }

.ligne-verte,
.beige-ligne,
.bleu-ligne {
  position: relative;
  left: 50%;
  transform: translateX(-50%);
}

.ligne-verte2{
  position: absolute;
  right: 10rem;
}

.ligne-verte { bottom: 10rem; width: 1rem; }
.beige-ligne { bottom: 18rem; width: 2rem; }
.bleu-ligne  { bottom: -7rem; width: 2rem; z-index: 2; }

.savoir-faire { position: relative; left: 2rem; }
.creativite   { position: relative; left: -2rem; }

.lignes { position: relative; left: 18rem; top: 15rem; }
.arcs-cercles { position: relative; left: -5rem; top: 9rem; }

.arcs-cercles .wp-image-706 { width: 8rem !important; }
.lignes .wp-image-699       { width: 10rem !important; }

.heart img{
  left:0;
  right:0;
  margin:0 auto;
}

@keyframes heartFadeInOut {
  0% {transform: scale(1);}
  25% {transform: scale(.97);}
  35% {transform: scale(.9);}
  45% {transform: scale(1.1);}
  55% {transform: scale(.9);}
  65% {transform: scale(1.1);}
  75% {transform: scale(1.03);}
  100% {transform: scale(1);}
}

.heart img { 
  top: 30%; 
  animation-name: heartFadeInOut; 
  animation-iteration-count: infinite;
  animation-duration: 2s;
  width: 40vh; 
}


/* -------------------------------------------------------------------------- */
/* 15) Utilitaires perf                                                       */
/* -------------------------------------------------------------------------- */

/* Aides GPU / reveal */
[data-reveal],
[data-parallax],
[data-item] {
  will-change: transform, opacity;
  transform: translateZ(0);
}


/* -------------------------------------------------------------------------- */
/* 15) WOOO                                                  */
/* -------------------------------------------------------------------------- */

/* Masque la barre d'onglets + force l'ouverture des panneaux du bloc Woo */
.wp-block-woocommerce-product-details .tabs, .flex-control-nav { display: none !important; }
.wp-block-woocommerce-product-details .wc-tab { display: block !important; }

.pswp__bg, .pswp__img--placeholder--blank{ background-color: white !important;}

/* Un petit style propre si tu veux */
.wc-flat-tabs { margin-top: 2rem; }
.wc-flat-section { padding: 1rem 0; border-top: 1px solid rgba(0,0,0,.08); }

.wc-flat-section:first-child { border-top: 0; }
.wc-flat-title { margin: 0 0 .5rem; font-size: 1.125rem;  }

/* Colonnes pour listes longues dans les onglets produit */
.split-list-columns {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1.5rem 2rem;
}
.split-list-columns ul { list-style: none; margin: 0; padding: 0; }
.split-list-columns li { margin-bottom: .5rem; }
.split-col li ul { margin-left: 1rem; } /* indentation des sous-listes */

.woocommerce div.product div.images{ margin-bottom: 0 !important;}

.wc-flat-title{
  font-size: 2.5rem;
  font-weight: 600; 
  color: var(--wp--preset--color--accent-1) !important;
}

.woocommerce div.product div.images .woocommerce-product-gallery__wrapper .zoomImg{
  background-color: var(--wp--preset--color--accent-4) !important;
}

.wp-block-getwid-megamenu-item:hover > .gw-mm-item__link a,
.keep-open .gw-mm-item__link a{
  background-color: var(--wp--preset--color--accent-1);
}

.wp-block-getwid-megamenu-item.produits > .gw-mm-item__link a:before {
  background: url(img/produits.svg) no-repeat center center;
  content: "";
  width: 30px;
  height: 30px;
  margin: 0 auto;
  margin-bottom: 7px;
}
.wp-block-getwid-megamenu-item.technologie > .gw-mm-item__link a:before {
  background: url(img/techno.svg) no-repeat center center;
  content: "";
  width: 30px;
  height: 30px;
  margin: 0 auto;
  margin-bottom: 7px;
} 
.wp-block-getwid-megamenu-item.patients > .gw-mm-item__link a:before {
  background: url(img/patients.svg) no-repeat center center;
  content: "";
  width: 30px;
  height: 30px;
  margin: 0 auto;
  margin-bottom: 7px;
}
.wp-block-getwid-megamenu-item.societe > .gw-mm-item__link a:before {
  background: url(img/societe.svg) no-repeat center center;
  content: "";
  width: 30px;
  height: 30px;
  margin: 0 auto;
  margin-bottom: 7px;
}
.wp-block-getwid-megamenu-item.societe,
.wp-block-getwid-megamenu-item.patients,
.wp-block-getwid-megamenu-item.technologie{
  position: relative;
}
.wp-block-getwid-megamenu-item.contact > .gw-mm-item__link a:before {
  background-image: url(img/contact.svg);
  width: 50px;
  height: 50px;
  content: "";
  margin: 0 auto;
  margin-bottom: 7px;
  background-size: 100%;
  background-position: center;
  background-repeat: no-repeat;
   --r: 20%;
   transition: --r 0.6s ease;
}
.wp-block-getwid-megamenu-item.contact > .gw-mm-item__link:hover a
 {
	 --r: 60%;
  background: radial-gradient(
    circle at center,
    rgba(255,255,255,0.2) 0%,
    rgba(255,255,255,0.1) 30%,
    rgba(255,255,255,0) var(--r),
    rgba(255,255,255,0) 100%
  );

}
.single-product .wp-block-getwid-megamenu-item.produits > .gw-mm-item__link a, .tax-product_cat .wp-block-getwid-megamenu-item.produits > .gw-mm-item__link a{
	background-color: var(--wp--preset--color--accent-1);
}

.parent-pageid-1002 .wp-block-getwid-megamenu-item.technologie > .gw-mm-item__link a,
.page-id-1002 .wp-block-getwid-megamenu-item.technologie > .gw-mm-item__link a,
.parent-pageid-876 .wp-block-getwid-megamenu-item.patients > .gw-mm-item__link a,
.page-id-876 .wp-block-getwid-megamenu-item.patients > .gw-mm-item__link a,
.page-id-716 .wp-block-getwid-megamenu-item.societe > .gw-mm-item__link a,
.page-id-822 .wp-block-getwid-megamenu-item.societe > .gw-mm-item__link a,
.page-id-837 .wp-block-getwid-megamenu-item.societe > .gw-mm-item__link a,
.page-id-854 .wp-block-getwid-megamenu-item.societe > .gw-mm-item__link a,
.page-id-873 .wp-block-getwid-megamenu-item.societe > .gw-mm-item__link a
{
	background-color: var(--wp--preset--color--accent-1);
}

.wp-block-video{
	overflow: hidden;
	border-radius: 50px;
}


.wp-block-getwid-megamenu-item.contact > .gw-mm-item__link a{
  font-size: 0;
}
.wp-block-getwid-megamenu-item.contact > .gw-mm-item__link a:hover{   
	background-color: transparent;
}
.wp-block-getwid-megamenu-item .gw-mm-item__link a:before {
  background-size: contain !important;
  display: block;
}

.gw-mm-item.has-children .gw-mm-item__link a{
  padding-right: 3vw !important;
}

.wp-block-getwid-megamenu-item > .gw-mm-item__link a{
  padding: 25px 3vw 25px 3vw;
} 

.gw-mm-item__dropdown-content .wp-block-getwid-megamenu-item > .gw-mm-item__link a{
  padding: 25px 3vw 25px 3vw;
}
.gw-mm-item__dropdown-content .wp-block-getwid-megamenu-item > .gw-mm-item__link a:hover, .wp-block-navigation-item__content:hover, .gw-mm-item__dropdown-content .wp-block-getwid-megamenu-item.is-opened  > .gw-mm-item__link a{
  background-color: rgba(255, 255, 255, 0.2);
}

.gw-mm-item__dropdown-wrapper .gw-mm-item__dropdown-wrapper.is-opened{
	max-height: 400px !important;
	height: 400px !important;
}


.gw-mm-item__dropdown{
  padding: 0 15px 0 15px;
}

.wp-block-getwid-megamenu-item > .gw-mm-item__link a:hover,
.gw-mm-item__dropdown{
  background-color: var(--wp--preset--color--accent-1);
}

.gw-mm-item__dropdown .gw-mm-item__dropdown{
  background-color: #FBFBFB;
  padding: 0;
}

.gw-mm-item__dropdown .gw-mm-item__dropdown a:hover{
/*   background-color: white; */
}

.gw-mm-item__dropdown .gw-mm-item__dropdown-wrapper .gw-mm-item__dropdown-content{
  background-color: #FBFBFB !important;
  padding: 0;
}

.gw-mm-item__dropdown .gw-mm-item__dropdown-wrapper {
  background-color: #FBFBFB;
  height: 0 !important;
  display: none;
}

.gw-mm-item__dropdown .wp-block-getwid-megamenu-item:hover .gw-mm-item__dropdown-wrapper{
  height: auto !important;
  display: block;
}

.wp-block-getwid-megamenu-item.produits:hover > .gw-mm-item__link a:before {
  background: url(img/produits.svg) no-repeat center center;
  background-size: contain;
}

.menuVert{
  border-radius: 0px 0px 0px 40px;
}

.gw-mm-item__dropdown-content{
  padding: 0!important;
}
.gw-mm-item__dropdown .gw-mm-item__dropdown-wrapper .gw-mm-item__dropdown-content{
  padding: 0 !important;
  background-color: white;
}
.gw-mm-item__dropdown > *{
  margin-block-start: 0 !important;
}

.solutions .wp-block-tiptip-hyperlink-group-block > .wp-block-group{
  border-radius: 50%;
  overflow: hidden;
}
.is-product-collection-layout-list a{
  border-radius: 50%;
  overflow: hidden;
}
.is-product-collection-layout-list a h3,
.is-product-collection-layout-list a .wp-block-cover__background,
.solutions a h3,
.solutions a .wp-block-cover__background{
  opacity: 0;
  transition: 0.4s all cubic-bezier(0.43, 0.195, 0.02, 1);
}
.is-product-collection-layout-list a:hover h3,
.is-product-collection-layout-list a:hover .wp-block-cover__background,
.solutions a:hover h3,
.solutions a:hover .wp-block-cover__background{
  opacity: 1 !important;
}

.intro{
  transition-delay:1s;
  transition: 0.8s all cubic-bezier(0.43, 0.195, 0.02, 1);
  background: url(img/trefle.svg) no-repeat;
  --bg-x: 0px;
  --bg-y: 0px;
  background-position: calc(50% + var(--bg-x)) calc(50% + var(--bg-y));
  background-size: contain;
  position: relative;
  will-change: transform;
    background: url(img/trefle.svg) no-repeat;
}
.intro.active-trigger{

  background-position: 85% 50%;
  background-size: contain;
} 

.intro:after{
  transition: 0.8s all cubic-bezier(0.43, 0.195, 0.02, 1);
  transition-delay:0.4s;
  display: block;
  content: "";
  background: url(img/produits.png) no-repeat 70% center;
  background-size: contain;
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0;

  --after-mx: 0px;
  --after-my: 0px;

  margin-left: var(--after-mx);
  margin-top: var(--after-my);
  margin-right: calc(var(--after-mx) * -1);
  margin-bottom: calc(var(--after-my) * -1);

  /* ton overlay actuel : gradient, texture, etc. */


  top: 0;
  right: 0; 
  opacity: 0;
  
}
.active-trigger.intro:after{
  opacity: 1;
  top: -20px;
}

ul[role="list"] {             /* 2 colonnes */
  column-gap: 2rem;         /* espace entre colonnes */
  list-style-position: outside;
  margin: 0;
  padding: 10px 3px 27px 40px;
}

ul[role="list"] li {
  break-inside: avoid;      /* empêche la coupure d’un <li> entre 2 colonnes */
  margin-bottom: .5em;
}

ul[role="list"] {
  columns: 1;
}

.defil {
  overflow: hidden;
  white-space: nowrap;
  position: relative;
}

.defil-inner {
  display: inline-flex;
  align-items: center;
  animation: scrollLoop var(--speed, 40s) linear infinite;
}

.defil h2 {
  display: inline-block;
  padding-right: 4rem; /* espace entre répétitions */
  white-space: nowrap;
  margin: 0;
}

/* Menu déroulant avec transition */
.gw-mm-item .gw-mm-item .gw-mm-item__dropdown-wrapper {
  opacity: 0;
  transition: 0.3s all ease-in-out;
  height: 0 !important;
}
.gw-mm-item .gw-mm-item:hover .gw-mm-item__dropdown-wrapper {
  opacity: 1;
  min-height: auto;
}

body .wp-block-buttons .wp-block-button__link {
  width: auto !important;
}

.woocommerce-product-gallery__wrapper .woocommerce-product-gallery__image{
  overflow: visible !important;
}
.head{
  overflow: hidden;
}

/*
h1, h2, h3, .entry-title, .page-title {
  font-feature-settings: "sups";
}
*/

h1 sup, h2 sup, h3 sup {
  font-size: 0.6em;
  vertical-align: super;
}

sup {
  font-size: 0.6em;
  vertical-align: super;
  line-height: 0;
}

/* Variante sans <sup> : détecter le caractère directement */
h1:has(span.reg-mark),
h2:has(span.reg-mark) {
  position: relative;
}

span.reg-mark {
  font-size: 0.6em;
  vertical-align: super;
}

/* Styles communs */
ul[role="list"] {
  columns: 1;
  column-gap: 2rem;
  list-style: none; /* on supprime les puces natives */
  margin: 0;
  padding: 10px 3px 27px 40px;
}

ul[role="list"] li {
  position: relative;
  break-inside: avoid;
  margin-bottom: 0.5em;
  padding-left: 1.8em; /* espace pour la puce */
}

/* Niveau 1 */
ul[role="list"] > li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.4em;
  width: 1em;
  height: 1em;
  background: url("img/puce1.svg") no-repeat center / contain;
}

/* Niveau 2 */
ul[role="list"] > li > ul > li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.4em;
  width: 1em;
  height: 1em;
  background: url("img/puce2.svg") no-repeat center / contain;
}

/* Niveau 3 */
ul[role="list"] > li > ul > li > ul > li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.4em;
  width: 1em;
  height: 1em;
  background: url("img/puce3.svg") no-repeat center / contain;
}

/* Structure de base */
.techno-section .technos a {
  display: inline-block;
  text-decoration: none;
  transition: transform .3s ease;
}

/* Le figure garde son masque circulaire */
.techno-section .technos figure {
  border-radius: 50%;
  overflow: hidden; /* empêche l’image agrandie de dépasser */
}

/* L’image seule bouge */
.techno-section .technos figure img {
  transition: transform .6s ease;
  transform-origin: center;
}

/* Le titre a une animation séparée */
.techno-section .technos h2 {
  transition: transform .4s ease, color .3s ease;
}

/* Effets au survol */
.techno-section .technos a:hover figure img {
  transform: scale(1.08); /* image légèrement agrandie à l’intérieur du cercle */
}

.techno-section .technos a:hover h2 {
  transform: translateY(-6px); /* le texte monte doucement */
}

.techno-section .technos a:hover {
  transform: translateY(-4px); /* l’ensemble du bloc se soulève subtilement */
}


/* Desktop seulement */
@media (min-width: 1024px){
  /* 1) Le parent ne clippe plus son contenu */
  .techno-section{
    position: relative;
    border-radius: 0 !important;             /* on enlève le clipping */
    background: transparent !important;      /* on déporte le fond sur ::before */
    z-index: 0;
    /* on augmente le bottom padding pour "faire de la place" au débordement */
    /* padding-bottom: calc(93px + var(--technos-overflow, 80px)) !important; */
  }

  /* 2) On recrée la carte arrondie via un pseudo-élément derrière */
  .techno-section::before{
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    border-radius: 400px;
    /* ⚠️ Mets ici exactement le même fond que ton bloc (couleur / dégradé) */
    background: var(--wp--preset--gradient--custom-jaune, inherit);
    max-height: 70%;
  }

  /* 3) On fait "dépasser" les tuiles */
  .techno-section .technos{
    position: relative;
    /* transform: translateY(var(--technos-overflow, 100px)); */
  }
}

/* Cible la carte produit */
.wc-block-product .wp-block-tiptip-hyperlink-group-block{
  display:block;
  text-decoration:none;
  transition: transform .3s ease;
}

/* Le cercle masque bien l'image agrandie */
.wc-block-product .wp-block-cover{
  border-radius:50%;
  overflow:hidden; /* important pour le masque */
}

/* L’IMAGE (et seulement elle) est animée */
.wc-block-product .wp-block-cover__image-background{
  transition: transform .6s ease;
  transform-origin:center;
  will-change: transform;
}

/* Le titre a sa propre transition */
.wc-block-product .wp-block-post-title{
  transition: transform .35s ease, color .3s ease;
  will-change: transform;
}

.wc-block-components-product-summary strong{
  font-weight: 600;
  color: var(--wp--preset--color--accent-1) !important;
}

.gw-mm.is-mobile.is-opened .gw-mm__content-wrapper{
  background: linear-gradient(90deg, rgb(0, 104, 96) 0%, rgb(1, 163, 139) 100%);
}

.gw-mm.is-mobile.is-opened .gw-mm__content-wrapper .gw-mm__content-wrapper {
	background: var(--wp--preset--color--accent-1) !important;
}

.wp-block-getwid-megamenu.is-mobile{
  padding: 40px;
}


.wp-block-navigation__container{
  gap: 0 !important;
}

.societe .gw-mm-item__dropdown a,
.patients .gw-mm-item__dropdown a,
.technologie .gw-mm-item__dropdown a{
  padding: 15px;
}

.mapster-wp-maps{
  border-radius: 50% !important;
  overflow: hidden !important;
}


/* Hover/focus : uniquement sur périphériques à pointeur fin (desktop) */
@media (hover: hover) and (pointer: fine){
  .wc-block-product .wp-block-tiptip-hyperlink-group-block:hover .wp-block-cover__image-background,
  .wc-block-product .wp-block-tiptip-hyperlink-group-block:focus-visible .wp-block-cover__image-background{
    transform: scale(1.06); /* ajuste 1.04–1.08 si besoin */
  }

  .wc-block-product .wp-block-tiptip-hyperlink-group-block:hover .wp-block-post-title,
  .wc-block-product .wp-block-tiptip-hyperlink-group-block:focus-visible .wp-block-post-title{
    transform: translateY(-6px); /* ajuste -4px/-8px selon la typo */
  }

  /* Petit lift subtil de toute la carte (optionnel) */
  .wc-block-product .wp-block-tiptip-hyperlink-group-block:hover{
    transform: translateY(-3px);
  }
}

/* Focus clavier visible (accessibilité) */
.wc-block-product .wp-block-tiptip-hyperlink-group-block:focus-visible{
  outline: 2px solid currentColor;
  outline-offset: 4px;
  border-radius: 16px; /* évite un contour carré trop agressif */
}

/* Respecte les préférences de mouvement réduit */
@media (prefers-reduced-motion: reduce){
  .wc-block-product .wp-block-tiptip-hyperlink-group-block,
  .wc-block-product .wp-block-cover__image-background,
  .wc-block-product .wp-block-post-title{
    transition: none !important;
  }
}

/* Mobile : aucun changement (pas de débordement) */
@media (max-width: 1023px){
  .techno-section .technos{
    transform: none;
  }
  .techno-section {
    background: var(--wp--preset--gradient--custom-jaune, inherit) !important;
    border-radius: 400px;
  }
}

/* Animation de défilement */
@keyframes scrollLoop {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}

@media (min-width: 783px) {
  ul[role="list"] {
    columns: 2;
  }
   ul[role="list"] ul {
	   columns: 1;
	}
  
   .gw-mm-item__link  .gw-mm-item__toggle{
	display: none;
	}
}

/* -------------------------------------------------------------------------- */
/* 16) Media queries                                                          */
/* -------------------------------------------------------------------------- */

@media (max-width: 1213px) {
  .basline { min-width: 445px !important; }
}

@media (max-width: 650px) {
  .circle.one { top: 15vh; right: -47vw; }
  .circle.two { left: -15vw; }
  .circle svg { height: 60vw; }

  .creativite,
  .savoir-faire { left: 0 !important; }

  .bleu-ligne,
  .beige-ligne { display: none; }

  .ginput_container_consent { padding-top: 0 !important; }
  	
  	
  	.intro .wp-block-heading{
	  	margin-top: 80vw;
  	}
  	.intro.active-trigger{
	  	background-position: inherit;
  	}
  	.intro:after{
	  	background-position: left top;
	  	right: 10%;
  	}

  
}

@media (max-width: 400px) {
  .title { padding-left: 0 !important; padding-right: 0 !important; }
}


@media (max-width: 768px) {
	header .logo{
		width: 250px !important;
	}
	
	
  .wp-block-getwid-megamenu-item > .gw-mm-item__link a:after{
  content: ""; 
    position: absolute; 
    width: 100%;
    height: 1px;
    background-color: white;
    bottom: 0;
    left: 0;
  }
  .wp-block-getwid-megamenu-item > .gw-mm-item__link a{
    font-size: 22px !important;
    position: relative !important;
    font-weight: 600 !important;
    letter-spacing: 3px !important;
    padding-left: 30px !important;
  }
  .wp-block-getwid-megamenu-item > .gw-mm-item__link a:before {
    width: 40px !important;
    height: 40px !important;
    margin: 0 auto !important;
    margin-bottom: -15px !important;
    display: inline-block !important;
    margin-right: 30px !important;
  }
  .gw-mm__toggle{
    background: none;
    border: none;
    font-size: 0;
  }
  .gw-mm__toggle .dashicons-menu {
    background-color: transparent !important;
    color: transparent !important;
    width: 30px;
    height: 30px;
    background-image: url(/wp-content/uploads/2025/11/menu-icon.svg);
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center;
  }

  :where(.wp-site-blocks *:focus) {
    outline-width: 0 !important;
  }
  .gw-mm__toggle.is-opened .dashicons-menu{
    background-image: url(/wp-content/uploads/2025/11/close_menu.svg) !important;
  }
  
  
  
  .gw-mm-item__link {
    position: relative;
  }

  .gw-mm-item__link  .gw-mm-item__toggle{
	display: block;
    position: absolute;
    width: 100%;
    height: 100%;
    Z-INDEX: 2;
  }
  .gw-mm-item__dropdown-wrapper.is-opened .gw-mm-item__link .gw-mm-item__toggle{
  	display: none !important;
  }
  
  
  .gw-mm-item__link  .gw-mm-item__toggle .dashicons-arrow-down{
    right: 0;
    position: absolute;  
  }
  .gw-mm-item__link  .gw-mm-item__toggle .dashicons-arrow-down::before{
    background: url(/wp-content/uploads/2025/11/fleche_next.svg) no-repeat center center !important;
    content: "" !important;
    position: absolute !important;
    width: 10px !important;
    height: 35px !important;
    display: inline-block !important;
    scale: 1.4 !important;
    transition: transform 0.3s ease;
  }
  .gw-mm-item__link  .gw-mm__toggle.is-opened .dashicons-arrow-down::before{
    transform: rotate(90deg) scale(1.4) !important;
    transition: transform 0.3s ease;
  }




  .wp-block-getwid-megamenu-item.produits.is-opened ~ .wp-block-getwid-megamenu-item .gw-mm-item__link a,
  .wp-block-getwid-megamenu-item.produits.is-opened ~ .wp-block-getwid-megamenu-item .gw-mm-item__link .gw-mm-item__toggle {
    pointer-events: none !important;
  }
  .wp-block-getwid-megamenu-item.produits .gw-mm-item__dropdown a {
    pointer-events: auto !important;
  }
  
  .gw-mm.is-mobile .gw-mm__content-wrapper  .gw-mm__content-wrapper{
	  position:  relative !important;
  }
  
  .gw-mm-item__dropdown-wrapper .gw-mm-item__dropdown-wrapper{
	  display: none !important;
  }
  
  .wp-block-navigation .wp-block-navigation-item{
	  width: 100%
  }
  header .wp-block-navigation .wp-block-navigation-item .wp-block-navigation-item__content{
	  font-size: 22px !important;
  }
  
  .description{ 
	  border-left: 0 !important;
	  border-radius: 0 !important;
  }
  .indications{ padding: 20px !important; margin: 0 !important;}
  .gw-mm__content-wrapper{
	opacity: 0;
	}
	.wp-block-getwid-megamenu.is-opened .gw-mm__content-wrapper{
		opacity: 1;	
	}
  .revert{
    flex-direction: column-reverse;
  }
  .TelBanner{
    padding-left: 3rem !important;
  }
  .TelBanner .wp-block-term-description, .TelBanner .wp-block-group{
    max-width: 100% !important;
  }
 
  ul[role="list"] {
    padding: 10px 3px 27px 10px !important;
  }
  .ic-pdf-list{
    padding: 0;
  }
  .PhotoProduit{
    padding-left:0 !important;
  }
  .AutresProduits{
    margin-top: 5rem !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }
  .techno-section{
    padding-top: 5rem !important;
  }
  .techno-section .wp-block-group{
    padding-right: 0!important;
    padding-left: 0!important;
  }
  .ContentResponsive{
    max-width: 100% !important;
    padding: 1rem 2rem 0 2rem !important;
    --wp--preset--spacing--60: 5rem;
  }
  .ContentResponsive2{
    max-width: 100% !important;
    padding: 1rem 2rem 0 2rem !important;
    --wp--preset--spacing--60: 5rem;
  }
  .ContentResponsive .wp-block-group,
  .ContentResponsive .WidthSize h1,
  .ContentResponsive .WidthSize h2,
  .ContentResponsive .WidthSize h3,
  .ContentResponsive .WidthSize P{
    max-width: 100% !important;
    padding: 0 !important;
  }
  .DetailsPost{
    border-radius: 50px;
    padding: 4rem 2rem 1rem 2rem !important;
  }
  .Coordonnees{
    padding: 2rem 0rem 2rem 0rem !important;
    border-radius: 500px !important;
  }
  .Coordonnees .mapster-wp-maps-container{
    display: none;
      justify-self: center;
  }
/*
  .Coordonnees .mapster-wp-maps, .Coordonnees .maplibregl-canvas{
    height: 50% !important;
    width: 50% !important;
  }
*/
}



.pum-content h4, .pum-title.popmake-title{
	font-family: "Noka" !important;
	font-weight: bold !important;
	color: var(--wp--preset--color--base) !important;
}

.popmake-close {
	padding : 10px 15px;
	margin : 15px 0;
	color : #FFFFFF;
	border : 3px solid #FFFFFF;
	background : var(--wp--preset--color--contrast);
	border-radius: 50px;
	text-transform : uppercase;
	cursor : pointer;
	width : 80px;
	text-align: center;
}
.pum-close{
	background-color: var(--wp--preset--color--contrast);
}

.popmake-close:hover {
	background : var(--wp--preset--color--accent-1);
}

.popmake button{
	display: none;
}



/* ≥ 768px */
@media (min-width: 768px) {
	
	.single-product .wp-block-getwid-megamenu-item.produits > .gw-mm-item__link a, .tax-product_cat .wp-block-getwid-megamenu-item.produits > .gw-mm-item__link a{
			border-radius: 0px 0px 0px 27px;
	}

.societe .gw-mm-item__dropdown-wrapper,
.patients .gw-mm-item__dropdown-wrapper,
.technologie .gw-mm-item__dropdown-wrapper{
  width: 200px !important;
  right: 0 !important;
  left: inherit !important;
}
	
	.gw-mm.is-mobile.is-opened .gw-mm__content-wrapper{
		left: 0 !important;
	}
 
  /* Navigation WP (submenu) */
  .wp-block-navigation.has-background .has-child .wp-block-navigation__submenu-container { top: 90%; }
  .wp-block-navigation .has-child .wp-block-navigation__submenu-container > .wp-block-navigation-item > .wp-block-navigation-item__content {
    flex-flow: column; padding: 1% 10%;
  }
  .sub-menu.right { text-align: right; }
  .sub-menu.center { text-align: center; }

  /* Mega menu en plein flux */
  nav.main-nav .mega-menu { position: static; }
  nav.main-nav .wp-block-navigation-item.mega-menu.has-child::after {
    content: "";
    display: block;
    height: 33px;
    margin-left: 3vw;
    transform: skew(-20deg);
    border: 1px solid rgba(255, 255, 255, 0.19);
  }
  .mega-menu > a { padding-bottom: 15px; }

  nav.main-nav .mega-menu > ul {
    position: absolute;
    left: -10px !important;
    width: 100% !important;
    display: flex;
    flex-wrap: wrap;
    flex-direction: inherit !important;
    padding-left: 20px;
    padding-top: 40px;
    z-index: 999999;
  }

  nav.main-nav .mega-menu > ul .wp-block-navigation__submenu-icon { display: none; }

  nav.main-nav .mega-menu > ul > li > a { font-weight: bold; padding: 17px 0; }

  nav.main-nav .mega-menu > ul > li.wp-block-navigation-submenu {
    display: inline-block;
    width: 25%;
    vertical-align: top;
  }

  nav.main-nav .mega-menu.mega-menu-col-1 > ul > li,
  nav.main-nav .mega-menu.mega-menu-col-2 > ul > li { width: 50%; }

  nav.main-nav .mega-menu > ul > li.wp-block-navigation-submenu.col-3 { width: 50% !important; }
  .col-3 .wp-block-navigation-item__content { display: none !important; }
  .wp-block-navigation-link { display: block !important; width: 100%;}

  nav.main-nav .mega-menu > ul > li:hover > a,
  nav.main-nav .mega-menu > ul > li > a,
  nav.main-nav .mega-menu > ul > li:focus > a,
  nav.main-nav .mega-menu > ul > li[class*="current-"] > a,
  nav.main-nav .mega-menu ul ul {
    background-color: transparent !important;
    color: inherit;
  }

  nav.main-nav .mega-menu ul ul.wp-block-navigation__submenu-container {
    position: static;
    display: block;
    opacity: 1;
    visibility: visible;
    width: 100%;
    height: auto;
    left: 0;
    box-shadow: none;
    pointer-events: auto;
    transform: scale(1);
    margin-bottom: 20px;
  }

  .wp-block-navigation .has-child .has-child > a { font-size: 1.2em; color: #c6fac1; }
  /* NB: l’espace insécable dans la règle d’origine cassait la propriété – corrigé */
  .wp-block-navigation .has-child .has-child ul li li { padding-left: 10%; }

  nav.main-nav .mega-menu ul ul.wp-block-navigation__submenu-container { margin-top: 2%; }
  nav.main-nav .mega-menu ul.toggled-on .sub-menu { pointer-events: auto; }
  nav.main-nav .mega-menu .sub-menu .menu-item-has-children .dropdown-menu-toggle { display: none; }

  nav.main-nav .wp-block-spacer { height: 20px !important; background-color: #fff; }
}



@media (max-width: 1017px) {
  header main{
    padding-left: 0 !important;
  }
  header main .logo{
    padding: 0px 0px 0px 5% !important;
  }
}