/*
 * Kit Asso : styles des composants (agenda, équipe, documents, FAQ…).
 * Toutes les couleurs, polices et formes viennent des variables globales Elementor,
 * donc chaque ambiance restyle automatiquement ces composants.
 */

:root {
	--kitasso-primaire: var(--couleur-primaire, #0E5A57);
	--kitasso-primaire-fonce: var(--couleur-primaire-fonce, #093F3D);
	--kitasso-primaire-clair: var(--couleur-primaire-clair, #E3F0EE);
	--kitasso-accent: var(--couleur-accent, #B8420F);
	--kitasso-sur-accent: var(--couleur-sur-accent, var(--couleur-texte-inverse, #FFFFFF));
	--kitasso-accent-texte: var(--couleur-accent-texte, var(--couleur-accent, #A93D0E));
	--kitasso-texte: var(--couleur-texte, #1F2A2E);
	--kitasso-texte-doux: var(--couleur-texte-doux, #4A5A5F);
	--kitasso-inverse: var(--couleur-texte-inverse, #FFFFFF);
	--kitasso-fond-alt: var(--couleur-fond-alt, #F2EDE6);
	--kitasso-surface: var(--couleur-surface, #FFFFFF);
	--kitasso-bordure: var(--couleur-bordure, #DDD5CA);
	--kitasso-rayon: var(--rayon, 12px);
	--kitasso-rayon-bouton: var(--rayon-bouton, 8px);
	--kitasso-titres: var(--police-titres, inherit);
	--kitasso-focus: var(--couleur-accent-texte, var(--couleur-accent, #B8420F));
}

/* --- Base du site : typographie et couleurs de l'ambiance --------------
 * Sélecteurs d'éléments (après le thème) : les styles et classes Elementor restent prioritaires. */

body {
	background-color: var(--couleur-fond, #FFFFFF);
	color: var(--couleur-texte, #1F2A2E);
	font-family: var(--police-texte), system-ui, -apple-system, "Segoe UI", sans-serif;
	font-size: var(--taille-texte, 1.125rem);
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4, h5, h6 {
	margin-block: 0 .5em;
	font-family: var(--police-titres), var(--police-texte), Georgia, serif;
	font-weight: var(--kitasso-graisse-titres, 600);
	letter-spacing: var(--kitasso-interlettrage-titres, 0);
	text-transform: var(--kitasso-casse-titres, none);
	line-height: 1.15;
	color: var(--couleur-texte, inherit);
	text-wrap: balance;
}
h1 { font-size: var(--taille-h1, 2.75rem); line-height: 1.05; }
h2 { font-size: var(--taille-h2, 2.25rem); }
h3 { font-size: var(--taille-h3, 1.75rem); }
h4 { font-size: var(--taille-h4, 1.25rem); }
h5, h6 { font-size: var(--taille-texte-grand, 1.125rem); }
p { margin-block: 0 1em; text-wrap: pretty; }
a { color: var(--kitasso-accent-texte); text-decoration-thickness: .08em; text-underline-offset: .18em; }
a:hover { color: var(--couleur-primaire, inherit); }
:focus-visible { outline: 3px solid var(--kitasso-focus); outline-offset: 2px; }
::selection { background: var(--couleur-accent-clair, #F4A261); color: var(--couleur-texte, #1F2A2E); }
img { max-width: 100%; height: auto; }
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}

/* --- Accessibilité ----------------------------------------------------- */

.kitasso-sr {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0 0 0 0);
	white-space: nowrap; border: 0;
}

.kitasso-evitement {
	position: absolute;
	top: .5rem; left: .5rem;
	z-index: 100000;
	padding: .75rem 1.25rem;
	background: var(--kitasso-texte);
	color: var(--kitasso-inverse);
	font-weight: 700;
	border-radius: var(--kitasso-rayon-bouton);
	transform: translateY(-200%);
}
.kitasso-evitement:focus { transform: none; color: var(--kitasso-inverse); }

/* Focus toujours visible (RGAA 10.7). */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 3px solid var(--kitasso-focus);
	outline-offset: 2px;
}
[tabindex="-1"]:focus { outline: none; }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
		scroll-behavior: auto !important;
	}
}

/* --- Éléments communs -------------------------------------------------- */

.kitasso-bouton {
	display: inline-flex; align-items: center; gap: .5em;
	padding: .85em 1.6em;
	background: var(--kitasso-accent);
	color: var(--kitasso-sur-accent);
	font-weight: 700;
	font-family: inherit;
	border: 0;
	cursor: pointer;
	text-decoration: none;
	border-radius: var(--kitasso-rayon-bouton);
	transition: background-color .2s;
}
.kitasso-bouton:hover, .kitasso-bouton:focus { background: var(--couleur-accent-fonce, #8F330C); color: var(--kitasso-sur-accent); }

.kitasso-vide { color: var(--kitasso-texte-doux); font-style: italic; }

.kitasso-icone { width: 1.25em; height: 1.25em; flex: none; }

/* --- Coordonnées, horaires, réseaux, chiffres -------------------------- */

.kitasso-coord { font-style: normal; display: grid; gap: .5em; }
.kitasso-coord > span { display: block; }

.kitasso-reseaux { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.kitasso-reseaux a { display: inline-flex; align-items: center; justify-content: center; color: inherit; }
.kitasso-reseaux--icones a { width: 2.75rem; height: 2.75rem; border-radius: 50%; border: 1px solid currentColor; transition: background-color .2s, color .2s; }
.kitasso-reseaux--icones a:hover { background: currentColor; }
.kitasso-reseaux--icones a:hover .kitasso-icone { color: var(--kitasso-surface); }

.kitasso-chiffres { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); gap: 2rem; }
.kitasso-chiffre { display: flex; flex-direction: column; gap: .25rem; }
.kitasso-chiffre__valeur { font-variant-numeric: tabular-nums; font-family: var(--kitasso-titres); font-size: clamp(2.5rem, 2rem + 2vw, 3.75rem); line-height: 1; font-weight: 700; color: var(--kitasso-primaire); }
.kitasso-chiffre__texte { color: var(--kitasso-texte-doux); }

.kitasso-carte iframe { display: block; border-radius: var(--kitasso-rayon); }
.kitasso-carte__lien { margin-top: .5rem; font-size: .9375em; }

/* --- Horaires ---------------------------------------------------------- */

.kitasso-horaires { display: grid; gap: 1rem; }
.kitasso-horaires-liste { margin: 0; display: grid; gap: .6rem; }
.kitasso-horaires-liste__ligne { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .25rem 1.5rem; padding-bottom: .6rem; border-bottom: 1px solid var(--kitasso-bordure); }
.kitasso-horaires-liste__ligne:last-child { border-bottom: 0; padding-bottom: 0; }
.kitasso-horaires-liste dt { font-weight: 600; }
.kitasso-horaires-liste dd { margin: 0; text-align: right; font-variant-numeric: tabular-nums; }
.kitasso-horaires-liste .is-ferme dd { color: var(--kitasso-texte-doux); }

.kitasso-semaine { width: 100%; margin: 0; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.kitasso-semaine th, .kitasso-semaine td { padding: .55rem .75rem; border: 0; border-bottom: 1px solid var(--kitasso-bordure); background: none; text-align: left; vertical-align: top; }
.kitasso-semaine td { text-align: right; }
.kitasso-semaine th { font-weight: 600; }
.kitasso-semaine tr:last-child th, .kitasso-semaine tr:last-child td { border-bottom: 0; }
.kitasso-semaine tr.is-ferme td { color: var(--kitasso-texte-doux); }
.kitasso-semaine tr.is-aujourdhui th, .kitasso-semaine tr.is-aujourdhui td { background: var(--kitasso-primaire-clair); color: var(--kitasso-primaire-fonce); }
.kitasso-semaine tr.is-aujourdhui th { border-radius: var(--kitasso-rayon) 0 0 var(--kitasso-rayon); }
.kitasso-semaine tr.is-aujourdhui td { border-radius: 0 var(--kitasso-rayon) var(--kitasso-rayon) 0; }
.kitasso-semaine__badge { font-weight: 400; font-size: .8125em; }

.kitasso-statut { display: inline-flex; align-items: center; gap: .6em; margin: 0; padding: .4em .9em; border-radius: 999px; background: var(--kitasso-fond-alt); color: var(--kitasso-texte); font-weight: 600; font-size: .9375rem; }
.kitasso-statut__pastille { width: .6em; height: .6em; border-radius: 50%; background: var(--kitasso-texte-doux); }
.kitasso-statut.is-ouvert .kitasso-statut__pastille { background: var(--couleur-succes, #1E7B3C); box-shadow: 0 0 0 .2em color-mix(in srgb, var(--couleur-succes, #1E7B3C) 25%, transparent); }
.kitasso-statut.is-ferme_bientot .kitasso-statut__pastille, .kitasso-statut.is-ouvre_bientot .kitasso-statut__pastille { background: #C98A00; }
.kitasso-statut.is-ferme .kitasso-statut__pastille { background: var(--couleur-erreur, #B42318); }

.kitasso-fermetures { list-style: none; margin: 0; padding: .9rem 1.1rem; display: grid; gap: .35rem; border-left: 4px solid var(--kitasso-accent); background: var(--kitasso-fond-alt); border-radius: 0 var(--kitasso-rayon) var(--kitasso-rayon) 0; font-size: .9375rem; }
.kitasso-horaires__note, .kitasso-horaires-resume, .kitasso-horaires-jour { margin: 0; }
.kitasso-horaires__note { color: var(--kitasso-texte-doux); font-size: .9375rem; }
.kitasso-horaires__rdv { margin: 0; font-weight: 600; }

/* --- Agenda : liste ---------------------------------------------------- */

.kitasso-evenements { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; }
.kitasso-evenement {
	position: relative;
	display: grid; grid-template-columns: auto 1fr; gap: 1.25rem; align-items: start;
	padding: 1.25rem;
	background: var(--kitasso-surface);
	border: 1px solid var(--kitasso-bordure);
	border-radius: var(--kitasso-rayon);
}
.kitasso-evenements--images .kitasso-evenement { grid-template-columns: auto 1fr auto; }
.kitasso-evenement__date {
	display: flex; flex-direction: column; align-items: center; justify-content: center;
	min-width: 4.25rem; padding: .6rem .5rem;
	background: var(--kitasso-primaire); color: var(--kitasso-inverse);
	border-radius: calc(var(--kitasso-rayon) * .75);
	line-height: 1;
}
.kitasso-evenement__jour { font-family: var(--kitasso-titres); font-size: 1.75rem; font-weight: 700; }
.kitasso-evenement__mois { font-size: .875rem; text-transform: uppercase; letter-spacing: .05em; margin-top: .25rem; }
.kitasso-evenement__titre { margin: 0 0 .35rem; font-size: 1.2rem; }
.kitasso-evenement__titre a { color: inherit; text-decoration: none; }
.kitasso-evenement__titre a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; } /* Toute la carte est cliquable. */
.kitasso-evenement__titre a:focus-visible { outline: none; }
.kitasso-evenement:focus-within { outline: 3px solid var(--kitasso-focus); outline-offset: 2px; }
.kitasso-evenement:hover { border-color: var(--kitasso-primaire); }
.kitasso-evenement__infos, .kitasso-evenement__recurrence { margin: 0; color: var(--kitasso-texte-doux); font-size: .9375rem; }
.kitasso-evenement__recurrence { font-style: italic; }
.kitasso-evenement__image img { width: 7rem; height: 5rem; object-fit: cover; border-radius: calc(var(--kitasso-rayon) * .75); }
@media (max-width: 600px) { .kitasso-evenement__image { display: none; } }

/* --- Agenda : filtres, statuts, catégories ------------------------------ */

.kitasso-filtres { list-style: none; margin: 0 0 1.25rem; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.kitasso-filtre {
	display: inline-flex; align-items: center; gap: .5em;
	padding: .45em 1em;
	border: 1px solid var(--kitasso-bordure); border-radius: 999px;
	background: var(--kitasso-surface); color: var(--kitasso-texte);
	font-size: .9375rem; font-weight: 500; text-decoration: none;
	transition: border-color .15s, background-color .15s;
}
.kitasso-filtre:hover { border-color: var(--kitasso-cat, var(--kitasso-primaire)); }
.kitasso-filtre[aria-current] { background: var(--kitasso-texte); border-color: var(--kitasso-texte); color: var(--kitasso-inverse); }
.kitasso-filtre__pastille { width: .65em; height: .65em; border-radius: 50%; background: var(--kitasso-cat, var(--kitasso-primaire)); }
[data-kitasso-agenda][aria-busy="true"] { opacity: .6; transition: opacity .2s; }

.kitasso-badge { display: inline-block; padding: .1em .6em; border-radius: 999px; font-size: .8125rem; font-weight: 700; line-height: 1.6; background: var(--kitasso-fond-alt); color: var(--kitasso-texte); }
.kitasso-badge--annule { background: color-mix(in srgb, var(--couleur-erreur, #B42318) 12%, white); color: var(--couleur-erreur, #B42318); }
.kitasso-badge--complet, .kitasso-badge--reporte { background: #FDF3D8; color: #7A4B00; }

.kitasso-evenement.has-couleur .kitasso-evenement__date { background: var(--kitasso-cat); }
.kitasso-evenement.is-annule .kitasso-evenement__titre a { text-decoration: line-through; text-decoration-thickness: 1px; }
.kitasso-evenement__etiquettes { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin: 0 0 .35rem; }
.kitasso-evenement__categorie { font-size: .875rem; font-weight: 600; color: var(--kitasso-cat, var(--kitasso-texte-doux)); }

/* --- Agenda : infos pratiques ------------------------------------------ */

.kitasso-infos { padding: 1.5rem; background: var(--kitasso-surface); border: 1px solid var(--kitasso-bordure); border-radius: var(--kitasso-rayon); display: grid; gap: 1.25rem; }
.kitasso-infos__alerte { margin: 0; padding: .75rem 1rem; border-radius: calc(var(--kitasso-rayon) * .75); font-weight: 600; background: #FDF3D8; color: #7A4B00; }
.kitasso-infos.is-annule .kitasso-infos__alerte { background: color-mix(in srgb, var(--couleur-erreur, #B42318) 12%, white); color: var(--couleur-erreur, #B42318); }
.kitasso-infos__liste { margin: 0; display: grid; gap: .9rem; }
.kitasso-infos__ligne { display: grid; gap: .15rem; }
.kitasso-infos__ligne dt { font-size: .875rem; font-weight: 700; color: var(--kitasso-texte-doux); }
.kitasso-infos__ligne dd { margin: 0; font-weight: 500; }
.kitasso-infos__actions { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.25rem; }
.kitasso-lien-ics { font-weight: 600; }

/* --- Agenda : calendrier mensuel -------------------------------------- */

.kitasso-cal__entete { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.kitasso-cal__titre { margin: 0; text-align: center; flex: 1; }
.kitasso-cal__nav {
	display: inline-flex; gap: .4em; align-items: center;
	padding: .5em 1em;
	border: 1px solid var(--kitasso-bordure);
	border-radius: var(--kitasso-rayon-bouton);
	color: var(--kitasso-texte); text-decoration: none;
}
.kitasso-cal__nav:hover { border-color: var(--kitasso-primaire); color: var(--kitasso-primaire); }

.kitasso-cal__grille { width: 100%; table-layout: fixed; border-collapse: collapse; margin: 0; }
.kitasso-cal__grille th { padding: .5rem; font-size: .875rem; text-align: center; color: var(--kitasso-texte-doux); border: 0; background: none; }
.kitasso-cal__grille abbr { text-decoration: none; }
.kitasso-cal__grille td { height: 7rem; padding: .4rem; vertical-align: top; border: 1px solid var(--kitasso-bordure); background: var(--kitasso-surface); }
.kitasso-cal__grille td.is-hors-mois { background: var(--kitasso-fond-alt); }
.kitasso-cal__grille td.is-hors-mois .kitasso-cal__num { opacity: .55; }
.kitasso-cal__num { display: inline-grid; place-items: center; width: 1.9rem; height: 1.9rem; font-size: .875rem; font-weight: 600; border-radius: 50%; }
.kitasso-cal__grille td.is-aujourdhui .kitasso-cal__num { background: var(--kitasso-accent); color: var(--kitasso-sur-accent); }
.kitasso-cal__evenements { list-style: none; margin: .25rem 0 0; padding: 0; display: grid; gap: .25rem; }
.kitasso-cal__evenements a {
	display: block; padding: .25rem .4rem;
	font-size: .8125rem; line-height: 1.3;
	background: var(--kitasso-primaire-clair); color: var(--kitasso-primaire-fonce);
	border-left: 3px solid var(--kitasso-primaire);
	border-radius: 4px; text-decoration: none;
	overflow-wrap: anywhere;
}
.kitasso-cal__evenements a[style] { background: color-mix(in srgb, var(--kitasso-cat) 14%, white); border-left-color: var(--kitasso-cat); color: var(--kitasso-texte); }
.kitasso-cal__evenements a:hover, .kitasso-cal__evenements a[style]:hover { background: var(--kitasso-cat, var(--kitasso-primaire)); color: var(--kitasso-inverse); }
.kitasso-cal__evenements a.is-annule { text-decoration: line-through; opacity: .75; }
.kitasso-cal__statut { font-weight: 700; margin-right: .25em; }
.kitasso-cal__heure { font-weight: 700; margin-right: .25em; }
.kitasso-cal__liste { display: none; }
.kitasso-cal__retour { margin-top: 1rem; text-align: center; }

@media (max-width: 767px) {
	.kitasso-cal__grille { display: none; }
	.kitasso-cal__liste { display: block; }
	.kitasso-cal__nav { padding: .5em .75em; font-size: .875rem; }
}

/* --- Équipe ------------------------------------------------------------ */

.kitasso-equipe { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(var(--kitasso-colonnes, auto-fill), minmax(min(13rem, 100%), 1fr)); gap: 2rem 1.5rem; }
.kitasso-membre { text-align: center; }
.kitasso-membre__photo { aspect-ratio: 1; margin: 0 auto 1rem; max-width: 12rem; border-radius: var(--forme-photo, 50%); overflow: hidden; background: var(--kitasso-primaire-clair); }
.kitasso-membre__photo img { width: 100%; height: 100%; object-fit: cover; }
.kitasso-membre__photo--vide { display: grid; place-items: center; font-family: var(--kitasso-titres); font-size: 3rem; color: var(--kitasso-primaire); }
.kitasso-membre__nom { margin: 0 0 .25rem; font-size: 1.15rem; }
.kitasso-membre__fonction { margin: 0; color: var(--kitasso-accent-texte); font-weight: 600; font-size: .9375rem; }
.kitasso-membre__bio { margin: .5rem 0 0; color: var(--kitasso-texte-doux); font-size: .9375rem; }
.kitasso-membre__liens { display: flex; justify-content: center; align-items: center; gap: 1rem; margin: .75rem 0 0; }

.kitasso-membre__depuis { margin: .25rem 0 0; font-size: .8125rem; color: var(--kitasso-texte-doux); }
.kitasso-pole + .kitasso-pole { margin-top: var(--espace-l, 3rem); }
.kitasso-pole__titre { margin: 0 0 1.5rem; }

/* --- Nos actions -------------------------------------------------------- */

.kitasso-actions { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(18rem, 100%), 1fr)); gap: 1.5rem; }
.kitasso-action { position: relative; display: flex; flex-direction: column; overflow: hidden; background: var(--kitasso-surface); border: 1px solid var(--kitasso-bordure); border-radius: var(--kitasso-rayon); transition: border-color .2s, box-shadow .2s; }
.kitasso-action:hover { border-color: var(--kitasso-primaire); box-shadow: 0 8px 24px rgba(0, 0, 0, .06); }
.kitasso-action:focus-within { outline: 3px solid var(--kitasso-focus); outline-offset: 2px; }
.kitasso-action__image { aspect-ratio: 16 / 10; background: var(--kitasso-primaire-clair); }
.kitasso-action__image img { width: 100%; height: 100%; object-fit: cover; }
.kitasso-action__corps { display: grid; gap: .5rem; padding: 1.25rem 1.25rem 1.5rem; }
.kitasso-action__etiquettes { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin: 0; }
.kitasso-action__etiquettes:empty { display: none; }
.kitasso-action__theme { font-size: .875rem; font-weight: 600; color: var(--kitasso-accent-texte); }
.kitasso-action__titre { margin: 0; font-size: 1.25rem; }
.kitasso-action__titre a { color: inherit; text-decoration: none; }
.kitasso-action__titre a::after { content: ""; position: absolute; inset: 0; } /* Toute la carte est cliquable. */
.kitasso-action__titre a:focus-visible { outline: none; }
.kitasso-action__resume { margin: 0; color: var(--kitasso-texte-doux); }
.kitasso-action.is-termine .kitasso-action__image img { filter: grayscale(.4); }

.kitasso-action-cta { margin: 0; }

/* --- Partenaires ------------------------------------------------------- */

.kitasso-partenaires { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr)); gap: 1.5rem; align-items: center; }
.kitasso-partenaire__logo { display: grid; place-items: center; min-height: 6rem; padding: 1rem; }
.kitasso-partenaire__logo img { max-height: 4.5rem; width: auto; object-fit: contain; filter: grayscale(1); opacity: .8; transition: filter .2s, opacity .2s; }
.kitasso-partenaire__logo a:hover img, .kitasso-partenaire__logo a:focus img { filter: none; opacity: 1; }
.kitasso-partenaire__nom { font-weight: 700; text-align: center; }
.kitasso-partenaires--cartes { grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr)); align-items: stretch; }
.kitasso-partenaires--cartes .kitasso-partenaire { padding: 1.5rem; background: var(--kitasso-surface); border: 1px solid var(--kitasso-bordure); border-radius: var(--kitasso-rayon); }
.kitasso-partenaire__titre { margin: 1rem 0 .5rem; font-size: 1.1rem; }

/* --- Documents --------------------------------------------------------- */

.kitasso-documents { list-style: none; margin: 0; padding: 0; display: grid; gap: .75rem; }
.kitasso-document { padding: 1rem 1.25rem 1rem 3.25rem; position: relative; background: var(--kitasso-surface); border: 1px solid var(--kitasso-bordure); border-radius: var(--kitasso-rayon); }
.kitasso-document::before { content: ""; position: absolute; left: 1.1rem; top: 1.1rem; width: 1.25rem; height: 1.5rem; border: 2px solid var(--kitasso-primaire); border-radius: 2px 8px 2px 2px; }
.kitasso-document a { font-weight: 600; }
.kitasso-document__meta { font-weight: 400; color: var(--kitasso-texte-doux); font-size: .875em; }
.kitasso-document__annee { display: inline-block; margin-left: .5rem; padding: 0 .5em; font-size: .8125rem; background: var(--kitasso-fond-alt); border-radius: 999px; }
.kitasso-document__desc { margin: .35rem 0 0; color: var(--kitasso-texte-doux); font-size: .9375rem; }

/* --- FAQ --------------------------------------------------------------- */

.kitasso-faq { display: grid; gap: .75rem; }
.kitasso-faq__item { background: var(--kitasso-surface); border: 1px solid var(--kitasso-bordure); border-radius: var(--kitasso-rayon); }
.kitasso-faq__question { cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1.1rem 1.25rem; font-weight: 600; font-size: 1.05rem; }
.kitasso-faq__question::-webkit-details-marker { display: none; }
.kitasso-faq__question::after { content: "+"; flex: none; display: grid; place-items: center; width: 1.75rem; height: 1.75rem; border-radius: 50%; background: var(--kitasso-primaire-clair); color: var(--kitasso-primaire-fonce); font-size: 1.25rem; line-height: 1; }
.kitasso-faq__item[open] .kitasso-faq__question::after { content: "−"; }
.kitasso-faq__reponse { padding: 0 1.25rem 1.1rem; color: var(--kitasso-texte-doux); }
.kitasso-faq__reponse > :last-child { margin-bottom: 0; }

/* --- Paiement ---------------------------------------------------------- */

.kitasso-paiement { display: grid; gap: 1rem; }
.kitasso-paiement__fiscal { padding: 1rem 1.25rem; background: var(--kitasso-primaire-clair); border-radius: var(--kitasso-rayon); margin: 0; }
.kitasso-paiement__secours { font-size: .9375rem; color: var(--kitasso-texte-doux); margin: 0; }
.kitasso-tarifs { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); gap: 1rem; }
.kitasso-tarif { position: relative; display: flex; flex-direction: column; gap: .25rem; padding: 1.5rem 1.25rem 1.25rem; background: var(--kitasso-surface); border: 1px solid var(--kitasso-bordure); border-radius: var(--kitasso-rayon); }
.kitasso-tarif.is-vedette { border: 2px solid var(--kitasso-primaire); }
.kitasso-tarif__badge { position: absolute; top: 0; left: 1.25rem; transform: translateY(-50%); padding: .15em .75em; font-size: .8125rem; font-weight: 700; background: var(--kitasso-primaire); color: var(--kitasso-inverse); border-radius: 999px; }
.kitasso-tarifs__nom { font-weight: 600; }
.kitasso-tarifs__prix { font-family: var(--kitasso-titres); font-size: 1.75rem; font-weight: 700; color: var(--kitasso-primaire); line-height: 1.2; }
.kitasso-tarifs__detail { color: var(--kitasso-texte-doux); font-size: .9375rem; }

/* --- Pages légales et plan du site ------------------------------------ */

.kitasso-legal h2 { margin-top: 2rem; }
.kitasso-plan ul ul { margin-top: .35rem; }
.kitasso-plan li { margin-bottom: .35rem; }

/* Images insérées dans les textes : sur petit écran, pas d'habillage (texte trop étroit). */
@media (max-width: 600px) {
	.alignleft, .alignright { float: none; display: block; margin-inline: auto; margin-bottom: 1rem; }
}

/* --- Formulaire de contact --------------------------------------------- */

.kitasso-contact { max-width: 46rem; container-type: inline-size; }
.kitasso-contact *, .kitasso-contact *::before, .kitasso-contact *::after { box-sizing: border-box; }
.kitasso-contact__intro, .kitasso-contact__rgpd, .kitasso-contact__aide { color: var(--kitasso-texte-doux); font-size: .9375rem; }
.kitasso-contact__intro { margin: 0 0 1.25rem; }
.kitasso-contact__pour { margin: 0 0 1rem; padding: .75rem 1rem; border-radius: var(--kitasso-rayon-bouton); background: var(--kitasso-primaire-clair); }
.kitasso-contact__grille { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem 1.5rem; }
@container (max-width: 34rem) {
	.kitasso-contact__grille { grid-template-columns: minmax(0, 1fr); }
}
.kitasso-contact__champ--message, .kitasso-contact__champ--objet { grid-column: 1 / -1; }
.kitasso-contact__champ label { display: block; margin-bottom: .375rem; font-weight: 600; }
.kitasso-contact__facultatif { font-weight: 400; color: var(--kitasso-texte-doux); }
.kitasso-contact__aide { margin: .375rem 0 0; font-size: .875rem; }
.kitasso-contact__champ input, .kitasso-contact__champ select, .kitasso-contact__champ textarea {
	width: 100%; min-height: 3rem; padding: .75rem .875rem;
	border: 2px solid var(--kitasso-bordure); border-radius: var(--kitasso-rayon-bouton);
	background: var(--kitasso-surface); color: var(--kitasso-texte); font: inherit;
}
.kitasso-contact__champ textarea { min-height: 10rem; resize: vertical; }
.kitasso-contact__champ input:focus, .kitasso-contact__champ select:focus, .kitasso-contact__champ textarea:focus { outline: 3px solid var(--kitasso-focus); outline-offset: 1px; border-color: var(--kitasso-texte); }
.kitasso-contact__champ [aria-invalid="true"] { border-color: #B3261E; }
.kitasso-contact__erreur { margin: .375rem 0 0; color: #B3261E; font-weight: 600; font-size: .9375rem; }
.kitasso-contact__erreur::before { content: "⚠ "; }
.kitasso-contact__erreur[hidden] { display: none; }
.kitasso-contact__alerte { margin: 0 0 1.25rem; padding: 1rem 1.25rem; border-left: 4px solid #B3261E; border-radius: var(--kitasso-rayon-bouton); background: #FDECEA; color: #5F1410; font-weight: 600; }
.kitasso-contact__alerte[hidden] { display: none; }
.kitasso-contact__alerte ul { margin: .5rem 0 0; padding-left: 1.25rem; font-weight: 400; }
.kitasso-contact__alerte a { color: inherit; }
.kitasso-contact__envoi { margin: 1.5rem 0 .75rem; }
.kitasso-contact__envoi .kitasso-bouton[aria-disabled="true"] { opacity: .7; cursor: progress; }
.kitasso-contact__piege { position: absolute !important; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.kitasso-contact__merci { display: flex; gap: .75rem; align-items: flex-start; margin-bottom: 1.5rem; padding: 1.25rem 1.5rem; border-left: 4px solid #1E7B34; border-radius: var(--kitasso-rayon-bouton); background: #E7F4EA; color: #133D1C; font-weight: 600; }
.kitasso-contact__merci p { margin: 0; }
.kitasso-contact__merci:focus { outline: 3px solid var(--kitasso-focus); outline-offset: 2px; }
@media (max-width: 600px) {
	.kitasso-contact__grille { grid-template-columns: minmax(0, 1fr); }
}

/* --- À la une (bandeau ou diaporama) ----------------------------------- */

.kitasso-une { position: relative; isolation: isolate; overflow: hidden; background: var(--couleur-primaire-fonce, #093F3D); color: var(--kitasso-inverse); }
.kitasso-une__diapo { position: relative; display: flex; min-height: clamp(26rem, 62vh, 42rem); }
.kitasso-une--grande .kitasso-une__diapo { min-height: clamp(30rem, 86vh, 56rem); }
.kitasso-une__diapo[hidden] { display: none; }
.kitasso-une__diapo.is-entree { animation: kitasso-une-apparition .6s ease both; }
@keyframes kitasso-une-apparition { from { opacity: 0; } to { opacity: 1; } }
.kitasso-une__image { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; max-width: none; object-fit: cover; }
.kitasso-une__diapo::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(0, 0, 0, .72) 0%, rgba(0, 0, 0, .45) 55%, rgba(0, 0, 0, .1) 100%); background: linear-gradient(90deg, color-mix(in srgb, var(--couleur-primaire-fonce) 90%, transparent) 0%, color-mix(in srgb, var(--couleur-primaire-fonce) 60%, transparent) 55%, color-mix(in srgb, var(--couleur-primaire-fonce) 10%, transparent) 100%); }
.kitasso-une__diapo.is-centre::before { background: rgba(0, 0, 0, .55); background: color-mix(in srgb, var(--couleur-primaire-fonce) 68%, transparent); }
.kitasso-une__diapo.is-carte::before { background: linear-gradient(0deg, rgba(0, 0, 0, .3), transparent 60%); }
.kitasso-une__diapo.is-sans-image::before { background: none; }
.kitasso-une__contenu { display: flex; align-items: center; width: 100%; max-width: var(--largeur-contenu, 1240px); margin-inline: auto; padding: clamp(3rem, 2rem + 4vw, 6rem) var(--marge-laterale, 1.5rem); }
.kitasso-une.is-diaporama .kitasso-une__contenu { padding-bottom: clamp(6rem, 5rem + 3vw, 8rem); }
.kitasso-une__diapo.is-centre .kitasso-une__contenu { justify-content: center; text-align: center; }
.kitasso-une__texte { display: grid; gap: 1rem; max-width: 40rem; }
.kitasso-une__diapo.is-centre .kitasso-une__texte { justify-items: center; max-width: 48rem; }
.kitasso-une__diapo.is-carte .kitasso-une__texte { padding: clamp(1.5rem, 1rem + 2vw, 2.75rem); background: var(--kitasso-surface); color: var(--kitasso-texte); border-radius: var(--kitasso-rayon); box-shadow: var(--kitasso-ombre, 0 12px 40px rgba(0, 0, 0, .18)); }
.kitasso-une__surtitre { margin: 0; font-size: .9375rem; font-weight: 700; }
.kitasso-une__diapo.is-carte .kitasso-une__surtitre { color: var(--kitasso-accent-texte); }
.kitasso-une__titre { margin: 0; font-size: var(--taille-h1, 3rem); line-height: 1.05; color: inherit; }
.kitasso-une--normale .kitasso-une__titre { font-size: clamp(2.25rem, 1.5rem + 3vw, 3.75rem); }
.kitasso-une__diapo.is-carte .kitasso-une__titre { color: var(--couleur-primaire-fonce, inherit); }
.kitasso-une__chapo { margin: 0; font-size: var(--taille-texte-grand, 1.25rem); line-height: 1.5; }
.kitasso-une__boutons { display: flex; flex-wrap: wrap; gap: .75rem; margin: .5rem 0 0; }
.kitasso-une__diapo.is-centre .kitasso-une__boutons { justify-content: center; }
.kitasso-bouton--secondaire, .elementor a.kitasso-bouton--secondaire { background: transparent; color: inherit; box-shadow: inset 0 0 0 2px currentColor; }
.kitasso-bouton--secondaire:hover, .kitasso-bouton--secondaire:focus { background: var(--kitasso-surface); color: var(--kitasso-primaire-fonce); }
.kitasso-une__diapo.is-carte .kitasso-bouton--secondaire { color: var(--kitasso-primaire); }
.kitasso-une__diapo.is-carte .kitasso-bouton--secondaire:hover, .kitasso-une__diapo.is-carte .kitasso-bouton--secondaire:focus { background: var(--kitasso-primaire); color: var(--kitasso-inverse); }
.kitasso-une :focus-visible { outline: 3px solid #FFFFFF; outline-offset: 3px; box-shadow: 0 0 0 6px rgba(0, 0, 0, .55); }
.kitasso-une__diapo.is-carte .kitasso-une__texte :focus-visible { outline-color: var(--kitasso-focus); box-shadow: none; }

.kitasso-une__commandes { position: absolute; inset-inline-end: var(--marge-laterale, 1.5rem); inset-block-end: 1.25rem; display: flex; align-items: center; gap: .25rem; padding: .25rem .5rem; border-radius: 999px; background: rgba(0, 0, 0, .55); color: #FFFFFF; }
.kitasso-une__bouton { display: inline-grid; place-items: center; min-width: 2.75rem; height: 2.75rem; padding: 0 .5rem; border: 0; border-radius: 999px; background: transparent; color: inherit; font: inherit; font-size: 1.75rem; line-height: 1; cursor: pointer; }
.kitasso-une__bouton:hover { background: rgba(255, 255, 255, .18); }
.kitasso-une__pause { font-size: .875rem; font-weight: 700; padding: 0 .9rem; }
.kitasso-une__points { display: flex; gap: 0; margin: 0; padding: 0; list-style: none; }
.kitasso-une__point { display: grid; place-items: center; width: 2.75rem; height: 2.75rem; padding: 0; border: 0; background: transparent; cursor: pointer; }
.kitasso-une__point::before { content: ""; width: .75rem; height: .75rem; border: 2px solid #FFFFFF; border-radius: 50%; }
.kitasso-une__point[aria-current]::before { background: #FFFFFF; }
@media (max-width: 600px) {
	.kitasso-une__commandes { inset-inline: 50% auto; transform: translateX(-50%); }
	.kitasso-une__texte { max-width: none; }
}

/* --- En-têtes et pieds de page ------------------------------------------
 * Menus Elementor (widget « Menu ») et blocs Kit Asso : couleurs héritées de la section
 * (claire ou sombre), menu mobile et sous-menus sur fond de carte. */

.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item { color: inherit; font-family: var(--police-texte), sans-serif; font-weight: 600; font-size: 1rem; }
.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item:hover,
.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item:focus,
.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item.elementor-item-active { color: inherit; }
.elementor-widget-nav-menu .elementor-nav-menu--main:not(.e--pointer-framed) .elementor-item::before,
.elementor-widget-nav-menu .elementor-nav-menu--main:not(.e--pointer-framed) .elementor-item::after { background-color: var(--couleur-accent, currentColor); }
.elementor-widget-nav-menu .elementor-nav-menu--main .sub-menu { background: var(--kitasso-surface); border: 1px solid var(--kitasso-bordure); border-radius: var(--kitasso-rayon); box-shadow: var(--kitasso-ombre, 0 8px 24px rgba(0, 0, 0, .1)); }
.elementor-widget-nav-menu .elementor-nav-menu--main .sub-menu a { color: var(--kitasso-texte); }
.elementor-widget-nav-menu .elementor-nav-menu--main .sub-menu a:hover, .elementor-widget-nav-menu .elementor-nav-menu--main .sub-menu a:focus { background: var(--kitasso-primaire-clair); color: var(--kitasso-primaire-fonce); }
.elementor-widget-nav-menu .elementor-menu-toggle { color: inherit; background: transparent; border: 2px solid currentColor; border-radius: var(--kitasso-rayon-bouton); }
.elementor-widget-nav-menu .elementor-nav-menu--dropdown { background: var(--kitasso-surface); border: 1px solid var(--kitasso-bordure); border-radius: var(--kitasso-rayon); }
.elementor-widget-nav-menu .elementor-nav-menu--dropdown a { color: var(--kitasso-texte); font-weight: 600; }
.elementor-widget-nav-menu .elementor-nav-menu--dropdown a:hover, .elementor-widget-nav-menu .elementor-nav-menu--dropdown a:focus, .elementor-widget-nav-menu .elementor-nav-menu--dropdown a.elementor-item-active { background: var(--kitasso-primaire-clair); color: var(--kitasso-primaire-fonce); }
.elementor-widget-nav-menu .elementor-nav-menu--layout-vertical .elementor-item { padding-inline: 0; font-weight: 500; }

.kitasso-bloc .kitasso-coord a, .kitasso-bloc .kitasso-horaires a, .kitasso-bloc .kitasso-plan a { color: inherit; }
.kitasso-bloc--logo .kitasso-logo { color: inherit; text-decoration: none; }
.kitasso-bloc--logo .kitasso-logo__texte { font-family: var(--police-titres), serif; font-weight: var(--kitasso-graisse-titres, 700); font-size: 1.375rem; line-height: 1.1; }
.kitasso-bloc--logo .kitasso-logo__image { display: block; max-height: 4rem; width: auto; }

/* Témoignages -------------------------------------------------------------
 * Guillemets français ajoutés en CSS (le texte est saisi sans guillemets). */

.kitasso-temoignages { list-style: none; margin: 0; padding: 0; }
.kitasso-temoignages > li { margin: 0; }
.kitasso-temoignage { margin: 0; display: flex; flex-direction: column; gap: 1.25rem; height: 100%; }
.kitasso-temoignage__citation { margin: 0; padding: 0; border: 0; font-size: 1.0625rem; line-height: 1.6; color: var(--kitasso-texte); quotes: "«\00a0" "\00a0»"; }
.kitasso-temoignage__citation p { margin: 0 0 .75em; }
.kitasso-temoignage__citation p:last-child { margin-bottom: 0; }
.kitasso-temoignage__citation p:first-child::before { content: open-quote; }
.kitasso-temoignage__citation p:last-child::after { content: close-quote; }
.kitasso-temoignage__auteur { display: flex; align-items: center; gap: .75rem; margin-top: auto; }
.kitasso-temoignage__photo { flex: none; width: 3rem; height: 3rem; border-radius: 50%; object-fit: cover; }
.kitasso-temoignage__initiales { display: inline-grid; place-items: center; background: var(--kitasso-primaire-clair); color: var(--kitasso-primaire-fonce); font-weight: 700; font-size: .95rem; letter-spacing: .02em; }
.kitasso-temoignage__identite { display: grid; min-width: 0; }
.kitasso-temoignage__nom { font-weight: 700; }
.kitasso-temoignage__qualite { color: var(--kitasso-texte-doux); font-size: .9375rem; }

/* Cartes : grille régulière */
.kitasso-temoignages--cartes { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 18rem), 1fr)); gap: 1.5rem; }
.kitasso-temoignages--cartes .kitasso-temoignage { padding: 1.75rem; background: var(--kitasso-surface); border: 1px solid var(--kitasso-bordure); border-radius: var(--kitasso-rayon); box-shadow: var(--kitasso-ombre, none); }

/* Mur : colonnes de hauteurs libres, fonds alternés */
.kitasso-temoignages--mur { columns: 3 17rem; column-gap: 1.25rem; }
.kitasso-temoignages--mur > li { break-inside: avoid; margin-bottom: 1.25rem; }
.kitasso-temoignages--mur .kitasso-temoignage { padding: 1.5rem; border-radius: var(--kitasso-rayon); background: var(--kitasso-surface); border: 1px solid var(--kitasso-bordure); }
.kitasso-temoignages--mur > li:nth-child(3n+2) .kitasso-temoignage { background: var(--kitasso-primaire-clair); border-color: transparent; }
.kitasso-temoignages--mur > li:nth-child(3n+2) .kitasso-temoignage__initiales { background: var(--kitasso-surface); }
.kitasso-temoignages--mur > li:nth-child(3n) .kitasso-temoignage { background: var(--kitasso-fond-alt, var(--kitasso-surface)); }
.kitasso-temoignages--mur > li:nth-child(4n+1) .kitasso-temoignage__citation { font-size: 1.1875rem; }

/* Grande : une citation à la fois, en caractères de titre */
.kitasso-temoignages--grande { display: grid; gap: 1.5rem; max-width: 48rem; }
.kitasso-temoignages--grande .kitasso-temoignage__citation,
.kitasso-temoignage--grand .kitasso-temoignage__citation { font-family: var(--kitasso-titres, inherit); font-size: clamp(1.3rem, 1rem + 1.4vw, 1.9rem); line-height: 1.35; text-wrap: pretty; }
.kitasso-temoignages--grande .kitasso-temoignage__photo { width: 3.5rem; height: 3.5rem; }
.kitasso-temoignages__diapo[hidden] { display: none; }
.kitasso-temoignages__nav { display: flex; align-items: center; gap: .75rem; }
.kitasso-temoignages__bouton {
	display: inline-grid; place-items: center; width: 2.75rem; height: 2.75rem; margin: 0; padding: 0;
	border: 1.5px solid currentColor; border-radius: 50%; background: transparent; color: var(--kitasso-texte); cursor: pointer;
}
.kitasso-temoignages__bouton:hover { background: var(--kitasso-texte); color: var(--kitasso-surface); }
.kitasso-temoignages__bouton:focus-visible { outline: 3px solid var(--kitasso-focus); outline-offset: 2px; }
.kitasso-temoignages__position { min-width: 4.5em; text-align: center; color: var(--kitasso-texte-doux); font-variant-numeric: tabular-nums; white-space: nowrap; }

/* --- Sections qui se suivent sur le même fond : un seul espace entre elles, pas deux --- */
.elementor .ka-section:not(.ka-section-alt, .ka-section-teinte, .ka-section-sombre) + .ka-section:not(.ka-section-alt, .ka-section-teinte, .ka-section-sombre),
.elementor .ka-section-alt + .ka-section-alt,
.elementor .ka-section-teinte + .ka-section-teinte,
.elementor .ka-section-sombre + .ka-section-sombre { padding-top: 0; }

/* =========================================================================
 * Galeries photo (inc/galeries.php, assets/galerie.js)
 * ====================================================================== */

.kitasso-galerie { --kp-gap: .75rem; display: flex; flex-direction: column; gap: clamp(1.25rem, 1rem + 1vw, 2rem); min-width: 0; }
.kitasso-galerie-bloc { display: flex; flex-direction: column; gap: .75rem; min-width: 0; }
.kitasso-galerie__titre { margin: 0; font-size: var(--taille-h4, 1.25rem); }
.kitasso-galerie__description { margin: -.25rem 0 .25rem; max-width: 68ch; color: var(--kitasso-texte-doux); }
.kitasso-galerie__section { display: flex; flex-direction: column; gap: 1.25rem; }
.kitasso-galerie__section + .kitasso-galerie__section { padding-top: clamp(1.5rem, 1rem + 2vw, 2.5rem); border-top: 1px solid var(--kitasso-bordure); }
.kitasso-galerie__categorie { margin: 0; }
.kitasso-galerie__section .kitasso-galerie-bloc + .kitasso-galerie-bloc { margin-top: 1rem; }
.kitasso-galerie__plus { margin: .5rem 0 0; text-align: center; }
.kitasso-galerie__plus[hidden] { display: none; }

/* Photos : réglages communs */
.kitasso-photos { --kp-gap: .75rem; --kp-ratio: 4 / 3; --kp-hauteur: 14rem; --kp-rayon: calc(var(--kitasso-rayon) * .6); list-style: none; margin: 0; padding: 0; min-width: 0; }
.kitasso-photos--aucun { --kp-gap: 0px; --kp-rayon: 0px; }
.kitasso-photos--serre { --kp-gap: .375rem; }
.kitasso-photos--aere { --kp-gap: 1.25rem; }
.kitasso-photos--ratio-carre { --kp-ratio: 1; }
.kitasso-photos--ratio-large { --kp-ratio: 16 / 9; }
.kitasso-photos--ratio-portrait { --kp-ratio: 3 / 4; }
.kitasso-photos--hauteur-petite { --kp-hauteur: min(10rem, 38vw); }
.kitasso-photos--hauteur-moyenne { --kp-hauteur: min(14rem, 50vw); }
.kitasso-photos--hauteur-grande { --kp-hauteur: min(19rem, 62vw); }
.kitasso-photo { margin: 0; min-width: 0; }
.kitasso-photo[hidden], .kitasso-photo[data-kitasso-masque], .kitasso-album[data-kitasso-masque] { display: none !important; }
.kitasso-photo__cadre { position: relative; margin: 0; height: 100%; display: flex; flex-direction: column; gap: .4rem; }
.kitasso-photo__lien { position: relative; display: block; flex: 1 1 auto; min-height: 0; overflow: hidden; border-radius: var(--kp-rayon); background: var(--kitasso-fond-alt); cursor: zoom-in; }
.kitasso-photo__cadre > .kitasso-photo__image { border-radius: var(--kp-rayon); background: var(--kitasso-fond-alt); }
.kitasso-photo__image { display: block; width: 100%; height: auto; }
.kitasso-photo__lien .kitasso-photo__image { transition: transform .5s cubic-bezier(.2, .7, .2, 1); }
.kitasso-photo__lien:hover .kitasso-photo__image { transform: scale(1.035); }
.kitasso-photo__lien:focus-visible { outline: 3px solid var(--kitasso-focus); outline-offset: 2px; }
.kitasso-photos--aucun .kitasso-photo__lien:focus-visible { outline-offset: -3px; box-shadow: inset 0 0 0 5px var(--kitasso-surface); }
@media (prefers-reduced-motion: reduce) { .kitasso-photo__lien .kitasso-photo__image { transition: none; } .kitasso-photo__lien:hover .kitasso-photo__image { transform: none; } }

/* Légendes */
.kitasso-photo__legende { font-size: var(--taille-texte-petit, .9375rem); line-height: 1.4; color: var(--kitasso-texte-doux); }
.kitasso-photos--legendes-dessus .kitasso-photo__legende {
	position: absolute; left: 0; right: 0; bottom: 0; z-index: 1; padding: 2.25rem .85rem .7rem; pointer-events: none;
	color: #fff; background: linear-gradient(to top, rgba(0, 0, 0, .72), rgba(0, 0, 0, 0)); border-radius: 0 0 var(--kp-rayon) var(--kp-rayon);
	text-shadow: 0 1px 2px rgba(0, 0, 0, .4);
}

/* Grille : vignettes de même forme, au plus N colonnes */
.kitasso-photos--grille, .kitasso-photos--mosaique {
	display: grid; gap: var(--kp-gap);
	grid-template-columns: repeat(auto-fill, minmax(max(9.5rem, calc((100% - (var(--kp-colonnes) - 1) * var(--kp-gap)) / var(--kp-colonnes))), 1fr));
}
.kitasso-photos--grille .kitasso-photo__lien,
.kitasso-photos--grille .kitasso-photo__cadre > .kitasso-photo__image,
.kitasso-photos--mosaique .kitasso-photo__lien,
.kitasso-photos--mosaique .kitasso-photo__cadre > .kitasso-photo__image { aspect-ratio: var(--kp-ratio); flex: 0 0 auto; }
.kitasso-photos--grille .kitasso-photo__image,
.kitasso-photos--mosaique .kitasso-photo__image,
.kitasso-photos--bande .kitasso-photo__image { width: 100%; height: 100%; object-fit: cover; }
.kitasso-photos--grille .kitasso-photo__lien .kitasso-photo__image,
.kitasso-photos--mosaique .kitasso-photo__lien .kitasso-photo__image,
.kitasso-photos--bande .kitasso-photo__lien .kitasso-photo__image { position: absolute; inset: 0; }

/* Mosaïque : une grande photo (2 × 2) toutes les sept */
.kitasso-photos--mosaique { grid-auto-flow: dense; grid-template-columns: repeat(auto-fill, minmax(max(8rem, calc((100% - (var(--kp-colonnes) - 1) * var(--kp-gap)) / var(--kp-colonnes))), 1fr)); }
.kitasso-photos--mosaique > .kitasso-photo:nth-child(7n + 1) { grid-column: span 2; grid-row: span 2; }
.kitasso-photos--mosaique > .kitasso-photo:nth-child(7n + 1) .kitasso-photo__lien,
.kitasso-photos--mosaique > .kitasso-photo:nth-child(7n + 1) .kitasso-photo__cadre > .kitasso-photo__image { aspect-ratio: auto; flex: 1 1 auto; }
.kitasso-photos--mosaique > .kitasso-photo:nth-child(7n + 1) .kitasso-photo__lien { min-height: 12rem; }
.kitasso-photos--mosaique > .kitasso-photo:nth-child(7n + 1) .kitasso-photo__cadre > .kitasso-photo__image { position: absolute; inset: 0; }
/* Deux colonnes, ou trop étroit : la grande photo occupe toute la largeur, sur une seule rangée. */
.kitasso-photos--mosaique.kitasso-photos--col-2 > .kitasso-photo:nth-child(7n + 1) { grid-row: auto; }
.kitasso-photos--mosaique.kitasso-photos--col-2 > .kitasso-photo:nth-child(7n + 1) .kitasso-photo__lien { aspect-ratio: 2 / 1; }
.kitasso-galerie-photo { container-type: inline-size; }
@container (max-width: 25rem) {
	.kitasso-photos--mosaique > .kitasso-photo:nth-child(7n + 1) { grid-column: auto; grid-row: auto; }
	.kitasso-photos--mosaique > .kitasso-photo:nth-child(7n + 1) .kitasso-photo__lien,
	.kitasso-photos--mosaique > .kitasso-photo:nth-child(7n + 1) .kitasso-photo__cadre > .kitasso-photo__image { aspect-ratio: var(--kp-ratio); min-height: 0; }
	.kitasso-photos--mosaique > .kitasso-photo:nth-child(7n + 1) .kitasso-photo__cadre > .kitasso-photo__image { position: static; }
}

/* Maçonnerie : proportions d'origine, en colonnes */
.kitasso-photos--maconnerie { columns: var(--kp-colonnes) 12.5rem; column-gap: var(--kp-gap); }
.kitasso-photos--maconnerie > .kitasso-photo { break-inside: avoid; margin-bottom: var(--kp-gap); }
.kitasso-photos--maconnerie .kitasso-photo__image { aspect-ratio: var(--kp-l) / var(--kp-h); object-fit: cover; }

/* Rangées : lignes de même hauteur, chaque photo entière */
.kitasso-photos--rangees { display: flex; flex-wrap: wrap; align-items: flex-start; gap: var(--kp-gap); }
.kitasso-photos--rangees::after { content: ""; flex: 999 1 0; }
.kitasso-photos--rangees > .kitasso-photo { flex-grow: calc(var(--kp-l) / var(--kp-h)); flex-shrink: 1; flex-basis: calc(var(--kp-hauteur) * var(--kp-l) / var(--kp-h)); max-width: 100%; }
.kitasso-photos--rangees .kitasso-photo__image { aspect-ratio: var(--kp-l) / var(--kp-h); object-fit: cover; height: auto; }

/* Bande : une rangée qui défile */
.kitasso-bande { display: flex; flex-direction: column; gap: .75rem; min-width: 0; }
.kitasso-photos--bande {
	display: flex; gap: var(--kp-gap); overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory;
	scrollbar-width: thin; padding-bottom: .35rem; border-radius: var(--kp-rayon);
}
.kitasso-photos--bande:focus-visible { outline: 3px solid var(--kitasso-focus); outline-offset: 3px; }
.kitasso-photos--bande > .kitasso-photo { flex: 0 0 auto; width: min(calc(var(--kp-hauteur) * var(--kp-l) / var(--kp-h)), 85%); scroll-snap-align: start; }
.kitasso-photos--bande .kitasso-photo__lien,
.kitasso-photos--bande .kitasso-photo__cadre > .kitasso-photo__image { height: var(--kp-hauteur); flex: 0 0 auto; }
.kitasso-bande__nav { display: flex; justify-content: flex-end; gap: .5rem; }
.kitasso-bande.is-immobile .kitasso-bande__nav { display: none; }
.kitasso-bande__bouton {
	display: inline-grid; place-items: center; width: 2.75rem; height: 2.75rem; margin: 0; padding: 0;
	border: 1.5px solid currentColor; border-radius: 50%; background: transparent; color: var(--kitasso-texte); cursor: pointer;
}
.kitasso-bande__bouton:hover:not(:disabled) { background: var(--kitasso-texte); color: var(--kitasso-surface); }
.kitasso-bande__bouton:disabled { opacity: .35; cursor: default; }
.kitasso-bande__bouton:focus-visible { outline: 3px solid var(--kitasso-focus); outline-offset: 2px; }

/* Filtres */
.kitasso-filtres { display: flex; flex-wrap: wrap; gap: .5rem; }
.kitasso-filtre {
	margin: 0; padding: .55rem 1rem; min-height: 2.75rem; border: 1.5px solid var(--kitasso-bordure); border-radius: 999px;
	background: var(--kitasso-surface); color: var(--kitasso-texte); font: inherit; font-size: var(--taille-texte-petit, .9375rem); font-weight: 500;
	line-height: 1.2; white-space: nowrap; cursor: pointer; transition: background-color .15s, border-color .15s, color .15s;
}
.kitasso-filtre:hover { border-color: var(--kitasso-primaire); }
.kitasso-filtre[aria-pressed="true"] { background: var(--kitasso-primaire); border-color: var(--kitasso-primaire); color: var(--kitasso-inverse); }
.kitasso-filtre:focus-visible { outline: 3px solid var(--kitasso-focus); outline-offset: 2px; }

/* Albums : une pile de tirages par galerie */
.kitasso-albums {
	list-style: none; margin: 0; padding: 0; display: grid; gap: clamp(1.5rem, 1rem + 1.5vw, 2.25rem) clamp(1rem, .75rem + 1vw, 1.75rem);
	grid-template-columns: repeat(auto-fill, minmax(min(15rem, 100%), 1fr));
}
.kitasso-album { position: relative; display: flex; flex-direction: column; gap: .9rem; cursor: pointer; min-width: 0; }
.kitasso-album__couverture {
	position: relative; aspect-ratio: 4 / 3; margin: 0 .7rem 0 0; border-radius: calc(var(--kitasso-rayon) * .6);
	box-shadow: .35rem -.35rem 0 -1px var(--kitasso-surface), .35rem -.35rem 0 0 var(--kitasso-bordure), .7rem -.7rem 0 -1px var(--kitasso-surface), .7rem -.7rem 0 0 var(--kitasso-bordure);
	margin-top: .7rem; background: var(--kitasso-fond-alt);
}
.kitasso-album__couverture img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; border-radius: inherit; transition: transform .35s cubic-bezier(.2, .7, .2, 1); }
.kitasso-album:hover .kitasso-album__couverture img { transform: translate(-.2rem, .2rem); }
@media (prefers-reduced-motion: reduce) { .kitasso-album__couverture img { transition: none; } .kitasso-album:hover .kitasso-album__couverture img { transform: none; } }
.kitasso-album__texte { display: flex; flex-direction: column; gap: .3rem; }
.kitasso-album__titre { margin: 0; font-size: var(--taille-h4, 1.25rem); line-height: 1.25; }
.kitasso-album__bouton { all: unset; cursor: pointer; color: inherit; font: inherit; }
.kitasso-album__bouton:hover { text-decoration: underline; text-underline-offset: .2em; }
.kitasso-album__bouton:focus-visible { outline: 3px solid var(--kitasso-focus); outline-offset: 3px; border-radius: 2px; }
.kitasso-album__meta { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem .75rem; margin: 0; color: var(--kitasso-texte-doux); font-size: var(--taille-texte-petit, .9375rem); }
.kitasso-album__categorie { padding: .15rem .6rem; border-radius: 999px; background: var(--kitasso-primaire-clair); color: var(--kitasso-primaire-fonce); font-weight: 500; white-space: nowrap; }
.kitasso-album__description { margin: 0; color: var(--kitasso-texte-doux); font-size: var(--taille-texte-petit, .9375rem); }

/* Visionneuse */
html.kitasso-visionneuse-ouverte { overflow: hidden; }
.kitasso-visionneuse {
	--kv-fond: color-mix(in srgb, var(--kitasso-primaire-fonce) 22%, #070808);
	position: fixed; inset: 0; z-index: 100000; display: grid; grid-template-rows: auto minmax(0, 1fr);
	background: var(--kv-fond); color: #fff; opacity: 0; transition: opacity .2s ease-out;
	font-family: var(--police-texte, system-ui), system-ui, sans-serif;
}
.kitasso-visionneuse[hidden] { display: none; }
.kitasso-visionneuse.is-ouverte { opacity: 1; }
.kitasso-visionneuse.is-sans-animation { transition: none; }
.kitasso-visionneuse__haut { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .75rem clamp(.75rem, 2vw, 1.5rem); }
.kitasso-visionneuse__titre { margin: 0; min-width: 0; font-size: .9375rem; line-height: 1.3; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kitasso-visionneuse__compteur { margin-left: .5rem; color: rgba(255, 255, 255, .7); font-variant-numeric: tabular-nums; }
.kitasso-visionneuse__scene { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: clamp(.25rem, 1.5vw, 1.25rem); padding: 0 clamp(.5rem, 2vw, 1.5rem) clamp(.75rem, 2vw, 1.5rem); min-height: 0; touch-action: pan-y pinch-zoom; }
.kitasso-visionneuse__figure { margin: 0; height: 100%; min-height: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .75rem; }
.kitasso-visionneuse__image { display: block; max-width: 100%; max-height: calc(100% - 2.5rem); width: auto; height: auto; object-fit: contain; border-radius: 4px; opacity: 0; transition: opacity .25s ease-out; }
.kitasso-visionneuse__image.is-visible { opacity: 1; }
.kitasso-visionneuse.is-sans-animation .kitasso-visionneuse__image { transition: none; }
.kitasso-visionneuse__legende { max-width: 70ch; margin: 0; text-align: center; font-size: .9375rem; line-height: 1.45; color: rgba(255, 255, 255, .88); }
.kitasso-visionneuse__legende[hidden] { display: none; }
.kitasso-visionneuse__bouton {
	display: inline-grid; place-items: center; width: 3rem; height: 3rem; margin: 0; padding: 0; flex: 0 0 auto;
	border: 0; border-radius: 50%; background: rgba(255, 255, 255, .1); color: #fff; cursor: pointer; transition: background-color .15s;
}
.kitasso-visionneuse__bouton:hover { background: rgba(255, 255, 255, .22); }
.kitasso-visionneuse__bouton:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }
.kitasso-visionneuse__bouton[hidden] { display: none; }
@media (max-width: 640px) {
	.kitasso-visionneuse__scene { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-rows: minmax(0, 1fr) auto; }
	.kitasso-visionneuse__figure { grid-column: 1 / -1; grid-row: 1; }
	.kitasso-visionneuse__prec { grid-row: 2; grid-column: 1; justify-self: start; }
	.kitasso-visionneuse__suiv { grid-row: 2; grid-column: 2; justify-self: end; }
}
