/* ==========================================================================
   Page d'accueil (maquette 01_ACCUEIL_REFERENCE.png)
   Ordre : hero, preuves, expertises, entreprise, méthode, secteurs, réalisations, équipes, CTA.
   Desktop de référence : 1440 px. Tablette 768-1199. Mobile 360-767.
   ========================================================================== */

.home .em-main > :first-child { padding-top: 0; } /* le hero gère lui-même l'espace sous l'en-tête */

/* Étiquette « Photo provisoire » (préproduction uniquement, ajoutée par em_picture()) */
.em-media-tag {
	position: absolute;
	right: 10px;
	bottom: 10px;
	z-index: 3;
	padding: 0.2rem 0.5rem;
	border-radius: var(--em-radius-xs);
	background: rgb(2 19 20 / 0.72);
	color: #fff;
	font: 700 0.625rem/1.3 var(--em-font-sans);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	pointer-events: none;
}

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

/* En-tête de section de l'accueil (titre à gauche, lien + flèches à droite) */
.em-home-head {
	display: grid;
	gap: var(--em-space-m) var(--em-space-xl);
	margin-bottom: var(--em-space-l);
	align-items: end;
}
.em-home-head__title { font-size: var(--em-step-4); margin-top: 0.6rem; }
.em-home-head__intro { margin-top: 0.6rem; max-width: 36rem; color: var(--em-text-muted); }
.em-home-head__aside { display: flex; align-items: center; gap: var(--em-space-m); flex-wrap: wrap; }
.em-home-head__aside--wide { display: grid; gap: 0.75rem; }
.em-home-head__aside--wide .em-home-head__intro { margin-top: 0; }
.em-home-head__links { display: flex; align-items: center; gap: var(--em-space-m); flex-wrap: wrap; }
@media (min-width: 1024px) {
	.em-home-head { grid-template-columns: minmax(0, 1fr) auto; }
	.em-home-head__aside--wide { grid-template-columns: minmax(0, 30rem) auto; align-items: center; column-gap: var(--em-space-xl); }
}

.em-carousel-nav { display: flex; gap: 0.5rem; }
.em-carousel-nav[hidden] { display: none; }

/* ==========================================================================
   H01 : HERO
   ========================================================================== */
.em-hero {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	min-height: clamp(640px, 92svh, 920px);
	display: flex;
	color: #fff;
	background: var(--em-night-900);
}
.em-hero__media { position: absolute; inset: 0; z-index: -2; }
.em-hero__media .em-pic img,
.em-hero__video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 62% 40%;
}
.em-hero__video { opacity: 0; transition: opacity 1.2s var(--em-ease-out); }
.em-hero__video.is-playing { opacity: 1; }
.em-hero__media .em-media-tag { bottom: auto; top: calc(var(--em-header-h) + 12px); right: var(--em-gutter); }
@media (prefers-reduced-motion: no-preference) {
	.em-hero__media .em-pic img { animation: em-hero-zoom 2.6s var(--em-ease-out) both; }
}
@keyframes em-hero-zoom { from { transform: scale(1.08); } to { transform: scale(1); } }

.em-hero__shade {
	position: absolute;
	inset: 0;
	z-index: -1;
	background:
		linear-gradient(90deg, rgb(2 19 20 / 0.94) 0%, rgb(2 19 20 / 0.78) 30%, rgb(2 19 20 / 0.3) 58%, rgb(2 19 20 / 0.15) 72%, rgb(2 19 20 / 0.5) 100%),
		linear-gradient(180deg, rgb(2 19 20 / 0.55) 0%, rgb(2 19 20 / 0) 22%, rgb(2 19 20 / 0) 62%, rgb(2 19 20 / 0.85) 100%);
}

.em-hero__inner {
	position: relative;
	display: grid;
	align-items: end;
	gap: var(--em-space-l);
	padding-top: calc(var(--em-header-h) + clamp(2.5rem, 6vh, 5rem));
	padding-bottom: clamp(2rem, 5vh, 3.5rem);
}
@media (min-width: 1024px) {
	.em-hero__inner { grid-template-columns: minmax(0, 1fr) minmax(16rem, 22rem); align-items: end; }
}

