

@font-face {
  font-family: "IBM Plex Mono";
  src: local("IBM Plex Mono"), local("IBMPlexMono");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

:root {
  --color-noir: #111113;
  --color-metal: #242529;
  --color-metal-light: #3A3B40;
  --color-lumiere: #F1F1F1;
  --color-signal: #EAA800;

  --font-heading: "IBM Plex Mono", "Courier New", monospace;
  --font-body: "IBM Plex Mono", "Courier New", monospace;

  --text-display: 3rem;
  --text-h1: 2.25rem;
  --text-h2: 1.5rem;
  --text-h3: 1.25rem;
  --text-body: 1rem;
  --text-caption: 0.75rem;

  --leading-display: 1.1;
  --leading-h1: 1.2;
  --leading-h2: 1.3;
  --leading-h3: 1.4;
  --leading-body: 1.6;
  --leading-caption: 1.4;

  --space-xs: 0.25rem;
  --space-sm: 0.5rem;
  --space-md: 1rem;
  --space-lg: 2rem;
  --space-xl: 3rem;
  --space-xxl: 4rem;

  --container-max: 1200px;
  --container-padding: var(--space-md);

  --surface-bg: var(--color-metal);
  --surface-border: var(--color-metal-light);
  --surface-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);

  --radius-sharp: 0px;
  --radius-slight: 2px;
  --radius-standard: 4px;

  --transition-fast: 150ms;
  --transition-timing: linear;

  --focus-outline: 2px solid var(--color-signal);
  --focus-outline-offset: 2px;

  --header-height: 72px;
  --header-height-mobile: 56px;
}

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

html {
  -webkit-text-size-adjust: 100%;
  -moz-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scroll-behavior: smooth;
  background-color: var(--color-noir);
  color: var(--color-lumiere);
  font-family: var(--font-body);
  font-size: var(--text-body);
  line-height: var(--leading-body);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body {
  min-height: 100vh;
  min-height: 100dvh;
  background-color: var(--color-noir);
  color: var(--color-lumiere);
  font-family: var(--font-body);
  font-size: var(--text-body);
  line-height: var(--leading-body);
  overflow-x: hidden;
  width: 100%;
  max-width: 100%;
}

img,
picture,
video,
canvas,
svg {
  display: block;
  max-width: 100%;
  height: auto;
}

img {
  object-fit: cover;
}

input,
button,
textarea,
select {
  font: inherit;
  letter-spacing: inherit;
  color: inherit;
  background: none;
  border: none;
  border-radius: 0;
  outline: none;
}

button {
  cursor: pointer;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-weight: 700;
  font-family: var(--font-body);
  font-size: var(--text-caption);
  line-height: 1.2;
  padding: 0.75rem 1.5rem;
  min-height: 44px;
  border-radius: var(--radius-sharp);
  transition: background-color var(--transition-fast) var(--transition-timing),
    color var(--transition-fast) var(--transition-timing),
    border-color var(--transition-fast) var(--transition-timing),
    box-shadow var(--transition-fast) var(--transition-timing);
}

button:focus-visible,
a:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
  outline: var(--focus-outline);
  outline-offset: var(--focus-outline-offset);
}

a {
  color: var(--color-lumiere);
  text-decoration: none;
  transition: color var(--transition-fast) var(--transition-timing),
    border-color var(--transition-fast) var(--transition-timing);
}

a:hover {
  color: var(--color-signal);
}

ul,
ol {
  list-style: none !important;
}

p,
h1,
h2,
h3,
h4,
h5,
h6,
blockquote,
figure,
pre,
dl,
dd,
ul,
ol {
  overflow-wrap: break-word;
  word-wrap: break-word;
  word-break: break-word;
  hyphens: auto;
  -webkit-hyphens: auto;
  -moz-hyphens: auto;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: var(--font-heading);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--color-lumiere);
  line-height: var(--leading-h2);
}

h1 {
  font-size: clamp(1.75rem, 1.2rem + 2.5vw, var(--text-h1));
  line-height: var(--leading-h1);
  margin-block-end: var(--space-md);
}

h2 {
  font-size: clamp(1.25rem, 1rem + 1.5vw, var(--text-h2));
  line-height: var(--leading-h2);
  margin-block-end: var(--space-md);
}

h3 {
  font-size: clamp(1.1rem, 0.95rem + 0.8vw, var(--text-h3));
  line-height: var(--leading-h3);
  margin-block-end: var(--space-sm);
}

h4,
h5,
h6 {
  font-size: var(--text-body);
  line-height: var(--leading-h3);
  margin-block-end: var(--space-sm);
}

p {
  margin-block-end: var(--space-md);
  line-height: var(--leading-body);
  font-size: var(--text-body);
  font-weight: 400;
}

p:last-child {
  margin-block-end: 0;
}

blockquote {
  margin-block-end: var(--space-md);
  padding-inline-start: var(--space-md);
  border-inline-start: 2px solid var(--color-signal);
  color: var(--color-lumiere);
  font-style: normal;
}

blockquote:last-child {
  margin-block-end: 0;
}

ul,
ol {
  margin-block-end: var(--space-md);
  padding-inline-start: var(--space-md);
}

ul:last-child,
ol:last-child {
  margin-block-end: 0;
}

ul li,
ol li {
  margin-block-end: var(--space-xs);
}

ul li:last-child,
ol li:last-child {
  margin-block-end: 0;
}

ul li::marker,
ol li::marker {
  color: var(--color-signal);
}

ul {
  list-style: none !important;
  padding-inline-start: 0;
}

ul li {
  position: relative;
  padding-inline-start: var(--space-md);
}

ol {
  list-style: decimal !important;
  padding-inline-start: 1.5rem;
}

ol li {
  padding-inline-start: 0;
}

ol li::before {
  display: none;
}

figure {
  margin-block-end: var(--space-md);
}

figure:last-child {
  margin-block-end: 0;
}

figcaption {
  font-size: var(--text-caption);
  line-height: var(--leading-caption);
  color: var(--color-lumiere);
  margin-block-start: var(--space-xs);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

hr {
  border: none;
  border-block-start: 1px solid var(--color-metal-light);
  margin-block: var(--space-lg);
}

table {
  width: 100%;
  border-collapse: collapse;
  margin-block-end: var(--space-md);
  font-size: var(--text-body);
  line-height: var(--leading-body);
}

table:last-child {
  margin-block-end: 0;
}

caption {
  font-size: var(--text-caption);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--color-lumiere);
  margin-block-end: var(--space-sm);
}

th,
td {
  padding: var(--space-sm) var(--space-md);
  border-block-end: 1px solid var(--color-metal-light);
  text-align: start;
  vertical-align: top;
}

th {
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-size: var(--text-caption);
  color: var(--color-signal);
}

input,
textarea,
select {
  width: 100%;
  background-color: var(--color-noir);
  color: var(--color-lumiere);
  border: 1px solid var(--color-metal-light);
  border-radius: var(--radius-sharp);
  padding: 0.75rem 1rem;
  font-family: var(--font-body);
  font-size: var(--text-body);
  line-height: var(--leading-body);
  transition: border-color var(--transition-fast) var(--transition-timing),
    box-shadow var(--transition-fast) var(--transition-timing);
  min-height: 44px;
}

input::placeholder,
textarea::placeholder {
  color: rgba(241, 241, 241, 0.5);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-size: var(--text-caption);
}

input:focus,
textarea:focus,
select:focus {
  border-color: var(--color-signal);
  box-shadow: 0 0 0 1px var(--color-signal);
  outline: none;
}

input:focus-visible,
textarea:focus-visible,
select:focus-visible {
  outline: var(--focus-outline);
  outline-offset: var(--focus-outline-offset);
  box-shadow: none;
}

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

select {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23EAA800' stroke-width='2' fill='none'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 1rem center;
  padding-inline-end: 2.5rem;
  cursor: pointer;
}

label {
  display: block;
  font-size: var(--text-caption);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-weight: 700;
  color: var(--color-lumiere);
  margin-block-end: var(--space-xs);
}

fieldset {
  border: 1px solid var(--color-metal-light);
  padding: var(--space-md);
  margin-block-end: var(--space-md);
  border-radius: var(--radius-sharp);
}

fieldset:last-child {
  margin-block-end: 0;
}

legend {
  font-size: var(--text-caption);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-weight: 700;
  color: var(--color-signal);
  padding-inline: var(--space-xs);
}

.container {
  width: 100%;
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-padding);
}

.section {
  padding-block: var(--space-xxl);
}

.section--tight {
  padding-block: var(--space-xl);
}

.section--loose {
  padding-block: calc(var(--space-xxl) * 1.5);
}

.surface {
  background-color: var(--surface-bg);
  border: 1px solid var(--surface-border);
  border-radius: var(--radius-sharp);
  box-shadow: var(--surface-shadow);
  padding: var(--space-lg);
}

.surface--slight {
  border-radius: var(--radius-slight);
}

.surface--standard {
  border-radius: var(--radius-standard);
}

.surface--interactive {
  transition: border-color var(--transition-fast) var(--transition-timing),
    box-shadow var(--transition-fast) var(--transition-timing);
}

.surface--interactive:hover {
  border-color: var(--color-signal);
}

.surface > :last-child {
  margin-block-end: 0;
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-sm);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-weight: 700;
  font-family: var(--font-body);
  font-size: var(--text-caption);
  line-height: 1.2;
  padding: 0.75rem 1.5rem;
  min-height: 44px;
  border-radius: var(--radius-sharp);
  border: 1px solid transparent;
  transition: background-color var(--transition-fast) var(--transition-timing),
    color var(--transition-fast) var(--transition-timing),
    border-color var(--transition-fast) var(--transition-timing),
    box-shadow var(--transition-fast) var(--transition-timing);
  text-decoration: none;
  white-space: nowrap;
}

.btn--primary {
  background-color: var(--color-signal);
  color: var(--color-noir);
  border-color: var(--color-signal);
}

.btn--primary:hover {
  background-color: var(--color-noir);
  color: var(--color-signal);
  border-color: var(--color-signal);
}

.btn--secondary {
  background-color: transparent;
  color: var(--color-lumiere);
  border-color: var(--color-metal-light);
}

.btn--secondary:hover {
  background-color: var(--color-metal);
  color: var(--color-signal);
  border-color: var(--color-signal);
}

.btn--ghost {
  background-color: transparent;
  color: var(--color-lumiere);
  border-color: transparent;
}

.btn--ghost:hover {
  color: var(--color-signal);
  background-color: var(--color-metal);
}

.btn--sm {
  padding: 0.5rem 1rem;
  min-height: 36px;
  font-size: 0.6875rem;
}

.btn--lg {
  padding: 1rem 2rem;
  min-height: 52px;
  font-size: var(--text-body);
}

.btn--full {
  width: 100%;
}

.btn--pulse {
  animation: pulse-signal 2s infinite ease-in-out;
}

@keyframes pulse-signal {
  0%,
  100% {
    box-shadow: 0 0 0 0 rgba(234, 168, 0, 0.4);
  }
  50% {
    box-shadow: 0 0 0 8px rgba(234, 168, 0, 0);
  }
}

.nav-toggle {
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  width: 44px;
  height: 44px;
  padding: 0;
  background-color: transparent;
  border: 1px solid var(--color-metal-light);
  border-radius: var(--radius-sharp);
  cursor: pointer;
  display: flex;
  min-height: 44px;
}

.nav-toggle span {
  display: block;
  width: 20px;
  height: 2px;
  background-color: var(--color-lumiere);
  transition: background-color var(--transition-fast) var(--transition-timing),
    transform var(--transition-fast) var(--transition-timing);
}

.nav-toggle:hover span {
  background-color: var(--color-signal);
}

.nav-toggle:focus-visible {
  outline: var(--focus-outline);
  outline-offset: var(--focus-outline-offset);
}

.ratio-box {
  position: relative;
  width: 100%;
  overflow: hidden;
  border-radius: var(--radius-sharp);
  background-color: var(--color-metal);
}

.ratio-box::before {
  content: "";
  display: block;
  padding-block-start: 56.25%;
}

.ratio-box--square::before {
  padding-block-start: 100%;
}

.ratio-box--portrait::before {
  padding-block-start: 133.33%;
}

.ratio-box--landscape::before {
  padding-block-start: 75%;
}

.ratio-box--wide::before {
  padding-block-start: 42.85%;
}

.ratio-box > img,
.ratio-box > picture,
.ratio-box > video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.flex {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-md);
  min-width: 0;
}

.flex--nowrap {
  flex-wrap: nowrap;
}

.flex--column {
  flex-direction: column;
}

.flex--center {
  align-items: center;
  justify-content: center;
}

.flex--between {
  align-items: center;
  justify-content: space-between;
}

.flex--start {
  align-items: flex-start;
  justify-content: flex-start;
}

.flex--end {
  align-items: flex-end;
  justify-content: flex-end;
}

.flex > * {
  min-width: 0;
  flex-shrink: 1;
}

.flex--nowrap > * {
  flex-shrink: 0;
}

.flex--nowrap > .flex-grow {
  flex-shrink: 1;
}

.flex-grow {
  flex-grow: 1;
}

.flex-shrink-0 {
  flex-shrink: 0;
}

.flex-basis-auto {
  flex-basis: auto;
}

.flex-basis-0 {
  flex-basis: 0;
}

.flex-1 {
  flex: 1 1 0%;
}

.flex-2 {
  flex: 2 1 0%;
}

.flex-3 {
  flex: 3 1 0%;
}

.flex-4 {
  flex: 4 1 0%;
}

.text-uppercase {
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.text-caption {
  font-size: var(--text-caption);
  line-height: var(--leading-caption);
}

.text-signal {
  color: var(--color-signal);
}

.text-lumiere {
  color: var(--color-lumiere);
}

.text-noir {
  color: var(--color-noir);
}

.text-bold {
  font-weight: 700;
}

.text-regular {
  font-weight: 400;
}

.text-center {
  text-align: center;
}

.text-start {
  text-align: start;
}

.text-end {
  text-align: end;
}

.mt-xs {
  margin-block-start: var(--space-xs);
}
.mt-sm {
  margin-block-start: var(--space-sm);
}
.mt-md {
  margin-block-start: var(--space-md);
}
.mt-lg {
  margin-block-start: var(--space-lg);
}
.mt-xl {
  margin-block-start: var(--space-xl);
}
.mt-xxl {
  margin-block-start: var(--space-xxl);
}

.mb-xs {
  margin-block-end: var(--space-xs);
}
.mb-sm {
  margin-block-end: var(--space-sm);
}
.mb-md {
  margin-block-end: var(--space-md);
}
.mb-lg {
  margin-block-end: var(--space-lg);
}
.mb-xl {
  margin-block-end: var(--space-xl);
}
.mb-xxl {
  margin-block-end: var(--space-xxl);
}

.mx-auto {
  margin-inline: auto;
}

.p-xs {
  padding: var(--space-xs);
}
.p-sm {
  padding: var(--space-sm);
}
.p-md {
  padding: var(--space-md);
}
.p-lg {
  padding: var(--space-lg);
}
.p-xl {
  padding: var(--space-xl);
}
.p-xxl {
  padding: var(--space-xxl);
}

.pt-xs {
  padding-block-start: var(--space-xs);
}
.pt-sm {
  padding-block-start: var(--space-sm);
}
.pt-md {
  padding-block-start: var(--space-md);
}
.pt-lg {
  padding-block-start: var(--space-lg);
}
.pt-xl {
  padding-block-start: var(--space-xl);
}
.pt-xxl {
  padding-block-start: var(--space-xxl);
}

.pb-xs {
  padding-block-end: var(--space-xs);
}
.pb-sm {
  padding-block-end: var(--space-sm);
}
.pb-md {
  padding-block-end: var(--space-md);
}
.pb-lg {
  padding-block-end: var(--space-lg);
}
.pb-xl {
  padding-block-end: var(--space-xl);
}
.pb-xxl {
  padding-block-end: var(--space-xxl);
}

.hazard-border {
  border-block-start: 4px solid var(--color-signal);
  border-block-end: 4px solid var(--color-noir);
  background-image: repeating-linear-gradient(45deg, var(--color-signal) 0,var(--color-signal 8px, var(--color-noir) 8px,var(--color-noir) 16px));
  background-size: 22.63px 22.63px;
  height: 8px;
  width: 100%;
}

.hazard-border--thin {
  height: 4px;
  background-size: 11.31px 11.31px;
}

.divider {
  border: none;
  border-block-start: 1px solid var(--color-metal-light);
  margin-block: var(--space-lg);
}

.divider--signal {
  border-block-start-color: var(--color-signal);
}

.divider--thick {
  border-block-start-width: 2px;
}

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

.skip-link {
  position: absolute;
  top: -100%;
  left: 0;
  z-index: 9999;
  background-color: var(--color-signal);
  color: var(--color-noir);
  padding: var(--space-sm) var(--space-md);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-size: var(--text-caption);
  border-radius: var(--radius-sharp);
  transition: top var(--transition-fast) var(--transition-timing);
}

.skip-link:focus {
  top: 0;
}

@media (max-width: 768px) {
  :root {
    --container-padding: var(--space-sm);
    --space-xxl: 2.5rem;
    --space-xl: 2rem;
    --space-lg: 1.5rem;
  }

  .section {
    padding-block: var(--space-xl);
  }

  .section--tight {
    padding-block: var(--space-lg);
  }

  .section--loose {
    padding-block: var(--space-xxl);
  }

  .surface {
    padding: var(--space-md);
  }

  .btn {
    padding: 0.625rem 1.25rem;
    min-height: 44px;
  }

  .btn--lg {
    padding: 0.875rem 1.5rem;
    min-height: 48px;
  }

  .flex {
    gap: var(--space-sm);
  }
}

@media (max-width: 480px) {
  :root {
    --container-padding: var(--space-sm);
    --space-xxl: 2rem;
    --space-xl: 1.5rem;
    --space-lg: 1.25rem;
    --space-md: 0.875rem;
  }

  .section {
    padding-block: var(--space-xl);
  }

  .surface {
    padding: var(--space-sm);
  }

  .btn {
    padding: 0.5rem 1rem;
    min-height: 44px;
    font-size: 0.6875rem;
  }

  .btn--lg {
    padding: 0.75rem 1.25rem;
    min-height: 48px;
    font-size: var(--text-caption);
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }

  .btn--pulse {
    animation: none;
  }
}


.site-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  background-color: var(--color-noir);
  border-bottom: 1px solid var(--color-metal-light);
  height: var(--header-height);
  display: flex;
  align-items: center;
  width: 100%;
}

