/* canvas-plus.css — Mr Fortune NZ. Design tokens are site-prefixed (--xmb-*). */

/* ============================================================ tokens */
:root {
	/* palette (colors.*.final) */
	--xmb-anchor: #b287a9;
	--xmb-vivid: #8688b4;
	--xmb-press: #7173a5;
	--xmb-base-plane: #231a21;
	--xmb-panel: #2f2430;
	--xmb-front: #ffffff;
	--xmb-soft-text: #c2c0c0;
	--xmb-rule: rgba(255, 255, 255, 0.12);
	--xmb-edge-hard: rgba(255, 255, 255, 0.24);
	--xmb-grad-1: #cfd0e1;
	--xmb-gradient-mid: #ababc7;
	--xmb-rg-banner: #bf1e2e;
	/* readable accent for text usages (AA on dark plane) */
	--xmb-accent-lite: #c7c8ea;

	/* spacing (SPACE-04) */
	--xmb-2xs: 4px; --xmb-xs: 8px; --xmb-sm: 12px; --xmb-md: 20px;
	--xmb-lg: 30px; --xmb-xl: 46px; --xmb-2xl: 64px; --xmb-3xl: 88px;

	/* radius (GEO-06) */
	--xmb-pill: 999px; --xmb-round-full: 50%;
	--r-2xs: 3px; --r-xs: 5px; --r-sm: 8px; --r-md: 12px;
	--r-lg: 18px; --r-xl: 24px; --r-2xl: 32px; --r-3xl: 44px;

	/* typography (TYPO-10) */
	--xmb-lead: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
	--xmb-prose: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
	--xmb-h1: clamp(30px, 4.4vw, 46px);
	--xmb-display-2: clamp(25px, 3vw, 34px);
	--xmb-sub: clamp(20px, 2.2vw, 25px);
	--xmb-display-4: clamp(18px, 1.7vw, 21px);
	--xmb-sm-2: 17px;
	--xmb-micro-head: 14px;
	--xmb-base: 16px; --xmb-small: 14px; --xmb-tiny: 12px;
	--xmb-dense: 1.16; --xmb-even: 1.55; --xmb-roomy: 1.78;
	--xmb-plain: 400; --xmb-half: 500; --xmb-heavy: 700;
	--xmb-close: -0.02em; --xmb-normal: 0; --xmb-spread: 0.08em;

	/* shadows */
	--d-2xs: 0 1px 2px rgba(0,0,0,.25);
	--d-xs: 0 1px 3px rgba(0,0,0,.3);
	--d-sm: 0 2px 6px rgba(0,0,0,.32);
	--d-md: 0 6px 18px rgba(0,0,0,.36);
	--d-lg: 0 12px 34px rgba(0,0,0,.42);
	--d-xl: 0 20px 50px rgba(0,0,0,.48);
	--d-2xl: 0 28px 70px rgba(0,0,0,.52);
	--d-3xl: 0 36px 90px rgba(0,0,0,.58);

	/* motion */
	--xmb-swift: 104ms; --xmb-regular: 230ms; --xmb-calm: 365ms;
	--xmb-exit: cubic-bezier(0.27, 0.87, 0.34, 1);
	--xmb-in: cubic-bezier(0.39, 0.09, 0.53, 0.94);
	--xmb-swing: cubic-bezier(0.39, 0.09, 0.53, 0.94);
	--xmb-bounce: cubic-bezier(0.21, 1.8, 0.74, 1.15);

	/* containers (CONT-08) */
	--xmb-page: 1020px;
	--xmb-readable: 720px;
	--xmb-narrow: 540px;
	--xmb-padding-desktop: 32px;
	--xmb-pad-md: 24px;
	--xmb-pad-sm: 18px;
	--xmb-inner: calc(var(--xmb-page) + 2 * var(--xmb-padding-desktop));

	/* borders */
	--xmb-fine: 1px; --b-regular: 2px; --b-heavy: 3px;

	/* header */
	--xmb-h-lg: 92px; --xmb-short: 64px;
	--xmb-rg-height: 40px;
}

/* ============================================================ reset / base */
*, *::before, *::after { box-sizing: border-box; }
html, body { overflow-x: clip; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
	margin: 0;
	padding-top: var(--xmb-h-lg);
	font-family: var(--xmb-prose);
	font-size: var(--xmb-base);
	line-height: var(--xmb-even);
	color: var(--xmb-front);
	background: var(--xmb-base-plane);
	-webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; }
