/*
Theme Name: Nuëeva
*/

/* Fonts Inter + Noto Serif chargées via preload dans header.php (non bloquant + display=swap) */

/* ==========================================================
   ROOT — Variables globales
   ========================================================== */
:root {
	/* Palette Nuëeva */
	--couleur-blanc:      #ffffff;
	--couleur-noir:       #2C2C2C;
	--couleur-primaire:   #2A6B3A;
	--couleur-secondaire: #4E9A4A;
	--couleur-tertiaire:  #8BBB3A;
	--couleur-beige-pale: #fcf9f8;
	--couleur-beige-fonce:#f6f3f2;

	/* Dégradés de fond (classes bg-*) — background-color reste en fallback */
	--degrade-noir:       linear-gradient(to right, var(--couleur-noir) 0%, color-mix(in srgb, var(--couleur-noir) 80%, var(--couleur-primaire)) 100%);
	--degrade-primaire:   linear-gradient(to right, var(--couleur-primaire) 0%, var(--couleur-secondaire) 100%);
	--degrade-secondaire: linear-gradient(to right, var(--couleur-secondaire) 0%, var(--couleur-primaire) 100%);
	--degrade-tertiaire:  linear-gradient(to right, var(--couleur-tertiaire) 0%, color-mix(in srgb, var(--couleur-tertiaire) 70%, var(--couleur-blanc)) 100%);
	--degrade-beige-pale: linear-gradient(to right, var(--couleur-blanc) 0%, var(--couleur-beige-pale) 100%);
	--degrade-beige-fonce:linear-gradient(to right, var(--couleur-beige-pale) 0%, var(--couleur-beige-fonce) 100%);

	/* Typographie */
	--font-family-headline: "Noto Serif", Georgia, serif;
	--font-family-primaire: "Inter", sans-serif;

	--global-font-family: var(--font-family-primaire);
	--global-font-size: clamp(1.8rem, 1.1vw, 2rem);
	--global-line-height: 1.4em;
	--global-font-weight: 400;
	--global-letter-spacing: 0;

	--menu-font-family: var(--font-family-primaire);
	--menu-font-size: clamp(1.4rem, 1vw, 1.8rem);
	--menu-line-height: 1.2em;
	--menu-font-weight: 500;
	--menu-letter-spacing: 0;

	--h1-font-family: var(--font-family-headline);
	--h1-font-size: clamp(3rem, 4.5vw, 4.5rem);
	--h1-line-height: 1.1em;
	--h1-font-weight: 700;
	--h1-letter-spacing: 0;
	--h1-margin-bottom: clamp(30px, 2vw, 45px);

	--h2-font-family: var(--font-family-headline);
	--h2-font-size: clamp(2.6rem, 3.5vw, 3.2rem);
	--h2-line-height: 1.1em;
	--h2-font-weight: 500;
	--h2-letter-spacing: 0;
	--h2-margin-bottom: clamp(25px, 2vw, 40px);

	--h3-font-family: var(--font-family-primaire);
	--h3-font-size: clamp(2rem, 2.5vw, 2.6rem);
	--h3-line-height: 1.1em;
	--h3-font-weight: 500;
	--h3-letter-spacing: 0;
	--h3-margin-bottom: clamp(20px, 2vw, 30px);

	--h4-font-family: var(--font-family-primaire);
	--h4-font-size: clamp(1.8rem, 2vw, 2.2rem);
	--h4-line-height: 1.2em;
	--h4-font-weight: 500;
	--h4-letter-spacing: 0;
	--h4-margin-bottom: clamp(15px, 2vw, 25px);

	--h5-font-family: var(--font-family-primaire);
	--h5-font-size: clamp(1.9rem, 1.4vw, 2.1rem);
	--h5-line-height: 1.3em;
	--h5-font-weight: 700;
	--h5-letter-spacing: 0.02em;
	--h5-margin-bottom: clamp(10px, 1.5vw, 18px);

	--cta-font-family: var(--font-family-primaire);
	--cta-font-size: clamp(1.4rem, 1vw, 1.6rem);
	--cta-line-height: 1.2em;
	--cta-font-weight: 500;
	--cta-letter-spacing: 0;

	--header-height: 70px;
	--site-padding: 20px;
}

@media (min-width: 992px) {
	:root {
		--header-height: 150px;
	}
}


/* ==========================================================
   BASE — Typographie & éléments HTML
   ========================================================== */
html {
	font-size: 10px;
}

body {
	background-color: var(--couleur-blanc);
	font-family: var(--global-font-family);
	font-weight: var(--global-font-weight);
	color: var(--couleur-noir);
}

/* Padding container Bootstrap — plus d'espace sur téléphone (par défaut) */
.container {
	padding-left: 20px;
	padding-right: 20px;
}

@media (min-width: 576px) {
	.container {
		padding-left: 15px;
		padding-right: 15px;
	}
}

h1,
.h1 {
	position: relative;
	font-family: var(--h1-font-family);
	color: var(--couleur-noir);
	font-size: var(--h1-font-size);
	line-height: var(--h1-line-height);
	font-weight: var(--h1-font-weight);
	letter-spacing: var(--h1-letter-spacing);
	margin-bottom: var(--h1-margin-bottom);
	font-optical-sizing: auto;
}

h2,
span.h2 {
	position: relative;
	font-family: var(--h2-font-family);
	font-size: var(--h2-font-size);
	line-height: var(--h2-line-height);
	font-weight: var(--h2-font-weight);
	letter-spacing: var(--h2-letter-spacing);
	color: var(--couleur-noir);
	margin-bottom: var(--h2-margin-bottom);
	font-optical-sizing: auto;
}

h3 {
	position: relative;
	font-family: var(--h3-font-family);
	font-size: var(--h3-font-size);
	line-height: var(--h3-line-height);
	font-weight: var(--h3-font-weight);
	letter-spacing: var(--h3-letter-spacing);
	font-optical-sizing: auto;
	margin-bottom: var(--h3-margin-bottom);
}

/* Espacement supérieur des titres : grand au-dessus (séparation du contenu précédent),
   bien moindre en-dessous (rattachement au contenu qui suit). N'applique pas au 1er
   enfant d'un conteneur — pas de trou parasite. */
* + h2 { margin-top: clamp(3.5rem, 4vw, 5rem); }
* + h3 { margin-top: clamp(2.5rem, 3vw, 3.5rem); }
* + h4 { margin-top: clamp(2rem, 2.5vw, 3rem); }
* + h5 { margin-top: clamp(1.8rem, 2vw, 2.5rem); }

h4 {
	position: relative;
	font-family: var(--h4-font-family);
	font-size: var(--h4-font-size);
	line-height: var(--h4-line-height);
	font-weight: var(--h4-font-weight);
	letter-spacing: var(--h4-letter-spacing);
	font-optical-sizing: auto;
	margin-bottom: var(--h4-margin-bottom);
}

h5 {
	position: relative;
	font-family: var(--h5-font-family);
	font-size: var(--h5-font-size);
	line-height: var(--h5-line-height);
	font-weight: var(--h5-font-weight);
	letter-spacing: var(--h5-letter-spacing);
	color: var(--couleur-noir);
	font-optical-sizing: auto;
	margin-bottom: var(--h5-margin-bottom);
}

h1, h2, h3, h4, h5 {
	text-wrap: balance;
}

p {
	text-wrap: pretty;
}

p,
a,
span,
li,
i,
label {
	font-family: var(--global-font-family);
	font-size: var(--global-font-size);
	font-weight: var(--global-font-weight);
	line-height: var(--global-line-height);
	font-optical-sizing: auto;
	letter-spacing: var(--global-letter-spacing);
}

p {
	margin-bottom: 0;
}

p+p {
	margin-top: 20px;
}

p a {
	color: var(--couleur-secondaire);
	text-decoration: underline;
}

strong {
	font-size: var(--global-font-size);
}

ul,
li {
	list-style-type: none;
	padding-left: 0;
	margin-bottom: 0;
}

ul.menu {
	margin-bottom: 0;
}

a {
	display: inline-block;
	color: var(--couleur-secondaire);
	text-decoration: none;
	opacity: 1;
	transition: all .3s ease;
}

a:hover {
	color: var(--couleur-secondaire);
	transition: all .3s ease;
}

section {
	position: relative;
	padding-top: 40px;
	padding-bottom: 40px;
}

/* Collapse du padding-top quand 2 sections adjacentes partagent le même fond
   (évite le double-gap quand pas de transition visuelle de couleur) */
.bg-blanc + .bg-blanc,
.bg-noir + .bg-noir,
.bg-primaire + .bg-primaire,
.bg-secondaire + .bg-secondaire,
.bg-tertiaire + .bg-tertiaire,
.bg-beige-pale + .bg-beige-pale,
.bg-beige-fonce + .bg-beige-fonce {
	padding-top: 0;
}

section .container>hr {
	margin-top: 50px;
}

@media (min-width: 992px) {
	section {
		padding-top: 80px;
		padding-bottom: 80px;
	}

	section .container>hr {
		margin-top: 100px;
	}
}

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

/* Mobile par défaut : scroll horizontal sur table */
table {
	width: 100%;
	border-collapse: collapse;
	font-size: clamp(1.3rem, 1.2vw, 1.6rem);
	margin: 2rem 0 3rem;
	border: 2px solid #d9d9d9;
	background-color: var(--couleur-blanc);
	border-radius: 0;
	overflow: hidden;
	display: block;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	min-width: 380px;
}

th {
	background-color: var(--couleur-primaire);
	color: var(--couleur-noir);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	padding: 0.9rem 1.2rem;
	border: 1px solid #d9d9d9;
	text-align: left;
	transition: background-color 0.15s, color 0.15s;
	font-size: 1.2rem;
	white-space: nowrap;
}

td {
	padding: 0.9rem 1.2rem;
	border: 1px solid #d9d9d9;
	color: var(--couleur-noir);
	font-weight: 500;
	text-align: left;
	transition: background-color 0.15s, color 0.15s;
	font-size: 1.3rem;
	white-space: nowrap;
}

@media (min-width: 569px) {
	table {
		display: table;
		overflow-x: visible;
		min-width: 0;
	}
	th {
		padding: 1.2rem 2rem;
		font-size: inherit;
		letter-spacing: 0.05em;
		white-space: normal;
	}
	td {
		padding: 1.2rem 2rem;
		font-size: inherit;
		white-space: normal;
	}
}

tr:nth-child(even) td {
	background-color: var(--couleur-primaire);
}

tr:nth-child(odd) td {
	background-color: var(--couleur-blanc);
}

tr:hover td {
	background-color: var(--couleur-secondaire);
	color: var(--couleur-blanc);
}

/* Responsive mobile — table scrollable sous 568px */
/* ========== TABLEAU (forfaits / comparatifs) — restyle sous-projet 9 ==========
   Carte blanche arrondie façon "menu de forfaits" : en-tête vert, lignes zébrées,
   dernière colonne (prix/forfait) en Noto Serif vert, liseré lime au survol. */
.table-responsive-wrapper {
	width: 100%;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	margin: 2.5rem 0 3.5rem;
	background: var(--couleur-blanc);
	border: 1px solid rgba(42, 107, 58, 0.12);
	border-radius: 1.6rem;
	box-shadow: 0 .4rem 2.4rem rgba(44, 44, 44, 0.07);
}

.table-responsive-wrapper table {
	border: none;
	box-shadow: none;
	margin: 0;
	min-width: 480px;
	width: 100%;
	border-collapse: collapse;
	font-family: var(--font-family-primaire);
}

.table-responsive-wrapper th,
.table-responsive-wrapper td {
	padding: 1.6rem 2.2rem;
	text-align: left;
	vertical-align: middle;
	border: none;
	color: var(--couleur-noir);
}

/* En-tête : bande verte, capitales fines */
.table-responsive-wrapper thead th,
.table-responsive-wrapper thead td {
	background: var(--couleur-primaire);
	color: var(--couleur-blanc);
	font-weight: 700;
	font-size: 1.3rem;
	text-transform: uppercase;
	letter-spacing: .06em;
	white-space: nowrap;
}

/* Corps : texte lisible même sur section colorée (annule le "texte blanc"
   hérité des bg-*), en ciblant td/th ET leur contenu riche (p, li, span, titres). */