.site-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-md);
  width: 100%;
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-padding);
  height: 100%;
}

.site-header__brand {
  display: inline-flex;
  align-items: center;
  gap: var(--space-sm);
  text-decoration: none;
  color: var(--color-lumiere);
  flex-shrink: 0;
  min-width: 0;
}

.site-header__brand:hover {
  color: var(--color-signal);
}

.site-header__logo {
  width: 48px;
  height: 48px;
  object-fit: contain;
  display: block;
  flex-shrink: 0;
}

.site-header__brand-text {
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: var(--text-body);
  letter-spacing: -0.02em;
  text-transform: uppercase;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.nav-toggle {
  display: none;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  width: 44px;
  height: 44px;
  padding: 0;
  background-color: transparent;
  border: 1px solid var(--color-metal-light);
  border-radius: var(--radius-sharp);
  cursor: pointer;
  min-height: 44px;
  flex-shrink: 0;
}

.nav-toggle__line {
  display: block;
  width: 20px;
  height: 2px;
  background-color: var(--color-lumiere);
  transition: background-color var(--transition-fast) var(--transition-timing),
    transform var(--transition-fast) var(--transition-timing);
}

.nav-toggle:hover .nav-toggle__line {
  background-color: var(--color-signal);
}

.nav-toggle:focus-visible {
  outline: var(--focus-outline);
  outline-offset: var(--focus-outline-offset);
}

.nav-toggle[aria-expanded="true"] .nav-toggle__line:nth-child(1) {
  transform: translateY(6px) rotate(45deg);
}

.nav-toggle[aria-expanded="true"] .nav-toggle__line:nth-child(2) {
  opacity: 0;
}

.nav-toggle[aria-expanded="true"] .nav-toggle__line:nth-child(3) {
  transform: translateY(-6px) rotate(-45deg);
}

.site-header__nav {
  display: flex;
  align-items: center;
  flex-shrink: 1;
  min-width: 0;
}

.site-header__nav-list {
  display: flex;
  align-items: center;
  gap: var(--space-md);
  list-style: none !important;
  margin: 0;
  padding: 0;
}

.site-header__nav-item {
  margin: 0;
  padding: 0;
}

.site-header__nav-item + .site-header__nav-item {
  margin: 0;
}

.site-header__nav-link {
  display: inline-flex;
  align-items: center;
  height: 100%;
  padding: var(--space-xs) 0;
  font-family: var(--font-body);
  font-size: var(--text-caption);
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--color-lumiere);
  text-decoration: none;
  white-space: nowrap;
  transition: color var(--transition-fast) var(--transition-timing),
    border-color var(--transition-fast) var(--transition-timing);
  border-bottom: 2px solid transparent;
}

.site-header__nav-link:hover {
  color: var(--color-signal);
  border-bottom-color: var(--color-signal);
}

.site-header__nav-link:focus-visible {
  outline: var(--focus-outline);
  outline-offset: var(--focus-outline-offset);
}

@media (max-width: 1024px) {
  .site-header__brand-text {
    display: none;
  }
}

@media (max-width: 768px) {
  .site-header {
    height: var(--header-height-mobile);
  }

  .site-header__logo {
    width: 32px;
    height: 32px;
  }

  .nav-toggle {
    display: flex;
  }

  .site-header__nav {
    position: fixed;
    top: var(--header-height-mobile);
    right: 0;
    bottom: 0;
    width: min(320px, 100vw);
    max-width: 100%;
    background-color: var(--color-noir);
    border-left: 1px solid var(--color-metal-light);
    transform: translateX(100%);
    transition: transform var(--transition-fast) var(--transition-timing);
    z-index: 999;
    display: flex;
    flex-direction: column;
    padding: var(--space-md);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }

  .site-header__nav.is-open {
    transform: translateX(0);
  }

  .site-header__nav-list {
    flex-direction: column;
    align-items: stretch;
    gap: var(--space-sm);
    width: 100%;
  }

  .site-header__nav-link {
    display: block;
    width: 100%;
    padding: var(--space-sm) var(--space-md);
    border-bottom: none;
    border-left: 2px solid transparent;
  }

  .site-header__nav-link:hover {
    border-left-color: var(--color-signal);
    border-bottom-color: transparent;
  }
}


.site-footer {
  background-color: var(--color-noir);
  border-top: 1px solid var(--color-metal-light);
  padding-block: var(--space-xl) var(--space-lg);
  margin-top: auto;
}

.site-footer__inner {
  display: flex;
  flex-direction: column;
  gap: var(--space-lg);
}

.site-footer__brand {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}

.site-footer__brand-link {
  display: inline-flex;
  align-items: center;
  gap: var(--space-sm);
  color: var(--color-lumiere);
  text-decoration: none;
}

.site-footer__brand-link:hover {
  color: var(--color-signal);
}

.site-footer__logo {
  width: 48px;
  height: 48px;
  object-fit: contain;
  display: block;
  flex-shrink: 0;
}

.site-footer__brand-text {
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: var(--text-body);
  letter-spacing: -0.02em;
  text-transform: uppercase;
}

.site-footer__tagline {
  font-size: var(--text-caption);
  line-height: var(--leading-caption);
  color: var(--color-lumiere);
  margin: 0;
  max-width: 40ch;
}

.site-footer__nav {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-lg);
}

.site-footer__nav-column {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}

.site-footer__heading {
  font-size: var(--text-caption);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--color-signal);
  margin: 0;
}

.site-footer__nav-list {
  list-style: none !important;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
}

.site-footer__nav-list li {
  margin: 0;
  padding: 0;
}

.site-footer__nav-list li::before {
  display: none;
}

.site-footer__nav-list a {
  color: var(--color-lumiere);
  text-decoration: none;
  font-size: var(--text-body);
  line-height: var(--leading-body);
  transition: color var(--transition-fast) var(--transition-timing);
}

.site-footer__nav-list a:hover {
  color: var(--color-signal);
}

.site-footer__bottom {
  border-top: 1px solid var(--color-metal-light);
  padding-top: var(--space-md);
  display: flex;
  justify-content: center;
}

.site-footer__copyright {
  font-size: var(--text-caption);
  line-height: var(--leading-caption);
  color: var(--color-lumiere);
  margin: 0;
  text-align: center;
}

.consent-banner {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 1001;
  background-color: var(--color-metal);
  border-top: 1px solid var(--color-metal-light);
  padding: var(--space-md);
  display: flex;
  justify-content: center;
}

.consent-banner[hidden] {
  display: none !important;
}

.consent-banner__content {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-md);
  max-width: var(--container-max);
  width: 100%;
}

.consent-banner__text {
  flex: 1 1 300px;
  margin: 0;
  font-size: var(--text-caption);
  line-height: var(--leading-caption);
  color: var(--color-lumiere);
}

.consent-banner__text a {
  color: var(--color-signal);
  text-decoration: underline;
}

.consent-banner__text a:hover {
  color: var(--color-lumiere);
}

.consent-banner__actions {
  display: flex;
  gap: var(--space-sm);
  flex-shrink: 0;
}

.consent-banner__accept,
.consent-banner__reject {
  min-height: 44px;
}

.age-modal {
  position: fixed;
  inset: 0;
  z-index: 2000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-md);
}

.age-modal[hidden] {
  display: none !important;
}

.age-modal__overlay {
  position: absolute;
  inset: 0;
  background-color: rgba(0, 0, 0, 0.8);
}

.age-modal__dialog {
  position: relative;
  background-color: var(--color-metal);
  border: 1px solid var(--color-metal-light);
  border-radius: var(--radius-sharp);
  box-shadow: var(--surface-shadow);
  padding: var(--space-lg);
  max-width: 480px;
  width: 100%;
  max-height: 80vh;
  overflow-y: auto;
  text-align: center;
}

.age-modal__title {
  font-size: var(--text-h2);
  line-height: var(--leading-h2);
  margin-bottom: var(--space-md);
  color: var(--color-lumiere);
}

.age-modal__description {
  font-size: var(--text-body);
  line-height: var(--leading-body);
  margin-bottom: var(--space-lg);
  color: var(--color-lumiere);
}

.age-modal__actions {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}

.age-modal__confirm,
.age-modal__decline {
  width: 100%;
  min-height: 44px;
}

@media (max-width: 768px) {
  .site-footer__nav {
    grid-template-columns: 1fr;
    gap: var(--space-md);
  }

  .consent-banner__content {
    flex-direction: column;
    align-items: stretch;
  }

  .consent-banner__actions {
    justify-content: flex-end;
  }

  .age-modal__dialog {
    padding: var(--space-md);
  }
}


/* Page-owned styles for Politique de confidentialité */

.privacy-page {
  width: 100%;
  max-width: 1200px;
  margin-inline: auto;
  padding-inline: var(--container-padding);
}

.privacy-section {
  padding-block: var(--space-xxl);
}

.privacy-section__content {
  width: 100%;
  max-width: 800px;
  margin-inline: auto;
  text-align: left;
}

.privacy-section__content--intro {
  max-width: 800px;
}

.privacy-section__title {
  margin-block-end: var(--space-md);
  color: var(--color-lumiere);
  font-size: var(--text-h2);
  line-height: var(--leading-h2);
  letter-spacing: -0.02em;
  text-transform: uppercase;
  border-block-end: 2px solid var(--color-signal);
  padding-block-end: var(--space-sm);
  display: inline-block;
}

.privacy-section__title--h1 {
  font-size: var(--text-h1);
  line-height: var(--leading-h1);
  border-block-end-width: 4px;
}

.privacy-section__lead {
  margin-block-end: var(--space-md);
  font-size: var(--text-body);
  line-height: var(--leading-body);
  color: var(--color-lumiere);
}

.privacy-section__text {
  margin-block-end: var(--space-md);
  font-size: var(--text-body);
  line-height: var(--leading-body);
  color: var(--color-lumiere);
}

.privacy-section__list {
  margin-block-end: var(--space-md);
  padding-inline-start: 0;
  list-style: none;
}

.privacy-section__list li {
  position: relative;
  padding-inline-start: var(--space-md);
  margin-block-end: var(--space-xs);
  color: var(--color-lumiere);
}

.privacy-section__list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.65em;
  width: 6px;
  height: 6px;
  background-color: var(--color-signal);
  border-radius: var(--radius-sharp);
}

.privacy-section__list--rights li {
  margin-block-end: var(--space-sm);
}

.privacy-data-collected__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-lg);
  margin-block-start: var(--space-md);
}

.privacy-card {
  background-color: var(--color-metal);
  border: 1px solid var(--color-metal-light);
  border-radius: var(--radius-sharp);
  padding: var(--space-lg);
  box-shadow: var(--surface-shadow);
  min-width: 0;
}

.privacy-card__title {
  margin-block-end: var(--space-sm);
  color: var(--color-lumiere);
  font-size: var(--text-h3);
  line-height: var(--leading-h3);
  letter-spacing: -0.02em;
}

.privacy-card__text {
  margin-block-end: var(--space-md);
  color: var(--color-lumiere);
  font-size: var(--text-body);
  line-height: var(--leading-body);
}

.privacy-card__list {
  list-style: none;
  padding-inline-start: 0;
}

.privacy-card__list li {
  position: relative;
  padding-inline-start: var(--space-md);
  margin-block-end: var(--space-xs);
  color: var(--color-lumiere);
}

.privacy-card__list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.65em;
  width: 6px;
  height: 6px;
  background-color: var(--color-signal);
  border-radius: var(--radius-sharp);
}

.privacy-contact__wrapper {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-lg);
  margin-block-start: var(--space-md);
}

.privacy-contact__card,
.privacy-contact__cnil {
  background-color: var(--color-metal);
  border: 1px solid var(--color-metal-light);
  border-radius: var(--radius-sharp);
  padding: var(--space-lg);
  box-shadow: var(--surface-shadow);
  min-width: 0;
}

.privacy-contact__card {
  max-width: 600px;
  margin-inline: auto;
}

.privacy-contact__cnil {
  max-width: 800px;
  margin-inline: auto;
}

.privacy-contact__card-title {
  margin-block-end: var(--space-sm);
  color: var(--color-lumiere);
  font-size: var(--text-h3);
  line-height: var(--leading-h3);
  letter-spacing: -0.02em;
}

.privacy-contact__text {
  margin-block-end: var(--space-sm);
  color: var(--color-lumiere);
  font-size: var(--text-body);
  line-height: var(--leading-body);
}

.privacy-contact__list {
  list-style: none;
  padding-inline-start: 0;
}

.privacy-contact__list li {
  position: relative;
  padding-inline-start: var(--space-md);
  margin-block-end: var(--space-xs);
  color: var(--color-lumiere);
}

.privacy-contact__list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.65em;
  width: 6px;
  height: 6px;
  background-color: var(--color-signal);
  border-radius: var(--radius-sharp);
}

.privacy-contact__list a,
.privacy-contact__text a {
  color: var(--color-lumiere);
  text-decoration: underline;
  text-underline-offset: 2px;
  transition: color var(--transition-fast) var(--transition-timing);
}

.privacy-contact__list a:hover,
.privacy-contact__text a:hover {
  color: var(--color-signal);
}

@media (max-width: 900px) {
  .privacy-data-collected__grid {
    grid-template-columns: 1fr;
    gap: var(--space-md);
  }
}

@media (max-width: 768px) {
  .privacy-section {
    padding-block: var(--space-xl);
  }

  .privacy-section__title--h1 {
    font-size: clamp(1.75rem, 1.2rem + 2.5vw, var(--text-h1));
  }

  .privacy-card,
  .privacy-contact__card,
  .privacy-contact__cnil {
    padding: var(--space-md);
  }
}

@media (max-width: 480px) {
  .privacy-section {
    padding-block: var(--space-lg);
  }

  .privacy-section__title {
    font-size: 1.25rem;
  }

  .privacy-section__title--h1 {
    font-size: 1.75rem;
  }

  .privacy-card,
  .privacy-contact__card,
  .privacy-contact__cnil {
    padding: var(--space-sm);
  }
}


