/* Petit Canard V6.69.10a — accessibilité publique approfondie */

/* Le lien d’évitement devient très visible dès qu’il reçoit le focus. */
.skip {
  position: fixed !important;
  z-index: 20000 !important;
  top: 8px !important;
  left: 8px !important;
  max-width: calc(100vw - 16px);
  transform: translateY(-160%);
  padding: 10px 14px !important;
  border: 2px solid #3f327a !important;
  border-radius: 10px !important;
  background: #fff !important;
  color: #2d2459 !important;
  font-weight: 900 !important;
  box-shadow: 0 8px 24px rgba(32, 24, 52, 0.18) !important;
}
.skip:focus,
.skip:focus-visible {
  transform: translateY(0) !important;
  outline: 3px solid #f0b500 !important;
  outline-offset: 2px !important;
}

/* Focus visible uniforme, sans dépendre uniquement de la couleur de fond. */
body:not(.admin-page) a:focus-visible,
body:not(.admin-page) button:focus-visible,
body:not(.admin-page) input:focus-visible,
body:not(.admin-page) select:focus-visible,
body:not(.admin-page) textarea:focus-visible,
body:not(.admin-page) [tabindex]:not([tabindex='-1']):focus-visible {
  outline: 3px solid #5f4aa8 !important;
  outline-offset: 3px !important;
}
#contenu:focus {
  outline: none !important;
}

/* Zones de saisie et contrôles suffisamment lisibles au clavier et au tactile. */
.pc-public-filter-panel input,
.pc-public-filter-panel select,
.explorer-page input,
.contact-form-card input,
.contact-form-card select,
.contact-form-card textarea {
  scroll-margin-top: calc(var(--pc-fixed-header-height, 78px) + 18px);
}
.pc-public-filter-panel button,
.pc-public-filter-panel input,
.pc-public-filter-panel select {
  min-height: 36px;
}

/* États actifs perceptibles sans se reposer uniquement sur une variation de couleur. */
.pc-public-filter-panel button[aria-pressed='true'],
.media-view-controls button[aria-pressed='true'],
.catalog-view-controls button[aria-pressed='true'] {
  box-shadow: inset 0 0 0 2px currentColor !important;
}

/* Dialogues : focus et défilement restent utilisables sur petit écran. */
dialog[open] {
  overscroll-behavior: contain;
}
dialog[open] .pc-qr-inner,
dialog[open] .dialog-inner {
  max-height: min(88vh, 760px);
  overflow: auto;
}

/* Le texte masqué visuellement reste disponible aux technologies d’assistance. */
.pc-sr-only,
.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* Cibles tactiles plus confortables sur mobile. */
@media (max-width: 820px) {
  body:not(.admin-page) .btn,
  body:not(.admin-page) button,
  body:not(.admin-page) .pc-media-family-nav a {
    min-height: 44px;
  }
  .pc-public-filter-panel .media-genre-filters button,
  .pc-public-filter-panel .genre-filter-tag {
    min-height: 40px !important;
    padding-top: 7px !important;
    padding-bottom: 7px !important;
  }
}

/* Le focus ne doit jamais être animé si l’utilisateur demande moins de mouvement. */
@media (prefers-reduced-motion: reduce) {
  .skip,
  body:not(.admin-page) * {
    scroll-behavior: auto !important;
  }
}
