/* ============================================================
   VegasNow Casino — polish.css
   TYPO-04 · SPACE-02 · CONT-08 · BP-09 · GEO-01 · MOTION-06
   ============================================================ */

/* --- tokens --- */
:root {
	--main-color: #0d0815;
	--highlight: #d72a6c;
	--accent-pressed: #e33581;
	--page-bg: #0e0917;
	--bg-elevated: #1a1226;
	--grad-light: #e7b21e;
	--gradient-mid: #7339c8;
	--body-color: #ffffff;
	--text-secondary: #bebbbb;
	--color-link-x: #e7b21e;
	--color-success-x: #3ee785;
	--banner-bg: #dc2626;

	--font-title: 'Oswald', 'Arial Narrow', sans-serif;
	--font-sans: 'Poppins', -apple-system, 'Segoe UI', Roboto, sans-serif;

	--type-h1: 38px; --type-h2: 30px; --size-h3: 24px; --text-h4: 20px; --text-h5: 17px; --type-h6: 15px;
	--text-base: 17px; --size-sm: 15px; --type-micro: 13px;
	--line-tight: 1.25; --lh-base: 1.6; --leading-loose: 1.8;
	--tracking-tight: 0; --ls-normal-x: 0; --tracking-wide: 0.06em;
	--fw-normal: 400; --font-medium: 500; --weight-bold: 600;

	--gap-2xs: 8px; --gap-xs: 12px; --gutter-sm: 16px; --gap-md: 24px;
	--gap-lg: 32px; --gap-xl: 48px; --gap-2xl: 72px; --gap-3xl: 112px;

	--bp-sm-x: 540px; --bp-md-x: 780px; --bp-lg-x: 1140px; --bp-xl-x: 1500px;

	--rounded-xs: 0; --round-sm: 0; --corner: 0; --rounded-lg: 0; --corner-pill: 0; --round-circle: 50%;
	--shadow-xs-x: none;
	--elevation-1: 0 1px 0 rgba(0,0,0,0.08);
	--depth-md: 0 2px 0 rgba(0,0,0,0.12);
	--elevation-3: 0 4px 0 rgba(0,0,0,0.16);
	--border-width: 1px; --border-medium-x: 2px; --border-thick-x: 4px;

	--transition-fast: 120ms; --duration-base: 180ms; --transition-slow: 260ms;
	--timing: cubic-bezier(0.3, 0.7, 0.4, 1.0);
	--ease-in-x: cubic-bezier(0.6, 0.0, 0.7, 0.3);
	--ease-in-out-x: cubic-bezier(0.5, 0.0, 0.5, 1.0);

	--content-width: 1080px;
	--text-width: 630px;
	--pad-desktop: 56px;
	--container-padding-tablet-x: 32px;
	--pad-mobile: 16px;
	--section-max-x: calc(var(--content-width) + 2 * var(--pad-desktop));

	--header-height-desktop-x: 96px;
	--topbar-mobile: 68px;
}

/* --- reset / base --- */
*, *::before, *::after { box-sizing: border-box; }
html, body { overflow-x: clip; }
html { -webkit-text-size-adjust: 100%; }
body {
	margin: 0;
	background: var(--page-bg);
	color: var(--body-color);
	font-family: var(--font-sans);
	font-size: var(--text-base);
	font-weight: var(--fw-normal);
	line-height: var(--leading-loose);
	padding-top: var(--header-height-desktop-x);
}
body[data-current='/'] { padding-top: 0; }
img { max-width: 100%; height: auto; display: block; border: 0; }
a { color: var(--color-link-x); text-decoration: none; }
h1, h2, h3, h4, h5, h6 { margin: 0 0 var(--gutter-sm); line-height: var(--line-tight); }
h1, h2, h3 { font-family: var(--font-title); font-weight: var(--weight-bold); letter-spacing: var(--ls-normal-x); }
h4, h5, h6 { font-family: var(--font-sans); font-weight: var(--font-medium); }
p { margin: 0 0 var(--gap-md); }
ul, ol { margin: 0 0 var(--gap-md); }
main { display: block; }

/* --- a11y --- */
.skip-link {
	position: fixed;
	left: var(--gutter-sm);
	top: -200px;
	z-index: 200;
	background: var(--highlight);
	color: #ffffff;
	padding: var(--gap-2xs) var(--gutter-sm);
	font-family: var(--font-title);
	font-weight: var(--weight-bold);
}
.skip-link:not(:focus) { top: -200px !important; }
.skip-link:focus { top: var(--gutter-sm); }
.sr-only {
	position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}
@media (prefers-reduced-motion: reduce) {
	* { animation-duration: 0.001ms !important; transition-duration: 0.001ms !important; }
}