/* Politique de cookies — page-owned styles */

.politique-cookies-page {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

.cookies-section {
  padding-block: var(--space-xxl);
  background-color: var(--color-noir);
}

.cookies-text-container {
  width: 100%;
  max-width: 800px;
  margin-inline: auto;
  padding-inline: var(--container-padding);
  text-align: left;
}

.cookies-intro-container {
  max-width: 800px;
}

.cookies-page-title {
  font-size: clamp(1.75rem, 1.2rem + 2.5vw, var(--text-h1));
  line-height: var(--leading-h1);
  margin-block-end: var(--space-md);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.cookies-accent-line {
  width: 80px;
  height: 4px;
  background-color: var(--color-signal);
  margin-block-end: var(--space-lg);
}

.cookies-lead {
  font-size: var(--text-body);
  line-height: var(--leading-body);
  margin-block-end: var(--space-md);
}

.cookies-section-title {
  font-size: clamp(1.25rem, 1rem + 1.5vw, var(--text-h2));
  line-height: var(--leading-h2);
  margin-block-end: var(--space-md);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.cookies-subtitle {
  font-size: clamp(1.1rem, 0.95rem + 0.8vw, var(--text-h3));
  line-height: var(--leading-h3);
  margin-block-start: var(--space-lg);
  margin-block-end: var(--space-sm);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.cookies-list {
  margin-block-end: var(--space-md);
  padding-inline-start: 0;
  list-style: none;
}

.cookies-list li {
  position: relative;
  padding-inline-start: var(--space-md);
  margin-block-end: var(--space-xs);
}

.cookies-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.65em;
  width: 6px;
  height: 6px;
  background-color: var(--color-signal);
  border-radius: var(--radius-sharp);
}

.cookies-types-heading {
  width: 100%;
  max-width: 1200px;
  margin-inline: auto;
  padding-inline: var(--container-padding);
  margin-block-end: var(--space-lg);
}

.cookies-types-intro {
  max-width: 800px;
  margin-block-end: 0;
}

.cookies-types-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-lg);
  width: 100%;
  max-width: 1200px;
  margin-inline: auto;
  padding-inline: var(--container-padding);
}

.cookie-type-card {
  background-color: var(--color-metal);
  border: 1px solid var(--color-metal-light);
  border-radius: var(--radius-sharp);
  padding: var(--space-lg);
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.cookie-type-title {
  font-size: var(--text-h3);
  line-height: var(--leading-h3);
  margin-block-end: 0;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--color-signal);
}

.cookie-type-card p {
  margin-block-end: 0;
}

.cookies-consent-box {
  background-color: var(--color-metal);
  border: 1px solid var(--color-metal-light);
  border-radius: var(--radius-sharp);
  padding: var(--space-lg);
  margin-block-start: var(--space-lg);
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.cookies-consent-box .cookies-subtitle {
  margin-block-start: 0;
}

.cookies-contact-container {
  width: 100%;
  max-width: 600px;
  margin-inline: auto;
  padding-inline: var(--container-padding);
  background-color: var(--color-metal);
  border: 1px solid var(--color-signal);
  border-radius: var(--radius-sharp);
  padding: var(--space-lg);
  text-align: left;
}

.cookies-contact-details {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  margin-block-start: var(--space-md);
}

.cookies-contact-details p {
  margin-block-end: 0;
}

.cookies-contact-details a {
  color: var(--color-signal);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.cookies-contact-details a:hover {
  color: var(--color-lumiere);
}

.cookies-update {
  border-block-start: 1px solid var(--color-metal-light);
}

@media (max-width: 900px) {
  .cookies-types-grid {
    grid-template-columns: 1fr;
    gap: var(--space-md);
  }

  .cookies-section {
    padding-block: var(--space-xl);
  }
}

@media (max-width: 600px) {
  .cookies-text-container,
  .cookies-types-heading,
  .cookies-contact-container {
    padding-inline: var(--space-md);
  }

  .cookies-types-grid {
    padding-inline: var(--space-md);
  }

  .cookie-type-card {
    padding: var(--space-md);
  }

  .cookies-contact-container {
    padding: var(--space-md);
  }

  .cookies-page-title {
    font-size: 1.75rem;
  }

  .cookies-section-title {
    font-size: 1.25rem;
  }

  .cookies-subtitle {
    font-size: 1.1rem;
  }
}


/* Page-owned styles for contact page */

/* Introduction au contact */
.contact-intro__inner {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  align-items: flex-start;
  max-width: 100%;
}

.contact-intro__title {
  position: relative;
  padding-bottom: var(--space-sm);
  margin-block-end: 0;
}

.contact-intro__title::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 80px;
  height: 4px;
  background-color: var(--color-signal);
}

.contact-intro__lead {
  max-width: 100%;
  margin-block-end: 0;
}

/* Coordonnées directes */
.contact-details__title {
  margin-block-end: var(--space-lg);
}

.contact-details__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-md);
}

.contact-card {
  background-color: var(--surface-bg);
  border: 1px solid var(--surface-border);
  border-radius: var(--radius-sharp);
  box-shadow: var(--surface-shadow);
  padding: var(--space-lg);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: var(--space-sm);
  min-width: 0;
}

.contact-card__icon {
  font-size: 2rem;
  color: var(--color-signal);
  line-height: 1;
}

.contact-card__title {
  margin-block-end: 0;
}

.contact-card__message {
  margin-block-end: 0;
  font-size: var(--text-caption);
  line-height: var(--leading-caption);
  color: var(--color-lumiere);
}

.contact-card__value {
  font-size: var(--text-h3);
  font-weight: 700;
  color: var(--color-signal);
  text-decoration: none;
  overflow-wrap: break-word;
  word-break: break-word;
  transition: color var(--transition-fast) var(--transition-timing);
}

.contact-card__value:hover {
  color: var(--color-lumiere);
}

.contact-card__value--static {
  color: var(--color-lumiere);
}

/* Horaires d'ouverture */
.contact-hours {
  background-color: var(--color-metal);
  border-top: 1px solid var(--color-metal-light);
  border-bottom: 1px solid var(--color-metal-light);
}

.contact-hours__inner {
  max-width: 70%;
  margin-inline: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  align-items: flex-start;
}

.contact-hours__title {
  margin-block-end: 0;
}

.contact-hours__message {
  margin-block-end: 0;
}

.contact-hours__list {
  list-style: none;
  margin: 0;
  padding: 0;
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}

.contact-hours__item {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: var(--space-md);
  padding: var(--space-sm) 0;
  border-bottom: 1px solid var(--color-metal-light);
}

.contact-hours__item:last-child {
  border-bottom: none;
}

.contact-hours__day {
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-size: var(--text-caption);
  color: var(--color-signal);
}

.contact-hours__time {
  font-size: var(--text-body);
  color: var(--color-lumiere);
}

/* Formulaire de contact */
.contact-form-section__inner {
  max-width: 600px;
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  align-items: flex-start;
}

.contact-form-section__title {
  margin-block-end: 0;
}

.contact-form-section__intro {
  margin-block-end: 0;
}

.contact-form {
  width: 100%;
  background-color: var(--surface-bg);
  border: 1px solid var(--surface-border);
  border-radius: var(--radius-sharp);
  box-shadow: var(--surface-shadow);
  padding: var(--space-lg);
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.contact-form__field {
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
  min-width: 0;
}

.contact-form__error {
  color: var(--color-signal);
  font-size: var(--text-caption);
  line-height: var(--leading-caption);
  margin-block-end: 0;
}

.contact-form__submit {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-sm);
}

.contact-form__spinner {
  display: none;
  width: 16px;
  height: 16px;
  border: 2px solid rgba(17, 17, 19, 0.3);
  border-top-color: var(--color-noir);
  border-radius: 50%;
  animation: contact-spin 0.8s linear infinite;
}

.contact-form.is-loading .contact-form__spinner {
  display: inline-block;
}

.contact-form.is-loading .contact-form__submit-label {
  opacity: 0.7;
}

.contact-form__status {
  margin-block-end: 0;
  font-size: var(--text-caption);
  line-height: var(--leading-caption);
  min-height: 1.4em;
}

.contact-form__status--success {
  color: var(--color-signal);
}

.contact-form__status--error {
  color: #ff6b6b;
}

@keyframes contact-spin {
  to {
    transform: rotate(360deg);
  }
}

/* Réservations et événements privés */
.contact-cta__title {
  margin-block-end: var(--space-lg);
}

.contact-cta__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-md);
}

.contact-cta-card {
  background-color: var(--surface-bg);
  border: 1px solid var(--surface-border);
  border-radius: var(--radius-sharp);
  box-shadow: var(--surface-shadow);
  padding: var(--space-lg);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: var(--space-md);
  min-width: 0;
}

.contact-cta-card__title {
  margin-block-end: 0;
}

.contact-cta-card__message {
  margin-block-end: 0;
}

.contact-cta-card__phone,
.contact-cta-card__email {
  font-size: var(--text-caption);
  color: var(--color-lumiere);
  text-decoration: none;
  transition: color var(--transition-fast) var(--transition-timing);
}

.contact-cta-card__phone:hover,
.contact-cta-card__email:hover {
  color: var(--color-signal);
}

/* Note finale */
.contact-final__inner {
  max-width: 70%;
  margin-inline: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  align-items: flex-start;
  padding-top: var(--space-lg);
  border-top: 1px solid var(--color-metal-light);
}

.contact-final__title {
  margin-block-end: 0;
}

.contact-final__message {
  margin-block-end: 0;
}

.contact-final__link {
  color: var(--color-signal);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.contact-final__link:hover {
  color: var(--color-lumiere);
}

/* Responsive */
@media (max-width: 900px) {
  .contact-details__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .contact-cta__grid {
    grid-template-columns: 1fr;
  }

  .contact-hours__inner,
  .contact-final__inner {
    max-width: 100%;
  }
}

@media (max-width: 640px) {
  .contact-details__grid {
    grid-template-columns: 1fr;
  }

  .contact-form {
    padding: var(--space-md);
  }

  .contact-hours__item {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-xs);
  }

  .contact-intro__lead {
    max-width: 90%;
  }
}

@media (max-width: 480px) {
  .contact-intro__lead {
    max-width: 100%;
  }

  .contact-form-section__inner {
    gap: var(--space-sm);
  }

  .contact-form {
    gap: var(--space-sm);
  }

  .contact-cta-card {
    padding: var(--space-md);
  }
}

@media (prefers-reduced-motion: reduce) {
  .contact-form__spinner {
    animation-duration: 0.01ms;
    animation-iteration-count: 1;
  }
}


/* Conditions générales — page-owned styles */

.conditions-generales-page {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
  background-color: var(--color-noir);
  color: var(--color-lumiere);
  font-family: var(--font-body);
  line-height: var(--leading-body);
}

.conditions-generales-hero {
  padding-block: var(--space-xxl) var(--space-xl);
  border-block-end: 1px solid var(--color-metal-light);
  background-color: var(--color-noir);
}

.conditions-generales-hero__inner {
  width: 100%;
  max-width: 1200px;
  margin-inline: auto;
  padding-inline: var(--container-padding);
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  align-items: flex-start;
}

.conditions-generales-hero__label {
  font-size: var(--text-caption);
  line-height: var(--leading-caption);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--color-signal);
  font-weight: 700;
  margin: 0;
}

.conditions-generales-hero__title {
  font-family: var(--font-heading);
  font-weight: 700;
  letter-spacing: -0.02em;
  font-size: clamp(2rem, 1.2rem + 4vw, var(--text-display));
  line-height: var(--leading-display);
  color: var(--color-lumiere);
  margin: 0;
  max-width: 12ch;
}

.conditions-generales-hero__lead {
  font-size: var(--text-body);
  line-height: var(--leading-body);
  color: var(--color-lumiere);
  max-width: 70ch;
  margin: 0;
}

.conditions-generales-layout {
  width: 100%;
  max-width: 1200px;
  margin-inline: auto;
  padding-inline: var(--container-padding);
  display: flex;
  flex-direction: column;
  gap: var(--space-xxl);
  padding-block: var(--space-xxl);
}

.cg-section {
  width: 100%;
  max-width: 100%;
  display: flex;
  flex-direction: column;
  gap: var(--space-lg);
}

.cg-section__header {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  align-items: flex-start;
  width: 100%;
}

.cg-section__title {
  font-family: var(--font-heading);
  font-weight: 700;
  letter-spacing: -0.02em;
  font-size: clamp(1.5rem, 1rem + 2vw, var(--text-h2));
  line-height: var(--leading-h2);
  color: var(--color-lumiere);
  text-transform: uppercase;
  margin: 0;
}

.cg-section__accent {
  width: 64px;
  height: 2px;
  background-color: var(--color-signal);
  flex-shrink: 0;
}

.cg-section__body {
  width: 100%;
  max-width: 100%;
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  align-items: flex-start;
}

.cg-section__body--constrained {
  max-width: 800px;
}

.cg-section__body--left {
  margin-inline: 0;
}

.cg-subtitle {
  font-family: var(--font-heading);
  font-weight: 700;
  letter-spacing: -0.02em;
  font-size: var(--text-h3);
  line-height: var(--leading-h3);
  color: var(--color-lumiere);
  margin: 0;
}

.cg-list {
  list-style: none !important;
  padding-inline-start: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  width: 100%;
}

.cg-list li {
  position: relative;
  padding-inline-start: var(--space-md);
  margin: 0;
  font-size: var(--text-body);
  line-height: var(--leading-body);
  color: var(--color-lumiere);
}

.cg-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.65em;
  width: 6px;
  height: 6px;
  background-color: var(--color-signal);
  border-radius: var(--radius-sharp);
}

.cg-access-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-lg);
  width: 100%;
  max-width: 100%;
}

.cg-card {
  background-color: var(--surface-bg);
  border: 1px solid var(--surface-border);
  border-radius: var(--radius-sharp);
  box-shadow: var(--surface-shadow);
  padding: var(--space-lg);
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  min-width: 0;
  width: 100%;
}

.cg-card__title {
  font-family: var(--font-heading);
  font-weight: 700;
  letter-spacing: -0.02em;
  font-size: var(--text-h3);
  line-height: var(--leading-h3);
  color: var(--color-lumiere);
  margin: 0;
}

.cg-reservations-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 400px);
  gap: var(--space-lg);
  width: 100%;
  max-width: 100%;
  align-items: start;
}

.cg-reservations-copy {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  min-width: 0;
  width: 100%;
}

.cg-contact-box {
  background-color: var(--surface-bg);
  border: 1px solid var(--surface-border);
  border-radius: var(--radius-sharp);
  box-shadow: var(--surface-shadow);
  padding: var(--space-lg);
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  min-width: 0;
  width: 100%;
}

.cg-contact-box__title {
  font-family: var(--font-heading);
  font-weight: 700;
  letter-spacing: -0.02em;
  font-size: var(--text-h3);
  line-height: var(--leading-h3);
  color: var(--color-lumiere);
  text-transform: uppercase;
  margin: 0;
}

.cg-contact-list {
  list-style: none !important;
  padding-inline-start: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  width: 100%;
}

.cg-contact-list li {
  margin: 0;
  font-size: var(--text-body);
  line-height: var(--leading-body);
  color: var(--color-lumiere);
  overflow-wrap: break-word;
  word-wrap: break-word;
  word-break: break-word;
}

.cg-contact-list a {
  color: var(--color-signal);
  text-decoration: none;
  transition: color var(--transition-fast) var(--transition-timing);
}

.cg-contact-list a:hover {
  color: var(--color-lumiere);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.cg-poker-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-lg);
  width: 100%;
  max-width: 100%;
}

.cg-poker-column {
  background-color: var(--color-noir);
  border: 1px solid var(--color-metal-light);
  border-radius: var(--radius-sharp);
  padding: var(--space-lg);
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  min-width: 0;
  width: 100%;
}

.cg-responsibility-card {
  background-color: var(--surface-bg);
  border: 1px solid var(--surface-border);
  border-radius: var(--radius-sharp);
  box-shadow: var(--surface-shadow);
  padding: var(--space-lg);
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  width: 100%;
  max-width: 800px;
  margin-inline: 0;
  min-width: 0;
}