.table-responsive-wrapper tbody td,
.table-responsive-wrapper tbody th,
.table-responsive-wrapper tbody td p,
.table-responsive-wrapper tbody th p,
.table-responsive-wrapper tbody td li,
.table-responsive-wrapper tbody th li,
.table-responsive-wrapper tbody td span,
.table-responsive-wrapper tbody th span,
.table-responsive-wrapper tbody td h1, .table-responsive-wrapper tbody td h2,
.table-responsive-wrapper tbody td h3, .table-responsive-wrapper tbody td h4,
.table-responsive-wrapper tbody td h5, .table-responsive-wrapper tbody td h6 {
	color: var(--couleur-noir);
}

.table-responsive-wrapper tbody td,
.table-responsive-wrapper tbody th {
	font-size: 1.5rem;
	font-weight: 400;
	vertical-align: top;
	border-bottom: 1px solid rgba(44, 44, 44, 0.07);
}

.table-responsive-wrapper tbody tr:nth-child(even) td,
.table-responsive-wrapper tbody tr:nth-child(even) th {
	background: var(--couleur-beige-pale);
}

.table-responsive-wrapper tbody tr:last-child td,
.table-responsive-wrapper tbody tr:last-child th {
	border-bottom: none;
}

/* 1re colonne (nom du forfait) : mise en avant façon "menu" + ancre du liseré */
.table-responsive-wrapper tbody tr > :first-child,
.table-responsive-wrapper tbody tr > :first-child p,
.table-responsive-wrapper tbody tr > :first-child span,
.table-responsive-wrapper tbody tr > :first-child strong {
	color: var(--couleur-primaire);
	font-weight: 700;
}
.table-responsive-wrapper tbody tr > :first-child {
	position: relative;
}

/* Survol : teinte lime + liseré d'accent qui se déploie à gauche */
.table-responsive-wrapper tbody tr {
	transition: background-color .18s ease;
}

.table-responsive-wrapper tbody tr:hover td,
.table-responsive-wrapper tbody tr:hover th {
	background: rgba(139, 187, 58, 0.12);
}

.table-responsive-wrapper tbody tr > :first-child::before {
	content: '';
	position: absolute;
	left: 0;
	top: 0;
	bottom: 0;
	width: .4rem;
	background: var(--couleur-tertiaire);
	transform: scaleY(0);
	transition: transform .18s ease;
}

.table-responsive-wrapper tbody tr:hover > :first-child::before {
	transform: scaleY(1);
}

@media (prefers-reduced-motion: reduce) {
	.table-responsive-wrapper tbody tr,
	.table-responsive-wrapper tbody tr > :first-child::before {
		transition: none;
	}
}

/* ==========================================================
   UTILITAIRES — Fonds de couleur
   ========================================================== */
.bg-blanc {
	background-color: var(--couleur-blanc);
	color: var(--couleur-noir);
}

.bg-blanc h1,
.bg-blanc h2,
.bg-blanc h3,
.bg-blanc h4,
.bg-blanc h5,
.bg-blanc h6 {
	color: var(--couleur-tertiaire);
}

.bg-noir {
	background-color: var(--couleur-noir);
	background-image: var(--degrade-noir);
	color: var(--couleur-blanc);
}

.bg-noir h1,
.bg-noir h2,
.bg-noir h3,
.bg-noir h4,
.bg-noir h5,
.bg-noir h6,
.bg-noir p,
.bg-noir li,
.bg-noir span {
	color: var(--couleur-blanc);
}

.bg-primaire {
	background-color: var(--couleur-primaire);
	background-image: var(--degrade-primaire);
	color: var(--couleur-blanc);
}

.bg-primaire h1,
.bg-primaire h2,
.bg-primaire h3,
.bg-primaire h4,
.bg-primaire h5,
.bg-primaire h6,
.bg-primaire p,
.bg-primaire li,
.bg-primaire span {
	color: var(--couleur-blanc);
}

.bg-secondaire {
	background-color: var(--couleur-secondaire);
	background-image: var(--degrade-secondaire);
	color: var(--couleur-blanc);
}

.bg-secondaire h1,
.bg-secondaire h2,
.bg-secondaire h3,
.bg-secondaire h4,
.bg-secondaire h5,
.bg-secondaire h6,
.bg-secondaire p,
.bg-secondaire li,
.bg-secondaire span {
	color: var(--couleur-blanc);
}

.bg-tertiaire {
	background-color: var(--couleur-tertiaire);
	background-image: var(--degrade-tertiaire);
	color: var(--couleur-noir);
}

.bg-tertiaire h1,
.bg-tertiaire h2,
.bg-tertiaire h3,
.bg-tertiaire h4,
.bg-tertiaire h5,
.bg-tertiaire h6,
.bg-tertiaire p,
.bg-tertiaire li,
.bg-tertiaire span {
	color: var(--couleur-noir);
}

.bg-beige-pale {
	background-color: var(--couleur-beige-pale);
	background-image: var(--degrade-beige-pale);
	color: var(--couleur-noir);
}

.bg-beige-pale h1,
.bg-beige-pale h2,
.bg-beige-pale h3,
.bg-beige-pale h4,
.bg-beige-pale h5,
.bg-beige-pale h6 {
	color: var(--couleur-tertiaire);
}

.bg-beige-pale p,
.bg-beige-pale li,
.bg-beige-pale span {
	color: var(--couleur-noir);
}

.bg-beige-fonce {
	background-color: var(--couleur-beige-fonce);
	background-image: var(--degrade-beige-fonce);
	color: var(--couleur-noir);
}

.bg-beige-fonce h1,
.bg-beige-fonce h2,
.bg-beige-fonce h3,
.bg-beige-fonce h4,
.bg-beige-fonce h5,
.bg-beige-fonce h6 {
	color: var(--couleur-tertiaire);
}

.bg-beige-fonce p,
.bg-beige-fonce li,
.bg-beige-fonce span {
	color: var(--couleur-noir);
}


/* ==========================================================
   UTILITAIRES — Bordure couleur (encadré animé)
   ========================================================== */
.bordure-couleur {
	position: relative;
	border: 3px solid var(--couleur-noir);
	background-color: var(--couleur-blanc);
	padding: 3vh 2vh;
	overflow: visible;
	transition: box-shadow 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94),
		border-color 0.3s ease;
}

.bg-primaire .bordure-couleur {
	border-color: var(--couleur-noir);
}

.bg-secondaire .bordure-couleur {
	border-color: var(--couleur-blanc);
	color: var(--couleur-noir);
}

.bg-secondaire .bordure-couleur h1,
.bg-secondaire .bordure-couleur h2,
.bg-secondaire .bordure-couleur h3,
.bg-secondaire .bordure-couleur h4,
.bg-secondaire .bordure-couleur h5,
.bg-secondaire .bordure-couleur h6,
.bg-secondaire .bordure-couleur p,
.bg-secondaire .bordure-couleur li,
.bg-secondaire .bordure-couleur span {
	color: var(--couleur-noir);
}

.bg-noir .bordure-couleur {
	border-color: var(--couleur-blanc);
	background-color: var(--couleur-noir);
}

@media (min-width: 992px) {
	.bordure-couleur {
		padding: 5vh 4vh;
	}
}

/* Effet sheen sur .bloc-simple-texte-agrandi */
.bloc-simple-texte-agrandi .bordure-couleur {
	overflow: hidden;
}

.bloc-simple-texte-agrandi .bordure-couleur::after {
	content: '';
	position: absolute;
	top: -50%;
	left: -60%;
	width: 30%;
	height: 200%;
	background: linear-gradient(to right,
			rgba(255, 255, 255, 0) 0%,
			rgba(255, 255, 255, 0.4) 50%,
			rgba(255, 255, 255, 0) 100%);
	transform: rotate(30deg);
	animation: clean-sheen 6s infinite ease-in-out;
	pointer-events: none;
	z-index: 2;
}

@keyframes clean-sheen {
	0% {
		left: -60%;
	}

	30% {
		left: 140%;
	}

	100% {
		left: 140%;
	}
}



/* ==========================================================
   BOUTONS CTA
   ========================================================== */
.cta-primaire,
.cta-secondaire {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 0.45em;
	background-color: transparent;
	background-image: linear-gradient(currentColor, currentColor);
	background-size: 100% 2px;
	background-position: left bottom;
	background-repeat: no-repeat;
	border: none;
	box-shadow: none;
	padding: 2px 0 6px;
	font-family: var(--cta-font-family);
	font-size: var(--cta-font-size);
	font-weight: 800;
	letter-spacing: var(--cta-letter-spacing);
	text-transform: uppercase;
	color: var(--couleur-tertiaire);
	cursor: pointer;
	transition: background-size 0.35s ease, color 0.2s ease, opacity 0.2s ease;
}

.cta-primaire::after,
.cta-secondaire::after {
	content: '›';
	display: inline-block;
	font-size: 1.4em;
	font-weight: 400;
	line-height: 1;
	flex-shrink: 0;
	transition: transform 0.5s cubic-bezier(0.23, 1, 0.32, 1);
}

.cta-primaire:hover,
.cta-secondaire:hover {
	background-size: 0% 2px;
	opacity: 1;
}

.cta-primaire:hover::after,
.cta-secondaire:hover::after {
	transform: rotate(360deg);
}

.cta-primaire:active,
.cta-secondaire:active {
	opacity: 0.6;
}

/* Fonds sombres → texte blanc */
.bg-noir .cta-primaire,
.bg-noir .cta-secondaire,
.bg-primaire .cta-primaire,
.bg-primaire .cta-secondaire,
.bg-secondaire .cta-primaire,
.bg-secondaire .cta-secondaire,
.banniere-slider .cta-primaire,
.banniere-slider .cta-secondaire,
#banniere-carrousel .cta-primaire,
#banniere-carrousel .cta-secondaire {
	color: var(--couleur-blanc);
}

/* Fonds clairs (tertiaire, beige) → texte noir */
.bg-tertiaire .cta-primaire,
.bg-tertiaire .cta-secondaire,
.bg-beige-pale .cta-primaire,
.bg-beige-pale .cta-secondaire,
.bg-beige-fonce .cta-primaire,
.bg-beige-fonce .cta-secondaire {
	color: var(--couleur-noir);
}

/* CTA solide (bouton plein — menu, CTA fort) */
.cta-solid {
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
	background-color: var(--couleur-tertiaire);
	color: var(--couleur-blanc);
	border: none;
	box-shadow: none;
	padding: 10px 24px;
	min-height: 65px;
	font-family: var(--cta-font-family);
	font-size: var(--cta-font-size);
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: var(--cta-letter-spacing);
	cursor: pointer;
	text-decoration: none;
	background-image: none;
	transition: background-color 0.2s ease, color 0.2s ease;
}

/* Texte toujours blanc — le span est forcé pour battre .bg-* span */
.cta-solid,
.cta-solid span,
.cta-solid:hover,
.cta-solid:hover span {
	color: var(--couleur-blanc);
}

.cta-solid:hover {
	background-color: var(--couleur-secondaire);
}

/* bg-secondaire / bg-tertiaire : le hover (ou le fond) se fondrait dans la section → primaire */
.bg-secondaire .cta-solid:hover,
.bg-tertiaire .cta-solid:hover {
	background-color: var(--couleur-primaire);
}
.bg-tertiaire .cta-solid {
	background-color: var(--couleur-secondaire);
}

/* CTA lien (avec flèche) */
.cta-lien {
	position: relative;
	color: var(--couleur-secondaire);
	font-family: var(--cta-font-family);
	font-size: var(--cta-font-size);
	line-height: 1.5em;
	font-weight: 700;
	letter-spacing: 0;
	padding-left: 40px;
	transition: all .3s ease;
}

.cta-lien:before {
	content: '';
	display: block;
	position: absolute;
	top: calc(50% - 5px);
	left: 8px;
	width: 10px;
	height: 10px;
	border-right: 2px solid var(--couleur-blanc);
	border-bottom: 2px solid var(--couleur-blanc);
	transform: rotateZ(-45deg);
	transition: all .3s ease;
}