h1, h2, h3, h4, h5, h6 { font-family: var(--xmb-lead); line-height: var(--xmb-dense); overflow-wrap: anywhere; margin: 0; }
h1 { font-size: var(--xmb-h1); letter-spacing: var(--xmb-close); }
h2 { font-size: var(--xmb-display-2); }
h3 { font-size: var(--xmb-sub); }
p { margin: 0; }
main { display: block; }
:target { scroll-margin-top: calc(var(--xmb-h-lg) + var(--xmb-md)); }

/* self-hosted Inter */
@font-face { font-family: "Inter"; font-style: normal; font-weight: 400; font-display: swap; src: url("/cache-51/fonts/inter-400.woff2") format("woff2"); }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 500; font-display: swap; src: url("/cache-51/fonts/inter-500.woff2") format("woff2"); }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 600; font-display: swap; src: url("/cache-51/fonts/inter-600.woff2") format("woff2"); }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 700; font-display: swap; src: url("/cache-51/fonts/inter-700.woff2") format("woff2"); }

/* skip link + a11y */
.skip-hop { position: absolute; left: 8px; top: -200px; z-index: 200; background: var(--xmb-panel); color: var(--xmb-front); padding: 10px 16px; border-radius: var(--r-sm); }
.skip-hop:focus { top: 8px; }
:focus-visible { outline: 2px solid var(--xmb-accent-lite); outline-offset: 2px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); border: 0; }

/* shared section inner wrapper (single site width) */
.estafette-austere-body, .peristyle-fluide-body, .dais-bas-body, .enceinte-etroit-body, .jube-profond-body, .ambon-lumineux-body,
.bosquet-calme-body, .gardien-lourd-body, .prie-dieu-noble-body, .loggia-haute-pur-body, .support-etroit-body, .receptacle-austere-body,
.bosquet-fluide-body {
	width: 100%;
	max-width: var(--xmb-inner);
	margin-inline: auto;
	padding-inline: var(--xmb-padding-desktop);
}

/* section vertical rhythm */
.prie-dieu-noble, .jube-profond, .ambon-lumineux, .bosquet-calme, .gardien-lourd, .loggia-haute-pur, .enceinte-etroit, .receptacle-austere, .support-etroit, .bosquet-fluide { padding-block: var(--xmb-xl); }

