/* Mise en forme des contenus produits par l'extension.
   Les couleurs et les polices viennent du thème (theme.json). */

/* --- Recherche d'établissement (page d'accueil) ----------------------- */
.udsm-recherche-etab {
	background: var(--wp--preset--color--blanc, #fff);
	border-radius: 26px;
	padding: 22px;
}
.udsm-recherche-etab__titre { font-weight: 500; margin: 0 0 12px; }
.udsm-recherche-etab__ligne { display: flex; flex-wrap: wrap; gap: 10px; }
.udsm-recherche-etab__ligne input[type="search"] { flex: 1 1 200px; }
.udsm-recherche-etab input,
.udsm-recherche-etab select {
	font: inherit; padding: 12px 16px;
	border: 1px solid var(--wp--preset--color--noir, #000);
	border-radius: 999px; background: #fff;
}

/* --- Filtres ---------------------------------------------------------- */
.udsm-filtres { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-bottom: 28px; }
.udsm-filtres select,
.udsm-filtres input[type="search"] {
	font: inherit; padding: 10px 16px;
	border: 1px solid var(--wp--preset--color--noir, #000);
	border-radius: 999px; background: #fff;
}
.udsm-compte { font-size: .85rem; opacity: .75; }
.udsm-reinit { font-size: .85rem; }

/* --- Annuaire --------------------------------------------------------- */
.udsm-annuaire { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; align-items: start; }
.udsm-annuaire__liste { display: grid; gap: 14px; }
.udsm-annuaire__carte { position: sticky; top: 100px; }
@media (max-width: 900px) {
	.udsm-annuaire { grid-template-columns: 1fr; }
	.udsm-annuaire__carte { position: static; order: -1; }
}

/* La carte porte le décor ; le lien ne couvre que le titre mais s'étire sur
   toute la carte. Un lien qui enveloppait un <h3> était du HTML invalide :
   WordPress refermait le paragraphe au milieu, et le navigateur coupait la
   carte en deux — d'où les blocs vides entre chaque établissement. */
.udsm-fiche {
	position: relative;
	background: var(--wp--preset--color--creme, #FDF7EB);
	border: 1px solid transparent; border-radius: 26px; padding: 22px;
	transition: border-color .15s;
}
.udsm-fiche:hover,
.udsm-fiche:focus-within { border-color: var(--wp--preset--color--noir, #000); }
.udsm-fiche h3 { margin: 10px 0 6px; font-size: 1.15rem; }
.udsm-fiche p { margin: 0; }
.udsm-fiche-titre a { text-decoration: none; color: inherit; }
.udsm-fiche-titre a::after { content: ""; position: absolute; inset: 0; }
.udsm-fiche-titre a:focus-visible { outline: none; }

.udsm-grille-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
@media (max-width: 980px) { .udsm-grille-3 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .udsm-grille-3 { grid-template-columns: 1fr; } }

/* --- Agenda ----------------------------------------------------------- */
.udsm-agenda { display: block; }
.udsm-evt {
	display: grid; grid-template-columns: 110px 1fr auto;
	gap: 22px; align-items: center;
	padding: 22px 0; border-top: 1px solid rgba(0, 0, 0, .15);
}
.udsm-evt:last-child { border-bottom: 1px solid rgba(0, 0, 0, .15); }
.udsm-evt__jour {
	display: block; font-size: 2.6rem; line-height: .95;
	letter-spacing: -.02em; font-family: var(--wp--preset--font-family--labil);
}
.udsm-evt__corps h3 { margin: 0 0 4px; font-size: 1.2rem; }
.udsm-evt__corps p { margin: 4px 0 0; }
@media (max-width: 700px) {
	.udsm-evt { grid-template-columns: 1fr; gap: 10px; }
	.udsm-evt__date { display: flex; align-items: baseline; gap: 8px; }
	.udsm-evt__jour { font-size: 1.7rem; }
}

/* --- Étiquettes ------------------------------------------------------- */
.udsm-etiquette {
	display: inline-block; border: 1px solid currentColor; border-radius: 999px;
	padding: 2px 12px; font-size: .78rem; line-height: 1.6; margin-right: 4px;
}

/* --- Fiche établissement ---------------------------------------------- */
.udsm-coordonnees {
	background: var(--wp--preset--color--creme, #FDF7EB);
	border-radius: 26px; padding: 26px; position: sticky; top: 100px;
}
.udsm-coordonnees h2 { font-size: 1.3rem; margin: 0 0 10px; }
.udsm-coordonnees h3 { font-size: 1rem; font-weight: 500; margin: 22px 0 6px; }
.udsm-coordonnees p { margin: 0; }
.udsm-liste-nue { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.udsm-cta-admission { margin-top: 22px; }
@media (max-width: 900px) { .udsm-coordonnees { position: static; } }

/* --- Documents -------------------------------------------------------- */
.udsm-carte-doc {
	background: var(--wp--preset--color--creme, #FDF7EB);
	border-radius: 26px; padding: 24px;
}
.udsm-carte-doc h3 { margin: 10px 0 4px; font-size: 1.15rem; }

/* --- Carte ------------------------------------------------------------ */
.udsm-carte { border-radius: 26px; overflow: hidden; }
.udsm-point span {
	display: block; width: 22px; height: 22px; border-radius: 50%;
	background: #2F7A70; border: 3px solid #fff; box-shadow: 0 1px 4px rgba(0, 0, 0, .3);
}
.leaflet-container { font: inherit; }

/* --- États vides et repères ------------------------------------------- */
.udsm-vide {
	border: 1px dashed currentColor; border-radius: 26px; padding: 26px;
}
.udsm-vide h3 { margin: 0 0 8px; font-size: 1.15rem; }
.udsm-vide p { margin: 0; }

.udsm-fil { font-size: .82rem; opacity: .8; margin-bottom: 18px; }
.udsm-petit { font-size: .9rem; }
.udsm-annotation { font-size: .8rem; opacity: .75; margin: 4px 0 0; }
.udsm-exergue { font-size: 1.15rem; line-height: 1.5; }

/* Repère de contenu à rédiger : visible seulement pour l'équipe connectée. */
.udsm-a-ecrire { display: none; }
.logged-in .udsm-a-ecrire {
	display: block; background: #FFE3D2; border-radius: 12px;
	padding: 10px 16px; font-size: .9rem;
}

/* --- Newsletter -------------------------------------------------------- */
.udsm-newsletter { display: flex; gap: 8px; flex-wrap: wrap; }
.udsm-newsletter input[type="email"] {
	flex: 1 1 180px; font: inherit; padding: 11px 16px;
	border: 1px solid var(--wp--preset--color--noir, #000);
	border-radius: 999px; background: #fff;
}

/* --- Formulaires ------------------------------------------------------- */
.udsm-form { display: grid; gap: 18px; max-width: 640px; }
.udsm-form .champ { display: grid; gap: 6px; }
.udsm-form label { font-weight: 500; font-size: .95rem; }
.udsm-form input, .udsm-form select, .udsm-form textarea {
	font: inherit; padding: 13px 15px;
	border: 1px solid var(--wp--preset--color--noir, #000);
	border-radius: 14px; background: #fff; width: 100%;
}
.udsm-form textarea { min-height: 140px; }
.udsm-form .consentement {
	display: flex; gap: 10px; align-items: flex-start;
	font-size: .9rem; font-weight: 400;
}
.udsm-form .consentement input { width: auto; margin-top: 4px; }
.udsm-form .pot-de-miel { position: absolute; left: -9999px; }
.udsm-message { border-radius: 16px; padding: 18px 22px; margin-bottom: 24px; }
.udsm-message--ok { background: var(--wp--preset--color--eau, #DDEFE0); }
.udsm-message--erreur { background: var(--wp--preset--color--peche, #FFE3D2); }
.udsm-message h2 { margin: 0 0 8px; font-size: 1.4rem; }

/* --- Utilitaire d'accessibilité ---------------------------------------- */
.screen-reader-text {
	border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%);
	height: 1px; margin: -1px; overflow: hidden; padding: 0;
	position: absolute; width: 1px; word-wrap: normal !important;
}

/* --- Choix du parcours d'admission ------------------------------------ */
.udsm-admission__choix {
	border: 0; padding: 0; margin: 0 0 32px;
	display: grid; gap: 12px;
}
.udsm-admission__choix legend {
	font-weight: 500; padding: 0; margin-bottom: 12px;
}
.udsm-admission__option {
	display: flex; gap: 14px; align-items: flex-start; cursor: pointer;
	border: 1px solid var(--wp--preset--color--noir, #000);
	border-radius: 16px; padding: 16px 20px; background: #fff;
	transition: background .15s;
}
.udsm-admission__option:has(input:checked) {
	background: var(--wp--preset--color--lavande, #E1DFF6);
}
.udsm-admission__option input { margin-top: 4px; }
.udsm-admission__option strong { display: block; }
.udsm-admission__option .udsm-petit { display: block; margin-top: 2px; opacity: .8; }

/* --- Bouton « Déposer une demande d'admission » ------------------------
   La règle .udsm-coordonnees p { margin: 0 } l'emportait sur la marge du
   bouton, qui venait donc se coller au texte au-dessus ; et le bouton, en
   ligne, débordait de son paragraphe. */
.udsm-coordonnees p.udsm-cta-admission {
	margin-top: 26px;
}
.udsm-cta-admission .wp-element-button {
	display: inline-block;
	text-align: center;
}

/* --- Bouton d'inscription à un événement ------------------------------- */
.udsm-evenement-inscription {
	display: flex;
	justify-content: center;
	margin-top: 40px;
}

/* --- Fiche d'un document ---------------------------------------------- */
.udsm-document-fichier { margin-top: 28px; display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }

/* ------------------------------------------------------------------
   Page d'aide : recherche dans le guide, et assistant
   ------------------------------------------------------------------ */

.udsm-aide { margin-bottom: 48px; }

.udsm-aide-recherche label {
	display: block;
	font-weight: 500;
	margin-bottom: 6px;
}

.udsm-aide-recherche input[type="search"] {
	box-sizing: border-box;
	width: 100%;
	font: inherit;
	font-size: 17px;
	padding: 11px 14px;
	border: 1px solid var(--wp--preset--color--noir, #000);
	border-radius: 10px;
	background: var(--wp--preset--color--blanc, #fff);
}

.udsm-aide-pistes {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 12px 0 20px;
}

.udsm-aide-pistes button {
	font: inherit;
	font-size: 14px;
	padding: 6px 13px;
	border: 1px solid var(--wp--preset--color--sarcelle, #388A80);
	border-radius: 999px;
	background: transparent;
	color: inherit;
	cursor: pointer;
}

.udsm-aide-pistes button:hover {
	background: var(--wp--preset--color--eau, #DDEFE0);
}

.udsm-aide-section {
	border-top: 1px solid var(--wp--preset--color--peche, #FFE3D2);
	padding: 14px 0;
}

.udsm-aide-section summary {
	font-weight: 500;
	font-size: 17px;
	cursor: pointer;
	list-style: none;
}

.udsm-aide-section summary::-webkit-details-marker { display: none; }

.udsm-aide-section summary::before {
	content: "+";
	display: inline-block;
	width: 1.1em;
	color: var(--wp--preset--color--sarcelle, #388A80);
}

.udsm-aide-section[open] summary::before { content: "–"; }

.udsm-aide-corps {
	padding: 8px 0 0 1.1em;
	max-width: 68ch;
}

.udsm-aide-corps p { margin: 0 0 .6em; }

/* L'assistant */

.udsm-assistant {
	border: 1px solid var(--wp--preset--color--peche, #FFE3D2);
	border-radius: 14px;
	padding: 18px;
	background: var(--wp--preset--color--creme, #FDF7EB);
}

.udsm-assistant-fil {
	display: flex;
	flex-direction: column;
	gap: 16px;
	max-height: 460px;
	overflow-y: auto;
	margin-bottom: 16px;
}

.udsm-assistant-q {
	align-self: flex-end;
	max-width: 85%;
	min-width: 0;
	overflow-wrap: anywhere;
	background: var(--wp--preset--color--peche, #FFE3D2);
	border-radius: 14px 14px 4px 14px;
	padding: 9px 14px;
}

.udsm-assistant-r { max-width: 68ch; min-width: 0; }
.udsm-assistant-r p { margin: 0 0 .65em; }
.udsm-assistant-r ul,
.udsm-assistant-r ol { margin: 0 0 .65em; padding-left: 1.3em; }
.udsm-assistant-r :last-child { margin-bottom: 0; }

.udsm-assistant-attente { opacity: .6; }

.udsm-assistant-ennui {
	border-left: 3px solid var(--wp--preset--color--orange, #F29B3F);
	padding-left: 12px;
	max-width: 68ch;
}

.udsm-assistant-saisie {
	display: flex;
	gap: 8px;
	align-items: flex-end;
}

.udsm-assistant-saisie textarea {
	box-sizing: border-box;
	flex: 1 1 auto;
	min-width: 0;
	resize: none;
	font: inherit;
	font-size: 16px;
	padding: 11px 13px;
	border: 1px solid var(--wp--preset--color--noir, #000);
	border-radius: 10px;
	background: var(--wp--preset--color--blanc, #fff);
	max-height: 140px;
}

.udsm-assistant-saisie button { flex: none; }

@media (max-width: 600px) {
	.udsm-assistant { padding: 14px; }
	.udsm-assistant-fil { max-height: 56vh; }
}
