/* Accueil — toutes les valeurs sont dérivées des coordonnées des nodes Figma
   (largeur de référence 1728). Forme : clamp(plancher, valeur/17.28 vw, valeur). */

.home > section {
	position: relative;
}

/* ───────────────────────── Hero — y 88 → 617 (529) ───────────────────────── */

.home-hero {
	display: grid;
	grid-template-columns: 50.57870% 49.42130%; /* 874 | 854 */
	min-height: clamp(20rem, 30.6134vw, 33.0625rem); /* 529 */
}

.home-hero__text {
	padding-top: clamp(2.5rem, 5.0926vw, 5.5rem); /* 88 */
}

.home-hero__eyebrow {
	margin-left: var(--gutter-text); /* 50 */
}

.home-hero__title {
	margin-top: clamp(0.75rem, 1.6204vw, 1.75rem); /* 28 */
	margin-left: var(--gutter); /* 44 */
	max-width: 90.50343%; /* 791 sur une colonne de 874 */
	font-family: var(--ff-display);
	font-weight: 400;
	font-size: var(--fs-h1);
	line-height: var(--lh-h1);
	color: var(--c-ink);
}

.home-hero__media {
	position: relative;
	overflow: hidden;
}

/* <picture> est en hauteur auto : un height:100% sur l'<img> y retomberait en
   auto et object-fit serait inopérant. On sort donc l'image du flux. */
.home-hero__media img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* ──────────────────────── Intro — y 617 → 1018 (401) ─────────────────────── */

.home-intro {
	padding-block: clamp(3.75rem, 8.1597vw, 8.8125rem) clamp(3.75rem, 8.1019vw, 8.75rem); /* 141 | 140 */
}

.home-intro__text {
	max-width: 28.12500%; /* 486 */
	margin-inline: auto;
	text-align: center;
}

/* ────────────────────── Expertises — y 1018 → 2071 (1053) ────────────────── */

.home-expertises {
	display: grid;
	grid-template-columns: 48.55324% 51.44676%; /* 839 | 889 */
}

.home-expertises__media {
	position: relative;
	min-height: clamp(25rem, 60.9375vw, 65.8125rem); /* 1053 */
	overflow: hidden;
}

.home-expertises__media img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.home-expertises__body {
	display: flex;
	flex-direction: column;
}

.home-expertises__head {
	padding-top: clamp(3.75rem, 15.1042vw, 16.3125rem); /* 261 */
	padding-left: 13.49831%; /* 120 dans une colonne de 889 */
}

.home-expertises__title {
	margin-top: clamp(1rem, 1.8519vw, 2rem);  /* 32 */
	max-width: 69.18075%; /* 532 sur une colonne rognée de 769 */
}

.home-expertises__intro {
	margin-top: clamp(0.75rem, 1.2731vw, 1.375rem); /* 22 */
	max-width: 53.83615%; /* 414 sur une colonne rognée de 769 */
}

.home-expertises__list {
	margin-top: clamp(3rem, 7.9861vw, 8.625rem); /* 138 */
}

.home-expertises__item {
	position: relative;
}

.home-expertises__item::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: var(--rule);
	background: var(--c-line);
	transition: left var(--t-fast);
}

/* Filet reculé de 35 px au contact du bandeau survolé (maquette). */
.home-expertises__item:hover::before,
.home-expertises__item:hover + .home-expertises__item::before {
	left: 3.93701%; /* 35 / 889 */
}

.home-expertises__link {
	display: flex;
	align-items: center;
	min-height: clamp(3.5rem, 4.8032vw, 5.1875rem); /* 83 */
	padding-left: 13.16085%; /* 117 / 889 */
	padding-right: 7.87401%; /* 70 / 889 */
	font-size: var(--fs-list);
	line-height: var(--lh-list);
	letter-spacing: var(--ls-list);
	color: var(--c-ink);
	/* L'aplat du survol est un pseudo-élément : « isolation » garde son z-index
	   négatif dans la rangée. */
	position: relative;
	isolation: isolate;
	transition: color var(--t) 0.06s;
}

