/* Bouton qui ouvre le menu, dans l'en-tête du site (balise header sur le .com, nav sur le .fr).
   Même verre que les boutons « Appeler le cabinet » et « Accéder au formulaire ».
   Chargé dans <head> pour que le bouton s'affiche d'emblée dans son nouveau style.
   :not(#km) élève la spécificité au-dessus des règles d'Elementor, sans !important partout. */

@property --km-beacon { syntax: '<angle>'; inherits: false; initial-value: 0deg; }
@keyframes km-beacon-rim { to { --km-beacon: 360deg; } }

header .elementor-icon[href*="off_canvas%3Aopen"]:not(#km),
nav.elementor-location-header .elementor-icon[href*="off_canvas%3Aopen"]:not(#km) {
  position: relative;
  isolation: isolate;
  display: grid;
  place-items: center;
  width: 58px;
  height: 58px;
  padding: 0;
  border: 0;
  border-radius: 19px;
  color: #16191e;
  background: conic-gradient(from var(--km-beacon), #f7f9fc 0deg, #d5e3f4 50deg, #fff 95deg, #dce8f7 150deg, #eef3fa 205deg, #cfdef1 265deg, #fff 320deg, #f7f9fc 360deg);
  box-shadow: 0 0 0 1px rgba(190, 196, 211, .4), 0 10px 18px -8px rgba(24, 35, 57, .3);
  transition: transform .2s, box-shadow .2s;
  -webkit-tap-highlight-color: transparent;
}
header .elementor-icon[href*="off_canvas%3Aopen"]:not(#km)::before,
nav.elementor-location-header .elementor-icon[href*="off_canvas%3Aopen"]:not(#km)::before {
  content: "";
  position: absolute;
  inset: -5px;
  border-radius: 23px;
  border: 1px solid rgba(136, 141, 148, .18);
  box-shadow: inset 0 1px 1px rgba(255, 255, 255, .6), inset 0 -2px 1px rgba(255, 255, 255, .45), 0 1px 2px rgba(61, 66, 67, .17);
  pointer-events: none;
  z-index: -2;
}
header .elementor-icon[href*="off_canvas%3Aopen"]:not(#km)::after,
nav.elementor-location-header .elementor-icon[href*="off_canvas%3Aopen"]:not(#km)::after {
  content: "";
  position: absolute;
  inset: 2.5px;
  border-radius: 16.5px;
  z-index: -1;
  background: radial-gradient(ellipse at 35% 0%, rgba(255, 255, 255, .72), transparent 64%), linear-gradient(180deg, #eef1f5, #e2e6ec 65%, #eaedf2);
  box-shadow: inset 0 1px 1px #fff, inset 0 -1px 2px #c7ccd6;
  pointer-events: none;
}
header .elementor-icon[href*="off_canvas%3Aopen"]:not(#km) svg,
nav.elementor-location-header .elementor-icon[href*="off_canvas%3Aopen"]:not(#km) svg { position: relative; z-index: 1; width: 24px; height: 24px; }
header .elementor-icon[href*="off_canvas%3Aopen"]:not(#km) svg *,
nav.elementor-location-header .elementor-icon[href*="off_canvas%3Aopen"]:not(#km) svg * { stroke: #16191e; }
header .elementor-icon[href*="off_canvas%3Aopen"]:not(#km):hover,
nav.elementor-location-header .elementor-icon[href*="off_canvas%3Aopen"]:not(#km):hover {
  transform: translateY(-1px);
  box-shadow: 0 0 0 1px rgba(190, 196, 211, .45), 0 14px 22px -8px rgba(24, 35, 57, .38);
  animation: km-beacon-rim 9s linear infinite;
}
header .elementor-icon[href*="off_canvas%3Aopen"]:not(#km):active,
nav.elementor-location-header .elementor-icon[href*="off_canvas%3Aopen"]:not(#km):active { transform: translateY(1.5px); }
header .elementor-icon[href*="off_canvas%3Aopen"]:not(#km):focus-visible,
nav.elementor-location-header .elementor-icon[href*="off_canvas%3Aopen"]:not(#km):focus-visible { outline: 3px solid #1f4fa8; outline-offset: 7px; }
@media (prefers-reduced-motion: reduce) {
  header .elementor-icon[href*="off_canvas%3Aopen"]:not(#km):hover,
  nav.elementor-location-header .elementor-icon[href*="off_canvas%3Aopen"]:not(#km):hover { animation: none; }
}