.cta-lien span {
	font-weight: 700;
	transition: all .3s ease;
}

.cta-lien:hover:before {
	transform: rotateZ(-405deg);
	transition: all .3s ease;
}

/* Flèches carrousel haute visibilité */
.bg-noir .custom-arrow,
.banniere-slider .custom-arrow {
	background: rgba(255, 255, 255, 0.15);
	border: 2px solid var(--couleur-secondaire);
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}

.bg-noir .custom-arrow:hover,
.banniere-slider .custom-arrow:hover {
	background: var(--couleur-secondaire);
	transform: translateY(-50%) scale(1.1);
}

.bg-noir .custom-arrow-prev::after,
.banniere-slider .custom-arrow-prev::after {
	border-color: transparent var(--couleur-blanc) transparent transparent;
}

.bg-noir .custom-arrow-next::after,
.banniere-slider .custom-arrow-next::after {
	border-color: transparent transparent transparent var(--couleur-blanc);
}

.bg-noir .custom-arrow-prev:hover::after,
.banniere-slider .custom-arrow-prev:hover::after {
	border-color: transparent var(--couleur-noir) transparent transparent;
}

.bg-noir .custom-arrow-next:hover::after,
.banniere-slider .custom-arrow-next:hover::after {
	border-color: transparent transparent transparent var(--couleur-noir);
}


/* ==========================================================
   HEADER & NAVIGATION
   ========================================================== */
body > header {
	position: relative;
	display: flex;
	background-color: transparent;
	width: 100%;
	height: var(--header-height);
	top: 0;
	z-index: 1000;
	transition: all ease .3s;
}

body > header .logo {
	max-width: 200px;
}

.header-scrolled > header {
	width: 100%;
	background-color: rgba(255, 255, 255, .95);
	transition: all ease .3s;
}

.header-scrolled .logo img {
	height: 50px;
	object-fit: contain;
}

@media (min-width: 992px) {
	body > header {
		height: var(--header-height);
	}

	.header-scrolled > header {
		height: 70px;
		transition: all ease .3s;
	}
}

/* Menu mobile */
#menu-mobile {
	width: 100%;
}

.logo-mobile {
	display: inline-block;
	width: auto;
	height: 50px;
	margin: 10px 0;
}

.logo-mobile img {
	width: auto;
	height: 50px;
	object-fit: contain;
}

#menu-hamburger {
	position: fixed;
	display: flex;
	align-items: flex-start;
	top: var(--header-height);
	padding-top: 30px;
	right: -100%;
	width: 100%;
	height: calc(100% - var(--header-height));
	background: var(--couleur-blanc);
	z-index: 9999;
	box-sizing: border-box;
	overflow-y: auto;
	overscroll-behavior: contain;
	transition: all 0.5s ease;
}

.home #menu-hamburger {
	background: var(--couleur-blanc);
}

#menu-hamburger.slide {
	right: 0;
}

#menu-hamburger>.container {
	position: relative;
	padding-top: 40px;
	padding-bottom: 50px;
}

#menu-hamburger li a {
	display: inline-block;
	font-size: clamp(2.5rem, 6vw, 4rem);
	margin: 12px 0;
}

#menu-hamburger li.cta-primaire a {
	font-weight: 800;
}


/* Sous-menu mobile — visible en permanence, indenté */
#menu-hamburger .sub-menu {
	display: block;
	padding-left: 2rem;
	margin-top: -6px;
	margin-bottom: 8px;
	border-left: 2px solid var(--couleur-secondaire);
}

#menu-hamburger .sub-menu li a {
	font-size: clamp(1.6rem, 3.5vw, 2.2rem);
	margin: 4px 0;
	color: rgba(0, 0, 0, 0.6);
	font-weight: 400;
	padding: 2px 0;
	transition: color 0.2s ease;
}

#menu-hamburger .sub-menu li a:hover {
	color: var(--couleur-noir);
}

#menu-hamburger .telephone a {
	color: var(--couleur-secondaire);
	font-size: clamp(2.8rem, 7vw, 4.5rem);
}

.hamburger {
	position: relative;
	width: 40px;
	height: 40px;
	z-index: 100;
	cursor: pointer;
	transition: all 0.5s ease;
}

.hamburger span,
.hamburger span:before,
.hamburger span:after {
	display: block;
	position: absolute;
	height: 3px;
	background: var(--couleur-secondaire);
	border-radius: 3px;
}

.hamburger:hover span,
.hamburger:hover span:before,
.hamburger:hover span:after {
	background: var(--couleur-secondaire);
}

.hamburger span {
	width: 40px;
	top: 50%;
	transition: all 0.5s ease;
}

.hamburger span:before,
.hamburger span:after {
	content: "";
	width: 40px;
	transition: all 0.5s ease;
}

.hamburger span:before {
	top: 10px;
}

.hamburger span:after {
	bottom: 10px;
}

.hamburger.show {
	transition: all 0.5s ease;
}

.hamburger.show span {
	transition: all 0.3s ease;
	background: transparent;
}

.hamburger.show span:before {
	transform: rotate(135deg);
	top: 0;
	transition: all 0.5s ease;
}

.hamburger.show span:after {
	transform: rotate(-135deg);
	bottom: 0;
	transition: all 0.5s ease;
}

/* Menu desktop */
#menu-desktop {
	width: 100%;
}

#menu-desktop ul li {
	position: relative;
	margin: 0 15px;
}

#menu-desktop ul li a {
	color: var(--couleur-noir);
	font-family: var(--menu-font-family);
	font-size: clamp(1.4rem, 0.9vw, 1.8rem);
	font-weight: var(--menu-font-weight);
	line-height: var(--menu-line-height);
	letter-spacing: var(--menu-letter-spacing);
	padding: 5px 0;
	transition: .3s ease;
}

#menu-desktop ul li a:before,
#menu-desktop ul li a:after {
	content: '';
	display: block;
	position: absolute;
	bottom: 0;
	width: 0;
	height: 2px;
	background-color: var(--couleur-secondaire);
	transition: .3s ease;
}

#menu-desktop ul li a:before {
	left: 50%;
}

#menu-desktop ul li a:after {
	right: 50%;
}

#menu-desktop ul li:not(.cta-primaire):not(.cta-header) a:hover:after,
#menu-desktop ul li:not(.cta-primaire):not(.cta-header) a:hover:before,
#menu-desktop ul li.current-menu-item:not(.cta-primaire):not(.cta-header)>a:before,
#menu-desktop ul li.current-menu-item:not(.cta-primaire):not(.cta-header)>a:after {
	width: 50%;
	transition: .3s ease;
}

#menu-desktop ul li.cta-primaire a {
	font-weight: 800;
}

#menu-desktop ul li.cta-header a,
#menu-hamburger li.cta-header a {
	display: inline-flex;
	background-color: var(--couleur-tertiaire);
	color: var(--couleur-blanc) !important;
	font-weight: 800;
	padding: 10px 22px;
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease;
}

#menu-desktop ul li.cta-header a:hover,
#menu-hamburger li.cta-header a:hover {
	background-color: var(--couleur-secondaire);
	color: var(--couleur-blanc) !important;
}

#menu-desktop ul li a:hover,
#menu-desktop ul li.current-menu-item a {
	transition: .3s ease;
}


/* Pont invisible pour maintenir le hover dans le gap */
#menu-desktop .menu-item-has-children::after {
	content: '';
	position: absolute;
	top: 100%;
	left: -10px;
	right: -10px;
	height: 12px;
}

/* Dropdown sub-menu desktop */
#menu-desktop .sub-menu {
	position: absolute;
	visibility: hidden;
	opacity: 0;
	transform: translateY(8px);
	width: auto;
	min-width: 220px;
	top: calc(100% + 14px);
	left: 50%;
	translate: -50% 0;
	padding: 1rem;
	background-color: var(--couleur-blanc);
	border: 1px solid rgba(0, 0, 0, 0.06);
	border-radius: 1.2rem;
	box-shadow: 0 14px 40px rgba(44, 44, 44, 0.10), 0 2px 6px rgba(44, 44, 44, 0.04);
	transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s;
	z-index: 1001;
}

/* Petit triangle pointeur vers le haut */
#menu-desktop .sub-menu::before {
	content: '';
	position: absolute;
	top: -7px;
	left: 50%;
	transform: translateX(-50%);
	width: 14px;
	height: 7px;
	background: var(--couleur-blanc);
	clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
}

#menu-desktop .menu-item-has-children:hover .sub-menu {
	visibility: visible;
	opacity: 1;
	transform: translateY(0);
}

#menu-desktop .sub-menu li {
	display: block;
	text-align: left;
	white-space: nowrap;
	margin: 0;
}

#menu-desktop .sub-menu a {
	display: block;
	font-size: 1.4rem;
	line-height: 1.2;
	text-align: left;
	color: var(--couleur-noir);
	padding: 1.1rem 1.6rem;
	border-radius: 0.6rem;
	transition: background-color 0.15s ease, color 0.15s ease;
}

#menu-desktop .sub-menu a:hover {
	background-color: rgba(42, 107, 58, 0.08);
	color: var(--couleur-primaire);
}

#menu-desktop .sub-menu a::before,
#menu-desktop .sub-menu a::after {
	display: none;
}

#menu-desktop .sub-menu li+li {
	border-top: none;
}


/* ==========================================================
   POPUP
   ========================================================== */
#popup {
	display: none;
	position: fixed;
	inset: 0;
	align-items: center;
	justify-content: center;
	padding: 2rem;
	overflow-y: auto;
	z-index: 9999;
}

#popup.active {
	display: flex;
}

#popup .background-modal {
	position: fixed;
	inset: 0;
	background: rgba(0, 0, 0, .55);
	z-index: 1;
}

#popup .content-modal {
	position: relative;
	width: 100%;
	max-width: 60rem;
	max-height: calc(100vh - 4rem);
	overflow-y: auto;
	padding: 4.5rem 3rem 3rem;
	background-color: var(--couleur-blanc);
	color: var(--couleur-noir);
	border-radius: 1.2rem;
	box-shadow: 0 12px 40px rgba(0, 0, 0, .20);
	text-align: center;
	z-index: 2;
}

#popup .fermer {
	position: absolute;
	top: 1rem;
	right: 1.2rem;
	padding: .5rem 1rem;
	font-size: 2.4rem;
	line-height: 1;
	color: var(--couleur-noir);
	cursor: pointer;
	z-index: 3;
}

#popup .fermer:hover {
	color: var(--couleur-primaire);
}

#popup .content-modal p,
#popup .content-modal li {
	margin-bottom: 1.5rem;
}

#popup .content-modal strong {
	display: inline-block;
	font-family: var(--font-family-headline);
	font-size: 2.4rem;
	line-height: 1.2;
	color: var(--couleur-tertiaire);
}

#popup .content-modal ul {
	padding-left: 0;
	list-style: none;
}

#popup .content-modal .cta-secondaire {
	margin-top: 1.5rem !important;
}

/* Image en bas, pleine largeur du panneau */
#popup .content-modal.has-image {
	padding-bottom: 0;
	overflow-x: hidden;
}

#popup .popup-image-bottom {
	margin: 3rem -3rem 0;
	height: 22rem;
}

#popup .popup-image-bottom img {
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	margin: 0;
	object-fit: cover;
	border-radius: 0;
}

@media (min-width: 992px) {
	#popup .content-modal {
		padding: 5rem 5rem 4rem;
	}

	#popup .content-modal strong {
		font-size: 3rem;
	}

	#popup .popup-image-bottom {
		margin: 4rem -5rem 0;
		height: 28rem;
	}
}


/* ============================================
   BANNIÈRE FLEXIBLE — image full-bg + dégradé
   Spec : 2026-06-20-banniere-image-fond-degrade
   ============================================ */

/* Mobile : image en bloc, texte dans une boîte qui chevauche le bas de l'image */
.banniere {
    position: relative;
    overflow: hidden;
    padding: 0 0 3rem;
}

.banniere--no-media {
    padding: 3rem 0;
}

.banniere__media {
    display: block;
    width: 100%;
    height: 30rem;
    object-fit: cover;
}

.banniere._accueil .banniere__media {
    height: 36rem;
}

.banniere .container {
    position: relative;
    z-index: 2;
}

