/**
 * Page Réalisations — aperçu navigateur (capture entière, pas crop slider).
 */

.ed-portfolio-featured {
	margin-top: 0;
	background: #f4f2ee;
	border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

/* Page Réalisations — à la une mise en exergue (fond distinct, pas de bande noire) */
.ed-portfolio-featured--page-highlight {
	background: #ebe8e2;
}

.ed-portfolio-selection--primary.ed-shell-band,
.ed-portfolio-selection--unified.ed-shell-band {
	background: var(--o3w-paper, #faf9f7);
}

/* Grille unique — pas de bandeau « Sélection » au-dessus */
.ed-portfolio-selection--unified .ed-shell-band__inner {
	padding-top: clamp(64px, 8vh, 88px);
	padding-bottom: clamp(88px, 11vh, 120px);
}

.ed-portfolio-selection--unified .ed-portfolio-grid {
	margin-top: 0;
}

.ed-portfolio-featured__inner {
	box-sizing: border-box;
	max-width: 1680px;
	margin: 0 auto;
	padding: clamp(80px, 10vh, 112px) var(--ed-shell-pad-x, 96px);
}

.ed-portfolio-featured__grid {
	display: grid;
	grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
	gap: 56px 64px;
	align-items: start;
}

.ed-portfolio-featured__kicker {
	margin: 0 0 32px;
	padding-bottom: 20px;
	border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}

.ed-portfolio-featured__title {
	margin: 0 0 20px;
	max-width: 22ch;
	font-family: var(--o3w-font-display);
	font-size: clamp(2rem, 3.5vw, 2.75rem);
	font-weight: 500;
	line-height: 1.1;
	letter-spacing: -0.02em;
}

.ed-portfolio-featured__lede {
	margin: 0 0 28px;
	font-size: 1.0625rem;
	line-height: 1.65;
	color: rgba(28, 26, 24, 0.68);
}

.ed-portfolio-featured__list {
	margin: 0 0 32px;
	padding: 0;
	list-style: none;
}

.ed-portfolio-featured__list li {
	position: relative;
	padding-left: 1.1em;
	margin-bottom: 0.45em;
	font-size: 0.9375rem;
	line-height: 1.5;
	color: rgba(28, 26, 24, 0.72);
}

.ed-portfolio-featured__list li::before {
	content: '—';
	position: absolute;
	left: 0;
	color: var(--o3w-vert, #2f4a3e);
}

.ed-portfolio-featured__link {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	font-family: var(--o3w-font-heading, system-ui, sans-serif);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--o3w-vert, #2f4a3e);
	text-decoration: none;
}

.ed-portfolio-featured__link-line {
	display: block;
	width: 40px;
	height: 1px;
	background: currentColor;
	transition: width 0.35s var(--o3w-ease, ease);
}

.ed-portfolio-featured__link:hover .ed-portfolio-featured__link-line {
	width: 64px;
}

/* ——— Aperçu navigateur (base : portfolio-browser.css, Safari) ——— */
/* Flèche scroll : débordement seulement si le contenu défile (évite la bande blanche sous l’image) */
.o3w-editorial .ed-portfolio-browser--card,
.o3w-editorial .ed-portfolio-browser--card-lg,
.o3w-editorial .ed-portfolio-browser--card-sm,
.o3w-editorial .ed-portfolio-browser--featured,
.o3w-editorial .ed-portfolio-browser--masonry {
	overflow: visible;
	padding-bottom: 0;
	margin-bottom: 0;
}

.o3w-editorial .ed-portfolio-browser--card.has-scroll,
.o3w-editorial .ed-portfolio-browser--card-lg.has-scroll,
.o3w-editorial .ed-portfolio-browser--card-sm.has-scroll,
.o3w-editorial .ed-portfolio-browser--featured.has-scroll {
	padding-bottom: 20px;
	margin-bottom: -20px;
}

/* Masonry — capture entière, hauteur naturelle (sources ≤ 1920px via contexte masonry) */
.ed-portfolio-browser--masonry {
	overflow: visible;
	border: 0;
	box-shadow: none;
	background: transparent;
	border-radius: 0;
}

.ed-portfolio-browser--masonry .ed-portfolio-browser__viewport {
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	height: auto;
	max-height: none;
	overflow: visible;
	background: #fff;
}

.ed-portfolio-browser--masonry .ed-portfolio-browser__capture,
.ed-portfolio-browser--masonry .ed-portfolio-browser__capture picture {
	line-height: 0;
	font-size: 0;
}

.ed-portfolio-browser--masonry .ed-portfolio-browser__capture img {
	display: block;
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;
	height: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	vertical-align: top;
}

.ed-portfolio-browser--masonry .ed-portfolio-browser__scroll-hint {
	display: none !important;
}

.o3w-editorial .ed-portfolio-card__media {
	overflow: visible;
}

.o3w-editorial .ed-portfolio-featured__grid > .ed-portfolio-browser,
.o3w-editorial .ed-portfolio-card--primary .ed-portfolio-card__media .ed-portfolio-browser {
	border-radius: var(--o3w-radius, 6px);
}

/* Cartes principales — mockup MacBook (ex. projet à la une accueil) */
.ed-portfolio-card--primary .ed-portfolio-card__media .ed-portfolio-card__device-stage {
	width: 100%;
}

.ed-portfolio-card--primary .ed-portfolio-card__device-link {
	display: block;
	color: inherit;
	text-decoration: none;
}

.ed-portfolio-card--primary .ed-case-study__visual {
	max-width: 100%;
	justify-self: stretch;
	margin-left: 0;
	margin-right: 0;
}

.ed-portfolio-card--primary .ed-case-study__device {
	max-width: 100%;
	margin-left: auto;
	margin-right: auto;
}

.ed-portfolio-browser--card .ed-portfolio-browser__viewport,
.ed-portfolio-browser--card-lg .ed-portfolio-browser__viewport,
.ed-portfolio-browser--card-sm .ed-portfolio-browser__viewport,
.ed-portfolio-browser--featured .ed-portfolio-browser__viewport {
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	overflow: hidden;
	background: #fff;
}

.ed-portfolio-browser--card .ed-portfolio-browser__viewport {
	height: min(65vh, 680px);
}

.ed-portfolio-browser--card-lg .ed-portfolio-browser__viewport {
	height: min(48vh, 520px);
}

.ed-portfolio-browser--card-sm .ed-portfolio-browser__viewport {
	height: min(40vh, 380px);
	max-height: min(40vh, 380px);
}

.ed-portfolio-card--compact .ed-portfolio-browser {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}

.ed-portfolio-browser--card-sm .ed-portfolio-browser__capture,
.ed-portfolio-browser--card-lg .ed-portfolio-browser__capture,
.ed-portfolio-browser--featured .ed-portfolio-browser__capture {
	line-height: 0;
	font-size: 0;
}

.ed-portfolio-browser--card-sm .ed-portfolio-browser__capture picture,
.ed-portfolio-browser--card-lg .ed-portfolio-browser__capture picture,
.ed-portfolio-browser--featured .ed-portfolio-browser__capture picture {
	display: block;
	width: 100%;
	max-width: 100%;
	line-height: 0;
}

.ed-portfolio-browser--card-sm .ed-portfolio-browser__capture img,
.ed-portfolio-browser--card-lg .ed-portfolio-browser__capture img,
.ed-portfolio-browser--featured .ed-portfolio-browser__capture img {
	display: block;
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;
	height: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	vertical-align: top;
}

.ed-portfolio-browser--featured .ed-portfolio-browser__viewport {
	height: auto;
	max-height: min(72vh, 780px);
}

.ed-portfolio-browser--featured.is-fit .ed-portfolio-browser__viewport {
	max-height: none;
}

.ed-portfolio-browser--featured .ed-portfolio-browser__capture img {
	min-width: 0 !important;
	vertical-align: bottom;
}

/* ——— Grille projets ——— */
.ed-portfolio-selection .ed-shell-band__inner {
	padding-top: clamp(88px, 11vh, 120px);
	padding-bottom: clamp(88px, 11vh, 120px);
}

.ed-portfolio-selection--more .ed-shell-band__inner {
	padding-top: clamp(56px, 7vh, 80px);
}

.ed-portfolio-grid {
	margin-top: clamp(48px, 6vh, 72px);
}

.ed-portfolio-grid--primary {
	display: flex;
	flex-direction: column;
	gap: clamp(56px, 7vh, 80px);
}

.ed-portfolio-grid--compact {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(28px, 3vw, 40px) clamp(24px, 3vw, 36px);
}

.ed-portfolio-card--primary .ed-portfolio-card__layout {
	display: grid;
	grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
	gap: clamp(32px, 4vw, 48px) clamp(40px, 5vw, 56px);
	align-items: center;
}

.ed-portfolio-card--primary:nth-child(even) .ed-portfolio-card__layout {
	direction: rtl;
}

.ed-portfolio-card--primary:nth-child(even) .ed-portfolio-card__layout > * {
	direction: ltr;
}

.ed-portfolio-card__body-link {
	display: block;
	color: inherit;
	text-decoration: none;
	cursor: pointer;
}

.ed-portfolio-card__media--empty .ed-portfolio-browser__viewport {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 280px;
	border-radius: var(--o3w-radius, 6px);
	color: rgba(28, 26, 24, 0.35);
	font-size: 11px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.ed-portfolio-card__body {
	padding-top: 8px;
}

.ed-portfolio-card--primary .ed-portfolio-card__body {
	padding-top: 0;
}

.ed-portfolio-card__sector {
	margin: 0 0 10px;
	font-family: var(--o3w-font-heading, system-ui, sans-serif);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: rgba(28, 26, 24, 0.5);
}

.ed-portfolio-card__title {
	margin: 0 0 12px;
	max-width: 22ch;
	font-family: var(--o3w-font-display);
	font-size: clamp(1.5rem, 2.2vw, 2rem);
	font-weight: 500;
	line-height: 1.12;
	letter-spacing: -0.02em;
	text-wrap: balance;
}

.ed-portfolio-card--primary .ed-portfolio-card__title {
	max-width: 16ch;
	font-size: clamp(1.75rem, 2.6vw, 2.35rem);
	margin-bottom: 14px;
}

.ed-portfolio-card--compact .ed-portfolio-card__title {
	font-size: clamp(1.25rem, 1.8vw, 1.5rem);
	max-width: none;
	margin-bottom: 10px;
}

.ed-portfolio-card__tagline {
	margin: 0 0 10px;
	max-width: 42ch;
	font-size: clamp(15px, 1vw, 16px);
	line-height: 1.6;
	color: rgba(28, 26, 24, 0.65);
}

.ed-portfolio-card--primary .ed-portfolio-card__tagline {
	max-width: 38ch;
	font-size: clamp(1rem, 1.15vw, 1.125rem);
	line-height: 1.65;
	margin-bottom: 14px;
}

.ed-portfolio-card--compact .ed-portfolio-card__tagline {
	font-size: 0.875rem;
	line-height: 1.55;
	margin-bottom: 12px;
}

.ed-portfolio-card__intro {
	margin: 0 0 20px;
	max-width: 40ch;
	font-size: clamp(1rem, 1.1vw, 1.0625rem);
	line-height: 1.65;
	color: rgba(28, 26, 24, 0.72);
}

.ed-portfolio-card--primary .ed-portfolio-card__intro {
	max-width: 42ch;
	font-size: clamp(1.03125rem, 1.2vw, 1.125rem);
	margin-bottom: 24px;
}

.ed-portfolio-card__intro--compact {
	margin: 0 0 16px;
	max-width: none;
	font-size: 0.875rem;
	line-height: 1.55;
	color: rgba(28, 26, 24, 0.62);
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.ed-portfolio-card__role {
	margin: 0 0 16px;
	font-size: 0.9rem;
	line-height: 1.5;
	color: rgba(28, 26, 24, 0.52);
}

.ed-portfolio-card__cta {
	font-family: var(--o3w-font-heading, system-ui, sans-serif);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--o3w-vert, #2f4a3e);
}

.ed-portfolio-card--hub .ed-portfolio-card__body-static {
	display: block;
	color: inherit;
}

.ed-portfolio-card__hub-detail {
	margin-top: 20px;
	padding-top: 24px;
	border-top: 1px solid rgba(0, 0, 0, 0.08);
}

.ed-portfolio-card__summary {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.ed-portfolio-card__summary-text {
	margin: 0;
	max-width: 48ch;
	font-size: 0.9375rem;
	line-height: 1.6;
	color: rgba(28, 26, 24, 0.72);
}

.ed-portfolio-card__collab {
	margin: 20px 0 0;
	max-width: 48ch;
	font-size: 0.875rem;
	line-height: 1.55;
	color: rgba(28, 26, 24, 0.55);
	font-style: italic;
}

.ed-portfolio-card__services {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 10px;
	margin-top: 20px;
}

.ed-portfolio-card__service-tag {
	display: inline-block;
	padding: 6px 12px;
	font-family: var(--o3w-font-heading, system-ui, sans-serif);
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: rgba(28, 26, 24, 0.68);
	background: rgba(47, 74, 62, 0.08);
	border-radius: var(--o3w-radius, 6px);
}

.ed-portfolio-card__external {
	margin: 20px 0 0;
}

.ed-portfolio-card__external a {
	font-family: var(--o3w-font-heading, system-ui, sans-serif);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--o3w-vert, #2f4a3e);
	text-decoration: none;
}

.ed-portfolio-card__external a:hover {
	text-decoration: underline;
}

.ed-portfolio-card--hub {
	scroll-margin-top: 120px;
}

.ed-portfolio-card__compact-link {
	display: block;
	color: inherit;
	text-decoration: none;
	cursor: pointer;
}

.ed-portfolio-card__compact-link:hover .ed-portfolio-card__title {
	color: var(--o3w-vert, #2f4a3e);
}

.ed-portfolio-card__compact-inner {
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	background: #fff;
	border: 1px solid rgba(0, 0, 0, 0.07);
	border-radius: var(--o3w-radius, 6px);
	transition: border-color 0.25s ease, box-shadow 0.25s ease;
}

.ed-portfolio-card--compact:hover .ed-portfolio-card__compact-inner {
	border-color: rgba(47, 74, 62, 0.22);
	box-shadow: 0 12px 40px rgba(28, 26, 24, 0.06);
}

.ed-portfolio-card--compact .ed-portfolio-card__media {
	overflow: hidden;
	position: relative;
	isolation: isolate;
}

.ed-portfolio-card--compact .ed-portfolio-card__media .ed-portfolio-browser {
	position: relative;
	z-index: 0;
	border-radius: 0;
	border: 0;
	box-shadow: none;
}

.ed-portfolio-card--compact .ed-portfolio-browser__chrome {
	position: relative;
	z-index: 4;
}

.ed-portfolio-card--compact .ed-portfolio-browser__viewport {
	position: relative;
	z-index: 1;
}

.ed-portfolio-card--compact .ed-portfolio-browser__capture {
	position: relative;
	z-index: 1;
}

.ed-portfolio-card--compact .ed-portfolio-browser__scroll-hint {
	bottom: 14px;
	z-index: 30;
	transform: translate(-50%, 0);
}

/* Autres réalisations : double chevron (↕) au survol = aperçu défilant, pas « suite » */
.ed-portfolio-browser--hint-hover .ed-portfolio-browser__viewport.has-scroll + .ed-portfolio-browser__scroll-hint,
.ed-portfolio-browser--hint-hover:has(.ed-portfolio-browser__viewport.has-scroll) .ed-portfolio-browser__scroll-hint {
	opacity: 0;
}

.ed-portfolio-card--compact:hover .ed-portfolio-browser--hint-hover .ed-portfolio-browser__viewport.has-scroll + .ed-portfolio-browser__scroll-hint,
.ed-portfolio-card--compact:hover .ed-portfolio-browser--hint-hover:has(.ed-portfolio-browser__viewport.has-scroll) .ed-portfolio-browser__scroll-hint,
.ed-portfolio-card--compact .ed-portfolio-browser--hint-hover.is-scrolling .ed-portfolio-browser__scroll-hint {
	opacity: 1;
}

.ed-portfolio-browser__scroll-icon--hover {
	animation: ed-portfolio-hover-nudge 2.4s ease-in-out infinite;
}

@keyframes ed-portfolio-hover-nudge {
	0%,
	100% {
		transform: translateY(0);
	}
	50% {
		transform: translateY(-2px);
	}
}

@media (prefers-reduced-motion: reduce) {
	.ed-portfolio-browser__scroll-icon--hover {
		animation: none;
	}
}

.ed-portfolio-card--compact .ed-portfolio-card__body {
	padding: 20px 24px 22px;
}

.ed-portfolio-card--compact .ed-portfolio-card__title {
	margin: 0;
	font-size: 1.05rem;
	line-height: 1.25;
}

.ed-portfolio-card--compact .ed-portfolio-card__sector {
	margin: 0 0 12px;
	font-size: 10px;
	letter-spacing: 0.18em;
}

.ed-portfolio-card__services--compact {
	margin-top: 4px;
	margin-bottom: 14px;
}

.ed-portfolio-card__services--compact .ed-portfolio-card__service-tag {
	padding: 4px 8px;
	font-size: 9px;
	letter-spacing: 0.1em;
}

.ed-portfolio-card--compact .ed-portfolio-card__external {
	margin: 12px 0 0;
}

.ed-portfolio-domains__lead {
	max-width: 52ch;
	margin-bottom: 0;
}

.ed-portfolio-domains__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 10px;
	margin: 28px 0 0;
	padding: 0;
	list-style: none;
}

.ed-portfolio-domains__tag {
	display: inline-flex;
	align-items: center;
	box-sizing: border-box;
	padding: 8px 14px;
	font-family: var(--o3w-font-heading, system-ui, sans-serif);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	text-decoration: none;
	color: rgba(28, 26, 24, 0.72);
	background: rgba(47, 74, 62, 0.08);
	border: 1px solid rgba(47, 74, 62, 0.12);
	border-radius: var(--o3w-radius, 6px);
	transition: background 0.35s var(--o3w-ease), border-color 0.35s var(--o3w-ease), color 0.35s var(--o3w-ease);
}

.ed-portfolio-domains__tag:hover,
.ed-portfolio-domains__tag:focus-visible {
	color: var(--o3w-ink, #1c1a18);
	background: rgba(47, 74, 62, 0.14);
	border-color: rgba(47, 74, 62, 0.22);
}

/* ——— Fiche projet ——— */
.ed-project-sheet__sector {
	margin: 16px 0 0;
	font-size: 11px;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: rgba(28, 26, 24, 0.5);
}

.ed-project-sheet__visual {
	background: #f4f2ee;
	border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

.ed-project-sheet__visual-inner {
	box-sizing: border-box;
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 var(--ed-shell-pad-x, 96px) 64px;
}

.ed-project-sheet__visual .ed-portfolio-browser--featured .ed-portfolio-browser__viewport {
	width: 100%;
	max-width: 100%;
	height: min(72vh, 780px);
}

.ed-project-sheet__role {
	margin-bottom: 48px;
	padding-bottom: 48px;
	border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}

.ed-project-sheet__role-label {
	margin: 0 0 12px;
	font-size: 11px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: rgba(28, 26, 24, 0.5);
}

.ed-project-sheet__role-text {
	margin: 0 0 12px;
	font-size: 1.125rem;
	line-height: 1.6;
}

.ed-project-sheet__collab {
	margin: 0;
	font-size: 1rem;
	line-height: 1.6;
	color: rgba(28, 26, 24, 0.65);
}

.ed-project-sheet__summary {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 32px;
	margin-bottom: 48px;
}

.ed-project-sheet__summary-label {
	margin: 0 0 8px;
	font-size: 11px;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: rgba(28, 26, 24, 0.5);
}

.ed-project-sheet__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-bottom: 56px;
}

.ed-project-sheet__tags span {
	padding: 8px 14px;
	font-size: 11px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	border: 1px solid rgba(0, 0, 0, 0.1);
}

.ed-project-sheet__nav {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding-top: 32px;
	border-top: 1px solid rgba(0, 0, 0, 0.08);
}

.ed-project-sheet__nav a:first-child {
	color: rgba(28, 26, 24, 0.6);
	text-decoration: none;
}

.ed-project-sheet__nav a:first-child:hover {
	color: var(--o3w-vert, #2f4a3e);
}

@media (max-width: 1024px) {
	.ed-portfolio-featured__inner,
	.ed-project-sheet__visual-inner {
		padding-inline: var(--ed-shell-pad-x, 48px);
	}

	.ed-portfolio-featured__grid,
	.ed-portfolio-card--primary .ed-portfolio-card__layout {
		grid-template-columns: 1fr;
		gap: 32px;
	}

	.ed-portfolio-card--primary:nth-child(even) .ed-portfolio-card__layout {
		direction: ltr;
	}

	.ed-portfolio-grid--compact {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 640px) {
	.ed-portfolio-featured__inner,
	.ed-project-sheet__visual-inner {
		padding-inline: var(--ed-shell-pad-x, 24px);
	}

	.ed-project-sheet__summary {
		grid-template-columns: 1fr;
	}
}

/* ——— Fiche projet showcase (type « à la une ») ——— */
.ed-project-showcase__sector {
	margin: 0 0 12px;
	font-size: 11px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: rgba(28, 26, 24, 0.5);
}

.ed-project-showcase__sector--hero {
	margin: 0 0 14px;
}

.ed-project-showcase__stage.ed-portfolio-featured {
	margin-top: 0;
}

.ed-project-showcase__role {
	margin: 0 0 8px;
	font-size: 0.9375rem;
	line-height: 1.55;
	color: rgba(28, 26, 24, 0.72);
}

.ed-project-showcase__role-label {
	display: block;
	margin-bottom: 6px;
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: rgba(28, 26, 24, 0.5);
}

.ed-project-showcase__collab {
	margin: 0 0 24px;
	font-size: 0.875rem;
	line-height: 1.5;
	color: rgba(28, 26, 24, 0.52);
}

.ed-project-showcase__chapter + .ed-project-showcase__chapter {
	border-top: 1px solid rgba(0, 0, 0, 0.06);
}

.ed-project-showcase__chapter:last-child .ed-shell-band__inner {
	padding-bottom: clamp(40px, 5vh, 56px);
}

.ed-project-showcase__prose {
	max-width: 58ch;
	margin-top: 24px;
	font-size: 1rem;
	line-height: 1.65;
	color: rgba(28, 26, 24, 0.78);
}

.ed-project-showcase__prose p {
	margin: 0 0 1em;
}

.ed-project-showcase__prose p:last-child {
	margin-bottom: 0;
}

.ed-project-showcase__hero.ed-shell-hero {
	border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

.ed-project-showcase__hero-tagline {
	margin: 0 0 18px;
	max-width: 36rem;
	font-size: 11px;
	line-height: 1.5;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: rgba(28, 26, 24, 0.52);
}

.ed-project-showcase__hero .ed-shell-hero__intro {
	margin: 0;
	max-width: 44rem;
}

.ed-project-showcase__hero .ed-shell-hero__intro p {
	margin: 0 0 1.1em;
	font-family: var(--o3w-font-body);
	font-size: clamp(17px, 1.12vw, 19px);
	line-height: 1.72;
	color: rgba(28, 26, 24, 0.74);
}

.ed-project-showcase__hero .ed-shell-hero__intro p:last-child {
	margin-bottom: 0;
}

.ed-project-showcase__footer {
	background: var(--o3w-paper);
	border-top: 1px solid rgba(0, 0, 0, 0.06);
}

.ed-project-showcase__footer-inner {
	box-sizing: border-box;
	max-width: 1680px;
	margin: 0 auto;
	padding: clamp(32px, 4vh, 44px) var(--ed-shell-pad-x, 96px) clamp(36px, 4.5vh, 52px);
}

.ed-project-showcase__tags-block {
	margin: 0;
}

.ed-project-showcase__tags-grid {
	display: grid;
	grid-template-columns: 220px minmax(0, 1fr);
	column-gap: 96px;
	align-items: start;
}

.ed-project-showcase__tags-label {
	margin: 0;
	padding-top: 6px;
}

.ed-project-showcase__footer .ed-project-showcase__tags.ed-project-sheet__tags {
	margin: 0;
}

.ed-project-showcase__journal {
	margin-top: clamp(32px, 4vh, 44px);
	padding-top: clamp(28px, 3.5vh, 40px);
	border-top: 1px solid rgba(0, 0, 0, 0.08);
}

.ed-project-showcase__journal-grid {
	display: grid;
	grid-template-columns: 220px minmax(0, 1fr);
	column-gap: 96px;
	align-items: start;
}

.ed-project-showcase__journal-label {
	margin: 0;
}

.ed-project-showcase__journal-head {
	margin: 0 0 24px;
	font-family: var(--o3w-font-display);
	font-size: clamp(1.35rem, 2.2vw, 1.75rem);
	font-weight: 500;
	line-height: 1.15;
	letter-spacing: -0.02em;
}

.ed-project-showcase__journal-list {
	margin: 0;
}

.ed-project-showcase__journal-all {
	margin: 20px 0 0;
	font-size: 0.875rem;
}

.ed-project-showcase__journal-all a {
	color: var(--o3w-vert, #2f4a3e);
	text-decoration: none;
}

.ed-project-showcase__journal-all a:hover {
	text-decoration: underline;
}

.ed-project-showcase__cta.ed-shell-cta-bar {
	margin-top: 0;
}

.ed-project-showcase__cta-actions {
	justify-content: center;
	flex-wrap: wrap;
	gap: 12px 16px;
}

.ed-project-showcase__back {
	background: var(--o3w-paper);
	border-top: 1px solid rgba(0, 0, 0, 0.06);
}

.ed-project-showcase__back-inner {
	box-sizing: border-box;
	max-width: 1680px;
	margin: 0 auto;
	padding: 28px 96px clamp(48px, 6vh, 72px);
}

.ed-project-showcase__back a {
	font-size: 0.875rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: rgba(28, 26, 24, 0.55);
	text-decoration: none;
}

.ed-project-showcase__back a:hover {
	color: var(--o3w-vert, #2f4a3e);
}

@media (max-width: 1024px) {
	.ed-project-showcase__footer-inner,
	.ed-project-showcase__back-inner {
		padding-inline: var(--ed-shell-pad-x, 48px);
	}

	.ed-project-showcase__journal-grid,
	.ed-project-showcase__tags-grid {
		grid-template-columns: 1fr;
		row-gap: 16px;
	}

	.ed-project-showcase__tags-label {
		padding-top: 0;
	}
}

@media (max-width: 640px) {
	.ed-project-showcase__footer-inner,
	.ed-project-showcase__back-inner {
		padding-inline: var(--ed-shell-pad-x, 24px);
	}
}

/* ——— Page Réalisations — éditorial par problématiques ——— */
.ed-portfolio-editorial-page {
	--ed-portfolio-section-y: clamp(80px, 10vh, 112px);
	--ed-portfolio-gap-y: clamp(48px, 6vh, 64px);
	--ed-portfolio-gap-tight: clamp(28px, 3.5vh, 40px);
}

.ed-portfolio-editorial {
	border-top: 1px solid rgba(0, 0, 0, 0.06);
}

.ed-portfolio-editorial--tourism.ed-editorial-spotlight {
	border-top: none;
}

.ed-editorial-spotlight--realisations-tourism .ed-portfolio-editorial__inner,
.ed-editorial-spotlight--realisations-tourism.ed-editorial-spotlight__inner {
	padding-top: clamp(88px, 11vh, 120px);
	padding-bottom: clamp(96px, 12vh, 128px);
}

.ed-portfolio-editorial--identity {
	background: #fff;
}

.ed-portfolio-editorial--visibility {
	background: #f3f1ed;
}

.ed-portfolio-editorial__inner {
	box-sizing: border-box;
	max-width: 1680px;
	margin: 0 auto;
	padding: var(--ed-portfolio-section-y) var(--ed-shell-pad-x, 96px);
}

.ed-portfolio-editorial__header {
	margin-bottom: 0;
	padding: 0;
	border: none;
}

.ed-portfolio-editorial__header .ed-expertises-stance__main {
	max-width: 720px;
}

.ed-portfolio-editorial__title {
	margin: 0 0 clamp(24px, 3vh, 32px);
	max-width: 18ch;
	font-family: var(--o3w-font-display);
	font-size: clamp(2.25rem, 5vw, 4.5rem);
	font-weight: 500;
	line-height: 1.02;
	letter-spacing: -0.035em;
	text-wrap: balance;
}

.ed-portfolio-editorial__lead {
	margin: 0;
	max-width: 40rem;
	font-size: clamp(16px, 1.05vw, 18px);
	line-height: 1.65;
	color: rgba(28, 26, 24, 0.62);
	text-wrap: pretty;
}

.ed-portfolio-editorial__stage {
	margin-top: var(--ed-portfolio-gap-y);
}

/* Typo & liens projets */
.ed-portfolio-editorial__body-link,
.ed-portfolio-editorial__visual-link,
.ed-portfolio-editorial__wide-link,
.ed-portfolio-editorial__compact-link {
	display: block;
	color: inherit;
	text-decoration: none;
	cursor: pointer;
}

.ed-portfolio-editorial__sector {
	margin: 0 0 12px;
	font-family: var(--o3w-font-heading, system-ui, sans-serif);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: rgba(28, 26, 24, 0.5);
}

.ed-portfolio-editorial__project-title {
	margin: 0 0 14px;
	max-width: 16ch;
	font-family: var(--o3w-font-display);
	font-size: clamp(1.5rem, 2.4vw, 2.25rem);
	font-weight: 500;
	line-height: 1.1;
	letter-spacing: -0.025em;
	text-wrap: balance;
}

.ed-portfolio-editorial__tagline {
	margin: 0 0 18px;
	max-width: 34rem;
	font-size: clamp(15px, 1vw, 17px);
	line-height: 1.55;
	color: rgba(28, 26, 24, 0.62);
}

.ed-portfolio-editorial__tagline--short {
	margin-bottom: 0;
	max-width: 28rem;
	font-size: 14px;
}

.ed-portfolio-editorial__excerpt {
	margin: 0 0 24px;
	max-width: 32rem;
	font-size: 15px;
	line-height: 1.6;
	color: rgba(28, 26, 24, 0.58);
}

.ed-portfolio-editorial__excerpt--muted {
	font-size: 14px;
}

.ed-portfolio-editorial__meta {
	margin: 8px 0 0;
	font-size: 12px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: rgba(28, 26, 24, 0.48);
}

.ed-portfolio-editorial__cta {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: var(--o3w-font-heading, system-ui, sans-serif);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--o3w-vert, #2f4a3e);
}

.ed-portfolio-editorial__placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 220px;
	border: 1px solid rgba(0, 0, 0, 0.08);
	border-radius: var(--o3w-radius, 6px);
	font-size: 11px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: rgba(28, 26, 24, 0.35);
}

.ed-portfolio-editorial__hero-media,
.ed-portfolio-editorial__split-media,
.ed-portfolio-editorial__wide-media,
.ed-portfolio-editorial__visual-media,
.ed-portfolio-editorial__compact-media {
	overflow: visible;
}

.ed-portfolio-editorial__hero-media .ed-case-study__device,
.ed-portfolio-editorial__wide-media .ed-case-study__device,
.ed-portfolio-editorial__split-media .ed-case-study__device {
	max-width: 100%;
	margin-inline: auto;
}

/* ——— Projet vedette (La Védence) ——— */
.ed-portfolio-editorial__hero {
	display: grid;
	grid-template-columns: minmax(0, 0.38fr) minmax(0, 1fr);
	gap: clamp(40px, 5vw, 72px);
	align-items: center;
	padding-bottom: var(--ed-portfolio-gap-tight);
	border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}

.ed-portfolio-editorial__hero .ed-portfolio-editorial__project-title {
	max-width: 14ch;
	font-size: clamp(2rem, 3.8vw, 3.25rem);
}

.ed-portfolio-editorial__hero .ed-portfolio-editorial__excerpt {
	max-width: 28rem;
	font-size: 16px;
	line-height: 1.65;
	color: rgba(28, 26, 24, 0.65);
}

.ed-portfolio-editorial__hero-media .ed-portfolio-browser--featured .ed-portfolio-browser__viewport {
	height: min(58vh, 640px);
}

/* ——— Gabarits split / wide / visual / compact ——— */
.ed-portfolio-editorial__split {
	display: grid;
	grid-template-columns: minmax(0, 0.44fr) minmax(0, 1fr);
	gap: clamp(28px, 3.5vw, 48px);
	align-items: center;
}

.ed-portfolio-editorial__split--reverse {
	grid-template-columns: minmax(0, 1fr) minmax(0, 0.42fr);
}

.ed-portfolio-editorial__split--reverse .ed-portfolio-editorial__split-copy {
	order: 2;
}

.ed-portfolio-editorial__split--reverse .ed-portfolio-editorial__split-media {
	order: 1;
}

.ed-portfolio-editorial__wide-link {
	display: flex;
	flex-direction: column;
	gap: clamp(20px, 2.5vh, 28px);
}

.ed-portfolio-editorial__visual-link {
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.ed-portfolio-editorial__compact-link {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 0.9fr);
	gap: clamp(20px, 2.5vw, 28px);
	align-items: end;
}

.ed-portfolio-editorial__compact .ed-portfolio-editorial__project-title {
	font-size: clamp(1.25rem, 1.8vw, 1.65rem);
}

/* ——— Section 1 — Tourisme (mosaïque) ——— */
.ed-portfolio-editorial__stage--tourism {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	gap: clamp(32px, 4vw, 48px) clamp(24px, 3vw, 36px);
	align-items: start;
}

.ed-portfolio-editorial__stage--tourism .ed-portfolio-editorial__project--hero {
	grid-column: 1 / -1;
}

.ed-portfolio-editorial__stage--tourism .ed-portfolio-editorial__project--wide {
	grid-column: 1 / span 7;
	align-self: center;
}

.ed-portfolio-editorial__stage--tourism .ed-portfolio-editorial__project--visual {
	grid-column: 8 / -1;
}

.ed-portfolio-editorial__stage--tourism .ed-portfolio-editorial__project--compact {
	grid-column: 2 / span 5;
	margin-top: clamp(-16px, -2vh, 0);
}

/* ——— Section 2 — Identité (rythme asymétrique) ——— */
.ed-portfolio-editorial__stage--identity {
	display: flex;
	flex-direction: column;
	gap: clamp(56px, 7vh, 88px);
}

.ed-portfolio-editorial__stage--identity .ed-portfolio-editorial__project--split {
	padding-right: clamp(0px, 4vw, 48px);
}

.ed-portfolio-editorial__stage--identity .ed-portfolio-editorial__project--visual {
	width: min(72%, 880px);
	margin-left: auto;
}

.ed-portfolio-editorial__stage--identity .ed-portfolio-editorial__project--split-reverse {
	width: min(94%, 1120px);
}

.ed-portfolio-editorial__stage--identity .ed-portfolio-editorial__project--split-reverse .ed-portfolio-editorial__split {
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.38fr);
}

/* ——— Section 3 — Visibilité ——— */
.ed-portfolio-editorial__stage--visibility {
	display: grid;
	grid-template-columns: minmax(0, 1.12fr) minmax(0, 0.88fr);
	gap: clamp(32px, 4vw, 48px) clamp(24px, 3vw, 36px);
	align-items: start;
}

.ed-portfolio-editorial__stage--visibility .ed-portfolio-editorial__project--wide {
	grid-column: 1 / -1;
}

.ed-portfolio-editorial__stage--visibility .ed-portfolio-editorial__project--split-reverse {
	grid-column: 1;
	align-self: center;
}

.ed-portfolio-editorial__stage--visibility .ed-portfolio-editorial__project--compact {
	grid-column: 2;
	margin-top: clamp(24px, 4vh, 56px);
}

/* Hover discret */
.ed-portfolio-editorial:not(.ed-editorial-spotlight) .ed-portfolio-editorial__body-link:hover .ed-portfolio-editorial__cta,
.ed-portfolio-editorial:not(.ed-editorial-spotlight) .ed-portfolio-editorial__wide-link:hover .ed-portfolio-editorial__cta,
.ed-portfolio-editorial:not(.ed-editorial-spotlight) .ed-portfolio-editorial__visual-link:hover .ed-portfolio-editorial__project-title,
.ed-portfolio-editorial:not(.ed-editorial-spotlight) .ed-portfolio-editorial__compact-link:hover .ed-portfolio-editorial__project-title {
	color: var(--o3w-vert-deep, #243d32);
}

@media (max-width: 1024px) {
	.ed-portfolio-editorial-page {
		--ed-portfolio-section-y: clamp(64px, 8vh, 88px);
		--ed-portfolio-gap-y: clamp(40px, 5vh, 52px);
	}

	.ed-portfolio-editorial__hero,
	.ed-portfolio-editorial__split,
	.ed-portfolio-editorial__split--reverse,
	.ed-portfolio-editorial__compact-link {
		grid-template-columns: 1fr;
	}

	.ed-portfolio-editorial__split--reverse .ed-portfolio-editorial__split-copy,
	.ed-portfolio-editorial__split--reverse .ed-portfolio-editorial__split-media {
		order: unset;
	}

	.ed-portfolio-editorial__stage--tourism,
	.ed-portfolio-editorial__stage--visibility {
		display: flex;
		flex-direction: column;
		gap: var(--ed-portfolio-gap-y);
	}

	.ed-portfolio-editorial__stage--tourism .ed-portfolio-editorial__project--compact {
		margin-top: 0;
	}

	.ed-portfolio-editorial__stage--identity .ed-portfolio-editorial__project--visual,
	.ed-portfolio-editorial__stage--identity .ed-portfolio-editorial__project--split-reverse {
		width: 100%;
	}

	.ed-portfolio-editorial__stage--identity .ed-portfolio-editorial__project--split {
		padding-right: 0;
	}

	.ed-portfolio-editorial__stage--visibility .ed-portfolio-editorial__project--compact {
		margin-top: 0;
	}
}

@media (max-width: 640px) {
	.ed-portfolio-editorial__inner {
		padding-inline: var(--ed-shell-pad-x, 24px);
	}

	.ed-portfolio-editorial__hero {
		gap: 28px;
	}
}

/* ——— Page Réalisations — grille masonry (capture entière) ——— */
.ed-portfolio-masonry-page {
	background: var(--o3w-paper, #faf9f7);
	border-top: 1px solid rgba(0, 0, 0, 0.06);
}

.ed-portfolio-masonry-page__inner {
	box-sizing: border-box;
	max-width: 1680px;
	margin: 0 auto;
	padding: clamp(64px, 8vh, 96px) var(--ed-shell-pad-x, 96px) clamp(88px, 11vh, 120px);
}

.ed-portfolio-masonry {
	column-count: 2;
	column-gap: clamp(36px, 4vw, 52px);
}

.ed-portfolio-masonry__item {
	break-inside: avoid;
	margin: 0 0 clamp(48px, 5.5vh, 72px);
}

.ed-portfolio-masonry__card {
	display: flex;
	flex-direction: column;
	overflow: visible;
	height: 100%;
	position: relative;
	z-index: 1;
	color: var(--o3w-ink, #1c1a18);
	text-decoration: none;
	cursor: pointer;
	background: transparent;
	border: none;
	border-radius: 0;
	box-shadow: none;
	transition: transform 0.25s ease;
}

.ed-portfolio-masonry__item:hover .ed-portfolio-masonry__card {
	transform: translateY(-1px);
}

.ed-portfolio-masonry__card:focus-visible {
	box-shadow: none;
	transform: none;
}

@media (prefers-reduced-motion: reduce) {
	.ed-portfolio-masonry__item:hover .ed-portfolio-masonry__card,
	.ed-portfolio-masonry__card:focus-visible {
		transform: none;
	}
}

.ed-portfolio-masonry__card:focus-visible {
	outline: 2px solid rgba(47, 74, 62, 0.55);
	outline-offset: 4px;
}

.ed-portfolio-masonry__media {
	overflow: visible;
	background: transparent;
	padding: 0;
	filter: drop-shadow(0 10px 32px rgba(17, 12, 46, 0.08));
}

.o3w-editorial .ed-portfolio-masonry__media .ed-portfolio-browser,
.o3w-editorial .ed-portfolio-masonry__media .ed-portfolio-browser--masonry {
	overflow: visible;
	border-radius: 0;
	box-shadow: none;
	background: transparent;
}

.ed-portfolio-masonry__media .ed-portfolio-browser,
.ed-portfolio-masonry__media .ed-portfolio-browser--masonry {
	width: 100%;
	border-radius: 0;
	border: 0;
	box-shadow: none;
	background: transparent;
}

.ed-portfolio-masonry__media .ed-portfolio-browser__chrome {
	position: relative;
	z-index: 4;
}

.ed-portfolio-masonry__media .ed-portfolio-browser__viewport {
	position: relative;
	z-index: 1;
	height: auto;
	max-height: none;
	overflow: visible;
	background: #fff;
	line-height: 0;
}

.ed-portfolio-masonry__media .ed-portfolio-browser__capture,
.ed-portfolio-masonry__media .ed-portfolio-browser__capture picture {
	line-height: 0;
	font-size: 0;
}

.ed-portfolio-masonry__media .ed-portfolio-browser__capture img {
	display: block;
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;
	height: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	vertical-align: top;
}

.ed-portfolio-masonry__media-link {
	display: block;
	color: inherit;
	text-decoration: none;
}

.ed-portfolio-masonry__media picture,
.ed-portfolio-masonry__media img {
	display: block;
	width: 100%;
	height: auto;
	vertical-align: top;
}

.ed-portfolio-masonry__media--empty {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 220px;
	color: rgba(28, 26, 24, 0.35);
	font-size: 11px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.ed-portfolio-masonry__body {
	padding: clamp(24px, 3vh, 32px) 0 clamp(28px, 3.5vh, 40px);
	background: transparent;
	border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}

.ed-portfolio-masonry__sector {
	margin: 0 0 10px;
	font-family: var(--o3w-font-heading, system-ui, sans-serif);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: rgba(28, 26, 24, 0.5);
}

.ed-portfolio-masonry__title {
	margin: 0 0 14px;
	font-family: var(--o3w-font-display);
	font-size: clamp(1.2rem, 1.8vw, 1.5rem);
	font-weight: 500;
	line-height: 1.15;
	letter-spacing: -0.02em;
	text-wrap: balance;
	color: var(--o3w-ink, #1c1a18);
	transition: color 0.2s ease;
}

.ed-portfolio-masonry__item:hover .ed-portfolio-masonry__title {
	color: var(--o3w-vert, #2f4a3e);
}

.ed-portfolio-masonry__intro {
	margin: 0 0 10px;
	max-width: 42rem;
	font-size: 15px;
	line-height: 1.6;
	color: rgba(28, 26, 24, 0.65);
	text-wrap: pretty;
}

.ed-portfolio-masonry__intro:last-of-type {
	margin-bottom: 16px;
}

.ed-portfolio-masonry__cta {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: var(--o3w-font-heading, system-ui, sans-serif);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: rgba(28, 26, 24, 0.72);
}

.ed-portfolio-masonry__item:hover .ed-portfolio-masonry__cta {
	color: var(--o3w-ink, #1c1a18);
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

/* Priorité sur .o3w-editorial a { color: vert } */
.o3w-editorial .ed-portfolio-masonry__card,
.o3w-editorial .ed-portfolio-masonry__card:hover,
.o3w-editorial .ed-portfolio-masonry__card:focus-visible {
	color: var(--o3w-ink, #1c1a18);
}

@media (min-width: 1200px) {
	.ed-portfolio-masonry {
		column-count: 3;
	}
}

@media (max-width: 900px) {
	.ed-portfolio-masonry {
		column-count: 1;
	}

	.ed-portfolio-masonry-page__inner {
		padding-top: clamp(48px, 6vh, 64px);
	}
}

@media (max-width: 640px) {
	.ed-portfolio-masonry-page__inner {
		padding-inline: var(--ed-shell-pad-x, 24px);
	}
}
