:root {
  --app-main-color: #4241e5;
  --app-accent: #f4a50a;
  --app-highlight-active: #ca8008;
  --app-surface: #000000;
  --app-card-bg: #131316;
  --app-gradient-from: #f9ce8c;
  --app-gradient-to: #f5b540;
  --app-alert-bg: #dc2626;
  --app-foreground: #ffffff;
  --app-muted: #bdbdbd;

  --app-display-font: 'Jost', sans-serif;
  --app-body-font: 'Jost', sans-serif;

  --app-text-h1: 44px;
  --app-size-h2: 34px;
  --app-type-h3: 26px;
  --app-fs-h4: 20px;
  --app-text-h5: 16px;
  --app-size-h6: 14px;
  --app-fs-body: 16px;
  --app-text-sm: 14px;
  --app-fs-micro: 12px;

  --app-lh-tight: 1.2;
  --app-line-normal: 1.55;
  --app-lh-loose: 1.7;

  --app-tracking-tight: -0.01em;
  --app-ls-normal: 0;
  --app-letter-wide: 0.02em;

  --app-font-normal: 400;
  --app-weight-medium: 500;
  --app-font-bold: 700;

  --app-gutter-2xs: 2px;
  --app-space-xs: 6px;
  --app-gap-sm: 10px;
  --app-space-md: 16px;
  --app-space-lg: 48px;
  --app-gap-xl: 80px;
  --app-gutter-2xl: 128px;
  --app-gutter-3xl: 200px;

  --app-content-width: 1120px;
  --app-measure: 700px;
  --app-gutter-mobile: 16px;
  --app-container-padding-tablet: 32px;
  --app-inset-desktop: 24px;

  --app-radius-xs: 4px;
  --app-corner-sm: 10px;
  --app-corner: 16px;
  --app-radius-lg: 28px;
  --app-round-full: 9999px;
  --app-round-circle: 50%;

  --app-shadow-xs: 0 2px 4px rgba(0, 0, 0, 0.06);
  --app-shade-sm: 0 4px 10px rgba(0, 0, 0, 0.08);
  --app-depth-md: 0 10px 28px rgba(0, 0, 0, 0.12);
  --app-depth-lg: 0 20px 48px rgba(0, 0, 0, 0.16);

  --app-hairline: 1px;
  --app-border-medium: 2px;
  --app-border-thick: 3px;

  --app-duration-fast: 120ms;
  --app-transition-base: 150ms;
  --app-transition-slow: 200ms;
  --app-ease-out: cubic-bezier(0.25, 0.46, 0.45, 0.94);
  --app-ease-in: cubic-bezier(0.55, 0.06, 0.68, 0.19);
  --app-ease-in-out: cubic-bezier(0.45, 0.05, 0.55, 0.95);
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html,
body {
  overflow-x: clip;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  background: var(--app-surface);
  color: var(--app-foreground);
  font-family: var(--app-body-font);
  font-size: var(--app-fs-body);
  font-weight: var(--app-font-normal);
  line-height: var(--app-line-normal);
  -webkit-font-smoothing: antialiased;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

a {
  color: inherit;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0;
}

p {
  margin: 0;
}

ul {
  margin: 0;
  padding: 0;
}

.skip-link {
  position: absolute;
  left: var(--app-space-md);
  top: var(--app-space-md);
  z-index: 200;
  background: var(--app-accent);
  color: var(--app-surface);
  padding: var(--app-gap-sm) var(--app-space-md);
  border-radius: var(--app-corner);
  font-weight: var(--app-font-bold);
}

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

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

/* Responsible-gaming 18+ banner */
.rg-banner {
  position: relative;
  background: var(--app-alert-bg);
  color: var(--app-foreground);
  text-align: center;
  font-size: var(--app-fs-micro);
  font-weight: var(--app-weight-medium);
  letter-spacing: var(--app-letter-wide);
  padding: var(--app-space-xs) var(--app-inset-desktop);
}

/* ============ Header — HEAD-06 Magazine Logo ============ */
.peristyle-raffine {
  background: var(--app-surface);
  border-bottom: 1px solid rgba(255, 255, 255, 0.15);
}

.peristyle-raffine-inner {
  max-width: calc(var(--app-content-width) + 2 * var(--app-inset-desktop));
  margin-inline: auto;
  padding-inline: var(--app-space-md);
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: var(--app-space-lg);
}

.peristyle-raffine-logo,
.peristyle-raffine-logo img {
  flex-shrink: 0;
}

.peristyle-raffine-logo {
  display: inline-flex;
  align-items: center;
  padding-block: var(--app-gap-sm);
}

.peristyle-raffine-logo img {
  height: 92px;
  width: auto;
  mix-blend-mode: screen;
}

.peristyle-raffine-nav {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--app-gutter-2xs);
}

.peristyle-raffine-nav-list {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: var(--app-gutter-2xs) var(--app-space-md);
  list-style: none;
  margin: 0;
  padding: 0;
}

.peristyle-raffine-nav-list--top {
  padding: 0;
}

.peristyle-raffine-nav-item {
  display: inline-flex;
}

.peristyle-raffine-nav-list--bottom {
  padding-top: var(--app-gutter-2xs);
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.peristyle-raffine-link {
  white-space: nowrap;
  display: inline-block;
  font-family: var(--app-body-font);
  font-weight: var(--app-weight-medium);
  font-size: var(--app-text-sm);
  letter-spacing: var(--app-letter-wide);
  text-transform: uppercase;
  text-decoration: none;
  color: var(--app-foreground);
  padding-block: var(--app-gutter-2xs);
  transition: color var(--app-duration-fast) var(--app-ease-out);
}

.peristyle-raffine-link:hover {
  color: var(--app-accent);
}

body[data-current="/"] .peristyle-raffine-link[data-nav="/"],
body[data-current="/apk/"] .peristyle-raffine-link[data-nav="/apk/"],
body[data-current="/log-in/"] .peristyle-raffine-link[data-nav="/log-in/"],
body[data-current="/about/"] .peristyle-raffine-link[data-nav="/about/"],
body[data-current="/bonuses/"] .peristyle-raffine-link[data-nav="/bonuses/"],
body[data-current="/coupon/"] .peristyle-raffine-link[data-nav="/coupon/"],
body[data-current="/help/"] .peristyle-raffine-link[data-nav="/help/"] {
  color: var(--app-accent);
}

.peristyle-raffine-auth {
  display: flex;
  align-items: center;
  gap: var(--app-gap-sm);
  margin-left: auto;
}

.peristyle-raffine-auth-btn {
  display: inline-flex;
  align-items: center;
  height: 40px;
  padding-inline: var(--app-space-md);
  font-family: var(--app-display-font);
  font-weight: var(--app-font-bold);
  font-size: var(--app-fs-micro);
  letter-spacing: var(--app-letter-wide);
  text-transform: uppercase;
  text-decoration: none;
  border-radius: var(--app-corner);
  transition: background var(--app-duration-fast) var(--app-ease-out), color var(--app-duration-fast) var(--app-ease-out);
}

.peristyle-raffine-auth-btn--app-login {
  background: transparent;
  border: 1px solid var(--app-foreground);
  color: var(--app-foreground);
}

.peristyle-raffine-auth-btn--app-login:hover {
  background: var(--app-foreground);
  color: var(--app-surface);
}

.peristyle-raffine-auth-btn--app-register {
  background: var(--app-accent);
  border: 1px solid var(--app-accent);
  color: var(--app-surface);
}

.peristyle-raffine-auth-btn--app-register:hover {
  background: var(--app-highlight-active);
  color: var(--app-surface);
}

.peristyle-raffine-toggle {
  display: none;
  margin-left: auto !important;
  width: 44px;
  height: 44px;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: 0;
  color: var(--app-foreground);
  cursor: pointer;
}

.peristyle-raffine-toggle svg {
  width: 26px;
  height: 26px;
}

.peristyle-raffine-drawer {
  display: none;
}

@media (max-width: 939px) {
  .peristyle-raffine-nav,
  .peristyle-raffine-auth {
    display: none;
  }

  .peristyle-raffine-toggle {
    display: inline-flex;
  }

  .peristyle-raffine-inner {
    grid-template-columns: auto auto;
    justify-content: space-between;
  }

  .peristyle-raffine-logo img {
    height: 62px;
  }

  .peristyle-raffine-drawer {
    display: none;
    background: var(--app-surface);
    border-top: 1px solid rgba(255, 255, 255, 0.08);
  }

  .peristyle-raffine-drawer.is-open {
    display: block;
  }

  .peristyle-raffine-drawer-list {
    list-style: none;
    margin: 0;
    padding: 0;
  }

  .peristyle-raffine-drawer-list li {
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  }

  .peristyle-raffine-drawer-link {
    display: block;
    padding: var(--app-space-md);
    color: var(--app-foreground);
    text-decoration: none;
    font-size: var(--app-size-h6);
    text-transform: uppercase;
    letter-spacing: var(--app-letter-wide);
  }

  .peristyle-raffine-drawer-link:hover {
    color: var(--app-accent);
  }

  .peristyle-raffine-drawer-auth {
    display: flex;
    gap: var(--app-gap-sm);
    padding: var(--app-space-md);
  }

  .peristyle-raffine-drawer-auth .peristyle-raffine-auth-btn {
    display: inline-flex;
    flex: 1 1 auto;
    justify-content: center;
  }
}

@media (min-width: 940px) and (max-width: 1200px) {
  .peristyle-raffine-logo img {
    height: 78px;
  }
}

/* ============ Section wrapper convention ============ */
.section-inner,
.bordure-moderne-content,
.piedestal-dense-inner,
.stalle-dru-inner,
.dais-austere-inner,
.baptistere-fluide-inner,
.gueridon-large-inner,
.oriflamme-pur-inner,
.veilleuse-vif-inner,
.amphitheatre-dense-inner,
.parterre-grand-inner,
.bosquet-haut-inner,
.catafalque-dore-inner,
.receptacle-robuste-inner,
.prie-dieu-moderne-inner,
.monstrance-vif-inner,
.chasse-calme-inner {
  max-width: calc(var(--app-content-width) + 2 * var(--app-inset-desktop));
  margin-inline: auto;
  padding-inline: var(--app-space-md);
}

main {
  display: block;
}

/* ============ Hero — HERO-01 Full-Bleed Cinematic ============ */
.bordure-moderne {
  position: relative;
  width: 100%;
  min-height: 600px;
  max-height: 900px;
  height: 82vh;
  overflow: hidden;
  display: flex;
  align-items: flex-end;
}

.bordure-moderne-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  z-index: 1;
}

.bordure-moderne-overlay {
  position: absolute;
  inset: 0;
  z-index: 2;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.72));
}

