/**
 * Campus Intro — styles Intro (défaut) + Hero + Bloc texte.
 * Fond / overlay = rangée BB.
 * Alignement : classes thème `.u-align-left|center|right`.
 * Bloc texte : taille titre via classes thème `.u-typo-titre-xl` / `.h2` / `.h3` / `.h4`.
 * Mobile first, desktop ≥ 1024px ($bp-lg thème).
 */

.campus-intro {
	--campus-intro-pad-block-start: var(--space-m, 24px);
	--campus-intro-pad-block-end: 32px;
	--campus-intro-gap: var(--space-s, 16px);
	--campus-intro-title-size: 44px;
	--campus-intro-title-weight: 500;
	--campus-intro-pretitle-size: 12px;
	--campus-intro-pretitle-transform: uppercase;
	--campus-intro-pretitle-tracking: 0.04em;
	--campus-intro-pretitle-opacity: 1;
	--campus-intro-text-size: 15px;
	--campus-intro-ctas-direction: column;
	--campus-intro-justify: flex-start;
	--campus-content-card-ink: var(--wp--preset--color--neutral-ash, #B8B0A6);

	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: var(--campus-intro-justify);
	color: var(--color-text, var(--wp--preset--color--neutral-ink, #1f1a14));
}

.campus-intro__inner {
	position: relative;
	z-index: 1;
	display: flex;
	width: 100%;
	margin-inline: auto;
	/*
	padding-block: var(--campus-intro-pad-block-start) var(--campus-intro-pad-block-end);
	*/
}

.campus-intro__content {
	display: flex;
	flex-direction: column;
	gap: var(--campus-intro-gap);
	width: 100%;
	/* align-items / text-align / --u-* → classe thème .u-align-* */
}

.campus-intro__pretitle,
.campus-intro__title {
	/* Pleine largeur → l’alignement se fait via text-align du parent .u-align-* */
	width: 100%;
}

.campus-intro__pretitle {
	margin: 0;
	font-family: var(--campus-font-body, system-ui, sans-serif);
	font-size: var(--campus-intro-pretitle-size);
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: var(--campus-intro-pretitle-tracking);
	text-transform: var(--campus-intro-pretitle-transform);
	opacity: var(--campus-intro-pretitle-opacity);
	color: var(--campus-intro-pretitle-color, inherit);
}

.campus-intro__title {
	text-transform: none;
	margin: 0 !important;
	font-family: var(--campus-font-heading, Georgia, "Times New Roman", serif);
	font-size: clamp(2rem, 7vw, var(--campus-intro-title-size));
	font-weight: var(--campus-intro-title-weight);
	line-height: 1.2;
	color: var(--campus-intro-title-color, inherit);
}

.campus-intro__chapeau,
.campus-intro__text {
	margin: 0;
	width: 100%;
	color: var(--campus-intro-text-color, inherit);
}

.campus-intro__chapeau {
	/* Taille via .lead (thème, 20px) */
	font-family: var(--campus-font-body, system-ui, sans-serif);
	font-weight: 400;
}

.campus-intro__text {
	/* Styles <p> par défaut — pas de font-size forcée */
	font-family: var(--campus-font-body, system-ui, sans-serif);
	font-weight: 400;
	line-height: 1.6;
}

.campus-intro__text p:last-child {
	margin-bottom: 0;
}

/* Colonne texte + CTA — largeur / centrage : thème `.col-lg-6` + `.mx-auto` */
.campus-intro__col {
	display: flex;
	flex-direction: column;
	gap: calc(var(--campus-intro-gap) * 1.5);
}

.campus-intro__ctas {
	display: flex;
	flex-direction: var(--campus-intro-ctas-direction);
	flex-wrap: wrap;
	width: 100%;
	gap: var(--campus-intro-gap);
	/* align-items / justify-content → classe thème .u-align-* */
}

/* ——— Mode Intro (défaut) ——— */
.campus-intro--intro {
	height: auto;
}

/* ——— Mode Bloc texte ———
 * Pré-titre / texte / CTA : mêmes tokens que Intro.
 * Titre : typo via classes thème (spécificité hn.u-typo-* / hn.hN > .campus-intro__title).
 * Couleur par défaut : #3e342a (surchargeable via color pickers).
 */
.campus-intro--bloc-texte {
	height: auto;
	color: #3e342a;
}

/* ——— Mode Hero ——— */
.campus-intro--hero {
	--campus-intro-title-size: 60px;
	--campus-intro-title-weight: 500;
	--campus-intro-pretitle-size: 12px;
	--campus-intro-justify: flex-end;

	height: 100%;
	color: var(--wp--preset--color--neutral-white, #fff);
}

/* Desktop */
@media (min-width: 1024px) {
	.campus-intro {
		--campus-intro-gap: 20px;
		--campus-intro-title-size: 96px;
		--campus-intro-title-size: 130px;
		--campus-intro-title-weight: 400;
		--campus-intro-pretitle-size: 14px;
		--campus-intro-text-size: 16px;
		--campus-intro-ctas-direction: row;
		--campus-intro-justify: flex-start;
	}

	.campus-intro__title {
		font-size: clamp(3rem, 8vw, var(--campus-intro-title-size));
		max-width: 1040px;
	}

	.campus-intro--hero {
		--campus-intro-pad-block-start: 0;
		--campus-intro-pad-block-end: 0;
		--campus-intro-title-size: 130px;
		--campus-intro-pretitle-size: 20px;
		--campus-intro-pretitle-transform: none;
		--campus-intro-pretitle-tracking: 0;
		--campus-intro-pretitle-opacity: 0.85;
		--campus-intro-ctas-direction: row;
		--campus-intro-justify: center;
	}

	.campus-intro--hero .campus-intro__inner {
		align-items: center;
		flex: 1;
	}

	.campus-intro--hero .campus-intro__title {
		font-size: clamp(3.5rem, 7vw, var(--campus-intro-title-size));
	}

	.campus-intro--hero .campus-intro__pretitle {
		font-weight: 300;
		line-height: 1.6;
		max-width: 50%;
		max-width: 500px;
	}

	.campus-intro--intro,
	.campus-intro--bloc-texte {
		--campus-intro-pad-block-start: var(--space-l, 40px);
		--campus-intro-pad-block-end: var(--space-l, 40px);
	}

	.campus-intro--intro .campus-intro__pretitle,
	.campus-intro--bloc-texte .campus-intro__pretitle {
		font-weight: 600;
	}

	.campus-intro--intro .campus-intro__col {
		gap: calc(var(--campus-intro-gap) * 2);
	}
	
	.campus-intro--intro .campus-intro__title + .campus-intro__col {
		margin-top: 44px;
	}
}

.fl-builder-edit .campus-intro--hero {
	min-height: 200px;
}

.fl-builder-edit .campus-intro--intro,
.fl-builder-edit .campus-intro--bloc-texte {
	min-height: 120px;
}