/* ============================================================ header (HEAD-OVER, sticky-shrink) */
.estafette-austere {
	position: fixed; top: 0; left: 0; right: 0; z-index: 100;
	background: transparent;
	transition: background var(--xmb-regular) var(--xmb-exit), height var(--xmb-regular) var(--xmb-exit), box-shadow var(--xmb-regular) var(--xmb-exit);
}
.estafette-austere-body {
	display: flex; align-items: center; gap: var(--xmb-md);
	height: 92px;
	transition: height var(--xmb-regular) var(--xmb-exit);
}
.estafette-austere.is-stuck { background: rgba(35, 26, 33, 0.94); backdrop-filter: blur(10px); box-shadow: var(--d-sm); }
.estafette-austere.is-stuck .estafette-austere-body { height: var(--xmb-short); }
.estafette-austere-logo { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: 60px; height: 60px; border-radius: var(--xmb-round-full); background: rgba(255,255,255,0.06); overflow: hidden; transition: width var(--xmb-regular) var(--xmb-exit), height var(--xmb-regular) var(--xmb-exit); }
.estafette-austere-logo img { height: 60px; width: 60px; object-fit: contain; transition: height var(--xmb-regular) var(--xmb-exit); }
.estafette-austere.is-stuck .estafette-austere-logo { width: 48px; height: 48px; }
.estafette-austere.is-stuck .estafette-austere-logo img { height: 48px; width: 48px; }
.estafette-austere-menu { margin-left: auto; }
.estafette-austere-chain { display: flex; align-items: center; gap: var(--xmb-lg); list-style: none; margin: 0; padding: 0; }
.estafette-austere-band { display: inline-flex; align-items: center; position: relative; }
.estafette-austere-band + .estafette-austere-band::before { content: "·"; color: var(--xmb-soft-text); margin-right: var(--xmb-lg); margin-left: calc(-1 * var(--xmb-lg) / 2); opacity: .7; }
.estafette-austere-step { text-decoration: none; color: var(--xmb-front); font-size: 15px; font-weight: 500; letter-spacing: var(--xmb-normal); white-space: nowrap; padding: 6px 4px; transition: color var(--xmb-swift) var(--xmb-exit); }
.estafette-austere-step:hover { color: var(--xmb-accent-lite); }
.estafette-austere-step-on { color: var(--xmb-front); }
.estafette-austere-step-on::after { content: ""; position: absolute; left: 4px; right: 4px; bottom: -4px; height: 3px; border-radius: var(--xmb-pill); background: var(--xmb-vivid); }
.estafette-austere-more { position: relative; }
.estafette-austere-more[hidden] { display: none; }
.estafette-austere-more-opener { background: transparent; border: 0; color: var(--xmb-front); font: inherit; font-size: 15px; font-weight: 500; cursor: pointer; padding: 6px 8px; }
.estafette-austere-more-opener::after { content: " ▾"; }
.estafette-austere-more-menu { position: absolute; right: 0; top: calc(100% + 8px); min-width: 200px; background: var(--xmb-panel); border: var(--xmb-fine) solid var(--xmb-rule); border-radius: var(--r-md); box-shadow: var(--d-md); list-style: none; margin: 0; padding: var(--xmb-xs); display: none; }
.estafette-austere-more-menu.is-open { display: block; }
.estafette-austere-more-menu li { display: block; }
.estafette-austere-more-menu .estafette-austere-step { display: block; padding: 10px 12px; }
.estafette-austere-pitch { flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; text-decoration: none; white-space: nowrap; font-weight: 700; font-size: 14px; padding: 11px 22px; border-radius: var(--xmb-pill); background: var(--xmb-vivid); color: var(--xmb-base-plane); }
.estafette-austere-opener { flex-shrink: 0; }
.estafette-austere-burger { display: none; margin-left: auto; width: 44px; height: 44px; background: rgba(255,255,255,0.08); border: 0; border-radius: var(--r-sm); cursor: pointer; padding: 0; flex-direction: column; align-items: center; justify-content: center; gap: 5px; }
.estafette-austere-burger span { display: block; width: 22px; height: 2px; background: var(--xmb-front); border-radius: 2px; }
.estafette-austere-drawer { display: none; }
.estafette-austere-drawer[hidden] { display: none; }
.estafette-austere-drawer.is-open { display: block; background: rgba(35,26,33,0.98); border-top: var(--xmb-fine) solid var(--xmb-rule); }
.estafette-austere-drawer-chain { list-style: none; margin: 0; padding: var(--xmb-sm) var(--xmb-md); }
.estafette-austere-drawer-chain li { border-bottom: var(--xmb-fine) solid var(--xmb-rule); }
.estafette-austere-drawer-chain li:last-child { border-bottom: 0; }
.estafette-austere-drawer-chain .estafette-austere-step { display: block; padding: 14px 4px; }

/* ============================================================ hero (HERO-07 Top-Tile + Text Below) */
.dais-bas { margin-top: calc(-1 * var(--xmb-h-lg)); }
.dais-bas-image-wrap { margin: 0; width: 100%; }
.dais-bas-image { width: 100%; height: 400px; object-fit: cover; }
.dais-bas-body { padding-block: var(--xmb-2xl); display: flex; flex-direction: column; gap: var(--xmb-md); align-items: flex-start; }
.dais-bas-body h1 { max-width: 18ch; }
.dais-bas-under { max-width: var(--xmb-narrow); color: var(--xmb-soft-text); font-size: var(--xmb-sm-2); line-height: var(--xmb-even); }
.dais-bas-under a { color: var(--xmb-accent-lite); }
.dais-bas-pitch { display: inline-flex; align-items: center; justify-content: center; text-decoration: none; font-weight: 700; padding: 14px 30px; border-radius: var(--xmb-pill); background: var(--xmb-vivid); color: var(--xmb-base-plane); }