.banniere__texte {
    max-width: 80rem;
    color: var(--couleur-noir);
}

.banniere:not(.banniere--no-media) .banniere__texte {
    margin-top: -6rem;
    padding: 3rem 2.4rem;
    background: var(--couleur-blanc);
    border-radius: 1.6rem;
    box-shadow: 0 .4rem 2.4rem rgba(44, 44, 44, 0.07);
}

/* Tablette+ : image full-bg + dégradé blanc */
@media (min-width: 768px) {
    .banniere {
        min-height: 60vh;
        display: flex;
        align-items: center;
        padding: 6rem 0;
    }
    .banniere._accueil {
        min-height: 80vh;
    }

    .banniere__media,
    .banniere._accueil .banniere__media {
        position: absolute;
        inset: 0;
        height: 100%;
        z-index: 0;
    }

    .banniere:not(.banniere--no-media):not(.banniere--has-video)::before {
        content: "";
        position: absolute;
        inset: 0;
        z-index: 1;
        pointer-events: none;
    }

    .banniere--pos-gauche::before {
        background: linear-gradient(to right,
            rgba(255,255,255,1) 0%,
            rgba(255,255,255,0.05) 100%);
    }

    .banniere--pos-droite::before {
        background: linear-gradient(to left,
            rgba(255,255,255,1) 0%,
            rgba(255,255,255,0.05) 100%);
    }

    .banniere--pos-centre::before {
        background: linear-gradient(to right,
            rgba(255,255,255,0.05) 0%,
            rgba(255,255,255,1) 50%,
            rgba(255,255,255,0.05) 100%);
    }

    .banniere:not(.banniere--no-media) .banniere__texte {
        margin-top: 0;
        padding: 0;
        background: none;
        border-radius: 0;
        box-shadow: none;
    }
}

.banniere--pos-gauche  .banniere__texte { margin-right: auto; text-align: left; }
.banniere--pos-droite  .banniere__texte { margin-left:  auto; text-align: right; }
.banniere--pos-centre  .banniere__texte { margin-inline: auto; text-align: center; }

.banniere__lead {
    max-width: 70rem;
}

.banniere--pos-droite .banniere__lead { margin-left: auto; }
.banniere--pos-centre .banniere__lead { margin-inline: auto; }

.banniere--no-media {
    min-height: 0;
}

.banniere--no-media.banniere._accueil {
    min-height: 0;
}

.banniere--no-media .banniere__texte {
    color: inherit;
}


/* ==========================================================
   BANNIÈRE CARROUSEL (#banniere-carrousel)
   ========================================================== */
#banniere-carrousel {
	position: relative;
	top: 0;
	width: 100%;
	overflow: hidden;
	color: var(--couleur-blanc);
	height: 400px;
	min-height: 400px;
}

#banniere-carrousel._accueil {
	height: 550px;
	min-height: 550px;
}

.banniere-slider {
	position: relative;
	height: 100%;
}

.banniere-slider .slide-item {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	min-height: 400px;
	padding-top: 80px;
	padding-bottom: 80px;
	display: flex;
	align-items: start;
	background-size: cover;
	background-repeat: no-repeat;
	background-position: center center;
	opacity: 0;
	transition: opacity 0.8s ease;
	pointer-events: none;
}

.banniere-slider .slide-item.is-active {
	opacity: 1;
	pointer-events: auto;
}

.banniere-slider .slide-item h1,
.banniere-slider .slide-item .h1 {
	max-width: 800px;
}

.banniere-slider .slide-item p {
	max-width: 650px;
}

.banniere-slider .container {
	width: 100%;
}

.banniere-slider .custom-arrow {
	top: 30px;
}

@media (min-width: 992px) {
	#banniere-carrousel {
		height: calc(40vh - var(--header-height));
		min-height: 400px;
	}

	#banniere-carrousel._accueil {
		height: calc(70vh - var(--header-height));
		min-height: 550px;
	}

	.banniere-slider .slide-item {
		min-height: calc(40vh - var(--header-height));
		padding-top: 100px;
		padding-bottom: 100px;
	}

	#banniere-carrousel._accueil .slide-item {
		min-height: calc(70vh - var(--header-height));
		padding-top: 120px;
		padding-bottom: 120px;
	}
}

@media (min-width: 1024px) {
	.banniere-slider .custom-arrow {
		top: 50%;
	}
}


/* ==========================================================
   MAIN — Listes (#main)
   ========================================================== */
#main ul:not(.tableau) li {
	position: relative;
	margin-top: 10px;
	padding-left: 20px;
}

#main ul:not(.tableau, .custom-dots) li:before {
	content: '';
	display: block;
	position: absolute;
	top: 9px;
	left: 5px;
	width: 5px;
	height: 5px;
	border-right: 1px solid var(--couleur-primaire);
	border-bottom: 1px solid var(--couleur-primaire);
	transform: rotateZ(-45deg);
}


/* ==========================================================
   WYSIWYG
   ========================================================== */
.wysiwyg .cta-primaire {
	text-decoration: none;
}

.wysiwyg .container.bordure-couleur {
	width: calc(100% - 60px);
}

@media (min-width: 992px) {
	.wysiwyg .container.bordure-couleur {
		width: 100%;
	}
}



/* ==========================================================
   ACCORDÉON
   ========================================================== */
.accordeon-wrapper .accordeon-categorie:not(:first-of-type) {
	margin: 40px 0;
}

.accordeon-item {
	border: 1px solid #d9d9d9;
	background-color: var(--couleur-blanc);
	margin-bottom: 20px;
	border-radius: 1.2rem;
	overflow: hidden;
	transition: border-color 0.2s ease;
}

.accordeon-item:hover {
	border-color: var(--couleur-secondaire);
}

.accordeon-titre {
	width: 100%;
	text-align: left;
	background: none;
	border: none;
	color: var(--couleur-noir);
	padding: 1.8rem 2.4rem;
	cursor: pointer;
	display: flex;
	justify-content: flex-start;
	align-items: center;
	font-weight: 700;
	font-size: var(--global-font-size);
	font-family: var(--font-family-primaire);
	transition: background-color 0.2s ease, color 0.2s ease;
}

.accordeon-titre span {
	font-size: unset;
	color: var(--couleur-noir);
}

