/* ==========================================================================
   Pages intérieures (V5) : mêmes composants que l'accueil validé.
   Chaque mise en page = template-parts/sections/{layout}.php.
   Desktop de référence : 1440 px. Tablette 768-1199. Mobile 360-767.
   ========================================================================== */

.em-main > .em-hero--page:first-child { margin-top: 0; }

/* ---------- En-tête de section générique ---------- */
.em-sec__head { display: grid; gap: 0.6rem; max-width: 46rem; margin-bottom: var(--em-space-l); }
.em-sec__title { font-size: clamp(1.9rem, 1.45rem + 1.4vw, 2.75rem); line-height: 1.08; margin-top: 0.5rem; max-width: 24ch; }
.em-sec__intro { color: var(--em-text-muted); max-width: 40rem; }
.em-surface-night .em-sec__intro, .em-surface-deep .em-sec__intro { color: rgb(255 255 255 / 0.8); }
.em-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: var(--em-space-m); }

/* Note « section à confirmer » (préproduction uniquement) */
.em-section-flag {
	margin: 0;
	padding: 0.45rem var(--em-gutter);
	background: #fff4d6;
	border-block: 1px dashed #c9962c;
	color: #6b4b06;
	font-size: 0.8125rem;
	font-weight: 600;
	text-align: center;
}

/* ---------- Hero de page (H1 unique) ---------- */
.em-hero--page { min-height: clamp(460px, 64svh, 640px); }
.em-hero--page .em-hero__inner { grid-template-columns: minmax(0, 1fr); padding-bottom: clamp(2.5rem, 7vh, 4.5rem); }
.em-hero--page .em-hero__content { max-width: 46rem; }
.em-hero--page .em-breadcrumb { margin-bottom: var(--em-space-m); color: rgb(255 255 255 / 0.78); }
.em-hero--page .em-breadcrumb a { color: inherit; }
.em-hero__title--page { font-size: clamp(2.3rem, 1.4rem + 2.8vw, 3.75rem); line-height: 1.04; max-width: 20ch; }
.em-hero--page .em-hero__intro { max-width: 38rem; }
.em-hero--page .em-hero__actions:empty { display: none; }

/* ---------- Texte + photo ---------- */
.em-split__grid { display: grid; gap: var(--em-space-l) var(--em-space-2xl); align-items: center; }
@media (min-width: 1024px) {
	.em-split__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
	.em-split.is-reverse .em-split__media { order: -1; }
}
.em-split.no-media .em-split__grid { grid-template-columns: minmax(0, 1fr); max-width: 52rem; }
.em-split__body { display: grid; gap: var(--em-space-s); margin-top: var(--em-space-m); color: var(--em-ink-muted); }
.em-surface-night .em-split__body, .em-surface-deep .em-split__body { color: rgb(255 255 255 / 0.82); }
.em-split__media { position: relative; aspect-ratio: 4 / 3; border-radius: var(--em-radius-s); overflow: hidden; background: var(--em-night-800); box-shadow: 0 18px 50px rgb(4 29 31 / 0.14); }

