/**
 * Accessibilité du modèle Premium — WCAG 2.2 niveau AAA.
 * Chargé après la palette générée : les contrastes de couleur (1.4.6) sont
 * calculés dans scripts/lib/generate-theme-css.js ; ici, focus, cibles,
 * mouvement et structure.
 */

/* 2.4.1 — Lien d'évitement */
.tpl-premium[data-premium-page] a.premium-skip-link {
  color: #0e0e0e !important;
}
.tpl-premium .premium-skip-link {
  position: fixed;
  top: 12px;
  left: 12px;
  z-index: 100000;
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 10px 18px;
  border-radius: 6px;
  background: #ffffff;
  color: #0e0e0e;
  font-size: 16px;
  font-weight: 600;
  text-decoration: underline;
  transform: translateY(-200%);
  transition: transform 0.2s ease;
}
.tpl-premium .premium-skip-link:focus,
.tpl-premium .premium-skip-link:focus-visible {
  transform: none;
}
.tpl-premium main#primary:focus {
  outline: none;
}

/* 2.4.7 / 2.4.13 — Focus visible : anneau blanc sur liseré sombre, lisible sur tout fond */
.tpl-premium :focus-visible,
.tpl-premium[data-premium-page] :focus-visible,
.tpl-premium .premium-block-scope[data-premium-page] :focus-visible {
  outline: 3px solid #ffffff !important;
  outline-offset: 2px !important;
  box-shadow: 0 0 0 5px #0e0e0e !important;
}
/* Boutons pleins dans un conteneur overflow:hidden : un contour extérieur serait
   rogné et un contour intérieur recouvert par le fond animé — anneau posé au-dessus. */
.tpl-premium .button-style-one:focus-visible,
.tpl-premium .premium-nav-cta__link:focus-visible {
  outline: none !important;
  box-shadow: none !important;
}
.tpl-premium .button-style-one:focus-visible::after,
.tpl-premium .premium-nav-cta__link:focus-visible::after {
  content: "" !important;
  position: absolute !important;
  inset: 3px !important;
  z-index: 5 !important;
  border: 3px solid #ffffff !important;
  border-radius: inherit;
  box-shadow: 0 0 0 3px #0e0e0e, inset 0 0 0 2px #0e0e0e !important;
  pointer-events: none !important;
}
.tpl-premium .premium-nav-cta__link {
  position: relative;
}
.tpl-premium .contact-form-button:focus-visible {
  outline: none !important;
  box-shadow: none !important;
}
.tpl-premium .contact-form-button:focus-visible + .button-style-one-wrap {
  outline: 3px solid #ffffff;
  outline-offset: 2px;
  box-shadow: 0 0 0 5px #0e0e0e;
}

/* 2.5.5 — Cibles d'au moins 44 × 44 px */
.tpl-premium .menu_bar.menu_offcanvas {
  width: 44px;
  height: 44px;
}
.tpl-premium .hamburger_close_btn {
  min-width: 44px;
  min-height: 44px;
}
.tpl-premium .premium-nav-cta__link {
  min-height: 44px;
}
.tpl-premium .site_logo a.logo,
.tpl-premium[data-premium-page] .premium-footer__logo {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
}
.tpl-premium .mainmenu > ul > li > a {
  min-width: 44px;
  justify-content: center;
}
.tpl-premium .hamburger-infos .contact-link,
.tpl-premium .contact-box-one-link,
.tpl-premium .lang-switcher a,
.tpl-premium .language-switcher a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
}
.tpl-premium .faq-one-accrodian-toggle-bar {
  min-height: 44px;
  align-items: center;
}
.tpl-premium[data-premium-page] .premium-footer__links {
  gap: 0;
}
.tpl-premium[data-premium-page] .premium-footer a.premium-footer__link {
  align-items: center;
  min-height: 44px;
  padding-top: 11px;
  padding-bottom: 11px;
}
.tpl-premium[data-premium-page] .premium-footer__link::after {
  bottom: 10px;
}
.tpl-premium[data-premium-page] .premium-footer__meta a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
}
.tpl-premium[data-premium-page] .premium-footer__contact {
  gap: 4px;
}
.tpl-premium[data-premium-page] .premium-footer__top-link {
  min-height: 44px;
  padding: 0 10px;
}
.tpl-premium[data-premium-page] [data-premium-service-slider] .service-slider-nav__dots {
  gap: 0;
}
.tpl-premium[data-premium-page] [data-premium-service-slider] button.service-slider-nav__dot,
.tpl-premium[data-premium-page] [data-premium-service-slider] button.service-slider-nav__dot.is-active {
  position: relative;
  width: 44px;
  height: 44px;
  background: transparent;
  border-radius: 8px;
}
.tpl-premium [data-premium-service-slider] .service-slider-nav__dot::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.6);
  transform: translate(-50%, -50%);
  transition: width 0.2s ease, background-color 0.2s ease;
}
.tpl-premium [data-premium-service-slider] .service-slider-nav__dot.is-active::before {
  width: 22px;
  background: #ffffff;
}

