/**
 * Campus - Accordéon (single formation + module BB).
 * Markup partagé : .formation-accordions / .formation-accordion*
 */

.formation-accordions {
	padding-block: 0 56px;
	/*background: var(--color-background, #fdfcf7);*/
	overflow-x: clip;
}

.formation-accordion {
	position: relative;
	padding: 32px 0;
	border-top: none;
}

.formation-accordion::before {
	content: '';
	position: absolute;
	top: 0;
	left: calc(50% - 50vw);
	width: 100vw;
	border-top: 1px solid var(--color-border, #d9d4cc);
	pointer-events: none;
}

/* Bord bas uniquement sur le single formation (pas module / rangée BB). */
.formation-accordions--formation .formation-accordion:last-child::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: calc(50% - 50vw);
	width: 100vw;
	border-bottom: 1px solid var(--color-border, #d9d4cc);
	pointer-events: none;
}

.formation-accordion__summary:has(.formation-accordion__summary-inner) {
	display: block;
}

.formation-accordion__summary-inner {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	gap: 20px;
}

/* Shell titre : calé container (1280 − padding), indépendant de l’ordre de chargement du thème. */
.formation-accordion__summary-inner.container {
	width: min(100%, var(--campus-wide-width, 1280px));
	max-width: var(--campus-wide-width, 1280px);
	margin-inline: auto;
	padding-inline: 20px;
	box-sizing: border-box;
}

.formation-accordion__summary {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	gap: 20px;
	padding: 32px 0;
	cursor: pointer;
	list-style: none;
}


@media screen and (min-width: 992px) {
	.formation-accordion__summary {
		padding-top: 64px;
		padding-bottom: 64px;
	}
}


.formation-accordion__summary::-webkit-details-marker {
	display: none;
}

.formation-accordion__icon {
	display: flex;
	flex: 0 0 30px;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	color: var(--color-text, #1f1a14);
}

.formation-accordion__icon svg {
	display: block;
	width: 30px;
	height: 30px;
	transition: transform 0.65s ease;
}

.formation-accordion.is-expanded .formation-accordion__icon svg {
	transform: rotate(90deg);
}

.formation-accordion__title {
	flex: 1;
	min-width: 0;
}

.formation-accordion__panel-anim {
	display: grid;
	grid-template-rows: 0fr;
	transition: grid-template-rows 0.75s ease;
}

.formation-accordion.is-expanded .formation-accordion__panel-anim {
	grid-template-rows: 1fr;
}

.formation-accordion__panel-inner {
	overflow: hidden;
	min-height: 0;
}

.formation-accordion__panel {
	/*
	padding: 0 0 32px;
	background: aqua;
	*/
	padding-bottom: 32px;
	padding-bottom: 44px;
}

.formation-accordion__panel > :first-child {
	margin-top: 0;
}

.formation-accordion__panel > :last-child {
	margin-bottom: 0;
}

@media (prefers-reduced-motion: reduce) {
	.formation-accordion__icon svg,
	.formation-accordion__panel-anim {
		transition: none;
	}
}

/* ——— Rangée BB mode accordéon ——— */
/* Fond BB : cible `.fl-node-{id} > .fl-row-content-wrap` — ne pas forcer background ici. */
.fl-row.fl-row--campus-accordeon {
	overflow-x: clip;
}

.fl-row.fl-row--campus-accordeon > .campus-bb-row-accordeon__content {
	position: relative;
	width: 100%;
	padding: 0;
}

/* L’accordéon suit la rangée. La largeur fixe BB ne cale que le contenu. */
.fl-row.fl-row--campus-accordeon > .campus-bb-row-accordeon__content > .formation-accordion--bb-row {
	width: 100%;
	max-width: none;
}

.fl-row.fl-row--campus-accordeon.fl-row-full-width,
.fl-row.fl-row--campus-accordeon.fl-row-fixed-width {
	max-width: none;
	width: 100%;
}

.formation-accordion--bb-row {
	padding: 0;
}

/* Largeur contenu : le max-width vient du BO Beaver (.fl-node-* .fl-row-content). */
.formation-accordion--bb-row .fl-row-content.fl-row-fixed-width {
	margin-inline: auto;
	overflow-x: clip;
}

.formation-accordion--bb-row .fl-row-content.fl-row-full-width {
	width: 100%;
	max-width: none;
	margin-inline: auto;
}

/* Builder : contenu toujours visible, pas de toggle sur le summary */
.fl-builder-edit .formation-accordion--builder {
	pointer-events: auto;
}

.fl-builder-edit .formation-accordion--builder .formation-accordion__summary {
	cursor: default;
}

.fl-builder-edit .formation-accordion--builder.is-expanded .formation-accordion__panel-anim,
.fl-builder-edit .formation-accordion--builder .formation-accordion__panel-anim {
	grid-template-rows: 1fr;
}
