/**
 * Ecopub 2026
 * Direction: editorial industrial, photo-first, one orange accent.
 * Shape rule: 2px corners for cards, buttons and fields.
 * Motion: short transforms for hierarchy and feedback only.
 */

html:root {
	color-scheme: light;
	--global-palette1: #ef7d00 !important;
	--global-palette2: #d66d00 !important;
	--global-palette3: #171613 !important;
	--global-palette4: #171613 !important;
	--global-palette5: #3f3e39 !important;
	--global-palette6: #62615c !important;
	--global-palette7: #d9dad4 !important;
	--global-palette8: #f5f6f7 !important;
	--global-palette9: #ffffff !important;
	--global-palette-btn-bg: #ef7d00 !important;
	--global-palette-btn-bg-hover: #d66d00 !important;
	--global-palette-btn: #171613 !important;
	--global-palette-btn-hover: #171613 !important;
}

/*
 * Pages en blocs natifs (Accueil, Prestations, Qui sommes-nous, L'atelier).
 * Leurs classes ep-* font la mise en page. Les images et paragraphes ajoutes
 * par la conversion (img nues, div et liens devenus paragraphes) ne prennent
 * pas les marges generiques de Kadence que n'avaient pas les elements d'origine.
 */
.ep-studio .wp-block-image:not([class*="ep-"]), .ep-services-page .wp-block-image:not([class*="ep-"]) { margin: 0; }
.single-content :is(p.ep-p, p.ep-link) { margin-bottom: 0; }
.ep-studio .wp-block-image figcaption { margin-bottom: 0; text-align: start; }
/* Carte entiere cliquable : le lien est sur le titre et couvre la carte. */
.ep-tuile { position: relative; }
.ep-tuile .ep-tuile__lien { color: inherit; text-decoration: none; }
.ep-tuile .ep-tuile__lien::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.ep-tuile:focus-within { outline: 3px solid color-mix(in srgb, var(--ep-primary) 42%, transparent); outline-offset: 4px; }
.ep-tuile .ep-tuile__lien:focus-visible { outline: none; }

:root {
	--ep-primary: #ef7d00;
	--ep-primary-hover: #d66d00;
	--ep-primary-dark: #a65300;
	--ep-accent-text: #b35800;
	--ep-primary-soft: #fff0df;
	--ep-dark: #171613;
	--ep-ink-soft: #3f3e39;
	--ep-muted: #f5f6f7;
	--ep-surface: #ffffff;
	--ep-surface-raised: #ffffff;
	--ep-muted-foreground: #62615c;
	--ep-border: #d9dad4;
	--ep-white: #ffffff;
	--ep-font-heading: "Aptos Display", "Segoe UI Variable Display", "Helvetica Neue", Arial, sans-serif;
	--ep-font-body: Aptos, "Segoe UI Variable Text", "Helvetica Neue", Arial, sans-serif;
	/* Rounded system: photos and cards share one radius, controls a tighter one. */
	--ep-radius-media: 12px;
	--ep-radius-card: 12px;
	--ep-radius-button: 8px;
	--ep-radius-field: 8px;
	--ep-radius-chip: 6px;
	--ep-button-height: 48px;
	--ep-gouttiere: clamp(1rem, 4vw, 4rem);
	--ep-content: 88rem;
	--ep-reading: 66ch;
	--ep-shadow-card: 0 1px 0 rgb(23 22 19 / 8%);
	--ep-shadow-card-hover: 0 18px 48px rgb(23 22 19 / 10%);
	--ep-ease: cubic-bezier(.16, 1, .3, 1);
	--ep-space-xs: .55rem;
	--ep-space-s: 1.1rem;
	--ep-space-m: clamp(1.8rem, 3vw, 3rem);
	--ep-space-l: clamp(3.5rem, 7vw, 6.5rem);
	--ep-space-xl: clamp(5rem, 10vw, 9rem);
}

body {
	color: var(--ep-dark);
	background: var(--ep-surface);
	font-family: var(--ep-font-body);
	font-size: clamp(1rem, .96rem + .14vw, 1.08rem);
	line-height: 1.62;
	text-rendering: optimizeLegibility;
}

body,
button,
input,
select,
textarea { font-family: var(--ep-font-body); }

h1, h2, h3, h4, h5, h6,
.entry-title {
	font-family: var(--ep-font-heading);
	font-weight: 720;
	line-height: .98;
	letter-spacing: -.045em;
	text-wrap: balance;
}

h1 { font-size: clamp(3.15rem, 7vw, 7.2rem); }
h2 { font-size: clamp(2.25rem, 4.8vw, 5rem); }
h3 { font-size: clamp(1.2rem, 2vw, 1.75rem); }
p { text-wrap: pretty; }

.entry-content > :where(p, ul, ol),
.ep-page-body > :where(p, ul, ol) { max-width: var(--ep-reading); }

::selection {
	background: var(--ep-primary);
	color: var(--ep-dark);
}

a { transition: color .22s var(--ep-ease); }

.ep-eyebrow,
.ep-home-kicker,
.ep-product-kicker {
	color: var(--ep-primary);
	font-size: .72rem;
	font-weight: 780;
	letter-spacing: .13em;
	line-height: 1.3;
	text-transform: uppercase;
}

/* Actions */
.ast-button,
.button,
input[type="submit"],
.wp-block-button__link,
.kb-button,
.ep-btn,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button {
	min-height: var(--ep-button-height);
	border: 1px solid var(--ep-primary) !important;
	border-radius: var(--ep-radius-button) !important;
	background: var(--ep-primary) !important;
	color: var(--ep-dark) !important;
	font-family: var(--ep-font-heading);
	font-size: .88rem;
	font-weight: 760;
	line-height: 1.1;
	white-space: nowrap;
	box-shadow: none !important;
	transition: transform .22s var(--ep-ease), background-color .22s var(--ep-ease), border-color .22s var(--ep-ease), color .22s var(--ep-ease);
}

.ast-button:hover,
.button:hover,
input[type="submit"]:hover,
.wp-block-button__link:hover,
.kb-button:hover,
.ep-btn:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover {
	background: var(--ep-primary-hover) !important;
	border-color: var(--ep-primary-hover) !important;
	color: var(--ep-dark) !important;
	transform: translateY(-2px);
}

.ast-button:active,
.button:active,
input[type="submit"]:active,
.wp-block-button__link:active,
.kb-button:active,
.ep-btn:active { transform: scale(.985); }

.ep-btn--ghost {
	border-color: var(--ep-dark) !important;
	background: transparent !important;
	color: var(--ep-dark) !important;
}

.ep-btn--ghost:hover {
	background: var(--ep-dark) !important;
	border-color: var(--ep-dark) !important;
	color: var(--ep-surface) !important;
}

.ep-btn--light {
	border-color: var(--ep-primary) !important;
	background: var(--ep-primary) !important;
	color: var(--ep-dark) !important;
}

/* Focus ring: 3:1 minimum against its surface (WCAG 1.4.11).
   Accent text on light surfaces (~6.7:1 on white); full primary on
   dark sections, where the darker accent would drop under 3:1. */
:where(a, button, input, select, textarea, summary):focus-visible {
	outline: 3px solid var(--ep-accent-text) !important;
	outline-offset: 4px;
}
:where(.ep-home-hero, .ep-home-services, .ep-footer-close) :where(a, button, input, select, textarea, summary):focus-visible {
	outline-color: var(--ep-primary) !important;
}

/* Header and navigation */
#masthead,
#main-header,
.site-header-wrap,
.site-header-row-container-inner {
	background: #ffffff !important;
	border: 0 !important;
	box-shadow: none !important;
}

#masthead {
	position: relative;
	/* Above the sticky Réalisations filter bar (30), so menu dropdowns win. */
	z-index: 40;
	border-bottom: 1px solid var(--ep-border) !important;
}

.site-main-header-inner-wrap { min-height: 72px; }
.site-branding .custom-logo,
.site-header-item .custom-logo { max-height: 54px; width: auto; }
.home .site-header-item .custom-logo { max-height: 58px; }
.site-branding .site-title-wrap { display: none; }
/* Adapt the existing white/orange logo to a white header without changing its artwork. */
.site-branding .custom-logo,
.site-header-item .custom-logo { filter: invert(1) hue-rotate(180deg); }

.header-navigation .header-menu-container > ul {
	align-items: center;
	gap: .05rem;
}

.header-navigation .header-menu-container > ul > li > a,
.header-navigation .header-menu-container > ul > li > a .nav-drop-title-wrap {
	min-height: 72px;
	padding-inline: .72rem !important;
	color: var(--ep-dark) !important;
	font-family: var(--ep-font-body);
	font-size: .86rem;
	font-weight: 650;
	letter-spacing: -.01em;
}

.header-navigation .nav-drop-title-wrap {
	display: inline-flex;
	align-items: center;
	gap: .3rem;
	white-space: nowrap;
}

.header-navigation .dropdown-nav-toggle {
	display: inline-flex;
	align-items: center;
	margin-left: .2rem;
}

.header-navigation .header-menu-container > ul > li > a:hover,
.header-navigation .header-menu-container > ul > li > a:hover .nav-drop-title-wrap,
.header-navigation .header-menu-container > ul > li.current-menu-item > a,
.header-navigation .header-menu-container > ul > li.current-menu-ancestor > a {
	color: var(--ep-primary) !important;
}

.header-navigation .header-menu-container > ul > li.ep-nav-cta > a {
	min-height: 44px;
	margin-left: .5rem;
	padding: 0 1.15rem !important;
	border: 1px solid var(--ep-primary) !important;
	border-radius: var(--ep-radius-button) !important;
	background: var(--ep-primary) !important;
	color: var(--ep-dark) !important;
}

.header-navigation .header-menu-container > ul > li.ep-nav-cta > a:hover {
	border-color: var(--ep-primary-hover) !important;
	background: var(--ep-primary-hover) !important;
	color: var(--ep-dark) !important;
	transform: translateY(-1px);
}

.header-navigation .header-menu-container ul.sub-menu {
	padding: .6rem .5rem !important;
	border: 0 !important;
	border-radius: var(--ep-radius-card, 2px) !important;
	background: var(--ep-surface, #ffffff) !important;
	box-shadow: 0 16px 40px -8px rgba(23, 22, 19, 0.12) !important;
}

.header-navigation .header-menu-container ul.sub-menu > li {
	border: 0 !important;
	border-bottom: 0 !important;
}

.header-navigation .header-menu-container ul.sub-menu > li > a {
	border-radius: var(--ep-radius-card, 2px) !important;
	color: var(--ep-dark) !important;
	padding: .6rem 1rem !important;
	font-weight: 550;
	transition: background-color .18s var(--ep-ease), color .18s var(--ep-ease);
}

.header-navigation .header-menu-container ul.sub-menu > li > a:hover,
.header-navigation .header-menu-container ul.sub-menu > li > a:focus {
	background: var(--ep-primary-soft, #fff0df) !important;
	color: var(--ep-primary) !important;
}

/* Neutraliser le rectangle gris foncé inline injecté par Kadence (#2D3748) sur l'élément actif */
.header-navigation .header-menu-container ul ul li.menu-item.current-menu-item > a,
.header-navigation .header-menu-container ul.sub-menu > li.current-menu-item > a,
.header-navigation .header-menu-container ul.sub-menu > li.current_page_item > a {
	background: transparent !important;
	color: var(--ep-primary) !important;
	font-weight: 650 !important;
}

/* Desktop header: align the bar with the page gutter instead of Kadence's
   1290px container, so the logo sits on the same edge as the content. */
@media (min-width: 1025px) {
	#masthead .site-main-header-wrap .site-container {
		max-width: 90rem;
		padding-inline: var(--ep-gouttiere);
	}
	.home #masthead .site-main-header-wrap .site-container {
		padding-inline: clamp(1.25rem, 4vw, 4rem);
	}
}

/* Mega-menu « Prestations » — desktop.
   The generic sub-menu card above (padding, border, shadow, all !important)
   was also landing on every nested family list, turning the panel into a
   grid of floating cards. The panel is one sheet; its columns are not. */
