/* ==========================================================================
   Spin Better CZ — brand-premium stylesheet
   Order: tokens → media overrides → reset/base → a11y → components → utilities.
   All sizes come from the tokens below; components only read variables.
   ========================================================================== */

/* --- Self-hosted type: Righteous for display, Inter for reading text ------ */
@font-face { font-family: "Righteous"; font-style: normal; font-weight: 400; font-display: swap;
  src: url("/typeset/righteous-latin-400.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Righteous"; font-style: normal; font-weight: 400; font-display: swap;
  src: url("/typeset/righteous-latin-ext-400.woff2") format("woff2");
  unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 400; font-display: swap;
  src: url("/typeset/inter-latin-400.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 400; font-display: swap;
  src: url("/typeset/inter-latin-ext-400.woff2") format("woff2");
  unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 500 600; font-display: swap;
  src: url("/typeset/inter-latin-600.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 500 600; font-display: swap;
  src: url("/typeset/inter-latin-ext-600.woff2") format("woff2");
  unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 700; font-display: swap;
  src: url("/typeset/inter-latin-700.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 700; font-display: swap;
  src: url("/typeset/inter-latin-ext-700.woff2") format("woff2");
  unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }

/* --- Tokens (names from this build's dictionary) ------------------------- */
:root {
  /* palette */
  --k-base: #030a1e;
  --k-zest: #f8863b;
  --k-accent-pressed: #f66b12;
  --k-bg: #111213;
  --k-panel: #1a1c20;
  --k-fg: #FFFFFF;
  --k-soft-text: #bdbdbd;
  --k-hairline: #2b2e34;
  --k-border-strong: #474c55;
  --k-fade-top: #fcd2bd;
  --k-fade-bottom: #f9a06e;
  --k-warn-band: #b02a37;
  --k-navy-lift: #0b1633;
  --k-ink: #111213;

  /* type families */
  --f-head: "Righteous", "Trebuchet MS", system-ui, sans-serif;
  --f-reading: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;

  /* type scale — compact modular, desktop values */
  --z-display-1: 44px;
  --z-xl-2: 34px;
  --z-sub: 26px;
  --z-display-4: 20px;
  --z-minor: 16px;
  --z-micro-head: 14px;
  --z-normal: 16px;
  --z-sm: 14px;
  --z-xs: 12px;
  --l-dense: 1.2;
  --l-regular: 1.55;
  --l-loose: 1.7;
  --w-normal: 400;
  --w-half: 500;
  --w-semi: 600;
  --w-strong: 700;
  --e-close: -0.01em;
  --e-even: 0;
  --e-airy: 0.02em;

  /* spacing — asymmetric editorial steps */
  --s-step-0: 3px;
  --s-step-1: 10px;
  --s-step-2: 18px;
  --s-step-3: 28px;
  --s-step-4: 44px;
  --s-step-5: 60px;
  --s-step-6: 88px;
  --s-band: var(--s-step-4);

  /* geometry — soft universal */
  --r-step-1: 4px;
  --r-step-2: 8px;
  --r-step-3: 12px;
  --r-step-4: 20px;
  --r-pill: 9999px;
  --r-circle: 50%;
  --d-step-1: 0 1px 2px rgba(0,0,0,0.3);
  --d-step-2: 0 2px 6px rgba(0,0,0,0.34);
  --d-step-3: 0 6px 18px rgba(0,0,0,0.4);
  --d-step-4: 0 12px 32px rgba(0,0,0,0.46);
  --b-light: 1px;
  --b-even: 2px;
  --b-heavy: 3px;

  /* motion — numbers issued by the spec, never rounded */
  --t-snap: 207ms;
  --t-normal: 410ms;
  --t-gentle: 771ms;
  --x-out: cubic-bezier(0.29,0.86,0.5,0.97);
  --x-even: cubic-bezier(0.44,0.04,0.34,0.95);
  --x-spring: cubic-bezier(0.29,1.65,0.66,1.35);

  /* containers */
  --v-outer: 1260px;
  --v-column: 1260px;
  --v-slim: 570px;
  --v-edge-wide: 32px;
  --v-edge-mid: 24px;
  --v-pad-sm: 16px;
  --v-edge: var(--v-edge-wide);

  /* header */
  --h-height-desktop: 134px;
  --h-short: 68px;

  /* responsible-gaming strip height, synced by bridge.js */
  --rg-h: 32px;
}

/* --- Mobile overrides (desktop-first scale) ------------------------------ */
@media (max-width: 1099px) {
  :root { --v-edge: var(--v-edge-mid); }
}
@media (max-width: 799px) {
  :root {
    --z-display-1: 30px;
    --z-xl-2: 24px;
    --z-sub: 20px;
    --z-display-4: 18px;
    --z-minor: 15px;
    --z-micro-head: 13px;
    --z-normal: 15px;
    --z-sm: 13px;
    --z-xs: 11px;
    --s-band: var(--s-step-3);
    --v-edge: var(--v-pad-sm);
  }
}

/* --- Reset / base ---------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
html, body { overflow-x: clip; }
body {
  margin: 0;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  background: var(--k-bg);
  color: var(--k-fg);
  font-family: var(--f-reading);
  font-size: var(--z-normal);
  font-weight: var(--w-normal);
  line-height: var(--l-regular);
  padding-bottom: var(--rg-h);
}
.hlavni-plocha { flex: 1 0 auto; display: flow-root; }
img { max-width: 100%; height: auto; display: block; }
h1, h2, h3, h4, h5, h6 { overflow-wrap: anywhere; margin: 0; line-height: var(--l-dense); }
h1, h2 { font-family: var(--f-head); font-weight: var(--w-normal); letter-spacing: var(--e-close); }
h3 { font-family: var(--f-reading); font-weight: var(--w-strong); }
p { margin: 0; }
ul, ol { margin: 0; padding: 0; }
a { color: var(--k-zest); }
a:hover { color: var(--k-fade-bottom); }
button { font: inherit; }
strong { font-weight: var(--w-strong); color: var(--k-fg); }

/* --- Accessibility -------------------------------------------------------- */
.skip-route {
  position: absolute; left: var(--s-step-2); top: -200px; z-index: 200;
  background: var(--k-zest); color: var(--k-ink);
  padding: var(--s-step-1) var(--s-step-2); border-radius: var(--r-step-2);
  font-weight: var(--w-strong); text-decoration: none;
}
.skip-route:not(:focus) { top: -200px !important; }
.skip-route:focus { top: var(--s-step-2); }
:focus-visible { outline: 2px solid var(--k-zest); outline-offset: 3px; }

/* reveal on scroll — only hidden once the script has marked the page */
html.js-on [data-cue] {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity var(--t-gentle) var(--x-out), transform var(--t-gentle) var(--x-out);
}
html.js-on [data-cue].is-open { opacity: 1; transform: none; }
.no-js [data-cue] { opacity: 1; transform: none; }

/* shared section frame: every -hold uses the same site width */
.autel-etroit-hold, .baldaquin-secret-hold, .pavois-prime-hold, .garde-corps-pur-hold,
.ciboire-robuste-hold, .chasse-leger-hold, .receptacle-noble-hold, .prie-dieu-pur-hold,
.sanctuaire-fluide-hold, .loggia-haute-large-hold, .ostensoir-haut-hold, .crucifix-vaste-hold,
.enceinte-prime-hold, .support-vaste-hold {
  width: 100%;
  max-width: calc(var(--v-outer) + 2 * var(--v-edge-wide));
  margin-inline: auto;
  padding-inline: var(--v-edge);
}

/* ==========================================================================
   Header — HEAD-SUBNAV: main row (logo + first sections), section strip below.
   Knobs: sticky-shrink, left-bar active mark, lift hover, tight gap,
   small-caps 14/600, slash dividers, shadow bottom edge, wide side padding,
   logo size m in an oval (circle) frame, outlined three-line burger.
   ========================================================================== */
.amphitheatre-vif {
  position: sticky;
  top: 0;
  z-index: 60;
  background: var(--k-bg);
  box-shadow: 0 10px 24px rgba(0,0,0,0.5);
}
.amphitheatre-vif-frame {
  position: relative;
  display: flex;
  align-items: center;
  background: var(--k-bg);
  transition: background-color var(--t-normal) var(--x-out);
}
/* header motion axis "blur": glass once the page is scrolled */
.amphitheatre-vif-frame.is-blur {
  background: rgba(17,18,19,0.84);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
}
.amphitheatre-vif-index { flex: 1 1 auto; min-width: 0; }
.amphitheatre-vif-deck {
  display: flex;
  align-items: center;
  gap: var(--s-step-3);
  min-height: 76px;
  padding-inline: max(var(--s-step-4), calc((100% - 1440px) / 2 + var(--s-step-4)));
}
.amphitheatre-vif-home { display: inline-flex; flex-shrink: 0; text-decoration: none; }
.amphitheatre-vif-ring {
  display: inline-flex;
  align-items: center;
  padding: var(--s-step-1) var(--s-step-3);
  border-radius: var(--r-circle);
  background: var(--k-base);
  border: var(--b-light) solid var(--k-border-strong);
}
.amphitheatre-vif-glyph { height: 36px; width: auto; flex-shrink: 0; }
.amphitheatre-vif-set {
  list-style: none;
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: var(--s-step-1);
}
.amphitheatre-vif-set-top { margin-left: auto; }
.amphitheatre-vif-set-low { margin-left: 0; }
.amphitheatre-vif-item { display: flex; align-items: center; gap: var(--s-step-1); }
.amphitheatre-vif-item + .amphitheatre-vif-item::before {
  content: "/";
  color: var(--k-soft-text);
  font-weight: var(--w-normal);
}
.amphitheatre-vif-route {
  position: relative;
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding-inline: var(--s-step-1);
  color: var(--k-fg);
  text-decoration: none;
  font-size: 14px;
  font-weight: 600;
  font-variant-caps: small-caps;
  letter-spacing: var(--e-airy);
  white-space: nowrap;
  transition: transform var(--t-snap) var(--x-out), color var(--t-snap) var(--x-out);
}
.amphitheatre-vif-route:hover { color: var(--k-zest); transform: translateY(-2px); }
.amphitheatre-vif-route.is-here { padding-left: calc(var(--s-step-1) + 7px); }
.amphitheatre-vif-route.is-here::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 3px;
  height: 20px;
  border-radius: 2px;
  background: var(--k-zest);
  transform: translateY(-50%);
}
.amphitheatre-vif-strip {
  display: flex;
  align-items: center;
  height: 58px;
  background: var(--k-base);
  border-top: var(--b-light) solid var(--k-hairline);
  padding-inline: max(var(--s-step-4), calc((100% - 1440px) / 2 + var(--s-step-4)));
}
/* sticky-shrink: the main row tightens after the first scroll step */
.amphitheatre-vif.is-shrunk .amphitheatre-vif-deck { min-height: 60px; }
.amphitheatre-vif.is-shrunk .amphitheatre-vif-glyph { height: 28px; }
.amphitheatre-vif.is-shrunk .amphitheatre-vif-ring { padding-block: 6px; }

/* burger: three lines in an outlined frame */
.amphitheatre-vif-toggle {
  display: none;
  order: 2;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 46px;
  margin-left: auto !important;
  margin-right: var(--v-edge);
  padding: 0;
  background: var(--k-bg);
  color: var(--k-fg);
  border: var(--b-light) solid var(--k-border-strong);
  border-radius: var(--r-step-2);
  cursor: pointer;
}
.amphitheatre-vif-toggle:hover { border-color: var(--k-zest); color: var(--k-zest); background: var(--k-bg); }
.amphitheatre-vif-bars { display: flex; flex-direction: column; gap: 5px; width: 22px; }
.amphitheatre-vif-bars span {
  display: block;
  height: 2px;
  border-radius: 2px;
  background: currentColor;
  transition: transform var(--t-snap) var(--x-out), opacity var(--t-snap) var(--x-out);
}
.amphitheatre-vif-toggle[aria-expanded="true"] .amphitheatre-vif-bars span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.amphitheatre-vif-toggle[aria-expanded="true"] .amphitheatre-vif-bars span:nth-child(2) { opacity: 0; }
.amphitheatre-vif-toggle[aria-expanded="true"] .amphitheatre-vif-bars span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* mobile drawer: flat list of every section, in nav order */
.amphitheatre-vif-drawer {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  max-height: calc(100vh - 90px);
  overflow-y: auto;
  padding: var(--s-step-1) var(--v-edge) var(--s-step-3);
  background: var(--k-panel);
  border-top: var(--b-light) solid var(--k-hairline);
  box-shadow: var(--d-step-4);
}
.amphitheatre-vif-drawer.is-open { display: block; }
.amphitheatre-vif-drawer-set { list-style: none; }
.amphitheatre-vif-drawer-item { border-bottom: var(--b-light) solid var(--k-hairline); }
.amphitheatre-vif-drawer-route {
  display: flex;
  align-items: center;
  min-height: 48px;
  padding-inline: var(--s-step-1);
  color: var(--k-fg);
  text-decoration: none;
  font-weight: 600;
  font-variant-caps: small-caps;
  letter-spacing: var(--e-airy);
}
.amphitheatre-vif-drawer-route:hover { color: var(--k-zest); background: var(--k-panel); }
.amphitheatre-vif-drawer-route.is-here { color: var(--k-zest); box-shadow: inset 3px 0 0 var(--k-zest); padding-left: var(--s-step-2); }

@media (min-width: 900px) {
  .amphitheatre-vif-drawer, .amphitheatre-vif-drawer.is-open { display: none !important; }
}
@media (min-width: 900px) and (max-width: 1240px) {
  .amphitheatre-vif-glyph { height: 30px; }
  .amphitheatre-vif-deck, .amphitheatre-vif-strip { padding-inline: var(--s-step-3); }
  .amphitheatre-vif-set, .amphitheatre-vif-item { gap: 6px; }
  .amphitheatre-vif-route { padding-inline: 6px; }
}
@media (max-width: 899px) {
  .amphitheatre-vif-toggle { display: inline-flex; }
  .amphitheatre-vif-deck { min-height: 68px; padding-inline: var(--v-edge) var(--s-step-1); }
  .amphitheatre-vif-set-top, .amphitheatre-vif-strip { display: none; }
  .amphitheatre-vif-glyph { height: 26px; }
  .amphitheatre-vif-ring { padding: 7px var(--s-step-2); }
  .amphitheatre-vif.is-shrunk .amphitheatre-vif-deck { min-height: 60px; }
  .amphitheatre-vif.is-shrunk .amphitheatre-vif-glyph { height: 22px; }
}
@media (max-width: 359px) {
  .amphitheatre-vif-glyph { height: 20px; }
  .amphitheatre-vif-ring { padding: 6px var(--s-step-1); }
}

/* ==========================================================================
   Breadcrumbs — BREAD-02 pill chips
   ========================================================================== */
.crucifix-vaste { background: var(--k-bg); padding-block: var(--s-step-2); }
.crucifix-vaste-hold { list-style: none; display: flex; flex-wrap: wrap; gap: var(--s-step-1); }
.crucifix-vaste-route, .crucifix-vaste-here {
  display: inline-block;
  padding: var(--s-step-0) var(--s-step-2);
  border-radius: var(--r-pill);
  font-size: var(--z-xs);
  text-transform: uppercase;
  letter-spacing: var(--e-airy);
  line-height: 1.8;
}
.crucifix-vaste-route { background: var(--k-panel); color: var(--k-soft-text); text-decoration: none; }
.crucifix-vaste-route:hover { background: var(--k-zest); color: var(--k-ink); }
.crucifix-vaste-here { background: var(--k-navy-lift); color: var(--k-fg); }

/* ==========================================================================
   Footer — FOOT-08 newspaper masthead
   ========================================================================== */
.support-vaste {
  background: var(--k-bg);
  padding-block: var(--s-step-5);
  border-top: var(--b-light) solid var(--k-hairline);
}
.support-vaste-masthead {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--s-step-1);
  padding-block: var(--s-step-3);
  border-block: 4px double var(--k-fg);
  text-align: center;
}
.support-vaste-home { display: inline-flex; }
.support-vaste-glyph { height: 40px; width: auto; }
.support-vaste-issue {
  font-size: var(--z-xs);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--k-soft-text);
}
.support-vaste-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--s-step-4);
  padding-block: var(--s-step-4);
}
.support-vaste-column { min-width: 0; }
.support-vaste-head {
  font-family: var(--f-head);
  font-size: var(--z-display-4);
  color: var(--k-fg);
  margin-bottom: var(--s-step-2);
}
.support-vaste-set { list-style: none; display: grid; gap: var(--s-step-1); }
.support-vaste-route { color: var(--k-soft-text); text-decoration: none; overflow-wrap: anywhere; }
.support-vaste-route:hover { color: var(--k-zest); }
.support-vaste-bottom {
  display: grid;
  gap: var(--s-step-1);
  padding-top: var(--s-step-3);
  border-top: var(--b-light) solid var(--k-hairline);
  text-align: center;
}
.support-vaste-fine, .support-vaste-copy { font-size: var(--z-sm); color: var(--k-soft-text); }
@media (max-width: 799px) {
  .support-vaste-grid { grid-template-columns: minmax(0, 1fr); gap: var(--s-step-3); }
  .support-vaste-glyph { height: 30px; }
}

