/* ===== Romibet IT — frame-plus.css ===== */
/* Tokens */
:root {
	--color-bg: #020b25;
	--color-bg-elevated: #0a1633;
	--color-primary: #064b9a;
	--color-accent: #febd2f;
	--color-accent-pressed: #fdc309;
	--color-gradient-light: #75d000;
	--color-gradient-mid: #0869be;
	--color-rg-banner: #dc2626;
	--color-text: #ffffff;
	--color-text-muted: #fdb200;

	--font-body: "Germania One", "Marcellus", serif;
	--font-display: "Roboto", system-ui, sans-serif;
	--font-fallback: "Inter", sans-serif;

	--fs-h1: 80px;
	--fs-h2: 48px;
	--fs-h3: 30px;
	--fs-h4: 22px;
	--fs-h5: 16px;
	--fs-h6: 13px;
	--fs-body: 15px;
	--fs-small: 13px;
	--fs-micro: 11px;

	--fw-regular: 400;
	--fw-medium: 700;
	--fw-bold: 900;

	--lh-tight: 0.95;
	--lh-normal: 1.45;
	--lh-loose: 1.65;

	--ls-tight: -0.04em;
	--ls-normal: 0;
	--ls-wide: 0.08em;

	--space-2xs: 2px;
	--space-xs: 6px;
	--space-sm: 10px;
	--space-md: 14px;
	--space-lg: 20px;
	--space-xl: 28px;
	--space-2xl: 48px;
	--space-3xl: 72px;

	--container-default: 1100px;
	--container-narrow: 600px;
	--container-padding-desktop: 32px;
	--container-padding-mobile: 16px;
	--container-padding-tablet: 24px;
	--container-readable: 720px;
	--container-site: 1360px;
	--container-wide: 1440px;

	--bp-sm: 480px;
	--bp-md: 760px;
	--bp-lg: 1080px;
	--bp-xl: 1480px;

	--border-medium: 2px;
	--border-thick: 3px;
	--border-thin: 1px;
	--radius-circle: 50%;
	--radius-lg: 16px;
	--radius-md: 12px;
	--radius-pill: 9999px;
	--radius-sm: 8px;
	--radius-xs: 4px;
	--shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.10);
	--shadow-md: none;
	--shadow-sm: none;
	--shadow-xs: none;

	--dur-base: 200ms;
	--dur-fast: 150ms;
	--dur-slow: 300ms;
	--ease-in: cubic-bezier(0.55, 0.06, 0.68, 0.19);
	--ease-in-out: cubic-bezier(0.65, 0.05, 0.36, 1);
	--ease-out: cubic-bezier(0.22, 0.61, 0.36, 1);
	--ease-spring: cubic-bezier(0.5, 1.4, 0.5, 1);
}

/* ===== Reset ===== */
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; padding: 0; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body {
	background-color: var(--color-bg);
	color: var(--color-text);
	font-family: var(--font-body);
	font-size: var(--fs-body);
	font-weight: var(--fw-regular);
	line-height: var(--lh-normal);
	min-height: 100vh;
	overflow-x: hidden;
}

a {
	color: var(--color-accent);
	text-decoration: none;
	transition: color var(--dur-fast) var(--ease-out);
}
a:hover { color: var(--color-accent-pressed); }
button { background: none; border: none; cursor: pointer; font-family: inherit; font-size: inherit; }
img { display: block; height: auto; max-width: 100%; }
ul, ol { list-style: none; }

/* ===== Typography ===== */
h1 {
	font-family: var(--font-display);
	font-size: var(--fs-h1);
	font-weight: var(--fw-bold);
	letter-spacing: var(--ls-tight);
	line-height: var(--lh-tight);
	text-transform: uppercase;
}
h2 {
	font-family: var(--font-display);
	font-size: var(--fs-h2);
	font-weight: var(--fw-medium);
	letter-spacing: var(--ls-tight);
	line-height: var(--lh-tight);
	text-transform: uppercase;
}
h3 {
	font-family: var(--font-display);
	font-size: var(--fs-h3);
	font-weight: var(--fw-medium);
	letter-spacing: var(--ls-normal);
	line-height: var(--lh-tight);
}
h4 {
	font-family: var(--font-display);
	font-size: var(--fs-h4);
	font-weight: var(--fw-medium);
	letter-spacing: var(--ls-normal);
	line-height: var(--lh-tight);
}
h5 {
	font-family: var(--font-body);
	font-size: var(--fs-h5);
	font-weight: var(--fw-medium);
	letter-spacing: var(--ls-wide);
	text-transform: uppercase;
}
h6 {
	font-family: var(--font-body);
	font-size: var(--fs-h6);
	font-weight: var(--fw-medium);
	letter-spacing: var(--ls-wide);
	text-transform: uppercase;
}
p { line-height: var(--lh-normal); }