@media (min-width: 1025px) {
	.header-navigation .header-menu-container li.ep-mega > ul.sub-menu {
		width: min(58rem, calc(100vw - 4rem));
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 2rem 2.5rem;
		padding: 2rem 2.25rem 0 !important;
		border-radius: var(--ep-radius-card) !important;
	}

	.header-navigation .header-menu-container li.ep-mega ul.sub-menu ul.sub-menu {
		min-width: 0;
		padding: 0 !important;
		border: 0 !important;
		border-radius: 0 !important;
		background: transparent !important;
		box-shadow: none !important;
	}

	.header-navigation .header-menu-container li.ep-mega ul.sub-menu ul.sub-menu > li {
		border: 0 !important;
	}

	/* Family heading */
	.header-navigation .header-menu-container li.ep-mega > ul.sub-menu > li > a {
		display: block;
		margin: 0 0 .45rem;
		padding: 0 0 .7rem !important;
		border-bottom: 1px solid var(--ep-border);
		background: transparent !important;
		color: var(--ep-dark) !important;
		font-size: .72rem;
		font-weight: 780;
		letter-spacing: .13em;
		line-height: 1.3;
		text-transform: uppercase;
	}

	.header-navigation .header-menu-container li.ep-mega > ul.sub-menu > li > a:hover,
	.header-navigation .header-menu-container li.ep-mega > ul.sub-menu > li > a:focus {
		border-bottom-color: var(--ep-primary);
		background: transparent !important;
		color: var(--ep-accent-text, #b35800) !important;
	}

	/* Service links */
	.header-navigation .header-menu-container li.ep-mega ul.sub-menu ul.sub-menu > li > a {
		display: block;
		width: auto;
		padding: .36rem 0 !important;
		background: transparent !important;
		color: var(--ep-ink-soft, #3f3e39) !important;
		font-size: .92rem;
		font-weight: 450;
		line-height: 1.35;
		transition: color .2s cubic-bezier(.16, 1, .3, 1);
	}

	.header-navigation .header-menu-container li.ep-mega ul.sub-menu ul.sub-menu > li > a:hover,
	.header-navigation .header-menu-container li.ep-mega ul.sub-menu ul.sub-menu > li > a:focus {
		background: transparent !important;
		color: var(--ep-accent-text, #b35800) !important;
	}

	/* Easypanneau: a sub-brand (modular panels), not a seventh family. The row
	   leads to its local page and closes the panel as a full-width footer row. */
	.header-navigation .header-menu-container li.ep-mega > ul.sub-menu > li.ep-mega-star {
		grid-column: 1 / -1;
		margin: 0 -2.25rem;
		padding: 0 2.25rem;
		border-top: 1px solid var(--ep-border) !important;
		background: var(--ep-muted) !important;
	}

	.header-navigation .header-menu-container li.ep-mega > ul.sub-menu > li.ep-mega-star > a {
		display: inline-flex;
		align-items: center;
		gap: .5rem;
		margin: 0;
		padding: 1rem 0 !important;
		border: 0;
		color: var(--ep-dark) !important;
		font-size: .86rem;
		font-weight: 650;
		letter-spacing: 0;
		text-transform: none;
	}

	.header-navigation .header-menu-container li.ep-mega > ul.sub-menu > li.ep-mega-star > a::before {
		content: none;
	}

	.header-navigation .header-menu-container li.ep-mega > ul.sub-menu > li.ep-mega-star > a::after {
		content: "\2197";
		position: static;
		display: inline-block;
		width: auto;
		height: auto;
		background: none !important;
		color: var(--ep-primary);
		transition: transform .2s cubic-bezier(.16, 1, .3, 1);
	}

	.header-navigation .header-menu-container li.ep-mega > ul.sub-menu > li.ep-mega-star > a:hover::after {
		transform: translate(2px, -2px);
	}
}

.mobile-toggle-open-container .menu-toggle-open,
.mobile-toggle-open-container .menu-toggle-open:hover {
	border-color: var(--ep-border) !important;
	background: transparent !important;
	color: var(--ep-dark) !important;
}
.mobile-toggle-open-container .menu-toggle-open {
	min-width: 44px;
	min-height: 44px;
	justify-content: center;
}

.drawer-inner { background: var(--ep-dark) !important; color: #f2f3ef; }
.mobile-navigation a { color: #f2f3ef !important; }
.mobile-navigation a:hover { color: var(--ep-primary) !important; }

/* Search sits before the desktop menu and before the mobile hamburger. */
.ep-header-search__menu-item,
.ep-header-search__mobile-item { display: flex; align-items: center; }
.ep-header-search__menu-item { position: relative; margin-right: .35rem; }
.ep-header-search__trigger,
.ep-header-search__close {
	display: inline-grid;
	place-items: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	border-radius: var(--ep-radius-button);
	background: transparent;
	color: var(--ep-dark);
	cursor: pointer;
	transition: background .2s var(--ep-ease), color .2s var(--ep-ease);
}
.ep-header-search__trigger:hover,
.ep-header-search__close:hover { background: var(--ep-muted); color: var(--ep-primary-dark); }
.ep-header-search__inline-form {
	position: absolute;
	z-index: 50;
	top: 50%;
	right: 0;
	display: flex;
	align-items: center;
	width: var(--ep-search-inline-width, 20rem);
	height: 44px;
	padding: 0;
	border: 1px solid var(--ep-border);
	border-radius: var(--ep-radius-field);
	background: var(--ep-surface);
	box-shadow: 0 12px 28px rgb(23 22 19 / 12%);
	outline: 2px solid transparent;
	outline-offset: -2px;
	clip-path: inset(0 0 0 calc(100% - 44px));
	opacity: 0;
	pointer-events: none;
	transform: translateY(-50%);
	transition: clip-path .34s var(--ep-ease), opacity .08s ease .24s;
}
.ep-header-search__menu-item.is-open .ep-header-search__inline-form {
	clip-path: inset(0);
	opacity: 1;
	pointer-events: auto;
	transition: clip-path .34s var(--ep-ease), opacity .08s ease;
}
.ep-header-search__inline-form:focus-within { outline-color: var(--ep-primary-dark); }
.ep-header-search__inline-form label {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}
.ep-header-search__inline-form input[type="search"] {
	flex: 1;
	min-width: 0;
	width: auto;
	height: 42px;
	min-height: 0;
	margin: 0;
	padding: .45rem .75rem;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	color: var(--ep-dark);
	font: inherit;
}
.ep-header-search__inline-form input[type="search"]:focus,
.ep-header-search__inline-form input[type="search"]:focus-visible {
	border: 0;
	box-shadow: none;
	outline: 0 !important;
}
.ep-header-search__inline-form input[type="search"]::placeholder { color: var(--ep-muted-foreground); opacity: 1; }
.ep-header-search__inline-form button {
	flex: none;
	display: inline-grid;
	place-items: center;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: var(--ep-dark);
	cursor: pointer;
	transition: background .18s var(--ep-ease), color .18s var(--ep-ease);
}
.ep-header-search__inline-close { border-right: 1px solid var(--ep-border) !important; }
.ep-header-search__inline-form .ep-header-search__inline-submit {
	width: 42px;
	height: 42px;
	border-left: 1px solid var(--ep-border);
	background: var(--ep-primary-soft);
}
.ep-header-search__inline-form button:hover { background: var(--ep-muted); color: var(--ep-primary-dark); }
.ep-header-search__inline-form .ep-header-search__inline-submit:hover { background: var(--ep-primary); color: var(--ep-dark); }
.ep-header-search__inline-form button:focus-visible { outline: 2px solid var(--ep-primary-dark); outline-offset: -3px; }
.ep-header-search__trigger:focus-visible,
.ep-header-search__close:focus-visible,
.ep-header-search__form input:focus-visible,
.ep-header-search__form button:focus-visible {
	outline: 3px solid color-mix(in srgb, var(--ep-primary) 55%, transparent);
	outline-offset: 3px;
}

/* Native modal semantics and focus handling, composed as a left-hand drawer. */
.ep-header-search {
	position: fixed;
	inset: 0 auto 0 0;
	width: min(31rem, 100vw);
	max-width: 100vw;
	height: 100dvh;
	max-height: none;
	margin: 0;
	padding: 0;
	border: 0;
	background: var(--ep-surface);
	color: var(--ep-dark);
	box-shadow: 16px 0 48px rgb(23 22 19 / 16%);
	transform-origin: top left;
}
.ep-header-search.is-animating { will-change: transform; }
.ep-header-search::backdrop { background: rgb(23 22 19 / 42%); opacity: 0; transition: opacity .32s var(--ep-ease); }
.ep-header-search.is-open::backdrop { opacity: 1; }
.ep-header-search__inner { padding: clamp(1.25rem, 4vw, 2.5rem); opacity: 0; transform: translateY(8px); transition: opacity .12s ease, transform .12s ease; }
.ep-header-search.is-open .ep-header-search__inner { opacity: 1; transform: none; transition: opacity .18s ease .18s, transform .28s var(--ep-ease) .14s; }
.ep-header-search__top { display: flex; align-items: center; justify-content: space-between; margin-bottom: clamp(4rem, 12vh, 7rem); }
.ep-header-search__brand { margin: 0; font-size: 1.1rem; font-weight: 750; letter-spacing: -.03em; }
.ep-header-search h2 { margin: 0 0 .85rem; font-size: 2.25rem; line-height: 1.04; letter-spacing: -.035em; hyphens: none; }
.ep-header-search__intro { max-width: 28ch; margin: 0 0 2.3rem; color: var(--ep-ink-soft); font-size: 1rem; line-height: 1.55; hyphens: none; }
.ep-header-search__form { display: grid; gap: .7rem; }
.ep-header-search__form label { font-size: 1rem; font-weight: 700; }
.ep-header-search__form input[type="search"] {
	width: 100%;
	min-height: 54px;
	padding: .85rem 1rem;
	border: 1px solid var(--ep-border);
	border-radius: var(--ep-radius-field);
	background: var(--ep-surface);
	color: var(--ep-dark);
	font: inherit;
}
.ep-header-search__form input[type="search"]::placeholder { color: var(--ep-muted-foreground); opacity: 1; }
.ep-header-search__form input[type="search"]:focus-visible {
	border-color: var(--ep-border);
	box-shadow: none;
	outline: 2px solid var(--ep-primary-dark) !important;
	outline-offset: 2px;
}
.ep-header-search__form button[type="submit"] {
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	min-height: 50px;
	margin-top: .35rem;
	padding: .8rem 1.1rem;
	border: 1px solid var(--ep-primary);
	border-radius: var(--ep-radius-button);
	background: var(--ep-primary);
	color: var(--ep-dark);
	font-weight: 750;
	cursor: pointer;
	transition: background .2s var(--ep-ease), border-color .2s var(--ep-ease);
}
.ep-header-search__form button[type="submit"]:hover { border-color: var(--ep-primary-hover); background: var(--ep-primary-hover); color: var(--ep-dark); }
@media (max-width: 480px) {
	.ep-header-search h2 { font-size: 2rem; }
}
@keyframes ep-search-gentle-entrance {
	from { opacity: 0; }
	to { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
	.ep-header-search[open] { animation: ep-search-gentle-entrance .14s ease-out; }
	.ep-header-search__inline-form,
	.ep-header-search__menu-item.is-open .ep-header-search__inline-form { transition: opacity .14s ease; }
	.ep-header-search::backdrop,
	.ep-header-search__inner,
	.ep-header-search.is-open .ep-header-search__inner { transition: none; }
	.ep-header-search__inner { transform: none; }
	.ep-header-search__trigger,
	.ep-header-search__close,
	.ep-header-search__inline-form button,
	.ep-header-search__form button[type="submit"] { transition: none; }
}

/* Shared page surfaces */
.site-main,
.content-area,
.entry-content-wrap,
.entry-content { background: var(--ep-surface); }

.entry-content-wrap { box-shadow: none !important; }

.ep-page-header {
	min-height: clamp(24rem, 52vw, 42rem);
	padding: clamp(4rem, 9vw, 8rem) var(--ep-gouttiere) !important;
	background: var(--ep-surface);
	border-bottom: 1px solid var(--ep-border);
}

.ep-page-header > * {
	width: min(100%, var(--ep-content));
	margin-inline: auto;
}

.ep-page-header h1 {
	max-width: 12ch;
	margin: .8rem auto 1.4rem;
	font-size: clamp(3.4rem, 7vw, 7rem);
	line-height: .92;
}

.ep-page-header .ep-lead {
	max-width: 42rem;
	margin-inline: auto;
	color: var(--ep-muted-foreground);
	font-size: clamp(1.1rem, 1.7vw, 1.35rem);
}

/* Homepage */
.ep-home-hero {
	min-height: min(52rem, calc(100dvh - 72px));
	background: var(--ep-dark);
}

.ep-home-hero__media { filter: saturate(.78) contrast(1.04); }
.ep-home-hero__shade {
	background: linear-gradient(90deg, rgb(23 22 19 / 90%) 0%, rgb(23 22 19 / 46%) 53%, rgb(23 22 19 / 10%) 100%);
}

.ep-home-hero__content {
	width: min(100%, var(--ep-content));
	padding: clamp(4rem, 8vw, 6rem) var(--ep-gouttiere);
}

.ep-home-hero h1 {
	max-width: 11ch;
	margin: 1rem 0 1.4rem;
	font-size: clamp(4rem, 8vw, 7.8rem);
	line-height: .86;
	letter-spacing: -.065em;
}

.ep-home-hero__lead {
	max-width: 37rem;
	font-size: clamp(1.05rem, 1.5vw, 1.28rem);
	line-height: 1.5;
}

.ep-home-proof {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	max-width: var(--ep-content);
	padding-inline: var(--ep-gouttiere);
}

.ep-home-proof p { min-height: 9rem; padding: 2rem clamp(1rem, 3vw, 2.5rem); }
.ep-home-proof p:first-child { padding-left: 0; }
.ep-home-proof p:last-child { padding-right: 0; border-right: 0; }

.ep-home-intro,
.ep-home-projects {
	max-width: var(--ep-content);
	padding: var(--ep-space-xl) var(--ep-gouttiere);
}

.ep-home-intro {
	grid-template-columns: minmax(0, 1.35fr) minmax(18rem, .65fr);
	gap: clamp(2.5rem, 10vw, 9rem);
}

.ep-home-intro h2 {
	max-width: 15ch;
	font-size: clamp(2.7rem, 5.7vw, 5.8rem);
	line-height: .92;
}

.ep-home-services {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	background: var(--ep-dark);
}

.ep-home-service { min-height: clamp(28rem, 50vw, 45rem); border: 0; }
.ep-home-service:nth-child(1),
.ep-home-service:nth-child(4) { grid-column: span 7; }
.ep-home-service:nth-child(2),
.ep-home-service:nth-child(3) { grid-column: span 5; }
.ep-home-service img { filter: saturate(.76) contrast(1.04); }
.ep-home-service::after { background: linear-gradient(0deg, rgb(23 22 19 / 90%), transparent 64%); }
.ep-home-service__body { padding: clamp(1.4rem, 4vw, 3.5rem); }
.ep-home-service__body strong { max-width: 14ch; font-size: clamp(2.2rem, 4.5vw, 4.8rem); line-height: .9; }
.ep-home-service__body small { margin-top: .7rem; font-size: .98rem; }

.ep-home-workshop {
	grid-template-columns: minmax(0, 1.15fr) minmax(25rem, .85fr);
	background: var(--ep-muted);
	color: var(--ep-dark);
}

.ep-home-workshop__copy { padding: var(--ep-space-xl) clamp(1.5rem, 7vw, 7rem); }
.ep-home-workshop__copy h2 { color: var(--ep-dark); }
.ep-home-workshop__copy p { color: var(--ep-muted-foreground); }
.ep-home-workshop ol { border-color: var(--ep-border); }
.ep-home-workshop li { grid-template-columns: 1fr; border-color: var(--ep-border); }
.ep-home-workshop li span,
.ep-home-workshop li strong { color: var(--ep-dark); }

.ep-home-project-grid {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	grid-auto-rows: clamp(16rem, 28vw, 28rem);
	gap: clamp(.75rem, 1.8vw, 1.5rem);
}

.ep-home-project-grid a {
	position: relative;
	display: block;
	min-height: 0;
	overflow: hidden;
	background: var(--ep-muted);
}

.ep-home-project-grid a:first-child { grid-column: span 7; grid-row: span 2; }
.ep-home-project-grid a:nth-child(2),
.ep-home-project-grid a:nth-child(3) { grid-column: span 5; }
.ep-home-project-grid img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ep-home-project-grid a::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgb(23 22 19 / 78%), transparent 48%); }
.ep-home-project-grid span { z-index: 2; right: auto; bottom: 1.5rem; left: 1.5rem; border: 0; border-radius: var(--ep-radius-chip); background: var(--ep-surface); color: var(--ep-dark); }

.ep-home-cta,
.ep-editorial-cta,
.ep-portfolio-cta,
.ep-cta-band {
	background: var(--ep-muted) !important;
	color: var(--ep-dark) !important;
	border-top: 1px solid var(--ep-border);
}

.ep-home-cta h2,
.ep-editorial-cta h2,
.ep-portfolio-cta h2,
.ep-cta-band h2 { color: var(--ep-dark) !important; }
.ep-home-cta p,
.ep-editorial-cta p,
.ep-portfolio-cta p,
.ep-cta-band p { color: var(--ep-muted-foreground) !important; }

/* Prestations overview */
/* Editorial, catalogue, portfolio and product pages */
.ep-editorial-hero { background: var(--ep-surface); }
.ep-editorial-hero__copy { padding: var(--ep-space-xl) var(--ep-gouttiere); }
.ep-editorial-hero h1 { max-width: 10ch; font-size: clamp(3.8rem, 7vw, 7rem); line-height: .88; }
.ep-editorial-hero__visual img { filter: saturate(.76) contrast(1.04); }
.ep-editorial-proof { background: var(--ep-surface); border-color: var(--ep-border); }
.ep-editorial-section { padding-block: var(--ep-space-xl); }
.ep-editorial-process { background: var(--ep-muted); color: var(--ep-dark); }
.ep-editorial-process h2,
.ep-editorial-process h3 { color: var(--ep-dark); }
.ep-editorial-process p,
.ep-editorial-process article p { color: var(--ep-muted-foreground); }
.ep-editorial-process article,
.ep-editorial-process article + article { border-color: var(--ep-border); }

/* Pages Prestations : l'orange de marque (2.8:1 sur blanc) reste aux fonds et
   aux actions ; les petits textes orange passent a l'orange de texte (4.5:1+). */
.ep-editorial-hero .ep-eyebrow,
.ep-editorial-section .ep-eyebrow,
.ep-editorial-process .ep-eyebrow,
.ep-editorial-process article span,
.ep-editorial-cta .ep-eyebrow,
.ep-prestation-catalogue .ep-eyebrow,
.ep-prestation-faq .ep-eyebrow { color: var(--ep-accent-text); }
.ep-prestation-product__type { color: var(--ep-accent-text) !important; font-size: .72rem !important; }
/* Le guide est sur fond orange : texte sombre, jamais orange sur orange. */
.ep-prestation-guide .ep-eyebrow { color: var(--ep-dark); }
.ep-prestation-guide li > span { font-size: .75rem; opacity: .8; }

.woocommerce ul.products li.product,
.ep-prestation-product,
.ep-card {
	border-radius: var(--ep-radius-card) !important;
	background: transparent !important;
	box-shadow: none !important;
}
.woocommerce ul.products li.product { border-top: 1px solid var(--ep-border); }
.woocommerce ul.products li.product:hover,
.ep-prestation-product:hover,
.ep-card:hover { transform: translateY(-4px); box-shadow: none !important; }
.woocommerce ul.products li.product img,
.ep-prestation-product__image,
.ep-card__media { border-radius: var(--ep-radius-card) !important; }

.woocommerce.single-product div.product div.summary,
.woocommerce.single-product div.product .woocommerce-tabs { background: var(--ep-muted); }
.woocommerce.single-product div.product .product_title { font-size: clamp(2.7rem, 5vw, 5.4rem); }
.woocommerce.single-product div.product div.images .woocommerce-product-gallery__wrapper,
.woocommerce.single-product div.product div.images ol.flex-control-thumbs li { border-radius: var(--ep-radius-card); }


input[type="text"],
input[type="email"],
input[type="tel"],
input[type="url"],
input[type="number"],
select,
textarea {
	border: 1px solid var(--ep-border) !important;
	border-radius: var(--ep-radius-field) !important;
	background: var(--ep-surface-raised) !important;
	color: var(--ep-dark) !important;
	box-shadow: none !important;
}
input::placeholder,
textarea::placeholder { color: color-mix(in srgb, var(--ep-muted-foreground) 85%, transparent); opacity: 1; }

/* Footer */
.site-footer-wrap,
.site-footer-row-container-inner {
	background: #ffffff !important;
	color: var(--ep-muted-foreground);
}
.site-footer { background: #ffffff !important; color: var(--ep-muted-foreground) !important; }
.site-footer { border-top: 1px solid var(--ep-border); }
.site-footer h2,
.site-footer h3,
.site-footer h4,
.site-footer h5,
.site-footer h6,
.site-footer strong { color: var(--ep-dark); }
.site-footer p,
.site-footer li,
.site-footer .site-info { color: var(--ep-muted-foreground) !important; }
.site-footer .widget p:first-child { color: var(--ep-dark) !important; }
.site-footer a { color: var(--ep-dark) !important; }
.site-footer a:hover { color: var(--ep-primary-dark) !important; }
.site-footer .widget-title { padding-bottom: .7rem; border-bottom: 1px solid var(--ep-border); }
/* Column titles are real h2 headings (see ecopub_footer_column_headings);
   they keep the size of the former paragraphs, not the display h2 scale. */
/* #colophon beats the legacy dark-footer `#colophon h2 { color: white }` in style.css. */
#colophon .ep-footer-titre { color: var(--ep-dark); line-height: 1.3; letter-spacing: 0; text-wrap: wrap; }
.site-footer .ep-footer-cookies {
	display: inline;
	min-height: 0;
	padding: 0;
	border: 0;
	background: none;
	box-shadow: none;
	color: var(--ep-dark);
	font: inherit;
	text-decoration: underline;
	text-underline-offset: .2em;
	cursor: pointer;
}
.site-footer .ep-footer-cookies:hover { color: var(--ep-primary-dark); background: none; }
/* The middle row (footer4 widget area) ships empty: drop its 168px of padding. */
#colophon .site-middle-footer-wrap:not(:has(.widget)) { display: none; }

/* Footer structure. Three tiers, one reading path:
   1. columns — contact leads (it is first in the DOM, see
      ecopub_contact_en_tete_du_pied), then services, zones, studio;
   2. secondary links + legal line — one tight group, set apart by a rule.
   Rhythm: generous around tier 1, tight inside tier 2. */
#colophon .site-top-footer-inner-wrap {
	grid-template-columns: minmax(0, 1.35fr) repeat(3, minmax(0, 1fr));
	gap: var(--ep-space-m);
	padding-block: var(--ep-space-l) var(--ep-space-m);
}

/* Contact column: phone > devis > other channels > workshop address. */
#colophon .ep-footer-col--contact { max-width: 24rem; }
#colophon .ep-footer-col--contact .ep-footer-titre { margin-bottom: var(--ep-space-xs); }
#colophon .ep-footer-tel { margin: 0; }
#colophon .ep-footer-tel a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	font-family: var(--ep-font-heading);
	font-size: clamp(1.6rem, 2.3vw, 2.1rem);
	font-weight: 720;
	line-height: 1.1;
	letter-spacing: -.02em;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
	text-decoration: none;
}
#colophon .ep-footer-devis { margin: var(--ep-space-s) 0 0; }
#colophon .ep-footer-devis .ep-btn { margin: 0; }
#colophon .ep-footer-col--contact .ep-footer-contact { margin: var(--ep-space-s) 0 0; }
#colophon .ep-footer-adresse {
	margin: var(--ep-space-xs) 0 0;
	color: var(--ep-muted-foreground);
	font-size: .95rem;
	font-style: normal;
	line-height: 1.6;
}

/* Tier 2: secondary links sit on the column grid, above the legal line. */
#colophon .ep-secondary-footer {
	justify-content: flex-start;
	gap: 0 var(--ep-space-m);
	/* Same edges as Kadence's .site-container (1290px max, edge padding). */
	margin-inline: max(var(--global-content-edge-padding, 1.5rem), calc((100% - var(--global-content-width, 1290px)) / 2 + var(--global-content-edge-padding, 1.5rem)));
	padding: var(--ep-space-xs) 0 0;
	border-top: 1px solid var(--ep-border);
	border-bottom: 0;
}
#colophon .site-bottom-footer-inner-wrap { padding-block: 0 var(--ep-space-m); }

/* Closing band: the footer's one peak. Dark surface and display type are
   the system's own strongest moves (home hero/services, studio headings);
   orange stays reserved for the single action. */
#colophon .ep-footer-close {
	display: grid;
	grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
	gap: var(--ep-space-m) var(--ep-space-l);
	align-items: end;
	padding-block: var(--ep-space-l);
	padding-inline: max(var(--global-content-edge-padding, 1.5rem), calc((100% - var(--global-content-width, 1290px)) / 2 + var(--global-content-edge-padding, 1.5rem)));
	background: var(--ep-dark);
	color: var(--ep-white);
}
#colophon .ep-footer-close__title {
	margin: 0;
	max-width: 12ch;
	color: var(--ep-white);
	font-size: clamp(2.5rem, 5.2vw, 5rem);
	line-height: .97;
}
#colophon .ep-footer-close__actions { display: grid; gap: var(--ep-space-s); justify-items: start; }
#colophon .ep-footer-close a.ep-footer-close__tel {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	color: var(--ep-white) !important;
	font-family: var(--ep-font-heading);
	font-size: clamp(2rem, 3.3vw, 3.1rem);
	font-weight: 720;
	line-height: 1;
	letter-spacing: -.03em;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
	text-decoration: none;
}
#colophon .ep-footer-close a.ep-footer-close__tel:hover { color: var(--ep-primary) !important; }
#colophon .ep-footer-close__links { display: flex; flex-wrap: wrap; align-items: center; gap: var(--ep-space-xs) var(--ep-space-m); }
#colophon .ep-footer-close a.ep-footer-close__atelier {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	min-height: 44px;
	color: var(--ep-white) !important;
	font-weight: 650;
	text-decoration: underline;
	text-decoration-color: color-mix(in srgb, var(--ep-white) 40%, transparent);
	text-underline-offset: .3em;
}
#colophon .ep-footer-close a.ep-footer-close__atelier:hover { color: var(--ep-primary) !important; text-decoration-color: currentColor; }