.cg-link {
  color: var(--color-signal);
  text-decoration: none;
  transition: color var(--transition-fast) var(--transition-timing);
}

.cg-link:hover {
  color: var(--color-lumiere);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.cg-contact-final {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  align-items: flex-start;
  width: 100%;
  max-width: 800px;
  margin-inline: 0;
}

.cg-address-box {
  background-color: var(--surface-bg);
  border: 1px solid var(--surface-border);
  border-radius: var(--radius-sharp);
  box-shadow: var(--surface-shadow);
  padding: var(--space-lg);
  width: 100%;
  max-width: 400px;
  font-style: normal;
}

.cg-address-box .cg-contact-list {
  gap: var(--space-sm);
}

/* Tablet breakpoint */
@media (max-width: 900px) {
  .cg-reservations-layout {
    grid-template-columns: 1fr;
  }

  .cg-contact-box {
    max-width: 400px;
  }
}

/* Mobile breakpoint */
@media (max-width: 768px) {
  .conditions-generales-hero {
    padding-block: var(--space-xl) var(--space-lg);
  }

  .conditions-generales-hero__title {
    font-size: clamp(1.75rem, 1.2rem + 3vw, 2.25rem);
    max-width: 100%;
  }

  .conditions-generales-hero__lead {
    max-width: 100%;
  }

  .conditions-generales-layout {
    gap: var(--space-xl);
    padding-block: var(--space-xl);
  }

  .cg-section {
    gap: var(--space-md);
  }

  .cg-section__title {
    font-size: 1.5rem;
    line-height: 1.3;
  }

  .cg-section__body--constrained,
  .cg-responsibility-card,
  .cg-contact-final {
    max-width: 100%;
  }

  .cg-access-grid,
  .cg-poker-grid {
    grid-template-columns: 1fr;
  }

  .cg-card,
  .cg-poker-column {
    padding: var(--space-md);
  }

  .cg-contact-box,
  .cg-address-box {
    max-width: 100%;
    padding: var(--space-md);
  }
}

@media (max-width: 480px) {
  .conditions-generales-hero__inner {
    padding-inline: var(--space-sm);
  }

  .conditions-generales-layout {
    padding-inline: var(--space-sm);
    gap: var(--space-lg);
    padding-block: var(--space-lg);
  }

  .cg-section__title {
    font-size: 1.375rem;
  }

  .cg-section__accent {
    width: 48px;
  }

  .cg-card,
  .cg-poker-column,
  .cg-contact-box,
  .cg-address-box {
    padding: var(--space-sm);
  }

  .cg-list li,
  .cg-contact-list li {
    font-size: 0.9375rem;
    line-height: 1.5;
  }
}

@media (prefers-reduced-motion: reduce) {
  .conditions-generales-page *,
  .conditions-generales-page *::before,
  .conditions-generales-page *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}


/* ===== Page Galerie — Nocturne Industriel ===== */

.galerie-intro,
.galerie-section,
.galerie-cta,
.galerie-finale {
  width: 100%;
  max-width: 100%;
  padding-inline: var(--container-padding);
  padding-block: var(--space-xxl);
}

.galerie-intro {
  background-color: var(--color-noir);
}

.galerie-intro__inner {
  max-width: 800px;
  margin-inline: auto;
  text-align: left;
}

.galerie-intro__title {
  font-size: clamp(1.75rem, 1.2rem + 2.5vw, var(--text-h1));
  line-height: var(--leading-h1);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--color-lumiere);
  margin-block-end: var(--space-md);
}

.galerie-intro__accent,
.galerie-finale__accent {
  width: 80px;
  height: 2px;
  background-color: var(--color-signal);
  margin-block-end: var(--space-lg);
}

.galerie-intro__text {
  max-width: 65ch;
  font-size: var(--text-body);
  line-height: var(--leading-body);
  color: var(--color-lumiere);
  margin-block-end: 0;
}

.galerie-section {
  background-color: var(--color-noir);
}

.galerie-section__header {
  max-width: 1200px;
  margin-inline: auto;
  margin-block-end: var(--space-lg);
}

.galerie-section__title {
  font-size: var(--text-h2);
  line-height: var(--leading-h2);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--color-lumiere);
  margin-block-end: 0;
}

.galerie-grid {
  display: grid;
  gap: var(--space-md);
  max-width: 1200px;
  margin-inline: auto;
  margin-block-end: var(--space-lg);
}

.galerie-grid--cuisine,
.galerie-grid--poker {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.galerie-grid--interieur {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.galerie-card {
  margin: 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
}

.galerie-card__media {
  position: relative;
  width: 100%;
  overflow: hidden;
  border-radius: var(--radius-slight);
  border: 1px solid var(--color-metal-light);
  background-color: var(--color-metal);
  margin-block-end: var(--space-sm);
}

.galerie-card__media--4-3::before {
  content: "";
  display: block;
  padding-block-start: 75%;
}

.galerie-card__media--16-9::before {
  content: "";
  display: block;
  padding-block-start: 56.25%;
}

.galerie-card__media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  max-width: 100%;
}

.galerie-card__media::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url()' opacity='0.12'/%3E%3C/svg%3E");
  background-size: 200px 200px;
  pointer-events: none;
  opacity: 0.35;
  mix-blend-mode: overlay;
}

.galerie-card__caption {
  font-size: var(--text-caption);
  line-height: var(--leading-caption);
  color: var(--color-lumiere);
  opacity: 0.8;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-block-start: 0;
  margin-block-end: 0;
}

.galerie-section__text {
  max-width: 800px;
  margin-inline: auto;
  text-align: left;
}

.galerie-section__text p {
  max-width: 70ch;
  font-size: var(--text-body);
  line-height: var(--leading-body);
  color: var(--color-lumiere);
  margin-block-end: 0;
}

.galerie-cta {
  background-color: var(--color-metal);
  border-block: 1px solid var(--color-signal);
}

.galerie-cta__inner {
  max-width: 600px;
  margin-inline: auto;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-lg);
}

.galerie-cta__title {
  font-size: var(--text-h2);
  line-height: var(--leading-h2);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--color-lumiere);
  margin-block-end: 0;
}

.galerie-cta__text {
  max-width: 65ch;
  font-size: var(--text-body);
  line-height: var(--leading-body);
  color: var(--color-lumiere);
  margin-block-end: 0;
}

.galerie-cta__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-md);
  width: 100%;
}

.galerie-cta__actions .btn {
  min-width: 200px;
  flex: 0 1 auto;
}

.galerie-finale {
  background-color: var(--color-noir);
}

.galerie-finale__inner {
  max-width: 700px;
  margin-inline: auto;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.galerie-finale__title {
  font-size: var(--text-h2);
  line-height: var(--leading-h2);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--color-lumiere);
  margin-block-end: var(--space-md);
}

.galerie-finale__accent {
  margin-block-end: var(--space-lg);
}

.galerie-finale__text {
  max-width: 65ch;
  font-size: var(--text-body);
  line-height: var(--leading-body);
  color: var(--color-lumiere);
  margin-block-end: 0;
}

/* ===== Tablette ===== */
@media (max-width: 992px) {
  .galerie-grid--cuisine,
  .galerie-grid--interieur,
  .galerie-grid--poker {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .galerie-section__text {
    max-width: 100%;
  }

  .galerie-section__text p {
    max-width: 100%;
  }
}

/* ===== Mobile ===== */
@media (max-width: 768px) {
  .galerie-intro,
  .galerie-section,
  .galerie-cta,
  .galerie-finale {
    padding-block: var(--space-xl);
  }

  .galerie-grid--cuisine,
  .galerie-grid--interieur,
  .galerie-grid--poker {
    grid-template-columns: 1fr;
    gap: var(--space-lg);
  }

  .galerie-cta__actions {
    flex-direction: column;
    align-items: stretch;
  }

  .galerie-cta__actions .btn {
    width: 100%;
    min-width: 0;
  }

  .galerie-intro__title,
  .galerie-section__title,
  .galerie-cta__title,
  .galerie-finale__title {
    font-size: 1.75rem;
  }
}

@media (max-width: 480px) {
  .galerie-intro,
  .galerie-section,
  .galerie-cta,
  .galerie-finale {
    padding-inline: var(--space-sm);
  }

  .galerie-intro__title,
  .galerie-section__title,
  .galerie-cta__title,
  .galerie-finale__title {
    font-size: 1.5rem;
  }

  .galerie-card__caption {
    font-size: 0.6875rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .galerie-card__media::after {
    animation: none;
  }
}


.evenements-prives-main {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

.evenements-prives-main .container {
  width: 100%;
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-padding);
}

.ep-kicker {
  font-size: var(--text-caption);
  line-height: var(--leading-caption);
  letter-spacing: 0.05em;
  font-weight: 700;
  margin-block-end: var(--space-sm);
}

.ep-section-heading {
  margin-block-end: var(--space-xl);
}

.ep-section-heading h2 {
  margin-block-end: var(--space-sm);
}

.ep-section-intro {
  max-width: 52ch;
  margin-block-start: var(--space-sm);
  margin-block-end: 0;
}

/* Introduction immersive */
.ep-intro {
  padding-block-start: var(--space-xxl);
  padding-block-end: var(--space-xxl);
}

.ep-intro__container {
  display: grid;
  grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
  gap: var(--space-lg);
  align-items: start;
}

.ep-intro__content {
  min-width: 0;
}

.ep-intro__title {
  margin-block-end: var(--space-md);
}

.ep-intro__lead {
  margin-block-end: var(--space-md);
}

.ep-intro__list {
  margin-block-start: var(--space-md);
}

.ep-intro__media {
  min-width: 0;
  margin-block-end: 0;
}

.ep-intro__image {
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border-radius: var(--radius-sharp);
  display: block;
  max-width: 100%;
}

/* Espaces privatisables */
.ep-espaces {
  padding-block-start: var(--space-xxl);
  padding-block-end: var(--space-xxl);
}

.ep-espaces__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-lg);
  align-items: stretch;
}

.ep-space-card {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  padding: var(--space-lg);
}

.ep-space-card h3 {
  margin-block-end: 0;
}

.ep-space-card p {
  margin-block-end: 0;
}

.ep-space-card ul {
  margin-block-start: auto;
  margin-block-end: 0;
}

/* Formules événementielles */
.ep-formules {
  padding-block-start: var(--space-xl);
  padding-block-end: var(--space-xl);
  background-color: var(--color-metal);
}

.ep-formules__container {
  max-width: 800px;
  margin-inline: 0;
  padding-inline: var(--container-padding);
}

.ep-formules__list {
  display: flex;
  flex-direction: column;
  gap: var(--space-lg);
}

.ep-formule {
  min-width: 0;
  border-block-end: 1px solid var(--color-metal-light);
  padding-block-end: var(--space-lg);
}

.ep-formule:last-child {
  border-block-end: none;
  padding-block-end: 0;
}

.ep-formule h3 {
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-block-end: var(--space-sm);
}

.ep-formule p {
  margin-block-end: var(--space-sm);
}

.ep-formule ul {
  margin-block-end: 0;
}

/* Personnalisation et services */
.ep-services {
  padding-block-start: var(--space-xxl);
  padding-block-end: var(--space-xxl);
}

.ep-services__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-lg);
  align-items: stretch;
}

.ep-service-card {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  padding: var(--space-lg);
}

.ep-service-card h3 {
  margin-block-end: 0;
}

.ep-service-card p {
  margin-block-end: 0;
}

.ep-service-card ul {
  margin-block-start: auto;
  margin-block-end: 0;
}

/* Témoignages */
.ep-temoignages {
  padding-block-start: var(--space-xl);
  padding-block-end: var(--space-xl);
  background-color: var(--color-metal);
}

.ep-temoignages__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-lg);
  align-items: stretch;
}

.ep-temoignage {
  min-width: 0;
  margin-block-end: 0;
  padding-inline-start: var(--space-md);
  border-inline-start: 2px solid var(--color-signal);
  color: var(--color-lumiere);
  font-style: normal;
}

.ep-temoignage p {
  margin-block-end: var(--space-sm);
  max-width: 55ch;
}

.ep-temoignage footer {
  font-size: var(--text-caption);
  line-height: var(--leading-caption);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: rgba(241, 241, 241, 0.7);
}

/* FAQ */
.ep-faq {
  padding-block-start: var(--space-xxl);
  padding-block-end: var(--space-xxl);
}

.ep-faq__container {
  max-width: 800px;
  margin-inline: 0;
  padding-inline: var(--container-padding);
}

.ep-faq__list {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.ep-faq-item {
  min-width: 0;
  padding: 0;
  overflow: hidden;
}

.ep-faq-question {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-md);
  padding: var(--space-md) var(--space-lg);
  background-color: transparent;
  border: none;
  color: var(--color-lumiere);
  text-align: start;
  text-transform: none;
  letter-spacing: 0;
  font-weight: 700;
  font-size: var(--text-body);
  min-height: 44px;
  border-radius: var(--radius-slight);
  transition: color var(--transition-fast) var(--transition-timing),
    background-color var(--transition-fast) var(--transition-timing);
}

.ep-faq-question:hover {
  color: var(--color-signal);
  background-color: var(--color-noir);
}

.ep-faq-question:focus-visible {
  outline: var(--focus-outline);
  outline-offset: var(--focus-outline-offset);
}

.ep-faq-icon {
  flex-shrink: 0;
  width: 12px;
  height: 12px;
  position: relative;
  display: inline-block;
}

.ep-faq-icon::before,
.ep-faq-icon::after {
  content: "";
  position: absolute;
  background-color: var(--color-signal);
  transition: transform var(--transition-fast) var(--transition-timing);
}

.ep-faq-icon::before {
  top: 5px;
  left: 0;
  width: 12px;
  height: 2px;
}

.ep-faq-icon::after {
  top: 0;
  left: 5px;
  width: 2px;
  height: 12px;
}

.ep-faq-item.is-open .ep-faq-icon::after {
  transform: scaleY(0);
}

.ep-faq-answer {
  padding: 0 var(--space-lg) var(--space-lg);
}

.ep-faq-answer[hidden] {
  display: none;
}

.ep-faq-answer p {
  margin-block-end: 0;
}

/* Appel à l'action et contact */
.ep-cta {
  padding-block-start: var(--space-xxl);
  padding-block-end: var(--space-xxl);
  background-color: var(--color-metal);
  border-block-start: 4px solid var(--color-signal);
}

.ep-cta__container {
  max-width: 600px;
  margin-inline: auto;
  padding-inline: var(--container-padding);
}

.ep-cta__block {
  text-align: center;
  padding: var(--space-xl);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-md);
}

.ep-cta__block h2 {
  margin-block-end: 0;
}

.ep-cta__text {
  max-width: 45ch;
  margin-inline: auto;
  margin-block-end: 0;
}

.ep-cta__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-md);
  margin-block-start: var(--space-sm);
}

.ep-cta__actions .btn {
  flex: 0 1 auto;
  min-width: 0;
}

@media (max-width: 900px) {
  .ep-intro__container {
    grid-template-columns: 1fr;
    gap: var(--space-lg);
  }

  .ep-intro__media {
    order: -1;
  }

  .ep-espaces__grid,
  .ep-services__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .ep-temoignages__grid {
    grid-template-columns: 1fr;
  }

  .ep-formules__container,
  .ep-faq__container {
    max-width: 100%;
    margin-inline: 0;
  }
}

@media (max-width: 640px) {
  .ep-espaces__grid,
  .ep-services__grid {
    grid-template-columns: 1fr;
    gap: var(--space-md);
  }

  .ep-space-card,
  .ep-service-card {
    padding: var(--space-md);
  }

  .ep-cta__block {
    padding: var(--space-lg);
  }

  .ep-cta__actions {
    flex-direction: column;
    align-items: stretch;
    width: 100%;
  }

  .ep-cta__actions .btn {
    width: 100%;
  }

  .ep-faq-question {
    padding: var(--space-sm) var(--space-md);
  }

  .ep-faq-answer {
    padding: 0 var(--space-md) var(--space-md);
  }
}