/* ============================================================ prose (PROSE-07 numbered headings) */
.prie-dieu-noble-body { counter-reset: sec; }
.prie-dieu-noble-hdr { counter-increment: sec; font-size: var(--xmb-display-2); font-weight: 600; margin-block-start: var(--xmb-xl); margin-block-end: var(--xmb-sm); }
.prie-dieu-noble-body > .prie-dieu-noble-hdr:first-of-type, .prie-dieu-noble-body > .prie-dieu-noble-figure:first-child + .prie-dieu-noble-hdr { margin-block-start: 0; }
.prie-dieu-noble-hdr::before { content: counter(sec) ". "; color: var(--xmb-accent-lite); font-family: var(--xmb-lead); font-weight: 700; margin-right: var(--xmb-xs); }
.prie-dieu-noble-words { margin-block: var(--xmb-md); line-height: var(--xmb-roomy); color: var(--xmb-front); }
.prie-dieu-noble-words a { color: var(--xmb-accent-lite); text-decoration: underline; text-underline-offset: 2px; }
.prie-dieu-noble-chain { margin-block: var(--xmb-md); padding-left: var(--xmb-lg); line-height: var(--xmb-roomy); }
.prie-dieu-noble-chain li { margin-block: var(--xmb-xs); }
.prie-dieu-noble-chain-num { list-style: decimal; }
.prie-dieu-noble-figure { margin: 0 0 var(--xmb-lg); }
.prie-dieu-noble-figure img { width: 100%; height: auto; max-height: 58vh; object-fit: cover; border-radius: var(--r-lg); box-shadow: var(--d-sm); }
.prie-dieu-noble-figure-context { width: 100%; }
.prie-dieu-noble-figure-detail { max-width: 640px; }
.prie-dieu-noble-nudge { margin-block: var(--xmb-lg); }
.prie-dieu-noble-pitch { display: inline-flex; align-items: center; text-decoration: none; font-weight: 700; padding: 12px 26px; border-radius: var(--xmb-pill); background: var(--xmb-vivid); color: var(--xmb-base-plane); }

/* ============================================================ data-table (TABLE-08 floating cards) */
.loggia-haute-pur h2 { margin-bottom: var(--xmb-lg); }
.loggia-haute-pur-chain { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: var(--xmb-md); }
.loggia-haute-pur-card { background: var(--xmb-panel); border: var(--xmb-fine) solid var(--xmb-rule); border-radius: var(--r-md); padding: var(--xmb-lg); display: grid; gap: var(--xmb-sm); }
.loggia-haute-pur-slot { display: flex; flex-direction: column; gap: 2px; }
.loggia-haute-pur-chip { font-size: var(--xmb-tiny); text-transform: uppercase; letter-spacing: var(--xmb-spread); color: var(--xmb-soft-text); }
.loggia-haute-pur-value { font-size: var(--xmb-base); font-weight: 600; color: var(--xmb-front); }

/* ============================================================ items-grid (GRID-11 mixed block sizes) */
.jube-profond h2 { margin-bottom: var(--xmb-lg); }
.jube-profond-chain { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--xmb-md); }
.jube-profond-card { background: var(--xmb-panel); border: var(--xmb-fine) solid var(--xmb-rule); border-radius: var(--r-lg); padding: var(--xmb-lg); grid-column: span 2; display: flex; flex-direction: column; gap: var(--xmb-sm); }
.jube-profond-card-big { grid-column: span 2; grid-row: span 2; }
.jube-profond-card-wide { grid-column: span 4; }
.jube-profond-card-std { grid-column: span 2; }
.jube-profond-image { color: var(--xmb-vivid); fill: currentColor; }
.jube-profond-lede { font-size: var(--xmb-display-4); font-weight: 700; }
.jube-profond-words { color: var(--xmb-soft-text); line-height: var(--xmb-even); }

/* ============================================================ reviews (REV-07 color-coded) */
.bosquet-calme h2 { margin-bottom: var(--xmb-lg); }
.bosquet-calme-chain { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--xmb-md); }
.bosquet-calme-card { padding: var(--xmb-lg); border-radius: var(--r-md); border: var(--xmb-fine) solid var(--xmb-rule); background: var(--xmb-panel); display: flex; flex-direction: column; gap: var(--xmb-sm); }
.bosquet-calme-card-hi { background: rgba(134, 136, 180, 0.14); }
.bosquet-calme-card-mid { background: var(--xmb-panel); }
.bosquet-calme-card-lo { background: rgba(178, 135, 169, 0.12); }
.bosquet-calme-facts { display: flex; align-items: center; gap: var(--xmb-sm); }
.bosquet-calme-score { font-family: var(--xmb-lead); font-size: var(--xmb-display-2); font-weight: 700; color: var(--xmb-accent-lite); }
.bosquet-calme-dots { color: var(--xmb-gradient-mid); letter-spacing: 2px; }
.bosquet-calme-words { margin: 0; font-style: italic; line-height: var(--xmb-even); color: var(--xmb-front); }
.bosquet-calme-band { display: flex; align-items: center; justify-content: space-between; gap: var(--xmb-sm); font-size: var(--xmb-small); color: var(--xmb-soft-text); }
.bosquet-calme-handle { font-weight: 600; color: var(--xmb-front); }
.bosquet-calme-date { color: var(--xmb-soft-text); white-space: nowrap; }

