/* ==========================================================================
   Real Terra — système visuel
   Toutes les valeurs sensibles passent par des variables CSS, surchargées
   par les contrôles Elementor de chaque widget.
   ========================================================================== */

.rt-scope {
	/* --- Papier & encre --- */
	--rt-paper: #EDEAE1;
	--rt-paper-2: #E4E0D4;
	--rt-rule: #C2BDAE;
	--rt-rule-strong: #8E8A7C;
	--rt-ink: #101512;
	--rt-ink-2: #262B26;
	--rt-slate: #666B61;

	/* --- Accents --- */
	--rt-accent: #2C6152;
	--rt-brass: #92651B;
	--rt-underline: var(--rt-brass);
	--rt-focus: var(--rt-brass);

	/* --- Typographie --- */
	--rt-display: "Fraunces", "Iowan Old Style", Georgia, serif;
	--rt-body: "Source Serif 4", Georgia, serif;
	--rt-mono: "IBM Plex Mono", ui-monospace, "SF Mono", monospace;

	/* --- Mesures --- */
	--rt-gut: clamp(18px, 4.5vw, 56px);
	--rt-maxw: 1240px;
	--rt-margin-col: clamp(0px, 7vw, 92px);
	--rt-split: 38%;
	--rt-stagger: 48px;
	--rt-grain-op: .35;

	/* --- Animation --- */
	--rt-rv-dist: 16px;
	--rt-rv-dur: 600ms;

	color: var(--rt-ink);
	background: var(--rt-paper);
	font-family: var(--rt-body);
	font-size: 17px;
	line-height: 1.6;
	font-optical-sizing: auto;
	-webkit-font-smoothing: antialiased;
	-webkit-tap-highlight-color: transparent;
	overflow-wrap: break-word;
	position: relative;
}

.rt-scope *,
.rt-scope *::before,
.rt-scope *::after {
	box-sizing: border-box;
}

/* Grain papier — texture générée, aucun asset externe. */
.rt-grain-yes .rt-scope::after,
.rt-grain-yes.rt-scope::after {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	z-index: 2;
	opacity: var(--rt-grain-op);
	mix-blend-mode: multiply;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='.28'/%3E%3C/svg%3E");
}

/* --------------------------------------------------------------------------
   Section
   -------------------------------------------------------------------------- */

.rt-sec {
	max-width: var(--rt-maxw);
	margin: 0 auto;
	padding: clamp(56px, 8vw, 104px) var(--rt-gut);
	position: relative;
	z-index: 1;
	/* Filet de sécurité : aucun widget ne peut créer de défilement latéral. */
	overflow-x: clip;
}

.rt-sec-rule::after {
	content: "";
	position: absolute;
	left: var(--rt-gut);
	right: var(--rt-gut);
	bottom: 0;
	height: 1px;
	background: var(--rt-ink);
	opacity: .5;
}

.rt-rule- .rt-sec-rule::after {
	display: none;
}

.rt-sec-head {
	display: grid;
	grid-template-columns: var(--rt-margin-col) minmax(0, 1fr);
	gap: 0 clamp(0px, 2vw, 28px);
	margin-bottom: clamp(32px, 4.5vw, 56px);
}

.rt-sec-num {
	font-family: var(--rt-mono);
	font-size: 12px;
	letter-spacing: .16em;
	color: var(--rt-slate);
	padding-top: 6px;
	display: block;
	border-top: 2px solid var(--rt-ink);
	align-self: start;
	max-width: 3.5em;
}

.rt-sec-head-body {
	max-width: 72ch;
}

/* Sans numéro de section, la colonne de marge disparaît. */
.rt-sec-head--flush {
	grid-template-columns: minmax(0, 1fr);
}

@media (max-width: 860px) {
	.rt-sec-head {
		grid-template-columns: minmax(0, 1fr);
		gap: 14px;
	}
	.rt-sec-num {
		margin-bottom: 4px;
	}
}

/* --------------------------------------------------------------------------
   Mise en page contenu + bloc image
   -------------------------------------------------------------------------- */

.rt-layout {
	display: block;
}

.rt-layout--top,
.rt-layout--bottom {
	display: flex;
	flex-direction: column;
	gap: clamp(24px, 4vw, 48px);
}

.rt-layout--top > .rt-figure {
	order: -1;
}

.rt-layout--left,
.rt-layout--right {
	--rt-lgap: clamp(24px, 4vw, 60px);
	display: grid;
	gap: var(--rt-lgap);
	align-items: start;
}

.rt-layout--right {
	grid-template-columns:
		minmax(0, calc(100% - var(--rt-split) - var(--rt-lgap) / 2))
		minmax(0, calc(var(--rt-split) - var(--rt-lgap) / 2));
}

.rt-layout--left {
	grid-template-columns:
		minmax(0, calc(var(--rt-split) - var(--rt-lgap) / 2))
		minmax(0, calc(100% - var(--rt-split) - var(--rt-lgap) / 2));
}

.rt-layout--left > .rt-figure {
	order: -1;
}

@media (max-width: 900px) {
	.rt-layout--left,
	.rt-layout--right {
		grid-template-columns: minmax(0, 1fr);
	}
	.rt-layout--left > .rt-figure {
		order: 0;
	}
}

.rt-layout-main {
	min-width: 0;
}

/* --------------------------------------------------------------------------
   Bloc image générique
   -------------------------------------------------------------------------- */

.rt-figure {
	margin: 0;
	position: relative;
	min-width: 0;
	overflow: hidden;
}

.rt-figure > a {
	display: block;
	line-height: 0;
}

.rt-figure img {
	width: 100%;
	height: auto;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	display: block;
	border: 1px solid var(--rt-rule);
	transition-property: transform, filter;
	transition-timing-function: cubic-bezier(.2, .6, .3, 1);
	transition-duration: 350ms;
	will-change: transform;
}