@media (prefers-reduced-motion: reduce) {
  .ep-faq-icon::before,
  .ep-faq-icon::after {
    transition-duration: 0.01ms;
  }
}


/* Page-owned styles for carte/index.php */

.carte-hero {
  position: relative;
  min-height: 70vh;
  display: flex;
  align-items: flex-end;
  background-color: var(--color-noir);
  overflow: hidden;
}

.carte-hero__media {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.carte-hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(0.8) sepia(0.5) hue-rotate(-10deg) contrast(1.2) brightness(0.7);
}

.carte-hero__content {
  position: relative;
  z-index: 1;
  padding-block: var(--space-xxl);
  max-width: 600px;
  margin-inline: 0;
  text-align: left;
}

.carte-hero__content h1 {
  font-size: clamp(2rem, 1.2rem + 3vw, var(--text-display));
  line-height: var(--leading-display);
  margin-block-end: var(--space-md);
  color: var(--color-lumiere);
  text-shadow: 0 2px 8px rgba(0,0,0,0.8);
}

.carte-hero__intro {
  max-width: 60%;
  font-size: var(--text-body);
  line-height: var(--leading-body);
  color: var(--color-lumiere);
  margin-block-end: var(--space-md);
}

.carte-hero__quote {
  max-width: 60%;
  margin-block-end: var(--space-md);
  padding-inline-start: var(--space-md);
  border-inline-start: 2px solid var(--color-signal);
  color: var(--color-lumiere);
  font-weight: 700;
}

.carte-hero__details {
  max-width: 60%;
  font-size: var(--text-caption);
  line-height: var(--leading-caption);
  color: rgba(241,241,241,0.85);
  margin-block-end: 0;
}

.carte-section {
  padding-block: var(--space-xxl);
}

.carte-section__title {
  font-size: var(--text-h2);
  line-height: var(--leading-h2);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--color-signal);
  margin-block-end: var(--space-lg);
  border-block-end: 1px solid var(--color-metal-light);
  padding-block-end: var(--space-sm);
}

/* Entrées */
.carte-entrees__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  gap: var(--space-lg);
  align-items: start;
}

.carte-entrees__list,
.carte-entrees__signature {
  min-width: 0;
}

.carte-entrees__list h3,
.carte-plats__list h3,
.carte-desserts__list h3 {
  font-size: var(--text-h3);
  line-height: var(--leading-h3);
  margin-block-end: var(--space-sm);
}

.carte-entrees__lead,
.carte-plats__lead,
.carte-desserts__lead {
  max-width: 70%;
  margin-block-end: var(--space-md);
}

.carte-dish-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-md);
}

.carte-dish-card {
  padding: var(--space-md);
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  min-width: 0;
}

.carte-dish-card h4 {
  font-size: var(--text-body);
  line-height: var(--leading-h3);
  margin-block-end: 0;
  color: var(--color-lumiere);
}

.carte-dish-card__desc {
  font-size: var(--text-caption);
  line-height: var(--leading-caption);
  color: rgba(241,241,241,0.8);
  margin-block-end: 0;
  max-width: 70%;
}

.carte-dish-card__price {
  font-size: var(--text-caption);
  line-height: var(--leading-caption);
  font-weight: 700;
  color: var(--color-signal);
  margin-block-start: auto;
  margin-block-end: 0;
}

.carte-signature-card {
  padding: var(--space-md);
  border: 1px solid var(--color-signal);
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}

.carte-signature-card h3 {
  font-size: var(--text-h3);
  line-height: var(--leading-h3);
  margin-block-end: 0;
}

.carte-signature-card p {
  font-size: var(--text-caption);
  line-height: var(--leading-caption);
  margin-block-end: 0;
}

.carte-signature-card__price {
  font-weight: 700;
  color: var(--color-signal);
}

.carte-entrees__image,
.carte-desserts__image {
  margin-block-start: var(--space-md);
}

.carte-entrees__image img,
.carte-desserts__image img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border: 1px solid var(--color-metal-light);
}

.carte-entrees__image figcaption,
.carte-desserts__image figcaption {
  margin-block-start: var(--space-xs);
}

/* Plats */
.carte-plats__hero-image {
  margin-block-end: var(--space-lg);
}

.carte-plats__hero-image img {
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border: 1px solid var(--color-metal-light);
}

.carte-plats__hero-image figcaption {
  margin-block-start: var(--space-xs);
}

.carte-plats__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  gap: var(--space-lg);
  align-items: start;
}

.carte-plats__list,
.carte-plats__signature {
  min-width: 0;
}

/* Menus */
.carte-menus__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-lg);
}

.carte-menu-card {
  padding: var(--space-lg);
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  min-width: 0;
  text-align: center;
}

.carte-menu-card--featured {
  border-color: var(--color-signal);
}

.carte-menu-card h3 {
  font-size: var(--text-h3);
  line-height: var(--leading-h3);
  margin-block-end: 0;
}

.carte-menu-card p {
  max-width: 80%;
  margin-inline: auto;
  font-size: var(--text-body);
  line-height: var(--leading-body);
  margin-block-end: 0;
}

.carte-menu-card__price {
  font-weight: 700;
  color: var(--color-signal);
  margin-block-start: auto;
}

/* Desserts */
.carte-desserts__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  gap: var(--space-lg);
  align-items: start;
}

.carte-desserts__list,
.carte-desserts__image {
  min-width: 0;
}

/* Boissons */
.carte-boissons__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-lg);
}

.carte-boisson-card {
  padding: var(--space-lg);
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  min-width: 0;
}

.carte-boisson-card h3 {
  font-size: var(--text-h3);
  line-height: var(--leading-h3);
  margin-block-end: 0;
}

.carte-boisson-card p {
  max-width: 80%;
  font-size: var(--text-body);
  line-height: var(--leading-body);
  margin-block-end: 0;
}

.carte-boisson-card__price {
  font-weight: 700;
  color: var(--color-signal);
  margin-block-start: auto;
}

/* Poker */
.carte-poker__box {
  max-width: 800px;
  margin-inline: auto;
  padding: var(--space-lg);
  border: 1px solid var(--color-signal);
  background-color: var(--color-metal);
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  align-items: center;
}

.carte-poker__box h2 {
  font-size: var(--text-h2);
  line-height: var(--leading-h2);
  margin-block-end: 0;
}

.carte-poker__box p {
  max-width: 80%;
  margin-inline: auto;
  margin-block-end: 0;
}

.carte-poker__note {
  font-size: var(--text-caption);
  line-height: var(--leading-caption);
  color: var(--color-signal);
  border: 1px solid var(--color-signal);
  padding: var(--space-sm);
  max-width: 70%;
}

/* Réservation */
.carte-reservation__card {
  max-width: 600px;
  margin-inline: auto;
  padding: var(--space-lg);
  border: 1px solid var(--color-signal);
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  align-items: center;
}

.carte-reservation__card h2 {
  font-size: var(--text-h2);
  line-height: var(--leading-h2);
  margin-block-end: 0;
}

.carte-reservation__card p {
  max-width: 80%;
  margin-inline: auto;
  margin-block-end: 0;
}

.carte-reservation__list {
  list-style: none;
  padding: 0;
  margin: 0;
  text-align: left;
  max-width: 80%;
}

.carte-reservation__list li {
  padding-inline-start: 0;
  margin-block-end: var(--space-xs);
}

.carte-reservation__list li::before {
  display: none;
}

.carte-reservation__list a {
  color: var(--color-signal);
}

.carte-reservation__list a:hover {
  color: var(--color-lumiere);
}

/* Hover states for cards */
.carte-dish-card,
.carte-menu-card,
.carte-boisson-card {
  transition: border-color var(--transition-fast) var(--transition-timing);
}

.carte-dish-card:hover,
.carte-menu-card:hover,
.carte-boisson-card:hover {
  border-color: var(--color-signal);
}

/* Tablet */
@media (max-width: 992px) {
  .carte-entrees__grid,
  .carte-plats__grid,
  .carte-desserts__grid {
    grid-template-columns: 1fr;
  }

  .carte-entrees__signature,
  .carte-plats__signature,
  .carte-desserts__image {
    width: 100%;
  }

  .carte-entrees__image img,
  .carte-desserts__image img {
    aspect-ratio: 16 / 9;
  }

  .carte-dish-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .carte-menus__grid,
  .carte-boissons__grid {
    grid-template-columns: 1fr;
  }
}

/* Mobile */
@media (max-width: 768px) {
  .carte-hero {
    min-height: 50vh;
  }

  .carte-hero__content {
    padding-block: var(--space-xl);
  }

  .carte-hero__intro,
  .carte-hero__quote,
  .carte-hero__details {
    max-width: 100%;
  }

  .carte-section {
    padding-block: var(--space-xl);
  }

  .carte-dish-grid {
    grid-template-columns: 1fr;
  }

  .carte-entrees__lead,
  .carte-plats__lead,
  .carte-desserts__lead {
    max-width: 100%;
  }

  .carte-dish-card__desc {
    max-width: 100%;
  }

  .carte-menu-card p,
  .carte-boisson-card p,
  .carte-poker__box p,
  .carte-reservation__card p {
    max-width: 100%;
  }

  .carte-poker__note {
    max-width: 100%;
  }

  .carte-reservation__list {
    max-width: 100%;
  }
}

@media (max-width: 480px) {
  .carte-hero {
    min-height: 40vh;
  }

  .carte-hero__content h1 {
    font-size: clamp(1.75rem, 1.2rem + 2vw, 2.25rem);
  }

  .carte-section {
    padding-block: var(--space-lg);
  }

  .carte-section__title {
    font-size: var(--text-h3);
  }

  .carte-dish-card,
  .carte-signature-card,
  .carte-menu-card,
  .carte-boisson-card,
  .carte-poker__box,
  .carte-reservation__card {
    padding: var(--space-sm);
  }

  .carte-menu-card__price,
  .carte-boisson-card__price {
    font-size: var(--text-caption);
  }
}


/* Page-owned styles for reservations page */
#reservations-main {
  background-color: var(--color-noir);
  color: var(--color-lumiere);
}

/* Section title shared style */
.res-section-title {
  font-size: var(--text-h2);
  line-height: var(--leading-h2);
  font-weight: 700;
  letter-spacing: -0.02em;
  text-transform: uppercase;
  color: var(--color-lumiere);
  margin-block-end: var(--space-lg);
  position: relative;
  padding-block-end: var(--space-sm);
}

.res-section-title::after {
  content: "";
  display: block;
  width: 48px;
  height: 2px;
  background-color: var(--color-signal);
  margin-block-start: var(--space-xs);
}

.res-section-title--center {
  text-align: center;
}

.res-section-title--center::after {
  margin-inline: auto;
}

/* Introduction section */
.res-intro {
  padding-block-start: var(--space-xxl);
  padding-block-end: var(--space-xl);
}

.res-intro__container {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.res-intro__title {
  font-size: var(--text-display);
  line-height: var(--leading-display);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--color-lumiere);
  margin-block-end: 0;
  max-width: 100%;
}

.res-intro__accent {
  width: 80px;
  height: 4px;
  background-color: var(--color-signal);
}

.res-intro__content {
  display: grid;
  grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
  gap: var(--space-lg);
  align-items: start;
}

.res-intro__lead {
  font-size: var(--text-body);
  line-height: var(--leading-body);
  color: var(--color-lumiere);
  max-width: 65ch;
  margin-block-end: 0;
}

.res-intro__methods {
  list-style: none;
  padding-inline-start: 0;
  margin-block-end: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}

.res-intro__methods li {
  position: relative;
  padding-inline-start: var(--space-md);
  font-size: var(--text-body);
  line-height: var(--leading-body);
  color: var(--color-lumiere);
}

.res-intro__methods li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.65em;
  width: 6px;
  height: 6px;
  background-color: var(--color-signal);
}

.res-intro__methods a {
  color: var(--color-signal);
  text-decoration: none;
}

.res-intro__methods a:hover {
  color: var(--color-lumiere);
  text-decoration: underline;
}

/* Options section */
.res-options {
  padding-block: var(--space-xl);
}

.res-options__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-lg);
}

.res-option-card {
  background-color: var(--surface-bg);
  border: 1px solid var(--surface-border);
  border-radius: var(--radius-slight);
  padding: var(--space-lg);
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  transition: border-color var(--transition-fast) var(--transition-timing);
}

.res-option-card:hover {
  border-color: var(--color-signal);
}

.res-option-card--poker {
  border-block-start: 4px solid var(--color-signal);
}

.res-option-card__title {
  font-size: var(--text-h3);
  line-height: var(--leading-h3);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--color-lumiere);
  margin-block-end: 0;
}

.res-option-card--poker .res-option-card__title {
  color: var(--color-signal);
}

.res-option-card__text {
  font-size: var(--text-body);
  line-height: var(--leading-body);
  color: var(--color-lumiere);
  max-width: 55ch;
  margin-block-end: 0;
}

.res-option-card__list {
  list-style: none;
  padding-inline-start: 0;
  margin-block-end: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
}

.res-option-card__list li {
  position: relative;
  padding-inline-start: var(--space-md);
  font-size: var(--text-body);
  line-height: var(--leading-body);
  color: var(--color-lumiere);
}

.res-option-card__list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.65em;
  width: 6px;
  height: 6px;
  background-color: var(--color-signal);
}

/* Hours section */
.res-hours {
  padding-block: var(--space-xl);
}

.res-hours__grid {
  display: grid;
  grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
  gap: var(--space-lg);
}

.res-hours-panel {
  background-color: var(--surface-bg);
  border: 1px solid var(--surface-border);
  border-radius: var(--radius-slight);
  padding: var(--space-lg);
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.res-hours-panel--poker {
  border-block-start: 4px solid var(--color-signal);
}

.res-hours-panel__title {
  font-size: var(--text-h3);
  line-height: var(--leading-h3);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--color-lumiere);
  margin-block-end: 0;
}

.res-hours-panel__intro {
  font-size: var(--text-body);
  line-height: var(--leading-body);
  color: var(--color-lumiere);
  max-width: 40ch;
  margin-block-end: 0;
}

.res-hours-table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--text-body);
  line-height: var(--leading-body);
}

.res-hours-table th,
.res-hours-table td {
  padding: var(--space-sm) var(--space-md);
  border-block-end: 1px solid var(--color-metal-light);
  text-align: start;
  vertical-align: top;
}

.res-hours-table th {
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-size: var(--text-caption);
  color: var(--color-signal);
}

.res-hours-table td {
  color: var(--color-lumiere);
}

/* Policies section */
.res-policies {
  padding-block: var(--space-xl);
}

.res-policies__list {
  display: flex;
  flex-direction: column;
  gap: var(--space-lg);
}

.res-policy-block {
  padding-inline-start: var(--space-lg);
  border-inline-start: 2px solid var(--color-metal-light);
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}

.res-policy-block__title {
  font-size: var(--text-h3);
  line-height: var(--leading-h3);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--color-lumiere);
  margin-block-end: 0;
}

.res-policy-block__text {
  font-size: var(--text-body);
  line-height: var(--leading-body);
  color: var(--color-lumiere);
  max-width: 65ch;
  margin-block-end: 0;
}

.res-policy-block__list {
  list-style: none;
  padding-inline-start: 0;
  margin-block-end: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
}

.res-policy-block__list li {
  position: relative;
  padding-inline-start: var(--space-md);
  font-size: var(--text-body);
  line-height: var(--leading-body);
  color: var(--color-lumiere);
}

.res-policy-block__list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.65em;
  width: 6px;
  height: 6px;
  background-color: var(--color-signal);
}

/* Form section */
.res-form-section {
  padding-block: var(--space-xl);
}

.res-form-intro {
  font-size: var(--text-body);
  line-height: var(--leading-body);
  color: var(--color-lumiere);
  max-width: 65ch;
  margin-inline: auto;
  text-align: center;
  margin-block-end: var(--space-lg);
}

