/*
 * Pages éditoriales : une composition propre à chaque famille de pages.
 *
 * Design system commun (couleurs, typographies, échelle d'espacement, liens,
 * filets, flèches, états) ; macro-compositions distinctes par famille :
 *   ye-doc  service B2B (série documentaire)
 *   ye-pil  pilier Particuliers (triptyque, chapitres)
 *   ye-mar  univers Particuliers (récit chronologique)
 *   ye-lan  landing SEO (compacte)
 *   ye-pf   portfolio (galerie par séries, filtres, visionneuse)
 *   ye-ab   À propos (portrait et récit)
 *   ye-ct   contact (fonctionnel, calme)
 *   ye-bl   blog (archive éditoriale) et ye-art (article)
 */

:is(.yohann-sections-frame, .ye-art-frame, .editor-styles-wrapper) {
	/* Échelle d'espacement : jetons sémantiques, jamais de valeur répétée partout. */
	--ye-pad: var(--wp--custom--layout--page-gutter, clamp(1.1rem, 2.6vw, 2.75rem));
	--ye-y-tight: clamp(2.75rem, 5vw, 4.5rem);
	--ye-y: clamp(4rem, 7.5vw, 6.75rem);
	--ye-y-wide: clamp(5.5rem, 10vw, 9rem);
	--ye-gap-title: clamp(1.5rem, 2.4vw, 2.25rem);   /* titre → chapô */
	--ye-gap-lead: clamp(1.1rem, 1.6vw, 1.4rem);      /* chapô → texte */
	--ye-gap-text: 1rem;                              /* texte → texte */
	--ye-gap-cta: clamp(2.25rem, 3.4vw, 3.25rem);     /* texte → action */
	--ye-col: clamp(1rem, 2.2vw, 2.5rem);
	--ye-ink: #0b0a08;
	--ye-paper: #f3f0e8;
	--ye-white: #ffffff;
	--ye-dark: #171511;
	--ye-muted: #aaa49a;
	--ye-muted-light: #6f6a62;
	--ye-on-dark: #ded8cd;
	--ye-signal: #c7a675;
	--ye-signal-strong: #755d3a;
	--ye-line-dark: rgba(222, 216, 205, 0.24);
	--ye-line-light: rgba(11, 10, 8, 0.24);
	--ye-display: var(--wp--preset--font-family--display, "League Gothic", sans-serif);
	--ye-body: var(--wp--preset--font-family--body, "Manrope", sans-serif);
	--ye-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='square'%3E%3Cpath d='M3 13 13 3M5 3h8v8'/%3E%3C/svg%3E");

	.wp-block-post-content > *,
	.wp-block-post-content :where(.wp-block-group, .wp-block-image, .wp-block-buttons, .wp-block-button, .wp-block-heading, p, ol, ul) {
		margin-block: 0;
	}

	.wp-block-post-content > .wp-block-group {
		max-width: none;
	}

	/* Les groupes à fond coloré reçoivent un remplissage de WordPress : il est annulé ici,
	   chaque composition définit ensuite le sien. */
	.ye-fork,
	.ye-ab-duo,
	.ye-pil-voir,
	.ye-pf,
	.ye-split,
	.ye-bl-feature-wrap,
	.ye-bl-list-wrap {
		padding: 0;
	}

	/* ---------- Gabarits typographiques ---------- */
	.ye-h1,
	.ye-h2,
	.ye-h3 {
		font-family: var(--ye-display);
		font-weight: 400;
		letter-spacing: -0.02em;
		text-transform: uppercase;
		text-wrap: balance;
	}

	.ye-h1 {
		font-size: clamp(3.8rem, 7.4vw, 6rem);
		line-height: 0.86;
	}

	.ye-h2 {
		font-size: clamp(2.9rem, 5.2vw, 4.7rem);
		line-height: 0.92;
	}

	.ye-h3 {
		font-size: clamp(1.9rem, 2.7vw, 2.6rem);
		line-height: 0.96;
		letter-spacing: -0.01em;
	}

	.ye-lead {
		max-width: 40ch;
		font-size: clamp(1.15rem, 1.5vw, 1.35rem);
		font-weight: 500;
		line-height: 1.45;
	}

	.ye-text {
		max-width: 62ch;
		font-size: 1rem;
		line-height: 1.7;
	}

	.ye-small {
		font-size: 0.8125rem;
		line-height: 1.55;
	}

	.ye-label {
		font-size: 0.72rem;
		font-weight: 600;
		letter-spacing: 0.08em;
		text-transform: uppercase;
	}

	/* Rythme vertical d'un bloc de texte : distances volontairement inégales. */
	.ye-copy > * + * {
		margin-top: var(--ye-gap-text);
	}

	.ye-copy > .ye-h1 + *,
	.ye-copy > .ye-h2 + * {
		margin-top: var(--ye-gap-title);
	}

	.ye-copy > .ye-lead + * {
		margin-top: var(--ye-gap-lead);
	}

	.ye-copy > .ye-h3 + * {
		margin-top: 0.85rem;
	}

	.ye-copy > * + .ye-h3 {
		margin-top: clamp(2.25rem, 3.4vw, 3.25rem);
	}

	.ye-copy > .wp-block-buttons {
		margin-top: var(--ye-gap-cta);
	}

	.ye-dark,
	.ye-dark :where(.ye-text, .ye-small) {
		color: var(--ye-on-dark);
	}

	.ye-dark :where(.ye-h1, .ye-h2, .ye-h3, .ye-lead) {
		color: var(--ye-white);
	}

	.ye-muted {
		color: var(--ye-muted-light);
	}

	.ye-dark .ye-muted {
		color: var(--ye-muted);
	}

	/* ---------- Images : cadrage, ratios, légendes ---------- */
	.ye-fig,
	.ye-fig.wp-block-image {
		position: relative;
		margin: 0;
		overflow: hidden;
	}

	.ye-fig img {
		display: block;
		width: 100%;
		height: auto;
		object-fit: cover;
	}

	.ye-fig figcaption {
		margin: 0;
		padding-top: 0.6rem;
		color: inherit;
		font-size: 0.75rem;
		line-height: 1.4;
		text-align: left;
	}

	.ye-ar-169 img { aspect-ratio: 16 / 9; }
	.ye-ar-219 img { aspect-ratio: 21 / 9; }
	.ye-ar-32 img { aspect-ratio: 3 / 2; }
	.ye-ar-43 img { aspect-ratio: 4 / 3; }
	.ye-ar-11 img { aspect-ratio: 1 / 1; }
	.ye-ar-45 img { aspect-ratio: 4 / 5; }
	.ye-ar-34 img { aspect-ratio: 3 / 4; }
	.ye-ar-23 img { aspect-ratio: 2 / 3; }

	/* Images qui remplissent leur conteneur (hauteur imposée par la composition). */
	:is(.ye-doc-hero__image, .ye-mar-hero > .ye-fig, .ye-band > .ye-fig, .ye-ab-hero > .ye-fig, .ye-duo > .ye-fig, .ye-split > .ye-fig, .ye-rail > .ye-fig) img {
		height: 100%;
	}

	/* ---------- Actions (couleurs de lien : jetons de style.css) ---------- */
	.wp-block-buttons {
		gap: 0.85rem 2.25rem;
		align-items: center;
	}

	.wp-block-button.is-style-text-link .wp-block-button__link {
		display: inline-flex;
		gap: 1rem;
		align-items: center;
		min-height: 2.75rem;
		padding: 0;
		background: transparent;
		border: 0;
		border-bottom: 1px solid currentColor;
		border-radius: 0;
		font-family: var(--ye-body);
		font-size: 0.82rem;
		font-weight: 600;
		line-height: 1.2;
		text-decoration: none;
	}

	.ye-arrow .wp-block-button__link::after {
		flex: 0 0 auto;
		width: 1em;
		height: 1em;
		content: "";
		background: currentColor;
		mask: var(--ye-arrow) center / contain no-repeat;
	}

	.wp-block-button.ye-underline .wp-block-button__link {
		border-bottom-color: transparent;
		text-decoration: underline;
		text-decoration-thickness: 1px;
		text-underline-offset: 0.28em;
	}

	/* ---------- Fil d'Ariane ---------- */
	.ye-crumb {
		font-size: 0.72rem;
		letter-spacing: 0.08em;
		text-transform: uppercase;

		a {
			color: inherit;
			text-decoration: none;
		}

		a:is(:hover, :focus-visible) {
			text-decoration: underline;
		}
	}

	/* =====================================================================
	 * ye-doc — page service B2B : série documentaire
	 * ===================================================================== */
	.ye-doc-hero {
		padding: 0;
	}

	.ye-doc-hero__image {
		height: min(74vh, 46rem);
		min-height: 22rem;
	}

	.ye-doc-hero__bar {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: clamp(1.75rem, 3vw, 3rem) var(--ye-col);
		padding: clamp(1.5rem, 2.6vw, 2.25rem) var(--ye-pad) var(--ye-y-tight);

		> .ye-crumb {
			grid-column: 1 / 13;
			color: var(--ye-muted);
		}

		> .ye-h1 {
			grid-column: 1 / 9;
		}

		> .ye-doc-hero__aside {
			grid-column: 9 / 13;
			align-self: end;
		}
	}

	.ye-doc-strip {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-col);
		align-items: end;
		padding: var(--ye-y) var(--ye-pad);

		> .ye-copy {
			grid-column: 1 / 5;
			align-self: start;
		}

		> .ye-fig:nth-of-type(1) { grid-column: 5 / 9; }
		> .ye-fig:nth-of-type(2) { grid-column: 9 / 11; margin-bottom: clamp(3rem, 7vw, 6rem); }
		> .ye-fig:nth-of-type(3) { grid-column: 11 / 13; }
	}

	.ye-doc-rows {
		padding: var(--ye-y-wide) var(--ye-pad) var(--ye-y);
		display: grid;
		gap: var(--ye-y) 0;
	}

	.ye-doc-row {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-col);
		align-items: end;
	}

	.ye-doc-row--a > .ye-fig { grid-column: 1 / 8; }
	.ye-doc-row--a > .ye-copy { grid-column: 9 / 13; }

	.ye-doc-row--b > .ye-copy { grid-column: 2 / 6; grid-row: 1; align-self: start; }
	.ye-doc-row--b > .ye-fig { grid-column: 7 / 13; grid-row: 1; }

	.ye-doc-row--c > .ye-fig:nth-of-type(1) { grid-column: 1 / 4; }
	.ye-doc-row--c > .ye-fig:nth-of-type(2) { grid-column: 4 / 7; margin-bottom: 4rem; }
	.ye-doc-row--c > .ye-copy { grid-column: 8 / 13; }

	.ye-doc-prep {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-col);
		padding: var(--ye-y) var(--ye-pad);

		> .ye-fig { grid-column: 1 / 5; grid-row: 1 / 3; align-self: stretch; }
		> .ye-copy:nth-of-type(1) { grid-column: 6 / 13; }
		> .ye-copy:nth-of-type(2) { grid-column: 6 / 13; padding-top: var(--ye-y-tight); border-top: 1px solid var(--ye-line-dark); }
	}

	.ye-doc-tight {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-col);
		padding: var(--ye-y-tight) var(--ye-pad);

		> .ye-h2 { grid-column: 1 / 6; }
		> .ye-copy { grid-column: 7 / 13; }
	}

	.ye-fork-head {
		padding: var(--ye-y) var(--ye-pad) var(--ye-y-tight);
	}

	.ye-fork {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 0;
		border-top: 1px solid var(--ye-line-light);

		> .ye-fork__side {
			padding: var(--ye-y-tight) var(--ye-pad);
		}

		> .ye-fork__side + .ye-fork__side {
			border-left: 1px solid var(--ye-line-light);
		}
	}

	.ye-fork__side {
		> .ye-fig { margin-bottom: 1.75rem; }
		> .ye-h3 { margin-bottom: 0.85rem; }
		> .ye-text { max-width: 44ch; }
		> .wp-block-buttons { margin-top: var(--ye-gap-cta); }
	}

	.ye-rail-wrap {
		padding: var(--ye-y) 0 var(--ye-y-tight);

		> .ye-rail-head {
			display: grid;
			grid-template-columns: repeat(12, 1fr);
			gap: var(--ye-col);
			padding: 0 var(--ye-pad);
			margin-bottom: clamp(2.25rem, 4vw, 3.5rem);
			align-items: end;

			> .ye-h2 { grid-column: 1 / 8; }
			> .ye-text { grid-column: 9 / 13; }
		}

		> .wp-block-buttons { padding: var(--ye-gap-cta) var(--ye-pad) 0; }
	}

	.ye-rail {
		display: flex;
		gap: clamp(0.65rem, 1.2vw, 1.25rem);
		padding: 0 var(--ye-pad) 1rem;
		overflow-x: auto;
		scroll-snap-type: x proximity;
		scroll-padding-inline: var(--ye-pad);
		scrollbar-color: var(--ye-signal) var(--ye-ink);
		scrollbar-width: thin;

		> .ye-fig {
			flex: 0 0 auto;
			height: clamp(15rem, 28vw, 25rem);
			scroll-snap-align: start;
		}

		> .ye-fig img {
			width: auto;
			max-width: none;
			height: 100%;
		}
	}

	/* Flèches de défilement de la bande de photos (ajoutées par editorial.js). */
	.ye-rail-wrap.has-nav .ye-rail { scrollbar-width: none; }
	.ye-rail-wrap.has-nav .ye-rail::-webkit-scrollbar { display: none; }

	.ye-rail-nav {
		display: flex;
		gap: 0.75rem;
		justify-content: flex-end;
		padding: 1.25rem var(--ye-pad) 0;
	}

	.ye-rail-nav__btn {
		display: inline-grid;
		place-items: center;
		width: 3.25rem;
		height: 3.25rem;
		padding: 0;
		color: var(--ye-paper, #f3f0e8);
		background: transparent;
		border: 1px solid var(--ye-line-dark, rgba(222, 216, 205, 0.4));
		border-radius: 0;
		cursor: pointer;
		transition: color 160ms ease-out, background-color 160ms ease-out, border-color 160ms ease-out;

		svg { width: 1.25rem; height: 1.25rem; }

		&:hover:not(:disabled),
		&:focus-visible { color: var(--ye-ink); background: var(--ye-signal); border-color: var(--ye-signal); }
		&:focus-visible { outline: 2px solid var(--ye-signal); outline-offset: 3px; }
		&:disabled { opacity: 0.35; cursor: default; }
	}

	.ye-end {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-col);
		align-items: end;
		padding: var(--ye-y-wide) 0 var(--ye-y-wide) var(--ye-pad);

		> .ye-copy { grid-column: 1 / 7; }
		> .ye-fig { grid-column: 8 / 13; margin-right: 0; }
	}

	/* =====================================================================
	 * ye-pil — pilier Particuliers : triptyque et chapitres
	 * ===================================================================== */
	.ye-pil-hero {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-col);
		align-items: start;
		padding: clamp(1.5rem, 2.6vw, 2.25rem) var(--ye-pad) var(--ye-y);

		> .ye-crumb { grid-column: 1 / 13; color: var(--ye-muted-light); }
		> .ye-fig:nth-of-type(1) { grid-column: 1 / 5; margin-top: clamp(2rem, 5vw, 4rem); }
		> .ye-copy { grid-column: 5 / 9; align-self: center; padding-block: clamp(2rem, 5vw, 4rem); }
		> .ye-fig:nth-of-type(2) { grid-column: 9 / 13; margin-top: clamp(7rem, 14vw, 13rem); }
	}

	.ye-chap {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-col);
		padding: var(--ye-y) var(--ye-pad);
		align-items: end;
	}

	.ye-chap--bleed {
		padding-inline: 0;
		row-gap: clamp(2rem, 4vw, 3.5rem);

		> .ye-fig { grid-column: 1 / 13; }
		> .ye-copy:nth-of-type(1) { grid-column: 1 / 7; padding-left: var(--ye-pad); }
		> .ye-copy:nth-of-type(2) { grid-column: 8 / 12; padding-right: var(--ye-pad); }
	}

	.ye-chap--pair > .ye-fig:nth-of-type(1) { grid-column: 1 / 6; grid-row: 1; }
	.ye-chap--pair > .ye-fig:nth-of-type(2) { grid-column: 5 / 8; grid-row: 1; align-self: start; margin-top: clamp(4rem, 9vw, 8rem); border: 0.5rem solid var(--ye-paper); }
	.ye-chap--pair > .ye-copy { grid-column: 9 / 13; grid-row: 1; }

	.ye-chap--side > .ye-copy { grid-column: 1 / 6; }
	.ye-chap--side > .ye-fig { grid-column: 7 / 12; }

	.ye-chap--stack > .ye-fig:nth-of-type(1) { grid-column: 1 / 8; }
	.ye-chap--stack > .ye-fig:nth-of-type(2) { grid-column: 2 / 6; grid-row: 2; }
	.ye-chap--stack > .ye-copy { grid-column: 8 / 13; grid-row: 1 / 3; align-self: center; }

	.ye-needs {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-col);
		padding: var(--ye-y) var(--ye-pad);

		> .ye-copy { grid-column: 1 / 5; }
		> .ye-needs__list { grid-column: 6 / 13; }
	}

	.ye-needs__list {
		border-top: 1px solid var(--ye-line-light);

		> .ye-need {
			display: grid;
			min-height: calc(5rem * 1.25 + 1.7rem);
			grid-template-columns: 1fr 5rem;
			gap: var(--ye-col);
			align-items: center;
			padding: 0.85rem 0;
			border-bottom: 1px solid var(--ye-line-light);
		}

		.ye-need > p {
			font-size: clamp(1.15rem, 1.8vw, 1.5rem);
			font-weight: 500;
		}

		.ye-need .ye-fig {
			width: 5rem;
			aspect-ratio: 4 / 5;
		}
	}

	.ye-wide-text {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-gap-cta) var(--ye-col);
		padding: var(--ye-y) var(--ye-pad);

		> .ye-fig { grid-column: 1 / 13; }
		> .ye-copy:nth-of-type(1) { grid-column: 1 / 6; }
		> .ye-copy:nth-of-type(2) { grid-column: 8 / 13; }
	}

	.ye-cluster {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: clamp(0.65rem, 1.2vw, 1.25rem);
		align-items: end;
		padding: var(--ye-y-tight) var(--ye-pad) 0;

		> .ye-fig:nth-of-type(1) { grid-column: 1 / 4; }
		> .ye-fig:nth-of-type(2) { grid-column: 4 / 8; }
		> .ye-fig:nth-of-type(3) { grid-column: 8 / 10; }
		> .ye-fig:nth-of-type(4) { grid-column: 10 / 13; }
		> .ye-fig:nth-of-type(5) { display: none; }
	}

	.ye-closing {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-col);
		align-items: end;
		padding: var(--ye-y-wide) var(--ye-pad) var(--ye-y);

		> .ye-h2 { grid-column: 1 / 9; }
		> .ye-copy { grid-column: 9 / 13; }
		> .ye-closing__lead { grid-column: 1 / 7; }
	}

	.ye-closing--paper { padding-top: var(--ye-y); }

	.ye-pil-voir > .ye-closing { padding-bottom: 0; }
	.ye-pil-voir > .ye-cluster { padding-bottom: var(--ye-y); }

	.ye-need a {
		color: inherit;
		text-decoration: none;
	}

	.ye-need a:is(:hover, :focus-visible) {
		color: var(--ye-signal-strong);
		text-decoration: underline;
		text-decoration-thickness: 1px;
		text-underline-offset: 0.2em;
	}

	.ye-checks.ye-checks--single { columns: 1; }

	/* =====================================================================
	 * ye-mar — univers Particuliers : récit chronologique
	 * ===================================================================== */
	.ye-mar-hero {
		position: relative;
		padding: 0;
		min-height: min(94svh, 60rem);
		display: grid;
		align-items: end;

		> .ye-fig {
			position: absolute;
			inset: 0;
		}

		> .ye-fig img { height: 100%; }
	}

	.ye-mar-hero__panel {
		position: relative;
		z-index: 1;
		width: min(40rem, 100%);
		padding: clamp(1.75rem, 3vw, 2.75rem) var(--ye-pad) clamp(2rem, 4vw, 3.25rem);
		background: var(--ye-ink);

		> .ye-crumb { margin-bottom: 1.75rem; color: var(--ye-muted); }
		> .ye-h1 { font-size: clamp(3.4rem, 6vw, 5.2rem); }
		> .ye-lead { margin-top: var(--ye-gap-title); }
		> .wp-block-buttons { margin-top: var(--ye-gap-cta); }
	}

	.ye-mar-open {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-gap-title) var(--ye-col);
		padding: var(--ye-y-wide) var(--ye-pad) var(--ye-y);

		> .ye-h2 { grid-column: 1 / 10; }
		> .ye-copy { grid-column: 6 / 12; }
	}

	.ye-mar-prep {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-col);
		padding: var(--ye-y) var(--ye-pad);
		align-items: start;

		> .ye-fig { grid-column: 1 / 5; }
		> .ye-copy { grid-column: 6 / 13; }
	}

	.ye-checks {
		padding: 0;
		margin-top: var(--ye-gap-lead);
		list-style: none;
		border-top: 1px solid var(--ye-line-light);
		columns: 2;
		column-gap: var(--ye-col);

		li {
			break-inside: avoid;
			padding: 0.8rem 0;
			border-bottom: 1px solid var(--ye-line-light);
			font-weight: 500;
		}
	}

	.ye-chapter {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-gap-cta) var(--ye-col);
		padding: var(--ye-y) var(--ye-pad);
		align-items: start;

		> .ye-copy { grid-column: 1 / 5; }
	}

	.ye-chapter--trio > .ye-fig:nth-of-type(1) { grid-column: 5 / 8; }
	.ye-chapter--trio > .ye-fig:nth-of-type(2) { grid-column: 8 / 11; margin-top: 3rem; }
	.ye-chapter--trio > .ye-fig:nth-of-type(3) { grid-column: 11 / 13; margin-top: 7rem; }

	.ye-chapter--wide > .ye-copy { grid-column: 1 / 5; grid-row: 1; }
	.ye-chapter--wide > .ye-fig:nth-of-type(1) { grid-column: 5 / 13; grid-row: 1 / 3; }
	.ye-chapter--wide > .ye-fig:nth-of-type(2) { grid-column: 1 / 4; grid-row: 2; align-self: end; }

	.ye-chapter--full {
		padding-inline: 0;

		> .ye-fig { grid-column: 1 / 13; }
		> .ye-copy:nth-of-type(1) { grid-column: 1 / 6; padding-left: var(--ye-pad); }
		> .ye-copy:nth-of-type(2) { grid-column: 7 / 12; }
	}

	.ye-chapter--collage > .ye-fig:nth-of-type(1) { grid-column: 5 / 9; }
	.ye-chapter--collage > .ye-fig:nth-of-type(2) { grid-column: 9 / 13; margin-top: 4rem; }
	.ye-chapter--collage > .ye-fig:nth-of-type(3) { grid-column: 1 / 5; grid-row: 2; margin-top: -2rem; }

	.ye-split {
		display: grid;
		grid-template-columns: 5fr 7fr;
		min-height: 36rem;

		> .ye-fig { height: 100%; }
		> .ye-fig img { height: 100%; min-height: 36rem; }
		> .ye-copy { align-self: center; padding: var(--ye-y) var(--ye-pad); max-width: 46rem; }
	}

	.ye-twin {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-col);
		padding: var(--ye-y-tight) var(--ye-pad);

		> .ye-copy:nth-of-type(1) { grid-column: 1 / 6; }
		> .ye-copy:nth-of-type(2) { grid-column: 8 / 13; }
	}

	.ye-faq {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-col);
		padding: var(--ye-y) var(--ye-pad);

		> .ye-h2 { grid-column: 1 / 6; }
		> .ye-faq__list { grid-column: 7 / 13; border-top: 1px solid var(--ye-line-light); }
	}

	.ye-faq__list {
		details {
			padding: 1.15rem 0;
			border-bottom: 1px solid var(--ye-line-light);
		}

		summary {
			cursor: pointer;
			font-size: clamp(1.05rem, 1.5vw, 1.3rem);
			font-weight: 500;
		}

		details p {
			max-width: 58ch;
			margin-top: 0.85rem;
		}
	}

	.ye-band {
		position: relative;
		padding: 0;
		min-height: clamp(26rem, 52vw, 44rem);
		display: grid;
		align-items: end;
		justify-items: end;

		> .ye-fig { position: absolute; inset: 0; }
		> .ye-fig img { height: 100%; }
	}

	.ye-band__panel {
		position: relative;
		z-index: 1;
		width: min(34rem, 100%);
		padding: clamp(1.75rem, 3vw, 2.75rem) var(--ye-pad) clamp(2rem, 4vw, 3rem);
		background: var(--ye-ink);
	}

	/* =====================================================================
	 * ye-lan — landing SEO compacte
	 * ===================================================================== */
	.ye-lan-hero {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-col);
		padding: clamp(1.5rem, 2.6vw, 2.25rem) var(--ye-pad) 0;

		> .ye-crumb { grid-column: 1 / 13; color: var(--ye-muted-light); }
		> .ye-copy { grid-column: 1 / 7; padding-top: clamp(3rem, 7vw, 6rem); padding-bottom: var(--ye-y-tight); }
		> .ye-fig { grid-column: 9 / 13; margin-bottom: clamp(-9rem, -10vw, -4rem); position: relative; z-index: 1; }
	}

	/* Retour discret vers la page parent, juste sous le fil d'Ariane. */
	.ye-back {
		font-size: 0.8125rem;
		font-weight: 500;

		a {
			display: inline-block;
			padding-block: 0.4rem;
			color: var(--ye-muted-light);
			text-decoration: underline;
			text-decoration-thickness: 1px;
			text-underline-offset: 0.25em;
			transition: color 160ms ease-out;
		}

		a:is(:hover, :focus-visible) {
			color: var(--ye-ink);
		}
	}

	.ye-lan-hero > .ye-back {
		grid-column: 1 / 13;
		margin-top: -0.75rem;
	}

	.ye-lan-info {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-col);
		padding: calc(var(--ye-y-tight) + 3rem) var(--ye-pad) var(--ye-y-tight);

		> .ye-info {
			grid-column: span 3;
			padding-top: 1rem;
			border-top: 1px solid var(--ye-line-light);
		}

		> .ye-info:nth-of-type(1) { grid-column: 1 / 4; }
		> .ye-info:nth-of-type(2) { grid-column: 4 / 7; }
		> .ye-info:nth-of-type(3) { grid-column: 7 / 10; }
	}

	.ye-info > .ye-h3 { margin-bottom: 0.85rem; }

	.ye-lan-gallery {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: clamp(0.65rem, 1.2vw, 1.25rem);
		align-items: end;
		padding: var(--ye-y-tight) var(--ye-pad);

		> .ye-fig:nth-of-type(1) { grid-column: 1 / 4; }
		> .ye-fig:nth-of-type(2) { grid-column: 4 / 7; margin-bottom: 4rem; }
		> .ye-fig:nth-of-type(3) { grid-column: 7 / 10; }
		> .ye-fig:nth-of-type(4) { grid-column: 10 / 13; margin-bottom: 7rem; }
	}

	.ye-links {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-col);
		padding: var(--ye-y-tight) var(--ye-pad) var(--ye-y);
		align-items: end;

		> .ye-copy { grid-column: 1 / 6; }
		> .ye-links__list { grid-column: 7 / 13; }
	}

	.ye-links__list {
		border-top: 1px solid var(--ye-line-light);

		p { margin: 0; }

		a {
			display: flex;
			justify-content: space-between;
			align-items: center;
			padding: 1.1rem 0;
			border-bottom: 1px solid var(--ye-line-light);
			font-family: var(--ye-display);
			font-size: clamp(1.9rem, 3vw, 2.7rem);
			text-decoration: none;
			text-transform: uppercase;
		}

		a::after {
			width: 1.1rem;
			height: 1.1rem;
			content: "";
			background: currentColor;
			mask: var(--ye-arrow) center / contain no-repeat;
		}
	}

	/* =====================================================================
	 * ye-pf — portfolio : expérience photographique
	 * ===================================================================== */
	.ye-pf-head {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-gap-title) var(--ye-col);
		padding: clamp(1.5rem, 2.6vw, 2.25rem) var(--ye-pad) clamp(2.25rem, 4vw, 3.5rem);

		> .ye-crumb { grid-column: 1 / 13; color: var(--ye-muted); }
		> .ye-h1 { grid-column: 1 / 8; }
		> .ye-lead { grid-column: 9 / 13; align-self: end; }
	}

	.ye-pf-bar {
		position: sticky;
		top: var(--yh-header-offset, 0px);
		transition: top 0.3s ease;
		z-index: 5;
		padding: 0.75rem var(--ye-pad);
		background: var(--ye-ink);
		border-block: 1px solid var(--ye-line-dark);
	}

	.ye-pf-row {
		display: flex;
		flex-wrap: wrap;
		gap: 0.25rem 1.75rem;
		align-items: center;

		+ .ye-pf-row {
			margin-top: 0.15rem;
			padding-top: 0.15rem;
		}
	}

	.ye-pf-filter {
		min-height: 2.75rem;
		padding: 0.5rem 0;
		color: var(--ye-muted);
		background: transparent;
		border: 0;
		border-bottom: 1px solid transparent;
		cursor: pointer;
		font-family: var(--ye-body);
		font-size: 0.82rem;
		font-weight: 600;
		transition: color 160ms ease-out, border-color 160ms ease-out;

		&:is(:hover, :focus-visible),
		&[aria-pressed="true"] {
			color: var(--ye-white);
		}

		&[aria-pressed="true"] {
			border-bottom-color: var(--ye-signal);
		}
	}

	.ye-pf-row--sub .ye-pf-filter {
		font-size: 0.78rem;
		font-weight: 500;
	}

	.ye-pf-count {
		margin-left: auto;
		color: var(--ye-muted);
		font-size: 0.75rem;
		font-variant-numeric: tabular-nums;
	}

	.ye-pf-grid {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: clamp(2.25rem, 4vw, 3.75rem) var(--ye-col);
		grid-auto-flow: dense;
		align-items: start;
		padding: var(--ye-y-tight) var(--ye-pad) var(--ye-y);
	}

	.ye-series {
		grid-column: span 4;
		min-width: 0;

		&[hidden] { display: none; }
	}

	.ye-series.is-l { grid-column: span 7; }
	.ye-series.is-m { grid-column: span 5; }
	.ye-series.is-s { grid-column: span 4; }
	.ye-series.is-s:nth-child(3n) { margin-top: clamp(1.5rem, 4vw, 3.5rem); }

	.ye-series__cover {
		position: relative;
		display: block;
		width: 100%;
		padding: 0;
		overflow: hidden;
		color: inherit;
		background: var(--ye-dark);
		border: 0;
		cursor: zoom-in;
		aspect-ratio: 5 / 6;
	}

	.ye-series.is-l .ye-series__cover { aspect-ratio: 5 / 4; }
	.ye-series.is-s .ye-series__cover { aspect-ratio: 1 / 1; }

	.ye-series__cover img {
		display: block;
		width: 100%;
		height: 100%;
		object-fit: cover;
		transition: transform 600ms cubic-bezier(0.16, 1, 0.3, 1);
	}

	.ye-series__cover:is(:hover, :focus-visible) img {
		transform: scale(1.025);
	}

	.ye-series__count {
		position: absolute;
		right: 0;
		bottom: 0;
		padding: 0.5rem 0.75rem;
		color: var(--ye-white);
		background: var(--ye-ink);
		font-size: 0.72rem;
		font-variant-numeric: tabular-nums;
	}

	.ye-series__meta {
		display: grid;
		grid-template-columns: 1fr auto;
		gap: 0.4rem 1rem;
		align-items: baseline;
		margin-top: 1rem;

		> .ye-series__title { grid-column: 1; }
		> .ye-series__ctx { grid-column: 1; color: var(--ye-muted); font-size: 0.8125rem; }
		> .wp-block-buttons { grid-column: 2; grid-row: 1 / 3; align-self: center; }
	}

	.ye-series__title {
		font-family: var(--ye-display);
		font-size: clamp(1.8rem, 2.4vw, 2.3rem);
		font-weight: 400;
		line-height: 0.98;
		text-transform: uppercase;
	}

	.ye-series__open {
		padding: 0;
		color: inherit;
		background: transparent;
		border: 0;
		cursor: pointer;
		font: inherit;
		letter-spacing: inherit;
		text-align: left;
		text-transform: inherit;
	}

	.ye-series__open:is(:hover, :focus-visible) {
		text-decoration: underline;
		text-decoration-thickness: 1px;
		text-underline-offset: 0.18em;
	}

	.ye-series__images .wp-block-image img {
		width: 100%;
		aspect-ratio: 1;
		object-fit: cover;
	}

	.ye-series__images {
		display: grid;
		grid-template-columns: repeat(auto-fill, minmax(8rem, 1fr));
		gap: 0.5rem;
		margin-top: 1rem;
	}

	.ye-pf-js .ye-series__images {
		display: none;
	}

	.ye-pf-note {
		padding: 0 var(--ye-pad) var(--ye-y);
	}

	/* Visionneuse */
	.ye-lb {
		width: 100vw;
		max-width: none;
		height: 100dvh;
		max-height: none;
		padding: 0;
		color: var(--ye-white);
		background: rgba(11, 10, 8, 0.97);
		border: 0;
	}

	.ye-lb::backdrop {
		background: var(--ye-ink);
	}

	.ye-lb__shell {
		display: grid;
		grid-template-rows: auto 1fr auto auto;
		height: 100%;
		padding: clamp(0.75rem, 2vw, 1.5rem);
		gap: 0.75rem;
	}

	.ye-lb__top {
		display: flex;
		gap: 1.5rem;
		align-items: center;
		justify-content: space-between;
	}

	.ye-lb__title {
		font-family: var(--ye-display);
		font-size: clamp(1.5rem, 2.4vw, 2rem);
		line-height: 1;
		text-transform: uppercase;
	}

	.ye-lb__btn {
		min-width: 2.75rem;
		min-height: 2.75rem;
		padding: 0.5rem 0.9rem;
		color: var(--ye-white);
		background: transparent;
		border: 1px solid var(--ye-line-dark);
		border-radius: 0;
		cursor: pointer;
		font-family: var(--ye-body);
		font-size: 0.8rem;
		font-weight: 600;
		transition: color 160ms ease-out, background-color 160ms ease-out;

		&:is(:hover, :focus-visible) {
			color: var(--ye-ink);
			background: var(--ye-white);
		}
	}

	.ye-lb__stage {
		display: grid;
		grid-template-columns: auto 1fr auto;
		gap: clamp(0.5rem, 2vw, 1.5rem);
		align-items: center;
		min-height: 0;
	}

	.ye-lb__track {
		display: flex;
		min-width: 0;
		min-height: 0;
		height: 100%;
		overflow-x: auto;
		overflow-y: hidden;
		overscroll-behavior-x: contain;
		touch-action: pan-x pinch-zoom;
		scroll-snap-type: x mandatory;
		scrollbar-width: none;
		-webkit-overflow-scrolling: touch;

		&::-webkit-scrollbar { display: none; }
	}

	.ye-lb__slide {
		flex: 0 0 100%;
		display: grid;
		place-items: center;
		min-width: 0;
		height: 100%;
		scroll-snap-align: center;
		scroll-snap-stop: always;

		img {
			display: block;
			max-width: 100%;
			max-height: calc(100dvh - 12rem);
			width: auto;
			height: auto;
			object-fit: contain;
			-webkit-user-drag: none;
			user-select: none;
		}
	}

	.ye-lb__dots { display: none; }

	.ye-lb__dot {
		flex: 0 0 auto;
		width: 0.4rem;
		height: 0.4rem;
		background: var(--ye-muted);
		opacity: 0.55;
		border-radius: 50%;
		transition: background-color 160ms ease-out, transform 160ms ease-out;
	}

	.ye-lb__dot.is-active {
		background: var(--ye-signal);
		opacity: 1;
		transform: scale(1.4);
	}

	.ye-lb__bottom {
		display: flex;
		gap: 1.5rem;
		justify-content: space-between;
		align-items: baseline;
		color: var(--ye-on-dark);
		font-size: 0.8125rem;
	}

	.ye-lb__count {
		font-variant-numeric: tabular-nums;
	}

	/* =====================================================================
	 * ye-ab — À propos : portrait et récit
	 * ===================================================================== */
	.ye-ab-hero {
		display: grid;
		grid-template-columns: 5fr 7fr;
		min-height: min(88svh, 52rem);
		padding: 0;

		> .ye-fig { height: 100%; }
		> .ye-fig img { height: 100%; object-position: center top; }
	}

	.ye-ab-hero__copy {
		align-self: end;
		padding: clamp(2rem, 5vw, 4rem) var(--ye-pad) var(--ye-y-tight) clamp(1.5rem, 5vw, 5rem);

		> .ye-crumb { margin-bottom: clamp(3rem, 8vw, 7rem); color: var(--ye-muted); }
	}

	.ye-ab-story {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-col);
		padding: var(--ye-y-wide) var(--ye-pad) var(--ye-y);

		> .ye-h2 { grid-column: 1 / 6; }
		> .ye-copy { grid-column: 7 / 12; }
	}

	.ye-ab-method {
		padding: 0 var(--ye-pad) var(--ye-y);
	}

	.ye-step {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-col);
		align-items: end;
		padding-block: var(--ye-y-tight);
		border-top: 1px solid var(--ye-line-light);

		> .ye-step__n { grid-column: 1 / 2; align-self: start; font-family: var(--ye-display); font-size: clamp(3rem, 5vw, 4.5rem); line-height: 0.9; color: var(--ye-signal-strong); }
		> .ye-copy { grid-column: 2 / 7; }
		> .ye-fig { grid-column: 8 / 13; }
	}

	.ye-step:nth-of-type(even) {
		> .ye-copy { grid-column: 7 / 12; grid-row: 1; }
		> .ye-fig { grid-column: 2 / 7; grid-row: 1; }
		> .ye-step__n { grid-column: 12 / 13; grid-row: 1; text-align: right; }
	}

	.ye-ab-duo {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 0;

		> .ye-duo {
			position: relative;
			display: grid;
			align-content: end;
			min-height: clamp(28rem, 46vw, 40rem);
			padding: var(--ye-y-tight) var(--ye-pad);
			overflow: hidden;
		}

		> .ye-duo > .ye-fig { position: absolute; inset: 0; }
		> .ye-duo > .ye-fig img { height: 100%; }
	}

	.ye-duo__panel {
		position: relative;
		z-index: 1;
		max-width: 26rem;
		padding: 1.5rem 1.5rem 1.75rem;
		background: var(--ye-ink);
	}

	/* =====================================================================
	 * ye-ct — contact : fonctionnel et calme
	 * ===================================================================== */
	.ye-ct-main {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-y-tight) var(--ye-col);
		padding: clamp(1.5rem, 2.6vw, 2.25rem) var(--ye-pad) var(--ye-y);

		> .ye-crumb { grid-column: 1 / 13; color: var(--ye-muted-light); }
		> .ye-ct-intro { grid-column: 1 / 6; grid-row: 2; padding-top: clamp(2rem, 6vw, 5rem); }
		> .ye-ct-side { grid-column: 1 / 6; grid-row: 3; }
		> .ye-ct-form { grid-column: 7 / 13; grid-row: 2 / 4; padding-top: clamp(2rem, 6vw, 5rem); }
	}

	.ye-ct-side > .ye-coords { margin-top: 0; }

	.ye-ct-links {
		margin-top: clamp(1.75rem, 3vw, 2.5rem);

		> .ye-small { color: var(--ye-muted-light); }
		> .ye-small:not(:first-child) { margin-top: 1.5rem; }
		> .wp-block-buttons { margin-top: 0.15rem; }
	}

	/* ---------- Formulaire Fluent Forms : repris dans le langage du site ---------- */
	.ye-ct-form .fluentform {
		font-family: var(--ye-body);
		color: var(--ye-ink);

		.ff-el-group { margin-bottom: clamp(1.4rem, 2.4vw, 1.9rem); }
		.ff-el-group.ff_excluded { display: none; }

		.ff-el-input--label label {
			margin: 0 0 0.45rem;
			color: var(--ye-muted-light);
			font-size: 0.78rem;
			font-weight: 600;
			letter-spacing: 0.05em;
			text-transform: uppercase;
		}

		.ff-el-is-required.asterisk-right label::after { margin-left: 0.2em; color: var(--ye-signal-strong); }

		.ff-el-form-control {
			width: 100%;
			padding: 0.65rem 0;
			color: var(--ye-ink);
			background: transparent;
			border: 0;
			border-bottom: 1px solid var(--ye-ink);
			border-radius: 0;
			box-shadow: none;
			font-family: var(--ye-body);
			font-size: 1.05rem;
			line-height: 1.5;
			transition: border-color 160ms ease-out;
		}

		textarea.ff-el-form-control { min-height: 8.5rem; padding-top: 0.65rem; resize: vertical; }

		select.ff-el-form-control {
			height: auto;
			padding-right: 1.5rem;
			appearance: none;
			background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='none' stroke='%230b0a08' stroke-width='1.5'%3E%3Cpath d='m1 1 5 5 5-5'/%3E%3C/svg%3E") right 0.1rem center / 0.75rem no-repeat;
		}

		.ff-el-form-control:focus {
			border-bottom: 2px solid var(--ye-signal-strong);
			box-shadow: none;
			outline: 0;
		}

		.ff-el-form-control:focus-visible { outline: 3px solid var(--ye-ink); outline-offset: 4px; }

		.ff-el-form-control::placeholder { color: var(--ye-muted-light); opacity: 1; }

		/* « Vous êtes » : trois choix en lignes, lisibles d'un coup d'œil. */
		.ff-el-input--content:has(.ff-el-form-check-radio) { border-top: 1px solid var(--ye-line-light); }

		.ff-el-form-check { margin: 0; padding: 0; border-bottom: 1px solid var(--ye-line-light); }

		.ff-el-form-check-label {
			display: flex;
			gap: 0.9rem;
			align-items: center;
			width: 100%;
			padding: 0.85rem 0;
			cursor: pointer;
			font-size: 1.05rem;
			font-weight: 500;
		}

		.ff-el-form-check-input { flex: 0 0 auto; width: 1.15rem; height: 1.15rem; margin: 0; accent-color: var(--ye-ink); }

		.ff-el-form-check-input:focus-visible { outline: 3px solid var(--ye-ink); outline-offset: 3px; }

		.ff-el-form-check-label:has(:checked) { color: var(--ye-signal-strong); }

		.ff-el-help-message { margin-top: 0.4rem; color: var(--ye-muted-light); font-size: 0.8125rem; font-style: normal; line-height: 1.5; }

		/* Deux colonnes pour les couples de champs courts. */
		.ff-t-container { display: grid; grid-template-columns: 1fr 1fr; gap: 0 var(--ye-col); }
		.ff-t-container > .ff-t-cell { width: auto; min-width: 0; padding: 0; flex: none; }

		.ff_t_c, .ff-el-tc { font-size: 0.875rem; line-height: 1.55; }
		.ff-el-tc .ff_t_c a { color: var(--ye-signal-strong); text-decoration: underline; text-underline-offset: 0.2em; }

		.text-danger, .error.text-danger { margin-top: 0.4rem; color: #8a1c1c; font-size: 0.8125rem; }
		.ff-el-is-error .ff-el-form-control { border-bottom-color: #8a1c1c; }

		.ff_submit_btn_wrapper { margin-top: clamp(1.75rem, 3vw, 2.5rem); }

		.ff-btn-submit {
			display: inline-flex;
			gap: 1rem;
			align-items: center;
			min-height: 2.75rem;
			padding: 0 !important;
			color: var(--ye-ink) !important;
			background: transparent !important;
			border: 0 !important;
			border-bottom: 1px solid currentColor !important;
			border-radius: 0 !important;
			box-shadow: none !important;
			cursor: pointer;
			font-family: var(--ye-body);
			font-size: 0.82rem !important;
			font-weight: 600;
			line-height: 1.2;
			transition: color 160ms ease-out;
		}

		.ff-btn-submit::after {
			width: 1em;
			height: 1em;
			content: "";
			background: currentColor;
			mask: var(--ye-arrow) center / contain no-repeat;
		}

		.ff-btn-submit:is(:hover, :focus-visible) { color: var(--ye-signal-strong) !important; background: transparent !important; opacity: 1; }
		.ff-btn-submit:focus-visible { outline: 3px solid var(--ye-ink); outline-offset: 4px; }

		.ff-message-success {
			padding: 1.5rem 0;
			margin: 0;
			color: var(--ye-ink);
			background: transparent;
			border: 0;
			border-top: 2px solid var(--ye-ink);
			border-bottom: 1px solid var(--ye-line-light);
			box-shadow: none;
			font-family: var(--ye-display);
			font-size: clamp(1.8rem, 3vw, 2.4rem);
			line-height: 1.05;
			text-transform: uppercase;
		}

		.ff-message-success p { margin: 0; }
	}

	.ye-coords {
		margin-top: clamp(2.75rem, 5vw, 4.5rem);
		border-top: 1px solid var(--ye-line-light);

		> .ye-coord {
			display: grid;
			grid-template-columns: 8rem 1fr;
			gap: 1rem;
			padding: 0.95rem 0;
			border-bottom: 1px solid var(--ye-line-light);
		}

		.ye-coord__k {
			color: var(--ye-muted-light);
			font-size: 0.8125rem;
		}

		.ye-coord__v { font-weight: 500; }
	}

	.ye-path {
		display: grid;
		gap: var(--ye-gap-text);
		padding: clamp(1.75rem, 3vw, 2.5rem) 0;
		border-top: 1px solid var(--ye-line-light);

		&:last-child { border-bottom: 1px solid var(--ye-line-light); }

		> .ye-h3 { margin-bottom: 0.35rem; }
		> .ye-small { max-width: 52ch; }
		> .wp-block-buttons { margin-top: 1.25rem; }
	}

	.ye-ct-image {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-col);
		padding: 0 var(--ye-pad) var(--ye-y);

		> .ye-fig:nth-of-type(1) { grid-column: 1 / 9; }
		> .ye-fig:nth-of-type(2) { grid-column: 10 / 13; align-self: end; }
	}

	.ye-ct-more {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-col);
		padding: var(--ye-y-tight) var(--ye-pad);

		> .ye-copy:nth-of-type(1) { grid-column: 1 / 6; }
		> .ye-copy:nth-of-type(2) { grid-column: 8 / 13; }
	}

	/* =====================================================================
	 * ye-bl — blog (archive) et ye-art (article)
	 * ===================================================================== */
	.ye-bl-head {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-gap-title) var(--ye-col);
		padding: clamp(1.5rem, 2.6vw, 2.25rem) var(--ye-pad) var(--ye-y-tight);

		> .ye-crumb { grid-column: 1 / 13; color: var(--ye-muted-light); }
		> .ye-h1 { grid-column: 1 / 8; padding-top: clamp(1.5rem, 4vw, 3rem); }
		> .ye-lead { grid-column: 9 / 13; align-self: end; }
	}

	.ye-bl-filters-wrap { padding: 0; }

	.ye-bl-filters:empty { display: none; }

	.ye-bl-filters-wrap:has(.ye-bl-filters:empty) { display: none; }

	.ye-bl-filters {
		display: flex;
		flex-wrap: wrap;
		gap: 0.25rem 1.75rem;
		padding: 0 var(--ye-pad);
		border-block: 1px solid var(--ye-line-light);
	}

	.ye-bl-filter {
		min-height: 2.75rem;
		padding: 0.5rem 0;
		color: var(--ye-muted-light);
		background: transparent;
		border: 0;
		border-bottom: 1px solid transparent;
		cursor: pointer;
		font-family: var(--ye-body);
		font-size: 0.82rem;
		font-weight: 600;
		transition: color 160ms ease-out, border-color 160ms ease-out;

		&:is(:hover, :focus-visible),
		&[aria-pressed="true"] { color: var(--ye-ink); }
		&[aria-pressed="true"] { border-bottom-color: var(--ye-signal-strong); }
	}

	.ye-bl-feature {
		padding: var(--ye-y-tight) var(--ye-pad) 0;

		.wp-block-post-template { padding: 0; list-style: none; }

		.wp-block-post {
			display: grid;
			grid-template-columns: repeat(12, 1fr);
			gap: var(--ye-gap-title) var(--ye-col);
			align-items: end;
		}

		.wp-block-post-featured-image { grid-column: 1 / 8; margin: 0; }
		.wp-block-post-featured-image img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
		.ye-bl-post__body { grid-column: 9 / 13; }
		.wp-block-post:not(:has(.wp-block-post-featured-image)) .ye-bl-post__body { grid-column: 1 / 9; }
	}

	.ye-bl-list {
		padding: var(--ye-y) var(--ye-pad);

		.wp-block-post-template {
			display: grid;
			grid-template-columns: repeat(2, minmax(0, 1fr));
			gap: 0 var(--ye-col);
			padding: 0;
			list-style: none;
		}

		.wp-block-post {
			display: grid;
			grid-template-columns: 11rem 1fr;
			gap: 0 1.5rem;
			align-items: start;
			padding: 1.5rem 0;
			border-top: 1px solid var(--ye-line-light);
		}

		.wp-block-post[hidden] { display: none; }
		.wp-block-post-featured-image { margin: 0; }
		.wp-block-post-featured-image img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
	}

	.ye-bl-post__body > * + * { margin-top: 0.7rem; }

	.ye-bl-post__title {
		font-family: var(--ye-display);
		font-size: clamp(1.7rem, 2.4vw, 2.3rem);
		font-weight: 400;
		line-height: 0.98;
		text-transform: uppercase;

		a { color: inherit; text-decoration: none; }
		a:is(:hover, :focus-visible) { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.2em; }
	}

	.ye-bl-feature .ye-bl-post__title { font-size: clamp(2.4rem, 4vw, 3.6rem); }

	.ye-bl-post__meta {
		color: var(--ye-muted-light);
		font-size: 0.78rem;
		letter-spacing: 0.04em;
		text-transform: uppercase;
	}

	.ye-bl-post__excerpt { font-size: 0.92rem; max-width: 46ch; }

	/* Article */
	.ye-art-head {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-gap-title) var(--ye-col);
		padding: clamp(1.5rem, 2.6vw, 2.25rem) var(--ye-pad) var(--ye-y-tight);

		> .ye-crumb { grid-column: 1 / 13; color: var(--ye-muted-light); }
		> .ye-art-title { grid-column: 1 / 11; padding-top: clamp(1.5rem, 4vw, 3rem); }
		> .ye-art-meta { grid-column: 1 / 8; }
	}

	.ye-art-title {
		font-family: var(--ye-display);
		font-size: clamp(3rem, 6vw, 5.2rem);
		font-weight: 400;
		line-height: 0.92;
		letter-spacing: -0.02em;
		text-transform: uppercase;
		text-wrap: balance;
	}

	.ye-art-meta {
		display: flex;
		flex-wrap: wrap;
		gap: 0.25rem 1.25rem;
		color: var(--ye-muted-light);
		font-size: 0.8125rem;
	}

	.ye-art-hero {
		margin: 0;

		img {
			display: block;
			width: 100%;
			height: min(62vh, 38rem);
			object-fit: cover;
			object-position: 50% 25%;
		}
	}

	.ye-art-body {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-col);
		padding: var(--ye-y) var(--ye-pad);

		> .wp-block-post-content { grid-column: 3 / 10; max-width: 42rem; }
		> .ye-art-aside { grid-column: 10 / 13; align-self: start; }
	}

	.ye-art-body .wp-block-post-content {
		font-size: clamp(1.02rem, 1.2vw, 1.12rem);
		line-height: 1.75;

		> * + * { margin-top: 1.25rem; }
		> h2, > h3 { margin-top: clamp(2.5rem, 4vw, 3.5rem); margin-bottom: 0.9rem; font-family: var(--ye-display); font-weight: 400; line-height: 0.96; text-transform: uppercase; }
		> h2 { font-size: clamp(2.2rem, 3.4vw, 3rem); }
		> h3 { font-size: clamp(1.7rem, 2.4vw, 2.1rem); }
		> figure { margin-top: 2rem; margin-bottom: 2rem; }
	}

	.ye-art-body .wp-block-post-content > .ye-service {
		margin-top: clamp(3rem, 5vw, 4.5rem);
	}

	.ye-service {
		margin-top: clamp(3rem, 5vw, 4.5rem);
		padding-top: 1.5rem;
		border-top: 1px solid var(--ye-line-light);

		> .ye-h3 { margin-bottom: 0.85rem; }
		> p { max-width: 40ch; font-size: 0.95rem; }
		> .wp-block-buttons { margin-top: 1.5rem; }
	}

	.ye-art-aside {
		padding-top: 0.5rem;
		border-top: 1px solid var(--ye-line-light);
		font-size: 0.8125rem;

		> p + p { margin-top: 0.75rem; }
	}
}