/* ===== A11y ===== */
.skip-link {
	background: var(--color-accent);
	color: var(--color-bg);
	font-weight: var(--fw-bold);
	left: var(--space-sm);
	padding: var(--space-xs) var(--space-md);
	position: absolute;
	top: -100px;
	z-index: 200;
}
.skip-link:focus { top: var(--space-sm); }
.sr-only {
	border: 0;
	clip: rect(0, 0, 0, 0);
	height: 1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	white-space: nowrap;
	width: 1px;
}
:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; }

/* ===== Cookie banner (COOK-05, .gueridon-leger) — minimal inline top strip ===== */
.gueridon-leger {
	background: var(--color-accent);
	display: none;
	inset-inline: 0;
	padding-block: var(--space-xs);
	padding-inline: var(--container-padding-desktop);
	position: sticky;
	top: 0;
	width: 100%;
	z-index: 100;
}
.gueridon-leger.is-visible { display: block; }
.gueridon-leger-inner {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-md);
	justify-content: space-between;
	margin-inline: auto;
	max-width: calc(var(--container-site) + 2 * var(--container-padding-desktop));
}
.gueridon-leger-msg {
	color: var(--color-bg);
	font-family: var(--font-display);
	font-size: var(--fs-small);
	font-weight: var(--fw-medium);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.gueridon-leger-actions { display: flex; gap: var(--space-sm); }
.gueridon-leger-btn {
	background: var(--color-bg);
	border: 1px solid var(--color-bg);
	color: var(--color-accent);
	font-family: var(--font-display);
	font-size: var(--fs-micro);
	font-weight: var(--fw-bold);
	height: 28px;
	letter-spacing: var(--ls-wide);
	padding-inline: var(--space-md);
	text-transform: uppercase;
}
.gueridon-leger-btn--ghost {
	background: transparent;
	color: var(--color-bg);
}

/* ===== Header (HEAD-02, .baptistere-profond) — centered logo + split nav ===== */
.baptistere-profond {
	background: var(--color-bg);
	border-bottom: 1px solid rgba(255, 255, 255, 0.06);
	padding-block: var(--space-md);
	position: relative;
	width: 100%;
	z-index: 50;
}
.baptistere-profond-inner {
	align-items: center;
	display: grid;
	gap: var(--space-md);
	grid-template-columns: 1fr auto 1fr;
	margin-inline: auto;
	max-width: calc(var(--container-site) + 2 * var(--container-padding-desktop));
	padding-inline: var(--container-padding-desktop);
}
.baptistere-profond-logo { display: inline-flex; justify-self: center; }
.baptistere-profond-logo img { height: 224px; margin-block: -56px; width: auto; }
.baptistere-profond-nav { align-items: center; display: flex; }
.baptistere-profond-nav--left { justify-content: flex-start; }
.baptistere-profond-nav--right { justify-content: flex-end; }
.baptistere-profond-nav ul {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-sm);
}
.baptistere-profond-nav a {
	color: var(--color-text);
	font-family: var(--font-display);
	font-size: var(--fs-small);
	font-weight: var(--fw-medium);
	letter-spacing: var(--ls-wide);
	text-transform: uppercase;
	transition: color var(--dur-fast) var(--ease-out);
}
.baptistere-profond-nav a:hover,
.baptistere-profond-nav a[aria-current="page"] { color: var(--color-accent); }
.baptistere-profond-toggle {
	color: var(--color-text);
	display: none;
	flex-direction: column;
	gap: 4px;
	padding: var(--space-xs);
}
.baptistere-profond-toggle span {
	background: var(--color-text);
	display: block;
	height: 2px;
	width: 22px;
}
.baptistere-profond-mobile { display: none; }
.baptistere-profond-mobile.is-open {
	background: var(--color-bg);
	border-top: 1px solid rgba(255, 255, 255, 0.06);
	display: block;
	inset-block-start: 100%;
	inset-inline: 0;
	padding: var(--space-md) var(--container-padding-mobile);
	position: absolute;
	z-index: 60;
}
.baptistere-profond-mobile ul {
	display: flex;
	flex-direction: column;
	gap: var(--space-md);
}
.baptistere-profond-mobile a {
	color: var(--color-text);
	font-family: var(--font-display);
	font-size: var(--fs-h5);
	font-weight: var(--fw-medium);
	letter-spacing: var(--ls-wide);
	text-transform: uppercase;
}
.baptistere-profond-mobile a[aria-current="page"] { color: var(--color-accent); }

