

:root {
  --color-charcoal-900: #14161A;
  --color-charcoal-800: #1C1F24;
  --color-charcoal-700: #2A2E35;
  --color-green-900: #12352A;
  --color-green-700: #1E5C46;
  --color-wood-600: #6B4A2F;
  --color-burgundy-700: #6E1F2B;
  --color-brass-400: #C9A227;
  --color-cream-100: #F4EFE6;
  --color-cream-300: #C9C2B4;
  --color-ink-900: #17191D;
  --color-focus-brass: #E0B93A;
  --color-brass-400-60: rgba(201, 162, 39, 0.6);
  --color-border-dark: #2A2E35;
  --color-border-light: rgba(23, 25, 29, 0.12);
  --color-border-light-input: rgba(23, 25, 29, 0.2);
  --color-overlay-charcoal: rgba(20, 22, 26, 0.35);
  --color-shadow-soft: 0 12px 32px rgba(0, 0, 0, 0.35);
  --font-heading: 'Cormorant Garamond', 'Times New Roman', serif;
  --font-body: 'Inter', 'Helvetica Neue', Arial, sans-serif;
  --text-display-desktop: 64px;
  --text-display-mobile: 40px;
  --text-h1-desktop: 48px;
  --text-h1-mobile: 34px;
  --text-h2-desktop: 34px;
  --text-h2-mobile: 26px;
  --text-h3-desktop: 24px;
  --text-h3-mobile: 20px;
  --text-h4: 19px;
  --text-body-large: 18px;
  --text-body: 16px;
  --text-small: 14px;
  --text-caption: 13px;
  --text-eyebrow: 12px;
  --leading-display-desktop: 1.05;
  --leading-display-mobile: 1.1;
  --leading-h1-desktop: 1.1;
  --leading-h1-mobile: 1.15;
  --leading-h2-desktop: 1.2;
  --leading-h2-mobile: 1.25;
  --leading-h3-desktop: 1.3;
  --leading-h3-mobile: 1.35;
  --leading-h4: 1.35;
  --leading-body-large: 1.7;
  --leading-body: 1.7;
  --leading-body-mobile: 1.75;
  --leading-small: 1.6;
  --leading-caption: 1.5;
  --leading-eyebrow: 1.4;
  --tracking-display: -0.01em;
  --tracking-h1: -0.01em;
  --tracking-eyebrow: 0.14em;
  --space-4: 4px;
  --space-8: 8px;
  --space-12: 12px;
  --space-16: 16px;
  --space-24: 24px;
  --space-32: 32px;
  --space-48: 48px;
  --space-64: 64px;
  --space-96: 96px;
  --space-128: 128px;
  --space-160: 160px;
  --container-max: 1200px;
  --container-text-max: 720px;
  --gutter-mobile: 20px;
  --gutter-tablet: 32px;
  --gutter-desktop: 48px;
  --radius-0: 0px;
  --radius-2: 2px;
  --radius-4: 4px;
  --radius-round: 999px;
  --transition-fast: 180ms ease-out;
  --transition-menu: 200ms ease-out;
  --focus-ring: 2px solid var(--color-focus-brass);
  --focus-offset: 2px;
}

*,
*::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;
}

body {
  min-height: 100vh;
  background-color: var(--color-charcoal-900);
  color: var(--color-cream-100);
  font-family: var(--font-body);
  font-size: var(--text-body);
  font-weight: 400;
  line-height: var(--leading-body);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

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

input,
button,
textarea,
select {
  font: inherit;
  color: inherit;
}

button {
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
}

a {
  color: inherit;
  text-decoration: none;
}

ul,
ol {
  list-style: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: var(--font-heading);
  font-weight: 500;
  color: var(--color-cream-100);
  line-height: var(--leading-h2-desktop);
}

h1 {
  font-size: var(--text-h1-desktop);
  line-height: var(--leading-h1-desktop);
  letter-spacing: var(--tracking-h1);
  margin-block-end: var(--space-24);
}

h2 {
  font-size: var(--text-h2-desktop);
  line-height: var(--leading-h2-desktop);
  margin-block-end: var(--space-16);
}

h3 {
  font-size: var(--text-h3-desktop);
  line-height: var(--leading-h3-desktop);
  margin-block-end: var(--space-12);
}

h4 {
  font-size: var(--text-h4);
  line-height: var(--leading-h4);
  margin-block-end: var(--space-8);
}

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

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

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

blockquote {
  margin-block-end: var(--space-16);
  padding-inline-start: var(--space-24);
  border-inline-start: 1px solid var(--color-brass-400-60);
  color: var(--color-cream-300);
  font-style: italic;
}

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

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

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

ul {
  list-style: disc;
}

ol {
  list-style: decimal;
}

li {
  line-height: var(--leading-body);
}

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

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

figcaption {
  font-size: var(--text-caption);
  line-height: var(--leading-caption);
  color: var(--color-cream-300);
  margin-block-start: var(--space-8);
}

address {
  font-style: normal;
}

hr {
  border: none;
  border-top: 1px solid var(--color-charcoal-700);
  margin-block: var(--space-32);
}

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

strong {
  font-weight: 500;
}

em {
  font-style: italic;
}

code,
pre {
  font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;
  font-size: var(--text-small);
}

pre {
  background-color: var(--color-charcoal-800);
  border: 1px solid var(--color-charcoal-700);
  border-radius: var(--radius-4);
  padding: var(--space-16);
  overflow-x: auto;
  margin-block-end: var(--space-16);
}

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

label {
  display: block;
  font-size: var(--text-body);
  font-weight: 500;
  line-height: var(--leading-body);
  margin-block-end: var(--space-8);
}

input,
textarea,
select {
  display: block;
  width: 100%;
  font-family: var(--font-body);
  font-size: var(--text-body);
  line-height: var(--leading-body);
  color: var(--color-ink-900);
  background-color: var(--color-cream-100);
  border: 1px solid var(--color-border-light-input);
  border-radius: var(--radius-2);
  padding: var(--space-12) var(--space-16);
  transition: border-color var(--transition-fast);
}

input:focus,
textarea:focus,
select:focus {
  outline: var(--focus-ring);
  outline-offset: var(--focus-offset);
  border-color: var(--color-focus-brass);
}

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

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' fill='none' stroke='%2317191D' stroke-width='1.5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right var(--space-16) center;
  padding-inline-end: var(--space-48);
}

::placeholder {
  color: var(--color-cream-300);
  opacity: 1;
}

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

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

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

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-body);
  font-size: var(--text-body);
  font-weight: 500;
  line-height: 1.4;
  border-radius: var(--radius-2);
  padding: var(--space-14, 14px) var(--space-20, 20px);
  min-height: 44px;
  transition: background-color var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast), opacity var(--transition-fast);
  cursor: pointer;
  text-align: center;
}

.btn-primary {
  background-color: var(--color-green-700);
  color: var(--color-cream-100);
  border: 1px solid var(--color-green-700);
}

.btn-primary:hover {
  background-color: var(--color-green-900);
  border-color: var(--color-green-900);
}

.btn-secondary {
  background-color: transparent;
  color: var(--color-brass-400);
  border: 1px solid var(--color-brass-400);
}

.btn-secondary:hover {
  background-color: var(--color-brass-400);
  color: var(--color-charcoal-900);
}

.btn-burgundy {
  background-color: var(--color-burgundy-700);
  color: var(--color-cream-100);
  border: 1px solid var(--color-burgundy-700);
}

.btn-burgundy:hover {
  background-color: #8A2A3A;
  border-color: #8A2A3A;
}

.eyebrow {
  display: block;
  font-family: var(--font-body);
  font-size: var(--text-eyebrow);
  font-weight: 500;
  line-height: var(--leading-eyebrow);
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-brass-400);
  margin-block-end: var(--space-12);
}

.surface-charcoal-800 {
  background-color: var(--color-charcoal-800);
}

.surface-green-900 {
  background-color: var(--color-green-900);
}

.surface-cream-100 {
  background-color: var(--color-cream-100);
  color: var(--color-ink-900);
}

.surface-cream-100 h1,
.surface-cream-100 h2,
.surface-cream-100 h3,
.surface-cream-100 h4,
.surface-cream-100 h5,
.surface-cream-100 h6 {
  color: var(--color-ink-900);
}

.surface-cream-100 p {
  color: var(--color-ink-900);
}

.surface-cream-100 .eyebrow {
  color: var(--color-brass-400);
}

.surface-cream-100 a {
  color: var(--color-ink-900);
}

.surface-cream-100 a:hover {
  color: var(--color-burgundy-700);
}

.surface-wood-600 {
  background-color: var(--color-wood-600);
  color: var(--color-cream-100);
}

.surface-wood-600 h1,
.surface-wood-600 h2,
.surface-wood-600 h3,
.surface-wood-600 h4,
.surface-wood-600 h5,
.surface-wood-600 h6 {
  color: var(--color-cream-100);
}

.rule-brass {
  border: none;
  border-top: 1px solid var(--color-brass-400-60);
  margin-block: var(--space-32);
}

.rule-dark {
  border: none;
  border-top: 1px solid var(--color-charcoal-700);
  margin-block: var(--space-32);
}

.rule-light {
  border: none;
  border-top: 1px solid var(--color-border-light);
  margin-block: var(--space-32);
}

.card {
  background-color: var(--color-charcoal-800);
  border: 1px solid var(--color-charcoal-700);
  border-radius: var(--radius-4);
  padding: var(--space-24);
}

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

.img-frame {
  border-radius: var(--radius-4);
  border: 1px solid var(--color-charcoal-700);
  overflow: hidden;
}

.img-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.tabular-nums {
  font-variant-numeric: tabular-nums;
}

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

@media (min-width: 768px) {
  .container {
    padding-inline: var(--gutter-tablet);
  }

  .container-text {
    padding-inline: var(--gutter-tablet);
  }

  h1 {
    font-size: var(--text-h1-desktop);
    line-height: var(--leading-h1-desktop);
  }

  h2 {
    font-size: var(--text-h2-desktop);
    line-height: var(--leading-h2-desktop);
  }

  h3 {
    font-size: var(--text-h3-desktop);
    line-height: var(--leading-h3-desktop);
  }

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

@media (min-width: 1024px) {
  .container {
    padding-inline: var(--gutter-desktop);
  }

  .container-text {
    padding-inline: var(--gutter-desktop);
  }
}

@media (max-width: 767px) {
  h1 {
    font-size: var(--text-h1-mobile);
    line-height: var(--leading-h1-mobile);
  }

  h2 {
    font-size: var(--text-h2-mobile);
    line-height: var(--leading-h2-mobile);
  }

  h3 {
    font-size: var(--text-h3-mobile);
    line-height: var(--leading-h3-mobile);
  }

  p {
    line-height: var(--leading-body-mobile);
  }

  body {
    line-height: var(--leading-body-mobile);
  }
}


.site-header {
  position: relative;
  z-index: 1000;
  background-color: var(--color-charcoal-900);
  border-bottom: 1px solid var(--color-charcoal-700);
}

.site-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 72px;
  padding-block: var(--space-12);
}

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

.site-header__logo {
  width: 36px;
  height: 36px;
  object-fit: contain;
  display: block;
}

.site-header__brand-text {
  font-family: var(--font-heading);
  font-size: 18px;
  font-weight: 500;
  letter-spacing: 0.02em;
  color: var(--color-cream-100);
  white-space: nowrap;
}

.site-header__toggle {
  display: none;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 5px;
  width: 44px;
  height: 44px;
  padding: 0;
  background: none;
  border: none;
  cursor: pointer;
  border-radius: var(--radius-2);
  transition: background-color var(--transition-fast);
}

.site-header__toggle:hover {
  background-color: var(--color-charcoal-800);
}

.site-header__toggle:focus-visible {
  outline: var(--focus-ring);
  outline-offset: var(--focus-offset);
}

.site-header__toggle-line {
  display: block;
  width: 24px;
  height: 2px;
  background-color: var(--color-brass-400);
  border-radius: 1px;
  transition: transform var(--transition-fast), opacity var(--transition-fast);
}

.site-header__toggle[aria-expanded="true"] .site-header__toggle-line:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}

.site-header__toggle[aria-expanded="true"] .site-header__toggle-line:nth-child(2) {
  opacity: 0;
}

.site-header__toggle[aria-expanded="true"] .site-header__toggle-line:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

.site-header__nav {
  display: flex;
  align-items: center;
}

.site-header__list {
  display: flex;
  align-items: center;
  gap: var(--space-32);
  margin: 0;
  padding: 0;
  list-style: none;
}

.site-header__item {
  margin: 0;
  padding: 0;
}

.site-header__link {
  display: inline-flex;
  align-items: center;
  font-family: var(--font-body);
  font-size: 15px;
  font-weight: 400;
  line-height: 1.4;
  color: var(--color-cream-300);
  text-decoration: none;
  padding-block: var(--space-8);
  border-bottom: 1px solid transparent;
  transition: color var(--transition-fast), border-color var(--transition-fast);
}

.site-header__link:hover {
  color: var(--color-cream-100);
  border-bottom-color: var(--color-brass-400);
}

.site-header__link:focus-visible {
  outline: var(--focus-ring);
  outline-offset: var(--focus-offset);
}

@media (max-width: 1023px) {
  .site-header__toggle {
    display: flex;
  }

  .site-header__nav {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background-color: var(--color-charcoal-900);
    border-bottom: 1px solid var(--color-charcoal-700);
    max-height: 0;
    overflow: hidden;
    transition: max-height var(--transition-menu);
    z-index: 999;
  }

  .site-header__nav[data-open] {
    max-height: 80vh;
    overflow-y: auto;
  }

  .site-header__list {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: var(--space-16) var(--gutter-mobile);
  }

  .site-header__item {
    border-bottom: 1px solid var(--color-charcoal-700);
  }

  .site-header__item:last-child {
    border-bottom: none;
  }

  .site-header__link {
    display: block;
    padding: var(--space-16) 0;
    font-size: 18px;
    font-family: var(--font-heading);
    color: var(--color-cream-100);
    border-bottom: none;
  }

  .site-header__link:hover {
    color: var(--color-brass-400);
    border-bottom: none;
  }
}

@media (max-width: 767px) {
  .site-header__inner {
    min-height: 60px;
    padding-block: var(--space-8);
  }

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

  .site-header__brand-text {
    font-size: 15px;
  }
}


