/*
 * Informations réglementaires.
 *
 * Volontairement sobre : la page est un document officiel, elle doit rester
 * lisible dans n'importe quel thème du parc, et imprimable telle quelle.
 * Aucune couleur imposée — on hérite de la charte du site.
 */

.id-reglementaire {
	max-width: 62rem;
	margin: 0 auto;
}

.id-reglementaire-intro {
	font-size: 0.95em;
	line-height: 1.6;
	margin-bottom: 2rem;
}

.id-reglementaire-communs {
	margin-bottom: 2.5rem;
}

/* Les établissements, repliés, s'empilent : un écart serré suffit entre deux
   titres fermés. */
.id-reglementaire-etablissement {
	margin-bottom: 0.75rem;
}

.id-reglementaire-document {
	margin: 0 0 1.75rem;
}

.id-reglementaire-document > h3 {
	margin: 0 0 0.35rem;
	font-size: 1.05em;
}

/* Le poids du fichier reste à la taille du texte courant, quel que soit le
   corps que le thème donne aux titres. */
.id-reglementaire-poids {
	font-size: 0.55em;
	font-weight: normal;
	white-space: nowrap;
	opacity: 0.7;
}

/* Textes longs repliés sous leur titre (information aux familles, CGV). Le
   marqueur natif est remplacé par un +/− aligné à droite, plus lisible dans
   tous les thèmes. */
.id-reglementaire-repli > summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 0.6rem 0;
	border-bottom: 1px solid rgba(128, 128, 128, 0.35);
	list-style: none;
	cursor: pointer;
}

.id-reglementaire-repli > summary::-webkit-details-marker {
	display: none;
}

/* Titre d'établissement : ramené à une taille de sous-titre, les h2 du thème
   étant dimensionnés pour des titres de section de page d'accueil. Limité à
   cette page par le conteneur du shortcode. */
.id-reglementaire-repli > summary > h2 {
	margin: 0;
	font-size: clamp(1.25rem, 1.05rem + 0.8vw, 1.6rem);
	line-height: 1.3;
}

.id-reglementaire-repli--etablissement > summary {
	border-bottom-color: currentColor;
}

.id-reglementaire-repli--etablissement[open] {
	padding-bottom: 1rem;
}

.id-reglementaire-repli > summary > h3 {
	margin: 0;
	font-size: 1.05em;
}

.id-reglementaire-repli > summary::after {
	content: "+";
	flex: none;
	font-size: 1.5em;
	line-height: 1;
}

.id-reglementaire-repli[open] > summary::after {
	content: "\2212";
}

.id-reglementaire-repli > summary:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 4px;
}

.id-reglementaire-repli[open] > summary {
	margin-bottom: 1rem;
}

.id-reglementaire-meta {
	margin: 0 0 0.6rem;
	font-size: 0.85em;
	opacity: 0.75;
}

.id-reglementaire-meta span + span::before {
	content: " · ";
}

.id-reglementaire-texte {
	line-height: 1.6;
}

.id-reglementaire-texte table {
	width: 100%;
	border-collapse: collapse;
	margin: 1rem 0;
	font-size: 0.9em;
}

.id-reglementaire-texte th,
.id-reglementaire-texte td {
	border: 1px solid rgba(128, 128, 128, 0.35);
	padding: 0.4rem 0.6rem;
	text-align: left;
	vertical-align: top;
}



.id-reglementaire-vide {
	font-style: italic;
}

/* Le diagnostic ne s'affiche qu'aux administrateurs : il doit se distinguer du
   contenu de la page au premier coup d'œil. */
.id-reglementaire-diagnostic {
	margin-top: 1rem;
	padding: 0.75rem 1rem;
	border-left: 3px solid #d9822b;
	background: rgba(217, 130, 43, 0.08);
	font-size: 0.9em;
}

/* ---------- Visionneuse PDF (lecture seule) ---------- */

.id-reglementaire-visionneuse {
	margin-top: 0.75rem;
	-webkit-user-select: none;
	user-select: none;
}

.id-reglementaire-visionneuse__etat {
	margin: 0;
	padding: 1.5rem 1rem;
	text-align: center;
	font-size: 0.9em;
	opacity: 0.75;
	border: 1px dashed rgba(128, 128, 128, 0.45);
}

.id-reglementaire-visionneuse__pages {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	max-height: 80vh;
	overflow-y: auto;
	/* Gouttière réservée d'emblée : l'apparition de la barre de défilement,
	   après la première page, ne doit pas réduire la largeur déjà mesurée. */
	scrollbar-gutter: stable;
	padding: 0.75rem;
	background: rgba(128, 128, 128, 0.12);
	-webkit-overflow-scrolling: touch;
}

.id-reglementaire-visionneuse__page {
	position: relative;
	max-width: 100%;
	margin: 0 auto;
	background: #fff;
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.18);
}

.id-reglementaire-visionneuse__page canvas {
	display: block;
	width: 100%;
	height: 100%;
}

/* Couche texte de PDF.js 4.10 (repris de web/pdf_viewer.css) : texte
   transparent superposé à l'image de la page, pour les lecteurs d'écran et
   la recherche dans la page. Figée comme une image : ni sélection ni copie à
   la souris ou au clavier, mais toujours lue par les lecteurs d'écran, qui
   s'appuient sur le DOM et non sur la sélection (cahier des charges §5 :
   couche texte conservée pour l'accessibilité). */
.id-reglementaire-visionneuse .textLayer {
	position: absolute;
	text-align: initial;
	inset: 0;
	overflow: clip;
	opacity: 1;
	line-height: 1;
	-webkit-text-size-adjust: none;
	text-size-adjust: none;
	forced-color-adjust: none;
	transform-origin: 0 0;
	caret-color: CanvasText;
	z-index: 0;
	-webkit-user-select: none;
	user-select: none;
	/* Aucun événement souris : pas de début de sélection au glisser, curseur
	   de l'image et non celui du texte. */
	pointer-events: none;
}

.id-reglementaire-visionneuse .textLayer :is(span, br) {
	color: transparent;
	position: absolute;
	white-space: pre;
	cursor: default;
	transform-origin: 0% 0%;
}

.id-reglementaire-visionneuse .textLayer > :not(.markedContent),
.id-reglementaire-visionneuse .textLayer .markedContent span:not(.markedContent) {
	z-index: 1;
}

.id-reglementaire-visionneuse .textLayer span.markedContent {
	top: 0;
	height: 0;
}



.id-reglementaire-visionneuse .textLayer .endOfContent {
	display: block;
	position: absolute;
	inset: 100% 0 0;
	z-index: 0;
	cursor: default;
	user-select: none;
}

@media print {
	/* Consultation seule (cahier des charges §5) : les documents ne
	   s'impriment pas depuis la page. */
	.id-reglementaire-visionneuse,
	.id-reglementaire-repli--pdf {
		display: none !important;
	}

	.id-reglementaire-repli > summary::after {
		display: none;
	}

	.id-reglementaire-etablissement {
		break-inside: avoid;
	}
}