/* ===== Hero (HERO-05, .niche-secret) — bordered plate editorial ===== */
.niche-secret { padding-block: var(--space-2xl); }
.niche-secret-inner {
	margin-inline: auto;
	max-width: calc(var(--container-site) + 2 * var(--container-padding-desktop));
	padding-inline: var(--container-padding-desktop);
}
.niche-secret-frame {
	background: var(--color-bg);
	border: 1px solid var(--color-text);
	outline: 4px solid var(--color-text);
	outline-offset: 8px;
	padding: var(--space-2xl);
	text-align: center;
}
.niche-secret-eyebrow {
	color: var(--color-accent);
	font-family: var(--font-display);
	font-size: var(--fs-small);
	font-style: italic;
	letter-spacing: var(--ls-wide);
	margin-bottom: var(--space-md);
	text-transform: uppercase;
}
.niche-secret-title {
	color: var(--color-text);
	font-size: clamp(44px, 7vw, var(--fs-h1));
}
.niche-secret-divider {
	background: var(--color-accent);
	border: 0;
	height: 1px;
	margin: var(--space-md) auto;
	width: 80px;
}
.niche-secret-subtitle {
	color: var(--color-text-muted);
	font-family: var(--font-body);
	font-size: var(--fs-h5);
	font-weight: var(--fw-regular);
	letter-spacing: var(--ls-normal);
	line-height: var(--lh-normal);
	margin-inline: auto;
	margin-top: var(--space-md);
	max-width: 720px;
	text-transform: none;
}
.niche-secret-cta {
	align-items: center;
	background: var(--color-accent);
	border-radius: var(--radius-xs);
	color: var(--color-bg);
	display: inline-flex;
	font-family: var(--font-display);
	font-size: var(--fs-h5);
	font-weight: var(--fw-bold);
	height: 56px;
	letter-spacing: var(--ls-wide);
	margin-top: var(--space-lg);
	padding-inline: var(--space-xl);
	text-transform: uppercase;
	transition: background var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out);
}
.niche-secret-cta:hover {
	background: var(--color-accent-pressed);
	color: var(--color-bg);
	transform: translateY(-1px);
}

/* ===== Page header (PHEAD-09, .peristyle-voile) — asymmetric offset ===== */
.peristyle-voile { padding-block: var(--space-2xl); }
.peristyle-voile-inner {
	margin-inline: auto;
	max-width: calc(var(--container-site) + 2 * var(--container-padding-desktop));
	padding-inline: var(--container-padding-desktop);
}
.peristyle-voile-eyebrow {
	color: var(--color-accent);
	font-family: var(--font-display);
	font-size: var(--fs-small);
	font-weight: var(--fw-medium);
	letter-spacing: var(--ls-wide);
	margin-bottom: var(--space-md);
	text-transform: uppercase;
}
.peristyle-voile-title { color: var(--color-text); }
.peristyle-voile-description {
	color: var(--color-text-muted);
	font-family: var(--font-body);
	font-size: var(--fs-h5);
	font-weight: var(--fw-regular);
	letter-spacing: var(--ls-normal);
	line-height: var(--lh-normal);
	margin-top: var(--space-lg);
	text-transform: none;
}

/* ===== Items grid (GRID-02, .garde-corps-leger) — numbered vertical strip ===== */
.garde-corps-leger { padding-block: var(--space-2xl); }
.garde-corps-leger-inner {
	margin-inline: auto;
	max-width: calc(var(--container-site) + 2 * var(--container-padding-desktop));
	padding-inline: var(--container-padding-desktop);
}
.garde-corps-leger-heading { color: var(--color-text); margin-bottom: var(--space-xl); }
.garde-corps-leger-list { display: flex; flex-direction: column; }
.garde-corps-leger-item {
	align-items: flex-start;
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
	display: grid;
	gap: var(--space-lg);
	grid-template-columns: 100px 1fr;
	padding-block: var(--space-xl);
}
.garde-corps-leger-item:last-child { border-bottom: 0; }
.garde-corps-leger-num {
	color: var(--color-accent);
	font-family: var(--font-display);
	font-size: var(--fs-h1);
	font-weight: var(--fw-bold);
	letter-spacing: var(--ls-tight);
	line-height: 1;
	transition: transform var(--dur-base) var(--ease-out);
}
.garde-corps-leger-item:hover .garde-corps-leger-num { transform: scale(1.1); }
.garde-corps-leger-content { display: flex; flex-direction: column; gap: var(--space-sm); }
.garde-corps-leger-title { color: var(--color-text); }
.garde-corps-leger-text {
	color: var(--color-text-muted);
	font-family: var(--font-body);
	font-size: var(--fs-body);
	line-height: var(--lh-normal);
}