.rt-figure figcaption {
	font-family: var(--rt-mono);
	font-size: 10.5px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--rt-slate);
	margin-top: 10px;
	padding-top: 8px;
	border-top: 1px solid var(--rt-rule);
}

@media (min-width: 901px) {
	.rt-layout--right > .rt-figure.is-bleed {
		margin-right: calc(var(--rt-gut) * -1);
	}
	.rt-layout--left > .rt-figure.is-bleed {
		margin-left: calc(var(--rt-gut) * -1);
	}
}

/* --------------------------------------------------------------------------
   Typographie partagée
   -------------------------------------------------------------------------- */

.rt-eyebrow {
	font-family: var(--rt-mono);
	font-size: 11px;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--rt-slate);
	margin: 0 0 20px;
	display: flex;
	align-items: center;
	gap: 10px;
}

.rt-eyebrow::before {
	content: "";
	width: 20px;
	height: 2px;
	background: var(--rt-brass);
	flex: none;
}

.rt-title {
	font-family: var(--rt-display);
	font-weight: 400;
	font-variation-settings: "SOFT" 0, "WONK" 1;
	font-size: clamp(30px, 4.6vw, 54px);
	line-height: 1.04;
	letter-spacing: -.022em;
	margin: 0 0 20px;
	text-wrap: balance;
}

.rt-lede {
	font-size: clamp(17px, 1.8vw, 20px);
	line-height: 1.52;
	color: var(--rt-ink-2);
	max-width: 60ch;
	margin: 0 0 18px;
}

.rt-scope p {
	margin: 0 0 16px;
}

.rt-scope a {
	color: inherit;
}

.rt-scope a:focus-visible,
.rt-scope button:focus-visible,
.rt-scope [tabindex]:focus-visible {
	outline: 2px solid var(--rt-focus);
	outline-offset: 3px;
}

/* --------------------------------------------------------------------------
   Boutons
   -------------------------------------------------------------------------- */

.rt-cta-row {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 6px;
}

.rt-btn {
	font-family: var(--rt-mono);
	font-size: 11.5px;
	letter-spacing: .14em;
	text-transform: uppercase;
	text-decoration: none;
	padding: 14px 22px;
	border: 1.5px solid var(--rt-ink);
	border-radius: 0;
	min-height: 44px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition-property: background-color, color, border-color, transform, box-shadow;
	transition-timing-function: cubic-bezier(.2, .6, .3, 1);
	transition-duration: 200ms;
}

.rt-btn-solid {
	background: var(--rt-ink);
	color: var(--rt-paper);
}

.rt-btn-solid:hover {
	background: var(--rt-accent);
	border-color: var(--rt-accent);
}

.rt-btn-ghost {
	background: transparent;
}

.rt-btn-ghost:hover {
	background: var(--rt-ink);
	color: var(--rt-paper);
}

.rt-btn-link {
	border: 0;
	padding-left: 0;
	padding-right: 0;
	background: none;
	box-shadow: inset 0 -1.5px 0 var(--rt-underline);
	min-height: 0;
}

.rt-btn-link:hover {
	color: var(--rt-accent);
	box-shadow: inset 0 -1.5px 0 var(--rt-accent);
}

/* --------------------------------------------------------------------------
   En-tête
   -------------------------------------------------------------------------- */

/* Le bandeau doit toujours dominer les sections suivantes : celles-ci ont
   position: relative + z-index: 1 et masqueraient le menu déroulant. */
.rt-masthead {
	position: relative;
	z-index: 90;
}

/* Les conteneurs Elementor ne doivent pas rogner le panneau mobile. */
.elementor-widget-rt_masthead,
.elementor-widget-rt_masthead > .elementor-widget-container {
	overflow: visible;
	position: relative;
	z-index: 90;
}

.rt-sticky-yes .rt-hdr {
	position: sticky;
	top: 0;
	z-index: 60;
}

.rt-hdr {
	position: relative;
	z-index: 60;
	background: color-mix(in srgb, var(--rt-paper) 88%, transparent);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
	border-bottom: 1.5px solid var(--rt-ink);
	transition: padding .3s ease, box-shadow .3s ease;
}

.rt-hdr.is-stuck .rt-hdr-in {
	padding-top: 8px;
	padding-bottom: 8px;
}

.rt-hdr-in {
	max-width: var(--rt-maxw);
	margin: 0 auto;
	padding: 12px var(--rt-gut);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	transition: padding .3s ease;
}

.rt-mark {
	display: flex;
	align-items: baseline;
	gap: 10px;
	text-decoration: none;
	flex: none;
}

.rt-mark b {
	font-family: var(--rt-display);
	font-weight: 500;
	font-size: 21px;
	letter-spacing: -.025em;
	font-variation-settings: "SOFT" 0, "WONK" 1;
}

.rt-mark span {
	font-family: var(--rt-mono);
	font-size: 10px;
	letter-spacing: .24em;
	color: var(--rt-slate);
	border-left: 1px solid var(--rt-rule);
	padding-left: 10px;
}

.rt-mark-img {
	width: auto;
	display: block;
	transition: height .3s ease;
}

.rt-hdr-right {
	display: flex;
	align-items: center;
	gap: clamp(14px, 3vw, 32px);
}

.rt-nav {
	display: flex;
	align-items: center;
	gap: clamp(14px, 2vw, 26px);
	font-family: var(--rt-mono);
	font-size: 11.5px;
	letter-spacing: .13em;
	text-transform: uppercase;
}

.rt-nav a {
	text-decoration: none;
	color: var(--rt-slate);
	padding: 6px 0;
	border-bottom: 2px solid transparent;
	transition: color .2s ease, border-color .2s ease, background-color .2s ease;
}