.accordeon-titre .arrow {
	width: 0;
	height: 0;
	right: 20px;
	flex-shrink: 0;
	margin-right: 1.4rem;
	border-top: 8px solid transparent;
	border-bottom: 8px solid transparent;
	border-left: 12px solid var(--couleur-noir);
	transition: transform 0.25s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.accordeon-item.open {
	background-color: var(--couleur-blanc);
}

.accordeon-item.open .accordeon-titre,
.accordeon-item.open .accordeon-titre span {
	background-color: var(--couleur-primaire);
	color: var(--couleur-blanc);
}

.accordeon-item.open .arrow {
	transform: rotate(90deg);
	border-left-color: var(--couleur-blanc);
}

.accordeon-contenu {
	max-height: 0;
	overflow: hidden;
	transition: max-height .35s ease;
}

.accordeon-inner {
	padding: 2rem 2.4rem;
	color: var(--couleur-noir);
	background-color: var(--couleur-blanc);
}


/* ==========================================================
   BLOC TRIPLE
   ========================================================== */
.bloc-triple .contenu {
	padding: 0 15px;
	position: relative;
	transition: transform 0.3s ease;
}

.bloc-triple .contenu:not(:last-child) {
	margin-bottom: 40px;
}

.bloc-triple .contenu:hover {
	transform: translateY(-6px);
}

/* Image ronde avec anneau coloré */
.bloc-triple img {
	width: 180px;
	height: 180px;
	object-fit: cover;
	border-radius: 50%;
	border: 3px solid var(--couleur-noir);
	padding: 6px;
	background: var(--couleur-primaire);
	box-shadow:
		0 0 0 3px var(--couleur-noir),
		6px 6px 0 3px var(--couleur-noir);
	transition: background 0.35s ease, box-shadow 0.35s ease, transform 0.35s ease;
	margin-bottom: 2rem;
}

.bloc-triple .contenu:hover img {
	background: var(--couleur-secondaire);
	box-shadow:
		0 0 0 3px var(--couleur-noir),
		8px 8px 0 3px var(--couleur-noir);
	transform: rotate(-3deg) scale(1.04);
}

.bloc-triple .contenu-texte {
	margin: 0;
}

.bloc-triple .contenu-texte p {
	padding-top: 0;
}

/* Mobile : séparateur horizontal en gradient entre items */
.bloc-triple .contenu:not(:last-of-type)::after {
	content: '';
	position: absolute;
	left: 15%;
	right: 15%;
	bottom: -20px;
	height: 1px;
	background: linear-gradient(to right,
		transparent 0%,
		var(--couleur-secondaire) 30%,
		var(--couleur-secondaire) 70%,
		transparent 100%);
	opacity: 0.35;
}

/* Fonds sombres : ligne primaire (lime) */
.bloc-triple.bg-secondaire .contenu:not(:last-of-type)::after,
.bloc-triple.bg-noir .contenu:not(:last-of-type)::after {
	background: linear-gradient(to right,
		transparent 0%,
		var(--couleur-primaire) 30%,
		var(--couleur-primaire) 70%,
		transparent 100%);
	opacity: 0.6;
}

@media (min-width: 992px) {
	.bloc-triple .contenu {
		padding: 40px 30px;
	}

	.bloc-triple .contenu:not(:last-child) {
		margin-bottom: 0;
	}

	/* Desktop : séparateur vertical entre colonnes */
	.bloc-triple .contenu:not(:last-of-type)::after {
		left: auto;
		right: 0;
		top: 15%;
		bottom: auto;
		height: 70%;
		width: 1px;
		background: linear-gradient(to bottom,
			transparent 0%,
			var(--couleur-secondaire) 30%,
			var(--couleur-secondaire) 70%,
			transparent 100%);
	}

	.bloc-triple.bg-secondaire .contenu:not(:last-of-type)::after,
	.bloc-triple.bg-noir .contenu:not(:last-of-type)::after {
		background: linear-gradient(to bottom,
			transparent 0%,
			var(--couleur-primaire) 30%,
			var(--couleur-primaire) 70%,
			transparent 100%);
	}
}

/* Adaptations selon le fond */
.bg-noir .bloc-triple img {
	background: var(--couleur-primaire);
	border-color: var(--couleur-blanc);
	box-shadow:
		0 0 0 3px var(--couleur-blanc),
		6px 6px 0 3px var(--couleur-blanc);
}

.bg-noir .bloc-triple .contenu:hover img {
	background: var(--couleur-secondaire);
	box-shadow:
		0 0 0 3px var(--couleur-blanc),
		8px 8px 0 3px var(--couleur-blanc);
}

.bg-noir .bloc-triple .contenu:not(:last-of-type)::after {
	background: linear-gradient(to bottom,
			transparent 0%,
			rgba(255, 255, 255, 0.3) 30%,
			rgba(255, 255, 255, 0.3) 70%,
			transparent 100%);
}

.bg-primaire .bloc-triple img {
	background: var(--couleur-secondaire);
}

.bg-primaire .bloc-triple .contenu:hover img {
	background: var(--couleur-blanc);
}

.bg-secondaire .bloc-triple img {
	background: var(--couleur-primaire);
}

.bg-secondaire .bloc-triple .contenu:hover img {
	background: var(--couleur-blanc);
}


/* ==========================================================
   BLOC DOUBLE
   ========================================================== */
/* Aucun style spécifique — utilise les classes Bootstrap + utilitaires globaux */



/* ==========================================================
   BLOC STATS
   ========================================================== */
.bloc-stats__item {
	padding: 30px 15px;
}

.bloc-stats__chiffre {
	display: block;
	font-size: clamp(3rem, 6vw, 6rem);
	font-weight: 800;
	line-height: 1;
	color: var(--couleur-noir);
	margin-bottom: 1rem;
}

.bloc-stats__label {
	display: block;
	font-size: clamp(1.4rem, 1.2vw, 1.8rem);
	line-height: 1.4em;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

.bg-noir .bloc-stats__label {
	color: var(--couleur-blanc);
}

.bg-secondaire .bloc-stats__chiffre,
.bg-secondaire .bloc-stats__label {
	color: var(--couleur-blanc);
}

.bg-blanc .bloc-stats__chiffre {
	color: var(--couleur-primaire);
}


/* ==========================================================
   BLOC PROCESSUS
   ========================================================== */
.bloc-processus__item {
	padding: 30px 20px;
	position: relative;
}

/* Mobile : pas de padding-top sur le premier item ni de padding-bottom sur le dernier */
.bloc-processus__item:first-child {
	padding-top: 0;
}
.bloc-processus__item:last-child {
	padding-bottom: 0;
}

/* Tablet (2 cols) : pas de padding-top sur la rangée du haut, pas de padding-bottom sur celle du bas. Le rule desktop suivant override en mettant 0 partout. */
@media (min-width: 768px) {
	.bloc-processus__item:nth-child(-n+2) {
		padding-top: 0;
	}
	.bloc-processus__item:nth-last-child(-n+2) {
		padding-bottom: 0;
	}
}

/* Desktop (4 cols) : pas de padding vertical sur aucun item */
@media (min-width: 992px) {
	.bloc-processus__item {
		padding-top: 0;
		padding-bottom: 0;
	}
}

.bloc-processus__inner {
	transition: transform 0.2s ease-in-out;
}

.bloc-processus__item:hover .bloc-processus__inner {
	transform: translateY(-4px);
}

.bloc-processus__numero {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 60px;
	height: 60px;
	margin: 0 auto 2rem;
	border-radius: 0;
	border: 3px solid var(--couleur-noir);
	background-color: var(--couleur-primaire);
	color: var(--couleur-noir);
	font-size: 2.6rem;
	font-weight: 800;
	line-height: 1;
	transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, color 0.15s ease-in-out;
}

.bg-noir .bloc-processus__numero,
.bg-secondaire .bloc-processus__numero {
	color: var(--couleur-noir);
}

.bloc-processus__item:hover .bloc-processus__numero {
	transform: rotate(-3deg) scale(1.05);
	background-color: var(--couleur-secondaire);
	color: var(--couleur-blanc);
}

.bloc-processus__titre {
	font-weight: 700;
	margin-bottom: 1.5rem;
}

.bloc-processus__description {
	font-size: 1.6rem;
	line-height: 2.4rem;
}

@media (min-width: 768px) {
	.bloc-processus__numero {
		width: 70px;
		height: 70px;
		font-size: 3rem;
	}
}

/* Mobile (1 colonne) par défaut — pointillés verticaux entre les items */
.bloc-processus__item:not(:last-child)::after {
	content: '';
	position: absolute;
	left: calc(50% - 1px);
	bottom: 0;
	height: 22px;
	border-left: 2px dashed var(--couleur-secondaire);
}
.bloc-processus__item:not(:first-child)::before {
	content: '';
	position: absolute;
	left: calc(50% - 1px);
	top: 0;
	height: 22px;
	border-left: 2px dashed var(--couleur-secondaire);
}
.bg-noir .bloc-processus__item:not(:last-child)::after,
.bg-noir .bloc-processus__item:not(:first-child)::before,
.bg-secondaire .bloc-processus__item:not(:last-child)::after,
.bg-secondaire .bloc-processus__item:not(:first-child)::before {
	border-color: rgba(255, 255, 255, 0.25);
}

/* Tablet/Desktop (2+ cols) — pas de pointillés verticaux */
@media (min-width: 768px) {
	.bloc-processus__item::before,
	.bloc-processus__item::after {
		display: none;
	}
}

@media (min-width: 992px) {
	.bloc-processus__item {
		position: relative;
	}

	/* Pointillés : côté droit du cercle jusqu'au bord de la colonne (centre du cercle = 35px) */
	.bloc-processus__item:not(:last-child)::after {
		content: '';
		position: absolute;
		left: calc(50% + 38px);
		right: 0;
		top: 35px;
		bottom: auto;
		border-left: none;
		border-top: 2px dashed var(--couleur-secondaire);
	}

	/* Pointillés : bord gauche de la colonne jusqu'au cercle */
	.bloc-processus__item:not(:first-child)::before {
		content: '';
		position: absolute;
		right: calc(50% + 38px);
		left: 0;
		top: 35px;
		height: auto;
		border-left: none;
		border-top: 2px dashed var(--couleur-secondaire);
	}

	/* Fonds clairs — pointillés navy */
	.bg-blanc .bloc-processus__item:not(:last-child)::after,
	.bg-blanc .bloc-processus__item:not(:first-child)::before,
	.bg-primaire .bloc-processus__item:not(:last-child)::after,
	.bg-primaire .bloc-processus__item:not(:first-child)::before {
		border-color: var(--couleur-secondaire);
	}

	/* Fonds sombres — pointillés blancs */
	.bg-noir .bloc-processus__item:not(:last-child)::after,
	.bg-noir .bloc-processus__item:not(:first-child)::before,
	.bg-secondaire .bloc-processus__item:not(:last-child)::after,
	.bg-secondaire .bloc-processus__item:not(:first-child)::before {
		border-color: rgba(255, 255, 255, 0.25);
	}
}

.bg-blanc .bloc-processus__numero {
	background-color: var(--couleur-primaire);
	color: var(--couleur-noir);
}

/* ==========================================================
   IMAGE-TEXTE ALTERNANCE
   ========================================================== */
.inversement {
	display: flex;
	flex-direction: row-reverse;
}

.alternance+.alternance {
	margin-top: 20px;
}

.alternance .texte {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding-bottom: 35px;
}

.image-texte-alternance img {
	height: 100%;
	object-fit: contain;
}

/* Slider d'images dans alternance */
.alternance-slider {
	position: relative;
	width: 100%;
	height: 100%;
	flex: 1;
	min-height: 300px;
}

.alternance-slider .slide-image {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	opacity: 0;
	transition: opacity 0.8s ease;
	pointer-events: none;
}

.alternance-slider .slide-image.is-active {
	opacity: 1;
	pointer-events: auto;
}

.alternance-slider .slide-image img {
	width: 100%;
	height: 100%;
	max-height: none;
	object-fit: cover;
	display: block;
}

/* Image unique dans alternance */
.alternance .col-12.col-lg-6>img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	flex: 1;
}

/* Flèches carrousel */
.custom-arrow {
	position: absolute;
	width: 40px;
	height: 40px;
	z-index: 10;
	top: 50%;
	transform: translateY(-50%);
	border: none;
	border-radius: 50%;
	transition: all 0.3s ease;
	cursor: pointer;
	background: rgba(255, 255, 255, 0.25);
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
	padding: 0;
	outline: none;
	opacity: 0.8;
}

.custom-arrow:hover {
	background: rgba(255, 255, 255, 0.25);
	transform: translateY(-50%) scale(1.1);
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

.custom-arrow-prev {
	left: 20px;
}

.custom-arrow-next {
	right: 20px;
}

.custom-arrow-prev::after {
	content: '';
	position: absolute;
	top: 50%;
	left: 45%;
	transform: translate(-50%, -50%);
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 8px 12px 8px 0;
	border-color: transparent var(--couleur-secondaire) transparent transparent;
	transition: border-color 0.2s ease;
}

.custom-arrow-next::after {
	content: '';
	position: absolute;
	top: 50%;
	left: 55%;
	transform: translate(-50%, -50%);
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 8px 0 8px 12px;
	border-color: transparent transparent transparent var(--couleur-secondaire);
	transition: border-color 0.2s ease;
}

@media (min-width: 992px) {
	.alternance+.alternance {
		margin-top: 50px;
	}

	.alternance .texte {
		padding: 30px;
	}

	.alternance .row {
		min-height: 500px;
	}

	.alternance .row>.col-12.col-lg-6:has(.texte) {
		padding: 30px 50px;
	}

	.custom-arrow {
		width: 50px;
		height: 50px;
		opacity: 1;
	}

	.custom-arrow-prev::after {
		border-width: 10px 15px 10px 0;
	}

	.custom-arrow-next::after {
		border-width: 10px 0 10px 15px;
	}
}


/* ==========================================================
   TABLEAU LISTE
   ========================================================== */
/* .tableau-liste+.wysiwyg,
.wysiwyg+.tableau-liste {
	padding-top: 0;
} */

.tableau-liste,
.tableau-liste+.wysiwyg {
	padding-bottom: 70px;
}

.tableau-liste+.tableau-liste {
	padding-top: 0;
	padding-bottom: 70px;
}

.tableau-liste+footer {
	margin-top: 30px;
}

.tableau {
	margin-top: 2rem;
	margin-bottom: 3rem;
	padding: 0;
}

.tableau li {
	list-style-type: none;
	margin: 0;
	padding: 1.2rem 0;
	display: flex;
	justify-content: space-between;
	align-items: center;
	position: relative;
	border-bottom: 1px solid rgba(0, 0, 0, 0.12);
	font-size: 1.5rem;
	color: var(--couleur-noir);
	font-weight: 500;
	transition: background-color 0.15s ease, color 0.15s ease, padding-left 0.15s ease;
}

.tableau li:last-child {
	border-bottom: none;
}

/* Ligne verticale centrale */
.tableau li::after {
	content: '';
	position: absolute;
	left: 50%;
	top: 15%;
	height: 70%;
	width: 1px;
	background: linear-gradient(to bottom,
		transparent 0%,
		var(--couleur-secondaire) 30%,
		var(--couleur-secondaire) 70%,
		transparent 100%);
	opacity: 0.35;
}

.tableau li:hover {
	background-color: var(--couleur-primaire);
	padding-left: 8px;
}

.tableau li span {
	width: 48%;
}

.tableau li span:first-child {
	font-weight: 700;
	letter-spacing: -0.02em;
}

.tableau li span:last-child {
	font-weight: 500;
	text-align: right;
}

/* Adaptations fond sombre */
.bg-noir .tableau li,
.bg-secondaire .tableau li {
	border-bottom-color: rgba(255, 255, 255, 0.15);
	color: var(--couleur-blanc);
}

.bg-noir .tableau li::after,
.bg-secondaire .tableau li::after {
	background: linear-gradient(to bottom,
		transparent 0%,
		rgba(255, 255, 255, 0.4) 30%,
		rgba(255, 255, 255, 0.4) 70%,
		transparent 100%);
	opacity: 1;
}

.bg-noir .tableau li:hover,
.bg-secondaire .tableau li:hover {
	background-color: rgba(255, 255, 255, 0.08);
}


/* ==========================================================
   BLOC VIDÉOS
   ========================================================== */
.videos-grid {
	display: flex;
	flex-wrap: wrap;
	gap: 20px;
	justify-content: space-around;
}

.video-item {
	flex: 0 0 calc(50% - 10px);
	max-width: calc(50% - 10px);
	min-width: 140px;
}

.videos-grid[data-count="1"] .video-item,
.videos-grid[data-count="2"] .video-item,
.videos-grid[data-count="3"] .video-item {
	flex: 0 0 280px;
	max-width: 280px;
}

.video-wrapper {
	height: 100%;
	display: flex;
	border: 4px solid var(--couleur-noir);
	flex-direction: column;
}

.video-container.short {
	position: relative;
	padding-bottom: 177.78%;
	height: 0;
	overflow: hidden;
	background: var(--couleur-noir);
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.video-container iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

@media (min-width: 768px) {
	.bloc-videos {
		padding: 40px 0;
	}

	.videos-grid {
		gap: 15px;
		justify-content: center;
	}

	.video-item {
		flex: 0 0 calc(33.333% - 20px);
		max-width: calc(33.333% - 20px);
		min-width: 200px;
	}

	.videos-grid[data-count="1"] .video-item,
	.videos-grid[data-count="2"] .video-item {
		flex: 0 0 260px;
		max-width: 260px;
	}

}

@media (min-width: 992px) {
	.video-item {
		flex: 0 0 calc(25% - 20px);
		max-width: calc(25% - 20px);
	}
}


/* ==========================================================
   CARROUSEL ICÔNES / LOGO CAROUSEL (partenaires)
   ========================================================== */
.logo-carousel {
	margin-top: 30px;
	display: flex;
	align-items: center;
	flex-wrap: wrap;
}

.logo-carousel .inner {
	display: flex;
	justify-content: center;
	align-items: center;
}

.logo-carousel img {
	min-height: 100px;
	max-height: 20vh;
	width: 100%;
	object-fit: contain;
}

.inner.partenaire {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 100%;
	padding: 25px 15px;
	color: var(--couleur-blanc);
}

.dots-area {
	display: flex;
	height: 30px;
	justify-content: center;
	align-items: center;
}

.cs-dot {
	margin: 0 7px;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background-color: var(--couleur-primaire);
	border: 2px solid var(--couleur-primaire);
	transition: opacity .3s ease;
	opacity: 0.5;
	cursor: pointer;
	font-size: 0;
	-webkit-appearance: none;
	appearance: none;
	padding: 0;
}

.cs-dot.is-active {
	opacity: 1;
}

@media (min-width: 992px) {
	.logo-carousel .inner {
		padding: 70px 30px;
		border-top-left-radius: 50px;
		border-top-right-radius: 50px;
		border-bottom-left-radius: 50px;
	}

	.cs-dot {
		width: 10px;
		height: 10px;
	}
}


/* ==========================================================
   BLOC TEXTE AGRANDI
   ========================================================== */
.bloc-simple-texte-agrandi {
	text-align: center;
}


/* ==========================================================
   RÉSEAUX SOCIAUX
   ========================================================== */
.reseaux-sociaux .logo-social {
	width: 40px;
	transform: translateY(0);
	transition: .3s ease;
}

.reseaux-sociaux .logo-social:hover {
	transform: translateY(-5px);
	transition: .3s ease;
}


/* ==========================================================
   TRAITEMENTS — Bannière single, page catégorie, cartes
   ========================================================== */

/* Bannière single traitement */
#banniere-traitement .banniere-traitement__texte {
	margin-bottom: 30px;
}

#banniere-traitement .banniere-traitement__texte-col,
#banniere-produit .banniere-produit__texte-col {
	margin-bottom: 3rem;
}

@media (min-width: 992px) {
	#banniere-traitement .banniere-traitement__texte-col,
	#banniere-produit .banniere-produit__texte-col {
		margin-bottom: 0;
	}
}