.bordure-moderne-content {
  position: relative;
  z-index: 3;
  width: 100%;
  padding-block: var(--app-space-lg) var(--app-gap-xl);
}

.bordure-moderne-title {
  font-family: var(--app-display-font);
  font-weight: var(--app-font-bold);
  font-size: var(--app-text-h1);
  letter-spacing: var(--app-tracking-tight);
  line-height: var(--app-lh-tight);
  color: #ffffff;
  max-width: 760px;
}

.bordure-moderne-subtitle {
  font-family: var(--app-body-font);
  font-weight: var(--app-font-normal);
  font-size: var(--app-text-h5);
  line-height: var(--app-line-normal);
  color: rgba(255, 255, 255, 0.85);
  max-width: 620px;
  margin-top: var(--app-space-md);
}

.bordure-moderne-cta {
  display: inline-flex;
  align-items: center;
  margin-top: var(--app-space-lg);
  height: 56px;
  padding-inline: var(--app-space-lg);
  background: var(--app-accent);
  color: var(--app-surface);
  font-family: var(--app-display-font);
  font-weight: var(--app-font-bold);
  font-size: var(--app-size-h6);
  letter-spacing: var(--app-letter-wide);
  text-transform: uppercase;
  text-decoration: none;
  border-radius: var(--app-corner);
  transition: background var(--app-transition-base) var(--app-ease-out), color var(--app-transition-base) var(--app-ease-out);
}