/* ============================================================ faq (FAQ-05 details native) */
.ambon-lumineux h2 { margin-bottom: var(--xmb-md); }
.ambon-lumineux-chain { list-style: none; margin: 0; padding: 0; }
.ambon-lumineux-chain > li { border-bottom: var(--xmb-fine) solid var(--xmb-rule); }
.ambon-lumineux-entry { padding-block: var(--xmb-md); }
.ambon-lumineux-lede { cursor: pointer; list-style: none; display: flex; align-items: center; justify-content: space-between; gap: var(--xmb-md); }
.ambon-lumineux-lede::-webkit-details-marker { display: none; }
.ambon-lumineux-lede::after { content: "⌄"; font-size: 1.4em; color: var(--xmb-accent-lite); transition: transform var(--xmb-regular) var(--xmb-exit); }
.ambon-lumineux-entry[open] .ambon-lumineux-lede::after { transform: rotate(180deg); }
.ambon-lumineux-hdr { font-size: var(--xmb-sm-2); font-weight: 700; margin: 0; }
.ambon-lumineux-matter { padding-top: var(--xmb-sm); color: var(--xmb-soft-text); line-height: var(--xmb-roomy); }
.ambon-lumineux-matter p { margin: 0; }

/* ============================================================ cta-block (CTA-05 dual action) */
.gardien-lourd { background: var(--xmb-base-plane); border-top: var(--xmb-fine) solid var(--xmb-rule); border-bottom: var(--xmb-fine) solid var(--xmb-rule); text-align: center; }
.gardien-lourd-body { display: flex; flex-direction: column; align-items: center; gap: var(--xmb-md); }
.gardien-lourd-under { max-width: var(--xmb-narrow); color: var(--xmb-soft-text); line-height: var(--xmb-even); }
.gardien-lourd-buttons { display: flex; flex-wrap: wrap; gap: var(--xmb-md); justify-content: center; }
.gardien-lourd-pitch { display: inline-flex; align-items: center; justify-content: center; text-decoration: none; font-weight: 700; padding: 13px 28px; border-radius: var(--xmb-pill); }
.gardien-lourd-pitch-main { background: var(--xmb-vivid); color: var(--xmb-base-plane); }
.gardien-lourd-pitch-quiet { background: transparent; border: var(--xmb-fine) solid var(--xmb-soft-text); color: var(--xmb-front); }
.gardien-lourd-pitch-quiet:hover { border-color: var(--xmb-front); background: rgba(178, 135, 169, 0.08); color: var(--xmb-front); }

/* ============================================================ page-header (PHEAD-02 compact centered) */
.enceinte-etroit { background: var(--xmb-base-plane); text-align: center; padding-block: var(--xmb-2xl) var(--xmb-xl); }
.enceinte-etroit-body { display: flex; flex-direction: column; align-items: center; gap: var(--xmb-md); }
.enceinte-etroit-rule { width: 72px; height: 3px; border-radius: var(--xmb-pill); background: var(--xmb-vivid); }
.enceinte-etroit-under { max-width: 580px; color: var(--xmb-soft-text); line-height: var(--xmb-even); }

/* ============================================================ legal (LEGAL-02 numbered) */
.support-etroit-body { counter-reset: leg; }
.support-etroit-entry { counter-increment: leg; margin-block-end: var(--xmb-xl); }
.support-etroit-hdr { font-size: var(--xmb-sub); font-weight: 700; margin-block-end: var(--xmb-sm); }
.support-etroit-hdr::before { content: counter(leg) ". "; color: var(--xmb-accent-lite); font-family: var(--xmb-lead); font-weight: 700; margin-right: var(--xmb-xs); }
.support-etroit-words { margin-block: var(--xmb-sm); padding-left: var(--xmb-md); line-height: var(--xmb-roomy); color: var(--xmb-front); }
.support-etroit-chain { padding-left: calc(var(--xmb-md) + var(--xmb-lg)); line-height: var(--xmb-roomy); }
.support-etroit-chain li { margin-block: var(--xmb-xs); }
.support-etroit-note { margin-block-start: var(--xmb-lg); padding-top: var(--xmb-md); border-top: var(--xmb-fine) solid var(--xmb-rule); color: var(--xmb-soft-text); font-size: var(--xmb-small); }