.em-hero__content { max-width: 40rem; }
.em-hero__eyebrow { font-size: 0.75rem; }
.em-hero__eyebrow::before { display: none; }
.em-hero__title {
	margin-top: 1rem;
	font-size: clamp(2.6rem, 1.45rem + 3.4vw, 4.25rem);
	line-height: 1.0;
	letter-spacing: -0.022em;
	font-weight: 430;
	color: #fff;
	text-wrap: initial;
}
.em-hero__line { display: block; }
.em-hero__title .em-accent { color: var(--em-soft); }
.em-hero__intro { margin-top: var(--em-space-m); max-width: 31rem; font-size: var(--em-step-1); line-height: 1.55; color: rgb(255 255 255 / 0.86); }
.em-hero__actions { display: flex; flex-wrap: wrap; gap: 0.85rem; margin-top: var(--em-space-l); }
.em-hero__foot { display: flex; align-items: center; gap: var(--em-space-m); margin-top: var(--em-space-l); }
.em-hero__foot::before { content: ""; width: clamp(2rem, 6vw, 5.5rem); height: 1px; background: rgb(255 255 255 / 0.45); margin-left: calc(-1 * clamp(0rem, 3vw, 6rem)); }

.em-hero__scroll {
	display: inline-flex;
	align-items: center;
	gap: 0.85rem;
	min-height: var(--em-hit);
	color: rgb(255 255 255 / 0.88);
	font-size: 0.875rem;
	font-weight: 600;
	text-decoration: none;
}
.em-hero__scroll-icon {
	display: grid;
	place-items: center;
	width: 2.75rem;
	height: 2.75rem;
	border: 1px solid rgb(255 255 255 / 0.55);
	border-radius: 50%;
}
.em-hero__scroll-icon .em-icon { width: 1.1rem; height: 1.1rem; }
@media (prefers-reduced-motion: no-preference) {
	.em-hero__scroll-icon .em-icon { animation: em-nudge 2.4s var(--em-ease-in-out) 2.4s infinite; }
}
@keyframes em-nudge { 0%, 70%, 100% { transform: none; } 80% { transform: translateY(3px); } 90% { transform: translateY(-1px); } }
.em-hero__scroll:hover .em-hero__scroll-icon { background: rgb(255 255 255 / 0.1); border-color: #fff; }

.em-hero__video-toggle {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	min-height: var(--em-hit);
	padding: 0 0.9rem;
	border: 1px solid rgb(255 255 255 / 0.4);
	border-radius: var(--em-radius-pill);
	background: transparent;
	color: #fff;
	font-size: 0.8125rem;
	font-weight: 600;
}
.em-hero__video-icon { width: 10px; height: 12px; border-left: 3px solid currentColor; border-right: 3px solid currentColor; }
.em-hero__video-toggle[aria-pressed="true"] .em-hero__video-icon { border: 0; width: 0; height: 0; border-left: 10px solid currentColor; border-top: 6px solid transparent; border-bottom: 6px solid transparent; }

/* Encart droit (maquette : texte éditorial + barre de valeurs) */
.em-hero__aside { display: none; }
@media (min-width: 1024px) {
	.em-hero__aside { display: grid; gap: var(--em-space-l); justify-items: end; padding-bottom: 0.25rem; }
}
.em-hero__card {
	position: relative;
	max-width: 15rem;
	padding-left: 1.4rem;
	font-family: var(--em-font-display);
	font-size: clamp(1.25rem, 0.9rem + 0.8vw, 1.6rem);
	line-height: 1.25;
	color: #fff;
}
.em-hero__card::before { content: ""; position: absolute; left: 0; top: 0.2em; bottom: 0.2em; width: 1px; background: linear-gradient(var(--em-copper), rgb(255 255 255 / 0.2)); }
.em-hero__values {
	display: flex;
	border: 1px solid rgb(111 208 196 / 0.55);
	border-radius: var(--em-radius-s);
	background: rgb(2 19 20 / 0.45);
	backdrop-filter: blur(8px);
}
.em-hero__values li { padding: 0.85rem 1.1rem; font-size: 0.8125rem; font-weight: 600; color: rgb(255 255 255 / 0.9); }
.em-hero__values li + li { border-left: 1px solid rgb(255 255 255 / 0.18); }

/* Séquence d'entrée (le contenu est visible au repos ; aucune animation en mouvement réduit) */
@media (prefers-reduced-motion: no-preference) {
	.em-hero__eyebrow, .em-hero__line, .em-hero__intro, .em-hero__actions, .em-hero__foot, .em-hero__aside {
		animation: em-hero-in 900ms var(--em-ease-out) both;
		animation-delay: calc(180ms + var(--i, 0) * 110ms);
	}
}
@keyframes em-hero-in { from { opacity: 0; transform: translate3d(0, 26px, 0); } }

@media (max-width: 767px) {
	.em-hero { min-height: max(600px, 100svh); }
	.em-hero__media .em-pic img { object-position: 50% 40%; }
	.em-hero__shade { background: linear-gradient(180deg, rgb(2 19 20 / 0.65) 0%, rgb(2 19 20 / 0.35) 30%, rgb(2 19 20 / 0.82) 62%, rgb(2 19 20 / 0.96) 100%); }
	.em-hero__actions .em-btn { flex: 1 1 100%; }
	.em-hero__foot::before { display: none; }
}

/* ==========================================================================
   H02 : PREUVES QUALITATIVES
   ========================================================================== */
.em-proofs { border-bottom: 1px solid var(--em-line); }
.em-proofs__list { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); min-width: 0; padding-block: clamp(1.1rem, 2vw, 1.6rem); }
.em-proofs__item { display: flex; align-items: center; gap: 1rem; padding: 0.6rem var(--em-space-m); }
@media (min-width: 768px) {
	.em-proofs__item + .em-proofs__item { border-left: 1px solid var(--em-line); }
}
@media (max-width: 767px) {
	.em-proofs__list { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0.5rem 0.5rem; }
	.em-proofs__item { padding-inline: 0; gap: 0.55rem; min-width: 0; }
	.em-proofs__icon { width: 2.5rem; height: 2.5rem; }
	.em-proofs__label { font-size: 0.8125rem; min-width: 0; }
}
.em-proofs__icon {
	display: grid;
	place-items: center;
	flex: none;
	width: 3rem;
	height: 3rem;
	border: 1px solid rgb(7 92 92 / 0.25);
	border-radius: 50%;
	background: rgb(7 92 92 / 0.06);
	color: var(--em-deep);
}
.em-proofs__icon .em-icon { width: 1.35rem; height: 1.35rem; }
.em-proofs__label { font-size: 0.875rem; font-weight: 650; line-height: 1.35; color: var(--em-ink); }

