/* casinodays-nz-1 — visual.css
   TYPO-01 SPACE-01 CONT-07 BP-03 GEO-01 MOTION-01 NAME-01
   HEAD-09 FOOT-07 HERO-05 PHEAD-03 GRID-11 FAQ-03 REV-07 CTA-04
   PROSE-08 TABLE-01 LEGAL-06 FORM-03 COOK-06 ERR-04 BYLINE-01 AUTH-05 */

:root {
	--site-brand: #1a1c31;
	--site-secondary: #5a4dc7;
	--site-accent-dark: #3c36b5;
	--site-page-bg: #ffffff;
	--site-surface-2: #f4f4f9;
	--site-gradient-start: #b5b1e8;
	--site-gradient-mid: #7a71d3;
	--site-ink: #202a39;
	--site-fg-muted: #55606f;
	--site-notice-bg: #dc2626;

	--site-heading-font: 'Open Sans', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
	--site-font-text: 'Open Sans', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;

	--site-type-h1: 64px;
	--site-fs-h2: 40px;
	--site-text-h3: 28px;
	--site-size-h4: 22px;
	--site-type-h5: 18px;
	--site-fs-h6: 16px;
	--site-size-body: 17px;
	--site-type-small: 14px;
	--site-size-xs: 12px;

	--site-lh-tight: 1.1;
	--site-line-normal: 1.5;
	--site-leading-loose: 1.75;
	--site-letter-tight: -0.02em;
	--site-ls-normal: 0;
	--site-tracking-wide: 0.04em;
	--site-weight-regular: 400;
	--site-weight-medium: 500;
	--site-font-bold: 700;

	--site-gap-2xs: 4px;
	--site-gutter-xs: 8px;
	--site-spacing-sm: 12px;
	--site-gutter-md: 16px;
	--site-gutter-lg: 24px;
	--site-spacing-xl: 40px;
	--site-gutter-2xl: 64px;
	--site-space-3xl: 96px;

	--site-shell-width: 1100px;
	--site-prose-width: 650px;
	--site-inset-mobile: 16px;
	--site-container-padding-tablet: 24px;
	--site-gutter-desktop: 48px;

	--site-round-xs: 0;
	--site-rounded-sm: 0;
	--site-rounded-md: 0;
	--site-round-lg: 0;
	--site-radius-pill: 0;
	--site-circle: 50%;
	--site-shadow-sm: 0 1px 0 rgba(0,0,0,0.08);
	--site-elevation-2: 0 2px 0 rgba(0,0,0,0.12);
	--site-elevation-3: 0 4px 0 rgba(0,0,0,0.16);
	--site-stroke-thin: 1px;
	--site-border-medium: 2px;
	--site-border-thick: 4px;

	--site-duration-fast: 120ms;
	--site-transition-base: 150ms;
	--site-transition-slow: 200ms;
	--site-ease: cubic-bezier(0.25, 0.46, 0.45, 0.94);

	--site-header-h-desktop: 64px;
	--site-header-h-mobile: 60px;
	--site-inner-w: calc(var(--site-shell-width) + 2 * var(--site-gutter-desktop));
}