/* 1.4.6 — Textes secondaires des blocs premium à 7:1 sur leur fond réel */
.tpl-premium .lang-switcher.header-lang-switcher a.lang-switcher__option {
  color: rgba(255, 255, 255, 0.8) !important;
}
.tpl-premium[data-premium-page] .white-background,
.tpl-premium[data-premium-page] .about-three-our-mission,
.tpl-premium[data-premium-page] .blog-v1-card-content {
  --dark-gray: #595959;
}
.tpl-premium[data-premium-page] [data-premium-pricing-one] .pricing-two-toggle-text-two,
.tpl-premium[data-premium-page] [data-premium-pricing-two] .pricing-two-toggle-text-two {
  color: rgba(255, 255, 255, 0.72);
}
.tpl-premium[data-premium-page] [data-premium-pricing-one].is-yearly .pricing-two-toggle-text-two,
.tpl-premium[data-premium-page] [data-premium-pricing-two].is-yearly .pricing-two-toggle-text-two {
  color: #ffffff;
}
.tpl-premium[data-premium-page] .price-card-one-item.disable-item {
  opacity: 0.74;
}
.tpl-premium[data-premium-page] .pricing-two-tag {
  background-color: var(--brand-btn-bg) !important;
}
.tpl-premium[data-premium-page] .pricing-two-tag .price-card-tag-text {
  color: var(--brand-btn-text);
}
.tpl-premium[data-premium-page] [data-premium-about-three-achievement]:hover,
.tpl-premium[data-premium-page] [data-premium-about-three-achievement].is-active,
.tpl-premium[data-premium-page] [data-premium-about-three-achievement]:focus-visible {
  background-color: var(--brand-btn-bg);
  border-color: var(--brand-btn-bg);
}
.tpl-premium[data-premium-page] [data-premium-about-three-achievement]:hover .color-white,
.tpl-premium[data-premium-page] [data-premium-about-three-achievement].is-active .color-white,
.tpl-premium[data-premium-page] [data-premium-about-three-achievement]:focus-visible .color-white {
  color: var(--brand-btn-text);
}

/* 2.2.2 — Bouton pause des animations (vidéos de fond, carrousel, bandeau) */
.tpl-premium .premium-motion-toggle {
  position: fixed;
  left: 16px;
  bottom: 16px;
  z-index: 9990;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 2px solid #ffffff;
  border-radius: 999px;
  background: #0e0e0e;
  color: #ffffff;
  cursor: pointer;
}
.tpl-premium .premium-motion-toggle__icon {
  width: 20px;
  height: 20px;
}
.tpl-premium .premium-motion-toggle__icon--play,
.premium-motion-paused .tpl-premium .premium-motion-toggle__icon--pause {
  display: none;
}
.premium-motion-paused .tpl-premium .premium-motion-toggle__icon--play {
  display: block;
}
.tpl-premium .premium-motion-toggle__label {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}
.premium-motion-paused .tpl-premium .client-one-marquee-train {
  animation-play-state: paused !important;
}

/* 2.3.3 — Moins d'animations si le système le demande */
@media (prefers-reduced-motion: reduce) {
  .tpl-premium *,
  .tpl-premium *::before,
  .tpl-premium *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  .tpl-premium [data-premium-reveal] {
    opacity: 1 !important;
    transform: none !important;
  }
}