/* The band owns phone and devis; the column keeps the other channels.
   Where the page already closed on its own contact section, swap roles. */
body:not(:has(.ep-studio-contact, .ep-cta-band, .ep-landing-cta, .ep-services-cta)) #colophon .ep-footer-col--contact :is(.ep-footer-tel, .ep-footer-devis) { display: none; }
body:has(.ep-studio-contact, .ep-cta-band, .ep-landing-cta, .ep-services-cta) #colophon .ep-footer-close { display: none; }
body:not(:has(.ep-studio-contact, .ep-cta-band, .ep-landing-cta, .ep-services-cta)) #colophon .ep-footer-col--contact .ep-footer-contact { margin-top: 0; }

/* Column titles quiet down to the system hairline: orange is for the action. */
#colophon .ep-footer-titre { border-bottom: 1px solid var(--ep-border); padding-bottom: .5rem; display: block; }

@media (max-width: 767px) {
	#colophon .ep-footer-close { grid-template-columns: minmax(0, 1fr); align-items: start; }
}

/* Tablet (Kadence stacks one column from 720 to 1024px): contact, services
   and zones in a row, studio blurb below. DOM order preserved. */
@media (min-width: 768px) and (max-width: 1024px) {
	#colophon .site-top-footer-inner-wrap { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	#colophon .site-footer-top-section-4 { grid-column: 1 / -1; }
	#colophon .site-footer-top-section-4 .ep-footer-col { max-width: var(--ep-reading); }
}

/* Phone: contact full width, services and zones side by side, studio last.
   Same as DOM order, so reading, focus and visual order agree. */
@media (max-width: 767px) {
	#colophon .site-top-footer-inner-wrap {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: var(--ep-space-m) 1.25rem;
		padding-block: var(--ep-space-l) var(--ep-space-m);
	}
	#colophon .site-footer-top-section-1,
	#colophon .site-footer-top-section-4 { grid-column: 1 / -1; }
	#colophon .ep-footer-liens a { line-height: 1.25; }
	/* Copyright-line links: 44px thumb targets without changing the line's look. */
	#colophon .footer-html-inner :is(a, .ep-footer-cookies) { display: inline-block; padding-block: .75rem; }
	#colophon .ep-secondary-footer {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0 1.25rem;
	}
}

/* While the consent banner is up, reserve its height at the page end and in
   scroll padding, so it never hides the footer or a focused link (WCAG 2.4.11).
   --ep-cookie-banner-space is measured by cookie-consent.js. */
.ep-cookie-banner-visible { scroll-padding-bottom: var(--ep-cookie-banner-space, 0px); }
.ep-cookie-banner-visible body { padding-bottom: var(--ep-cookie-banner-space, 0px); }

@keyframes ep-modern-presence {
	from { opacity: 0; transform: scale(1.035); }
	to { opacity: 1; transform: scale(1); }
}

@media (max-width: 1100px) {
	.header-navigation .header-menu-container > ul > li > a { padding-inline: .42rem !important; font-size: .8rem; }
}

@media (max-width: 900px) {
	.ep-home-hero { min-height: calc(100dvh - 68px); }
	.ep-home-hero__content { padding-inline: 1.25rem; }
	.ep-home-proof { grid-template-columns: 1fr; padding-inline: 1.25rem; }
	.ep-home-proof p { min-height: 0; padding: 1.25rem 0; border-right: 0; border-bottom: 1px solid var(--ep-border); }
	.ep-home-intro { grid-template-columns: 1fr; gap: 1.5rem; }
	.ep-home-service:nth-child(n) { grid-column: span 12; min-height: 34rem; }
	.ep-home-workshop { grid-template-columns: 1fr; }
	.ep-home-workshop__media { min-height: 28rem; }
}

@media (max-width: 600px) {
	:root { --ep-gouttiere: 1rem; }
	.site-main-header-inner-wrap { min-height: 64px; }
	.site-branding .custom-logo,
	.site-header-item .custom-logo { max-height: 47px; }
	.ep-home-hero { min-height: calc(100dvh - 64px); }
	.ep-home-hero h1 { font-size: clamp(3.5rem, 17vw, 5.2rem); }
	.ep-home-hero__lead { max-width: 31rem; }
	.ep-home-actions { align-items: stretch; flex-direction: column; }
	.ep-home-actions .ep-btn { width: 100%; max-width: none; }
	.ep-home-services { display: block; }
	.ep-home-service:nth-child(n) { min-height: 30rem; }
	.ep-home-project-grid { grid-template-columns: 1fr; grid-auto-rows: 22rem; }
	.ep-home-project-grid a:first-child,
	.ep-home-project-grid a:nth-child(n) { grid-column: auto; grid-row: auto; }
}

/* The brand uses a fixed light palette, independent of the system theme. */

/* Prestations index: one composition, framed photography and editorial rhythm. */
.ep-services-page { overflow: clip; background: var(--ep-surface); }
.ep-services-page .ep-editorial-text-link { display: inline-flex; align-items: center; gap: .6rem; min-height: 44px; }
.ep-services-page a:focus-visible { outline: 3px solid var(--ep-accent-text); outline-offset: 4px; }
.ep-services-hero {
	display: grid;
	grid-template-columns: 1.1fr 1fr;
	align-items: center;
	gap: clamp(2rem, 6vw, 6rem);
	max-width: 1440px;
	margin: 0 auto;
	padding: clamp(2.5rem, 5vw, 5rem) var(--ep-gouttiere);
}
.ep-services-hero h1 { margin: 0 0 1.5rem; font-size: clamp(2.5rem, 4.3vw, 4.8rem); line-height: .98; text-transform: uppercase; text-wrap: nowrap; }
.ep-services-hero h1 span { color: var(--ep-accent-text); }
.ep-services-hero__lead { max-width: 38ch; margin: 0; color: var(--ep-muted-foreground); font-size: 1.08rem; line-height: 1.55; text-wrap: pretty; }
.ep-services-hero__actions,
.ep-services-cta__actions { display: flex; align-items: center; flex-wrap: wrap; gap: 1rem 1.5rem; }
.ep-services-hero__actions { margin-top: 2rem; }
.ep-services-hero__media { height: clamp(22rem, 31vw, 30rem); margin: 0; overflow: hidden; border-radius: var(--ep-radius-media); background: var(--ep-muted); }
.ep-services-hero__media img { display: block; width: 100%; height: 100%; object-fit: cover; animation: ep-modern-presence 1.2s var(--ep-ease) both; }
.ep-services-index { max-width: var(--ep-content); margin: 0 auto; padding: clamp(3.5rem, 6vw, 6rem) var(--ep-gouttiere); }
.ep-services-index h2 { max-width: 19ch; margin: 0 0 2.4rem; font-size: clamp(2.2rem, 3.7vw, 4rem); }
.ep-services-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem 1.5rem; }
.ep-services-card { display: block; min-width: 0; color: var(--ep-dark) !important; text-decoration: none; }
.ep-services-card img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; border-radius: var(--ep-radius-media); transition: filter .3s var(--ep-ease); }
.ep-services-card__content { display: grid; gap: .45rem; padding: 1.1rem 0; border-bottom: 1px solid var(--ep-border); }
.ep-services-card__content strong { color: var(--ep-dark); font-family: var(--ep-font-heading); font-size: clamp(1.15rem, 2vw, 1.75rem); line-height: 1.1; letter-spacing: -.035em; }
.ep-services-card__content small { color: var(--ep-muted-foreground); font-size: .85rem; }
.ep-services-card:hover img { filter: brightness(1.05); }
.ep-services-card:hover .ep-services-card__content strong { color: var(--ep-accent-text); }
.ep-services-workshop {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 4rem;
	max-width: 1440px;
	margin: 0 auto;
	padding: clamp(3rem, 6vw, 6rem) var(--ep-gouttiere);
	background: var(--ep-muted);
}
.ep-services-workshop figure { margin: 0; overflow: hidden; }
.ep-services-workshop figure img { display: block; width: 100%; height: 100%; min-height: 24rem; object-fit: cover; border-radius: var(--ep-radius-media); }
.ep-services-workshop__copy { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; }
.ep-services-workshop h2 { max-width: 16ch; margin: 0 0 1.6rem; font-size: clamp(2.3rem, 3.6vw, 3.8rem); }
.ep-services-workshop__copy > p { max-width: 38rem; margin: 0; color: var(--ep-muted-foreground); }
.ep-services-workshop ol { align-self: stretch; margin: 2.4rem 0 2rem; padding: 0; border-top: 1px solid var(--ep-border); list-style: none; }
.ep-services-workshop li { display: grid; grid-template-columns: minmax(7rem, .4fr) minmax(0, .6fr); gap: 1rem; padding: 1rem 0; border-bottom: 1px solid var(--ep-border); }
.ep-services-workshop li strong { font-family: var(--ep-font-heading); font-size: 1.04rem; }
.ep-services-workshop li span { color: var(--ep-muted-foreground); font-size: .9rem; }
.ep-services-advice { max-width: 76rem; margin: 0 auto; padding: clamp(3.5rem, 6vw, 6rem) var(--ep-gouttiere); border: 0; }
.ep-services-advice > h2 { max-width: 27ch; margin: 0 0 1.5rem; font-size: clamp(2rem, 3.3vw, 3.5rem); }
.ep-services-advice .ep-seo-complement__lead { max-width: 64ch; color: var(--ep-muted-foreground); font-size: 1.1rem; }
.ep-services-advice .ep-seo-complement__grid { grid-template-columns: 1fr; margin-top: 3rem; }
.ep-services-advice .ep-seo-complement__grid > div { padding: 0; background: transparent; box-shadow: none; }
.ep-services-advice details { border-color: var(--ep-border); }
.ep-services-cta {
	display: grid;
	justify-items: start;
	max-width: var(--ep-content);
	margin: 0 auto;
	padding: clamp(3.5rem, 6vw, 6rem) var(--ep-gouttiere);
	border-top: 1px solid var(--ep-border);
}
.ep-services-cta h2 { max-width: 20ch; margin: 0 0 1.3rem; font-size: clamp(2.5rem, 4.5vw, 4.5rem); }
.ep-services-cta p { max-width: 40rem; margin: 0 0 2rem; color: var(--ep-muted-foreground); font-size: 1.1rem; }
.ep-services-cta .ep-services-cta__actions { max-width: none; margin: 0; font-size: inherit; }
.ep-services-tel { white-space: nowrap; font-variant-numeric: tabular-nums; }