/* ==========================================================================
   H03 : EXPERTISES EN PANNEAUX
   ========================================================================== */
.em-xp { padding-bottom: var(--em-space-2xl); }
.em-xp__viewport { max-width: var(--em-container); margin-inline: auto; padding-inline: var(--em-gutter); }
.em-xp__track { display: flex; gap: 0.75rem; }
.em-xp__item { flex: 1 1 0; min-width: 0; transition: flex-grow 600ms var(--em-ease-out); }
.em-xp__panel {
	position: relative;
	isolation: isolate;
	display: flex;
	align-items: flex-end;
	height: clamp(19rem, 22vw, 22.5rem);
	border-radius: var(--em-radius-s);
	overflow: hidden;
	color: #fff;
	text-decoration: none;
	background: var(--em-night-800);
	box-shadow: 0 10px 30px rgb(4 29 31 / 0.14);
}
.em-xp__media { position: absolute; inset: 0; z-index: -2; }
.em-xp__media img { transition: transform 900ms var(--em-ease-out); }
.em-xp__panel::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(180deg, rgb(2 19 20 / 0.05) 25%, rgb(2 19 20 / 0.55) 58%, rgb(2 19 20 / 0.94) 100%);
	transition: background 600ms var(--em-ease-out);
}
.em-xp__body {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: end;
	gap: 0.55rem 0.6rem;
	width: 100%;
	padding: 1rem;
}
.em-xp__icon { grid-column: 1; grid-row: 1; align-self: center; }
.em-xp__icon .em-icon { width: 1.6rem; height: 1.6rem; }
.em-xp__title { grid-column: 1 / -1; grid-row: 2; font-family: var(--em-font-display); font-size: clamp(1.05rem, 0.8rem + 0.45vw, 1.25rem); line-height: 1.12; font-weight: 430; hyphens: manual; }
.em-xp__text {
	grid-column: 1 / -1;
	grid-row: 3;
	font-size: 0.8125rem;
	line-height: 1.45;
	color: rgb(255 255 255 / 0.85);
	max-height: 0;
	opacity: 0;
	overflow: hidden;
	transition: max-height 600ms var(--em-ease-out), opacity 400ms var(--em-ease-out);
}
.em-xp__arrow { grid-column: 2; grid-row: 1; width: 2rem; height: 2rem; }
.em-xp__media .em-media-tag { top: 10px; bottom: auto; }