/* ---------- reset / base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html, body { overflow-x: clip; }
html { -webkit-text-size-adjust: 100%; }
body {
	margin: 0;
	font-family: var(--site-font-text);
	font-size: var(--site-size-body);
	font-weight: var(--site-weight-regular);
	line-height: var(--site-leading-loose);
	color: var(--site-ink);
	background: var(--site-page-bg);
	padding-top: var(--site-header-h-desktop);
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--site-secondary); text-decoration: none; transition: color var(--site-duration-fast) var(--site-ease); }
a:hover { color: var(--site-accent-dark); }
h1, h2, h3, h4, h5, h6 { margin: 0 0 var(--site-gutter-md); }
h1, h2 { font-family: var(--site-heading-font); font-weight: var(--site-font-bold); letter-spacing: var(--site-letter-tight); line-height: var(--site-lh-tight); }
h1 { font-size: var(--site-type-h1); text-transform: uppercase; }
h2 { font-size: var(--site-fs-h2); }
h3, h4 { font-family: var(--site-heading-font); font-weight: var(--site-font-bold); line-height: var(--site-lh-tight); }
h3 { font-size: var(--site-text-h3); }
h4 { font-size: var(--site-size-h4); }
h5, h6 { font-family: var(--site-font-text); font-weight: var(--site-weight-medium); letter-spacing: var(--site-tracking-wide); text-transform: uppercase; }
h5 { font-size: var(--site-type-h5); }
h6 { font-size: var(--site-fs-h6); }
p { margin: 0 0 var(--site-gutter-md); }

/* ---------- a11y ---------- */
.skip-link {
	position: fixed; left: var(--site-gutter-md); top: -200px; z-index: 200;
	background: var(--site-brand); color: #fff;
	padding: var(--site-gutter-xs) var(--site-gutter-md); font-size: var(--site-type-small);
}
.skip-link:not(:focus) { top: -200px !important; }
.skip-link:focus { top: var(--site-gutter-xs); }
.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;
}
:focus-visible { outline: 3px solid var(--site-secondary); outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) {
	* { animation: none !important; transition: none !important; }
}


