/*
 * Vitrine : réalisations. Fiche projet (modèle unique) et grille de projets.
 * Encre, beige, filets fins, titres légers, beaucoup de blanc.
 */

.vtr-rea,
.vtr-rg,
.vtr-rea-lb {
	--vtr-r-encre: #14171f;
	--vtr-r-texte: #3d4137;
	--vtr-r-gris: #6b7064;
	--vtr-r-fond: #f5f4f0;
	--vtr-r-filet: #dcdcd6;
	/* Marge latérale : celle de l'en-tête du site (relevée par le script), sinon 20 à 48 px. */
	--vtr-r-marge: var(--vtr-r-marge-site, var(--wooh-marge, clamp(20px, 4.5vw, 48px)));
	--vtr-r-espace: clamp(80px, 10vw, 150px);
	--vtr-r-ease: cubic-bezier(.22, .61, .36, 1);
}

/* =========================================================================
 * Fiche : structure
 * ========================================================================= */
.vtr-rea {
	background: #fff;
	color: var(--vtr-r-texte);
	font-weight: 300;
}
.entry-content > .vtr-rea.alignfull,
.vtr-rea.alignfull {
	width: 100%;
	max-width: none;
	margin: 0;
}
.vtr-rea figure {
	margin: 0;
	border: 0;
	background: none;
	box-shadow: none;
}
.vtr-rea-modele .ast-breadcrumbs-wrapper,
.vtr-rea-modele .entry-header,
.vtr-rea-modele .post-navigation,
.vtr-rea-modele .ast-single-related-posts-container {
	display: none;
}
.vtr-rea-modele .site-content {
	background: #fff;
}
.vtr-rea-modele .site-content > .ast-container,
.vtr-rea-modele .entry-content {
	display: block;
	max-width: none;
	padding-left: 0;
	padding-right: 0;
}
.vtr-rea-modele .ast-article-single,
.vtr-rea-modele .site-main > article {
	margin: 0 !important;
	padding: 0 !important;
	background: none !important;
	border: 0 !important;
}
.vtr-rea-modele #primary {
	width: 100%;
	margin: 0 !important;
	padding: 0 !important;
}
.vtr-rea-modele .entry-content > :first-child {
	margin-top: 0;
}
.vtr-rea *,
.vtr-rea *::before,
.vtr-rea *::after {
	box-sizing: border-box;
}
.vtr-rea img {
	display: block;
	max-width: 100%;
	height: auto;
}
.vtr-rea__cadre {
	width: 100%;
	max-width: calc(1180px + 2 * var(--vtr-r-marge));
	margin-inline: auto;
	padding-inline: var(--vtr-r-marge);
}
.vtr-rea__cadre.is-large {
	max-width: calc(1440px + 2 * var(--vtr-r-marge));
}
.vtr-rea .vtr-rea__surtitre,
.vtr-rea .vtr-rea__etiquette,
.vtr-rea .vtr-rea__compte,
.vtr-rea .vtr-rea__fait dt {
	margin: 0;
	color: var(--vtr-r-gris);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: .2em;
	line-height: 1.4;
	text-transform: uppercase;
}

/* ---------- Fil d'Ariane, en haut de la colonne de texte ---------- */
.vtr-rea .vtr-rea__ariane {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 4px 10px;
	margin: 0;
	color: var(--vtr-r-gris);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: .18em;
	line-height: 1.6;
	text-transform: uppercase;
}
.vtr-rea .vtr-rea__ariane a {
	color: var(--vtr-r-gris);
	text-decoration: none;
	transition: color .2s;
}
.vtr-rea .vtr-rea__ariane a:hover,
.vtr-rea .vtr-rea__ariane a:focus-visible {
	color: var(--vtr-r-encre);
	text-decoration: underline;
	text-underline-offset: 3px;
}
.vtr-rea__ariane-sep {
	opacity: .5;
}
.vtr-rea .vtr-rea__ariane [aria-current] {
	color: var(--vtr-r-encre);
}

/* ---------- En-tête : texte et fiche à gauche, photo à droite ---------- */
.vtr-rea__hero {
	display: grid;
	/* La colonne de texte garde au moins 480px utiles, même quand la marge de l'en-tête est grande (écrans larges). */
	grid-template-columns: minmax(calc(var(--vtr-r-marge) + 480px), 5fr) minmax(0, 7fr);
	min-height: clamp(620px, calc(100svh - 90px), 980px);
	background: var(--vtr-r-fond);
}
.vtr-rea__hero:not(.has-photo) {
	grid-template-columns: minmax(0, 1fr);
	min-height: 0;
}
.vtr-rea__hero-texte {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 56px;
	padding: clamp(48px, 5.5vw, 88px) clamp(32px, 4vw, 72px) clamp(40px, 4.5vw, 64px) var(--vtr-r-marge);
}
.vtr-rea__hero-haut {
	display: flex;
	flex-direction: column;
	gap: 28px;
}
.vtr-rea__hero-haut > * {
	animation: vtr-rea-monte 1s var(--vtr-r-ease) both;
}
.vtr-rea__hero-haut > :nth-child(2) {
	animation-delay: .1s;
}
.vtr-rea__hero-haut > :nth-child(3) {
	animation-delay: .2s;
}
.vtr-rea .vtr-rea__titre {
	margin: 0;
	color: var(--vtr-r-encre);
	font-size: clamp(36px, 3.9vw, 64px);
	font-weight: 300;
	line-height: 1.06;
	letter-spacing: -.015em;
	text-wrap: balance;
}
.vtr-rea .vtr-rea__accroche {
	max-width: 30em;
	margin: 0;
	color: var(--vtr-r-encre);
	font-size: clamp(17px, 1.35vw, 20px);
	font-weight: 300;
	line-height: 1.55;
}
.vtr-rea .vtr-rea__faits {
	margin: 0;
	border-top: 1px solid var(--vtr-r-filet);
}
.vtr-rea__fait {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 24px;
	padding: 13px 0;
	border-bottom: 1px solid var(--vtr-r-filet);
}
.vtr-rea .vtr-rea__fait dt {
	flex: none;
}
.vtr-rea__fait.is-services {
	flex-direction: column;
	gap: 8px;
}
.vtr-rea .vtr-rea__fait.is-services dd {
	text-align: left;
	line-height: 1.6;
}
.vtr-rea .vtr-rea__fait dd {
	margin: 0;
	color: var(--vtr-r-encre);
	font-size: 15px;
	font-weight: 400;
	line-height: 1.4;
	text-align: right;
}
.vtr-rea__hero-img {
	position: relative;
	overflow: hidden;
	background: #e8e6e0;
}
.vtr-rea .vtr-rea__hero-img img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	animation: vtr-rea-zoom 2.2s var(--vtr-r-ease) both;
}