/* ============================================================ contact-form (FORM-03 compact) */
.receptacle-austere-under { max-width: var(--xmb-narrow); margin-inline: auto; text-align: center; color: var(--xmb-soft-text); margin-bottom: var(--xmb-lg); }
.receptacle-austere-form { max-width: var(--xmb-readable); margin-inline: auto; display: flex; flex-direction: column; gap: var(--xmb-md); }
.receptacle-austere-slot { display: flex; flex-direction: column; gap: var(--xmb-2xs); }
.receptacle-austere-slot label { font-size: var(--xmb-small); color: var(--xmb-soft-text); }
.receptacle-austere-slot input, .receptacle-austere-slot textarea { width: 100%; font: inherit; color: var(--xmb-front); background: var(--xmb-panel); border: var(--xmb-fine) solid var(--xmb-rule); border-radius: var(--r-sm); padding: 12px 14px; }
.receptacle-austere-slot input:focus, .receptacle-austere-slot textarea:focus { border-color: var(--xmb-vivid); outline: none; }
.receptacle-austere-button { width: 100%; height: 52px; border: 0; border-radius: var(--r-sm); background: var(--xmb-press); color: var(--xmb-front); font-weight: 700; cursor: pointer; }
.receptacle-austere-button:hover { background: var(--xmb-vivid); color: var(--xmb-base-plane); }
.receptacle-austere-message { margin-top: var(--xmb-md); padding: var(--xmb-md); border-radius: var(--r-sm); background: rgba(134,136,180,0.14); color: var(--xmb-front); text-align: center; }

/* ============================================================ author-card (AUTH-06 full-hero) */
.bosquet-fluide { background: linear-gradient(135deg, var(--xmb-anchor), var(--xmb-base-plane)); padding-block: var(--xmb-3xl); }
.bosquet-fluide-body { display: grid; grid-template-columns: 280px 1fr; gap: var(--xmb-2xl); align-items: center; }
.bosquet-fluide-portrait-wrap { width: 280px; }
.bosquet-fluide-portrait { width: 280px; height: 350px; object-fit: cover; border-radius: var(--r-lg); box-shadow: var(--d-lg); }
.bosquet-fluide-matter { display: flex; flex-direction: column; gap: var(--xmb-md); }
.bosquet-fluide-chip { text-transform: uppercase; letter-spacing: var(--xmb-spread); font-size: var(--xmb-small); color: var(--xmb-front); }
.bosquet-fluide-handle { font-size: clamp(38px, 6vw, 60px); }
.bosquet-fluide-words { max-width: 540px; font-size: var(--xmb-sm-2); line-height: var(--xmb-even); color: var(--xmb-front); }
.bosquet-fluide-chain { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--xmb-xs); }
.bosquet-fluide-chain li { background: rgba(255,255,255,0.12); border-radius: var(--xmb-pill); padding: 6px 14px; font-size: var(--xmb-small); }
.bosquet-fluide-articles { padding-block: var(--xmb-xl); }
.bosquet-fluide-articles-hdr { margin-bottom: var(--xmb-md); }
.bosquet-fluide-articles-chain { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--xmb-xs); }
.bosquet-fluide-articles-entry a { color: var(--xmb-accent-lite); text-decoration: underline; text-underline-offset: 2px; }

/* ============================================================ author-byline (BYLINE-04 quote) */
.chasse-calme { padding-block: var(--xmb-xl); }
.chasse-calme-quote { max-width: 600px; margin-inline: auto; text-align: center; position: relative; padding-top: var(--xmb-lg); }
.chasse-calme-quote > p { font-family: var(--xmb-lead); font-size: var(--xmb-display-4); font-style: italic; line-height: var(--xmb-even); color: var(--xmb-front); margin: 0; }
.chasse-calme-quote::before { content: "\201C"; position: absolute; top: -18px; left: 50%; transform: translateX(-50%); font-family: var(--xmb-lead); font-size: 60px; color: var(--xmb-accent-lite); line-height: 1; }
.chasse-calme-facts { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: var(--xmb-xs); margin-top: var(--xmb-md); }
.chasse-calme-portrait { width: 40px; height: 40px; border-radius: var(--xmb-round-full); object-fit: cover; }
.chasse-calme-handle { font-style: normal; }
.chasse-calme-handle a { color: var(--xmb-accent-lite); font-weight: 700; text-decoration: none; }
.chasse-calme-position { font-size: var(--xmb-small); font-style: italic; color: var(--xmb-soft-text); }