/* ---------- HEADER (HEAD-09 + STICKY-01 + NAV-01) ---------- */
.relief {
	position: fixed; top: 0; left: 0; right: 0; z-index: 100;
	height: var(--site-header-h-desktop);
	background: var(--site-brand);
	border-bottom: var(--site-stroke-thin) solid rgba(255,255,255,0.08);
}
.relief-row {
	width: 100%; max-width: 1440px; height: 100%;
	margin-inline: auto;
	padding-inline: var(--site-gutter-lg);
	display: flex; align-items: center; gap: var(--site-gutter-lg);
}
.relief-logo {
	flex-shrink: 0;
	font-family: var(--site-heading-font); font-weight: var(--site-font-bold);
	font-size: 22px; letter-spacing: var(--site-letter-tight); text-transform: uppercase;
	color: #fff;
}
.relief-logo:hover { color: var(--site-gradient-start); }
.relief-nav { margin-left: auto; }
.relief-nav-list {
	display: flex; flex-wrap: nowrap; gap: var(--site-spacing-sm);
	list-style: none; margin: 0; padding: 0;
}
.relief-link {
	font-family: var(--site-heading-font); font-weight: var(--site-weight-medium);
	font-size: var(--site-type-small); white-space: nowrap;
	padding-block: var(--site-gap-2xs);
	color: rgba(255,255,255,0.85);
}
.relief-link:hover, .relief-link[aria-current='page'] {
	color: #fff; text-decoration: underline; text-underline-offset: 4px;
}
.relief-toggle {
	display: none; margin-left: auto;
	width: 44px; height: 44px; background: none; border: none; cursor: pointer;
	flex-direction: column; justify-content: center; gap: 5px; padding: 0;
}
.relief-toggle span { display: block; height: 2px; width: 24px; background: #fff; margin-inline: auto; }
.relief-mobile { display: none; }

/* Home: header stays solid for contrast (HERO-05 plate on light bg) */

/* ---------- HERO (HERO-05 bordered plate editorial) ---------- */
.vitrail {
	width: 100%; max-width: 100%;
	padding: var(--site-gutter-2xl) 0 var(--site-space-3xl);
	background: var(--site-surface-2);
}
.vitrail-frame {
	width: 100%; max-width: var(--site-shell-width);
	margin-inline: auto; margin-inline: auto;
	background: var(--site-page-bg);
	outline: var(--site-border-thick) solid var(--site-ink);
	box-shadow: 0 0 0 8px transparent, 0 0 0 9px var(--site-ink);
	padding: var(--site-gutter-2xl);
}
@media (min-width: 900px) { .vitrail-frame { margin-inline: var(--site-gutter-desktop); max-width: calc(var(--site-shell-width) - 2 * var(--site-gutter-desktop)); } }
.vitrail-content { text-align: left; }
.vitrail-eyebrow { font-size: var(--site-type-small); font-style: italic; color: var(--site-accent-dark); margin-bottom: var(--site-spacing-sm); }
.vitrail h1 { color: var(--site-ink); max-width: 14ch; }
.vitrail-divider { width: 80px; height: 1px; border: none; background: var(--site-secondary); margin: var(--site-gutter-lg) 0; }
.vitrail-subtitle { font-size: var(--site-type-h5); font-family: var(--site-font-text); color: var(--site-fg-muted); max-width: 480px; line-height: var(--site-line-normal); }
.vitrail-cta {
	display: inline-block; margin-top: var(--site-spacing-xl);
	background: var(--site-secondary); color: #fff;
	font-family: var(--site-heading-font); font-weight: var(--site-font-bold); text-transform: uppercase; letter-spacing: var(--site-tracking-wide);
	padding: var(--site-spacing-sm) var(--site-spacing-xl); border-radius: var(--site-round-xs);
	transition: background var(--site-duration-fast) var(--site-ease);
}
.vitrail-cta:hover { background: var(--site-accent-dark); color: #fff; }

/* ---------- PAGE HEADER (PHEAD-03 big block) ---------- */
.zone { background: var(--site-brand); padding-block: var(--site-space-3xl); }
.zone-inner { width: 100%; max-width: calc(var(--site-shell-width) + 2 * var(--site-gutter-desktop)); margin-inline: auto; padding-inline: var(--site-gutter-desktop); }
.zone h1 { color: #fff; font-size: clamp(36px, 6vw, 64px); }
.zone-desc { color: rgba(255,255,255,0.7); font-size: var(--site-type-h5); max-width: 60ch; margin: 0; }

/* ---------- PROSE (PROSE-08 asymmetric indent) ---------- */
.vestibule { padding-block: var(--site-spacing-xl); }
.vestibule-inner { width: 100%; max-width: calc(var(--site-shell-width) + 2 * var(--site-gutter-desktop)); margin-inline: auto; padding-inline: var(--site-gutter-desktop); }
.vestibule-inner h2 { padding-left: 0; font-size: var(--site-fs-h2); color: var(--site-ink); margin-top: var(--site-spacing-xl); }
.vestibule-inner h2:first-child { margin-top: 0; }
.vestibule-inner h3 { padding-left: var(--site-gutter-2xl); font-size: var(--site-text-h3); color: var(--site-ink); }
.vestibule-inner p, .vestibule-inner ul, .vestibule-inner ol { padding-left: var(--site-gutter-2xl); max-width: calc(720px + var(--site-gutter-2xl)); font-size: var(--site-size-body); line-height: var(--site-leading-loose); }
.vestibule-inner li { margin-bottom: var(--site-gutter-xs); }

/* ---------- ITEMS GRID (GRID-11 mixed block sizes) ---------- */
.placard { padding-block: var(--site-spacing-xl); }
.placard-inner { width: 100%; max-width: calc(var(--site-shell-width) + 2 * var(--site-gutter-desktop)); margin-inline: auto; padding-inline: var(--site-gutter-desktop); }
.placard-heading { font-size: var(--site-fs-h2); margin-bottom: var(--site-spacing-xl); }
.placard-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--site-gutter-md); grid-auto-flow: dense; }
.placard-item {
	border: var(--site-stroke-thin) solid rgba(32,42,57,0.18);
	background: var(--site-page-bg); padding: var(--site-gutter-lg);
	grid-column: span 2;
}
.placard-item:nth-child(1) { grid-column: span 2; grid-row: span 2; background: var(--site-surface-2); }
.placard-item:nth-child(2), .placard-item:nth-child(3) { grid-column: span 1; }
.placard-item:nth-child(4) { grid-column: span 3; }
.placard-title { font-size: var(--site-size-h4); margin-bottom: var(--site-spacing-sm); }
.placard-item:nth-child(1) .placard-title { font-size: var(--site-text-h3); }
.placard-text { font-size: var(--site-size-body); color: var(--site-fg-muted); margin: 0; line-height: var(--site-line-normal); }

/* ---------- REVIEWS (REV-07 color-coded ratings grid) ---------- */
.pupitre { padding-block: var(--site-spacing-xl); }
.pupitre-inner { width: 100%; max-width: calc(var(--site-shell-width) + 2 * var(--site-gutter-desktop)); margin-inline: auto; padding-inline: var(--site-gutter-desktop); }
.pupitre-heading { font-size: var(--site-fs-h2); margin-bottom: var(--site-spacing-xl); }
.pupitre-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--site-gutter-md); }
.pupitre-item { padding: var(--site-gutter-lg); border: var(--site-stroke-thin) solid rgba(32,42,57,0.12); }
.pupitre-item--high { background: rgba(90,77,199,0.08); }
.pupitre-item--mid { background: var(--site-surface-2); }
.pupitre-item--low { background: rgba(26,28,49,0.08); }
.pupitre-head { display: flex; align-items: center; gap: var(--site-spacing-sm); margin-bottom: var(--site-spacing-sm); }
.pupitre-rating { font-family: var(--site-heading-font); font-weight: var(--site-font-bold); font-size: var(--site-fs-h2); color: var(--site-secondary); line-height: 1; }
.pupitre-dots { display: inline-flex; gap: 4px; }
.pupitre-dot { width: 10px; height: 10px; border-radius: var(--site-circle); background: rgba(32,42,57,0.2); }
.pupitre-dot.is-on { background: var(--site-secondary); }
.pupitre-dot.is-half { background: linear-gradient(90deg, var(--site-secondary) 50%, rgba(32,42,57,0.2) 50%); }
.pupitre-text { font-size: var(--site-size-body); line-height: var(--site-line-normal); margin-bottom: var(--site-spacing-sm); }
.pupitre-author { font-size: var(--site-type-small); font-weight: var(--site-font-bold); color: var(--site-ink); margin: 0; }