.site-footer {
  background-color: var(--color-charcoal-800);
  border-top: 1px solid var(--color-brass-400-60);
  padding-block: var(--space-64) var(--space-32);
  margin-top: var(--space-96);
}

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

.site-footer__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-48);
}

.site-footer__brand-link {
  display: inline-flex;
  align-items: center;
  gap: var(--space-12);
  text-decoration: none;
  margin-bottom: var(--space-16);
}

.site-footer__logo {
  width: 36px;
  height: 36px;
  object-fit: contain;
  display: block;
}

.site-footer__brand-text {
  font-family: var(--font-heading);
  font-size: 18px;
  font-weight: 500;
  letter-spacing: 0.02em;
  color: var(--color-cream-100);
  white-space: nowrap;
}

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

.site-footer__heading {
  font-family: var(--font-body);
  font-size: var(--text-eyebrow);
  font-weight: 500;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-brass-400);
  margin: 0 0 var(--space-16);
}

.site-footer__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-12);
}

.site-footer__list a {
  color: var(--color-cream-300);
  text-decoration: none;
  font-size: var(--text-body);
  line-height: var(--leading-body);
  transition: color var(--transition-fast);
}

.site-footer__list a:hover {
  color: var(--color-cream-100);
  text-decoration: underline;
  text-decoration-color: var(--color-brass-400);
}

.site-footer__list a:focus-visible {
  outline: var(--focus-ring);
  outline-offset: var(--focus-offset);
}

.site-footer__address {
  font-style: normal;
  color: var(--color-cream-100);
  font-size: var(--text-body);
  line-height: var(--leading-body);
  margin-bottom: var(--space-16);
}

.site-footer__phone,
.site-footer__email {
  display: block;
  color: var(--color-cream-300);
  text-decoration: none;
  font-size: var(--text-body);
  line-height: var(--leading-body);
  margin-bottom: var(--space-8);
  transition: color var(--transition-fast);
}

.site-footer__phone:hover,
.site-footer__email:hover {
  color: var(--color-cream-100);
  text-decoration: underline;
  text-decoration-color: var(--color-brass-400);
}

.site-footer__phone:focus-visible,
.site-footer__email:focus-visible {
  outline: var(--focus-ring);
  outline-offset: var(--focus-offset);
}

.site-footer__bottom {
  border-top: 1px solid var(--color-charcoal-700);
  padding-top: var(--space-24);
  text-align: center;
}

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

.site-consent {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 1100;
  background-color: var(--color-charcoal-800);
  border-top: 1px solid var(--color-charcoal-700);
  padding-block: var(--space-16);
  transform: translateY(100%);
  transition: transform var(--transition-menu);
}

.site-consent[data-visible] {
  transform: translateY(0);
}

.site-consent__inner {
  display: flex;
  flex-direction: column;
  gap: var(--space-16);
  align-items: flex-start;
}

.site-consent__text {
  font-size: var(--text-small);
  line-height: var(--leading-small);
  color: var(--color-cream-300);
  margin: 0;
}

.site-consent__actions {
  display: flex;
  gap: var(--space-12);
  flex-wrap: wrap;
}

.site-consent__accept,
.site-consent__reject {
  font-family: var(--font-body);
  font-size: var(--text-small);
  font-weight: 500;
  line-height: 1.4;
  padding: var(--space-8) var(--space-16);
  border-radius: var(--radius-2);
  cursor: pointer;
  transition: background-color var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);
  min-height: 44px;
}

.site-consent__accept {
  background-color: var(--color-green-700);
  color: var(--color-cream-100);
  border: 1px solid var(--color-green-700);
}

.site-consent__accept:hover {
  background-color: var(--color-green-900);
  border-color: var(--color-green-900);
}

.site-consent__reject {
  background-color: transparent;
  color: var(--color-brass-400);
  border: 1px solid var(--color-brass-400);
}

.site-consent__reject:hover {
  background-color: var(--color-brass-400);
  color: var(--color-charcoal-900);
}

.site-consent__accept:focus-visible,
.site-consent__reject:focus-visible {
  outline: var(--focus-ring);
  outline-offset: var(--focus-offset);
}

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

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

.age-modal__overlay {
  position: absolute;
  inset: 0;
  background-color: rgba(20, 22, 26, 0.9);
}

.age-modal__dialog {
  position: relative;
  background-color: var(--color-charcoal-800);
  border: 1px solid var(--color-charcoal-700);
  border-radius: var(--radius-4);
  padding: var(--space-32);
  max-width: 480px;
  width: 100%;
  box-shadow: var(--color-shadow-soft);
}

.age-modal__title {
  font-family: var(--font-heading);
  font-size: var(--text-h3-desktop);
  line-height: var(--leading-h3-desktop);
  color: var(--color-cream-100);
  margin: 0 0 var(--space-16);
}

.age-modal__description {
  font-size: var(--text-body);
  line-height: var(--leading-body);
  color: var(--color-cream-300);
  margin: 0 0 var(--space-24);
}

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

.age-modal__confirm,
.age-modal__decline {
  font-family: var(--font-body);
  font-size: var(--text-body);
  font-weight: 500;
  line-height: 1.4;
  padding: var(--space-12) var(--space-20);
  border-radius: var(--radius-2);
  cursor: pointer;
  transition: background-color var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);
  min-height: 44px;
}

.age-modal__confirm {
  background-color: var(--color-green-700);
  color: var(--color-cream-100);
  border: 1px solid var(--color-green-700);
}

.age-modal__confirm:hover {
  background-color: var(--color-green-900);
  border-color: var(--color-green-900);
}

.age-modal__decline {
  background-color: transparent;
  color: var(--color-brass-400);
  border: 1px solid var(--color-brass-400);
}

.age-modal__decline:hover {
  background-color: var(--color-brass-400);
  color: var(--color-charcoal-900);
}

.age-modal__confirm:focus-visible,
.age-modal__decline:focus-visible {
  outline: var(--focus-ring);
  outline-offset: var(--focus-offset);
}

@media (min-width: 768px) {
  .site-footer__grid {
    grid-template-columns: 2fr 1fr 1fr 1fr;
    gap: var(--space-32);
  }

  .site-consent__inner {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }

  .site-consent__text {
    flex: 1;
  }

  .age-modal__actions {
    flex-direction: row;
    justify-content: flex-end;
  }
}


/* Contact page styles */

.contact-hero {
  padding-block: var(--space-96);
  background-color: var(--color-charcoal-900);
}

.contact-hero__inner {
  max-width: 720px;
  margin-inline: auto;
  text-align: center;
}

.contact-hero__lead {
  font-size: var(--text-body-large);
  line-height: var(--leading-body-large);
  color: var(--color-cream-300);
  margin-block-end: var(--space-32);
}

.contact-hero__rule {
  margin-block: 0;
}

.contact-details {
  padding-block: var(--space-96);
  background-color: var(--color-charcoal-800);
}

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

.contact-details__item {
  min-width: 0;
  padding-inline-end: var(--space-24);
  border-inline-end: 1px solid var(--color-charcoal-700);
}

.contact-details__item:last-child {
  padding-inline-end: 0;
  border-inline-end: none;
}

.contact-details__link {
  display: inline-block;
  font-size: var(--text-h4);
  font-weight: 500;
  line-height: var(--leading-h4);
  color: var(--color-brass-400);
  margin-block-end: var(--space-12);
  transition: color var(--transition-fast);
}

.contact-details__link:hover {
  color: var(--color-cream-100);
}

.contact-details__address {
  font-size: var(--text-body-large);
  font-weight: 500;
  line-height: var(--leading-body-large);
  color: var(--color-cream-100);
  margin-block-end: var(--space-12);
}

.contact-details__text {
  color: var(--color-cream-300);
  max-width: 400px;
}

.location-map {
  padding-block: var(--space-96);
  background-color: var(--color-charcoal-900);
}

.location-map__grid {
  display: grid;
  grid-template-columns: 40% 60%;
  gap: var(--space-48);
  align-items: start;
}

.location-map__text {
  min-width: 0;
}

.location-map__text p {
  max-width: 400px;
  color: var(--color-cream-300);
}

.location-map__frame {
  width: 100%;
  max-width: 100%;
  overflow: hidden;
  border: 1px solid var(--color-charcoal-700);
  border-radius: var(--radius-4);
  aspect-ratio: 16 / 9;
  min-height: 320px;
}

.location-map__frame iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}

.opening-hours {
  padding-block: var(--space-96);
  background-color: var(--color-charcoal-800);
}

.opening-hours__panel {
  max-width: 600px;
  margin-inline: auto;
  background-color: var(--color-cream-100);
  color: var(--color-ink-900);
  border-radius: var(--radius-4);
  padding: var(--space-32);
}

.opening-hours__panel .eyebrow {
  color: var(--color-brass-400);
}

.opening-hours__panel h2 {
  color: var(--color-ink-900);
  margin-block-end: var(--space-16);
}

.opening-hours__intro {
  color: var(--color-ink-900);
  margin-block-end: var(--space-24);
}

.opening-hours__list {
  list-style: none;
  padding: 0;
  margin: 0 0 var(--space-24);
}

.opening-hours__list li {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: var(--space-16);
  padding-block: var(--space-12);
  border-bottom: 1px solid var(--color-border-light);
  font-variant-numeric: tabular-nums;
}

.opening-hours__list li:last-child {
  border-bottom: none;
}

.opening-hours__list span:first-child {
  font-weight: 500;
  color: var(--color-ink-900);
}

.opening-hours__list span:last-child {
  color: var(--color-ink-900);
  white-space: nowrap;
}

.opening-hours__note {
  font-size: var(--text-small);
  line-height: var(--leading-small);
  color: var(--color-ink-900);
  opacity: 0.7;
}

.reservations-inquiries {
  padding-block: var(--space-96);
  background-color: var(--color-charcoal-900);
}

.reservations-inquiries__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-48);
}

.reservations-inquiries__item {
  min-width: 0;
}

.reservations-inquiries__item h3 {
  margin-block-end: var(--space-16);
}

.reservations-inquiries__item p {
  max-width: 500px;
  color: var(--color-cream-300);
}

.reservations-inquiries__item a {
  color: var(--color-brass-400);
  transition: color var(--transition-fast);
}

.reservations-inquiries__item a:hover {
  color: var(--color-cream-100);
  text-decoration: underline;
  text-decoration-color: var(--color-brass-400);
}

.visit-us {
  padding-block: var(--space-96);
  background-color: var(--color-green-900);
}

.visit-us__inner {
  max-width: 600px;
  margin-inline: auto;
  text-align: center;
}

.visit-us__inner p {
  color: var(--color-cream-100);
  margin-block-end: var(--space-32);
}

.visit-us__rule {
  margin-block: 0;
}

@media (max-width: 1023px) {
  .contact-details__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-24);
  }

  .location-map__grid {
    grid-template-columns: 1fr;
    gap: var(--space-32);
  }

  .location-map__frame {
    min-height: 280px;
  }

  .reservations-inquiries__grid {
    grid-template-columns: 1fr;
    gap: var(--space-32);
  }
}

@media (max-width: 767px) {
  .contact-hero {
    padding-block: var(--space-64);
  }

  .contact-hero__lead {
    font-size: var(--text-body);
    line-height: var(--leading-body-mobile);
  }

  .contact-details {
    padding-block: var(--space-64);
  }

  .contact-details__grid {
    grid-template-columns: 1fr;
    gap: var(--space-32);
  }

  .contact-details__item {
    padding-inline-end: 0;
    border-inline-end: none;
    padding-block-end: var(--space-24);
    border-block-end: 1px solid var(--color-charcoal-700);
  }

  .contact-details__item:last-child {
    padding-block-end: 0;
    border-block-end: none;
  }

  .location-map {
    padding-block: var(--space-64);
  }

  .location-map__frame {
    min-height: 240px;
    aspect-ratio: auto;
  }

  .opening-hours {
    padding-block: var(--space-64);
  }

  .opening-hours__panel {
    padding: var(--space-24);
  }

  .opening-hours__list li {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-4);
  }

  .reservations-inquiries {
    padding-block: var(--space-64);
  }

  .visit-us {
    padding-block: var(--space-64);
  }
}


.cookie-policy-page {
  background-color: var(--color-charcoal-900);
  color: var(--color-cream-100);
}

.cookie-policy-hero {
  padding-block: var(--space-96) var(--space-64);
  text-align: center;
}

.cookie-policy-hero__inner {
  max-width: 720px;
  margin-inline: auto;
  padding-inline: var(--gutter-mobile);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-16);
}

.cookie-policy-hero__inner .eyebrow {
  margin-block-end: 0;
}

.cookie-policy-hero h1 {
  margin-block-end: 0;
}

.cookie-policy-hero__lede {
  font-size: var(--text-body-large);
  line-height: var(--leading-body-large);
  color: var(--color-cream-300);
  max-width: 620px;
  margin-block-end: 0;
}

.cookie-policy-hero__date {
  font-size: var(--text-caption);
  line-height: var(--leading-caption);
  color: var(--color-cream-300);
  margin-block-end: 0;
}

.cookie-policy-hero__scope {
  font-size: var(--text-caption);
  line-height: var(--leading-caption);
  color: var(--color-cream-300);
  margin-block-end: 0;
}

.cookie-policy-section {
  padding-block: var(--space-64);
  border-top: 1px solid var(--color-brass-400-60);
}

.cookie-policy-section--charcoal-900 {
  background-color: var(--color-charcoal-900);
}

.cookie-policy-section--charcoal-800 {
  background-color: var(--color-charcoal-800);
}

.cookie-policy-section__inner {
  max-width: 720px;
  margin-inline: auto;
  padding-inline: var(--gutter-mobile);
  display: flex;
  flex-direction: column;
  gap: var(--space-16);
}

.cookie-policy-section__inner h2 {
  margin-block-end: 0;
}

.cookie-policy-section__inner p {
  margin-block-end: 0;
}

.cookie-policy-category {
  display: flex;
  flex-direction: column;
  gap: var(--space-12);
  padding-block-start: var(--space-24);
  border-top: 1px solid var(--color-charcoal-700);
}

.cookie-policy-category:first-of-type {
  padding-block-start: 0;
  border-top: none;
}

.cookie-policy-category h3 {
  margin-block-end: 0;
}