/* L'aplat balaie la rangée de la gauche vers la droite au lieu d'apparaître
   d'un bloc — même geste que les cartes et les liens fléchés. */
.home-expertises__link::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: var(--c-accent);
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform 0.5s var(--ease-reveal);
}

.home-expertises__label {
	flex: 1;
	transition: transform 0.5s var(--ease-reveal);
}

.home-expertises__item:hover .home-expertises__link {
	color: var(--c-light);
}

.home-expertises__item:hover .home-expertises__link::before {
	transform: scaleX(1);
}

.home-expertises__item:hover .home-expertises__label {
	transform: translate3d(6px, 0, 0);
}

.home-expertises__arrow {
	position: absolute;
	top: 50%;
	right: 3.37458%; /* 30 / 889 — la pastille (30 de large) tient dans les 70 px
	                    de padding de la ligne : le texte ne peut pas l'atteindre */
	/* Au repos la pastille attend 14 px à GAUCHE de sa place et avance au
	   survol : la faire attendre à droite la sortait de la fenêtre à 360 px. */
	transform: translate(-14px, -50%);
	display: grid;
	place-items: center;
	width: var(--dot);
	height: var(--dot);
	border: var(--rule) solid currentColor;
	border-radius: 50%;
	opacity: 0;
	/* La pastille est au bout de la rangée : elle n'apparaît qu'une fois le
	   balayage arrivé jusqu'à elle, sinon elle serait claire sur clair. */
	transition:
		opacity 0.25s var(--ease) 0.18s,
		transform 0.5s var(--ease-reveal);
}

.home-expertises__arrow svg {
	width: 12px;
	height: 24px;
}

.home-expertises__item:hover .home-expertises__arrow {
	opacity: 1;
	transform: translate(0, -50%);
}

/* ───────────────────── Publications — y 2071 → 2830 (759) ────────────────── */

.home-publications {
	display: grid;
	grid-template-columns:
		2.89352%   /* 50  gouttière */
		24.18981%  /* 418 bloc texte */
		6.82870%   /* 118 */
		20.25463%  /* 350 carte */
		1.21528%   /* 21 */
		20.25463%
		1.21528%
		20.25463%
		2.89352%;  /* 50 */
	padding-top: clamp(3.75rem, 10.7639vw, 11.625rem);    /* 186 — haut des cartes */
	padding-bottom: clamp(3.75rem, 10.7639vw, 11.625rem); /* 186 */
}

.home-publications__head {
	grid-column: 2;
	padding-top: clamp(0px, 0.6366vw, 11px); /* 197 − 186 */
}

.home-publications__title {
	margin-top: clamp(1rem, 1.8519vw, 2rem); /* 32 */
}

.home-publications__text {
	margin-top: clamp(1rem, 1.8519vw, 2rem); /* 32 */
}

.home-publications__cta {
	display: flex;
	margin-top: clamp(1.25rem, 2.0255vw, 2.1875rem); /* 35 */
}

.home-publications__card:nth-of-type(1) { grid-column: 4; }
.home-publications__card:nth-of-type(2) { grid-column: 6; }
.home-publications__card:nth-of-type(3) { grid-column: 8; }

/* ─────────────────────── Bandeau — y 2830 → 3467 (637) ──────────────────── */

.home-band {
	display: block;
	aspect-ratio: 1728 / 637;
	overflow: hidden;
}

.home-band img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* ───────────────────────── Équipe — y 3467 → 4439 (972) ─────────────────── */

.home-team__head {
	padding-top: clamp(3rem, 6.0185vw, 6.5rem); /* 104 */
	text-align: center;
}

.home-team__title {
	max-width: 27.77778%; /* 480 */
	margin-top: clamp(1rem, 1.7940vw, 1.9375rem); /* 31 */
	margin-inline: auto;
}

.home-team__text {
	max-width: 21.64352%; /* 374 */
	margin-top: clamp(1rem, 1.7940vw, 1.9375rem); /* 31 */
	margin-inline: auto;
}