/* =========================================================================
 * Responsive
 * ========================================================================= */
@media (max-width: 1120px) {
	:is(.yohann-sections-frame, .ye-art-frame, .editor-styles-wrapper) {
		.ye-doc-hero__bar > .ye-h1 { grid-column: 1 / 13; max-width: none; }
		.ye-doc-hero__bar > .ye-doc-hero__aside { grid-column: 1 / 9; }
		.ye-pil-hero > .ye-copy { grid-column: 5 / 13; }
		.ye-pil-hero > .ye-fig:nth-of-type(2) { grid-column: 1 / 5; margin-top: 0; }
		.ye-needs > .ye-copy { grid-column: 1 / 13; }
		.ye-needs > .ye-needs__list { grid-column: 1 / 13; }
		.ye-art-body > .wp-block-post-content { grid-column: 1 / 10; }
		.ye-art-body > .ye-art-aside { grid-column: 10 / 13; }
		.ye-lan-info > .ye-info:nth-of-type(n) { grid-column: span 4; }
	}
}

/* Tablette : le hero Mariage et la bande de clôture passent en image puis panneau, pour ne jamais masquer le sujet. */
@media (max-width: 1120px) {
	:is(.yohann-sections-frame, .ye-art-frame, .editor-styles-wrapper) {
		.ye-mar-hero,
		.ye-band {
			display: block;
			min-height: 0;

			> .ye-fig {
				position: relative;
				inset: auto;
				height: min(60vh, 34rem);
			}

			.ye-mar-hero__panel,
			.ye-band__panel {
				width: 100%;
			}
		}
	}
}