/* Desktop : le panneau survolé / focalisé s'élargit et révèle son texte */
@media (min-width: 1200px) and (hover: hover) {
	.em-xp__track:hover .em-xp__item:hover,
	.em-xp__item:focus-within { flex-grow: 1.9; }
	.em-xp__item:hover .em-xp__text,
	.em-xp__item:focus-within .em-xp__text { max-height: 7rem; opacity: 1; }
	.em-xp__item:hover .em-xp__media img,
	.em-xp__item:focus-within .em-xp__media img { transform: scale(1.06); }
	.em-xp__item:hover .em-round-arrow,
	.em-xp__item:focus-within .em-round-arrow { background: var(--em-copper-600); border-color: var(--em-copper-600); }
	.em-xp__item:hover .em-xp__panel::after { background: linear-gradient(180deg, rgb(2 19 20 / 0.1) 15%, rgb(2 19 20 / 0.7) 55%, rgb(2 19 20 / 0.96) 100%); }
}
@media (min-width: 1200px) and (hover: none) {
	.em-xp__text { max-height: 7rem; opacity: 1; }
}
.em-xp__panel:focus-visible { outline-offset: 4px; }

/* Carrousel tactile sous 1200 px : défilement natif + scroll-snap */
@media (max-width: 1199px) {
	.em-xp__viewport { padding-inline: 0; }
	.em-xp__track {
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		scroll-padding-inline: var(--em-gutter);
		padding-inline: var(--em-gutter);
		padding-bottom: 0.5rem;
		scrollbar-width: none;
	}
	.em-xp__track::-webkit-scrollbar { display: none; }
	.em-xp__item { flex: 0 0 clamp(15rem, 42vw, 19rem); scroll-snap-align: start; }
	.em-xp__panel { height: clamp(22rem, 64vw, 26rem); }
	.em-xp__text { max-height: none; opacity: 1; }
}
@media (min-width: 1200px) {
	.em-xp .em-carousel-nav { display: none; }
}

/* ==========================================================================
   H04 : ENTREPRISE ET GROUPE
   ========================================================================== */
.em-co { padding-top: 0; }
.em-co__grid { display: grid; gap: var(--em-space-l); align-items: stretch; }
@media (min-width: 1200px) {
	.em-co__grid { grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.55fr) minmax(0, 0.62fr); gap: var(--em-space-m); }
}
.em-co__text { display: grid; align-content: center; gap: var(--em-space-s); padding-block: var(--em-space-m); justify-items: start; }
.em-co__title { font-size: clamp(1.9rem, 1.4rem + 1.5vw, 2.6rem); line-height: 1.08; }
.em-co__title .em-accent { color: var(--em-deep); }
.em-co__lead { color: var(--em-ink-muted); font-size: 0.9375rem; margin-bottom: var(--em-space-xs); }

.em-co__visual { position: relative; display: grid; min-height: 26rem; border-radius: var(--em-radius-s); overflow: hidden; background: var(--em-night-800); }
@media (min-width: 768px) {
	.em-co__visual { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); }
}
.em-co__photo { position: relative; min-height: 20rem; }
.em-co__assets {
	display: grid;
	align-content: center;
	padding: var(--em-space-l) var(--em-space-m);
	background: linear-gradient(180deg, rgb(5 74 74 / 0.96), rgb(4 29 31 / 0.98));
}
.em-co__assets li { display: grid; gap: 0.2rem; padding-block: 1rem; }
.em-co__assets li + li { border-top: 1px solid rgb(255 255 255 / 0.16); }
.em-co__assets strong { font-family: var(--em-font-display); font-size: 1.3rem; font-weight: 430; line-height: 1.15; }
.em-co__assets span { font-size: 0.8125rem; color: rgb(255 255 255 / 0.78); }