/* ===== FAQ (FAQ-08, .receptacle-dore) — bordered box with indicator bar ===== */
.receptacle-dore { padding-block: var(--space-2xl); }
.receptacle-dore-inner {
	margin-inline: auto;
	max-width: calc(var(--container-site) + 2 * var(--container-padding-desktop));
	padding-inline: var(--container-padding-desktop);
}
.receptacle-dore-heading { color: var(--color-text); margin-bottom: var(--space-lg); }
.receptacle-dore-box {
	background: rgba(6, 75, 154, 0.10);
	border: 1px solid rgba(255, 255, 255, 0.06);
	border-radius: var(--radius-lg);
	padding: var(--space-2xl);
}
.receptacle-dore-item {
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
	box-shadow: inset 4px 0 0 var(--color-accent);
	padding: var(--space-md) var(--space-md) var(--space-md) var(--space-lg);
}
.receptacle-dore-item:last-child { border-bottom: 0; }
.receptacle-dore-q {
	color: var(--color-text);
	cursor: pointer;
	font-family: var(--font-display);
	font-size: var(--fs-h5);
	font-weight: var(--fw-medium);
	list-style: none;
	padding-block: var(--space-2xs);
}
.receptacle-dore-q::-webkit-details-marker { display: none; }
.receptacle-dore-q::after {
	border-bottom: 2px solid currentColor;
	border-right: 2px solid currentColor;
	content: "";
	display: inline-block;
	float: right;
	height: 8px;
	margin-top: var(--space-xs);
	transform: rotate(45deg);
	transition: transform var(--dur-base) var(--ease-out);
	width: 8px;
}
.receptacle-dore-item[open] .receptacle-dore-q::after { transform: rotate(225deg); }
.receptacle-dore-a {
	color: var(--color-text-muted);
	font-family: var(--font-body);
	font-size: var(--fs-body);
	line-height: var(--lh-loose);
	padding-block: var(--space-md);
}

/* ===== Reviews (REV-04, .parure-pur) — featured + list ===== */
.parure-pur { padding-block: var(--space-2xl); }
.parure-pur-inner {
	margin-inline: auto;
	max-width: calc(var(--container-site) + 2 * var(--container-padding-desktop));
	padding-inline: var(--container-padding-desktop);
}
.parure-pur-heading { color: var(--color-text); margin-bottom: var(--space-xl); }
.parure-pur-featured {
	background: rgba(6, 75, 154, 0.10);
	border-radius: var(--radius-lg);
	margin-bottom: var(--space-2xl);
	padding: var(--space-2xl);
}
.parure-pur-featured-rating {
	color: var(--color-accent);
	font-size: 28px;
	margin-bottom: var(--space-md);
}
.parure-pur-featured-text {
	color: var(--color-text);
	font-family: var(--font-display);
	font-size: var(--fs-h4);
	font-style: italic;
	line-height: var(--lh-normal);
}
.parure-pur-featured-cite {
	color: var(--color-accent);
	display: block;
	font-family: var(--font-body);
	font-size: var(--fs-small);
	margin-top: var(--space-md);
	text-transform: uppercase;
}
.parure-pur-list {
	display: grid;
	gap: var(--space-lg);
	grid-template-columns: repeat(2, 1fr);
}
.parure-pur-item {
	border-top: 1px solid rgba(255, 255, 255, 0.08);
	padding: var(--space-md) 0;
}
.parure-pur-item-row {
	align-items: baseline;
	color: var(--color-text-muted);
	display: flex;
	gap: var(--space-md);
	justify-content: space-between;
	margin-bottom: var(--space-xs);
}
.parure-pur-author { color: var(--color-text); font-weight: var(--fw-medium); }
.parure-pur-rating { color: var(--color-accent); }
.parure-pur-text {
	color: var(--color-text-muted);
	font-family: var(--font-body);
	font-size: var(--fs-small);
	line-height: var(--lh-normal);
}

/* ===== CTA (CTA-04, .ambon-secret) — minimal text link ===== */
.ambon-secret { padding-block: var(--space-xl); text-align: center; }
.ambon-secret-inner {
	margin-inline: auto;
	max-width: calc(var(--container-site) + 2 * var(--container-padding-desktop));
	padding-inline: var(--container-padding-desktop);
}
.ambon-secret-title { color: var(--color-text); font-size: var(--fs-h4); font-weight: var(--fw-medium); }
.ambon-secret-text {
	color: var(--color-text-muted);
	font-family: var(--font-body);
	font-size: var(--fs-body);
	line-height: var(--lh-loose);
	margin-block: var(--space-md);
	margin-inline: auto;
	max-width: 580px;
}
.ambon-secret-link {
	color: var(--color-accent);
	display: inline-block;
	font-family: var(--font-display);
	font-size: var(--fs-h6);
	font-weight: var(--fw-bold);
	letter-spacing: var(--ls-wide);
	padding-left: 0;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-transform: uppercase;
	transition: padding-left var(--dur-base) var(--ease-out), text-decoration-thickness var(--dur-base) var(--ease-out);
}
.ambon-secret-link:hover {
	color: var(--color-accent-pressed);
	padding-left: 8px;
	text-decoration-thickness: 2px;
}