@media (min-width: 761px) and (max-width: 1120px) {
	:is(.yohann-sections-frame, .ye-art-frame, .editor-styles-wrapper) {
		.ye-pil-hero > .ye-fig:nth-of-type(2) { display: none; }
		.ye-pil-hero > .ye-fig:nth-of-type(1) { grid-column: 1 / 5; margin-top: 0; }
	}
}

@media (max-width: 960px) {
	:is(.yohann-sections-frame, .ye-art-frame, .editor-styles-wrapper) {
		.ye-series.is-l,
		.ye-series.is-m,
		.ye-series.is-s { grid-column: span 6; }
		.ye-bl-list .wp-block-post-template { grid-template-columns: 1fr; }
		.ye-checks { columns: 1; }
	}
}

@media (max-width: 760px) {
	:is(.yohann-sections-frame, .ye-art-frame, .editor-styles-wrapper) {
		--ye-y: 4.5rem;
		--ye-y-wide: 5.5rem;
		--ye-y-tight: 3.25rem;

		.ye-doc-hero__image { height: 60vh; }
		.ye-doc-hero__bar,
		.ye-doc-strip,
		.ye-doc-rows .ye-doc-row,
		.ye-doc-prep,
		.ye-doc-tight,
		.ye-pil-hero,
		.ye-chap,
		.ye-needs,
		.ye-wide-text,
		.ye-closing,
		.ye-mar-open,
		.ye-mar-prep,
		.ye-chapter,
		.ye-twin,
		.ye-faq,
		.ye-lan-hero,
		.ye-lan-info,
		.ye-links,
		.ye-pf-head,
		.ye-ab-story,
		.ye-step,
		.ye-ct-main,
		.ye-ct-image,
		.ye-ct-more,
		.ye-bl-head,
		.ye-art-head,
		.ye-art-body,
		.ye-end,
		.ye-rail-wrap > .ye-rail-head {
			display: flex;
			flex-direction: column;
			align-items: stretch;
			gap: 1.75rem;
		}

		.ye-ar-219 img { aspect-ratio: 3 / 2; }
		.ye-ar-34 img,
		.ye-ar-23 img { aspect-ratio: 4 / 5; }
		.ye-chapter--full > .ye-copy:nth-of-type(1) { padding-left: 0; }
		.ye-chapter--full > .ye-fig { margin-inline: calc(var(--ye-pad) * -1) !important; width: auto; }

		.ye-doc-strip > .ye-fig,
		.ye-pil-hero > .ye-fig,
		.ye-chapter > .ye-fig,
		.ye-lan-hero > .ye-fig,
		.ye-ct-image > .ye-fig { width: 100%; margin: 0 !important; }

		.ye-pil-hero > .ye-fig:nth-of-type(2) { width: 78%; margin-left: auto !important; }
		.ye-chap--pair > .ye-fig:nth-of-type(2) { width: 62%; margin: 0 0 0 auto; border: 0; }
		.ye-lan-hero > .ye-fig { margin-bottom: 0 !important; }
		.ye-lan-info { padding-top: var(--ye-y-tight); }
		.ye-lan-gallery { grid-template-columns: repeat(2, 1fr); }
		.ye-lan-gallery > .ye-fig { grid-column: auto !important; margin: 0 !important; }
		.ye-cluster { grid-template-columns: repeat(2, 1fr); }
		.ye-cluster > .ye-fig { grid-column: auto !important; }
		.ye-chap--bleed > .ye-copy { padding-inline: var(--ye-pad) !important; }
		.ye-chapter--full { padding-inline: var(--ye-pad); }
		.ye-chapter--wide > .ye-fig:nth-of-type(2) { border: 0; margin: 0 !important; }
		.ye-end { padding-right: var(--ye-pad); }
		.ye-fork { grid-template-columns: 1fr; }
		.ye-fork > .ye-fork__side + .ye-fork__side { border-top: 1px solid var(--ye-line-light); border-left: 0; }
		.ye-split { grid-template-columns: 1fr; }
		.ye-split > .ye-fig img { min-height: 26rem; }
		.ye-ab-hero { grid-template-columns: 1fr; }
		.ye-ab-hero > .ye-fig img { min-height: 30rem; }
		.ye-ab-hero__copy > .ye-crumb { margin-bottom: 2rem; }
		.ye-step > .ye-step__n { text-align: left !important; }
		.ye-ab-duo { grid-template-columns: 1fr; }
		.ye-ab-duo > .ye-duo { display: block; min-height: 0; padding: 0; }
		.ye-ab-duo > .ye-duo > .ye-fig { position: relative; inset: auto; }
		.ye-ab-duo > .ye-duo > .ye-fig img { height: auto; aspect-ratio: 3 / 2; }
		.ye-duo__panel { max-width: none; padding: 1.75rem var(--ye-pad) 2.25rem; }
		.ye-coords > .ye-coord { grid-template-columns: 6.5rem 1fr; }
		.ye-ct-form .fluentform .ff-t-container { grid-template-columns: 1fr; }
		.ye-bl-feature .wp-block-post { display: flex; flex-direction: column; align-items: stretch; }
		.ye-bl-list .wp-block-post { grid-template-columns: 7.5rem 1fr; }
		.ye-series.is-l,
		.ye-series.is-m,
		.ye-series.is-s { grid-column: 1 / -1; margin-top: 0 !important; }
		.ye-mar-hero__panel { width: 100%; }
		.ye-band__panel { width: 100%; }
		.ye-needs__list > .ye-need { grid-template-columns: 1fr 3.75rem; min-height: calc(3.75rem * 1.25 + 1.7rem); }
		.ye-needs__list .ye-need .ye-fig { width: 3.75rem; }
		/* Mobile : flèches posées sur les bords de l'image (zones tactiles de 44 px) ; le balayage fonctionne aussi. */
		.ye-lb__stage { position: relative; grid-template-columns: 1fr; }
		.ye-lb__nav {
			position: absolute;
			top: 50%;
			z-index: 1;
			min-width: 2.75rem;
			min-height: 3.5rem;
			padding: 0;
			background: rgba(11, 10, 8, 0.7);
			transform: translateY(-50%);
		}
		.ye-lb__stage > .ye-lb__nav:first-child { left: 0; }
		.ye-lb__stage > .ye-lb__nav:last-child { right: 0; }
		.ye-lb__slide img { max-height: calc(100dvh - 10rem); }
		.ye-pf-bar { padding-inline: var(--ye-pad); }
	}
}