/* ============================================================ error (ERR-04 full-bleed) */
.gardien-moderne { position: relative; min-height: calc(100vh - var(--xmb-h-lg)); margin-top: calc(-1 * var(--xmb-h-lg)); padding-top: var(--xmb-h-lg); display: flex; align-items: center; justify-content: center; overflow: hidden; }
.gardien-moderne-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.gardien-moderne::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(35,26,33,.55), rgba(35,26,33,.9)); }
.gardien-moderne-matter { position: relative; z-index: 1; text-align: center; max-width: var(--xmb-narrow); padding: var(--xmb-lg); display: flex; flex-direction: column; align-items: center; gap: var(--xmb-md); }
.gardien-moderne-lede { font-size: clamp(30px, 6vw, 56px); color: var(--xmb-front); }
.gardien-moderne-words { color: var(--xmb-grad-1); line-height: var(--xmb-even); }
.gardien-moderne-button { display: inline-flex; align-items: center; text-decoration: none; font-weight: 700; padding: 13px 28px; border-radius: var(--xmb-pill); background: var(--xmb-press); color: var(--xmb-front); }

/* ============================================================ footer (FOOT-04 sticky mini) */
.peristyle-fluide { border-top: var(--xmb-fine) solid var(--xmb-rule); background: rgba(35,26,33,0.96); }
.peristyle-fluide-body { display: flex; align-items: center; justify-content: space-between; gap: var(--xmb-md); min-height: 64px; padding-block: var(--xmb-sm); flex-wrap: wrap; }
.peristyle-fluide-words { font-size: var(--xmb-tiny); color: var(--xmb-soft-text); }
.peristyle-fluide-menu { display: flex; align-items: center; gap: var(--xmb-md); flex-wrap: wrap; }
.peristyle-fluide-step { font-size: var(--xmb-tiny); text-transform: uppercase; letter-spacing: var(--xmb-spread); color: var(--xmb-soft-text); text-decoration: none; }
.peristyle-fluide-step:hover { color: var(--xmb-front); }

/* ============================================================ rg-band (RG-06 stuck bottom) */
.rg-band { position: fixed; left: 0; right: 0; bottom: 0; z-index: 95; min-height: var(--xmb-rg-height); display: flex; align-items: center; justify-content: center; background: var(--xmb-rg-banner); padding: 6px 14px; text-align: center; }
.rg-band p { margin: 0; font-size: var(--xmb-tiny); color: var(--xmb-front); line-height: 1.35; }
.rg-band a { color: var(--xmb-front); text-decoration: underline; font-weight: 600; }

/* ============================================================ cookie (COOK-01 floating pill) */
.ciboire-brut { position: fixed; inset-inline: var(--xmb-md); inset-block-end: calc(var(--xmb-rg-height) + var(--xmb-md)); max-width: var(--xmb-narrow); margin-inline: auto; z-index: 96; display: none; }
.ciboire-brut[hidden] { display: none; }
.ciboire-brut.is-visible { display: block; }
.ciboire-brut-matter { background: var(--xmb-panel); border: var(--xmb-fine) solid var(--xmb-edge-hard); border-radius: var(--r-md); padding: var(--xmb-md); box-shadow: var(--d-md); display: flex; flex-wrap: wrap; align-items: center; gap: var(--xmb-md); }
.ciboire-brut-message { flex: 1 1 240px; margin: 0; font-size: var(--xmb-small); line-height: var(--xmb-even); color: var(--xmb-soft-text); }
.ciboire-brut-buttons { display: flex; gap: var(--xmb-sm); }
.ciboire-brut-yes { min-height: 40px; padding-inline: var(--xmb-md); border: 0; border-radius: var(--r-sm); background: var(--xmb-press); color: var(--xmb-front); font-weight: 700; font-size: var(--xmb-small); cursor: pointer; }
.ciboire-brut-yes:hover { background: var(--xmb-vivid); color: var(--xmb-base-plane); }
.ciboire-brut-refuse { min-height: 40px; padding-inline: var(--xmb-md); border: var(--xmb-fine) solid var(--xmb-rule); border-radius: var(--r-sm); background: transparent; color: var(--xmb-front); font-size: var(--xmb-small); cursor: pointer; }
.ciboire-brut-refuse:hover { background: rgba(255,255,255,0.05); }