#banniere-traitement img {
	max-width: 100%;
	height: auto;
	display: block;
}

@media (min-width: 992px) {
	#banniere-traitement {
		padding: 100px 0;
	}
}

/* Bannière catégorie */
#banniere-categorie .lead {
	font-size: 2rem;
	font-weight: 500;
	color: var(--couleur-primaire);
	margin-bottom: 25px;
	line-height: 1.4em;
}

#banniere-categorie .taxonomy-description {
	margin-top: 0;
}

#banniere-categorie img {
	max-width: 100%;
	height: auto;
	display: block;
}

@media (min-width: 992px) {
	#banniere-categorie {
		padding: 80px 0;
	}
}

/* Section catégorie de traitements (bloc flexible) */
.bloc-section-categorie-traitements h2 {
	text-align: center;
}

.bloc-section-categorie-traitements__description {
	text-align: center;
	max-width: 700px;
	margin: 0 auto 40px;
}

.bloc-section-categorie-traitements__grille {
	margin-top: 20px;
}

/* Délimitation de deux sections catégorie consécutives : espace restauré + filet fin
   (contre le collapse padding-top:0 des .bg-* adjacents de même fond) */
.bloc-section-categorie-traitements + .bloc-section-categorie-traitements {
	padding-top: 0;
}

.bloc-section-categorie-traitements + .bloc-section-categorie-traitements > .container::before {
	content: "";
	display: block;
	width: 30%;
	height: 1px;
	margin: 0 auto 50px;
	background: color-mix(in srgb, var(--couleur-noir) 20%, transparent);
}

@media (min-width: 992px) {
	.bloc-section-categorie-traitements + .bloc-section-categorie-traitements > .container::before {
		margin-bottom: 80px;
	}
}

/* Bandeau CTA fin de page catégorie */
.bandeau-cta-categorie {
	text-align: center;
}

.bandeau-cta-categorie h2 {
	color: var(--couleur-blanc);
}

.bandeau-cta-categorie p {
	color: var(--couleur-blanc);
	max-width: 600px;
	margin: 0 auto 25px;
}


/* ==========================================================
   PRODUITS — Bannière single, sections, page marque, cartes, bandeau
   ========================================================== */

/* Bannière single produit */
#banniere-produit .banniere-produit__prix {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 1rem;
	margin: 0 0 1.5rem;
}

#banniere-produit .banniere-produit__prix-promo {
	color: var(--couleur-tertiaire);
	font-family: var(--font-family-headline);
	font-size: 2.4rem;
	font-weight: 700;
}

#banniere-produit .banniere-produit__prix-regulier {
	color: #999;
	font-size: 1.7rem;
	text-decoration: line-through;
}

/* Prix single traitement (prix seul ou barré + promo) */
#banniere-traitement .banniere-traitement__prix {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 1rem;
	margin: 0 0 1.5rem;
}

#banniere-traitement .banniere-traitement__prix-promo {
	color: var(--couleur-tertiaire);
	font-family: var(--font-family-headline);
	font-size: 2.4rem;
	font-weight: 700;
}

#banniere-traitement .banniere-traitement__prix-regulier {
	color: #999;
	font-size: 1.7rem;
	text-decoration: line-through;
}

#banniere-produit .banniere-produit__texte {
	margin-bottom: 30px;
}

#banniere-produit .banniere-produit__media {
	position: relative;
	max-width: 300px;
	margin: 0 auto;
	border-radius: 1.2rem;
	overflow: hidden;
}

#banniere-produit .banniere-produit__media img {
	max-width: 100%;
	width: 100%;
	height: auto;
	display: block;
	margin: 0;
	border-radius: 0;
}

#banniere-traitement .banniere-traitement__media {
	position: relative;
	border-radius: 1.2rem;
	overflow: hidden;
}

#banniere-traitement .banniere-traitement__media img {
	width: 100%;
	height: auto;
	display: block;
	border-radius: 0;
}

@media (min-width: 992px) {
	#banniere-produit {
		padding: 100px 0;
	}

	#banniere-produit .banniere-produit__image-col {
		position: sticky;
		top: calc(var(--header-height) + 2rem);
		align-self: flex-start;
	}
}

/* Bannière page marque */
#banniere-marque h1 {
	margin-bottom: 25px;
}

#banniere-marque .lead {
	font-size: 2rem;
	font-weight: 500;
	color: var(--couleur-primaire);
	margin-bottom: 25px;
	line-height: 1.4em;
}

#banniere-marque .taxonomy-description {
	margin-top: 0;
}

#banniere-marque img {
	max-width: 100%;
	height: auto;
	display: block;
}

@media (min-width: 992px) {
	#banniere-marque {
		padding: 80px 0;
	}
}

/* Bloc grille marques (hub) */
.bloc-grille-marques h2 {
	text-align: center;
}

.bloc-grille-marques__description {
	text-align: center;
	max-width: 700px;
	margin: 0 auto 40px;
}

.bloc-grille-marques__grille {
	margin-top: 20px;
}

/* ============================================
   BLOC GRILLE CATÉGORIES DE TRAITEMENTS
   Spec : 2026-06-20-bloc-grille-categories-traitements
   ============================================ */

.bloc-grille-categories-traitements h2 {
	text-align: center;
}

.bloc-grille-categories-traitements__description {
	text-align: center;
	max-width: 70rem;
	margin: 0 auto 5rem;
}

.bloc-grille-categories-traitements__grille {
	--bs-gutter-x: 3rem;
	--bs-gutter-y: 3rem;
}

.carte-categorie-traitement {
	display: block;
	position: relative;
	aspect-ratio: 4 / 3;
	border-radius: 1.2rem;
	overflow: hidden;
	background: #e5e5e5;
	box-shadow: 0 2px 12px rgba(0,0,0,0.06);
	text-decoration: none;
	color: var(--couleur-blanc);
	transition: transform .25s ease, box-shadow .25s ease;
}

.carte-categorie-traitement:hover {
	transform: translateY(-4px);
	box-shadow: 0 6px 20px rgba(0,0,0,0.10);
	color: var(--couleur-blanc);
}

.carte-categorie-traitement__media {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	z-index: 0;
}

.carte-categorie-traitement::before {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.4);
	z-index: 1;
	transition: background .25s ease;
	pointer-events: none;
}

.carte-categorie-traitement:hover::before {
	background: rgba(0, 0, 0, 0.55);
}

.carte-categorie-traitement__corps {
	position: absolute;
	left: 0;
	bottom: 0;
	padding: 2rem;
	z-index: 2;
	text-align: left;
}

.carte-categorie-traitement h3.carte-categorie-traitement__titre {
	font-family: var(--font-family-headline);
	color: var(--couleur-blanc);
	margin: 0;
}

.carte-categorie-traitement__cta {
	display: inline-block;
	margin-top: .8rem;
	color: var(--couleur-blanc);
	font-weight: 600;
	opacity: 0;
	transform: translateY(.4rem);
	transition: opacity .25s ease, transform .25s ease;
}

.carte-categorie-traitement:hover .carte-categorie-traitement__cta {
	opacity: 1;
	transform: translateY(0);
}

@media (hover: none) {
	.carte-categorie-traitement__cta {
		opacity: 1;
		transform: none;
	}
}

/* Bandeau disponible clinique */
.bandeau-disponible-clinique {
	text-align: center;
}

.bandeau-disponible-clinique h2 {
	color: var(--couleur-blanc);
}

.bandeau-disponible-clinique__message {
	color: var(--couleur-blanc);
	max-width: 600px;
	margin: 0 auto 25px;
}

.bandeau-disponible-clinique__telephone {
	color: var(--couleur-blanc);
	margin-bottom: 25px;
}

.bandeau-disponible-clinique__telephone a {
	color: var(--couleur-blanc);
	font-weight: 700;
	text-decoration: underline;
}

/* ============================================
   BLOC PROMOTION VEDETTE (accueil)
   Spec : 2026-06-20-refonte-bloc-promotion-vedette
   ============================================ */

.bloc-promotion-vedette__titre-section {
    text-align: center;
    margin-bottom: 1.5rem;
}

.bloc-promotion-vedette__description-section {
    text-align: center;
    max-width: 70rem;
    margin: 0 auto 5rem;
}

.bloc-promotion-vedette__contenu {
    --bs-gutter-x: 4rem;
}

.bloc-promotion-vedette__media img {
    width: 100%;
    height: auto;
    border-radius: 1.2rem;
    display: block;
}

.bloc-promotion-vedette__titre {
    margin-bottom: 2rem;
}

.bloc-promotion-vedette__texte {
    margin-bottom: 3rem;
}

.bloc-promotion-vedette__ctas {
    display: flex;
    flex-wrap: wrap;
    gap: 1.5rem;
}

/* Mobile par défaut : espace sous l'image */
.bloc-promotion-vedette__media {
    margin-bottom: 3rem;
}

@media (min-width: 769px) {
    .bloc-promotion-vedette__media {
        margin-bottom: 0;
    }
}

/* ========== Section vedette + grilles promos (page /promotions/) — sous-projet 9 ========== */
.bloc-vedette-promos__titre {
    margin-bottom: 1.5rem;
}

.bloc-vedette-promos__texte {
    max-width: 70rem;
    margin-bottom: 4rem;
}

.bloc-grille-promos__titre {
    margin-bottom: 3rem;
}

.bloc-vedette-promos__grille,
.bloc-grille-promos__grille {
    --bs-gutter-x: 3rem;
    --bs-gutter-y: 3rem;
}

/* ========== Blog / archives / recherche — sous-projet 10 ========== */
#blog {
    padding: 6rem 0;
}

.blog__entete {
    margin-bottom: 4rem;
}

.blog__entete h1 {
    margin-bottom: 1.5rem;
}

.blog__intro {
    max-width: 70rem;
}

.liste-articles__grille {
    --bs-gutter-x: 3rem;
    --bs-gutter-y: 3rem;
}

.liste-articles__vide {
    font-size: 1.6rem;
}