@media (prefers-reduced-motion: reduce) {
	:is(.yohann-sections-frame, .ye-art-frame, .editor-styles-wrapper) {
		.ye-series__cover img,
		.ye-pf-filter,
		.ye-bl-filter,
		.ye-lb__btn { transition-duration: 0.01ms; }
		.ye-series__cover:is(:hover, :focus-visible) img { transform: none; }
	}
}

/* Avec JavaScript, les vignettes d'une série ne sont jamais affichées (donc jamais téléchargées)
   avant l'ouverture de la visionneuse ; sans JavaScript, la grille de repli reste visible.
   Hors de l'éditeur : le bloc reste entièrement visible et modifiable dans Gutenberg. */
@media (scripting: enabled) {
	.yohann-sections-frame .ye-series__images {
		display: none;
	}
}

/* =========================================================================
 * ye-ir — landing Iris : macros sur fond noir, composition graphique et dense.
 * Les photographies ont un fond noir : « lighten » les fond sur le noir de la page,
 * sans cadre visible ; les recadrages au plus près sont faits en CSS sur les originaux.
 * ========================================================================= */
:is(.yohann-sections-frame, .editor-styles-wrapper) {
	.ye-ir-blend img {
		mix-blend-mode: lighten;
	}

	.ye-dark .ye-crumb,
	.ye-dark .ye-back a {
		color: var(--ye-muted);
	}

	.ye-dark .ye-back a:is(:hover, :focus-visible) {
		color: var(--ye-white);
	}

	/* ---------- Hero : un seul iris monumental qui déborde du cadre ---------- */
	.ye-ir-hero {
		position: relative;
		min-height: clamp(34rem, 60vw, 54rem);
		overflow: hidden;
		padding: 0;
	}

	.ye-ir-hero__text {
		position: relative;
		z-index: 1;
		width: min(40rem, 62%);
		padding: clamp(1.5rem, 2.6vw, 2.25rem) var(--ye-pad) var(--ye-y);

		> .ye-back { margin-top: 0.25rem; }
		> .ye-h1 { margin-top: clamp(3rem, 8vw, 7rem); }
	}

	.ye-ir-hero > .ye-ir-hero__iris {
		position: absolute;
		top: 0;
		right: calc(clamp(2rem, 9vw, 9rem) * -1);
		bottom: 0;
		aspect-ratio: 1;
		height: 100%;
	}

	.ye-ir-hero__iris img {
		width: 100%;
		height: 100%;
	}

	/* ---------- Trio plein cadre puis énoncé ---------- */
	.ye-ir-trio {
		padding: 0 0 var(--ye-y);
	}

	.ye-ir-trio__text {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-gap-lead) var(--ye-col);
		align-items: end;
		padding: clamp(2rem, 4vw, 3.5rem) var(--ye-pad) 0;

		> .ye-ir-quote { grid-column: 1 / 7; }
		> .ye-copy { grid-column: 8 / 13; }
	}

	.ye-ir-quote {
		font-family: var(--wp--preset--font-family--editorial, Georgia, serif);
		font-size: clamp(2rem, 4vw, 3.4rem);
		font-style: italic;
		line-height: 1.1;
		text-wrap: balance;
	}

	/* ---------- Mosaïque de macros ---------- */
	.ye-ir-macro {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: clamp(0.35rem, 0.8vw, 0.75rem);
		padding: 0 var(--ye-pad) var(--ye-y);
		align-items: stretch;

		> .ye-fig:nth-of-type(1) { grid-column: 1 / 9; }
		> .ye-fig:nth-of-type(2) { grid-column: 9 / 13; }
		> .ye-fig:nth-of-type(3) { grid-column: 1 / 5; }
		> .ye-fig:nth-of-type(4) { grid-column: 5 / 13; }
	}

	/* Recadrage au plus près : l'image est agrandie et centrée sur un iris. */
	.ye-ir-zoom {
		position: relative;
		min-height: 12rem;
		overflow: hidden;
		background: var(--ye-ink);
	}

	.ye-ir-zoom img {
		position: absolute;
		top: calc(50% - var(--cy) * var(--w) / var(--ar));
		left: calc(50% - var(--cx) * var(--w));
		width: var(--w);
		max-width: none;
		height: auto;
	}

	.ye-ir-zoom--blue { --w: 270%; --cx: 0.29; --cy: 0.45; --ar: 1.5; }
	.ye-ir-zoom--brown { --w: 300%; --cx: 0.233; --cy: 0.267; --ar: 1; }
	.ye-ir-zoom--pupil { --w: 330%; --cx: 0.5; --cy: 0.5; --ar: 1; }

	.ye-ir-zoom img { height: auto; aspect-ratio: auto; }

	/* ---------- Informations ---------- */
	.ye-ir-info {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-col);
		align-items: start;
		padding: var(--ye-y) var(--ye-pad);

		> .ye-copy:nth-of-type(1) { grid-column: 1 / 7; }
		> .ye-ir-info__side { grid-column: 8 / 13; }
	}

	.ye-ir-info__side {
		> .ye-fig { background: #000; }
		> .ye-copy { margin-top: clamp(1.75rem, 3vw, 2.5rem); }
	}

	.ye-ir-list {
		padding: 0;
		margin-top: var(--ye-gap-lead);
		list-style: none;
		border-top: 1px solid var(--ye-line-light);

		li {
			padding: 0.95rem 0;
			border-bottom: 1px solid var(--ye-line-light);
			font-size: 1.05rem;
			font-weight: 500;
		}
	}

	/* ---------- Clôture ---------- */
	.ye-ir-end {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-col);
		align-items: end;
		padding: var(--ye-y-wide) var(--ye-pad) var(--ye-y);

		> .ye-copy { grid-column: 1 / 8; }
		> .ye-fig { grid-column: 9 / 13; aspect-ratio: 1; }
	}

	@media (max-width: 1120px) {
		.ye-ir-hero__text { width: min(34rem, 70%); }
		.ye-ir-macro > .ye-fig:nth-of-type(1) { grid-column: 1 / 8; }
		.ye-ir-macro > .ye-fig:nth-of-type(2) { grid-column: 8 / 13; }
		.ye-ir-macro > .ye-fig:nth-of-type(3) { grid-column: 1 / 6; }
		.ye-ir-macro > .ye-fig:nth-of-type(4) { grid-column: 6 / 13; }
		.ye-ir-info > .ye-copy:nth-of-type(1) { grid-column: 1 / 8; }
		.ye-ir-info > .ye-ir-info__side { grid-column: 8 / 13; }
	}

	@media (max-width: 760px) {
		.ye-ir-hero { display: flex; flex-direction: column; min-height: 0; }
		.ye-ir-hero__text { width: 100%; padding-bottom: var(--ye-y-tight); }
		.ye-ir-hero__text > .ye-h1 { margin-top: 2.25rem; }
		.ye-ir-hero > .ye-ir-hero__iris { position: relative; right: auto; width: 128%; height: auto; margin-left: -14%; margin-bottom: -2rem; }
		.ye-ir-trio__text,
		.ye-ir-info,
		.ye-ir-end { display: flex; flex-direction: column; align-items: stretch; gap: 1.75rem; }
		.ye-ir-trio .ye-ar-219 img { aspect-ratio: 4 / 3; }
		.ye-ir-macro { gap: 0.35rem; }
		.ye-ir-macro > .ye-fig:nth-of-type(1) { grid-column: 1 / 13; }
		.ye-ir-macro > .ye-fig:nth-of-type(2) { grid-column: 1 / 7; min-height: 0; aspect-ratio: 1; }
		.ye-ir-macro > .ye-fig:nth-of-type(3) { grid-column: 7 / 13; min-height: 0; aspect-ratio: 1; }
		.ye-ir-macro > .ye-fig:nth-of-type(4) { grid-column: 1 / 13; }
		.ye-ir-end > .ye-fig { width: 62%; align-self: flex-end; }
	}
}