.cookie-policy-list {
  display: flex;
  flex-direction: column;
  gap: var(--space-12);
  margin-block-end: 0;
  padding-inline-start: var(--space-24);
}

.cookie-policy-list li {
  line-height: var(--leading-body);
}

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

.cookie-policy-contact-list li {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

.cookie-policy-contact-list__label {
  font-size: var(--text-eyebrow);
  line-height: var(--leading-eyebrow);
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-brass-400);
}

.cookie-policy-contact-list a {
  color: var(--color-cream-100);
  transition: color var(--transition-fast);
}

.cookie-policy-contact-list a:hover {
  color: var(--color-brass-400);
  text-decoration: underline;
  text-decoration-color: var(--color-brass-400);
  text-underline-offset: 4px;
}

.cookie-policy-contact-list address {
  color: var(--color-cream-100);
}

@media (min-width: 768px) {
  .cookie-policy-hero {
    padding-block: var(--space-128) var(--space-96);
  }

  .cookie-policy-hero__inner {
    padding-inline: var(--gutter-tablet);
  }

  .cookie-policy-section {
    padding-block: var(--space-96);
  }

  .cookie-policy-section__inner {
    padding-inline: var(--gutter-tablet);
  }
}

@media (min-width: 1024px) {
  .cookie-policy-hero__inner {
    padding-inline: var(--gutter-desktop);
  }

  .cookie-policy-section__inner {
    padding-inline: var(--gutter-desktop);
  }
}

@media (max-width: 767px) {
  .cookie-policy-hero h1 {
    font-size: var(--text-h1-mobile);
    line-height: var(--leading-h1-mobile);
  }

  .cookie-policy-hero__lede {
    font-size: var(--text-body);
    line-height: var(--leading-body-mobile);
  }

  .cookie-policy-section__inner h2 {
    font-size: var(--text-h2-mobile);
    line-height: var(--leading-h2-mobile);
  }

  .cookie-policy-category h3 {
    font-size: var(--text-h3-mobile);
    line-height: var(--leading-h3-mobile);
  }
}


/* Terms and Conditions page-owned styles */

.terms-page {
  background-color: var(--color-charcoal-900);
  color: var(--color-cream-100);
  padding-block: var(--space-96);
}

.terms-document {
  width: 100%;
  max-width: var(--container-text-max);
  margin-inline: auto;
  padding-inline: var(--gutter-mobile);
}

.terms-header {
  margin-block-end: var(--space-64);
}

.terms-header .eyebrow {
  margin-block-end: var(--space-12);
}

.terms-header h1 {
  font-size: var(--text-h1-mobile);
  line-height: var(--leading-h1-mobile);
  letter-spacing: var(--tracking-h1);
  margin-block-end: var(--space-16);
}

.terms-effective-date {
  font-size: var(--text-small);
  line-height: var(--leading-small);
  color: var(--color-cream-300);
  margin-block-end: var(--space-24);
}

.terms-date-label {
  display: inline-block;
  font-family: var(--font-body);
  font-size: var(--text-eyebrow);
  font-weight: 500;
  line-height: var(--leading-eyebrow);
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-brass-400);
  margin-inline-end: var(--space-8);
}

.terms-header-rule {
  margin-block: 0;
}

.terms-section {
  margin-block-end: var(--space-64);
}

.terms-section:last-child {
  margin-block-end: 0;
}

.terms-section h2 {
  font-size: var(--text-h2-mobile);
  line-height: var(--leading-h2-mobile);
  color: var(--color-cream-100);
  margin-block-end: var(--space-24);
  padding-block-end: var(--space-16);
  border-bottom: 1px solid var(--color-brass-400-60);
}

.terms-copy {
  max-width: 60ch;
}

.terms-copy h3 {
  font-size: var(--text-h3-mobile);
  line-height: var(--leading-h3-mobile);
  color: var(--color-cream-100);
  margin-block-start: var(--space-32);
  margin-block-end: var(--space-12);
}

.terms-copy h3:first-child {
  margin-block-start: 0;
}

.terms-copy p {
  margin-block-end: var(--space-16);
}

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

.terms-copy ul {
  margin-block-end: var(--space-16);
  padding-inline-start: var(--space-24);
}

.terms-copy ul:last-child {
  margin-block-end: 0;
}

.terms-copy li {
  line-height: var(--leading-body);
  margin-block-end: var(--space-8);
}

.terms-copy li:last-child {
  margin-block-end: 0;
}

.terms-contact-list {
  list-style: none;
  padding-inline-start: 0;
  margin-block-start: var(--space-16);
}

.terms-contact-list li {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-8);
  margin-block-end: var(--space-12);
}

.terms-contact-list li:last-child {
  margin-block-end: 0;
}

.terms-contact-label {
  font-weight: 500;
  color: var(--color-brass-400);
  min-width: 5.5rem;
}

.terms-contact-list a {
  color: var(--color-cream-100);
  transition: color var(--transition-fast);
}

.terms-contact-list a:hover {
  color: var(--color-brass-400);
}

@media (min-width: 768px) {
  .terms-page {
    padding-block: var(--space-128);
  }

  .terms-document {
    padding-inline: var(--gutter-tablet);
  }

  .terms-header h1 {
    font-size: var(--text-h1-desktop);
    line-height: var(--leading-h1-desktop);
  }

  .terms-section h2 {
    font-size: var(--text-h2-desktop);
    line-height: var(--leading-h2-desktop);
  }

  .terms-copy h3 {
    font-size: var(--text-h3-desktop);
    line-height: var(--leading-h3-desktop);
  }
}

@media (min-width: 1024px) {
  .terms-document {
    padding-inline: var(--gutter-desktop);
  }
}

@media (max-width: 767px) {
  .terms-page {
    padding-block: var(--space-96);
  }

  .terms-document {
    padding-inline: var(--gutter-mobile);
  }

  .terms-header h1 {
    font-size: var(--text-h1-mobile);
    line-height: var(--leading-h1-mobile);
  }

  .terms-section h2 {
    font-size: var(--text-h2-mobile);
    line-height: var(--leading-h2-mobile);
  }

  .terms-copy h3 {
    font-size: var(--text-h3-mobile);
    line-height: var(--leading-h3-mobile);
  }
}


.privacy-policy-page {
  background-color: var(--color-charcoal-900);
  color: var(--color-cream-100);
}

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

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

.pp-container-text {
  max-width: var(--container-text-max);
}

.pp-section__title {
  font-size: var(--text-h2-desktop);
  line-height: var(--leading-h2-desktop);
  margin-block-end: var(--space-16);
}

.pp-section__lead {
  font-size: var(--text-body-large);
  line-height: var(--leading-body-large);
  color: var(--color-cream-100);
  margin-block-end: var(--space-24);
}

.pp-section__note {
  margin-block-start: var(--space-24);
  color: var(--color-cream-300);
  font-size: var(--text-small);
  line-height: var(--leading-small);
}

.pp-list {
  margin-block-end: 0;
  padding-inline-start: var(--space-24);
}

.pp-list li {
  margin-block-end: var(--space-12);
}

.pp-list li:last-child {
  margin-block-end: 0;
}

.pp-panel {
  background-color: var(--color-charcoal-800);
  border: 1px solid var(--color-charcoal-700);
  border-radius: var(--radius-4);
  padding: var(--space-24);
  margin-block-start: var(--space-24);
}

.pp-panel--charcoal {
  max-width: 680px;
  margin-inline: auto;
}

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

.pp-intro__eyebrow {
  margin-block-end: var(--space-12);
}

.pp-intro__title {
  font-size: var(--text-h1-desktop);
  line-height: var(--leading-h1-desktop);
  letter-spacing: var(--tracking-h1);
  margin-block-end: var(--space-24);
}

.pp-intro__rule {
  margin-block: var(--space-32);
}

.pp-intro__lead {
  text-align: left;
  font-size: var(--text-body-large);
  line-height: var(--leading-body-large);
  margin-block-end: var(--space-16);
}

.pp-intro__body {
  text-align: left;
  color: var(--color-cream-300);
}

.pp-use__rule {
  margin-block: var(--space-24) var(--space-16);
}

.pp-legal--green {
  background-color: var(--color-green-900);
}

.pp-legal__inner {
  max-width: var(--container-text-max);
  margin-inline: auto;
}

.pp-legal__list {
  margin-block-start: var(--space-16);
}

.pp-security__rule {
  margin-block: var(--space-24) var(--space-16);
}

.pp-rights__list-container {
  max-width: 680px;
  margin-inline: auto;
  border-inline-start: 4px solid var(--color-burgundy-700);
  padding-inline-start: var(--space-24);
  padding-block: var(--space-8);
  margin-block-start: var(--space-24);
}

.pp-rights__list {
  padding-inline-start: 0;
}

.pp-contact--cream {
  background-color: var(--color-cream-100);
  color: var(--color-ink-900);
}

.pp-contact--cream .pp-section__title,
.pp-contact--cream .pp-section__lead {
  color: var(--color-ink-900);
}

.pp-contact__card {
  background-color: var(--color-charcoal-800);
  border: 1px solid var(--color-charcoal-700);
  border-radius: var(--radius-4);
  padding: var(--space-24);
  max-width: 680px;
  margin-inline: auto;
  margin-block-start: var(--space-24);
  color: var(--color-cream-100);
}

.pp-contact__detail {
  margin-block-end: var(--space-12);
}

.pp-contact__detail:last-child {
  margin-block-end: 0;
}

.pp-contact__detail a {
  color: var(--color-brass-400);
  text-decoration: underline;
  text-underline-offset: 2px;
  transition: color var(--transition-fast);
}

.pp-contact__detail a:hover {
  color: var(--color-cream-100);
}

.pp-contact__oaic {
  margin-block-start: var(--space-24);
  color: var(--color-ink-900);
  max-width: 680px;
  margin-inline: auto;
}

@media (min-width: 768px) {
  .pp-container {
    padding-inline: var(--gutter-tablet);
  }

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

  .pp-panel {
    padding: var(--space-32);
  }

  .pp-contact__card {
    padding: var(--space-32);
  }
}

@media (min-width: 1024px) {
  .pp-container {
    padding-inline: var(--gutter-desktop);
  }
}

@media (max-width: 767px) {
  .pp-section {
    padding-block: var(--space-96);
  }

  .pp-intro__title {
    font-size: var(--text-h1-mobile);
    line-height: var(--leading-h1-mobile);
  }

  .pp-section__title {
    font-size: var(--text-h2-mobile);
    line-height: var(--leading-h2-mobile);
  }

  .pp-panel {
    padding: var(--space-16);
  }

  .pp-contact__card {
    padding: var(--space-16);
  }

  .pp-rights__list-container {
    padding-inline-start: var(--space-16);
  }
}


/* Events page styles */

.events-hero {
  position: relative;
  min-height: 100vh;
  display: flex;
  align-items: flex-end;
  background-color: var(--color-charcoal-900);
}

.events-hero__media {
  position: absolute;
  inset: 0;
  overflow: hidden;
}

.events-hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.events-hero__media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, transparent 0%, rgba(20, 22, 26, 0.9) 90%, var(--color-charcoal-900) 100%);
}

.events-hero__content {
  position: relative;
  z-index: 1;
  width: 100%;
  padding-bottom: var(--space-96);
}

.events-hero__text {
  max-width: 720px;
  text-align: left;
}

.events-hero__text h1 {
  font-size: var(--text-display-desktop);
  line-height: var(--leading-display-desktop);
  letter-spacing: var(--tracking-display);
  color: var(--color-cream-100);
  margin-block-end: var(--space-24);
}

.events-hero__text p {
  font-size: var(--text-body-large);
  line-height: var(--leading-body-large);
  color: var(--color-cream-100);
  max-width: 68ch;
}

.events-featured {
  background-color: var(--color-charcoal-900);
  padding-block: var(--space-128);
}

.events-featured__inner {
  max-width: 720px;
  margin-inline: auto;
  text-align: left;
  display: flex;
  flex-direction: column;
  gap: var(--space-24);
}

.events-featured__rule {
  margin-block: 0 0 var(--space-12);
}

.events-featured__inner .eyebrow {
  margin-block-end: var(--space-12);
}

.events-featured__inner h2 {
  margin-block-end: var(--space-16);
}

.events-featured__lead {
  font-size: var(--text-body-large);
  line-height: var(--leading-body-large);
  color: var(--color-cream-100);
  max-width: 68ch;
}

.events-featured__details {
  display: flex;
  flex-direction: column;
  gap: var(--space-12);
  margin-block-end: var(--space-24);
  padding-inline-start: 0;
  list-style: none;
}

.events-featured__details li {
  display: flex;
  gap: var(--space-12);
  font-size: var(--text-body);
  line-height: var(--leading-body);
  color: var(--color-cream-100);
}

.events-featured__detail-label {
  font-weight: 500;
  color: var(--color-brass-400);
  min-width: 110px;
}

.events-featured__inner .btn {
  align-self: flex-start;
}

.events-recurring {
  padding-block: var(--space-128);
}

.events-recurring__header {
  max-width: 720px;
  margin-inline: auto;
  text-align: left;
  display: flex;
  flex-direction: column;
  gap: var(--space-16);
  margin-block-end: var(--space-48);
}

.events-recurring__rule {
  margin-block: 0 0 var(--space-12);
}

.events-recurring__header .eyebrow {
  margin-block-end: var(--space-12);
}

.events-recurring__header h2 {
  margin-block-end: 0;
}

.events-recurring__intro {
  font-size: var(--text-body-large);
  line-height: var(--leading-body-large);
  color: var(--color-cream-100);
  max-width: 68ch;
}

.events-recurring__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-32);
}

.events-recurring__card {
  background-color: var(--color-charcoal-800);
  border: 1px solid var(--color-charcoal-700);
  border-radius: var(--radius-4);
  padding: var(--space-32);
  display: flex;
  flex-direction: column;
  gap: var(--space-16);
  min-width: 0;
}

.events-recurring__card h3 {
  color: var(--color-cream-100);
  margin-block-end: 0;
}

.events-recurring__card p {
  color: var(--color-cream-300);
  max-width: 52ch;
}

.events-recurring__card ul {
  padding-inline-start: var(--space-24);
  margin-block-end: 0;
  color: var(--color-cream-300);
  display: flex;
  flex-direction: column;
  gap: var(--space-8);
}