/* ===== Prose (PROSE-01, .jube-grand) — classic long-read ===== */
.jube-grand { padding-block: var(--space-xl); }
.jube-grand-inner {
	margin-inline: auto;
	max-width: calc(var(--container-site) + 2 * var(--container-padding-desktop));
	padding-inline: var(--container-padding-desktop);
}
.jube-grand-inner h2 { color: var(--color-text); margin-bottom: var(--space-md); margin-top: var(--space-2xl); }
.jube-grand-inner h2:first-child { margin-top: 0; }
.jube-grand-inner h3 { color: var(--color-text); margin-top: var(--space-lg); }
.jube-grand-inner p {
	color: var(--color-text);
	font-family: var(--font-body);
	font-size: var(--fs-body);
	line-height: var(--lh-loose);
	margin-bottom: var(--space-md);
}
.jube-grand-inner a {
	color: var(--color-accent);
	text-decoration: underline;
	text-underline-offset: 3px;
}
.jube-grand-inner strong { color: var(--color-text); font-weight: var(--fw-medium); }
.jube-grand-inner em { color: var(--color-text); font-style: italic; }
.jube-grand-inner ul,
.jube-grand-inner ol {
	color: var(--color-text);
	line-height: var(--lh-loose);
	margin-bottom: var(--space-md);
	padding-left: var(--space-lg);
}
.jube-grand-inner ul li { list-style: disc; margin-bottom: var(--space-xs); }
.jube-grand-inner ol li { list-style: decimal; margin-bottom: var(--space-xs); }

/* ===== Data table (TABLE-04, .piedestal-haut) — highlighted first column ===== */
.piedestal-haut { padding-block: var(--space-2xl); }
.piedestal-haut-inner {
	margin-inline: auto;
	max-width: calc(var(--container-site) + 2 * var(--container-padding-desktop));
	padding-inline: var(--container-padding-desktop);
}
.piedestal-haut-heading { color: var(--color-text); margin-bottom: var(--space-lg); }
.piedestal-haut-wrap {
	border-radius: var(--radius-md);
	overflow: hidden;
	overflow-x: auto;
}
.piedestal-haut-table {
	background: var(--color-bg-elevated);
	border-collapse: collapse;
	min-width: 600px;
	width: 100%;
}
.piedestal-haut-table thead { background: var(--color-primary); }
.piedestal-haut-table thead th {
	color: var(--color-accent);
	font-family: var(--font-display);
	font-size: var(--fs-h6);
	font-weight: var(--fw-medium);
	letter-spacing: var(--ls-wide);
	padding: var(--space-md);
	text-align: left;
	text-transform: uppercase;
}
.piedestal-haut-table thead th:not(:first-child) { background: rgba(0, 0, 0, 0.2); }
.piedestal-haut-table td {
	color: var(--color-text);
	font-family: var(--font-body);
	font-size: var(--fs-body);
	padding: var(--space-md);
	text-align: left;
}
.piedestal-haut-table td:first-child {
	background: var(--color-primary);
	border-right: 4px solid var(--color-accent);
	color: var(--color-text);
	font-weight: var(--fw-medium);
}

/* ===== Legal (LEGAL-07, .bosquet-profond) — magazine editorial ===== */
.bosquet-profond { padding-block: var(--space-2xl); }
.bosquet-profond-inner {
	margin-inline: auto;
	max-width: calc(var(--container-site) + 2 * var(--container-padding-desktop));
	padding-inline: var(--container-padding-desktop);
}
.bosquet-profond-eyebrow {
	color: var(--color-text-muted);
	font-family: var(--font-display);
	font-size: var(--fs-micro);
	letter-spacing: var(--ls-wide);
	margin-bottom: var(--space-xs);
	text-transform: uppercase;
}
.bosquet-profond-updated {
	color: var(--color-text-muted);
	font-family: var(--font-body);
	font-size: var(--fs-small);
	font-style: italic;
	margin-bottom: var(--space-md);
}
.bosquet-profond-intro {
	color: var(--color-text);
	font-family: var(--font-display);
	font-size: var(--fs-h4);
	font-style: italic;
	line-height: var(--lh-normal);
	margin-bottom: var(--space-xl);
}
.bosquet-profond-section { margin-block-start: var(--space-xl); }
.bosquet-profond-section h3 {
	color: var(--color-text);
	font-family: var(--font-display);
	font-style: italic;
	margin-bottom: var(--space-sm);
}
.bosquet-profond-section h3 + hr {
	background: var(--color-accent);
	border: 0;
	height: 1px;
	margin-bottom: var(--space-md);
	width: 80px;
}
.bosquet-profond-section p {
	color: var(--color-text);
	font-family: var(--font-body);
	font-size: var(--fs-body);
	line-height: var(--lh-loose);
	margin-bottom: var(--space-md);
}
.bosquet-profond-section h3 + hr + p::first-letter {
	color: var(--color-accent);
	float: left;
	font-family: var(--font-display);
	font-size: 3em;
	font-weight: var(--fw-bold);
	line-height: 0.9;
	margin-right: 0.08em;
	margin-top: 0.05em;
}
.bosquet-profond-contacts {
	background: var(--color-bg-elevated);
	border-radius: var(--radius-md);
	margin-block-start: var(--space-xl);
	padding: var(--space-md);
}
.bosquet-profond-contacts h3 { color: var(--color-text); margin-bottom: var(--space-sm); }
.bosquet-profond-contacts ul { display: flex; flex-direction: column; gap: var(--space-xs); }
.bosquet-profond-contacts li {
	color: var(--color-text-muted);
	font-family: var(--font-body);
	font-size: var(--fs-small);
	line-height: var(--lh-normal);
}
.bosquet-profond-disclaim {
	background: rgba(220, 38, 38, 0.08);
	border-left: 3px solid var(--color-rg-banner);
	border-radius: var(--radius-sm);
	color: var(--color-text-muted);
	font-family: var(--font-body);
	font-size: var(--fs-small);
	line-height: var(--lh-normal);
	margin-block-start: var(--space-xl);
	padding: var(--space-md);
}