@keyframes vtr-rea-zoom {
	from {
		transform: scale(1.06);
	}
	to {
		transform: none;
	}
}
@keyframes vtr-rea-monte {
	from {
		opacity: 0;
		transform: translateY(24px);
	}
	to {
		opacity: 1;
		transform: none;
	}
}

/* ---------- Introduction en grand ---------- */
.vtr-rea__intro {
	display: grid;
	grid-template-columns: minmax(0, 3fr) minmax(0, 8fr) minmax(0, 1fr);
	gap: 48px;
	padding-block: var(--vtr-r-espace);
}
.vtr-rea .vtr-rea__intro .vtr-rea__etiquette {
	padding-top: .9em;
}

/* ---------- Textes ---------- */
.vtr-rea__texte {
	color: var(--vtr-r-texte);
	font-size: 18px;
	line-height: 1.75;
}
.vtr-rea__texte.is-grand {
	color: var(--vtr-r-encre);
	font-size: clamp(24px, 2.5vw, 38px);
	line-height: 1.38;
	letter-spacing: -.005em;
}
.vtr-rea__texte.is-grand.is-long {
	font-size: clamp(20px, 1.8vw, 27px);
	line-height: 1.5;
}
.vtr-rea .vtr-rea__texte p {
	margin: 0 0 1.1em;
	color: inherit;
	font-size: inherit;
	font-weight: 300;
}
.vtr-rea .vtr-rea__texte > :last-child {
	margin-bottom: 0;
}
.vtr-rea .vtr-rea__texte strong,
.vtr-rea .vtr-rea__texte b {
	color: var(--vtr-r-encre);
	font-weight: 400;
}
.vtr-rea .vtr-rea__texte a {
	color: var(--vtr-r-encre);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 4px;
}
.vtr-rea .vtr-rea__texte ul,
.vtr-rea .vtr-rea__texte ol {
	margin: 0 0 1.1em;
	padding: 0;
	list-style: none;
}
.vtr-rea .vtr-rea__texte li {
	position: relative;
	margin: 0;
	padding: 11px 0 11px 30px;
	border-bottom: 1px solid var(--vtr-r-filet);
}
.vtr-rea .vtr-rea__texte li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 1.4em;
	width: 14px;
	height: 1px;
	background: var(--vtr-r-encre);
}

/* ---------- Deux photos décalées ---------- */
.vtr-rea__duo {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(12px, 1.4vw, 20px);
	padding-bottom: 120px;
}
.vtr-rea .vtr-rea__duo img {
	width: 100%;
	aspect-ratio: 3 / 4;
	object-fit: cover;
}
.vtr-rea__duo figure:last-child {
	transform: translateY(120px);
}

/* ---------- Sections numérotées ---------- */
.vtr-rea__chapitre {
	display: grid;
	grid-template-columns: minmax(0, 4fr) minmax(0, 1fr) minmax(0, 6fr) minmax(0, 1fr);
	padding-block: var(--vtr-r-espace) 0;
}
.vtr-rea__chapitre:last-of-type {
	padding-bottom: var(--vtr-r-espace);
}
.vtr-rea__chap-tete {
	grid-column: 1;
	align-self: start;
	position: sticky;
	top: 120px;
	display: flex;
	flex-direction: column;
	gap: 22px;
}
.vtr-rea__chapitre .vtr-rea__texte {
	grid-column: 3;
}
.vtr-rea__chapitre.is-sans-titre .vtr-rea__texte {
	grid-column: 3;
}
.vtr-rea__num {
	color: var(--vtr-r-filet);
	font-size: clamp(72px, 8vw, 128px);
	font-weight: 300;
	line-height: .8;
	letter-spacing: -.03em;
}
.vtr-rea .vtr-rea__chap-titre,
.vtr-rea .vtr-rea__titre-section {
	margin: 0;
	color: var(--vtr-r-encre);
	font-size: clamp(28px, 2.7vw, 42px);
	font-weight: 300;
	line-height: 1.15;
	letter-spacing: -.01em;
	text-wrap: balance;
}

/* Grande photo seule, décalée. */
.vtr-rea .vtr-rea__visuel {
	max-width: 1440px;
	margin: var(--vtr-r-espace) auto 0;
	padding-inline: var(--vtr-r-marge);
}
.vtr-rea__visuel.is-gauche {
	padding-right: clamp(20px, 16vw, 280px);
}
.vtr-rea__visuel.is-droite {
	padding-left: clamp(20px, 16vw, 280px);
}
.vtr-rea .vtr-rea__visuel img {
	width: 100%;
	aspect-ratio: 3 / 2;
	max-height: 88vh;
	object-fit: cover;
}

