/* ==========================================================================
   Neon54 — lacquer.css
   Design system: TYPO-08 · SPACE-04 · CONT-10 · BP-08 · GEO-02 · MOTION-06
   Media strategy: desktop-first (max-width breakpoints)
   Rule order: alphabetical by primary selector within each section
   ========================================================================== */

/* --------------------------------------------------------------------------
   Section: tokens (:root)
   -------------------------------------------------------------------------- */
:root {
  /* Colors */
  --c-brand-color: #3ba987;
  --c-secondary: #d9cbc4;
  --c-accent-dark: #cab8ae;
  --c-bg: #1a1919;
  --c-panel-bg: #242222;
  --c-gradient-from: #ffffff;
  --c-grad-mid: #ebe6e3;
  --c-foreground: #ffffff;
  --c-muted: #c1c1c1;
  --c-notice-bg: #dc2626;

  /* Typography — TYPO-08 Tight Industrial */
  --c-heading-font: "Oswald", "Roboto Condensed", "Arial Narrow", sans-serif;
  --c-font-text: "Antonio", "Roboto Condensed", system-ui, sans-serif;
  --c-weight-regular: 500;
  --c-weight-medium: 700;
  --c-font-bold: 900;
  --c-line-tight: 1.05;
  --c-leading-normal: 1.4;
  --c-lh-loose: 1.6;
  --c-tracking-tight: -0.02em;
  --c-ls-normal: 0.02em;
  --c-letter-wide: 0.1em;
  --c-type-h1: 56px;
  --c-fs-h2: 38px;
  --c-text-h3: 24px;
  --c-size-h4: 18px;
  --c-type-h5: 15px;
  --c-fs-h6: 13px;
  --c-size-body: 16px;
  --c-type-small: 13px;
  --c-size-xs: 11px;

  /* Spacing — SPACE-04 Airy Generous */
  --c-gutter-2xs: 6px;
  --c-gutter-xs: 14px;
  --c-spacing-sm: 20px;
  --c-gutter-md: 32px;
  --c-gutter-lg: 48px;
  --c-spacing-xl: 72px;
  --c-gutter-2xl: 88px;
  --c-gap-3xl: 104px;

  /* Container — CONT-10 */
  --c-container: 1240px;
  --c-inset-mobile: 16px;
  --c-container-padding-tablet: 24px;
  --c-gutter-desktop: 32px;

  /* Geometry — GEO-02 Soft Universal */
  --c-round-xs: 4px;
  --c-rounded-sm: 8px;
  --c-radius: 12px;
  --c-round-lg: 20px;
  --c-radius-pill: 9999px;
  --c-round-circle: 50%;
  --c-shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.06);
  --c-shadow-sm: 0 2px 6px rgba(0, 0, 0, 0.08);
  --c-elevation-2: 0 6px 18px rgba(0, 0, 0, 0.12);
  --c-elevation-3: 0 12px 32px rgba(0, 0, 0, 0.16);
  --c-hairline: 1px;
  --c-border-medium: 2px;
  --c-border-thick: 3px;

  /* Motion — MOTION-06 Underline-Only */
  --c-transition-fast: 120ms;
  --c-transition-base: 180ms;
  --c-transition-slow: 260ms;
  --c-ease: cubic-bezier(0.3, 0.7, 0.4, 1);
  --c-ease-in: cubic-bezier(0.6, 0, 0.7, 0.3);
  --c-ease-in-out: cubic-bezier(0.5, 0, 0.5, 1);

  /* Header height (for sticky offset reference) */
  --c-header-height-desktop: 88px;
  --c-nav-h-mobile: 64px;

  scroll-behavior: smooth;
}

/* --------------------------------------------------------------------------
   Section: reset + base elements
   -------------------------------------------------------------------------- */
*,
*::before,
*::after {
  box-sizing: border-box;
}

a {
  color: var(--c-secondary);
  text-decoration: none;
}

body {
  background: var(--c-bg);
  color: var(--c-foreground);
  font-family: var(--c-font-text);
  font-size: var(--c-size-body);
  font-weight: var(--c-weight-regular);
  line-height: var(--c-leading-normal);
  margin: 0;
  -webkit-font-smoothing: antialiased;
}

figure {
  margin: 0;
}

h1 {
  color: var(--c-foreground);
  font-family: var(--c-heading-font);
  font-size: var(--c-type-h1);
  font-weight: var(--c-font-bold);
  letter-spacing: var(--c-tracking-tight);
  line-height: var(--c-line-tight);
  margin: 0 0 var(--c-gutter-md);
  text-transform: uppercase;
}

h2 {
  color: var(--c-foreground);
  font-family: var(--c-heading-font);
  font-size: var(--c-fs-h2);
  font-weight: var(--c-weight-medium);
  letter-spacing: var(--c-tracking-tight);
  line-height: var(--c-line-tight);
  margin: 0 0 var(--c-gutter-md);
  text-transform: uppercase;
}

h3 {
  color: var(--c-foreground);
  font-family: var(--c-heading-font);
  font-size: var(--c-text-h3);
  font-weight: var(--c-weight-medium);
  letter-spacing: var(--c-ls-normal);
  line-height: var(--c-line-tight);
  margin: 0 0 var(--c-spacing-sm);
}

h4 {
  color: var(--c-foreground);
  font-family: var(--c-heading-font);
  font-size: var(--c-size-h4);
  font-weight: var(--c-weight-medium);
  letter-spacing: var(--c-ls-normal);
  line-height: var(--c-line-tight);
  margin: 0 0 var(--c-spacing-sm);
}