.bordure-moderne-cta:hover {
  background: var(--app-highlight-active);
  color: var(--app-surface);
}

/* ============ Page Header — PHEAD-07 Number + Title ============ */
.piedestal-dense {
  background: var(--app-surface);
  padding-block: var(--app-space-lg);
}

.piedestal-dense-inner {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: var(--app-space-md);
}

.piedestal-dense-number {
  font-family: var(--app-display-font);
  font-weight: var(--app-font-bold);
  font-size: calc(var(--app-text-h1) * 1.4);
  line-height: 1;
  color: var(--app-accent);
  align-self: start;
}

.piedestal-dense-title {
  font-family: var(--app-display-font);
  font-weight: var(--app-font-bold);
  font-size: var(--app-text-h1);
  letter-spacing: var(--app-tracking-tight);
  line-height: var(--app-lh-tight);
  color: var(--app-foreground);
}

.piedestal-dense-description {
  font-family: var(--app-body-font);
  font-size: var(--app-text-h5);
  line-height: var(--app-line-normal);
  color: var(--app-muted);
  margin-top: var(--app-space-md);
}

.piedestal-dense-meta {
  font-size: var(--app-text-sm);
  color: var(--app-muted);
  margin-top: var(--app-gap-sm);
}

/* ============ Breadcrumbs — BREAD-05 Slashed Display ============ */
.receptacle-robuste {
  background: var(--app-surface);
}

.receptacle-robuste-inner {
  padding-block: var(--app-space-md);
}

.receptacle-robuste-list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--app-space-xs);
  list-style: none;
  margin: 0;
  padding: 0;
}

.receptacle-robuste-item {
  font-family: var(--app-display-font);
  font-weight: var(--app-font-bold);
  font-size: var(--app-text-h5);
  letter-spacing: var(--app-tracking-tight);
  text-transform: uppercase;
}

.receptacle-robuste-item:not(:last-child)::after {
  content: '/';
  color: var(--app-accent);
  margin-left: var(--app-space-xs);
}

.receptacle-robuste-item a {
  color: var(--app-muted);
  text-decoration: none;
  transition: color var(--app-duration-fast) var(--app-ease-out);
}

.receptacle-robuste-item a:hover {
  color: var(--app-accent);
}

.receptacle-robuste-item[aria-current="page"] span {
  color: var(--app-foreground);
}

/* ============ Inline CTA — INLINE-CTA-05 Highlighted Quote Banner ============ */
.prie-dieu-moderne {
  width: 100%;
  background: var(--app-card-bg);
}

.prie-dieu-moderne-inner {
  padding-block: var(--app-space-lg);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.prie-dieu-moderne-quote {
  max-width: 720px;
  margin: 0 auto var(--app-space-md);
  font-family: var(--app-display-font);
  font-weight: var(--app-font-bold);
  font-size: var(--app-type-h3);
  font-style: italic;
  line-height: var(--app-lh-tight);
  color: var(--app-foreground);
}

.prie-dieu-moderne-btn {
  display: inline-flex;
  align-items: center;
  padding: var(--app-gap-sm) var(--app-space-lg);
  background: transparent;
  border: 2px solid var(--app-accent);
  color: var(--app-accent);
  font-family: var(--app-display-font);
  font-weight: var(--app-font-bold);
  font-size: var(--app-size-h6);
  letter-spacing: var(--app-letter-wide);
  text-transform: uppercase;
  text-decoration: none;
  border-radius: var(--app-corner);
  transition: background var(--app-transition-base) var(--app-ease-out), color var(--app-transition-base) var(--app-ease-out);
}

.prie-dieu-moderne-btn:hover {
  background: var(--app-accent);
  color: var(--app-surface);
}

/* ============ Items Grid — GRID-04 Icon-Decorated Cards ============ */
.stalle-dru {
  padding-block: var(--app-space-lg);
}

.stalle-dru-heading {
  font-family: var(--app-display-font);
  font-weight: var(--app-font-bold);
  font-size: var(--app-size-h2);
  letter-spacing: var(--app-tracking-tight);
  line-height: var(--app-lh-tight);
  color: var(--app-foreground);
  margin-bottom: var(--app-space-lg);
}

.stalle-dru-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--app-space-md);
}