/* =========================================================================
 * ye-id — landing Photo d'identité : fiche pratique, sans décor.
 * Informations en lignes et tableaux alignés sur une grille unique ; aucune image décorative.
 * ========================================================================= */
:is(.yohann-sections-frame, .editor-styles-wrapper) {
	.ye-id-hero {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-gap-title) var(--ye-col);
		padding: clamp(1.5rem, 2.6vw, 2.25rem) var(--ye-pad) var(--ye-y);

		> .ye-crumb { grid-column: 1 / 13; color: var(--ye-muted-light); }
		> .ye-back { grid-column: 1 / 13; margin-top: -0.75rem; }
		> .ye-copy { grid-column: 1 / 7; padding-top: clamp(1.5rem, 4vw, 3.5rem); }
		> .ye-id-facts { grid-column: 8 / 13; align-self: end; }
	}

	.ye-id-hero .ye-h1 {
		font-size: clamp(3.4rem, 6vw, 5.2rem);
	}

	.ye-id-facts {
		border-top: 2px solid var(--ye-ink);

		> .ye-coord {
			display: grid;
			grid-template-columns: 7rem 1fr;
			gap: 1rem;
			padding: 0.95rem 0;
			border-bottom: 1px solid var(--ye-line-light);
		}

		.ye-coord__k {
			color: var(--ye-muted-light);
			font-size: 0.8125rem;
		}

		.ye-coord__v {
			font-weight: 500;
			line-height: 1.5;
		}
	}

	.ye-id-section {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-gap-lead) var(--ye-col);
		align-items: start;
		padding: var(--ye-y-tight) var(--ye-pad);
		border-top: 1px solid var(--ye-line-light);

		> .ye-h2 { grid-column: 1 / 6; }
		> .wp-block-table { grid-column: 7 / 13; }
		> .ye-small { grid-column: 7 / 13; }
		> .ye-text { grid-column: 1 / 6; }
	}

	.ye-id-table {
		margin: 0;

		table {
			width: 100%;
			border-collapse: collapse;
		}

		th,
		td {
			padding: 0.95rem 0;
			vertical-align: top;
			text-align: left;
			border: 0;
			border-bottom: 1px solid var(--ye-line-light);
		}

		thead th {
			padding-top: 0;
			border-bottom: 2px solid var(--ye-ink);
			color: var(--ye-muted-light);
			font-size: 0.75rem;
			font-weight: 600;
			letter-spacing: 0.06em;
			text-transform: uppercase;
		}

		td:first-child { padding-right: var(--ye-col); font-weight: 500; }
		td:last-child { line-height: 1.5; }
	}

	.ye-id-table--price {
		td:last-child,
		th:last-child {
			width: 6.5rem;
			text-align: right;
			font-variant-numeric: tabular-nums;
			font-weight: 600;
			white-space: nowrap;
		}
	}

	.ye-id-end {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-gap-lead) var(--ye-col);
		align-items: end;
		padding: var(--ye-y-tight) var(--ye-pad);

		> .ye-h2 { grid-column: 1 / 6; }
		> .ye-copy { grid-column: 7 / 13; }
	}

	@media (max-width: 1120px) {
		.ye-id-hero > .ye-copy { grid-column: 1 / 13; }
		.ye-id-hero > .ye-id-facts { grid-column: 1 / 13; }
		.ye-id-section > .ye-h2 { grid-column: 1 / 13; }
		.ye-id-section > .wp-block-table,
		.ye-id-section > .ye-text,
		.ye-id-section > .ye-small { grid-column: 1 / 13; }
		.ye-id-end > .ye-h2,
		.ye-id-end > .ye-copy { grid-column: 1 / 13; }
	}

	@media (max-width: 760px) {
		.ye-id-hero,
		.ye-id-section,
		.ye-id-end { display: flex; flex-direction: column; align-items: stretch; gap: 1.5rem; }
		.ye-id-hero > .ye-back { margin-top: 0; }
		.ye-id-facts > .ye-coord { grid-template-columns: 5.5rem 1fr; }
		.ye-id-table--price td:last-child,
		.ye-id-table--price th:last-child { width: 4.75rem; }
	}
}

/* =========================================================================
 * ye-nn — landing Naissance : proximité, gestes et détails.
 * Une frise d'images à hauteur commune, des étapes réellement documentées,
 * un tableau de formules discret.
 * ========================================================================= */
:is(.yohann-sections-frame, .editor-styles-wrapper) {
	.ye-nn-head {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-gap-title) var(--ye-col);
		padding: clamp(1.5rem, 2.6vw, 2.25rem) var(--ye-pad) var(--ye-y-tight);
		align-items: end;

		> .ye-crumb { grid-column: 1 / 13; color: var(--ye-muted-light); }
		> .ye-back { grid-column: 1 / 13; margin-top: -0.75rem; }
		> .ye-h1 { grid-column: 1 / 8; padding-top: clamp(1.5rem, 4vw, 3.5rem); }
		> .ye-copy { grid-column: 9 / 13; }
	}

	/* Frise : trois images à la même hauteur, largeurs proportionnelles à leur format. */
	.ye-nn-frieze {
		display: flex;
		gap: clamp(0.3rem, 0.6vw, 0.5rem);
		aspect-ratio: 3.667 / 1;
		padding: 0 var(--ye-pad);
		box-sizing: content-box;

		> .ye-fig { min-width: 0; height: 100%; }
		> .ye-fig img { width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover; }
		> .ye-fig:nth-of-type(1) { flex: 1.5 1 0; }
		> .ye-fig:nth-of-type(2) { flex: 0.667 1 0; }
		> .ye-fig:nth-of-type(3) { flex: 1.5 1 0; }
	}

	.ye-nn-steps-wrap {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-col);
		align-items: start;
		padding: var(--ye-y) var(--ye-pad);

		> .ye-fig { grid-column: 1 / 5; }
		> .ye-nn-steps { grid-column: 6 / 13; }
	}

	.ye-nn-steps {
		> .ye-h2 { margin-bottom: var(--ye-gap-lead); }
	}

	.ye-nn-step {
		display: grid;
		grid-template-columns: 4.5rem 1fr;
		gap: var(--ye-col);
		padding: 1.25rem 0 1.4rem;
		border-top: 1px solid var(--ye-line-light);

		&:last-child { border-bottom: 1px solid var(--ye-line-light); }

		> .ye-nn-step__n {
			font-family: var(--ye-display);
			font-size: 2.6rem;
			line-height: 0.9;
			color: var(--ye-signal-strong);
		}

		> .ye-copy > .ye-h3 { font-size: clamp(1.6rem, 2.2vw, 2rem); }
	}

	.ye-nn-work {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-gap-lead) var(--ye-col);
		align-items: end;
		padding: var(--ye-y-tight) var(--ye-pad) var(--ye-y);

		> .ye-nn-work__head { grid-column: 1 / 13; display: flex; flex-wrap: wrap; gap: 0.75rem 2rem; align-items: end; justify-content: space-between; }
		> .ye-fig:nth-of-type(1) { grid-column: 1 / 8; }
		> .ye-fig:nth-of-type(2) { grid-column: 9 / 13; margin-bottom: clamp(2rem, 6vw, 5rem); }
	}

	.ye-nn-formulas {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-gap-lead) var(--ye-col);
		align-items: start;
		padding: var(--ye-y-tight) var(--ye-pad);
		border-top: 1px solid var(--ye-line-light);

		> .ye-h2 { grid-column: 1 / 5; }
		> .wp-block-table { grid-column: 5 / 13; }
		> .ye-small { grid-column: 5 / 13; }
	}

	.ye-nn-table {
		margin: 0;

		table { width: 100%; border-collapse: collapse; }

		th, td {
			padding: 0.95rem 1rem 0.95rem 0;
			vertical-align: top;
			text-align: left;
			border: 0;
			border-bottom: 1px solid var(--ye-line-light);
			line-height: 1.45;
		}

		thead th {
			padding-top: 0;
			border-bottom: 2px solid var(--ye-ink);
			color: var(--ye-muted-light);
			font-size: 0.75rem;
			font-weight: 600;
			letter-spacing: 0.06em;
			text-transform: uppercase;
		}

		td:first-child { font-family: var(--ye-display); font-size: 1.7rem; line-height: 1; text-transform: uppercase; }
		td:last-child, th:last-child { padding-right: 0; }
	}

	.ye-nn-end {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-gap-lead) var(--ye-col);
		align-items: end;
		padding: var(--ye-y) var(--ye-pad);

		> .ye-h2 { grid-column: 1 / 7; }
		> .ye-copy { grid-column: 8 / 13; }
	}

	@media (max-width: 1120px) {
		.ye-nn-head > .ye-h1 { grid-column: 1 / 13; }
		.ye-nn-head > .ye-copy { grid-column: 1 / 10; }
		.ye-nn-steps-wrap > .ye-fig { grid-column: 1 / 5; }
		.ye-nn-steps-wrap > .ye-nn-steps { grid-column: 5 / 13; }
		.ye-nn-formulas > .ye-h2 { grid-column: 1 / 13; }
		.ye-nn-formulas > .wp-block-table,
		.ye-nn-formulas > .ye-small { grid-column: 1 / 13; }
		.ye-nn-end > .ye-h2 { grid-column: 1 / 13; }
		.ye-nn-end > .ye-copy { grid-column: 1 / 10; }
	}

	@media (max-width: 760px) {
		.ye-nn-head,
		.ye-nn-steps-wrap,
		.ye-nn-formulas,
		.ye-nn-end { display: flex; flex-direction: column; align-items: stretch; gap: 1.5rem; }
		.ye-nn-head > .ye-back { margin-top: 0; }
		.ye-nn-frieze { flex-wrap: wrap; height: auto; aspect-ratio: auto; }
		.ye-nn-frieze > .ye-fig:nth-of-type(1) { flex: 1 1 100%; height: 13rem; }
		.ye-nn-frieze > .ye-fig:nth-of-type(2),
		.ye-nn-frieze > .ye-fig:nth-of-type(3) { flex: 1 1 calc(50% - 0.2rem); height: 15rem; }
		.ye-nn-steps-wrap > .ye-fig { width: 72%; }
		.ye-nn-step { grid-template-columns: 3rem 1fr; }
		.ye-nn-work { display: flex; flex-direction: column; align-items: stretch; gap: 1.25rem; }
		.ye-nn-work > .ye-fig:nth-of-type(2) { width: 66%; align-self: flex-end; margin-bottom: 0; }

		/* Tableau des formules : une ligne par formule, libellés repris des en-têtes. */
		.ye-nn-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
		.ye-nn-table tr { display: grid; grid-template-columns: 1fr auto; gap: 0.25rem 1rem; padding: 1rem 0; border-bottom: 1px solid var(--ye-line-light); }
		.ye-nn-table td { padding: 0; border: 0; text-align: left; }
		.ye-nn-table tr { grid-template-columns: 1fr; }
		.ye-nn-table td:first-child { grid-column: 1; }
		.ye-nn-table td:nth-child(2),
		.ye-nn-table td:nth-child(3) { grid-column: 1; font-size: 0.95rem; }
	}
}

/* =========================================================================
 * ye-an — landing Photographie animalière : mouvement, espace, séries.
 * Une bande d'images continue, de grandes images horizontales et trois séances
 * présentées en lignes typographiques entre les photographies.
 * ========================================================================= */
:is(.yohann-sections-frame, .editor-styles-wrapper) {
	.ye-an-head {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-gap-title) var(--ye-col);
		padding: clamp(1.5rem, 2.6vw, 2.25rem) var(--ye-pad) var(--ye-y);

		> .ye-crumb { grid-column: 1 / 13; color: var(--ye-muted-light); }
		> .ye-back { grid-column: 1 / 13; margin-top: -0.75rem; }
		> .ye-copy { grid-column: 1 / 10; padding-top: clamp(2rem, 6vw, 5.5rem); }
	}

	.ye-an-head .ye-h1 { font-size: clamp(4rem, 8.4vw, 6rem); }
	.ye-an-head .ye-lead { max-width: 34ch; }

	/* Bande continue : images collées, même hauteur, largeurs proportionnelles à leur format. */
	.ye-an-run {
		display: flex;
		gap: 0;
		padding: 0;
		aspect-ratio: 3.833 / 1;
		background: var(--ye-ink);

		> .ye-fig { min-width: 0; height: 100%; }
		> .ye-fig img { width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover; }
		> .ye-fig:nth-of-type(1) { flex: 1 1 0; }
		> .ye-fig:nth-of-type(2) { flex: 1.5 1 0; }
		> .ye-fig:nth-of-type(3) { flex: 0.667 1 0; }
		> .ye-fig:nth-of-type(4) { flex: 0.667 1 0; }
	}

	.ye-an-session-wrap {
		padding: var(--ye-y) var(--ye-pad);
	}

	.ye-an-session {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-gap-lead) var(--ye-col);
		align-items: start;
		padding-top: 1.5rem;
		border-top: 2px solid var(--ye-ink);

		> .ye-an-name { grid-column: 1 / 6; }
		> .ye-copy { grid-column: 6 / 10; }
		> .ye-an-meta { grid-column: 10 / 13; }
	}

	.ye-an-name {
		font-family: var(--ye-display);
		font-size: clamp(3.4rem, 7vw, 6rem);
		font-weight: 400;
		line-height: 0.88;
		letter-spacing: -0.02em;
		text-transform: uppercase;
	}

	.ye-an-meta {
		> .ye-an-facts {
			padding: 0;
			margin: 0;
			list-style: none;

			li {
				padding: 0.6rem 0;
				border-bottom: 1px solid var(--ye-line-light);
				font-size: 0.9375rem;
				line-height: 1.45;
			}
		}

		> .ye-an-price {
			margin-top: 1rem;
			font-family: var(--ye-display);
			font-size: 2.4rem;
			line-height: 1;
			text-align: right;
		}
	}

	.ye-an-wide {
		padding: 0;

		> .ye-fig img { width: 100%; }
	}

	.ye-an-pair {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-col);
		align-items: end;
		padding: var(--ye-y-tight) var(--ye-pad) 0;

		> .ye-fig:nth-of-type(1) { grid-column: 1 / 9; }
		> .ye-fig:nth-of-type(2) { grid-column: 10 / 13; margin-bottom: clamp(2rem, 7vw, 6rem); }
	}

	.ye-an-end {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-col);
		align-items: end;
		padding: var(--ye-y-wide) 0 var(--ye-y) var(--ye-pad);

		> .ye-copy { grid-column: 1 / 6; padding-bottom: 0.5rem; }
		> .ye-fig { grid-column: 6 / 13; }
	}

	@media (max-width: 1120px) {
		.ye-an-session > .ye-an-name { grid-column: 1 / 13; }
		.ye-an-session > .ye-copy { grid-column: 1 / 8; }
		.ye-an-session > .ye-an-meta { grid-column: 8 / 13; }
		.ye-an-end > .ye-copy { grid-column: 1 / 7; }
		.ye-an-end > .ye-fig { grid-column: 7 / 13; }
	}

	@media (max-width: 760px) {
		.ye-an-head,
		.ye-an-session,
		.ye-an-end { display: flex; flex-direction: column; align-items: stretch; gap: 1.5rem; }
		.ye-an-head > .ye-back { margin-top: 0; }
		.ye-an-run { flex-wrap: wrap; aspect-ratio: auto; }
		.ye-an-run > .ye-fig:nth-of-type(2) { order: -1; flex: 1 1 100%; height: auto; }
		.ye-an-run > .ye-fig:nth-of-type(2) img { height: auto; aspect-ratio: 3 / 2; }
		.ye-an-run > .ye-fig:nth-of-type(1),
		.ye-an-run > .ye-fig:nth-of-type(3),
		.ye-an-run > .ye-fig:nth-of-type(4) { flex: 1 1 33%; height: 9.5rem; }
		.ye-an-pair { display: flex; flex-direction: column; gap: 1rem; }
		.ye-an-pair > .ye-fig:nth-of-type(2) { width: 58%; align-self: flex-end; margin-bottom: 0; }
		.ye-an-end { padding-right: 0; }
		.ye-an-end > .ye-copy { padding-right: var(--ye-pad); }
		.ye-an-wide .ye-ar-169 img { aspect-ratio: 3 / 2; }
	}
}

/* =========================================================================
 * ye-ev — landing EVJF / EVG : le groupe, le mouvement, un moment vécu.
 * Deux séquences photographiques asymétriques encadrent l'offre ; aucun décor ajouté.
 * ========================================================================= */
