/*
Theme Name: Groupe Carré
Theme URI: https://groupecarre.fr
Author: 1way
Description: Thème WordPress FSE sur-mesure pour le Groupe Carré, négoce agricole indépendant des Hauts-de-France.
Version: 0.1.0
Requires at least: 6.5
Requires PHP: 8.0
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: groupe-carre
*/

/* =========================================================
   Base
   ========================================================= */
body {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
body.has-menu-open {
	overflow: hidden;
}

/* Repère « bloc masqué » affiché dans l'éditeur (le bloc est caché sur le site). */
.gc-block-hidden-badge {
	display: inline-block;
	margin: 0 0 10px;
	padding: 4px 12px;
	background: #FFEE87;
	color: #1D1D1D;
	font-size: 12px;
	font-weight: 600;
	border-radius: 6px;
}

/* Gouttière latérale des contenus de page sur mobile / tablette.
   Padding sur post-content (réduit uniformément la zone → tous les blocs de
   contenu, cartes comprises, gardent leur centrage mais sont décalés des bords),
   et marge négative sur les .alignfull pour qu'ils débordent ce padding et
   restent bord à bord (post-content fait 100% du viewport). */
@media (max-width: 1024px) {
	.wp-block-post-content {
		padding-inline: clamp(1.25rem, 5vw, 2rem);
	}
	.wp-block-post-content > .alignfull {
		margin-inline: calc(-1 * clamp(1.25rem, 5vw, 2rem));
		width: calc(100% + 2 * clamp(1.25rem, 5vw, 2rem)); /* compense le padding parent : ces blocs ont width:100% fixe */
		max-width: none;
		box-sizing: border-box; /* sinon les blocs en content-box (ex .gc-mt) ajoutent leur padding et débordent */
	}
}

/* =========================================================
   Header
   ========================================================= */
.site-header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 100;
	background: rgba(255, 255, 255, 0.95);
	backdrop-filter: saturate(180%) blur(12px);
	-webkit-backdrop-filter: saturate(180%) blur(12px);
	border-bottom: 1px solid rgba(0, 0, 0, 0.06);
	transition: box-shadow 0.3s ease, background 0.3s ease;
}
/* Compense l'admin bar WP */
.admin-bar .site-header {
	top: 32px;
}
@media (max-width: 782px) {
	.admin-bar .site-header {
		top: 46px;
	}
}
.site-header.is-scrolled {
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
	background: rgba(255, 255, 255, 0.85);
}
/* Menu mobile ouvert : le backdrop-filter du header crée un bloc conteneur qui
   empêche l'overlay fixed du menu de couvrir l'écran (il se cale sur le header,
   ~80px, et la liste déborde → seul « Accueil » visible). On le neutralise le
   temps que le menu est ouvert (body.has-menu-open posé par header.js). */
body.has-menu-open .site-header {
	backdrop-filter: none;
	-webkit-backdrop-filter: none;
}

.site-header__inner {
	min-height: 80px;
	padding-block: 0 !important;
	padding-inline: clamp(1rem, 3vw, 1.5rem) !important;
	gap: 1.5rem;
}

/* Logo typographique GROUPE CARRÉ */
.site-logo {
	display: inline-flex;
	align-items: center;
	gap: 0.4ch;
	font-size: 1.25rem;
	font-weight: 700;
	letter-spacing: 0.01em;
	text-decoration: none;
	white-space: nowrap;
	transition: transform 0.2s ease;
}
.site-logo:hover { transform: scale(1.02); }
.site-logo__primary { color: var(--wp--preset--color--primary); }
.site-logo__secondary { color: var(--wp--preset--color--foreground); }
/* Logo image (téléversé dans Personnaliser → Identité du site).
   Hauteur EXPLICITE (pas max-height) : un SVG avec viewBox seul, sans width/height,
   s'afficherait en 0×0 sinon. */
.site-logo--image { gap: 0; }
.site-logo__img {
	display: block;
	width: auto;
	height: 44px;
	max-width: 220px;
	object-fit: contain;
}
@media (max-width: 1199px) {
	.site-logo__img { height: 38px; max-width: 170px; }
}

/* =========================================================
   Menu principal (bloc groupe-carre/main-menu)
   ========================================================= */
.gc-main-menu {
	flex: 1;
	display: flex;
	justify-content: flex-end;
	align-items: center;
	gap: 0.5rem;
}

.gc-main-menu__container {
	flex: 1;
	display: flex;
	justify-content: center;
}

.gc-main-menu__list,
.gc-main-menu__list ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.gc-main-menu__list {
	display: flex;
	align-items: center;
	gap: 0.125rem;
	flex-wrap: wrap;
}

.gc-main-menu__list .menu-item { position: relative; }

.gc-main-menu__list .menu-item > a {
	display: inline-flex;
	box-sizing: border-box; /* sinon width:100% + padding déborde en mobile → scroll horizontal parasite */
	align-items: center;
	gap: 0.25rem;
	padding: 0.5rem 0.75rem;
	font-size: 13px;
	font-weight: 500;
	color: var(--wp--preset--color--foreground);
	text-decoration: none;
	border-radius: 0.5rem;
	white-space: nowrap;
	transition: color 0.2s ease;
	position: relative;
}
.gc-main-menu__list .menu-item > a::after {
	content: "";
	position: absolute;
	left: 0.75rem;
	right: 0.75rem;
	bottom: 0.25rem;
	height: 2px;
	background: var(--wp--preset--color--primary);
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform 0.3s ease;
}
.gc-main-menu__list .menu-item > a:hover {
	color: var(--wp--preset--color--primary);
}
.gc-main-menu__list .menu-item > a:hover::after {
	transform: scaleX(1);
}

/* Indicateur de sous-menu */
.gc-main-menu__list .menu-item-has-children > a::before {
	content: "";
	display: inline-block;
	order: 2;
	width: 0.4rem;
	height: 0.4rem;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	transform: rotate(45deg) translateY(-2px);
	margin-left: 0.25rem;
	transition: transform 0.2s ease;
}
.gc-main-menu__list .menu-item-has-children.is-submenu-open > a::before,
.gc-main-menu__list .menu-item-has-children:hover > a::before {
	transform: rotate(-135deg) translate(-2px, 1px);
}

/* Sous-menus desktop */
.gc-main-menu__list .sub-menu {
	position: absolute;
	top: calc(100% + 0.5rem);
	left: 0;
	min-width: 220px;
	background: #fff;
	border: 1px solid rgba(0, 0, 0, 0.06);
	border-radius: 1rem;
	box-shadow: 0 12px 32px rgba(0, 0, 0, 0.08);
	padding: 0.5rem;
	opacity: 0;
	visibility: hidden;
	transform: translateY(-8px);
	transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s ease;
	z-index: 50;
}
.gc-main-menu__list .menu-item-has-children:hover > .sub-menu,
.gc-main-menu__list .menu-item-has-children:focus-within > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}
.gc-main-menu__list .sub-menu .menu-item > a {
	display: block;
	padding: 0.625rem 1rem;
	border-radius: 0.5rem;
	font-size: 0.875rem;
}
.gc-main-menu__list .sub-menu .menu-item > a::after { display: none; }
.gc-main-menu__list .sub-menu .menu-item > a:hover {
	background: var(--wp--preset--color--muted);
	color: var(--wp--preset--color--primary);
}

/* =========================================================
   Boutons CTA Header (bloc groupe-carre/header-cta)
   Édités via Personnaliser → En-tête
   ========================================================= */
.gc-header-cta {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	flex-shrink: 0;
}
.gc-header-cta__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.5rem 1.25rem;
	font-size: 13px;
	font-weight: 500;
	border-radius: 0.75rem;
	border: 2px solid transparent;
	text-decoration: none;
	white-space: nowrap;
	transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}
.gc-header-cta__btn--outline {
	background: transparent;
	color: var(--wp--preset--color--foreground);
	border-color: var(--wp--preset--color--foreground);
}
.gc-header-cta__btn--outline:hover {
	background: var(--wp--preset--color--foreground);
	color: #fff;
}
.gc-header-cta__btn--primary {
	background: var(--wp--preset--color--primary);
	color: #fff;
	border-color: var(--wp--preset--color--primary);
}
.gc-header-cta__btn--primary:hover {
	background: var(--wp--preset--color--primary-hover);
	border-color: var(--wp--preset--color--primary-hover);
	transform: scale(1.05);
}

/* =========================================================
   Burger mobile
   ========================================================= */
.gc-main-menu__toggle {
	display: none;
	background: transparent;
	border: 0;
	padding: 0.5rem;
	cursor: pointer;
	color: var(--wp--preset--color--foreground);
	z-index: 110;
}
.gc-burger {
	display: inline-flex;
	flex-direction: column;
	gap: 5px;
	width: 24px;
}
.gc-burger > span {
	display: block;
	height: 2px;
	background: currentColor;
	border-radius: 2px;
	transition: transform 0.25s ease, opacity 0.2s ease;
}
.gc-main-menu.is-open .gc-burger > span:nth-child(1) {
	transform: translateY(7px) rotate(45deg);
}
.gc-main-menu.is-open .gc-burger > span:nth-child(2) {
	opacity: 0;
}
.gc-main-menu.is-open .gc-burger > span:nth-child(3) {
	transform: translateY(-7px) rotate(-45deg);
}

/* =========================================================
   Avis admin (menu non assigné)
   ========================================================= */
.gc-main-menu__notice {
	margin: 0;
	padding: 0.5rem 1rem;
	font-size: 0.875rem;
	color: var(--wp--preset--color--muted-foreground);
}

/* =========================================================
   Mobile
   ========================================================= */
@media (max-width: 1199px) {
	.gc-main-menu__toggle {
		display: inline-flex;
		align-items: center;
		justify-content: center;
	}

	/* CTA cachés en mobile (accessibles via menu burger si besoin) */
	.gc-header-cta {
		display: none;
	}

	.gc-main-menu__container {
		display: block; /* annule le flex row + justify-content:center hérités du desktop */
		position: fixed;
		top: 0;
		left: 0;
		right: 0;
		bottom: 0;
		background: #fff;
		padding: 6rem 1.5rem 2rem;
		overflow: hidden auto; /* y: scroll vertical des liens ; x: hidden pour tuer tout débordement horizontal */
		opacity: 0;
		visibility: hidden;
		transform: translateY(-100%);
		transition: transform 0.3s ease, opacity 0.3s ease, visibility 0.3s ease;
	}
	.gc-main-menu.is-open .gc-main-menu__container {
		opacity: 1;
		visibility: visible;
		transform: translateY(0);
	}

	.gc-main-menu__list {
		flex-direction: column;
		flex-wrap: nowrap; /* annule le flex-wrap:wrap du desktop qui empilait les liens en colonnes */
		align-items: stretch;
		gap: 0.25rem;
	}
	.gc-main-menu__list .menu-item > a {
		padding: 0.875rem 1rem;
		font-size: 1rem;
		border-radius: 0.5rem;
		width: 100%;
		justify-content: flex-start; /* chevron sous-menu juste après le texte, pas rejeté à droite */
	}
	.gc-main-menu__list .menu-item > a::after { display: none; }
	.gc-main-menu__list .menu-item > a:hover {
		background: var(--wp--preset--color--muted);
	}

	/* Sous-menus mobile : accordéon */
	.gc-main-menu__list .sub-menu {
		position: static;
		opacity: 1;
		visibility: visible;
		transform: none;
		box-shadow: none;
		border: 0;
		padding: 0 0 0 1rem;
		max-height: 0;
		overflow: hidden;
		transition: max-height 0.3s ease;
	}
	.gc-main-menu__list .menu-item-has-children.is-submenu-open > .sub-menu {
		max-height: 500px;
	}

	/* CTA en mobile : pleine largeur */
	.gc-main-menu__list .menu-item.is-cta-outline,
	.gc-main-menu__list .menu-item.is-cta-primary {
		margin-top: 0.5rem;
	}
	.gc-main-menu__list .menu-item.is-cta-outline > a,
	.gc-main-menu__list .menu-item.is-cta-primary > a {
		justify-content: center;
		text-align: center;
	}
}

/* Boutons CTA (Extranet / Postuler) dans le menu mobile — repris des options
   du header (Personnaliser → En-tête). Cachés en desktop (le bloc header-cta
   les affiche déjà en haut). */
.gc-main-menu__cta { display: none; }
@media (max-width: 1199px) {
	.gc-main-menu__cta {
		display: flex;
		flex-direction: column;
		gap: 12px;
		margin-top: 24px;
		padding-top: 24px;
		border-top: 1px solid rgba(0, 0, 0, 0.08);
	}
	.gc-main-menu__cta-btn {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		padding: 14px 20px;
		border-radius: 999px;
		font-size: 1rem;
		font-weight: 600;
		text-decoration: none;
		text-align: center;
		box-sizing: border-box;
		transition: background 0.2s ease, color 0.2s ease;
	}
	.gc-main-menu__cta-btn--outline {
		border: 1.5px solid var(--wp--preset--color--foreground, #1D1D1D);
		color: var(--wp--preset--color--foreground, #1D1D1D);
	}
	.gc-main-menu__cta-btn--primary {
		background: var(--wp--preset--color--primary, #E42320);
		color: #ffffff;
	}
	.gc-main-menu__cta-btn--primary:hover {
		background: var(--wp--preset--color--primary-hover, #c91e1c);
	}
}

/* =========================================================
   Bloc Hero (groupe-carre/hero)
   ========================================================= */
.gc-hero {
	position: relative;
	overflow: hidden;
	min-height: 100vh;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
}

.gc-hero__bg {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	z-index: 0;
}

.gc-hero__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(135deg, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0.3) 50%, transparent 100%);
	z-index: 1;
}

.gc-hero__inner {
	position: relative;
	z-index: 2;
	width: 100%;
	max-width: 1400px;
	margin: 0 auto;
	padding: 7rem clamp(1rem, 4vw, 2rem) 3rem;
}

/* Carte sombre globale */
.gc-hero__card {
	max-width: 56rem;
	background: rgba(0, 0, 0, 0.4);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	border-radius: 1.5rem;
	padding: clamp(1.5rem, 3vw, 3rem);
	display: flex;
	flex-direction: column;
	gap: 2rem;
}

/* Badge / Tag */
.gc-hero__tag {
	display: inline-flex;
	align-self: flex-start;
	align-items: center;
	gap: 0.5rem;
	padding: 0.5rem 1rem;
	background: rgba(255, 255, 255, 0.1);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	border: 1px solid rgba(255, 255, 255, 0.2);
	border-radius: 999px;
	font-size: 0.875rem;
	font-weight: 500;
	color: rgba(255, 255, 255, 0.9);
}
.gc-hero__tag-dot {
	width: 8px;
	height: 8px;
	background: var(--wp--preset--color--accent, #FFEE87);
	border-radius: 50%;
	flex-shrink: 0;
	animation: gc-pulse 2s ease-in-out infinite;
}
@keyframes gc-pulse {
	0%, 100% { opacity: 1; transform: scale(1); }
	50%      { opacity: 0.5; transform: scale(1.2); }
}

/* Titre */
.gc-hero__title {
	font-size: clamp(2rem, 5vw, 4.5rem);
	font-weight: 600;
	line-height: 1.05;
	letter-spacing: -0.065em;
	margin: 0;
	color: #fff;
}

/* Bullets — points jaunes */
.gc-hero__bullets {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 1.5rem;
	margin: 0;
	padding: 0;
}
.gc-hero__bullets > li {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-size: clamp(1rem, 1.5vw, 1.25rem);
	color: rgba(255, 255, 255, 0.9);
}
.gc-hero__bullets > li::before {
	content: "";
	width: 6px;
	height: 6px;
	background: var(--wp--preset--color--accent, #FFEE87);
	border-radius: 50%;
	flex-shrink: 0;
}

/* Boutons */
.gc-hero__buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
}
/* Logo optionnel sous le texte (compact). */
.gc-hero__logo {
	margin-top: 1.5rem;
}
.gc-hero__logo img {
	display: block;
	width: auto;
	height: auto;
	max-height: 66px;
	max-width: 300px;
	filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.35));
}
.gc-hero__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	padding: 1rem 2rem;
	font-size: 1.0625rem;
	font-weight: 500;
	border-radius: 1rem;
	border: 2px solid transparent;
	text-decoration: none;
	white-space: nowrap;
	transition: background 0.25s ease, color 0.25s ease, border-color 0.25s ease, transform 0.25s ease;
}
.gc-hero__btn--primary {
	background: var(--wp--preset--color--primary);
	color: #fff;
	border-color: var(--wp--preset--color--primary);
}
.gc-hero__btn--primary:hover {
	background: var(--wp--preset--color--primary-hover);
	border-color: var(--wp--preset--color--primary-hover);
	transform: scale(1.04);
}
.gc-hero__btn-arrow {
	transition: transform 0.25s ease;
}
.gc-hero__btn--primary:hover .gc-hero__btn-arrow {
	transform: translateX(4px);
}
.gc-hero__btn--secondary {
	background: rgba(255, 255, 255, 0.1);
	color: #fff;
	border-color: rgba(255, 255, 255, 0.3);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
}
.gc-hero__btn--secondary:hover {
	background: rgba(255, 255, 255, 0.2);
	border-color: rgba(255, 255, 255, 0.5);
	transform: scale(1.04);
}

/* Disposition (layout) carte + chiffres clés */
.gc-hero__layout {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 2.5rem;
	width: 100%;
}

/* Slogan — ligne italique jaune sous le titre */
.gc-hero__slogan {
	margin: -0.75rem 0 0;
	font-size: clamp(1.25rem, 2.5vw, 1.875rem);
	font-style: italic;
	color: var(--wp--preset--color--accent, #FFEE87);
}

/* Description — paragraphe sous le titre (optionnel) */
.gc-hero__description {
	margin: 0;
	font-size: clamp(1.0625rem, 1.6vw, 1.25rem);
	line-height: 1.6;
	color: rgba(255, 255, 255, 0.8);
	max-width: 42rem;
}

/* Mot surligné dans le titre (*mot*) */
.gc-hero__hl {
	position: relative;
	white-space: nowrap;
}
.gc-hero__hl::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0.08em;
	height: 0.28em;
	background: rgba(228, 35, 32, 0.3);
	transform: rotate(-1deg);
	z-index: -1;
}

/* Chiffres clés — cartes glassy individuelles */
.gc-hero__keyfigures {
	list-style: none;
	margin: 0;
	padding: 0;
}
/* Variante page intérieure : grille horizontale sous le contenu */
/* Grille centrée : nombre de colonnes adapté au nombre de pastilles. */
.gc-hero__keyfigures--grid {
	display: grid;
	justify-content: center;
	gap: 1rem;
}
.gc-hero__keyfigures--n1 { grid-template-columns: minmax(0, 200px); }
.gc-hero__keyfigures--n2 { grid-template-columns: repeat(2, minmax(0, 190px)); }
.gc-hero__keyfigures--n3 { grid-template-columns: repeat(3, minmax(0, 180px)); }
.gc-hero__keyfigures--n4 { grid-template-columns: repeat(4, minmax(0, 180px)); }
.gc-hero__keyfigures--n5 { grid-template-columns: repeat(5, minmax(0, 165px)); }
.gc-hero__keyfigures--n6 { grid-template-columns: repeat(3, minmax(0, 180px)); }
/* Variante accueil : colonne verticale à droite de la carte */
.gc-hero__keyfigures--side {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	flex-shrink: 0;
}
.gc-hero__keyfigures--side .gc-hero__kf {
	width: 180px;
	flex: 1; /* étire les 4 cartes pour remplir la hauteur de la carte de gauche */
}

/* La colonne de chiffres s'aligne sur la hauteur de la carte */
.gc-hero--split .gc-hero__layout {
	align-items: stretch;
}

/* --- Hauteur au choix (indépendante de la disposition) --- */
.gc-hero.gc-hero--h-screen { min-height: 100vh; }
.gc-hero.gc-hero--h-compact { min-height: 70vh; }
.gc-hero--h-compact .gc-hero__inner {
	padding-top: 96px;
	padding-bottom: 64px;
}

/* --- Disposition « Page intérieure » : tout centré, hero moins haut --- */
.gc-hero--centered {
	min-height: 70vh;
}
.gc-hero--centered .gc-hero__layout {
	justify-content: center;
}
.gc-hero--centered .gc-hero__card {
	max-width: 48rem;
	background: transparent;
	backdrop-filter: none;
	-webkit-backdrop-filter: none;
	align-items: center;
	text-align: center;
}
.gc-hero--centered .gc-hero__tag {
	align-self: center;
}
.gc-hero--centered .gc-hero__bullets,
.gc-hero--centered .gc-hero__buttons {
	justify-content: center;
}
.gc-hero--centered .gc-hero__keyfigures--grid {
	width: 100%;
	margin-top: 1rem;
}

.gc-hero__kf {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.25rem;
	padding: 1rem;
	background: rgba(255, 255, 255, 0.1);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	border: 1px solid rgba(255, 255, 255, 0.2);
	border-radius: 0.75rem;
	text-align: center;
}
.gc-hero__kf-number {
	font-size: clamp(1.75rem, 3vw, 2.25rem);
	font-weight: 700;
	color: #fff;
	line-height: 1;
}
.gc-hero__kf-label {
	font-size: clamp(0.625rem, 1vw, 0.8125rem);
	font-weight: 500;
	color: rgba(255, 255, 255, 0.8);
	text-transform: uppercase;
	letter-spacing: 0.075em;
}

@media (max-width: 980px) {
	/* La colonne de chiffres repasse sous la carte */
	.gc-hero__layout {
		flex-direction: column;
		align-items: stretch;
	}
	.gc-hero__keyfigures--side {
		flex-direction: row;
		flex-wrap: wrap;
	}
	.gc-hero__keyfigures--side .gc-hero__kf {
		width: auto;
		flex: 1 1 calc(50% - 0.5rem);
	}
}

@media (max-width: 768px) {
	.gc-hero__keyfigures--n4,
	.gc-hero__keyfigures--n5,
	.gc-hero__keyfigures--n6 { grid-template-columns: repeat(2, minmax(0, 180px)); }
	.gc-hero__btn {
		width: 100%;
	}
}
@media (max-width: 520px) {
	.gc-hero__keyfigures--grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; width: 100%; }
}


/* =========================================================
   Bloc Média + Texte (groupe-carre/media-text)
   ========================================================= */
.gc-mt {
	position: relative;
	overflow: hidden;
	padding: clamp(3rem, 7vw, 5rem) clamp(1.5rem, 4vw, 2rem);
	margin-block-start: 0;
}
/* Filet de séparation en haut (pleine largeur, ex: séparer les outils OAD) */
.gc-mt--divider-top { border-top: 1px solid rgba(0, 0, 0, 0.1); }
.gc-mt--bg-dark.gc-mt--divider-top,
.gc-mt--bg-red.gc-mt--divider-top { border-top-color: rgba(255, 255, 255, 0.18); }
.gc-mt__inner {
	position: relative;
	z-index: 1;
	max-width: 80rem;
	margin: 0 auto;
	padding: 0;
}
.gc-mt__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(2rem, 4vw, 3rem);
	align-items: stretch;
}

/* Position du média : par défaut le texte est en 1re colonne, média en 2e.
   Variante « média à gauche » : on inverse via l'ordre. */
.gc-mt--media-left .gc-mt__content { order: 2; }
.gc-mt--media-left .gc-mt__media   { order: 1; }

/* Disposition « split 50/50 bord à bord » (pleine largeur) */
.gc-mt--split { padding: 0; }
.gc-mt--split .gc-mt__inner { max-width: none; padding: 0; }
.gc-mt--split .gc-mt__grid { gap: 0; align-items: stretch; }
.gc-mt--split .gc-mt__figure { border-radius: 0; box-shadow: none; }
.gc-mt--split .gc-mt__content {
	padding: clamp(3rem, 6vw, 5rem) clamp(2rem, 5vw, 4rem);
	min-height: 30rem;
	justify-content: center;
}
@media (max-width: 860px) {
	.gc-mt--split .gc-mt__content { min-height: 0; }
}