/* Date au-dessus du titre de la carte article */
.carte--article .carte__meta {
    display: block;
    font-size: 1.3rem;
    color: var(--couleur-secondaire);
    text-transform: uppercase;
    letter-spacing: .05em;
    margin-bottom: .8rem;
}

/* Pagination WP (the_posts_pagination) */
.pagination {
    margin-top: 5rem;
}

.pagination .nav-links {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    align-items: center;
    justify-content: center;
}

.pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 4rem;
    height: 4rem;
    padding: 0 1.2rem;
    border-radius: .8rem;
    border: 1px solid rgba(42, 107, 58, 0.2);
    color: var(--couleur-primaire);
    font-weight: 600;
    text-decoration: none;
    transition: background-color .15s ease;
}

.pagination .page-numbers:hover {
    background: rgba(42, 107, 58, 0.08);
}

.pagination .page-numbers.current {
    background: var(--couleur-primaire);
    color: var(--couleur-blanc);
    border-color: var(--couleur-primaire);
}

.pagination .page-numbers.dots {
    border: none;
}

/* ========== Single article : bannière héro + colonne de lecture ========== */
#banniere-article {
    padding: 4rem 0;
}

.banniere-article__meta {
    margin-top: 1.5rem;
    font-size: 1.3rem;
    color: var(--couleur-secondaire);
    text-transform: uppercase;
    letter-spacing: .05em;
}

.banniere-article__texte-col {
    margin-bottom: 3rem;
}

.banniere-article__media {
    border-radius: 1.2rem;
    overflow: hidden;
}

.banniere-article__media img {
    width: 100%;
    height: auto;
    max-height: 42rem;
    object-fit: cover;
    display: block;
}

@media (min-width: 992px) {
    #banniere-article {
        padding: 7rem 0;
    }
    .banniere-article__texte-col {
        margin-bottom: 0;
    }
}

#single-article {
    padding: 2rem 0 6rem;
}

.single-article {
    max-width: 78rem;
    margin: 0 auto;
}

.single-article__contenu {
    margin-bottom: 4rem;
}

.single-article__pied {
    border-top: 1px solid rgba(44, 44, 44, 0.1);
    padding-top: 2.5rem;
}

/* ============================================
   STANDARD CARTE (iter 9)
   Spec : 2026-06-21-standard-cartes
   ============================================ */

.row:has(> [class*="col-"] > .carte) {
    --bs-gutter-y: 3rem;
}

.carte {
    display: flex;
    flex-direction: column;
    height: 100%;
    background: var(--couleur-blanc);
    border-radius: 1.2rem;
    overflow: hidden;
    box-shadow: 0 2px 12px rgba(0,0,0,0.06);
    text-decoration: none;
    color: var(--couleur-noir);
    transition: transform .25s ease, box-shadow .25s ease;
}

.carte:hover {
    transform: translateY(-4px);
    box-shadow: 0 6px 20px rgba(0,0,0,0.10);
    color: var(--couleur-noir);
}

.carte__image {
    position: relative;
    aspect-ratio: 4 / 3;
    overflow: hidden;
}

.carte__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Article sans image à la une (carte + single) : dégradé beige + logo estompé */
.carte__image--defaut,
.banniere-article__media--defaut {
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--degrade-beige-fonce);
    background-color: var(--couleur-beige-fonce);
}

.banniere-article__media--defaut {
    aspect-ratio: 4 / 3;
    max-height: 42rem;
}

.carte .carte__image--defaut img,
.banniere-article__media--defaut img {
    width: 55%;
    height: auto;
    object-fit: contain;
    opacity: .5;
    border-radius: 0;
}

/* Produits : images souvent petites/floues si upscale → contain + padding + plafond 300px */
.carte--produit .carte__image {
    background-color: var(--couleur-blanc);
    padding: 1.5rem;
}

.carte--produit .carte__image img {
    width: auto;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    margin: 0 auto;
}

.carte__corps {
    padding: 2rem;
    display: flex;
    flex-direction: column;
    flex: 1;
    text-align: left;
}

.carte h3.carte__titre {
    font-family: var(--font-family-headline);
    color: var(--couleur-tertiaire);
}

.carte__description {
    color: var(--couleur-noir);
    margin: 0 0 2rem;
}

.carte__cta {
    margin-top: auto;
    align-self: flex-start;
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 0.45em;
    padding: 2px 0 6px;
    background-image: linear-gradient(currentColor, currentColor);
    background-size: 100% 2px;
    background-position: left bottom;
    background-repeat: no-repeat;
    color: var(--couleur-secondaire);
    font-family: var(--cta-font-family);
    font-size: var(--cta-font-size);
    font-weight: 800;
    letter-spacing: var(--cta-letter-spacing);
    text-transform: uppercase;
    text-decoration: none;
    transition: background-size 0.35s ease, color 0.2s ease;
}

.carte__cta::after {
    content: '›';
    display: inline-block;
    font-size: 1.4em;
    font-weight: 400;
    line-height: 1;
    flex-shrink: 0;
    transition: transform 0.5s cubic-bezier(0.23, 1, 0.32, 1);
}

.carte:hover .carte__cta {
    background-size: 0% 2px;
}

.carte:hover .carte__cta::after {
    transform: rotate(360deg);
}

/* Isolation des couleurs : la carte (et sa modale liée) reste sur fond blanc, son texte interne reste sombre quel que soit le bg-* parent */
.carte h1, .carte h2, .carte h3, .carte h4, .carte h5, .carte h6,
.carte p, .carte li, .carte span,
.nueeva-modal h1, .nueeva-modal h2, .nueeva-modal h3, .nueeva-modal h4, .nueeva-modal h5, .nueeva-modal h6,
.nueeva-modal p, .nueeva-modal li, .nueeva-modal span {
    color: var(--couleur-noir);
}
.carte h3.carte__titre,
.carte .carte__cta,
.nueeva-modal .nueeva-modal__title {
    color: var(--couleur-tertiaire);
}

/* === Spécificités carte promotion === */

.carte__badge {
    position: absolute;
    top: 1.2rem;
    left: 1.2rem;
    padding: .4rem 1.2rem;
    background: var(--couleur-tertiaire);
    color: var(--couleur-blanc);
    font-size: 1.2rem;
    font-weight: 700;
    text-transform: uppercase;
    border-radius: 999px;
    letter-spacing: .05em;
    z-index: 2;
}

/* Ruban diagonal "accroche" — coin sup. droit de l'image (carte + single) */
.carte__ruban {
    position: absolute;
    top: 2.8rem;
    right: -3.6rem;
    width: 16rem;
    padding: .5rem 0;
    transform: rotate(45deg);
    background: var(--couleur-primaire);
    color: var(--couleur-blanc);
    font-family: var(--font-family-primaire);
    --ruban-fs: .9rem;
    font-size: var(--ruban-fs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    text-align: center;
    line-height: 1.2;
    box-shadow: 0 .2rem .6rem rgba(0, 0, 0, .2);
    z-index: 3;
    pointer-events: none;
}

/* Bat la règle .carte span (0-1-1) qui forcerait le texte en charcoal */
.carte .carte__ruban {
    color: var(--couleur-blanc);
}

/* Réduction auto selon la longueur du texte (classe posée en PHP) */
.carte__ruban--long  { --ruban-fs: .8rem;  letter-spacing: .03em; }
.carte__ruban--xlong { --ruban-fs: .65rem; letter-spacing: 0; }

/* Pastille "Vedette" (coin haut-gauche, lime + texte charcoal) — sous-projet 9 */
.carte__badge--vedette {
    background: var(--couleur-tertiaire);
    color: var(--couleur-noir);
}

/* Ruban plus imposant sur les bannières single (produit / traitement) */
.carte__ruban--single {
    top: 3.4rem;
    right: -4rem;
    width: 18rem;
    padding: .6rem 0;
    --ruban-fs: 1.1rem;
}
.carte__ruban--single.carte__ruban--long  { --ruban-fs: .95rem; }
.carte__ruban--single.carte__ruban--xlong { --ruban-fs: .78rem; }

/* Prix (cartes produit/traitement + bloc vedette accueil) — sous le titre */
.carte__prix {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: .8rem;
    margin-bottom: 1.2rem;
}

.carte .carte__prix-regulier,
.bloc-promotion-vedette .carte__prix-regulier {
    color: #999;
    font-size: 1.5rem;
    text-decoration: line-through;
}

.carte .carte__prix-promo,
.bloc-promotion-vedette .carte__prix-promo {
    font-family: var(--font-family-headline);
    color: var(--couleur-tertiaire);
    font-size: 2.2rem;
    font-weight: 700;
    line-height: 1;
}

/* ============================================
   CARTE — œil "voir bio" (iter bloc-quadruple bio popup)
   ============================================ */

.carte__oeil {
	position: absolute;
	bottom: 1rem;
	left: 1rem;
	width: 4rem;
	height: 4rem;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(255,255,255,0.92);
	color: var(--couleur-primaire);
	border: 0;
	border-radius: 999px;
	cursor: pointer;
	transition: background .2s ease, color .2s ease, transform .2s ease;
	z-index: 2;
}

.carte__oeil svg {
	width: 2rem;
	height: 2rem;
}

.carte__oeil:hover,
.carte__oeil:focus-visible {
	background: var(--couleur-primaire);
	color: var(--couleur-blanc);
	transform: scale(1.05);
}


/* ============================================
   MODALE (Nuëeva — vanilla)
   ============================================ */

.nueeva-modal[hidden] { display: none; }

.nueeva-modal {
	position: fixed;
	inset: 0;
	z-index: 9999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 2rem;
}

.nueeva-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(0,0,0,0.55);
}

.nueeva-modal__panel {
	position: relative;
	background: var(--couleur-blanc);
	border-radius: 1.2rem;
	max-width: 60rem;
	width: 100%;
	max-height: 90vh;
	overflow: auto;
	padding: 4rem 3rem 3rem;
	box-shadow: 0 12px 40px rgba(0,0,0,0.20);
}

.nueeva-modal__close {
	position: absolute;
	top: 1rem;
	right: 1.2rem;
	background: transparent;
	border: 0;
	font-size: 3rem;
	line-height: 1;
	color: var(--couleur-noir);
	cursor: pointer;
	padding: .5rem 1rem;
}

.nueeva-modal__close:hover {
	color: var(--couleur-primaire);
}

.nueeva-modal .nueeva-modal__title {
	font-family: var(--font-family-headline);
	font-size: 2.2rem;
	color: var(--couleur-primaire);
	margin: 0 0 2rem;
}

.carte--quadruple .carte__image img {
	object-position: top;
}

.nueeva-modal__contenu p {
	margin-bottom: 1.5rem;
}

body.has-modal-open {
	overflow: hidden;
}


/* ============================================
   PAGE CONTACT (template page-contact.php)
   ============================================ */

.page-contact__grille {
	--bs-gutter-x: 3rem;
	--bs-gutter-y: 3rem;
}

.page-contact__carte {
	background: var(--couleur-blanc);
	border-radius: 1.2rem;
	padding: 3rem;
	box-shadow: 0 2px 12px rgba(0,0,0,0.06);
	margin-bottom: 3rem;
}

.page-contact__col-aside .page-contact__carte:last-child { margin-bottom: 0; }

.page-contact .page-contact__titre-carte,
.page-contact__section h2.page-contact__titre-carte {
	font-family: var(--font-family-headline);
	font-size: 2.2rem;
	color: var(--couleur-tertiaire);
}

.page-contact__coord-item {
	display: flex;
	gap: 1.5rem;
	margin-bottom: 2rem;
}

.page-contact__coord-item:last-child { margin-bottom: 0; }

.page-contact__icone {
	width: 2.2rem;
	height: 2.2rem;
	color: var(--couleur-primaire);
	flex-shrink: 0;
	margin-top: .4rem;
}

.page-contact__coord-label {
	text-transform: uppercase;
	letter-spacing: .05em;
	font-size: 1.2rem;
	color: #777;
	margin-bottom: .3rem;
}

.page-contact__coord-valeur {
	color: var(--couleur-noir);
	line-height: 1.5;
}

.page-contact__coord-valeur a {
	color: inherit;
	text-decoration: none;
}

.page-contact__coord-valeur a:hover {
	color: var(--couleur-primaire);
	text-decoration: underline;
}