.res-form {
  max-width: 600px;
  margin-inline: auto;
  background-color: var(--surface-bg);
  border: 1px solid var(--surface-border);
  border-block-start: 4px solid var(--color-signal);
  border-radius: var(--radius-slight);
  padding: var(--space-lg);
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.res-form__field {
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
  min-width: 0;
}

.res-form__field label {
  font-size: var(--text-caption);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-weight: 700;
  color: var(--color-lumiere);
}

.res-form__field input,
.res-form__field select,
.res-form__field textarea {
  width: 100%;
  background-color: var(--color-noir);
  color: var(--color-lumiere);
  border: 1px solid var(--color-metal-light);
  border-radius: var(--radius-sharp);
  padding: 0.75rem 1rem;
  font-family: var(--font-body);
  font-size: var(--text-body);
  line-height: var(--leading-body);
  min-height: 44px;
}

.res-form__field input:focus,
.res-form__field select:focus,
.res-form__field textarea:focus {
  border-color: var(--color-signal);
  box-shadow: 0 0 0 1px var(--color-signal);
  outline: none;
}

.res-form__row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-md);
}

.res-form__error {
  font-size: var(--text-caption);
  line-height: var(--leading-caption);
  color: var(--color-signal);
  min-height: 1.4em;
  margin-block-end: 0;
}

.res-form__submit {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-sm);
  width: 100%;
}

.res-form__spinner {
  display: none;
  width: 16px;
  height: 16px;
  border: 2px solid var(--color-noir);
  border-block-start-color: transparent;
  border-radius: 50%;
  animation: res-spin 0.8s linear infinite;
}

.res-form.is-loading .res-form__spinner {
  display: inline-block;
}

.res-form.is-loading .res-form__submit-label {
  opacity: 0.7;
}

.res-form__status {
  font-size: var(--text-caption);
  line-height: var(--leading-caption);
  color: var(--color-lumiere);
  text-align: center;
  min-height: 1.4em;
  margin-block-end: 0;
}

.res-form__status.is-error {
  color: var(--color-signal);
}

.res-form__status.is-success {
  color: var(--color-signal);
}

@keyframes res-spin {
  to {
    transform: rotate(360deg);
  }
}

/* Contact section */
.res-contact {
  padding-block: var(--space-xl);
}

.res-contact__panel {
  background-color: var(--surface-bg);
  border: 1px solid var(--surface-border);
  border-radius: var(--radius-slight);
  padding: var(--space-lg);
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.res-contact__intro {
  font-size: var(--text-body);
  line-height: var(--leading-body);
  color: var(--color-lumiere);
  max-width: 65ch;
  margin-block-end: 0;
}

.res-contact__items {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-lg);
}

.res-contact__item {
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
  min-width: 0;
}

.res-contact__label {
  font-size: var(--text-caption);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-weight: 700;
  color: var(--color-lumiere);
}

.res-contact__link {
  font-size: var(--text-body);
  line-height: var(--leading-body);
  color: var(--color-lumiere);
  text-decoration: none;
  overflow-wrap: break-word;
  word-break: break-word;
}

.res-contact__link:hover {
  color: var(--color-signal);
  text-decoration: underline;
}

.res-contact__link--signal {
  color: var(--color-signal);
}

.res-contact__address {
  font-size: var(--text-body);
  line-height: var(--leading-body);
  color: var(--color-lumiere);
  margin-block-end: 0;
}

/* Privacy section */
.res-privacy {
  padding-block: var(--space-xl);
  background-color: var(--color-noir);
}

.res-privacy__block {
  padding-inline-start: var(--space-lg);
  border-inline-start: 2px solid var(--color-metal-light);
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}

.res-privacy__title {
  font-size: var(--text-h3);
  line-height: var(--leading-h3);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--color-lumiere);
  margin-block-end: 0;
}

.res-privacy__text {
  font-size: var(--text-body);
  line-height: var(--leading-body);
  color: var(--color-lumiere);
  max-width: 65ch;
  margin-block-end: 0;
}

.res-privacy__link-wrap {
  margin-block-end: 0;
}

.res-privacy__link {
  color: var(--color-signal);
  text-decoration: none;
  font-weight: 700;
}

.res-privacy__link:hover {
  color: var(--color-lumiere);
  text-decoration: underline;
}

/* Responsive */
@media (max-width: 900px) {
  .res-intro__content {
    grid-template-columns: 1fr;
    gap: var(--space-md);
  }

  .res-options__grid {
    grid-template-columns: 1fr;
    gap: var(--space-md);
  }

  .res-hours__grid {
    grid-template-columns: 1fr;
    gap: var(--space-md);
  }

  .res-contact__items {
    grid-template-columns: 1fr;
    gap: var(--space-md);
  }

  .res-form__row {
    grid-template-columns: 1fr;
    gap: var(--space-md);
  }
}

@media (max-width: 768px) {
  .res-intro__title {
    font-size: 2rem;
    line-height: 1.2;
  }

  .res-section-title {
    font-size: 1.25rem;
  }

  .res-policy-block {
    padding-inline-start: var(--space-md);
  }

  .res-privacy__block {
    padding-inline-start: var(--space-md);
  }

  .res-form {
    padding: var(--space-md);
  }
}

@media (max-width: 480px) {
  .res-intro__title {
    font-size: 1.75rem;
  }

  .res-form {
    padding: var(--space-sm);
  }

  .res-option-card,
  .res-hours-panel,
  .res-contact__panel {
    padding: var(--space-md);
  }
}

@media (prefers-reduced-motion: reduce) {
  .res-form__spinner {
    animation-duration: 0.01ms;
    animation-iteration-count: 1;
  }
}


/* ===== Page Avis — Nocturne Industriel ===== */
.avis-page {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
  background-color: var(--color-noir);
}

.avis-page .container {
  width: 100%;
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-padding);
}

.avis-page .section {
  padding-block: var(--space-xxl);
}

.avis-page .section--tight {
  padding-block: var(--space-xl);
}

/* ===== Kicker et titres ===== */
.avis-kicker {
  font-size: var(--text-caption);
  line-height: var(--leading-caption);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--color-signal);
  font-weight: 700;
  margin-block-end: var(--space-xs);
}

.avis-kicker--center {
  text-align: center;
}

.avis-page h1,
.avis-page h2,
.avis-page h3 {
  margin-block-end: var(--space-sm);
  color: var(--color-lumiere);
  overflow-wrap: break-word;
  word-wrap: break-word;
  word-break: break-word;
  hyphens: auto;
  -webkit-hyphens: auto;
  -moz-hyphens: auto;
}

.avis-page h1 {
  font-size: clamp(2rem, 1.4rem + 3vw, var(--text-display));
  line-height: var(--leading-display);
  letter-spacing: -0.02em;
  margin-block-end: var(--space-md);
}

.avis-page h2 {
  font-size: clamp(1.5rem, 1.1rem + 2vw, var(--text-h2));
  line-height: var(--leading-h2);
  letter-spacing: -0.02em;
  margin-block-end: var(--space-md);
}

.avis-page h3 {
  font-size: var(--text-h3);
  line-height: var(--leading-h3);
  letter-spacing: -0.02em;
  margin-block-end: var(--space-sm);
}

/* ===== Introduction et note moyenne ===== */
.avis-intro {
  background-color: var(--color-noir);
  border-block-end: 1px solid var(--color-metal-light);
}

.avis-intro__grid {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 3fr);
  gap: var(--space-lg);
  align-items: start;
}

.avis-intro__title-block {
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-sm);
}

.avis-intro__subtitle {
  font-size: var(--text-body);
  line-height: var(--leading-body);
  color: var(--color-lumiere);
  margin-block-end: 0;
}

.avis-accent-line {
  width: 80px;
  height: 4px;
  background-color: var(--color-signal);
  margin-block-start: var(--space-sm);
}

.avis-rating-card {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  padding: var(--space-lg);
  background-color: var(--color-metal);
  border: 1px solid var(--color-metal-light);
  border-radius: var(--radius-sharp);
  box-shadow: var(--surface-shadow);
}

.avis-rating-card__stars {
  display: flex;
  gap: var(--space-xs);
  color: var(--color-signal);
  font-size: 1.25rem;
  line-height: 1;
  letter-spacing: 0.1em;
}

.avis-rating-card__score {
  font-size: clamp(2.5rem, 1.8rem + 3vw, 3.5rem);
  line-height: 1.1;
  font-weight: 700;
  color: var(--color-signal);
  letter-spacing: -0.02em;
  margin-block-end: 0;
}

.avis-rating-card__score span {
  font-size: 1.25rem;
  color: var(--color-lumiere);
  font-weight: 400;
}

.avis-rating-card__count {
  font-size: var(--text-caption);
  line-height: var(--leading-caption);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--color-lumiere);
  margin-block-end: 0;
}

.avis-rating-card__breakdown {
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
  padding-block-start: var(--space-sm);
  border-block-start: 1px solid var(--color-metal-light);
}

.avis-rating-card__breakdown-item {
  font-size: var(--text-caption);
  line-height: var(--leading-caption);
  color: var(--color-lumiere);
}

.avis-rating-card__verified {
  font-size: var(--text-caption);
  line-height: var(--leading-caption);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--color-signal);
  font-weight: 700;
  margin-block-start: var(--space-xs);
  margin-block-end: 0;
}

/* ===== En-têtes de section ===== */
.avis-section__header {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-xs);
  margin-block-end: var(--space-lg);
}

.avis-section__header--tight {
  margin-block-end: var(--space-md);
}

.avis-section__intro {
  font-size: var(--text-body);
  line-height: var(--leading-body);
  color: var(--color-lumiere);
  margin-block-end: 0;
}

/* ===== Grilles de cartes d'avis ===== */
.avis-card-grid {
  display: grid;
  gap: var(--space-lg);
  width: 100%;
  min-width: 0;
}

.avis-card-grid--3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.avis-card {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  padding: var(--space-lg);
  background-color: var(--color-metal);
  border: 1px solid var(--color-metal-light);
  border-radius: var(--radius-sharp);
  box-shadow: var(--surface-shadow);
}

.avis-card--poker {
  border-color: var(--color-signal);
}

.avis-card__stars {
  font-size: var(--text-caption);
  line-height: 1;
  color: var(--color-signal);
  letter-spacing: 0.1em;
}

.avis-card__quote {
  font-size: var(--text-body);
  line-height: var(--leading-body);
  color: var(--color-lumiere);
  margin-block-end: 0;
  padding-inline-start: 0;
  border-inline-start: none;
  font-style: normal;
}

.avis-card__meta {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: baseline;
  gap: var(--space-xs);
  padding-block-start: var(--space-sm);
  border-block-start: 1px solid var(--color-metal-light);
}

.avis-card__author {
  font-size: var(--text-caption);
  line-height: var(--leading-caption);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-weight: 700;
  color: var(--color-signal);
}

.avis-card__date {
  font-size: var(--text-caption);
  line-height: var(--leading-caption);
  color: var(--color-lumiere);
}

/* ===== Témoignages vidéo ===== */
.avis-video-section {
  background-color: var(--color-noir);
  border-block-start: 1px solid var(--color-metal-light);
  border-block-end: 1px solid var(--color-metal-light);
}

.avis-video-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-lg);
  width: 100%;
  min-width: 0;
}

.avis-video-card {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  padding: var(--space-lg);
  background-color: var(--color-metal);
  border: 1px solid var(--color-metal-light);
  border-radius: var(--radius-sharp);
  box-shadow: var(--surface-shadow);
}

.avis-video-card__thumb {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  background-color: var(--color-noir);
  border: 1px solid var(--color-metal-light);
  border-radius: var(--radius-sharp);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: border-color var(--transition-fast) var(--transition-timing);
}

.avis-video-card__thumb:hover,
.avis-video-card__thumb:focus-visible {
  border-color: var(--color-signal);
}

.avis-video-card__thumb:focus-visible {
  outline: var(--focus-outline);
  outline-offset: var(--focus-outline-offset);
}

.avis-video-card__play {
  width: 56px;
  height: 56px;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: var(--color-signal);
  color: var(--color-noir);
  font-size: 1.25rem;
  line-height: 1;
  border-radius: 50%;
}

.avis-video-card__body {
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
}

.avis-video-card__body h3 {
  margin-block-end: 0;
}

.avis-video-card__body p {
  margin-block-end: 0;
  font-size: var(--text-body);
  line-height: var(--leading-body);
  color: var(--color-lumiere);
}

.avis-video-card__duration {
  font-size: var(--text-caption);
  line-height: var(--leading-caption);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--color-signal);
}

/* ===== Citations marquantes ===== */
.avis-quotes-section {
  background-color: var(--color-noir);
}

.avis-quotes-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-md);
  max-width: 600px;
  margin-inline: auto;
  text-align: center;
}

.avis-quote {
  font-size: clamp(1.5rem, 1.1rem + 2vw, 2rem);
  line-height: 1.3;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--color-lumiere);
  text-align: center;
  margin-block-end: 0;
  padding-inline-start: 0;
  border-inline-start: none;
  font-style: normal;
}

.avis-quote__author {
  font-size: var(--text-caption);
  line-height: var(--leading-caption);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--color-signal);
  margin-block-end: 0;
}

/* ===== Résumé des points forts ===== */
.avis-highlights-card {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  padding: var(--space-lg);
  background-color: var(--color-metal);
  border: 1px solid var(--color-metal-light);
  border-radius: var(--radius-sharp);
  box-shadow: var(--surface-shadow);
}

.avis-highlights-card__intro {
  font-size: var(--text-body);
  line-height: var(--leading-body);
  color: var(--color-lumiere);
  margin-block-end: 0;
}

.avis-highlights-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-sm);
  margin-block-end: 0;
  padding-inline-start: 0;
  list-style: none;
}

.avis-highlights-list li {
  position: relative;
  padding-inline-start: var(--space-md);
  font-size: var(--text-body);
  line-height: var(--leading-body);
  color: var(--color-lumiere);
  margin-block-end: 0;
}

.avis-highlights-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.65em;
  width: 6px;
  height: 6px;
  background-color: var(--color-signal);
  border-radius: var(--radius-sharp);
}

/* ===== Appel à l'action final ===== */
.avis-cta-section {
  background-color: var(--color-noir);
  border-block-start: 4px solid var(--color-signal);
}

.avis-cta-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-md);
  max-width: 500px;
  margin-inline: auto;
  text-align: center;
}

.avis-cta__text {
  font-size: var(--text-body);
  line-height: var(--leading-body);
  color: var(--color-lumiere);
  margin-block-end: 0;
}

.avis-cta__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-md);
  width: 100%;
}

.avis-cta__actions .btn {
  min-width: 200px;
}

/* ===== Responsive ===== */
@media (max-width: 1024px) {
  .avis-intro__grid {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-lg);
  }

  .avis-rating-card {
    width: 100%;
  }

  .avis-card-grid--3 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .avis-video-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 768px) {
  .avis-page .section {
    padding-block: var(--space-xl);
  }

  .avis-page .section--tight {
    padding-block: var(--space-lg);
  }

  .avis-intro__grid {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-md);
  }

  .avis-intro__title-block {
    align-items: flex-start;
  }

  .avis-rating-card {
    padding: var(--space-md);
  }

  .avis-card-grid--3 {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-md);
  }

  .avis-video-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-md);
  }

  .avis-highlights-list {
    grid-template-columns: minmax(0, 1fr);
  }

  .avis-cta__actions {
    flex-direction: column;
    align-items: stretch;
  }

  .avis-cta__actions .btn {
    width: 100%;
    min-width: 0;
  }
}

@media (max-width: 480px) {
  .avis-page .section {
    padding-block: var(--space-xl);
  }

  .avis-page .section--tight {
    padding-block: var(--space-lg);
  }

  .avis-card {
    padding: var(--space-md);
  }

  .avis-video-card {
    padding: var(--space-md);
  }

  .avis-highlights-card {
    padding: var(--space-md);
  }

  .avis-quote {
    font-size: 1.5rem;
  }
}


/* ===== Page-owned styles for home page ===== */

.home-main {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

/* Section titles */
.home-section-title {
  font-size: clamp(1.25rem, 1rem + 1.5vw, var(--text-h2));
  line-height: var(--leading-h2);
  margin-block-end: var(--space-lg);
  color: var(--color-lumiere);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  position: relative;
  padding-block-end: var(--space-sm);
}

.home-section-title::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 48px;
  height: 4px;
  background-color: var(--color-signal);
}