/* ---------- Sections ---------- */
.vtr-rea__section {
	padding-block: var(--vtr-r-espace);
}
.vtr-rea__tete-section {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px 32px;
	margin-bottom: clamp(32px, 3.6vw, 52px);
}
.vtr-rea .vtr-rea__lien-fleche {
	color: var(--vtr-r-encre);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: .2em;
	text-decoration: none;
	text-transform: uppercase;
}
.vtr-rea .vtr-rea__lien-fleche::after {
	content: "";
	display: inline-block;
	width: 28px;
	height: 1px;
	margin-left: 12px;
	vertical-align: middle;
	background: currentColor;
	transition: width .3s var(--vtr-r-ease);
}
.vtr-rea .vtr-rea__lien-fleche:hover::after {
	width: 44px;
}
.vtr-rea__bouton {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 0 28px;
	border: 1px solid var(--vtr-r-encre);
	border-radius: 0;
	background: transparent;
	color: var(--vtr-r-encre);
	font: inherit;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: .2em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background .2s, color .2s;
}
.vtr-rea__bouton:hover,
.vtr-rea__bouton:focus-visible {
	background: var(--vtr-r-encre);
	color: #fff;
}

/* ---------- Avant / après ---------- */
.vtr-rea__aas {
	display: grid;
	gap: clamp(12px, 1.4vw, 20px);
}
.vtr-rea__aas.is-multi {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}
.vtr-rea__aa {
	--pos: 50%;
	position: relative;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: var(--vtr-r-fond);
	user-select: none;
	touch-action: pan-y;
	cursor: ew-resize;
}
.vtr-rea__aas.is-multi .vtr-rea__aa {
	aspect-ratio: 1 / 1;
}
.vtr-rea .vtr-rea__aa img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	pointer-events: none;
}
.vtr-rea__aa-haut {
	position: absolute;
	inset: 0;
	clip-path: inset(0 calc(100% - var(--pos)) 0 0);
}
.vtr-rea__aa-etiq {
	position: absolute;
	top: 16px;
	z-index: 2;
	padding: 6px 10px;
	background: rgba(14, 16, 20, .55);
	color: #fff;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: .2em;
	text-transform: uppercase;
	pointer-events: none;
}
.vtr-rea__aa-etiq.is-avant {
	left: 16px;
}
.vtr-rea__aa-etiq.is-apres {
	right: 16px;
}
.vtr-rea__aa-poignee {
	position: absolute;
	top: 0;
	bottom: 0;
	left: var(--pos);
	z-index: 2;
	width: 2px;
	margin-left: -1px;
	background: #fff;
	pointer-events: none;
}
.vtr-rea__aa-poignee::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	transform: translate(-50%, -50%);
	background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='22' height='22'%3E%3Cpath fill='none' stroke='%2314171f' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round' d='M9 7l-5 5 5 5M15 7l5 5-5 5'/%3E%3C/svg%3E") center / 22px no-repeat;
	box-shadow: 0 4px 18px rgba(0, 0, 0, .18);
}
.vtr-rea .vtr-rea__aa input[type="range"] {
	position: absolute;
	inset: 0;
	z-index: 3;
	width: 100%;
	height: 100%;
	margin: 0;
	opacity: 0;
	pointer-events: none;
	-webkit-appearance: none;
	appearance: none;
}
.vtr-rea__aa:focus-within .vtr-rea__aa-poignee::after {
	outline: 2px solid var(--vtr-r-encre);
	outline-offset: 3px;
}

/* ---------- Bande de photos ---------- */
.vtr-rea__galerie {
	--h: clamp(300px, 40vw, 600px);
	overflow: hidden;
}
.vtr-rea__galerie-nav {
	display: flex;
	align-items: center;
	gap: 16px;
}
.vtr-rea__galerie-nav .vtr-rea__compte {
	margin-right: 8px;
}
.vtr-rea .vtr-rea__fleche {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	margin: 0;
	padding: 0;
	border: 1px solid var(--vtr-r-filet);
	border-radius: 50%;
	background: #fff;
	color: var(--vtr-r-encre);
	cursor: pointer;
	transition: border-color .2s, background .2s, color .2s, opacity .2s;
}
.vtr-rea .vtr-rea__fleche:hover,
.vtr-rea .vtr-rea__fleche:focus-visible {
	border-color: var(--vtr-r-encre);
	background: var(--vtr-r-encre);
	color: #fff;
}
.vtr-rea .vtr-rea__fleche:disabled {
	opacity: .3;
	pointer-events: none;
}
.vtr-rea .vtr-rea__bande {
	display: flex;
	gap: clamp(10px, 1.2vw, 16px);
	margin: 0;
	padding: 0 var(--vtr-r-marge);
	padding-left: max(var(--vtr-r-marge), calc((100% - 1440px) / 2));
	overflow-x: auto;
	list-style: none;
	scroll-snap-type: x proximity;
	scrollbar-width: none;
	cursor: grab;
}
.vtr-rea .vtr-rea__bande::-webkit-scrollbar {
	display: none;
}
.vtr-rea .vtr-rea__bande.is-glisse {
	cursor: grabbing;
	scroll-snap-type: none;
}
.vtr-rea .vtr-rea__photo {
	flex: 0 0 auto;
	height: var(--h);
	aspect-ratio: var(--r, 1.333);
	margin: 0;
	scroll-snap-align: start;
}
.vtr-rea__photo a {
	display: block;
	width: 100%;
	height: 100%;
	overflow: hidden;
	cursor: zoom-in;
}
.vtr-rea .vtr-rea__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 1.1s var(--vtr-r-ease);
	user-select: none;
	-webkit-user-drag: none;
}
.vtr-rea__photo a:hover img {
	transform: scale(1.03);
}