/* ==========================================================================
   RG-06 — thin responsible-gaming strip pinned to the bottom edge
   ========================================================================== */
.sillage-age {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 80;
  padding: 6px var(--s-step-2);
  background: var(--k-warn-band);
  color: #ffffff;
  text-align: center;
  font-size: var(--z-xs);
  line-height: 1.45;
  pointer-events: none;
}
.sillage-age-line strong { color: #ffffff; }
.sillage-age-route { display: inline-block; white-space: nowrap; color: #ffffff; font-weight: 600; text-decoration: underline; pointer-events: auto; }
.sillage-age-route:hover { color: #ffffff; background: var(--k-warn-band); text-decoration-thickness: 2px; }
@media (max-width: 520px) {
  .sillage-age { font-size: 10.5px; padding: 4px var(--s-step-1); line-height: 1.35; }
}

/* ==========================================================================
   Cookie — COOK-07 discrete toast, bottom right, above the RG strip
   ========================================================================== */
.jube-profond {
  position: fixed;
  right: var(--s-step-3);
  bottom: calc(var(--rg-h) + var(--s-step-2));
  z-index: 90;
  width: min(320px, calc(100vw - 2 * var(--s-step-3)));
  padding: var(--s-step-2);
  background: var(--k-panel);
  border: var(--b-light) solid var(--k-hairline);
  border-left: 4px solid var(--k-zest);
  border-radius: var(--r-step-2);
  box-shadow: var(--d-step-3);
  transition: transform var(--t-normal) var(--x-out), visibility 0s var(--t-normal);
}
.jube-profond.is-gone { transform: translateX(calc(100% + 80px)); visibility: hidden; }
.jube-profond-hold { display: flex; flex-direction: column; gap: var(--s-step-1); }
.jube-profond-line { font-size: var(--z-sm); color: var(--k-soft-text); line-height: var(--l-regular); }
.jube-profond-allow {
  align-self: flex-start;
  min-height: 40px;
  padding: 8px var(--s-step-2);
  background: var(--k-zest);
  color: var(--k-ink);
  border: 0;
  border-radius: var(--r-step-2);
  font-weight: 600;
  cursor: pointer;
}
.jube-profond-allow:hover { background: var(--k-fade-bottom); color: var(--k-ink); }
@media (max-width: 720px) {
  .jube-profond, .jube-profond-hold {
    padding: 12px 14px !important;
    gap: 8px !important;
    font-size: 13px !important;
    line-height: 1.35 !important;
  }
  .jube-profond-hold { padding: 0 !important; }
  .jube-profond { left: var(--v-pad-sm); right: var(--v-pad-sm); width: auto; }
  .jube-profond-title, .jube-profond-heading { display: none !important; }
  .jube-profond-allow, .jube-profond button {
    align-self: stretch;
    padding: 8px 14px !important;
    font-size: 12px !important;
    min-height: 36px !important;
  }
}

/* ==========================================================================
   Hero — HERO-08 magazine cover: full-bleed image, heavy overlay, centred cover
   ========================================================================== */
.baptistere-lourd {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: clamp(560px, calc(100vh - 170px), 820px);
  overflow: hidden;
  background: #0b0c0e;
  color: #ffffff;
  isolation: isolate;
}
.baptistere-lourd-pic {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: -2;
}
.baptistere-lourd-veil {
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(0deg, rgba(0,0,0,0.85), rgba(0,0,0,0.4));
  pointer-events: none;
}
.baptistere-lourd-cover {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--s-step-2);
  width: 100%;
  max-width: calc(var(--v-outer) + 2 * var(--v-edge-wide));
  padding: var(--s-step-5) var(--v-edge);
  text-align: center;
}
.baptistere-lourd-issue {
  font-size: var(--z-xs);
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: #d9d9d9;
}
.baptistere-lourd-banner {
  max-width: calc(var(--v-slim) * 1.6);
  font-size: clamp(30px, 4.6vw, 60px);
  line-height: 1.08;
  color: #ffffff;
}
.baptistere-lourd-tagline {
  max-width: var(--v-slim);
  font-size: var(--z-minor);
  line-height: var(--l-regular);
  color: #e3e3e3;
}
.baptistere-lourd-meta {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  font-size: var(--z-sm);
  color: #d0d0d0;
}
.baptistere-lourd-meta span + span { border-left: var(--b-light) solid #8a8a8a; margin-left: var(--s-step-2); padding-left: var(--s-step-2); }
.baptistere-lourd-hint {
  position: absolute;
  left: 50%;
  bottom: var(--s-step-3);
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  font-size: var(--z-xs);
  letter-spacing: var(--e-airy);
  color: #d0d0d0;
  pointer-events: none;
}
.baptistere-lourd-hint-arrow { font-size: 18px; }
@media (max-width: 799px) {
  .baptistere-lourd { min-height: clamp(520px, calc(100vh - 110px), 760px); }
  .baptistere-lourd-cover { padding-block: var(--s-step-4) var(--s-step-6); }
}

/* ==========================================================================
   Offer slips — anchor stubs between blocks (button + terms + 18+)
   ========================================================================== */
.receptacle-noble-slip {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--s-step-1) var(--s-step-3);
  margin-block: var(--s-step-4);
  padding: var(--s-step-2) var(--s-step-3);
  background: var(--k-navy-lift);
  border: var(--b-light) solid var(--k-hairline);
  border-left: 4px solid var(--k-zest);
  border-radius: var(--r-step-3);
}
.receptacle-noble-slip-words { flex: 1 1 280px; color: var(--k-fg); font-weight: 600; }
.receptacle-noble-fine { flex-basis: 100%; font-size: var(--z-xs); color: var(--k-soft-text); }
.receptacle-noble-slip-after-hero {
  width: calc(100% - 2 * var(--v-edge));
  max-width: var(--v-outer);
  margin: var(--s-step-3) auto 0;
}
.receptacle-noble-slip-cell { grid-column: 1 / -1; margin-block: var(--s-step-1); list-style: none; }
.receptacle-noble-go {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--s-step-1);
  min-height: 48px;
  padding: 0 var(--s-step-3);
  border-radius: var(--r-step-3);
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
}
.receptacle-noble-arrow { display: inline-block; transition: transform var(--t-snap) var(--x-spring); }
.receptacle-noble-go:hover .receptacle-noble-arrow { transform: translateX(5px); }
@media (max-width: 599px) {
  .receptacle-noble-slip { flex-direction: column; align-items: stretch; text-align: center; }
  .receptacle-noble-slip-words { flex-basis: auto; }
  .receptacle-noble-go { white-space: normal; text-align: center; }
}

/* ==========================================================================
   Reviews — REV-01 three-column cards with stars
   ========================================================================== */
.garde-corps-pur { padding-block: var(--s-band); }
.garde-corps-pur-head, .pavois-prime-head, .ciboire-robuste-head {
  font-size: var(--z-xl-2);
  margin-bottom: var(--s-step-3);
}
.garde-corps-pur-set {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--s-step-4) var(--s-step-3);
  align-items: start;
}
.garde-corps-pur-item {
  display: flex;
  flex-direction: column;
  gap: var(--s-step-1);
  padding: var(--s-step-3);
  background: var(--k-panel);
  border: var(--b-light) solid var(--k-hairline);
  border-radius: var(--r-step-3);
  transition: border-color var(--t-normal) var(--x-out);
}
.garde-corps-pur-item:hover { border-color: var(--k-border-strong); }
.garde-corps-pur-top { display: flex; justify-content: space-between; align-items: baseline; gap: var(--s-step-1); }
.garde-corps-pur-person { font-weight: var(--w-strong); color: var(--k-fg); }
.garde-corps-pur-score { font-size: var(--z-xs); color: var(--k-soft-text); }
.garde-corps-pur-stars {
  position: relative;
  display: inline-block;
  align-self: flex-start;
  font-size: 18px;
  line-height: 1;
  letter-spacing: 2px;
  color: #8a8c90;
}
.garde-corps-pur-stars::before { content: "★★★★★"; }
.garde-corps-pur-stars::after {
  content: "★★★★★";
  position: absolute;
  left: 0;
  top: 0;
  width: var(--sc);
  overflow: hidden;
  white-space: nowrap;
  color: var(--k-zest);
}
.garde-corps-pur-words { color: var(--k-soft-text); line-height: var(--l-loose); }
@media (max-width: 1099px) { .garde-corps-pur-set { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 699px) { .garde-corps-pur-set { grid-template-columns: minmax(0, 1fr); gap: var(--s-step-2); } }

/* ==========================================================================
   Prose — PROSE-05 documentation look: small uppercase h2 with a hair dash,
   large head scale, semibold, roomy rhythm
   ========================================================================== */
.baldaquin-secret { padding-block: var(--s-band); }
.baldaquin-secret-part + .baldaquin-secret-part { margin-block-start: var(--s-step-4); }
.baldaquin-secret-banner {
  display: flex;
  align-items: center;
  gap: var(--s-step-2);
  margin-bottom: var(--s-step-2);
  font-family: var(--f-reading);
  font-size: calc(var(--z-sub) * 1.08);
  font-weight: var(--w-semi);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  line-height: 1.25;
}
.baldaquin-secret-banner::before {
  content: "";
  flex: 0 0 34px;
  height: 1px;
  background: var(--k-zest);
}
.baldaquin-secret-part p,
.baldaquin-secret-part li { color: var(--k-soft-text); line-height: var(--l-regular); }
.baldaquin-secret-part p + p,
.baldaquin-secret-part p + .baldaquin-secret-set,
.baldaquin-secret-set + p { margin-top: var(--s-step-2); }
.baldaquin-secret-part h3 { font-size: var(--z-display-4); margin: var(--s-step-3) 0 var(--s-step-1); }
.baldaquin-secret-set { padding-left: 1.3em; display: grid; gap: var(--s-step-1); }
.baldaquin-secret-set li::marker { color: var(--k-zest); }
/* link hover axis "highlight": fill rises from the baseline */
.baldaquin-secret-route {
  color: var(--k-zest);
  text-decoration: underline;
  text-underline-offset: 3px;
  box-shadow: inset 0 0 0 var(--k-navy-lift);
  transition: box-shadow var(--t-normal) var(--x-out), color var(--t-normal) var(--x-out);
}
.baldaquin-secret-route:hover { color: var(--k-fade-top); box-shadow: inset 0 -1.6em 0 var(--k-navy-lift); text-decoration: none; }
.baldaquin-secret-figure {
  width: 100%;
  margin: var(--s-step-3) auto;
  overflow: hidden;
  border-radius: var(--r-step-3);
  border: var(--b-light) solid var(--k-hairline);
}
.baldaquin-secret-figure-tall { max-width: min(360px, 40vh); }
.baldaquin-secret-figure-square { max-width: min(460px, 58vh); }
.baldaquin-secret-figure-wide { max-width: min(760px, 100%); }
.baldaquin-secret-pic {
  width: 100%;
  height: auto;
  transition: transform var(--t-gentle) var(--x-out);
}
.baldaquin-secret-figure:hover .baldaquin-secret-pic { transform: scale(1.05); }

/* ==========================================================================
   Items — GRID-02 numbered vertical strip (with issued icon set)
   ========================================================================== */
.pavois-prime { padding-block: var(--s-band); }
.pavois-prime-set { list-style: none; }
.pavois-prime-item {
  display: grid;
  grid-template-columns: 80px minmax(0, 1fr);
  gap: var(--s-step-3);
  padding-block: var(--s-step-3);
  border-top: var(--b-light) solid var(--k-hairline);
}
.pavois-prime-item:last-child { border-bottom: var(--b-light) solid var(--k-hairline); }
.pavois-prime-num {
  align-self: start;
  font-family: var(--f-head);
  font-size: var(--z-display-1);
  letter-spacing: var(--e-close);
  line-height: 1;
  color: var(--k-zest);
  transition: transform var(--t-normal) var(--x-spring);
  transform-origin: left top;
}
.pavois-prime-item:hover .pavois-prime-num { transform: scale(1.1); }
.pavois-prime-meat { display: grid; gap: var(--s-step-1); }
.pavois-prime-banner {
  display: flex;
  align-items: center;
  gap: var(--s-step-1);
  font-family: var(--f-head);
  font-weight: var(--w-normal);
  font-size: var(--z-sub);
  line-height: var(--l-dense);
}
.pavois-prime-pic { flex: 0 0 34px; width: 34px; height: 34px; fill: var(--k-zest); }
.pavois-prime-words { color: var(--k-soft-text); line-height: var(--l-loose); }
@media (max-width: 599px) {
  .pavois-prime-item { grid-template-columns: 48px minmax(0, 1fr); gap: var(--s-step-2); }
  .pavois-prime-pic { flex-basis: 28px; width: 28px; height: 28px; }
}

/* ==========================================================================
   FAQ — FAQ-01 classic accordion (details/summary, instant open)
   ========================================================================== */
.ciboire-robuste { padding-block: var(--s-band); }
.ciboire-robuste-set { display: block; border-top: var(--b-light) solid var(--k-hairline); }
.ciboire-robuste-item { border-bottom: var(--b-light) solid var(--k-hairline); padding-block: var(--s-step-2); }
.ciboire-robuste-ask { list-style: none; cursor: pointer; }
.ciboire-robuste-ask::-webkit-details-marker { display: none; }
.ciboire-robuste-q {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 24px;
  align-items: center;
  gap: var(--s-step-2);
  font-family: var(--f-reading);
  font-size: var(--z-minor);
  font-weight: var(--w-strong);
  line-height: 1.4;
  color: var(--k-fg);
  transition: color var(--t-snap) var(--x-out);
}
.ciboire-robuste-ask:hover .ciboire-robuste-q { color: var(--k-zest); }
.ciboire-robuste-sign { position: relative; width: 24px; height: 24px; }
.ciboire-robuste-sign::before, .ciboire-robuste-sign::after {
  content: "";
  position: absolute;
  left: 4px;
  right: 4px;
  top: 11px;
  height: 2px;
  background: var(--k-zest);
  border-radius: 2px;
}
.ciboire-robuste-sign::after { transform: rotate(90deg); }
.ciboire-robuste-item[open] .ciboire-robuste-sign::after { transform: rotate(0deg); opacity: 0; }
.ciboire-robuste-reply { padding-top: var(--s-step-1); }
.ciboire-robuste-reply p { color: var(--k-soft-text); line-height: var(--l-loose); }

/* ==========================================================================
   CTA — CTA-05 dual action, full-bleed navy strip
   ========================================================================== */
.receptacle-noble { padding-block: var(--s-band); background: var(--k-base); }
.receptacle-noble-hold { display: flex; flex-direction: column; align-items: center; gap: var(--s-step-2); text-align: center; }
.receptacle-noble-banner { font-size: var(--z-xl-2); color: var(--k-fg); }
.receptacle-noble-words { max-width: var(--v-slim); color: #d4d6dc; }
.receptacle-noble-controls { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--s-step-3); }
.receptacle-noble-alt, .receptacle-noble-mail {
  display: inline-flex;
  align-items: center;
  min-height: 48px;
  padding: 0 var(--s-step-3);
  border-radius: var(--r-step-3);
  font-weight: 600;
  text-decoration: none;
  transition: border-color var(--t-snap) var(--x-out), background-color var(--t-snap) var(--x-out);
}
.receptacle-noble-alt { background: var(--k-base); color: var(--k-fg); border: var(--b-light) solid var(--k-soft-text); }
.receptacle-noble-alt:hover { background: var(--k-navy-lift); color: var(--k-fg); border-color: var(--k-fg); }
.receptacle-noble-mail { background: var(--k-zest); color: var(--k-ink); border: 0; }
.receptacle-noble-mail:hover { background: var(--k-fade-bottom); color: var(--k-ink); }
.receptacle-noble .receptacle-noble-fine { flex-basis: auto; }

/* ==========================================================================
   Byline — BYLINE-01 compact inline, end of article
   ========================================================================== */
.enceinte-prime { padding-block: var(--s-step-3); border-top: var(--b-light) solid var(--k-hairline); }
.enceinte-prime-hold { display: flex; align-items: center; gap: var(--s-step-2); }
.enceinte-prime-avatar {
  flex: 0 0 48px;
  width: 48px;
  height: 48px;
  overflow: hidden;
  border-radius: var(--r-circle);
  border: var(--b-even) solid var(--k-zest);
}
.enceinte-prime-avatar img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.enceinte-prime-words { min-width: 0; }
.enceinte-prime-by { color: var(--k-soft-text); }
.enceinte-prime-person { color: var(--k-zest); text-decoration: underline; }
.enceinte-prime-person:hover { color: var(--k-fade-bottom); }
.enceinte-prime-job { margin-top: var(--s-step-0); font-size: var(--z-sm); font-style: italic; color: var(--k-soft-text); }

/* ==========================================================================
   Offer button — issued by scripts/cta-style.mjs for gospinbettercz.biz
   (lime, "shine" sweep). The sweep runs on background-position so the
   button never grows wider than its label; it loops for as long as the
   page is open and stops on hover and under reduced motion.
   ========================================================================== */
.japeki-grab{display:inline-flex;align-items:center;justify-content:center;padding:0 var(--s-step-3);min-height:48px;border-radius:var(--r-step-3);font-weight:600}
.japeki-grab{position:relative;
  background-color:#65A30D;
  background-image:linear-gradient(100deg,#65A30D 0%,#65A30D 38%,#a3d65a 50%,#65A30D 62%,#65A30D 100%);
  background-size:320% 100%;
  background-position:100% 0;
  color:#030A1E;text-decoration:none;
  animation:japeki-wake 1.95s var(--x-even) infinite;
  transition:background-color var(--t-snap) var(--x-out),color var(--t-snap) var(--x-out),transform var(--t-snap) var(--x-out);}
.japeki-grab.japeki-grab{color:#030A1E;text-decoration:none;}
.japeki-grab:hover{background-color:#4D7C0F;background-image:none;color:#FFFFFF;animation:none}
.japeki-grab.japeki-grab:hover{color:#FFFFFF;text-decoration:none}
.japeki-grab:active{background-color:#3F6212;background-image:none;color:#FFFFFF}
.japeki-grab:focus-visible{outline:3px solid #FFFFFF;outline-offset:3px}
@keyframes japeki-wake{0%{background-position:100% 0}56.410%,100%{background-position:0% 0}}
@media (prefers-reduced-motion:reduce){.japeki-grab,.japeki-grab::after{animation:none!important;transition:none!important}}
.receptacle-noble-go.receptacle-noble-go-big { min-height: 54px; padding-inline: var(--s-step-4); font-size: var(--z-minor); }

/* ==========================================================================
   Page header — PHEAD-03 big block on the brand navy
   ========================================================================== */
.autel-etroit { background: var(--k-base); padding-block: var(--s-step-5) var(--s-step-4); }
.autel-etroit-hold { display: grid; gap: var(--s-step-2); }
.autel-etroit-banner { font-size: clamp(30px, 4.4vw, 56px); line-height: 1.1; color: var(--k-fg); }
.autel-etroit-tagline { font-size: var(--z-minor); color: #c8cad1; line-height: var(--l-regular); }

/* ==========================================================================
   Data table — TABLE-06 magazine editorial with caption
   ========================================================================== */
.chasse-leger { padding-block: var(--s-band); }
.chasse-leger-grid { width: 100%; border-collapse: collapse; }
.chasse-leger-note {
  caption-side: top;
  padding-bottom: var(--s-step-3);
  font-family: var(--f-head);
  font-size: var(--z-display-4);
  font-style: italic;
  color: var(--k-soft-text);
  text-align: center;
}
.chasse-leger-note::before {
  content: "";
  display: inline-block;
  width: 40px;
  height: 2px;
  margin-right: var(--s-step-1);
  vertical-align: middle;
  background: var(--k-zest);
}
.chasse-leger-grid th {
  padding: var(--s-step-1) var(--s-step-2);
  font-size: var(--z-xs);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  text-align: left;
  color: var(--k-soft-text);
  background: var(--k-bg);
  border-bottom: var(--b-even) solid var(--k-zest);
}
.chasse-leger-grid td {
  padding: var(--s-step-2);
  color: var(--k-fg);
  background: var(--k-bg);
  border-bottom: var(--b-light) solid var(--k-hairline);
}
.chasse-leger-grid td:first-child { font-weight: var(--w-strong); }
.chasse-leger-grid tbody tr:last-child td { color: var(--k-zest); font-weight: var(--w-strong); }
@media (max-width: 699px) {
  .chasse-leger-grid thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .chasse-leger-grid tbody, .chasse-leger-grid tr, .chasse-leger-grid td { display: block; }
  .chasse-leger-grid tr { padding-block: var(--s-step-1); border-bottom: var(--b-light) solid var(--k-border-strong); }
  .chasse-leger-grid td { display: flex; justify-content: space-between; gap: var(--s-step-2); padding: 6px 0; border-bottom: 0; }
  .chasse-leger-grid td::before { content: attr(data-th); color: var(--k-soft-text); font-weight: 400; font-size: var(--z-sm); }
}

/* ==========================================================================
   Inline CTA — INLINE-CTA-03 text hook, no button
   ========================================================================== */
.sentinelle-leger { padding-block: var(--s-step-3); text-align: center; }
.sentinelle-leger-line {
  width: 100%;
  max-width: calc(var(--v-outer) + 2 * var(--v-edge-wide));
  margin-inline: auto;
  padding-inline: var(--v-edge);
  font-size: var(--z-micro-head);
  line-height: var(--l-regular);
  color: var(--k-soft-text);
}
.sentinelle-leger-route { color: var(--k-zest); text-decoration: underline; text-underline-offset: 3px; }
.sentinelle-leger-route:hover { color: var(--k-accent-pressed); text-decoration-thickness: 3px; }

/* ==========================================================================
   Legal — LEGAL-07 magazine editorial
   ========================================================================== */
.prie-dieu-pur { padding-block: var(--s-step-5) var(--s-band); }
.prie-dieu-pur-eyebrow {
  font-size: var(--z-xs);
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--k-zest);
  margin-bottom: var(--s-step-1);
}
.prie-dieu-pur-h { font-size: var(--z-display-1); margin-bottom: var(--s-step-2); }
.prie-dieu-pur-intro {
  font-family: var(--f-head);
  font-size: var(--z-display-4);
  font-style: italic;
  line-height: var(--l-regular);
  color: var(--k-fg);
  margin-bottom: var(--s-step-4);
}
.prie-dieu-pur-part + .prie-dieu-pur-part { margin-top: var(--s-step-4); }
.prie-dieu-pur-banner { font-size: var(--z-sub); font-style: italic; }
.prie-dieu-pur-rule { width: 80px; height: 2px; margin: var(--s-step-1) 0 var(--s-step-2); border: 0; background: var(--k-zest); }
.prie-dieu-pur-part p { color: var(--k-soft-text); line-height: var(--l-loose); }
.prie-dieu-pur-part p + p { margin-top: var(--s-step-2); }
.prie-dieu-pur-rule + p::first-letter {
  float: left;
  margin: 6px var(--s-step-1) 0 0;
  font-family: var(--f-head);
  font-size: 3.2em;
  line-height: 0.8;
  color: var(--k-zest);
}
.prie-dieu-pur-set { padding-left: 1.2em; display: grid; gap: var(--s-step-1); color: var(--k-soft-text); }
.prie-dieu-pur-fine { margin-top: var(--s-step-4); font-size: var(--z-sm); color: var(--k-soft-text); font-style: italic; }

/* ==========================================================================
   Contact form — FORM-05 bordered editorial
   ========================================================================== */
.sanctuaire-fluide { padding-block: var(--s-band); }
.sanctuaire-fluide-box {
  display: grid;
  gap: var(--s-step-3);
  padding: var(--s-step-5);
  border: var(--b-even) solid var(--k-zest);
  border-radius: var(--r-step-3);
  background: var(--k-bg);
}
.sanctuaire-fluide-intro { color: var(--k-soft-text); }
.sanctuaire-fluide-slot { display: grid; gap: var(--s-step-0); }
.sanctuaire-fluide-slot label { font-size: var(--z-xs); text-transform: uppercase; letter-spacing: 0.1em; color: var(--k-soft-text); }
.sanctuaire-fluide-slot input, .sanctuaire-fluide-slot textarea {
  width: 100%;
  padding: var(--s-step-1) 0;
  font: inherit;
  font-size: var(--z-display-4);
  color: var(--k-fg);
  background: var(--k-bg);
  border: 0;
  border-bottom: var(--b-light) solid var(--k-border-strong);
  border-radius: 0;
}
.sanctuaire-fluide-slot input:focus, .sanctuaire-fluide-slot textarea:focus { outline: none; border-bottom-color: var(--k-zest); }
.sanctuaire-fluide-send {
  justify-self: start;
  min-height: 48px;
  padding: 0 var(--s-step-4);
  background: var(--k-zest);
  color: var(--k-ink);
  border: 0;
  border-radius: var(--r-step-3);
  font-weight: 600;
  cursor: pointer;
}
.sanctuaire-fluide-send:hover { background: var(--k-fade-bottom); color: var(--k-ink); }
.sanctuaire-fluide-done { color: var(--k-zest); font-weight: 600; }
@media (max-width: 599px) { .sanctuaire-fluide-box { padding: var(--s-step-3) var(--s-step-2); } }

/* ==========================================================================
   Author card — AUTH-06 full-hero poster
   ========================================================================== */
.loggia-haute-large {
  padding-block: var(--s-step-5);
  background-color: var(--k-base);
  background-image: linear-gradient(135deg, var(--k-base), var(--k-bg));
}
.loggia-haute-large-hold { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: var(--s-step-5); align-items: center; }
.loggia-haute-large-frame {
  width: 100%;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  border-radius: var(--r-step-4);
  box-shadow: var(--d-step-4);
  background: var(--k-panel);
}
.loggia-haute-large-avatar { width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: center top; }
.loggia-haute-large-meat { display: grid; gap: var(--s-step-2); }
.loggia-haute-large-job { font-size: var(--z-sm); text-transform: uppercase; letter-spacing: 0.08em; color: var(--k-zest); }
.loggia-haute-large-banner { font-size: clamp(40px, 6vw, 64px); line-height: 1.02; color: var(--k-fg); }
.loggia-haute-large-bio { font-size: var(--z-minor); line-height: var(--l-regular); color: #d6d8de; }
.loggia-haute-large-set { list-style: none; display: flex; flex-wrap: wrap; gap: var(--s-step-1); }
.loggia-haute-large-set li {
  padding: 6px var(--s-step-2);
  border-radius: var(--r-pill);
  border: var(--b-light) solid var(--k-border-strong);
  background: var(--k-base);
  color: var(--k-fg);
  font-size: var(--z-sm);
}
@media (max-width: 799px) {
  .loggia-haute-large-hold { grid-template-columns: minmax(0, 1fr); gap: var(--s-step-3); }
  .loggia-haute-large-frame { max-width: 220px; }
}

/* ==========================================================================
   Error — ERR-03 minimal, no drama
   ========================================================================== */
.ostensoir-haut { padding-block: var(--s-step-6); }
.ostensoir-haut-hold { display: flex; flex-direction: column; align-items: center; gap: var(--s-step-2); text-align: center; }
.ostensoir-haut-banner { max-width: var(--v-slim); font-size: var(--z-xl-2); }
.ostensoir-haut-words { max-width: var(--v-slim); color: var(--k-soft-text); line-height: var(--l-loose); }
.ostensoir-haut-back {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0 var(--s-step-3);
  background: var(--k-zest);
  color: var(--k-ink);
  border-radius: var(--r-step-3);
  font-weight: 600;
  text-decoration: none;
}
.ostensoir-haut-back:hover { background: var(--k-fade-bottom); color: var(--k-ink); }

/* ==========================================================================
   Utilities + reduced motion
   ========================================================================== */
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
@media (prefers-reduced-motion: reduce) {
  html.js-on [data-cue] { opacity: 1; transform: none; transition: none; }
  *, *::before, *::after { transition-duration: 0s !important; }
}

@media (max-width: 926px) {
  .amphitheatre-vif-set,
  .amphitheatre-vif-route,
  .amphitheatre-vif-strip { display: none !important; }
  .amphitheatre-vif-toggle { display: flex !important; }
}