.page-contact__map {
	border-radius: 1.2rem;
	overflow: hidden;
	box-shadow: 0 2px 12px rgba(0,0,0,0.06);
	aspect-ratio: 4 / 3;
}

.page-contact__map iframe {
	width: 100%;
	height: 100%;
	border: 0;
	display: block;
}

.page-contact__heures-bandeau {
	background: #f5f1e8;
	border-radius: 1.2rem;
	padding: 4rem 3rem;
	text-align: center;
}

.page-contact__heures-contenu {
	display: flex;
	justify-content: center;
	gap: 6rem;
	flex-wrap: wrap;
}

.page-contact__heures-contenu p {
	margin: 0;
}


/* ============================================
   FORMULAIRE CF7 — page Contact (style maquette)
   ============================================ */

.wpcf7-form p {
	margin-bottom: 0;
}

/* Layout 2 cols pour les 4 premiers champs (PRÉNOM/NOM/COURRIEL/TÉL),
   pleine largeur pour les suivants (SUJET/MESSAGE/submit) */
.page-contact__col-formulaire .wpcf7-form {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 3rem 2rem;
}

.page-contact__col-formulaire .wpcf7-form > p {
	width: 100%;
	margin: 0;
}

@media (min-width: 576px) {
	.page-contact__col-formulaire .wpcf7-form > p:nth-of-type(-n+4) {
		width: calc(50% - 1rem);
	}
}

.wpcf7-form label {
	display: block;
	font-size: 1.2rem;
	text-transform: uppercase;
	letter-spacing: .05em;
	color: #777;
}

/* L'input/select/textarea (wrappé dans .wpcf7-form-control-wrap par CF7) est séparé du libellé par un petit air */
.wpcf7-form label > .wpcf7-form-control-wrap {
	display: block;
	margin-top: .6rem;
}

.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form input[type="url"],
.wpcf7-form input[type="number"],
.wpcf7-form select,
.wpcf7-form textarea {
	width: 100%;
	padding: 1rem 1.2rem;
	background: var(--couleur-blanc);
	border: 1px solid #ddd;
	border-radius: .6rem;
	font-family: var(--font-family-primaire);
	font-size: 1.5rem;
	color: var(--couleur-noir);
	transition: border-color .2s ease, box-shadow .2s ease;
}

.wpcf7-form input:focus,
.wpcf7-form select:focus,
.wpcf7-form textarea:focus {
	outline: 0;
	border-color: var(--couleur-primaire);
	box-shadow: 0 0 0 2px rgba(42, 107, 58, 0.12);
}

.wpcf7-form textarea {
	min-height: 12rem;
	resize: vertical;
}

.wpcf7-form input[type="submit"],
.wpcf7-form button[type="submit"] {
	display: inline-block;
	padding: 1.4rem 3rem;
	background: var(--couleur-primaire);
	color: var(--couleur-blanc);
	border: 0;
	border-radius: .6rem;
	font-weight: 700;
	font-size: 1.4rem;
	text-transform: uppercase;
	letter-spacing: .05em;
	cursor: pointer;
	transition: background .2s ease;
}

.wpcf7-form input[type="submit"]:hover,
.wpcf7-form button[type="submit"]:hover {
	background: var(--couleur-secondaire);
}

.wpcf7-form .wpcf7-spinner {
	display: inline-block;
	vertical-align: middle;
}

.wpcf7-not-valid-tip {
	color: #c0392b;
	font-size: 1.3rem;
	margin-top: .4rem;
}

.wpcf7 form .wpcf7-response-output {
	margin: 2rem 0 0;
	padding: 1.2rem 1.6rem;
	border-radius: .6rem;
	border-width: 1px;
	font-size: 1.4rem;
}

.grille-produits__ligne--sans-ligne {
	margin-top: 6rem;
}

/* === Breadcrumb (RankMath) === */
.breadcrumb-container {
	padding: 1.5rem 0 0;
	margin-bottom: 3rem;
	font-size: 1.3rem;
	color: var(--couleur-noir);
}

.breadcrumb-container .rank-math-breadcrumb,
.breadcrumb-container .rank-math-breadcrumb p {
	margin: 0;
	font-weight: 400;
}

.breadcrumb-container a {
	color: var(--couleur-noir);
	opacity: 0.6;
	font-weight: 400;
	text-decoration: none;
	background: none;
	background-image: none;
}

.breadcrumb-container a:hover {
	opacity: 1;
	text-decoration: underline;
	color: var(--couleur-primaire);
}

.breadcrumb-container .separator {
	margin: 0 .6rem;
	opacity: 0.4;
}

/* === Marges des sous-titres dans les zones de contenu rédactionnel === */
.accordeon-inner h3,
.accordeon-inner h4,
.accordeon-inner h5,
.accordeon-inner h6,
.banniere-produit__texte-col h3,
.banniere-produit__texte-col h4,
.banniere-produit__texte-col h5,
.banniere-produit__texte-col h6,
.wysiwyg h3,
.wysiwyg h4,
.wysiwyg h5,
.wysiwyg h6,
.bloc-double h3, .bloc-double h4, .bloc-double h5, .bloc-double h6,
.bloc-triple h3, .bloc-triple h4, .bloc-triple h5, .bloc-triple h6,
.bloc-quadruple h3, .bloc-quadruple h4, .bloc-quadruple h5, .bloc-quadruple h6,
.image-texte-alternance h3, .image-texte-alternance h4, .image-texte-alternance h5, .image-texte-alternance h6,
.sections-produit h3, .sections-produit h4, .sections-produit h5, .sections-produit h6 {
	margin-top: 2.4rem;
}

/* Premier sous-titre du conteneur : pas de marge top (collé au début) */
.accordeon-inner > :first-child,
.wysiwyg > :first-child {
	margin-top: 0;
}

/* === Listes à puces (flèche perso) dans les zones de contenu rédactionnel === */
.accordeon-inner ul,
.banniere-produit__texte ul,
.banniere-produit__texte-col ul,
.wysiwyg ul,
.bloc-double ul,
.bloc-triple ul,
.bloc-quadruple ul,
.tableau-liste ul,
.image-texte-alternance ul,
.images-carrousel-texte-alternance ul,
.simple-texte-agrandi ul,
.sections-produit ul {
	list-style: none;
	padding-left: 2.4rem;
	margin: 1rem 0 1.5rem;
}

.accordeon-inner ul > li,
.banniere-produit__texte ul > li,
.banniere-produit__texte-col ul > li,
.wysiwyg ul > li,
.bloc-double ul > li,
.bloc-triple ul > li,
.bloc-quadruple ul > li,
.tableau-liste ul > li,
.image-texte-alternance ul > li,
.images-carrousel-texte-alternance ul > li,
.simple-texte-agrandi ul > li,
.sections-produit ul > li {
	list-style: none;
	position: relative;
	padding-left: 0;
}

.accordeon-inner ul > li::before,
.banniere-produit__texte ul > li::before,
.banniere-produit__texte-col ul > li::before,
.wysiwyg ul > li::before,
.bloc-double ul > li::before,
.bloc-triple ul > li::before,
.bloc-quadruple ul > li::before,
.tableau-liste ul > li::before,
.image-texte-alternance ul > li::before,
.images-carrousel-texte-alternance ul > li::before,
.simple-texte-agrandi ul > li::before,
.sections-produit ul > li::before {
	content: '▸';
	position: absolute;
	left: -1.8rem;
	top: 0;
	color: var(--couleur-primaire);
	font-family: var(--font-family-primaire);
	font-weight: 400;
	font-size: 1em;
	line-height: inherit;
}

.accordeon-inner ol,
.banniere-produit__texte ol,
.banniere-produit__texte-col ol,
.wysiwyg ol,
.bloc-double ol,
.bloc-triple ol,
.bloc-quadruple ol,
.tableau-liste ol,
.image-texte-alternance ol,
.images-carrousel-texte-alternance ol,
.simple-texte-agrandi ol,
.sections-produit ol {
	list-style: decimal outside;
	padding-left: 2.4rem;
	margin: 1rem 0 1.5rem;
}

.accordeon-inner li,
.banniere-produit__texte li,
.banniere-produit__texte-col li,
.wysiwyg li,
.bloc-double li,
.bloc-triple li,
.bloc-quadruple li,
.tableau-liste li,
.image-texte-alternance li,
.images-carrousel-texte-alternance li,
.simple-texte-agrandi li,
.sections-produit li {
	list-style: inherit;
	margin-bottom: 1rem;
}

/* === Coins arrondis globaux sur les images === */
img {
	border-radius: 1.2rem;
}

/* Exceptions : bannières, logos, icônes — pas d'arrondi */
.banniere img,
.banniere__media img,
.banniere-slider img,
#banniere-carrousel img,
.logo img,
.logo-mobile img,
.logo-footer img,
.logo-social,
.cta-header img {
	border-radius: 0;
}


/* ==========================================================
   FOOTER — En dernière position
   ========================================================== */
footer {
	background-color: var(--couleur-noir);
	background-image: var(--degrade-noir);
	padding-top: 50px;
	color: var(--couleur-blanc);
}

footer h2 {
	color: var(--couleur-blanc);
}

footer .footer-heading {
	font-family: var(--h4-font-family);
	font-size: var(--h4-font-size);
	line-height: var(--h4-line-height);
	font-weight: 700;
	color: var(--couleur-blanc);
	margin-bottom: var(--h4-margin-bottom);
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

footer .footer-heading a {
	color: inherit;
	text-decoration: none;
	font-family: var(--h4-font-family);
	font-size: var(--h4-font-size);
	line-height: var(--h4-line-height);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

footer .footer-heading a:hover {
	color: var(--couleur-tertiaire);
	text-decoration: none;
}


footer hr {
	background-color: rgba(255, 255, 255, 0.15);
	opacity: 1;
	margin: 25px 0;
	height: 1px;
}

footer .menu-item a {
	color: var(--couleur-blanc);
	font-family: var(--menu-font-family);
	font-size: 1rem;
	font-weight: var(--menu-font-weight);
	line-height: var(--menu-line-height);
	letter-spacing: var(--menu-letter-spacing);
}

footer .menu-item a:hover,
footer .menu-item.current-menu-item a {
	color: var(--couleur-tertiaire);
}

footer p a {
	color: var(--couleur-tertiaire);
}

footer p a:hover {
	text-decoration: underline;
}

footer .logo-footer {
	max-width: 200px;
	padding-bottom: 15px;
}

footer .logo-social {
	display: inline-block;
	width: 40px;
	height: 40px;
	border: 2px solid white;
	border-radius: 50%;
	background-color: var(--couleur-primaire);
	-webkit-mask-size: 60% 60%;
	mask-size: 60% 60%;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	transform: translateY(0);
	transition: background-color .3s ease, transform .3s ease;
}

footer .logo-social:hover {
	background-color: var(--couleur-tertiaire);
	transform: translateY(-3px);
}

footer .footer-menu-vertical li {
	margin-bottom: 0.6rem;
}

footer .footer-menu-vertical li a {
	font-size: clamp(1.3rem, 1vw, 1.5rem);
	color: var(--couleur-blanc);
	transition: color 0.2s ease;
}

footer .footer-menu-vertical li a:hover {
	color: var(--couleur-tertiaire);
}

footer .footer-contact-item,
footer .footer-contact-item p,
footer .footer-contact-item span,
footer .footer-contact-item li {
	margin-bottom: 0.8rem;
	font-size: clamp(1.3rem, 1vw, 1.5rem);
}

footer .footer-contact-item a {
	color: var(--couleur-blanc);
	font-size: inherit;
	transition: color 0.2s ease;
}

footer .footer-contact-item a:hover {
	color: var(--couleur-tertiaire);
}

footer .footer-main {
	padding-bottom: 0;
}

footer .footer-block-spacer {
	margin-top: 4rem;
}

footer .droits {
	text-align: center;
	padding-bottom: 3rem;
}

footer .droits span {
	font-size: 12px;
	color: rgba(255, 255, 255, 0.5);
}

@media (min-width: 992px) {
	footer {
		padding-top: 100px;
	}
}

@media (min-width: 1200px) {
	footer .menu-item a {
		font-size: 1.4rem;
	}
}