.events-recurring__card li {
  line-height: var(--leading-body);
}

.events-private {
  padding-block: var(--space-128);
}

.events-private__grid {
  display: grid;
  grid-template-columns: 7fr 5fr;
  gap: var(--space-64);
  align-items: center;
}

.events-private__content {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-24);
}

.events-private__rule {
  margin-block: 0 0 var(--space-12);
}

.events-private__content .eyebrow {
  margin-block-end: var(--space-12);
}

.events-private__content h2 {
  color: var(--color-cream-100);
  margin-block-end: 0;
}

.events-private__lead {
  font-size: var(--text-body-large);
  line-height: var(--leading-body-large);
  color: var(--color-cream-100);
  max-width: 68ch;
}

.events-private__options {
  display: flex;
  flex-direction: column;
  gap: var(--space-24);
}

.events-private__option h3 {
  color: var(--color-cream-100);
  margin-block-end: var(--space-8);
}

.events-private__option p {
  color: var(--color-cream-300);
  max-width: 68ch;
}

.events-private__media {
  min-width: 0;
}

.events-private__media img {
  width: 100%;
  height: auto;
  border-radius: var(--radius-4);
  border: 1px solid var(--color-charcoal-700);
  display: block;
}

.events-calendar {
  background-color: var(--color-charcoal-900);
  padding-block: var(--space-128);
}

.events-calendar__inner {
  max-width: 720px;
  margin-inline: auto;
  text-align: left;
  display: flex;
  flex-direction: column;
  gap: var(--space-24);
}

.events-calendar__rule {
  margin-block: 0 0 var(--space-12);
}

.events-calendar__inner .eyebrow {
  margin-block-end: var(--space-12);
}

.events-calendar__inner h2 {
  margin-block-end: 0;
}

.events-calendar__intro {
  font-size: var(--text-body-large);
  line-height: var(--leading-body-large);
  color: var(--color-cream-100);
  max-width: 68ch;
}

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

.events-calendar__item {
  display: flex;
  flex-direction: column;
  gap: var(--space-8);
  padding-block-end: var(--space-24);
  border-bottom: 1px solid var(--color-charcoal-700);
}

.events-calendar__item:last-child {
  border-bottom: none;
  padding-block-end: 0;
}

.events-calendar__date {
  font-size: var(--text-small);
  line-height: var(--leading-small);
  color: var(--color-brass-400);
  font-weight: 500;
}

.events-calendar__name {
  font-family: var(--font-heading);
  font-size: var(--text-h3-desktop);
  line-height: var(--leading-h3-desktop);
  color: var(--color-cream-100);
}

.events-calendar__description {
  font-size: var(--text-body);
  line-height: var(--leading-body);
  color: var(--color-cream-300);
  max-width: 68ch;
}

.events-cta {
  padding-block: var(--space-128);
}

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

.events-cta__inner .eyebrow {
  margin-block-end: var(--space-12);
}

.events-cta__inner h2 {
  color: var(--color-ink-900);
  margin-block-end: 0;
}

.events-cta__inner p {
  color: var(--color-ink-900);
  max-width: 52ch;
}

.events-cta__inner a {
  color: var(--color-burgundy-700);
}

.events-cta__inner a:hover {
  color: #8A2A3A;
}

.events-cta__inner .btn {
  align-self: center;
}

@media (min-width: 768px) and (max-width: 1023px) {
  .events-recurring__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .events-recurring__card:last-child {
    grid-column: span 2;
  }

  .events-private__grid {
    grid-template-columns: 1fr;
    gap: var(--space-48);
  }

  .events-private__media {
    order: -1;
  }
}

@media (max-width: 767px) {
  .events-hero {
    min-height: 70vh;
  }

  .events-hero__content {
    padding-bottom: var(--space-48);
  }

  .events-hero__text h1 {
    font-size: var(--text-display-mobile);
    line-height: var(--leading-display-mobile);
  }

  .events-hero__text p {
    font-size: var(--text-body);
    line-height: var(--leading-body-mobile);
  }

  .events-featured {
    padding-block: var(--space-96);
  }

  .events-featured__inner {
    gap: var(--space-16);
  }

  .events-featured__details li {
    flex-direction: column;
    gap: var(--space-4);
  }

  .events-featured__detail-label {
    min-width: 0;
  }

  .events-recurring {
    padding-block: var(--space-96);
  }

  .events-recurring__header {
    gap: var(--space-12);
    margin-block-end: var(--space-32);
  }

  .events-recurring__grid {
    grid-template-columns: 1fr;
    gap: var(--space-24);
  }

  .events-recurring__card {
    padding: var(--space-24);
  }

  .events-private {
    padding-block: var(--space-96);
  }

  .events-private__grid {
    grid-template-columns: 1fr;
    gap: var(--space-32);
  }

  .events-private__media {
    order: -1;
  }

  .events-calendar {
    padding-block: var(--space-96);
  }

  .events-calendar__inner {
    gap: var(--space-16);
  }

  .events-calendar__name {
    font-size: var(--text-h3-mobile);
    line-height: var(--leading-h3-mobile);
  }

  .events-cta {
    padding-block: var(--space-96);
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}


.offline-casino-main {
  background-color: var(--color-charcoal-900);
}

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

.casino-hero__media {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.casino-hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.casino-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(20, 22, 26, 0.9) 0%, rgba(20, 22, 26, 0.55) 45%, rgba(20, 22, 26, 0.2) 100%);
}

.casino-hero__content {
  position: relative;
  z-index: 2;
  width: 100%;
  padding-block: var(--space-96) var(--space-48);
}

.casino-hero__text {
  max-width: 720px;
  margin-inline: 0;
  color: var(--color-cream-100);
}

.casino-hero__text h1 {
  font-size: clamp(2.5rem, 7vw, var(--text-display-desktop));
  line-height: var(--leading-display-desktop);
  letter-spacing: var(--tracking-display);
  margin-block-end: var(--space-24);
  max-width: 10ch;
}

.casino-hero__text p:not(.eyebrow) {
  font-size: var(--text-body-large);
  line-height: var(--leading-body-large);
  max-width: 68ch;
  margin-block-end: var(--space-32);
}

.casino-hero__cta {
  min-width: 180px;
}

.casino-section-heading {
  text-align: center;
  margin-block-end: var(--space-48);
}

.casino-section-heading .eyebrow {
  margin-inline: auto;
}

.casino-section-heading h2 {
  max-width: 720px;
  margin-inline: auto;
}

.casino-atmosphere {
  padding-block: var(--space-128) var(--space-96);
  background-color: var(--color-charcoal-900);
}

.casino-atmosphere__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-48);
  max-width: 720px;
  margin-inline: auto;
}

.casino-atmosphere__column {
  min-width: 0;
}

.casino-atmosphere__column h3 {
  margin-block-end: var(--space-16);
}

.casino-atmosphere__column p {
  max-width: 52ch;
}

.casino-games {
  padding-block: var(--space-96);
  background-color: var(--color-charcoal-900);
}

.casino-games__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-32);
}

.casino-game-card {
  background-color: var(--color-charcoal-800);
  border: 1px solid var(--color-charcoal-700);
  border-radius: var(--radius-4);
  padding: var(--space-24);
  min-width: 0;
  transition: background-color var(--transition-fast);
}

.casino-game-card:hover {
  background-color: var(--color-charcoal-700);
}

.casino-game-card h3 {
  margin-block-end: var(--space-12);
}

.casino-game-card p {
  max-width: 52ch;
}

.casino-lounge {
  padding-block: var(--space-128);
  background-color: var(--color-charcoal-900);
}

.casino-lounge__container {
  display: grid;
  grid-template-columns: 7fr 5fr;
  gap: var(--space-48);
  align-items: center;
}

.casino-lounge__media {
  min-width: 0;
  border-radius: var(--radius-4);
  border: 1px solid var(--color-charcoal-700);
  overflow: hidden;
}

.casino-lounge__media img {
  width: 100%;
  height: auto;
  display: block;
}

.casino-lounge__content {
  min-width: 0;
  max-width: 480px;
}

.casino-lounge__content h2 {
  margin-block-end: var(--space-16);
}

.casino-lounge__content p {
  max-width: 68ch;
}

.casino-responsible {
  padding-block: var(--space-128);
  background-color: var(--color-green-900);
}

.casino-section-heading--light .eyebrow {
  color: var(--color-brass-400);
}

.casino-section-heading--light h2 {
  color: var(--color-cream-100);
}

.casino-responsible__list {
  max-width: 720px;
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  gap: var(--space-24);
}

.casino-responsible__item {
  display: flex;
  align-items: flex-start;
  gap: var(--space-16);
}

.casino-responsible__marker {
  flex: 0 0 8px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background-color: var(--color-brass-400);
  margin-block-start: 0.55em;
}

.casino-responsible__item p {
  color: var(--color-cream-100);
  max-width: 68ch;
  margin: 0;
}

.casino-etiquette {
  padding-block: var(--space-128) var(--space-96);
  background-color: var(--color-charcoal-900);
}

.casino-etiquette__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-48);
  max-width: 720px;
  margin-inline: auto;
}

.casino-etiquette__column {
  min-width: 0;
}

.casino-etiquette__column h3 {
  margin-block-end: var(--space-16);
}

.casino-etiquette__column p {
  max-width: 52ch;
}

.casino-visit {
  padding-block: var(--space-128);
  background-color: var(--color-charcoal-900);
}

.casino-visit__panel {
  max-width: 720px;
  margin-inline: auto;
  background-color: var(--color-cream-100);
  color: var(--color-ink-900);
  border: 1px solid var(--color-border-light);
  border-radius: var(--radius-4);
  padding: var(--space-32);
}

.casino-visit__panel .eyebrow {
  color: var(--color-brass-400);
}

.casino-visit__panel h2,
.casino-visit__panel h3 {
  color: var(--color-ink-900);
}

.casino-visit__panel h2 {
  margin-block-end: var(--space-16);
}

.casino-visit__panel h3 {
  margin-block-start: var(--space-32);
  margin-block-end: var(--space-12);
}

.casino-visit__panel p {
  color: var(--color-ink-900);
  max-width: 68ch;
}

.casino-visit__panel a {
  color: var(--color-ink-900);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.casino-visit__panel a:hover {
  color: var(--color-burgundy-700);
}

.casino-closing {
  padding-block: var(--space-160) var(--space-128);
  background-color: var(--color-charcoal-900);
}

.casino-closing__content {
  max-width: 720px;
  margin-inline: auto;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-24);
}

.casino-closing__content h2 {
  margin: 0;
}

.casino-closing__content p {
  max-width: 68ch;
  margin: 0;
}

.casino-closing__content .btn {
  margin-block-start: var(--space-8);
}

@media (min-width: 768px) and (max-width: 1023px) {
  .casino-hero {
    min-height: 60vh;
  }

  .casino-hero__content {
    padding-block: var(--space-64) var(--space-32);
  }

  .casino-games__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-24);
  }

  .casino-lounge__container {
    grid-template-columns: 1fr 1fr;
    gap: var(--space-32);
  }
}

@media (max-width: 767px) {
  .casino-hero {
    min-height: 70vh;
  }

  .casino-hero__content {
    padding-block: var(--space-64) var(--space-32);
  }

  .casino-hero__text h1 {
    font-size: var(--text-display-mobile);
    line-height: var(--leading-display-mobile);
  }

  .casino-hero__text p:not(.eyebrow) {
    font-size: var(--text-body);
    line-height: var(--leading-body-mobile);
  }

  .casino-atmosphere,
  .casino-games,
  .casino-lounge,
  .casino-responsible,
  .casino-etiquette,
  .casino-visit,
  .casino-closing {
    padding-block: var(--space-96);
  }

  .casino-atmosphere__grid,
  .casino-etiquette__grid {
    grid-template-columns: 1fr;
    gap: var(--space-32);
  }

  .casino-games__grid {
    grid-template-columns: 1fr;
    gap: var(--space-24);
  }

  .casino-lounge__container {
    grid-template-columns: 1fr;
    gap: var(--space-24);
  }

  .casino-lounge__content {
    max-width: 100%;
  }

  .casino-visit__panel {
    padding: var(--space-24);
  }

  .casino-closing__content {
    gap: var(--space-16);
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  .casino-game-card {
    transition: none;
  }
}


/* Menu page styles */

.menu-hero {
    position: relative;
    min-height: 80vh;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background-color: var(--color-charcoal-900);
}

.menu-hero__media {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.menu-hero__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.menu-hero__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, rgba(20, 22, 26, 0.25) 0%, rgba(20, 22, 26, 0.55) 55%, rgba(20, 22, 26, 0.9) 100%);
}

.menu-hero__content {
    position: relative;
    z-index: 1;
    max-width: 720px;
    margin-inline: auto;
    padding: 96px 20px 64px;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
}

.menu-hero__eyebrow {
    margin-block-end: 0;
}

.menu-hero h1 {
    font-size: clamp(40px, 7vw, 64px);
    line-height: 1.05;
    letter-spacing: var(--tracking-display);
    margin-block-end: 0;
    color: var(--color-cream-100);
}

.menu-hero__intro {
    font-size: var(--text-body-large);
    line-height: var(--leading-body-large);
    color: var(--color-cream-100);
    margin-block-end: 0;
    max-width: 560px;
}

.menu-hero__detail {
    font-size: var(--text-small);
    line-height: var(--leading-small);
    color: var(--color-cream-300);
    margin-block-end: 0;
    max-width: 520px;
}

.menu-intro {
    background-color: var(--color-charcoal-900);
    padding: 96px 20px;
}

