/*
	Aspect "reponsive", ordre important, mobile first
	Media 1 : mobile
	Media 2 : (min-width: 768px)
*/

@font-face {
	font-family: "Nunito";
	src: local("Nunito Light"), local("Nunito-Light"), url("https://fonts.gstatic.com/s/nunito/v10/XRXW3I6Li01BKofAnsSUYevI.woff2") format("woff2");
	font-style: normal;
	font-weight: 300;
	unicode-range: U+0-FF, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: "Nunito";
	src: local("Nunito Regular"), local("Nunito-Regular"), url("https://fonts.gstatic.com/s/nunito/v10/XRXV3I6Li01BKofINeaB.woff2") format("woff2");
	font-style: normal;
	font-weight: 400;
	unicode-range: U+0-FF, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: "Nunito";
	src: local("Nunito Bold"), local("Nunito-Bold"), url("https://fonts.gstatic.com/s/nunito/v10/XRXW3I6Li01BKofAjsOUYevI.woff2") format("woff2");
	font-style: normal;
	font-weight: 700;
	unicode-range: U+0-FF, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

* { box-sizing: border-box; }

:root {
	--fond: white;
	--texte: #1d4992; /* bleu sombre */
	--accent1: #008365; /* vert */
	--accent2: #007892; /* turquoise */
	--accent3: #dc3147; /* rouge */

	--erreur: red;
}

body {
	font-family: "Nunito",sans-serif;
	font-size: 14pt;
	padding: 0;
	margin: 0;
	background-color: #888888;
}

section {
	margin-top: 1rem;
	margin-bottom: 1.5rem;
}

p {
	margin: 0;
}

input, select {
	font: inherit;
	color: var(--texte);
	padding: .2em .5em;
}

.page {
	max-width: 1140px;
	margin: 0 auto;
	color: var(--texte);
	background-color: var(--fond);
	padding: 1rem;
}

.big-bordure {
	position: relative;
	padding: 2rem; /* Bordure + espace */
}
.big-bordure::before {
	content: "";
	position: absolute;
	inset: 0;
	border: 1rem solid transparent; /* bords arrondis + espace pour la bordure */
	border-radius: 2rem;
	background-image: linear-gradient(to right, var(--accent1), var(--accent2));
	background-origin: border-box;
	/* On crée deux masques, l'un qui prend tout l'élément avec sa bordure,
	 * l'autre sans. Ensuite on exclus le 2nd du 1er pour ne garder que le bord */
	mask:
		linear-gradient(#000 0 0) padding-box, 
		linear-gradient(#000 0 0);
	mask-composite: exclude;
}

.illustration {
	max-width: 6rem;
	max-height: 6rem;
}

.titre-10 {
	color: var(--accent3);
	font-size: 110%;
	font-variant: small-caps;
}

.accent1 {
	color: var(--accent1);
}

.accent2 {
	color: var(--texte);
	border: 2px solid var(--accent1);
	border-radius: 2rem;
	padding: .5rem 1rem;
}

.accentplein {
	background-image: linear-gradient(to right, var(--accent1), var(--accent2));
	color: var(--fond);
	border-radius: 2rem;
	padding: .5rem 1rem;
}
.accentplein header {
	font-size: 120%;
	padding: .5rem 1rem;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1em;
	img {
		height: 1.2em;
	}
}
.accentplein.form header {
	margin-bottom: 1em;
}
.accentplein.form fieldset {
	background: var(--fond);
	color: var(--texte);
	border-radius: 2rem;
	padding: 1rem 1rem .5rem 1rem;
}
.accentplein footer {
	text-align: center;
}

.accent3 {
	color: var(--texte);
	border: 2px solid var(--accent3);
	border-radius: 2rem;
	padding: 1rem 1.5rem;
}

.hflex {
	display: flex;
	align-items: center;
}

.contacts {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	margin: 1rem 0;
	a {
		font-size: 120%;
		font-weight: bold;
		text-align: center;
		text-decoration : none;
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 1em;
		padding: 2rem;
		&:hover {
			box-shadow: 0 0 15px #888;
			scale: 1.05;
		}
	}
	img {
		height: 1.2em;
	}
}
@media (min-width: 900px) {
	.contacts {
		display: grid;
		grid-template-columns: 1fr 1fr;
	}
}

.gabarit-2-1 {
	display: grid;
	grid-template-columns: 1fr;
	grid-gap: 1rem;
}
@media (min-width: 900px) {
	.gabarit-2-1 {
		grid-template-columns: 2fr 1fr;
	}
}

#entete {
	display: grid;
	grid-template-columns: min-content auto;
	grid-template-rows: 2rem 9rem;
	grid-gap: 1rem;
	small {
		font-size: 1.2rem;
		font-weight: bold;
		display: inline-block;
		background-image: linear-gradient(to right, var(--accent1), var(--accent2));
		color: var(--fond);
		border-radius: 2rem;
		padding: .2rem .5rem;
		align-self: start;
		justify-self: start;
	}
	span {
		font-weight: bold;
		font-size: 3rem;
		line-height: 2.5rem;
		align-self: center;
		width: min-content;
		hr {
			height: .4rem;
			border: none;
			background-image: linear-gradient(to right, var(--accent1), var(--accent2));
			margin: 1.6rem 0 0 0;
		}
	}
	img {
		border: 1rem solid transparent; /* bords arrondis + espace pour la bordure */
		border-radius: 2rem;
		grid-row-start: 1;
		grid-row-end: 3;
		grid-column: 2;
		background-image: linear-gradient(to right, var(--accent1), var(--accent2));
		background-origin: border-box;
		object-fit: cover;
		width: 100%;
		height: 100%;
	}
}
@media (min-width: 900px) {
	#entete {
		margin-top: 1em;
		grid-template-rows: 2rem 17rem;
		span {
			font-size: 6rem;
			line-height: 5rem;
		}
	}
	#pied {
		margin-bottom: 1em;
	}
}

#partenaires {
	& > div {
		display: grid;
		align-items: center;
		justify-content: center;
		gap: 10px;
		/* grid-template-columns: 745fr 541fr 192fr 120fr; */
		grid-template-columns: 241fr 125fr 114fr 69fr;
		img {
			max-width: 100%;
			object-fit: cover;
		}
	}
}

#pied {
	text-align: center;
	font-size: 80%;
}