/* ---------- FAQ (FAQ-03 two-column card style) ---------- */
.alcove { padding-block: var(--site-spacing-xl); }
.alcove-inner { width: 100%; max-width: calc(var(--site-shell-width) + 2 * var(--site-gutter-desktop)); margin-inline: auto; padding-inline: var(--site-gutter-desktop); }
.alcove-heading { font-size: var(--site-fs-h2); margin-bottom: var(--site-spacing-xl); }
.alcove-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--site-gutter-md); }
.alcove-item { padding: var(--site-gutter-lg); border: var(--site-stroke-thin) solid rgba(32,42,57,0.15); background: var(--site-page-bg); }
.alcove-q { font-size: var(--site-type-h5); font-weight: var(--site-font-bold); color: var(--site-ink); margin-bottom: var(--site-gutter-md); text-transform: none; letter-spacing: 0; font-family: var(--site-heading-font); }
.alcove-q-prefix { color: var(--site-secondary); font-family: var(--site-heading-font); font-weight: var(--site-font-bold); }
.alcove-a { font-size: var(--site-size-body); line-height: var(--site-line-normal); margin: 0; color: var(--site-fg-muted); }

/* ---------- DATA TABLE (TABLE-01 striped) ---------- */
.fresque { padding-block: var(--site-spacing-xl); }
.fresque-inner { width: 100%; max-width: calc(var(--site-shell-width) + 2 * var(--site-gutter-desktop)); margin-inline: auto; padding-inline: var(--site-gutter-desktop); }
.fresque-heading { font-size: var(--site-fs-h2); margin-bottom: var(--site-spacing-xl); }
.fresque-wrap { overflow-x: auto; overflow: hidden; }
.fresque-table { width: 100%; min-width: 520px; border-collapse: collapse; background: var(--site-surface-2); }
.fresque-table thead { background: var(--site-brand); }
.fresque-table th { font-family: var(--site-font-text); font-weight: var(--site-weight-medium); text-transform: uppercase; font-size: var(--site-fs-h6); letter-spacing: var(--site-tracking-wide); color: var(--site-gradient-start); padding: var(--site-gutter-md); text-align: left; }
.fresque-table td { padding: var(--site-gutter-md); font-size: var(--site-size-body); text-align: left; color: var(--site-fg-muted); border-top: var(--site-stroke-thin) solid rgba(32,42,57,0.08); }
.fresque-table td:first-child { color: var(--site-ink); font-weight: var(--site-weight-medium); }
.fresque-table tbody tr:nth-child(even) { background: rgba(32,42,57,0.03); }
.fresque-table tbody tr:hover { background: rgba(90,77,199,0.06); }