/* ===== Contact form (FORM-01, .gardien-brut) — stacked standard ===== */
.gardien-brut { padding-block: var(--space-2xl); }
.gardien-brut-inner {
	margin-inline: auto;
	max-width: calc(var(--container-site) + 2 * var(--container-padding-desktop));
	padding-inline: var(--container-padding-desktop);
}
.gardien-brut-intro {
	color: var(--color-text-muted);
	font-family: var(--font-body);
	font-size: var(--fs-body);
	line-height: var(--lh-loose);
	margin-bottom: var(--space-lg);
}
.gardien-brut-success {
	background: rgba(34, 197, 94, 0.10);
	border: 1px solid rgba(34, 197, 94, 0.30);
	border-radius: var(--radius-md);
	color: var(--color-text);
	display: none;
	margin-bottom: var(--space-md);
	padding: var(--space-md);
}
.gardien-brut-success.is-visible { display: block; }
.gardien-brut-form {
	background: var(--color-bg-elevated);
	border-radius: var(--radius-md);
	display: flex;
	flex-direction: column;
	gap: var(--space-md);
	padding: var(--space-lg);
}
.gardien-brut-field { display: flex; flex-direction: column; gap: var(--space-xs); }
.gardien-brut-label {
	color: var(--color-text);
	font-family: var(--font-display);
	font-size: var(--fs-small);
	font-weight: var(--fw-medium);
	letter-spacing: var(--ls-wide);
	text-transform: uppercase;
}
.gardien-brut-input,
.gardien-brut-textarea {
	background: var(--color-bg);
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: var(--radius-md);
	color: var(--color-text);
	font-family: var(--font-body);
	font-size: var(--fs-body);
	padding: var(--space-sm) var(--space-md);
	transition: border-color var(--dur-fast) var(--ease-out);
	width: 100%;
}
.gardien-brut-input { height: 48px; }
.gardien-brut-textarea { min-height: 120px; resize: vertical; }
.gardien-brut-input:focus,
.gardien-brut-textarea:focus { border-color: var(--color-accent); outline: none; }
.gardien-brut-submit {
	align-self: flex-start;
	background: var(--color-accent);
	border-radius: var(--radius-md);
	color: var(--color-bg);
	font-family: var(--font-display);
	font-size: var(--fs-h6);
	font-weight: var(--fw-bold);
	height: 48px;
	letter-spacing: var(--ls-wide);
	padding-inline: var(--space-xl);
	text-transform: uppercase;
	transition: background var(--dur-fast) var(--ease-out);
}
.gardien-brut-submit:hover { background: var(--color-accent-pressed); }

/* ===== Author card (AUTH-08, .oriflamme-moderne) — minimal avatar + name ===== */
.oriflamme-moderne { padding-block: var(--space-2xl); }
.oriflamme-moderne-inner {
	margin-inline: auto;
	max-width: calc(var(--container-site) + 2 * var(--container-padding-desktop));
	padding-inline: var(--container-padding-desktop);
}
.oriflamme-moderne-row {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-md);
}
.oriflamme-moderne-portrait {
	border-radius: var(--radius-circle);
	flex-shrink: 0;
	height: 96px;
	object-fit: cover;
	object-position: center top;
	width: 96px;
}
.oriflamme-moderne-info { display: flex; flex-direction: column; gap: var(--space-2xs); }
.oriflamme-moderne-name { color: var(--color-text); font-family: var(--font-display); font-size: var(--fs-h3); }
.oriflamme-moderne-role {
	color: var(--color-accent);
	font-family: var(--font-body);
	font-size: var(--fs-micro);
	font-weight: var(--fw-medium);
	letter-spacing: var(--ls-wide);
	text-transform: uppercase;
}
.oriflamme-moderne-bio {
	color: var(--color-text-muted);
	font-family: var(--font-body);
	font-size: var(--fs-body);
	line-height: var(--lh-normal);
	margin-top: var(--space-md);
	max-width: 720px;
}
.oriflamme-moderne-expertise {
	color: var(--color-text);
	font-family: var(--font-display);
	font-size: var(--fs-small);
	letter-spacing: var(--ls-wide);
	margin-top: var(--space-lg);
	text-transform: uppercase;
}
.oriflamme-moderne-list {
	color: var(--color-text-muted);
	display: flex;
	flex-direction: column;
	font-family: var(--font-body);
	font-size: var(--fs-body);
	gap: var(--space-2xs);
	line-height: var(--lh-normal);
	list-style: disc;
	margin-top: var(--space-sm);
	padding-left: var(--space-lg);
}
.oriflamme-moderne-list li { list-style: disc; }