/* ---------- Vidéo (chargée au clic) ---------- */
.vtr-rea__video {
	position: relative;
	display: block;
	width: 100%;
	aspect-ratio: 16 / 9;
	margin: 0;
	padding: 0;
	overflow: hidden;
	border: 0;
	background: #1b1d22;
	cursor: pointer;
}
.vtr-rea .vtr-rea__video img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: .8;
	transition: opacity .3s, transform 1s var(--vtr-r-ease);
}
.vtr-rea__video:hover img {
	opacity: .68;
	transform: scale(1.02);
}
.vtr-rea__lecture {
	position: absolute;
	top: 50%;
	left: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 88px;
	height: 88px;
	padding-left: 4px;
	border: 1px solid rgba(255, 255, 255, .8);
	border-radius: 50%;
	transform: translate(-50%, -50%);
	color: #fff;
	transition: background .3s, color .3s;
}
.vtr-rea__video:hover .vtr-rea__lecture {
	background: #fff;
	color: var(--vtr-r-encre);
}
.vtr-rea__video iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}
.vtr-rea__video.is-integre {
	cursor: auto;
}

/* ---------- Témoignage ---------- */
.vtr-rea__temoignage {
	padding-block: var(--vtr-r-espace);
	background: var(--vtr-r-fond);
}
.vtr-rea__temoignage .vtr-rea__cadre {
	display: grid;
	grid-template-columns: minmax(0, 3fr) minmax(0, 8fr) minmax(0, 1fr);
	gap: 48px;
}
.vtr-rea__temoignage .vtr-rea__etiquette {
	padding-top: .9em;
}
.vtr-rea .vtr-rea__temoignage blockquote {
	margin: 0;
	padding: 0;
	border: 0;
	color: var(--vtr-r-encre);
	font-size: clamp(24px, 2.6vw, 40px);
	font-style: normal;
	font-weight: 300;
	line-height: 1.35;
	letter-spacing: -.005em;
}
.vtr-rea__temoignage.is-long blockquote {
	font-size: clamp(18px, 1.5vw, 22px);
	line-height: 1.65;
	letter-spacing: 0;
}
.vtr-rea .vtr-rea__temoignage blockquote p {
	margin: 0 0 1em;
	color: inherit;
	font-size: inherit;
}
.vtr-rea .vtr-rea__temoignage blockquote p:first-child::before {
	content: "« ";
}
.vtr-rea .vtr-rea__temoignage blockquote p:last-child {
	margin: 0;
}
.vtr-rea .vtr-rea__temoignage blockquote p:last-child::after {
	content: " »";
}
.vtr-rea__temoignage figcaption {
	margin-top: 36px;
}
.vtr-rea__temoignage figcaption strong {
	display: block;
	color: var(--vtr-r-encre);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: .2em;
	text-transform: uppercase;
}
.vtr-rea__temoignage figcaption span {
	display: block;
	margin-top: 6px;
	color: var(--vtr-r-gris);
	font-size: 15px;
}

/* ---------- Mobilier du projet ---------- */
.vtr-rea__produits .vtr-grille {
	display: grid;
	grid-template-columns: repeat(var(--vtr-nb, 4), minmax(0, 1fr));
	gap: 40px 24px;
	margin: 0;
	padding: 0;
}

/* ---------- Apparition au défilement ---------- */
.vtr-anime [data-vtr-apparition] {
	opacity: 0;
	transform: translateY(40px);
	transition: opacity 1.1s var(--vtr-r-ease), transform 1.1s var(--vtr-r-ease);
}
.vtr-anime [data-vtr-apparition].is-vu {
	opacity: 1;
	transform: none;
}

/* ---------- Visionneuse plein écran ---------- */
.vtr-rea-lb {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(14, 16, 20, .96);
	color: #fff;
	opacity: 0;
	transition: opacity .3s;
}
.vtr-rea-lb.is-ouverte {
	opacity: 1;
}
.vtr-rea-lb img {
	max-width: calc(100vw - 160px);
	max-height: calc(100vh - 120px);
	object-fit: contain;
	transition: opacity .25s;
	user-select: none;
}
.vtr-rea-lb img.is-charge {
	opacity: .2;
}
.vtr-rea-lb button {
	position: absolute;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	margin: 0;
	padding: 0;
	border: 1px solid rgba(255, 255, 255, .25);
	border-radius: 50%;
	background: transparent;
	color: #fff;
	cursor: pointer;
	transition: background .2s, color .2s;
}
.vtr-rea-lb button:hover,
.vtr-rea-lb button:focus-visible {
	background: #fff;
	color: var(--vtr-r-encre);
}
.vtr-rea-lb__fermer {
	top: 24px;
	right: 24px;
}
.vtr-rea-lb__prec {
	left: 24px;
	top: 50%;
	transform: translateY(-50%);
}
.vtr-rea-lb__suiv {
	right: 24px;
	top: 50%;
	transform: translateY(-50%);
}
.vtr-rea-lb__compte {
	position: absolute;
	bottom: 28px;
	left: 50%;
	transform: translateX(-50%);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: .2em;
}
html.vtr-rea-lb-ouverte {
	overflow: hidden;
}