/* ---------- CTA (CTA-04 minimal text link) ---------- */
.grille { padding-block: var(--site-spacing-xl); text-align: center; }
.grille-inner { width: 100%; max-width: calc(var(--site-shell-width) + 2 * var(--site-gutter-desktop)); margin-inline: auto; padding-inline: var(--site-gutter-desktop); }
.grille-title { font-size: var(--site-size-h4); font-weight: var(--site-font-bold); }
.grille-text { font-size: var(--site-size-body); line-height: var(--site-leading-loose); color: var(--site-fg-muted); margin-block: var(--site-gutter-md); max-width: 580px; margin-inline: auto; }
.grille-link {
	display: inline-block; font-size: var(--site-fs-h6); text-transform: uppercase; letter-spacing: var(--site-tracking-wide);
	color: var(--site-secondary); text-decoration: underline; text-underline-offset: 4px;
	transition: padding var(--site-duration-fast) var(--site-ease), color var(--site-duration-fast) var(--site-ease);
}
.grille-link:hover { text-decoration-thickness: 2px; padding-left: var(--site-gutter-xs); color: var(--site-accent-dark); }

/* ---------- MEDIA figures (per-page images) ---------- */
.media { margin: 0; padding-block: var(--site-gutter-lg); }
.media-inner, .media-row-inner { width: 100%; max-width: calc(var(--site-shell-width) + 2 * var(--site-gutter-desktop)); margin-inline: auto; padding-inline: var(--site-gutter-desktop); }
.media img, .media-row img { width: 100%; height: auto; border: var(--site-stroke-thin) solid rgba(32,42,57,0.15); }
.media-row { padding-block: var(--site-gutter-lg); }
.media-row-inner { max-width: calc(var(--site-shell-width) + 2 * var(--site-gutter-desktop)); display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--site-gutter-md); }

/* ---------- LEGAL (LEGAL-06 compact) ---------- */
.voute { padding-block: var(--site-spacing-xl); counter-reset: sec; }
.voute-inner { width: 100%; max-width: calc(var(--site-shell-width) + 2 * var(--site-gutter-desktop)); margin-inline: auto; padding-inline: var(--site-gutter-desktop); }
.voute-intro { font-size: var(--site-size-body); color: var(--site-ink); margin-bottom: var(--site-gutter-lg); }
.voute-sec { margin-bottom: var(--site-gutter-md); }
.voute-h { font-size: var(--site-size-h4); margin-bottom: var(--site-gutter-xs); }
.voute-h::before { counter-increment: sec; content: '\00a7 ' counter(sec) '. '; color: var(--site-secondary); font-weight: var(--site-font-bold); }
.voute-sec p, .voute-contacts li { font-size: var(--site-type-small); line-height: var(--site-line-normal); color: var(--site-fg-muted); }
.voute-contacts { padding-left: var(--site-gutter-lg); }
.voute-disclaimer { font-size: var(--site-size-xs); font-style: italic; color: var(--site-fg-muted); margin-top: var(--site-gutter-lg); border-top: var(--site-stroke-thin) solid rgba(32,42,57,0.12); padding-top: var(--site-gutter-md); }

/* ---------- AUTHOR CARD (AUTH-05 compact inline) ---------- */
.medaillon-wrap { padding-block: var(--site-spacing-xl); }
.medaillon-inner { width: 100%; max-width: calc(var(--site-shell-width) + 2 * var(--site-gutter-desktop)); margin-inline: auto; padding-inline: var(--site-gutter-desktop); }
.medaillon { display: flex; gap: var(--site-gutter-lg); background: var(--site-surface-2); padding: var(--site-gutter-lg); align-items: flex-start; }
.medaillon-portrait { width: 120px; height: 120px; border-radius: var(--site-circle); object-fit: cover; object-position: center top; flex-shrink: 0; }
.medaillon-job { font-size: var(--site-size-xs); text-transform: uppercase; letter-spacing: var(--site-tracking-wide); color: var(--site-secondary); margin: 0 0 var(--site-gap-2xs); }
.medaillon-name { font-size: var(--site-text-h3); font-weight: var(--site-font-bold); margin: 0 0 var(--site-spacing-sm); }
.medaillon-bio { font-size: var(--site-size-body); color: var(--site-fg-muted); margin: 0; line-height: var(--site-line-normal); }
.medaillon-articles { margin-top: var(--site-spacing-xl); }
.medaillon-articles-heading { font-size: var(--site-size-h4); margin-bottom: var(--site-gutter-md); }
.medaillon-articles-list { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--site-gutter-xs); }
.medaillon-item a { color: var(--site-secondary); text-decoration: underline; text-underline-offset: 3px; font-size: var(--site-size-body); }
.medaillon-item a:hover { color: var(--site-accent-dark); }