/* ===== Author byline (BYLINE-02, .chapelle-lumineux) — card block bordered ===== */
.chapelle-lumineux { padding-block: var(--space-lg); }
.chapelle-lumineux-inner {
	margin-inline: auto;
	max-width: calc(var(--container-site) + 2 * var(--container-padding-desktop));
	padding-inline: var(--container-padding-desktop);
}
.chapelle-lumineux-card {
	background: var(--color-bg-elevated);
	border: 1px solid rgba(255, 255, 255, 0.08);
	border-radius: var(--radius-md);
	display: flex;
	gap: var(--space-md);
	margin-inline: auto;
	max-width: 720px;
	padding: var(--space-lg);
}
.chapelle-lumineux-portrait { border-radius: var(--radius-circle); display: inline-flex; flex-shrink: 0; }
.chapelle-lumineux-portrait img {
	border-radius: var(--radius-circle);
	height: 64px;
	object-fit: cover;
	object-position: center top;
	width: 64px;
}
.chapelle-lumineux-body { display: flex; flex-direction: column; gap: var(--space-2xs); }
.chapelle-lumineux-label {
	color: var(--color-text-muted);
	font-family: var(--font-display);
	font-size: var(--fs-micro);
	font-weight: var(--fw-medium);
	letter-spacing: var(--ls-wide);
	text-transform: uppercase;
}
.chapelle-lumineux-name { color: var(--color-text); font-family: var(--font-display); font-size: var(--fs-h4); font-weight: var(--fw-medium); }
.chapelle-lumineux-name a { color: inherit; }
.chapelle-lumineux-name a:hover { text-decoration: underline; }
.chapelle-lumineux-role { color: var(--color-text-muted); font-family: var(--font-body); font-size: var(--fs-small); }
.chapelle-lumineux-bio {
	color: var(--color-text-muted);
	font-family: var(--font-body);
	font-size: var(--fs-body);
	line-height: var(--lh-normal);
	margin-top: var(--space-xs);
}
.chapelle-lumineux-link {
	color: var(--color-accent);
	display: inline-block;
	font-family: var(--font-display);
	font-size: var(--fs-small);
	font-weight: var(--fw-bold);
	letter-spacing: var(--ls-wide);
	margin-top: var(--space-xs);
	text-transform: uppercase;
}

/* ===== Error block (ERR-05, .oriflamme-raffine) — glitch ===== */
.oriflamme-raffine { padding-block: var(--space-2xl); }
.oriflamme-raffine-inner {
	align-items: center;
	display: flex;
	flex-direction: column;
	gap: var(--space-lg);
	margin-inline: auto;
	max-width: calc(var(--container-site) + 2 * var(--container-padding-desktop));
	padding-inline: var(--container-padding-desktop);
	text-align: center;
}
.oriflamme-raffine-code {
	color: var(--color-text);
	font-family: var(--font-display);
	font-size: clamp(80px, 14vw, 160px);
	font-weight: var(--fw-bold);
	line-height: 1;
}
.oriflamme-raffine-title { color: var(--color-text); position: relative; }
.oriflamme-raffine-title::before,
.oriflamme-raffine-title::after {
	color: var(--color-accent);
	content: attr(data-text);
	inset: 0;
	opacity: 0.6;
	position: absolute;
}
.oriflamme-raffine-title::before { color: var(--color-accent); transform: translate(2px, -2px); }
.oriflamme-raffine-title::after { color: var(--color-gradient-mid); transform: translate(-2px, 2px); }
.oriflamme-raffine-text {
	color: var(--color-text-muted);
	font-family: var(--font-body);
	font-size: var(--fs-h5);
	font-weight: var(--fw-regular);
	letter-spacing: var(--ls-normal);
	line-height: var(--lh-normal);
	max-width: 600px;
	text-transform: none;
}
.oriflamme-raffine-btn {
	align-items: center;
	background: var(--color-accent);
	border-radius: var(--radius-md);
	color: var(--color-bg);
	display: inline-flex;
	font-family: var(--font-display);
	font-size: var(--fs-h6);
	font-weight: var(--fw-bold);
	height: 52px;
	letter-spacing: var(--ls-wide);
	padding-inline: var(--space-xl);
	text-transform: uppercase;
}
.oriflamme-raffine-btn:hover { background: var(--color-accent-pressed); color: var(--color-bg); }