/* =========================================================================
 * Grille de projets
 * ========================================================================= */
.vtr-rg {
	/* De l'air sous la grille, avant le bloc suivant (avis, pied de page). */
	padding-bottom: clamp(72px, 8vw, 128px);
	color: var(--vtr-r-texte);
}
.vtr-rea .vtr-rg.is-simple {
	padding-bottom: 0;
}
.vtr-rg *,
.vtr-rg *::before,
.vtr-rg *::after {
	box-sizing: border-box;
}
.vtr-rg.alignwide,
.vtr-rg.alignfull {
	/* Pleine largeur avec la marge de l'en-tête : filtres et menu commencent au même endroit. */
	width: 100%;
	max-width: none;
	margin-inline: auto;
	padding-inline: var(--vtr-r-marge);
}

/* ---------- Barre de filtres : menus déroulants, comme la boutique ---------- */
.vtr-rg__barre {
	position: relative;
	z-index: 5;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	padding: 16px 0;
	border-bottom: 1px solid var(--vtr-r-filet);
}
.vtr-rg__facette {
	position: relative;
	margin: 0;
}
.vtr-rg .vtr-rg__facette-bouton {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 40px;
	margin: 0;
	padding: 6px 12px 6px 16px;
	border: 1px solid var(--vtr-r-filet);
	background: #fff;
	color: var(--vtr-r-encre);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: .06em;
	line-height: 1.2;
	text-transform: uppercase;
	white-space: nowrap;
	cursor: pointer;
	list-style: none;
	user-select: none;
	transition: border-color .2s;
}
.vtr-rg__facette-bouton::-webkit-details-marker {
	display: none;
}
.vtr-rg__facette-bouton::marker {
	content: "";
}
.vtr-rg__facette-bouton:hover,
.vtr-rg__facette[open] > .vtr-rg__facette-bouton,
.vtr-rg__facette.is-actif > .vtr-rg__facette-bouton {
	border-color: var(--vtr-r-encre);
}
.vtr-rg__facette-bouton:focus-visible {
	outline: 2px solid var(--vtr-r-encre);
	outline-offset: 2px;
}
.vtr-rg__chevron {
	flex-shrink: 0;
	transition: transform .25s var(--vtr-r-ease);
}
.vtr-rg__facette[open] .vtr-rg__chevron {
	transform: rotate(180deg);
}
.vtr-rg__valeur {
	display: inline-block;
	max-width: 22ch;
	overflow: hidden;
	color: var(--vtr-r-gris);
	font-weight: 400;
	letter-spacing: .02em;
	text-overflow: ellipsis;
	text-transform: none;
	white-space: nowrap;
	vertical-align: bottom;
}
.vtr-rg__valeur:empty {
	display: none;
}
.vtr-rg__valeur::before {
	content: "·";
	margin: 0 .45em;
}
.vtr-rg__panneau {
	position: absolute;
	top: calc(100% + 8px);
	left: 0;
	z-index: 40;
	width: max-content;
	min-width: 260px;
	max-width: min(340px, 90vw);
	max-height: 380px;
	overflow-y: auto;
	padding: 8px;
	border: 1px solid var(--vtr-r-filet);
	background: #fff;
	box-shadow: 0 22px 44px -20px rgba(0, 0, 0, .3);
	animation: vtr-rg-deroule .2s var(--vtr-r-ease);
}
@keyframes vtr-rg-deroule {
	from {
		opacity: 0;
		transform: translateY(-6px);
	}
	to {
		opacity: 1;
		transform: none;
	}
}
.vtr-rg .vtr-rg__options {
	margin: 0;
	padding: 0;
	list-style: none;
}
.vtr-rg .vtr-rg__options li {
	margin: 0;
	padding: 0;
	border: 0;
}
.vtr-rg .vtr-rg__options li::before,
.vtr-rg .vtr-rg__options li::marker {
	content: none;
}
.vtr-rg .vtr-rg__option {
	display: flex;
	align-items: center;
	gap: 10px;
	width: 100%;
	margin: 0;
	padding: 9px 10px;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: var(--vtr-r-encre);
	font: inherit;
	font-size: 14px;
	font-weight: 400;
	letter-spacing: 0;
	line-height: 1.3;
	text-align: left;
	text-transform: none;
	cursor: pointer;
	transition: background-color .15s;
}
.vtr-rg .vtr-rg__option:hover,
.vtr-rg .vtr-rg__option:focus-visible {
	background: #f3f4ef;
	color: var(--vtr-r-encre);
}
.vtr-rg__case {
	position: relative;
	flex-shrink: 0;
	width: 18px;
	height: 18px;
	border: 1.5px solid #b9b9b3;
	border-radius: 50%;
	background: #fff;
	transition: background-color .15s, border-color .15s;
}
.vtr-rg__case::after {
	content: "";
	position: absolute;
	inset: 0;
	width: 7px;
	height: 7px;
	margin: auto;
	border-radius: 50%;
	background: #fff;
	opacity: 0;
}
.vtr-rg__option.is-coche .vtr-rg__case {
	border-color: var(--vtr-r-encre);
	background: var(--vtr-r-encre);
}
.vtr-rg__option.is-coche .vtr-rg__case::after {
	opacity: 1;
}
.vtr-rg__nom {
	flex: 1;
	min-width: 0;
}
.vtr-rg__nb {
	margin-left: auto;
	padding-left: 12px;
	color: var(--vtr-r-gris);
	font-size: 12px;
	font-variant-numeric: tabular-nums;
}
.vtr-rg .vtr-rg__option.is-vide {
	opacity: .4;
	pointer-events: none;
}
.vtr-rg .vtr-rg__compte {
	margin: 0 0 0 auto;
	color: var(--vtr-r-gris);
	font-size: 14px;
	white-space: nowrap;
}
.vtr-rg__compte span {
	color: var(--vtr-r-encre);
}

