/**
 * Kadence A11y Layer — CSS minimal (ZÉRO régression visuelle).
 * On NE surcharge PAS le focus ni les skip-links du thème (le thème conserve son rendu).
 * Seul repli : la classe utilitaire pour lecteurs d'écran, au cas où le thème ne la définirait pas.
 * (Si le thème la définit déjà — cas de Kadence — ces règles sont identiques et sans effet visible.)
 */
.kal-skip-links {
	margin: 0;
	padding: 0;
}

/* Skip link « Aller à la navigation » — DEUX liens mutuellement exclusifs par breakpoint (1024px, la
   bascule EXACTE du header Kadence desktop↔tablette sur cette instance : à max-width:1024px le header
   desktop passe en display:none et le burger prend le relais). Chaque lien n'est PRÉSENT (donc focusable)
   qu'à son breakpoint → jamais de cible non focusable : au-dessus de 1024px, la nav desktop plein écran
   (#kal-site-navigation) est visible → lien desktop ; à 1024px et en-dessous, elle est masquée et le
   déclencheur du menu (burger) est le seul point d'entrée focusable → lien mobile. display:none retire
   le lien inactif de l'ordre de tabulation. */
@media (max-width: 1024px) {
	.kal-skip-links a.kal-skip-nav-desktop { display: none; }
}
@media (min-width: 1025px) {
	.kal-skip-links a.kal-skip-nav-mobile { display: none; }
}

/* Mega-menu Kadence : <li> d'englobement qui rend la liste valide (audit 1.3.1) — un <ul> doit contenir
   un <li>. Neutralisé pour la mise en page (aucune puce, aucune marge) : le contenu (Row Kadence) s'affiche
   exactement comme avant. Ne concerne QUE ce <li> technique ajouté par le plugin. */
.kal-mega-li {
	display: block;
	margin: 0;
	padding: 0;
	list-style: none;
}

/* Fil d'Ariane : le séparateur ::after (restitué comme texte par les lecteurs d'écran) est remplacé par un
   VRAI <span aria-hidden> injecté par le module « breadcrumbs ». Une fois le fil marqué .kal-crumb-fixed,
   on neutralise le ::after d'origine → plus aucune double vocalisation, rendu visuel identique (le span
   reprend caractère, marges et couleur du ::after). Ciblé au seul fil traité par le plugin. */
nav.kal-crumb-fixed li::after {
	content: none !important;
}
.kal-crumb-sep {
	display: inline-block;
	margin: 0 .5em;
	color: inherit;
}

/* Accordéon « tous volets ouverts » : neutraliser l'animation pendant la 1re passe d'ouverture au chargement
   (anti-clignotement), SANS style inline. La classe .kal-acc-initing est ajoutée puis retirée par le JS juste
   après → l'animation revient pour les interactions utilisateur. Kadence appelle son callback immédiatement
   quand la durée de transition calculée vaut 0s. */
.kal-acc-initing .kt-accordion-panel,
.kal-acc-initing .kt-accordion-panel-inner {
	transition: none !important;
	animation: none !important;
}
/* Respect de prefers-reduced-motion : aucune animation d'accordéon sur les blocs marqués. */
@media (prefers-reduced-motion: reduce) {
	[data-kal-acc-openall] .kt-accordion-panel,
	[data-kal-acc-openall] .kt-accordion-panel-inner {
		transition: none !important;
		animation: none !important;
	}
}

/* Retours à la ligne accessibles (module « linebreaks ») : le <br> est remplacé côté serveur par un span
   neutre aria-hidden. Le retour à la ligne VISUEL est conservé (élément de type bloc, hauteur nulle), mais
   l'élément est ignoré des lecteurs d'écran. 2 <br> ou plus → un seul saut + 20px d'espacement (jamais
   cumulatif). Styles fournis ICI (plugin auto-suffisant, indépendant du thème). */
.ipedis-nl {
	display: block;
	height: 0;
}
.ipedis-nl--gap {
	height: auto;
	margin-bottom: 20px;
}

/* Lien « Passer la carte » (module frameskip) : masqué, révélé À LA PRISE DE FOCUS, positionné en haut à
   gauche de la zone de la carte. Le conteneur reçoit .kal-skip-frame-host (position:relative) pour l'ancrer.
   Le plugin fournit son propre style (le thème ne cible que .skip-link, pas cette classe). */
.kal-skip-frame-host { position: relative; }
.kal-skip-frame {
	position: absolute !important;
	width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden;
	clip: rect(0, 0, 0, 0); clip-path: inset(50%); white-space: nowrap; border: 0;
}
.kal-skip-frame:focus {
	top: .5rem; left: .5rem; z-index: 5;
	width: auto; height: auto; margin: 0; padding: .5rem 1rem; overflow: visible;
	clip: auto; clip-path: none;
	background: #ffffff; color: #12213f; border: 2px solid #12213f; border-radius: 4px;
	font-weight: 700; text-decoration: none; white-space: nowrap;
}
/* Lien d'évitement de FIN (bypass en Maj+Tab) : révélé en BAS de la carte, près de l'endroit où arrive
   l'utilisateur qui tabule en arrière depuis l'après-carte. */
.kal-skip-frame--end:focus { top: auto; bottom: .5rem; }

/* Repli lecteur d'écran, uniquement si absent du thème (mêmes valeurs que la convention WP). */
:where(.screen-reader-text, .kal-skip-links .sr-only) {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}