.menu-intro__inner {
    max-width: 720px;
    margin-inline: auto;
    text-align: center;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.menu-intro__inner .eyebrow {
    margin-block-end: 0;
}

.menu-intro__inner h2 {
    margin-block-end: 0;
}

.menu-intro__inner p {
    margin-block-end: 0;
}

.menu-section {
    padding: 96px 20px;
}

.menu-section--starters {
    background-color: var(--color-charcoal-800);
}

.menu-section--mains {
    background-color: var(--color-charcoal-900);
}

.menu-section--desserts {
    background-color: var(--color-charcoal-800);
}

.menu-section--drinks {
    background-color: var(--color-charcoal-900);
}

.menu-section__header {
    max-width: 720px;
    margin-inline: auto;
    text-align: center;
    margin-bottom: 48px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.menu-section__header .eyebrow {
    margin-block-end: 0;
}

.menu-section__header h2 {
    margin-block-end: 0;
}

.menu-section__lead {
    margin-block-end: 0;
    color: var(--color-cream-300);
}

.menu-grid {
    max-width: 1200px;
    margin-inline: auto;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 32px;
}

.menu-column {
    display: flex;
    flex-direction: column;
    gap: 24px;
    min-width: 0;
}

.menu-item {
    padding-bottom: 24px;
    border-bottom: 1px solid var(--color-charcoal-700);
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.menu-item:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.menu-item__name-row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
}

.menu-item__name-row h3 {
    font-size: 18px;
    line-height: 1.35;
    margin-block-end: 0;
    color: var(--color-cream-100);
    min-width: 0;
}

.menu-item__price {
    font-size: var(--text-body);
    font-weight: 500;
    color: var(--color-cream-100);
    white-space: nowrap;
}

.menu-item__desc {
    font-size: var(--text-small);
    line-height: var(--leading-small);
    color: var(--color-cream-300);
    margin-block-end: 0;
    max-width: 360px;
}

.menu-item__tag {
    display: inline-block;
    font-size: 12px;
    font-weight: 500;
    color: var(--color-brass-400);
    border: 1px solid var(--color-brass-400-60);
    border-radius: var(--radius-2);
    padding: 2px 6px;
    margin-left: 8px;
    vertical-align: middle;
}

.menu-tasting {
    background-color: var(--color-green-900);
    padding: 96px 20px;
}

.menu-tasting__inner {
    max-width: 720px;
    margin-inline: auto;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
}

.menu-tasting__inner .eyebrow {
    margin-block-end: 0;
}

.menu-tasting__inner h2 {
    margin-block-end: 0;
}

.menu-tasting__inner p {
    margin-block-end: 0;
}

.menu-tasting__cta {
    margin-top: 16px;
}

.menu-dietary {
    background-color: var(--color-charcoal-800);
    padding: 96px 20px;
}

.menu-dietary__inner {
    max-width: 720px;
    margin-inline: auto;
    text-align: left;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.menu-dietary__inner .eyebrow {
    margin-block-end: 0;
}

.menu-dietary__inner h2 {
    margin-block-end: 0;
}

.menu-dietary__inner p {
    margin-block-end: 0;
}

.menu-dietary__list {
    margin-block-end: 0;
    padding-inline-start: 24px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.menu-dietary__list li {
    line-height: var(--leading-body);
}

.menu-reservation {
    background-color: var(--color-burgundy-700);
    padding: 96px 20px;
}

.menu-reservation__inner {
    max-width: 720px;
    margin-inline: auto;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
}

.menu-reservation__inner .eyebrow {
    margin-block-end: 0;
}

.menu-reservation__inner h2 {
    color: var(--color-cream-100);
    margin-block-end: 0;
}

.menu-reservation__inner p {
    color: var(--color-cream-100);
    margin-block-end: 0;
}

.menu-reservation__inner a {
    color: var(--color-cream-100);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.menu-reservation__inner a:hover {
    color: var(--color-brass-400);
}

.menu-reservation__cta {
    margin-top: 16px;
}

@media (min-width: 768px) {
    .menu-hero__content {
        padding: 128px 32px 96px;
    }

    .menu-intro,
    .menu-section,
    .menu-tasting,
    .menu-dietary,
    .menu-reservation {
        padding: 128px 32px;
    }
}

@media (min-width: 1024px) {
    .menu-hero__content {
        padding: 160px 48px 128px;
    }

    .menu-intro,
    .menu-section,
    .menu-tasting,
    .menu-dietary,
    .menu-reservation {
        padding: 128px 48px;
    }
}

@media (max-width: 767px) {
    .menu-hero {
        min-height: 70vh;
        align-items: flex-end;
    }

    .menu-hero__content {
        padding: 48px 20px 64px;
        text-align: center;
        align-items: center;
    }

    .menu-hero h1 {
        font-size: var(--text-h1-mobile);
        line-height: var(--leading-h1-mobile);
    }

    .menu-hero__intro {
        font-size: var(--text-body);
        line-height: var(--leading-body-mobile);
    }

    .menu-grid {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .menu-column {
        gap: 24px;
    }

    .menu-item__name-row {
        flex-direction: row;
        align-items: baseline;
    }

    .menu-item__name-row h3 {
        font-size: 18px;
    }

    .menu-item__price {
        font-size: var(--text-body);
    }

    .menu-section__header {
        margin-bottom: 32px;
    }
}

@media (max-width: 480px) {
    .menu-hero__content {
        padding: 32px 20px 48px;
    }

    .menu-item__name-row {
        gap: 8px;
    }
}


/* Home page styles — scoped to page-owned components */

.home-hero {
  position: relative;
  min-height: 80vh;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  overflow: hidden;
  background-color: var(--color-charcoal-900);
}

.home-hero__image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  z-index: 0;
}

.home-hero__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(to top, rgba(20, 22, 26, 0.9) 0%, rgba(20, 22, 26, 0.55) 35%, rgba(20, 22, 26, 0.2) 70%, rgba(20, 22, 26, 0.35) 100%);
}

.home-hero__content {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 600px;
  margin-inline: auto;
  padding: var(--space-96) var(--gutter-mobile) var(--space-64);
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-16);
}

.home-hero__eyebrow {
  margin-block-end: 0;
  color: var(--color-brass-400);
}

.home-hero__title {
  font-size: clamp(2.5rem, 7vw, var(--text-display-desktop));
  line-height: var(--leading-display-desktop);
  letter-spacing: var(--tracking-display);
  color: var(--color-cream-100);
  margin-block-end: 0;
  max-width: 600px;
  text-wrap: balance;
}

.home-hero__subtitle {
  font-size: var(--text-body-large);
  line-height: var(--leading-body-large);
  color: var(--color-cream-300);
  margin-block-end: 0;
  max-width: 480px;
}

.home-hero__cta {
  margin-block-start: var(--space-8);
}

.home-concept {
  background-color: var(--color-charcoal-900);
  padding-block: var(--space-96);
}

.home-concept__inner {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  gap: var(--space-64);
  align-items: start;
}

.home-concept__text {
  min-width: 0;
}

.home-concept__text h2 {
  max-width: 34ch;
  margin-block-end: var(--space-24);
}

.home-concept__text p {
  max-width: 68ch;
}

.home-concept__lead {
  font-size: var(--text-body-large);
  line-height: var(--leading-body-large);
  color: var(--color-cream-100);
}

.home-concept__points {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-24);
  padding-inline-start: var(--space-32);
  border-inline-start: 1px solid var(--color-brass-400-60);
}

.home-concept__point {
  display: flex;
  flex-direction: column;
  gap: var(--space-8);
}

.home-concept__point h3 {
  margin-block-end: 0;
  color: var(--color-cream-100);
}

.home-concept__point p {
  margin-block-end: 0;
  max-width: 52ch;
  color: var(--color-cream-300);
}

.home-concept__link {
  display: inline-flex;
  align-items: center;
  gap: var(--space-8);
  color: var(--color-brass-400);
  font-weight: 500;
  margin-block-start: var(--space-8);
  transition: color var(--transition-fast);
}

.home-concept__link:hover {
  color: var(--color-cream-100);
}

.home-dining {
  background-color: var(--color-charcoal-800);
  padding-block: var(--space-128);
}

.home-dining__header {
  max-width: 720px;
  margin-block-end: var(--space-48);
}

.home-dining__header h2 {
  margin-block-end: var(--space-16);
}

.home-dining__intro {
  color: var(--color-cream-300);
  max-width: 68ch;
}

.home-dining__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-32);
}

.home-dining-card {
  min-width: 0;
  display: flex;
  flex-direction: column;
  background-color: var(--color-charcoal-800);
  border: 1px solid var(--color-charcoal-700);
  border-radius: var(--radius-4);
  overflow: hidden;
}

.home-dining-card__media {
  aspect-ratio: 4 / 3;
  width: 100%;
  border: none;
  border-radius: 0;
  overflow: hidden;
}

.home-dining-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.9;
  transition: opacity var(--transition-fast);
}

.home-dining-card:hover .home-dining-card__media img {
  opacity: 1;
}

.home-dining-card__body {
  padding: var(--space-24);
  display: flex;
  flex-direction: column;
  gap: var(--space-12);
}

.home-dining-card__body h3 {
  margin-block-end: 0;
}

.home-dining-card__body p {
  margin-block-end: 0;
  max-width: 52ch;
  color: var(--color-cream-300);
}

.home-casino {
  background-color: var(--color-green-900);
  padding-block: var(--space-128);
  overflow: hidden;
}

.home-casino__inner {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  gap: var(--space-64);
  align-items: center;
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--gutter-mobile);
}

.home-casino__text {
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-16);
}

.home-casino__text h2 {
  margin-block-end: 0;
  color: var(--color-cream-100);
}

.home-casino__text p {
  margin-block-end: 0;
  max-width: 68ch;
  color: var(--color-cream-300);
}

.home-casino__cta {
  margin-block-start: var(--space-8);
}

.home-casino__media {
  min-width: 0;
  width: 100%;
  margin-inline-end: calc(-1 * var(--gutter-mobile));
}

.home-casino__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  aspect-ratio: 4 / 3;
  border-radius: var(--radius-4);
  border: 1px solid var(--color-charcoal-700);
}

.home-lounge {
  background-color: var(--color-wood-600);
  padding-block: var(--space-128);
}

.home-lounge__inner {
  max-width: 720px;
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  gap: var(--space-16);
  align-items: flex-start;
}

.home-lounge__inner h2 {
  margin-block-end: 0;
  color: var(--color-cream-100);
}

.home-lounge__lead {
  margin-block-end: 0;
  max-width: 68ch;
  color: var(--color-cream-100);
}

.home-lounge__list {
  list-style: none;
  padding-inline-start: 0;
  margin-block-end: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-12);
  width: 100%;
}

.home-lounge__list li {
  display: flex;
  align-items: flex-start;
  gap: var(--space-12);
  color: var(--color-cream-100);
  line-height: var(--leading-body);
}

.home-lounge__marker {
  flex-shrink: 0;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background-color: var(--color-brass-400);
  margin-block-start: 0.5em;
}

.home-lounge__link {
  display: inline-flex;
  align-items: center;
  gap: var(--space-8);
  color: var(--color-brass-400);
  font-weight: 500;
  margin-block-start: var(--space-8);
  transition: color var(--transition-fast);
}

.home-lounge__link:hover {
  color: var(--color-cream-100);
}

.home-events {
  background-color: var(--color-charcoal-800);
  padding-block: var(--space-128);
}

.home-events__header {
  max-width: 720px;
  margin-block-end: var(--space-48);
}

.home-events__header h2 {
  margin-block-end: var(--space-16);
}

.home-events__intro {
  color: var(--color-cream-300);
  max-width: 68ch;
}

.home-events__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-32);
}

.home-event-card {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-12);
  background-color: var(--color-charcoal-800);
  border: 1px solid var(--color-charcoal-700);
  border-radius: var(--radius-4);
  padding: var(--space-32);
  transition: border-color var(--transition-fast);
}

.home-event-card:hover {
  border-color: var(--color-burgundy-700);
}

.home-event-card__date {
  font-family: var(--font-body);
  font-size: var(--text-eyebrow);
  font-weight: 500;
  line-height: var(--leading-eyebrow);
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-burgundy-700);
}

.home-event-card h3 {
  margin-block-end: 0;
}

.home-event-card p {
  margin-block-end: 0;
  max-width: 52ch;
  color: var(--color-cream-300);
}

.home-event-card__link {
  display: inline-flex;
  align-items: center;
  gap: var(--space-8);
  color: var(--color-brass-400);
  font-weight: 500;
  margin-block-start: var(--space-8);
  transition: color var(--transition-fast);
}

.home-event-card__link:hover {
  color: var(--color-cream-100);
}

.home-gallery {
  background-color: var(--color-charcoal-900);
  padding-block: var(--space-128);
}

.home-gallery__header {
  max-width: 720px;
  margin-block-end: var(--space-48);
}

.home-gallery__header h2 {
  margin-block-end: var(--space-16);
}

.home-gallery__intro {
  color: var(--color-cream-300);
  max-width: 68ch;
}

.home-gallery__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-8);
}

.home-gallery__item {
  min-width: 0;
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  border-radius: var(--radius-4);
  border: 1px solid var(--color-charcoal-700);
  overflow: hidden;
  background-color: var(--color-charcoal-800);
}

.home-gallery__item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.9;
  transition: opacity var(--transition-fast);
}

.home-gallery__item:hover img {
  opacity: 1;
}

.home-gallery__link {
  display: inline-flex;
  align-items: center;
  gap: var(--space-8);
  color: var(--color-brass-400);
  font-weight: 500;
  margin-block-start: var(--space-32);
  transition: color var(--transition-fast);
}

.home-gallery__link:hover {
  color: var(--color-cream-100);
}

.home-reservation {
  background-color: var(--color-burgundy-700);
  padding-block: var(--space-128);
}

.home-reservation__inner {
  max-width: 600px;
  margin-inline: auto;
  padding-inline: var(--gutter-mobile);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-16);
  text-align: center;
}

.home-reservation__eyebrow {
  margin-block-end: 0;
  color: var(--color-brass-400);
}

.home-reservation__inner h2 {
  margin-block-end: 0;
  color: var(--color-cream-100);
}

.home-reservation__text {
  margin-block-end: 0;
  color: var(--color-cream-100);
  max-width: 52ch;
}

.home-reservation__text a {
  color: var(--color-cream-100);
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: color var(--transition-fast);
}

.home-reservation__text a:hover {
  color: var(--color-brass-400);
}

.home-reservation__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-16);
  margin-block-start: var(--space-8);
}

.home-reservation__btn {
  min-width: 160px;
}

@media (min-width: 768px) {
  .home-hero__content {
    padding-inline: var(--gutter-tablet);
  }

  .home-casino__inner {
    padding-inline: var(--gutter-tablet);
  }

  .home-casino__media {
    margin-inline-end: calc(-1 * var(--gutter-tablet));
  }

  .home-reservation__inner {
    padding-inline: var(--gutter-tablet);
  }
}

