/* Navigation partagée LekaVisible : menu « Services » desktop et accordéon « Services » du menu mobile.
   Utilisé par l'accueil et par les pages /services/…/ (comportement : assets/site-nav.js). */

/* ---------- Menu Services — navbar desktop ---------- */
.lv-services { position: relative; display: inline-flex; align-items: center; }
.lv-services__toggle {
  appearance: none; -webkit-appearance: none; background: none; border: 0; padding: 0; margin: 0;
  font: inherit; line-height: inherit; color: #ffffff; cursor: pointer; position: relative;
  transition: color .28s cubic-bezier(.4,0,.2,1);
}
.lv-services__toggle::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -0.55em; height: 2px; border-radius: 2px;
  background: #bdf05a; transform: scaleX(0); transform-origin: left center; transition: transform .25s ease;
}
.lv-services__toggle[aria-expanded="true"]::after { transform: scaleX(1); }
.lv-services__toggle:hover { color: #bdf05a; }
.lv-services__toggle:focus { outline: none; }
.lv-services__toggle:focus-visible { color: #bdf05a; outline: 2px solid #bdf05a; outline-offset: 6px; border-radius: 4px; }

.lv-services__panel {
  position: absolute; z-index: 20; top: calc(100% + max(14px, 1.6cqw)); left: max(-32px, -3.7cqw);
  width: max(300px, 29.5cqw); padding: max(6px, .55cqw) max(18px, 1.95cqw);
  background: #04201a; border: 1px solid rgba(255, 255, 255, .14);
  border-radius: max(10px, .8cqw); box-shadow: 0 18px 50px rgba(0, 0, 0, .45);
}
.lv-services__panel[hidden] { display: none; }
/* l'état fermé suit aussi aria-expanded du bouton : le moteur de rendu de l'accueil ne conserve pas toujours l'attribut hidden */
.lv-services__toggle[aria-expanded="false"] + .lv-services__panel { display: none; }
.lv-services__list { list-style: none; margin: 0; padding: 0; }
.lv-services__list li + li { border-top: 1px solid rgba(255, 255, 255, .12); }
.lv-services__list a {
  display: block; padding: max(11px, 1.12cqw) 0; color: #ffffff; font-size: max(14px, 1.22cqw);
  font-weight: 500; line-height: 1.3; white-space: nowrap; transition: color .2s ease;
}
.lv-services__list a:hover, .lv-services__list a:focus-visible { color: #bdf05a; }
.lv-services__list a:focus { outline: none; }
.lv-services__list a:focus-visible { outline: 2px solid #bdf05a; outline-offset: 4px; border-radius: 4px; }

/* ---------- Accordéon Services — menu mobile ---------- */
.lv-maccordion__toggle {
  appearance: none; -webkit-appearance: none; background: none; border: 0; padding: 0; margin: 0;
  width: 100%; min-height: 56px; display: flex; align-items: center; justify-content: space-between; gap: 16px;
  font: inherit; font-size: clamp(26px, 7vw, 34px); font-weight: 600; line-height: 1.2; color: #ffffff;
  text-align: left; cursor: pointer;
}
.lv-maccordion__toggle svg { width: clamp(22px, 6vw, 28px); height: auto; flex: none; transition: transform .25s ease; }
.lv-maccordion__toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
.lv-maccordion__toggle:hover { color: #bdf05a; }
.lv-maccordion__toggle:focus { outline: none; }
.lv-maccordion__toggle:focus-visible { outline: 2px solid #bdf05a; outline-offset: 4px; border-radius: 6px; }
.lv-maccordion__list { list-style: none; margin: 2px 0 8px; padding: 0 0 0 clamp(14px, 4vw, 20px); }
.lv-maccordion__list[hidden] { display: none; }
.lv-maccordion__toggle[aria-expanded="false"] + .lv-maccordion__list { display: none; }
.lv-maccordion__list a {
  display: flex; align-items: center; min-height: 44px; padding: 4px 0;
  font-size: clamp(17px, 4.6vw, 20px); font-weight: 400; line-height: 1.3; color: rgba(255, 255, 255, .92);
}
.lv-maccordion__list a:hover, .lv-maccordion__list a:focus-visible { color: #bdf05a; }
.lv-maccordion__list a:focus { outline: none; }
.lv-maccordion__list a:focus-visible { outline: 2px solid #bdf05a; outline-offset: 3px; border-radius: 4px; }