:is(.yohann-sections-frame, .editor-styles-wrapper) {
	.ye-ev-head {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-gap-title) var(--ye-col);
		padding: clamp(1.5rem, 2.6vw, 2.25rem) var(--ye-pad) var(--ye-y-tight);

		> .ye-crumb { grid-column: 1 / 13; color: var(--ye-muted-light); }
		> .ye-back { grid-column: 1 / 13; margin-top: -0.75rem; }
		> .ye-h1 { grid-column: 1 / 9; padding-top: clamp(1.5rem, 4vw, 3.5rem); }
		> .ye-copy { grid-column: 9 / 13; align-self: end; }
	}

	.ye-ev-seq {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: clamp(0.5rem, 1.2vw, 1.1rem) var(--ye-col);
		align-items: start;
		padding: 0 var(--ye-pad) var(--ye-y);
	}

	.ye-ev-seq--one {
		> .ye-fig:nth-of-type(1) { grid-column: 1 / 10; }
		> .ye-fig:nth-of-type(2) { grid-column: 10 / 13; margin-top: clamp(3rem, 9vw, 8rem); }
		> .ye-fig:nth-of-type(2) img { aspect-ratio: 4 / 5; object-position: 62% 60%; }
		> .ye-fig:nth-of-type(3) { grid-column: 2 / 6; margin-top: clamp(0.5rem, 1.5vw, 1.5rem); }
		> .ye-fig:nth-of-type(4) { grid-column: 6 / 13; margin-top: clamp(1rem, 4vw, 3.5rem); }
	}

	.ye-ev-offer {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-gap-lead) var(--ye-col);
		align-items: start;
		padding: var(--ye-y) var(--ye-pad);

		> .ye-ev-price { grid-column: 1 / 6; }
		> .ye-ev-offer__list { grid-column: 7 / 13; }
	}

	.ye-ev-price {
		> .ye-ev-amount {
			font-family: var(--ye-display);
			font-size: clamp(5rem, 11vw, 9rem);
			line-height: 0.85;
			letter-spacing: -0.02em;
			color: var(--ye-white);
		}

		> .ye-ev-amount span { font-size: 0.4em; letter-spacing: 0; margin-left: 0.2em; }
		> .ye-ev-amount--text { font-size: clamp(3.6rem, 7vw, 6rem); line-height: 0.9; text-transform: uppercase; }
		> .ye-text { margin-top: var(--ye-gap-lead); }
	}

	.ye-ev-offer__list {
		> .ye-h2 { margin-bottom: var(--ye-gap-lead); }

		> ul {
			padding: 0;
			margin: 0;
			list-style: none;
			border-top: 1px solid var(--ye-line-dark);

			li {
				padding: 1rem 0;
				border-bottom: 1px solid var(--ye-line-dark);
				font-size: 1.05rem;
				font-weight: 500;
				color: var(--ye-white);
			}
		}
	}

	.ye-ev-seq--two {
		padding-top: var(--ye-y);

		> .ye-fig.ye-ev-band { grid-column: 1 / -1; margin-inline: calc(var(--ye-pad) * -1); }
		> .ye-fig:nth-of-type(2) { grid-column: 1 / 6; margin-top: clamp(1rem, 3vw, 2.5rem); }
		> .ye-fig:nth-of-type(3) { grid-column: 6 / 13; margin-top: clamp(1.5rem, 5vw, 4.5rem); }
		> .ye-fig:nth-of-type(4) { grid-column: 1 / 5; margin-top: clamp(1rem, 4vw, 3rem); }
		> .ye-fig:nth-of-type(5) { grid-column: 5 / 12; }
	}

	.ye-ev-end {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-gap-lead) var(--ye-col);
		align-items: end;
		padding: var(--ye-y-tight) var(--ye-pad) var(--ye-y);
		border-top: 1px solid var(--ye-line-light);

		> .ye-h2 { grid-column: 1 / 7; }
		> .ye-copy { grid-column: 8 / 13; }
	}

	@media (max-width: 1120px) {
		.ye-ev-head > .ye-h1 { grid-column: 1 / 13; }
		.ye-ev-head > .ye-copy { grid-column: 1 / 10; }
		.ye-ev-offer { row-gap: var(--ye-y-tight); }
		.ye-ev-offer > .ye-ev-price { grid-column: 1 / 13; }
		.ye-ev-offer > .ye-ev-offer__list { grid-column: 1 / 13; }
		.ye-ev-end > .ye-h2 { grid-column: 1 / 13; }
		.ye-ev-end > .ye-copy { grid-column: 1 / 10; }
	}

	@media (max-width: 760px) {
		.ye-ev-head,
		.ye-ev-offer,
		.ye-ev-end { display: flex; flex-direction: column; align-items: stretch; gap: 1.5rem; }
		.ye-ev-offer { gap: 2.5rem; }
		.ye-ev-head > .ye-back { margin-top: 0; }
		.ye-ev-seq { display: flex; flex-direction: column; gap: 0.6rem; }
		.ye-ev-seq--one > .ye-fig:nth-of-type(n) { margin-top: 0; }
		.ye-ev-seq--one > .ye-fig:nth-of-type(2) { width: 64%; align-self: flex-end; }
		.ye-ev-seq--one > .ye-fig:nth-of-type(3) { width: 58%; }
		.ye-ev-seq--two > .ye-fig:nth-of-type(n) { margin-top: 0; }
		.ye-ev-seq--two > .ye-fig:nth-of-type(3) { width: 82%; align-self: flex-end; }
		.ye-ev-seq--two > .ye-fig:nth-of-type(4) { width: 64%; }
		.ye-ev-seq--two > .ye-fig.ye-ev-band { margin-inline: calc(var(--ye-pad) * -1); }
		.ye-ev-band.ye-ar-219 img { aspect-ratio: 3 / 2; }
	}
}

/* =========================================================================
 * ye-fa — univers Famille, grossesse et bébé : une page d'orientation ample.
 * Trois grands mots (Famille, Grossesse, Naissance) servent d'index ; chacun est
 * accompagné d'une photographie qui déborde à droite, à des largeurs différentes.
 * ========================================================================= */
:is(.yohann-sections-frame, .editor-styles-wrapper) {
	.ye-fa-head {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-gap-title) var(--ye-col);
		padding: clamp(1.5rem, 2.6vw, 2.25rem) var(--ye-pad) var(--ye-y-tight);

		> .ye-crumb { grid-column: 1 / 13; color: var(--ye-muted-light); }
		> .ye-h1 { grid-column: 1 / 11; padding-top: clamp(1.5rem, 4vw, 3.5rem); }
		> .ye-copy { grid-column: 1 / 7; }
	}

	.ye-fa-pano {
		padding: 0;

		> .ye-fig img { width: 100%; }
	}

	.ye-fa-index {
		padding: var(--ye-y) var(--ye-pad) var(--ye-y-tight);
	}

	.ye-fa-row {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-gap-lead) var(--ye-col);
		align-items: center;
		padding-block: clamp(1.5rem, 3vw, 2.5rem);
		border-top: 1px solid var(--ye-line-light);

		&:last-child { border-bottom: 1px solid var(--ye-line-light); }

		> .ye-copy { grid-column: 1 / 8; }
		> .ye-fig { margin-right: calc(var(--ye-pad) * -1); }
	}

	.ye-fa-row--a > .ye-fig { grid-column: 8 / 13; }
	.ye-fa-row--b > .ye-fig { grid-column: 9 / 13; }
	.ye-fa-row--c > .ye-fig { grid-column: 8 / 13; }
	.ye-fa-row--b > .ye-copy { grid-column: 1 / 9; }

	.ye-fa-word {
		font-family: var(--ye-display);
		font-size: clamp(4.4rem, 11vw, 9.5rem);
		font-weight: 400;
		line-height: 0.82;
		letter-spacing: -0.02em;
		text-transform: uppercase;
	}

	.ye-fa-row .ye-copy > .ye-fa-word + .ye-text { margin-top: var(--ye-gap-lead); }

	.ye-fa-family {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-gap-lead) var(--ye-col);
		align-items: start;
		padding: var(--ye-y) var(--ye-pad);

		> .ye-fa-family__text { grid-column: 1 / 6; }
		> .ye-fa-family__gallery { grid-column: 7 / 13; }
	}

	.ye-fa-facts {
		padding: 0;
		margin-top: var(--ye-gap-lead);
		list-style: none;
		border-top: 1px solid var(--ye-line-light);

		li {
			padding: 0.7rem 0;
			border-bottom: 1px solid var(--ye-line-light);
			font-size: 0.95rem;
		}
	}

	.ye-fa-price {
		margin-top: 1rem;
		font-family: var(--ye-display);
		font-size: 2.6rem;
		line-height: 1;
	}

	.ye-fa-family__gallery {
		display: grid;
		grid-template-columns: repeat(6, 1fr);
		gap: clamp(0.5rem, 1.2vw, 1rem);
		align-items: start;

		> .ye-fig:nth-of-type(1) { grid-column: 1 / 7; }
		> .ye-fig:nth-of-type(2) { grid-column: 1 / 5; margin-top: clamp(0rem, 3vw, 2rem); }
		> .ye-fig:nth-of-type(3) { grid-column: 5 / 7; margin-top: clamp(2rem, 8vw, 6rem); }
		> .ye-fig:nth-of-type(3) img { aspect-ratio: 2 / 3; object-fit: cover; }
		> .ye-fig:nth-of-type(4) { grid-column: 2 / 7; }
	}

	.ye-fa-box {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-gap-lead) var(--ye-col);
		align-items: end;
		padding: var(--ye-y-tight) var(--ye-pad) var(--ye-y);

		> .ye-fa-box__head { grid-column: 1 / 13; display: grid; grid-template-columns: repeat(12, 1fr); gap: var(--ye-gap-lead) var(--ye-col); align-items: start; }
		> .ye-fa-box__head > .ye-h2 { grid-column: 1 / 6; position: sticky; top: calc(2rem + var(--yh-header-offset, 0px)); }
		> .ye-fa-box__head > .ye-copy { grid-column: 7 / 13; }
		> .ye-fig:nth-of-type(1) { grid-column: 1 / 5; }
		> .ye-fig:nth-of-type(2) { grid-column: 5 / 9; }
		> .ye-fig:nth-of-type(3) { grid-column: 9 / 13; }
	}

	.ye-fa-end {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-gap-lead) var(--ye-col);
		align-items: end;
		padding: var(--ye-y) var(--ye-pad);

		> .ye-h2 { grid-column: 1 / 7; }
		> .ye-copy { grid-column: 8 / 13; }
	}

	@media (max-width: 1120px) {
		.ye-fa-head > .ye-copy { grid-column: 1 / 10; }
		.ye-fa-row > .ye-copy { grid-column: 1 / 8; }
		.ye-fa-family > .ye-fa-family__text { grid-column: 1 / 13; }
		.ye-fa-family > .ye-fa-family__gallery { grid-column: 1 / 13; }
		.ye-fa-box > .ye-fa-box__head > .ye-h2 { grid-column: 1 / 13; position: static; }
		.ye-fa-box > .ye-fa-box__head > .ye-copy { grid-column: 1 / 11; }
		.ye-fa-end > .ye-h2 { grid-column: 1 / 13; }
		.ye-fa-end > .ye-copy { grid-column: 1 / 10; }
	}

	@media (max-width: 760px) {
		.ye-fa-head,
		.ye-fa-family,
		.ye-fa-end { display: flex; flex-direction: column; align-items: stretch; gap: 1.5rem; }
		.ye-fa-pano .ye-ar-219 img { aspect-ratio: 4 / 3; }
		.ye-fa-row { display: flex; flex-direction: column; align-items: stretch; gap: 1.25rem; }
		.ye-fa-row > .ye-fig { width: 78%; align-self: flex-end; margin-right: calc(var(--ye-pad) * -1); }
		.ye-fa-word { font-size: clamp(4rem, 21vw, 5.6rem); }
		.ye-fa-box { display: flex; flex-direction: column; align-items: stretch; gap: 1rem; }
		.ye-fa-box > .ye-fa-box__head { display: flex; flex-direction: column; align-items: stretch; gap: 1.25rem; }
		.ye-fa-box > .ye-fig:nth-of-type(2) { width: 72%; align-self: flex-end; }
		.ye-fa-family__gallery > .ye-fig:nth-of-type(n) { margin-top: 0; }
	}
}

/* =========================================================================
 * ye-po — univers Portraits et créations : visages, regards, format vertical.
 * Deux grands portraits en diptyque, des cadrages variés, une série de créations
 * sur fond noir qui mène à la passerelle Iris.
 * ========================================================================= */
:is(.yohann-sections-frame, .editor-styles-wrapper) {
	.ye-po-head {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-gap-title) var(--ye-col);
		padding: clamp(1.5rem, 2.6vw, 2.25rem) var(--ye-pad) var(--ye-y-tight);

		> .ye-crumb { grid-column: 1 / 13; color: var(--ye-muted-light); }
		> .ye-h1 { grid-column: 1 / 10; padding-top: clamp(1.5rem, 4vw, 3.5rem); }
		> .ye-copy { grid-column: 1 / 7; }
	}

	/* Diptyque : deux portraits verticaux, le second décalé vers le bas. */
	.ye-po-duo {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-gap-lead) var(--ye-col);
		align-items: start;
		padding: 0 var(--ye-pad) var(--ye-y);

		> .ye-po-session:nth-of-type(1) { grid-column: 1 / 7; }
		> .ye-po-session:nth-of-type(2) { grid-column: 7 / 13; margin-top: clamp(4rem, 12vw, 11rem); }
	}

	.ye-po-session {
		> .ye-fig { margin-bottom: clamp(1.25rem, 2.2vw, 2rem); }

		> .ye-h2 { margin-bottom: var(--ye-gap-lead); }
	}

	.ye-po-facts {
		padding: 0;
		margin-top: var(--ye-gap-lead);
		list-style: none;
		border-top: 1px solid var(--ye-line-light);

		li {
			padding: 0.65rem 0;
			border-bottom: 1px solid var(--ye-line-light);
			font-size: 0.95rem;
		}
	}

	.ye-po-price {
		margin-top: 1rem;
		font-family: var(--ye-display);
		font-size: 2.6rem;
		line-height: 1;
	}

	/* Cadrages : trois portraits de formats différents alignés sur le bas. */
	.ye-po-frames {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-col);
		align-items: end;
		padding: var(--ye-y-tight) var(--ye-pad) var(--ye-y);

		> .ye-fig:nth-of-type(1) { grid-column: 1 / 5; }
		> .ye-fig:nth-of-type(2) { grid-column: 5 / 9; }
		> .ye-fig:nth-of-type(3) { grid-column: 9 / 13; }
		> .ye-fig:nth-of-type(1) img { aspect-ratio: 2 / 3; }
		> .ye-fig:nth-of-type(2) img { aspect-ratio: 4 / 5; }
		> .ye-fig:nth-of-type(3) img { aspect-ratio: 1 / 1; }
	}

	/* Créations : fond noir, une grande image large puis des verticales de hauteurs différentes. */
	.ye-po-creations {
		padding: var(--ye-y) 0 0;
	}

	.ye-po-creations__head {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-gap-lead) var(--ye-col);
		align-items: end;
		padding: 0 var(--ye-pad) clamp(2rem, 4vw, 3.5rem);

		> .ye-h2 { grid-column: 1 / 7; }
		> .ye-copy { grid-column: 8 / 13; }
	}

	.ye-po-creations__wide { padding: 0; }
	.ye-po-creations__wide img { mix-blend-mode: lighten; }

	.ye-po-creations__row {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: clamp(0.4rem, 0.9vw, 0.9rem);
		align-items: start;
		padding: clamp(0.4rem, 0.9vw, 0.9rem) var(--ye-pad) 0;

		> .ye-fig:nth-of-type(1) { grid-column: 1 / 5; }
		> .ye-fig:nth-of-type(2) { grid-column: 5 / 9; margin-top: clamp(2rem, 7vw, 6rem); }
		> .ye-fig:nth-of-type(3) { grid-column: 9 / 13; }
	}

	/* Passerelle Iris : prolonge le fond noir, la photographie se fond dans la page. */
	.ye-po-iris {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-gap-lead) var(--ye-col);
		align-items: center;
		padding: var(--ye-y) var(--ye-pad);

		> .ye-fig { grid-column: 1 / 8; }
		> .ye-fig img { mix-blend-mode: lighten; }
		> .ye-copy { grid-column: 9 / 13; }
	}

	.ye-po-end {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-gap-lead) var(--ye-col);
		align-items: end;
		padding: var(--ye-y) var(--ye-pad);

		> .ye-h2 { grid-column: 1 / 7; }
		> .ye-copy { grid-column: 8 / 13; }
	}

	@media (max-width: 1120px) {
		.ye-po-head > .ye-copy { grid-column: 1 / 10; }
		.ye-po-creations__head > .ye-h2 { grid-column: 1 / 13; }
		.ye-po-creations__head > .ye-copy { grid-column: 1 / 10; }
		.ye-po-iris > .ye-fig { grid-column: 1 / 13; }
		.ye-po-iris > .ye-copy { grid-column: 1 / 10; }
		.ye-po-end > .ye-h2 { grid-column: 1 / 13; }
		.ye-po-end > .ye-copy { grid-column: 1 / 10; }
	}

	@media (max-width: 760px) {
		.ye-po-head,
		.ye-po-duo,
		.ye-po-creations__head,
		.ye-po-iris,
		.ye-po-end { display: flex; flex-direction: column; align-items: stretch; gap: 1.5rem; }
		.ye-po-duo > .ye-po-session:nth-of-type(2) { margin-top: 1.5rem; }
		.ye-po-frames { grid-template-columns: repeat(2, 1fr); gap: 0.6rem; }
		.ye-po-frames > .ye-fig:nth-of-type(1) { grid-column: 1 / 3; }
		.ye-po-frames > .ye-fig:nth-of-type(2) { grid-column: 1 / 2; }
		.ye-po-frames > .ye-fig:nth-of-type(3) { grid-column: 2 / 3; }
		.ye-po-frames > .ye-fig:nth-of-type(1) img { aspect-ratio: 4 / 5; }
		.ye-po-creations__wide .ye-ar-32 img { aspect-ratio: 4 / 3; }
		.ye-po-creations__row { grid-template-columns: repeat(2, 1fr); gap: 0.4rem; }
		.ye-po-creations__row > .ye-fig:nth-of-type(1) { grid-column: 1 / 2; }
		.ye-po-creations__row > .ye-fig:nth-of-type(2) { grid-column: 2 / 3; margin-top: 2rem; }
		.ye-po-creations__row > .ye-fig:nth-of-type(3) { grid-column: 1 / 3; }
		.ye-po-creations__row > .ye-fig:nth-of-type(3) img { aspect-ratio: 4 / 3; object-fit: cover; }
	}
}