@media (min-width: 1024px) {
  .home-hero__content {
    padding-inline: var(--gutter-desktop);
  }

  .home-casino__inner {
    padding-inline: var(--gutter-desktop);
  }

  .home-casino__media {
    margin-inline-end: calc(-1 * var(--gutter-desktop));
  }

  .home-reservation__inner {
    padding-inline: var(--gutter-desktop);
  }
}

@media (max-width: 1023px) {
  .home-concept__inner {
    grid-template-columns: 1fr;
    gap: var(--space-48);
  }

  .home-concept__points {
    padding-inline-start: 0;
    border-inline-start: none;
    border-block-start: 1px solid var(--color-brass-400-60);
    padding-block-start: var(--space-32);
  }

  .home-casino__inner {
    grid-template-columns: 1fr;
    gap: var(--space-48);
  }

  .home-casino__media {
    margin-inline-end: 0;
    order: -1;
  }

  .home-casino__media img {
    aspect-ratio: 16 / 9;
  }
}

@media (max-width: 767px) {
  .home-hero {
    min-height: 70vh;
  }

  .home-hero__content {
    padding-block: var(--space-64) var(--space-48);
    gap: var(--space-12);
  }

  .home-hero__title {
    font-size: var(--text-display-mobile);
    line-height: var(--leading-display-mobile);
  }

  .home-hero__subtitle {
    font-size: var(--text-body);
    line-height: var(--leading-body-mobile);
  }

  .home-concept,
  .home-dining,
  .home-casino,
  .home-lounge,
  .home-events,
  .home-gallery,
  .home-reservation {
    padding-block: var(--space-96);
  }

  .home-dining__grid,
  .home-events__grid,
  .home-gallery__grid {
    grid-template-columns: 1fr;
  }

  .home-dining-card__body {
    padding: var(--space-24);
  }

  .home-event-card {
    padding: var(--space-24);
  }

  .home-gallery__item {
    aspect-ratio: 4 / 3;
  }

  .home-reservation__actions {
    flex-direction: column;
    width: 100%;
  }

  .home-reservation__btn {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .home-hero__content {
    animation: none;
    opacity: 1;
  }

  .home-dining-card__media img,
  .home-gallery__item img {
    transition: none;
  }
}


/* Gallery page styles — scoped to page main */

.gallery-hero {
  position: relative;
  min-height: 80vh;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  background-color: var(--color-charcoal-900);
}

.gallery-hero__image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
}

.gallery-hero__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(to bottom, rgba(20, 22, 26, 0.2) 0%, rgba(20, 22, 26, 0.55) 50%, rgba(20, 22, 26, 0.9) 100%);
}

.gallery-hero__content {
  position: relative;
  z-index: 2;
  padding-block: var(--space-48) var(--space-64);
  max-width: var(--container-text-max);
  margin-inline: 0;
  text-align: left;
}

.gallery-hero__content h1 {
  font-size: clamp(var(--text-h1-mobile), 6vw, var(--text-display-desktop));
  line-height: var(--leading-display-desktop);
  letter-spacing: var(--tracking-display);
  margin-block-end: var(--space-16);
  color: var(--color-cream-100);
}

.gallery-hero__content p {
  font-size: var(--text-body-large);
  line-height: var(--leading-body-large);
  color: var(--color-cream-100);
  max-width: 68ch;
  margin-block-end: 0;
}

.gallery-intro {
  padding-block: var(--space-128) var(--space-96);
  background-color: var(--color-charcoal-900);
}

.gallery-intro__block {
  text-align: center;
  max-width: var(--container-text-max);
  margin-inline: auto;
}

.gallery-intro__rule {
  margin-block: 0 var(--space-24);
  max-width: 120px;
  margin-inline: auto;
}

.gallery-intro__block h2 {
  margin-block-end: var(--space-16);
}

.gallery-intro__block p {
  max-width: 68ch;
  margin-inline: auto;
  margin-block-end: 0;
}

.gallery-grid-section {
  padding-block: var(--space-96) var(--space-128);
  background-color: var(--color-charcoal-800);
}

.gallery-grid-section__header {
  display: flex;
  flex-direction: column;
  gap: var(--space-24);
  margin-block-end: var(--space-48);
}

.gallery-grid-section__heading {
  text-align: left;
}

.gallery-grid-section__heading h2 {
  margin-block-end: 0;
}

.gallery-grid-section__intro {
  max-width: 68ch;
  margin-inline: 0;
  margin-block-end: 0;
  color: var(--color-cream-300);
}

.gallery-filters {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-8);
}

.gallery-filter {
  font-family: var(--font-body);
  font-size: var(--text-small);
  font-weight: 500;
  line-height: var(--leading-small);
  color: var(--color-brass-400);
  background-color: transparent;
  border: 1px solid var(--color-brass-400);
  border-radius: var(--radius-2);
  padding: var(--space-8) var(--space-16);
  min-height: 44px;
  transition: background-color var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);
  cursor: pointer;
}

.gallery-filter:hover {
  background-color: var(--color-brass-400);
  color: var(--color-charcoal-900);
}

.gallery-filter.is-active {
  background-color: var(--color-green-700);
  border-color: var(--color-green-700);
  color: var(--color-cream-100);
}

.gallery-filter:focus-visible {
  outline: var(--focus-ring);
  outline-offset: var(--focus-offset);
}

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

.gallery-card {
  display: flex;
  flex-direction: column;
  background-color: var(--color-charcoal-800);
  border: 1px solid var(--color-charcoal-700);
  border-radius: var(--radius-4);
  overflow: hidden;
  min-width: 0;
  transition: opacity var(--transition-fast);
}

.gallery-card.is-hidden {
  display: none;
}

.gallery-card__media {
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border: none;
  border-radius: 0;
}

.gallery-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.9;
  transition: opacity var(--transition-fast);
}

.gallery-card:hover .gallery-card__media img {
  opacity: 1;
}

.gallery-card__body {
  padding: var(--space-16) var(--space-24) var(--space-24);
  display: flex;
  flex-direction: column;
  gap: var(--space-8);
}

.gallery-card__category {
  font-family: var(--font-body);
  font-size: var(--text-eyebrow);
  font-weight: 500;
  line-height: var(--leading-eyebrow);
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-brass-400);
}

.gallery-card__caption {
  font-size: var(--text-caption);
  line-height: var(--leading-caption);
  color: var(--color-cream-300);
  margin-block-end: 0;
}

.atmosphere-spotlight {
  padding-block: var(--space-128);
  background-color: var(--color-charcoal-900);
}

.atmosphere-spotlight__grid {
  display: grid;
  grid-template-columns: 7fr 5fr;
  gap: var(--space-48);
  align-items: center;
}

.atmosphere-spotlight__text {
  min-width: 0;
}

.atmosphere-spotlight__text h2 {
  margin-block-end: var(--space-16);
}

.atmosphere-spotlight__text p {
  max-width: 68ch;
  margin-block-end: 0;
}

.atmosphere-spotlight__media {
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border-radius: var(--radius-4);
  border: 1px solid var(--color-charcoal-700);
  min-width: 0;
}

.atmosphere-spotlight__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.casino-spotlight {
  padding-block: 0;
  background-color: var(--color-charcoal-900);
}

.casino-spotlight__media {
  width: 100%;
  margin-block-end: var(--space-48);
}

.casino-spotlight__media img {
  width: 100%;
  height: auto;
  display: block;
}

.casino-spotlight__text {
  max-width: var(--container-text-max);
  margin-inline: auto;
  padding-block-end: var(--space-128);
  text-align: left;
}

.casino-spotlight__text h2 {
  margin-block-end: var(--space-16);
}

.casino-spotlight__text p {
  max-width: 68ch;
  margin-block-end: 0;
}

.restaurant-highlight {
  padding-block: var(--space-128);
  background-color: var(--color-charcoal-800);
}

.restaurant-highlight__grid {
  display: grid;
  grid-template-columns: 5fr 7fr;
  gap: var(--space-48);
  align-items: center;
}

.restaurant-highlight__media {
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border-radius: var(--radius-4);
  border: 1px solid var(--color-charcoal-700);
  min-width: 0;
}

.restaurant-highlight__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.restaurant-highlight__text {
  min-width: 0;
}

.restaurant-highlight__text h2 {
  margin-block-end: var(--space-16);
}

.restaurant-highlight__text p {
  max-width: 68ch;
  margin-block-end: 0;
}

.testimonial {
  padding-block: var(--space-96);
  background-color: var(--color-charcoal-800);
}

.testimonial__block {
  text-align: center;
  max-width: var(--container-text-max);
  margin-inline: auto;
}

.testimonial__quote {
  border-inline-start: none;
  padding-inline-start: 0;
  margin-block-end: 0;
  color: var(--color-cream-100);
  font-style: normal;
}

.testimonial__quote p {
  font-family: var(--font-heading);
  font-size: var(--text-h2-desktop);
  line-height: var(--leading-h2-desktop);
  max-width: 60ch;
  margin-inline: auto;
  margin-block-end: var(--space-16);
  color: var(--color-cream-100);
}

.testimonial__attribution {
  font-family: var(--font-body);
  font-size: var(--text-small);
  line-height: var(--leading-small);
  color: var(--color-cream-300);
}

.cta {
  padding-block: var(--space-128);
  background-color: var(--color-charcoal-900);
}

.cta__panel {
  background-color: var(--color-cream-100);
  color: var(--color-ink-900);
  border-radius: var(--radius-4);
  padding: var(--space-64) var(--space-48);
  text-align: center;
  max-width: var(--container-text-max);
  margin-inline: auto;
}

.cta__rule {
  margin-block: 0 var(--space-24);
  max-width: 120px;
  margin-inline: auto;
  border-top-color: var(--color-brass-400-60);
}

.cta__panel h2 {
  color: var(--color-ink-900);
  margin-block-end: var(--space-16);
}

.cta__panel p {
  color: var(--color-ink-900);
  max-width: 68ch;
  margin-inline: auto;
  margin-block-end: var(--space-32);
}

.cta__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-16);
}

.cta__actions .btn {
  min-width: 160px;
}

@media (min-width: 768px) and (max-width: 1023px) {
  .gallery-hero {
    min-height: 70vh;
  }

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

  .atmosphere-spotlight__grid,
  .restaurant-highlight__grid {
    grid-template-columns: 1fr;
    gap: var(--space-32);
  }

  .atmosphere-spotlight__media,
  .restaurant-highlight__media {
    order: -1;
  }

  .testimonial__quote p {
    font-size: var(--text-h2-mobile);
    line-height: var(--leading-h2-mobile);
  }
}

@media (max-width: 767px) {
  .gallery-hero {
    min-height: 70vh;
  }

  .gallery-hero__content {
    padding-block: var(--space-20) var(--space-48);
  }

  .gallery-hero__content h1 {
    font-size: var(--text-h1-mobile);
    line-height: var(--leading-h1-mobile);
  }

  .gallery-hero__content p {
    font-size: var(--text-body);
    line-height: var(--leading-body-mobile);
  }

  .gallery-intro {
    padding-block: var(--space-96) var(--space-64);
  }

  .gallery-grid-section {
    padding-block: var(--space-64) var(--space-96);
  }

  .gallery-grid {
    grid-template-columns: 1fr;
  }

  .gallery-card__body {
    padding: var(--space-16) var(--space-20) var(--space-20);
  }

  .atmosphere-spotlight,
  .restaurant-highlight {
    padding-block: var(--space-96);
  }

  .atmosphere-spotlight__grid,
  .restaurant-highlight__grid {
    grid-template-columns: 1fr;
    gap: var(--space-32);
  }

  .atmosphere-spotlight__media,
  .restaurant-highlight__media {
    order: -1;
  }

  .casino-spotlight__text {
    padding-block-end: var(--space-96);
    padding-inline: var(--gutter-mobile);
  }

  .testimonial {
    padding-block: var(--space-64);
  }

  .testimonial__quote p {
    font-size: var(--text-h2-mobile);
    line-height: var(--leading-h2-mobile);
  }

  .cta {
    padding-block: var(--space-96);
  }

  .cta__panel {
    padding: var(--space-48) var(--space-20);
  }

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

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


/* Restaurant page styles */
.restaurant-page {
  overflow-x: hidden;
}

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

@media (min-width: 1024px) {
  .section-pad {
    padding-block: var(--space-128);
  }
}

/* Hero */
.restaurant-hero {
  position: relative;
  min-height: 70vh;
  display: flex;
  align-items: flex-end;
  background-color: var(--color-charcoal-900);
}

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

.restaurant-hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.restaurant-hero__gradient {
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(20, 22, 26, 0) 0%, rgba(20, 22, 26, 0.9) 100%);
}

.restaurant-hero__content {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: var(--container-text-max);
  margin-inline: auto;
  padding-inline: var(--gutter-mobile);
  padding-block-end: var(--space-48);
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-16);
}

.restaurant-hero__content .eyebrow {
  margin-block-end: 0;
}

.restaurant-hero__content h1 {
  margin-block-end: 0;
  max-width: 720px;
}

.restaurant-hero__lead {
  max-width: 720px;
  margin-block-end: 0;
  color: var(--color-cream-100);
}

@media (min-width: 768px) {
  .restaurant-hero {
    min-height: 80vh;
  }

  .restaurant-hero__content {
    padding-inline: var(--gutter-tablet);
    padding-block-end: var(--space-64);
  }
}

@media (min-width: 1024px) {
  .restaurant-hero {
    min-height: 90vh;
  }

  .restaurant-hero__content {
    padding-inline: var(--gutter-desktop);
    padding-block-end: var(--space-96);
  }
}

/* Philosophy */
.restaurant-philosophy__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-48);
}

.restaurant-philosophy__main,
.restaurant-philosophy__supporting {
  min-width: 0;
}

.restaurant-philosophy__main p,
.restaurant-philosophy__supporting p {
  max-width: 68ch;
}

.restaurant-philosophy__main p:last-child,
.restaurant-philosophy__supporting p:last-child {
  margin-block-end: 0;
}

.restaurant-philosophy__rule {
  margin-block: 0 var(--space-24);
}

@media (min-width: 768px) {
  .restaurant-philosophy__grid {
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: var(--space-32);
  }

  .restaurant-philosophy__main {
    grid-column: 1 / span 7;
  }

  .restaurant-philosophy__supporting {
    grid-column: 8 / span 5;
  }

  .restaurant-philosophy__supporting p {
    max-width: 52ch;
  }
}