/* ---------- Texte + liste de points ---------- */
.em-list__grid { display: grid; gap: var(--em-space-l) var(--em-space-2xl); }
@media (min-width: 1024px) {
	.em-list__grid { grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); align-items: start; }
	.em-list__head { position: sticky; top: calc(var(--em-header-h) + 1.5rem); }
}
.em-list__intro { margin-top: var(--em-space-s); color: var(--em-ink-muted); }
.em-list__items { display: grid; gap: 0; border-top: 1px solid var(--em-line); }
@media (min-width: 768px) {
	.em-list__items:not(:has(.has-text)) { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--em-space-l); }
}
.em-list__item { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 0.9rem; align-items: start; padding-block: 1.05rem; border-bottom: 1px solid var(--em-line); }
.em-list__icon { display: grid; place-items: center; width: 2.4rem; height: 2.4rem; border-radius: 50%; background: rgb(7 92 92 / 0.08); color: var(--em-deep); }
.em-list__icon .em-icon { width: 1.2rem; height: 1.2rem; }
.em-list__content { display: grid; gap: 0.25rem; align-self: center; }
.em-list__title { font-size: 1rem; line-height: 1.35; color: var(--em-ink); }
.em-list__text { font-size: 0.9375rem; color: var(--em-ink-muted); }
.em-surface-night .em-list__items, .em-surface-night .em-list__item,
.em-surface-deep .em-list__items, .em-surface-deep .em-list__item { border-color: rgb(255 255 255 / 0.16); }
.em-surface-night .em-list__title, .em-surface-deep .em-list__title { color: #fff; }
.em-surface-night .em-list__text, .em-surface-deep .em-list__text { color: rgb(255 255 255 / 0.78); }
.em-surface-night .em-list__icon, .em-surface-deep .em-list__icon { background: rgb(255 255 255 / 0.08); color: var(--em-soft); }

/* ---------- Cartes ---------- */
.em-cards__grid { display: grid; gap: var(--em-space-m); }
@media (min-width: 640px) { .em-cards__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1200px) { .em-cards__grid { grid-template-columns: repeat(var(--em-cards, 3), minmax(0, 1fr)); } }
.em-card {
	position: relative;
	display: grid;
	align-content: start;
	gap: 0.7rem;
	padding: 1.6rem 1.4rem;
	border: 1px solid var(--em-line);
	border-radius: var(--em-radius-s);
	background: #fff;
	transition: border-color var(--em-dur-base), box-shadow var(--em-dur-base), transform var(--em-dur-base) var(--em-ease-out);
}
.em-surface-white .em-card { background: var(--em-ivory); }
.em-card__eyebrow { font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--em-copper-700); }
.em-card__title { font-size: 1.35rem; line-height: 1.15; }
.em-card__title a { color: inherit; text-decoration: none; }
.em-card__title a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.em-card__text { font-size: 0.9375rem; color: var(--em-ink-muted); }
.em-card__arrow { justify-self: end; margin-top: auto; }
.em-card:has(a):hover { border-color: rgb(7 92 92 / 0.45); box-shadow: 0 14px 34px rgb(4 29 31 / 0.1); transform: translateY(-3px); }
.em-card:has(a:focus-visible) { outline: 2px solid var(--em-focus); outline-offset: 3px; }
.em-card:has(a:focus-visible) a { outline: none; }
.em-cards .em-actions { margin-top: var(--em-space-l); }