.rt-nav a:hover {
	color: var(--rt-ink);
	border-bottom-color: var(--rt-brass);
}

/* Une entrée de menu marquée « bouton » garde le style bouton. */
.rt-nav a.rt-btn {
	border-bottom-width: 1.5px;
	padding: 10px 16px;
	min-height: 38px;
	color: var(--rt-paper);
}

.rt-nav a.rt-btn:hover {
	border-bottom-color: var(--rt-accent);
}

/* Vignettes */
.rt-thumbs {
	display: flex;
	gap: 6px;
	list-style: none;
	margin: 0;
	padding: 0 0 0 clamp(10px, 2vw, 22px);
	border-left: 1px solid var(--rt-rule);
}

.rt-thumb {
	position: relative;
	width: 38px;
	height: 38px;
	transition: transform .25s ease;
}

.rt-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	border: 1px solid var(--rt-rule);
	filter: grayscale(1) contrast(1.05);
	transition: filter .25s ease;
}

.rt-thumb:hover {
	transform: translateY(-2px);
	z-index: 3;
}

.rt-thumb:hover img {
	filter: none;
}

.rt-thumb-cap {
	position: absolute;
	top: calc(100% + 8px);
	right: 0;
	font-family: var(--rt-mono);
	font-size: 9.5px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--rt-paper);
	background: var(--rt-ink);
	padding: 4px 7px;
	white-space: nowrap;
	opacity: 0;
	pointer-events: none;
	transition: opacity .2s ease;
}

.rt-thumb:hover .rt-thumb-cap {
	opacity: 1;
}

/* Burger */
.rt-burger {
	display: none;
	width: 44px;
	height: 44px;
	background: none;
	border: 1.5px solid var(--rt-ink);
	border-radius: 0;
	cursor: pointer;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 5px;
	padding: 0;
}

.rt-burger span {
	display: block;
	width: 18px;
	height: 1.5px;
	background: var(--rt-ink);
	transition: transform .25s ease;
}

.rt-burger[aria-expanded="true"] span:first-child {
	transform: translateY(3.25px) rotate(45deg);
}

.rt-burger[aria-expanded="true"] span:last-child {
	transform: translateY(-3.25px) rotate(-45deg);
}

@media (max-width: 860px) {
	.rt-burger {
		display: flex;
	}
	.rt-nav {
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		z-index: 95;
		flex-direction: column;
		align-items: stretch;
		gap: 0;
		background: var(--rt-paper);
		border-bottom: 1.5px solid var(--rt-ink);
		padding: 8px var(--rt-gut) 16px;
		display: none;
		max-height: calc(100vh - 100%);
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
	}
	.rt-nav.is-open {
		display: flex;
	}
	.rt-nav a {
		padding: 14px 0;
		border-bottom: 1px solid var(--rt-rule);
		min-height: 44px;
		display: flex;
		align-items: center;
	}
	.rt-nav a.rt-btn {
		margin-top: 12px;
		justify-content: center;
	}
	.rt-hdr-in {
		position: relative;
	}
	.rt-thumbs {
		display: none;
	}
}

/* --------------------------------------------------------------------------
   Hero
   -------------------------------------------------------------------------- */

.rt-hero {
	padding-top: clamp(48px, 9vh, 96px);
	padding-bottom: clamp(48px, 8vh, 88px);
	overflow: hidden;
}

.rt-hero-grid.rt-layout--right {
	grid-template-columns:
		minmax(0, calc(var(--rt-hero-split, 63%) - var(--rt-lgap) / 2))
		minmax(0, calc(100% - var(--rt-hero-split, 63%) - var(--rt-lgap) / 2));
	align-items: end;
}

.rt-hero-grid.rt-layout--left {
	grid-template-columns:
		minmax(0, calc(100% - var(--rt-hero-split, 63%) - var(--rt-lgap) / 2))
		minmax(0, calc(var(--rt-hero-split, 63%) - var(--rt-lgap) / 2));
	align-items: end;
}

@media (max-width: 980px) {
	.rt-hero-grid.rt-layout--right,
	.rt-hero-grid.rt-layout--left {
		grid-template-columns: minmax(0, 1fr);
	}
}

.rt-thesis {
	min-height: clamp(180px, 24vw, 280px);
	display: flex;
	flex-direction: column;
	justify-content: center;
	margin-bottom: 34px;
}

.rt-t-line {
	font-family: var(--rt-display);
	font-weight: 300;
	font-variation-settings: "SOFT" 0, "WONK" 1;
	font-size: clamp(30px, 5.6vw, 64px);
	line-height: 1.03;
	letter-spacing: -.03em;
	margin: 0;
	opacity: 0;
	transform: translateY(8px);
	transition: opacity .5s ease, transform .5s ease;
}

.rt-t-b {
	color: var(--rt-accent);
	font-weight: 400;
	transition-delay: .05s;
}

.rt-t-line.is-shown {
	opacity: 1;
	transform: none;
}

.rt-neg {
	position: relative;
	white-space: nowrap;
}

.rt-neg::after {
	content: "";
	position: absolute;
	left: -.04em;
	right: 100%;
	top: .55em;
	height: 3px;
	background: var(--rt-ink);
	transition: right .45s cubic-bezier(.7, 0, .3, 1);
}

.rt-neg.is-cut::after {
	right: -.04em;
}

.rt-hero-foot {
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
	gap: clamp(20px, 4vw, 52px);
	align-items: end;
}

@media (max-width: 700px) {
	.rt-hero-foot {
		grid-template-columns: minmax(0, 1fr);
		align-items: start;
	}
}

.rt-hero-note {
	font-family: var(--rt-mono);
	font-size: 12px;
	line-height: 1.85;
	color: var(--rt-slate);
	border-top: 2px solid var(--rt-ink);
	padding-top: 14px;
}