.home-team__cta {
	display: flex;
	justify-content: center;
	margin-top: clamp(1rem, 1.7940vw, 1.9375rem); /* 31 */
}

.home-team__grid {
	display: grid;
	grid-template-columns:
		29.80324%  /* 0 → 515 */
		20.19676%  /* 349 */
		20.25463%  /* 350 */
		29.74537%; /* 1214 → 1728 */
	margin-top: clamp(3rem, 6.0764vw, 6.5625rem); /* 105 */
}

.home-team__member {
	grid-row: 1;
	padding-top: clamp(3rem, 9.4907vw, 10.25rem); /* 164 */
}

.home-team__member--left {
	grid-column: 1;
	padding-right: 10.87379%; /* 56 sur une cellule de 515 */
	text-align: right;
	box-shadow: inset calc(-1 * var(--rule)) 0 0 var(--c-line);
}

.home-team__member--right {
	grid-column: 4;
	padding-left: 10.89494%; /* 56 sur une cellule de 514 */
	box-shadow: inset var(--rule) 0 0 var(--c-line);
}

.home-team__name {
	margin-top: clamp(0.5rem, 0.6366vw, 0.6875rem); /* 11 */
	font-size: var(--fs-card);
	line-height: var(--lh-card);
	letter-spacing: var(--ls-card);
	color: var(--c-ink);
}

.home-team__role {
	margin-top: clamp(0.25rem, 0.2894vw, 0.3125rem); /* 5 */
}

.home-team__member--left .home-team__badge,
.home-team__member--left .home-team__role { margin-left: auto; }
.home-team__member--left .home-team__role { max-width: 409px; }
.home-team__member--right .home-team__role { max-width: 374px; }

.home-team__photo {
	grid-row: 1;
	position: relative;
	overflow: hidden;
	aspect-ratio: 349 / 455;
}

.home-team__photo--left { grid-column: 2; }
.home-team__photo--right { grid-column: 3; aspect-ratio: 350 / 455; }
.home-team__member--left { grid-column: 1; }
.home-team__member--right { grid-column: 4; }

.home-team__photo img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* ──────────────────────── Services — y 4439 → 5275 (836) ─────────────────── */

.home-services__head {
	padding-top: clamp(3.75rem, 8.3912vw, 9.0625rem); /* 145 */
	text-align: center;
}

.home-services__title {
	max-width: 21.00694%; /* 363 */
	margin-top: clamp(1rem, 1.8519vw, 2rem); /* 32 */
	margin-inline: auto;
}

.home-services__grid {
	display: grid;
	grid-template-columns:
		2.54630%   /* 44 */
		22.33796%  /* 386 */
		1.90972%   /* 33 */
		22.33796%
		1.90972%
		22.33796%
		1.90972%
		22.33796%
		2.37269%;  /* 41 */
	margin-top: clamp(2.5rem, 4.4560vw, 4.8125rem);     /* 77 */
	margin-bottom: clamp(3.75rem, 8.5648vw, 9.25rem);   /* 148 */
}

.home-services__card:nth-of-type(1) { grid-column: 2; }
.home-services__card:nth-of-type(2) { grid-column: 4; }
.home-services__card:nth-of-type(3) { grid-column: 6; }
.home-services__card:nth-of-type(4) { grid-column: 8; }

/* ─────────────────────────────── Réagencements ───────────────────────────── */