/* ---------- Cartes : communes ---------- */
.vtr-rg .vtr-rg__liste,
.vtr-rg .vtr-rg__col-liste {
	margin: 0;
	padding: 0;
	list-style: none;
}
.vtr-rg__item {
	min-width: 0;
	margin: 0;
	transition: opacity .5s var(--vtr-r-ease), transform .7s var(--vtr-r-ease);
}
.vtr-rg__item[hidden],
.vtr-rg__item.is-page {
	display: none !important;
}
.vtr-rg__item.is-sort {
	opacity: 0;
	transform: translateY(18px);
}
.vtr-anime .vtr-rg__item:not(.is-vu) {
	opacity: 0;
	transform: translateY(56px);
}
.vtr-rg__lien {
	display: block;
	color: inherit;
	text-decoration: none !important;
}
.vtr-rg__media {
	position: relative;
	overflow: hidden;
	aspect-ratio: 4 / 3;
	background: var(--vtr-r-fond);
}
.vtr-rg .vtr-rg__media img {
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	transition: transform 1.6s var(--vtr-r-ease);
}
.vtr-rg__vide {
	position: absolute;
	inset: 0;
}
.vtr-rg__media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(14, 16, 20, .18);
	opacity: 0;
	transition: opacity .6s var(--vtr-r-ease);
}
.vtr-rg__voir {
	position: absolute;
	left: 50%;
	top: 50%;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 120px;
	height: 120px;
	border-radius: 50%;
	background: #fff;
	color: var(--vtr-r-encre);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: .18em;
	line-height: 1.35;
	text-align: center;
	text-transform: uppercase;
	opacity: 0;
	transform: translate(-50%, -50%) scale(.85);
	transition: opacity .45s var(--vtr-r-ease), transform .6s var(--vtr-r-ease);
	pointer-events: none;
}
@media (hover: hover) {
	.vtr-rg__lien:hover .vtr-rg__media img,
	.vtr-rg__lien:focus-visible .vtr-rg__media img {
		transform: scale(1.04);
	}
	.vtr-rg__lien:hover .vtr-rg__media::after,
	.vtr-rg__lien:focus-visible .vtr-rg__media::after {
		opacity: 1;
	}
	.vtr-rg__lien:hover .vtr-rg__voir,
	.vtr-rg__lien:focus-visible .vtr-rg__voir {
		opacity: 1;
		transform: translate(-50%, -50%) scale(1);
	}
}
.vtr-rg__info {
	padding-top: 22px;
}
.vtr-rg__ligne {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 6px 24px;
}
.vtr-rg .vtr-rg__titre {
	margin: 0;
	color: var(--vtr-r-encre);
	font-size: clamp(22px, 2.1vw, 34px);
	font-weight: 300;
	line-height: 1.12;
	letter-spacing: -.01em;
}
.vtr-rg .vtr-rg__meta {
	color: var(--vtr-r-gris);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: .2em;
	text-transform: uppercase;
	white-space: nowrap;
}
.vtr-rg .vtr-rg__details {
	display: -webkit-box;
	margin: 10px 0 0;
	overflow: hidden;
	color: var(--vtr-r-texte);
	font-size: 15px;
	line-height: 1.5;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
}

/* ---------- Galerie décalée (deux colonnes) ---------- */
.vtr-rg__cols {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: clamp(40px, 7vw, 112px);
	padding: clamp(28px, 3.4vw, 48px) 0 0;
}
.vtr-rg__col {
	min-width: 0;
}
.vtr-rg .vtr-rg__col-liste {
	display: flex;
	flex-direction: column;
	gap: clamp(72px, 8.5vw, 128px);
}
.vtr-rg__cols.is-decale .vtr-rg__col:last-child {
	padding-top: clamp(80px, 14vw, 220px);
}
.vtr-rg__item.is-haute .vtr-rg__media {
	aspect-ratio: 3 / 4;
}
.vtr-rg__item.is-carree .vtr-rg__media {
	aspect-ratio: 1 / 1;
}
.vtr-rg__intro {
	display: flex;
	flex-direction: column;
	gap: 24px;
	padding: 0 0 clamp(72px, 8.5vw, 128px);
}
.vtr-rg .vtr-rg__surtitre {
	margin: 0;
	color: var(--vtr-r-gris);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: .2em;
	text-transform: uppercase;
}
.vtr-rg .vtr-rg__grand-titre {
	margin: 0;
	color: var(--vtr-r-encre);
	font-size: clamp(36px, 4.4vw, 72px);
	font-weight: 300;
	line-height: 1.05;
	letter-spacing: -.015em;
	text-wrap: balance;
}
.vtr-rg .vtr-rg__texte {
	max-width: 32em;
	margin: 0;
	color: var(--vtr-r-texte);
	font-size: 17px;
	line-height: 1.6;
}