/* --- Contenu --- */
.gc-mt__content {
	display: flex;
	flex-direction: column;
	justify-content: center;
}
/* Emplacement des puces : sous le titre (avant le texte) */
.gc-mt--bullets-top .gc-mt__label { order: 1; }
.gc-mt--bullets-top .gc-mt__title { order: 2; }
.gc-mt--bullets-top .gc-mt__bullets,
.gc-mt--bullets-top .gc-mt__bullets-box { order: 3; margin: 0 0 1.5rem; }
.gc-mt--bullets-top .gc-mt__text { order: 4; }
.gc-mt--bullets-top .gc-mt__tags-wrap { order: 5; }
.gc-mt--bullets-top .gc-mt__buttons { order: 6; }
.gc-mt__label {
	display: inline-block;
	align-self: flex-start;
	font-size: 0.8125rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--wp--preset--color--primary, #E42320);
	background: rgba(228, 35, 32, 0.1);
	padding: 0.5rem 1rem;
	border-radius: 999px;
	margin-bottom: 1.25rem;
}
.gc-mt__title {
	font-size: clamp(1.875rem, 4vw, 3rem);
	font-weight: 700;
	line-height: 1.15;
	margin: 0 0 1.25rem;
}
.gc-mt__hl {
	position: relative;
	white-space: nowrap;
}
.gc-mt__hl::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0.08em;
	height: 0.28em;
	background: rgba(228, 35, 32, 0.3);
	transform: rotate(-1deg);
	z-index: -1;
}
.gc-mt__text {
	font-size: 1.125rem;
	line-height: 1.7;
}
.gc-mt__text p { margin: 0 0 1rem; }
.gc-mt__text p:last-child { margin-bottom: 0; }
/* Citation (blockquote) — trait rouge à gauche, italique (cf. maquette Équipe) */
.gc-mt__text blockquote {
	margin: 1.5rem 0;
	padding: 0 0 0 1.25rem;
	border-left: 4px solid var(--wp--preset--color--primary, #E42320);
	border-radius: 0;
	background: none;
	font-style: italic;
	color: #374151;
}
.gc-mt__text blockquote p { margin: 0 0 0.5rem; }
.gc-mt__text blockquote p:last-child { margin-bottom: 0; }
.gc-mt__text blockquote cite { display: block; font-style: normal; font-size: 0.875rem; font-weight: 500; color: var(--wp--preset--color--primary, #E42320); }
.gc-mt--bg-dark .gc-mt__text blockquote,
.gc-mt--bg-red .gc-mt__text blockquote { color: rgba(255, 255, 255, 0.85); }
/* Texte coloré via le menu « Formats » de l'éditeur */
.gc-text-red { color: var(--wp--preset--color--primary, #E42320); }

.gc-mt__bullets {
	list-style: none;
	margin: 1.5rem 0 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}
.gc-mt__bullets > li {
	position: relative;
	padding-left: 1.9rem;
	font-size: 1.0625rem;
	line-height: 1.45;
}
/* Coche blanche dans un disque rouge (cf. maquette) */
.gc-mt__bullets > li::before {
	content: "✓";
	position: absolute;
	left: 0;
	top: 0.05em;
	width: 1.2rem;
	height: 1.2rem;
	border-radius: 50%;
	background: var(--wp--preset--color--primary, #E42320);
	color: #ffffff;
	font-size: 0.7rem;
	font-weight: 700;
	display: flex;
	align-items: center;
	justify-content: center;
}
.gc-mt--bg-dark .gc-mt__bullets > li::before,
.gc-mt--bg-red .gc-mt__bullets > li::before { background: #ffffff; color: #E42320; }
/* Liste sur 2 colonnes (mode « Liste »), 1 colonne si demandé */
.gc-mt__bullets--list { display: grid; grid-template-columns: 1fr 1fr; gap: 0.7rem 1.5rem; }
.gc-mt--bullets-1col .gc-mt__bullets--list { grid-template-columns: 1fr; }
@media (max-width: 520px) { .gc-mt__bullets--list { grid-template-columns: 1fr; } }

/* --- Puces « Détaillé » : icône + titre + description (ex: bloc Équipe) --- */
.gc-mt__bullets--features { gap: 1.25rem; }
.gc-mt__bullets--features > li { padding-left: 0; font-size: inherit; }
.gc-mt__bullets--features > li::before { display: none; }
.gc-mt__feature { display: flex; align-items: flex-start; gap: 1rem; }
.gc-mt__feature-icon {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	border-radius: 0.75rem;
	background: #ffffff;
	border: 1px solid #e5e7eb;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
	color: var(--wp--preset--color--primary, #E42320);
}
.gc-mt__feature-icon svg { width: 1.25rem; height: 1.25rem; }
.gc-mt__feature-body { display: flex; flex-direction: column; gap: 0.25rem; }
.gc-mt__feature-title { font-weight: 600; color: var(--wp--preset--color--foreground, #1D1D1D); }
.gc-mt__feature-desc { font-size: 0.95rem; color: #4b5563; line-height: 1.5; }
.gc-mt--bg-dark .gc-mt__feature-icon,
.gc-mt--bg-red .gc-mt__feature-icon { background: rgba(255, 255, 255, 0.1); border-color: rgba(255, 255, 255, 0.2); color: #ffffff; }
.gc-mt--bg-dark .gc-mt__feature-title,
.gc-mt--bg-red .gc-mt__feature-title { color: #ffffff; }
.gc-mt--bg-dark .gc-mt__feature-desc,
.gc-mt--bg-red .gc-mt__feature-desc { color: rgba(255, 255, 255, 0.75); }

/* --- En-tête de section centré (optionnel) --- */
.gc-mt__section-head {
	text-align: center;
	max-width: 48rem;
	margin: 0 auto clamp(2.5rem, 5vw, 4rem);
}
.gc-mt__section-eyebrow {
	display: inline-block;
	color: var(--wp--preset--color--primary, #E42320);
	font-size: 0.8125rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	margin-bottom: 0.75rem;
}
.gc-mt__section-title {
	font-size: clamp(1.875rem, 4vw, 3rem);
	font-weight: 700;
	color: var(--wp--preset--color--foreground, #1D1D1D);
	margin: 0 0 0.75rem;
	line-height: 1.15;
}
.gc-mt__section-subtitle { font-size: 1.25rem; color: #6b7280; margin: 0; line-height: 1.5; }
.gc-mt--bg-dark .gc-mt__section-title,
.gc-mt--bg-red .gc-mt__section-title { color: #fff; }
.gc-mt--bg-dark .gc-mt__section-subtitle,
.gc-mt--bg-red .gc-mt__section-subtitle { color: rgba(255, 255, 255, 0.8); }
.gc-mt--bg-dark .gc-mt__section-eyebrow,
.gc-mt--bg-red .gc-mt__section-eyebrow { color: var(--wp--preset--color--accent, #FFEE87); }

/* --- Encadré autour des puces --- */
.gc-mt__bullets-box { margin-top: 1.5rem; padding: 1.5rem 1.75rem; border-radius: 1rem; }
.gc-mt__bullets-box .gc-mt__bullets { margin-top: 0; }
.gc-mt__bullets-title { display: flex; align-items: center; gap: 0.5rem; font-size: 1.125rem; font-weight: 600; margin: 0 0 1rem; }
.gc-mt__bullets-title-icon { display: inline-flex; color: var(--wp--preset--color--primary, #E42320); }
.gc-mt__bullets-title-icon svg { width: 1.25rem; height: 1.25rem; }
.gc-mt__bullets-box--dark .gc-mt__bullets-title-icon { color: var(--wp--preset--color--accent, #FFEE87); }
.gc-mt__bullets-box--yellow {
	background: linear-gradient(135deg, rgba(255, 238, 135, 0.4) 0%, rgba(255, 255, 255, 0.6) 100%);
	border: 1px solid var(--wp--preset--color--accent, #FFEE87);
}
.gc-mt__bullets-box--red {
	background: rgba(228, 35, 32, 0.06);
	border: 1px solid rgba(228, 35, 32, 0.25);
}
.gc-mt__bullets-box--dark {
	background: #1D1D1D;
	border: 1px solid rgba(255, 255, 255, 0.1);
}
.gc-mt__bullets-box--dark,
.gc-mt__bullets-box--dark .gc-mt__bullets > li,
.gc-mt__bullets-box--dark .gc-mt__bullets-title { color: #fff; }

/* --- Boutons --- */
.gc-mt__buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	margin-top: 2rem;
}
.gc-mt__btn {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.875rem 1.75rem;
	font-size: 1.0625rem;
	font-weight: 500;
	border-radius: 999px;
	border: 2px solid transparent;
	text-decoration: none;
	transition: background 0.25s ease, color 0.25s ease, border-color 0.25s ease, transform 0.25s ease;
}
.gc-mt__btn svg { transition: transform 0.25s ease; }
.gc-mt__btn--primary {
	background: var(--wp--preset--color--primary, #E42320);
	color: #fff;
	border-color: var(--wp--preset--color--primary, #E42320);
}
.gc-mt__btn--primary:hover { background: var(--wp--preset--color--primary-hover, #c91e1c); border-color: var(--wp--preset--color--primary-hover, #c91e1c); transform: scale(1.04); }
.gc-mt__btn--primary:hover svg { transform: translateX(4px); }
.gc-mt__btn--secondary {
	background: transparent;
	color: var(--wp--preset--color--foreground, #1D1D1D);
	border-color: rgba(0, 0, 0, 0.2);
}
.gc-mt__btn--secondary:hover { border-color: var(--wp--preset--color--primary, #E42320); color: var(--wp--preset--color--primary, #E42320); transform: scale(1.04); }

/* --- Média --- */
/* L'image remplit sa colonne et prend exactement la hauteur du bloc texte
   (figure en absolu → n'impose pas sa hauteur naturelle). */
.gc-mt__media { position: relative; display: flex; flex-direction: column; }
/* Boîte image+pastille (ancre la pastille), la note optionnelle passe dessous */
.gc-mt__media-inner { position: relative; flex: 1 1 auto; }
/* Modes média « logo » / « image entière » : sur une carte claire (non rogné) */
.gc-mt--media-logo .gc-mt__media-inner,
.gc-mt--media-framed .gc-mt__media-inner { display: flex; align-items: center; justify-content: center; }
.gc-mt__logo-card {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	box-sizing: border-box;
	padding: clamp(2.5rem, 5vw, 4rem);
	background: radial-gradient(circle at 50% 40%, #ffffff 0%, #fafafa 100%);
	border: 1px solid rgba(0, 0, 0, 0.1);
	border-radius: 1.5rem;
	box-shadow: 0 25px 50px -18px rgba(0, 0, 0, 0.18);
}
.gc-mt__logo-card img { max-height: 170px; width: auto; height: auto; }
/* Image entière : prend toute la largeur de la carte */
.gc-mt__logo-card--framed { padding: clamp(1rem, 2.5vw, 1.5rem); }
.gc-mt__logo-card--framed img { max-height: none; width: 100%; height: auto; border-radius: 0.75rem; }
/* Type média « carte document » (icône + titre + texte + bouton) */
.gc-mt--media-card .gc-mt__media-inner { display: flex; align-items: flex-start; justify-content: center; }
.gc-mt__doc-card {
	width: 100%;
	box-sizing: border-box;
	background: #ffffff;
	border: 1px solid rgba(0, 0, 0, 0.1);
	border-radius: 20px;
	padding: 32px;
	text-align: center;
	box-shadow: 0 20px 45px -25px rgba(0, 0, 0, 0.2);
}
.gc-mt__doc-icon { color: #E42320; display: inline-flex; margin-bottom: 16px; }
.gc-mt__doc-title { font-size: 18px; font-weight: 700; color: #1D1D1D; margin: 0 0 8px; }
.gc-mt__doc-text { font-size: 14px; color: #717182; margin: 0 0 18px; line-height: 1.5; }
.gc-mt__doc-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 12px 24px;
	font-size: 15px;
	font-weight: 600;
	border-radius: 999px;
	border: 2px solid rgba(0, 0, 0, 0.2);
	color: #1D1D1D;
	text-decoration: none;
	transition: border-color 0.2s ease, color 0.2s ease;
}
.gc-mt__doc-btn:hover { border-color: #E42320; color: #E42320; }
.gc-mt__media-note {
	margin: 1.75rem 0 0;
	font-size: 0.8rem;
	color: #6b7280;
	line-height: 1.5;
	font-style: italic;
}
.gc-mt--bg-dark .gc-mt__media-note,
.gc-mt--bg-red .gc-mt__media-note { color: rgba(255, 255, 255, 0.7); }
.gc-mt__text-note {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 1.5rem 0 0;
	font-size: 0.8125rem;
	line-height: 1.4;
	color: #717182;
}
.gc-mt__text-note svg { flex: none; color: #E42320; }
.gc-mt--bg-dark .gc-mt__text-note,
.gc-mt--bg-red .gc-mt__text-note { color: rgba(255, 255, 255, 0.75); }
.gc-mt__figure {
	position: absolute;
	inset: 0;
	margin: 0;
	border-radius: 1.5rem;
	overflow: hidden;
	box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
}
.gc-mt__figure img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Légende affichée SUR l'image (mode image) */
.gc-mt__imgshade {
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(0, 0, 0, 0.65) 0%, rgba(0, 0, 0, 0.15) 40%, transparent 70%);
}
.gc-mt__imgcaption {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	padding: 2rem;
	color: #fff;
	z-index: 1;
}
.gc-mt__imgcaption-title {
	display: block;
	font-size: clamp(1.25rem, 2.5vw, 1.875rem);
	font-weight: 600;
	line-height: 1.2;
}
.gc-mt__imgcaption-text {
	display: block;
	font-size: 1.0625rem;
	color: rgba(255, 255, 255, 0.9);
	margin-top: 0.25rem;
}

/* --- Collage 3 images --- */
.gc-mt--collage .gc-mt__media { min-height: 460px; }
.gc-mt__collage { position: absolute; inset: 0; }
.gc-mt__collage-item {
	position: absolute;
	border-radius: 1rem;
	overflow: hidden;
	box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
}
.gc-mt__collage-item img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gc-mt__collage-1 { top: 0; right: 0; width: 75%; height: 68%; }
.gc-mt__collage-2 {
	bottom: 0;
	left: 0;
	width: 52%;
	height: 52%;
	border: 4px solid #fff;
	box-shadow: 0 20px 40px rgba(0, 0, 0, 0.2);
}
.gc-mt__collage-3 {
	top: 6%;
	left: 2%;
	width: 33%;
	height: 36%;
	border: 4px solid #fff;
	box-shadow: 0 12px 24px rgba(0, 0, 0, 0.18);
}
/* Pastille au coin bas de la grande image (collage-1 : 75% large, 68% haut) — déborde */
.gc-mt--collage .gc-mt__badge {
	top: auto;
	bottom: calc(32% - 1.25rem);
}
.gc-mt--collage .gc-mt__badge--left { left: calc(25% - 0.75rem); }
.gc-mt__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0.3) 40%, transparent 100%);
}
.gc-mt__play {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 5rem;
	height: 5rem;
	border-radius: 50%;
	background: var(--wp--preset--color--primary, #E42320);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 20px 40px rgba(0, 0, 0, 0.35);
	transition: transform 0.25s ease, background 0.25s ease;
}
.gc-mt__play svg { width: 2.5rem; height: 2.5rem; margin-left: 0.25rem; }
.gc-mt__play:hover { background: var(--wp--preset--color--primary-hover, #c91e1c); transform: translate(-50%, -50%) scale(1.12); }
.gc-mt__caption {
	position: absolute;
	left: 1.5rem;
	right: 1.5rem;
	bottom: 1.5rem;
	background: rgba(255, 255, 255, 0.95);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	border-radius: 0.75rem;
	padding: 1rem;
	font-size: 1.0625rem;
	font-weight: 500;
	color: var(--wp--preset--color--foreground, #1D1D1D);
}
.gc-mt__badge {
	position: absolute;
	bottom: -1rem;
	z-index: 2;
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 0.85rem;
	background: var(--wp--preset--color--primary, #E42320);
	color: #fff;
	padding: 1rem 1.5rem;
	border-radius: 1rem;
	box-shadow: 0 14px 28px rgba(0, 0, 0, 0.25);
}
.gc-mt__badge--right { right: -0.75rem; }
.gc-mt__badge--left  { left: -0.75rem; }
.gc-mt__badge-icon {
	width: 2.25rem;
	height: 2.25rem;
	border-radius: 0.65rem;
	background: rgba(255, 255, 255, 0.2);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.gc-mt__badge-icon svg { width: 1.25rem; height: 1.25rem; }
.gc-mt__badge-texts { display: flex; flex-direction: column; gap: 0.15rem; }
.gc-mt__badge-big {
	font-size: 1.75rem;
	font-weight: 700;
	line-height: 1;
}
.gc-mt__badge--size-s .gc-mt__badge-big { font-size: 1.25rem; }
.gc-mt__badge--size-l .gc-mt__badge-big { font-size: 2.25rem; }
.gc-mt__badge-small {
	font-size: 0.8125rem;
	color: rgba(255, 255, 255, 0.85);
	line-height: 1.3;
}

/* Logo « marque » superposé sur une image (mutualisé — inc/logo-overlay.php).
   Le conteneur de l'image doit être en position:relative. */
.gc-logo-overlay {
	position: absolute;
	z-index: 3;
	display: block;
	pointer-events: none;
}
.gc-logo-overlay img {
	display: block;
	height: clamp(2.25rem, 4vw, 3rem);
	width: auto;
	filter: drop-shadow(0 2px 10px rgba(0, 0, 0, 0.6));
}
/* Ancrages verticaux */
.gc-logo-overlay--top-left,
.gc-logo-overlay--top-center,
.gc-logo-overlay--top-right { top: 1.25rem; }
.gc-logo-overlay--center-left,
.gc-logo-overlay--center,
.gc-logo-overlay--center-right { top: 50%; }
.gc-logo-overlay--bottom-left,
.gc-logo-overlay--bottom-center,
.gc-logo-overlay--bottom-right { bottom: 1.25rem; }
/* Ancrages horizontaux */
.gc-logo-overlay--top-left,
.gc-logo-overlay--center-left,
.gc-logo-overlay--bottom-left { left: 1.25rem; }
.gc-logo-overlay--top-center,
.gc-logo-overlay--center,
.gc-logo-overlay--bottom-center { left: 50%; }
.gc-logo-overlay--top-right,
.gc-logo-overlay--center-right,
.gc-logo-overlay--bottom-right { right: 1.25rem; }
/* Recentrage (translate) selon l'ancrage */
.gc-logo-overlay--top-center,
.gc-logo-overlay--bottom-center { transform: translateX(-50%); }
.gc-logo-overlay--center-left,
.gc-logo-overlay--center-right { transform: translateY(-50%); }
.gc-logo-overlay--center { transform: translate(-50%, -50%); }

/* Logo sur l'image (bas-gauche) — legacy media-text, remplacé par .gc-logo-overlay */
.gc-mt__logo {
	position: absolute;
	left: 1.25rem;
	bottom: 1.25rem;
	z-index: 2;
}
.gc-mt__logo img {
	display: block;
	height: 3rem;
	width: auto;
	filter: drop-shadow(0 2px 10px rgba(0, 0, 0, 0.6));
}

/* Puces en pastilles */
.gc-mt__bullets--pills { flex-direction: row; flex-wrap: wrap; gap: 0.5rem; }
.gc-mt__bullets--pills > li {
	position: static;
	padding: 0.5rem 1rem;
	display: inline-flex;
	align-items: center;
	background: #FFEE87;
	color: #1D1D1D;
	border-radius: 999px;
	font-size: 0.875rem;
	font-weight: 600;
}
/* Pas d'icône coche en mode pastille */
.gc-mt__bullets--pills > li::before { display: none; }

/* Tags numérotés */
.gc-mt__tags-wrap { margin-top: 2rem; padding-top: 2rem; border-top: 1px solid rgba(0, 0, 0, 0.08); }
.gc-mt__tags-title {
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	font-weight: 600;
	color: #9ca3af;
	margin: 0 0 1rem;
}
.gc-mt__tags { display: flex; flex-wrap: wrap; gap: 0.75rem; }
.gc-mt__tag {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.625rem 1rem;
	border: 1px solid rgba(0, 0, 0, 0.12);
	border-radius: 0.75rem;
	font-size: 0.875rem;
	font-weight: 500;
	color: #1D1D1D;
}
.gc-mt__tag-num { font-size: 0.75rem; font-weight: 700; color: var(--wp--preset--color--primary, #E42320); }
/* Adaptation fonds sombre / rouge */
.gc-mt--bg-dark .gc-mt__tags-wrap,
.gc-mt--bg-red .gc-mt__tags-wrap { border-top-color: rgba(255, 255, 255, 0.15); }
.gc-mt--bg-dark .gc-mt__tag,
.gc-mt--bg-red .gc-mt__tag { color: #fff; border-color: rgba(255, 255, 255, 0.25); }
.gc-mt--bg-dark .gc-mt__tag-num,
.gc-mt--bg-red .gc-mt__tag-num { color: var(--wp--preset--color--accent, #FFEE87); }

/* --- Variantes de fond --- */
.gc-mt--bg-muted { background: var(--wp--preset--color--muted, #F3F3F5); }
.gc-mt--bg-dark  { background: linear-gradient(135deg, #1D1D1D 0%, #2D2D2D 100%); }
.gc-mt--bg-red   { background: linear-gradient(135deg, var(--wp--preset--color--primary, #E42320) 0%, var(--wp--preset--color--primary-hover, #c91e1c) 100%); }

/* Texte clair sur fonds sombre / rouge */
.gc-mt--bg-dark,
.gc-mt--bg-red { color: #fff; }
.gc-mt--bg-dark .gc-mt__title,
.gc-mt--bg-red .gc-mt__title { color: #fff; }
.gc-mt--bg-dark .gc-mt__label,
.gc-mt--bg-red .gc-mt__label  { color: var(--wp--preset--color--accent, #FFEE87); background: rgba(255, 255, 255, 0.12); }
.gc-mt--bg-dark .gc-mt__btn--secondary,
.gc-mt--bg-red .gc-mt__btn--secondary { color: #fff; border-color: rgba(255, 255, 255, 0.3); }
.gc-mt--bg-dark .gc-mt__btn--secondary:hover,
.gc-mt--bg-red .gc-mt__btn--secondary:hover { border-color: var(--wp--preset--color--accent, #FFEE87); color: var(--wp--preset--color--accent, #FFEE87); }

/* Halos décoratifs sur fond sombre (rappel maquette) */
.gc-mt--bg-dark::before,
.gc-mt--bg-dark::after {
	content: "";
	position: absolute;
	width: 24rem;
	height: 24rem;
	border-radius: 50%;
	filter: blur(80px);
	z-index: 0;
	pointer-events: none;
}
.gc-mt--bg-dark::before { top: 0; right: 0; background: rgba(228, 35, 32, 0.2); }
.gc-mt--bg-dark::after  { bottom: 0; left: 0; background: rgba(255, 238, 135, 0.1); }

@media (max-width: 860px) {
	.gc-mt__grid { grid-template-columns: 1fr; }
	/* En une colonne, le média repasse toujours sous le texte */
	.gc-mt--media-left .gc-mt__content,
	.gc-mt--media-left .gc-mt__media { order: initial; }
	.gc-mt__media { min-height: 320px; }
	.gc-mt__badge { bottom: 1rem; }
	.gc-mt__badge--right { right: 1rem; }
	.gc-mt__badge--left  { left: 1rem; }
}

/* =========================================================
   Bloc Citation + Vidéo (groupe-carre/leadership-video)
   Pixel-perfect d'après le composant Figma React.
   ========================================================= */
.gc-lv {
	position: relative;
	padding: 80px 24px;
	background: #ffffff;
	overflow: hidden;
	width: 100%;
	max-width: 100vw;
	margin-block-start: 0;
	box-sizing: border-box;
}
@media (min-width: 1024px) {
	.gc-lv { padding: 80px 32px; }
}

.gc-lv__inner {
	position: relative;
	z-index: 1;
	max-width: 80rem;
	margin: 0 auto;
}

.gc-lv__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 48px;
	align-items: center;
}
@media (min-width: 1024px) {
	.gc-lv__grid { grid-template-columns: 1fr 1fr; }
}

/* ---------- Colonne photo (gauche) ---------- */
.gc-lv__photo {
	position: relative;
	border-radius: 1.5rem;
	overflow: hidden;
	box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
}
.gc-lv__photo img {
	display: block;
	width: 100%;
	height: 600px;
	object-fit: cover;
}
.gc-lv__photo-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(0deg, rgba(0,0,0,0.6) 0%, rgba(0,0,0,0.2) 40%, transparent 100%);
}

.gc-lv__pill {
	position: absolute;
	top: 32px;
	left: 32px;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 16px;
	background: rgba(255, 238, 135, 0.95);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	border: 1px solid var(--wp--preset--color--accent, #FFEE87);
	border-radius: 999px;
	font-size: 14px;
	font-weight: 500;
	color: #1D1D1D;
}
.gc-lv__pill-dot {
	width: 8px;
	height: 8px;
	background: #E42320;
	border-radius: 50%;
	animation: gc-pulse 2s ease-in-out infinite;
}

.gc-lv__author {
	position: absolute;
	left: 32px;
	right: 32px;
	bottom: 32px;
	background: rgba(255, 255, 255, 0.95);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	border-radius: 1rem;
	padding: 24px;
	box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
}
.gc-lv__author-head {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 12px;
}
.gc-lv__author-icon {
	width: 40px;
	height: 40px;
	background: #E42320;
	color: #fff;
	border-radius: 12px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.gc-lv__author-icon svg { width: 20px; height: 20px; }
.gc-lv__author-eyebrow {
	font-size: 14px;
	color: #6b7280;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	margin: 0;
	line-height: 1.4;
}
.gc-lv__author-name {
	font-size: 20px;
	font-weight: 500;
	color: #1D1D1D;
	margin: 0;
	line-height: 1.4;
}
.gc-lv__author-title {
	font-size: 14px;
	color: #4b5563;
	margin: 0;
	line-height: 1.5;
}

/* ---------- Colonne citation (droite) ---------- */
.gc-lv__quote {
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.gc-lv__quote-icon {
	position: relative;
	display: inline-block;
	width: 64px;
	height: 64px;
	color: #E42320;
	line-height: 0;
	margin-bottom: 32px;
}
.gc-lv__quote-icon::before {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(228, 35, 32, 0.1);
	border-radius: 1.5rem;
	filter: blur(40px);
	z-index: 0;
}
.gc-lv__quote-icon svg {
	position: relative;
	z-index: 1;
	width: 64px;
	height: 64px;
}

.gc-lv__text {
	font-size: 24px;
	font-weight: 400;
	line-height: 1.625;
	color: #1D1D1D;
	margin: 0 0 32px;
	quotes: none;
}
@media (min-width: 1024px) {
	.gc-lv__text { font-size: 30px; }
}

.gc-lv__highlight {
	position: relative;
	display: inline-block;
}
.gc-lv__highlight-text {
	position: relative;
	z-index: 1;
	color: #E42320;
}
.gc-lv__highlight-stroke {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 4px;
	height: 8px;
	background: rgba(255, 238, 135, 0.4);
	transform: rotate(-1deg);
	z-index: 0;
}

.gc-lv__sub-quote {
	font-size: 18px;
	font-style: italic;
	color: #6b7280;
	margin: 0;
	line-height: 1.6;
}

/* =========================================================
   Bloc Positionnement (groupe-carre/positioning)
   Pixel-perfect d'après le composant Figma React.
   ========================================================= */
.gc-pos {
	position: relative;
	padding: 64px 24px;
	background: #FFEE87;
	overflow: hidden;
	width: 100%;
	max-width: 100vw;
	box-sizing: border-box;
	margin-block-start: 0;
}
@media (min-width: 1024px) { .gc-pos { padding: 64px 32px; } }

.gc-pos__bg-blur {
	display: none;
}

.gc-pos__inner {
	position: relative;
	z-index: 1;
	max-width: 80rem;
	margin: 0 auto;
}

.gc-pos__header {
	text-align: center;
	margin-bottom: 64px;
}
.gc-pos__eyebrow {
	display: inline-block;
	color: #E42320;
	font-size: 14px;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.075em;
	margin: 0 0 16px;
}
.gc-pos__title {
	font-size: 36px;
	font-weight: 500;
	line-height: 1.15;
	color: #1D1D1D;
	margin: 0 0 24px;
	letter-spacing: -0.025em;
}
@media (min-width: 1024px) { .gc-pos__title { font-size: 48px; } }

.gc-pos__highlight {
	position: relative;
	display: inline-block;
}
.gc-pos__highlight-text {
	position: relative;
	z-index: 1;
}
.gc-pos__highlight-stroke {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 4px;
	height: 12px;
	background: rgba(228, 35, 32, 0.2);
	transform: rotate(-1deg);
	z-index: 0;
}

.gc-pos__subtitle {
	font-size: 20px;
	color: rgba(29, 29, 29, 0.7);
	margin: 0 auto;
	max-width: 48rem;
	line-height: 1.55;
}

/* Grid */
/* Grille count-aware : le nombre de colonnes s'adapte au nombre de cartes et la
   dernière ligne incomplète est centrée (flex + justify-content:center).
   Desktop : n3/n5/n6 → 3 colonnes (5=3+2, 6=3+3) ; n4/n7/n8 → 4 colonnes. */
.gc-pos__grid {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 32px;
}
.gc-pos__grid > .gc-pos__card {
	flex: 1 1 100%;      /* mobile : 1 colonne */
	max-width: 420px;
	box-sizing: border-box;
}
@media (min-width: 768px) {
	.gc-pos__grid > .gc-pos__card { flex-basis: calc( ( 100% - 32px ) / 2 ); max-width: none; } /* tablette : 2 col */
}
@media (min-width: 1024px) {
	.gc-pos__grid--n1 > .gc-pos__card { flex-basis: 320px; }
	.gc-pos__grid--n2 > .gc-pos__card { flex-basis: calc( ( 100% - 32px ) / 2 ); }
	.gc-pos__grid--n3 > .gc-pos__card,
	.gc-pos__grid--n5 > .gc-pos__card,
	.gc-pos__grid--n6 > .gc-pos__card { flex-basis: calc( ( 100% - 64px ) / 3 ); }
	.gc-pos__grid--n4 > .gc-pos__card,
	.gc-pos__grid--n7 > .gc-pos__card,
	.gc-pos__grid--n8 > .gc-pos__card { flex-basis: calc( ( 100% - 96px ) / 4 ); }
}

/* Card */
.gc-pos__card {
	display: flex;
	flex-direction: column;
	background: rgba(255, 255, 255, 0.6);
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
	border: 1px solid rgba(29, 29, 29, 0.1);
	border-radius: 24px;
	padding: 32px;
	text-decoration: none;
	transition: background 0.3s ease, transform 0.3s ease;
}
.gc-pos__card:hover {
	background: rgba(255, 255, 255, 0.8);
	transform: translateY(-8px);
}

.gc-pos__card-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	background: #000000;
	border-radius: 16px;
	color: #ffffff;
	box-shadow: 0 10px 15px -3px rgba(0,0,0,0.15), 0 4px 6px -4px rgba(0,0,0,0.15);
	margin-bottom: 24px;
	transition: transform 0.4s ease;
}
.gc-pos__card:hover .gc-pos__card-icon {
	transform: scale(1.1) rotate(-6deg);
}

.gc-pos__card-title {
	font-size: 24px;
	font-weight: 500;
	color: #1D1D1D;
	margin: 0 0 12px;
	line-height: 1.3;
	transition: color 0.2s ease;
}
.gc-pos__card:hover .gc-pos__card-title {
	color: #E42320;
}

.gc-pos__card-desc {
	font-size: 16px;
	color: rgba(29, 29, 29, 0.6);
	line-height: 1.625;
	margin: 0 0 24px;
	flex: 1;
}

.gc-pos__card-link {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	color: #E42320;
	font-size: 14px;
	font-weight: 500;
	transition: gap 0.3s ease;
}
.gc-pos__card:hover .gc-pos__card-link {
	gap: 8px;
}
.gc-pos__card-arrow {
	display: inline-flex;
	transition: transform 0.3s ease;
}
.gc-pos__card:hover .gc-pos__card-arrow {
	transform: translateX(4px);
}

/* =========================================================
   Bloc Ferme Pilote (groupe-carre/pilot-farm)
   Pixel-perfect d'après le composant Figma React.
   ========================================================= */
.gc-pf {
	position: relative;
	padding: 128px 24px;
	background: #ffffff;
	overflow: hidden;
	width: 100%;
	max-width: 100vw;
	box-sizing: border-box;
	margin-block-start: 0;
}
@media (min-width: 1024px) { .gc-pf { padding: 128px 32px; } }

.gc-pf__inner {
	position: relative;
	max-width: 90rem;
	margin: 0 auto;
}

.gc-pf__card {
	position: relative;
	border-radius: 2.5rem;
	overflow: hidden;
	box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
	min-height: 600px;
}

.gc-pf__bg {
	position: absolute;
	inset: 0;
}
.gc-pf__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.gc-pf__bg-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(29, 29, 29, 0.4) 0%, rgba(29, 29, 29, 0) 100%);
}
.gc-pf__bg-grid {
	position: absolute;
	inset: 0;
	opacity: 0.03;
	background-image:
		linear-gradient(#fff 1px, transparent 1px),
		linear-gradient(90deg, #fff 1px, transparent 1px);
	background-size: 80px 80px;
}

.gc-pf__content {
	position: relative;
	z-index: 1;
	padding: 80px 32px;
}
@media (min-width: 1024px) {
	.gc-pf__content { padding: 112px 80px; }
}

.gc-pf__panel {
	max-width: 48rem;
	background: rgba(29, 29, 29, 0.6);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	border-radius: 24px;
	padding: 32px;
}

/* Badge top */
.gc-pf__badge {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	padding: 12px 20px;
	background: linear-gradient(90deg, #FFEE87 0%, rgba(255, 238, 135, 0.8) 100%);
	border-radius: 16px;
	margin-bottom: 32px;
	box-shadow: 0 20px 25px -5px rgba(255, 238, 135, 0.2);
	color: #1D1D1D;
}
.gc-pf__badge-icon { display: inline-flex; }
.gc-pf__badge-text {
	font-size: 14px;
	font-weight: 500;
}

/* Titre */
.gc-pf__title {
	font-size: 36px;
	font-weight: 500;
	line-height: 1.15;
	color: #ffffff;
	margin: 0 0 32px;
	letter-spacing: -0.025em;
}
@media (min-width: 1024px) { .gc-pf__title { font-size: 60px; } }

.gc-pf__highlight {
	position: relative;
	display: inline-block;
}
.gc-pf__highlight-text {
	position: relative;
	z-index: 1;
}
.gc-pf__highlight-stroke {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 8px;
	height: 12px;
	background: rgba(228, 35, 32, 0.4);
	z-index: 0;
}

/* Description */
.gc-pf__description {
	font-size: 20px;
	color: rgba(255, 255, 255, 0.9);
	margin: 0 0 40px;
	line-height: 1.625;
}
.gc-pf__description p { margin: 0 0 1em; }
.gc-pf__description p:last-child { margin-bottom: 0; }
.gc-pf__description strong {
	font-weight: 700;
	color: #ffffff;
}
.gc-pf__description em {
	color: #E42320;
	font-style: normal;
	font-weight: 700;
}

/* Features chips */
.gc-pf__features {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-bottom: 40px;
}
.gc-pf__feature {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 12px;
	background: rgba(255, 255, 255, 0.1);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	border: 1px solid rgba(255, 255, 255, 0.2);
	border-radius: 12px;
	white-space: nowrap;
	transition: background 0.2s ease, transform 0.2s ease;
}
.gc-pf__feature:hover {
	background: rgba(255, 255, 255, 0.15);
	transform: scale(1.04);
}
.gc-pf__feature-icon { color: #FFEE87; display: inline-flex; flex-shrink: 0; }
.gc-pf__feature-label { font-size: 12px; color: #ffffff; }

/* CTA */
.gc-pf__cta {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 20px 32px;
	color: #1D1D1D;
	background: linear-gradient(90deg, #FFEE87 0%, rgba(255, 238, 135, 0.9) 100%);
	border-radius: 16px;
	font-size: 18px;
	font-weight: 500;
	text-decoration: none;
	transition: box-shadow 0.4s ease, transform 0.4s ease;
}
.gc-pf__cta:hover {
	box-shadow: 0 25px 50px -12px rgba(255, 238, 135, 0.3);
	transform: scale(1.04) translateY(-2px);
}
.gc-pf__cta-arrow {
	display: inline-flex;
	transition: transform 0.3s ease;
}
.gc-pf__cta:hover .gc-pf__cta-arrow { transform: translateX(4px); }

/* Groupe « logo + chiffres clés ».
   Mobile/tablette : dans le flux, sous le panneau (les chiffres restent visibles).
   Desktop : ancré en bas à droite de la carte. */
.gc-pf__stats-wrap {
	margin-top: 32px;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 16px;
}
@media (min-width: 1024px) {
	.gc-pf__stats-wrap {
		position: absolute;
		bottom: 32px;
		right: 32px;
		margin-top: 0;
	}
}

/* Logo : bande compacte centrée au-dessus des chiffres.
   Plafonné en hauteur (sinon un logo carré devient trop grand) ET borné à la
   largeur des chiffres clés. */
.gc-pf__stats-logo { text-align: center; }
.gc-pf__stats-logo img {
	display: block;
	margin: 0 auto;
	width: auto;
	height: auto;
	max-width: 100%;
	max-height: 72px;
	filter: drop-shadow(0 2px 10px rgba(0, 0, 0, 0.5));
}
/* Largeur bornée à celle des chiffres clés UNIQUEMENT s'il y en a.
   width:0 + min-width:100% => la largeur du groupe est fixée par les chiffres
   (le logo ne l'élargit pas), et l'image se cape à cette largeur. */
.gc-pf__stats-wrap:has(.gc-pf__stats) .gc-pf__stats-logo {
	width: 0;
	min-width: 100%;
}

.gc-pf__stats {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 16px;
}
@media (min-width: 1024px) {
	.gc-pf__stats { flex-wrap: nowrap; }
}
.gc-pf__stat {
	background: rgba(255, 255, 255, 0.95);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	border-radius: 16px;
	padding: 24px;
	box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
	transition: transform 0.3s ease;
}
.gc-pf__stat:hover { transform: scale(1.04) translateY(-4px); }
.gc-pf__stat-number {
	font-size: 30px;
	font-weight: 500;
	color: #E42320;
	margin-bottom: 4px;
	line-height: 1;
}
.gc-pf__stat-label {
	font-size: 14px;
	color: #4b5563;
	line-height: 1.4;
}

/* Mobile : le padding se cumulait (content 32 + panel 32 = colonne ~260px sur
   un 390px) → on réduit paddings + tailles, et on laisse les chips replier leur
   texte (white-space:normal) au lieu de déborder. */
@media (max-width: 640px) {
	.gc-pf__content { padding: 56px 16px; }
	.gc-pf__panel { padding: 24px; }
	.gc-pf__badge { margin-bottom: 24px; }
	.gc-pf__title { font-size: 28px; margin-bottom: 24px; }
	.gc-pf__description { font-size: 16px; margin-bottom: 28px; }
	.gc-pf__feature { white-space: normal; }
}

/* =========================================================
   Bloc Bandeau CTA (groupe-carre/cta-banner)
   Pixel-perfect d'après le composant Figma React.
   ========================================================= */
.gc-cta {
	position: relative;
	width: 100%;
	max-width: 100vw;
	box-sizing: border-box;
	margin-block-start: 0;
}
/* La boîte porte le fond, le padding et les angles (full = plein écran, contained = boîte) */
.gc-cta__box {
	position: relative;
	overflow: hidden;
	padding: 80px 24px;
	background: linear-gradient(135deg, #E42320 0%, #c91e1c 100%);
}
@media (min-width: 1024px) { .gc-cta__box { padding: 80px 32px; } }

/* Largeur contenue : boîte centrée, arrondie, avec ombre.
   Le fond autour reprend le gris clair des sections « contenu » pour un raccord net. */
.gc-cta--contained {
	padding: 0 clamp(1.5rem, 4vw, 2rem) 80px;
	background: #f9fafb;
}
.gc-cta--contained .gc-cta__box {
	max-width: 76rem;
	margin: 0 auto;
	border-radius: 2rem;
	box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.15);
}

.gc-cta__bg-blur {
	position: absolute;
	width: 384px;
	height: 384px;
	border-radius: 50%;
	filter: blur(64px);
	z-index: 0;
	pointer-events: none;
}
.gc-cta__bg-blur--top {
	top: 0;
	right: 0;
	background: rgba(255, 255, 255, 0.05);
}
.gc-cta__bg-blur--bottom {
	bottom: 0;
	left: 0;
	background: rgba(0, 0, 0, 0.1);
}

.gc-cta__inner {
	position: relative;
	z-index: 1;
	max-width: 56rem;
	margin: 0 auto;
	text-align: center;
}

.gc-cta__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 80px;
	height: 80px;
	background: rgba(255, 255, 255, 0.2);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	border-radius: 50%;
	color: #ffffff;
	margin-bottom: 32px;
}

.gc-cta__badge {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 16px;
	margin-bottom: 32px;
	background: rgba(255, 255, 255, 0.1);
	border: 1px solid rgba(255, 255, 255, 0.2);
	border-radius: 999px;
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	font-size: 14px;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.075em;
	color: rgba(255, 255, 255, 0.9);
}
.gc-cta__badge-dot {
	width: 8px;
	height: 8px;
	background: var(--wp--preset--color--accent, #FFEE87);
	border-radius: 50%;
	animation: gc-pulse 2s ease-in-out infinite;
}

.gc-cta__title {
	font-size: 36px;
	font-weight: 500;
	line-height: 1.15;
	color: #ffffff;
	margin: 0 0 24px;
	letter-spacing: -0.025em;
}
@media (min-width: 1024px) { .gc-cta__title { font-size: 48px; } }

.gc-cta__highlight {
	position: relative;
	display: inline-block;
}
.gc-cta__highlight-text { position: relative; z-index: 1; }
.gc-cta__highlight-stroke {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 6px;
	height: 14px;
	background: rgba(255, 238, 135, 0.3);
	transform: rotate(-1deg);
	z-index: 0;
}

.gc-cta__info {
	margin: 40px 0 0;
	font-size: 14px;
	color: rgba(255, 255, 255, 0.7);
}

.gc-cta__description {
	font-size: 20px;
	color: rgba(255, 255, 255, 0.9);
	margin: 0 auto 40px;
	max-width: 42rem;
	line-height: 1.55;
}

.gc-cta__buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	justify-content: center;
}

.gc-cta__btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 16px 32px;
	font-size: 18px;
	font-weight: 500;
	font-family: inherit;
	line-height: 1;
	cursor: pointer;
	border-radius: 999px;
	border: 2px solid transparent;
	text-decoration: none;
	transition: background 0.3s ease, color 0.3s ease, border-color 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease;
}
.gc-cta__btn--primary {
	background: #ffffff;
	color: #E42320;
	box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
}
.gc-cta__btn--primary:hover {
	background: #FFEE87;
	color: #1D1D1D;
	transform: translateY(-2px) scale(1.04);
}
.gc-cta__btn--secondary {
	background: transparent;
	color: #ffffff;
	border-color: #ffffff;
}
.gc-cta__btn--secondary:hover {
	background: #ffffff;
	color: #E42320;
	transform: translateY(-2px) scale(1.04);
}
.gc-cta__btn-arrow {
	display: inline-flex;
}

/* --- Variante FONCÉE : seul le fond change (texte déjà blanc) --- */
.gc-cta--dark .gc-cta__box {
	background: linear-gradient(135deg, #1D1D1D 0%, #2D2D2D 100%);
}

/* --- Variante BLANCHE : texte sombre, boutons rouges --- */
.gc-cta--white .gc-cta__box {
	background: #ffffff;
}
.gc-cta--white .gc-cta__title { color: #1D1D1D; }
.gc-cta--white .gc-cta__description { color: #4b5563; }
.gc-cta--white .gc-cta__info { color: #6b7280; }
.gc-cta--white .gc-cta__icon {
	background: rgba(228, 35, 32, 0.1);
	color: #E42320;
}
.gc-cta--white .gc-cta__badge {
	background: var(--wp--preset--color--muted, #F3F3F5);
	border-color: rgba(0, 0, 0, 0.1);
	color: #1D1D1D;
}
.gc-cta--white .gc-cta__btn--primary {
	background: #E42320;
	color: #ffffff;
}
.gc-cta--white .gc-cta__btn--primary:hover {
	background: #c91e1c;
	color: #ffffff;
}
.gc-cta--white .gc-cta__btn--secondary {
	color: #1D1D1D;
	border-color: rgba(0, 0, 0, 0.2);
}
.gc-cta--white .gc-cta__btn--secondary:hover {
	background: #E42320;
	color: #ffffff;
	border-color: #E42320;
}

/* --- Variante JAUNE : texte sombre, boutons rouges --- */
.gc-cta--yellow .gc-cta__box {
	background: linear-gradient(90deg, #FFEE87 0%, #fff4a3 100%);
}
.gc-cta--yellow .gc-cta__title { color: #1D1D1D; }
.gc-cta--yellow .gc-cta__description { color: #374151; }
.gc-cta--yellow .gc-cta__info { color: #6b7280; }
.gc-cta--yellow .gc-cta__icon { background: rgba(228, 35, 32, 0.12); color: #E42320; }
.gc-cta--yellow .gc-cta__badge {
	background: rgba(0, 0, 0, 0.06);
	border-color: rgba(0, 0, 0, 0.1);
	color: #1D1D1D;
}
.gc-cta--yellow .gc-cta__highlight-stroke { background: rgba(228, 35, 32, 0.2); }
.gc-cta--yellow .gc-cta__btn--primary { background: #E42320; color: #ffffff; }
.gc-cta--yellow .gc-cta__btn--primary:hover { background: #c91e1c; color: #ffffff; }
.gc-cta--yellow .gc-cta__btn--secondary { color: #1D1D1D; border-color: rgba(0, 0, 0, 0.25); }
.gc-cta--yellow .gc-cta__btn--secondary:hover { background: #E42320; color: #ffffff; border-color: #E42320; }

/* =========================================================
   Bloc Recrutement (groupe-carre/recruitment)
   Pixel-perfect d'après le composant Figma React.
   ========================================================= */
.gc-rec {
	position: relative;
	padding: 128px 24px;
	background: #1D1D1D;
	overflow: hidden;
	width: 100%;
	max-width: 100vw;
	box-sizing: border-box;
	margin-block-start: 0;
}
@media (min-width: 1024px) { .gc-rec { padding: 128px 32px; } }

/* Image de fond + voile sombre */
.gc-rec__bg {
	position: absolute;
	inset: 0;
	z-index: 0;
}
.gc-rec__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.gc-rec__bg-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(29,29,29,0.85) 0%, rgba(29,29,29,0.7) 50%, rgba(29,29,29,0.4) 100%);
}

.gc-rec__inner {
	position: relative;
	z-index: 1;
	max-width: 80rem;
	margin: 0 auto;
}

.gc-rec__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 48px;
	align-items: center;
}
@media (min-width: 1024px) {
	.gc-rec__grid { grid-template-columns: 1fr 1fr; gap: 64px; }
}

/* ---------- Colonne contenu ---------- */
.gc-rec__eyebrow {
	display: inline-block;
	color: #FFEE87;
	font-size: 14px;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.075em;
}
.gc-rec__title {
	font-size: 36px;
	font-weight: 500;
	color: #ffffff;
	margin: 16px 0 16px;
	line-height: 1.1;
	letter-spacing: -0.025em;
}
@media (min-width: 1024px) { .gc-rec__title { font-size: 48px; } }

.gc-rec__subtitle {
	font-size: 18px;
	color: rgba(255, 255, 255, 0.75);
	margin: 0 0 40px;
	max-width: 32rem;
	line-height: 1.625;
}

.gc-rec__badge {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	padding: 12px 20px;
	background: rgba(255, 255, 255, 0.1);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	border: 1px solid rgba(255, 255, 255, 0.2);
	border-radius: 16px;
	margin-bottom: 40px;
	color: #ffffff;
	font-size: 14px;
	font-weight: 500;
}
.gc-rec__badge-dot {
	width: 8px;
	height: 8px;
	background: #FFEE87;
	border-radius: 50%;
	animation: gc-pulse 2s ease-in-out infinite;
}

.gc-rec__cta-wrap { display: block; }
.gc-rec__cta {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 16px 32px;
	background: #FFEE87;
	color: #1D1D1D;
	font-size: 16px;
	font-weight: 500;
	border-radius: 16px;
	text-decoration: none;
	box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.3);
	transition: background 0.3s ease, transform 0.3s ease;
}
.gc-rec__cta:hover { background: #ffffff; transform: translateY(-2px); }
.gc-rec__cta-arrow { display: inline-flex; transition: transform 0.3s ease; }
.gc-rec__cta:hover .gc-rec__cta-arrow { transform: translateX(4px); }

/* ---------- Colonne offres (liste défilante) ---------- */
.gc-rec__offers {
	display: flex;
	flex-direction: column;
	gap: 20px;
}
/* Zone défilante : ~3 cartes visibles (le JS affine au pixel sur le front),
   et la carte suivante s'estompe en bas via un masque (pas de barre à bords nets). */
.gc-rec__offers.is-scrollable {
	position: relative;
	max-height: 25rem;
	overflow-y: auto;
	padding-right: 10px;
	scrollbar-width: thin;
	scrollbar-color: rgba(255, 255, 255, 0.35) transparent;
	-webkit-mask-image: linear-gradient(to bottom, #000 calc(100% - 40px), transparent 100%);
	        mask-image: linear-gradient(to bottom, #000 calc(100% - 40px), transparent 100%);
	transition: -webkit-mask-image 0.3s ease, mask-image 0.3s ease;
}
/* Dès qu'on défile, le dégradé disparaît ; il revient en haut de liste */
.gc-rec__offers.is-scrollable.is-scrolled {
	-webkit-mask-image: none;
	        mask-image: none;
}
.gc-rec__offers.is-scrollable::-webkit-scrollbar { width: 6px; }
.gc-rec__offers.is-scrollable::-webkit-scrollbar-track { background: transparent; }
.gc-rec__offers.is-scrollable::-webkit-scrollbar-thumb { background: rgba(255, 255, 255, 0.3); border-radius: 999px; }

.gc-rec__job {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	background: rgba(255, 255, 255, 0.95);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	border-radius: 16px;
	padding: 24px 32px;
	text-decoration: none;
	box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.25);
	transition: transform 0.3s ease, background 0.3s ease;
}
.gc-rec__job:hover { transform: translateX(6px); background: #ffffff; }

.gc-rec__job-head {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 8px;
}
.gc-rec__job-dept {
	display: inline-block;
	padding: 4px 12px;
	background: #E42320;
	color: #ffffff;
	font-size: 12px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	border-radius: 8px;
}
.gc-rec__job-type {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	color: #9ca3af;
	font-size: 12px;
}
.gc-rec__job-title {
	font-size: 20px;
	font-weight: 600;
	color: #1D1D1D;
	margin: 0 0 8px;
	line-height: 1.3;
	transition: color 0.3s ease;
}
.gc-rec__job:hover .gc-rec__job-title { color: #E42320; }
.gc-rec__job-location {
	display: flex;
	align-items: center;
	gap: 4px;
	color: #6b7280;
	font-size: 14px;
	margin: 0;
}
.gc-rec__job-location-icon { color: #E42320; display: inline-flex; }

.gc-rec__job-arrow {
	width: 44px;
	height: 44px;
	flex-shrink: 0;
	border-radius: 12px;
	background: #FFEE87;
	color: #1D1D1D;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: background 0.3s ease, color 0.3s ease;
}
.gc-rec__job:hover .gc-rec__job-arrow { background: #E42320; color: #ffffff; }

.gc-rec__offers-count {
	margin: 20px 0 0;
	font-size: 14px;
	color: rgba(255, 255, 255, 0.85);
	font-weight: 500;
}
.gc-rec__empty { color: rgba(255, 255, 255, 0.7); font-size: 16px; }

/* =========================================================
   Pied de page (groupe-carre/footer)
   Pixel-perfect d'après le composant Figma React.
   ========================================================= */
.site-footer,
footer.wp-block-template-part {
	position: relative;
	background: #1D1D1D;
	color: #ffffff;
	overflow: hidden;
	margin: 0;
}

.gc-footer__bg-blur {
	position: absolute;
	width: 384px;
	height: 384px;
	border-radius: 50%;
	filter: blur(64px);
	z-index: 0;
	pointer-events: none;
}
.gc-footer__bg-blur--red {
	top: 0;
	left: 25%;
	background: rgba(228, 35, 32, 0.05);
}
.gc-footer__bg-blur--yellow {
	bottom: 0;
	right: 25%;
	background: rgba(255, 238, 135, 0.05);
}

.gc-footer__inner {
	position: relative;
	z-index: 1;
	max-width: 80rem;
	margin: 0 auto;
	padding: 80px 24px;
}
@media (min-width: 1024px) { .gc-footer__inner { padding: 80px 32px; } }

/* Main grid : brand 2 cols + 3 menus */
.gc-footer__main {
	display: grid;
	grid-template-columns: 1fr;
	gap: 48px;
}
@media (min-width: 768px) {
	.gc-footer__main { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1024px) {
	.gc-footer__main { grid-template-columns: 2fr 1fr 1fr 1fr; gap: 48px; }
}

/* Brand */
.gc-footer__logo {
	display: inline-flex;
	gap: 0.4ch;
	font-size: 30px;
	font-weight: 700;
	letter-spacing: 0.01em;
	text-decoration: none;
	margin-bottom: 24px;
	transition: transform 0.2s ease;
}
.gc-footer__logo:hover { transform: scale(1.02); }
.gc-footer__logo-primary  { color: #E42320; }
.gc-footer__logo-secondary { color: #ffffff; }
/* Logo image du pied de page (Personnaliser → Pied de page → Logo).
   Hauteur explicite pour les SVG à viewBox seul (sinon 0×0). */
.gc-footer__logo--image { display: inline-flex; }
.gc-footer__logo-img {
	display: block;
	width: auto;
	height: 52px;
	max-width: 240px;
	object-fit: contain;
}

.gc-footer__tagline {
	font-size: 18px;
	color: rgba(255, 255, 255, 0.7);
	line-height: 1.625;
	margin: 0 0 32px;
}

/* Coordonnées avec badges rouges */
.gc-footer__contact {
	list-style: none;
	margin: 0 0 32px;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 16px;
}
.gc-footer__contact li {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	transition: transform 0.2s ease;
}
.gc-footer__contact li:hover { transform: translateX(4px); }

.gc-footer__contact-link {
	display: flex;
	align-items: center;
	gap: 16px;
	color: inherit;
	text-decoration: none;
	flex: 1;
}
.gc-footer__contact-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	background: rgba(228, 35, 32, 0.1);
	color: #E42320;
	border-radius: 12px;
	flex-shrink: 0;
	transition: background 0.2s ease;
}
.gc-footer__contact li:hover .gc-footer__contact-badge,
.gc-footer__contact-link:hover .gc-footer__contact-badge {
	background: rgba(228, 35, 32, 0.2);
}
.gc-footer__contact-text {
	color: rgba(255, 255, 255, 0.7);
	font-size: 15px;
	line-height: 1.55;
	padding-top: 4px;
	transition: color 0.2s ease;
}
.gc-footer__contact-link:hover .gc-footer__contact-text {
	color: #ffffff;
}

/* Ligne réseaux + logos (pleine largeur, sous la grille) :
   centrée + empilée en mobile ; socials à gauche / logos à droite en desktop. */
.gc-footer__meta-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 24px;
	margin: 0 0 48px;
}
@media (min-width: 1024px) {
	.gc-footer__meta-row { justify-content: space-between; }
}
/* Responsive : un peu plus d'air entre les menus et les icônes réseaux sociaux */
@media (max-width: 1023px) {
	.gc-footer__meta-row { margin-top: 24px; }
}

.gc-footer__socials {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	gap: 12px;
}
.gc-footer__socials a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	background: rgba(255, 255, 255, 0.05);
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 12px;
	color: #ffffff;
	transition: background 0.3s ease, border-color 0.3s ease, transform 0.3s ease;
}
.gc-footer__socials a:hover {
	background: #E42320;
	border-color: #E42320;
	transform: translateY(-2px) scale(1.1);
}

.gc-footer__partners {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 16px;
}
.gc-footer__partners img {
	height: 96px;
	width: auto;
	max-width: 140px;
	object-fit: contain;
	transition: transform 0.3s ease;
	display: block;
}
.gc-footer__partners a:hover img,
.gc-footer__partners li:hover img {
	transform: scale(1.05) translateY(-2px);
}

/* Colonnes menus */
.gc-footer__col-title {
	color: #ffffff;
	font-size: 18px;
	font-weight: 500;
	margin: 0 0 24px;
}
.gc-footer__menu {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.gc-footer__menu a {
	color: rgba(255, 255, 255, 0.7);
	font-size: 15px;
	text-decoration: none;
	display: inline-block;
	transition: color 0.2s ease, transform 0.2s ease;
}
.gc-footer__menu a:hover {
	color: #ffffff;
	transform: translateX(4px);
}

/* Certifications — bande institutionnelle pleine largeur */
.gc-footer__certifications {
	border-top: 1px solid rgba(255, 255, 255, 0.1);
	padding-top: 32px;
	padding-bottom: 40px;
	margin-top: 40px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 32px;
	flex-wrap: wrap;
}
.gc-footer__certifications-content {
	flex: 1 1 480px;
}
.gc-footer__certifications-title {
	color: #ffffff;
	font-size: 16px;
	font-weight: 600;
	margin: 0 0 12px;
}
.gc-footer__certifications-text {
	margin: 0;
	max-width: 70ch;
	color: rgba(255, 255, 255, 0.5);
	font-size: 14px;
	line-height: 1.7;
}
.gc-footer__certifications .gc-footer__partners {
	flex: 0 0 auto;
	margin: 0;
}

/* Bottom — mentions légales inline avec séparateurs */
.gc-footer__bottom {
	border-top: 1px solid rgba(255, 255, 255, 0.1);
	padding-top: 40px;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 16px 24px;
	font-size: 14px;
	color: rgba(255, 255, 255, 0.5);
}
.gc-footer__bottom-menu {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 16px 24px;
	align-items: center;
}
.gc-footer__bottom-menu li {
	position: relative;
}
.gc-footer__bottom-menu li:not(:last-child)::after {
	content: "•";
	position: absolute;
	right: -16px;
	top: 50%;
	transform: translateY(-50%);
	color: rgba(255, 255, 255, 0.3);
}
.gc-footer__bottom-menu a {
	color: rgba(255, 255, 255, 0.5);
	font-size: 14px;
	text-decoration: none;
	transition: color 0.2s ease, transform 0.2s ease;
}
.gc-footer__bottom-menu a:hover {
	color: #ffffff;
	transform: scale(1.05);
}
.gc-footer__copyright {
	margin: 0;
	position: relative;
}
.gc-footer__copyright + .gc-footer__bottom-menu::before {
	content: "•";
	margin-right: 24px;
	color: rgba(255, 255, 255, 0.3);
}

/* Footer entièrement centré sur mobile / tablette */
@media (max-width: 1023px) {
	.gc-footer__inner { text-align: center; }
	/* Coordonnées : le bloc entier est centré, mais les icônes restent alignées
	   verticalement entre elles (liste largeur contenu, centrée). */
	.gc-footer__contact {
		width: max-content;
		max-width: 100%;
		margin-inline: auto;
	}
	.gc-footer__contact li { justify-content: flex-start; }
	.gc-footer__contact-link { flex: 0 1 auto; text-align: left; }
	.gc-footer__contact-text { text-align: left; } /* adresse sur 2 lignes alignée à gauche */
	/* Certifications : texte + logos centrés */
	.gc-footer__certifications { justify-content: center; text-align: center; }
	.gc-footer__certifications-content { flex-basis: auto; }
	.gc-footer__partners { justify-content: center; }
}

/* =========================================================
   Bloc Hero — Page intérieure (groupe-carre/page-hero)
   Pixel-perfect d'après HistoryPage.tsx.
   ========================================================= */
.gc-page-hero {
	position: relative;
	min-height: 70vh;
	display: flex;
	align-items: center;
	overflow: hidden;
	color: #ffffff;
	margin-block-start: 0;
	/* Fond dégradé rouge → noir (l'image éventuelle passe en filigrane par-dessus) */
	background: linear-gradient(135deg, #E42320 0%, #c91d1a 55%, #1D1D1D 100%);
}

/* Hauteur réduite (pages légales, etc.) */
.gc-page-hero--small {
	min-height: 0;
}
/* Le header fixe (80px) recouvre le haut du hero : on l'ajoute au padding haut
   pour que la marge VISIBLE soit identique en haut et en bas. */
.gc-page-hero--small .gc-page-hero__inner {
	padding: 120px 24px 40px; /* haut visible = 120 - 80 = 40, bas = 40 */
}
@media (min-width: 1024px) {
	.gc-page-hero--small .gc-page-hero__inner { padding: 128px 32px 48px; } /* 128 - 80 = 48, bas = 48 */
}

.gc-page-hero__bg {
	position: absolute;
	inset: 0;
	z-index: 0;
}
.gc-page-hero__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	opacity: 0.2; /* image en filigrane sur le dégradé */
}
.gc-page-hero__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 0%, rgba(29, 29, 29, 0.25) 100%);
}

.gc-page-hero__inner {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: 90rem;
	margin: 0 auto;
	padding: 96px 24px 64px;
}
@media (min-width: 1024px) { .gc-page-hero__inner { padding: 96px 32px 64px; } }

.gc-page-hero__content {
	max-width: 56rem;
	margin: 0 auto;
	text-align: center;
}

/* Badge jaune */
.gc-page-hero__badge {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	padding: 12px 20px;
	background: linear-gradient(90deg, #FFEE87 0%, rgba(255, 238, 135, 0.8) 100%);
	border-radius: 16px;
	margin-bottom: 32px;
	box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
	color: #1D1D1D;
}
.gc-page-hero__badge-icon { display: inline-flex; }
.gc-page-hero__badge-text {
	font-size: 14px;
	font-weight: 500;
}

/* Titre */
.gc-page-hero__title {
	font-size: clamp(36px, 9vw, 48px); /* mots longs (« Accompagnement ») tiennent sur petits écrans */
	font-weight: 500;
	color: #ffffff;
	margin: 0 0 32px;
	line-height: 1.1;
	letter-spacing: -0.035em;
	overflow-wrap: break-word;
}
@media (min-width: 1024px) { .gc-page-hero__title { font-size: 72px; } }

.gc-page-hero__highlight {
	position: relative;
	display: inline-block;
}
.gc-page-hero__highlight-text {
	position: relative;
	z-index: 1;
}
.gc-page-hero__highlight-stroke {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 8px;
	height: 16px;
	background: rgba(228, 35, 32, 0.4);
	z-index: 0;
}

/* Description */
.gc-page-hero__description {
	font-size: 20px;
	color: rgba(255, 255, 255, 0.9);
	line-height: 1.625;
	margin: 0 0 48px;
}

/* Chiffres clés */
/* Grille centrée : le nombre de colonnes s'adapte au nombre de pastilles
   (une seule rangée centrée ; 2×2 sur tablette pour 4+). */
.gc-page-hero__keyfigures {
	list-style: none;
	display: grid;
	justify-content: center;
	gap: 16px;
	margin: 0 auto;
	padding: 0;
}
.gc-page-hero__keyfigures--n1 { grid-template-columns: minmax(0, 200px); }
.gc-page-hero__keyfigures--n2 { grid-template-columns: repeat(2, minmax(0, 190px)); }
.gc-page-hero__keyfigures--n3 { grid-template-columns: repeat(3, minmax(0, 180px)); }
.gc-page-hero__keyfigures--n4 { grid-template-columns: repeat(4, minmax(0, 180px)); }
.gc-page-hero__keyfigures--n5 { grid-template-columns: repeat(5, minmax(0, 165px)); }
.gc-page-hero__keyfigures--n6 { grid-template-columns: repeat(3, minmax(0, 180px)); }
@media (max-width: 780px) {
	.gc-page-hero__keyfigures--n4,
	.gc-page-hero__keyfigures--n5,
	.gc-page-hero__keyfigures--n6 { grid-template-columns: repeat(2, minmax(0, 180px)); }
}
@media (max-width: 480px) {
	.gc-page-hero__keyfigures { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; width: 100%; }
}

.gc-page-hero__kf {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 4px;
	padding: 16px;
	background: rgba(255, 255, 255, 0.1);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	border: 1px solid rgba(255, 255, 255, 0.2);
	border-radius: 12px;
	text-align: center;
}
.gc-page-hero__kf-number {
	font-size: 30px;
	font-weight: 700;
	color: #ffffff;
	line-height: 1;
}
@media (min-width: 1024px) { .gc-page-hero__kf-number { font-size: 36px; } }

.gc-page-hero__kf-label {
	font-size: 12px;
	color: rgba(255, 255, 255, 0.8);
	text-transform: uppercase;
	letter-spacing: 0.075em;
}
@media (min-width: 1024px) { .gc-page-hero__kf-label { font-size: 14px; } }

/* Sommaire (liens d'ancre) sous la description */
.gc-page-hero__toc {
	display: flex;
	gap: 10px;
	justify-content: center;
	flex-wrap: wrap;
	margin: 24px auto 0;
	max-width: 46rem;
}
.gc-page-hero__toc a {
	display: inline-flex;
	align-items: center;
	padding: 9px 18px;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.12);
	border: 1px solid rgba(255, 255, 255, 0.3);
	color: #ffffff;
	font-size: 13px;
	font-weight: 600;
	text-decoration: none;
	transition: background 0.25s ease, color 0.25s ease, transform 0.25s ease;
}
.gc-page-hero__toc a:hover { background: #ffffff; color: #E42320; transform: translateY(-2px); }

/* =========================================================
   Bloc Timeline historique (groupe-carre/timeline)
   Pixel-perfect d'après HistoryPage.tsx (timeline section).
   ========================================================= */
.gc-timeline {
	position: relative;
	padding: 128px 24px;
	background: #ffffff;
	width: 100%;
	max-width: 100vw;
	box-sizing: border-box;
	margin-block-start: 0;
}
@media (min-width: 1024px) { .gc-timeline { padding: 128px 32px; } }

.gc-timeline__inner {
	max-width: 1400px;
	margin: 0 auto;
}

/* Header */
.gc-timeline__header {
	text-align: center;
	margin-bottom: 80px;
}
.gc-timeline__title {
	font-size: 36px;
	font-weight: 500;
	color: #1D1D1D;
	margin: 0 0 16px;
	line-height: 1.1;
	letter-spacing: -0.025em;
}
@media (min-width: 1024px) { .gc-timeline__title { font-size: 48px; } }
.gc-timeline__subtitle {
	font-size: 20px;
	color: #4b5563;
	margin: 0;
}

/* Liste des périodes */
.gc-timeline__list {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 64px;
}

/* Ligne verticale centrale (desktop seulement) */
.gc-timeline__line {
	display: none;
}
@media (min-width: 1024px) {
	.gc-timeline__line {
		display: block;
		position: absolute;
		left: 50%;
		top: 0;
		bottom: 0;
		width: 4px;
		transform: translateX(-50%);
		background: linear-gradient(180deg, #E42320 0%, #FFEE87 50%, #E42320 100%);
		border-radius: 4px;
		z-index: 0;
	}
}

/* Item de timeline */
.gc-timeline__item {
	position: relative;
	display: grid;
	grid-template-columns: 1fr;
	gap: 48px;
	align-items: center;
}
@media (min-width: 1024px) {
	.gc-timeline__item {
		grid-template-columns: 1fr 1fr;
		gap: 80px;
	}
	.gc-timeline__item.is-reverse .gc-timeline__image {
		grid-column: 2;
		grid-row: 1;
	}
	.gc-timeline__item.is-reverse .gc-timeline__card-wrap {
		grid-column: 1;
		grid-row: 1;
	}
}

/* Image */
.gc-timeline__image {
	position: relative;
	border-radius: 16px;
	overflow: hidden;
	box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
	height: 500px;
	transition: transform 0.3s ease;
}
.gc-timeline__image:hover { transform: scale(1.02); }
.gc-timeline__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.gc-timeline__image-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(0deg, rgba(0, 0, 0, 0.4) 0%, transparent 100%);
}

/* Carte de contenu */
.gc-timeline__card-wrap {
	position: relative;
}
.gc-timeline__card {
	position: relative;
	background: #ffffff;
	border: 1px solid #f3f4f6;
	border-radius: 16px;
	padding: 24px;
	box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);
}

.gc-timeline__period {
	position: absolute;
	top: -16px;
	left: 24px;
	display: inline-block;
	padding: 8px 24px;
	background: linear-gradient(90deg, #E42320 0%, #c91e1c 100%);
	color: #ffffff;
	font-size: 14px;
	font-weight: 700;
	border-radius: 999px;
	box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
}

.gc-timeline__card-title {
	font-size: 24px;
	font-weight: 500;
	color: #1D1D1D;
	margin: 16px 0 12px;
	line-height: 1.25;
	letter-spacing: -0.015em;
}
@media (min-width: 1024px) { .gc-timeline__card-title { font-size: 30px; } }

.gc-timeline__card-desc {
	font-size: 14px;
	color: #4b5563;
	line-height: 1.625;
	margin: 0 0 20px;
}

.gc-timeline__card-desc > :first-child {
	margin-top: 0;
}

.gc-timeline__card-desc > :last-child {
	margin-bottom: 0;
}

.gc-timeline__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.gc-timeline__chip {
	display: inline-block;
	padding: 6px 12px;
	background: rgba(255, 238, 135, 0.3);
	color: #1D1D1D;
	font-size: 12px;
	font-weight: 500;
	border-radius: 8px;
	border: 1px solid #FFEE87;
}

/* Point central sur la ligne (desktop seulement) */
.gc-timeline__dot {
	display: none;
}
@media (min-width: 1024px) {
	.gc-timeline__dot {
		display: block;
		position: absolute;
		left: 50%;
		top: 50%;
		transform: translate(-50%, -50%);
		width: 24px;
		height: 24px;
		background: #ffffff;
		border: 4px solid #E42320;
		border-radius: 50%;
		z-index: 1;
	}
	.gc-timeline__dot-pulse {
		position: absolute;
		inset: -4px;
		background: rgba(228, 35, 32, 0.2);
		border-radius: 50%;
		animation: gc-timeline-pulse 2s ease-in-out infinite;
	}
}
@keyframes gc-timeline-pulse {
	0%, 100% { transform: scale(1); opacity: 0.5; }
	50%      { transform: scale(1.5); opacity: 0; }
}

/* =========================================================
   Bloc Intro centrée (groupe-carre/intro-centered)
   ========================================================= */
.gc-intro-centered {
	padding: 96px 24px;
	background: transparent;
	width: 100%;
	max-width: 100vw;
	box-sizing: border-box;
	margin-block-start: 0;
	display: flex !important;
	flex-direction: column;
	align-items: center;
	text-align: center;
}
.gc-intro-centered > * {
	max-width: 56rem !important;
	width: 100%;
	margin-left: auto !important;
	margin-right: auto !important;
	text-align: center !important;
}
.gc-intro-centered__eyebrow {
	color: #E42320 !important;
	font-size: 14px !important;
	font-weight: 500 !important;
	text-transform: uppercase;
	letter-spacing: 0.075em;
	margin: 0 0 16px !important;
}
.gc-intro-centered__title {
	font-size: 36px !important;
	font-weight: 700 !important;
	color: #1D1D1D !important;
	margin: 0 0 24px !important;
	line-height: 1.15;
	letter-spacing: -0.025em;
}
@media (min-width: 1024px) {
	.gc-intro-centered__title { font-size: 48px !important; }
}

.gc-intro-centered__description {
	font-size: 20px !important;
	color: #4b5563 !important;
	line-height: 1.625 !important;
	margin: 0 !important;
}

/* =========================================================
   Animations on scroll (IntersectionObserver)
   ========================================================= */
.gc-animate {
	opacity: 0;
	transition: opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1), transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}
.gc-animate[data-anim="fade-up"],
.gc-animate:not([data-anim]) {
	transform: translateY(40px);
}
.gc-animate[data-anim="fade"] {
	transform: none;
}
.gc-animate[data-anim="slide-left"] {
	transform: translateX(-40px);
}
.gc-animate[data-anim="slide-right"] {
	transform: translateX(40px);
}
.gc-animate[data-anim="scale"] {
	transform: scale(0.95);
}
.gc-animate.is-visible {
	opacity: 1;
	transform: none;
	will-change: auto; /* libère le calque GPU après l'animation (évite le flou Retina) */
}
@media (prefers-reduced-motion: reduce) {
	.gc-animate {
		opacity: 1 !important;
		transform: none !important;
		transition: none !important;
	}
}

/* =========================================================
   Animation Hero — image de fond avec zoom-out au chargement
   ========================================================= */
.gc-hero__bg--zoom {
	animation: gc-hero-bg-zoom 1.5s cubic-bezier(0.22, 1, 0.36, 1) both;
	will-change: transform;
}
@keyframes gc-hero-bg-zoom {
	from { transform: scale(1.15); }
	to   { transform: scale(1); }
}
@media (prefers-reduced-motion: reduce) {
	.gc-hero__bg--zoom { animation: none; }
}

/* Variante d'animation "highlight" : scaleX 0 → 1 depuis la gauche, sans opacity */
.gc-animate[data-anim="highlight"] {
	opacity: 1;
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
}
.gc-animate[data-anim="highlight"].is-visible {
	transform: scaleX(1);
}

/* =========================================================
   Bloc Chiffres clés section (groupe-carre/stats)
   ========================================================= */
.gc-stats {
	padding: 96px 24px;
	width: 100%;
	max-width: 100vw;
	box-sizing: border-box;
	margin-block-start: 0;
}
@media (min-width: 1024px) { .gc-stats { padding: 96px 32px; } }

.gc-stats--dark { background: #1D1D1D; color: #ffffff; }
.gc-stats--light { background: #ffffff; color: #1D1D1D; }

.gc-stats__inner {
	max-width: 72rem;
	margin: 0 auto;
}

.gc-stats__header {
	text-align: center;
	margin-bottom: 64px;
}
.gc-stats__title {
	font-size: 36px;
	font-weight: 500;
	margin: 0 0 16px;
	line-height: 1.15;
	letter-spacing: -0.025em;
}
@media (min-width: 1024px) { .gc-stats__title { font-size: 48px; } }

.gc-stats__subtitle {
	font-size: 20px;
	margin: 0;
}
.gc-stats--dark .gc-stats__subtitle { color: rgba(255, 255, 255, 0.8); }
.gc-stats--light .gc-stats__subtitle { color: #4b5563; }

.gc-stats__grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: 1fr; /* 3 stats : 1 colonne en petit mobile (pas de bloc orphelin) */
	gap: 24px;
}
@media (min-width: 600px) { .gc-stats__grid { grid-template-columns: repeat(3, 1fr); } }

.gc-stats__card {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 32px;
	min-height: 180px;
	border-radius: 24px;
	text-align: center;
	transition: transform 0.3s ease, background 0.3s ease;
}
.gc-stats--dark .gc-stats__card {
	background: rgba(255, 255, 255, 0.05);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	border: 1px solid rgba(255, 255, 255, 0.1);
}
.gc-stats--light .gc-stats__card {
	background: #ffffff;
	border: 1px solid #f3f4f6;
	box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);
}
.gc-stats__card:hover { transform: translateY(-8px); }
.gc-stats--dark .gc-stats__card:hover { background: rgba(255, 255, 255, 0.1); }

.gc-stats__value {
	font-size: 48px;
	font-weight: 700;
	line-height: 1;
	margin-bottom: 8px;
}
@media (min-width: 1024px) { .gc-stats__value { font-size: 60px; } }
.gc-stats--dark .gc-stats__value { color: #FFEE87; }
.gc-stats--light .gc-stats__value { color: #E42320; }

.gc-stats__label {
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	font-weight: 500;
}
.gc-stats--dark .gc-stats__label { color: rgba(255, 255, 255, 0.6); }
.gc-stats--light .gc-stats__label { color: #4b5563; }

/* =========================================================
   Bloc CTA simple (groupe-carre/cta-simple)
   ========================================================= */
.gc-cta-simple {
	padding: 96px 24px;
	background: #ffffff;
	width: 100%;
	max-width: 100vw;
	box-sizing: border-box;
	margin-block-start: 0;
}
@media (min-width: 1024px) { .gc-cta-simple { padding: 96px 32px; } }

.gc-cta-simple__inner {
	max-width: 48rem;
	margin: 0 auto;
	text-align: center;
}

.gc-cta-simple__title {
	font-size: 36px;
	font-weight: 500;
	color: #1D1D1D;
	margin: 0 0 24px;
	line-height: 1.15;
	letter-spacing: -0.025em;
}
@media (min-width: 1024px) { .gc-cta-simple__title { font-size: 48px; } }

.gc-cta-simple__text {
	font-size: 20px;
	color: #4b5563;
	margin: 0 0 32px;
	line-height: 1.55;
}

.gc-cta-simple__btn-wrap { display: block; }

.gc-cta-simple__btn {
	display: inline-flex;
	align-items: center;
	padding: 20px 40px;
	background: #E42320;
	color: #ffffff;
	font-size: 18px;
	font-weight: 500;
	border-radius: 16px;
	text-decoration: none;
	box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
	transition: background 0.3s ease, transform 0.3s ease;
}
.gc-cta-simple__btn:hover {
	background: #c91e1c;
	transform: translateY(-2px) scale(1.04);
}


/* =========================================================
   Bloc Cartes valeurs (groupe-carre/value-cards)
   ========================================================= */
.gc-value-cards {
	background: #ffffff;
	width: 100%;
	max-width: 100vw;
	box-sizing: border-box;
	margin-block-start: 0;
	overflow: hidden;
}

/* En-tête (titre à gauche, intro à droite) */
.gc-value-cards__header {
	max-width: 1800px;
	margin: 0 auto;
	padding: 80px 24px 48px;
	display: flex;
	flex-direction: column;
	gap: 24px;
}
@media (min-width: 1024px) {
	.gc-value-cards__header {
		flex-direction: row;
		align-items: flex-end;
		justify-content: space-between;
		padding: 80px 64px 48px;
	}
}
.gc-value-cards__eyebrow {
	display: inline-block;
	color: #E42320;
	font-size: 14px;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.075em;
}
.gc-value-cards__heading {
	font-size: 40px;
	font-weight: 500;
	color: #1D1D1D;
	margin: 16px 0 0;
	line-height: 1.1;
	letter-spacing: -0.025em;
}
@media (min-width: 1024px) { .gc-value-cards__heading { font-size: 60px; } }
.gc-value-cards__intro {
	font-size: 16px;
	color: #6b7280;
	max-width: 24rem;
	line-height: 1.625;
	margin: 0;
}
@media (min-width: 1024px) { .gc-value-cards__intro { text-align: right; } }

/* Rangée de cartes plein écran */
.gc-value-cards__row {
	display: flex;
	flex-direction: column;
}
@media (min-width: 1024px) {
	.gc-value-cards__row { flex-direction: row; height: clamp(500px, 65vh, 720px); }
}

.gc-value-cards__card {
	position: relative;
	flex: 1;
	overflow: hidden;
	min-height: 380px;
}
@media (min-width: 1024px) {
	.gc-value-cards__card { min-height: 0; }
	.gc-value-cards__card:not(:last-child)::after {
		content: "";
		position: absolute;
		top: 0;
		bottom: 0;
		right: 0;
		width: 1px;
		background: rgba(255, 255, 255, 0.15);
		z-index: 3;
	}
}

.gc-value-cards__bg { position: absolute; inset: 0; }
.gc-value-cards__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.7s ease;
}
.gc-value-cards__card:hover .gc-value-cards__bg img { transform: scale(1.05); }
.gc-value-cards__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(29, 29, 29, 0.7) 0%, rgba(29, 29, 29, 0.2) 50%, rgba(29, 29, 29, 0.8) 100%);
}

.gc-value-cards__top {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	z-index: 2;
	padding: 32px;
	color: #ffffff;
}
@media (min-width: 1024px) { .gc-value-cards__top { padding: 40px; } }
.gc-value-cards__rule {
	display: block;
	width: 32px;
	height: 2px;
	background: #E42320;
	margin-bottom: 16px;
}
.gc-value-cards__title {
	font-size: 20px;
	font-weight: 600;
	color: #ffffff;
	margin: 0;
	line-height: 1.3;
}
@media (min-width: 1024px) { .gc-value-cards__title { font-size: 24px; } }

.gc-value-cards__bottom {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	z-index: 2;
	padding: 32px;
}
@media (min-width: 1024px) { .gc-value-cards__bottom { padding: 40px; } }
.gc-value-cards__desc {
	font-size: 14px;
	color: rgba(255, 255, 255, 0.8);
	line-height: 1.625;
	margin: 0;
	display: -webkit-box;
	-webkit-line-clamp: 5;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

/* Disposition « tout centré en bas » (+ lien) */
.gc-value-cards__center {
	position: absolute;
	inset: 0;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-end;
	text-align: center;
	padding: 40px;
	color: #ffffff;
	gap: 12px;
}
.gc-value-cards--centered .gc-value-cards__rule { display: none; }
.gc-value-cards--centered .gc-value-cards__desc { max-width: 22rem; }
/* Cartes plus basses en disposition centrée */
.gc-value-cards--centered .gc-value-cards__card { min-height: 320px; }
@media (min-width: 1024px) {
	.gc-value-cards--centered .gc-value-cards__row { height: 420px; }
}
/* En-tête centré (au lieu de titre gauche / intro droite) */
.gc-value-cards--centered .gc-value-cards__header {
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
}
.gc-value-cards--centered .gc-value-cards__intro {
	text-align: center;
	max-width: 42rem;
	margin: 0 auto;
}
/* Option d'alignement de l'en-tête (indépendante de la disposition) */
.gc-value-cards--head-center .gc-value-cards__header {
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
}
.gc-value-cards--head-center .gc-value-cards__intro {
	text-align: center;
	max-width: 42rem;
	margin: 0 auto;
}
.gc-value-cards__link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: 4px;
	padding: 8px 18px;
	border: 1px solid rgba(255, 255, 255, 0.4);
	border-radius: 999px;
	color: #ffffff;
	font-size: 12px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	text-decoration: none;
	transition: background 0.3s ease;
}
.gc-value-cards__link:hover { background: rgba(255, 255, 255, 0.18); }
.gc-value-cards__link span { display: inline-flex; }
/* En disposition « spread », le lien sous la description */
.gc-value-cards__bottom .gc-value-cards__link { margin-top: 12px; }

/* Disposition « axes » — grille de cartes arrondies séparées (icône + titre + desc) */
/* La dispo « axes » = section normale → padding bas (les bandeaux plein écran n'en ont pas) */
.gc-value-cards--axes { padding-bottom: clamp(3.5rem, 7vw, 5.5rem); }
/* Titre aligné sur les autres blocs (48px max, gras 700) au lieu du 60px/500 des bandeaux plein écran */
.gc-value-cards--axes .gc-value-cards__heading { font-size: clamp(1.875rem, 4vw, 3rem); font-weight: 700; }
.gc-value-cards--axes .gc-value-cards__row {
	display: grid;
	grid-template-columns: 1fr;
	gap: 24px;
	height: auto;
	max-width: 72rem;
	margin: 0 auto;
	padding-inline: 24px;
}
@media (min-width: 768px) {
	.gc-value-cards--axes .gc-value-cards__row { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.gc-value-cards--axes .gc-value-cards__card {
	border-radius: 24px;
	min-height: 380px;
	box-shadow: 0 20px 40px -12px rgba(0, 0, 0, 0.25);
	transition: transform 0.3s ease;
}
.gc-value-cards--axes .gc-value-cards__card::after { display: none; }
.gc-value-cards--axes .gc-value-cards__card:hover { transform: translateY(-6px); }
.gc-value-cards--axes .gc-value-cards__overlay {
	background: linear-gradient(to top, rgba(228, 35, 32, 0.95) 0%, rgba(228, 35, 32, 0.6) 50%, rgba(228, 35, 32, 0.3) 100%);
}
.gc-value-cards__axes {
	position: absolute;
	inset: 0;
	z-index: 2;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	padding: 32px;
	color: #ffffff;
	gap: 12px;
}
.gc-value-cards__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 16px;
	background: rgba(255, 255, 255, 0.2);
	backdrop-filter: blur(4px);
	-webkit-backdrop-filter: blur(4px);
	color: #ffffff;
	margin-bottom: 8px;
}
.gc-value-cards__axes .gc-value-cards__title { font-size: 24px; }
.gc-value-cards__axes .gc-value-cards__desc { color: rgba(255, 255, 255, 0.85); -webkit-line-clamp: 4; }

/* =========================================================
   Bloc Savoir-faire interactif (groupe-carre/savoir-faire)
   ========================================================= */
.gc-sf {
	background: #ffffff;
	width: 100%;
	max-width: 100vw;
	box-sizing: border-box;
	margin-block-start: 0;
	overflow: hidden;
}
.gc-sf__header { padding: 80px 24px 48px; }
@media (min-width: 1024px) { .gc-sf__header { padding: 80px 64px 48px; } }
.gc-sf__eyebrow {
	display: inline-block;
	color: #E42320;
	font-size: 14px;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.075em;
}
.gc-sf__title {
	font-size: 40px;
	font-weight: 500;
	color: #1D1D1D;
	margin: 16px 0 0;
	line-height: 1.1;
	letter-spacing: -0.025em;
}
@media (min-width: 1024px) { .gc-sf__title { font-size: 48px; } }

.gc-sf__split { display: flex; flex-direction: column; }
@media (min-width: 1024px) { .gc-sf__split { flex-direction: row; min-height: 560px; } }

/* Liste cliquable */
.gc-sf__list {
	display: flex;
	flex-direction: column;
	border-top: 1px solid rgba(29, 29, 29, 0.1);
}
@media (min-width: 1024px) { .gc-sf__list { width: 42%; } }

.gc-sf__item {
	position: relative;
	display: flex;
	align-items: center;
	gap: 20px;
	width: 100%;
	text-align: left;
	background: transparent;
	border: 0;
	border-bottom: 1px solid rgba(29, 29, 29, 0.1);
	padding: 24px 32px;
	cursor: pointer;
	flex: 1;
	font: inherit;
	color: inherit;
	transition: background 0.3s ease;
}
@media (min-width: 1024px) { .gc-sf__item { padding: 24px 48px; } }
.gc-sf__item:hover { background: #f9fafb; }
.gc-sf__item.is-active { background: #1D1D1D; }

.gc-sf__bar {
	position: absolute;
	left: 0;
	top: 0;
	bottom: 0;
	width: 4px;
	background: #E42320;
	opacity: 0;
	transition: opacity 0.3s ease;
}
.gc-sf__item.is-active .gc-sf__bar { opacity: 1; }

.gc-sf__num {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.15em;
	color: #d1d5db;
	flex-shrink: 0;
}
.gc-sf__item.is-active .gc-sf__num { color: #E42320; }

.gc-sf__icon {
	width: 40px;
	height: 40px;
	border-radius: 12px;
	background: #f3f4f6;
	color: #1D1D1D;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	transition: background 0.3s ease, color 0.3s ease;
}
.gc-sf__item:hover .gc-sf__icon { background: #e5e7eb; }
.gc-sf__item.is-active .gc-sf__icon { background: rgba(255, 255, 255, 0.1); color: #ffffff; }

.gc-sf__texts { flex: 1; min-width: 0; }
.gc-sf__item-title {
	display: block;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.3;
	color: #1D1D1D;
	transition: color 0.3s ease;
}
.gc-sf__item:hover .gc-sf__item-title { color: #E42320; }
.gc-sf__item.is-active .gc-sf__item-title { color: #ffffff; }

.gc-sf__item-desc {
	display: none;
	font-size: 12px;
	color: rgba(255, 255, 255, 0.55);
	line-height: 1.5;
	margin-top: 6px;
}
.gc-sf__item.is-active .gc-sf__item-desc { display: block; }

.gc-sf__arrow {
	flex-shrink: 0;
	color: #d1d5db;
	display: inline-flex;
	transition: color 0.3s ease, transform 0.3s ease;
}
.gc-sf__item.is-active .gc-sf__arrow { color: #E42320; }

/* Média */
.gc-sf__media {
	position: relative;
	overflow: hidden;
	background: #f3f4f6;
	min-height: 360px;
}
@media (min-width: 1024px) { .gc-sf__media { width: 58%; min-height: 0; } }
.gc-sf__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.gc-sf__media-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(0deg, rgba(29, 29, 29, 0.88) 0%, rgba(29, 29, 29, 0.4) 38%, transparent 70%);
}
.gc-sf__media-caption {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	padding: 40px;
	z-index: 1;
}
.gc-sf__media-count {
	display: block;
	color: #FFEE87;
	font-size: 12px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.15em;
	margin-bottom: 8px;
}
.gc-sf__media-title {
	font-size: 30px;
	font-weight: 500;
	color: #ffffff;
	margin: 0;
	line-height: 1.2;
}
@media (min-width: 1024px) { .gc-sf__media-title { font-size: 36px; } }
/* Description + lien affichés sur l'image, sous le titre */
.gc-sf__media-desc {
	margin: 14px 0 0;
	font-size: 16px;
	line-height: 1.6;
	color: rgba(255, 255, 255, 0.9);
	max-width: 36rem;
}
.gc-sf__media-desc[hidden] { display: none; }
.gc-sf__media-link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: 20px;
	padding: 11px 22px;
	background: #E42320;
	color: #ffffff;
	font-size: 15px;
	font-weight: 600;
	border-radius: 999px;
	text-decoration: none;
	transition: background 0.25s ease, transform 0.25s ease;
}
.gc-sf__media-link:hover,
.gc-sf__media-link:focus { text-decoration: none; }
.gc-sf__media-link:hover { background: #c91e1c; transform: translateY(-2px); }
.gc-sf__media-link[hidden] { display: none; }

/* Mobile : le caption est en position:absolute → il ne pousse pas la hauteur du
   média, qui reste bloquée à 360px et coupe les descriptions longues. On remet
   le caption dans le flux (position:relative) pour que la zone s'adapte à son
   contenu ; l'image et le dégradé restent en fond (absolute inset:0). */
@media (max-width: 1023px) {
	.gc-sf__media {
		display: flex;
		align-items: flex-end;
	}
	.gc-sf__media-caption {
		position: relative;
		width: 100%;
		padding: 28px 24px;
	}
}

/* =========================================================
   Bloc Carte des points de collecte (groupe-carre/collecte-map)
   ========================================================= */
.gc-map {
	display: flex;
	flex-direction: column;
	background: #1D1D1D;
	color: #ffffff;
	width: 100%;
	max-width: 100vw;
	box-sizing: border-box;
	margin-block-start: 0;
	overflow: hidden;
}
@media (min-width: 1024px) { .gc-map { flex-direction: row; height: 88vh; } }

.gc-map__panel { display: flex; flex-direction: column; min-height: 0; }
@media (min-width: 1024px) { .gc-map__panel { width: 50%; height: 100%; } }

.gc-map__head {
	padding: 40px 32px 24px;
	border-bottom: 1px solid rgba(255, 255, 255, 0.1);
	flex-shrink: 0;
}
.gc-map__eyebrow {
	color: #FFEE87;
	font-size: 14px;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.075em;
}
.gc-map__title {
	font-size: 30px;
	color: #ffffff;
	margin: 8px 0 24px;
	line-height: 1.2;
}
.gc-map__search { position: relative; }
.gc-map__search-icon {
	position: absolute;
	left: 16px;
	top: 50%;
	transform: translateY(-50%);
	color: rgba(255, 255, 255, 0.4);
	display: inline-flex;
}
.gc-map__search-input {
	width: 100%;
	padding: 14px 16px 14px 44px;
	border-radius: 12px;
	background: rgba(255, 255, 255, 0.1);
	border: 1px solid rgba(255, 255, 255, 0.2);
	color: #ffffff;
	font-size: 16px;
	box-sizing: border-box;
}
.gc-map__search-input::placeholder { color: rgba(255, 255, 255, 0.4); }
.gc-map__search-input:focus { outline: none; border-color: #FFEE87; }
.gc-map__results { color: rgba(255, 255, 255, 0.5); font-size: 14px; margin: 12px 0 0; }

.gc-map__list { flex: 1; overflow-y: auto; }
@media (max-width: 1023px) { .gc-map__list { max-height: 60vh; } }

.gc-map__item {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	width: 100%;
	text-align: left;
	background: transparent;
	border: 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
	border-left: 4px solid transparent;
	padding: 20px 32px;
	cursor: pointer;
	color: inherit;
	font: inherit;
	transition: background 0.2s ease, border-color 0.2s ease;
}
.gc-map__item[hidden] { display: none !important; }
.gc-map__item:hover { background: rgba(255, 255, 255, 0.05); }
.gc-map__item.is-open,
.gc-map__item.is-active { background: rgba(228, 35, 32, 0.2); border-left-color: #E42320; }

.gc-map__item-pin {
	width: 36px;
	height: 36px;
	border-radius: 12px;
	background: rgba(255, 255, 255, 0.1);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	margin-top: 2px;
	color: #ffffff;
	transition: background 0.2s ease;
}
.gc-map__item.is-open .gc-map__item-pin,
.gc-map__item.is-active .gc-map__item-pin { background: #E42320; }

.gc-map__item-body { flex: 1; min-width: 0; }
.gc-map__item-name {
	display: block;
	font-weight: 600;
	font-size: 16px;
	color: #ffffff;
	transition: color 0.2s ease;
}
.gc-map__item:hover .gc-map__item-name,
.gc-map__item.is-open .gc-map__item-name,
.gc-map__item.is-active .gc-map__item-name { color: #FFEE87; }
.gc-map__item-addr {
	display: block;
	color: rgba(255, 255, 255, 0.5);
	font-size: 14px;
	margin-top: 2px;
}
.gc-map__item-resp {
	display: block;
	color: rgba(255, 255, 255, 0.7);
	font-size: 13px;
	margin-top: 4px;
}
.gc-map__popup-tel { font-weight: 500; }
.gc-map__item-details {
	display: none;
	flex-direction: column;
	gap: 6px;
	margin-top: 12px;
}
.gc-map__item.is-open .gc-map__item-details { display: flex; }
.gc-map__detail {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: rgba(255, 255, 255, 0.7);
	font-size: 14px;
}
.gc-map__detail svg { color: #FFEE87; flex-shrink: 0; }
.gc-map__detail a { color: inherit; text-decoration: none; }
.gc-map__gmaps { color: #FFEE87; }
.gc-map__gmaps:hover { text-decoration: underline; }

.gc-map__empty { padding: 48px 32px; text-align: center; color: rgba(255, 255, 255, 0.5); }

/* Carte Leaflet */
.gc-map__leaflet { width: 100%; height: 55vh; background: #0d0d0d; z-index: 0; }
@media (min-width: 1024px) { .gc-map__leaflet { width: 50%; height: 100%; } }

/* Pin rouge personnalisé (divIcon Leaflet) */
.gc-map__pin span {
	display: block;
	width: 22px;
	height: 22px;
	background: #E42320;
	border: 3px solid #fff;
	border-radius: 50% 50% 50% 0;
	transform: rotate(-45deg);
	box-shadow: 0 3px 8px rgba(0, 0, 0, 0.4);
	margin: 6px 0 0 2px;
}

/* Onglets « Liste / Carte » — mobile uniquement (injectés par collecte-map.js).
   Évite le double scroll (liste + carte) : une seule zone visible à la fois. */
.gc-map__tabs { display: none; }
@media (max-width: 1023px) {
	.gc-map__tabs {
		display: flex;
		gap: 8px;
		padding: 14px 16px 0;
	}
	.gc-map__tab {
		flex: 1;
		padding: 10px 12px;
		border: 1px solid rgba(255, 255, 255, 0.2);
		border-radius: 10px;
		background: transparent;
		color: rgba(255, 255, 255, 0.7);
		font: inherit;
		font-weight: 600;
		cursor: pointer;
		transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
	}
	.gc-map__tab.is-active {
		background: #E42320;
		border-color: #E42320;
		color: #ffffff;
	}
	/* Une seule zone visible selon l'onglet actif */
	.gc-map[data-map-tab="list"] .gc-map__leaflet { display: none; }
	.gc-map[data-map-tab="map"] .gc-map__panel { display: none; }
	/* Espace entre la barre d'onglets et la carte (côté carte uniquement) */
	.gc-map[data-map-tab="map"] .gc-map__leaflet { margin-top: 12px; }
}

/* Infobulle */
.gc-map__popup { display: flex; flex-direction: column; gap: 2px; min-width: 180px; }
.gc-map__popup strong { font-size: 15px; color: #1D1D1D; }
.gc-map__popup span { font-size: 13px; color: #4b5563; }
.gc-map__popup-resp { font-weight: 500; color: #1D1D1D !important; }
.gc-map__popup a { color: #E42320; text-decoration: none; }
.gc-map__popup-link { margin-top: 6px; font-weight: 600; font-size: 13px; }
.leaflet-popup-content-wrapper { border-radius: 12px; }
.leaflet-container { font-family: inherit; }

/* =========================================================
   Bloc Carousel à onglets (groupe-carre/carousel)
   ========================================================= */
.gc-carousel {
	background: #1D1D1D;
	width: 100%;
	max-width: 100vw;
	box-sizing: border-box;
	margin-block-start: 0;
	overflow: hidden;
}
.gc-carousel__tabs { display: flex; border-bottom: 1px solid rgba(255, 255, 255, 0.1); }
.gc-carousel__tab {
	position: relative;
	flex: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 4px;
	padding: 20px 12px;
	background: transparent;
	border: 0;
	border-right: 1px solid rgba(255, 255, 255, 0.1);
	cursor: pointer;
	color: inherit;
	font: inherit;
	transition: background 0.3s ease;
}
.gc-carousel__tab:last-child { border-right: 0; }
.gc-carousel__tab:hover { background: rgba(255, 255, 255, 0.05); }
.gc-carousel__tab.is-active { background: rgba(255, 255, 255, 0.1); }
.gc-carousel__tab-num {
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 0.15em;
	color: rgba(255, 238, 135, 0.6);
	font-weight: 500;
}
.gc-carousel__tab-label {
	font-size: 16px;
	font-weight: 600;
	color: rgba(255, 255, 255, 0.45);
	transition: color 0.3s ease;
	text-align: center;
}
.gc-carousel__tab:hover .gc-carousel__tab-label { color: rgba(255, 255, 255, 0.75); }
.gc-carousel__tab.is-active .gc-carousel__tab-label { color: #ffffff; }
.gc-carousel__tab-bar {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	height: 2px;
	background: #FFEE87;
	transform: scaleX(0);
	transform-origin: left;
}

.gc-carousel__stage { position: relative; display: grid; min-height: 580px; }
.gc-carousel__slide {
	grid-area: 1 / 1;         /* slides empilés dans la même cellule : le stage prend la hauteur du plus grand → plus de débordement sur les onglets */
	display: flex;
	align-items: center;      /* centre le contenu verticalement */
	justify-content: center;  /* et horizontalement */
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.5s ease;
}
.gc-carousel__slide.is-active { opacity: 1; visibility: visible; }
.gc-carousel__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.gc-carousel__shade {
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, #1D1D1D 0%, rgba(29, 29, 29, 0.6) 50%, rgba(29, 29, 29, 0.2) 100%);
}
.gc-carousel__content {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	padding: 72px 64px;
	max-width: 50rem;
}
.gc-carousel__title { font-size: clamp(1.875rem, 4vw, 3rem); color: #fff; margin: 0 0 1.25rem; line-height: 1.15; }
.gc-carousel__desc { color: rgba(255, 255, 255, 0.75); font-size: 1.125rem; line-height: 1.7; margin: 0 0 1.75rem; max-width: 38rem; }
.gc-carousel__points { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }
.gc-carousel__point {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 6px 14px;
	background: rgba(255, 255, 255, 0.1);
	border-radius: 999px;
	color: rgba(255, 255, 255, 0.85);
	font-size: 14px;
}
.gc-carousel__point-icon { color: #FFEE87; display: inline-flex; }
.gc-carousel__arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 2;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	border: 1px solid rgba(255, 255, 255, 0.3);
	background: rgba(0, 0, 0, 0.2);
	backdrop-filter: blur(4px);
	-webkit-backdrop-filter: blur(4px);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: background 0.3s ease;
}
.gc-carousel__arrow:hover { background: rgba(255, 255, 255, 0.2); }
.gc-carousel__arrow--prev { left: 20px; }
.gc-carousel__arrow--next { right: 20px; }
@media (max-width: 768px) {
	.gc-carousel__stage { min-height: 460px; }
	.gc-carousel__content { padding: 40px 20px; }
	.gc-carousel__title { margin-bottom: 1rem; }
	.gc-carousel__desc { font-size: 1rem; margin-bottom: 1.25rem; }
	.gc-carousel__tab { padding: 14px 6px; }
	.gc-carousel__tab-label { font-size: 13px; }
	.gc-carousel__arrow { width: 38px; height: 38px; }
	.gc-carousel__arrow--prev { left: 8px; }
	.gc-carousel__arrow--next { right: 8px; }
}

/* =========================================================
   Bloc Section immersive (groupe-carre/immersive)
   ========================================================= */
.gc-imm {
	position: relative;
	min-height: 600px;
	display: flex;
	align-items: center;
	overflow: hidden;
	color: #ffffff;
	background: #1D1D1D;
	width: 100%;
	max-width: 100vw;
	box-sizing: border-box;
	margin-block-start: 0;
}
.gc-imm__bg { position: absolute; inset: 0; z-index: 0; }
.gc-imm__bg img { width: 100%; height: 100%; object-fit: cover; }
.gc-imm__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(29, 29, 29, 0.9) 0%, rgba(29, 29, 29, 0.75) 45%, rgba(29, 29, 29, 0.4) 100%);
}
.gc-imm__inner {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: 80rem;
	margin: 0 auto;
	padding: 80px clamp(1.5rem, 4vw, 2rem);
}
.gc-imm__content { max-width: 40rem; }
.gc-imm__title { font-size: clamp(2rem, 4vw, 3rem); color: #fff; margin: 0 0 12px; line-height: 1.15; }
.gc-imm__subtitle { font-size: 1.25rem; color: rgba(255, 255, 255, 0.8); margin: 0 0 32px; }
.gc-imm__heading { font-size: 1.5rem; color: #fff; margin: 0 0 16px; }
.gc-imm__text { color: rgba(255, 255, 255, 0.75); line-height: 1.7; margin: 0 0 32px; }
.gc-imm__text strong { color: #fff; }
.gc-imm__features { display: flex; flex-direction: column; gap: 16px; }
.gc-imm__feature { display: flex; align-items: flex-start; gap: 12px; }
.gc-imm__feature-icon {
	width: 32px;
	height: 32px;
	border-radius: 8px;
	background: rgba(255, 238, 135, 0.2);
	color: #FFEE87;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	margin-top: 2px;
}
.gc-imm__feature-label { color: #fff; font-weight: 600; font-size: 0.95rem; margin: 0; }
.gc-imm__feature-text { color: rgba(255, 255, 255, 0.65); font-size: 0.9rem; margin: 2px 0 0; }
.gc-imm__badge {
	position: absolute;
	bottom: 40px;
	right: 40px;
	z-index: 2;
	max-width: 20rem;
	background: rgba(255, 255, 255, 0.1);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	border: 1px solid rgba(255, 255, 255, 0.25);
	border-radius: 1rem;
	padding: 24px;
}
.gc-imm__badge-head { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.gc-imm__badge-icon {
	width: 40px;
	height: 40px;
	border-radius: 12px;
	background: #E42320;
	color: #fff;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.gc-imm__badge-title { color: #fff; font-weight: 700; font-size: 1.05rem; margin: 0; }
.gc-imm__badge-text { color: rgba(255, 255, 255, 0.75); font-size: 0.875rem; line-height: 1.5; margin: 0; }
@media (max-width: 1024px) { .gc-imm__badge { display: none; } }

/* =========================================================
   Bloc Cartes icône & texte (groupe-carre/feature-cards)
   ========================================================= */
.gc-fc {
	padding: 80px clamp(1.5rem, 4vw, 2rem);
	width: 100%;
	max-width: 100vw;
	box-sizing: border-box;
	margin-block-start: 0;
}
.gc-fc--bg-transparent { background: transparent; }

/* ============================================================
   Anti-doublement : deux sections empilées ne cumulent pas
   leur padding vertical. La 1re garde son padding-bas,
   la 2e perd son padding-haut → un seul espace, cohérent.
   ============================================================ */
.gc-fc + .gc-fc,
.gc-fc + .gc-mt,
.gc-mt + .gc-fc,
.gc-mt + .gc-mt,
.gc-intro-centered + .gc-fc,
.gc-intro-centered + .gc-mt,
.gc-fc + .gc-intro-centered,
.gc-mt + .gc-intro-centered { padding-top: 0; }
/* …sauf si le bloc a un filet de séparation : on garde le padding-haut
   pour que le contenu ne colle pas au trait. */
.gc-mt + .gc-mt.gc-mt--divider-top { padding-top: clamp(3rem, 7vw, 5rem); }

/* ============================================================
   Classes utilitaires d'espacement vertical
   À coller dans « Avancé → Classe(s) CSS additionnelle(s) » d'un bloc.
   Écrasent le padding par défaut du bloc (haut / bas / les deux).
   ============================================================ */
.gc-pt-0 { padding-top: 0 !important; }
.gc-pb-0 { padding-bottom: 0 !important; }
.gc-py-0 { padding-top: 0 !important; padding-bottom: 0 !important; }
.gc-pt-xs { padding-top: 16px !important; }
.gc-pb-xs { padding-bottom: 16px !important; }
.gc-py-xs { padding-top: 16px !important; padding-bottom: 16px !important; }
.gc-pt-sm { padding-top: 32px !important; }
.gc-pb-sm { padding-bottom: 32px !important; }
.gc-py-sm { padding-top: 32px !important; padding-bottom: 32px !important; }
.gc-pt-md { padding-top: 56px !important; }
.gc-pb-md { padding-bottom: 56px !important; }
.gc-py-md { padding-top: 56px !important; padding-bottom: 56px !important; }
.gc-fc--bg-white { background: #ffffff; }
.gc-fc--bg-muted { background: linear-gradient(135deg, #f9fafb 0%, #ffffff 100%); }
.gc-fc--bg-yellow { background: #FFEE87; }
/* Variante fond sombre (ex: « Les 5 piliers » Ferme Pilote) */
.gc-fc--bg-dark { background: #1D1D1D; }
.gc-fc--bg-dark .gc-fc__eyebrow { color: #FFEE87; }
.gc-fc--bg-dark .gc-fc__title { color: #ffffff; }
.gc-fc--bg-dark .gc-fc__subtitle { color: rgba(255, 255, 255, 0.45); }
.gc-fc--bg-dark .gc-fc__card,
.gc-fc--bg-dark .gc-fc__card--border-red,
.gc-fc--bg-dark .gc-fc__card--border-yellow {
	background: rgba(255, 255, 255, 0.05);
	border-color: rgba(255, 255, 255, 0.1);
	box-shadow: none;
}
.gc-fc--bg-dark .gc-fc__card:hover {
	background: rgba(255, 255, 255, 0.08);
	border-color: rgba(255, 255, 255, 0.2);
	box-shadow: none;
}
.gc-fc--bg-dark .gc-fc__card-title { color: #ffffff; }
.gc-fc--bg-dark .gc-fc__card:hover .gc-fc__card-title { color: #FFEE87; }
.gc-fc--bg-dark .gc-fc__card-title::before {
	content: "";
	display: block;
	width: 2rem;
	height: 2px;
	background: #E42320;
	margin-bottom: 1rem;
}
.gc-fc--bg-dark .gc-fc__card-desc { color: rgba(255, 255, 255, 0.5); }
.gc-fc--bg-dark .gc-fc__icon--yellow {
	background: rgba(255, 238, 135, 0.1);
	border: 1px solid rgba(255, 238, 135, 0.2);
	color: #FFEE87;
}
.gc-fc--bg-dark .gc-fc__list li { color: rgba(255, 255, 255, 0.7); }
.gc-fc__inner { max-width: 80rem; margin: 0 auto; }
.gc-fc--width-narrow .gc-fc__inner { max-width: 64rem; }
.gc-fc--width-wide .gc-fc__inner { max-width: 1800px; }
.gc-fc--width-full .gc-fc__inner { max-width: none; }
.gc-fc__header { text-align: center; max-width: 48rem; margin: 0 auto 56px; }
.gc-fc__header-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 4rem;
	height: 4rem;
	border-radius: 1rem;
	background: rgba(228, 35, 32, 0.1);
	color: #E42320;
	margin-bottom: 1.5rem;
}
.gc-fc__header-icon svg { width: 2rem; height: 2rem; }
.gc-fc__eyebrow {
	display: inline-block;
	color: #E42320;
	font-size: 0.875rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.075em;
	margin-bottom: 1rem;
}
.gc-fc__title { font-size: clamp(1.875rem, 4vw, 3rem); color: #1D1D1D; margin: 0 0 1rem; line-height: 1.15; }
.gc-fc__subtitle { font-size: 1.25rem; color: #6b7280; margin: 0; line-height: 1.5; }
/* Alignement de l'en-tête (sur-titre / titre / sous-titre) */
.gc-fc--head-left .gc-fc__header {
	text-align: left;
	max-width: none;
	margin-left: 0;
	margin-right: 0;
}
.gc-fc--head-split .gc-fc__header {
	text-align: left;
	max-width: none;
	margin-left: 0;
	margin-right: 0;
}
@media (min-width: 1024px) {
	.gc-fc--head-split .gc-fc__header {
		display: flex;
		flex-direction: row;
		align-items: flex-end;
		justify-content: space-between;
		gap: 1.5rem;
	}
	.gc-fc--head-split .gc-fc__subtitle { max-width: 20rem; text-align: right; }
}

.gc-fc__grid { display: grid; grid-template-columns: 1fr; gap: 32px; }
@media (min-width: 768px) {
	.gc-fc--cols-2 .gc-fc__grid,
	.gc-fc--cols-3 .gc-fc__grid,
	.gc-fc--cols-4 .gc-fc__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
	.gc-fc--cols-2 .gc-fc__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.gc-fc--cols-3 .gc-fc__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.gc-fc--cols-4 .gc-fc__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* Dernière ligne centrée : passage en flex pour centrer les cartes orphelines */
.gc-fc--center-last .gc-fc__grid {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
}
.gc-fc--center-last .gc-fc__grid > .gc-fc__card { flex: 0 0 100%; max-width: 100%; }
@media (min-width: 768px) {
	.gc-fc--center-last .gc-fc__grid > .gc-fc__card { flex: 0 0 calc(50% - 20px); max-width: calc(50% - 20px); }
}
@media (min-width: 1024px) {
	.gc-fc--center-last.gc-fc--cols-2 .gc-fc__grid > .gc-fc__card { flex: 0 0 calc(50% - 20px); max-width: calc(50% - 20px); }
	.gc-fc--center-last.gc-fc--cols-3 .gc-fc__grid > .gc-fc__card { flex: 0 0 calc(33.333% - 24px); max-width: calc(33.333% - 24px); }
	.gc-fc--center-last.gc-fc--cols-4 .gc-fc__grid > .gc-fc__card { flex: 0 0 calc(25% - 26px); max-width: calc(25% - 26px); }
}

.gc-fc__card {
	display: flex;
	flex-direction: column;
	box-sizing: border-box;
	background: #ffffff;
	border: 2px solid transparent;
	border-radius: 1rem;
	overflow: hidden;
	box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.08), 0 4px 6px -4px rgba(0, 0, 0, 0.08);
	transition: box-shadow 0.3s ease, transform 0.3s ease;
}
.gc-fc__card:hover { box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.18); transform: translateY(-4px); }
.gc-fc__card--border-red { border-color: rgba(228, 35, 32, 0.25); background: linear-gradient(135deg, rgba(228, 35, 32, 0.05) 0%, #ffffff 60%); }
.gc-fc__card--border-yellow { border-color: #FFEE87; background: linear-gradient(135deg, rgba(255, 238, 135, 0.2) 0%, #ffffff 60%); }

.gc-fc__media { position: relative; height: 16rem; }
.gc-fc__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
/* Style « cadre » : image entière (contain) sur fond clair — ex: graphiques */
.gc-fc--media-framed .gc-fc__media {
	height: auto;
	background: #fafafa;
	padding: 20px;
	border-bottom: 1px solid rgba(0, 0, 0, 0.08);
	display: flex;
	align-items: center;
	justify-content: center;
}
.gc-fc--media-framed .gc-fc__media img {
	width: auto;
	max-width: 100%;
	height: auto;
	max-height: 340px;
	object-fit: contain;
	border-radius: 8px;
}
.gc-fc__media-badge {
	position: absolute;
	top: 1rem;
	right: 1rem;
	background: #ffffff;
	color: #E42320;
	font-weight: 700;
	font-size: 0.8125rem;
	padding: 0.5rem 1rem;
	border-radius: 999px;
	box-shadow: 0 6px 16px rgba(0, 0, 0, 0.15);
}

/* Mode « Image en bandeau » : tag + gros chiffre superposés sur l'image */
.gc-fc--overlay .gc-fc__media { height: 20rem; }
.gc-fc__media-shade {
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(29, 29, 29, 0.85) 0%, rgba(29, 29, 29, 0.15) 45%, transparent 70%);
}
.gc-fc__media-tag {
	position: absolute;
	top: 1rem;
	left: 1rem;
	background: rgba(255, 255, 255, 0.95);
	color: #1D1D1D;
	font-size: 0.75rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	padding: 0.4rem 0.9rem;
	border-radius: 999px;
}
.gc-fc__media-stat {
	position: absolute;
	left: 1.5rem;
	bottom: 1.25rem;
	right: 1.5rem;
	color: #ffffff;
	display: flex;
	align-items: baseline;
	gap: 0.5rem;
	flex-wrap: wrap;
}
.gc-fc__media-stat-big { font-size: 2.5rem; font-weight: 700; line-height: 1; }
.gc-fc__media-stat-small { font-size: 0.95rem; font-weight: 500; opacity: 0.9; }

.gc-fc__body { padding: 2rem; display: flex; flex-direction: column; gap: 1rem; flex: 1; }
.gc-fc__head { display: flex; gap: 12px; }
.gc-fc--align-center .gc-fc__head { flex-direction: column; align-items: center; }
.gc-fc--align-center .gc-fc__body { text-align: center; align-items: center; }
.gc-fc--align-left .gc-fc__head { flex-direction: row; align-items: center; }
.gc-fc--align-stacked .gc-fc__head { flex-direction: column; align-items: flex-start; gap: 24px; }
.gc-fc--align-stacked .gc-fc__body { text-align: left; align-items: flex-start; }

.gc-fc__icon {
	width: 4rem;
	height: 4rem;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.gc-fc__icon svg { width: 1.75rem; height: 1.75rem; }
.gc-fc--icon-rounded .gc-fc__icon { border-radius: 1rem; }
.gc-fc__icon--red { background: #E42320; color: #fff; }
.gc-fc__icon--yellow { background: #FFEE87; color: #1D1D1D; }
.gc-fc__icon--dark { background: #1D1D1D; color: #fff; }
.gc-fc__icon--soft-red { background: rgba(228, 35, 32, 0.1); color: #E42320; }
.gc-fc__icon--soft-gray { background: rgba(0, 0, 0, 0.05); color: #E42320; }
.gc-fc__icon { transition: background 0.3s ease, color 0.3s ease, transform 0.3s ease; }
.gc-fc__card:hover .gc-fc__icon--soft-red,
.gc-fc__card:hover .gc-fc__icon--soft-gray { background: #E42320; color: #fff; transform: scale(1.06) rotate(-4deg); }

/* Taille du titre de carte */
.gc-fc--title-sm .gc-fc__card-title { font-size: 1rem; }
.gc-fc--title-md .gc-fc__card-title { font-size: 1.25rem; }
.gc-fc--title-lg .gc-fc__card-title { font-size: 1.5rem; }

/* Mobile : réduire le padding interne des cartes et passer l'icône + titre en
   ligne (au lieu d'empilés) pour compacter la hauteur et limiter le scroll. */
@media (max-width: 640px) {
	.gc-fc { padding: 56px 16px; } /* moins de gouttière interne → titre et cartes plus larges */
	.gc-fc__body { padding: 1.5rem; }
	.gc-fc--align-stacked .gc-fc__head,
	.gc-fc--align-center .gc-fc__head {
		flex-direction: row;
		align-items: center;
		gap: 14px;
	}
	.gc-fc--align-center .gc-fc__body { text-align: left; align-items: flex-start; }
	/* Badges : empilés alignés à gauche (au lieu de centrés, ce qui décalait les
	   libellés courts par rapport aux longs). */
	.gc-fc__badges {
		flex-direction: column;
		align-items: flex-start;
	}
}

.gc-fc__tag {
	align-self: flex-start;
	display: inline-block;
	font-size: 0.6875rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: #E42320;
	background: rgba(228, 35, 32, 0.08);
	padding: 0.25rem 0.7rem;
	border-radius: 999px;
}
.gc-fc--bg-dark .gc-fc__tag { color: #FFEE87; background: rgba(255, 238, 135, 0.12); }
.gc-fc__card-title { font-size: 1.5rem; color: #1D1D1D; margin: 0; line-height: 1.3; }
.gc-fc__card-desc { color: #4b5563; line-height: 1.6; margin: 0; }
.gc-fc__card-desc p { margin: 0 0 0.75rem; }
.gc-fc__card-desc p:last-child { margin-bottom: 0; }
.gc-fc__card-desc strong { color: #1D1D1D; font-weight: 700; }
.gc-fc--bg-dark .gc-fc__card-desc strong { color: #ffffff; }
.gc-fc__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.75rem; text-align: left; width: 100%; }
.gc-fc__list li { display: flex; align-items: flex-start; gap: 0.5rem; color: #374151; }
.gc-fc__list-text { flex: 1; min-width: 0; }
.gc-fc__list-icon { color: #E42320; flex-shrink: 0; margin-top: 2px; }
.gc-fc__list-icon svg { width: 1.25rem; height: 1.25rem; }

/* Affichage « badges » (petites pastilles icône + texte) */
.gc-fc__badges { display: flex; flex-wrap: wrap; justify-content: center; gap: 1rem; }
.gc-fc__badge {
	display: inline-flex;
	align-items: center;
	gap: 0.75rem;
	padding: 1rem 1.5rem;
	border: 2px solid rgba(29, 29, 29, 0.1);
	border-radius: 1rem;
	background: #f9fafb;
	font-weight: 600;
	color: #1D1D1D;
	transition: border-color 0.2s ease;
}
.gc-fc__badge:hover { border-color: rgba(228, 35, 32, 0.3); }
/* Badges sans fond ni contour (classe utilitaire : gc-badges-plain) */
.gc-badges-plain .gc-fc__badge {
	background: transparent;
	border-color: transparent;
	box-shadow: none;
	padding-left: 0;
	padding-right: 0;
}
.gc-badges-plain .gc-fc__badge:hover { border-color: transparent; }
.gc-fc__badge-icon { color: #E42320; display: inline-flex; flex-shrink: 0; }
.gc-fc__badge-icon svg { width: 1.25rem; height: 1.25rem; }

/* Affichage « puces à icône » (petites cartes icône + libellé, ex: espèces) */
/* --- Encadrés compacts (icône à gauche, fond teinté) --- */
.gc-fc__compacts { display: flex; flex-wrap: wrap; justify-content: center; gap: 16px; max-width: 760px; margin: 0 auto; }
.gc-fc__compact {
	flex: 1 1 300px;
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 18px 22px;
	border-radius: 14px;
	border: 1px solid;
}
.gc-fc__compact-icon { flex: none; display: inline-flex; }
.gc-fc__compact-icon svg { width: 22px; height: 22px; }
.gc-fc__compact-text { display: flex; flex-direction: column; gap: 2px; }
.gc-fc__compact-title { font-size: 15px; font-weight: 700; line-height: 1.3; }
.gc-fc__compact-desc { font-size: 13px; line-height: 1.4; }
.gc-fc__compact-desc p { margin: 0; }
/* Teintes */
.gc-fc--tone-yellow .gc-fc__compact { background: rgba(255, 238, 135, 0.2); border-color: #FFEE87; }
.gc-fc--tone-yellow .gc-fc__compact-icon { color: #b08900; }
.gc-fc--tone-yellow .gc-fc__compact-title { color: #1D1D1D; }
.gc-fc--tone-yellow .gc-fc__compact-desc { color: #5c4d00; }
.gc-fc--tone-red .gc-fc__compact { background: rgba(228, 35, 32, 0.05); border-color: rgba(228, 35, 32, 0.35); }
.gc-fc--tone-red .gc-fc__compact-icon { color: #E42320; }
.gc-fc--tone-red .gc-fc__compact-title { color: #1D1D1D; }
.gc-fc--tone-red .gc-fc__compact-desc { color: #717182; }
.gc-fc--tone-gray .gc-fc__compact { background: rgba(0, 0, 0, 0.03); border-color: rgba(0, 0, 0, 0.12); }
.gc-fc--tone-gray .gc-fc__compact-icon { color: #1D1D1D; }
.gc-fc--tone-gray .gc-fc__compact-title { color: #1D1D1D; }
.gc-fc--tone-gray .gc-fc__compact-desc { color: #717182; }

.gc-fc__chips { display: flex; flex-wrap: wrap; justify-content: center; gap: 16px; max-width: 1040px; margin: 0 auto; }
.gc-fc__chip {
	flex: 1 1 90px;
	max-width: 160px;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
	padding: 22px 10px;
	background: #ffffff;
	border: 1px solid rgba(0, 0, 0, 0.1);
	border-radius: 16px;
	transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}
@media (max-width: 640px) {
	/* Espèces : grille 2 colonnes de cartes horizontales (icône à gauche, nom à
	   droite) → 2× moins de hauteur qu'une carte pleine largeur par ligne. */
	.gc-fc__chips { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
	.gc-fc__chip {
		flex-direction: row;
		align-items: center;
		justify-content: flex-start;
		gap: 12px;
		padding: 14px 16px;
		max-width: none;
		box-sizing: border-box;
	}
	.gc-fc__chip-icon { width: 40px; height: 40px; flex-shrink: 0; }
	.gc-fc__chip-name { text-align: left; }
	/* Nombre impair : le dernier chip est seul sur sa ligne → on le centre
	   (largeur d'une colonne, étalé sur les deux). */
	.gc-fc__chip:last-child:nth-child(odd) {
		grid-column: 1 / -1;
		justify-self: center;
		width: calc(50% - 6px);
	}
}
.gc-fc__chip:hover { transform: translateY(-5px); box-shadow: 0 16px 32px -14px rgba(0, 0, 0, 0.16); border-color: transparent; }
.gc-fc__chip-icon {
	width: 48px;
	height: 48px;
	border-radius: 12px;
	background: rgba(228, 35, 32, 0.1);
	color: #E42320;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: transform 0.3s ease, background 0.3s ease, color 0.3s ease;
}
.gc-fc__chip:hover .gc-fc__chip-icon { background: #E42320; color: #ffffff; transform: scale(1.08) rotate(-4deg); }
.gc-fc__chip-name { font-size: 14px; font-weight: 600; color: #1D1D1D; text-align: center; }
/* Variante fond sombre */
.gc-fc--bg-dark .gc-fc__chip { background: rgba(255, 255, 255, 0.05); border-color: rgba(255, 255, 255, 0.1); }
.gc-fc--bg-dark .gc-fc__chip-icon { background: rgba(255, 238, 135, 0.12); color: #FFEE87; }
.gc-fc--bg-dark .gc-fc__chip-name { color: #ffffff; }

/* =========================================================
   Bloc Duo panneaux (groupe-carre/duo-panels)
   ========================================================= */
.gc-duo {
	display: flex;
	flex-direction: column;
	width: 100%;
	max-width: 100vw;
	box-sizing: border-box;
	margin-block-start: 0;
	overflow: hidden;
}
@media (min-width: 1024px) { .gc-duo { flex-direction: row; } }
.gc-duo__panel {
	flex: 1;
	padding: 40px clamp(2rem, 4vw, 3.5rem);
	min-height: 500px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	color: #ffffff;
}
.gc-duo__panel--dark { background: #1D1D1D; }
.gc-duo__panel--red { background: #E42320; }
.gc-duo__panel--yellow { background: #FFEE87; color: #1D1D1D; }
.gc-duo__icon {
	width: 3rem;
	height: 3rem;
	border-radius: 1rem;
	background: rgba(255, 255, 255, 0.1);
	border: 1px solid rgba(255, 255, 255, 0.2);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 1.5rem;
	color: #fff;
}
.gc-duo__icon svg { width: 1.5rem; height: 1.5rem; }
.gc-duo__panel--yellow .gc-duo__icon { background: rgba(0, 0, 0, 0.06); border-color: rgba(0, 0, 0, 0.1); color: #1D1D1D; }
.gc-duo__title { font-size: clamp(1.75rem, 3vw, 2.25rem); margin: 0 0 1rem; line-height: 1.2; }
.gc-duo__text { font-size: 1rem; line-height: 1.6; margin: 0 0 2rem; max-width: 24rem; opacity: 0.85; }
.gc-duo__stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.gc-duo__stat {
	background: rgba(255, 255, 255, 0.08);
	border: 1px solid rgba(255, 255, 255, 0.15);
	border-radius: 0.75rem;
	padding: 12px 16px;
}
.gc-duo__panel--red .gc-duo__stat { background: rgba(255, 255, 255, 0.15); border-color: rgba(255, 255, 255, 0.25); }
.gc-duo__panel--yellow .gc-duo__stat { background: rgba(0, 0, 0, 0.05); border-color: rgba(0, 0, 0, 0.1); }
.gc-duo__stat-value { font-size: 1.875rem; font-weight: 700; color: #FFEE87; margin: 0; line-height: 1; }
.gc-duo__panel--yellow .gc-duo__stat-value { color: #E42320; }
.gc-duo__stat-label { font-size: 0.8125rem; margin: 6px 0 0; opacity: 0.7; }
.gc-duo__photo {
	margin-top: 2.5rem;
	border-radius: 1rem;
	overflow: hidden;
	border: 1px solid rgba(255, 255, 255, 0.15);
	box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.35);
}
.gc-duo__photo img { display: block; width: 100%; height: 13rem; object-fit: cover; }

/* =========================================================
   Bloc Cartes Texte (groupe-carre/text-cards)
   ========================================================= */
.gc-tc {
	padding: 80px clamp(1.5rem, 4vw, 2rem);
	background: #f9fafb;
	width: 100%;
	max-width: 100vw;
	box-sizing: border-box;
	margin-block-start: 0;
}
.gc-tc__inner { max-width: 80rem; margin: 0 auto; }
.gc-tc__header { text-align: center; margin-bottom: 64px; }
.gc-tc__title {
	font-size: 36px;
	font-weight: 500;
	color: #1D1D1D;
	margin: 0 0 16px;
	line-height: 1.15;
	letter-spacing: -0.025em;
}
@media (min-width: 1024px) { .gc-tc__title { font-size: 48px; } }
.gc-tc__intro {
	font-size: 20px;
	color: #6b7280;
	max-width: 56rem;
	margin: 0 auto;
	line-height: 1.55;
}
.gc-tc__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 32px;
}
@media (min-width: 768px) { .gc-tc__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.gc-tc__card {
	background: #ffffff;
	border-radius: 16px;
	box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
	padding: 32px;
	border-left: 4px solid #E42320;
}
.gc-tc__card--yellow { border-left-color: #FFEE87; }
.gc-tc__card-title {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 24px;
	font-weight: 500;
	color: #1D1D1D;
	margin: 0 0 16px;
	line-height: 1.3;
}
.gc-tc__card-icon { display: inline-flex; flex-shrink: 0; color: #E42320; }
.gc-tc__card-text { font-size: 16px; color: #374151; line-height: 1.7; }
.gc-tc__card-text p { margin: 0 0 12px; }
.gc-tc__card-text p:last-child { margin-bottom: 0; }
.gc-tc__card-text strong { color: #1D1D1D; }
.gc-tc__card-link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin-top: 16px;
	color: #E42320;
	font-weight: 600;
	font-size: 15px;
	text-decoration: none;
}
.gc-tc__card-link:hover { color: #c91e1c; }
.gc-tc__card-link span { display: inline-flex; }
.gc-tc__card-list {
	list-style: none;
	margin: 1.25rem 0 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}
.gc-tc__card-list li { display: flex; align-items: flex-start; gap: 0.6rem; color: #374151; }
.gc-tc__card-list-icon { color: #E42320; flex-shrink: 0; margin-top: 1px; }
.gc-tc__card-list-icon svg { width: 1.25rem; height: 1.25rem; }

/* Variante avec image à droite (cartes empilées à gauche) */
.gc-tc--with-image .gc-tc__split {
	display: grid;
	grid-template-columns: 1fr;
	gap: 48px;
	align-items: stretch;
}
@media (min-width: 1024px) {
	.gc-tc--with-image .gc-tc__split { grid-template-columns: 1fr 1fr; gap: 64px; }
}
.gc-tc--with-image .gc-tc__header { text-align: left; margin-bottom: 28px; }
.gc-tc--with-image .gc-tc__intro { max-width: none; margin: 0; }
.gc-tc--with-image .gc-tc__grid { grid-template-columns: 1fr; gap: 24px; }
.gc-tc__col { display: flex; flex-direction: column; justify-content: center; }
.gc-tc__media { position: relative; }
.gc-tc__figure {
	position: relative;
	height: 100%;
	min-height: 360px;
	border-radius: 16px;
	overflow: hidden;
	box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
}
.gc-tc__figure img { width: 100%; height: 100%; min-height: 360px; object-fit: cover; display: block; }
.gc-tc__media-shade { position: absolute; inset: 0; background: linear-gradient(to top, rgba(29, 29, 29, 0.4), transparent 55%); }
.gc-tc__logo {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px;
}
.gc-tc__logo img {
	max-width: 55%;
	max-height: 32%;
	width: auto;
	height: auto;
	filter: drop-shadow(0 6px 16px rgba(0, 0, 0, 0.35));
}

/* =========================================================
   Bloc Engagements (groupe-carre/commitments)
   ========================================================= */
.gc-commit {
	padding: 80px 24px;
	background: linear-gradient(180deg, #f9fafb 0%, #ffffff 100%);
	width: 100%;
	max-width: 100vw;
	box-sizing: border-box;
	margin-block-start: 0;
}
@media (min-width: 1024px) { .gc-commit { padding: 80px 32px; } }

.gc-commit__inner {
	max-width: 80rem;
	margin: 0 auto;
}

.gc-commit__header {
	text-align: center;
	margin-bottom: 64px;
}
.gc-commit__eyebrow {
	display: inline-block;
	color: #E42320;
	font-size: 14px;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.075em;
	margin: 0 0 16px;
}
.gc-commit__title {
	font-size: 36px;
	font-weight: 500;
	color: #1D1D1D;
	margin: 0 0 16px;
	line-height: 1.15;
	letter-spacing: -0.025em;
}
.gc-commit__subtitle {
	font-size: 18px;
	color: #4b5563;
	max-width: 42rem;
	margin: 0 auto;
	line-height: 1.55;
}

.gc-commit__grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: 1fr;
	gap: 32px;
}
@media (min-width: 768px) {
	.gc-commit__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1024px) {
	.gc-commit__grid { grid-template-columns: repeat(4, 1fr); }
}

.gc-commit__card {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	padding: 32px;
	background: #ffffff;
	border-radius: 16px;
	transition: box-shadow 0.3s ease;
}
.gc-commit__card:hover {
	box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
}

.gc-commit__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	background: rgba(228, 35, 32, 0.1);
	color: #E42320;
	border-radius: 16px;
	margin-bottom: 16px;
}

.gc-commit__card-title {
	font-size: 20px;
	font-weight: 500;
	color: #1D1D1D;
	margin: 0 0 12px;
	line-height: 1.3;
}

.gc-commit__card-desc {
	font-size: 14px;
	color: #4b5563;
	line-height: 1.625;
	margin: 0;
}

/* =========================================================
   Bloc Engagements (groupe-carre/commitments)
   ========================================================= */
.gc-commitments {
	padding: 80px 24px;
	background: linear-gradient(180deg, #f9fafb 0%, #ffffff 100%);
	width: 100%;
	max-width: 100vw;
	box-sizing: border-box;
	margin-block-start: 0;
}
@media (min-width: 1024px) { .gc-commitments { padding: 80px 32px; } }

.gc-commitments__inner {
	max-width: 80rem;
	margin: 0 auto;
}

.gc-commitments__header {
	text-align: center;
	margin-bottom: 64px;
}
.gc-commitments__eyebrow {
	color: #E42320;
	font-size: 14px;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.075em;
	margin: 0 0 16px;
}
.gc-commitments__title {
	font-size: 30px;
	font-weight: 500;
	color: #1D1D1D;
	margin: 0 0 16px;
	line-height: 1.2;
	letter-spacing: -0.025em;
}
@media (min-width: 1024px) { .gc-commitments__title { font-size: 36px; } }
.gc-commitments__subtitle {
	font-size: 18px;
	color: #4b5563;
	margin: 0 auto;
	max-width: 48rem;
	line-height: 1.55;
}

.gc-commitments__grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: 1fr;
	gap: 32px;
}
@media (min-width: 768px) { .gc-commitments__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .gc-commitments__grid { grid-template-columns: repeat(4, 1fr); } }

.gc-commitments__card {
	text-align: center;
	padding: 32px;
	background: #ffffff;
	border-radius: 16px;
	transition: box-shadow 0.3s ease, transform 0.3s ease;
}
.gc-commitments__card:hover {
	box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
	transform: translateY(-4px);
}

.gc-commitments__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	background: rgba(228, 35, 32, 0.1);
	color: #E42320;
	border-radius: 16px;
	margin-bottom: 16px;
}

.gc-commitments__card-title {
	font-size: 20px;
	font-weight: 500;
	color: #1D1D1D;
	margin: 0 0 12px;
	line-height: 1.3;
}

.gc-commitments__card-desc {
	font-size: 14px;
	color: #4b5563;
	line-height: 1.625;
	margin: 0;
}

/* =========================================================
   Bloc Expertise / Savoir-faire (groupe-carre/expertise-cards)
   ========================================================= */
.gc-expertise {
	padding: 48px 24px 128px;
	background: #ffffff;
	width: 100%;
	max-width: 100vw;
	box-sizing: border-box;
	margin-block-start: 0;
}
@media (min-width: 1024px) { .gc-expertise { padding: 48px 32px 128px; } }

.gc-expertise__inner {
	max-width: 80rem;
	margin: 0 auto;
}

.gc-expertise__header {
	text-align: center;
	margin-bottom: 64px;
}
.gc-expertise__eyebrow {
	color: #E42320;
	font-size: 14px;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.075em;
	margin: 0 0 16px;
}
.gc-expertise__title {
	font-size: 36px;
	font-weight: 500;
	color: #1D1D1D;
	margin: 0 0 24px;
	line-height: 1.15;
	letter-spacing: -0.025em;
}
@media (min-width: 1024px) { .gc-expertise__title { font-size: 48px; } }
.gc-expertise__subtitle {
	font-size: 20px;
	color: #4b5563;
	margin: 0 auto;
	max-width: 48rem;
	line-height: 1.55;
}

.gc-expertise__grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: 1fr;
	gap: 32px;
}
@media (min-width: 768px) { .gc-expertise__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .gc-expertise__grid { grid-template-columns: repeat(3, 1fr); } }

.gc-expertise__card {
	background: #ffffff;
	border-radius: 24px;
	overflow: hidden;
	box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);
	transition: box-shadow 0.3s ease, transform 0.3s ease;
}
.gc-expertise__card:hover {
	box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
}

.gc-expertise__media {
	position: relative;
	height: 224px;
	overflow: hidden;
}
.gc-expertise__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.7s ease;
}
.gc-expertise__card:hover .gc-expertise__media img { transform: scale(1.1); }

.gc-expertise__media-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(0deg, rgba(29, 29, 29, 0.8) 0%, rgba(29, 29, 29, 0.4) 50%, transparent 100%);
}

.gc-expertise__icon {
	position: absolute;
	top: 16px;
	right: 16px;
	width: 48px;
	height: 48px;
	background: rgba(255, 255, 255, 0.9);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	color: #E42320;
	border-radius: 16px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.gc-expertise__content {
	padding: 24px;
}
.gc-expertise__card-title {
	font-size: 24px;
	font-weight: 500;
	color: #1D1D1D;
	margin: 0 0 12px;
	line-height: 1.25;
	letter-spacing: -0.015em;
	transition: color 0.3s ease;
}
.gc-expertise__card:hover .gc-expertise__card-title { color: #E42320; }
.gc-expertise__card-desc {
	font-size: 14px;
	color: #4b5563;
	line-height: 1.625;
	margin: 0;
}

/* =========================================================
   Bloc Galerie bento (groupe-carre/gallery)
   ========================================================= */
.gc-gallery {
	padding: 80px clamp(1.5rem, 4vw, 2rem);
	background: #ffffff;
	width: 100%;
	max-width: 100vw;
	box-sizing: border-box;
}
.gc-gallery__inner { max-width: 72rem; margin: 0 auto; }
.gc-gallery__header { text-align: center; margin-bottom: 48px; }
.gc-gallery__eyebrow {
	display: inline-block;
	color: #E42320;
	font-size: 0.875rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.075em;
	margin-bottom: 1rem;
}
.gc-gallery__title { font-size: clamp(1.75rem, 4vw, 2.25rem); color: #1D1D1D; margin: 0; line-height: 1.15; }
.gc-gallery__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	grid-auto-rows: 220px;
	gap: 16px;
}
@media (min-width: 1024px) {
	.gc-gallery__grid { grid-template-columns: repeat(3, 1fr); grid-auto-rows: 240px; }
}
.gc-gallery__item {
	position: relative;
	margin: 0;
	border-radius: 16px;
	overflow: hidden;
	box-shadow: 0 10px 20px -6px rgba(0, 0, 0, 0.15);
}
.gc-gallery__item--large { grid-column: span 2; }
.gc-gallery__item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.7s ease;
}
.gc-gallery__item:hover img { transform: scale(1.05); }

/* =========================================================
   Bloc Vidéo YouTube (groupe-carre/video-embed)
   ========================================================= */
.gc-video {
	padding: 80px clamp(1.5rem, 4vw, 2rem);
	width: 100%;
	max-width: 100vw;
	box-sizing: border-box;
}
.gc-video--bg-white { background: #ffffff; }
.gc-video--bg-muted { background: #f9fafb; }
.gc-video__inner { max-width: 56rem; margin: 0 auto; }
.gc-video__header { text-align: center; margin-bottom: 40px; }
.gc-video__eyebrow {
	display: inline-block;
	color: #E42320;
	font-size: 0.875rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.075em;
	margin-bottom: 1rem;
}
.gc-video__title { font-size: clamp(1.75rem, 4vw, 2.25rem); color: #1D1D1D; margin: 0; line-height: 1.15; }
.gc-video__frame {
	position: relative;
	aspect-ratio: 16 / 9;
	border-radius: 24px;
	overflow: hidden;
	background: #000000;
	box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
}
.gc-video__frame iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}
.gc-video__link-wrap { text-align: center; margin-top: 24px; }
.gc-video__link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: #E42320;
	font-weight: 600;
	text-decoration: none;
	transition: color 0.3s ease;
}
.gc-video__link:hover { color: #c91e1c; }
.gc-video__link-icon { display: inline-flex; }

/* =========================================================
   Bloc Cartes univers / hub (groupe-carre/universe-cards)
   ========================================================= */
.gc-universe {
	padding: clamp(4rem, 8vw, 7rem) clamp(1.5rem, 4vw, 2rem);
	width: 100%;
	max-width: 100vw;
	box-sizing: border-box;
	background: #ffffff;
}
.gc-universe__inner { max-width: 1100px; margin: 0 auto; }
.gc-universe__header { text-align: center; max-width: 50rem; margin: 0 auto 56px; }
.gc-universe__eyebrow {
	display: inline-block;
	color: #E42320;
	font-size: 0.8125rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	margin-bottom: 1rem;
}
.gc-universe__title { font-size: clamp(1.875rem, 4vw, 3rem); font-weight: 700; line-height: 1.15; letter-spacing: -0.025em; color: #1D1D1D; margin: 0 0 1rem; }
.gc-universe__title .gc-hl { position: relative; display: inline-block; z-index: 1; }
.gc-universe__title .gc-hl::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0.05em;
	height: 0.26em;
	background: rgba(228, 35, 32, 0.25);
	transform: rotate(-1deg);
	z-index: -1;
}
.gc-universe__subtitle { font-size: 1.2rem; color: #6b7280; line-height: 1.55; margin: 0; }

.gc-universe__grid { display: grid; grid-template-columns: 1fr; gap: 32px; }
@media (min-width: 820px) { .gc-universe__grid { grid-template-columns: 1fr 1fr; } }

.gc-universe__card {
	display: flex;
	flex-direction: column;
	background: #ffffff;
	border: 1px solid rgba(0, 0, 0, 0.1);
	border-radius: 24px;
	overflow: hidden;
	box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.06), 0 4px 6px -4px rgba(0, 0, 0, 0.06);
	transition: transform 0.35s ease, box-shadow 0.35s ease;
}
.gc-universe__card:hover { transform: translateY(-8px); box-shadow: 0 30px 60px -20px rgba(0, 0, 0, 0.25); }
.gc-universe__media { position: relative; height: 230px; overflow: hidden; }
.gc-universe__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.6s ease; }
.gc-universe__card:hover .gc-universe__media img { transform: scale(1.06); }
.gc-universe__media-overlay { position: absolute; inset: 0; background: linear-gradient(0deg, rgba(29, 29, 29, 0.7) 0%, rgba(29, 29, 29, 0.15) 55%, transparent 100%); }
.gc-universe__count {
	position: absolute;
	top: 16px;
	left: 16px;
	background: rgba(255, 255, 255, 0.95);
	color: #1D1D1D;
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	padding: 6px 13px;
	border-radius: 999px;
}
.gc-universe__media-title { position: absolute; left: 24px; bottom: 18px; color: #ffffff; font-size: 26px; font-weight: 700; letter-spacing: -0.01em; }
.gc-universe__body { display: flex; flex-direction: column; gap: 18px; padding: 30px; flex: 1; }
.gc-universe__desc { font-size: 1rem; color: #4b5563; line-height: 1.65; }
.gc-universe__chips { display: flex; flex-wrap: wrap; gap: 8px; }
.gc-universe__chip {
	font-size: 12.5px;
	font-weight: 600;
	color: #E42320;
	background: rgba(228, 35, 32, 0.08);
	padding: 5px 12px;
	border-radius: 999px;
}
.gc-universe__btn {
	margin-top: auto;
	align-self: flex-start;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 13px 26px;
	background: #E42320;
	color: #ffffff;
	font-size: 15px;
	font-weight: 600;
	border-radius: 999px;
	text-decoration: none;
	transition: background 0.25s ease, transform 0.25s ease;
}
.gc-universe__btn svg { transition: transform 0.25s ease; }
.gc-universe__btn:hover { background: #c91e1c; transform: translateY(-2px); }
.gc-universe__card:hover .gc-universe__btn svg { transform: translateX(4px); }

/* =========================================================
   Bloc Cartes comparatives (groupe-carre/comparison-cards)
   ========================================================= */
.gc-compare {
	padding: clamp(3.5rem, 7vw, 6rem) clamp(1.5rem, 4vw, 2rem);
	width: 100%;
	max-width: 100vw;
	box-sizing: border-box;
}
.gc-compare__inner { max-width: 920px; margin: 0 auto; }
.gc-compare__header { text-align: center; max-width: 50rem; margin: 0 auto 48px; }
.gc-compare__eyebrow {
	display: inline-block;
	color: #E42320;
	font-size: 0.8125rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	margin-bottom: 1rem;
}
.gc-compare__title { font-size: clamp(1.875rem, 4vw, 3rem); font-weight: 700; line-height: 1.15; letter-spacing: -0.025em; color: #1D1D1D; margin: 0 0 1rem; }
.gc-compare__title .gc-hl { position: relative; display: inline-block; z-index: 1; }
.gc-compare__title .gc-hl::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0.05em; height: 0.26em; background: rgba(228, 35, 32, 0.25); transform: rotate(-1deg); z-index: -1; }
.gc-compare__subtitle { font-size: 1.2rem; color: #6b7280; line-height: 1.55; margin: 0; }

.gc-compare__grid { display: grid; grid-template-columns: 1fr; gap: 24px; }
@media (min-width: 700px) { .gc-compare__grid { grid-template-columns: 1fr 1fr; } }
.gc-compare__card {
	background: #ffffff;
	border: 1px solid #f3f4f6;
	border-radius: 24px;
	padding: 32px;
	box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.gc-compare__card:hover { transform: translateY(-8px); box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.18); }
.gc-compare__label { font-size: 12px; text-transform: uppercase; letter-spacing: 0.1em; font-weight: 600; color: #4b5563; margin-bottom: 22px; }
.gc-compare__row { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; }
.gc-compare__now { font-size: 56px; font-weight: 700; color: #E42320; line-height: 1; }
.gc-compare__now small { font-size: 22px; font-weight: 600; }
.gc-compare__then { text-align: right; color: #9ca3af; font-size: 12px; text-transform: uppercase; letter-spacing: 0.05em; }
.gc-compare__then b { display: block; font-size: 26px; color: #1D1D1D; font-weight: 700; margin-top: 4px; }
.gc-compare__delta { margin-top: 22px; display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 700; padding: 6px 14px; border-radius: 999px; }
.gc-compare__delta--up { background: rgba(228, 35, 32, 0.1); color: #E42320; }
.gc-compare__delta--flat,
.gc-compare__delta--down { background: rgba(124, 181, 24, 0.15); color: #5a8512; }
.gc-compare__bar { margin-top: 18px; height: 8px; border-radius: 8px; background: #F3F3F5; overflow: hidden; }
.gc-compare__bar i { display: block; height: 100%; border-radius: 8px; background: linear-gradient(90deg, #E42320, #c91e1c); width: 0; transition: width 1.3s cubic-bezier(0.22, 1, 0.36, 1) 0.2s; }
.gc-compare__card.is-visible .gc-compare__bar i { width: var(--w); }
.gc-compare__var { margin-top: 16px; font-size: 13px; color: #717182; }
.gc-compare__note { text-align: center; color: #717182; font-size: 14px; margin: 36px auto 0; max-width: 620px; }

/* =========================================================
   Modale formulaire (groupe-carre/form-modal) + système modal
   ========================================================= */
.gc-modal-mount { margin: 0; }
.gc-modal[hidden] { display: none; }
.gc-modal {
	position: fixed;
	inset: 0;
	z-index: 99999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1.5rem;
}
.gc-modal__overlay {
	position: absolute;
	inset: 0;
	background: rgba(29, 29, 29, 0.6);
	-webkit-backdrop-filter: blur(2px);
	backdrop-filter: blur(2px);
	animation: gc-modal-fade 0.2s ease;
}
.gc-modal__dialog {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: 34rem;
	max-height: 90vh;
	overflow-y: auto;
	background: #ffffff;
	border-radius: 20px;
	padding: 2rem clamp(1.25rem, 4vw, 2.25rem) 2.25rem;
	box-shadow: 0 30px 60px -15px rgba(0, 0, 0, 0.4);
	animation: gc-modal-pop 0.25s cubic-bezier(0.22, 1, 0.36, 1);
}
.gc-modal__close {
	position: absolute;
	top: 0.9rem;
	right: 0.9rem;
	width: 2.25rem;
	height: 2.25rem;
	border: none;
	background: #f3f3f5;
	color: #1D1D1D;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: background 0.2s ease;
}
.gc-modal__close:hover { background: #e5e5ea; }
.gc-modal__title { font-size: 1.5rem; font-weight: 700; color: #1D1D1D; margin: 0 2.5rem 1.25rem 0; line-height: 1.2; }
@keyframes gc-modal-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes gc-modal-pop { from { opacity: 0; transform: translateY(12px) scale(0.98); } to { opacity: 1; transform: none; } }
body.gc-modal-open { overflow: hidden; }

/* --- Style des formulaires CF7 dans la modale --- */
.gc-form .wpcf7 { margin: 0; }
/* Ligne à 2 colonnes (ex: Nom / Prénom) */
.gc-form .gc-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 0 20px; }
.gc-form .gc-form__row > p { margin-bottom: 1.15rem; }
@media (max-width: 560px) { .gc-form .gc-form__row { grid-template-columns: 1fr; } }
.gc-form .wpcf7-form p { margin: 0 0 1.15rem; font-size: 1rem; line-height: 1.5; color: #1D1D1D; }
.gc-form .wpcf7-form label { display: block; font-weight: 600; }
.gc-form .wpcf7-form input[type="text"],
.gc-form .wpcf7-form input[type="email"],
.gc-form .wpcf7-form input[type="tel"],
.gc-form .wpcf7-form input[type="url"],
.gc-form .wpcf7-form input[type="number"],
.gc-form .wpcf7-form input[type="date"],
.gc-form .wpcf7-form textarea,
.gc-form .wpcf7-form select {
	width: 100%;
	box-sizing: border-box;
	margin-top: 0.4rem;
	padding: 0.7rem 0.9rem;
	font-size: 1rem;
	font-family: inherit;
	color: #1D1D1D;
	background: #ffffff;
	border: 1px solid #d7d7dd;
	border-radius: 10px;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.gc-form .wpcf7-form input:focus,
.gc-form .wpcf7-form textarea:focus,
.gc-form .wpcf7-form select:focus {
	outline: none;
	border-color: #E42320;
	box-shadow: 0 0 0 3px rgba(228, 35, 32, 0.12);
}
.gc-form .wpcf7-form textarea { min-height: 120px; resize: vertical; }
.gc-form .wpcf7-form select {
	-webkit-appearance: none;
	appearance: none;
	padding-right: 2.5rem;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231D1D1D' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 0.9rem center;
	background-size: 1.1rem;
}
.gc-form .wpcf7-form .wpcf7-submit,
.gc-form .wpcf7-form input[type="submit"] {
	margin-top: 0.5rem;
	padding: 0.85rem 1.9rem;
	font-size: 1rem;
	font-weight: 600;
	font-family: inherit;
	color: #ffffff;
	background: #E42320;
	border: none;
	border-radius: 999px;
	cursor: pointer;
	transition: background 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
	box-shadow: 0 10px 24px -10px rgba(228, 35, 32, 0.6);
}
.gc-form .wpcf7-form .wpcf7-submit:hover,
.gc-form .wpcf7-form input[type="submit"]:hover { background: #c91e1c; transform: translateY(-2px); }
.gc-form .wpcf7-form .wpcf7-spinner { margin: 0.5rem 0 0 0.6rem; }
.gc-form .wpcf7-not-valid-tip { color: #E42320; font-size: 0.85rem; margin-top: 0.3rem; }
.gc-form .wpcf7-form .wpcf7-not-valid { border-color: #E42320 !important; box-shadow: 0 0 0 3px rgba(228, 35, 32, 0.1); }
.gc-form .wpcf7-response-output {
	margin: 1.1rem 0 0 !important;
	padding: 0.8rem 1rem !important;
	border-radius: 10px;
	font-size: 0.9rem;
	line-height: 1.4;
}

/* =========================================================
   Bloc Encadré / Callout (groupe-carre/callout)
   ========================================================= */
.gc-callout {
	display: flex;
	gap: 18px;
	align-items: center;
	max-width: 900px;
	margin: 2.5rem auto;
	padding: 24px 28px;
	border-radius: 18px;
	box-sizing: border-box;
}
.gc-callout--red { background: linear-gradient(135deg, rgba(228, 35, 32, 0.06), #ffffff 70%); border: 2px solid rgba(228, 35, 32, 0.2); }
.gc-callout--yellow { background: linear-gradient(135deg, rgba(255, 238, 135, 0.35), #ffffff 70%); border: 2px solid #FBE74A; }
.gc-callout__badge {
	flex: none;
	min-width: 64px;
	height: 64px;
	padding: 0 0.6rem;
	border-radius: 50%;
	background: #FFEE87;
	color: #1D1D1D;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 13px;
	font-weight: 800;
	letter-spacing: 0.04em;
	box-shadow: 0 8px 18px rgba(0, 0, 0, 0.12);
	text-align: center;
}
.gc-callout--yellow .gc-callout__badge { background: #E42320; color: #ffffff; }
.gc-callout__text { font-size: 15px; color: #4b5563; line-height: 1.55; }
.gc-callout__text p { margin: 0 0 0.5rem; }
.gc-callout__text p:last-child { margin: 0; }
.gc-callout__text b, .gc-callout__text strong { color: #1D1D1D; }
@media (max-width: 560px) { .gc-callout { flex-direction: column; text-align: center; } }

/* =========================================================
   Formulaire encadré (groupe-carre/form-card)
   ========================================================= */
.gc-form-card {
	max-width: 680px;
	margin: 0 auto;
	box-sizing: border-box;
	background: #ffffff;
	border: 1px solid rgba(0, 0, 0, 0.1);
	border-radius: 24px;
	padding: clamp(28px, 5vw, 44px);
	box-shadow: 0 25px 50px -25px rgba(0, 0, 0, 0.2);
}

/* =========================================================
   Tableaux natifs Gutenberg (style Groupe Carré)
   ========================================================= */
.wp-block-table { overflow-x: auto; margin-inline: auto; }
.wp-block-table table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	background: #ffffff;
	border: 1px solid rgba(0, 0, 0, 0.08);
	border-radius: 16px;
	overflow: hidden;
}
.wp-block-table th,
.wp-block-table td {
	padding: 15px 18px;
	text-align: left;
	border: none;
	border-bottom: 1px solid rgba(0, 0, 0, 0.1);
	vertical-align: top;
	font-size: 14px;
	color: #4b5563;
}
.wp-block-table thead th {
	background: #E42320;
	color: #ffffff;
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	font-weight: 600;
}
.wp-block-table tbody td:first-child {
	font-weight: 700;
	color: #1D1D1D;
	background: #fafafa;
}
.wp-block-table tbody tr:last-child td { border-bottom: none; }
.wp-block-table tbody tr:hover td { background: rgba(228, 35, 32, 0.03); }
.wp-block-table tbody tr:hover td:first-child { background: rgba(228, 35, 32, 0.05); }

/* Mobile : un tableau à plusieurs colonnes est illisible → chaque ligne devient
   une carte. Le libellé de colonne (data-label posé par table-cards.js) s'affiche
   devant chaque valeur ; la 1re cellule sert d'en-tête de carte. */
@media (max-width: 768px) {
	.wp-block-table table { border: none; border-radius: 0; background: transparent; }
	.wp-block-table thead { display: none; }
	.wp-block-table tbody,
	.wp-block-table tbody tr,
	.wp-block-table tbody td { display: block; }
	.wp-block-table tbody tr {
		background: #ffffff;
		border: 1px solid rgba(0, 0, 0, 0.1);
		border-radius: 12px;
		margin-bottom: 16px;
		overflow: hidden;
	}
	.wp-block-table tbody td {
		display: flex;
		justify-content: space-between;
		align-items: baseline;
		gap: 16px;
		padding: 12px 16px;
		border-bottom: 1px solid rgba(0, 0, 0, 0.08);
		text-align: right;
	}
	.wp-block-table tbody tr td:last-child { border-bottom: none; }
	.wp-block-table tbody td[data-label]::before {
		content: attr(data-label);
		flex: 0 0 40%;
		text-align: left;
		font-weight: 600;
		font-size: 11px;
		line-height: 1.4;
		text-transform: uppercase;
		letter-spacing: 0.04em;
		color: #1D1D1D;
	}
	/* 1re cellule = en-tête de la carte (fond rouge, pleine largeur) */
	.wp-block-table tbody td:first-child {
		display: block;
		background: #E42320;
		color: #ffffff;
		font-size: 16px;
		font-weight: 700;
		text-align: left;
	}
	.wp-block-table tbody td:first-child::before { display: none; }
}

/* =========================================================
   Bloc Centre de ressources (groupe-carre/resource-center)
   ========================================================= */
.gc-res {
	--res-ease: cubic-bezier(.22,1,.36,1);
	padding: clamp(3.5rem, 7vw, 6rem) 0;
}
.gc-res__wrap {
	max-width: 1400px;
	margin: 0 auto;
	padding: 0 24px;
}
@media (min-width: 1024px) { .gc-res__wrap { padding: 0 32px; } }
.gc-res a { text-decoration: none; }

/* Onglets */
.gc-res .res-tabs {
	display: flex;
	gap: 10px;
	justify-content: center;
	flex-wrap: wrap;
	margin-bottom: 44px;
}
.gc-res .res-tab {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 13px 26px;
	border-radius: 999px;
	border: 2px solid rgba(0,0,0,.1);
	background: #fff;
	color: #1D1D1D;
	font: inherit;
	font-size: 15px;
	font-weight: 600;
	cursor: pointer;
	transition: .25s var(--res-ease);
}
.gc-res .res-tab:hover { border-color: #E42320; color: #E42320; }
.gc-res .res-tab.is-active { background: #E42320; border-color: #E42320; color: #fff; }
.gc-res .res-tab__count {
	font-size: 12px;
	font-weight: 700;
	background: rgba(0,0,0,.06);
	padding: 2px 8px;
	border-radius: 999px;
}
.gc-res .res-tab.is-active .res-tab__count { background: rgba(255,255,255,.2); }

.gc-res .res-panel { display: none; }
.gc-res .res-panel.is-active { display: block; animation: gc-res-fade .4s var(--res-ease); }
@keyframes gc-res-fade { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }

/* Filtres chips */
.gc-res .chips {
	display: flex;
	gap: 10px;
	justify-content: center;
	flex-wrap: wrap;
	margin-bottom: 40px;
}
.gc-res .chip {
	padding: 8px 18px;
	border-radius: 999px;
	border: 1px solid rgba(0,0,0,.1);
	background: #fff;
	font: inherit;
	font-size: 13px;
	font-weight: 500;
	color: #4b5563;
	cursor: pointer;
	transition: .2s;
}
.gc-res .chip:hover { border-color: #E42320; color: #E42320; }
.gc-res .chip.is-active { background: rgba(228,35,32,.1); border-color: transparent; color: #E42320; font-weight: 600; }

.gc-res .res-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 28px;
	max-width: 1200px;
	margin: 0 auto;
}
@media (min-width: 620px) { .gc-res .res-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 900px) { .gc-res .res-grid { grid-template-columns: repeat(3, 1fr); } }
.gc-res .is-hidden { display: none !important; }

/* Carte publication */
.gc-res .pub-card {
	background: #fff;
	border: 1px solid rgba(0,0,0,.1);
	border-radius: 20px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	transition: transform .3s var(--res-ease), box-shadow .3s var(--res-ease);
}
.gc-res .pub-card:hover { transform: translateY(-6px); box-shadow: 0 25px 50px -15px rgba(0,0,0,.18); }
.gc-res .pub-card__cover {
	position: relative;
	height: 240px;
	background: linear-gradient(135deg, #f3f3f5, #e9e9ee);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 22px;
}
.gc-res .pub-card__cover img { max-height: 100%; width: auto; object-fit: contain; filter: drop-shadow(0 10px 20px rgba(0,0,0,.18)); }
.gc-res .pub-card__type {
	position: absolute;
	top: 14px;
	left: 14px;
	z-index: 2;
	background: #E42320;
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .04em;
	padding: 5px 12px;
	border-radius: 999px;
	box-shadow: 0 4px 10px rgba(0,0,0,.18);
}
.gc-res .pub-card__type--guide { background: #1D1D1D; }
.gc-res .pub-card__type--etude { background: #1e7a3c; }
.gc-res .pub-card__new {
	position: absolute;
	top: 14px;
	right: 14px;
	z-index: 2;
	background: #FFEE87;
	color: #1D1D1D;
	font-size: 11px;
	font-weight: 700;
	padding: 5px 12px;
	border-radius: 999px;
	box-shadow: 0 4px 10px rgba(0,0,0,.18);
}
.gc-res .pub-card__body { padding: 24px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.gc-res .pub-card__theme { font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; color: #E42320; }
.gc-res .pub-card__title { font-size: 17px; font-weight: 600; color: #1D1D1D; line-height: 1.3; margin: 0; }
.gc-res .pub-card__desc { font-size: 14px; color: #4b5563; line-height: 1.55; flex: 1; margin: 0; }
.gc-res .pub-card__foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 6px; }
.gc-res .pub-card__date { font-size: 12px; color: #717182; }
.gc-res .pub-card__btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: #E42320;
	color: #fff;
	font-size: 14px;
	font-weight: 600;
	padding: 10px 18px;
	border-radius: 999px;
	transition: .25s;
}
.gc-res .pub-card__btn:hover { background: #c91e1c; }

/* Grille bento vidéos (comme la maquette) */
.gc-res .vid-bento {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	grid-auto-rows: 160px;
	gap: 20px;
	max-width: 1200px;
	margin: 0 auto;
	grid-auto-flow: dense;
}
@media (min-width: 760px) { .gc-res .vid-bento { grid-template-columns: repeat(3, 1fr); grid-auto-rows: 190px; } }
@media (min-width: 1080px) { .gc-res .vid-bento { grid-template-columns: repeat(4, 1fr); grid-auto-rows: 215px; } }
.gc-res .vid-bento .vid-card { min-height: 0; height: 100%; }
/* La vedette (2×2) uniquement sur les vraies cartes, jamais sur la tuile CTA */
.gc-res .vid-bento.show-feature .vid-card.is-feature { grid-column: span 2; grid-row: span 2; }
.gc-res .vid-bento.show-feature .vid-card.is-feature .vid-card__title { font-size: 21px; }
/* Tuile CTA : large (2 colonnes) mais toujours 1 seule rangée */
.gc-res .vid-bento .vid-cta { grid-column: span 2; grid-row: span 1; }

/* Tuile CTA chaîne (comble le pavage bento) */
.gc-res .vid-cta {
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	gap: 8px;
	height: 100%;
	min-height: 0;
	overflow: hidden;
	padding: 24px;
	border-radius: 20px;
	background: linear-gradient(135deg, #E42320 0%, #1D1D1D 100%);
	color: #fff;
	text-decoration: none;
	transition: transform .3s var(--res-ease), box-shadow .3s var(--res-ease);
}
.gc-res .vid-cta:hover { transform: translateY(-6px); box-shadow: 0 25px 50px -15px rgba(0,0,0,.3); }
.gc-res .vid-cta__icon { flex: none; width: 42px; height: 42px; border-radius: 12px; background: rgba(255,255,255,.15); display: flex; align-items: center; justify-content: center; }
.gc-res .vid-cta__title { font-size: 17px; font-weight: 600; line-height: 1.2; }
.gc-res .vid-cta__sub { font-size: 13px; opacity: .85; line-height: 1.3; }

/* Carte vidéo */
.gc-res .vid-card {
	position: relative;
	border-radius: 20px;
	overflow: hidden;
	display: block;
	color: #fff;
	min-height: 250px;
	cursor: pointer;
	transition: transform .3s var(--res-ease), box-shadow .3s var(--res-ease);
}
.gc-res .vid-card:hover { transform: translateY(-6px); box-shadow: 0 25px 50px -15px rgba(0,0,0,.25); }
.gc-res .vid-card__cover { position: absolute; inset: 0; background-color: #2d4a16; background-size: cover; background-position: center; transition: transform .5s var(--res-ease); }
.gc-res .vid-card:hover .vid-card__cover { transform: scale(1.05); }
.gc-res .vid-card__overlay { position: absolute; inset: 0; background: linear-gradient(0deg, rgba(0,0,0,.78) 0%, rgba(0,0,0,.35) 50%, rgba(0,0,0,.15) 100%); }
.gc-res .vid-card__series { position: absolute; top: 14px; left: 14px; background: rgba(255,255,255,.95); color: #1D1D1D; font-size: 11px; font-weight: 700; padding: 5px 12px; border-radius: 999px; z-index: 2; }
.gc-res .vid-card__play {
	position: absolute;
	top: 46%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 60px;
	height: 60px;
	border-radius: 50%;
	background: #E42320;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 12px 28px rgba(0,0,0,.35);
	transition: transform .3s var(--res-ease);
	z-index: 2;
}
.gc-res .vid-card:hover .vid-card__play { transform: translate(-50%, -50%) scale(1.12); }
.gc-res .vid-card__info { position: absolute; left: 0; right: 0; bottom: 0; padding: 20px; z-index: 2; }
.gc-res .vid-card__title { font-size: 16px; font-weight: 600; line-height: 1.35; }
.gc-res .vid-card__date { font-size: 12px; opacity: .85; margin-top: 4px; }

/* États divers */
.gc-res .gc-res__ytnote { text-align: center; margin-top: 36px; color: #717182; font-size: 14px; }
.gc-res .gc-res__ytnote a { font-weight: 600; }
.gc-res .gc-res__empty { text-align: center; color: #717182; font-size: 15px; padding: 40px 0; }

/* =========================================================
   Bloc La presse en parle (groupe-carre/press-list)
   ========================================================= */
.gc-press {
	--press-ease: cubic-bezier(.22,1,.36,1);
	padding: clamp(3.5rem, 7vw, 6rem) 0;
}
.gc-press *, .gc-press *::before, .gc-press *::after { box-sizing: border-box; }
.gc-press__wrap {
	max-width: 1264px;
	margin: 0 auto;
	padding: 0 24px;
}
@media (min-width: 1024px) { .gc-press__wrap { padding: 0 32px; } }
.gc-press a { text-decoration: none; }
.gc-press__empty { text-align: center; color: #717182; font-size: 15px; padding: 40px 0; }

/* À la une */
.gc-press .press-feature {
	position: relative;
	border-radius: 24px;
	overflow: hidden;
	min-height: 320px;
	display: flex;
	align-items: flex-end;
	color: #fff;
	margin: 0 auto 48px;
	max-width: 1200px;
	transition: transform .3s var(--press-ease), box-shadow .3s var(--press-ease);
}
.gc-press a.press-feature:hover { transform: translateY(-4px); box-shadow: 0 30px 60px -20px rgba(0,0,0,.3); }
.gc-press .press-feature__bg { position: absolute; inset: 0; background-size: cover; background-position: center; background-color: #2d4a16; }
.gc-press .press-feature__overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0,0,0,.8) 0%, rgba(0,0,0,.5) 50%, rgba(0,0,0,.25) 100%); }
.gc-press .press-feature__inner { position: relative; z-index: 2; padding: clamp(28px,4vw,44px); max-width: 42rem; }
.gc-press .press-feature__badge { display: inline-flex; align-items: center; gap: 8px; background: #FFEE87; color: #1D1D1D; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; padding: 6px 14px; border-radius: 999px; margin-bottom: 16px; }
.gc-press .press-feature__media { font-size: 13px; font-weight: 600; color: rgba(255,255,255,.85); margin-bottom: 10px; }
.gc-press .press-feature__title { font-size: clamp(22px,3vw,32px); font-weight: 700; line-height: 1.2; margin-bottom: 20px; }
.gc-press .press-feature__btn { display: inline-flex; align-items: center; gap: 8px; background: #fff; color: #E42320; font-weight: 600; padding: 12px 24px; border-radius: 999px; transition: .25s; }
.gc-press a.press-feature:hover .press-feature__btn { background: #FFEE87; color: #1D1D1D; }

/* Barre filtres + recherche */
.gc-press .press-bar { display: flex; flex-wrap: wrap; gap: 16px; justify-content: space-between; align-items: center; max-width: 1200px; margin: 0 auto 32px; }
.gc-press .press-tabs { display: flex; gap: 8px; flex-wrap: wrap; }
.gc-press .press-tab { padding: 10px 20px; border-radius: 999px; border: 2px solid rgba(0,0,0,.1); background: #fff; color: #1D1D1D; font: inherit; font-size: 14px; font-weight: 600; cursor: pointer; transition: .25s; }
.gc-press .press-tab:hover { border-color: #E42320; color: #E42320; }
.gc-press .press-tab.is-active { background: #E42320; border-color: #E42320; color: #fff; }
.gc-press .press-search { position: relative; min-width: 240px; flex: 1; max-width: 340px; }
.gc-press .press-search svg { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: #717182; }
.gc-press .press-search input { width: 100%; padding: 11px 16px 11px 42px; border: 1px solid rgba(0,0,0,.1); border-radius: 999px; font: inherit; font-size: 14px; background: #fafafa; }
.gc-press .press-search input:focus { outline: none; border-color: #E42320; background: #fff; }
.gc-press .press-count { font-size: 13px; color: #717182; margin: 0 auto 20px; text-align: center; max-width: 1200px; }

/* Grille des parutions */
.gc-press .press-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 20px; max-width: 1200px; margin: 0 auto; }
.gc-press .press-card { background: #fff; border: 1px solid rgba(0,0,0,.1); border-radius: 16px; padding: 22px; display: flex; flex-direction: column; gap: 12px; transition: transform .25s var(--press-ease), box-shadow .25s var(--press-ease), border-color .25s; }
.gc-press .press-card:hover { transform: translateY(-4px); box-shadow: 0 18px 36px -16px rgba(0,0,0,.16); border-color: transparent; }
.gc-press .press-card__top { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.gc-press .press-card__media { font-size: 11.5px; font-weight: 600; color: #E42320; background: rgba(228,35,32,.08); padding: 4px 11px; border-radius: 999px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 65%; }
.gc-press .press-card__date { font-size: 12px; color: #717182; white-space: nowrap; }
.gc-press .press-card__title { font-size: 15.5px; font-weight: 600; line-height: 1.35; color: #1D1D1D; flex: 1; margin: 0; }
.gc-press .press-card__title-link { color: inherit; transition: color .2s; }
.gc-press .press-card:hover .press-card__title-link { color: #E42320; }
.gc-press .press-card__link { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 600; color: #E42320; margin-top: 2px; }
.gc-press .press-card__link svg { transition: transform .25s; }
.gc-press .press-card:hover .press-card__link svg { transform: translateX(3px); }
.gc-press .press-card__paper { font-size: 12px; color: #a0a0aa; font-style: italic; margin-top: 2px; }
.gc-press .press-empty { text-align: center; color: #717182; padding: 48px; font-size: 15px; }

/* =========================================================
   Bloc FAQ (groupe-carre/faq-list)
   ========================================================= */
.gc-faq {
	--faq-ease: cubic-bezier(.22,1,.36,1);
	padding: clamp(3rem, 6vw, 5rem) 0;
}
.gc-faq *, .gc-faq *::before, .gc-faq *::after { box-sizing: border-box; }
.gc-faq__wrap { max-width: 900px; margin: 0 auto; padding: 0 24px; }
.gc-faq__empty { text-align: center; color: #717182; font-size: 15px; padding: 40px 0; }

/* Chips catégories */
.gc-faq .faq-chips { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; margin: 0 auto 36px; }
.gc-faq .faq-chip { padding: 9px 18px; border-radius: 999px; border: 1px solid rgba(0,0,0,.1); background: #fff; font: inherit; font-size: 13px; font-weight: 500; color: #4b5563; cursor: pointer; transition: .2s; }
.gc-faq .faq-chip:hover { border-color: #E42320; color: #E42320; }
.gc-faq .faq-chip.is-active { background: rgba(228,35,32,.1); border-color: transparent; color: #E42320; font-weight: 600; }

.gc-faq .faq-count { font-size: 13px; color: #717182; margin: 0 0 20px; text-align: center; }

/* Accordéon */
.gc-faq .faq-list { max-width: 820px; margin: 0 auto; }
.gc-faq .faq-item { border: 1px solid rgba(0,0,0,.1); border-radius: 14px; margin-bottom: 12px; background: #fff; overflow: hidden; transition: border-color .25s, box-shadow .25s; }
.gc-faq .faq-item.is-open { border-color: rgba(228,35,32,.35); box-shadow: 0 14px 30px -16px rgba(0,0,0,.16); }
.gc-faq .faq-q { display: flex; justify-content: space-between; align-items: center; gap: 16px; width: 100%; padding: 20px 24px; background: none; border: none; cursor: pointer; text-align: left; font-family: inherit; }
.gc-faq .faq-q__main { display: flex; flex-direction: column; gap: 8px; }
.gc-faq .faq-q__cat { align-self: flex-start; font-size: 10.5px; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; color: #E42320; background: rgba(228,35,32,.08); padding: 3px 9px; border-radius: 999px; }
.gc-faq .faq-q__text { font-size: 16px; font-weight: 600; color: #1D1D1D; line-height: 1.4; }
.gc-faq .faq-q__chevron { flex: none; color: #717182; transition: transform .3s var(--faq-ease); }
.gc-faq .faq-item.is-open .faq-q__chevron { transform: rotate(180deg); color: #E42320; }
.gc-faq .faq-a { max-height: 0; overflow: hidden; transition: max-height .35s var(--faq-ease); }
.gc-faq .faq-a__inner { padding: 0 24px 22px; color: #4b5563; line-height: 1.7; font-size: 15px; }
.gc-faq .faq-a__inner a { color: #E42320; font-weight: 600; }
.gc-faq .faq-a__inner strong { color: #1D1D1D; }
.gc-faq .faq-a__inner p { margin: 0 0 10px; }
.gc-faq .faq-a__inner p:last-child { margin-bottom: 0; }
.gc-faq .faq-empty { text-align: center; color: #717182; padding: 48px; font-size: 15px; }

/* ============================================================
   Bloc Contact — Coordonnées (groupe-carre/contact-infos)
   ============================================================ */
.gc-contact-infos { display: flex; flex-direction: column; gap: 20px; }
@media (min-width: 960px) { .gc-contact-infos { position: sticky; top: 96px; } }

.gc-contact-infos__card {
	border: 1px solid rgba(0, 0, 0, .1); border-radius: 18px; background: #fff;
	padding: 28px; box-shadow: 0 20px 45px -30px rgba(0, 0, 0, .35);
}
.gc-contact-infos__title {
	font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: .06em;
	color: #717182; margin-bottom: 20px;
}
.gc-contact-infos__row {
	display: flex; gap: 14px; align-items: flex-start;
	padding: 14px 0; border-bottom: 1px solid rgba(0, 0, 0, .1);
}
.gc-contact-infos__row:last-child { border-bottom: none; padding-bottom: 0; }
.gc-contact-infos__row:first-of-type { padding-top: 0; }
.gc-contact-infos__ic {
	flex: none; width: 42px; height: 42px; border-radius: 12px; display: grid; place-items: center;
	background: rgba(228, 35, 32, .08); color: #E42320;
}
.gc-contact-infos__k { font-size: 12px; color: #717182; margin-bottom: 3px; }
.gc-contact-infos__v { font-size: 15px; font-weight: 600; color: #1D1D1D; line-height: 1.4; }
.gc-contact-infos__v a { color: #1D1D1D; }
.gc-contact-infos__v a:hover { color: #E42320; }

.gc-contact-infos__actions { display: grid; gap: 10px; }
.gc-contact-infos__act {
	display: flex; align-items: center; justify-content: space-between; gap: 12px;
	padding: 14px 18px; border-radius: 14px; border: 1px solid rgba(0, 0, 0, .1);
	font-weight: 600; font-size: 14px; color: #1D1D1D; transition: .2s;
}
.gc-contact-infos__act:hover { border-color: #E42320; color: #E42320; transform: translateY(-2px); }
.gc-contact-infos__act svg { color: #E42320; flex: none; }
.gc-contact-infos__act--fill { background: #E42320; color: #fff; border-color: transparent; }
.gc-contact-infos__act--fill svg { color: #fff; }
.gc-contact-infos__act--fill:hover { background: #c91e1c; color: #fff; }

.gc-contact-infos__map {
	border: 1px solid rgba(0, 0, 0, .1); border-radius: 18px; overflow: hidden; height: 220px;
}
.gc-contact-infos__map iframe { width: 100%; height: 100%; border: 0; filter: grayscale(.2); display: block; }

/* =========================================================
   Page 404
   ========================================================= */
.gc-404 {
	padding: clamp(64px, 12vw, 140px) 24px;
	display: flex;
	flex-direction: column;
	align-items: center;
	background:
		radial-gradient(120% 80% at 50% -10%, rgba(228, 35, 32, .06), transparent 60%),
		var(--wp--preset--color--muted);
}
.gc-404__eyebrow {
	margin: 0 0 8px;
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--primary);
}
.gc-404__code {
	margin: 0;
	line-height: .9;
	font-size: clamp(6rem, 22vw, 12rem);
	font-weight: 800;
	letter-spacing: -.04em;
	color: var(--wp--preset--color--primary);
	position: relative;
}
/* Soulignement jaune accent façon champ */
.gc-404__code::after {
	content: "";
	display: block;
	width: clamp(64px, 12vw, 120px);
	height: 8px;
	margin: 16px auto 0;
	border-radius: 999px;
	background: var(--wp--preset--color--accent);
}
.gc-404__title {
	margin: 28px 0 0;
	font-size: var(--wp--preset--font-size--3xl);
	font-weight: 700;
	color: var(--wp--preset--color--foreground);
}
.gc-404__text {
	margin: 14px 0 0;
	max-width: 34rem;
	color: var(--wp--preset--color--muted-foreground);
	font-size: var(--wp--preset--font-size--lg);
}
.gc-404__actions { margin: 36px 0 0; gap: 12px; }