.em-co__group {
	position: relative;
	display: grid;
	align-content: start;
	gap: 0.85rem;
	padding: var(--em-space-l) var(--em-space-m);
	border-radius: var(--em-radius-s);
	background: linear-gradient(160deg, #fbf8f1, var(--em-cream));
	overflow: hidden;
}
.em-co__leaves { position: absolute; right: -14px; top: -6px; width: 92px; height: auto; color: var(--em-soft); opacity: 0.45; pointer-events: none; }
.em-co__group-label { font-size: 0.8125rem; color: var(--em-ink-muted); line-height: 1.4; }
.em-co__group-label span { font-size: 1rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--em-ink); font-weight: 600; }
.em-co__group-logo img { width: 9.5rem; }
.em-co__group-text { font-size: 0.875rem; color: var(--em-ink-muted); }

/* ==========================================================================
   H05 : MÉTHODE ET OUTILS
   ========================================================================== */
.em-method { position: relative; isolation: isolate; overflow: hidden; }
.em-method__bg {
	position: absolute;
	inset: 0;
	z-index: -1;
	background:
		radial-gradient(60% 90% at 90% 20%, rgb(111 208 196 / 0.22), transparent 60%),
		radial-gradient(50% 70% at 0% 100%, rgb(7 92 92 / 0.5), transparent 70%),
		linear-gradient(120deg, #072a30 0%, var(--em-night) 55%, #06343a 100%);
}
.em-method__head { display: grid; gap: var(--em-space-m) var(--em-space-xl); margin-bottom: var(--em-space-xl); }
@media (min-width: 1024px) {
	.em-method__head { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); align-items: end; }
	.em-method__intro { padding-left: var(--em-space-xl); border-left: 1px solid rgb(255 255 255 / 0.2); }
}
.em-method__title { font-size: clamp(2rem, 1.5rem + 1.5vw, 2.9rem); margin-top: 0.6rem; max-width: 24ch; }
.em-method__intro { color: rgb(255 255 255 / 0.8); max-width: 34rem; }