/* ---------- Mosaïque et grille régulière (autres dispositions) ---------- */
.vtr-rg.is-mosaique .vtr-rg__liste,
.vtr-rg.is-grille .vtr-rg__liste {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	gap: clamp(48px, 5vw, 80px) clamp(16px, 2vw, 32px);
	padding-top: clamp(40px, 5vw, 64px);
}
.vtr-rg.is-grille .vtr-rg__item,
.vtr-rg.is-mosaique .vtr-rg__item.is-4 {
	grid-column: span 4;
}
.vtr-rg.is-mosaique .vtr-rg__item.is-7 {
	grid-column: span 7;
}
.vtr-rg.is-mosaique .vtr-rg__item.is-5 {
	grid-column: span 5;
}
.vtr-rg.is-mosaique .vtr-rg__item.is-7 .vtr-rg__media,
.vtr-rg.is-mosaique .vtr-rg__item.is-5 .vtr-rg__media {
	aspect-ratio: auto;
	height: clamp(300px, 36vw, 600px);
}
.vtr-rg.is-mosaique .vtr-rg__item.is-4 .vtr-rg__media {
	aspect-ratio: 4 / 5;
}

.vtr-rg__aucun {
	margin: 64px 0;
	color: var(--vtr-r-gris);
	text-align: center;
}
.vtr-rg__aucun[hidden] {
	display: none;
}
.vtr-rg .vtr-rg__reinit {
	margin-left: 6px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--vtr-r-encre);
	font: inherit;
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
}
.vtr-rg__suite {
	margin-top: clamp(40px, 4.5vw, 64px);
	text-align: center;
}
.vtr-rg__suite[hidden] {
	display: none;
}
.vtr-rg .vtr-rea__bouton {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 0 32px;
	border: 1px solid var(--vtr-r-encre);
	border-radius: 0;
	background: transparent;
	color: var(--vtr-r-encre);
	font: inherit;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: .2em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background .2s, color .2s;
}
.vtr-rg .vtr-rea__bouton:hover {
	background: var(--vtr-r-encre);
	color: #fff;
}

/* ---------- Sélection : quelques projets sur une ligne ---------- */
.vtr-rg.is-selection {
	padding-block: clamp(64px, 8vw, 120px);
}
.vtr-rg__tete {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px 48px;
	margin-bottom: clamp(32px, 4vw, 56px);
}
.vtr-rg__tete-texte {
	display: flex;
	flex-direction: column;
	gap: 18px;
	max-width: 760px;
}
.vtr-rg.is-selection .vtr-rg__grand-titre {
	font-size: clamp(32px, 3.6vw, 56px);
}
.vtr-rg .vtr-rg__tous {
	color: var(--vtr-r-encre);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: .2em;
	text-decoration: none;
	text-transform: uppercase;
	white-space: nowrap;
}
.vtr-rg .vtr-rg__tous::after {
	content: "";
	display: inline-block;
	width: 28px;
	height: 1px;
	margin-left: 12px;
	vertical-align: middle;
	background: currentColor;
	transition: width .3s var(--vtr-r-ease);
}
.vtr-rg .vtr-rg__tous:hover::after {
	width: 44px;
}
.vtr-rg.is-selection .vtr-rg__liste {
	display: grid;
	grid-template-columns: repeat(var(--vtr-rg-nb, 3), minmax(0, 1fr));
	gap: clamp(16px, 2vw, 32px);
}
.vtr-rg__item.is-portrait .vtr-rg__media {
	aspect-ratio: 4 / 5;
}
.vtr-rg.is-selection .vtr-rg__titre {
	font-size: clamp(20px, 1.8vw, 28px);
}

/* « Autres réalisations » sur la fiche : trois colonnes, photos verticales. */
.vtr-rea .vtr-rg__liste.is-simple {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(16px, 2vw, 32px);
	margin: 0;
	padding: 0;
	list-style: none;
}
.vtr-rea .vtr-rg__item.is-portrait .vtr-rg__media {
	aspect-ratio: 4 / 5;
}
.vtr-rea .vtr-rg .vtr-rg__titre {
	font-size: clamp(20px, 1.7vw, 26px);
}

/* =========================================================================
 * Tablette
 * ========================================================================= */