/* Catalogue filters have explicit foreground/background pairs in both modes. */
.woocommerce.archive .product-archive-hero-section { padding-block: 2.3rem 1.7rem; min-height: 0; background: var(--ep-surface); }
.woocommerce.archive .product-archive-title h1 { font-size: clamp(2.8rem, 4.5vw, 4.7rem); text-transform: uppercase; }
.woocommerce.archive .content-area { margin-top: 1.5rem; }
.woocommerce-products-header .page-description > .ep-lead { max-width: 65ch; font-size: .97rem; color: var(--ep-muted-foreground); margin-bottom: 1.2rem; }
.site .ep-filtres--catalogue { padding-block: 1.7rem; }
.site .ep-filtres--catalogue a.ep-filtre {
	border: 1px solid var(--ep-border);
	border-radius: var(--ep-radius-button);
	box-shadow: none;
	background: var(--ep-surface);
	color: var(--ep-dark) !important;
	padding: .6rem .8rem;
	font-size: .85rem;
}
.site .ep-filtres--catalogue a.ep-filtre:hover { background: var(--ep-muted); color: var(--ep-dark) !important; border-color: var(--ep-primary); }
.site .ep-filtres--catalogue a.ep-filtre.est-actif,
.site .ep-filtres--catalogue a.ep-filtre.est-actif:hover { background: var(--ep-primary); color: #171613 !important; border-color: var(--ep-primary); }
.site .ep-filtres--catalogue .ep-filtre-n { background: var(--ep-muted); color: var(--ep-dark); border-radius: var(--ep-radius-chip); }
.site .ep-filtres--catalogue .est-actif .ep-filtre-n { background: #171613; color: #fafaf7; }
.ep-filtres-entete h2 { font-size: 1.55rem; }
.ep-filtres-titre { display: none; }
.woocommerce .woocommerce-result-count { color: var(--ep-muted-foreground); font-size: .85rem; }
.woocommerce ul.products li.product { border: 0; }
.woocommerce ul.products li.product .product-details { padding: 1.2rem 0 1.4rem; border-bottom: 1px solid var(--ep-border); }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: clamp(1.2rem, 1.8vw, 1.7rem); line-height: 1.1; }
.woocommerce ul.products li.product .woocommerce-loop-product__title a { color: var(--ep-dark) !important; }
.woocommerce ul.products li.product .woocommerce-loop-product__title a:hover { color: var(--ep-primary) !important; }
.woocommerce ul.products li.product .ep-product-hint { color: var(--ep-muted-foreground); font-size: .8rem; }
.woocommerce ul.products li.product .product-action-wrap a { min-height: 40px; padding: .65rem .85rem; font-size: .8rem; }
.woocommerce ul.products li.product .product-action-wrap a.ep-btn--ghost { background: transparent !important; border-color: var(--ep-border) !important; color: var(--ep-dark) !important; }
.woocommerce ul.products li.product .product-action-wrap a.ep-btn--ghost:hover { background: var(--ep-primary) !important; color: #171613 !important; border-color: var(--ep-primary) !important; }

.woocommerce.single-product div.product div.summary { background: var(--ep-surface); padding: 0 0 2rem; }
.woocommerce.single-product .ep-product-overview,
.woocommerce.single-product .ep-product-overview p,
.woocommerce.single-product .ep-product-overview li,
.woocommerce.single-product .ep-devis-cta__note { color: var(--ep-muted-foreground); }
.woocommerce.single-product .ep-product-overview h3 { color: var(--ep-dark); }
.woocommerce.single-product div.product .product_title { font-size: clamp(2.5rem, 4vw, 4.2rem); }
.woocommerce.single-product div.product div.images > .woocommerce-product-gallery__wrapper,
.woocommerce.single-product div.product div.images .flex-viewport { background: var(--ep-muted); }
.woocommerce.single-product .ep-product-context a { color: var(--ep-dark); }
.woocommerce.single-product .ep-product-context a:hover { color: var(--ep-primary); }
.woocommerce.single-product .ep-devis-cta { padding-bottom: 1.5rem; border-bottom: 1px solid var(--ep-border); }
.woocommerce.single-product .ep-product-context { border-top: 0; padding-top: 0; }

@media (min-width: 769px) {
	.woocommerce.single-product div.product { gap: 2.5rem; padding-inline: var(--ep-gouttiere) !important; }
}
@media (max-width: 900px) {
	.ep-services-hero { gap: 2rem; }
	.ep-services-hero h1 { font-size: 4.1vw; }
	.ep-services-workshop { gap: 2rem; }
}
@media (max-width: 680px) {
	.ep-services-hero { grid-template-columns: 1fr; gap: 2rem; }
	.ep-services-hero h1 { font-size: 7.8vw; }
	.ep-services-hero__media { height: auto; aspect-ratio: 4 / 3; }
	.ep-services-grid { grid-template-columns: 1fr; gap: 1.8rem; }
	.ep-services-card img { aspect-ratio: 4 / 3; }
	.ep-services-hero__actions, .ep-services-cta__actions { align-items: stretch; flex-direction: column; }
	.ep-services-hero__actions .ep-btn, .ep-services-cta__actions .ep-btn { width: 100%; max-width: none; }
	.ep-services-cta { justify-items: stretch; }
	.ep-services-workshop li { grid-template-columns: 1fr; gap: .2rem; }
	.ep-services-workshop { grid-template-columns: 1fr; }
	.ep-services-workshop figure img { height: auto; min-height: 0; aspect-ratio: 4 / 3; }
	.woocommerce.single-product div.product div.summary { padding: 1.5rem 1.25rem; }
}

/* Studio composition: a new homepage structure, isolated from legacy blocks. */
.ep-studio { background: var(--ep-surface); color: var(--ep-dark); }
.ep-studio * { box-sizing: border-box; }
/* Réalisations archive: framed photography, one card rhythm, native filters. */
.ep-realisations-archive { --ep-portfolio-radius: var(--ep-radius-media); --ep-portfolio-radius-control: var(--ep-radius-button); background: var(--ep-surface); }
.ep-realisations-archive a:focus-visible { outline: 3px solid var(--ep-accent-text); outline-offset: 4px; }
.ep-realisations-archive h1,
.ep-realisations-archive h2,
.ep-realisations-archive h3 { color: var(--ep-dark); hyphens: none; overflow-wrap: normal; }
.ep-portfolio-hero {
	display: block;
	max-width: var(--ep-content);
	margin: 0 auto;
	padding: clamp(2rem, 3.5vw, 3.5rem) var(--ep-gouttiere) clamp(1.4rem, 2.5vw, 2.25rem);
}
.ep-portfolio-hero__title { display: flex; flex-wrap: wrap; align-items: baseline; gap: .25rem 1rem; margin-bottom: .6rem; }
.ep-portfolio-hero h1 { margin: 0; font-size: clamp(2.5rem, 4.5vw, 4.5rem); line-height: 1; letter-spacing: -.035em; text-wrap: balance; }
.ep-portfolio-hero__lead { max-width: 68ch; margin: 0; color: var(--ep-muted-foreground); font-size: clamp(.98rem, 1.2vw, 1.08rem); line-height: 1.55; text-wrap: pretty; }
.ep-portfolio-count { flex: none; margin: 0; color: var(--ep-muted-foreground); font-size: .87rem; font-weight: 650; white-space: nowrap; font-variant-numeric: tabular-nums; }

/* Sticky filter bar: frosted, one row of pill controls. */
.ep-portfolio-bar { position: sticky; top: var(--ep-bar-top, 0px); z-index: 30; scroll-margin-top: var(--ep-bar-top, 0px); background: color-mix(in srgb, var(--ep-surface) 90%, transparent); -webkit-backdrop-filter: saturate(1.4) blur(14px); backdrop-filter: saturate(1.4) blur(14px); border-bottom: 1px solid transparent; transition: border-color .25s var(--ep-ease), box-shadow .25s var(--ep-ease); }
.ep-portfolio-bar.is-stuck { border-bottom-color: var(--ep-border); box-shadow: 0 10px 30px -22px rgb(23 22 19 / 35%); }
.ep-portfolio-bar__inner { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1rem; max-width: var(--ep-content); margin: 0 auto; padding: .7rem var(--ep-gouttiere); }
.ep-portfolio-bar .ep-portfolio-dropdowns { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; min-width: 0; }
.ep-portfolio-bar .ep-portfolio-primary-filters { display: contents; }
.ep-portfolio-bar .ep-portfolio-dropdown { position: relative; min-width: 0; }
.ep-portfolio-bar .ep-portfolio-dropdown > label,
.ep-portfolio-bar .ep-portfolio-filter-label { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.ep-portfolio-bar select,
.ep-portfolio-bar summary { box-sizing: border-box; display: inline-flex; align-items: center; gap: .55rem; height: 42px; max-width: 15rem; padding: 0 2.2rem 0 1rem; border: 1px solid var(--ep-border); border-radius: 999px; background: var(--ep-surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 4.5 6 8l3.5-3.5' fill='none' stroke='%23171613' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right .85rem center; color: var(--ep-dark); font: inherit; font-size: .88rem; font-weight: 600; line-height: 1; text-overflow: ellipsis; white-space: nowrap; cursor: pointer; appearance: none; list-style: none; transition: border-color .2s var(--ep-ease), background-color .2s var(--ep-ease), color .2s var(--ep-ease); }
.ep-portfolio-bar summary::-webkit-details-marker { display: none; }
/* The global form rule forces field chrome with !important; pills need their own. */
.ep-portfolio-bar select { border: 1px solid var(--ep-border) !important; border-radius: 999px !important; background: var(--ep-surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 4.5 6 8l3.5-3.5' fill='none' stroke='%23171613' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right .85rem center !important; color: var(--ep-dark) !important; }
.ep-portfolio-bar select:hover { border-color: var(--ep-dark) !important; }
/* Size each pill to its visible label, not to its longest option (Chromium; others keep the native width). */
.ep-portfolio-bar .ep-portfolio-primary-filters select { field-sizing: content; min-width: 6.5rem; }
.ep-portfolio-bar .is-active > select { border-color: var(--ep-dark) !important; background: var(--ep-dark) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 4.5 6 8l3.5-3.5' fill='none' stroke='%23ffffff' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right .85rem center !important; color: #fff !important; }
.ep-portfolio-more__grid select { border-radius: var(--ep-portfolio-radius-control) !important; }

.ep-portfolio-bar summary::after { content: none; }
.ep-portfolio-bar select:hover,
.ep-portfolio-bar summary:hover { border-color: var(--ep-dark); }
.ep-portfolio-bar select:focus-visible,
.ep-portfolio-bar summary:focus-visible { outline: 3px solid var(--ep-accent-text); outline-offset: 2px; }
/* An applied filter reads black, like a pressed key. */
.ep-portfolio-bar .is-active > select,
.ep-portfolio-bar .is-active > summary { border-color: var(--ep-dark); background-color: var(--ep-dark); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 4.5 6 8l3.5-3.5' fill='none' stroke='%23ffffff' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); color: #fff; }
.ep-portfolio-bar details { position: relative; }
.ep-portfolio-bar summary span { overflow: hidden; text-overflow: ellipsis; }
.ep-portfolio-more > summary span { display: inline-grid; place-items: center; min-width: 1.35rem; height: 1.35rem; padding: 0 .3rem; border-radius: 999px; background: var(--ep-primary); color: #171613; font-size: .75rem; }
.ep-portfolio-category__menu,
.ep-portfolio-clients__menu,
.ep-portfolio-more__grid { position: absolute; z-index: 40; top: calc(100% + .5rem); left: 0; width: min(26rem, calc(100vw - 2rem)); max-height: min(28rem, 65vh); overflow-y: auto; padding: .35rem 1rem; border: 1px solid var(--ep-border); border-radius: var(--ep-portfolio-radius); background: var(--ep-surface); box-shadow: 0 18px 40px -16px rgb(23 22 19 / 30%); }
.ep-portfolio-more__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; width: min(34rem, calc(100vw - 2rem)); padding: 1rem; }
.ep-portfolio-more__grid .ep-portfolio-dropdown > label { position: static !important; width: auto; height: auto; overflow: visible; clip: auto; clip-path: none; margin-bottom: .35rem; color: var(--ep-muted-foreground); font-size: .78rem; font-weight: 650; }
.ep-portfolio-more__grid select { width: 100%; max-width: none; }
.ep-portfolio-category__group { padding: .7rem 0; }
.ep-portfolio-category__group + .ep-portfolio-category__group { border-top: 1px solid var(--ep-border); }
.ep-portfolio-category__parent,
.ep-portfolio-category__child { display: flex; align-items: center; gap: .65rem; min-height: 36px; margin: 0; color: var(--ep-dark); font-size: .88rem; line-height: 1.35; cursor: pointer; }
.ep-portfolio-category__parent { font-weight: 700; }
.ep-portfolio-category__child { padding-left: 1.2rem; color: var(--ep-ink-soft); }
.ep-portfolio-category input[type="checkbox"] { flex: none; width: 17px; height: 17px; margin: 0; accent-color: var(--ep-primary-dark); }
.ep-portfolio-category__parent:hover,
.ep-portfolio-category__child:hover { color: var(--ep-accent-text); }
/* Each category folds its sub-categories behind a chevron (live mode only:
   without JS every sub-category stays visible). */
.ep-portfolio-category__head { display: flex; align-items: center; justify-content: space-between; gap: .5rem; }
.ep-portfolio-category__head .ep-portfolio-category__parent { flex: 1; min-width: 0; }
.ep-portfolio-category__toggle { display: none; flex: none; align-items: center; gap: .35rem; min-width: 44px; height: 36px; margin: 0; padding: 0 .55rem; border: 1px solid transparent; border-radius: var(--ep-radius-button); background: transparent; color: var(--ep-muted-foreground); font: inherit; font-size: .78rem; font-weight: 650; font-variant-numeric: tabular-nums; cursor: pointer; transition: background-color .2s var(--ep-ease), color .2s var(--ep-ease); }
.ep-portfolio-category__toggle:hover { background: var(--ep-muted); color: var(--ep-dark); }
.ep-portfolio-category__toggle svg { transition: transform .25s var(--ep-ease); }
.ep-portfolio-category__group.is-open .ep-portfolio-category__toggle { color: var(--ep-dark); }
.ep-portfolio-category__group.is-open .ep-portfolio-category__toggle svg { transform: rotate(180deg); }
.has-ep-live .ep-portfolio-category__toggle { display: inline-flex; }
.has-ep-live .ep-portfolio-category__group:not(.is-open) .ep-portfolio-category__children { display: none; }
.ep-portfolio-category__children { padding-bottom: .2rem; }
.ep-portfolio-bar .ep-portfolio-primary-filters .ep-btn { min-height: 42px; margin: 0; padding: 0 1.1rem; border-radius: 999px !important; }
.ep-realisations-archive.has-ep-live .ep-portfolio-primary-filters .ep-btn { display: none; }
.ep-portfolio-bar__clear { display: inline-flex; align-items: center; min-height: 42px; color: var(--ep-dark) !important; font-size: .87rem; font-weight: 650; text-decoration: underline; text-decoration-color: var(--ep-border); text-underline-offset: .25em; }
.ep-portfolio-bar__clear:hover { text-decoration-color: var(--ep-primary); }
.ep-portfolio-active-filters { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; max-width: var(--ep-content); margin: 0 auto; padding: 0 var(--ep-gouttiere) .7rem; }
.ep-portfolio-active-filters a { display: inline-flex; align-items: center; gap: .35rem; min-height: 32px; padding: 0 .7rem; border-radius: 999px; background: var(--ep-muted); color: var(--ep-dark) !important; font-size: .8rem; text-decoration: none; }
.ep-portfolio-active-filters a small { color: var(--ep-muted-foreground); font-size: .75rem; }
.ep-portfolio-active-filters a > svg { flex: none; color: var(--ep-muted-foreground); }
.ep-portfolio-active-filters a:hover { background: var(--ep-primary-soft); }

/* View switch (three or four positions): one track, a pill that slides to the current view. */
.ep-portfolio-views { display: grid; grid-template-columns: repeat(var(--ep-vues, 3), minmax(0, auto)); gap: 2px; padding: 3px; border: 1px solid var(--ep-border); border-radius: 999px; background: var(--ep-muted); }
.ep-portfolio-views__pill { grid-row: 1; grid-column: var(--ep-vue-index, 1); border-radius: 999px; background: var(--ep-primary); view-transition-name: ep-vue-pill; }
.ep-portfolio-views a { grid-row: 1; display: inline-flex; align-items: center; justify-content: center; min-height: 36px; padding: 0 1.05rem; border-radius: 999px; color: var(--ep-ink-soft, var(--ep-dark)) !important; font-size: .88rem; font-weight: 650; line-height: 1.2; text-decoration: none; white-space: nowrap; transition: background-color .2s var(--ep-ease), color .2s var(--ep-ease); }
.ep-portfolio-views a:nth-of-type(1) { grid-column: 1; view-transition-name: ep-vue-1; }
.ep-portfolio-views a:nth-of-type(2) { grid-column: 2; view-transition-name: ep-vue-2; }
.ep-portfolio-views a:nth-of-type(3) { grid-column: 3; view-transition-name: ep-vue-3; }
.ep-portfolio-views a:nth-of-type(4) { grid-column: 4; view-transition-name: ep-vue-4; }
.ep-portfolio-views a:not([aria-current]):hover { background: var(--ep-surface); color: var(--ep-dark) !important; }
.ep-portfolio-views a[aria-current="page"] { color: #171613 !important; }
.ep-realisations-archive .ep-realisations-grid { view-transition-name: ep-vue-results; }
::view-transition-group(ep-vue-pill) { animation-duration: .38s; animation-timing-function: cubic-bezier(.16, 1, .3, 1); }
::view-transition-old(ep-vue-pill), ::view-transition-new(ep-vue-pill) { height: 100%; }
::view-transition-old(root), ::view-transition-new(root) { animation-duration: .22s; }
html[data-vue-dir]::view-transition-old(ep-vue-results) { animation: ep-vue-out .22s cubic-bezier(.4, 0, 1, 1) both; }
html[data-vue-dir]::view-transition-new(ep-vue-results) { animation: ep-vue-in .42s cubic-bezier(.16, 1, .3, 1) both; }
html[data-vue-dir="back"]::view-transition-old(ep-vue-results) { --ep-vue-shift: 48px; }
html[data-vue-dir="back"]::view-transition-new(ep-vue-results) { --ep-vue-shift: -48px; }
html[data-vue-dir="forward"]::view-transition-old(ep-vue-results) { --ep-vue-shift: -48px; }
html[data-vue-dir="forward"]::view-transition-new(ep-vue-results) { --ep-vue-shift: 48px; }
@keyframes ep-vue-out { to { opacity: 0; transform: translateX(var(--ep-vue-shift, -48px)); } }
@keyframes ep-vue-in { from { opacity: 0; transform: translateX(var(--ep-vue-shift, 48px)); } }
@media (prefers-reduced-motion: reduce) {
	::view-transition-group(*), ::view-transition-old(*), ::view-transition-new(*) { animation: none !important; }
	.ep-realisations-archive .ep-realisations-grid .ep-card--portfolio .ep-card__media,
	.ep-realisations-archive .ep-realisations-grid .ep-card--portfolio .ep-card__body { transition: opacity .15s linear; transform: none !important; }
}

.ep-portfolio-workspace { max-width: var(--ep-content); margin: 0 auto; padding: clamp(1rem, 2vw, 1.5rem) var(--ep-gouttiere) clamp(3.5rem, 6vw, 6rem); }
.ep-portfolio-empty-link { display: inline-flex; align-items: center; min-height: 44px; margin-right: 1rem; color: var(--ep-dark) !important; font-weight: 650; text-underline-offset: .25em; }
.ep-realisations-archive .ep-btn { border-radius: var(--ep-portfolio-radius-control) !important; }

/* Shared card defaults (similar projects, prestation pages). */
.ep-realisations-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2.5rem 1.5rem; }
.ep-realisations-grid .ep-card--portfolio,
.ep-realisations-grid .ep-card--portfolio:hover { position: relative; display: flex; flex-direction: column; min-width: 0; border: 0; border-radius: 0 !important; background: transparent !important; box-shadow: none !important; transform: none; overflow: visible; color: var(--ep-dark) !important; }
.ep-realisations-grid .ep-card--portfolio .ep-card__media { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--ep-portfolio-radius, 12px) !important; transform: none; transition: filter .3s var(--ep-ease), transform .7s var(--ep-ease); }
.ep-realisations-grid .ep-card--portfolio .ep-card__body { flex: 1; padding: 1rem 0 1.2rem; border-bottom: 1px solid var(--ep-border); }
/* Type label sits on the photo: dark for a réalisation, orange for a projet réalisé. */
.ep-realisations-grid .ep-card--portfolio .ep-card__kind { position: absolute; top: .7rem; left: .7rem; z-index: 2; display: inline-flex; align-items: center; margin: 0; padding: .32rem .62rem; border: 0; border-radius: var(--ep-portfolio-radius-control, 8px); background: #171613; color: #fff; font-size: .72rem; font-weight: 700; line-height: 1.2; letter-spacing: 0; text-transform: none; }
.ep-realisations-grid .ep-card--portfolio[data-content-type="projet"] .ep-card__kind { background: var(--ep-primary); color: #171613; }
.ep-realisations-grid .ep-card--portfolio:not(:has(.ep-card__media)) .ep-card__kind { position: static; margin-bottom: .6rem; }
.ep-realisations-grid .ep-card--portfolio .ep-badge { display: block; margin: 0; padding: 0; border: 0; border-radius: 0; background: none; color: var(--ep-muted-foreground); font-size: .78rem; font-weight: 600; line-height: 1.4; letter-spacing: 0; text-transform: none; }
.ep-realisations-grid .ep-card--portfolio .ep-badge--easypanneau { color: var(--ep-accent-text); font-weight: 700; }
.ep-realisations-grid .ep-card--portfolio .ep-card__title { margin: .25rem 0 .25rem; font-size: clamp(1.05rem, 1.4vw, 1.3rem); font-weight: 720; line-height: 1.15; letter-spacing: -.025em; transition: color .2s var(--ep-ease); }
.ep-realisations-grid .ep-card--portfolio .ep-card__meta { color: var(--ep-muted-foreground); font-size: .84rem; line-height: 1.45; }
.ep-realisations-grid .ep-card--portfolio:hover .ep-card__media { filter: brightness(1.05); }
.ep-realisations-grid .ep-card--portfolio:hover .ep-card__title { color: var(--ep-accent-text); }

/* Planche contact: square photos, the caption sits under each photo at every width. */
.ep-realisations-archive .ep-realisations-grid { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 2rem 12px; }
.ep-realisations-archive .ep-realisations-grid .ep-card--portfolio .ep-card__media { aspect-ratio: 1; }
.ep-realisations-archive .ep-realisations-grid .ep-card--portfolio .ep-card__body { padding: .7rem 0 0; border: 0; }
.ep-realisations-archive .ep-realisations-grid .ep-card--portfolio .ep-badge { font-size: .75rem; }
.ep-realisations-archive .ep-realisations-grid .ep-card--portfolio .ep-card__title { margin: .2rem 0 .45rem; font-size: 1.05rem; }
.ep-realisations-archive .ep-realisations-grid .ep-card--portfolio .ep-card__meta { font-size: .8rem; }
.ep-realisations-archive .ep-realisations-grid .ep-card--portfolio:focus-visible { outline: 3px solid var(--ep-accent-text); outline-offset: 3px; }
@media (max-width: 760px) {
	.ep-realisations-archive .ep-realisations-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.4rem .75rem; }
	.ep-realisations-archive .ep-realisations-grid .ep-card--portfolio .ep-card__title { font-size: 1rem; }
	.ep-realisations-archive .ep-realisations-grid .ep-card--portfolio .ep-card__meta { font-size: .78rem; }
}

.ep-realisations-archive .ep-pagination { margin-top: 3rem; }
.ep-realisations-archive .ep-pagination .navigation { margin: 0; text-align: left; }
.ep-realisations-archive .ep-pagination .nav-links { display: flex; flex-wrap: wrap; justify-content: flex-start; align-items: center; gap: .4rem; }
.ep-realisations-archive .ep-pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0 .75rem; border: 1px solid var(--ep-border); border-radius: var(--ep-portfolio-radius-control); background: var(--ep-surface); color: var(--ep-dark) !important; font-size: .9rem; font-weight: 650; text-decoration: none; }
.ep-realisations-archive .ep-pagination a.page-numbers:hover { border-color: var(--ep-primary); }
.ep-realisations-archive .ep-pagination .page-numbers.current { border-color: var(--ep-primary); background: var(--ep-primary); color: #171613 !important; }
.ep-realisations-archive .ep-pagination .page-numbers.dots { border-color: transparent; }
.ep-infinite-scroll { min-height: 1px; padding-top: 1rem; text-align: center; }
.ep-infinite-scroll__sentinel { height: 1px; }
.ep-infinite-scroll__status { margin: .5rem 0; color: var(--ep-muted-foreground); font-size: .9rem; }
.ep-infinite-scroll__retry { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; margin-top: .75rem; padding: .65rem 1rem; border: 1px solid var(--ep-border); border-radius: var(--ep-portfolio-radius-control); background: var(--ep-surface); color: var(--ep-dark); font: inherit; font-weight: 650; cursor: pointer; }
.ep-infinite-scroll__retry:hover { border-color: var(--ep-primary); }
.ep-infinite-scroll__retry:focus-visible { outline: 3px solid var(--ep-accent-text); outline-offset: 3px; }
.ep-infinite-scroll [hidden],
.ep-realisations-archive .ep-pagination[hidden] { display: none !important; }

.ep-realisations-archive .ep-seo-complement { box-sizing: border-box; width: min(100% - 2 * var(--ep-gouttiere), var(--ep-content) - 2 * var(--ep-gouttiere)); max-width: none; margin-inline: auto; padding-inline: 0; }
.ep-realisations-archive .ep-seo-complement > h2 { max-width: 24ch; margin-top: 0; }
.ep-portfolio-cta { display: grid; justify-items: start; padding: clamp(3.5rem, 6vw, 6rem) max(var(--ep-gouttiere), calc((100% - var(--ep-content)) / 2 + var(--ep-gouttiere))); text-align: left; }
.ep-portfolio-cta h2 { max-width: 22ch; margin: 0 0 2rem; font-size: clamp(2.2rem, 4vw, 4rem); line-height: 1; letter-spacing: -.045em; }
.ep-portfolio-cta__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; }
.ep-portfolio-tel { display: inline-flex; align-items: center; min-height: 44px; border-bottom: 1px solid var(--ep-border); color: var(--ep-dark) !important; font-weight: 650; font-variant-numeric: tabular-nums; white-space: nowrap; text-decoration: none; }
.ep-portfolio-tel:hover { border-color: var(--ep-primary); }

@media (max-width: 1024px) {
	.ep-realisations-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
	.ep-portfolio-hero { display: block; }
	.ep-portfolio-hero h1 { font-size: clamp(2rem, 9vw, 3rem); }
	/* One scrolling row of pills; menus open as panels under the bar. */
	.ep-portfolio-bar__inner { flex-wrap: nowrap; gap: .5rem; padding-block: .55rem; overflow-x: auto; scrollbar-width: none; }
	.ep-portfolio-bar__inner::-webkit-scrollbar { display: none; }
	/* Fade the right edge so pills past the screen read as reachable. */
	.ep-portfolio-bar__inner { -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 2.5rem), transparent); mask-image: linear-gradient(90deg, #000 calc(100% - 2.5rem), transparent); padding-right: 2.5rem; }
	.ep-portfolio-bar__inner > *, .ep-portfolio-bar .ep-portfolio-dropdowns > *, .ep-portfolio-bar .ep-portfolio-primary-filters > * { flex: none; }
	.ep-portfolio-bar .ep-portfolio-dropdowns { flex-wrap: nowrap; }
	.ep-portfolio-bar details { position: static; }
	.ep-portfolio-category__menu,
	.ep-portfolio-clients__menu,
	.ep-portfolio-more__grid { position: fixed; top: 100%; left: var(--ep-gouttiere); right: var(--ep-gouttiere); width: auto; max-height: 60vh; }
	.ep-portfolio-more__grid { grid-template-columns: minmax(0, 1fr); }
	.ep-portfolio-views a { padding-inline: .8rem; font-size: .84rem; }
}
/* Four views must still fit a phone width without hiding the current one. */
@media (max-width: 480px) {
	.ep-portfolio-views--compact a { padding-inline: .55rem; font-size: .78rem; }
}
@media (max-width: 600px) {
	.ep-realisations-grid { grid-template-columns: minmax(0, 1fr); gap: 2rem; }
	.ep-portfolio-cta__actions { flex-direction: column; align-items: stretch; width: 100%; }
	.ep-portfolio-cta__actions .ep-btn { width: 100%; max-width: none; }
	.ep-portfolio-tel { align-self: flex-start; }
}
/* Fiche réalisation: the photographs lead, details stay close to the request. */
.ep-realisation { max-width: var(--ep-content); margin: 0 auto; padding: clamp(2rem, 4vw, 3.5rem) var(--ep-gouttiere) clamp(3.5rem, 6vw, 6rem); background: var(--ep-surface); }
.ep-realisation h1, .ep-realisation h2 { color: var(--ep-dark); hyphens: none; overflow-wrap: normal; }
.ep-realisation a:focus-visible { outline: 3px solid var(--ep-accent-text); outline-offset: 4px; }
.ep-realisation__crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 0 .6rem; margin-bottom: 1.25rem; color: var(--ep-muted-foreground); font-size: .87rem; }
.ep-realisation__crumbs a { display: inline-flex; align-items: center; min-height: 44px; color: var(--ep-dark) !important; font-weight: 650; text-decoration: none; }
.ep-realisation__crumbs a:hover { color: var(--ep-accent-text) !important; }
.ep-realisation__head h1 { margin: 0; }
.ep-realisation__nom { display: block; max-width: 20ch; font-size: clamp(2.5rem, 5vw, 4.75rem); line-height: .98; letter-spacing: -.05em; text-wrap: balance; }
.ep-realisation__sous-titre { display: block; max-width: 56ch; margin-top: 1rem; color: var(--ep-muted-foreground); font-family: var(--ep-font-body, inherit); font-size: clamp(1.05rem, 1.35vw, 1.22rem); font-weight: 450; line-height: 1.45; letter-spacing: -.005em; text-wrap: pretty; }
.ep-realisation__meta { display: flex; flex-wrap: wrap; align-items: center; gap: .2rem .6rem; margin: 1.5rem 0 0; color: var(--ep-muted-foreground); font-size: .95rem; }
.ep-realisation__meta > span:first-child { color: var(--ep-accent-text); font-weight: 700; }
.ep-realisation__meta a,
.ep-realisation .ep-fiche a,
.ep-realisation__texte a { color: var(--ep-dark) !important; font-weight: 650; text-decoration: underline; text-decoration-color: var(--ep-border); text-decoration-thickness: 1px; text-underline-offset: .22em; }
.ep-realisation__meta a:hover,
.ep-realisation .ep-fiche a:hover,
.ep-realisation__texte a:hover { color: var(--ep-accent-text) !important; text-decoration-color: currentColor; }

/* Justified gallery: each photo keeps its own shape (portraits stay upright),
   rows share one height. A first landscape photo opens full width. */
.ep-realisation__galerie { --ep-rang: 30rem; display: flex; flex-wrap: wrap; gap: 10px; margin-top: clamp(2rem, 4vw, 3rem); }
.ep-realisation__galerie::after { content: ""; flex: 400 1 0; }
.ep-realisation__galerie figure { flex: calc(var(--r, 1.333) * 100) 1 calc(var(--r, 1.333) * var(--ep-rang)); min-width: 0; margin: 0; }
.ep-realisation__galerie img { display: block; width: 100%; height: auto; max-height: min(82vh, 56rem); aspect-ratio: var(--r, 4 / 3); object-fit: cover; border-radius: var(--ep-radius-media); background: var(--ep-muted); }
.ep-realisation__galerie figure.ep-photo--paysage:first-child { flex-basis: 100%; }

.ep-realisation__body { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(18rem, 1fr); gap: clamp(2rem, 6vw, 6rem); align-items: start; margin-top: clamp(3rem, 6vw, 5rem); }
.ep-realisation__texte { max-width: 65ch; color: var(--ep-ink-soft, var(--ep-dark)); }
.ep-realisation__texte > :first-child { margin-top: 0; }
.ep-realisation__texte .ep-lead { color: var(--ep-dark); font-size: clamp(1.15rem, 1.6vw, 1.4rem); line-height: 1.4; letter-spacing: -.015em; }
/* Reading scale: H2 opens a section, H3 is a question or sub-point under it. */
.ep-realisation__texte h2 { margin: clamp(2.5rem, 4vw, 3.25rem) 0 .9rem; font-size: clamp(1.5rem, 2.2vw, 2rem); line-height: 1.1; letter-spacing: -.03em; text-wrap: balance; }
.ep-realisation__texte h3 { margin: 1.6rem 0 .4rem; padding-top: 1.1rem; border-top: 1px solid var(--ep-border); color: var(--ep-dark); font-size: clamp(1.06rem, 1.2vw, 1.18rem); font-weight: 700; line-height: 1.3; letter-spacing: -.012em; text-wrap: balance; }
.ep-realisation__texte h2 + h3 { margin-top: 1.25rem; }
.ep-realisation__texte h3 + p { margin-top: 0; }
.ep-realisation__texte p, .ep-realisation__texte li { line-height: 1.65; }
.ep-realisation__texte ul { padding-left: 1.2rem; }
.ep-realisation__parent, .ep-product-project { display: grid; gap: .35rem; margin-top: 2.5rem; padding-top: 1.25rem; border-top: 1px solid var(--ep-border); }
.ep-realisation__parent > span, .ep-product-project { color: var(--ep-muted-foreground); font-size: .9rem; }
.ep-realisation__parent a, .ep-product-project a { color: var(--ep-dark) !important; font-weight: 700; text-underline-offset: .25em; }
/* Projet réalisé: a landing page. Title and contact up top, a full-bleed cover,
   then each attached réalisation as a photo/text chapter across the full width. */
/* Hero: the cover photo runs edge to edge under the site header; title, client
   and contact sit on a warm-black scrim at its foot. */
body:has(.ep-realisation__head--hero) { overflow-x: clip; }
.ep-realisation--projet:has(.ep-realisation__head--hero) { padding-top: 0; }
.ep-realisation__head--hero { position: relative; display: grid; align-items: end; width: 100vw; min-height: clamp(34rem, calc(100svh - 73px), 58rem); margin-inline: calc(50% - 50vw); overflow: hidden; isolation: isolate; background: var(--ep-dark); color: #fff; }
.ep-realisation__hero-media { position: absolute; inset: 0; z-index: -1; margin: 0; }
.ep-realisation__hero-media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.ep-realisation__hero-media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgb(23 22 19 / 42%) 0, rgb(23 22 19 / 0) 22%, rgb(23 22 19 / 0) 38%, rgb(23 22 19 / 62%) 66%, rgb(23 22 19 / 90%) 100%); }
.ep-realisation__hero-inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(15rem, 21rem); grid-template-rows: 1fr auto auto; column-gap: clamp(2rem, 6vw, 6rem); align-items: end; box-sizing: border-box; width: min(100%, var(--ep-content)); min-height: inherit; margin-inline: auto; padding: 1rem var(--ep-gouttiere) clamp(2.5rem, 5vw, 4.5rem); }
.ep-realisation__head--hero .ep-realisation__crumbs { grid-column: 1 / -1; align-self: start; color: rgb(255 255 255 / 72%); }
.ep-realisation__head--hero .ep-realisation__crumbs a { color: #fff !important; }
.ep-realisation__head--hero .ep-realisation__crumbs a:hover { color: var(--ep-primary) !important; }
.ep-realisation__head--hero .ep-realisation__titre { grid-column: 1; grid-row: 2 / span 2; color: #fff; }
.ep-realisation__head--hero .ep-realisation__nom { max-width: 13ch; color: #fff; font-size: clamp(3rem, 7vw, 6rem); line-height: .93; letter-spacing: -.04em; text-wrap: balance; }
.ep-realisation__head--hero .ep-realisation__sous-titre { max-width: 40ch; margin-top: 1.25rem; color: rgb(255 255 255 / 86%); }
.ep-realisation__head--hero .ep-realisation__meta { grid-column: 2; grid-row: 2; align-self: end; margin: 0 0 1.4rem; color: rgb(255 255 255 / 80%); }
.ep-realisation__head--hero .ep-realisation__meta > span:first-child { color: var(--ep-primary); }
.ep-realisation__head--hero .ep-realisation__meta a { color: #fff !important; text-decoration-color: rgb(255 255 255 / 40%); }
.ep-realisation__head--hero .ep-realisation__meta a:hover { color: var(--ep-primary) !important; }
.ep-realisation__head--hero .ep-realisation__client-logo { filter: brightness(0) invert(1); }
.ep-realisation__head--hero a:focus-visible { outline-color: var(--ep-primary); }
.ep-realisation__head--hero .ep-realisation__tel { border-color: rgb(255 255 255 / 40%); color: #fff !important; }
.ep-realisation__head--hero .ep-realisation__tel:hover { border-color: var(--ep-primary); }
.ep-realisation__actions--head { grid-column: 2; grid-row: 3; }
.ep-realisation__actions--head .ep-btn { width: 100%; justify-content: center; }
@media (prefers-reduced-motion: no-preference) {
	.ep-realisation__hero-media img { animation: ep-hero-settle 1.6s cubic-bezier(.16, 1, .3, 1) both; }
	@keyframes ep-hero-settle { from { transform: scale(1.06); } to { transform: none; } }
}
.ep-realisation--projet .ep-realisation__galerie img { border-radius: var(--ep-radius-media); }
.ep-realisation--projet .ep-realisation__fiche { position: static; }
.ep-realisation--projet .ep-realisation__texte .ep-lead { font-size: clamp(1.25rem, 2vw, 1.65rem); line-height: 1.35; }

.ep-projet-recit { margin-top: clamp(4rem, 8vw, 7rem); }
.ep-projet-chapitre { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 2rem clamp(2rem, 5vw, 5.5rem); align-items: start; padding-block: clamp(3rem, 6vw, 5.5rem); border-top: 1px solid var(--ep-border); scroll-margin-top: 5rem; }
.ep-projet-chapitre:nth-of-type(even) { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
.ep-projet-chapitre:nth-of-type(even) .ep-projet-chapitre__photos { grid-column: 2; grid-row: 1; }
.ep-projet-chapitre:nth-of-type(even) .ep-projet-chapitre__corps { grid-column: 1; grid-row: 1; justify-self: end; }
.ep-projet-chapitre__corps { position: sticky; top: 6rem; max-width: 34rem; color: var(--ep-ink-soft, var(--ep-dark)); }
.ep-projet-chapitre__corps h2 { margin: 0 0 .6rem; color: var(--ep-dark); font-size: clamp(1.75rem, 2.8vw, 2.75rem); line-height: 1.02; letter-spacing: -.04em; text-wrap: balance; }
.ep-projet-chapitre__meta { margin: 0 0 1.5rem; color: var(--ep-muted-foreground); font-size: .85rem; font-weight: 600; }
.ep-projet-chapitre__texte p { margin: 0 0 1rem; line-height: 1.65; }
.ep-projet-chapitre__texte a { color: var(--ep-dark) !important; font-weight: 650; text-decoration: underline; text-decoration-color: var(--ep-border); text-decoration-thickness: 1px; text-underline-offset: .22em; }
.ep-projet-chapitre__texte a:hover { color: var(--ep-accent-text) !important; text-decoration-color: currentColor; }
.ep-projet-chapitre__photos { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; }
.ep-projet-chapitre__photos img { flex: calc(var(--r, 1.333) * 100) 1 calc(var(--r, 1.333) * 12rem); display: block; min-width: 0; width: 100%; height: auto; max-height: 80vh; aspect-ratio: var(--r, 4 / 3); object-fit: cover; border-radius: var(--ep-radius-media); background: var(--ep-muted); }
.ep-projet-chapitre__photos img.ep-photo--paysage:first-child { flex-basis: 100%; }
.ep-projet-chapitre__lien { display: inline-flex; align-items: center; gap: .5rem; min-height: 44px; margin-top: .5rem; border-bottom: 1px solid var(--ep-border); color: var(--ep-dark) !important; font-size: .9rem; font-weight: 650; text-decoration: none !important; }
.ep-projet-chapitre__lien:hover { border-color: var(--ep-primary); }

/* Conclusion: heading on the left, takeaways as ruled rows on the right. */
.ep-realisation__texte.ep-projet-conclusion { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); column-gap: clamp(2rem, 5vw, 5.5rem); max-width: none; padding-top: clamp(3rem, 6vw, 5.5rem); border-top: 1px solid var(--ep-border); }
.ep-projet-conclusion > * { grid-column: 2; max-width: 65ch; }
.ep-projet-conclusion > h2:first-child { grid-column: 1; grid-row: 1 / span 12; position: sticky; top: 6rem; align-self: start; max-width: 17ch; margin: 0; font-size: clamp(1.9rem, 3.3vw, 3.25rem); line-height: 1; letter-spacing: -.04em; text-wrap: balance; }
.ep-projet-conclusion > :nth-child(2) { margin-top: 0; }
.ep-projet-conclusion figure { max-width: none; margin: 0 0 2rem; }
.ep-projet-conclusion figure img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; border-radius: var(--ep-radius-media); background: var(--ep-muted); }
.ep-projet-conclusion figcaption { margin-top: .6rem; color: var(--ep-muted-foreground); font-size: .85rem; text-align: left; }
.ep-realisation__texte.ep-projet-conclusion ul { margin: 0 0 1.75rem; padding: 0; list-style: none; border-top: 1px solid var(--ep-border); }
.ep-projet-conclusion li { padding: 1.1rem 0; border-bottom: 1px solid var(--ep-border); }
.ep-projet-conclusion li strong { display: block; margin-bottom: .2rem; color: var(--ep-dark); font-size: 1.08rem; letter-spacing: -.01em; }

/* Closing call: phone first, then the written brief. */
.ep-projet-appel { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 1rem clamp(2rem, 5vw, 5rem); margin: clamp(4rem, 8vw, 7rem) calc(-1 * var(--ep-gouttiere)) 0; padding: clamp(2.75rem, 5.5vw, 5rem) var(--ep-gouttiere); background: var(--ep-muted); }
.ep-projet-appel h2 { margin: 0; color: var(--ep-dark); font-size: clamp(2.1rem, 4.4vw, 4.25rem); line-height: .98; letter-spacing: -.04em; text-wrap: balance; }
.ep-projet-appel p { grid-column: 1; margin: 0; color: var(--ep-ink-soft, var(--ep-dark)); font-size: clamp(1.02rem, 1.3vw, 1.15rem); }
.ep-projet-appel__actions { grid-column: 2; grid-row: 1 / span 2; display: flex; flex-wrap: wrap; gap: .75rem; }
.ep-projet-appel .ep-btn[href^="tel:"] { font-variant-numeric: tabular-nums; }
.ep-realisation--projet .ep-realisation__similaires { border-top: 0; }

.ep-projet-sommaire { margin: 0 0 1.75rem; }
.ep-projet-sommaire h3 { margin: 0 0 .25rem; color: var(--ep-muted-foreground); font-size: .85rem; font-weight: 650; letter-spacing: 0; }
.ep-projet-sommaire ol { display: grid; margin: 0; padding: 0; list-style: none; }
.ep-projet-sommaire a { display: flex; align-items: center; gap: .9rem; min-height: 44px; padding-block: .6rem; border-bottom: 1px solid var(--ep-border); color: var(--ep-dark) !important; font-size: .92rem; font-weight: 650; line-height: 1.3; text-decoration: none !important; }
.ep-projet-sommaire a:hover .ep-projet-sommaire__titre { color: var(--ep-accent-text); }
.ep-projet-sommaire__vignette { flex: none; width: 64px; height: 48px; object-fit: cover; border-radius: var(--ep-radius-chip); background: var(--ep-muted); }
.ep-projet-sommaire__texte { display: grid; gap: .15rem; }
.ep-projet-sommaire__titre { transition: color .2s var(--ep-ease); }
.ep-projet-sommaire__famille { color: var(--ep-muted-foreground); font-size: .78rem; font-weight: 500; }
@media (prefers-reduced-motion: no-preference) { html:has(.ep-projet-sommaire) { scroll-behavior: smooth; } }
/* Fiche links: a 44px hit area without changing the row rhythm. */
.ep-realisation .ep-fiche dd a { display: inline-block; padding-block: .75rem; margin-block: -.75rem; }
/* Réalisation → its project, right in the header meta line. */
.ep-realisation__projet { display: inline-flex; align-items: baseline; gap: .4rem; margin-left: .35rem; padding-left: .75rem; border-left: 1px solid var(--ep-border); color: var(--ep-muted-foreground); }
@media (max-width: 900px) {
	/* Phones: a project shows its context, contents and contact before the story. */
	.ep-realisation--projet .ep-realisation__fiche { order: -1; }
	.ep-realisation__hero-inner { grid-template-columns: minmax(0, 1fr); grid-template-rows: 1fr auto; }
	.ep-realisation__head--hero .ep-realisation__titre,
	.ep-realisation__head--hero .ep-realisation__meta,
	.ep-realisation__actions--head { grid-column: 1; grid-row: auto; }
	.ep-realisation__head--hero .ep-realisation__meta { margin: 1.5rem 0 1.25rem; }
	.ep-realisation__actions--head { grid-template-columns: auto auto; justify-content: start; align-items: center; gap: .75rem 1.5rem; }
	.ep-realisation__actions--head .ep-btn { width: auto; }
	.ep-projet-chapitre,
	.ep-projet-chapitre:nth-of-type(even),
	.ep-realisation__texte.ep-projet-conclusion { grid-template-columns: minmax(0, 1fr); }
	.ep-projet-chapitre:nth-of-type(n) .ep-projet-chapitre__photos,
	.ep-projet-chapitre:nth-of-type(n) .ep-projet-chapitre__corps,
	.ep-projet-conclusion > h2:first-child { grid-column: 1; grid-row: auto; }
	.ep-projet-chapitre__corps,
	.ep-projet-conclusion > h2:first-child { position: static; justify-self: start; max-width: 40rem; }
	.ep-projet-conclusion > h2:first-child { margin-bottom: 1.5rem; }
	.ep-projet-conclusion > * { grid-column: 1; }
	.ep-projet-appel { grid-template-columns: minmax(0, 1fr); }
	.ep-projet-appel__actions { grid-column: 1; grid-row: auto; margin-top: .75rem; }
}
@media (max-width: 600px) {
	.ep-realisation__head--hero { min-height: calc(100svh - 64px); }
	.ep-realisation__actions--head { grid-template-columns: minmax(0, 1fr); }
	.ep-realisation__actions--head .ep-btn { width: 100%; }
	.ep-projet-appel__actions .ep-btn { flex: 1 1 100%; justify-content: center; }
}
.ep-realisation__solutions { margin-top: clamp(4rem, 8vw, 7rem); padding-top: clamp(2.5rem, 5vw, 4rem); border-top: 1px solid var(--ep-border); }
.ep-realisation__solutions h2 { margin: 0 0 .6rem; font-size: clamp(1.8rem, 3vw, 3rem); line-height: 1.1; }
.ep-realisation__solutions > p { margin: 0 0 1.75rem; color: var(--ep-muted-foreground); }
.ep-realisation__solution-list { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--ep-border); }
.ep-realisation__solution-list li { border-bottom: 1px solid var(--ep-border); }
.ep-realisation__solution-list a { display: grid; grid-template-columns: 112px minmax(0, 1fr) auto; align-items: center; gap: 1.25rem; min-height: 112px; color: var(--ep-dark) !important; font-size: 1.08rem; font-weight: 700; text-decoration: none; }
.ep-realisation__solution-list a:hover { color: var(--ep-accent-text) !important; }
.ep-realisation__solution-list img { width: 112px; height: 84px; object-fit: cover; }
@media (max-width: 600px) {
	.ep-realisation__solution-list a { grid-template-columns: 76px minmax(0, 1fr) auto; gap: .75rem; min-height: 88px; font-size: .96rem; }
	.ep-realisation__solution-list img { width: 76px; height: 64px; }
}
.ep-realisation__texte li::marker { color: var(--ep-primary); }
.ep-realisation__fiche { position: sticky; top: 6rem; }
.ep-realisation__fiche h2 { margin: 0 0 .8rem; font-size: 1.25rem; line-height: 1.3; letter-spacing: -.02em; }
.ep-realisation .ep-fiche { display: grid; grid-template-columns: minmax(6.5rem, auto) minmax(0, 1fr); margin: 0 0 1.75rem; border-top: 1px solid var(--ep-border); font-size: .92rem; }
.ep-realisation .ep-fiche dt,
.ep-realisation .ep-fiche dd { margin: 0; padding: .75rem 0; border-bottom: 1px solid var(--ep-border); line-height: 1.4; }
.ep-realisation .ep-fiche dt { padding-right: 1rem; color: var(--ep-muted-foreground); font-weight: 500; }
.ep-realisation .ep-fiche dd { color: var(--ep-dark); font-weight: 650; }
.ep-realisation__actions { display: grid; justify-items: start; gap: .75rem; }
.ep-realisation__actions .ep-btn { width: 100%; max-width: none; justify-content: center; text-align: center; }
.ep-realisation__tel { display: inline-flex; align-items: center; min-height: 44px; border-bottom: 1px solid var(--ep-border); color: var(--ep-dark) !important; font-weight: 650; font-variant-numeric: tabular-nums; white-space: nowrap; text-decoration: none; }
.ep-realisation__tel:hover { border-color: var(--ep-primary); }

.ep-realisation__similaires { margin-top: clamp(4rem, 8vw, 7rem); padding-top: clamp(2.5rem, 5vw, 4rem); border-top: 1px solid var(--ep-border); }
.ep-realisation__similaires-head { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 1rem 2rem; margin-bottom: 2.4rem; }
.ep-realisation__similaires-head h2 { margin: 0; font-size: clamp(2rem, 3.3vw, 3.4rem); line-height: 1; letter-spacing: -.045em; }
.ep-realisation__similaires-head a { display: inline-flex; align-items: center; gap: .6rem; min-height: 44px; border-bottom: 1px solid var(--ep-border); color: var(--ep-dark) !important; font-size: .87rem; font-weight: 650; text-decoration: none; }
.ep-realisation__similaires-head a:hover { border-color: var(--ep-primary); }

@media (max-width: 900px) {
	.ep-realisation__body { grid-template-columns: minmax(0, 1fr); }
	.ep-realisation__fiche { position: static; }
	.ep-realisation__actions .ep-btn { width: auto; }
}
@media (max-width: 600px) {
	.ep-realisation__galerie { --ep-rang: 10rem; gap: 8px; }
	.ep-realisation__actions .ep-btn { width: 100%; }
}
.ep-secondary-footer { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem 2rem; padding: 1.5rem; border-bottom: 1px solid var(--ep-border); }
.ep-secondary-footer a { display: inline-flex; align-items: center; min-height: 44px; color: var(--ep-dark) !important; font-size: .9rem; text-underline-offset: .2em; }
.ep-studio h1, .ep-studio h2, .ep-studio h3 { color: var(--ep-dark); hyphens: none; }
.ep-studio p { margin: 0; }
.ep-studio p, .ep-studio dd { hyphens: none; overflow-wrap: break-word; }
.ep-studio a { text-decoration: none; }
.ep-studio a:focus-visible { outline: 3px solid var(--ep-accent-text); outline-offset: 4px; }
.ep-studio ::selection { background: var(--ep-primary-soft); color: var(--ep-dark); }
.ep-studio img { display: block; width: 100%; object-fit: cover; border-radius: var(--ep-radius-media); }
.ep-studio section { max-width: 1440px; margin: 0 auto; padding-inline: clamp(1.25rem, 4vw, 4rem); }
.ep-studio section.ep-studio-hero {
	display: grid;
	grid-template-rows: minmax(0, 1fr);
	grid-template-columns: minmax(0, 1fr);
	max-width: none;
	min-height: calc(100dvh - 73px);
	padding-inline: 0;
	align-items: stretch;
	isolation: isolate;
	background: #405475;
}
.ep-studio-hero__copy { display: contents; }
.ep-studio .ep-studio-hero__slogan {
	grid-area: 1 / 1;
	z-index: 1;
	align-self: start;
	justify-self: start;
	margin: clamp(2.5rem, 5vw, 5rem) 0 0 clamp(1.25rem, 4vw, 4rem);
	color: #fff;
	/* The owner's full sentence: only the two key phrases are set in capitals. */
	max-width: min(16ch, 62vw);
	font-size: clamp(2.6rem, 5.2vw, 5.6rem);
	line-height: .95;
	letter-spacing: -.045em;
	font-weight: 650;
	text-wrap: balance;
	text-shadow: 0 2px 18px rgb(0 0 0 / .25);
}
.ep-studio .ep-studio-hero__slogan span { color: #fff; font-weight: 800; text-transform: uppercase; white-space: nowrap; }
.ep-studio-hero__bar {
	grid-area: 1 / 1;
	z-index: 1;
	align-self: end;
	justify-self: end;
	width: min(50vw, 720px);
	margin: 0 clamp(1.25rem, 4vw, 4rem) clamp(1.25rem, 3vw, 3rem) 0;
	padding: clamp(1.75rem, 2.5vw, 2.5rem);
	background: var(--ep-surface);
}
.ep-studio-hero__message { min-width: 0; }
.ep-studio-hero h1 {
	margin: 0 0 .9rem;
	font-size: clamp(1.9rem, 2.6vw, 2.5rem);
	line-height: 1.04;
	letter-spacing: -.04em;
	font-weight: 750;
	text-wrap: balance;
}
.ep-studio-hero h1 span { display: block; }
.ep-studio-hero__lead { max-width: 63ch; text-wrap: pretty; font-size: clamp(1rem, 1.18vw, 1.15rem); line-height: 1.45; letter-spacing: -.01em; }
.ep-studio-hero__bar .ep-studio-actions { margin-top: 1.4rem; }
.ep-studio-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 1.2rem 1.7rem; margin-top: 2rem; }
.ep-studio .ep-btn { display: inline-flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding: 1rem 1.2rem; }
.ep-studio .ep-btn::after { content: none; }
.ep-studio-text-link { display: inline-flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 44px; padding-block: .45rem; border-bottom: 1px solid var(--ep-border); color: var(--ep-dark) !important; font-size: .87rem; font-weight: 650; }
.ep-studio-text-link:hover { border-color: var(--ep-primary); }
.ep-studio a > span[aria-hidden] { transition: transform .2s var(--ep-ease); }
.ep-studio a:hover > span[aria-hidden], .ep-studio .ep-tuile:hover .ep-tuile__lien > span[aria-hidden] { transform: translate(2px, -2px); }
.ep-studio-hero__project {
	grid-area: 1 / 1;
	position: relative;
	min-width: 0;
	align-self: stretch;
	margin: 0;
	background: #405475;
}
.ep-studio-hero__project::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgb(17 25 40 / .58), rgb(17 25 40 / .43) 48%, rgb(17 25 40 / .08) 78%, transparent);
	pointer-events: none;
}
.ep-studio-hero__project .wp-block-image { position: absolute; inset: 0; margin: 0; }
.ep-studio-hero__project img {
	position: absolute;
	inset: 0;
	height: 100%;
	border-radius: 0;
	object-position: center 52%;
}
.ep-studio-services, .ep-studio-projects { padding-block: clamp(4rem, 7vw, 7rem); }
.ep-studio-section-head { display: flex; justify-content: space-between; align-items: end; gap: 1.25rem 2rem; margin-bottom: 2.6rem; }
.ep-studio-section-head h2 { margin: 0; font-size: clamp(2.15rem, 3.7vw, 4rem); line-height: 1; }
.ep-studio-service-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; }
.ep-studio-service { display: flex; flex-direction: column; min-width: 0; color: var(--ep-dark); }
.ep-studio-service img { aspect-ratio: 16 / 10; height: auto; }
.ep-studio-service > div { padding: 1rem 2rem 1.1rem 0; border-bottom: 1px solid var(--ep-border); }
.ep-studio-service h3 .ep-tuile__lien { display: flex; justify-content: space-between; gap: .5rem; margin-right: -2rem; }
.ep-studio-service h3 { margin: 0 0 .35rem; font-size: clamp(1rem, 1.55vw, 1.45rem); letter-spacing: -.025em; }
.ep-studio-service p { color: var(--ep-muted-foreground); font-size: .8rem; line-height: 1.4; }
.ep-studio-service h3 span[aria-hidden] { position: relative; top: 1.05rem; align-self: flex-start; color: var(--ep-primary); font-size: 1.5rem; font-weight: 400; line-height: 0; letter-spacing: 0; }
.ep-studio-service:hover h3 { color: var(--ep-accent-text); }
.ep-studio-workshop { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 8vw, 8rem); padding-block: clamp(3.5rem, 6vw, 6rem); border-block: 1px solid var(--ep-border); background: var(--ep-muted); }
.ep-studio-workshop h2 { margin: 0 0 1.7rem; font-size: clamp(2.7rem, 4.5vw, 4.8rem); line-height: .97; }
.ep-studio-workshop__copy > .ep-link { margin-top: 1.5rem; }
.ep-studio-workshop__detail img { aspect-ratio: 16 / 9; }
.ep-studio-workshop__copy > p { max-width: 40ch; color: var(--ep-muted-foreground); }
.ep-studio-workshop dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; margin: 1.5rem 0 0; }
.ep-studio-workshop dl > div { padding-top: 1rem; border-top: 1px solid var(--ep-border); }
.ep-studio-workshop dt { font-size: clamp(1.5rem, 2.3vw, 2.3rem); font-weight: 700; line-height: 1.1; letter-spacing: -.04em; }
.ep-studio-workshop dd { margin: .2rem 0 0; font-size: .85rem; color: var(--ep-muted-foreground); }
.ep-studio-project-grid { display: grid; grid-template-columns: 1.15fr 1fr; gap: 2rem; }
.ep-studio-project-grid > :nth-child(2) { padding-top: 4rem; }
.ep-studio-project-grid img { aspect-ratio: 4 / 3; height: auto; }
.ep-studio-project-grid h3 { display: flex; gap: 1rem; justify-content: space-between; font-size: 1.25rem; margin: 1.2rem 0 .5rem; line-height: 1.2; }
.ep-studio-project-grid p { color: var(--ep-muted-foreground); font-size: .8rem; }
.ep-studio-project-grid h3 .ep-tuile__lien { display: flex; flex: 1; gap: 1rem; justify-content: space-between; }
.ep-studio-project-grid > :hover h3 { color: var(--ep-accent-text); }
.ep-studio-contact { display: grid; grid-template-columns: 1.4fr 1fr; gap: 3rem; align-items: center; padding-block: 4rem; border-top: 1px solid var(--ep-border); }
.ep-studio-contact h2 { font-size: clamp(2.5rem, 4.4vw, 4.5rem); margin: 0; }
.ep-studio-contact p { margin-bottom: 1.5rem; color: var(--ep-muted-foreground); }
.ep-studio-contact .ep-studio-actions { margin-top: 0; margin-bottom: 0; }
.ep-studio-tel { white-space: nowrap; font-variant-numeric: tabular-nums; }

/* Keep orange actions readable in both system colour schemes. */
.header-navigation .header-menu-container > ul > li.ep-nav-cta > a,
.header-navigation .header-menu-container > ul > li.ep-nav-cta > a:hover,
.site-footer a.ep-btn,
.site-footer a.ep-btn:hover,
.ep-btn:hover, .button, .button:hover { color: #171613 !important; }
#mobile-drawer .drawer-inner,
#mobile-drawer .drawer-content { background: var(--ep-surface) !important; color: var(--ep-dark) !important; }
#mobile-drawer .mobile-navigation ul li a,
#mobile-drawer .drawer-header button,
#mobile-drawer .drawer-sub-toggle { color: var(--ep-dark) !important; }
#mobile-drawer .mobile-navigation ul li a:hover { color: var(--ep-primary) !important; }
#mobile-drawer .mobile-navigation li.ep-nav-cta > a,
#mobile-drawer .mobile-navigation li.ep-nav-cta > a:hover { background: var(--ep-primary) !important; color: #171613 !important; border-radius: var(--ep-radius-button) !important; }
.site .ep-filtres-mobile button { border-radius: var(--ep-radius-button) !important; color: #171613 !important; }

@media (max-width: 900px) {
	.ep-studio-service-grid { gap: 1rem; }
	.ep-studio-workshop { gap: 2rem; }
}
@media (max-width: 1024px) {
	.home .site-header-item .custom-logo { max-height: 50px; }
}
@media (max-width: 1180px) {
	.ep-studio-hero__bar { width: min(70vw, 640px); }
	.ep-studio-hero__lead { max-width: 68ch; }
}
@media (max-width: 900px) {
	.ep-studio-hero__bar { width: min(calc(100% - 2.5rem), 640px); margin: 0 1.25rem 1.25rem 0; }
}
@media (max-width: 680px) {
	/* Keep consent settings reachable without covering homepage links. */
	.home .ep-cookie-manage { position: static; display: flex; width: fit-content; min-height: 44px; margin: 1rem 1.25rem; font-size: .75rem; opacity: 1; box-shadow: none; }
	.home .ep-cookie-manage::before { content: none; }
	/* The footer carries its own "Gérer les cookies" link: on phones the
	   floating button only covers content. Kept whenever that link is absent. */
	body:has([data-cookie-manage-wrap]:not([hidden])) .ep-cookie-manage { display: none !important; }
	.ep-studio section.ep-studio-hero { grid-template-rows: minmax(16rem, 1fr) auto; min-height: calc(100dvh - 65px); }
	.ep-studio .ep-studio-hero__slogan { grid-area: 1 / 1; margin: 1.6rem 1.25rem 0; color: #fff; max-width: none; font-size: clamp(2rem, 8.6vw, 3.2rem); text-shadow: 0 2px 14px rgb(0 0 0 / .25); }
	.ep-studio .ep-studio-hero__slogan span { color: #fff; }
	.ep-studio-hero h1 { font-size: clamp(1.5rem, 6.4vw, 2rem); margin-bottom: .75rem; }
	.ep-studio-hero__lead { font-size: 1rem; }
	.ep-studio-hero__project { grid-area: 1 / 1; }
	.ep-studio-hero__project img { object-position: 47% 53%; }
	.ep-studio-hero__bar { grid-area: 2 / 1; width: 100%; margin: 0; padding: 1.4rem 1.25rem 1.7rem; }
	.ep-studio-hero__bar .ep-studio-actions { margin-top: 1.1rem; }
	.ep-studio-section-head { flex-direction: column; align-items: start; margin-bottom: 1.7rem; }
	.ep-studio-service-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem .9rem; }
	.ep-studio-service img { aspect-ratio: 4 / 3; }
	.ep-studio-service > div { padding-right: 1.1rem; }
	.ep-studio-service h3 .ep-tuile__lien { margin-right: -1.1rem; }
	.ep-studio-service h3 span[aria-hidden] { top: .68rem; font-size: 1.1rem; }
	.ep-studio-service h3 { font-size: 1rem; line-height: 1.15; }
	.ep-studio-service p { font-size: .75rem; }
	.ep-studio-workshop, .ep-studio-contact { grid-template-columns: 1fr; }
	.ep-studio-workshop h2 { font-size: 2.9rem; }
	.ep-studio-project-grid { grid-template-columns: 1fr; gap: 2.5rem; }
	.ep-studio-project-grid > :nth-child(2) { padding-top: 0; }
	.ep-studio-contact { gap: 1.5rem; }
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		scroll-behavior: auto !important;
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
	}
	.ep-services-card:hover img,
	.ep-home-service:hover img { transform: none; }
}

/* Prestations — projets executes de la famille, avant les solutions proposees. */
.ep-prestation-projects__head {
	display: grid;
	grid-template-columns: minmax(0, .9fr) minmax(22rem, 1.1fr);
	gap: clamp(2rem, 8vw, 8rem);
	align-items: end;
	margin-bottom: clamp(2.5rem, 5vw, 4.5rem);
}
.ep-prestation-projects__head h2 {
	max-width: 13ch;
	margin: .7rem 0 0;
	font-size: clamp(2.5rem, 4.7vw, 5rem);
	line-height: .98;
	letter-spacing: -.04em;
}
.ep-prestation-projects__head > div:last-child > p {
	max-width: 38rem;
	margin: 0 0 1.5rem;
	color: var(--ep-muted-foreground);
	font-size: clamp(1.05rem, 1.35vw, 1.25rem);
	line-height: 1.65;
}
.ep-prestation-projects .ep-eyebrow { color: var(--ep-accent-text); }
/* Toujours trois colonnes : trois projets ne laissent jamais de carte orpheline. */
.ep-prestation-projects .ep-realisations-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
/* Sous-prestation : la section ferme la page et reprend la colonne du corps. */
.ep-seo-complement + .ep-prestation-projects,
.ep-page-body + .ep-prestation-projects {
	max-width: var(--ep-shell);
	padding-inline: 0;
	padding-top: clamp(2.5rem, 5vw, 4rem);
	border-top: 1px solid var(--ep-border);
}
@media (max-width: 900px) {
	.ep-prestation-projects__head { grid-template-columns: 1fr; gap: 1.5rem; }
}
@media (max-width: 700px) {
	.ep-prestation-projects .ep-realisations-grid { grid-template-columns: minmax(0, 1fr); gap: 2rem; }
}

/* Logos clients : fichiers normalises 800x400 avec marge incluse, cadre 2:1. */
.ep-marques__item img { width: min(100%, 190px); max-width: none; height: auto; aspect-ratio: 2 / 1; }
@media (max-width: 600px) {
	.ep-marques__item img { width: min(100%, 150px); height: auto; }
}

/* Card meta: client (logo + name) on one line, location with a pin on the next. */
.ep-card__meta { display: grid; justify-items: start; gap: .3rem; }
.ep-card__who,
.ep-card__lieu { display: inline-flex; align-items: center; gap: .45rem; min-width: 0; }
.ep-card__who > span,
.ep-card__lieu > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ep-card__logo { flex: none; width: auto; max-width: 64px; height: 26px; object-fit: contain; }
.ep-card__pin { flex: none; color: var(--ep-accent-text); }

/* Client in the meta line: its logo as a quiet mark beside the name, no frame. */
.ep-realisation__meta a.ep-realisation__client { display: inline-flex; align-items: center; gap: .55rem; text-decoration: none; }
.ep-realisation__meta a.ep-realisation__client > span { text-decoration: underline; text-decoration-color: var(--ep-border); text-underline-offset: .22em; }
.ep-realisation__client-logo { display: block; width: auto; max-width: 96px; height: 30px; object-fit: contain; }
.ep-realisation__head.has-logo { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: clamp(1.5rem, 4vw, 3rem); align-items: end; }
.ep-realisation__head.has-logo > :not(.ep-realisation__logo) { grid-column: 1; }
.ep-realisation__logo { grid-column: 2; grid-row: 2 / span 2; display: block; padding: .5rem; border: 1px solid var(--ep-border); border-radius: var(--ep-radius-chip); background: #fff; transition: border-color .2s var(--ep-ease); }
.ep-realisation__logo:hover { border-color: var(--ep-primary); }
.ep-realisation__logo img { display: block; width: clamp(140px, 16vw, 200px); height: auto; aspect-ratio: 2 / 1; object-fit: contain; }
@media (max-width: 760px) {
	.ep-realisation__head.has-logo { grid-template-columns: minmax(0, 1fr); }
	.ep-realisation__logo { grid-column: 1; grid-row: auto; justify-self: start; margin-top: 1.25rem; }
	.ep-realisation__logo img { width: 104px; }
	.ep-realisation__logo img { width: 140px; }
}

/* ---------- Accueil : Qui sommes-nous & Nos clients ---------- */
.ep-studio-about { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: clamp(2rem, 7vw, 7rem); padding-block: clamp(4rem, 7vw, 7rem); border-top: 1px solid var(--ep-border); }
.ep-studio-about h2 { margin: 0; font-size: clamp(2.5rem, 4.6vw, 4.9rem); line-height: .97; text-wrap: balance; }
.ep-studio-about h2 span { color: var(--ep-accent-text); }
.ep-studio-about__copy { display: grid; gap: 1.2rem; align-content: start; max-width: 60ch; }
.ep-studio-about__copy > p { color: var(--ep-ink-soft); text-wrap: pretty; }
.ep-studio .ep-studio-about__lead { color: var(--ep-dark); font-size: clamp(1.15rem, 1.5vw, 1.4rem); line-height: 1.4; letter-spacing: -.015em; }
.ep-studio .ep-studio-about__team { display: flex; flex-wrap: wrap; gap: .5rem; margin: .3rem 0 .4rem; padding: 0; list-style: none; }
.ep-studio-about__team li { padding: .45rem .8rem; border: 1px solid var(--ep-border); border-radius: var(--ep-radius-chip); font-size: .8rem; font-weight: 650; }
.ep-studio-about__copy > .ep-link { justify-self: start; }
.ep-studio-clients { padding-block: clamp(4rem, 7vw, 7rem) 0; }

.ep-studio .ep-clients-strip { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--ep-border); border-left: 1px solid var(--ep-border); }
.ep-studio .ep-clients-strip li { display: flex; align-items: center; justify-content: center; min-width: 0; overflow: hidden; aspect-ratio: 3 / 2; padding: 14% 16%; border-right: 1px solid var(--ep-border); border-bottom: 1px solid var(--ep-border); background: var(--ep-surface); }
.ep-studio .ep-clients-strip img { width: 100%; height: 100%; object-fit: contain; border-radius: 0; filter: grayscale(1); opacity: .78; transition: filter .3s var(--ep-ease), opacity .3s var(--ep-ease); }
.ep-clients-strip li:hover img { filter: none; opacity: 1; }

/* ---------- Page À propos ---------- */
.ep-about { --ep-about-sticky: 104px; }
/* Shared nav between Qui sommes-nous, L'atelier and Nos clients (inc/a-propos.php). */
.ep-studio section.ep-about-subnav { padding-block: clamp(1rem, 2vw, 1.6rem) 0; }
.ep-studio section.ep-about-subnav + section.ep-about-hero { padding-top: clamp(2rem, 4vw, 4rem); }
.ep-about-nav { display: flex; flex-wrap: wrap; gap: .2rem 1.8rem; border-bottom: 0 !important; }
.ep-about-nav a { display: inline-flex; align-items: center; min-height: 44px; margin-bottom: -1px; border-bottom: 2px solid transparent; color: var(--ep-muted-foreground) !important; font-size: .9rem; font-weight: 650; text-decoration: none; transition: color .2s var(--ep-ease), border-color .2s var(--ep-ease); }
.ep-about-nav a:hover, .ep-about-nav a[aria-current="page"] { color: var(--ep-dark) !important; border-bottom-color: var(--ep-primary); }
.ep-marques__hero .ep-about-nav { margin-bottom: clamp(2rem, 4vw, 3rem); border-bottom-color: rgb(255 255 255 / .22); }
.ep-marques__hero .ep-about-nav a { color: rgb(255 255 255 / .72) !important; }
.ep-marques__hero .ep-about-nav a:hover, .ep-marques__hero .ep-about-nav a[aria-current="page"] { color: #fff !important; }
@media (max-width: 600px) { .ep-about-nav { column-gap: 1.1rem; } .ep-about-nav a { font-size: .85rem; } }
.ep-studio section.ep-about-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: clamp(2rem, 5vw, 5rem); align-items: end; padding-block: clamp(3rem, 6vw, 6rem) clamp(3rem, 5vw, 5rem); }
.ep-about-hero h1 { margin: 0 0 1.4rem; font-size: clamp(2.4rem, 4.6vw, 4.6rem); line-height: .98; letter-spacing: -.045em; font-weight: 750; text-wrap: balance; }
.ep-about-hero h1 span { white-space: nowrap; }
.ep-studio .ep-about-hero__lead { max-width: 46ch; color: var(--ep-ink-soft); font-size: clamp(1.05rem, 1.3vw, 1.25rem); line-height: 1.45; text-wrap: pretty; }
.ep-studio .ep-about-hero__facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin: 2.2rem 0 0; padding: 0; list-style: none; }
.ep-studio .ep-about-hero__facts li { padding-top: .8rem; border-top: 1px solid var(--ep-dark); color: var(--ep-muted-foreground); font-size: .82rem; line-height: 1.35; }
.ep-about-hero__facts strong { display: block; color: var(--ep-dark); font-size: clamp(1.05rem, 1.5vw, 1.35rem); letter-spacing: -.03em; }
.ep-about-hero__visual { margin: 0; }
.ep-about-hero__visual img { aspect-ratio: 16 / 10; height: auto; }

.ep-studio section.ep-about-body { display: grid; grid-template-columns: minmax(12rem, 16rem) minmax(0, 1fr); gap: clamp(2rem, 6vw, 6rem); padding-block: clamp(3rem, 5vw, 5rem); border-top: 1px solid var(--ep-border); }
.ep-about-toc { position: sticky; top: var(--ep-about-sticky); align-self: start; }
.ep-studio .ep-about-toc__title { margin-bottom: .9rem; font-size: .72rem; font-weight: 780; letter-spacing: .13em; text-transform: uppercase; color: var(--ep-muted-foreground); }
.ep-studio .ep-about-toc ol { margin: 0; padding: 0; list-style: none; counter-reset: toc; border-left: 1px solid var(--ep-border); }
.ep-studio .ep-about-toc li { counter-increment: toc; }
.ep-about-toc a { display: flex; gap: .7rem; min-height: 40px; align-items: center; margin-left: -1px; padding: .35rem 0 .35rem 1rem; border-left: 2px solid transparent; color: var(--ep-muted-foreground) !important; font-size: .9rem; font-weight: 600; line-height: 1.25; transition: color .2s var(--ep-ease), border-color .2s var(--ep-ease); }
.ep-about-toc a::before { content: counter(toc); min-width: 1ch; font-variant-numeric: tabular-nums; color: var(--ep-muted-foreground); opacity: .6; transition: color .2s var(--ep-ease); }
.ep-about-toc a:hover, .ep-about-toc a[aria-current="true"] { color: var(--ep-dark) !important; border-left-color: var(--ep-primary); }
.ep-about-toc a:hover::before, .ep-about-toc a[aria-current="true"]::before { color: var(--ep-accent-text); opacity: 1; }

.ep-about-chapters { display: grid; gap: clamp(3.5rem, 6vw, 6rem); max-width: 48rem; }
.ep-about-chapter { display: grid; gap: 1.1rem; scroll-margin-top: var(--ep-about-sticky); }
.ep-about-chapter h2 { display: flex; align-items: baseline; gap: .9rem; margin: 0 0 .4rem; font-size: clamp(2rem, 3.4vw, 3.2rem); line-height: 1; letter-spacing: -.04em; }
.ep-about-num { font-size: .42em; font-weight: 700; letter-spacing: 0; color: var(--ep-accent-text); font-variant-numeric: tabular-nums; transform: translateY(-.35em); }
.ep-about-chapter p, .ep-about-chapter li, .ep-about-chapter dd { color: var(--ep-ink-soft); line-height: 1.65; text-wrap: pretty; }
.ep-studio .ep-about-chapter__lead { color: var(--ep-dark); font-size: clamp(1.15rem, 1.5vw, 1.35rem); line-height: 1.45; letter-spacing: -.012em; }
.ep-about-chapter a:not(.ep-studio-text-link) { color: var(--ep-accent-text); text-decoration: underline; text-underline-offset: .2em; }
.ep-studio .ep-about-list { display: grid; gap: .35rem; margin: 0; padding-left: 1.2rem; }
.ep-about-list li::marker { color: var(--ep-primary); }
.ep-studio .ep-about-signature { margin-top: .6rem; color: var(--ep-dark); font-size: clamp(1.3rem, 2vw, 1.7rem); font-weight: 720; letter-spacing: -.03em; }

.ep-about-pledge, .ep-about-values { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem 2rem; margin: .8rem 0 0; }
.ep-about-pledge > div, .ep-about-values > div { padding-top: 1rem; border-top: 1px solid var(--ep-border); }
.ep-about-pledge dt, .ep-about-values dt { margin-bottom: .3rem; font-weight: 720; color: var(--ep-dark); letter-spacing: -.01em; }
.ep-about-pledge dd, .ep-about-values dd { margin: 0; }

.ep-about-figure { margin: .8rem 0 0; }
.ep-about-figure img { aspect-ratio: 16 / 10; height: auto; }
.ep-about-figure figcaption { margin-top: .7rem; font-size: .82rem; color: var(--ep-muted-foreground); }
.ep-studio .ep-about-address { font-size: .9rem; font-variant-numeric: tabular-nums; }

.ep-studio .ep-about-steps { margin: .8rem 0 0; padding: 0; list-style: none; counter-reset: step; }
.ep-studio .ep-about-steps li { counter-increment: step; display: grid; grid-template-columns: 3rem minmax(0, 1fr); column-gap: 1rem; padding-block: 1.4rem; border-top: 1px solid var(--ep-border); }
.ep-about-steps li:last-child { border-bottom: 1px solid var(--ep-border); }
.ep-about-steps li::before { content: counter(step, decimal-leading-zero); grid-row: span 2; font-size: 1.05rem; font-weight: 720; color: var(--ep-accent-text); font-variant-numeric: tabular-nums; line-height: 1.3; }
.ep-about-steps h3 { margin: 0 0 .35rem; font-size: 1.2rem; letter-spacing: -.02em; line-height: 1.3; }

.ep-about-quote { margin: .4rem 0 1rem; padding: clamp(1.6rem, 3vw, 2.6rem); background: var(--ep-muted); }
.ep-about-quote blockquote { margin: 0; padding: 0; border: 0; }
.ep-studio .ep-about-quote blockquote p { color: var(--ep-dark); font-size: clamp(1.15rem, 1.7vw, 1.45rem); line-height: 1.45; letter-spacing: -.015em; font-weight: 500; font-style: normal; }
.ep-about-quote blockquote p::before { content: "« "; color: var(--ep-accent-text); }
.ep-about-quote blockquote p::after { content: " »"; color: var(--ep-accent-text); }
.ep-about-quote figcaption { display: grid; margin-top: 1.4rem; font-size: .85rem; color: var(--ep-muted-foreground); }
.ep-about-quote figcaption strong { color: var(--ep-dark); font-size: 1rem; }

.ep-about-eco { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.8rem 2.2rem; margin-top: .6rem; }
.ep-about-eco > div { padding-top: 1rem; border-top: 1px solid var(--ep-border); }
.ep-about-eco h3 { margin: 0 0 .4rem; font-size: 1.08rem; letter-spacing: -.015em; }
.ep-studio .ep-about-chapter .ep-clients-strip { grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: .6rem; }

@media (max-width: 900px) {
	.ep-studio-about { grid-template-columns: 1fr; }
	.ep-studio .ep-clients-strip { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.ep-studio section.ep-about-hero { grid-template-columns: 1fr; align-items: start; }
	.ep-studio section.ep-about-body { grid-template-columns: 1fr; gap: 2.5rem; }
	.ep-about-toc { position: static; padding: 1.2rem 1.25rem; background: var(--ep-muted); }
	.ep-studio .ep-about-toc ol { columns: 2; column-gap: 1.5rem; border-left: 0; }
	.ep-about-toc a { margin-left: 0; padding-left: 0; border-left: 0; break-inside: avoid; }
	.ep-about { --ep-about-sticky: 80px; }
}
@media (max-width: 600px) {
	.ep-studio .ep-about-hero__facts { grid-template-columns: 1fr; gap: .6rem; }
	.ep-studio .ep-clients-strip, .ep-studio .ep-about-chapter .ep-clients-strip { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.ep-studio .ep-about-toc ol { columns: 1; }
	.ep-about-pledge, .ep-about-values, .ep-about-eco { grid-template-columns: 1fr; }
	.ep-studio .ep-about-steps li { grid-template-columns: 2.4rem minmax(0, 1fr); }
}

/* Photo zoom: every project/realisation photo opens full size, uncropped. */
[data-ep-zoom] { cursor: zoom-in; transition: filter .25s var(--ep-ease); }
[data-ep-zoom]:hover { filter: brightness(1.06); }
[data-ep-zoom]:focus-visible { outline: 3px solid var(--ep-accent-text); outline-offset: 3px; }
.ep-lightbox { box-sizing: border-box; width: 100vw; max-width: none; height: 100dvh; max-height: none; margin: 0; padding: 0; border: 0; background: transparent; color: #fff; overflow: hidden; }
.ep-lightbox::backdrop { background: rgb(23 22 19 / 94%); }
.ep-lightbox__scene { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; grid-template-rows: auto minmax(0, 1fr) auto; height: 100%; }
.ep-lightbox__barre { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .75rem clamp(.75rem, 2vw, 1.5rem); }
.ep-lightbox__compte { color: rgb(255 255 255 / 72%); font-size: .9rem; font-variant-numeric: tabular-nums; }
/* The photo always fits the space between the bar and the caption: absolute
   inside its cell, so max-width/max-height resolve against a definite box. */
.ep-lightbox figure { position: relative; grid-column: 2; grid-row: 2; min-width: 0; min-height: 0; margin: 0 .5rem; }
.ep-lightbox img { position: absolute; inset: 0; display: block; width: auto; height: auto; max-width: 100%; max-height: 100%; margin: auto; object-fit: contain; border-radius: var(--ep-radius-media); user-select: none; -webkit-user-drag: none; }
.ep-lightbox figcaption { grid-column: 1 / -1; grid-row: 3; max-width: 60rem; margin: 0 auto; padding: .9rem 1.25rem 1.25rem; color: rgb(255 255 255 / 78%); font-size: .9rem; line-height: 1.45; text-align: center; text-wrap: pretty; }
.ep-lightbox button { display: inline-grid; place-items: center; width: 48px; height: 48px; padding: 0; border: 1px solid rgb(255 255 255 / 22%); border-radius: 999px; background: rgb(255 255 255 / 8%); color: #fff; cursor: pointer; transition: background-color .2s var(--ep-ease), border-color .2s var(--ep-ease); }
.ep-lightbox button:hover { border-color: var(--ep-primary); background: rgb(255 255 255 / 14%); }
.ep-lightbox button:focus-visible { outline: 3px solid var(--ep-primary); outline-offset: 3px; }
.ep-lightbox__nav { grid-row: 2; align-self: center; margin: 0 clamp(.5rem, 2vw, 1.5rem); }
.ep-lightbox__nav--suiv { grid-column: 3; }
.ep-lightbox[data-seule] .ep-lightbox__nav,
.ep-lightbox[data-seule] .ep-lightbox__compte { visibility: hidden; }
.ep-lightbox svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
@media (prefers-reduced-motion: no-preference) {
	.ep-lightbox[open] img { animation: ep-zoom-in .45s var(--ep-ease) both; }
	.ep-lightbox[open]::backdrop { animation: ep-fade-in .3s ease-out both; }
	@keyframes ep-zoom-in { from { opacity: 0; transform: scale(.96); } }
	@keyframes ep-fade-in { from { opacity: 0; } }
}
@media (max-width: 700px) {
	.ep-lightbox__scene { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto minmax(0, 1fr) auto auto; }
	.ep-lightbox figure { grid-column: 1; margin: 0; }
	.ep-lightbox img { border-radius: 0; }
	.ep-lightbox__nav { grid-row: 4; margin: 0 0 1rem; }
	.ep-lightbox__nav--prec { grid-column: 1; justify-self: start; margin-left: 1.25rem; }
	.ep-lightbox__nav--suiv { grid-column: 1; justify-self: end; margin-right: 1.25rem; }
}

/* Cards: the title link covers the whole card; the client keeps its own link
   (all that client's work) on top of it. */
.ep-card--lien { position: relative; }
.ep-card__title .ep-card__lien { color: inherit !important; text-decoration: none !important; }
.ep-card__lien::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.ep-card__lien:focus-visible { outline: 0; }
.ep-card--lien:has(.ep-card__lien:focus-visible) { outline: 3px solid var(--ep-accent-text); outline-offset: 3px; border-radius: var(--ep-radius-card); }
.ep-card__kind { pointer-events: none; }
a.ep-card__client { position: relative; z-index: 2; margin: -.3rem -.4rem; padding: .3rem .4rem; border-radius: var(--ep-radius-chip); color: inherit !important; text-decoration: none !important; transition: background-color .2s var(--ep-ease), color .2s var(--ep-ease); }
a.ep-card__client:hover { background: var(--ep-muted); color: var(--ep-dark) !important; }
a.ep-card__client:hover > span { text-decoration: underline; text-underline-offset: .2em; }
a.ep-card__client:focus-visible { outline: 3px solid var(--ep-accent-text); outline-offset: 1px; }

/* Clients filter: logo in a small square on the left. */
.ep-client-pastille { flex: none; display: inline-grid; place-items: center; box-sizing: border-box; width: 26px; height: 26px; padding: 3px; overflow: hidden; border: 1px solid var(--ep-border); border-radius: var(--ep-radius-chip); background: #fff; }
.ep-client-pastille img { display: block; width: 100%; height: 100%; object-fit: contain; border-radius: 0; }
.ep-client-pastille--initiale { background: var(--ep-muted); color: var(--ep-dark); font-size: .72rem; font-weight: 750; }
.ep-portfolio-clients summary { gap: .5rem; }
.ep-portfolio-clients summary .ep-client-pastille { width: 22px; height: 22px; padding: 2px; }
.ep-portfolio-clients__menu { display: grid; width: min(20rem, calc(100vw - 2rem)); padding: .35rem; }
.ep-portfolio-clients__option { display: flex; align-items: center; gap: .65rem; min-height: 44px; padding: .25rem .55rem; border-radius: var(--ep-radius-button); color: var(--ep-dark); font-size: .88rem; line-height: 1.3; cursor: pointer; transition: background-color .15s var(--ep-ease); }
.ep-portfolio-clients__option:hover { background: var(--ep-muted); }
.ep-portfolio-clients__option input { position: absolute; opacity: 0; pointer-events: none; }
.ep-portfolio-clients__option:has(input:checked) { background: var(--ep-primary-soft); font-weight: 700; }
.ep-portfolio-clients__option:has(input:focus-visible) { outline: 3px solid var(--ep-accent-text); outline-offset: -3px; }
.ep-portfolio-clients__nom { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ep-portfolio-clients__nombre { color: var(--ep-muted-foreground); font-size: .78rem; font-variant-numeric: tabular-nums; }

/* Several clients on one fiche (e.g. Altemed and SA3M): each keeps its logo and link. */
.ep-card__clients { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem .9rem; min-width: 0; }
.ep-realisation__clients { display: inline-flex; flex-wrap: wrap; align-items: center; gap: .3rem 1rem; }