.rt-hero-note strong {
	color: var(--rt-ink);
	font-weight: 500;
}

.rt-hero .rt-figure img {
	aspect-ratio: 4 / 5;
	filter: grayscale(.75) contrast(1.04);
}

/* --------------------------------------------------------------------------
   Grille / triangle
   -------------------------------------------------------------------------- */

.rt-grille {
	--rt-ggap: clamp(28px, 5vw, 72px);
	display: grid;
	grid-template-columns:
		minmax(0, calc(var(--rt-tri-split, 42%) - var(--rt-ggap) / 2))
		minmax(0, calc(100% - var(--rt-tri-split, 42%) - var(--rt-ggap) / 2));
	gap: var(--rt-ggap);
	align-items: center;
}

.rt-flip-yes .rt-grille {
	direction: rtl;
}

.rt-flip-yes .rt-grille > * {
	direction: ltr;
}

@media (max-width: 900px) {
	.rt-grille {
		grid-template-columns: minmax(0, 1fr);
	}
	.rt-flip-yes .rt-grille {
		direction: ltr;
	}
}

.rt-tri-box {
	position: relative;
	width: 100%;
	max-width: 460px;
	margin: 0 auto;
	aspect-ratio: 1 / .92;
}

.rt-tri-box svg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	overflow: visible;
}

.rt-tri-fill {
	fill: var(--rt-accent);
	opacity: 0;
	transition: opacity .5s ease;
}

.rt-tri-box.is-full .rt-tri-fill {
	opacity: .12;
}

.rt-tri-edge {
	stroke: var(--rt-rule-strong);
	stroke-width: 1.5;
	transition: stroke .35s ease, stroke-width .35s ease;
}

.rt-tri-edge.is-lit {
	stroke: var(--rt-accent);
	stroke-width: 3;
}

.rt-vtx {
	position: absolute;
	transform: translate(-50%, -50%);
	appearance: none;
	cursor: pointer;
	background: var(--rt-paper);
	border: 1.5px solid var(--rt-rule-strong);
	border-radius: 0;
	font-family: var(--rt-mono);
	font-size: 11px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--rt-slate);
	padding: 10px 16px;
	min-height: 40px;
	white-space: nowrap;
	transition: background-color .25s ease, border-color .25s ease, color .25s ease, box-shadow .25s ease;
}

.rt-vtx:hover {
	border-color: var(--rt-ink);
	color: var(--rt-ink);
}

.rt-vtx[aria-pressed="true"] {
	background: var(--rt-accent);
	border-color: var(--rt-accent);
	color: var(--rt-paper);
}

.rt-v1 {
	left: 50%;
	top: 5%;
}

/* Les sommets bas sont ancrés par leur bord, jamais par leur centre :
   sinon ils débordent la colonne sur les écrans étroits. */
.rt-v2 {
	left: 0;
	top: 91%;
	transform: translate(0, -50%);
}

.rt-v3 {
	left: 100%;
	top: 91%;
	transform: translate(-100%, -50%);
}

@media (max-width: 460px) {
	.rt-vtx {
		font-size: 9.5px;
		padding: 8px 10px;
		letter-spacing: .1em;
	}
}

.rt-verdict {
	position: absolute;
	left: 50%;
	top: 58%;
	transform: translate(-50%, -50%);
	width: 66%;
	text-align: center;
}

.rt-verdict-k {
	font-family: var(--rt-display);
	font-size: clamp(18px, 2.5vw, 25px);
	font-weight: 500;
	line-height: 1.14;
	letter-spacing: -.015em;
	transition: color .35s ease;
	text-wrap: balance;
}

.rt-tri-box.is-full .rt-verdict-k {
	color: var(--rt-accent);
}

.rt-verdict-s {
	font-family: var(--rt-mono);
	font-size: 10.5px;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--rt-slate);
	margin-top: 8px;
}

.rt-conds {
	border-top: 2px solid var(--rt-ink);
}

.rt-cond {
	display: grid;
	/* minmax(0,1fr) et non 1fr : sinon le minimum implicite est le contenu
	   et la colonne s'élargit au lieu de faire revenir le texte à la ligne. */
	grid-template-columns: 26px minmax(0, 1fr);
	gap: 16px;
	align-items: start;
	width: 100%;
	max-width: 100%;
	text-align: left;
	background: none;
	border: 0;
	border-bottom: 1px solid var(--rt-rule);
	border-radius: 0;
	padding: 20px 4px;
	cursor: pointer;
	font: inherit;
	color: inherit;
	transition: background-color .25s ease, padding-left .25s ease, box-shadow .25s ease;
}

.rt-cond > span {
	min-width: 0;
}

.rt-cond-t,
.rt-cond-d {
	min-width: 0;
	white-space: normal;
	overflow-wrap: break-word;
}

.rt-cond:hover {
	padding-left: 12px;
}

/* Aucun aplat de fond sur la ligne : l'état actif se lit au marqueur
   gauche et à la couleur du titre, pas à un rectangle plein. */
.rt-cond,
.rt-cond:hover,
.rt-cond:focus,
.rt-cond[aria-pressed="true"] {
	background-color: transparent;
}

.rt-cond[aria-pressed="true"] {
	box-shadow: inset 3px 0 0 var(--rt-accent);
	padding-left: 12px;
}

.rt-cond-n {
	font-family: var(--rt-mono);
	font-size: 12px;
	color: var(--rt-slate);
	padding-top: 4px;
	transition: color .25s ease;
}

.rt-cond[aria-pressed="true"] .rt-cond-n,
.rt-cond[aria-pressed="true"] .rt-cond-t {
	color: var(--rt-accent);
}

.rt-cond-t {
	font-family: var(--rt-mono);
	font-size: 11.5px;
	letter-spacing: .16em;
	text-transform: uppercase;
	display: block;
	margin-bottom: 7px;
	transition: color .25s ease;
}