/* =========================================================================
 * ye-ep — univers Événements privés : le reportage d'une journée partagée.
 * Une grande scène d'ouverture, un récit à colonne étroite, puis une séquence
 * qui alterne scènes larges et détails ; l'offre se lit en lignes, sans cartes.
 * ========================================================================= */
:is(.yohann-sections-frame, .editor-styles-wrapper) {
	.ye-ep-head {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-gap-title) var(--ye-col);
		padding: clamp(1.5rem, 2.6vw, 2.25rem) var(--ye-pad) var(--ye-y-tight);

		> .ye-crumb { grid-column: 1 / 13; color: var(--ye-muted-light); }
		> .ye-h1 { grid-column: 1 / 10; padding-top: clamp(1.5rem, 4vw, 3.5rem); }
		> .ye-copy { grid-column: 1 / 7; }
	}

	.ye-ep-open { padding: 0; }
	.ye-ep-open img { width: 100%; }

	.ye-ep-story {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-gap-lead) var(--ye-col);
		align-items: start;
		padding: var(--ye-y) var(--ye-pad);

		> .ye-fig { grid-column: 1 / 5; }
		> .ye-copy { grid-column: 6 / 12; padding-top: clamp(0rem, 3vw, 3rem); }
	}

	/* Séquence : scènes larges et détails, alignés sur des lignes de base différentes. */
	.ye-ep-seq {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: clamp(0.5rem, 1.1vw, 1rem) var(--ye-col);
		align-items: start;
		padding: 0 var(--ye-pad) var(--ye-y);

		> .ye-fig:nth-of-type(1) { grid-column: 1 / 8; }
		> .ye-fig:nth-of-type(2) { grid-column: 8 / 13; margin-top: clamp(3rem, 10vw, 9rem); }
		> .ye-fig:nth-of-type(3) { grid-column: 3 / 8; margin-top: clamp(-5rem, -3vw, -1rem); }
		> .ye-fig:nth-of-type(4) { grid-column: 8 / 13; }
	}

	.ye-ep-occasions {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-gap-lead) var(--ye-col);
		align-items: start;
		padding: var(--ye-y) var(--ye-pad);

		> .ye-copy { grid-column: 1 / 6; }
		> .ye-ep-list { grid-column: 7 / 13; }
	}

	.ye-ep-list {
		padding: 0;
		margin: 0;
		list-style: none;
		border-top: 1px solid var(--ye-line-dark);

		li {
			padding: 0.5rem 0 0.6rem;
			border-bottom: 1px solid var(--ye-line-dark);
			font-family: var(--ye-display);
			font-size: clamp(2.2rem, 4.4vw, 3.8rem);
			line-height: 1;
			letter-spacing: -0.01em;
			text-transform: uppercase;
			color: var(--ye-white);
		}
	}

	.ye-ep-prep {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-gap-lead) var(--ye-col);
		align-items: end;
		padding: var(--ye-y) var(--ye-pad) var(--ye-y-tight);

		> .ye-copy { grid-column: 1 / 7; }
		> .ye-fig { grid-column: 8 / 13; }
	}

	.ye-ep-bridge-wrap { padding: 0 var(--ye-pad) var(--ye-y-tight); }

	.ye-ep-bridge {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-gap-lead) var(--ye-col);
		align-items: center;
		margin: 0;
		padding: 1.75rem 0;
		border-block: 1px solid var(--ye-line-light);

		> .ye-text { grid-column: 1 / 8; max-width: none; }
		> .wp-block-buttons { grid-column: 9 / 13; }
	}

	.ye-ep-end {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-gap-lead) var(--ye-col);
		align-items: end;
		padding: var(--ye-y) var(--ye-pad);

		> .ye-fig { grid-column: 1 / 7; }
		> .ye-copy { grid-column: 8 / 13; }
	}

	@media (max-width: 1120px) {
		.ye-ep-head > .ye-copy { grid-column: 1 / 10; }
		.ye-ep-story > .ye-fig { grid-column: 1 / 5; }
		.ye-ep-story > .ye-copy { grid-column: 5 / 13; }
		.ye-ep-occasions > .ye-copy { grid-column: 1 / 13; }
		.ye-ep-occasions > .ye-ep-list { grid-column: 1 / 13; }
		.ye-ep-prep > .ye-copy { grid-column: 1 / 8; }
		.ye-ep-prep > .ye-fig { grid-column: 8 / 13; }
		.ye-ep-bridge > .ye-text { grid-column: 1 / 13; }
		.ye-ep-bridge > .wp-block-buttons { grid-column: 1 / 13; }
		.ye-ep-end > .ye-fig { grid-column: 1 / 7; }
		.ye-ep-end > .ye-copy { grid-column: 7 / 13; }
	}

	@media (max-width: 760px) {
		.ye-ep-head,
		.ye-ep-story,
		.ye-ep-occasions,
		.ye-ep-prep,
		.ye-ep-bridge,
		.ye-ep-end { display: flex; flex-direction: column; align-items: stretch; gap: 1.5rem; }
		.ye-ep-open .ye-ar-169 img { aspect-ratio: 4 / 3; }
		.ye-ep-story > .ye-fig { width: 68%; }
		.ye-ep-seq { display: flex; flex-direction: column; gap: 0.6rem; }
		.ye-ep-seq > .ye-fig:nth-of-type(n) { margin-top: 0; }
		.ye-ep-seq > .ye-fig:nth-of-type(2) { width: 70%; align-self: flex-end; }
		.ye-ep-seq > .ye-fig:nth-of-type(3) { width: 82%; }
		.ye-ep-prep > .ye-fig { width: 80%; align-self: flex-end; }
		.ye-ep-bridge { padding-block: 1.25rem; }
	}
}

/* =========================================================================
 * ye-ee — offre Photographe événementiel entreprise : un temps fort vécu.
 * Hero sombre avec séquence d'images décalées, bande de scène pleine largeur,
 * liste typographique des formats et lecture « avant / pendant » en deux colonnes.
 * ========================================================================= */
:is(.yohann-sections-frame, .editor-styles-wrapper) {
	.ye-ee-hero {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-gap-title) var(--ye-col);
		align-items: start;
		padding: clamp(1.5rem, 2.6vw, 2.25rem) 0 var(--ye-y) var(--ye-pad);
		overflow: hidden;

		> .ye-crumb { grid-column: 1 / 13; color: var(--ye-muted); }
		> .ye-copy { grid-column: 1 / 7; padding-top: clamp(2rem, 7vw, 6rem); padding-right: var(--ye-col); }
		> .ye-ee-hero__seq { grid-column: 7 / 13; }
	}

	.ye-ee-hero .ye-h1 { font-size: clamp(3.6rem, 7vw, 6rem); }

	.ye-ee-hero__seq {
		margin-right: calc(var(--ye-pad) * -1);
		align-self: center;
	}

	.ye-ee-zoom {
		position: relative;
		aspect-ratio: 4 / 3;
		overflow: hidden;
	}

	.ye-ee-zoom img {
		width: 100%;
		height: 100%;
		aspect-ratio: auto;
		object-fit: cover;
		object-position: 80% 60%;
		transform: scale(1.9);
		transform-origin: 78% 62%;
	}

	.ye-ee-stage { padding: 0; }
	.ye-ee-stage img { width: 100%; }

	.ye-ee-use {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-gap-lead) var(--ye-col);
		align-items: start;
		padding: var(--ye-y) var(--ye-pad);

		> .ye-copy { grid-column: 1 / 6; }
		> .ye-fig:nth-of-type(1) { grid-column: 7 / 13; }
	}

	.ye-ee-formats {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-gap-lead) var(--ye-col);
		align-items: start;
		padding: var(--ye-y) var(--ye-pad);

		> .ye-h2 { grid-column: 1 / 5; }
		> .ye-ee-formats__list { grid-column: 5 / 13; }
	}

	.ye-ee-row {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: var(--ye-col);
		align-items: baseline;
		padding: 1.15rem 0 1.3rem;
		border-top: 1px solid var(--ye-line-dark);

		&:last-child { border-bottom: 1px solid var(--ye-line-dark); }

		> .ye-ee-name {
			font-family: var(--ye-display);
			font-size: clamp(2rem, 3.4vw, 3rem);
			font-weight: 400;
			line-height: 0.98;
			text-transform: uppercase;
			color: var(--ye-white);
		}
	}

	.ye-ee-brief {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-gap-lead) var(--ye-col);
		align-items: start;
		padding: var(--ye-y) var(--ye-pad) var(--ye-y-tight);

		> .ye-h2 { grid-column: 1 / 7; }
		> .ye-copy:nth-of-type(1) { grid-column: 1 / 6; }
		> .ye-copy:nth-of-type(2) { grid-column: 7 / 13; }
	}

	.ye-ee-brief .ye-copy ul { padding: 0; margin: var(--ye-gap-lead) 0 0; list-style: none; border-top: 1px solid var(--ye-line-light); }
	.ye-ee-brief .ye-copy li { padding: 0.75rem 0; border-bottom: 1px solid var(--ye-line-light); font-weight: 500; }

	.ye-ee-bridge-wrap { padding: 0 var(--ye-pad) var(--ye-y-tight); }

	.ye-ee-bridge {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-gap-lead) var(--ye-col);
		align-items: center;
		padding: 1.75rem 0;
		border-block: 1px solid var(--ye-line-light);

		> .ye-text { grid-column: 1 / 8; max-width: none; }
		> .wp-block-buttons { grid-column: 9 / 13; }
	}

	.ye-ee-end {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-gap-lead) var(--ye-col);
		align-items: end;
		padding: var(--ye-y) var(--ye-pad);

		> .ye-h2 { grid-column: 1 / 7; }
		> .ye-copy { grid-column: 8 / 13; }
	}

	@media (max-width: 1120px) {
		.ye-ee-end > .ye-h2,
		.ye-ee-end > .ye-copy { grid-column: 1 / 13; }
		.ye-ee-hero > .ye-copy { grid-column: 1 / 13; padding-right: var(--ye-pad); }
		.ye-ee-hero > .ye-ee-hero__seq { grid-column: 1 / 13; }
		.ye-ee-use > .ye-copy { grid-column: 1 / 13; }
		.ye-ee-use > .ye-fig:nth-of-type(1) { grid-column: 1 / 13; }
		.ye-ee-formats > .ye-h2,
		.ye-ee-formats > .ye-ee-formats__list { grid-column: 1 / 13; }
		.ye-ee-brief > .ye-copy:nth-of-type(1) { grid-column: 1 / 7; }
		.ye-ee-brief > .ye-copy:nth-of-type(2) { grid-column: 7 / 13; }
		.ye-ee-bridge > .ye-text,
		.ye-ee-bridge > .wp-block-buttons { grid-column: 1 / 13; }
	}

	@media (max-width: 760px) {
		.ye-ee-hero,
		.ye-ee-use,
		.ye-ee-formats,
		.ye-ee-brief,
		.ye-ee-bridge,
		.ye-ee-end { display: flex; flex-direction: column; align-items: stretch; gap: 1.5rem; }
		.ye-ee-hero { padding-left: var(--ye-pad); }
		.ye-ee-hero__seq { margin-right: calc(var(--ye-pad) * -1); }
		.ye-ee-row { grid-template-columns: 1fr; gap: 0.6rem; }
	}
}

/* =========================================================================
 * ye-pk — offre Packshot et photographie produit.
 * Hero sombre à un visuel, rendu par usage en liste typographique, bande de mises en scène puis photographie culinaire.
 * ========================================================================= */
:is(.yohann-sections-frame, .editor-styles-wrapper) {
	.ye-pk-hero {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-gap-title) var(--ye-col);
		align-items: start;
		padding: clamp(1.5rem, 2.6vw, 2.25rem) 0 var(--ye-y) var(--ye-pad);
		overflow: hidden;

		> .ye-crumb { grid-column: 1 / 13; color: var(--ye-muted); }
		> .ye-copy { grid-column: 1 / 7; padding-top: clamp(2rem, 7vw, 6rem); padding-right: var(--ye-col); }
		> .ye-pk-hero__seq { grid-column: 7 / 13; }
	}

	.ye-pk-hero .ye-h1 { font-size: clamp(3.6rem, 7vw, 6rem); }

	.ye-pk-hero__seq {
		margin-right: calc(var(--ye-pad) * -1);
		align-self: center;
	}

	.ye-pk-use {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-gap-lead) var(--ye-col);
		align-items: start;
		padding: var(--ye-y) var(--ye-pad);

		> .ye-copy { grid-column: 1 / 6; }
		> .ye-fig:nth-of-type(1) { grid-column: 7 / 13; }
	}

	.ye-pk-formats {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-gap-lead) var(--ye-col);
		align-items: start;
		padding: var(--ye-y) var(--ye-pad);

		> .ye-h2 { grid-column: 1 / 5; }
		> .ye-pk-formats__list { grid-column: 5 / 13; }
	}

	.ye-pk-row {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: var(--ye-col);
		align-items: baseline;
		padding: 1.15rem 0 1.3rem;
		border-top: 1px solid var(--ye-line-dark);

		&:last-child { border-bottom: 1px solid var(--ye-line-dark); }

		> .ye-pk-name {
			font-family: var(--ye-display);
			font-size: clamp(2rem, 3.4vw, 3rem);
			font-weight: 400;
			line-height: 0.98;
			text-transform: uppercase;
			color: var(--ye-white);
		}
	}

	.ye-pk-brief {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-gap-lead) var(--ye-col);
		align-items: start;
		padding: var(--ye-y) var(--ye-pad) var(--ye-y-tight);

		> .ye-h2 { grid-column: 1 / 7; }
		> .ye-copy:nth-of-type(1) { grid-column: 1 / 6; }
		> .ye-copy:nth-of-type(2) { grid-column: 7 / 13; }
	}

	.ye-pk-brief .ye-copy ul { padding: 0; margin: var(--ye-gap-lead) 0 0; list-style: none; border-top: 1px solid var(--ye-line-light); }
	.ye-pk-brief .ye-copy li { padding: 0.75rem 0; border-bottom: 1px solid var(--ye-line-light); font-weight: 500; }

	.ye-pk-bridge-wrap { padding: 0 var(--ye-pad) var(--ye-y-tight); }

	.ye-pk-bridge {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-gap-lead) var(--ye-col);
		align-items: center;
		padding: 1.75rem 0;
		border-block: 1px solid var(--ye-line-light);

		> .ye-text { grid-column: 1 / 8; max-width: none; }
		> .wp-block-buttons { grid-column: 9 / 13; }
	}

	.ye-pk-end {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-gap-lead) var(--ye-col);
		align-items: end;
		padding: var(--ye-y) var(--ye-pad);

		> .ye-h2 { grid-column: 1 / 7; }
		> .ye-copy { grid-column: 8 / 13; }
	}

	.ye-pk-band {
		display: flex;
		gap: clamp(0.25rem, 0.5vw, 0.5rem);
		padding: 0 var(--ye-pad) var(--ye-y-tight);

		> .ye-fig { flex: 1 1 0; min-width: 0; }
		> .ye-fig img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
	}

	.ye-pk-food {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-gap-lead) var(--ye-col);
		align-items: start;
		padding: var(--ye-y) var(--ye-pad) var(--ye-y-tight);

		> .ye-copy { grid-column: 1 / 6; }
		> .ye-pk-food__imgs { grid-column: 6 / 13; display: grid; grid-template-columns: 1fr 1fr; gap: clamp(0.25rem, 0.5vw, 0.5rem); }
		> .ye-pk-food__imgs > .ye-fig:nth-of-type(1) { grid-column: 1 / 3; }
		> .ye-pk-food__imgs img { width: 100%; object-fit: cover; }
		> .ye-pk-food__imgs > .ye-fig:nth-of-type(n+2) img { aspect-ratio: 4 / 3; }
	}

	@media (max-width: 1120px) {
		.ye-pk-end > .ye-h2,
		.ye-pk-end > .ye-copy { grid-column: 1 / 13; }
		.ye-pk-hero > .ye-copy { grid-column: 1 / 13; padding-right: var(--ye-pad); }
		.ye-pk-hero > .ye-pk-hero__seq { grid-column: 1 / 13; }
		.ye-pk-use > .ye-copy { grid-column: 1 / 13; }
		.ye-pk-use > .ye-fig:nth-of-type(1) { grid-column: 1 / 13; }
		.ye-pk-formats > .ye-h2,
		.ye-pk-formats > .ye-pk-formats__list { grid-column: 1 / 13; }
		.ye-pk-brief > .ye-copy:nth-of-type(1) { grid-column: 1 / 7; }
		.ye-pk-brief > .ye-copy:nth-of-type(2) { grid-column: 7 / 13; }
		.ye-pk-bridge > .ye-text,
		.ye-pk-bridge > .wp-block-buttons { grid-column: 1 / 13; }
	}

	@media (max-width: 760px) {
		.ye-pk-hero,
		.ye-pk-use,
		.ye-pk-formats,
		.ye-pk-brief,
		.ye-pk-bridge,
		.ye-pk-end { display: flex; flex-direction: column; align-items: stretch; gap: 1.5rem; }
		.ye-pk-hero { padding-left: var(--ye-pad); }
		.ye-pk-hero__seq { margin-right: calc(var(--ye-pad) * -1); }
		.ye-pk-row { grid-template-columns: 1fr; gap: 0.6rem; }
		.ye-pk-band { flex-wrap: wrap; }
		.ye-pk-band > .ye-fig { flex: 1 1 calc(50% - 0.25rem); }
		.ye-pk-food { display: flex; flex-direction: column; gap: 1.5rem; }
	}
}