.stalle-dru-item {
  padding: var(--app-space-md);
  background: var(--app-card-bg);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: var(--app-corner);
  transition: border-color var(--app-transition-base) var(--app-ease-out);
}

.stalle-dru-badge {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border-radius: var(--app-round-circle);
  background: var(--app-accent);
  color: var(--app-surface);
  font-family: var(--app-display-font);
  font-weight: var(--app-font-bold);
  font-size: var(--app-fs-h4);
  margin-bottom: var(--app-space-md);
}

.stalle-dru-item-title {
  font-family: var(--app-body-font);
  font-weight: var(--app-font-bold);
  font-size: var(--app-fs-h4);
  line-height: var(--app-lh-tight);
  color: var(--app-foreground);
  margin-bottom: var(--app-gap-sm);
}

.stalle-dru-item-text {
  font-family: var(--app-body-font);
  font-size: var(--app-fs-body);
  line-height: var(--app-line-normal);
  color: var(--app-muted);
}

/* ============ Prose — PROSE-07 Numbered Section Headers ============ */
.oriflamme-pur {
  padding-block: var(--app-space-lg);
  counter-reset: section;
}

.oriflamme-pur-inner > h2 {
  font-family: var(--app-display-font);
  font-weight: var(--app-font-bold);
  font-size: var(--app-size-h2);
  letter-spacing: var(--app-tracking-tight);
  line-height: var(--app-lh-tight);
  color: var(--app-foreground);
  margin-top: var(--app-space-lg);
  margin-bottom: var(--app-space-md);
}

.oriflamme-pur-inner > h2::before {
  counter-increment: section;
  content: counter(section, decimal-leading-zero) '. ';
  color: var(--app-accent);
  font-family: var(--app-display-font);
  font-weight: var(--app-font-bold);
  margin-right: var(--app-gap-sm);
}

.oriflamme-pur-inner > h2:first-child {
  margin-top: 0;
}

.oriflamme-pur-inner p {
  font-family: var(--app-body-font);
  font-size: var(--app-fs-body);
  line-height: var(--app-lh-loose);
  color: var(--app-foreground);
  margin-bottom: var(--app-space-md);
}

.oriflamme-pur-inner ul {
  margin: 0 0 var(--app-space-md);
  padding-left: var(--app-space-lg);
  color: var(--app-foreground);
  line-height: var(--app-lh-loose);
}

.oriflamme-pur-inner ol {
  margin: 0 0 var(--app-space-md);
  padding-left: var(--app-space-lg);
  color: var(--app-foreground);
  line-height: var(--app-lh-loose);
}

.oriflamme-pur-inner li {
  margin-bottom: var(--app-space-xs);
}

.oriflamme-pur-inner strong {
  font-weight: var(--app-font-bold);
  color: var(--app-foreground);
}

.oriflamme-pur-inner em {
  font-style: italic;
}

.oriflamme-pur-inner a {
  color: var(--app-accent);
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: text-decoration-thickness var(--app-duration-fast) var(--app-ease-out);
}

.oriflamme-pur-inner a:hover {
  text-decoration-thickness: 2px;
  color: var(--app-highlight-active);
}

.oriflamme-pur-figure {
  margin: var(--app-space-lg) 0;
}

.oriflamme-pur-figure img {
  width: 100%;
  border-radius: var(--app-corner);
}

/* ============ Data Table — TABLE-07 Two-Tone Alternating Columns ============ */
.veilleuse-vif {
  padding-block: var(--app-space-lg);
}

.veilleuse-vif-heading {
  font-family: var(--app-display-font);
  font-weight: var(--app-font-bold);
  font-size: var(--app-size-h2);
  letter-spacing: var(--app-tracking-tight);
  line-height: var(--app-lh-tight);
  color: var(--app-foreground);
  margin-bottom: var(--app-space-md);
}

.veilleuse-vif-scroll {
  overflow-x: auto;
}

.veilleuse-vif-table {
  width: 100%;
  min-width: 520px;
  border-collapse: collapse;
}

.veilleuse-vif-table thead {
  background: var(--app-main-color);
}

.veilleuse-vif-table th {
  padding: var(--app-space-md);
  text-align: left;
  font-family: var(--app-body-font);
  font-weight: var(--app-weight-medium);
  font-size: var(--app-size-h6);
  letter-spacing: var(--app-letter-wide);
  text-transform: uppercase;
  color: var(--app-accent);
}