@media (max-width: 1100px) {
	.vtr-rea__hero {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	}
	.vtr-rea__intro,
	.vtr-rea__temoignage .vtr-rea__cadre {
		grid-template-columns: minmax(0, 1fr);
		gap: 20px;
	}
	.vtr-rea__intro .vtr-rea__etiquette,
	.vtr-rea__temoignage .vtr-rea__etiquette {
		padding-top: 0;
	}
	.vtr-rea__chapitre {
		grid-template-columns: minmax(0, 5fr) minmax(0, 1fr) minmax(0, 7fr);
	}
	.vtr-rg__cols {
		padding-inline: 0;
	}
	.vtr-rg.is-selection .vtr-rg__liste {
		grid-template-columns: repeat(min(var(--vtr-rg-nb, 3), 3), minmax(0, 1fr));
	}
	.vtr-rea__produits .vtr-grille {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
	.vtr-rg.is-mosaique .vtr-rg__liste,
	.vtr-rg.is-grille .vtr-rg__liste {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.vtr-rg.is-mosaique .vtr-rg__item,
	.vtr-rg.is-grille .vtr-rg__item,
	.vtr-rg.is-mosaique .vtr-rg__item.is-4,
	.vtr-rg.is-mosaique .vtr-rg__item.is-5,
	.vtr-rg.is-mosaique .vtr-rg__item.is-7 {
		grid-column: span 1;
	}
	.vtr-rg.is-mosaique .vtr-rg__item .vtr-rg__media,
	.vtr-rg.is-mosaique .vtr-rg__item.is-7 .vtr-rg__media,
	.vtr-rg.is-mosaique .vtr-rg__item.is-5 .vtr-rg__media {
		height: auto;
		aspect-ratio: 4 / 5;
	}
}

/* =========================================================================
 * Mobile
 * ========================================================================= */
@media (max-width: 760px) {
	.vtr-rea__hero {
		display: flex;
		flex-direction: column-reverse;
		min-height: 0;
	}
	.vtr-rea__hero-img {
		aspect-ratio: 4 / 5;
	}
	.vtr-rea__hero-texte {
		gap: 40px;
		padding-top: 36px;
		padding-right: var(--vtr-r-marge);
	}
	.vtr-rea .vtr-rea__fait dd {
		font-size: 14px;
	}
	.vtr-rea__texte {
		font-size: 16px;
	}
	.vtr-rea__texte.is-grand,
	.vtr-rea__texte.is-grand.is-long {
		font-size: 21px;
		line-height: 1.45;
	}
	.vtr-rea__duo {
		gap: 8px;
		padding-bottom: 48px;
	}
	.vtr-rea__duo figure:last-child {
		transform: translateY(48px);
	}
	.vtr-rea__chapitre {
		display: flex;
		flex-direction: column;
		gap: 24px;
	}
	.vtr-rea__chap-tete {
		position: static;
		gap: 14px;
	}
	.vtr-rea__visuel.is-gauche,
	.vtr-rea__visuel.is-droite {
		padding-inline: 0;
	}
	.vtr-rea .vtr-rea__visuel img {
		aspect-ratio: 4 / 3;
	}
	.vtr-rea__aas.is-multi {
		grid-template-columns: minmax(0, 1fr);
	}
	.vtr-rea__galerie {
		--h: 340px;
	}
	.vtr-rea__galerie-nav .vtr-rea__fleche {
		display: none;
	}
	.vtr-rea__lecture {
		width: 64px;
		height: 64px;
	}
	.vtr-rg.is-selection .vtr-rg__liste,
	.vtr-rea .vtr-rg__liste.is-simple {
		display: flex;
		gap: 12px;
		margin-inline: calc(-1 * var(--vtr-r-marge));
		padding-inline: var(--vtr-r-marge);
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		scroll-padding-inline: var(--vtr-r-marge);
		scrollbar-width: none;
	}
	.vtr-rg.is-selection .vtr-rg__item,
	.vtr-rea .vtr-rg__liste.is-simple .vtr-rg__item {
		flex: 0 0 78%;
		scroll-snap-align: start;
	}
	.vtr-rea__produits .vtr-grille {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 32px 12px;
	}
	.vtr-rea-lb img {
		max-width: 100vw;
		max-height: calc(100vh - 160px);
	}
	.vtr-rea-lb__prec,
	.vtr-rea-lb__suiv {
		top: auto;
		bottom: 16px;
		transform: none;
	}

	/* Grille : une colonne, dans l'ordre des projets. */
	.vtr-rg__barre {
		gap: 8px;
	}
	.vtr-rg__facette {
		flex: 1 1 0;
		min-width: 0;
	}
	.vtr-rg .vtr-rg__facette-bouton {
		justify-content: space-between;
		width: 100%;
		padding-inline: 12px;
		font-size: 12px;
	}
	.vtr-rg__valeur {
		display: none;
	}
	.vtr-rg__facette.is-actif .vtr-rg__facette-bouton {
		background: var(--vtr-r-encre);
		color: #fff;
	}
	.vtr-rg__panneau {
		position: fixed;
		top: auto;
		bottom: 0;
		left: 0;
		right: 0;
		width: auto;
		max-width: none;
		max-height: 70vh;
		padding: 12px 12px calc(12px + env(safe-area-inset-bottom));
		box-shadow: 0 -20px 60px rgba(0, 0, 0, .25);
		animation-name: vtr-rg-monte;
	}
	@keyframes vtr-rg-monte {
		from {
			transform: translateY(100%);
		}
		to {
			transform: none;
		}
	}
	.vtr-rg .vtr-rg__option {
		padding: 13px 10px;
		font-size: 15px;
	}
	.vtr-rg .vtr-rg__compte {
		flex: 1 1 100%;
		margin: 4px 0 0;
		font-size: 13px;
	}
	.vtr-rg__cols {
		display: flex;
		flex-direction: column;
		gap: 56px;
		padding: 28px 0 0;
	}
	.vtr-rg__col,
	.vtr-rg .vtr-rg__col-liste {
		display: contents;
	}
	.vtr-rg__cols.is-decale .vtr-rg__col:last-child {
		padding-top: 0;
	}
	.vtr-rg__intro {
		order: -1;
		padding: 0;
	}
	.vtr-rg__item.is-haute .vtr-rg__media,
	.vtr-rg__item.is-carree .vtr-rg__media {
		aspect-ratio: 4 / 5;
	}
	.vtr-rg__info {
		padding-top: 16px;
	}
	.vtr-rg__voir,
	.vtr-rg__media::after {
		display: none !important;
	}
	.vtr-rg.is-mosaique .vtr-rg__liste,
	.vtr-rg.is-grille .vtr-rg__liste {
		grid-template-columns: minmax(0, 1fr);
		gap: 48px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.vtr-rea *,
	.vtr-rg * {
		animation: none !important;
		transition: none !important;
	}
	.vtr-anime [data-vtr-apparition],
	.vtr-anime .vtr-rg__item:not(.is-vu) {
		opacity: 1;
		transform: none;
	}
}

/* Pas d'introduction : de l'air entre l'en-tête et les photos. */
.vtr-rea__hero + .vtr-rea__duo,
.vtr-rea__hero + .vtr-rea__chapitre {
	padding-top: var(--vtr-r-espace);
}