.rt-cond-d {
	display: block;
	font-size: 16px;
	line-height: 1.55;
	color: var(--rt-slate);
	max-width: 62ch;
}

.rt-grille-foot {
	font-family: var(--rt-mono);
	font-size: 11.5px;
	line-height: 1.8;
	color: var(--rt-slate);
	margin-top: 22px;
	padding-left: 4px;
	max-width: 68ch;
}

/* --------------------------------------------------------------------------
   Piliers
   -------------------------------------------------------------------------- */

.rt-pillars {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0;
}

@media (max-width: 900px) {
	.rt-pillars {
		grid-template-columns: 1fr !important;
	}
}

.rt-pillar {
	padding: clamp(20px, 2.6vw, 34px) clamp(18px, 2.4vw, 30px);
	border-left: 1px solid var(--rt-rule);
	position: relative;
	transition: background-color .3s ease, border-color .3s ease, transform .3s ease, box-shadow .3s ease;
}

.rt-pillar:first-child {
	border-left: 0;
	padding-left: 0;
}

@media (max-width: 900px) {
	.rt-pillar {
		border-left: 0;
		padding-left: 0;
		padding-right: 0;
		border-top: 1px solid var(--rt-rule);
	}
	.rt-pillar:first-child {
		border-top: 0;
	}
}

@media (min-width: 901px) {
	.rt-stagger-yes .rt-pillar:nth-child(2) {
		margin-top: var(--rt-stagger);
	}
	.rt-stagger-yes .rt-pillar:nth-child(3) {
		margin-top: calc(var(--rt-stagger) * 2);
	}
	.rt-stagger-yes .rt-pillar:nth-child(5) {
		margin-top: var(--rt-stagger);
	}
	.rt-stagger-yes .rt-pillar:nth-child(6) {
		margin-top: calc(var(--rt-stagger) * 2);
	}
}

.rt-pillar-num {
	font-family: var(--rt-mono);
	font-size: 11px;
	letter-spacing: .18em;
	color: var(--rt-brass);
	display: block;
	margin-bottom: 18px;
}

.rt-pillar-g {
	margin-bottom: 16px;
	color: var(--rt-ink);
	line-height: 0;
}

.rt-pill-dot {
	fill: var(--rt-accent);
}

.rt-pillar h3 {
	font-family: var(--rt-display);
	font-weight: 500;
	font-size: clamp(21px, 2.4vw, 27px);
	line-height: 1.14;
	letter-spacing: -.018em;
	margin: 0 0 12px;
}

.rt-pillar h3 a {
	text-decoration: none;
	box-shadow: inset 0 -1px 0 transparent;
	transition: box-shadow .2s ease;
}

.rt-pillar h3 a:hover {
	box-shadow: inset 0 -1px 0 var(--rt-underline);
}

.rt-pillar-body p {
	font-size: 16px;
	line-height: 1.58;
}

.rt-pillar-body p:last-child {
	margin-bottom: 0;
}

.rt-kick {
	font-family: var(--rt-mono);
	font-size: 11px;
	letter-spacing: .14em;
	text-transform: uppercase;
	line-height: 1.7;
	color: var(--rt-brass);
	margin: 24px 0 0;
	padding-top: 18px;
	border-top: 2px solid var(--rt-ink);
}

.rt-pillar-fig {
	margin: 22px 0 0;
	overflow: hidden;
}

.rt-pillar-fig img {
	width: 100%;
	height: auto;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	display: block;
	border: 1px solid var(--rt-rule);
	filter: grayscale(.8);
	transition: transform .4s cubic-bezier(.2, .6, .3, 1), filter .4s ease;
}

.rt-pillar-fig figcaption {
	font-family: var(--rt-mono);
	font-size: 10.5px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--rt-slate);
	margin-top: 8px;
}

/* --------------------------------------------------------------------------
   Secteurs
   -------------------------------------------------------------------------- */

.rt-sectors-sec {
	position: relative;
	/* L'image flottante est en position fixe : elle doit sortir de la section. */
	overflow-x: visible;
}

.rt-sectors {
	border-top: 2px solid var(--rt-ink);
	--rt-name-col: 32%;
}

.rt-sector {
	display: grid;
	grid-template-columns: 44px minmax(0, var(--rt-name-col)) minmax(0, 1fr);
	gap: clamp(12px, 3vw, 44px);
	border-bottom: 1px solid var(--rt-rule);
	padding: 26px 4px;
	align-items: baseline;
	cursor: default;
	text-decoration: none;
	color: inherit;
	transition: background-color .3s ease, padding-left .3s ease;
}

.rt-sector.is-linked {
	cursor: pointer;
}

.rt-sector:hover,
.rt-sector:focus-within {
	background: var(--rt-paper-2);
	padding-left: 14px;
}

.rt-sector-n {
	font-family: var(--rt-mono);
	font-size: 11px;
	letter-spacing: .14em;
	color: var(--rt-slate);
}

.rt-sec-name {
	font-family: var(--rt-display);
	font-size: clamp(19px, 2.2vw, 26px);
	font-weight: 400;
	letter-spacing: -.018em;
	font-variation-settings: "SOFT" 0, "WONK" 1;
	transition: color .3s ease;
}

.rt-sec-re {
	font-size: 16px;
	line-height: 1.55;
	color: var(--rt-slate);
	margin: 0;
	max-width: 62ch;
}

.rt-sec-re em {
	font-style: normal;
	color: var(--rt-ink);
	box-shadow: inset 0 -2px 0 var(--rt-brass);
}

.rt-sector-arrow {
	display: inline-block;
	margin-left: 8px;
	opacity: 0;
	transform: translateX(-6px);
	transition: opacity .25s ease, transform .25s ease;
}