/* Dining Spaces */
.restaurant-spaces .container {
  display: flex;
  flex-direction: column;
  gap: var(--space-64);
}

.restaurant-spaces__unit {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-32);
  align-items: start;
}

.restaurant-spaces__media {
  width: 100%;
  min-width: 0;
}

.restaurant-spaces__media img {
  width: 100%;
  height: auto;
  border-radius: var(--radius-4);
  border: 1px solid var(--color-charcoal-700);
  object-fit: cover;
}

.restaurant-spaces__text {
  min-width: 0;
}

.restaurant-spaces__text p {
  max-width: 60ch;
  margin-block-end: 0;
}

@media (min-width: 768px) {
  .restaurant-spaces__unit {
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: var(--space-48);
  }

  .restaurant-spaces__unit--main .restaurant-spaces__media {
    grid-column: 1 / span 7;
  }

  .restaurant-spaces__unit--main .restaurant-spaces__text {
    grid-column: 8 / span 5;
  }

  .restaurant-spaces__unit--salon .restaurant-spaces__text {
    grid-column: 1 / span 7;
  }

  .restaurant-spaces__unit--salon .restaurant-spaces__media {
    grid-column: 8 / span 5;
  }
}

/* Menu Highlights */
.restaurant-menu-highlights__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-48);
}

.restaurant-menu-highlights__column {
  min-width: 0;
}

.restaurant-menu-highlights__column h3 {
  color: var(--color-burgundy-700);
  margin-block-end: var(--space-24);
}

.restaurant-menu-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-24);
}

.restaurant-menu-item {
  display: flex;
  flex-direction: column;
  gap: var(--space-8);
  padding-block-end: var(--space-16);
  border-bottom: 1px solid var(--color-border-light);
}

.restaurant-menu-item:last-child {
  border-bottom: none;
  padding-block-end: 0;
}

.restaurant-menu-item__name {
  font-family: var(--font-heading);
  font-size: 18px;
  font-weight: 500;
  line-height: var(--leading-h4);
  color: var(--color-ink-900);
}

.restaurant-menu-item__desc {
  font-size: var(--text-small);
  line-height: var(--leading-small);
  color: var(--color-ink-900);
  opacity: 0.75;
  max-width: 52ch;
}

@media (min-width: 768px) {
  .restaurant-menu-highlights__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-32);
  }
}

/* Wine Cellar */
.restaurant-wine__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-48);
}

.restaurant-wine__column {
  min-width: 0;
}

.restaurant-wine__column p {
  max-width: 60ch;
}

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

@media (min-width: 768px) {
  .restaurant-wine__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-64);
  }
}

/* Casino Connection */
.restaurant-casino__content {
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-16);
}

.restaurant-casino__content p {
  max-width: 68ch;
  margin-inline: auto;
  margin-block-end: 0;
}

.restaurant-casino__link {
  color: var(--color-cream-300);
  text-decoration: none;
  border-bottom: 1px solid var(--color-brass-400-60);
  padding-block-end: var(--space-4);
  transition: color var(--transition-fast), border-color var(--transition-fast);
}

.restaurant-casino__link:hover {
  color: var(--color-cream-100);
  border-bottom-color: var(--color-brass-400);
}

/* Reservations */
.restaurant-reservations__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-48);
}

.restaurant-reservations__form-column,
.restaurant-reservations__info-column {
  min-width: 0;
}

.restaurant-reservations__form-column > p:last-of-type {
  margin-block-end: var(--space-32);
}

.restaurant-reservation-form {
  display: flex;
  flex-direction: column;
  gap: var(--space-16);
}

.restaurant-reservation-form__field {
  display: flex;
  flex-direction: column;
  gap: var(--space-8);
}

.restaurant-reservation-form__field label {
  margin-block-end: 0;
  color: var(--color-ink-900);
}

.restaurant-reservation-form__row {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-16);
}

.restaurant-reservation-form__submit {
  align-self: flex-start;
  margin-block-start: var(--space-8);
}

.restaurant-reservation-form__success {
  margin-block-start: var(--space-16);
  color: var(--color-green-700);
  font-weight: 500;
}

.restaurant-hours {
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-12);
}

.restaurant-hours__row {
  display: flex;
  justify-content: space-between;
  gap: var(--space-16);
  padding-block-end: var(--space-12);
  border-bottom: 1px solid var(--color-border-light);
}

.restaurant-hours__row:last-child {
  border-bottom: none;
  padding-block-end: 0;
}

.restaurant-hours__row dt,
.restaurant-hours__row dd {
  font-size: var(--text-body);
  line-height: var(--leading-body);
  color: var(--color-ink-900);
}

.restaurant-reservations__info-column h3 {
  color: var(--color-ink-900);
  margin-block-end: var(--space-16);
}

.restaurant-reservations__info-column h3:not(:first-child) {
  margin-block-start: var(--space-32);
}

.restaurant-reservations__info-column p {
  color: var(--color-ink-900);
  margin-block-end: var(--space-8);
}

.restaurant-reservations__info-column a {
  color: var(--color-ink-900);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.restaurant-reservations__info-column a:hover {
  color: var(--color-burgundy-700);
}

@media (min-width: 768px) {
  .restaurant-reservations__grid {
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: var(--space-64);
  }

  .restaurant-reservations__form-column {
    grid-column: 1 / span 7;
  }

  .restaurant-reservations__info-column {
    grid-column: 8 / span 5;
  }

  .restaurant-reservation-form__row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Visit Us */
.restaurant-visit__content {
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-16);
}

.restaurant-visit__content p {
  max-width: 68ch;
  margin-inline: auto;
  margin-block-end: 0;
}

.restaurant-visit__content .btn {
  margin-block-start: var(--space-8);
}

/* Focus states */
.restaurant-page a:focus-visible,
.restaurant-page button:focus-visible,
.restaurant-page input:focus-visible,
.restaurant-page select:focus-visible {
  outline: var(--focus-ring);
  outline-offset: var(--focus-offset);
}

/* Scroll reveal */
.restaurant-reveal {
  opacity: 0;
  transform: translateY(12px);
  transition: opacity 180ms ease-out, transform 180ms ease-out;
}

.restaurant-reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
  .restaurant-reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }
}


/* About page styles — scoped to page-owned components */

/* Hero */
.about-hero {
  position: relative;
  min-height: 80vh;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  background-color: var(--color-charcoal-900);
}

.about-hero__media {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.about-hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.about-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(20, 22, 26, 0.9) 0%, rgba(20, 22, 26, 0.35) 45%, rgba(20, 22, 26, 0.2) 100%);
}

.about-hero__content {
  position: relative;
  z-index: 1;
  width: 100%;
  padding-block: var(--space-96) var(--space-64);
}

.about-hero__text {
  max-width: 720px;
  margin-inline: 0;
  text-align: left;
}

.about-hero__text h1 {
  font-size: clamp(2.5rem, 5vw, 4rem);
  line-height: 1.05;
  letter-spacing: var(--tracking-display);
  margin-block-end: var(--space-24);
  color: var(--color-cream-100);
}

.about-hero__text p {
  font-size: var(--text-body-large);
  line-height: var(--leading-body-large);
  color: var(--color-cream-300);
  max-width: 68ch;
  margin-block-end: 0;
}

/* Our Story */
.about-story {
  background-color: var(--color-charcoal-900);
  padding-block: var(--space-128);
}

.about-story__inner {
  max-width: 720px;
  margin-inline: auto;
  text-align: center;
  border-top: 1px solid var(--color-brass-400-60);
  padding-top: var(--space-48);
}

.about-story__inner .eyebrow {
  margin-block-end: var(--space-12);
}

.about-story__inner h2 {
  margin-block-end: var(--space-24);
}

.about-story__inner p {
  max-width: 68ch;
  margin-inline: auto;
  margin-block-end: var(--space-16);
}

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

/* The Space */
.about-space {
  background-color: var(--color-charcoal-800);
  padding-block: var(--space-128);
}

.about-space__intro {
  max-width: 720px;
  margin-inline: auto;
  text-align: center;
  margin-block-end: var(--space-64);
}

.about-space__intro .eyebrow {
  margin-block-end: var(--space-12);
}

.about-space__intro h2 {
  margin-block-end: 0;
}

.about-space__row {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-32);
  align-items: center;
  margin-block-end: var(--space-64);
}

.about-space__row:last-child {
  margin-block-end: 0;
}

.about-space__text {
  grid-column: span 7;
  min-width: 0;
  max-width: 360px;
}

.about-space__text h3 {
  margin-block-end: var(--space-12);
}

.about-space__text p {
  max-width: 52ch;
  margin-block-end: 0;
  color: var(--color-cream-300);
}

.about-space__media {
  grid-column: span 5;
  min-width: 0;
  border-radius: var(--radius-4);
  border: 1px solid var(--color-charcoal-700);
  overflow: hidden;
  background-color: var(--color-charcoal-900);
}

.about-space__media img {
  width: 100%;
  height: auto;
  object-fit: cover;
  aspect-ratio: 4 / 3;
  display: block;
  opacity: 0.9;
  transition: opacity var(--transition-fast);
}

.about-space__media:hover img {
  opacity: 1;
}

/* Alternate rows: image left, text right */
.about-space__row--lounge .about-space__text {
  grid-column: 6 / span 7;
  order: 2;
}

.about-space__row--lounge .about-space__media {
  grid-column: 1 / span 5;
  order: 1;
}

/* The Team */
.about-team {
  background-color: var(--color-wood-600);
  color: var(--color-cream-100);
  padding-block: var(--space-128);
}

.about-team__inner {
  width: 100%;
}

.about-team__heading {
  max-width: 720px;
  margin-inline: auto;
  text-align: center;
  margin-block-end: var(--space-64);
}

.about-team__heading .eyebrow {
  color: var(--color-brass-400);
  margin-block-end: var(--space-12);
}

.about-team__heading h2 {
  color: var(--color-cream-100);
  margin-block-end: 0;
}

.about-team__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-48);
  max-width: 720px;
  margin-inline: auto;
}

.about-team__profile {
  min-width: 0;
  text-align: center;
}

.about-team__profile h3 {
  color: var(--color-cream-100);
  margin-block-end: var(--space-12);
}

.about-team__profile p {
  color: var(--color-cream-300);
  max-width: 68ch;
  margin-inline: auto;
  margin-block-end: 0;
}

/* Our Values */
.about-values {
  background-color: var(--color-charcoal-800);
  padding-block: var(--space-128);
}

.about-values__heading {
  max-width: 720px;
  margin-inline: auto;
  text-align: center;
  margin-block-end: var(--space-64);
}

.about-values__heading .eyebrow {
  margin-block-end: var(--space-12);
}

.about-values__heading h2 {
  margin-block-end: 0;
}

.about-values__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-48);
  max-width: 1200px;
  margin-inline: auto;
}

.about-values__item {
  min-width: 0;
  padding-inline: var(--space-24);
  border-left: 1px solid var(--color-brass-400-60);
}

.about-values__item h3 {
  margin-block-end: var(--space-12);
}

.about-values__item p {
  max-width: 52ch;
  color: var(--color-cream-300);
  margin-block-end: 0;
}

/* Canberra Connection */
.about-canberra {
  background-color: var(--color-charcoal-900);
  padding-block: var(--space-128);
}

.about-canberra__text {
  max-width: 720px;
  margin-inline: auto;
  text-align: center;
  margin-block-end: var(--space-64);
}

.about-canberra__text .eyebrow {
  margin-block-end: var(--space-12);
}

.about-canberra__text h2 {
  margin-block-end: var(--space-24);
}

.about-canberra__text p {
  max-width: 68ch;
  margin-inline: auto;
  margin-block-end: 0;
  color: var(--color-cream-300);
}

.about-canberra__map {
  width: 100%;
  max-width: 1200px;
  margin-inline: auto;
  border-radius: var(--radius-4);
  border: 1px solid var(--color-charcoal-700);
  overflow: hidden;
  aspect-ratio: 16 / 7;
  min-height: 320px;
  background-color: var(--color-charcoal-800);
}

.about-canberra__map iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}

/* Visit Us */
.about-visit {
  background-color: var(--color-charcoal-900);
  padding-block: var(--space-128);
}

.about-visit__panel {
  background-color: var(--color-cream-100);
  color: var(--color-ink-900);
  border-radius: var(--radius-4);
  padding: var(--space-64);
  max-width: 720px;
  margin-inline: auto;
  text-align: center;
}

.about-visit__panel .eyebrow {
  color: var(--color-brass-400);
  margin-block-end: var(--space-12);
}

.about-visit__panel h2 {
  color: var(--color-ink-900);
  margin-block-end: var(--space-24);
}

.about-visit__panel p {
  color: var(--color-ink-900);
  max-width: 68ch;
  margin-inline: auto;
  margin-block-end: var(--space-32);
}

.about-visit__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-16);
}

.about-visit__actions .btn {
  min-width: 180px;
}

/* Scroll reveal base state */
.about-reveal {
  opacity: 0;
  transform: translateY(12px);
  transition: opacity 180ms ease-out, transform 180ms ease-out;
}

.about-reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
  .about-reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

/* Responsive */
@media (max-width: 1023px) {
  .about-space__row {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: var(--space-24);
  }

  .about-space__text {
    grid-column: span 4;
    max-width: none;
  }

  .about-space__media {
    grid-column: span 2;
  }

  .about-space__row--lounge .about-space__text {
    grid-column: 3 / span 4;
    order: 2;
  }

  .about-space__row--lounge .about-space__media {
    grid-column: 1 / span 2;
    order: 1;
  }

  .about-values__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-32);
  }

  .about-values__item {
    border-left: none;
    border-top: 1px solid var(--color-brass-400-60);
    padding-inline: 0;
    padding-top: var(--space-24);
  }

  .about-values__item:first-child {
    border-top: none;
    padding-top: 0;
  }
}