html {
  scroll-behavior: smooth;
}

html,
body {
  overflow-x: clip;
}

img {
  max-width: 100%;
}

main {
  display: block;
}

p {
  margin: 0 0 var(--c-gutter-md);
}

ul {
  margin: 0;
  padding: 0;
}

/* --------------------------------------------------------------------------
   Section: utility / accessibility
   -------------------------------------------------------------------------- */
.skip-link {
  background: var(--c-brand-color);
  color: var(--c-bg);
  left: var(--c-spacing-sm);
  padding: var(--c-gutter-xs) var(--c-gutter-md);
  position: fixed;
  top: -200px;
  z-index: 200;
}

.skip-link:focus {
  top: var(--c-spacing-sm);
}

.skip-link:not(:focus) {
  top: -200px !important;
}

.sr-only {
  border: 0;
  clip: rect(0, 0, 0, 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}

/* --------------------------------------------------------------------------
   Section: responsible-gaming banner (RG)
   Header is sticky (STICKY-03), NOT fixed → banner stays in flow.
   -------------------------------------------------------------------------- */
.rg-banner {
  align-items: center;
  background: var(--c-notice-bg);
  color: var(--c-foreground);
  display: flex;
  font-size: var(--c-size-xs);
  font-weight: var(--c-weight-medium);
  justify-content: center;
  letter-spacing: var(--c-letter-wide);
  margin: 0;
  min-height: 28px;
  padding: var(--c-gutter-2xs) var(--c-gutter-md);
  text-align: center;
  text-transform: uppercase;
}

/* --------------------------------------------------------------------------
   Component: header — HEAD-05 (root .antechamber-plus)
   Compact side-logo bar with text "Menu" button + full-screen dialog.
   Hybrid: visible NAV-03 two-row desktop nav (>= bp-md), dialog drawer on mobile.
   Sticky-blur per STICKY-03.
   -------------------------------------------------------------------------- */
.antechamber-plus {
  background: var(--c-bg);
  position: sticky;
  top: 0;
  transition: background var(--c-transition-base) var(--c-ease),
    backdrop-filter var(--c-transition-base) var(--c-ease);
  z-index: 100;
}

.antechamber-plus.is-blurred {
  background: rgba(26, 25, 25, 0.85);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
}

.antechamber-plus-bar {
  align-items: center;
  display: flex;
  gap: var(--c-gutter-lg);
  justify-content: space-between;
  margin-inline: auto;
  max-width: 1440px;
  min-height: var(--c-header-height-desktop);
  padding-inline: var(--c-gutter-md);
}

.antechamber-plus-logo,
.antechamber-plus-logo img {
  flex-shrink: 0;
}

.antechamber-plus-logo {
  align-items: baseline;
  color: var(--c-foreground);
  display: inline-flex;
  font-family: var(--c-heading-font);
  font-size: 40px;
  font-weight: var(--c-font-bold);
  gap: 2px;
  letter-spacing: var(--c-tracking-tight);
  line-height: 1;
  text-transform: uppercase;
}

.antechamber-plus-logo-mark {
  color: var(--c-brand-color);
}

.antechamber-plus-menu-button {
  background: none;
  border: 0;
  color: var(--c-foreground);
  cursor: pointer;
  font-family: var(--c-font-text);
  font-size: var(--c-type-small);
  font-weight: var(--c-weight-medium);
  letter-spacing: var(--c-letter-wide);
  margin-left: auto;
  padding: var(--c-gutter-2xs) var(--c-gutter-xs);
  text-transform: uppercase;
  transition: color var(--c-transition-fast) var(--c-ease);
}

.antechamber-plus-menu-button:hover {
  color: var(--c-secondary);
}

.antechamber-plus-nav {
  display: flex;
  flex-direction: column;
  gap: var(--c-gutter-2xs);
}

.antechamber-plus-nav-item {
  list-style: none;
}

.antechamber-plus-nav-list {
  display: flex;
  flex-wrap: nowrap;
  gap: var(--c-spacing-sm);
  list-style: none;
  margin: 0;
  padding: 0;
}

.antechamber-plus-nav-list--bottom {
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  padding-top: var(--c-gutter-2xs);
}

.antechamber-plus-nav-list--top {
  padding-bottom: var(--c-gutter-2xs);
}

.antechamber-plus-link {
  color: var(--c-foreground);
  font-family: var(--c-heading-font);
  font-size: var(--c-type-small);
  font-weight: var(--c-weight-medium);
  letter-spacing: var(--c-ls-normal);
  padding-block: var(--c-gutter-2xs);
  text-transform: uppercase;
  transition: color var(--c-transition-fast) var(--c-ease);
  white-space: nowrap;
}

.antechamber-plus-link:hover,
.antechamber-plus-link[aria-current="page"] {
  color: var(--c-brand-color);
}

/* Full-screen dialog drawer (mobile + burger on all viewports) */
.antechamber-plus-dialog {
  background: var(--c-bg);
  border: 0;
  color: var(--c-foreground);
  display: none;
  height: 100%;
  left: 0;
  margin: 0;
  max-height: 100vh;
  max-width: 100vw;
  padding: 0;
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 150;
}

.antechamber-plus-dialog::backdrop {
  background: rgba(0, 0, 0, 0.8);
}

.antechamber-plus-dialog.is-open,
.antechamber-plus-dialog[open] {
  display: flex;
}

.antechamber-plus-dialog-panel {
  align-items: center;
  display: flex;
  flex-direction: column;
  gap: var(--c-gutter-md);
  justify-content: center;
  margin-inline: auto;
  max-width: 1440px;
  min-height: 100vh;
  padding: var(--c-gutter-2xl) var(--c-gutter-md);
  width: 100%;
}

.antechamber-plus-dialog-close {
  background: none;
  border: 0;
  color: var(--c-foreground);
  cursor: pointer;
  font-family: var(--c-font-text);
  font-size: var(--c-size-h4);
  position: absolute;
  right: var(--c-gutter-md);
  top: var(--c-gutter-md);
}

.antechamber-plus-dialog-close:hover {
  color: var(--c-secondary);
}

.antechamber-plus-dialog-list {
  display: flex;
  flex-direction: column;
  gap: var(--c-gutter-md);
  list-style: none;
  margin: 0;
  padding: 0;
  text-align: center;
}

.antechamber-plus-dialog-link {
  color: var(--c-foreground);
  font-family: var(--c-heading-font);
  font-size: var(--c-fs-h2);
  font-weight: var(--c-weight-medium);
  letter-spacing: var(--c-tracking-tight);
  text-transform: uppercase;
  transition: color var(--c-transition-fast) var(--c-ease);
}

.antechamber-plus-dialog-link:hover {
  color: var(--c-brand-color);
}

/* --------------------------------------------------------------------------
   Component: breadcrumbs — BREAD-04 (root .mast-swift) Numbered Steps
   -------------------------------------------------------------------------- */
.mast-swift {
  margin-inline: auto;
  max-width: calc(var(--c-container) + 2 * var(--c-gutter-desktop));
  padding-block: var(--c-gutter-md);
  padding-inline: var(--c-gutter-desktop);
  width: 100%;
}

.mast-swift-item {
  align-items: baseline;
  display: inline-flex;
}

.mast-swift-item::before {
  color: var(--c-secondary);
  content: attr(data-step);
  font-family: var(--c-heading-font);
  font-size: var(--c-fs-h6);
  font-weight: var(--c-font-bold);
  margin-right: var(--c-gutter-2xs);
}

.mast-swift-item + .mast-swift-item::after {
  color: rgba(255, 255, 255, 0.4);
  content: "—";
  margin-inline: var(--c-spacing-sm);
  order: -1;
}

.mast-swift-item a,
.mast-swift-item span {
  font-family: var(--c-font-text);
  font-size: var(--c-type-small);
  letter-spacing: var(--c-letter-wide);
  text-transform: uppercase;
}

.mast-swift-item a {
  color: var(--c-muted);
  transition: color var(--c-transition-fast) var(--c-ease);
}

.mast-swift-item a:hover {
  color: var(--c-secondary);
}

.mast-swift-item span {
  color: var(--c-foreground);
}

.mast-swift-list {
  display: flex;
  flex-wrap: wrap;
  list-style: none;
  margin: 0;
  padding: 0;
}

/* --------------------------------------------------------------------------
   Component: hero — HERO-07 (root .pergola-solid) Top-Tile + Text Below
   -------------------------------------------------------------------------- */
.pergola-solid {
  background: var(--c-bg);
}

.pergola-solid-content {
  margin-inline: auto;
  max-width: calc(var(--c-container) + 2 * var(--c-gutter-desktop));
  padding-block: var(--c-gutter-2xl);
  padding-inline: var(--c-gutter-desktop);
  width: 100%;
}

.pergola-solid-cta {
  background: var(--c-brand-color);
  border-radius: var(--c-radius);
  color: var(--c-bg);
  display: inline-block;
  font-family: var(--c-heading-font);
  font-size: var(--c-type-h5);
  font-weight: var(--c-font-bold);
  letter-spacing: var(--c-letter-wide);
  line-height: 52px;
  padding-inline: var(--c-spacing-xl);
  text-transform: uppercase;
  transition: background var(--c-transition-fast) var(--c-ease),
    color var(--c-transition-fast) var(--c-ease);
}

.pergola-solid-cta:hover {
  background: var(--c-secondary);
  color: var(--c-bg);
}

.pergola-solid-figure {
  margin: 0;
  position: relative;
}

.pergola-solid-figure::after {
  background: linear-gradient(rgba(26, 25, 25, 0), var(--c-bg));
  bottom: 0;
  content: "";
  height: 120px;
  left: 0;
  pointer-events: none;
  position: absolute;
  right: 0;
}

.pergola-solid-figure img {
  display: block;
  height: 400px;
  object-fit: cover;
  width: 100%;
}

.pergola-solid-subtitle {
  color: var(--c-muted);
  font-size: var(--c-type-h5);
  line-height: var(--c-lh-loose);
  margin-block: var(--c-gutter-md);
  max-width: 720px;
}

/* --------------------------------------------------------------------------
   Component: page-header — PHEAD-10 (root .barrow-light) Manifesto
   -------------------------------------------------------------------------- */
.barrow-light {
  background: var(--c-bg);
  padding-block: var(--c-gap-3xl);
}

.barrow-light-inner {
  margin-inline: auto;
  max-width: calc(var(--c-container) + 2 * var(--c-gutter-desktop));
  padding-inline: var(--c-gutter-desktop);
  text-align: center;
  width: 100%;
}

.barrow-light-title {
  font-size: clamp(40px, 7vw, 80px);
  line-height: var(--c-line-tight);
  margin: 0;
}

.barrow-light-dot {
  color: var(--c-secondary);
  display: block;
  font-family: var(--c-heading-font);
  font-size: var(--c-fs-h2);
  margin-block: var(--c-spacing-sm);
}

.barrow-light-description {
  color: var(--c-muted);
  font-size: var(--c-size-h4);
  font-style: italic;
  margin-inline: auto;
  max-width: 600px;
}

.barrow-light-meta {
  color: var(--c-muted);
  font-size: var(--c-type-small);
  margin-top: var(--c-spacing-sm);
}

/* --------------------------------------------------------------------------
   Component: items-grid — GRID-01 (root .feuille-premium) 3-col bordered cards
   -------------------------------------------------------------------------- */
.feuille-premium {
  margin-inline: auto;
  max-width: calc(var(--c-container) + 2 * var(--c-gutter-desktop));
  padding-block: var(--c-gutter-2xl);
  padding-inline: var(--c-gutter-desktop);
  width: 100%;
}

.feuille-premium-heading {
  margin-bottom: var(--c-gutter-lg);
}

.feuille-premium-item {
  background: var(--c-panel-bg);
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: var(--c-radius);
  list-style: none;
  padding: var(--c-gutter-lg);
  transition: border-color var(--c-transition-base) var(--c-ease);
}

.feuille-premium-item:hover {
  border-color: var(--c-secondary);
}

.feuille-premium-item-text {
  color: var(--c-muted);
  font-size: var(--c-size-body);
  line-height: var(--c-leading-normal);
  margin: 0;
}

.feuille-premium-item-title {
  color: var(--c-foreground);
  font-family: var(--c-heading-font);
  font-size: var(--c-size-h4);
  font-weight: var(--c-font-bold);
  line-height: var(--c-line-tight);
  margin: 0 0 var(--c-spacing-sm);
}

.feuille-premium-list {
  display: grid;
  gap: var(--c-gutter-lg);
  grid-template-columns: repeat(3, 1fr);
  list-style: none;
  margin: 0;
  padding: 0;
}

/* --------------------------------------------------------------------------
   Component: faq — FAQ-03 (root .annexe-sharp) two-column card-style
   -------------------------------------------------------------------------- */
.annexe-sharp {
  margin-inline: auto;
  max-width: calc(var(--c-container) + 2 * var(--c-gutter-desktop));
  padding-block: var(--c-gutter-2xl);
  padding-inline: var(--c-gutter-desktop);
  width: 100%;
}

.annexe-sharp-answer {
  color: var(--c-muted);
  font-size: var(--c-size-body);
  line-height: var(--c-leading-normal);
  margin: 0;
}

.annexe-sharp-heading {
  margin-bottom: var(--c-gutter-lg);
}

.annexe-sharp-item {
  background: var(--c-bg);
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: var(--c-radius);
  list-style: none;
  padding: var(--c-gutter-lg);
}

.annexe-sharp-list {
  display: grid;
  gap: var(--c-gutter-md);
  grid-template-columns: repeat(2, 1fr);
  list-style: none;
  margin: 0;
  padding: 0;
}

.annexe-sharp-question {
  color: var(--c-foreground);
  font-family: var(--c-heading-font);
  font-size: var(--c-type-h5);
  font-weight: var(--c-font-bold);
  margin: 0 0 var(--c-gutter-md);
}

.annexe-sharp-question-prefix {
  color: var(--c-secondary);
  font-family: var(--c-heading-font);
  font-weight: var(--c-font-bold);
  margin-right: var(--c-gutter-2xs);
}

/* --------------------------------------------------------------------------
   Component: reviews — REV-06 (root .salon-fluid) compact list inline ratings
   -------------------------------------------------------------------------- */
.salon-fluid {
  margin-inline: auto;
  max-width: calc(var(--c-container) + 2 * var(--c-gutter-desktop));
  padding-block: var(--c-gutter-2xl);
  padding-inline: var(--c-gutter-desktop);
  width: 100%;
}

.salon-fluid-author {
  color: var(--c-foreground);
  font-size: var(--c-size-body);
  font-weight: var(--c-font-bold);
}

.salon-fluid-date {
  color: var(--c-muted);
  font-size: var(--c-type-small);
}

.salon-fluid-head {
  align-items: baseline;
  display: flex;
  gap: var(--c-spacing-sm);
  justify-content: space-between;
  margin-bottom: var(--c-gutter-2xs);
}

.salon-fluid-heading {
  margin-bottom: var(--c-gutter-lg);
}

.salon-fluid-item {
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  list-style: none;
  padding-block: var(--c-gutter-md);
}

.salon-fluid-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.salon-fluid-meta {
  align-items: baseline;
  display: flex;
  gap: var(--c-spacing-sm);
}

.salon-fluid-rating {
  color: var(--c-secondary);
  font-weight: var(--c-font-bold);
  white-space: nowrap;
}

.salon-fluid-text {
  color: var(--c-muted);
  font-size: var(--c-size-body);
  line-height: var(--c-leading-normal);
  margin: 0;
}

/* --------------------------------------------------------------------------
   Component: cta-block — CTA-02 (root .palier-clean) centered contained box
   -------------------------------------------------------------------------- */
.palier-clean {
  margin-inline: auto;
  max-width: calc(var(--c-container) + 2 * var(--c-gutter-desktop));
  padding-block: var(--c-gutter-2xl);
  padding-inline: var(--c-gutter-desktop);
  width: 100%;
}

.palier-clean-box {
  background: rgba(59, 169, 135, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--c-round-lg);
  margin-inline: auto;
  max-width: 720px;
  padding: var(--c-gutter-2xl);
  text-align: center;
}

.palier-clean-button {
  background: var(--c-brand-color);
  border-radius: var(--c-radius);
  color: var(--c-bg);
  display: inline-block;
  font-family: var(--c-heading-font);
  font-weight: var(--c-font-bold);
  letter-spacing: var(--c-letter-wide);
  line-height: 52px;
  padding-inline: var(--c-spacing-xl);
  text-transform: uppercase;
  transition: background var(--c-transition-fast) var(--c-ease),
    color var(--c-transition-fast) var(--c-ease);
}

.palier-clean-button:hover {
  background: var(--c-secondary);
  color: var(--c-bg);
}

.palier-clean-description {
  color: var(--c-muted);
  font-size: var(--c-size-body);
  line-height: var(--c-lh-loose);
  margin-block: var(--c-gutter-md);
}

.palier-clean-title {
  color: var(--c-foreground);
  font-family: var(--c-heading-font);
  font-size: var(--c-fs-h2);
  font-weight: var(--c-font-bold);
  margin: 0;
}

/* --------------------------------------------------------------------------
   Component: prose — PROSE-03 (root .grotto-prime) bordered sidebar notes
   -------------------------------------------------------------------------- */
.grotto-prime {
  margin-inline: auto;
  max-width: calc(var(--c-container) + 2 * var(--c-gutter-desktop));
  padding-block: var(--c-spacing-xl);
  padding-inline: var(--c-gutter-desktop);
  width: 100%;
}

.grotto-prime a {
  color: var(--c-secondary);
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: text-decoration-thickness var(--c-transition-fast) var(--c-ease);
}

.grotto-prime a:hover {
  color: var(--c-accent-dark);
  text-decoration-thickness: 2px;
}

.grotto-prime h2 {
  margin-block-start: var(--c-gutter-2xl);
}

.grotto-prime h2:first-child {
  margin-block-start: 0;
}

.grotto-prime li {
  color: var(--c-muted);
  line-height: var(--c-leading-normal);
  margin-bottom: var(--c-gutter-2xs);
}

.grotto-prime ol,
.grotto-prime ul {
  border-left: var(--c-border-thick) solid rgba(217, 203, 196, 0.4);
  color: var(--c-muted);
  margin: 0 0 var(--c-gutter-md);
  padding-left: var(--c-gutter-lg);
}

.grotto-prime p {
  border-left: var(--c-border-thick) solid rgba(255, 255, 255, 0.15);
  color: var(--c-muted);
  line-height: var(--c-leading-normal);
  margin-block: var(--c-gutter-md);
  padding-left: var(--c-gutter-lg);
}

.grotto-prime strong {
  color: var(--c-foreground);
}

.grotto-prime-figure {
  margin: 0;
}

.grotto-prime-figure img {
  border-radius: var(--c-radius);
  display: block;
  height: auto;
  width: 100%;
}

/* --------------------------------------------------------------------------
   Component: data-table — TABLE-05 (root .vestiaire-fluid) compact dense
   -------------------------------------------------------------------------- */
.vestiaire-fluid {
  margin-inline: auto;
  max-width: calc(var(--c-container) + 2 * var(--c-gutter-desktop));
  padding-block: var(--c-spacing-xl);
  padding-inline: var(--c-gutter-desktop);
  width: 100%;
}

.vestiaire-fluid-heading {
  margin-bottom: var(--c-gutter-md);
}

.vestiaire-fluid-scroll {
  overflow-x: auto;
}

.vestiaire-fluid table {
  border-collapse: collapse;
  min-width: 560px;
  width: 100%;
}

.vestiaire-fluid tbody td {
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
  color: var(--c-muted);
  font-size: var(--c-type-small);
  padding: var(--c-gutter-xs) var(--c-spacing-sm);
}

.vestiaire-fluid thead th {
  background: var(--c-panel-bg);
  color: var(--c-foreground);
  font-size: var(--c-size-xs);
  font-weight: var(--c-font-bold);
  letter-spacing: var(--c-letter-wide);
  padding: var(--c-spacing-sm);
  position: sticky;
  text-align: left;
  text-transform: uppercase;
  top: 0;
  z-index: 1;
}

/* --------------------------------------------------------------------------
   Component: legal-section — LEGAL-03 (root .socle-core) 2-col sidebar TOC
   -------------------------------------------------------------------------- */
.socle-core {
  margin-inline: auto;
  max-width: calc(var(--c-container) + 2 * var(--c-gutter-desktop));
  padding-block: var(--c-spacing-xl);
  padding-inline: var(--c-gutter-desktop);
  width: 100%;
}

.socle-core-disclaimer {
  background: var(--c-panel-bg);
  border-left: var(--c-border-thick) solid var(--c-secondary);
  color: var(--c-muted);
  font-style: italic;
  margin-top: var(--c-gutter-lg);
  padding: var(--c-gutter-md) var(--c-gutter-lg);
}

.socle-core-grid {
  display: grid;
  gap: var(--c-gutter-2xl);
  grid-template-columns: 240px 1fr;
}

.socle-core-intro {
  color: var(--c-muted);
  font-size: var(--c-type-h5);
  line-height: var(--c-lh-loose);
  margin-bottom: var(--c-gutter-lg);
}

.socle-core-body {
  min-width: 0;
}

.socle-core-contacts {
  color: var(--c-muted);
  line-height: var(--c-leading-normal);
  margin: 0 0 var(--c-gutter-md);
  padding-left: var(--c-gutter-lg);
}

.socle-core-section {
  margin-bottom: var(--c-gutter-lg);
}

.socle-core-section p {
  color: var(--c-muted);
  line-height: var(--c-leading-normal);
}

.socle-core-toc {
  align-self: start;
  background: var(--c-panel-bg);
  border-radius: var(--c-radius);
  font-size: var(--c-type-small);
  padding: var(--c-gutter-md);
  position: sticky;
  top: var(--c-spacing-xl);
}

.socle-core-toc h4 {
  margin: 0 0 var(--c-spacing-sm);
}

.socle-core-toc a {
  color: var(--c-muted);
  transition: color var(--c-transition-fast) var(--c-ease);
}

.socle-core-toc a:hover {
  color: var(--c-secondary);
}

.socle-core-toc ol {
  margin: 0;
  padding-left: var(--c-gutter-md);
}

.socle-core-toc li {
  margin-bottom: var(--c-gutter-2xs);
}

/* --------------------------------------------------------------------------
   Component: contact-form — FORM-04 (root .crypte-signal)
   Message field present → stacked form (single-row FORM-04 gate not met).
   -------------------------------------------------------------------------- */
.crypte-signal {
  margin-inline: auto;
  max-width: calc(var(--c-container) + 2 * var(--c-gutter-desktop));
  padding-block: var(--c-gutter-lg);
  padding-inline: var(--c-gutter-desktop);
  width: 100%;
}

.crypte-signal-field {
  display: flex;
  flex-direction: column;
  gap: var(--c-gutter-2xs);
  margin-bottom: var(--c-gutter-md);
}

.crypte-signal-form {
  margin-inline: auto;
  max-width: 640px;
}

.crypte-signal-input,
.crypte-signal-textarea {
  background: var(--c-panel-bg);
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: var(--c-rounded-sm);
  color: var(--c-foreground);
  font-family: var(--c-font-text);
  font-size: var(--c-size-body);
  padding: var(--c-spacing-sm);
  width: 100%;
}

.crypte-signal-input:focus,
.crypte-signal-textarea:focus {
  border-color: var(--c-brand-color);
  outline: none;
}

.crypte-signal-intro {
  color: var(--c-muted);
  line-height: var(--c-lh-loose);
  margin-bottom: var(--c-gutter-lg);
}

.crypte-signal-label {
  color: var(--c-foreground);
  font-size: var(--c-type-small);
  font-weight: var(--c-font-bold);
  letter-spacing: var(--c-letter-wide);
  text-transform: uppercase;
}

.crypte-signal-submit {
  background: var(--c-brand-color);
  border: 0;
  border-radius: var(--c-radius);
  color: var(--c-bg);
  cursor: pointer;
  font-family: var(--c-heading-font);
  font-weight: var(--c-font-bold);
  letter-spacing: var(--c-letter-wide);
  min-height: 52px;
  padding-inline: var(--c-spacing-xl);
  text-transform: uppercase;
  transition: background var(--c-transition-fast) var(--c-ease),
    color var(--c-transition-fast) var(--c-ease);
}

.crypte-signal-submit:hover {
  background: var(--c-secondary);
  color: var(--c-bg);
}

.crypte-signal-success {
  background: rgba(59, 169, 135, 0.12);
  border: 1px solid var(--c-brand-color);
  border-radius: var(--c-radius);
  color: var(--c-foreground);
  margin-top: var(--c-gutter-md);
  padding: var(--c-gutter-md);
}

.crypte-signal-textarea {
  min-height: 140px;
  resize: vertical;
}

/* --------------------------------------------------------------------------
   Component: author-byline — BYLINE-06 (root .gallery-bright)
   -------------------------------------------------------------------------- */
.gallery-bright {
  margin-inline: auto;
  max-width: calc(var(--c-container) + 2 * var(--c-gutter-desktop));
  padding-block: var(--c-gutter-md);
  padding-inline: var(--c-gutter-desktop);
  width: 100%;
}

.gallery-bright-row {
  align-items: center;
  display: flex;
  gap: var(--c-gutter-md);
  margin-inline: auto;
  max-width: 720px;
}

.gallery-bright-divider {
  color: var(--c-muted);
  margin-inline: var(--c-gutter-2xs);
}

.gallery-bright-name {
  color: var(--c-secondary);
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: text-decoration-thickness var(--c-transition-fast) var(--c-ease);
}

.gallery-bright-name:hover {
  color: var(--c-secondary);
  text-decoration-thickness: 2px;
}

.gallery-bright-role {
  color: var(--c-muted);
}

.gallery-bright-portrait {
  background: var(--c-bg);
  border: 2px solid var(--c-bg);
  border-radius: var(--c-round-circle);
  box-sizing: content-box;
  flex-shrink: 0;
  height: 40px;
  object-fit: cover;
  object-position: center 20%;
  width: 40px;
}

.gallery-bright-text {
  color: var(--c-muted);
  flex: 1;
  font-size: var(--c-type-small);
  font-style: italic;
  margin: 0;
}

.gallery-bright-time {
  color: var(--c-muted);
  display: block;
  font-size: var(--c-type-small);
  font-style: normal;
  margin-top: var(--c-gutter-2xs);
}

/* --------------------------------------------------------------------------
   Component: author-card — AUTH-08 (root .barrow-fresh) minimal avatar + name
   -------------------------------------------------------------------------- */
.barrow-fresh {
  margin-inline: auto;
  max-width: calc(var(--c-container) + 2 * var(--c-gutter-desktop));
  padding-block: var(--c-gutter-lg);
  padding-inline: var(--c-gutter-desktop);
  width: 100%;
}

.barrow-fresh-articles {
  margin-inline: auto;
  max-width: calc(var(--c-container) + 2 * var(--c-gutter-desktop));
  padding-block: var(--c-gutter-lg);
  padding-inline: var(--c-gutter-desktop);
  width: 100%;
}

.barrow-fresh-articles-heading {
  font-family: var(--c-heading-font);
  font-size: var(--c-size-h4);
  font-weight: var(--c-font-bold);
  margin-bottom: var(--c-gutter-md);
}

.barrow-fresh-articles-item {
  color: var(--c-muted);
  font-size: var(--c-size-body);
  line-height: var(--c-leading-normal);
}

.barrow-fresh-articles-list {
  display: flex;
  flex-direction: column;
  gap: var(--c-gutter-xs);
  list-style: none;
  margin: 0;
  padding: 0;
}

.barrow-fresh-bio {
  color: var(--c-muted);
  line-height: var(--c-lh-loose);
  margin-block: var(--c-gutter-md);
  max-width: 720px;
}

.barrow-fresh-card {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: var(--c-spacing-sm);
}

.barrow-fresh-expertise {
  color: var(--c-muted);
  display: flex;
  flex-wrap: wrap;
  gap: var(--c-gutter-xs);
  list-style: none;
  margin: 0;
  padding: 0;
}

.barrow-fresh-expertise li {
  background: var(--c-panel-bg);
  border-radius: var(--c-radius-pill);
  font-size: var(--c-type-small);
  padding: var(--c-gutter-2xs) var(--c-spacing-sm);
}

.barrow-fresh-name {
  font-family: var(--c-heading-font);
  font-size: var(--c-size-body);
  font-weight: var(--c-font-bold);
}

.barrow-fresh-portrait {
  background: var(--c-bg);
  border: var(--c-border-thick) solid var(--c-bg);
  border-radius: var(--c-round-circle);
  box-sizing: content-box;
  height: 72px;
  object-fit: cover;
  object-position: center 20%;
  width: 72px;
}

.barrow-fresh-role {
  color: var(--c-muted);
  font-size: var(--c-size-xs);
}

/* --------------------------------------------------------------------------
   Component: error-block — ERR-07 (root .arcade-sleek) geometric pattern bg
   -------------------------------------------------------------------------- */
.arcade-sleek {
  background-image: linear-gradient(rgba(59, 169, 135, 0.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(59, 169, 135, 0.08) 1px, transparent 1px);
  background-size: 40px 40px;
  padding-block: var(--c-gap-3xl);
  text-align: center;
}

.arcade-sleek-button {
  background: var(--c-brand-color);
  border-radius: var(--c-radius);
  color: var(--c-bg);
  display: inline-block;
  font-family: var(--c-heading-font);
  font-weight: var(--c-font-bold);
  letter-spacing: var(--c-letter-wide);
  line-height: 52px;
  padding-inline: var(--c-spacing-xl);
  text-transform: uppercase;
  transition: background var(--c-transition-fast) var(--c-ease),
    color var(--c-transition-fast) var(--c-ease);
}

.arcade-sleek-button:hover {
  background: var(--c-secondary);
  color: var(--c-bg);
}

.arcade-sleek-code {
  color: var(--c-secondary);
  font-family: var(--c-heading-font);
  font-size: clamp(80px, 18vw, 200px);
  font-weight: var(--c-font-bold);
  line-height: var(--c-line-tight);
}

.arcade-sleek-inner {
  margin-inline: auto;
  max-width: calc(var(--c-container) + 2 * var(--c-gutter-desktop));
  padding-inline: var(--c-gutter-desktop);
  width: 100%;
}

.arcade-sleek-text {
  color: var(--c-muted);
  font-size: var(--c-type-h5);
  margin-inline: auto;
  max-width: 600px;
}

/* --------------------------------------------------------------------------
   Component: cookie-banner — COOK-02 (root .pillar-bright) full-width strip
   -------------------------------------------------------------------------- */
.pillar-bright {
  background: var(--c-brand-color);
  border-top: var(--c-hairline) solid rgba(255, 255, 255, 0.08);
  bottom: 0;
  display: none;
  left: 0;
  padding: var(--c-gutter-md) var(--c-gutter-desktop);
  position: fixed;
  right: 0;
  z-index: 90;
}

.pillar-bright.is-visible {
  display: block;
}

.pillar-bright-actions {
  display: flex;
  flex-shrink: 0;
  gap: var(--c-spacing-sm);
}

.pillar-bright-button--c-accept {
  background: var(--c-secondary);
  border: 0;
  border-radius: var(--c-radius);
  color: var(--c-bg);
  cursor: pointer;
  font-family: var(--c-heading-font);
  font-size: var(--c-size-xs);
  font-weight: var(--c-font-bold);
  letter-spacing: var(--c-letter-wide);
  min-height: 36px;
  padding-inline: var(--c-gutter-md);
  text-transform: uppercase;
  transition: background var(--c-transition-fast) var(--c-ease);
}

.pillar-bright-button--c-accept:hover {
  background: var(--c-accent-dark);
}

.pillar-bright-button--c-decline {
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.35);
  border-radius: var(--c-radius);
  color: var(--c-foreground);
  cursor: pointer;
  font-family: var(--c-heading-font);
  font-size: var(--c-size-xs);
  font-weight: var(--c-font-bold);
  letter-spacing: var(--c-letter-wide);
  min-height: 36px;
  padding-inline: var(--c-gutter-md);
  text-transform: uppercase;
  transition: background var(--c-transition-fast) var(--c-ease);
}

.pillar-bright-button--c-decline:hover {
  background: rgba(255, 255, 255, 0.08);
}

.pillar-bright-bar {
  align-items: center;
  display: flex;
  gap: var(--c-gutter-md);
  justify-content: space-between;
  margin-inline: auto;
  max-width: calc(var(--c-container) + 2 * var(--c-gutter-desktop));
}

.pillar-bright-message {
  color: var(--c-bg);
  flex: 1;
  font-size: var(--c-type-small);
  margin: 0;
}

/* --------------------------------------------------------------------------
   Component: footer — FOOT-01 (root .lozenge-swift) three-column classic
   -------------------------------------------------------------------------- */
.lozenge-swift {
  background: var(--c-brand-color);
}

.lozenge-swift-bottom {
  border-top: 1px solid rgba(255, 255, 255, 0.15);
  margin-inline: auto;
  max-width: calc(var(--c-container) + 2 * var(--c-gutter-desktop));
  padding-block: var(--c-gutter-md);
  padding-inline: var(--c-gutter-desktop);
  text-align: center;
  width: 100%;
}

.lozenge-swift-bottom small {
  color: var(--c-bg);
  font-size: var(--c-size-xs);
}

.lozenge-swift-col {
  min-width: 0;
}

.lozenge-swift-col--brand,
.lozenge-swift-col--legal,
.lozenge-swift-col--nav {
  min-width: 0;
}

.lozenge-swift-heading {
  color: var(--c-bg);
  font-family: var(--c-heading-font);
  font-size: var(--c-fs-h6);
  font-weight: var(--c-font-bold);
  letter-spacing: var(--c-letter-wide);
  margin: 0 0 var(--c-gutter-md);
  text-transform: uppercase;
}

.lozenge-swift-inner {
  display: grid;
  gap: var(--c-spacing-xl);
  grid-template-columns: repeat(3, 1fr);
  margin-inline: auto;
  max-width: calc(var(--c-container) + 2 * var(--c-gutter-desktop));
  padding-block: var(--c-gutter-2xl);
  padding-inline: var(--c-gutter-desktop);
  width: 100%;
}

.lozenge-swift-list {
  display: flex;
  flex-direction: column;
  gap: var(--c-spacing-sm);
  list-style: none;
  margin: 0;
  padding: 0;
}

.lozenge-swift-list a {
  color: var(--c-bg);
  font-family: var(--c-font-text);
  font-size: var(--c-type-small);
  transition: color var(--c-transition-fast) var(--c-ease);
}

.lozenge-swift-list a:hover {
  color: var(--c-foreground);
}

.lozenge-swift-logo {
  align-items: baseline;
  color: var(--c-bg);
  display: inline-flex;
  font-family: var(--c-heading-font);
  font-size: 36px;
  font-weight: var(--c-font-bold);
  gap: 2px;
  letter-spacing: var(--c-tracking-tight);
  line-height: 1;
  text-transform: uppercase;
}

.lozenge-swift-logo-mark {
  color: var(--c-bg);
  opacity: 0.7;
}

.lozenge-swift-tagline {
  color: var(--c-bg);
  font-size: var(--c-type-small);
  margin-top: var(--c-gutter-md);
  max-width: 30ch;
}

/* --------------------------------------------------------------------------
   Section: breakpoints — BP-08 desktop-first (max-width)
   -------------------------------------------------------------------------- */
@media (max-width: 1200px) {
  .feuille-premium-list {
    grid-template-columns: repeat(2, 1fr);
  }
  .lozenge-swift-inner {
    grid-template-columns: 1fr 1fr;
  }
  .lozenge-swift-col--brand {
    grid-column: 1 / -1;
  }
}

@media (max-width: 940px) {
  :root {
    --c-type-h1: 34px;
    --c-fs-h2: 26px;
    --c-text-h3: 20px;
    --c-size-h4: 16px;
    --c-type-h5: 14px;
    --c-fs-h6: 12px;
    --c-size-body: 15px;
    --c-type-small: 12px;
    --c-size-xs: 10px;
  }

  .annexe-sharp-list {
    grid-template-columns: 1fr;
  }

  .antechamber-plus-bar {
    min-height: var(--c-nav-h-mobile);
  }

  .antechamber-plus-logo {
    font-size: 34px;
  }

  .antechamber-plus-nav {
    display: none;
  }

  .feuille-premium-list {
    grid-template-columns: 1fr;
  }

  .socle-core-grid {
    grid-template-columns: 1fr;
    gap: var(--c-gutter-lg);
  }

  .socle-core-toc {
    position: static;
  }
}

@media (max-width: 700px) {
  .lozenge-swift-inner {
    grid-template-columns: 1fr;
  }

  .pergola-solid-figure img {
    height: 220px;
  }

  .pillar-bright,
  .pillar-bright-bar {
    font-size: 13px !important;
    gap: 8px !important;
    line-height: 1.35 !important;
    padding: 12px 14px !important;
  }

  .pillar-bright-bar {
    align-items: stretch;
    flex-direction: column;
  }

  .pillar-bright-actions {
    width: 100%;
  }

  .pillar-bright-button--c-accept,
  .pillar-bright-button--c-decline {
    flex: 1 1 auto;
    font-size: 12px !important;
    min-height: 36px !important;
    padding: 8px 14px !important;
  }

  .pillar-bright-message {
    display: block;
  }
}

/* --------------------------------------------------------------------------
   Section: reduced motion
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  * {
    transition-duration: 0.01ms !important;
  }
}