.rt-sector:hover .rt-sector-arrow,
.rt-sector:focus-within .rt-sector-arrow {
	opacity: 1;
	transform: none;
}

@media (max-width: 760px) {
	.rt-sector {
		grid-template-columns: 32px minmax(0, 1fr);
		gap: 6px 12px;
	}
	.rt-sec-re {
		grid-column: 2;
	}
}

.rt-hover-img {
	position: fixed;
	top: 0;
	left: 0;
	width: 260px;
	height: 175px;
	pointer-events: none;
	opacity: 0;
	z-index: 50;
	transform: translate(-50%, -50%) scale(.96);
	transition: opacity .22s ease, transform .22s ease;
	border: 1px solid var(--rt-ink);
	background: var(--rt-paper);
}

.rt-hover-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	filter: grayscale(.7) contrast(1.05);
}

.rt-hover-img.is-on {
	opacity: 1;
	transform: translate(-50%, -50%) scale(1);
}

@media (hover: none), (max-width: 900px) {
	.rt-hover-img {
		display: none;
	}
}

/* --------------------------------------------------------------------------
   Manifeste
   -------------------------------------------------------------------------- */

.rt-manif {
	background: var(--rt-ink);
	color: var(--rt-paper);
	max-width: none;
	position: relative;
	overflow: hidden;
}

.rt-manif::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image: var(--rt-manif-bg, none);
	background-size: cover;
	background-position: center;
	opacity: 0;
	filter: grayscale(1);
	pointer-events: none;
}

.rt-manif.has-bg::before {
	opacity: .18;
}

.rt-manif-grid {
	max-width: var(--rt-maxw);
	margin: 0 auto;
	position: relative;
	z-index: 1;
}

.rt-manif-cols {
	--rt-mgap: clamp(26px, 5vw, 72px);
	display: grid;
	grid-template-columns:
		minmax(0, calc(var(--rt-manif-split, 51%) - var(--rt-mgap) / 2))
		minmax(0, calc(100% - var(--rt-manif-split, 51%) - var(--rt-mgap) / 2));
	gap: var(--rt-mgap);
	align-items: start;
}

@media (max-width: 880px) {
	.rt-manif-cols {
		grid-template-columns: minmax(0, 1fr);
	}
}

.rt-manif .rt-sec-num {
	border-top-color: currentColor;
	color: rgba(237, 234, 225, .55);
	margin-bottom: 20px;
}

.rt-manif .rt-eyebrow {
	color: rgba(237, 234, 225, .55);
}

.rt-manif-q {
	font-family: var(--rt-display);
	font-weight: 300;
	font-variation-settings: "SOFT" 0, "WONK" 1;
	font-size: clamp(24px, 3.6vw, 44px);
	line-height: 1.16;
	letter-spacing: -.028em;
	margin: 0 0 28px;
	max-width: 22ch;
	text-wrap: balance;
}

.rt-manif-sign {
	font-family: var(--rt-mono);
	font-size: 11px;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: rgba(237, 234, 225, .55);
}

.rt-manif-body p {
	color: rgba(237, 234, 225, .74);
	font-size: 16.5px;
	line-height: 1.62;
}

.rt-manif-body p:last-child {
	margin-bottom: 0;
}

.rt-manif-body strong {
	color: var(--rt-paper);
	font-weight: 600;
}

/* --------------------------------------------------------------------------
   Contact
   -------------------------------------------------------------------------- */

.rt-contact-grid {
	--rt-cgap: clamp(26px, 5vw, 72px);
	display: grid;
	grid-template-columns:
		minmax(0, calc(var(--rt-contact-split, 56%) - var(--rt-cgap) / 2))
		minmax(0, calc(100% - var(--rt-contact-split, 56%) - var(--rt-cgap) / 2));
	gap: var(--rt-cgap);
	align-items: start;
}

@media (max-width: 880px) {
	.rt-contact-grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

.rt-contact-sec .rt-sec-head {
	margin-bottom: 0;
}

/* Les boutons s'alignent sur le corps du chapeau, pas sur la marge. */
.rt-contact-sec .rt-cta-row {
	margin-top: clamp(18px, 3vw, 30px);
	padding-left: calc(var(--rt-margin-col) + clamp(0px, 2vw, 28px));
}

.rt-contact-sec .rt-sec-head--flush ~ .rt-cta-row,
.rt-contact-sec .rt-sec-head--flush + .rt-cta-row {
	padding-left: 0;
}

@media (max-width: 860px) {
	.rt-contact-sec .rt-cta-row {
		padding-left: 0;
	}
}

.rt-dl {
	font-family: var(--rt-mono);
	font-size: 12.5px;
	line-height: 1.85;
	border-top: 2px solid var(--rt-ink);
	padding-top: 4px;
	margin: 0;
}

.rt-dl > div {
	display: flex;
	justify-content: space-between;
	gap: 20px;
	border-bottom: 1px solid var(--rt-rule);
	padding: 11px 0;
}

.rt-dl dt {
	color: var(--rt-slate);
}

.rt-dl dd {
	margin: 0;
	text-align: right;
}

.rt-dl a {
	text-decoration: none;
	box-shadow: inset 0 -1px 0 var(--rt-underline);
}

.rt-foot {
	border-top: 1px solid var(--rt-rule);
	margin-top: clamp(40px, 6vw, 72px);
	padding: 22px 0 0;
	font-family: var(--rt-mono);
	font-size: 11px;
	letter-spacing: .1em;
	color: var(--rt-slate);
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 12px;
}

.rt-foot-links {
	display: flex;
	gap: 18px;
	flex-wrap: wrap;
}

.rt-foot-links a {
	text-decoration: none;
	box-shadow: inset 0 -1px 0 transparent;
	transition: box-shadow .2s ease;
}

.rt-foot-links a:hover {
	box-shadow: inset 0 -1px 0 var(--rt-underline);
}

/* --------------------------------------------------------------------------
   Galerie autonome
   -------------------------------------------------------------------------- */

.rt-gallery {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
}

.rt-gallery figure {
	margin: 0;
	min-width: 0;
	overflow: hidden;
}

.rt-gallery figure > a {
	display: block;
	line-height: 0;
}

.rt-gallery img {
	width: 100%;
	height: auto;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	display: block;
	border: 1px solid var(--rt-rule);
	transition-property: transform, filter;
	transition-timing-function: cubic-bezier(.2, .6, .3, 1);
	transition-duration: 400ms;
}

.rt-gallery figcaption {
	font-family: var(--rt-mono);
	font-size: 10.5px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--rt-slate);
	margin-top: 10px;
	padding-top: 8px;
	border-top: 1px solid var(--rt-rule);
}