.em-method__grid { display: grid; gap: var(--em-space-m); }
@media (min-width: 1200px) {
	.em-method__grid { grid-template-columns: minmax(0, 1fr) minmax(17rem, 0.32fr); align-items: center; }
}
.em-method__steps { display: grid; gap: 1.6rem; counter-reset: none; }
@media (min-width: 768px) { .em-method__steps { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1200px) { .em-method__steps { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.em-method__step { position: relative; }
@media (min-width: 1200px) {
	.em-method__step + .em-method__step::before {
		content: "";
		position: absolute;
		left: -1.35rem;
		top: 50%;
		width: 1.1rem;
		height: 1.1rem;
		background: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-opacity='.7' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h15'/%3E%3Cpath d='m13 6 6 6-6 6'/%3E%3C/svg%3E");
	}
}
.em-method__card {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	grid-template-rows: auto auto;
	gap: 1.1rem 1rem;
	height: 100%;
	min-height: 12.5rem;
	align-content: space-between;
	padding: 1.4rem 1.25rem;
	border: 1px solid rgb(255 255 255 / 0.16);
	border-radius: var(--em-radius-s);
	background: rgb(255 255 255 / 0.035);
	color: #fff;
	text-decoration: none;
	transition: background-color var(--em-dur-base), border-color var(--em-dur-base), transform var(--em-dur-base) var(--em-ease-out);
}
a.em-method__card:hover { background: rgb(255 255 255 / 0.07); border-color: rgb(111 208 196 / 0.6); transform: translateY(-3px); }
.em-method__head-row { grid-column: 1 / -1; display: flex; align-items: center; gap: 0.9rem; }
.em-method__num { display: block; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.06em; color: rgb(255 255 255 / 0.7); }
.em-method__step-title { display: block; font-family: var(--em-font-display); font-size: 1.45rem; line-height: 1.1; }
.em-method__text { font-size: 0.8125rem; line-height: 1.5; color: rgb(255 255 255 / 0.8); align-self: end; }
.em-method__arrow { align-self: end; width: 2.1rem; height: 2.1rem; }
.em-method .em-icon-circle { width: 3.1rem; height: 3.1rem; }

.em-method__tools {
	display: grid;
	align-content: start;
	gap: 1rem;
	padding: 1.4rem;
	border: 1px solid rgb(255 255 255 / 0.18);
	border-radius: var(--em-radius-m);
	background: linear-gradient(160deg, rgb(255 255 255 / 0.08), rgb(255 255 255 / 0.02));
	backdrop-filter: blur(10px);
}
.em-method__tools-label { font-size: 0.75rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--em-soft); }
.em-method__tool { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 0.85rem; align-items: start; }
.em-method__tool-mark {
	display: grid;
	place-items: center;
	width: 2.5rem;
	height: 2.5rem;
	border-radius: var(--em-radius-s);
	background: rgb(255 255 255 / 0.92);
	color: var(--em-deep);
	font-weight: 800;
	font-size: 0.875rem;
}
.em-method__tool-name { font-weight: 700; }
.em-method__tool-name span { margin-left: 0.4rem; font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--em-copper); }
.em-method__tool-text { font-size: 0.8125rem; color: rgb(255 255 255 / 0.78); }
.em-method__checks { display: grid; gap: 0.45rem; padding-top: 0.9rem; border-top: 1px solid rgb(255 255 255 / 0.16); }
.em-method__checks li { display: flex; align-items: center; gap: 0.55rem; font-size: 0.8125rem; font-weight: 600; }
.em-method__checks .em-icon { width: 1rem; height: 1rem; color: var(--em-soft); }

/* ==========================================================================
   H06 : SECTEURS
   ========================================================================== */
.em-sect__viewport { max-width: var(--em-container); margin-inline: auto; padding-inline: var(--em-gutter); }
.em-sect__track { display: grid; grid-template-columns: repeat(var(--em-sect-cols, 6), minmax(0, 1fr)); gap: 0.75rem; }
.em-sect__tile {
	position: relative;
	isolation: isolate;
	display: flex;
	align-items: flex-end;
	aspect-ratio: 4 / 3.2;
	border-radius: var(--em-radius-s);
	overflow: hidden;
	color: #fff;
	text-decoration: none;
	background: var(--em-night-800);
}
.em-sect__media { position: absolute; inset: 0; z-index: -2; }
.em-sect__media img { transition: transform 900ms var(--em-ease-out); }
.em-sect__media .em-media-tag { top: 10px; bottom: auto; }
.em-sect__tile::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, transparent 40%, rgb(2 19 20 / 0.88) 100%); }
.em-sect__label { display: flex; align-items: center; gap: 0.6rem; width: 100%; padding: 0.85rem; }
.em-sect__icon .em-icon { width: 1.3rem; height: 1.3rem; }
.em-sect__name { font-family: var(--em-font-display); font-size: 1.15rem; line-height: 1.1; }
.em-sect__arrow { margin-left: auto; width: 1.9rem; height: 1.9rem; }
@media (hover: hover) {
	.em-sect__tile:hover .em-sect__media img { transform: scale(1.06); }
	.em-sect__tile:hover .em-round-arrow { background: var(--em-copper-600); border-color: var(--em-copper-600); }
}
@media (min-width: 1200px) { .em-sect .em-carousel-nav { display: none; } }
@media (max-width: 1199px) {
	.em-sect__viewport { padding-inline: 0; }
	.em-sect__track {
		display: flex;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		scroll-padding-inline: var(--em-gutter);
		padding-inline: var(--em-gutter);
		scrollbar-width: none;
	}
	.em-sect__track::-webkit-scrollbar { display: none; }
	.em-sect__item { flex: 0 0 clamp(15rem, 40vw, 18rem); scroll-snap-align: start; }
}

/* ==========================================================================
   H07 : RÉALISATIONS ET RÉFÉRENCES
   ========================================================================== */
.em-proj { padding-top: 0; }
.em-proj__grid { display: grid; gap: var(--em-space-m); }
@media (min-width: 768px) { .em-proj__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1200px) {
	.em-proj__grid { grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.75fr) minmax(0, 0.78fr) minmax(0, 0.78fr); align-items: stretch; }
}
.em-proj__intro { display: grid; align-content: center; gap: 0.75rem; justify-items: start; }
.em-proj__title { font-size: var(--em-step-4); }
.em-proj__lead { color: var(--em-ink-muted); }
@media (min-width: 768px) and (max-width: 1199px) {
	.em-proj__intro, .em-proj__feature { grid-column: 1 / -1; }
}