.veilleuse-vif-table td {
  padding: var(--app-space-md);
  font-size: var(--app-fs-body);
  color: var(--app-muted);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.veilleuse-vif-table td:nth-child(even) {
  background: rgba(255, 255, 255, 0.03);
}

.veilleuse-vif-table td:first-child {
  color: var(--app-foreground);
  font-weight: var(--app-weight-medium);
}

/* ============ Reviews — REV-04 Featured + List ============ */
.baptistere-fluide {
  padding-block: var(--app-space-lg);
}

.baptistere-fluide-heading {
  font-family: var(--app-display-font);
  font-weight: var(--app-font-bold);
  font-size: var(--app-size-h2);
  letter-spacing: var(--app-tracking-tight);
  line-height: var(--app-lh-tight);
  color: var(--app-foreground);
  margin-bottom: var(--app-space-lg);
}

.baptistere-fluide-featured {
  padding: var(--app-space-lg);
  background: rgba(66, 65, 229, 0.06);
  border-radius: var(--app-radius-lg);
  margin-bottom: var(--app-space-lg);
}

.baptistere-fluide-featured-text {
  font-size: var(--app-fs-h4);
  font-style: italic;
  line-height: var(--app-line-normal);
  color: var(--app-foreground);
  margin-bottom: var(--app-space-md);
}

.baptistere-fluide-stars {
  display: inline-flex;
  gap: 2px;
  margin-bottom: var(--app-gap-sm);
}

.baptistere-fluide-stars svg {
  width: 28px;
  height: 28px;
}

.baptistere-fluide-featured .baptistere-fluide-stars svg {
  width: 28px;
  height: 28px;
}

.baptistere-fluide-meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--app-gap-sm);
  align-items: baseline;
  font-size: var(--app-text-sm);
  color: var(--app-muted);
}

.baptistere-fluide-author {
  font-weight: var(--app-font-bold);
  color: var(--app-foreground);
}

.baptistere-fluide-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--app-space-md);
}