.rt-gallery-bleed-yes .rt-figure-sec {
	max-width: none;
}

@media (max-width: 780px) {
	.rt-gallery {
		grid-template-columns: 1fr 1fr !important;
	}
	.rt-gallery figure {
		grid-column: span 1 !important;
	}
}

@media (max-width: 480px) {
	.rt-gallery {
		grid-template-columns: 1fr !important;
	}
}

/* --------------------------------------------------------------------------
   Révélation au défilement
   -------------------------------------------------------------------------- */

.rt-rv {
	opacity: 0;
	transition-property: opacity, transform;
	transition-duration: var(--rt-rv-dur);
	transition-timing-function: cubic-bezier(.2, .6, .3, 1);
}

.rt-rv-up    { transform: translateY(var(--rt-rv-dist)); }
.rt-rv-down  { transform: translateY(calc(var(--rt-rv-dist) * -1)); }
.rt-rv-left  { transform: translateX(calc(var(--rt-rv-dist) * -1)); }
.rt-rv-right { transform: translateX(var(--rt-rv-dist)); }
.rt-rv-fade  { transform: none; }

.rt-rv.is-in {
	opacity: 1;
	transform: none;
}

/* --------------------------------------------------------------------------
   Accessibilité — mouvement réduit
   -------------------------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
	.rt-scope *,
	.rt-scope *::before,
	.rt-scope *::after {
		transition-duration: .01ms !important;
		animation-duration: .01ms !important;
	}
	.rt-rv {
		opacity: 1;
		transform: none;
	}
	.rt-t-line {
		opacity: 1 !important;
		transform: none !important;
	}
	.rt-neg::after {
		right: -.04em;
	}
}

/* Éditeur Elementor : sticky neutralisé pour ne pas gêner l'édition. */
.elementor-editor-active .rt-hdr {
	position: relative !important;
}

/* ==========================================================================
   Formulaire WPForms
   Tout est scopé sous .rt-form : les autres formulaires du site
   gardent leur apparence d'origine.
   ========================================================================== */

.rt-form-grid {
	--rt-fgap: clamp(28px, 5vw, 76px);
	--rt-form-split: 58%;
	display: grid;
	gap: var(--rt-fgap);
	align-items: start;
}

.rt-form-grid--left {
	grid-template-columns:
		minmax(0, calc(var(--rt-form-split) - var(--rt-fgap) / 2))
		minmax(0, calc(100% - var(--rt-form-split) - var(--rt-fgap) / 2));
}

.rt-form-grid--right {
	grid-template-columns:
		minmax(0, calc(100% - var(--rt-form-split) - var(--rt-fgap) / 2))
		minmax(0, calc(var(--rt-form-split) - var(--rt-fgap) / 2));
}

.rt-form-grid--right .rt-form {
	order: 2;
}

.rt-form-grid--full {
	grid-template-columns: minmax(0, 1fr);
}

@media (max-width: 900px) {
	.rt-form-grid--left,
	.rt-form-grid--right {
		grid-template-columns: minmax(0, 1fr);
	}
	.rt-form-grid--right .rt-form {
		order: 0;
	}
}

.rt-form {
	min-width: 0;
}

.rt-form-intro {
	font-size: 16.5px;
	line-height: 1.6;
	color: var(--rt-ink-2);
	margin-bottom: 28px;
	max-width: 58ch;
}

/* --- Neutralisation des styles WPForms par défaut --- */

.rt-form .wpforms-container,
.rt-form .wpforms-container-full {
	margin: 0;
	max-width: none;
}

.rt-form .wpforms-form {
	font-family: var(--rt-body);
}

.rt-form .wpforms-field {
	padding: 0 0 20px;
	max-width: none;
}

.rt-form .wpforms-head-container {
	margin-bottom: 24px;
}

/* --- Intitulés --- */

.rt-form .wpforms-field-label {
	font-family: var(--rt-mono);
	font-size: 11px;
	font-weight: 400;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--rt-slate);
	display: block;
	margin-bottom: 8px;
	line-height: 1.5;
}

.rt-form .wpforms-required-label {
	color: var(--rt-brass);
	margin-left: 3px;
}

.rt-form .wpforms-field-sublabel,
.rt-form .wpforms-field-description {
	font-family: var(--rt-mono);
	font-size: 10.5px;
	letter-spacing: .08em;
	color: var(--rt-slate);
	margin-top: 6px;
	line-height: 1.6;
}

/* --- Champs --- */

.rt-form input[type="text"],
.rt-form input[type="email"],
.rt-form input[type="tel"],
.rt-form input[type="url"],
.rt-form input[type="number"],
.rt-form input[type="password"],
.rt-form input[type="date"],
.rt-form select,
.rt-form textarea {
	width: 100%;
	max-width: none;
	font-family: var(--rt-body);
	font-size: 16px;
	line-height: 1.5;
	color: var(--rt-ink);
	background: transparent;
	border: 1px solid var(--rt-rule-strong);
	border-radius: 0;
	padding: 13px 14px;
	min-height: 48px;
	box-shadow: none;
	transition: border-color .2s ease, background-color .2s ease, box-shadow .2s ease;
	appearance: none;
	-webkit-appearance: none;
}