@media (max-width: 1199px) {
	/* Titres centrés sans gouttière propre : ils touchaient les bords à 375. */
	.home-team__title,
	.home-team__text {
		padding-inline: var(--gutter-text);
	}

	.home-hero,
	.home-expertises {
		grid-template-columns: 1fr;
	}

	.home-hero__text {
		padding-block: clamp(2.5rem, 6vw, 4rem) clamp(2.5rem, 6vw, 4rem);
		/* Le bloc allait jusqu'au bord droit de la fenêtre : le titre s'en
		   approchait à 5 px en 375, sous la gouttière de 16 px. */
		padding-right: var(--gutter-text);
	}

	.home-hero__title { max-width: 32ch; }
	.home-hero__media { aspect-ratio: 854 / 529; }

	.home-expertises__media {
		min-height: 0;
		aspect-ratio: 1 / 1; /* le sujet est vertical : un bandeau paysage le coupait */
	}

	.home-expertises__head {
		padding-top: clamp(2.5rem, 6vw, 4rem);
		padding-left: var(--gutter-text);
		padding-right: var(--gutter-text);
	}

	.home-expertises__title,
	.home-expertises__intro { max-width: 34ch; }

	.home-expertises__list { margin-top: clamp(2rem, 5vw, 3.5rem); }

	.home-expertises__link {
		min-height: 0;
		padding-block: clamp(1rem, 3.5vw, 1.5rem);
		padding-inline: var(--gutter-text);
	}

	.home-expertises__item:hover::before,
	.home-expertises__item:hover + .home-expertises__item::before {
		left: 0;
	}

	.home-intro { padding-inline: var(--gutter-text); }

	.home-intro__text,
	.home-team__title,
	.home-team__text,
	.home-services__title {
		max-width: 46ch;
	}

	.home-publications {
		grid-template-columns: repeat(2, 1fr);
		gap: clamp(1.5rem, 3vw, 2.5rem);
		padding-inline: var(--gutter-text);
		padding-block: clamp(3rem, 7vw, 5rem);
	}

	.home-publications__head { grid-column: 1 / -1; padding-top: 0; }
	.home-publications__card:nth-of-type(1),
	.home-publications__card:nth-of-type(2),
	.home-publications__card:nth-of-type(3) { grid-column: auto; }

	.home-team__grid {
		grid-template-columns: repeat(2, 1fr);
		column-gap: clamp(1.5rem, 3vw, 2.5rem);
		padding-inline: var(--gutter-text);
		padding-block: clamp(2rem, 5vw, 3.5rem);
	}

	.home-team__photo--left { grid-column: 1; grid-row: 1; }
	.home-team__photo--right { grid-column: 2; grid-row: 1; }
	.home-team__member--left { grid-column: 1; grid-row: 2; text-align: left; padding-right: 0; box-shadow: none; }
	.home-team__member--right { grid-column: 2; grid-row: 2; padding-left: 0; box-shadow: none; }
	.home-team__member { padding-top: clamp(1.5rem, 3vw, 2.5rem); }
	.home-team__member--left .home-team__badge,
	.home-team__member--left .home-team__role { margin-left: 0; }

	.home-services__grid {
		grid-template-columns: repeat(2, 1fr);
		gap: clamp(1.5rem, 3vw, 2.5rem);
		padding-inline: var(--gutter);
		margin-bottom: clamp(3rem, 7vw, 5rem);
	}

	.home-services__card:nth-of-type(1),
	.home-services__card:nth-of-type(2),
	.home-services__card:nth-of-type(3),
	.home-services__card:nth-of-type(4) { grid-column: auto; }
}

@media (max-width: 767px) {
	.home-publications,
	.home-team__grid,
	.home-services__grid {
		grid-template-columns: 1fr;
	}

	.home-team__photo--left,
	.home-team__photo--right,
	.home-team__member--left,
	.home-team__member--right { grid-column: 1; grid-row: auto; }

	/* Empilés, les deux membres se touchaient : on sépare et on borne le
	   portrait, qui écrasait tout à pleine largeur. */
	/* Largeur explicite : en grille, une marge « auto » annule l'étirement, et
	   l'image étant en absolu, le portrait s'effondrait à 0. */
	.home-team__photo {
		width: min(100%, 260px);
		margin-inline: auto;
	}

	.home-team__member {
		text-align: center;
	}

	.home-team__member--left .home-team__badge,
	.home-team__member--right .home-team__badge {
		margin-inline: auto;
	}

	.home-team__photo--right {
		margin-top: clamp(2.5rem, 9vw, 3.5rem);
	}
	.home-team__member--left .home-team__role,
	.home-team__member--right .home-team__role { max-width: none; }

	.home-band { aspect-ratio: 4 / 3; }
}