.baptistere-fluide-list-item {
  padding: var(--app-space-md);
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.baptistere-fluide-list-item .baptistere-fluide-stars svg {
  width: 18px;
  height: 18px;
}

.baptistere-fluide-list-text {
  font-size: var(--app-text-sm);
  line-height: var(--app-line-normal);
  color: var(--app-muted);
  margin-top: var(--app-space-xs);
}

.star-full {
  fill: var(--app-accent);
}

.star-empty {
  fill: rgba(189, 189, 189, 0.3);
}

/* ============ FAQ — FAQ-08 Bordered Box with Indicator Bar ============ */
.dais-austere {
  padding-block: var(--app-space-lg);
}

.dais-austere-heading {
  font-family: var(--app-display-font);
  font-weight: var(--app-font-bold);
  font-size: var(--app-size-h2);
  letter-spacing: var(--app-tracking-tight);
  line-height: var(--app-lh-tight);
  color: var(--app-foreground);
  margin-bottom: var(--app-space-lg);
}

.dais-austere-box {
  background: rgba(66, 65, 229, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: var(--app-radius-lg);
  padding: var(--app-space-lg);
}

.dais-austere-item {
  box-shadow: inset 4px 0 0 var(--app-accent);
  padding-left: var(--app-space-md);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.dais-austere-item:last-child {
  border-bottom: 0;
}

.dais-austere-question {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--app-space-md);
  text-align: left;
  background: transparent;
  border: 0;
  cursor: pointer;
  padding-block: var(--app-space-md);
  color: var(--app-foreground);
  font-family: var(--app-body-font);
  font-weight: var(--app-font-bold);
  font-size: var(--app-text-h5);
  transition: color var(--app-duration-fast) var(--app-ease-out);
}

.dais-austere-question:hover {
  color: var(--app-accent);
}

.dais-austere-question-text {
  flex: 1 1 auto;
}

.dais-austere-icon {
  flex-shrink: 0;
  color: var(--app-accent);
  font-size: 24px;
  line-height: 1;
}

.dais-austere-answer[hidden] {
  display: none;
}

.dais-austere-answer {
  padding-top: var(--app-gap-sm);
  padding-bottom: var(--app-space-md);
}

.dais-austere-answer p {
  font-size: var(--app-fs-body);
  line-height: var(--app-lh-loose);
  color: var(--app-muted);
}

/* ============ CTA Block — CTA-02 Centered Contained Box ============ */
.gueridon-large {
  padding-block: var(--app-space-lg);
}

.gueridon-large-box {
  max-width: 720px;
  margin-inline: auto;
  text-align: center;
  background: rgba(66, 65, 229, 0.04);
  padding: var(--app-space-lg);
  border-radius: var(--app-radius-lg);
  border: 1px solid rgba(255, 255, 255, 0.08);
}

.gueridon-large-title {
  font-family: var(--app-display-font);
  font-weight: var(--app-font-bold);
  font-size: var(--app-size-h2);
  line-height: var(--app-lh-tight);
  color: var(--app-foreground);
}

.gueridon-large-description {
  font-size: var(--app-fs-body);
  line-height: var(--app-lh-loose);
  color: var(--app-muted);
  margin-block: var(--app-space-md);
}

.gueridon-large-button {
  display: inline-flex;
  align-items: center;
  height: 52px;
  padding-inline: var(--app-space-lg);
  background: var(--app-accent);
  color: var(--app-surface);
  font-family: var(--app-display-font);
  font-weight: var(--app-font-bold);
  font-size: var(--app-size-h6);
  letter-spacing: var(--app-letter-wide);
  text-transform: uppercase;
  text-decoration: none;
  border-radius: var(--app-corner);
  transition: background var(--app-transition-base) var(--app-ease-out), color var(--app-transition-base) var(--app-ease-out);
}

.gueridon-large-button:hover {
  background: var(--app-highlight-active);
  color: var(--app-surface);
}

/* ============ Author Byline — BYLINE-01 Compact Inline ============ */
.catafalque-dore {
  padding-block: var(--app-space-lg);
}

.catafalque-dore-inner {
  display: flex;
  align-items: center;
  gap: var(--app-gap-sm);
}

.catafalque-dore-portrait {
  flex-shrink: 0;
  display: block;
  border-radius: var(--app-round-circle);
  overflow: hidden;
}

.catafalque-dore-portrait img {
  width: 48px;
  height: 48px;
  border-radius: var(--app-round-circle);
  object-fit: cover;
  object-position: center 20%;
  background: var(--app-surface);
  border: 2px solid var(--app-surface);
  box-sizing: content-box;
}

.catafalque-dore-text {
  min-width: 0;
}

.catafalque-dore-attribution {
  font-family: var(--app-body-font);
  font-size: var(--app-fs-body);
  color: var(--app-muted);
}

.catafalque-dore-name {
  color: var(--app-accent);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.catafalque-dore-role {
  font-size: var(--app-text-sm);
  font-style: italic;
  color: var(--app-muted);
  margin-top: var(--app-gutter-2xs);
}

.catafalque-dore-date {
  display: inline-block;
  font-size: var(--app-text-sm);
  color: var(--app-muted);
  margin-top: var(--app-gutter-2xs);
}

/* ============ Author Card — AUTH-07 Quote-Style with Portrait ============ */
.bosquet-haut {
  padding-block: var(--app-space-lg);
}

.bosquet-haut-card {
  background: var(--app-card-bg);
  padding: var(--app-space-lg);
  border-radius: var(--app-corner);
  border-left: 4px solid var(--app-accent);
  display: grid;
  grid-template-columns: 100px 1fr;
  gap: var(--app-space-md);
}

.bosquet-haut-portrait {
  width: 100px;
  height: 100px;
  border-radius: var(--app-round-circle);
  object-fit: cover;
  object-position: center 20%;
  background: var(--app-card-bg);
  border: 3px solid var(--app-card-bg);
  box-sizing: content-box;
}

.bosquet-haut-body {
  min-width: 0;
}

.bosquet-haut-quotemark {
  font-family: var(--app-display-font);
  font-weight: var(--app-font-bold);
  font-size: var(--app-text-h1);
  line-height: 0.6;
  color: var(--app-accent);
}

.bosquet-haut-bio {
  font-style: italic;
  font-size: var(--app-text-h5);
  line-height: var(--app-line-normal);
  color: var(--app-foreground);
  margin-block: var(--app-gap-sm);
}

.bosquet-haut-attribution {
  font-size: var(--app-text-sm);
  letter-spacing: var(--app-letter-wide);
  color: var(--app-muted);
}

.bosquet-haut-expertise {
  display: flex;
  flex-wrap: wrap;
  gap: var(--app-space-xs);
  margin-top: var(--app-space-md);
  list-style: none;
  padding: 0;
}

.bosquet-haut-tag {
  padding: var(--app-gutter-2xs) var(--app-gap-sm);
  background: var(--app-main-color);
  color: var(--app-foreground);
  border-radius: var(--app-round-full);
  font-size: var(--app-fs-micro);
  text-transform: uppercase;
  letter-spacing: var(--app-letter-wide);
}

.bosquet-haut-articles {
  padding-block: var(--app-space-lg);
}

.bosquet-haut-articles-heading {
  font-family: var(--app-display-font);
  font-weight: var(--app-font-bold);
  font-size: var(--app-fs-h4);
  margin-bottom: var(--app-space-md);
  color: var(--app-foreground);
}

.bosquet-haut-articles-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--app-space-xs);
}

.bosquet-haut-articles-item {
  font-size: var(--app-fs-body);
  line-height: var(--app-line-normal);
  display: flex;
  flex-wrap: wrap;
  gap: var(--app-gap-sm);
  align-items: baseline;
}

.bosquet-haut-articles-item a {
  color: var(--app-accent);
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: color var(--app-duration-fast) var(--app-ease-out);
}

.bosquet-haut-articles-item a:hover {
  color: var(--app-highlight-active);
}

.bosquet-haut-articles-date {
  font-size: var(--app-text-sm);
  color: var(--app-muted);
}

/* ============ Legal Section — LEGAL-02 Numbered Sections ============ */
.amphitheatre-dense {
  padding-block: var(--app-space-lg);
}

.amphitheatre-dense-intro {
  font-family: var(--app-body-font);
  font-size: var(--app-text-h5);
  line-height: var(--app-line-normal);
  color: var(--app-foreground);
  margin-bottom: var(--app-space-md);
}

.amphitheatre-dense-updated {
  font-size: var(--app-fs-micro);
  text-transform: uppercase;
  letter-spacing: var(--app-letter-wide);
  color: var(--app-muted);
  margin-bottom: var(--app-space-lg);
}

.amphitheatre-dense-body {
  counter-reset: legal-section;
}

.amphitheatre-dense-section {
  counter-increment: legal-section;
  margin-bottom: var(--app-space-md);
}

.amphitheatre-dense-section h3 {
  font-family: var(--app-display-font);
  font-weight: var(--app-font-bold);
  font-size: var(--app-type-h3);
  color: var(--app-foreground);
  margin-top: var(--app-space-lg);
  margin-bottom: var(--app-space-md);
}

.amphitheatre-dense-section h3::before {
  content: counter(legal-section) '. ';
  color: var(--app-accent);
  font-family: var(--app-display-font);
  font-weight: var(--app-font-bold);
  margin-right: var(--app-space-xs);
}

.amphitheatre-dense-section p {
  font-size: var(--app-fs-body);
  line-height: var(--app-lh-loose);
  color: var(--app-muted);
  margin-bottom: var(--app-space-md);
  padding-left: var(--app-space-md);
}

.amphitheatre-dense-contacts {
  background: var(--app-card-bg);
  padding: var(--app-space-lg);
  border-radius: var(--app-corner);
  margin-top: var(--app-space-lg);
}

.amphitheatre-dense-contacts h3 {
  font-family: var(--app-display-font);
  font-weight: var(--app-font-bold);
  font-size: var(--app-fs-h4);
  margin-bottom: var(--app-space-md);
  color: var(--app-foreground);
}

.amphitheatre-dense-contacts ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--app-gap-sm);
}