/* ===== Hero Nocturne ===== */
.home-hero {
  position: relative;
  width: 100%;
  min-height: 90vh;
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
  background-color: var(--color-noir);
}

.home-hero__media {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.home-hero__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

.home-hero__overlay {
  position: absolute;
  inset: 0;
  background-color: rgba(17, 17, 19, 0.7);
}

.home-hero__panel {
  position: relative;
  z-index: 2;
  width: 40%;
  max-width: 500px;
  margin: 0 var(--space-lg) var(--space-lg) 0;
  background-color: var(--color-metal);
  border: 1px solid var(--color-metal-light);
  border-radius: var(--radius-sharp);
  box-shadow: var(--surface-shadow);
  padding: var(--space-lg);
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  animation: home-hero-panel-in 400ms ease-out both;
}

@keyframes home-hero-panel-in {
  from {
    opacity: 0;
    transform: translateY(12px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.home-hero__microline {
  font-size: var(--text-caption);
  line-height: var(--leading-caption);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--color-signal);
  margin: 0;
}

.home-hero__title {
  font-size: clamp(1.75rem, 1.2rem + 2.5vw, var(--text-display));
  line-height: var(--leading-display);
  max-width: 600px;
  color: var(--color-lumiere);
  margin: 0;
  letter-spacing: -0.02em;
}

.home-hero__intro {
  font-size: var(--text-body);
  line-height: var(--leading-body);
  max-width: 500px;
  color: var(--color-lumiere);
  margin: 0;
}

.home-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-sm);
  margin: 0;
}

.home-hero__actions .btn {
  flex-shrink: 1;
  min-width: 0;
}

/* ===== Manifeste Culinaire ===== */
.home-manifesto {
  background-color: var(--color-noir);
  border-block-start: 4px solid var(--color-signal);
}

.home-manifesto__container {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-lg);
  align-items: start;
}

.home-manifesto__content {
  grid-column: 1 / 9;
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  min-width: 0;
}

.home-manifesto__lead {
  max-width: 65%;
  margin: 0;
  color: var(--color-lumiere);
}

.home-manifesto__quote {
  max-width: 50%;
  margin: 0;
  padding-inline-start: var(--space-md);
  border-inline-start: 2px solid var(--color-signal);
  color: var(--color-lumiere);
  font-style: normal;
  font-weight: 700;
}

.home-manifesto__quote p {
  margin: 0;
}

.home-manifesto__pillars {
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
}

.home-manifesto__pillars li {
  margin: 0;
  padding-inline-start: var(--space-md);
  position: relative;
}

.home-manifesto__pillars li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.65em;
  width: 6px;
  height: 6px;
  background-color: var(--color-signal);
}

.home-manifesto__accent {
  grid-column: 9 / 13;
  height: 100%;
  min-height: 160px;
  background-image: repeating-linear-gradient(
    45deg,
    var(--color-signal) 0,
    var(--color-signal) 8px,
    var(--color-noir) 8px,
    var(--color-noir) 16px
  );
  background-size: 22.63px 22.63px;
  border: 1px solid var(--color-metal-light);
}

/* ===== Soirées Poker ===== */
.home-poker {
  background-color: var(--color-metal);
  border-block-start: 1px solid var(--color-metal-light);
}

.home-poker__container {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-lg);
  align-items: center;
}

.home-poker__content {
  grid-column: 1 / 8;
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  min-width: 0;
}

.home-poker__lead {
  max-width: 60%;
  margin: 0;
  color: var(--color-lumiere);
}

.home-poker__points {
  max-width: 50%;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
}

.home-poker__points li {
  margin: 0;
  padding-inline-start: var(--space-md);
  position: relative;
}

.home-poker__points li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.65em;
  width: 6px;
  height: 6px;
  background-color: var(--color-signal);
}

.home-poker__media {
  grid-column: 8 / 13;
  min-width: 0;
  border: 1px solid var(--color-metal-light);
  background-color: var(--color-noir);
}

.home-poker__image {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
}

/* ===== L'Univers du Restaurant ===== */
.home-universe {
  background-color: var(--color-noir);
  border-block-start: 1px solid var(--color-metal-light);
}

.home-universe__container {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-lg);
}

.home-universe__content {
  grid-column: 1 / 9;
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  min-width: 0;
}

.home-universe__lead {
  max-width: 70%;
  margin: 0;
  color: var(--color-lumiere);
}

.home-universe__spaces {
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
}

.home-universe__spaces li {
  margin: 0;
  padding-inline-start: var(--space-md);
  position: relative;
}

.home-universe__spaces li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.65em;
  width: 6px;
  height: 6px;
  background-color: var(--color-signal);
}

/* ===== Plats Signature ===== */
.home-signatures {
  background-color: var(--color-metal);
  border-block-start: 1px solid var(--color-metal-light);
}

.home-signatures__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-lg);
  margin: 0;
}

.home-signature-card {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 0;
  overflow: hidden;
  min-width: 0;
  border-radius: var(--radius-sharp);
  background-color: var(--color-metal);
  border: 1px solid var(--color-metal-light);
  transition: border-color var(--transition-fast) var(--transition-timing),
    box-shadow var(--transition-fast) var(--transition-timing);
}

.home-signature-card:hover {
  border-color: var(--color-signal);
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);
}

.home-signature-card__media {
  width: 100%;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background-color: var(--color-noir);
}

.home-signature-card__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform var(--transition-fast) var(--transition-timing);
}

.home-signature-card:hover .home-signature-card__image {
  transform: scale(1.03);
}

.home-signature-card__body {
  padding: var(--space-md);
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}

.home-signature-card__title {
  font-size: var(--text-h3);
  line-height: var(--leading-h3);
  margin: 0;
  color: var(--color-lumiere);
}

.home-signature-card__text {
  font-size: var(--text-body);
  line-height: var(--leading-body);
  margin: 0;
  color: var(--color-lumiere);
}

/* ===== Témoignages Clients ===== */
.home-testimonials {
  background-color: var(--color-noir);
  border-block-start: 1px solid var(--color-metal-light);
}

.home-testimonials__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-lg);
  margin: 0;
}

.home-testimonial {
  margin: 0;
  padding: var(--space-md);
  background-color: var(--color-metal);
  border: 1px solid var(--color-metal-light);
  border-inline-start: 4px solid var(--color-signal);
  border-radius: var(--radius-sharp);
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  min-width: 0;
}

.home-testimonial p {
  margin: 0;
  max-width: 300px;
  color: var(--color-lumiere);
  font-style: normal;
}

.home-testimonial__meta {
  font-size: var(--text-caption);
  line-height: var(--leading-caption);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--color-signal);
  margin: 0;
}

/* ===== Galerie d'Ambiance ===== */
.home-gallery {
  background-color: var(--color-metal);
  border-block-start: 1px solid var(--color-metal-light);
}

.home-gallery__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-lg);
  margin: 0;
}

.home-gallery__item {
  margin: 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
}

.home-gallery__media {
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border: 1px solid var(--color-metal-light);
  background-color: var(--color-noir);
}

.home-gallery__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform var(--transition-fast) var(--transition-timing);
}

.home-gallery__item:hover .home-gallery__image {
  transform: scale(1.03);
}

.home-gallery__caption {
  font-size: var(--text-caption);
  line-height: var(--leading-caption);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--color-lumiere);
  margin: 0;
  text-align: left;
}

/* ===== Appel à l'Action Final ===== */
.home-final-cta {
  background-color: var(--color-noir);
  border-block-start: 4px solid var(--color-signal);
}

.home-final-cta__container {
  display: flex;
  justify-content: center;
  width: 100%;
}

.home-final-cta__content {
  width: 100%;
  max-width: 600px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-md);
  text-align: center;
}

.home-final-cta__text {
  max-width: 50%;
  margin: 0 auto;
  color: var(--color-lumiere);
}

.home-final-cta__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-sm);
  margin: 0;
}

.home-final-cta__actions .btn {
  flex-shrink: 1;
  min-width: 0;
}

.home-final-cta .home-section-title::after {
  left: 50%;
  transform: translateX(-50%);
}

/* ===== Responsive: Tablet ===== */
@media (max-width: 1024px) {
  .home-hero__panel {
    width: 55%;
    max-width: 480px;
  }

  .home-manifesto__lead {
    max-width: 80%;
  }

  .home-manifesto__quote {
    max-width: 70%;
  }

  .home-poker__lead {
    max-width: 80%;
  }

  .home-poker__points {
    max-width: 70%;
  }

  .home-universe__lead {
    max-width: 85%;
  }

  .home-final-cta__text {
    max-width: 70%;
  }
}

@media (max-width: 900px) {
  .home-hero {
    min-height: auto;
    flex-direction: column;
    align-items: stretch;
  }

  .home-hero__media {
    position: relative;
    height: 80vh;
    min-height: 420px;
  }

  .home-hero__panel {
    position: relative;
    width: calc(100% - 2 * var(--space-md));
    max-width: none;
    margin: var(--space-md);
    align-self: flex-start;
  }

  .home-manifesto__container,
  .home-poker__container,
  .home-universe__container {
    grid-template-columns: 1fr;
    gap: var(--space-lg);
  }

  .home-manifesto__content,
  .home-manifesto__accent,
  .home-poker__content,
  .home-poker__media,
  .home-universe__content {
    grid-column: 1 / -1;
  }

  .home-manifesto__accent {
    min-height: 80px;
  }

  .home-signatures__grid,
  .home-testimonials__grid,
  .home-gallery__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .home-hero__media {
    height: 70vh;
    min-height: 360px;
  }

  .home-hero__panel {
    width: calc(100% - 2 * var(--space-sm));
    margin: var(--space-sm);
    padding: var(--space-md);
  }

  .home-hero__title {
    font-size: clamp(1.75rem, 1.2rem + 2.5vw, 2.25rem);
  }

  .home-manifesto__lead,
  .home-manifesto__quote,
  .home-poker__lead,
  .home-poker__points,
  .home-universe__lead,
  .home-final-cta__text {
    max-width: 100%;
  }

  .home-signatures__grid,
  .home-testimonials__grid,
  .home-gallery__grid {
    grid-template-columns: 1fr;
  }

  .home-testimonial p {
    max-width: 100%;
  }

  .home-final-cta__content {
    align-items: flex-start;
    text-align: left;
  }

  .home-final-cta .home-section-title::after {
    left: 0;
    transform: none;
  }

  .home-final-cta__actions {
    justify-content: flex-start;
  }
}

@media (max-width: 480px) {
  .home-hero__actions,
  .home-final-cta__actions {
    flex-direction: column;
    align-items: stretch;
    width: 100%;
  }

  .home-hero__actions .btn,
  .home-final-cta__actions .btn {
    width: 100%;
    justify-content: center;
  }
}

@media (prefers-reduced-motion: reduce) {
  .home-hero__panel {
    animation: none;
  }

  .home-signature-card__image,
  .home-gallery__image {
    transition: none;
  }
}


/* Page-owned styles for Soirées Poker */

.soirees-poker-page {
  background-color: var(--color-noir);
  color: var(--color-lumiere);
}

.section-label {
  font-size: var(--text-caption);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--color-signal);
  margin-block-end: var(--space-sm);
  font-weight: 700;
}

/* Héros */
.poker-hero {
  position: relative;
  min-height: 100vh;
  display: flex;
  align-items: center;
  overflow: hidden;
  background-color: var(--color-noir);
}

.poker-hero__media {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.poker-hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  filter: grayscale(0.7) contrast(1.1) brightness(0.55);
}

.poker-hero__content {
  position: relative;
  z-index: 1;
  max-width: 600px;
  padding: var(--space-xl) var(--container-padding);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-md);
}

.poker-hero__label {
  font-size: var(--text-caption);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--color-signal);
  margin: 0;
}

.poker-hero__content h1 {
  font-size: clamp(2rem, 1.2rem + 4vw, var(--text-display));
  line-height: var(--leading-display);
  margin: 0;
  max-width: 70%;
  color: var(--color-lumiere);
}

.poker-hero__subtitle {
  font-size: var(--text-body);
  line-height: var(--leading-body);
  max-width: 50ch;
  margin: 0;
}

/* Le Concept */
.poker-concept__grid {
  display: grid;
  grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
  gap: var(--space-lg);
  align-items: stretch;
}

.poker-concept__text {
  padding: var(--space-lg);
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.poker-concept__text p,
.poker-concept__text blockquote {
  max-width: 70ch;
}

.poker-concept__lead {
  font-weight: 700;
  margin: 0;
}

.poker-concept__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
}

.poker-concept__list li {
  position: relative;
  padding-inline-start: var(--space-md);
  max-width: 50ch;
}

.poker-concept__quote {
  border-inline-start: 2px solid var(--color-signal);
  padding-inline-start: var(--space-md);
  margin: 0;
  max-width: 60ch;
}

.poker-concept__media {
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
}

.poker-concept__media img {
  width: 100%;
  height: 100%;
  min-height: 300px;
  object-fit: cover;
  object-position: center;
  filter: grayscale(0.6) contrast(1.05) brightness(0.8);
}

/* Déroulement */
.poker-timeline__inner {
  max-width: 600px;
  margin-inline: auto;
  padding-inline: var(--container-padding);
}

.poker-timeline__intro {
  max-width: 60ch;
  margin-block-end: var(--space-lg);
}

.poker-timeline__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  position: relative;
}

.poker-timeline__list::before {
  content: "";
  position: absolute;
  left: 7px;
  top: 0;
  bottom: 0;
  width: 2px;
  background-color: var(--color-metal-light);
}

.poker-timeline__list li {
  position: relative;
  padding-inline-start: var(--space-xl);
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
  max-width: 60ch;
}

.poker-timeline__list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.35em;
  width: 14px;
  height: 14px;
  background-color: var(--color-signal);
  border-radius: 50%;
  border: 2px solid var(--color-noir);
  z-index: 1;
}

.poker-timeline__time {
  font-weight: 700;
  color: var(--color-signal);
  font-size: var(--text-caption);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

/* Prochaines Dates */
.poker-dates__intro {
  max-width: 70ch;
  margin-block-end: var(--space-lg);
}

.poker-dates__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-md);
}

.poker-date-card {
  padding: var(--space-md);
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  min-width: 0;
  border-inline-start: 4px solid var(--color-signal);
}

.poker-date-card__day,
.poker-date-card__date,
.poker-date-card__type {
  margin: 0;
}

.poker-date-card__day {
  font-size: var(--text-caption);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--color-lumiere);
}

.poker-date-card__date {
  font-size: var(--text-h2);
  font-weight: 700;
  line-height: var(--leading-h2);
  color: var(--color-lumiere);
}

.poker-date-card__type {
  font-size: var(--text-body);
  font-weight: 400;
  color: var(--color-lumiere);
}

.poker-date-card .btn {
  align-self: flex-start;
  margin-block-start: auto;
}

/* Ateliers d'Initiation */
.poker-workshops {
  background-color: var(--color-noir);
}

.poker-workshops__grid {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 3fr);
  gap: var(--space-lg);
  align-items: start;
}

.poker-workshops__text {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.poker-workshops__text p {
  max-width: 70ch;
}

.poker-workshops__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
}

.poker-workshops__list li {
  position: relative;
  padding-inline-start: var(--space-md);
  max-width: 60ch;
}

.poker-workshops__aside {
  padding: var(--space-md);
  border-color: var(--color-signal);
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}

.poker-workshops__aside h3 {
  margin: 0;
}

.poker-workshops__aside p {
  margin: 0;
}

/* Règles et Étiquette */
.poker-rules__inner {
  max-width: 700px;
  margin-inline: auto;
  padding-inline: var(--container-padding);
}

.poker-rules__card {
  padding: var(--space-lg);
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  border-color: var(--color-metal-light);
  border-inline-start: 4px solid #8B0000;
}

.poker-rules__card p {
  max-width: 60ch;
}

.poker-rules__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  counter-reset: rule-counter;
}

.poker-rules__list li {
  position: relative;
  padding-inline-start: var(--space-xl);
  counter-increment: rule-counter;
  max-width: 60ch;
}

.poker-rules__list li::before {
  content: counter(rule-counter);
  position: absolute;
  left: 0;
  top: 0;
  font-weight: 700;
  color: var(--color-signal);
  font-size: var(--text-caption);
  line-height: var(--leading-body);
}