/* ---------- Cartes photo ---------- */
.em-pcards__grid { display: grid; gap: var(--em-space-m); }
@media (min-width: 768px) { .em-pcards__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1200px) { .em-pcards__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.em-pcard { 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-pcard__media { position: relative; aspect-ratio: 4 / 3; background: var(--em-night-800); }
.em-pcard__body { display: grid; align-content: start; gap: 0.5rem; padding: 1.3rem 1.3rem 1.5rem; }
.em-pcard__eyebrow { font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--em-copper-700); }
.em-pcard__title { font-size: 1.35rem; line-height: 1.15; }
.em-pcard__text { font-size: 0.9375rem; color: var(--em-ink-muted); }

/* ---------- Duo (deux blocs côte à côte) ---------- */
.em-duo__grid { display: grid; gap: var(--em-space-m); }
@media (min-width: 900px) { .em-duo__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.em-duo__item { display: grid; align-content: start; justify-items: start; gap: 0.8rem; padding: clamp(1.5rem, 3vw, 2.5rem); border-radius: var(--em-radius-s); background: var(--em-ivory); border: 1px solid var(--em-line); }
.em-duo__item:nth-child(2) { background: linear-gradient(160deg, #fbf8f1, var(--em-cream)); }
.em-duo__title { font-size: clamp(1.5rem, 1.2rem + 0.9vw, 2rem); line-height: 1.12; }
.em-duo__item p { color: var(--em-ink-muted); }

/* ---------- Méthode (page) ---------- */
.em-method--page .em-method__steps--page { gap: 1.6rem; }
@media (min-width: 1200px) {
	.em-method__steps--page { grid-template-columns: repeat(var(--em-steps, 4), minmax(0, 1fr)); }
}
.em-method--page .em-method__card { grid-template-columns: minmax(0, 1fr); min-height: 15rem; }
.em-method__lead { display: block; margin-bottom: 0.35rem; font-size: 0.9375rem; color: #fff; }
.em-method--page .em-method__text { font-size: 0.875rem; }

/* ---------- Outils (page) ---------- */
.em-tools { position: relative; isolation: isolate; overflow: hidden; }
.em-tools__grid { display: grid; gap: var(--em-space-l) var(--em-space-2xl); align-items: center; }
@media (min-width: 1024px) { .em-tools__grid { grid-template-columns: minmax(0, 1fr) minmax(18rem, 26rem); } }
.em-tools__text { display: grid; gap: var(--em-space-s); }
.em-tools__text > p { color: rgb(255 255 255 / 0.82); }
.em-surface-ivory .em-tools__text > p, .em-surface-white .em-tools__text > p, .em-surface-cream .em-tools__text > p { color: var(--em-ink-muted); }

/* ---------- Lignes alternées (secteurs) ---------- */
.em-row { display: grid; gap: var(--em-space-m) var(--em-space-2xl); align-items: center; scroll-margin-top: calc(var(--em-header-h) + 1rem); }
.em-row + .em-row { margin-top: var(--em-space-xl); padding-top: var(--em-space-xl); border-top: 1px solid var(--em-line); }
@media (min-width: 1024px) {
	.em-row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
	.em-row.is-reverse .em-row__media { order: 2; }
}
.em-row__media { position: relative; aspect-ratio: 16 / 10; border-radius: var(--em-radius-s); overflow: hidden; background: var(--em-night-800); }
.em-row__text { display: grid; gap: 0.8rem; justify-items: start; }
.em-row__title { font-size: clamp(1.6rem, 1.25rem + 1vw, 2.2rem); line-height: 1.1; }
.em-row__text p { color: var(--em-ink-muted); max-width: 34rem; }

/* ---------- Preuve (missions liées à une expertise) ---------- */
.em-proof__grid { display: grid; gap: var(--em-space-l) var(--em-space-2xl); }
@media (min-width: 1024px) { .em-proof__grid { grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); align-items: start; } }
.em-proof__head { display: grid; gap: var(--em-space-s); justify-items: start; }
.em-proof__head > p { color: var(--em-ink-muted); }
.em-proof__list { display: grid; gap: var(--em-space-m); }
@media (min-width: 768px) { .em-proof__list:has(> li:nth-child(2)) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ---------- Mission documentée (carte) ---------- */
.em-missions__grid { display: grid; gap: var(--em-space-m); }
@media (min-width: 768px) { .em-missions__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1200px) { .em-missions__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.em-missions__grid > li, .em-proof__list > li { display: grid; }
.em-mission { 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); scroll-margin-top: calc(var(--em-header-h) + 1rem); }
.em-surface-white .em-mission { border: 1px solid var(--em-line); box-shadow: none; }
.em-mission__visual { display: grid; place-items: center; height: 8.5rem; padding: 1rem 1.25rem; background: #fff; border-bottom: 1px solid var(--em-line); }
.em-mission__visual .em-ref-logo img { width: auto; max-width: min(11rem, 100%); max-height: 4rem; object-fit: contain; filter: none !important; }
.em-mission__name { font-family: var(--em-font-display); font-size: 1.5rem; line-height: 1.1; text-align: center; color: var(--em-ink); }
.em-mission__body { display: grid; align-content: start; gap: 0.55rem; padding: 1.2rem 1.2rem 1.4rem; }
.em-mission__sector { font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--em-copper-700); }
.em-mission__client { font-size: 1.3rem; line-height: 1.15; }
.em-mission__site { display: flex; gap: 0.4rem; align-items: flex-start; font-size: 0.8125rem; font-weight: 600; color: var(--em-deep); }
.em-mission__site .em-icon { flex: none; width: 1rem; height: 1rem; margin-top: 0.1rem; }
.em-mission .em-pending { justify-self: start; margin-top: 0.3rem; }

/* ---------- Références (23 logos couleur, filtres) ---------- */
.em-logos__filters { margin-bottom: var(--em-space-s); }
.em-logos__count { font-size: 0.8125rem; color: var(--em-ink-muted); margin-bottom: var(--em-space-m); }
.em-logos__group + .em-logos__group { margin-top: var(--em-space-l); }
.em-logos__group[hidden] { display: none; }
.em-logos__title { font-family: var(--em-font-display); font-size: 1.3rem; font-weight: 430; margin-bottom: 0.9rem; }
.em-logos__title span { font-family: var(--em-font-sans); font-size: 0.8125rem; color: var(--em-ink-muted); }
.em-logos__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(10.5rem, 1fr)); gap: 0.75rem; }
.em-logos__item { position: relative; display: grid; grid-template-rows: 1fr auto; gap: 0.5rem; padding: 0.9rem 0.9rem 0.75rem; border: 1px solid var(--em-line); border-radius: var(--em-radius-s); background: #fff; }
.em-logos__logo { display: grid; place-items: center; height: 5rem; }
.em-logos__logo img { width: auto; max-width: 100%; max-height: 3.4rem; object-fit: contain; filter: none !important; }
.em-logos__name { font-size: 0.75rem; font-weight: 600; text-align: center; color: var(--em-ink-muted); line-height: 1.3; }
.em-logos__item .em-pending { position: absolute; top: 0.4rem; right: 0.4rem; font-size: 0.625rem; }
@media (max-width: 479px) { .em-logos__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ---------- Bandeau (texte fort) ---------- */
.em-band { position: relative; isolation: isolate; overflow: hidden; background: linear-gradient(110deg, #025959, var(--em-deep) 70%); }
.em-band__leaves { position: absolute; right: -30px; bottom: -40px; width: 220px; height: auto; color: var(--em-soft); opacity: 0.16; z-index: -1; }
.em-band__grid { display: grid; gap: var(--em-space-m) var(--em-space-2xl); }
@media (min-width: 1024px) {
	.em-band__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: end; }
	.em-band__body { padding-left: var(--em-space-xl); border-left: 1px solid rgb(255 255 255 / 0.22); }
}
.em-band__body { display: grid; gap: var(--em-space-s); color: rgb(255 255 255 / 0.85); }
.em-band .em-actions { margin-top: var(--em-space-xs); }

/* ---------- Groupe Electrom (séparation stricte) ---------- */
.em-group__grid { display: grid; gap: var(--em-space-l) var(--em-space-2xl); align-items: center; }
@media (min-width: 1024px) { .em-group__grid { grid-template-columns: minmax(0, 0.7fr) minmax(0, 1.3fr); } }
.em-group__logo { display: grid; place-items: center; padding: var(--em-space-xl) var(--em-space-l); border-radius: var(--em-radius-s); background: #fff; border: 1px solid var(--em-line); }
.em-group__logo img { width: min(18rem, 100%); height: auto; }
.em-group__text { display: grid; gap: var(--em-space-s); justify-items: start; }
.em-group__text > p { color: var(--em-ink-muted); }

/* ---------- Contact + formulaire ---------- */
.em-contact { scroll-margin-top: var(--em-header-h); }
.em-contact__grid { display: grid; gap: var(--em-space-l); align-items: start; }
@media (min-width: 1024px) { .em-contact__grid { grid-template-columns: minmax(0, 0.75fr) minmax(0, 1.25fr); gap: var(--em-space-2xl); } }
.em-contact__info { display: grid; gap: var(--em-space-m); padding: clamp(1.5rem, 3vw, 2.5rem); border-radius: var(--em-radius-s); color: #fff; }
@media (min-width: 1024px) { .em-contact__info { position: sticky; top: calc(var(--em-header-h) + 1.5rem); } }
.em-contact__title { font-size: clamp(1.6rem, 1.3rem + 0.9vw, 2.1rem); line-height: 1.1; }
.em-contact__list { display: grid; gap: 1rem; }
.em-contact__list li { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 0.8rem; align-items: center; }
.em-contact__list a { color: #fff; font-weight: 700; font-size: 1.05rem; text-decoration: none; overflow-wrap: anywhere; }
.em-contact__list a:hover { text-decoration: underline; text-underline-offset: 3px; }
.em-contact__label { display: block; font-size: 0.75rem; letter-spacing: 0.08em; text-transform: uppercase; color: rgb(255 255 255 / 0.7); }
.em-contact__icon { display: grid; place-items: center; width: 2.6rem; height: 2.6rem; border-radius: 50%; background: rgb(255 255 255 / 0.1); color: var(--em-soft); }
.em-contact__icon .em-icon { width: 1.2rem; height: 1.2rem; }
.em-contact__next { display: grid; gap: 0.5rem; padding-top: var(--em-space-m); border-top: 1px solid rgb(255 255 255 / 0.2); font-size: 0.875rem; color: rgb(255 255 255 / 0.82); }
.em-contact__next-title { font-weight: 700; color: #fff; }
.em-contact__form { display: grid; gap: var(--em-space-m); padding: clamp(1.25rem, 3vw, 2.5rem); border-radius: var(--em-radius-s); background: #fff; border: 1px solid var(--em-line); }
.em-contact__form .em-sec__title { margin-top: 0.4rem; font-size: clamp(1.6rem, 1.3rem + 0.9vw, 2.1rem); }

.em-form { display: grid; gap: var(--em-space-m); }
.em-form__grid { display: grid; gap: 1.1rem 1.25rem; }
@media (min-width: 640px) { .em-form__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.em-form__full { grid-column: 1 / -1; }
.em-form fieldset { min-width: 0; }
.em-form legend { padding: 0; margin-bottom: 0.4rem; }
.em-opt { font-weight: 500; color: var(--em-text-muted); }
.em-form__hp { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }
.em-form__legal { font-size: 0.75rem; line-height: 1.5; color: var(--em-text-muted); }
.em-form__actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--em-space-s); }
.em-form-notice { display: block; padding: 1rem 1.1rem; border-radius: var(--em-radius-s); font-size: 0.9375rem; line-height: 1.45; }
.em-form-notice:focus { outline: 2px solid var(--em-focus); outline-offset: 2px; }
.em-form-notice.is-success { background: rgb(7 92 92 / 0.08); border: 1px solid rgb(7 92 92 / 0.35); color: var(--em-night); }
.em-form-notice.is-error { background: #fdecec; border: 1px solid #e3a3a6; color: #7c151b; }
.em-form-notice strong { display: block; margin-bottom: 0.2rem; }
.em-form .em-choice-cards { grid-template-columns: repeat(auto-fit, minmax(8.5rem, 1fr)); }

/* ---------- CTA de page ---------- */
@media (min-width: 1200px) {
	.em-cta__inner--page { grid-template-columns: minmax(0, 1.4fr) auto; }
	.em-cta__inner--page .em-cta__eyebrow { grid-column: 1 / -1; margin-bottom: -0.75rem; }
}
.em-cta__main { display: grid; gap: 0.6rem; }
.em-cta__text { color: rgb(255 255 255 / 0.82); max-width: 40rem; }
.em-cta .em-actions { margin-top: 0; }

/* ---------- Mobile ---------- */
@media (max-width: 767px) {
	.em-hero--page { min-height: 0; }
	.em-hero--page .em-hero__inner { padding-top: calc(var(--em-header-h) + 2.5rem); }
	.em-actions .em-btn { flex: 1 1 100%; justify-content: center; }
	.em-row__media, .em-split__media { aspect-ratio: 4 / 3; }
}

/* Références : titre de secteur à gauche, logos à droite (desktop) */
@media (min-width: 1024px) {
	.em-logos__group { display: grid; grid-template-columns: 13rem minmax(0, 1fr); gap: var(--em-space-l); align-items: start; padding-top: var(--em-space-m); border-top: 1px solid var(--em-line); }
	.em-logos__group + .em-logos__group { margin-top: var(--em-space-m); }
	.em-logos__title { margin: 0; padding-top: 0.4rem; }
	.em-logos__title span { display: block; margin-top: 0.2rem; }
	.em-logos__grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}
@media (min-width: 1200px) {
	.em-proof__list:has(> li:nth-child(3)):not(:has(> li:nth-child(4))) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* Visuel graphique de remplacement (production sans photo validée) */
.em-brand-visual { position: relative; display: block; width: 100%; height: 100%; min-height: 100%; overflow: hidden; }
.em-brand-visual__art { position: absolute; inset: 0; width: 100%; height: 100%; }
.em-brand-visual--deep { background: radial-gradient(80% 90% at 85% 15%, rgb(111 208 196 / 0.35), transparent 60%), linear-gradient(135deg, #025959, var(--em-night)); color: #cfe9e9; }
.em-brand-visual--night { background: radial-gradient(70% 80% at 10% 90%, rgb(7 92 92 / 0.55), transparent 70%), linear-gradient(160deg, #0b3a3f, #061c21); color: #6fd0c4; }
.em-brand-visual--sand { background: radial-gradient(70% 80% at 90% 10%, rgb(111 208 196 / 0.28), transparent 60%), linear-gradient(150deg, #f4ede1, #e8dcc7); color: var(--em-deep); }

/* ---------- Catalogue des métiers (/expertises/) ---------- */
.em-sec__head--wide { max-width: 52rem; }
.em-catalog__grid { display: grid; gap: var(--em-space-m); }
@media (min-width: 768px) { .em-catalog__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1200px) { .em-catalog__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.em-catalog__item { display: grid; }
.em-catalog__card { position: relative; display: grid; grid-template-rows: auto 1fr; border-radius: var(--em-radius-s); overflow: hidden; background: #fff; border: 1px solid var(--em-line); transition: box-shadow var(--em-dur-base), transform var(--em-dur-base) var(--em-ease-out), border-color var(--em-dur-base); }
.em-catalog__card:has(a):hover { box-shadow: 0 16px 40px rgb(4 29 31 / 0.12); transform: translateY(-3px); border-color: rgb(7 92 92 / 0.4); }
.em-catalog__card:has(a:focus-visible) { outline: 2px solid var(--em-focus); outline-offset: 3px; }
.em-catalog__card a:focus-visible { outline: none; }
.em-catalog__media { position: relative; aspect-ratio: 16 / 9; background: var(--em-night-800); overflow: hidden; }
.em-catalog__media img { transition: transform var(--em-dur-slow) var(--em-ease-out); }
.em-catalog__card:has(a):hover .em-catalog__media img { transform: scale(1.04); }
.em-catalog__body { display: grid; align-content: start; gap: 0.9rem; padding: 1.25rem 1.3rem 1.4rem; }
.em-catalog__top { display: flex; align-items: center; gap: 0.8rem; }
.em-catalog__top .em-icon-circle { flex: none; width: 2.6rem; height: 2.6rem; }
.em-catalog__title { font-size: 1.35rem; line-height: 1.15; }
.em-catalog__title a { color: inherit; text-decoration: none; }
.em-catalog__title a::after { content: ""; position: absolute; inset: 0; }
.em-catalog__label { display: block; margin-bottom: 0.3rem; font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--em-copper-700); }
.em-catalog__ops { font-size: 0.9375rem; color: var(--em-ink-muted); }
.em-catalog__tags { display: flex; flex-wrap: wrap; gap: 0.35rem; }
.em-catalog__tags li { padding: 0.2rem 0.6rem; border-radius: var(--em-radius-pill); background: rgb(7 92 92 / 0.07); color: var(--em-deep); font-size: 0.8125rem; font-weight: 600; line-height: 1.4; }
.em-catalog__more { display: inline-flex; align-items: center; gap: 0.4rem; margin-top: 0.2rem; font-size: 0.875rem; font-weight: 700; color: var(--em-deep); }
.em-catalog__more .em-icon { width: 1rem; height: 1rem; transition: transform var(--em-dur-base); }
.em-catalog__card:hover .em-catalog__more .em-icon { transform: translateX(3px); }

/* ---------- Autres expertises ---------- */
.em-siblings { border-top: 1px solid var(--em-line); }
.em-siblings__grid { display: grid; gap: var(--em-space-m) var(--em-space-xl); align-items: center; }
@media (min-width: 1024px) { .em-siblings__grid { grid-template-columns: minmax(14rem, 0.6fr) minmax(0, 1.4fr); } }
.em-siblings__title { font-size: clamp(1.4rem, 1.15rem + 0.8vw, 1.85rem); line-height: 1.15; margin-top: 0.4rem; }
.em-siblings__list { display: grid; gap: 0.6rem; }
@media (min-width: 640px) { .em-siblings__list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1200px) { .em-siblings__list { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.em-siblings__link { display: flex; align-items: center; gap: 0.75rem; min-height: 3.5rem; padding: 0.7rem 0.9rem; border: 1px solid var(--em-line); border-radius: var(--em-radius-s); background: #fff; color: var(--em-ink); font-weight: 600; font-size: 0.9375rem; text-decoration: none; transition: border-color var(--em-dur-fast), background-color var(--em-dur-fast); }
.em-siblings__link:hover { border-color: var(--em-deep); background: rgb(7 92 92 / 0.04); }
.em-siblings__icon { display: grid; place-items: center; flex: none; width: 2.2rem; height: 2.2rem; border-radius: 50%; background: rgb(7 92 92 / 0.08); color: var(--em-deep); }
.em-siblings__icon .em-icon { width: 1.1rem; height: 1.1rem; }
.em-siblings__arrow { margin-left: auto; color: var(--em-deep); }
.em-siblings__arrow .em-icon { width: 1rem; height: 1rem; }

/* ---------- Missions filtrables, repère « mission documentée » ---------- */
.em-missions__filters { margin-bottom: var(--em-space-s); }
.em-missions__grid > li[hidden] { display: none; }
.em-logos__mission { justify-self: center; margin-top: 0.15rem; padding: 0.15rem 0.5rem; border-radius: var(--em-radius-pill); background: rgb(7 92 92 / 0.08); color: var(--em-deep); font-size: 0.6875rem; font-weight: 700; text-decoration: none; }
.em-logos__mission:hover { background: var(--em-deep); color: #fff; }

/* ---------- Contact ---------- */
.em-contact__intro { color: var(--em-ink-muted); margin-top: -0.4rem; }

/* ---------- Bandeau préproduction : bascule aperçu production ---------- */
.em-env-badge a { margin-left: 0.6em; color: #fff; text-decoration: underline; text-underline-offset: 2px; font-weight: 600; letter-spacing: 0.02em; text-transform: none; }
.em-env-badge.is-sim { background: #0b5f3a; }
.em-catalog__card { height: 100%; }
.em-catalog__body { display: flex; flex-direction: column; }
.em-catalog__more { margin-top: auto; padding-top: 0.3rem; }
.em-contact__info .em-eyebrow--light { color: #d6efef; }

/* ==========================================================================
   Articles (blog)
   ========================================================================== */
.em-blog__cats { margin-bottom: var(--em-space-l); }
.em-blog__cats .em-chip { text-decoration: none; }
.em-blog__cats .em-chip[aria-current="page"] { background: var(--em-deep); border-color: var(--em-deep); color: var(--em-white); }
.em-chip__count { font-weight: 500; opacity: 0.75; }
.em-blog__grid { display: grid; gap: var(--em-space-m); }
@media (min-width: 768px) { .em-blog__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1200px) { .em-blog__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.em-blog__item { display: grid; }
@media (min-width: 1024px) { .em-blog__item.is-featured { grid-column: 1 / -1; } }

.em-post-card { position: relative; display: grid; grid-template-rows: auto 1fr; height: 100%; border-radius: var(--em-radius-s); overflow: hidden; background: #fff; border: 1px solid var(--em-line); transition: box-shadow var(--em-dur-base), transform var(--em-dur-base) var(--em-ease-out), border-color var(--em-dur-base); }
.em-post-card:hover { box-shadow: 0 16px 40px rgb(4 29 31 / 0.12); transform: translateY(-3px); border-color: rgb(7 92 92 / 0.4); }
.em-post-card:has(a:focus-visible) { outline: 2px solid var(--em-focus); outline-offset: 3px; }
.em-post-card a:focus-visible { outline: none; }
.em-post-card__media { position: relative; aspect-ratio: 16 / 9; background: var(--em-night-800); overflow: hidden; }
.em-post-card__body { display: flex; flex-direction: column; gap: 0.6rem; padding: 1.25rem 1.3rem 1.4rem; }
.em-post-card__meta { display: flex; flex-wrap: wrap; gap: 0.4rem 0.9rem; font-size: 0.75rem; color: var(--em-ink-muted); }
.em-post-card__cat { font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--em-copper-700); }
.em-post-card__title { font-size: 1.35rem; line-height: 1.18; }
.em-post-card__title a { color: inherit; text-decoration: none; }
.em-post-card__title a::after { content: ""; position: absolute; inset: 0; }
.em-post-card__excerpt { font-size: 0.9375rem; color: var(--em-ink-muted); }
.em-post-card__more { display: inline-flex; align-items: center; gap: 0.4rem; margin-top: auto; padding-top: 0.3rem; font-size: 0.875rem; font-weight: 700; color: var(--em-deep); }
.em-post-card__more .em-icon { width: 1rem; height: 1rem; transition: transform var(--em-dur-base); }
.em-post-card:hover .em-post-card__more .em-icon { transform: translateX(3px); }
@media (min-width: 1024px) {
	.em-post-card.is-featured { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); grid-template-rows: none; }
	.em-post-card.is-featured .em-post-card__media { aspect-ratio: auto; min-height: 22rem; }
	.em-post-card.is-featured .em-post-card__body { justify-content: center; padding: var(--em-space-l); }
	.em-post-card.is-featured .em-post-card__title { font-size: clamp(1.7rem, 1.3rem + 1vw, 2.3rem); }
}
.em-blog .nav-links { display: flex; gap: 0.5rem; justify-content: center; margin-top: var(--em-space-l); }
.em-blog .page-numbers { display: inline-grid; place-items: center; min-width: var(--em-hit); min-height: var(--em-hit); padding: 0 0.8rem; border: 1px solid var(--em-line); border-radius: var(--em-radius-pill); text-decoration: none; color: var(--em-ink); }
.em-blog .page-numbers.current { background: var(--em-deep); border-color: var(--em-deep); color: #fff; }

/* Article */
.em-hero--post { min-height: clamp(440px, 58svh, 600px); }
.em-hero__title--post { font-size: clamp(2.1rem, 1.35rem + 2.3vw, 3.3rem); max-width: 24ch; }
.em-hero--post .em-hero__eyebrow a { color: inherit; text-decoration: none; }
.em-post-meta { display: flex; flex-wrap: wrap; gap: 0.5rem 1.4rem; margin-top: var(--em-space-m); font-size: 0.875rem; color: rgb(255 255 255 / 0.85); }
.em-post-meta span { display: inline-flex; align-items: center; gap: 0.45rem; }
.em-post-meta .em-icon { width: 1rem; height: 1rem; color: var(--em-soft); }
.em-article__grid { display: grid; gap: var(--em-space-l) var(--em-space-2xl); }
@media (min-width: 1024px) {
	.em-article__grid { grid-template-columns: 15rem minmax(0, 44rem); justify-content: center; }
	.em-article__toc { position: sticky; top: calc(var(--em-header-h) + 1.5rem); align-self: start; }
}
.em-article__grid:not(:has(.em-article__toc)) { grid-template-columns: minmax(0, 44rem); justify-content: center; }
.em-article__toc { padding: 1.1rem 1.2rem; border: 1px solid var(--em-line); border-radius: var(--em-radius-s); background: #fff; }
.em-article__toc-title { font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--em-copper-700); margin-bottom: 0.6rem; }
.em-article__toc ol { display: grid; gap: 0.5rem; counter-reset: toc; }
.em-article__toc li { counter-increment: toc; display: grid; grid-template-columns: 1.4rem minmax(0, 1fr); font-size: 0.875rem; line-height: 1.35; }
.em-article__toc li::before { content: counter(toc, decimal-leading-zero); font-weight: 700; color: var(--em-deep); font-size: 0.75rem; padding-top: 0.1rem; }
.em-article__toc a { color: var(--em-ink); text-decoration: none; }
.em-article__toc a:hover { color: var(--em-deep); text-decoration: underline; text-underline-offset: 3px; }
.em-article__body h2 { scroll-margin-top: calc(var(--em-header-h) + 1rem); }
.em-article__body .em-article-key { margin: var(--em-space-m) 0; padding: 1.1rem 1.25rem; border-left: 3px solid var(--em-copper); background: #fff; border-radius: 0 var(--em-radius-s) var(--em-radius-s) 0; }
.em-article__body .em-article-key p { margin: 0; }
.em-article__body table { width: 100%; border-collapse: collapse; margin: var(--em-space-m) 0; font-size: 0.9375rem; background: #fff; }
.em-article__body th, .em-article__body td { padding: 0.65rem 0.8rem; border: 1px solid var(--em-line); text-align: left; vertical-align: top; }
.em-article__body th { background: rgb(7 92 92 / 0.07); }
.em-article__body .em-article-sources { margin-top: var(--em-space-l); padding-top: var(--em-space-m); border-top: 1px solid var(--em-line); font-size: 0.8125rem; color: var(--em-ink-muted); }
.em-article__body .em-article-sources li { margin-bottom: 0.3rem; }
.em-article__cta { display: grid; gap: 0.6rem; margin-top: var(--em-space-xl); padding: clamp(1.25rem, 3vw, 2rem); border-radius: var(--em-radius-s); color: #fff; }
.em-article__cta-title { font-family: var(--em-font-display); font-size: 1.5rem; line-height: 1.15; }
.em-article__cta p { color: rgb(255 255 255 / 0.85); margin: 0; }
.em-article__cta .em-actions { margin-top: 0.4rem; }
.em-blog--related .em-sec__title { max-width: 30ch; }
@media (max-width: 1023px) { .em-article__toc { order: -1; } }
@media (max-width: 767px) { .em-article__body table { display: block; overflow-x: auto; } }

/* Zones d'intervention : navigation entre zones */
.em-zones__list { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.em-zones__list a { display: inline-flex; align-items: center; gap: 0.4rem; min-height: var(--em-hit); padding: 0.45rem 0.95rem; border: 1px solid var(--em-line); border-radius: var(--em-radius-pill); background: #fff; color: var(--em-ink); font-size: 0.875rem; font-weight: 600; text-decoration: none; }
.em-zones__list a:hover { border-color: var(--em-deep); color: var(--em-deep); }
.em-zones__list .em-icon { width: 1rem; height: 1rem; color: var(--em-deep); }
.em-zones__grid { display: grid; gap: var(--em-space-m) var(--em-space-xl); align-items: center; }
@media (min-width: 1024px) { .em-zones__grid { grid-template-columns: minmax(14rem, 0.6fr) minmax(0, 1.4fr); } }
.em-contact__address { display: block; font-weight: 600; color: #fff; }
.em-band__grid > *, .em-split__grid > *, .em-list__grid > * { min-width: 0; }
@media (max-width: 767px) { .em-actions .em-btn { white-space: normal; text-align: center; } }
.em-prose .em-btn, .em-prose .em-btn:hover { text-decoration: none; }