.amphitheatre-dense-contacts li {
  font-size: var(--app-fs-body);
  line-height: var(--app-line-normal);
  color: var(--app-muted);
}

.amphitheatre-dense-contacts a {
  color: var(--app-accent);
  text-decoration: underline;
}

.amphitheatre-dense-disclaimer {
  padding: var(--app-space-md);
  background: rgba(220, 38, 38, 0.08);
  border-left: 3px solid var(--app-alert-bg);
  border-radius: var(--app-radius-xs);
  font-size: var(--app-text-sm);
  line-height: var(--app-line-normal);
  color: var(--app-muted);
  margin-top: var(--app-space-lg);
}

/* ============ Contact Form — FORM-03 Compact Single-Field-Per-Row ============ */
.parterre-grand {
  padding-block: var(--app-space-lg);
}

.parterre-grand-intro {
  text-align: center;
  font-size: var(--app-fs-body);
  color: var(--app-muted);
  max-width: 540px;
  margin-inline: auto;
  margin-bottom: var(--app-space-lg);
}

.parterre-grand-success {
  display: none;
  padding: var(--app-space-md);
  background: rgba(34, 197, 94, 0.1);
  border: 1px solid rgba(34, 197, 94, 0.3);
  border-radius: var(--app-corner);
  color: var(--app-foreground);
  margin-bottom: var(--app-space-md);
}

.parterre-grand-success.is-visible {
  display: block;
}

.parterre-grand-form {
  display: flex;
  flex-direction: column;
  gap: var(--app-space-md);
  max-width: 640px;
  margin-inline: auto;
}

.parterre-grand-field {
  display: flex;
  flex-direction: column;
  gap: var(--app-space-xs);
}

.parterre-grand-label {
  font-family: var(--app-body-font);
  font-weight: var(--app-weight-medium);
  font-size: var(--app-text-sm);
  text-transform: uppercase;
  letter-spacing: var(--app-letter-wide);
  color: var(--app-foreground);
}

.parterre-grand-input,
.parterre-grand-textarea {
  width: 100%;
  font-family: var(--app-body-font);
  font-size: var(--app-fs-body);
  color: var(--app-foreground);
  background: var(--app-surface);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: var(--app-corner);
  padding: var(--app-gap-sm) var(--app-space-md);
}

.parterre-grand-input {
  height: 48px;
}

.parterre-grand-textarea {
  min-height: 120px;
  resize: vertical;
}

.parterre-grand-input:focus,
.parterre-grand-textarea:focus {
  outline: none;
  border-color: var(--app-accent);
}

.parterre-grand-submit {
  width: 100%;
  height: 52px;
  background: var(--app-accent);
  color: var(--app-surface);
  border: 0;
  border-radius: var(--app-corner);
  font-family: var(--app-display-font);
  font-weight: var(--app-font-bold);
  font-size: var(--app-size-h6);
  letter-spacing: var(--app-letter-wide);
  text-transform: uppercase;
  cursor: pointer;
  transition: background var(--app-transition-base) var(--app-ease-out);
}

.parterre-grand-submit:hover {
  background: var(--app-highlight-active);
}

/* ============ Error Block — ERR-03 Minimal No-Drama ============ */
.monstrance-vif {
  padding-block: var(--app-space-lg);
}

.monstrance-vif-inner {
  text-align: center;
}

.monstrance-vif-content {
  max-width: 600px;
  margin-inline: auto;
}

.monstrance-vif-title {
  font-family: var(--app-display-font);
  font-weight: var(--app-font-bold);
  font-size: var(--app-size-h2);
  line-height: var(--app-lh-tight);
  color: var(--app-foreground);
  margin-bottom: var(--app-space-md);
}

.monstrance-vif-text {
  font-size: var(--app-fs-body);
  line-height: var(--app-lh-loose);
  color: var(--app-muted);
  margin-bottom: var(--app-space-lg);
}

.monstrance-vif-button {
  display: inline-flex;
  align-items: center;
  height: 44px;
  padding-inline: var(--app-space-lg);
  background: var(--app-accent);
  color: var(--app-surface);
  font-family: var(--app-display-font);
  font-weight: var(--app-font-bold);
  font-size: var(--app-size-h6);
  letter-spacing: var(--app-letter-wide);
  text-transform: uppercase;
  text-decoration: none;
  border-radius: var(--app-corner);
  transition: background var(--app-transition-base) var(--app-ease-out), color var(--app-transition-base) var(--app-ease-out);
}