/* =========================================================================
 * ye-im — offre Immobilier et architecture.
 * Hero sombre à un visuel, préparation du lieu, projets en liste typographique et séries de lieux en bandes.
 * ========================================================================= */
:is(.yohann-sections-frame, .editor-styles-wrapper) {
	.ye-im-hero {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-gap-title) var(--ye-col);
		align-items: start;
		padding: clamp(1.5rem, 2.6vw, 2.25rem) 0 var(--ye-y) var(--ye-pad);
		overflow: hidden;

		> .ye-crumb { grid-column: 1 / 13; color: var(--ye-muted); }
		> .ye-copy { grid-column: 1 / 7; padding-top: clamp(2rem, 7vw, 6rem); padding-right: var(--ye-col); }
		> .ye-im-hero__seq { grid-column: 7 / 13; }
	}

	.ye-im-hero .ye-h1 { font-size: clamp(3.6rem, 7vw, 6rem); }

	.ye-im-hero__seq {
		margin-right: calc(var(--ye-pad) * -1);
		align-self: center;
	}

	.ye-im-use {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-gap-lead) var(--ye-col);
		align-items: start;
		padding: var(--ye-y) var(--ye-pad);

		> .ye-copy { grid-column: 1 / 6; }
		> .ye-fig:nth-of-type(1) { grid-column: 7 / 13; }
	}

	.ye-im-formats {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-gap-lead) var(--ye-col);
		align-items: start;
		padding: var(--ye-y) var(--ye-pad);

		> .ye-h2 { grid-column: 1 / 5; }
		> .ye-im-formats__list { grid-column: 5 / 13; }
	}

	.ye-im-row {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: var(--ye-col);
		align-items: baseline;
		padding: 1.15rem 0 1.3rem;
		border-top: 1px solid var(--ye-line-dark);

		&:last-child { border-bottom: 1px solid var(--ye-line-dark); }

		> .ye-im-name {
			font-family: var(--ye-display);
			font-size: clamp(2rem, 3.4vw, 3rem);
			font-weight: 400;
			line-height: 0.98;
			text-transform: uppercase;
			color: var(--ye-white);
		}
	}

	.ye-im-brief {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-gap-lead) var(--ye-col);
		align-items: start;
		padding: var(--ye-y) var(--ye-pad) var(--ye-y-tight);

		> .ye-h2 { grid-column: 1 / 7; }
		> .ye-copy:nth-of-type(1) { grid-column: 1 / 6; }
		> .ye-copy:nth-of-type(2) { grid-column: 7 / 13; }
	}

	.ye-im-brief .ye-copy ul { padding: 0; margin: var(--ye-gap-lead) 0 0; list-style: none; border-top: 1px solid var(--ye-line-light); }
	.ye-im-brief .ye-copy li { padding: 0.75rem 0; border-bottom: 1px solid var(--ye-line-light); font-weight: 500; }

	.ye-im-bridge-wrap { padding: 0 var(--ye-pad) var(--ye-y-tight); }

	.ye-im-bridge {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-gap-lead) var(--ye-col);
		align-items: center;
		padding: 1.75rem 0;
		border-block: 1px solid var(--ye-line-light);

		> .ye-text { grid-column: 1 / 8; max-width: none; }
		> .wp-block-buttons { grid-column: 9 / 13; }
	}

	.ye-im-end {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-gap-lead) var(--ye-col);
		align-items: end;
		padding: var(--ye-y) var(--ye-pad);

		> .ye-h2 { grid-column: 1 / 7; }
		> .ye-copy { grid-column: 8 / 13; }
	}

	.ye-im-band {
		display: flex;
		gap: clamp(0.25rem, 0.5vw, 0.5rem);
		padding: 0 var(--ye-pad) var(--ye-y-tight);

		> .ye-fig { flex: 1 1 0; min-width: 0; }
		> .ye-fig img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
	}

	.ye-im-ext {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: clamp(0.25rem, 0.5vw, 0.5rem);
		padding: 0 var(--ye-pad) var(--ye-y-tight);

		> .ye-fig:nth-of-type(1) { grid-column: 1 / 6; }
		> .ye-fig:nth-of-type(2) { grid-column: 6 / 10; }
		> .ye-fig:nth-of-type(3) { grid-column: 10 / 13; }
		> .ye-fig img { width: 100%; height: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
	}

	@media (max-width: 1120px) {
		.ye-im-end > .ye-h2,
		.ye-im-end > .ye-copy { grid-column: 1 / 13; }
		.ye-im-hero > .ye-copy { grid-column: 1 / 13; padding-right: var(--ye-pad); }
		.ye-im-hero > .ye-im-hero__seq { grid-column: 1 / 13; }
		.ye-im-use > .ye-copy { grid-column: 1 / 13; }
		.ye-im-use > .ye-fig:nth-of-type(1) { grid-column: 1 / 13; }
		.ye-im-formats > .ye-h2,
		.ye-im-formats > .ye-im-formats__list { grid-column: 1 / 13; }
		.ye-im-brief > .ye-copy:nth-of-type(1) { grid-column: 1 / 7; }
		.ye-im-brief > .ye-copy:nth-of-type(2) { grid-column: 7 / 13; }
		.ye-im-bridge > .ye-text,
		.ye-im-bridge > .wp-block-buttons { grid-column: 1 / 13; }
	}

	@media (max-width: 760px) {
		.ye-im-hero,
		.ye-im-use,
		.ye-im-formats,
		.ye-im-brief,
		.ye-im-bridge,
		.ye-im-end { display: flex; flex-direction: column; align-items: stretch; gap: 1.5rem; }
		.ye-im-hero { padding-left: var(--ye-pad); }
		.ye-im-hero__seq { margin-right: calc(var(--ye-pad) * -1); }
		.ye-im-row { grid-template-columns: 1fr; gap: 0.6rem; }
		.ye-im-band { flex-direction: column; }
		.ye-im-ext { display: flex; flex-direction: column; }
	}
}

/* =========================================================================
 * ye-pt — page Partenaires : cartes de prestataires recommandés, modifiables.
 * ========================================================================= */
:is(.yohann-sections-frame, .editor-styles-wrapper) {
	.ye-pt-list { padding: var(--ye-y-tight) var(--ye-pad); }

	.ye-pt-list__head {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-gap-title, 1rem) var(--ye-col);
		align-items: end;
		margin-bottom: clamp(1.5rem, 3vw, 2.5rem);

		> .ye-h2 { grid-column: 1 / 7; }
		> .ye-text { grid-column: 7 / 13; max-width: 44ch; }
	}

	.ye-pt-list__grid {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: clamp(1rem, 2.4vw, 2rem);
	}

	.ye-pt-card {
		display: flex;
		flex-direction: column;
		gap: 0.75rem;
		padding: clamp(1.1rem, 2vw, 1.6rem);
		background: var(--ye-paper);
		border: 1px solid var(--ye-line-light);
	}

	.ye-pt-card__logo img {
		display: block;
		width: 100%;
		aspect-ratio: 12 / 5;
		object-fit: contain;
	}

	.ye-pt-card__cat {
		margin: 0;
		color: var(--ye-muted-light);
		font-size: 0.72rem;
		font-weight: 700;
		letter-spacing: 0.12em;
		text-transform: uppercase;
	}

	.ye-pt-card .ye-h3 { margin: 0; }
	.ye-pt-card .wp-block-buttons { margin-top: auto; padding-top: 0.5rem; }

	@media (max-width: 1000px) {
		.ye-pt-list__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	}

	@media (max-width: 760px) {
		.ye-pt-list__head { display: flex; flex-direction: column; align-items: stretch; gap: 0.75rem; }
	}

	@media (max-width: 640px) {
		.ye-pt-list__grid { grid-template-columns: 1fr; }
	}
}

/* =========================================================================
 * ye-pd — offre Portrait dirigeant et équipe : visages, verticales, cohérence.
 * Hero sombre prolongeant le fond noir des portraits studio, bande de portraits
 * de même hauteur, puis portraits en situation dans leur environnement de travail.
 * ========================================================================= */
:is(.yohann-sections-frame, .editor-styles-wrapper) {
	.ye-pd-hero {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-gap-title) var(--ye-col);
		align-items: end;
		padding: clamp(1.5rem, 2.6vw, 2.25rem) var(--ye-pad) 0;

		> .ye-crumb { grid-column: 1 / 13; color: var(--ye-muted); }
		> .ye-copy { grid-column: 1 / 7; align-self: center; padding: clamp(2rem, 5vw, 4rem) 0 var(--ye-y); }
		> .ye-fig { grid-column: 8 / 13; margin-bottom: 0; }
	}

	.ye-pd-hero .ye-h1 { font-size: clamp(3.4rem, 6.4vw, 5.6rem); }

	.ye-pd-band {
		display: flex;
		gap: clamp(0.25rem, 0.5vw, 0.5rem);
		padding: 0 var(--ye-pad) var(--ye-y-tight);

		> .ye-fig { flex: 1 1 0; min-width: 0; }
		> .ye-fig img { width: 100%; aspect-ratio: 2 / 3; object-fit: cover; }
	}

	.ye-pd-coherence {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-gap-lead) var(--ye-col);
		align-items: start;
		padding: var(--ye-y-tight) var(--ye-pad) var(--ye-y);

		> .ye-h2 { grid-column: 1 / 7; }
		> .ye-copy { grid-column: 8 / 13; }
	}

	.ye-pd-uses {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-gap-lead) var(--ye-col);
		align-items: start;
		padding: var(--ye-y) var(--ye-pad);

		> .ye-copy:nth-of-type(1) { grid-column: 1 / 6; }
		> .ye-pd-uses__list { grid-column: 7 / 13; }
	}

	.ye-pd-list {
		padding: 0;
		margin: 0;
		list-style: none;
		border-top: 2px solid var(--ye-ink);

		li {
			padding: 0.95rem 0;
			border-bottom: 1px solid var(--ye-line-light);
			font-size: 1.05rem;
			font-weight: 500;
		}
	}

	.ye-pd-situ {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: clamp(0.5rem, 1.1vw, 1rem) var(--ye-col);
		align-items: start;
		padding: var(--ye-y) var(--ye-pad);

		> .ye-pd-situ__head { grid-column: 1 / 13; display: grid; grid-template-columns: repeat(12, 1fr); gap: var(--ye-gap-lead) var(--ye-col); align-items: end; margin-bottom: var(--ye-y-tight); }
		> .ye-pd-situ__head > .ye-h2 { grid-column: 1 / 7; }
		> .ye-pd-situ__head > .ye-copy { grid-column: 8 / 13; }
		> .ye-fig:nth-of-type(1) { grid-column: 1 / 9; }
		> .ye-fig:nth-of-type(2) { grid-column: 9 / 13; margin-top: clamp(3rem, 9vw, 8rem); }
		> .ye-fig:nth-of-type(3) { grid-column: 2 / 7; margin-top: clamp(-4rem, -3vw, -1rem); }
		> .ye-fig:nth-of-type(4) { grid-column: 7 / 10; }
		> .ye-fig:nth-of-type(4) img { aspect-ratio: 2 / 3; object-fit: cover; }
	}

	.ye-pd-bridge-wrap { padding: 0 var(--ye-pad) var(--ye-y-tight); }

	.ye-pd-bridge {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-gap-lead) var(--ye-col);
		align-items: center;
		padding: 1.75rem 0;
		border-block: 1px solid var(--ye-line-light);

		> .ye-text { grid-column: 1 / 8; max-width: none; }
		> .wp-block-buttons { grid-column: 9 / 13; }
	}

	.ye-pd-end {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-gap-lead) var(--ye-col);
		align-items: end;
		padding: var(--ye-y) var(--ye-pad);

		> .ye-h2 { grid-column: 1 / 7; }
		> .ye-copy { grid-column: 8 / 13; }
	}

	@media (max-width: 1120px) {
		.ye-pd-hero > .ye-copy { grid-column: 1 / 8; }
		.ye-pd-hero > .ye-fig { grid-column: 8 / 13; }
		.ye-pd-coherence > .ye-h2,
		.ye-pd-coherence > .ye-copy { grid-column: 1 / 13; }
		.ye-pd-uses > .ye-copy:nth-of-type(1),
		.ye-pd-uses > .ye-pd-uses__list { grid-column: 1 / 13; }
		.ye-pd-situ > .ye-pd-situ__head > .ye-h2,
		.ye-pd-situ > .ye-pd-situ__head > .ye-copy { grid-column: 1 / 13; }
		.ye-pd-bridge > .ye-text,
		.ye-pd-bridge > .wp-block-buttons { grid-column: 1 / 13; }
		.ye-pd-end > .ye-h2,
		.ye-pd-end > .ye-copy { grid-column: 1 / 13; }
	}

	@media (max-width: 760px) {
		.ye-pd-hero,
		.ye-pd-coherence,
		.ye-pd-uses,
		.ye-pd-situ__head,
		.ye-pd-bridge,
		.ye-pd-end { display: flex; flex-direction: column; align-items: stretch; gap: 1.5rem; }
		.ye-pd-hero > .ye-copy { padding-bottom: 1rem; }
		.ye-pd-hero > .ye-fig { width: 78%; align-self: flex-end; margin-right: calc(var(--ye-pad) * -1); }
		.ye-pd-band { flex-wrap: wrap; }
		.ye-pd-band > .ye-fig { flex: 1 1 calc(50% - 0.25rem); }
		.ye-pd-band > .ye-fig img { aspect-ratio: 4 / 5; }
		.ye-pd-situ { display: flex; flex-direction: column; gap: 0.6rem; }
		.ye-pd-situ > .ye-fig:nth-of-type(n) { margin-top: 0; }
		.ye-pd-situ > .ye-fig:nth-of-type(2) { width: 72%; align-self: flex-end; }
		.ye-pd-situ > .ye-fig:nth-of-type(3) { width: 84%; }
		.ye-pd-situ > .ye-fig:nth-of-type(4) { width: 60%; align-self: flex-end; }
	}
}

/* Écrans tactiles (téléphones et tablettes) : pas de flèches, les photos défilent au doigt (accroche native).
   Un indicateur de position (points) s'affiche à la place. */
@media (pointer: coarse) {
:is(.yohann-sections-frame, .editor-styles-wrapper) {
	.ye-lb__nav { display: none !important; }

	.ye-lb__stage { grid-template-columns: 1fr; }

	.ye-lb__dots {
		display: flex;
		flex-wrap: wrap;
		gap: 0.6rem;
		align-items: center;
		justify-content: center;
		padding-block: 0.25rem 0.5rem;
	}
}
}

/* Créations : objets personnalisés réalisés au studio. */
:is(.yohann-sections-frame, .editor-styles-wrapper) {
	.ye-po-objects {
		display: grid;
		grid-template-columns: repeat(12, 1fr);
		gap: var(--ye-gap-lead, 1.5rem) var(--ye-col);
		align-items: end;
		padding: var(--ye-y) var(--ye-pad);
		border-top: 1px solid var(--ye-line-light);

		> .ye-h2 { grid-column: 1 / 7; }
		> .ye-copy { grid-column: 8 / 13; }
	}

	@media (max-width: 1120px) {
		.ye-po-objects > .ye-h2 { grid-column: 1 / 13; }
		.ye-po-objects > .ye-copy { grid-column: 1 / 11; }
	}

	@media (max-width: 760px) {
		.ye-po-objects { display: flex; flex-direction: column; align-items: stretch; gap: 1.5rem; }
	}
}