.em-proj__feature { display: grid; border-radius: var(--em-radius-s); overflow: hidden; box-shadow: 0 14px 40px rgb(4 29 31 / 0.12); }
@media (min-width: 640px) { .em-proj__feature { grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); } }
.em-proj__feature-visual {
	position: relative;
	display: grid;
	place-items: center;
	min-height: 16rem;
	padding: var(--em-space-l);
	background: #fff;
}
.em-proj__feature-visual::before { content: ""; position: absolute; inset: auto 0 0; height: 38%; background: repeating-linear-gradient(90deg, rgb(17 43 48 / 0.045) 0 1px, transparent 1px 48px); pointer-events: none; }
.em-proj__feature-logo .em-ref-logo img { width: auto; max-width: min(15rem, 100%); max-height: 7rem; object-fit: contain; }
.em-proj__feature-sector { position: absolute; left: 1rem; top: 1rem; padding: 0.25rem 0.6rem; border: 1px solid var(--em-line); border-radius: var(--em-radius-pill); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--em-ink-muted); background: #fff; }
.em-proj__feature-logo.is-text, .em-proj__card-logo.is-text { font-family: var(--em-font-display); font-size: 1.6rem; text-align: center; color: var(--em-ink); }
.em-proj__feature-card { display: grid; align-content: center; gap: 0.75rem; padding: var(--em-space-l) var(--em-space-m); background: #fff; border-left: 1px solid var(--em-line); justify-items: start; }
.em-proj__feature-title { font-size: 1.6rem; }
.em-proj__site { font-size: 0.8125rem; font-weight: 600; color: var(--em-deep); }
.em-proj__works { display: grid; gap: 0.35rem; font-size: 0.875rem; color: var(--em-ink-muted); }
.em-proj__works li { position: relative; padding-left: 1rem; }
.em-proj__works li::before { content: ""; position: absolute; left: 0; top: 0.6em; width: 6px; height: 6px; border: 1px solid var(--em-copper-600); transform: rotate(45deg); }
.em-proj__works--compact { font-size: 0.8125rem; }

.em-proj__card { position: relative; display: grid; grid-template-rows: auto 1fr; border-radius: var(--em-radius-s); overflow: hidden; background: #fff; box-shadow: 0 10px 30px rgb(4 29 31 / 0.08); }
.em-proj__card-visual { display: grid; place-items: center; height: 8.5rem; padding: 1rem; background: #fff; border-bottom: 1px solid var(--em-line); }
.em-proj__card-logo .em-ref-logo img { width: auto; max-width: 10rem; max-height: 3.6rem; object-fit: contain; }
.em-proj__card-body { display: grid; align-content: start; gap: 0.5rem; padding: 1rem 1rem 3.4rem; }
.em-proj__card-title { font-size: 1.3rem; }
.em-proj__card-link { position: absolute; inset: 0; display: flex; align-items: flex-end; justify-content: flex-end; padding: 1rem; }
.em-proj__card-link .em-round-arrow { border-color: var(--em-line); color: var(--em-deep); }
.em-proj__card-link:hover .em-round-arrow { background: var(--em-deep); color: #fff; border-color: var(--em-deep); }

.em-clients {
	display: grid;
	gap: var(--em-space-m);
	margin-top: var(--em-space-xl);
	padding-top: var(--em-space-l);
	border-top: 1px solid var(--em-line);
}
@media (min-width: 1200px) {
	.em-clients { grid-template-columns: 10rem minmax(0, 1fr) auto; align-items: center; }
}
.em-clients__title { font-family: var(--em-font-display); font-size: 1.35rem; line-height: 1.15; }
.em-clients__list { display: grid; grid-template-columns: repeat(auto-fill, minmax(7.5rem, 1fr)); gap: 0.6rem; }
.em-clients__item { display: grid; place-items: center; height: 4.6rem; padding: 0.7rem; border: 1px solid var(--em-line); border-radius: var(--em-radius-s); background: #fff; }
.em-clients__item img { width: auto; max-width: 100%; max-height: 2.6rem; object-fit: contain; }

/* ==========================================================================
   H08 : ÉQUIPES ET ENGAGEMENTS
   ========================================================================== */
.em-teams { padding-bottom: 0; }
.em-teams__grid { display: grid; background: #fbf8f2; }
@media (min-width: 768px) { .em-teams__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1200px) { .em-teams__grid { grid-template-columns: 1.05fr 1fr 1.1fr 1.45fr; min-height: 21rem; } }
.em-teams__photo, .em-teams__visual { position: relative; min-height: 18rem; overflow: hidden; }
.em-teams__panel { display: grid; align-content: center; justify-items: start; gap: var(--em-space-s); padding: var(--em-space-l); background: linear-gradient(170deg, #0b3a3f, var(--em-night)); }
.em-teams__title { font-size: clamp(1.6rem, 1.2rem + 1vw, 2.1rem); line-height: 1.12; }
.em-teams__text { font-size: 0.875rem; color: rgb(255 255 255 / 0.82); }
.em-teams__features { display: grid; grid-template-columns: 1fr 1fr; align-content: center; gap: var(--em-space-m) var(--em-space-s); padding: var(--em-space-l) var(--em-space-m); background: #fbf8f2; }
.em-teams__features li { display: grid; justify-items: center; text-align: center; gap: 0.25rem; }
.em-teams__features strong { font-size: 0.875rem; color: var(--em-ink); }
.em-teams__features span:last-child { font-size: 0.75rem; color: var(--em-ink-muted); line-height: 1.35; }
.em-teams__icon { color: var(--em-deep); margin-bottom: 0.2rem; }
.em-teams__icon .em-icon { width: 1.8rem; height: 1.8rem; }
@media (min-width: 1200px) {
	.em-teams__visual { clip-path: polygon(14% 0, 100% 0, 100% 100%, 0 100%); }
}
.em-teams__visual::after { content: ""; position: absolute; inset: 0; background: linear-gradient(200deg, rgb(2 19 20 / 0.65), rgb(2 19 20 / 0.05) 55%); }
.em-teams__quote {
	position: absolute;
	right: var(--em-space-l);
	top: var(--em-space-l);
	z-index: 1;
	max-width: 17rem;
	font-family: var(--em-font-display);
	font-style: italic;
	font-size: clamp(1.25rem, 1rem + 0.7vw, 1.6rem);
	line-height: 1.25;
	color: #fff;
	text-align: right;
}
.em-teams__visual .em-media-tag { z-index: 2; }

/* ==========================================================================
   H09 : APPEL À L'ACTION FINAL
   ========================================================================== */
.em-cta { position: relative; isolation: isolate; overflow: hidden; background: linear-gradient(110deg, #025959, var(--em-night) 60%); }
.em-cta__media { position: absolute; inset: 0 0 0 auto; width: min(48%, 44rem); z-index: -2; }
.em-cta__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, #041d1f 0%, rgb(4 29 31 / 0.55) 35%, rgb(2 19 20 / 0.25) 100%); }
.em-cta__leaves { position: absolute; left: -30px; top: -20px; width: 200px; height: auto; color: var(--em-soft); opacity: 0.18; z-index: -1; }
.em-cta__inner {
	display: grid;
	gap: var(--em-space-m) var(--em-space-l);
	align-items: center;
	padding-block: var(--em-space-xl);
}
@media (min-width: 1200px) {
	.em-cta__inner { grid-template-columns: 9rem minmax(0, 1.25fr) auto minmax(0, 0.5fr); }
}
.em-cta__eyebrow { font-size: 0.6875rem; line-height: 1.6; }
.em-cta__eyebrow::before { display: none; }
.em-cta__title { font-size: clamp(1.8rem, 1.3rem + 1.6vw, 2.6rem); line-height: 1.1; max-width: 22ch; }
.em-cta__actions { display: flex; flex-wrap: wrap; gap: 0.75rem; }
.em-cta__note { font-family: var(--em-font-display); font-size: 1.15rem; line-height: 1.3; padding-left: 1rem; border-left: 1px solid rgb(255 255 255 / 0.4); max-width: 12rem; }
@media (max-width: 1023px) {
	.em-cta__media { width: 100%; opacity: 0.35; }
}

/* ==========================================================================
   Mouvement réduit : aucune transition de taille / zoom
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {
	.em-xp__item, .em-xp__media img, .em-sect__media img, .em-xp__text { transition: none !important; }
}