/* ---------- AUTHOR BYLINE (BYLINE-01 compact inline) ---------- */
.carnet { padding-block: var(--site-gutter-md); }
.carnet-inner { width: 100%; max-width: calc(var(--site-shell-width) + 2 * var(--site-gutter-desktop)); margin-inline: auto; padding-inline: var(--site-gutter-desktop); display: flex; align-items: center; gap: var(--site-spacing-sm); }
.carnet-portrait { width: 48px; height: 48px; border-radius: var(--site-circle); overflow: hidden; flex-shrink: 0; display: block; }
.carnet-portrait img { width: 48px; height: 48px; object-fit: cover; object-position: center top; }
.carnet-attribution { font-family: var(--site-font-text); font-size: var(--site-size-body); color: var(--site-fg-muted); margin: 0; }
.carnet-name { color: var(--site-secondary); text-decoration: underline; }
.carnet-role { font-size: var(--site-type-small); font-style: italic; color: var(--site-fg-muted); margin-top: var(--site-gap-2xs); margin-bottom: 0; }

/* ---------- CONTACT FORM (FORM-03 single field per row) ---------- */
.brochure { padding-block: var(--site-spacing-xl); }
.brochure-inner { width: 100%; max-width: calc(var(--site-shell-width) + 2 * var(--site-gutter-desktop)); margin-inline: auto; padding-inline: var(--site-gutter-desktop); }
.brochure-intro { text-align: center; font-size: var(--site-size-body); color: var(--site-fg-muted); max-width: 540px; margin-inline: auto; margin-bottom: var(--site-gutter-lg); }
.brochure-form { max-width: 640px; margin-inline: auto; display: flex; flex-direction: column; gap: var(--site-gutter-md); }
.brochure-field { display: flex; flex-direction: column; gap: var(--site-gutter-xs); }
.brochure-field label { font-size: var(--site-type-small); font-weight: var(--site-weight-medium); }
.brochure-field input, .brochure-field textarea {
	width: 100%; font-family: var(--site-font-text); font-size: var(--site-size-body);
	padding: var(--site-spacing-sm) var(--site-gutter-md); border: var(--site-border-medium) solid var(--site-ink); border-radius: var(--site-round-xs);
	background: var(--site-page-bg); color: var(--site-ink);
}
.brochure-field input:focus, .brochure-field textarea:focus { outline: none; border-color: var(--site-secondary); }
.brochure-submit { width: 100%; height: 52px; background: var(--site-secondary); color: #fff; border: none; font-family: var(--site-heading-font); font-weight: var(--site-font-bold); text-transform: uppercase; letter-spacing: var(--site-tracking-wide); cursor: pointer; transition: background var(--site-duration-fast) var(--site-ease); }
.brochure-submit:hover { background: var(--site-accent-dark); color: #fff; }
.brochure-success { margin-top: var(--site-gutter-md); text-align: center; color: var(--site-accent-dark); font-weight: var(--site-font-bold); }

/* ---------- ERROR (ERR-04 full-bleed atmospheric) ---------- */
.porte {
	min-height: 100vh; display: flex; align-items: center; justify-content: center;
	background: linear-gradient(180deg, rgba(26,28,49,0.55), rgba(0,0,0,0.85)), url('/images/spotlight-light.webp') center/cover no-repeat;
	background-color: var(--site-brand);
}
.porte-content { text-align: center; color: #fff; padding: var(--site-spacing-xl); max-width: 640px; }
.porte-code { font-family: var(--site-heading-font); font-weight: var(--site-font-bold); font-size: clamp(80px, 18vw, 160px); line-height: 1; color: #ffffff; margin: 0; }
.porte-title { color: #fff; font-size: var(--site-fs-h2); }
.porte-text { color: rgba(255,255,255,0.85); font-size: var(--site-type-h5); line-height: var(--site-line-normal); margin-bottom: var(--site-spacing-xl); }
.porte-btn { display: inline-block; background: var(--site-secondary); color: #fff; font-family: var(--site-heading-font); font-weight: var(--site-font-bold); text-transform: uppercase; letter-spacing: var(--site-tracking-wide); padding: var(--site-spacing-sm) var(--site-spacing-xl); transition: background var(--site-duration-fast) var(--site-ease); }
.porte-btn:hover { background: var(--site-accent-dark); color: #fff; }

/* ---------- FOOTER (FOOT-07 side-anchored asymmetric) ---------- */
.bandeau { background: var(--site-brand); color: rgba(255,255,255,0.82); }
.bandeau-inner { width: 100%; max-width: calc(var(--site-shell-width) + 2 * var(--site-gutter-desktop)); max-width: calc(var(--site-shell-width) + 2 * var(--site-gutter-desktop)); margin-inline: auto; padding: var(--site-gutter-2xl) var(--site-gutter-desktop); display: grid; grid-template-columns: 2fr 1fr; gap: var(--site-spacing-xl); }
.bandeau-content { display: flex; flex-direction: column; gap: var(--site-gutter-lg); }
.bandeau-logo { font-family: var(--site-heading-font); font-weight: var(--site-font-bold); font-size: 24px; text-transform: uppercase; letter-spacing: var(--site-letter-tight); color: #fff; }
.bandeau-cols { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: var(--site-spacing-xl); }
.bandeau-heading { font-size: var(--site-fs-h6); text-transform: uppercase; letter-spacing: var(--site-tracking-wide); color: var(--site-gradient-start); margin-bottom: var(--site-gutter-md); }
.bandeau-nav ul { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--site-gutter-xs); }
.bandeau-nav a { color: rgba(255,255,255,0.8); font-size: var(--site-type-small); }
.bandeau-nav a:hover { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.bandeau-disclaimer { font-size: var(--site-size-xs); color: rgba(255,255,255,0.55); max-width: 60ch; margin: 0; }
.bandeau-copy { font-size: var(--site-type-small); color: rgba(255,255,255,0.65); }
.bandeau-accent-block { background: var(--site-secondary); padding: var(--site-spacing-xl); display: flex; align-items: center; justify-content: center; }
.bandeau-accent-label { font-family: var(--site-heading-font); font-weight: var(--site-font-bold); font-size: var(--site-fs-h2); text-transform: uppercase; letter-spacing: var(--site-letter-tight); color: var(--site-page-bg); writing-mode: vertical-rl; transform: rotate(180deg); }

/* ---------- BACK TO TOP ---------- */
.back-to-top {
	position: fixed; right: var(--site-gutter-lg); bottom: var(--site-gutter-lg); z-index: 90;
	background: var(--site-brand); color: #fff; border: none; cursor: pointer;
	padding: var(--site-spacing-sm) var(--site-gutter-md); font-family: var(--site-heading-font); font-weight: var(--site-font-bold); font-size: var(--site-type-small);
}
.back-to-top[hidden] { display: none; }

/* ---------- COOKIE (COOK-06 detailed with prefs) ---------- */
.pignon {
	position: fixed; left: 0; right: 0; bottom: 0; z-index: 150;
	background: var(--site-brand); color: #fff; border-top: var(--site-border-medium) solid var(--site-secondary);
}
.pignon[hidden] { display: none; }
.pignon-inner { width: 100%; max-width: calc(var(--site-shell-width) + 2 * var(--site-gutter-desktop)); max-width: calc(var(--site-shell-width) + 2 * var(--site-gutter-desktop)); margin-inline: auto; padding: var(--site-gutter-md) var(--site-gutter-desktop); display: flex; align-items: center; gap: var(--site-gutter-lg); flex-wrap: wrap; }
.pignon-message { font-size: var(--site-type-small); line-height: var(--site-line-normal); margin: 0; flex: 1 1 320px; color: rgba(255,255,255,0.9); }
.pignon-actions { display: flex; align-items: center; gap: var(--site-spacing-sm); flex-wrap: wrap; }
.pignon-prefs { color: var(--site-gradient-start); text-decoration: underline; font-size: var(--site-type-small); }
.pignon-prefs:hover { color: #fff; }
.pignon-decline { background: none; border: var(--site-stroke-thin) solid rgba(255,255,255,0.5); color: #fff; padding: var(--site-gutter-xs) var(--site-gutter-md); cursor: pointer; font-size: var(--site-type-small); }
.pignon-decline:hover { border-color: #fff; }
.pignon-accept { background: var(--site-secondary); border: none; color: #fff; padding: var(--site-gutter-xs) var(--site-gutter-lg); cursor: pointer; font-family: var(--site-heading-font); font-weight: var(--site-font-bold); font-size: var(--site-type-small); }
.pignon-accept:hover { background: var(--site-accent-dark); color: #fff; }

/* ---------- utility / structural classes ---------- */
.relief-nav-item { display: flex; align-items: center; }
.relief-mobile-item { display: block; }
.carnet-text { display: flex; flex-direction: column; }
.medaillon-body { display: flex; flex-direction: column; gap: var(--site-gap-2xs); }
.media--context .media-inner { padding-block: var(--site-spacing-sm); }
.media--detail, .media--process { margin: 0; }

/* ---------- RESPONSIVE ---------- */
@media (max-width: 1240px) {
	:root { --site-type-h1: 52px; --site-fs-h2: 34px; }
}
@media (max-width: 900px) {
	:root {
		--site-type-h1: 36px; --site-fs-h2: 28px; --site-text-h3: 22px; --site-size-h4: 18px; --site-type-h5: 16px; --site-fs-h6: 14px;
		--site-size-body: 16px; --site-type-small: 13px; --site-size-xs: 11px;
		--site-gutter-desktop: 24px;
	}
	body { padding-top: var(--site-header-h-mobile); }
	.relief { height: var(--site-header-h-mobile); }
	.relief-nav { display: none; }
	.relief-toggle { display: flex; }
	.relief-mobile { display: none; position: fixed; top: var(--site-header-h-mobile); left: 0; right: 0; background: var(--site-brand); border-top: var(--site-stroke-thin) solid rgba(255,255,255,0.1); padding: var(--site-gutter-md) var(--site-gutter-lg); }
	.relief-mobile.is-open { display: block; }
	.relief-mobile-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--site-spacing-sm); }
	.relief-mobile-link { color: #fff; font-family: var(--site-heading-font); font-weight: var(--site-weight-medium); font-size: var(--site-size-body); display: block; padding-block: var(--site-gutter-xs); }
	.relief-mobile-link[aria-current='page'] { color: var(--site-gradient-start); }
	.vitrail-frame { padding: var(--site-gutter-lg); }
	.placard-grid, .pupitre-grid, .alcove-grid, .media-row-inner { grid-template-columns: 1fr; }
	.placard-item, .placard-item:nth-child(1), .placard-item:nth-child(2), .placard-item:nth-child(3), .placard-item:nth-child(4) { grid-column: span 1; grid-row: auto; }
	.vestibule-inner p, .vestibule-inner ul, .vestibule-inner ol, .vestibule-inner h3 { padding-left: var(--site-gutter-md); }
	.bandeau-inner { grid-template-columns: 1fr; }
	.bandeau-accent-block { padding: var(--site-gutter-lg); }
	.bandeau-accent-label { writing-mode: horizontal-tb; transform: none; }
}
@media (max-width: 720px) {
	.pignon-inner { padding: 12px 14px !important; gap: 8px !important; flex-direction: column; align-items: flex-start; }
	.pignon-message { font-size: 13px !important; line-height: 1.35 !important; }
	.pignon-actions { width: 100%; }
	.pignon-accept, .pignon-decline { padding: 8px 14px !important; font-size: 12px !important; min-height: 36px !important; }
	.bandeau-cols { grid-template-columns: 1fr; }
}