@media (max-width: 767px) {
  .about-hero {
    min-height: 70vh;
  }

  .about-hero__content {
    padding-block: var(--space-64) var(--space-48);
  }

  .about-hero__text h1 {
    font-size: var(--text-display-mobile);
    line-height: var(--leading-display-mobile);
  }

  .about-hero__text p {
    font-size: var(--text-body);
    line-height: var(--leading-body-mobile);
  }

  .about-story,
  .about-space,
  .about-team,
  .about-values,
  .about-canberra,
  .about-visit {
    padding-block: var(--space-96);
  }

  .about-space__row {
    grid-template-columns: 1fr;
    gap: var(--space-24);
    margin-block-end: var(--space-48);
  }

  .about-space__text,
  .about-space__row--lounge .about-space__text {
    grid-column: 1;
    order: 2;
    max-width: none;
  }

  .about-space__media,
  .about-space__row--lounge .about-space__media {
    grid-column: 1;
    order: 1;
  }

  .about-team__grid {
    grid-template-columns: 1fr;
    gap: var(--space-32);
  }

  .about-values__grid {
    grid-template-columns: 1fr;
    gap: var(--space-32);
  }

  .about-values__item {
    border-top: 1px solid var(--color-brass-400-60);
    padding-top: var(--space-24);
  }

  .about-values__item:first-child {
    border-top: none;
    padding-top: 0;
  }

  .about-canberra__map {
    aspect-ratio: 4 / 3;
    min-height: 240px;
  }

  .about-visit__panel {
    padding: var(--space-48) var(--space-24);
  }

  .about-visit__actions {
    flex-direction: column;
    align-items: stretch;
  }

  .about-visit__actions .btn {
    width: 100%;
    min-width: 0;
  }
}

@media (max-width: 479px) {
  .about-hero {
    min-height: 70vh;
  }

  .about-hero__text h1 {
    font-size: 2.25rem;
  }

  .about-story__inner,
  .about-space__intro,
  .about-team__heading,
  .about-values__heading,
  .about-canberra__text {
    padding-inline: var(--gutter-mobile);
  }
}


/* Casino Lounge page-owned styles */

#casino-lounge-main {
  overflow: hidden;
}

/* Lounge Hero */
.lounge-hero {
  position: relative;
  min-height: 100vh;
  display: flex;
  align-items: flex-end;
  background-color: var(--color-charcoal-900);
}

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

.lounge-hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.lounge-hero__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(to top, rgba(20, 22, 26, 0.9) 0%, rgba(20, 22, 26, 0.45) 45%, rgba(20, 22, 26, 0.2) 100%);
  pointer-events: none;
}

.lounge-hero__content {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--gutter-mobile);
  padding-block-end: clamp(64px, 10vw, 128px);
  text-align: center;
}

.lounge-hero__eyebrow {
  margin-block-end: var(--space-12);
}

.lounge-hero__title {
  font-size: clamp(40px, 6vw, 64px);
  line-height: var(--leading-display-desktop);
  letter-spacing: var(--tracking-display);
  color: var(--color-cream-100);
  margin-block-end: var(--space-24);
  max-width: 12ch;
  margin-inline: auto;
}

.lounge-hero__lead {
  font-size: var(--text-body-large);
  line-height: var(--leading-body-large);
  color: var(--color-cream-300);
  max-width: 68ch;
  margin-inline: auto;
  margin-block-end: 0;
}

/* The Space */
.lounge-space {
  background-color: var(--color-charcoal-900);
  padding-block: var(--space-96);
}

.lounge-space__inner {
  display: flex;
  flex-direction: column;
  gap: var(--space-48);
}

.lounge-space__rule {
  margin-block: 0;
}

.lounge-space__content {
  width: 100%;
}

.lounge-space__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-32);
  margin-block-start: var(--space-32);
}

.lounge-space__primary,
.lounge-space__secondary {
  min-width: 0;
}

.lounge-space__secondary {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-32);
}

.lounge-space h3 {
  margin-block-end: var(--space-12);
}

.lounge-space p {
  max-width: 68ch;
  color: var(--color-cream-100);
}

.lounge-space__secondary p {
  color: var(--color-cream-300);
}

/* Cocktail Program */
.cocktail-program {
  background-color: var(--color-charcoal-800);
  padding-block: var(--space-96);
}

.cocktail-program__inner {
  display: flex;
  flex-direction: column;
  gap: var(--space-48);
}

.cocktail-program__heading {
  width: 100%;
}

.cocktail-program__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-32);
}

.cocktail-program__signatures,
.cocktail-program__supporting {
  min-width: 0;
}

.cocktail-program__list {
  list-style: none;
  padding-inline-start: 0;
  margin-block-end: var(--space-24);
  display: grid;
  gap: var(--space-16);
}

.cocktail-program__list li {
  position: relative;
  padding-inline-start: var(--space-24);
  color: var(--color-cream-100);
  line-height: var(--leading-body);
}

.cocktail-program__list li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.7em;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background-color: var(--color-brass-400);
}

.cocktail-program__note {
  color: var(--color-cream-300);
  font-size: var(--text-small);
  max-width: 52ch;
}

.cocktail-program__supporting {
  display: grid;
  gap: var(--space-24);
}

.cocktail-program__supporting h3 {
  margin-block-end: var(--space-8);
}

.cocktail-program__supporting p {
  color: var(--color-cream-300);
  max-width: 68ch;
}

/* Live Music */
.live-music {
  background-color: var(--color-green-900);
  padding-block: var(--space-96);
}

.live-music__inner {
  display: flex;
  flex-direction: column;
  gap: var(--space-48);
}

.live-music__rule {
  margin-block: 0;
}

.live-music__content {
  width: 100%;
  display: grid;
  gap: var(--space-32);
}

.live-music__content h3 {
  margin-block-end: var(--space-12);
}

.live-music__content p {
  max-width: 68ch;
  color: var(--color-cream-100);
}

.live-music__experience p {
  color: var(--color-cream-300);
}

/* Small Plates */
.small-plates {
  background-color: var(--color-cream-100);
  color: var(--color-ink-900);
  padding-block: var(--space-96);
}

.small-plates__inner {
  display: flex;
  flex-direction: column;
  gap: var(--space-48);
}

.small-plates__heading {
  width: 100%;
}

.small-plates__heading .eyebrow {
  color: var(--color-brass-400);
}

.small-plates__heading h2 {
  color: var(--color-ink-900);
}

.small-plates__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-32);
}

.small-plates__column {
  min-width: 0;
  display: grid;
  gap: var(--space-24);
  align-content: start;
}

.small-plates__item h3 {
  color: var(--color-ink-900);
  margin-block-end: var(--space-8);
}

.small-plates__item p {
  color: var(--color-ink-900);
  max-width: 52ch;
}

.small-plates__note {
  color: var(--color-ink-900);
  font-size: var(--text-small);
  max-width: 52ch;
  border-inline-start: 1px solid var(--color-burgundy-700);
  padding-inline-start: var(--space-16);
}

/* Gallery */
.lounge-gallery {
  background-color: var(--color-charcoal-900);
  padding-block: var(--space-96);
}

.lounge-gallery__inner {
  display: flex;
  flex-direction: column;
  gap: var(--space-48);
}

.lounge-gallery__heading {
  width: 100%;
}

.lounge-gallery__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-8);
}

.lounge-gallery__item {
  margin-block-end: 0;
  min-width: 0;
}

.lounge-gallery__frame {
  border-radius: var(--radius-4);
  border: 1px solid var(--color-charcoal-700);
  overflow: hidden;
  background-color: var(--color-charcoal-800);
}

.lounge-gallery__frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  opacity: 0.9;
  transition: opacity var(--transition-fast);
}

.lounge-gallery__item:hover .lounge-gallery__frame img {
  opacity: 1;
}

.lounge-gallery__item figcaption {
  font-size: var(--text-caption);
  line-height: var(--leading-caption);
  color: var(--color-cream-300);
  margin-block-start: var(--space-8);
}

/* Practical Details */
.practical-details {
  background-color: var(--color-charcoal-900);
  padding-block: var(--space-96);
}

.practical-details__inner {
  width: 100%;
}

.practical-details__panel {
  background-color: var(--color-cream-100);
  color: var(--color-ink-900);
  border-radius: var(--radius-4);
  padding: var(--space-32);
  display: flex;
  flex-direction: column;
  gap: var(--space-48);
}

.practical-details__heading {
  width: 100%;
}

.practical-details__heading .eyebrow {
  color: var(--color-brass-400);
}

.practical-details__heading h2 {
  color: var(--color-ink-900);
}

.practical-details__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-32);
}

.practical-details__column {
  min-width: 0;
}

.practical-details__column h3 {
  color: var(--color-ink-900);
  margin-block-end: var(--space-12);
}

.practical-details__column p {
  color: var(--color-ink-900);
  max-width: 68ch;
}

.practical-details__column a {
  color: var(--color-ink-900);
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: color var(--transition-fast);
}

.practical-details__column a:hover {
  color: var(--color-burgundy-700);
}

.practical-details__cta {
  margin-block-start: var(--space-24);
  text-decoration: none;
}

/* Final Invitation */
.final-invitation {
  background-color: var(--color-charcoal-900);
  padding-block: var(--space-96);
}

.final-invitation__inner {
  display: flex;
  flex-direction: column;
  gap: var(--space-48);
}

.final-invitation__rule {
  margin-block: 0;
}

.final-invitation__content {
  width: 100%;
  max-width: 720px;
  margin-inline: auto;
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: var(--space-24);
}

.final-invitation__content h2 {
  margin-block-end: 0;
}

.final-invitation__content p {
  max-width: 68ch;
  margin-inline: auto;
  margin-block-end: 0;
}

.final-invitation__actions {
  display: flex;
  flex-direction: column;
  gap: var(--space-16);
  justify-content: center;
  margin-block-start: var(--space-8);
}

/* Tablet (768px+) */
@media (min-width: 768px) {
  .lounge-hero__content {
    padding-inline: var(--gutter-tablet);
    text-align: left;
  }

  .lounge-hero__title {
    margin-inline: 0;
    max-width: 14ch;
  }

  .lounge-hero__lead {
    margin-inline: 0;
  }

  .lounge-space__grid {
    grid-template-columns: 8fr 4fr;
    gap: var(--space-48);
  }

  .lounge-space__secondary {
    grid-template-columns: 1fr;
  }

  .cocktail-program__grid {
    grid-template-columns: 5fr 7fr;
    gap: var(--space-48);
  }

  .live-music__content {
    grid-template-columns: 7fr;
    margin-inline-start: calc(2 / 12 * 100%);
  }

  .small-plates__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-48);
  }

  .lounge-gallery__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-8);
  }

  .practical-details__panel {
    padding: var(--space-48);
  }

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

  .final-invitation__actions {
    flex-direction: row;
    gap: var(--space-16);
  }
}

/* Desktop (1024px+) */
@media (min-width: 1024px) {
  .lounge-hero__content {
    padding-inline: var(--gutter-desktop);
  }

  .lounge-space {
    padding-block: var(--space-128);
  }

  .cocktail-program {
    padding-block: var(--space-128);
  }

  .live-music {
    padding-block: var(--space-128);
  }

  .small-plates {
    padding-block: var(--space-128);
  }

  .lounge-gallery {
    padding-block: var(--space-128);
  }

  .practical-details {
    padding-block: var(--space-128);
  }

  .final-invitation {
    padding-block: var(--space-128);
  }

  .lounge-space__grid {
    gap: var(--space-64);
  }

  .cocktail-program__grid {
    gap: var(--space-64);
  }

  .live-music__content {
    grid-template-columns: 7fr;
    margin-inline-start: calc(2 / 12 * 100%);
  }

  .small-plates__grid {
    gap: var(--space-64);
  }

  .practical-details__grid {
    gap: var(--space-48);
  }
}

/* Mobile-specific adjustments */
@media (max-width: 767px) {
  .lounge-hero {
    min-height: 70vh;
  }

  .lounge-hero__content {
    padding-inline: var(--gutter-mobile);
    padding-block-end: var(--space-64);
    text-align: center;
  }

  .lounge-hero__title {
    font-size: var(--text-display-mobile);
    line-height: var(--leading-display-mobile);
    max-width: 100%;
    margin-inline: auto;
  }

  .lounge-hero__lead {
    display: none;
  }

  .lounge-space,
  .cocktail-program,
  .live-music,
  .small-plates,
  .lounge-gallery,
  .practical-details,
  .final-invitation {
    padding-block: var(--space-96);
  }

  .practical-details__panel {
    padding: var(--space-24);
  }

  .final-invitation__actions {
    flex-direction: column;
    align-items: stretch;
  }

  .final-invitation__actions .btn {
    width: 100%;
  }
}

/* Scroll reveal base */
.lounge-space,
.cocktail-program,
.live-music,
.small-plates,
.lounge-gallery,
.practical-details,
.final-invitation {
  opacity: 0;
  transform: translateY(12px);
  transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

.lounge-space.is-visible,
.cocktail-program.is-visible,
.live-music.is-visible,
.small-plates.is-visible,
.lounge-gallery.is-visible,
.practical-details.is-visible,
.final-invitation.is-visible {
  opacity: 1;
  transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
  .lounge-space,
  .cocktail-program,
  .live-music,
  .small-plates,
  .lounge-gallery,
  .practical-details,
  .final-invitation {
    opacity: 1;
    transform: none;
    transition: none;
  }
}


/* Thank-you page scoped styles */
.thank-you-main {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: calc(100vh - 200px);
  padding-block: var(--space-96);
  padding-inline: var(--gutter-mobile);
}

.thank-you-container {
  width: 100%;
  max-width: var(--container-text-max);
  margin-inline: auto;
  text-align: center;
}

.thank-you-container .eyebrow {
  margin-block-end: var(--space-12);
}

.thank-you-container h1 {
  margin-block-end: var(--space-24);
}

.thank-you-container .thank-you-message {
  max-width: 560px;
  margin-inline: auto;
  margin-block-end: var(--space-16);
}

.thank-you-container .thank-you-next {
  max-width: 560px;
  margin-inline: auto;
  margin-block-end: var(--space-32);
  color: var(--color-cream-300);
}

.thank-you-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-16);
  justify-content: center;
}

@media (min-width: 768px) {
  .thank-you-main {
    padding-inline: var(--gutter-tablet);
  }
}

@media (min-width: 1024px) {
  .thank-you-main {
    padding-inline: var(--gutter-desktop);
  }
}

@media (max-width: 767px) {
  .thank-you-main {
    padding-block: var(--space-64);
  }

  .thank-you-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .thank-you-actions .btn {
    width: 100%;
  }
}