/* ============================================================ tablet */
@media (max-width: 1024px) {
	.jube-profond-chain { grid-template-columns: repeat(2, 1fr); }
	.jube-profond-card, .jube-profond-card-big, .jube-profond-card-wide, .jube-profond-card-std { grid-column: span 1; grid-row: auto; }
	.bosquet-fluide-body { grid-template-columns: 200px 1fr; gap: var(--xmb-xl); }
	.bosquet-fluide-portrait-wrap, .bosquet-fluide-portrait { width: 200px; }
	.bosquet-fluide-portrait { height: 250px; }
}

/* ============================================================ mobile */
@media (max-width: 860px) {
	body { padding-top: var(--xmb-short); }
	.dais-bas { margin-top: calc(-1 * var(--xmb-short)); }
	.gardien-moderne { margin-top: calc(-1 * var(--xmb-short)); padding-top: var(--xmb-short); min-height: calc(100vh - var(--xmb-short)); }
	:target { scroll-margin-top: calc(var(--xmb-short) + var(--xmb-md)); }
	.estafette-austere-body { height: var(--xmb-short); }
	.estafette-austere-menu { display: none; }
	.estafette-austere .estafette-austere-pitch { display: none; }
	.estafette-austere-burger { display: inline-flex; }
	.dais-bas-image { height: 220px; }
	.dais-bas-body { padding-block: var(--xmb-xl); }
	.jube-profond-chain { grid-template-columns: 1fr; }
	.bosquet-calme-chain { grid-template-columns: 1fr; }
	.loggia-haute-pur-chain { grid-template-columns: 1fr; }
	.bosquet-fluide-body { grid-template-columns: 1fr; gap: var(--xmb-lg); }
	.bosquet-fluide-portrait-wrap, .bosquet-fluide-portrait { width: 100%; max-width: 320px; }
	.bosquet-fluide-portrait { height: 380px; }
	.peristyle-fluide-body { flex-direction: column; align-items: flex-start; gap: var(--xmb-sm); }
	.rg-band p { font-size: 11px; }
}

@media (max-width: 720px) {
	.ciboire-brut-matter { padding: 12px 14px; gap: 8px; }
	.ciboire-brut-message { font-size: 13px; line-height: 1.35; flex-basis: 100%; }
	.ciboire-brut-buttons { width: 100%; }
	.ciboire-brut-yes, .ciboire-brut-refuse { flex: 1; min-height: 36px; }
}

/* reduced motion */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; transition-duration: 0.001ms !important; scroll-behavior: auto !important; }
}
.luzu-pick{display:inline-flex;align-items:center;justify-content:center;padding:11px 22px;border-radius:var(--xmb-pill);font-size:14px;font-weight:700}
.luzu-pick{
  background:#C026D3;color:#FFFFFF;text-decoration:none;
  transition:background 0.14s cubic-bezier(.2,.7,.3,1),transform 0.14s cubic-bezier(.2,.7,.3,1);}
.luzu-pick.luzu-pick{color:#FFFFFF;text-decoration:none;}
.luzu-pick:hover{background:#A21CAF;color:#FFFFFF;animation:none}
.luzu-pick.luzu-pick:hover{color:#FFFFFF;text-decoration:none}
.luzu-pick:hover::after{animation:none}
.luzu-pick:active{background:#86198F;color:#FFFFFF}
.luzu-pick:focus-visible{outline:3px solid #231A21;outline-offset:3px}
.luzu-pick{animation:luzu-beat 1.16s ease-in-out infinite}
@keyframes luzu-beat{0%{transform:translate(0,0)}17.241%{transform:translate(3px,3px)}48.276%,100%{transform:translate(0,0)}}
@media (prefers-reduced-motion:reduce){.luzu-pick,.luzu-pick::after{animation:none!important;transition:none!important}}
.luzu-row{display:flex;flex-direction:column;align-items:center;gap:8px;padding:var(--xmb-md);background:var(--xmb-panel);border-radius:var(--r-md);border:var(--xmb-fine) solid var(--xmb-edge-hard);box-shadow:var(--d-md);text-align:center;margin:var(--xmb-lg) 0}
.luzu-facts.luzu-facts{margin:0;border:0;padding:0;font-weight:600;font-size:0.9em}
.luzu-tiny.luzu-tiny{margin:0;border:0;padding:0;font-size:0.9em;opacity:.75}

@media (max-width: 889px) {
  .estafette-austere-menu,
  .estafette-austere-chain,
  .estafette-austere-pitch { display: none !important; }
  .estafette-austere-opener { display: flex !important; }
}