.monstrance-vif-button:hover {
  background: var(--app-highlight-active);
  color: var(--app-surface);
}

/* ============ Cookie Banner — COOK-01 Bottom Floating Pill ============ */
.cellule-prime {
  display: none;
  position: fixed;
  inset-block-end: var(--app-space-md);
  inset-inline: var(--app-space-md);
  max-width: 720px;
  margin-inline: auto;
  z-index: 90;
}

.cellule-prime.is-visible {
  display: flex;
}

.cellule-prime-card {
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--app-space-md);
  background: var(--app-card-bg);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: var(--app-corner);
  padding: var(--app-space-md);
  box-shadow: var(--app-depth-md);
}

.cellule-prime-message {
  flex: 1 1 280px;
  font-family: var(--app-body-font);
  font-size: var(--app-text-sm);
  line-height: var(--app-line-normal);
  color: var(--app-muted);
}

.cellule-prime-actions {
  display: flex;
  gap: var(--app-gap-sm);
}

.cellule-prime-button {
  height: 36px;
  padding-inline: var(--app-space-md);
  font-family: var(--app-display-font);
  font-weight: var(--app-font-bold);
  font-size: var(--app-fs-micro);
  letter-spacing: var(--app-letter-wide);
  text-transform: uppercase;
  border-radius: var(--app-corner);
  cursor: pointer;
  transition: background var(--app-duration-fast) var(--app-ease-out), color var(--app-duration-fast) var(--app-ease-out);
}

.cellule-prime-button--app-accept {
  background: var(--app-accent);
  color: var(--app-surface);
  border: 1px solid var(--app-accent);
}

.cellule-prime-button--app-accept:hover {
  background: var(--app-highlight-active);
  color: var(--app-surface);
}

.cellule-prime-button--app-decline {
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.15);
  color: var(--app-foreground);
}

.cellule-prime-button--app-decline:hover {
  background: rgba(255, 255, 255, 0.04);
  color: var(--app-foreground);
}

/* ============ Footer — FOOT-01 Three-Column Classic ============ */
.chasse-calme {
  background: var(--app-main-color);
  margin-top: var(--app-gap-xl);
}

.chasse-calme-inner {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--app-space-lg);
  padding-block: var(--app-space-lg);
}

.chasse-calme-col {
  min-width: 0;
}

.chasse-calme-col--nav,
.chasse-calme-col--legal {
  min-width: 0;
}

.chasse-calme-logo {
  display: inline-flex;
  align-items: center;
}

.chasse-calme-logo img {
  height: 72px;
  width: auto;
  mix-blend-mode: screen;
}

.chasse-calme-tagline {
  font-size: var(--app-text-sm);
  line-height: var(--app-line-normal);
  color: rgba(255, 255, 255, 0.8);
  margin-top: var(--app-gap-sm);
  max-width: 320px;
}

.chasse-calme-heading {
  font-family: var(--app-display-font);
  font-weight: var(--app-font-bold);
  font-size: var(--app-size-h6);
  text-transform: uppercase;
  letter-spacing: var(--app-letter-wide);
  color: var(--app-foreground);
  margin-bottom: var(--app-space-md);
}

.chasse-calme-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--app-gap-sm);
}

.chasse-calme-list a {
  font-family: var(--app-body-font);
  font-weight: var(--app-font-normal);
  font-size: var(--app-text-sm);
  color: rgba(255, 255, 255, 0.82);
  text-decoration: none;
  transition: color var(--app-duration-fast) var(--app-ease-out);
}

.chasse-calme-list a:hover {
  color: var(--app-accent);
}

.chasse-calme-bottom {
  border-top: 1px solid rgba(255, 255, 255, 0.15);
  padding-block: var(--app-space-md);
  text-align: center;
}

.chasse-calme-bottom small {
  font-size: var(--app-fs-micro);
  color: rgba(255, 255, 255, 0.82);
}

/* ============ Responsive ============ */
@media (max-width: 1199px) {
  .stalle-dru-list {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 939px) {
  .piedestal-dense-inner {
    grid-template-columns: 1fr;
  }

  .piedestal-dense-number {
    font-size: calc(var(--app-text-h1) * 1.1);
  }

  .stalle-dru-list {
    grid-template-columns: 1fr;
  }

  .baptistere-fluide-list {
    grid-template-columns: 1fr;
  }

  .chasse-calme-inner {
    grid-template-columns: 1fr 1fr;
  }

  .chasse-calme-col--brand {
    grid-column: 1 / -1;
  }
}

@media (max-width: 619px) {
  .bordure-moderne {
    height: 70vh;
    min-height: 480px;
  }

  .bosquet-haut-card {
    grid-template-columns: 1fr;
  }

  .chasse-calme-inner {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 700px) {
  .cellule-prime-card {
    flex-direction: column;
    align-items: stretch;
  }

  .cellule-prime-title {
    display: none;
  }

  .cellule-prime-actions {
    width: 100%;
  }

  .cellule-prime-button {
    flex: 1 1 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }
}

@media (prefers-reduced-motion: reduce) {
  * {
    transition: none !important;
    scroll-behavior: auto !important;
  }
}