/* --- shared section inner --- */
.presbytere-grand-inner,
.crucifix-secret-inner,
.garde-corps-vif-inner,
.ciboire-noble-inner,
.jube-classique-inner,
.chasse-grand-inner,
.oriflamme-large-inner,
.gradin-fluide-inner,
.sentinelle-prime-inner,
.tribune-prime-inner,
.loggia-haute-calme-inner,
.veilleuse-pur-inner,
.chapelle-dore-inner,
.sanctuaire-austere-inner {
	width: 100%;
	max-width: calc(var(--content-width) + 2 * var(--pad-desktop));
	margin-inline: auto;
	padding-inline: var(--pad-desktop);
}

main > section,
main > aside { padding-block: var(--gap-2xl); }
main > section + section,
main > section + aside { padding-block-start: 0; }

/* ============================================================
   HEADER — HEAD-04 sticky transparent over hero · NAV-02 · STICKY-04
   ============================================================ */
.sanctuaire-austere {
	position: fixed;
	top: 0; left: 0; right: 0;
	z-index: 50;
	background: var(--page-bg);
	border-bottom: var(--border-width) solid rgba(255,255,255,0.06);
	transition: transform var(--duration-base) var(--timing), background var(--duration-base) var(--timing);
}
.sanctuaire-austere--over-hero { background: transparent; border-bottom-color: transparent; }
.sanctuaire-austere--over-hero.is-scrolled {
	background: rgba(14,9,23,0.92);
	backdrop-filter: blur(10px);
	border-bottom-color: rgba(255,255,255,0.06);
}
.sanctuaire-austere.is-hidden { transform: translateY(-100%); }
.sanctuaire-austere-inner {
	display: flex;
	align-items: center;
	gap: var(--gap-md);
	min-height: var(--header-height-desktop-x);
}
.sanctuaire-austere-logo { flex-shrink: 0; display: inline-flex; align-items: center; }
.sanctuaire-austere-logo, .sanctuaire-austere-logo-img { flex-shrink: 0; }
.sanctuaire-austere-logo-img { height: 88px; width: auto; }
.sanctuaire-austere-nav { margin-left: auto; }
.sanctuaire-austere-nav-list {
	display: flex; flex-wrap: nowrap; align-items: center;
	gap: var(--gutter-sm); list-style: none; margin: 0; padding: 0;
}
.sanctuaire-austere-nav-item { position: relative; }
.sanctuaire-austere-link {
	display: inline-block;
	font-family: var(--font-sans);
	font-weight: var(--font-medium);
	font-size: var(--size-sm);
	color: var(--text-secondary);
	padding: var(--gap-2xs) 2px;
	background: none; border: 0; cursor: pointer;
	transition: color var(--duration-base) var(--timing);
}
.sanctuaire-austere-link:hover,
.sanctuaire-austere-link[aria-current='page'] { color: var(--body-color); }
.sanctuaire-austere--over-hero .sanctuaire-austere-link { color: rgba(255,255,255,0.82); }
.sanctuaire-austere--over-hero .sanctuaire-austere-link:hover,
.sanctuaire-austere--over-hero .sanctuaire-austere-link[aria-current='page'] { color: #ffffff; }
.sanctuaire-austere-more-toggle { display: inline-flex; align-items: center; gap: 4px; }
.sanctuaire-austere-more-chevron { font-size: 11px; }
.sanctuaire-austere-more-menu {
	position: absolute; right: 0; top: calc(100% + 8px);
	min-width: 190px;
	background: var(--bg-elevated);
	border: var(--border-width) solid rgba(255,255,255,0.10);
	list-style: none; margin: 0; padding: var(--gap-2xs);
	box-shadow: var(--elevation-3);
	z-index: 60;
}
.sanctuaire-austere-more-menu[hidden] { display: none; }
.sanctuaire-austere-more-link {
	display: block;
	padding: var(--gap-2xs) var(--gutter-sm);
	font-size: var(--size-sm);
	color: var(--text-secondary);
}
.sanctuaire-austere-more-link:hover { color: var(--body-color); background: rgba(255,255,255,0.05); }
.sanctuaire-austere-auth { display: flex; align-items: center; gap: var(--gutter-sm); flex-shrink: 0; }
.sanctuaire-austere-auth-btn {
	white-space: nowrap; flex-shrink: 0;
	display: inline-flex; align-items: center; justify-content: center;
	font-family: var(--font-sans); font-weight: var(--font-medium);
	font-size: var(--size-sm);
	padding-inline: var(--gap-lg);
	min-height: 42px;
	border: var(--border-width) solid var(--highlight);
	transition: background var(--transition-fast), color var(--transition-fast);
}
.sanctuaire-austere-auth-btn--login-x { background: transparent; color: var(--body-color); }
.sanctuaire-austere-auth-btn--login-x:hover { background: var(--body-color); color: var(--page-bg); }
.sanctuaire-austere-auth-btn--register-x { background: var(--highlight); color: #ffffff; border-color: var(--highlight); }
.sanctuaire-austere-auth-btn--register-x:hover { background: var(--accent-pressed); color: #ffffff; }
.sanctuaire-austere-toggle {
	display: none;
	margin-left: auto;
	flex-direction: column; justify-content: center; gap: 5px;
	width: 44px; height: 44px;
	background: none; border: var(--border-width) solid rgba(255,255,255,0.25); cursor: pointer;
}
.sanctuaire-austere-toggle span { display: block; height: 2px; width: 22px; margin-inline: auto; background: var(--body-color); }
.sanctuaire-austere-drawer { display: none; }
.sanctuaire-austere-drawer-auth { display: flex; gap: var(--gutter-sm); margin-bottom: var(--gap-md); }
.sanctuaire-austere-drawer-nav ul { list-style: none; margin: 0; padding: 0; }
.sanctuaire-austere-drawer-link {
	display: block;
	padding: var(--gutter-sm) 0;
	font-family: var(--font-title);
	font-weight: var(--font-medium);
	font-size: var(--text-h5);
	color: var(--body-color);
	border-bottom: var(--border-width) solid rgba(255,255,255,0.08);
}
.sanctuaire-austere-drawer-link[aria-current='page'] { color: var(--highlight); }

@media (max-width: 1139px) {
	.sanctuaire-austere-nav, .sanctuaire-austere-auth { display: none; }
	.sanctuaire-austere-toggle { display: flex; }
	.sanctuaire-austere-inner { min-height: var(--topbar-mobile); }
	.sanctuaire-austere-logo-img { height: 60px; }
	.sanctuaire-austere.is-open .sanctuaire-austere-drawer {
		display: block;
		position: absolute; left: 0; right: 0; top: 100%;
		background: var(--page-bg);
		border-bottom: var(--border-width) solid rgba(255,255,255,0.10);
		padding: var(--gap-md) var(--pad-mobile) var(--gap-xl);
		max-height: calc(100vh - var(--topbar-mobile));
		overflow-y: auto;
	}
}

/* ============================================================
   HERO — HERO-11 compact right image
   ============================================================ */
.presbytere-grand {
	padding-block: 0 var(--gap-2xl) !important;
	background: radial-gradient(120% 120% at 80% 0%, rgba(115,57,200,0.35), transparent 60%), var(--page-bg);
}
.presbytere-grand-inner {
	display: grid;
	grid-template-columns: 1.85fr 1fr;
	gap: var(--gap-2xl);
	align-items: center;
	min-height: 480px;
	padding-top: calc(var(--header-height-desktop-x) + var(--gap-xl));
}
.presbytere-grand-content { text-align: left; }
.presbytere-grand-eyebrow {
	font-family: var(--font-title); font-weight: var(--weight-bold);
	text-transform: uppercase; letter-spacing: var(--tracking-wide);
	font-size: var(--size-sm); color: var(--grad-light);
	margin-bottom: var(--gutter-sm);
}
.presbytere-grand-title { font-size: var(--type-h1); color: var(--body-color); margin-bottom: var(--gap-md); }
.presbytere-grand-subtitle {
	font-size: var(--text-base); color: var(--text-secondary);
	max-width: 480px; margin-bottom: var(--gap-lg);
}
.presbytere-grand-cta {
	display: inline-flex; align-items: center; justify-content: center;
	min-height: 56px; padding-inline: var(--gap-2xl);
	background: var(--highlight); color: #ffffff;
	font-family: var(--font-title); font-weight: var(--weight-bold);
	text-transform: uppercase; letter-spacing: var(--tracking-wide);
	border: var(--border-width) solid var(--highlight);
	transition: background var(--transition-fast);
}
.presbytere-grand-cta:hover { background: var(--accent-pressed); color: #ffffff; }
.presbytere-grand-figure { margin: 0; aspect-ratio: 1 / 1; overflow: hidden; border: var(--border-width) solid rgba(255,255,255,0.10); }
.presbytere-grand-image { width: 100%; height: 100%; object-fit: cover; }

/* ============================================================
   PAGE HEADER — PHEAD-04 two column
   ============================================================ */
.crucifix-secret { background: linear-gradient(180deg, rgba(115,57,200,0.14), transparent); }
.crucifix-secret-inner {
	display: grid; grid-template-columns: 1.2fr 1fr; gap: var(--gap-2xl);
	align-items: end;
}
.crucifix-secret-eyebrow {
	font-family: var(--font-title); font-weight: var(--weight-bold);
	text-transform: uppercase; letter-spacing: var(--tracking-wide);
	font-size: var(--size-sm); color: var(--grad-light);
	margin-bottom: var(--gap-xs);
}
.crucifix-secret-title { font-size: var(--type-h1); margin: 0; }
.crucifix-secret-desc { color: var(--text-secondary); font-size: var(--text-base); }
.crucifix-secret-desc p { margin: 0; }

/* ============================================================
   PROSE — PROSE-07 numbered headers
   ============================================================ */
.veilleuse-pur { counter-reset: section; }
.veilleuse-pur-inner > h2 {
	font-size: var(--type-h2); color: var(--body-color);
	margin-top: var(--gap-xl); margin-bottom: var(--gap-md);
}
.veilleuse-pur-inner > h2:first-child { margin-top: 0; }
.veilleuse-pur-inner > h2::before {
	counter-increment: section;
	content: counter(section, decimal-leading-zero) ". ";
	color: var(--highlight);
	font-family: var(--font-title); font-weight: var(--weight-bold);
	margin-right: var(--gap-2xs);
}
.veilleuse-pur-inner p { color: var(--body-color); }
.veilleuse-pur-inner strong { color: var(--body-color); font-weight: var(--weight-bold); }
.veilleuse-pur-link {
	color: var(--color-link-x);
	background-image: linear-gradient(currentColor, currentColor);
	background-size: 0% var(--border-width);
	background-position: 0 100%; background-repeat: no-repeat;
	transition: background-size var(--duration-base) var(--timing);
}
.veilleuse-pur-link:hover { background-size: 100% var(--border-width); }
.veilleuse-pur-list { padding-left: 0; list-style: none; counter-reset: step; }
.veilleuse-pur-list li {
	position: relative; padding-left: var(--gap-2xl); margin-bottom: var(--gutter-sm);
}
.veilleuse-pur-list li::before {
	counter-increment: step; content: counter(step);
	position: absolute; left: 0; top: 0;
	width: 34px; height: 34px; line-height: 34px; text-align: center;
	background: var(--highlight); color: #ffffff;
	font-family: var(--font-title); font-weight: var(--weight-bold);
}
.veilleuse-pur-media { margin-top: var(--gap-lg); }
.veilleuse-pur-media--context img {
	width: 100%; max-height: 420px; object-fit: cover;
	border: var(--border-width) solid rgba(255,255,255,0.10);
}
.veilleuse-pur-media--row { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: var(--gap-md); }
.veilleuse-pur-media--row img { width: 100%; border: var(--border-width) solid rgba(255,255,255,0.10); }

/* ============================================================
   ITEMS GRID — GRID-11 mixed block sizes
   ============================================================ */
.garde-corps-vif-heading { font-size: var(--type-h2); margin-bottom: var(--gap-lg); }
.garde-corps-vif-grid {
	display: grid; grid-template-columns: repeat(4, 1fr);
	grid-auto-flow: dense; gap: var(--gap-lg);
}
.garde-corps-vif-card {
	grid-column: span 1;
	background: var(--bg-elevated);
	border: var(--border-width) solid rgba(255,255,255,0.08);
	padding: var(--gap-lg);
	display: flex; flex-direction: column; gap: var(--gap-xs);
}
.garde-corps-vif-card:nth-child(1) { grid-column: span 2; grid-row: span 2; }
.garde-corps-vif-card:nth-child(4) { grid-column: span 2; }
.garde-corps-vif-card-title { font-family: var(--font-title); font-weight: var(--weight-bold); font-size: var(--text-h4); color: var(--body-color); margin: 0; }
.garde-corps-vif-card:nth-child(1) .garde-corps-vif-card-title { font-size: var(--size-h3); }
.garde-corps-vif-card-text { color: var(--text-secondary); font-size: var(--size-sm); line-height: var(--lh-base); margin: 0; }

/* ============================================================
   DATA TABLE — TABLE-03 card-per-row on mobile
   ============================================================ */
.oriflamme-large-table { width: 100%; border-collapse: collapse; }
.oriflamme-large-table thead th {
	text-align: left; padding: var(--gap-md);
	font-family: var(--font-title); text-transform: uppercase; letter-spacing: var(--tracking-wide);
	font-size: var(--size-sm); color: var(--grad-light);
	border-bottom: var(--border-medium-x) solid var(--highlight);
}
.oriflamme-large-table tbody { background: var(--bg-elevated); }
.oriflamme-large-table tbody td { padding: var(--gap-md); border-bottom: var(--border-width) solid rgba(255,255,255,0.06); color: var(--body-color); }

/* ============================================================
   REVIEWS — REV-08 avatar-initials cards
   ============================================================ */
.ciboire-noble-heading { font-size: var(--type-h2); margin-bottom: var(--gap-lg); }
.ciboire-noble-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--gap-lg); }
.ciboire-noble-card {
	background: var(--bg-elevated);
	border: var(--border-width) solid rgba(255,255,255,0.08);
	padding: var(--gap-lg);
	display: flex; flex-direction: column; gap: var(--gutter-sm);
}
.ciboire-noble-card-head { display: flex; align-items: center; gap: var(--gutter-sm); }
.ciboire-noble-avatar {
	width: 48px; height: 48px; flex-shrink: 0;
	border-radius: var(--round-circle);
	background: var(--highlight); color: var(--page-bg);
	display: inline-flex; align-items: center; justify-content: center;
	font-family: var(--font-title); font-weight: var(--weight-bold); font-size: var(--text-h5);
}
.ciboire-noble-meta { display: flex; flex-direction: column; gap: 2px; }
.ciboire-noble-author { font-family: var(--font-title); font-weight: var(--weight-bold); color: var(--body-color); }
.ciboire-noble-stars { color: var(--grad-light); font-size: var(--size-sm); letter-spacing: 2px; }
.ciboire-noble-text { color: var(--text-secondary); font-size: var(--size-sm); line-height: var(--lh-base); margin: 0; }

/* ============================================================
   FAQ — FAQ-02 always-open list
   ============================================================ */
.jube-classique-heading { font-size: var(--type-h2); margin-bottom: var(--gap-lg); }
.jube-classique-list { margin: 0; }
.jube-classique-question {
	font-family: var(--font-title); font-weight: var(--weight-bold); font-size: var(--text-h4);
	color: var(--body-color); margin-bottom: var(--gutter-sm);
}
.jube-classique-answer { margin: 0 0 var(--gap-xl); color: var(--text-secondary); line-height: var(--leading-loose); }
.jube-classique-answer p { margin: 0; }

/* ============================================================
   CTA — CTA-01 full-width strip on accent
   ============================================================ */
.chasse-grand { background: var(--highlight); }
.chasse-grand-inner { display: flex; align-items: center; justify-content: space-between; gap: var(--gap-xl); }
.chasse-grand-text { max-width: 720px; }
.chasse-grand-title {
	font-family: var(--font-title); font-weight: var(--weight-bold); font-size: var(--type-h2);
	text-transform: uppercase; letter-spacing: var(--tracking-tight); color: var(--page-bg); margin: 0;
}
.chasse-grand-description { color: rgba(14,9,23,0.85); font-size: var(--text-base); max-width: 580px; margin: var(--gutter-sm) 0 0; }
.chasse-grand-button {
	flex-shrink: 0; min-width: 220px; min-height: 56px;
	display: inline-flex; align-items: center; justify-content: center;
	padding-inline: var(--gap-2xl);
	background: var(--page-bg); color: var(--highlight);
	font-family: var(--font-title); font-weight: var(--weight-bold);
	text-transform: uppercase; letter-spacing: var(--tracking-wide);
	border: var(--border-width) solid var(--page-bg);
	transition: background var(--transition-fast), color var(--transition-fast);
}
.chasse-grand-button:hover { background: var(--body-color); color: var(--highlight); border-color: var(--body-color); }

/* ============================================================
   BYLINE — BYLINE-07 expertise tags block
   ============================================================ */
.baldaquin-raffine { max-width: var(--section-max-x); margin-inline: auto; padding-inline: var(--pad-desktop); }
.baldaquin-raffine-card {
	background: var(--bg-elevated); border: var(--border-width) solid rgba(255,255,255,0.08);
	padding: var(--gap-lg); box-shadow: var(--elevation-1);
}
.baldaquin-raffine-header { display: flex; align-items: center; gap: var(--gutter-sm); margin-bottom: var(--gap-md); }
.baldaquin-raffine-portrait { width: 72px; height: 72px; border-radius: var(--round-circle); object-fit: cover; object-position: center top; flex-shrink: 0; }
.baldaquin-raffine-name { font-family: var(--font-title); font-weight: var(--weight-bold); font-size: var(--text-h4); margin: 0; }
.baldaquin-raffine-name a { color: var(--body-color); }
.baldaquin-raffine-name a:hover { color: var(--highlight); }
.baldaquin-raffine-role { font-size: var(--size-sm); color: var(--text-secondary); margin: 0; }
.baldaquin-raffine-bio { font-size: var(--text-base); line-height: var(--leading-loose); color: var(--text-secondary); }
.baldaquin-raffine-expertise { display: flex; flex-wrap: wrap; gap: var(--gap-2xs); margin-bottom: var(--gap-md); }
.baldaquin-raffine-tag {
	padding: 4px var(--gutter-sm); background: var(--main-color); color: var(--body-color);
	font-size: var(--type-micro); text-transform: uppercase; letter-spacing: var(--tracking-wide);
	border: var(--border-width) solid rgba(255,255,255,0.08);
}
.baldaquin-raffine-link { color: var(--color-link-x); font-weight: var(--font-medium); text-decoration: underline; text-underline-offset: 3px; }
.baldaquin-raffine-link:hover { color: var(--grad-light); }

/* ============================================================
   AUTHOR CARD — AUTH-01 horizontal card
   ============================================================ */
.berceau-large { max-width: var(--section-max-x); margin-inline: auto; padding-inline: var(--pad-desktop); }
.berceau-large-card {
	display: grid; grid-template-columns: 160px 1fr; gap: var(--gap-xl);
	background: var(--bg-elevated); border: var(--border-width) solid rgba(255,255,255,0.08);
	padding: var(--gap-xl) var(--gap-lg); box-shadow: var(--elevation-1);
}
.berceau-large-portrait { width: 160px; height: 160px; border-radius: var(--round-circle); overflow: hidden; }
.berceau-large-portrait img { width: 160px; height: 160px; object-fit: cover; object-position: center top; }
.berceau-large-body { display: flex; flex-direction: column; gap: var(--gap-md); }
.berceau-large-role { font-weight: var(--font-medium); font-size: var(--size-sm); text-transform: uppercase; letter-spacing: var(--tracking-wide); color: var(--highlight); margin: 0; }
.berceau-large-name { font-size: var(--type-h2); margin: 0; }
.berceau-large-bio { color: var(--text-secondary); line-height: var(--leading-loose); margin: 0; }
.berceau-large-expertise { display: flex; flex-wrap: wrap; gap: var(--gap-2xs); }
.berceau-large-tag {
	padding: 4px var(--gutter-sm); background: var(--main-color); color: var(--body-color);
	font-size: var(--type-micro); text-transform: uppercase; letter-spacing: var(--tracking-wide);
	border: var(--border-width) solid rgba(255,255,255,0.08);
}

/* ============================================================
   LEGAL — LEGAL-05 definition list
   ============================================================ */
.chapelle-dore-intro { color: var(--text-secondary); font-size: var(--text-base); margin-bottom: var(--gap-lg); }
.chapelle-dore-list { margin: 0; }
.chapelle-dore-term {
	position: relative; padding-top: var(--gap-md);
	font-family: var(--font-title); font-weight: var(--weight-bold); font-size: var(--text-h4);
	color: var(--body-color); margin: var(--gap-lg) 0 var(--gap-xs);
}
.chapelle-dore-term::before { content: ''; display: block; width: 30px; height: 2px; background: var(--highlight); margin-bottom: var(--gap-xs); }
.chapelle-dore-definition { margin-inline-start: 0; margin-bottom: var(--gap-md); color: var(--text-secondary); line-height: var(--leading-loose); }
.chapelle-dore-definition p { margin: 0 0 var(--gutter-sm); }
.chapelle-dore-subheading { font-size: var(--size-h3); margin: var(--gap-xl) 0 var(--gutter-sm); }
.chapelle-dore-contacts { padding-left: var(--gap-md); color: var(--text-secondary); }
.chapelle-dore-contacts li { margin-bottom: var(--gap-xs); }
.chapelle-dore-disclaimer { margin-top: var(--gap-lg); font-size: var(--size-sm); color: var(--text-secondary); border-top: var(--border-width) solid rgba(255,255,255,0.08); padding-top: var(--gap-md); }

/* ============================================================
   CONTACT FORM — FORM-02 two-column
   ============================================================ */
.gradin-fluide-inner { display: grid; grid-template-columns: 1fr 2fr; gap: var(--gap-xl); }
.gradin-fluide-aside {
	padding: var(--gap-lg);
	background: rgba(13,8,21,0.6); border: var(--border-width) solid rgba(255,255,255,0.08);
}
.gradin-fluide-aside-title { font-size: var(--size-h3); margin-bottom: var(--gutter-sm); }
.gradin-fluide-intro { color: var(--text-secondary); }
.gradin-fluide-contacts { list-style: none; padding: 0; margin: 0; }
.gradin-fluide-contacts li { display: flex; flex-direction: column; margin-bottom: var(--gutter-sm); }
.gradin-fluide-contacts span { font-size: var(--type-micro); text-transform: uppercase; letter-spacing: var(--tracking-wide); color: var(--text-secondary); }
.gradin-fluide-contacts a { color: var(--color-link-x); }
.gradin-fluide-field { display: flex; flex-direction: column; gap: var(--gap-2xs); margin-bottom: var(--gap-md); }
.gradin-fluide-field label { font-size: var(--size-sm); font-weight: var(--font-medium); color: var(--body-color); }
.gradin-fluide-field input, .gradin-fluide-field textarea {
	font-family: var(--font-sans); font-size: var(--text-base);
	padding: var(--gutter-sm); background: var(--page-bg);
	color: var(--body-color); border: var(--border-medium-x) solid rgba(255,255,255,0.14);
}
.gradin-fluide-field input:focus, .gradin-fluide-field textarea:focus { outline: none; border-color: var(--highlight); }
.gradin-fluide-submit {
	min-height: 52px; padding-inline: var(--gap-2xl);
	background: var(--highlight); color: #ffffff;
	font-family: var(--font-title); font-weight: var(--weight-bold);
	text-transform: uppercase; letter-spacing: var(--tracking-wide);
	border: var(--border-width) solid var(--highlight); cursor: pointer;
	transition: background var(--transition-fast);
}
.gradin-fluide-submit:hover { background: var(--accent-pressed); color: #ffffff; }
.gradin-fluide-success { margin-top: var(--gap-md); color: var(--color-success-x); font-weight: var(--font-medium); }

/* ============================================================
   ERROR — ERR-05 glitch
   ============================================================ */
.sentinelle-prime { text-align: center; }
.sentinelle-prime-inner { padding-block: var(--gap-2xl); }
.sentinelle-prime-title { position: relative; display: inline-block; font-size: var(--type-h1); color: var(--body-color); margin-bottom: var(--gap-md); }
.sentinelle-prime-title::before, .sentinelle-prime-title::after {
	content: attr(data-text); position: absolute; inset: 0; opacity: 0.5; pointer-events: none;
}
.sentinelle-prime-title::before { transform: translate(2px, -2px); color: var(--highlight); }
.sentinelle-prime-title::after { transform: translate(-2px, 2px); color: var(--gradient-mid); }
.sentinelle-prime-text { color: var(--text-secondary); max-width: 560px; margin: 0 auto var(--gap-lg); }
.sentinelle-prime-button {
	display: inline-flex; align-items: center; justify-content: center;
	min-height: 52px; padding-inline: var(--gap-2xl);
	background: var(--highlight); color: #ffffff;
	font-family: var(--font-title); font-weight: var(--weight-bold);
	text-transform: uppercase; letter-spacing: var(--tracking-wide);
	border: var(--border-width) solid var(--highlight);
	transition: background var(--transition-fast);
}
.sentinelle-prime-button:hover { background: var(--accent-pressed); color: #ffffff; }

/* ============================================================
   FOOTER — FOOT-04 sticky mini
   ============================================================ */
.loggia-haute-calme {
	background: rgba(14,9,23,0.95); backdrop-filter: blur(8px);
	border-top: var(--border-width) solid rgba(255,255,255,0.08);
}
.loggia-haute-calme-inner {
	min-height: 64px; display: flex; align-items: center; justify-content: space-between;
	gap: var(--gap-md); padding-block: var(--gutter-sm);
}
.loggia-haute-calme-copy { font-size: var(--type-micro); color: var(--text-secondary); }
.loggia-haute-calme-nav { display: flex; align-items: center; gap: var(--gutter-sm); flex-wrap: wrap; }
.loggia-haute-calme-link {
	font-size: var(--type-micro); text-transform: uppercase; letter-spacing: var(--tracking-wide);
	color: var(--text-secondary); padding-left: var(--gutter-sm);
	border-left: var(--border-width) solid rgba(255,255,255,0.14);
}
.loggia-haute-calme-nav .loggia-haute-calme-link:first-child { border-left: 0; padding-left: 0; }
.loggia-haute-calme-link:hover { color: var(--body-color); }

/* ============================================================
   COOKIE — COOK-02 full-width bottom strip
   ============================================================ */
.tribune-prime {
	position: fixed; bottom: 0; left: 0; right: 0; z-index: 90;
	background: var(--main-color);
	border-top: var(--border-width) solid rgba(255,255,255,0.08);
	padding-block: var(--gap-md);
}
.tribune-prime[hidden] { display: none; }
.tribune-prime-inner { display: flex; align-items: center; justify-content: space-between; gap: var(--gap-md); }
.tribune-prime-message { flex: 1; margin: 0; font-size: var(--size-sm); color: var(--text-secondary); }
.tribune-prime-actions { display: flex; flex-shrink: 0; gap: var(--gutter-sm); }
.tribune-prime-button {
	min-height: 42px; padding-inline: var(--gap-lg);
	font-family: var(--font-title); font-weight: var(--weight-bold);
	text-transform: uppercase; letter-spacing: var(--tracking-wide); font-size: var(--size-sm);
	border: var(--border-width) solid var(--highlight); cursor: pointer;
	transition: background var(--transition-fast), color var(--transition-fast);
}
.tribune-prime-button--accept-x { background: var(--highlight); color: #ffffff; }
.tribune-prime-button--accept-x:hover { background: var(--accent-pressed); color: #ffffff; }
.tribune-prime-button--decline-x { background: transparent; color: var(--body-color); }
.tribune-prime-button--decline-x:hover { background: var(--body-color); color: var(--page-bg); }

/* --- section-root wrappers (block-level) --- */
.garde-corps-vif,
.ciboire-noble,
.jube-classique,
.oriflamme-large,
.gradin-fluide,
.chapelle-dore { display: block; }
.gradin-fluide-form { display: block; }
.sanctuaire-austere-nav-item--more { position: relative; }
.crucifix-secret-lead { display: block; }

/* ============================================================
   TABLET
   ============================================================ */
@media (max-width: 1139px) {
	.presbytere-grand-inner { grid-template-columns: 1fr; gap: var(--gap-lg); }
	.presbytere-grand-figure { max-width: 420px; }
	.crucifix-secret-inner { grid-template-columns: 1fr; gap: var(--gap-md); align-items: start; }
	.garde-corps-vif-grid { grid-template-columns: repeat(2, 1fr); }
	.garde-corps-vif-card:nth-child(1) { grid-column: span 2; grid-row: auto; }
	.garde-corps-vif-card:nth-child(4) { grid-column: span 2; }
	.ciboire-noble-grid { grid-template-columns: repeat(2, 1fr); }
	.gradin-fluide-inner { grid-template-columns: 1fr; }
}

/* ============================================================
   MOBILE
   ============================================================ */
@media (max-width: 779px) {
	:root {
		--type-h1: 28px; --type-h2: 24px; --size-h3: 20px; --text-h4: 18px; --text-h5: 16px; --type-h6: 14px;
		--text-base: 16px; --size-sm: 14px; --type-micro: 12px;
	}
	.presbytere-grand-inner,
	.crucifix-secret-inner,
	.garde-corps-vif-inner,
	.ciboire-noble-inner,
	.jube-classique-inner,
	.chasse-grand-inner,
	.oriflamme-large-inner,
	.gradin-fluide-inner,
	.sentinelle-prime-inner,
	.tribune-prime-inner,
	.loggia-haute-calme-inner,
	.sanctuaire-austere-inner,
	.veilleuse-pur-inner,
	.chapelle-dore-inner,
	.baldaquin-raffine,
	.berceau-large { padding-inline: var(--pad-mobile); }
	main > section, main > aside { padding-block: var(--gap-xl); }
	.presbytere-grand-inner { padding-top: calc(var(--topbar-mobile) + var(--gap-lg)); }
	.garde-corps-vif-grid { grid-template-columns: 1fr; }
	.garde-corps-vif-card:nth-child(1), .garde-corps-vif-card:nth-child(4) { grid-column: span 1; }
	.ciboire-noble-grid { grid-template-columns: 1fr; }
	.chasse-grand-inner { flex-direction: column; align-items: flex-start; }
	.chasse-grand-button { width: 100%; }
	.berceau-large-card { grid-template-columns: 1fr; justify-items: center; text-align: center; }
	.berceau-large-expertise { justify-content: center; }
	.baldaquin-raffine-header { flex-direction: column; text-align: center; align-items: center; }

	/* TABLE-03 card-per-row */
	.oriflamme-large-table, .oriflamme-large-table tbody, .oriflamme-large-table tr, .oriflamme-large-table td { display: block; width: 100%; }
	.oriflamme-large-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
	.oriflamme-large-table tr {
		margin-bottom: var(--gap-md); padding: var(--gap-md);
		background: var(--bg-elevated); border: var(--border-width) solid rgba(255,255,255,0.08);
	}
	.oriflamme-large-table td { padding: var(--gap-2xs) 0; border: 0; display: flex; justify-content: space-between; gap: var(--gap-md); }
	.oriflamme-large-table td::before { content: attr(data-label); font-weight: var(--weight-bold); color: var(--grad-light); text-transform: uppercase; font-size: var(--type-micro); letter-spacing: var(--tracking-wide); }

	.tribune-prime { padding: 12px 14px !important; }
	.tribune-prime-inner { flex-direction: column; align-items: stretch; gap: 8px !important; }
	.tribune-prime-message { font-size: 13px !important; line-height: 1.35 !important; }
	.tribune-prime-actions { justify-content: stretch; }
	.tribune-prime-button { flex: 1; padding: 8px 14px !important; font-size: 12px !important; min-height: 36px !important; }

	.loggia-haute-calme-inner { flex-direction: column; align-items: flex-start; min-height: 80px; gap: var(--gap-2xs); }
}
