.hero {
	position: relative;
	min-height: 100vh;
	min-height: 100dvh;
	padding-block: 12rem 5rem;
	display: flex;
	align-items: flex-end;
	justify-content: center;
	padding-inline: 1rem;

	background-image: url("/assets/background-3-f9b1be9e.png");
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	background-color: var(--color-light-blue);

	@media (width < 700px) {
		padding-block: 3rem;
		min-height: 80vh;
		min-height: 80dvh;
	}
	.pastille {
		position: absolute;
		width: 150px;
		display: block;
		z-index: 0;
		top: 24%;
		left: 2%;
		mix-blend-mode: darken;

		@media (width < 780px) {
			position: static;
			margin-inline: auto;
			margin-block: 1rem;
		}
	}

	.content {
		text-align: center;
		max-width: 800px;

		h1 {
			font-size: clamp(2.25rem, 1.5405rem + 3.027vw, 4rem);
			font-family: var(--font-family-cursive);
			text-wrap: balance;
			line-height: 1.1;
			/* font-weight: 400; */
			font-weight: 600;
			display: grid;
			justify-items: center;
			margin-bottom: 2rem;

			.big {
				font-size: 1.25em;
				margin-bottom: 2.5rem;
			}
			.small {
				text-wrap: balance;
				max-width: 22ch;
			}

			span {
				display: block;
			}
		}
		.subtitle {
			margin-top: clamp(1rem, 0.5946rem + 1.7297vw, 2rem);
			max-width: 65ch;
			/* text-wrap: balance; */
			margin-inline: auto;
			max-width: 50ch;
			color: #6e6e6e;

			@media (width < 780px) {
				margin-top: 0;
			}
		}
		.goto-contact {
			margin-top: clamp(1.5rem, 0.8919rem + 2.5946vw, 3rem);
			display: flex;
			flex-direction: column;
			gap: 1rem;
			align-items: center;

			@media (width < 700px) {
				margin-top: 2rem;
			}

			& > p {
				font-weight: 600;
			}
			.cta-accent {
				padding: 0.75rem 1.5rem;
			}
		}
	}
}
.presentation {
	padding-block: 2rem;
	padding-inline: 1rem;

	.cards-cont {
		margin-top: 4rem;
		display: grid;
		grid-template-columns: repeat(4, 1fr);
		gap: 1.5rem;
		width: min(100%, 1100px);
		margin-inline: auto;

		@media (width < 900px) {
			grid-template-columns: repeat(2, 1fr);
		}
		@media (width < 600px) {
			grid-template-columns: repeat(1, 1fr);
		}

		.card {
			display: grid;
			grid-template-columns: 1.5rem 1fr;
			gap: 1rem;

			i,
			.title {
				color: var(--color-gold);
			}

			.title {
				margin-bottom: 0.5em;
				text-wrap: balance;
			}

			p {
				text-wrap: pretty;
			}

			i {
				font-size: 1.5em;
				vertical-align: middle;
			}
		}
	}
}
.exemples {
	margin-top: clamp(4rem, 3.1892rem + 3.4595vw, 6rem);
	padding-inline: 1rem;

	.content-cont {
		margin-top: 3rem;
		.img-wrapper {
			display: flex;
			/* gap: 1rem; */
			justify-content: space-evenly;
			align-items: center;
			max-width: 1600px;
			margin-inline: auto;
			flex-wrap: wrap;

			.img-cont {
				flex: 1 1 min(320px, 100%);
				max-width: 450px;
			}
		}
	}
}
.deroulement {
	padding-inline: 1rem;
	margin-top: 4rem;
	.content-cont {
		display: flex;
		align-items: center;
		justify-content: center;
		column-gap: clamp(1.5rem, -3.2727rem + 10.1818vw, 5rem);
		row-gap: clamp(2rem, 1.1892rem + 3.4595vw, 4rem);
		max-width: 1000px;
		margin-inline: auto;
		margin-top: 3rem;

		@media (width < 750px) {
			flex-direction: column;
		}

		.img-cont {
			max-width: 400px;
			display: flex;
		}
	}
	.timeline-cont {
		padding-left: 0.5rem;
	}

	.timeline {
		--_color-accent: var(--color-blue);
		--_color-text: var(--color-black);
		--_color-background: var(--color-white);
		--_vertical-gap: 2rem;
		--_vertical-line-width: 2px;

		display: flex;
		gap: var(--_vertical-gap);
		justify-content: flex-start;
		color: var(--_color-text);
		padding-block: 1rem;

		@media (width < 750px) {
			max-width: 550px;
		}

		.vertical-line {
			flex-shrink: 0;
			width: var(--_vertical-line-width);
			background-color: #e5e7eb;
		}
		.bubbles-cont {
			display: flex;
			flex-direction: column;
			gap: 2rem;
		}
		.timeline__bubble {
			--_max-bubble-width: 72ch;
			background-color: var(--_color-background);
			color: var(--_color-text);
			position: relative;
			max-width: var(--_max-bubble-width);

			&::before {
				--_tiny-bubble-width: 16px;
				position: absolute;
				content: "";
				width: var(--_tiny-bubble-width);
				left: calc(
					-1 * ((var(--_vertical-gap)) + var(--_tiny-bubble-width) / 2 +
								var(--_vertical-line-width) / 2)
				);
				top: 1rem;
				background-color: var(--_color-accent);
				border-radius: 50%;
				aspect-ratio: 1;
			}
			& h3 {
				font-size: 1.25rem;
				color: var(--color-gold);
				margin-bottom: 0.5em;
				font-weight: 600;
			}
			& p {
				font-size: 1rem;
			}
		}
	}
}
.who {
	margin-inline: auto;
	width: calc(100% - 3rem);
	background-color: var(--color-light-grey);
	border-radius: 1rem;
	padding: 4rem 1.75rem;
	display: flex;
	justify-content: center;
	gap: 3rem;
	margin-top: 4rem;

	@media (width < 700px) {
		padding: 2.5rem 1rem;
		width: calc(100% - 2rem);
	}

	.img-cont {
		max-width: 20%;

		img {
			mix-blend-mode: multiply;
		}

		@media (width < 750px) {
			display: none;
		}
	}
	.title-cont {
		text-align: left;
	}
	.content-wrapper {
		flex: 1;
		max-width: 700px;
	}
	.content-cont {
		display: flex;
		flex-direction: column;
		gap: 1.25rem;

		details {
			background-color: var(--color-white);
			max-width: 70ch;
			padding: 1rem;
			border-radius: 0.75rem;

			&[open] summary i {
				rotate: -180deg;
			}
		}
		summary {
			font-size: 1.25rem;
			color: var(--color-gold);
			font-weight: 600;
			list-style: none;
			display: flex;
			justify-content: space-between;
			align-items: center;
			cursor: pointer;

			&::-webkit-details-marker {
				display: none;
			}

			& i {
				font-size: 1.5em;
				transition: 0.2s ease-in-out;
			}

			& + p {
				margin-top: 1.75em;
				font-size: 1rem;
				width: 100%;
			}
		}
	}
}
.actualite {
	margin-top: 4rem;

	.articles-cont {
		overflow-x: auto;
		padding-inline: 5rem;
		display: grid;
		grid-auto-columns: min(350px, 100%);
		grid-auto-flow: column;
		gap: 4rem;
		padding-block: 1rem;

		@media (width < 850px) {
			padding-inline: 3rem;
		}
		@media (width < 600px) {
			gap: 2rem;
		}

		.card {
			height: 100%;
			display: flex;
			flex-direction: column;
			gap: 0.5rem;
			padding: 1rem;
			box-shadow: 0 0 10px 1px #acb1be;
			border-radius: 10px;

			img-cont {
				display: flex;
				aspect-ratio: 9/16;

				img {
					object-fit: cover;
					height: 100%;
				}
			}

			.title {
				font-size: 1.2rem;
				margin-bottom: 0.5em;
			}
			.tags-cont {
				display: flex;
				gap: 1rem;
			}

			.tag {
				--_bg-color: var(--_color-accent);
				display: inline;
				width: fit-content;
				padding: 0.25rem 0.5rem;
				border-radius: 8px;
				background: var(--_bg-color);
				color: hsl(from var(--_bg-color) h s 20);
				font-size: 0.875rem;
				font-weight: 600;

				&[data-type="recherche"] {
					--_bg-color: #bde2ff;
				}
				&[data-type="eveil-education"] {
					--_bg-color: #dbffe3;
				}
				&[data-type="enseignement"] {
					--_bg-color: #ffe8c2;
				}
				&[data-type="actualite"] {
					--_bg-color: #f9cdec;
				}
			}
			.more {
				text-align: right;
				margin-top: auto;
			}
		}
	}
}
.contact {
	position: relative;
	display: flex;
	justify-content: center;
	isolation: isolate;
	margin-top: 3rem;

	&::after {
		content: "";
		position: absolute;
		inset: 50% 0 -2px;
		background: var(--color-dark-blue);
		z-index: -1;
	}

	.content-cont {
		position: relative;
		width: min(800px, 90%);
		display: grid;
		grid-template-columns: 1fr;
		border-radius: 10px;
		overflow: hidden;
		background: var(--color-light-grey);
		padding: 2rem;
		text-align: center;
	}
	h3 {
		text-wrap: balance;
		font-size: 2rem;
		margin-bottom: 0;
		font-weight: 600;
		margin-bottom: 3rem;
		font-family: var(--font-family-cursive);

		@media (width < 500px) {
			margin-bottom: 1.5rem;
		}

		span {
			@media (width < 700px) {
				display: block;
			}
		}
	}
	.items-cont {
		display: grid;
		grid-template-columns: 1fr 2fr;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		flex-wrap: wrap;
		column-gap: 1rem;
		row-gap: 1.5rem;

		@media (width < 800px) {
			grid-template-columns: 1fr;
		}

		.item {
			width: 100%;
			display: grid;
			justify-items: flex-start;
			align-items: center;
			row-gap: 0.5rem;

			&.qr-code {
				grid-column-start: 1;
				grid-row: 1 / 4;
				grid-template-columns: 200px;
				align-items: center;
				justify-content: center;

				@media (width < 800px) {
					display: flex;
					grid-row: auto;
					grid-column-start: 1;
				}
			}

			&.text {
				grid-column-start: 2;
				grid-template-columns: 100px 1fr;

				@media (width < 800px) {
					grid-row: auto;
					grid-column-start: 1;
					display: flex;
					gap: 1rem;
					width: fit-content;
				}
			}

			@media (width < 500px) {
				grid-template-columns: 1fr;
				justify-content: center;
			}

			i {
				font-size: 2.5em;

				@media (width >= 800px) {
					margin-inline: auto;
				}

				@media (width < 500px) {
					font-size: 1.5em;
				}
			}
			& > div {
				justify-self: center;
				@media (width >= 700px) {
					justify-self: start;
				}
			}

			.img-cont {
				max-width: 160px;
				display: flex;
				margin-inline: auto;
			}
		}
		.title {
			font-size: 1.25rem;
			text-align: left;
			text-wrap: pretty;
			display: block;

			@media (width < 700px) {
				text-align: center;
			}

			&.qr {
				@media (width < 800px) {
					text-align: center;
				}
			}
			@media (width < 500px) {
				font-size: 1rem;
				text-wrap: balance;
			}
		}
	}
}