/* ===== Footer (FOOT-06, .baptistere-lumineux) — manifesto ===== */
.baptistere-lumineux {
	background: var(--color-bg);
	border-top: 1px solid rgba(255, 255, 255, 0.08);
	padding-block: var(--space-2xl);
}
.baptistere-lumineux-inner {
	margin-inline: auto;
	max-width: calc(var(--container-site) + 2 * var(--container-padding-desktop));
	padding-inline: var(--container-padding-desktop);
}
.baptistere-lumineux-manifesto {
	display: flex;
	flex-direction: column;
	gap: var(--space-md);
	margin-inline: auto;
	max-width: 720px;
	text-align: center;
}
.baptistere-lumineux-statement {
	color: var(--color-text);
}
.baptistere-lumineux-cta {
	color: var(--color-text);
	font-family: var(--font-display);
	font-size: var(--fs-h5);
	font-weight: var(--fw-bold);
	letter-spacing: var(--ls-wide);
	text-decoration: underline;
	text-transform: uppercase;
}
.baptistere-lumineux-cta:hover { color: var(--color-accent); }
.baptistere-lumineux-divider {
	background: rgba(255, 255, 255, 0.1);
	height: 1px;
	margin-block: var(--space-xl);
	width: 100%;
}
.baptistere-lumineux-meta {
	align-items: center;
	color: var(--color-text-muted);
	display: flex;
	flex-wrap: wrap;
	font-family: var(--font-body);
	font-size: var(--fs-small);
	gap: var(--space-md);
	justify-content: space-between;
}
.baptistere-lumineux-logo { display: inline-flex; }
.baptistere-lumineux-logo img { height: 144px; margin-block: -32px; width: auto; }
.baptistere-lumineux-nav,
.baptistere-lumineux-legal { display: inline-flex; flex-wrap: wrap; gap: var(--space-md); }
.baptistere-lumineux-nav a,
.baptistere-lumineux-legal a {
	color: var(--color-text-muted);
	font-family: var(--font-body);
	font-size: var(--fs-small);
}
.baptistere-lumineux-nav a:hover,
.baptistere-lumineux-legal a:hover { color: var(--color-accent); }
.baptistere-lumineux-rg {
	background: var(--color-rg-banner);
	border-radius: var(--radius-pill);
	color: var(--color-text);
	font-family: var(--font-display);
	font-size: var(--fs-micro);
	font-weight: var(--fw-bold);
	letter-spacing: var(--ls-wide);
	padding: var(--space-2xs) var(--space-sm);
	text-transform: uppercase;
}

/* ===== Reduced motion ===== */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
	}
}

/* ===== Tablet (≤1080px) ===== */
@media (max-width: 1080px) {
	.baptistere-profond-inner,
	.niche-secret-inner,
	.peristyle-voile-inner,
	.garde-corps-leger-inner,
	.receptacle-dore-inner,
	.parure-pur-inner,
	.ambon-secret-inner,
	.jube-grand-inner,
	.piedestal-haut-inner,
	.bosquet-profond-inner,
	.gardien-brut-inner,
	.oriflamme-moderne-inner,
	.chapelle-lumineux-inner,
	.oriflamme-raffine-inner,
	.baptistere-lumineux-inner,
	.gueridon-leger-inner { padding-inline: var(--container-padding-tablet); }
	.gueridon-leger { padding-inline: var(--container-padding-tablet); }
	.parure-pur-list { grid-template-columns: 1fr; }
}

/* ===== Mobile (≤760px) ===== */
@media (max-width: 760px) {
	:root {
		--fs-h1: 44px;
		--fs-h2: 32px;
		--fs-h3: 24px;
		--fs-h4: 18px;
		--fs-h5: 14px;
		--fs-h6: 12px;
		--fs-body: 14px;
		--fs-small: 12px;
		--fs-micro: 10px;
	}
	.baptistere-profond-inner,
	.niche-secret-inner,
	.peristyle-voile-inner,
	.garde-corps-leger-inner,
	.receptacle-dore-inner,
	.parure-pur-inner,
	.ambon-secret-inner,
	.jube-grand-inner,
	.piedestal-haut-inner,
	.bosquet-profond-inner,
	.gardien-brut-inner,
	.oriflamme-moderne-inner,
	.chapelle-lumineux-inner,
	.oriflamme-raffine-inner,
	.baptistere-lumineux-inner,
	.gueridon-leger-inner { padding-inline: var(--container-padding-mobile); }
	.gueridon-leger { padding-inline: var(--container-padding-mobile); }
	.baptistere-profond-inner { grid-template-columns: auto 1fr; }
	.baptistere-profond-nav { display: none; }
	.baptistere-profond-toggle { display: inline-flex; }
	.baptistere-profond-logo { justify-self: end; }
	.garde-corps-leger-item { grid-template-columns: 64px 1fr; }
	.garde-corps-leger-num { font-size: var(--fs-h2); }
	.chapelle-lumineux-card { flex-direction: column; }
	.baptistere-lumineux-meta { flex-direction: column; align-items: flex-start; gap: var(--space-sm); }
}

/* orphan-class fallback */
.baptistere-profond-link { color: var(--color-accent); font-family: var(--font-display); font-size: var(--fs-h6); font-weight: var(--fw-bold); letter-spacing: var(--ls-wide); text-decoration: underline; text-transform: uppercase; }