/* Formules Repas et Boissons */
.poker-formulas__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-md);
}

.poker-formula-card {
  padding: var(--space-md);
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  min-width: 0;
}

.poker-formula-card h3 {
  margin: 0;
  max-width: 20ch;
}

.poker-formula-card p {
  margin: 0;
  max-width: 50ch;
}

.poker-formula-card ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
}

.poker-formula-card li {
  position: relative;
  padding-inline-start: var(--space-md);
  max-width: 40ch;
}

.poker-formula-card--featured {
  border-color: var(--color-signal);
}

/* L'Espace et l'Ambiance */
.poker-space__inner {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.poker-space__inner p {
  max-width: 70ch;
}

.poker-space__media {
  margin: 0;
  width: 100%;
}

.poker-space__media img {
  width: 100%;
  height: 400px;
  object-fit: cover;
  object-position: center;
  filter: grayscale(0.6) contrast(1.05) brightness(0.8);
}

/* Témoignages */
.poker-testimonials__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-md);
}

.poker-testimonial {
  margin: 0;
  padding: var(--space-md);
  border-inline-start: 2px solid var(--color-signal);
  background-color: var(--color-metal);
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  min-width: 0;
}

.poker-testimonial p {
  margin: 0;
  max-width: 50ch;
}

.poker-testimonial footer {
  font-size: var(--text-caption);
  color: var(--color-signal);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

/* Réservation */
.poker-reservation__inner {
  max-width: 600px;
  margin-inline: auto;
  padding-inline: var(--container-padding);
}

.poker-reservation__card {
  padding: var(--space-lg);
  border-color: var(--color-signal);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: var(--space-md);
  position: relative;
}

.poker-reservation__card::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 8px;
  background-image: repeating-linear-gradient(
    45deg,
    var(--color-signal) 0,
    var(--color-signal) 8px,
    var(--color-noir) 8px,
    var(--color-noir) 16px
  );
  background-size: 22.63px 22.63px;
}

.poker-reservation__card p {
  max-width: 60ch;
  margin: 0;
}

.poker-reservation__contacts {
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
}

.poker-reservation__contacts a {
  color: var(--color-signal);
}

.poker-reservation__contacts a:hover {
  color: var(--color-lumiere);
}

/* Responsive */
@media (max-width: 1024px) {
  .poker-dates__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .poker-concept__grid {
    grid-template-columns: 1fr;
  }

  .poker-concept__media img {
    min-height: 250px;
  }

  .poker-workshops__grid {
    grid-template-columns: 1fr;
  }

  .poker-formulas__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .poker-testimonials__grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 768px) {
  .poker-hero {
    min-height: 70vh;
  }

  .poker-hero__content {
    padding: var(--space-lg) var(--container-padding);
    max-width: 100%;
  }

  .poker-hero__content h1 {
    max-width: 100%;
    font-size: clamp(1.75rem, 1.2rem + 3vw, 2.25rem);
  }

  .poker-hero__subtitle {
    font-size: 0.9rem;
  }

  .poker-concept__text,
  .poker-rules__card,
  .poker-reservation__card {
    padding: var(--space-md);
  }

  .poker-dates__grid,
  .poker-formulas__grid {
    grid-template-columns: 1fr;
  }

  .poker-space__media img {
    height: 250px;
  }
}

@media (max-width: 480px) {
  .poker-hero__content {
    gap: var(--space-sm);
  }

  .poker-hero__content h1 {
    font-size: 1.75rem;
  }

  .poker-timeline__list li,
  .poker-rules__list li {
    padding-inline-start: var(--space-lg);
  }

  .poker-timeline__list::before {
    left: 5px;
  }

  .poker-timeline__list li::before {
    width: 12px;
    height: 12px;
    left: 0;
  }

  .poker-reservation__card {
    padding: var(--space-md);
  }
}

@media (prefers-reduced-motion: reduce) {
  .btn--pulse {
    animation: none;
  }
}


/* Page-owned styles for Notre Univers */

.notre-univers-main {
  background-color: var(--color-noir);
  color: var(--color-lumiere);
  overflow-x: hidden;
  width: 100%;
  max-width: 100%;
}

/* Section title base */
.nu-section-title {
  font-size: var(--text-h2);
  line-height: var(--leading-h2);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-block-end: var(--space-md);
  color: var(--color-lumiere);
}

/* Hero */
.nu-hero {
  padding-block: var(--space-xxl);
  background-color: var(--color-noir);
}

.nu-hero__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-lg);
  align-items: center;
}

.nu-hero__text {
  grid-column: 1 / span 6;
  position: relative;
  padding-inline-start: var(--space-lg);
  min-width: 0;
}

.nu-hero__accent {
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 4px;
  background-color: var(--color-signal);
}

.nu-hero__title {
  font-size: clamp(2rem, 1.2rem + 3.5vw, var(--text-display));
  line-height: var(--leading-display);
  font-weight: 700;
  letter-spacing: -0.02em;
  margin-block-end: var(--space-md);
  color: var(--color-lumiere);
  max-width: 100%;
}

.nu-hero__lead {
  max-width: 65ch;
  margin-block-end: var(--space-lg);
  font-size: var(--text-body);
  line-height: var(--leading-body);
  color: var(--color-lumiere);
}

.nu-hero__cta {
  display: inline-flex;
  min-width: 0;
}

.nu-hero__media {
  grid-column: 7 / span 6;
  min-width: 0;
  overflow: hidden;
  border-radius: var(--radius-sharp);
  background-color: var(--color-metal);
}

.nu-hero__image {
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  display: block;
  transition: transform var(--transition-fast) var(--transition-timing);
}

.nu-hero__media:hover .nu-hero__image {
  transform: scale(1.05);
}

/* Philosophie */
.nu-philosophie {
  padding-block: var(--space-xxl);
  background-color: var(--color-noir);
}

.nu-philosophie__container {
  max-width: 800px;
  margin-inline: auto;
  padding-inline: var(--container-padding);
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.nu-philosophie__divider,
.nu-espace__divider,
.nu-cuisine__divider,
.nu-poker__divider,
.nu-equipe__divider,
.nu-galerie__divider {
  width: 100%;
  height: 2px;
  background-color: var(--color-signal);
  margin-block-end: var(--space-lg);
}

.nu-philosophie__content {
  display: flex;
  flex-direction: column;
  gap: var(--space-lg);
  max-width: 70ch;
  align-self: flex-start;
}

.nu-philosophie__content p {
  max-width: 70ch;
  margin-block-end: 0;
}

/* Espace */
.nu-espace {
  padding-block: var(--space-xxl);
  background-color: var(--color-noir);
}

.nu-espace__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-lg);
  align-items: start;
}

.nu-espace__text {
  grid-column: 1 / span 5;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.nu-espace__text p {
  max-width: 65ch;
  margin-block-end: 0;
}

.nu-espace__media {
  grid-column: 6 / span 7;
  min-width: 0;
  overflow: hidden;
  border-radius: var(--radius-sharp);
  background-color: var(--color-metal);
}

.nu-espace__image {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
  transition: transform var(--transition-fast) var(--transition-timing);
}

.nu-espace__media:hover .nu-espace__image {
  transform: scale(1.03);
}

/* Cuisine */
.nu-cuisine {
  padding-block: var(--space-xxl);
  background-color: var(--color-noir);
}

.nu-cuisine__figure {
  margin-block-end: 0;
  width: 100%;
  max-width: 1200px;
  margin-inline: auto;
}

.nu-cuisine__media {
  width: 100%;
  overflow: hidden;
  border-radius: var(--radius-sharp);
  background-color: var(--color-metal);
}

.nu-cuisine__image {
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  display: block;
}

.nu-cuisine__caption {
  max-width: 50ch;
  font-size: var(--text-caption);
  line-height: var(--leading-caption);
  color: rgba(241, 241, 241, 0.8);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-block-start: var(--space-sm);
  padding-inline-start: var(--space-md);
  border-inline-start: 2px solid var(--color-signal);
}

/* Poker */
.nu-poker {
  padding-block: var(--space-xxl);
  background-color: var(--color-metal);
  position: relative;
}

.nu-poker__hazard {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 8px;
  background-image: repeating-linear-gradient(
    45deg,
    var(--color-signal) 0,
    var(--color-signal) 8px,
    var(--color-noir) 8px,
    var(--color-noir) 16px
  );
  background-size: 22.63px 22.63px;
}

.nu-poker__container {
  max-width: 800px;
  margin-inline: auto;
  padding-inline: var(--container-padding);
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  align-items: flex-start;
}

.nu-poker__content {
  display: flex;
  flex-direction: column;
  gap: var(--space-lg);
  max-width: 70ch;
}

.nu-poker__content p {
  max-width: 70ch;
  margin-block-end: 0;
}

.nu-poker__cta {
  display: inline-flex;
  min-width: 0;
}

/* Citation */
.nu-citation {
  padding-block: var(--space-xxl);
  background-color: var(--color-noir);
}

.nu-citation__container {
  max-width: 700px;
  margin-inline: auto;
  padding-inline: var(--container-padding);
  position: relative;
  padding-inline-start: calc(var(--container-padding) + var(--space-lg));
}

.nu-citation__accent {
  position: absolute;
  left: var(--container-padding);
  top: 0;
  bottom: 0;
  width: 4px;
  background-color: var(--color-signal);
}

.nu-citation__block {
  margin-block-end: 0;
  padding-inline-start: 0;
  border-inline-start: none;
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.nu-citation__text {
  font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem);
  line-height: var(--leading-display);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--color-lumiere);
  max-width: 50ch;
  margin-block-end: 0;
}

.nu-citation__attribution {
  font-size: var(--text-caption);
  line-height: var(--leading-caption);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--color-signal);
}

/* Équipe */
.nu-equipe {
  padding-block: var(--space-xxl);
  background-color: var(--color-noir);
}

.nu-equipe__container {
  max-width: 800px;
  margin-inline: auto;
  padding-inline: var(--container-padding);
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.nu-equipe__content {
  display: flex;
  flex-direction: column;
  gap: var(--space-lg);
  max-width: 70ch;
  align-self: flex-start;
}

.nu-equipe__content p {
  max-width: 70ch;
  margin-block-end: 0;
}

/* Galerie */
.nu-galerie {
  padding-block: var(--space-xxl);
  background-color: var(--color-noir);
}

.nu-galerie__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-lg);
  align-items: start;
}

.nu-galerie__media {
  grid-column: 1 / span 5;
  min-width: 0;
  overflow: hidden;
  border-radius: var(--radius-sharp);
  background-color: var(--color-metal);
}

.nu-galerie__image {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  display: block;
}

.nu-galerie__text {
  grid-column: 6 / span 7;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.nu-galerie__text p {
  max-width: 50ch;
  margin-block-end: 0;
}

/* CTA final */
.nu-cta {
  padding-block: var(--space-xxl);
  background-color: var(--color-metal);
  position: relative;
}

.nu-cta__hazard {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 8px;
  background-image: repeating-linear-gradient(
    45deg,
    var(--color-signal) 0,
    var(--color-signal) 8px,
    var(--color-noir) 8px,
    var(--color-noir) 16px
  );
  background-size: 22.63px 22.63px;
}

.nu-cta__container {
  max-width: 800px;
  margin-inline: auto;
  padding-inline: var(--container-padding);
  display: flex;
  flex-direction: column;
  gap: var(--space-lg);
  align-items: flex-start;
}

.nu-cta__title {
  font-size: var(--text-h2);
  line-height: var(--leading-h2);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-block-end: 0;
  max-width: 60ch;
}

.nu-cta__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-md);
  align-items: center;
  min-width: 0;
}

.nu-cta__btn {
  display: inline-flex;
  min-width: 0;
}

/* Tablet breakpoint */
@media (max-width: 900px) {
  .nu-hero__grid,
  .nu-espace__grid,
  .nu-galerie__grid {
    grid-template-columns: 1fr;
    gap: var(--space-lg);
  }

  .nu-hero__text,
  .nu-hero__media,
  .nu-espace__text,
  .nu-espace__media,
  .nu-galerie__media,
  .nu-galerie__text {
    grid-column: 1 / -1;
    width: 100%;
  }

  .nu-hero__text {
    padding-inline-start: var(--space-lg);
  }

  .nu-hero__accent {
    height: 2px;
    width: 100%;
    top: auto;
    bottom: -8px;
    left: 0;
  }

  .nu-hero__media {
    order: 2;
  }

  .nu-hero__text {
    order: 1;
  }

  .nu-espace__text,
  .nu-galerie__text {
    order: 1;
  }

  .nu-espace__media,
  .nu-galerie__media {
    order: 2;
  }

  .nu-citation__container {
    padding-inline-start: calc(var(--container-padding) + var(--space-md));
  }

  .nu-citation__accent {
    left: var(--container-padding);
  }
}

/* Mobile breakpoint */
@media (max-width: 600px) {
  .nu-hero,
  .nu-philosophie,
  .nu-espace,
  .nu-cuisine,
  .nu-poker,
  .nu-citation,
  .nu-equipe,
  .nu-galerie,
  .nu-cta {
    padding-block: var(--space-xl);
  }

  .nu-hero__title {
    font-size: 2rem;
    line-height: var(--leading-h1);
  }

  .nu-hero__lead,
  .nu-philosophie__content p,
  .nu-espace__text p,
  .nu-poker__content p,
  .nu-equipe__content p,
  .nu-galerie__text p {
    max-width: 100%;
  }

  .nu-hero__accent {
    height: 2px;
    width: 100%;
    top: auto;
    bottom: -8px;
    left: 0;
  }

  .nu-hero__text {
    padding-inline-start: 0;
  }

  .nu-hero__image,
  .nu-espace__image,
  .nu-cuisine__image,
  .nu-galerie__image {
    aspect-ratio: 16 / 9;
  }

  .nu-espace__image {
    aspect-ratio: 4 / 3;
  }

  .nu-galerie__image {
    aspect-ratio: 4 / 5;
  }

  .nu-cuisine__figure {
    max-width: 100%;
  }

  .nu-cuisine__caption {
    max-width: 100%;
    padding-inline-start: var(--space-sm);
  }

  .nu-poker__hazard,
  .nu-cta__hazard {
    height: 4px;
    background-size: 11.31px 11.31px;
  }

  .nu-poker__cta,
  .nu-cta__btn {
    width: 100%;
    justify-content: center;
  }

  .nu-cta__actions {
    flex-direction: column;
    align-items: stretch;
    width: 100%;
  }

  .nu-citation__container {
    padding-inline-start: var(--container-padding);
    padding-block-start: var(--space-md);
  }

  .nu-citation__accent {
    position: static;
    width: 100%;
    height: 2px;
    margin-block-end: var(--space-md);
  }

  .nu-citation__block {
    gap: var(--space-sm);
  }

  .nu-citation__text {
    font-size: 1.5rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .nu-hero__image,
  .nu-espace__image {
    transition: none;
  }

  .nu-hero__media:hover .nu-hero__image,
  .nu-espace__media:hover .nu-espace__image {
    transform: none;
  }

  .btn--pulse {
    animation: none;
  }
}


.thank-you-main {
    padding-block: var(--space-xxl);
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: calc(100vh - var(--header-height) - var(--footer-height, 0px));
}

.thank-you-content {
    max-width: 600px;
    margin-inline: auto;
    text-align: center;
    display: flex;
    flex-direction: column;
    gap: var(--space-md);
}

.thank-you-title {
    font-size: var(--text-display);
    line-height: var(--leading-display);
    margin-block-end: 0;
}

.thank-you-message,
.thank-you-next {
    margin-block-end: 0;
}

.thank-you-actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-sm);
    justify-content: center;
    margin-block-start: var(--space-sm);
}

@media (max-width: 768px) {
    .thank-you-main {
        padding-block: var(--space-xl);
    }

    .thank-you-title {
        font-size: var(--text-h1);
        line-height: var(--leading-h1);
    }
}

@media (max-width: 480px) {
    .thank-you-main {
        padding-block: var(--space-lg);
    }

    .thank-you-content {
        gap: var(--space-sm);
    }

    .thank-you-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .thank-you-actions .btn {
        width: 100%;
    }
}