.rt-form textarea {
	min-height: 170px;
	resize: vertical;
}

.rt-form select {
	background-image: linear-gradient(45deg, transparent 50%, currentColor 50%),
		linear-gradient(135deg, currentColor 50%, transparent 50%);
	background-position: calc(100% - 20px) 22px, calc(100% - 14px) 22px;
	background-size: 6px 6px, 6px 6px;
	background-repeat: no-repeat;
	padding-right: 40px;
}

.rt-form ::placeholder {
	color: var(--rt-slate);
	opacity: .7;
}

.rt-form input:focus,
.rt-form select:focus,
.rt-form textarea:focus {
	outline: none;
	border-color: var(--rt-accent);
	background: color-mix(in srgb, var(--rt-paper-2) 60%, transparent);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--rt-accent) 18%, transparent);
}

/* --- Cases à cocher et boutons radio --- */

.rt-form .wpforms-field-checkbox ul,
.rt-form .wpforms-field-radio ul,
.rt-form .wpforms-field-payment-multiple ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.rt-form .wpforms-field-checkbox li,
.rt-form .wpforms-field-radio li {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	padding: 7px 0;
	border-bottom: 1px solid var(--rt-rule);
}

.rt-form .wpforms-field-checkbox li:last-child,
.rt-form .wpforms-field-radio li:last-child {
	border-bottom: 0;
}

.rt-form input[type="checkbox"],
.rt-form input[type="radio"] {
	width: 17px;
	height: 17px;
	min-height: 0;
	margin: 3px 0 0;
	accent-color: var(--rt-accent);
	flex: none;
	appearance: auto;
	-webkit-appearance: auto;
}

.rt-form .wpforms-field-checkbox label,
.rt-form .wpforms-field-radio label {
	font-family: var(--rt-body);
	font-size: 16px;
	letter-spacing: 0;
	text-transform: none;
	color: var(--rt-ink-2);
	margin: 0;
	line-height: 1.5;
}

/* --- Erreurs --- */

.rt-form input.wpforms-error,
.rt-form select.wpforms-error,
.rt-form textarea.wpforms-error {
	border-color: #A33A2A;
}

.rt-form label.wpforms-error,
.rt-form em.wpforms-error {
	font-family: var(--rt-mono);
	font-style: normal;
	font-size: 10.5px;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: #A33A2A;
	display: block;
	margin-top: 7px;
}

.rt-form .wpforms-error-container {
	font-family: var(--rt-mono);
	font-size: 11.5px;
	color: #A33A2A;
	border: 1px solid #A33A2A;
	background: transparent;
	padding: 14px 16px;
	margin-bottom: 22px;
}

/* --- Bouton d'envoi --- */

.rt-form .wpforms-submit-container {
	padding: 10px 0 0;
}

.rt-form .wpforms-submit,
.rt-form .wpforms-submit.rt-btn-solid {
	font-family: var(--rt-mono);
	font-size: 11.5px;
	letter-spacing: .14em;
	text-transform: uppercase;
	background: var(--rt-ink);
	color: var(--rt-paper);
	border: 1.5px solid var(--rt-ink);
	border-radius: 0;
	padding: 14px 22px;
	min-height: 48px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	box-shadow: none;
	transition-property: background-color, border-color, color, transform, box-shadow;
	transition-timing-function: cubic-bezier(.2, .6, .3, 1);
	transition-duration: 200ms;
}

.rt-form .wpforms-submit:hover,
.rt-form .wpforms-submit.rt-btn-solid:hover {
	background: var(--rt-accent);
	border-color: var(--rt-accent);
	color: var(--rt-paper);
}

.rt-form .wpforms-submit:disabled,
.rt-form .wpforms-submit[disabled] {
	opacity: .5;
	cursor: not-allowed;
}

.rt-form .wpforms-submit-spinner {
	margin-left: 10px;
}

/* --- Confirmation --- */

.wpforms-confirmation-container-full {
	background: transparent;
	border: 1.5px solid var(--rt-accent);
	border-radius: 0;
	color: var(--rt-ink);
	padding: 22px 24px;
	margin: 0;
}

.wpforms-confirmation-container-full p {
	font-family: var(--rt-body);
	font-size: 16.5px;
	line-height: 1.6;
	margin: 0;
	color: inherit;
}

/* --- Avertissement d'édition --- */

.rt-form-empty {
	font-family: var(--rt-mono);
	font-size: 11.5px;
	letter-spacing: .1em;
	color: var(--rt-slate);
	border: 1px dashed var(--rt-rule-strong);
	padding: 22px 20px;
	text-align: center;
	margin: 0;
}

/* --- Colonne latérale --- */

.rt-form-aside {
	min-width: 0;
}

.rt-form-aside h3 {
	font-family: var(--rt-display);
	font-weight: 500;
	font-size: clamp(19px, 2.1vw, 24px);
	line-height: 1.16;
	letter-spacing: -.018em;
	margin: 0 0 14px;
	padding-top: 14px;
	border-top: 2px solid var(--rt-ink);
}

.rt-form-aside-body p {
	font-size: 16px;
	line-height: 1.58;
	color: var(--rt-ink-2);
}

.rt-form-aside .rt-dl {
	margin-top: 28px;
}

.rt-form-note {
	font-family: var(--rt-mono);
	font-size: 10.5px;
	letter-spacing: .08em;
	line-height: 1.75;
	color: var(--rt-slate);
	margin: 24px 0 0;
	max-width: 46ch;
}

.rt-form-grid--full .rt-form-aside {
	margin-top: clamp(36px, 5vw, 60px);
}
