

:root {
  --color-charcoal-950: #12100E;
  --color-charcoal-900: #1B1815;
  --color-charcoal-800: #26221E;
  --color-felt-900: #0E2B22;
  --color-felt-700: #1C4A3A;
  --color-felt-300: #7FA894;
  --color-wood-700: #6B4A2E;
  --color-wood-300: #C9A97A;
  --color-burgundy-700: #6E2430;
  --color-brass-500: #B08D57;
  --color-brass-300: #D8BE8A;
  --color-ivory-100: #F2EDE4;
  --color-ivory-300: #C9C2B6;
  --color-ink-900: #1A1714;
  --color-parchment-100: #EFE7D8;

  --font-heading: "Cormorant Garamond", serif;
  --font-body: "Inter", sans-serif;

  --text-display-size: clamp(2.5rem, 5vw + 1rem, 4rem);
  --text-display-leading: 1.05;
  --text-display-weight: 500;
  --text-display-tracking: -0.02em;

  --text-h1-size: clamp(2rem, 3.5vw + 0.75rem, 3rem);
  --text-h1-leading: 1.1;
  --text-h1-weight: 500;
  --text-h1-tracking: -0.01em;

  --text-h2-size: clamp(1.5rem, 2.5vw + 0.5rem, 2.125rem);
  --text-h2-leading: 1.15;
  --text-h2-weight: 500;
  --text-h2-tracking: 0;

  --text-h3-size: 1.5rem;
  --text-h3-leading: 1.25;
  --text-h3-weight: 500;
  --text-h3-tracking: 0;

  --text-h4-size: 1.1875rem;
  --text-h4-leading: 1.3;
  --text-h4-weight: 600;
  --text-h4-tracking: 0.01em;

  --text-body-lg-size: 1.125rem;
  --text-body-lg-leading: 1.65;
  --text-body-lg-weight: 400;
  --text-body-lg-tracking: 0;

  --text-body-size: 1rem;
  --text-body-leading: 1.65;
  --text-body-weight: 400;
  --text-body-tracking: 0;

  --text-small-size: 0.875rem;
  --text-small-leading: 1.5;
  --text-small-weight: 400;
  --text-small-tracking: 0.01em;

  --text-label-size: 0.75rem;
  --text-label-leading: 1.4;
  --text-label-weight: 600;
  --text-label-tracking: 0.12em;

  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;
  --space-7: 48px;
  --space-8: 64px;
  --space-9: 96px;
  --space-10: 128px;

  --container-primary-max: 1200px;
  --container-editorial-max: 760px;
  --container-side-padding-mobile: 24px;
  --container-side-padding-desktop: 40px;

  --section-spacing-desktop: 96px;
  --section-spacing-mobile: 64px;

  --radius-0: 0px;
  --radius-sm: 2px;
  --radius-md: 4px;
  --radius-lg: 8px;

  --border-wood-30: rgba(107, 74, 46, 0.3);
  --border-wood-40: rgba(107, 74, 46, 0.4);
  --border-brass-20: rgba(176, 141, 87, 0.2);
  --border-brass-25: rgba(176, 141, 87, 0.25);
  --border-brass-30: rgba(176, 141, 87, 0.3);
  --border-brass-35: rgba(176, 141, 87, 0.35);
  --border-felt-20: rgba(127, 168, 148, 0.2);

  --shadow-card-inset: 0 1px 0 rgba(0, 0, 0, 0.4);
  --shadow-float: 0 18px 40px rgba(0, 0, 0, 0.35);

  --transition-color: 160ms ease-out;
  --transition-drawer: 240ms ease-out;
}

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

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  scroll-behavior: smooth;
}

body {
  font-family: var(--font-body);
  font-size: var(--text-body-size);
  font-weight: var(--text-body-weight);
  line-height: var(--text-body-leading);
  letter-spacing: var(--text-body-tracking);
  color: var(--color-ivory-100);
  background-color: var(--color-charcoal-950);
  min-height: 100vh;
  overflow-x: hidden;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: var(--font-heading);
  color: var(--color-ivory-100);
  font-weight: var(--text-h1-weight);
  line-height: var(--text-h1-leading);
  letter-spacing: var(--text-h1-tracking);
  overflow-wrap: break-word;
  text-wrap: balance;
}

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

h2 {
  font-size: var(--text-h2-size);
  line-height: var(--text-h2-leading);
  font-weight: var(--text-h2-weight);
  letter-spacing: var(--text-h2-tracking);
  margin-block-end: var(--space-4);
}

h3 {
  font-size: var(--text-h3-size);
  line-height: var(--text-h3-leading);
  font-weight: var(--text-h3-weight);
  letter-spacing: var(--text-h3-tracking);
  margin-block-end: var(--space-3);
}

h4 {
  font-size: var(--text-h4-size);
  line-height: var(--text-h4-leading);
  font-weight: var(--text-h4-weight);
  letter-spacing: var(--text-h4-tracking);
  margin-block-end: var(--space-2);
}

h5,
h6 {
  font-size: var(--text-h4-size);
  line-height: var(--text-h4-leading);
  font-weight: var(--text-h4-weight);
  letter-spacing: var(--text-h4-tracking);
  margin-block-end: var(--space-2);
}

p {
  font-size: var(--text-body-size);
  line-height: var(--text-body-leading);
  font-weight: var(--text-body-weight);
  letter-spacing: var(--text-body-tracking);
  margin-block-end: var(--space-4);
  overflow-wrap: break-word;
}

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

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

blockquote {
  margin-block-end: var(--space-4);
  padding-inline-start: var(--space-5);
  border-inline-start: 2px solid var(--color-brass-500);
  color: var(--color-ivory-300);
  font-style: italic;
}

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

figcaption {
  font-size: var(--text-small-size);
  line-height: var(--text-small-leading);
  color: var(--color-ivory-300);
  margin-block-start: var(--space-2);
}

a {
  color: var(--color-brass-500);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  transition: color var(--transition-color), text-decoration-color var(--transition-color), text-decoration-thickness var(--transition-color);
}

a:hover {
  color: var(--color-brass-300);
  text-decoration-thickness: 2px;
}

a:focus-visible {
  outline: 2px solid var(--color-brass-500);
  outline-offset: 2px;
  border-radius: var(--radius-sm);
}

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

img {
  border-radius: var(--radius-md);
}

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

button {
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
}

button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 2px solid var(--color-brass-500);
  outline-offset: 2px;
  border-radius: var(--radius-sm);
}

input,
select,
textarea {
  background-color: var(--color-charcoal-800);
  border: 1px solid var(--color-wood-700);
  border-radius: var(--radius-sm);
  color: var(--color-ivory-100);
  padding: var(--space-3) var(--space-4);
  font-size: var(--text-body-size);
  line-height: var(--text-body-leading);
  transition: border-color var(--transition-color);
  width: 100%;
}

input::placeholder,
textarea::placeholder {
  color: var(--color-ivory-300);
  opacity: 0.7;
}

input:focus,
select:focus,
textarea:focus {
  border-color: var(--color-brass-500);
  outline: 2px solid var(--color-brass-500);
  outline-offset: 2px;
}

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

label {
  font-size: var(--text-label-size);
  line-height: var(--text-label-leading);
  font-weight: var(--text-label-weight);
  letter-spacing: var(--text-label-tracking);
  text-transform: uppercase;
  color: var(--color-ivory-300);
  display: block;
  margin-block-end: var(--space-2);
}

table {
  width: 100%;
  border-collapse: collapse;
  margin-block-end: var(--space-4);
  font-variant-numeric: tabular-nums;
}

th {
  font-size: var(--text-label-size);
  line-height: var(--text-label-leading);
  font-weight: var(--text-label-weight);
  letter-spacing: var(--text-label-tracking);
  text-transform: uppercase;
  color: var(--color-felt-300);
  text-align: start;
  padding: var(--space-3) var(--space-4);
  border-block-end: 1px solid var(--border-felt-20);
}

td {
  font-size: var(--text-body-size);
  line-height: var(--text-body-leading);
  color: var(--color-ivory-100);
  padding: var(--space-3) var(--space-4);
  border-block-end: 1px solid var(--border-felt-20);
  vertical-align: top;
}

hr {
  border: none;
  border-block-start: 1px solid var(--border-felt-20);
  margin-block: var(--space-6);
}

code,
pre {
  font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
  font-size: 0.875em;
}

pre {
  background-color: var(--color-charcoal-900);
  border: 1px solid var(--border-wood-30);
  border-radius: var(--radius-md);
  padding: var(--space-4);
  overflow-x: auto;
  margin-block-end: var(--space-4);
}

code {
  background-color: var(--color-charcoal-900);
  padding: 0.2em 0.4em;
  border-radius: var(--radius-sm);
}

.container {
  max-width: var(--container-primary-max);
  margin-inline: auto;
  padding-inline: var(--container-side-padding-mobile);
}

.container-narrow {
  max-width: var(--container-editorial-max);
  margin-inline: auto;
  padding-inline: var(--container-side-padding-mobile);
}

.section {
  padding-block: var(--section-spacing-mobile);
}

.section-label {
  font-size: var(--text-label-size);
  line-height: var(--text-label-leading);
  font-weight: var(--text-label-weight);
  letter-spacing: var(--text-label-tracking);
  text-transform: uppercase;
  color: var(--color-felt-300);
  display: block;
  margin-block-end: var(--space-2);
}

.section-label-brass {
  color: var(--color-brass-500);
}

.card {
  background-color: var(--color-charcoal-800);
  border: 1px solid var(--border-wood-30);
  border-radius: var(--radius-md);
  padding: var(--space-5);
  box-shadow: var(--shadow-card-inset);
}

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

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  font-family: var(--font-body);
  font-size: var(--text-label-size);
  line-height: var(--text-label-leading);
  font-weight: var(--text-label-weight);
  letter-spacing: var(--text-label-tracking);
  text-transform: uppercase;
  color: var(--color-ivory-100);
  background-color: transparent;
  border: 1px solid var(--color-brass-500);
  border-radius: var(--radius-sm);
  padding: var(--space-3) var(--space-5);
  text-decoration: none;
  cursor: pointer;
  transition: color var(--transition-color), background-color var(--transition-color), border-color var(--transition-color);
  min-width: 0;
}

.btn:hover {
  color: var(--color-brass-300);
  border-color: var(--color-brass-300);
  text-decoration: none;
}

.btn-primary {
  background-color: var(--color-felt-900);
  border-color: var(--color-brass-500);
  color: var(--color-brass-500);
}

.btn-primary:hover {
  background-color: var(--color-felt-700);
  border-color: var(--color-brass-300);
  color: var(--color-brass-300);
}

.btn-quiet {
  border-color: var(--color-burgundy-700);
  color: var(--color-ivory-300);
}

.btn-quiet:hover {
  border-color: var(--color-wood-300);
  color: var(--color-wood-300);
}

.tag {
  display: inline-flex;
  align-items: center;
  font-size: var(--text-label-size);
  line-height: var(--text-label-leading);
  font-weight: var(--text-label-weight);
  letter-spacing: var(--text-label-tracking);
  text-transform: uppercase;
  color: var(--color-felt-300);
  background-color: transparent;
  border: 1px solid var(--color-felt-300);
  border-radius: var(--radius-sm);
  padding: var(--space-1) var(--space-3);
  text-decoration: none;
  transition: color var(--transition-color), background-color var(--transition-color), border-color var(--transition-color);
}

.tag:hover {
  color: var(--color-ivory-100);
  border-color: var(--color-brass-500);
  text-decoration: none;
}

.tag-selected {
  background-color: var(--color-felt-700);
  border-color: var(--color-felt-700);
  color: var(--color-ivory-100);
}

.flex-row {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-4);
  align-items: center;
}

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

.flex-col {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

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

.flex-between {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-4);
  align-items: center;
  justify-content: space-between;
}

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

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

.content-list > li {
  margin-block-end: var(--space-3);
}

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

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

@media (min-width: 768px) {
  .container,
  .container-narrow {
    padding-inline: var(--container-side-padding-desktop);
  }

  .section {
    padding-block: var(--section-spacing-desktop);
  }
}


/* Header component styles */
.site-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  background-color: var(--color-charcoal-900);
  border-bottom: 1px solid var(--border-wood-30);
}

.site-header__inner {
  max-width: var(--container-primary-max);
  margin-inline: auto;
  padding-inline: var(--container-side-padding-mobile);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  min-height: 64px;
}

.site-header__brand {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  text-decoration: none;
  color: var(--color-ivory-100);
  flex-shrink: 0;
}

.site-header__brand:hover {
  color: var(--color-brass-300);
  text-decoration: none;
}

.site-header__logo {
  width: 40px;
  height: 40px;
  border-radius: 0;
  flex-shrink: 0;
}

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

.site-header__toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
  background: none;
  border: none;
  cursor: pointer;
  color: var(--color-ivory-100);
  flex-shrink: 0;
}

.site-header__toggle:focus-visible {
  outline: 2px solid var(--color-brass-500);
  outline-offset: 2px;
  border-radius: var(--radius-sm);
}

.site-header__toggle-icon,
.site-header__toggle-icon::before,
.site-header__toggle-icon::after {
  display: block;
  width: 24px;
  height: 2px;
  background-color: currentColor;
  transition: transform var(--transition-color), opacity var(--transition-color);
}

.site-header__toggle-icon {
  position: relative;
}

.site-header__toggle-icon::before,
.site-header__toggle-icon::after {
  content: "";
  position: absolute;
  left: 0;
}

.site-header__toggle-icon::before {
  top: -7px;
}

.site-header__toggle-icon::after {
  top: 7px;
}

.site-header__toggle[aria-expanded="true"] .site-header__toggle-icon {
  background-color: transparent;
}

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

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

.site-header__nav {
  display: none;
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: min(320px, 85vw);
  background-color: var(--color-charcoal-950);
  z-index: 1001;
  padding: var(--space-6) var(--space-5);
  overflow-y: auto;
  box-shadow: var(--shadow-float);
  flex-direction: column;
  gap: var(--space-5);
}

.site-header__nav.is-open {
  display: flex;
}

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

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

.site-header__nav-link {
  display: block;
  font-family: var(--font-body);
  font-size: var(--text-label-size);
  font-weight: var(--text-label-weight);
  letter-spacing: var(--text-label-tracking);
  text-transform: uppercase;
  color: var(--color-ivory-100);
  text-decoration: none;
  padding: var(--space-2) 0;
  transition: color var(--transition-color);
}

.site-header__nav-link:hover {
  color: var(--color-brass-300);
  text-decoration: none;
}

.site-header__nav-link:focus-visible {
  outline: 2px solid var(--color-brass-500);
  outline-offset: 2px;
  border-radius: var(--radius-sm);
}

.site-header__cta {
  margin-top: auto;
  align-self: flex-start;
}

@media (min-width: 768px) {
  .site-header__inner {
    padding-inline: var(--container-side-padding-desktop);
    min-height: 72px;
  }

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

  .site-header__toggle {
    display: none;
  }

  .site-header__nav {
    display: flex;
    position: static;
    width: auto;
    background: none;
    box-shadow: none;
    padding: 0;
    overflow: visible;
    flex-direction: row;
    align-items: center;
    gap: var(--space-5);
  }

  .site-header__nav-list {
    flex-direction: row;
    gap: var(--space-4);
  }

  .site-header__nav-link {
    padding: var(--space-2) 0;
    border-bottom: 1px solid transparent;
  }

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

  .site-header__cta {
    margin-top: 0;
    align-self: center;
  }
}

@media (min-width: 1024px) {
  .site-header__brand-text {
    font-size: 15px;
  }
}


/* Footer, consent banner, and age modal styles */
.site-footer {
  background-color: var(--color-charcoal-900);
  border-top: 1px solid var(--color-brass-500);
  padding-block: var(--space-7);
  margin-top: var(--space-9);
}

.site-footer__inner {
  max-width: var(--container-primary-max);
  margin-inline: auto;
  padding-inline: var(--container-side-padding-mobile);
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-6);
}

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

.site-footer__logo {
  width: 40px;
  height: 40px;
  border-radius: 0;
}

.site-footer__brand-name {
  font-family: var(--font-heading);
  font-size: var(--text-h4-size);
  font-weight: 600;
  margin: 0;
}

.site-footer__tagline {
  color: var(--color-ivory-300);
  font-size: var(--text-small-size);
  margin: 0;
}

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

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

.site-footer__heading {
  font-family: var(--font-body);
  font-size: var(--text-label-size);
  font-weight: var(--text-label-weight);
  letter-spacing: var(--text-label-tracking);
  text-transform: uppercase;
  color: var(--color-felt-300);
  margin: 0;
}

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

.site-footer__list a {
  color: var(--color-ivory-100);
  text-decoration: none;
  transition: color var(--transition-color);
}

.site-footer__list a:hover {
  color: var(--color-brass-300);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

.site-footer__list a:focus-visible {
  outline: 2px solid var(--color-brass-500);
  outline-offset: 2px;
  border-radius: var(--radius-sm);
}

.site-footer__bottom {
  max-width: var(--container-primary-max);
  margin-inline: auto;
  padding-inline: var(--container-side-padding-mobile);
  margin-top: var(--space-6);
  border-top: 1px solid var(--border-felt-20);
  padding-top: var(--space-4);
}

.site-footer__copyright {
  font-size: var(--text-small-size);
  color: var(--color-ivory-300);
  margin: 0;
}

/* Consent banner */
.consent-banner {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 1100;
  background-color: var(--color-charcoal-900);
  border-top: 1px solid var(--border-wood-30);
  padding: var(--space-4);
  box-shadow: var(--shadow-float);
}

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

.consent-banner__content {
  max-width: var(--container-primary-max);
  margin-inline: auto;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-4);
  justify-content: space-between;
}

.consent-banner__text {
  flex: 1 1 300px;
  font-size: var(--text-small-size);
  color: var(--color-ivory-300);
  margin: 0;
}

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

.consent-banner__button {
  padding: var(--space-2) var(--space-4);
  font-size: var(--text-label-size);
  font-weight: var(--text-label-weight);
  letter-spacing: var(--text-label-tracking);
  text-transform: uppercase;
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition: background-color var(--transition-color), color var(--transition-color), border-color var(--transition-color);
}

.consent-banner__button--accept {
  background-color: var(--color-felt-900);
  border: 1px solid var(--color-brass-500);
  color: var(--color-brass-500);
}

.consent-banner__button--accept:hover {
  background-color: var(--color-felt-700);
  border-color: var(--color-brass-300);
  color: var(--color-brass-300);
}

.consent-banner__button--reject {
  background-color: transparent;
  border: 1px solid var(--color-ivory-300);
  color: var(--color-ivory-300);
}

.consent-banner__button--reject:hover {
  border-color: var(--color-ivory-100);
  color: var(--color-ivory-100);
}

.consent-banner__button:focus-visible {
  outline: 2px solid var(--color-brass-500);
  outline-offset: 2px;
}

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

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

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

.age-modal__dialog {
  position: relative;
  background-color: var(--color-charcoal-900);
  border: 1px solid var(--border-wood-30);
  border-radius: var(--radius-md);
  padding: var(--space-6);
  max-width: 480px;
  width: 100%;
  box-shadow: var(--shadow-float);
  z-index: 1;
}

.age-modal__title {
  font-family: var(--font-heading);
  font-size: var(--text-h3-size);
  font-weight: 500;
  margin-bottom: var(--space-3);
}

.age-modal__description {
  color: var(--color-ivory-300);
  margin-bottom: var(--space-5);
}

.age-modal__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
}

.age-modal__button {
  flex: 1 1 auto;
  padding: var(--space-3) var(--space-5);
  font-size: var(--text-label-size);
  font-weight: var(--text-label-weight);
  letter-spacing: var(--text-label-tracking);
  text-transform: uppercase;
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition: background-color var(--transition-color), color var(--transition-color), border-color var(--transition-color);
}

.age-modal__button--confirm {
  background-color: var(--color-felt-900);
  border: 1px solid var(--color-brass-500);
  color: var(--color-brass-500);
}

.age-modal__button--confirm:hover {
  background-color: var(--color-felt-700);
  border-color: var(--color-brass-300);
  color: var(--color-brass-300);
}

.age-modal__button--decline {
  background-color: transparent;
  border: 1px solid var(--color-ivory-300);
  color: var(--color-ivory-300);
}

.age-modal__button--decline:hover {
  border-color: var(--color-ivory-100);
  color: var(--color-ivory-100);
}

.age-modal__button:focus-visible {
  outline: 2px solid var(--color-brass-500);
  outline-offset: 2px;
}

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

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

@media (min-width: 1024px) {
  .site-footer__nav {
    grid-template-columns: repeat(4, 1fr);
  }
}


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

.cookie-policy-hero {
  padding-block: var(--space-8) var(--space-7);
  border-block-end: 1px solid var(--border-felt-20);
}

.cookie-policy-hero__inner {
  max-width: var(--container-editorial-max);
  margin-inline: auto;
  padding-inline: var(--container-side-padding-mobile);
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  align-items: flex-start;
}

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

.cookie-policy-hero h1 {
  margin-block-end: 0;
  max-width: 16ch;
}

.cookie-policy-hero__lead {
  font-size: var(--text-body-lg-size);
  line-height: var(--text-body-lg-leading);
  color: var(--color-ivory-300);
  max-width: 68ch;
  margin-block-end: 0;
}

.cookie-policy-content {
  max-width: var(--container-editorial-max);
  margin-inline: auto;
  padding-inline: var(--container-side-padding-mobile);
  padding-block: var(--space-7);
  display: flex;
  flex-direction: column;
  gap: var(--space-8);
}

.cookie-policy-section {
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
}

.cookie-policy-section__header {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  align-items: flex-start;
}

.cookie-policy-section__header .section-label {
  margin-block-end: 0;
}

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

.cookie-policy-section__body {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  align-items: flex-start;
}

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

.cookie-policy-section__body p {
  max-width: 68ch;
  margin-block-end: 0;
}

.cookie-policy-section__body p + h3 {
  margin-block-start: var(--space-4);
}

.cookie-type-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-5);
  width: 100%;
}

.cookie-type-card {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-3);
  background-color: var(--color-charcoal-800);
  border: 1px solid var(--border-wood-30);
  border-radius: var(--radius-md);
  padding: var(--space-5);
  box-shadow: var(--shadow-card-inset);
  min-width: 0;
}

.cookie-type-card__name {
  min-width: 0;
}

.cookie-type-card__name h3 {
  margin-block-end: 0;
}

.cookie-type-card__description {
  min-width: 0;
}

.cookie-type-card__description p {
  max-width: 68ch;
  margin-block-end: 0;
}

@media (min-width: 600px) {
  .cookie-policy-hero {
    padding-block: var(--space-9) var(--space-8);
  }

  .cookie-policy-hero__inner,
  .cookie-policy-content {
    padding-inline: var(--container-side-padding-desktop);
  }

  .cookie-policy-content {
    padding-block: var(--space-9);
    gap: var(--space-9);
  }

  .cookie-type-list {
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }
}

@media (min-width: 768px) {
  .cookie-type-card {
    grid-template-columns: minmax(0, 30%) minmax(0, 70%);
    gap: var(--space-5);
    align-items: start;
  }

  .cookie-type-card__description p {
    max-width: 68ch;
  }
}

@media (min-width: 1024px) {
  .cookie-policy-hero h1 {
    font-size: var(--text-h1-size);
  }

  .cookie-policy-hero__lead {
    font-size: var(--text-body-lg-size);
  }
}


/* Page-owned styles for Terms and Conditions */

.tc-page {
  background-color: var(--color-charcoal-950);
  color: var(--color-ivory-100);
}

.tc-article {
  max-width: var(--container-editorial-max);
  margin-inline: auto;
  padding-inline: var(--container-side-padding-mobile);
  padding-block-start: var(--space-8);
  padding-block-end: var(--space-9);
}

.tc-hero {
  margin-block-end: var(--space-7);
}

.tc-hero h1 {
  font-size: var(--text-h1-size);
  line-height: var(--text-h1-leading);
  font-weight: var(--text-h1-weight);
  letter-spacing: var(--text-h1-tracking);
  margin-block-end: var(--space-4);
  max-width: 42ch;
}

.tc-hero__intro {
  font-size: var(--text-body-lg-size);
  line-height: var(--text-body-lg-leading);
  color: var(--color-ivory-300);
  max-width: 68ch;
  margin-block-end: var(--space-4);
}

.tc-hero__date {
  font-size: var(--text-small-size);
  line-height: var(--text-small-leading);
  color: var(--color-felt-300);
  letter-spacing: 0.01em;
  margin-block-end: 0;
}

.tc-section {
  padding-block: var(--space-6);
  border-block-start: 1px solid var(--border-felt-20);
}

.tc-section:first-of-type {
  border-block-start: none;
  padding-block-start: 0;
}

.tc-section h2 {
  font-size: var(--text-h2-size);
  line-height: var(--text-h2-leading);
  font-weight: var(--text-h2-weight);
  letter-spacing: var(--text-h2-tracking);
  margin-block-end: var(--space-5);
  max-width: 42ch;
}

.tc-section h3 {
  font-size: var(--text-h3-size);
  line-height: var(--text-h3-leading);
  font-weight: var(--text-h3-weight);
  letter-spacing: var(--text-h3-tracking);
  color: var(--color-felt-300);
  margin-block-end: var(--space-3);
  max-width: 42ch;
}

.tc-section p {
  max-width: 68ch;
}

.tc-list {
  list-style: none;
  padding-inline-start: 0;
  margin-block-end: var(--space-4);
  max-width: 68ch;
}

.tc-list > li {
  position: relative;
  padding-inline-start: var(--space-5);
  margin-block-end: var(--space-3);
}

.tc-list > li::before {
  content: "";
  position: absolute;
  inset-inline-start: 0;
  inset-block-start: 0.6em;
  width: 6px;
  height: 6px;
  background-color: var(--color-felt-300);
  border-radius: 50%;
}

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

.tc-section--restaurant {
  border-inline-start: 2px solid var(--color-wood-300);
  padding-inline-start: var(--space-5);
}

.tc-section--restaurant h2 {
  color: var(--color-wood-300);
}

.tc-section--restaurant h3 {
  color: var(--color-wood-300);
}

.tc-section--restaurant .tc-list > li::before {
  background-color: var(--color-wood-300);
}

.tc-contact-list {
  list-style: none;
  padding-inline-start: 0;
  margin-block-end: 0;
  max-width: 68ch;
}

.tc-contact-list > li {
  margin-block-end: var(--space-3);
  padding-block-end: var(--space-3);
  border-block-end: 1px solid var(--border-felt-20);
}

.tc-contact-list > li:last-child {
  margin-block-end: 0;
  padding-block-end: 0;
  border-block-end: none;
}

.tc-contact-list a {
  color: var(--color-brass-500);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  transition: color var(--transition-color), text-decoration-color var(--transition-color), text-decoration-thickness var(--transition-color);
}

.tc-contact-list a:hover {
  color: var(--color-brass-300);
  text-decoration-thickness: 2px;
}

.tc-contact-list a:focus-visible {
  outline: 2px solid var(--color-brass-500);
  outline-offset: 2px;
  border-radius: var(--radius-sm);
}

@media (min-width: 768px) {
  .tc-article {
    padding-inline: var(--container-side-padding-desktop);
    padding-block-start: var(--space-9);
    padding-block-end: var(--space-10);
  }

  .tc-hero {
    margin-block-end: var(--space-8);
  }

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

  .tc-section:first-of-type {
    padding-block-start: 0;
  }
}

@media (max-width: 480px) {
  .tc-article {
    padding-block-start: var(--space-6);
    padding-block-end: var(--space-7);
  }

  .tc-hero h1 {
    font-size: 2rem;
  }

  .tc-hero__intro {
    font-size: var(--text-body-size);
  }

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

  .tc-section h2 {
    font-size: 1.75rem;
  }

  .tc-section h3 {
    font-size: 1.25rem;
  }
}


.privacy-policy-page {
  background-color: var(--color-charcoal-950);
  color: var(--color-ivory-100);
  padding-block: var(--section-spacing-mobile);
}

.privacy-hero {
  padding-block-end: var(--space-7);
  border-block-end: 1px solid var(--border-brass-30);
  margin-block-end: var(--space-7);
}

.privacy-hero__inner {
  max-width: 680px;
  margin-inline: auto;
  padding-inline: var(--container-side-padding-mobile);
}

.privacy-hero__label {
  font-size: var(--text-label-size);
  line-height: var(--text-label-leading);
  font-weight: var(--text-label-weight);
  letter-spacing: var(--text-label-tracking);
  text-transform: uppercase;
  color: var(--color-brass-500);
  margin-block-end: var(--space-2);
}

.privacy-hero__title {
  font-size: var(--text-h1-size);
  line-height: var(--text-h1-leading);
  font-weight: var(--text-h1-weight);
  letter-spacing: var(--text-h1-tracking);
  color: var(--color-ivory-100);
  margin-block-end: var(--space-4);
  overflow-wrap: break-word;
  text-wrap: balance;
}

.privacy-hero__lead {
  font-size: var(--text-body-lg-size);
  line-height: var(--text-body-lg-leading);
  font-weight: var(--text-body-lg-weight);
  letter-spacing: var(--text-body-lg-tracking);
  color: var(--color-ivory-100);
  margin-block-end: var(--space-3);
}

.privacy-hero__support {
  font-size: var(--text-body-size);
  line-height: var(--text-body-leading);
  font-weight: var(--text-body-weight);
  letter-spacing: var(--text-body-tracking);
  color: var(--color-ivory-300);
  margin-block-end: var(--space-4);
}

.privacy-hero__date {
  font-size: var(--text-label-size);
  line-height: var(--text-label-leading);
  font-weight: var(--text-label-weight);
  letter-spacing: var(--text-label-tracking);
  text-transform: uppercase;
  color: var(--color-felt-300);
  margin-block-end: 0;
}

.privacy-hero__date span {
  color: var(--color-brass-500);
}

.privacy-policy__content {
  max-width: 680px;
  margin-inline: auto;
  padding-inline: var(--container-side-padding-mobile);
}

.privacy-section {
  padding-block-end: var(--space-7);
  margin-block-end: var(--space-7);
  border-block-end: 1px solid var(--border-felt-20);
}

.privacy-section:last-child {
  border-block-end: none;
  margin-block-end: 0;
  padding-block-end: 0;
}

.privacy-section__heading {
  font-size: var(--text-h2-size);
  line-height: var(--text-h2-leading);
  font-weight: var(--text-h2-weight);
  letter-spacing: var(--text-h2-tracking);
  color: var(--color-ivory-100);
  margin-block-end: var(--space-4);
  overflow-wrap: break-word;
  text-wrap: balance;
}

.privacy-section__lead {
  font-size: var(--text-body-size);
  line-height: var(--text-body-leading);
  font-weight: var(--text-body-weight);
  letter-spacing: var(--text-body-tracking);
  color: var(--color-ivory-100);
  margin-block-end: var(--space-4);
}

.privacy-section p {
  font-size: var(--text-body-size);
  line-height: var(--text-body-leading);
  font-weight: var(--text-body-weight);
  letter-spacing: var(--text-body-tracking);
  color: var(--color-ivory-300);
  margin-block-end: var(--space-4);
}

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

.privacy-section__note {
  font-size: var(--text-small-size);
  line-height: var(--text-small-leading);
  font-weight: var(--text-small-weight);
  letter-spacing: var(--text-small-tracking);
  color: var(--color-felt-300);
  margin-block-start: var(--space-3);
  margin-block-end: 0;
}

.privacy-section__date {
  font-size: var(--text-label-size);
  line-height: var(--text-label-leading);
  font-weight: var(--text-label-weight);
  letter-spacing: var(--text-label-tracking);
  text-transform: uppercase;
  color: var(--color-felt-300);
  margin-block-start: var(--space-3);
  margin-block-end: 0;
}

.privacy-section__date span {
  color: var(--color-brass-500);
}

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

.privacy-list li {
  position: relative;
  padding-inline-start: var(--space-5);
  font-size: var(--text-body-size);
  line-height: var(--text-body-leading);
  font-weight: var(--text-body-weight);
  letter-spacing: var(--text-body-tracking);
  color: var(--color-ivory-300);
}

.privacy-list--felt li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.65em;
  width: 6px;
  height: 6px;
  background-color: var(--color-felt-300);
  border-radius: 50%;
}

.privacy-list--brass li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.65em;
  width: 6px;
  height: 6px;
  background-color: var(--color-brass-500);
  border-radius: 50%;
}

.privacy-purpose-list {
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
  margin-block-end: var(--space-4);
}

.privacy-purpose {
  border-block-start: 1px solid var(--border-wood-40);
  padding-block-start: var(--space-4);
}

.privacy-purpose__title {
  font-size: var(--text-h4-size);
  line-height: var(--text-h4-leading);
  font-weight: var(--text-h4-weight);
  letter-spacing: var(--text-h4-tracking);
  color: var(--color-ivory-100);
  margin-block-end: var(--space-2);
}

.privacy-purpose p {
  font-size: var(--text-body-size);
  line-height: var(--text-body-leading);
  font-weight: var(--text-body-weight);
  letter-spacing: var(--text-body-tracking);
  color: var(--color-ivory-300);
  margin-block-end: 0;
}

.privacy-contact {
  background-color: var(--color-charcoal-900);
  border: 1px solid var(--border-wood-30);
  border-radius: var(--radius-md);
  padding: var(--space-5);
}

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

.privacy-contact__list li {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
  font-size: var(--text-body-size);
  line-height: var(--text-body-leading);
  font-weight: var(--text-body-weight);
  letter-spacing: var(--text-body-tracking);
  color: var(--color-ivory-100);
}

.privacy-contact__label {
  font-size: var(--text-label-size);
  line-height: var(--text-label-leading);
  font-weight: var(--text-label-weight);
  letter-spacing: var(--text-label-tracking);
  text-transform: uppercase;
  color: var(--color-brass-500);
}

.privacy-contact__list a {
  color: var(--color-brass-500);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  transition: color var(--transition-color), text-decoration-color var(--transition-color), text-decoration-thickness var(--transition-color);
}

.privacy-contact__list a:hover {
  color: var(--color-brass-300);
  text-decoration-thickness: 2px;
}

.privacy-contact__list a:focus-visible {
  outline: 2px solid var(--color-brass-500);
  outline-offset: 2px;
  border-radius: var(--radius-sm);
}

@media (min-width: 768px) {
  .privacy-policy-page {
    padding-block: var(--section-spacing-desktop);
  }

  .privacy-hero {
    padding-block-end: var(--space-8);
    margin-block-end: var(--space-8);
  }

  .privacy-hero__inner,
  .privacy-policy__content {
    padding-inline: var(--container-side-padding-desktop);
  }

  .privacy-section {
    padding-block-end: var(--space-8);
    margin-block-end: var(--space-8);
  }

  .privacy-contact {
    padding: var(--space-6);
  }

  .privacy-contact__list li {
    flex-direction: row;
    align-items: baseline;
    gap: var(--space-4);
  }

  .privacy-contact__label {
    min-width: 80px;
  }
}

@media (max-width: 430px) {
  .privacy-hero__title {
    font-size: 2rem;
  }

  .privacy-hero__lead {
    font-size: 1rem;
  }

  .privacy-section__heading {
    font-size: 1.5rem;
  }
}


/* Page-owned styles for poker-tables page */
.poker-tables-page {
  /* No shared chrome overrides */
}

/* Hero */
.pt-hero {
  position: relative;
  min-height: 480px;
  display: flex;
  align-items: center;
  overflow: hidden;
  background-color: var(--color-charcoal-950);
}

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

.pt-hero__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  border-radius: 0;
}

.pt-hero__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(to right, rgba(18, 16, 14, 0.85) 0%, rgba(18, 16, 14, 0.55) 45%, rgba(18, 16, 14, 0.25) 100%);
}

.pt-hero__content {
  position: relative;
  z-index: 2;
  padding-block: var(--space-8);
  max-width: 600px;
  margin-inline: 0;
}

.pt-hero__title {
  font-size: var(--text-display-size);
  line-height: var(--text-display-leading);
  font-weight: var(--text-display-weight);
  letter-spacing: var(--text-display-tracking);
  max-width: 42ch;
  margin-block-end: var(--space-5);
  color: var(--color-ivory-100);
}

.pt-hero__lead {
  font-size: var(--text-body-lg-size);
  line-height: var(--text-body-lg-leading);
  max-width: 68ch;
  margin-block-end: var(--space-5);
  color: var(--color-ivory-300);
}

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

.pt-hero__facts li {
  font-size: var(--text-small-size);
  line-height: var(--text-small-leading);
  color: var(--color-felt-300);
  padding-inline-start: var(--space-4);
  position: relative;
}

.pt-hero__facts li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.55em;
  width: 8px;
  height: 1px;
  background-color: var(--color-brass-500);
}

/* Table Types */
.pt-table-types {
  background-color: var(--color-charcoal-950);
}

.pt-section-title {
  margin-block-end: var(--space-6);
}

.pt-table-list {
  display: flex;
  flex-direction: column;
  gap: 0;
  border-block-start: 1px solid var(--border-felt-20);
}

.pt-table-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
  gap: var(--space-5);
  padding-block: var(--space-5);
  border-block-end: 1px solid var(--border-felt-20);
  align-items: start;
}

.pt-table-row__header {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
  min-width: 0;
}

.pt-table-row__name {
  font-size: var(--text-h3-size);
  line-height: var(--text-h3-leading);
  font-weight: var(--text-h3-weight);
  letter-spacing: var(--text-h3-tracking);
  margin-block-end: 0;
  color: var(--color-ivory-100);
}

.pt-table-row__seats {
  font-size: var(--text-label-size);
  line-height: var(--text-label-leading);
  font-weight: var(--text-label-weight);
  letter-spacing: var(--text-label-tracking);
  text-transform: uppercase;
  color: var(--color-brass-500);
  font-variant-numeric: tabular-nums;
}

.pt-table-row__desc {
  font-size: var(--text-body-size);
  line-height: var(--text-body-leading);
  max-width: 68ch;
  margin-block-end: 0;
  color: var(--color-ivory-300);
  min-width: 0;
}

/* Table Specifications */
.pt-specs {
  background-color: var(--color-charcoal-950);
}

.pt-specs__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-6);
  align-items: center;
}

.pt-specs__text {
  grid-column: 1 / span 7;
  min-width: 0;
}

.pt-specs__media {
  grid-column: 8 / span 5;
  min-width: 0;
  margin-block-end: 0;
}

.pt-specs__lead {
  font-size: var(--text-body-lg-size);
  line-height: var(--text-body-lg-leading);
  max-width: 68ch;
  margin-block-end: var(--space-4);
  color: var(--color-ivory-100);
}

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

.pt-specs__list li {
  font-size: var(--text-body-size);
  line-height: var(--text-body-leading);
  color: var(--color-ivory-300);
  padding-inline-start: var(--space-4);
  position: relative;
}

.pt-specs__list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.55em;
  width: 8px;
  height: 1px;
  background-color: var(--color-brass-500);
}

.pt-specs__image {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: var(--radius-md);
  border: 1px solid var(--border-wood-30);
}

.pt-specs__media figcaption {
  margin-block-start: var(--space-2);
  color: var(--color-ivory-300);
}

/* Card Room */
.pt-card-room {
  background-color: var(--color-charcoal-900);
  border-block-start: 1px solid var(--border-wood-30);
  border-block-end: 1px solid var(--border-wood-30);
}

.pt-card-room__inner {
  max-width: 760px;
  margin-inline: auto;
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  align-items: center;
}

.pt-card-room__title {
  margin-block-end: 0;
}

.pt-card-room__text {
  max-width: 68ch;
  margin-block-end: 0;
  color: var(--color-ivory-300);
}

.pt-card-room__list {
  list-style: none;
  padding-inline-start: 0;
  margin-block-end: 0;
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3) var(--space-5);
  justify-content: center;
}

.pt-card-room__list li {
  font-size: var(--text-small-size);
  line-height: var(--text-small-leading);
  color: var(--color-felt-300);
  padding-inline-start: var(--space-4);
  position: relative;
}

.pt-card-room__list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.55em;
  width: 8px;
  height: 1px;
  background-color: var(--color-brass-500);
}

/* Live Poker Sessions */
.pt-sessions {
  background-color: var(--color-charcoal-950);
}

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

.pt-session-card {
  background-color: var(--color-charcoal-800);
  border: 1px solid var(--border-wood-30);
  border-radius: var(--radius-md);
  padding: var(--space-5);
  box-shadow: var(--shadow-card-inset);
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  min-width: 0;
}

.pt-session-card__title {
  font-size: var(--text-h4-size);
  line-height: var(--text-h4-leading);
  font-weight: var(--text-h4-weight);
  letter-spacing: var(--text-h4-tracking);
  margin-block-end: 0;
  color: var(--color-ivory-100);
}

.pt-session-card__time {
  font-size: var(--text-label-size);
  line-height: var(--text-label-leading);
  font-weight: var(--text-label-weight);
  letter-spacing: var(--text-label-tracking);
  text-transform: uppercase;
  color: var(--color-brass-500);
  font-variant-numeric: tabular-nums;
  margin-block-end: 0;
}

.pt-session-card__desc {
  font-size: var(--text-body-size);
  line-height: var(--text-body-leading);
  color: var(--color-ivory-300);
  margin-block-end: 0;
  min-width: 0;
}

/* Restaurant */
.pt-restaurant {
  background-color: var(--color-charcoal-950);
  border-block-start: 1px solid var(--color-burgundy-700);
}

.pt-restaurant__inner {
  max-width: 600px;
  margin-inline: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}

.pt-restaurant__label {
  color: var(--color-burgundy-700);
}

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

.pt-restaurant__text {
  max-width: 68ch;
  margin-block-end: 0;
  color: var(--color-ivory-300);
}

/* CTA */
.pt-cta {
  background-color: var(--color-felt-900);
  border-block-start: 1px solid var(--color-brass-500);
}

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

.pt-cta__title {
  margin-block-end: 0;
  color: var(--color-ivory-100);
}

.pt-cta__text {
  max-width: 68ch;
  margin-block-end: 0;
  color: var(--color-ivory-300);
}

.pt-cta__button {
  min-width: 200px;
}

/* Tablet */
@media (min-width: 768px) and (max-width: 1023px) {
  .pt-hero {
    min-height: 420px;
  }

  .pt-table-row {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr);
  }

  .pt-specs__grid {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }

  .pt-specs__text {
    grid-column: 1 / span 6;
  }

  .pt-specs__media {
    grid-column: 1 / span 6;
  }

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

  .pt-session-card:last-child {
    grid-column: 1 / span 2;
  }
}

/* Mobile */
@media (max-width: 767px) {
  .pt-hero {
    min-height: 0;
    padding-block: var(--space-8);
  }

  .pt-hero__overlay {
    background: linear-gradient(to bottom, rgba(18, 16, 14, 0.9) 0%, rgba(18, 16, 14, 0.7) 60%, rgba(18, 16, 14, 0.85) 100%);
  }

  .pt-hero__content {
    max-width: 100%;
    padding-block: 0;
  }

  .pt-hero__title {
    font-size: clamp(2rem, 8vw, 2.5rem);
    max-width: 100%;
  }

  .pt-hero__lead {
    font-size: var(--text-body-size);
    max-width: 100%;
  }

  .pt-table-row {
    grid-template-columns: 1fr;
    gap: var(--space-3);
  }

  .pt-table-row__header {
    flex-direction: row;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--space-2);
  }

  .pt-table-row__desc {
    max-width: 100%;
  }

  .pt-specs__grid {
    grid-template-columns: 1fr;
    gap: var(--space-5);
  }

  .pt-specs__text,
  .pt-specs__media {
    grid-column: auto;
  }

  .pt-specs__lead {
    max-width: 100%;
  }

  .pt-card-room__inner {
    text-align: left;
    align-items: flex-start;
  }

  .pt-card-room__list {
    justify-content: flex-start;
  }

  .pt-session-grid {
    grid-template-columns: 1fr;
  }

  .pt-session-card:last-child {
    grid-column: auto;
  }

  .pt-restaurant__inner {
    max-width: 100%;
  }

  .pt-restaurant__text {
    max-width: 100%;
  }

  .pt-cta__inner {
    max-width: 100%;
  }

  .pt-cta__text {
    max-width: 100%;
  }

  .pt-cta__button {
    width: 100%;
  }
}


/* Contact page styles */

/* Contact Hero */
.contact-hero {
    background-color: var(--color-felt-900);
    padding-block: var(--space-9) var(--space-8);
    border-block-end: 1px solid var(--border-brass-30);
}

.contact-hero__content {
    max-width: 760px;
    margin-inline: auto;
    text-align: left;
}

.contact-hero__content h1 {
    max-width: 42ch;
    margin-block-end: var(--space-4);
}

.contact-hero__content p {
    max-width: 68ch;
    margin-block-end: 0;
    color: var(--color-ivory-300);
}

/* Direct Contact Details */
.contact-details__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-5);
    margin-block-start: var(--space-6);
}

.contact-card {
    background-color: var(--color-charcoal-800);
    border: 1px solid var(--border-wood-30);
    border-radius: var(--radius-md);
    padding: var(--space-5);
    box-shadow: var(--shadow-card-inset);
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    min-width: 0;
}

.contact-card__icon {
    color: var(--color-brass-500);
    display: flex;
    align-items: center;
    justify-content: flex-start;
}

.contact-card__icon svg {
    width: 24px;
    height: 24px;
}

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

.contact-card p {
    margin-block-end: 0;
    color: var(--color-ivory-300);
    max-width: 50ch;
}

.contact-card__value {
    font-size: var(--text-body-lg-size);
    line-height: var(--text-body-lg-leading);
    font-weight: 500;
    color: var(--color-brass-500);
    text-decoration: none;
    max-width: 30ch;
    overflow-wrap: break-word;
}

.contact-card__value:hover {
    color: var(--color-brass-300);
    text-decoration: underline;
    text-decoration-thickness: 2px;
}

address.contact-card__value {
    font-style: normal;
}

/* Enquiry Form and Venue Information */
.contact-enquiry__grid {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: var(--space-7);
}

.contact-enquiry__form-column {
    grid-column: span 7;
    min-width: 0;
}

.contact-enquiry__info {
    grid-column: span 5;
    min-width: 0;
    border-inline-start: 1px solid var(--border-wood-40);
    padding-inline-start: var(--space-6);
}

.contact-enquiry__form-column h2,
.contact-enquiry__info h2 {
    margin-block-end: var(--space-3);
}

.contact-enquiry__form-column > p,
.contact-enquiry__info > p {
    color: var(--color-ivory-300);
    max-width: 68ch;
}

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

.contact-enquiry__list li {
    color: var(--color-ivory-300);
    padding-inline-start: var(--space-5);
    position: relative;
}

.contact-enquiry__list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.6em;
    width: 6px;
    height: 6px;
    background-color: var(--color-felt-300);
    border-radius: 50%;
}

.contact-form {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    margin-block-start: var(--space-5);
}

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

.contact-form__field label {
    max-width: 20ch;
}

.contact-form__submit {
    align-self: flex-start;
}

.contact-form__success {
    color: var(--color-felt-300);
    margin-block-start: var(--space-3);
}

/* Location and Access */
.contact-location {
    border-block-start: 1px solid var(--border-wood-40);
}

.contact-location__content {
    max-width: 760px;
    margin-inline: auto;
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
}

.contact-location__content h2 {
    margin-block-end: 0;
}

.contact-location__block {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

.contact-location__block h3 {
    margin-block-end: 0;
}

.contact-location__block p {
    max-width: 68ch;
    margin-block-end: 0;
    color: var(--color-ivory-300);
}

.contact-location__address {
    color: var(--color-brass-500);
    font-weight: 500;
}

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

.contact-location__list li {
    color: var(--color-ivory-300);
    padding-inline-start: var(--space-5);
    position: relative;
}

.contact-location__list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.6em;
    width: 6px;
    height: 6px;
    background-color: var(--color-wood-300);
    border-radius: 50%;
}

/* Poker-First Contact Context */
.contact-poker-context {
    background-color: var(--color-felt-900);
    padding-block: var(--space-8);
}

.contact-poker-context h2 {
    margin-block-end: var(--space-5);
}

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

.contact-poker-context__column {
    min-width: 0;
    padding-inline-end: var(--space-6);
    border-inline-end: 1px solid var(--border-brass-30);
}

.contact-poker-context__column--restaurant {
    border-inline-end: none;
    padding-inline-end: 0;
}

.contact-poker-context__column h3 {
    margin-block-end: var(--space-3);
}

.contact-poker-context__column p {
    max-width: 50ch;
    margin-block-end: 0;
    color: var(--color-ivory-300);
}

/* Booking and Response Times */
.contact-booking__content {
    max-width: 760px;
    margin-inline: auto;
    display: flex;
    flex-direction: column;
    gap: var(--space-5);
}

.contact-booking__content h2 {
    margin-block-end: 0;
}

.contact-booking__row {
    display: flex;
    gap: var(--space-4);
    align-items: flex-start;
    padding-block-end: var(--space-5);
    border-block-end: 1px solid var(--border-felt-20);
}

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

.contact-booking__icon {
    flex-shrink: 0;
    color: var(--color-brass-500);
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
}

.contact-booking__icon svg {
    width: 24px;
    height: 24px;
}

.contact-booking__row > div:last-child {
    min-width: 0;
    flex: 1;
}

.contact-booking__row h3 {
    margin-block-end: var(--space-2);
}

.contact-booking__row p {
    max-width: 68ch;
    margin-block-end: 0;
    color: var(--color-ivory-300);
}

/* Privacy Assurance */
.contact-privacy__content {
    max-width: 760px;
    margin-inline: auto;
    border: 1px solid var(--border-felt-20);
    border-radius: var(--radius-md);
    padding: var(--space-5);
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

.contact-privacy__content h2 {
    margin-block-end: 0;
}

.contact-privacy__content p {
    max-width: 68ch;
    margin-block-end: 0;
    color: var(--color-ivory-300);
}

/* Final Call to Action */
.contact-cta {
    background-color: var(--color-felt-900);
    padding-block: var(--space-8);
    text-align: center;
}

.contact-cta__content {
    max-width: 600px;
    margin-inline: auto;
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    align-items: center;
}

.contact-cta__content h2 {
    max-width: 42ch;
    margin-block-end: 0;
}

.contact-cta__content p {
    max-width: 68ch;
    margin-block-end: 0;
    color: var(--color-ivory-300);
}

.contact-cta__actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-4);
    justify-content: center;
    align-items: center;
    margin-block-start: var(--space-3);
}

.contact-cta__form-link {
    color: var(--color-brass-500);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    transition: color var(--transition-color), text-decoration-thickness var(--transition-color);
}

.contact-cta__form-link:hover {
    color: var(--color-brass-300);
    text-decoration-thickness: 2px;
}

/* Responsive */
@media (max-width: 1024px) {
    .contact-enquiry__grid {
        grid-template-columns: 1fr;
        gap: var(--space-6);
    }

    .contact-enquiry__form-column,
    .contact-enquiry__info {
        grid-column: auto;
    }

    .contact-enquiry__info {
        border-inline-start: none;
        padding-inline-start: 0;
        border-block-start: 1px solid var(--border-wood-40);
        padding-block-start: var(--space-5);
    }

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

    .contact-card:last-child {
        grid-column: span 2;
    }
}

@media (max-width: 768px) {
    .contact-hero {
        padding-block: var(--space-7) var(--space-6);
    }

    .contact-hero__content h1 {
        font-size: clamp(2.5rem, 8vw, 3rem);
    }

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

    .contact-card:last-child {
        grid-column: auto;
    }

    .contact-poker-context__grid {
        grid-template-columns: 1fr;
        gap: var(--space-5);
    }

    .contact-poker-context__column {
        border-inline-end: none;
        padding-inline-end: 0;
        border-block-end: 1px solid var(--border-brass-30);
        padding-block-end: var(--space-5);
    }

    .contact-poker-context__column--restaurant {
        border-block-end: none;
        padding-block-end: 0;
    }

    .contact-booking__row {
        flex-direction: column;
        gap: var(--space-3);
    }

    .contact-booking__icon {
        width: 24px;
        height: 24px;
    }

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

    .contact-cta__actions {
        flex-direction: column;
        width: 100%;
    }

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

@media (max-width: 480px) {
    .contact-hero {
        padding-block: var(--space-6) var(--space-5);
    }

    .contact-hero__content h1 {
        font-size: 2.5rem;
    }

    .contact-form__submit {
        width: 100%;
    }

    .contact-privacy__content {
        padding: var(--space-4);
    }
}


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

.restaurant-hero {
  position: relative;
  min-height: 70vh;
  display: flex;
  align-items: flex-end;
  background-image: url('/src/media/restaurant-hero.webp');
  background-size: cover;
  background-position: center;
  background-color: var(--color-charcoal-950);
  border-radius: var(--radius-0);
  overflow: hidden;
}

.restaurant-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(18, 16, 14, 0.35) 0%, rgba(18, 16, 14, 0.6) 55%, rgba(18, 16, 14, 0.85) 100%);
  pointer-events: none;
}

.restaurant-hero__content {
  position: relative;
  z-index: 1;
  padding-block: var(--space-9) var(--space-8);
  width: 100%;
}

.restaurant-hero__label {
  margin-block-end: var(--space-3);
}

.restaurant-hero__title {
  font-size: var(--text-display-size);
  line-height: var(--text-display-leading);
  font-weight: var(--text-display-weight);
  letter-spacing: var(--text-display-tracking);
  max-width: 600px;
  margin-block-end: var(--space-5);
}

.restaurant-hero__lead {
  font-size: var(--text-body-lg-size);
  line-height: var(--text-body-lg-leading);
  color: var(--color-ivory-300);
  max-width: 600px;
  margin-block-end: 0;
}

.restaurant-counterpoint {
  padding-block-start: var(--space-8);
  padding-block-end: var(--space-8);
}

.restaurant-counterpoint__inner {
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
}

.restaurant-counterpoint__label {
  margin-block-end: 0;
}

.restaurant-counterpoint__title {
  max-width: 42ch;
  margin-block-end: 0;
}

.restaurant-counterpoint__lead,
.restaurant-counterpoint__body {
  max-width: 68ch;
  margin-block-end: 0;
}

.restaurant-philosophy {
  padding-block: var(--space-8);
}

.restaurant-philosophy__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-7);
  align-items: center;
}

.restaurant-philosophy__media {
  grid-column: 1 / 8;
  margin-block-end: 0;
  min-width: 0;
}

.restaurant-philosophy__media img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border: 1px solid var(--border-wood-30);
  border-radius: var(--radius-md);
  display: block;
}

.restaurant-philosophy__content {
  grid-column: 8 / 13;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

.restaurant-philosophy__label,
.restaurant-philosophy__title,
.restaurant-philosophy__lead,
.restaurant-philosophy__body {
  margin-block-end: 0;
}

.restaurant-philosophy__title {
  max-width: 42ch;
}

.restaurant-philosophy__lead,
.restaurant-philosophy__body {
  max-width: 68ch;
}

.restaurant-dining-room {
  background-color: var(--color-felt-900);
  border-block: 1px solid var(--border-wood-30);
  padding-block: var(--space-8);
}

.restaurant-dining-room__inner {
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
}

.restaurant-dining-room__label,
.restaurant-dining-room__title,
.restaurant-dining-room__lead,
.restaurant-dining-room__body {
  margin-block-end: 0;
}

.restaurant-dining-room__title {
  max-width: 42ch;
}

.restaurant-dining-room__lead,
.restaurant-dining-room__body {
  max-width: 68ch;
}

.restaurant-signature {
  padding-block: var(--space-8);
}

.restaurant-signature__inner {
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
}

.restaurant-signature__label,
.restaurant-signature__title,
.restaurant-signature__lead {
  margin-block-end: 0;
}

.restaurant-signature__title {
  max-width: 42ch;
}

.restaurant-signature__lead {
  max-width: 68ch;
}

.restaurant-signature__list {
  list-style: none;
  padding-inline-start: 0;
  margin-block-end: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.restaurant-signature__item {
  padding-block: var(--space-5);
  border-block-end: 1px solid var(--border-felt-20);
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.restaurant-signature__item:first-child {
  padding-block-start: 0;
}

.restaurant-signature__item:last-child {
  border-block-end: none;
  padding-block-end: 0;
}

.restaurant-signature__dish-name {
  font-family: var(--font-heading);
  font-size: var(--text-h4-size);
  line-height: var(--text-h4-leading);
  font-weight: var(--text-h4-weight);
  letter-spacing: var(--text-h4-tracking);
  color: var(--color-ivory-100);
  margin-block-end: 0;
}

.restaurant-signature__dish-desc {
  font-size: var(--text-small-size);
  line-height: var(--text-small-leading);
  color: var(--color-ivory-300);
  max-width: 68ch;
  margin-block-end: 0;
}

.restaurant-hours {
  padding-block: var(--space-8);
}

.restaurant-hours__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-7);
}

.restaurant-hours__column {
  grid-column: 1 / 7;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

.restaurant-hours__column--reservations {
  grid-column: 7 / 13;
  padding-inline-start: var(--space-7);
  border-inline-start: 1px solid var(--border-wood-40);
}

.restaurant-hours__label,
.restaurant-hours__title,
.restaurant-hours__body {
  margin-block-end: 0;
}

.restaurant-hours__title {
  max-width: 42ch;
}

.restaurant-hours__body {
  max-width: 68ch;
}

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

.restaurant-hours__contact-list a {
  font-variant-numeric: tabular-nums;
}

.restaurant-poker-focus {
  padding-block: var(--space-8);
  border-block-start: 1px solid var(--border-brass-30);
}

.restaurant-poker-focus__inner {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

.restaurant-poker-focus__label,
.restaurant-poker-focus__title,
.restaurant-poker-focus__body {
  margin-block-end: 0;
}

.restaurant-poker-focus__title {
  max-width: 42ch;
}

.restaurant-poker-focus__body {
  max-width: 68ch;
}

.restaurant-cta {
  background-color: var(--color-felt-900);
  padding-block: var(--space-8);
}

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

.restaurant-cta__title,
.restaurant-cta__lead {
  margin-block-end: 0;
}

.restaurant-cta__title {
  max-width: 42ch;
}

.restaurant-cta__lead {
  max-width: 68ch;
  color: var(--color-ivory-300);
}

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

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

@media (max-width: 1023px) {
  .restaurant-philosophy__grid {
    gap: var(--space-6);
  }

  .restaurant-philosophy__media {
    grid-column: 1 / 8;
  }

  .restaurant-philosophy__content {
    grid-column: 8 / 13;
  }

  .restaurant-hours__grid {
    gap: var(--space-6);
  }

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

  .restaurant-hours__column--reservations {
    grid-column: 7 / 13;
    padding-inline-start: var(--space-6);
  }
}

@media (max-width: 767px) {
  .restaurant-hero {
    min-height: 80vh;
    background-position: 70% center;
  }

  .restaurant-hero__content {
    padding-block: var(--space-7) var(--space-6);
  }

  .restaurant-hero__title {
    font-size: clamp(2.5rem, 9vw, 3.5rem);
  }

  .restaurant-philosophy__grid {
    grid-template-columns: 1fr;
    gap: var(--space-5);
  }

  .restaurant-philosophy__media,
  .restaurant-philosophy__content {
    grid-column: 1 / -1;
  }

  .restaurant-philosophy__media img {
    aspect-ratio: 4 / 3;
  }

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

  .restaurant-hours__column,
  .restaurant-hours__column--reservations {
    grid-column: 1 / -1;
    padding-inline-start: 0;
    border-inline-start: none;
  }

  .restaurant-hours__column--reservations {
    padding-block-start: var(--space-6);
    border-block-start: 1px solid var(--border-wood-40);
  }

  .restaurant-cta__actions {
    flex-direction: column;
    width: 100%;
  }

  .restaurant-cta__button {
    width: 100%;
  }
}

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

  .restaurant-hero__content {
    padding-block: var(--space-6) var(--space-5);
  }

  .restaurant-hero__title {
    font-size: 2.5rem;
  }

  .restaurant-hero__lead {
    font-size: var(--text-body-size);
  }

  .restaurant-philosophy__media img {
    aspect-ratio: 3 / 2;
  }
}


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

.home-hero {
  position: relative;
  width: 100%;
  min-height: 80vh;
  display: flex;
  align-items: flex-end;
  background-color: var(--color-charcoal-950);
}

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

.home-hero__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  border-radius: 0;
}

.home-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(18, 16, 14, 0.55) 0%, rgba(18, 16, 14, 0.7) 100%);
  pointer-events: none;
}

.home-hero__content {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: var(--container-primary-max);
  margin-inline: auto;
  padding-inline: var(--container-side-padding-mobile);
  padding-block-end: var(--space-8);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-5);
}

.home-hero__text {
  max-width: 600px;
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

.home-hero__text h1 {
  font-size: clamp(2.5rem, 5vw + 1rem, 4rem);
  line-height: 1.05;
  font-weight: 500;
  letter-spacing: -0.02em;
  max-width: 16ch;
  margin-block-end: 0;
}

.home-hero__subtitle {
  font-size: var(--text-body-lg-size);
  line-height: var(--text-body-lg-leading);
  color: var(--color-ivory-300);
  max-width: 42ch;
  margin-block-end: 0;
}

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

.home-section {
  padding-block: var(--section-spacing-mobile);
}

.home-poker-first__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-5);
}

.home-poker-first__text {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

.home-poker-first__text h2 {
  margin-block-end: 0;
}

.home-poker-first__text p {
  max-width: 68ch;
  margin-block-end: 0;
}

.home-poker-first__media {
  min-width: 0;
  width: 100%;
}

.home-poker-first__image {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: var(--radius-md);
  border: 1px solid var(--border-wood-30);
}

.home-tables__intro {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  margin-block-end: var(--space-6);
}

.home-tables__intro h2 {
  margin-block-end: 0;
}

.home-tables__intro p {
  max-width: 68ch;
  margin-block-end: 0;
}

.home-tables__list {
  list-style: none;
  padding-inline-start: 0;
  margin-block-end: 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-5);
}

.home-tables__item {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  border-block-start: 1px solid var(--border-felt-20);
  padding-block-start: var(--space-4);
}

.home-tables__number {
  font-family: var(--font-body);
  font-size: var(--text-h3-size);
  line-height: var(--text-h3-leading);
  font-weight: 600;
  color: var(--color-brass-500);
  font-variant-numeric: tabular-nums;
}

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

.home-tables__item p {
  margin-block-end: 0;
  color: var(--color-ivory-300);
}

.home-card-lounge__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-5);
}

.home-card-lounge__media {
  min-width: 0;
  width: 100%;
}

.home-card-lounge__image {
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  border-radius: var(--radius-md);
  border: 1px solid var(--border-wood-30);
}

.home-card-lounge__text {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

.home-card-lounge__text h2 {
  margin-block-end: 0;
}

.home-card-lounge__text p {
  max-width: 68ch;
  margin-block-end: 0;
}

.home-poker-nights__intro {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  margin-block-end: var(--space-6);
}

.home-poker-nights__intro h2 {
  margin-block-end: 0;
}

.home-poker-nights__intro p {
  max-width: 68ch;
  margin-block-end: 0;
}

.home-poker-nights__list {
  list-style: none;
  padding-inline-start: 0;
  margin-block-end: var(--space-6);
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-3);
}

.home-poker-nights__item {
  min-width: 0;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: var(--space-2) var(--space-4);
  padding: var(--space-4);
  background-color: var(--color-charcoal-800);
  border: 1px solid var(--border-wood-30);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-card-inset);
}

.home-poker-nights__day {
  font-family: var(--font-heading);
  font-size: var(--text-h4-size);
  line-height: var(--text-h4-leading);
  font-weight: 600;
  color: var(--color-ivory-100);
}

.home-poker-nights__time {
  font-size: var(--text-body-size);
  line-height: var(--text-body-leading);
  color: var(--color-brass-500);
  font-variant-numeric: tabular-nums;
  text-align: end;
}

.home-poker-nights__format {
  grid-column: 1 / -1;
  font-size: var(--text-small-size);
  line-height: var(--text-small-leading);
  color: var(--color-ivory-300);
}

.home-poker-nights__link {
  min-width: 0;
}

.home-restaurant {
  background-color: var(--color-parchment-100);
  color: var(--color-ink-900);
}

.home-restaurant__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-5);
}

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

.home-restaurant__label {
  color: var(--color-burgundy-700);
}

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

.home-restaurant__text p {
  color: var(--color-ink-900);
  max-width: 68ch;
  margin-block-end: 0;
}

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

.home-restaurant__media {
  min-width: 0;
  width: 100%;
}

.home-restaurant__image {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: var(--radius-md);
  border: 1px solid var(--border-wood-30);
}

.home-why__intro {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  margin-block-end: var(--space-6);
}

.home-why__intro h2 {
  margin-block-end: 0;
}

.home-why__intro p {
  max-width: 68ch;
  margin-block-end: 0;
}

.home-why__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-5);
}

.home-why__card {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}

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

.home-why__card p {
  margin-block-end: 0;
  color: var(--color-ivory-300);
  max-width: 40ch;
}

.home-plan {
  background-color: var(--color-felt-900);
}

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

.home-plan__label {
  color: var(--color-brass-500);
}

.home-plan__inner h2 {
  margin-block-end: 0;
}

.home-plan__inner p {
  max-width: 68ch;
  margin-block-end: 0;
}

.home-plan__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-4);
  justify-content: center;
}

.home-plan__actions .btn {
  min-width: 0;
}

.home-visit__intro {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  margin-block-end: var(--space-6);
}

.home-visit__intro h2 {
  margin-block-end: 0;
}

.home-visit__intro p {
  max-width: 68ch;
  margin-block-end: 0;
}

.home-visit__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-5);
}

.home-visit__card {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}

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

.home-visit__card p {
  margin-block-end: 0;
}

.home-visit__card a {
  color: var(--color-brass-500);
}

@media (min-width: 768px) {
  .home-hero__content {
    padding-inline: var(--container-side-padding-desktop);
    padding-block-end: var(--space-10);
  }

  .home-section {
    padding-block: var(--section-spacing-desktop);
  }

  .home-poker-first__grid {
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: var(--space-5);
  }

  .home-poker-first__text {
    grid-column: 1 / 8;
  }

  .home-poker-first__media {
    grid-column: 8 / 13;
  }

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

  .home-card-lounge__grid {
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: var(--space-5);
  }

  .home-card-lounge__media {
    grid-column: 1 / 6;
  }

  .home-card-lounge__text {
    grid-column: 6 / 13;
  }

  .home-poker-nights__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-4);
  }

  .home-restaurant__grid {
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: var(--space-5);
  }

  .home-restaurant__text {
    grid-column: 1 / 8;
  }

  .home-restaurant__media {
    grid-column: 8 / 13;
  }

  .home-why__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--space-5);
  }

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

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

  .home-hero__content {
    align-items: center;
    text-align: center;
    padding-block-end: var(--space-7);
  }

  .home-hero__text {
    align-items: center;
  }

  .home-hero__text h1 {
    font-size: 2.5rem;
    max-width: 100%;
  }

  .home-hero__subtitle {
    max-width: 100%;
  }

  .home-poker-nights__item {
    grid-template-columns: 1fr;
    gap: var(--space-2);
  }

  .home-poker-nights__time {
    text-align: start;
  }

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

  .home-plan__actions .btn {
    width: 100%;
  }
}


/* Menu page styles */

.menu-hero {
  background-color: var(--color-charcoal-950);
  padding-block: var(--space-8) var(--space-7);
}

.menu-hero__inner {
  display: grid;
  grid-template-columns: 7fr 5fr;
  gap: var(--space-6);
  align-items: center;
}

.menu-hero__content {
  min-width: 0;
}

.menu-hero__lede {
  font-size: var(--text-body-lg-size);
  line-height: var(--text-body-lg-leading);
  color: var(--color-ivory-100);
  max-width: 680px;
  margin-block-end: var(--space-4);
}

.menu-hero__details p {
  color: var(--color-ivory-300);
  max-width: 680px;
}

.menu-hero__media {
  margin: 0;
  min-width: 0;
}

.menu-hero__media img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: var(--radius-md);
  border: 1px solid var(--border-wood-30);
}

.menu-philosophy {
  padding-block: var(--space-7) var(--space-8);
  border-top: 1px solid var(--border-felt-20);
  border-bottom: 1px solid var(--border-felt-20);
}

.menu-philosophy__inner {
  max-width: 760px;
  margin-inline: auto;
}

.menu-philosophy p {
  color: var(--color-ivory-300);
}

.menu-section--parchment {
  background-color: var(--color-parchment-100);
  color: var(--color-ink-900);
  padding-block: var(--space-8);
}

.menu-section--parchment .section-label {
  color: var(--color-burgundy-700);
}

.menu-section--parchment .menu-section__label--felt {
  color: var(--color-felt-700);
}

.menu-section--parchment h2 {
  color: var(--color-ink-900);
}

.menu-section__inner {
  max-width: 760px;
  margin-inline: auto;
  padding-inline: var(--container-side-padding-mobile);
}

.menu-section__intro {
  color: var(--color-ink-900);
  margin-block-end: var(--space-5);
  max-width: 680px;
}

.menu-section--burgundy-rule {
  border-top: 2px solid var(--color-burgundy-700);
}

.menu-section--wood-divider {
  border-top: 1px solid var(--border-wood-40);
}

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

.menu-list__item {
  padding-block: var(--space-4);
  border-bottom: 1px solid var(--border-wood-30);
}

.menu-list__item:last-child {
  border-bottom: none;
}

.menu-list__row {
  display: flex;
  align-items: baseline;
  gap: var(--space-3);
}

.menu-list__name {
  font-family: var(--font-heading);
  font-size: var(--text-h4-size);
  line-height: var(--text-h4-leading);
  font-weight: var(--text-h4-weight);
  letter-spacing: var(--text-h4-tracking);
  color: var(--color-ink-900);
  margin: 0;
  min-width: 0;
  flex: 1;
}

.menu-list__price {
  font-family: var(--font-body);
  font-size: var(--text-body-size);
  font-weight: 600;
  color: var(--color-brass-500);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.menu-list__description {
  font-size: var(--text-small-size);
  line-height: var(--text-small-leading);
  color: var(--color-ink-900);
  margin: var(--space-1) 0 0;
}

.menu-hours {
  background-color: var(--color-charcoal-900);
  padding-block: var(--space-8);
}

.menu-hours__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-6);
  align-items: start;
}

.menu-hours__content {
  min-width: 0;
}

.menu-hours__content p {
  color: var(--color-ivory-300);
  max-width: 680px;
}

.menu-hours__aside {
  min-width: 0;
}

.menu-hours__list {
  list-style: none;
  padding: 0;
  margin: 0;
  font-variant-numeric: tabular-nums;
}

.menu-hours__list li {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  padding-block: var(--space-2);
  border-bottom: 1px solid var(--border-felt-20);
  color: var(--color-ivory-100);
}

.menu-hours__time {
  font-weight: 600;
  color: var(--color-brass-500);
  min-width: 140px;
}

.menu-hours__note {
  margin-block-start: var(--space-4);
  color: var(--color-ivory-300);
  font-size: var(--text-small-size);
}

.menu-reservations {
  padding-block: var(--space-8);
  border-top: 1px solid var(--border-wood-30);
}

.menu-reservations__inner {
  max-width: 680px;
  margin-inline: 0;
}

.menu-reservations__inner p {
  color: var(--color-ivory-300);
  margin-block-end: var(--space-5);
}

.menu-reservations__cta {
  display: inline-flex;
}

.menu-gallery {
  padding-block: var(--space-8);
}

.menu-gallery__inner {
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
}

.menu-gallery__intro {
  color: var(--color-ivory-300);
  max-width: 680px;
}

.menu-gallery__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-5);
}

.menu-gallery__item {
  margin: 0;
  min-width: 0;
}

.menu-gallery__item img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: var(--radius-md);
  border: 1px solid var(--border-wood-30);
}

.menu-gallery__item figcaption {
  color: var(--color-ivory-300);
  font-size: var(--text-small-size);
  margin-block-start: var(--space-2);
}

.menu-back-to-tables {
  padding-block: var(--space-8);
  border-left: 4px solid var(--color-felt-900);
  background-color: var(--color-charcoal-950);
}

.menu-back-to-tables__inner {
  max-width: 680px;
  margin-inline: 0;
  padding-inline: var(--space-5);
}

.menu-back-to-tables p {
  color: var(--color-ivory-300);
}

.menu-back-to-tables a {
  color: var(--color-brass-500);
}

.menu-back-to-tables a:hover {
  color: var(--color-brass-300);
}

@media (min-width: 768px) {
  .menu-section__inner {
    padding-inline: var(--container-side-padding-desktop);
  }
}

@media (max-width: 767px) {
  .menu-hero__inner {
    grid-template-columns: 1fr;
    gap: var(--space-5);
  }

  .menu-hero__media {
    order: -1;
  }

  .menu-hours__inner {
    grid-template-columns: 1fr;
    gap: var(--space-5);
  }

  .menu-gallery__grid {
    grid-template-columns: 1fr;
  }

  .menu-reservations__cta {
    width: 100%;
  }

  .menu-list__row {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-1);
  }

  .menu-list__price {
    white-space: normal;
  }

  .menu-hours__time {
    min-width: 0;
    width: 100%;
  }
}

@media (min-width: 768px) and (max-width: 1023px) {
  .menu-hero__inner {
    grid-template-columns: 1fr 1fr;
    gap: var(--space-5);
  }

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


/* Poker Nights page-owned styles */

.poker-nights-page {
  display: block;
}

/* Hero */
.poker-nights-hero {
  position: relative;
  background-color: var(--color-charcoal-950);
  overflow: hidden;
}

.poker-nights-hero__inner {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-6);
  align-items: center;
  min-height: 620px;
  padding-block: var(--space-8);
}

.poker-nights-hero__text {
  grid-column: 1 / span 7;
  position: relative;
  z-index: 2;
  padding: var(--space-8);
  background-color: var(--color-felt-900);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-card-inset);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
}

.poker-nights-hero__text .section-label {
  margin-block-end: 0;
}

.poker-nights-hero__text h1 {
  margin-block-end: 0;
  max-width: 16ch;
  font-size: clamp(2.5rem, 5vw + 1rem, 4rem);
  line-height: 1.05;
  letter-spacing: -0.02em;
}

.poker-nights-hero__lead {
  margin-block-end: 0;
  max-width: 42ch;
  font-size: var(--text-body-lg-size);
  line-height: var(--text-body-lg-leading);
  color: var(--color-ivory-100);
}

.poker-nights-hero__details {
  margin-block-end: 0;
  max-width: 52ch;
  color: var(--color-ivory-300);
}

.poker-nights-hero__media {
  grid-column: 8 / span 5;
  min-width: 0;
  position: relative;
  align-self: stretch;
  display: flex;
  align-items: center;
}

.poker-nights-hero__media img {
  width: 100%;
  height: 100%;
  min-height: 420px;
  object-fit: cover;
  border-radius: var(--radius-md);
  border: 1px solid var(--border-wood-30);
  display: block;
}

/* Weekly Schedule */
.poker-nights-schedule__intro {
  max-width: 52ch;
  margin-block-end: var(--space-6);
  color: var(--color-ivory-300);
}

.poker-nights-schedule__rows {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  border-block-start: 1px solid var(--border-felt-20);
}

.poker-nights-schedule__row {
  display: grid;
  grid-template-columns: minmax(140px, 0.6fr) 1.4fr;
  gap: var(--space-5);
  padding-block: var(--space-5);
  border-block-end: 1px solid var(--border-felt-20);
  align-items: start;
  min-width: 0;
}

.poker-nights-schedule__day-time {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  min-width: 0;
}

.poker-nights-schedule__day-time h3 {
  margin-block-end: 0;
  font-size: var(--text-h3-size);
}

.poker-nights-schedule__day-time time {
  font-variant-numeric: tabular-nums;
  font-size: var(--text-body-lg-size);
  color: var(--color-brass-500);
  font-weight: 600;
}

.poker-nights-schedule__info {
  min-width: 0;
}

.poker-nights-schedule__info h4 {
  margin-block-end: var(--space-2);
}

.poker-nights-schedule__info p {
  margin-block-end: 0;
  color: var(--color-ivory-300);
  max-width: 52ch;
}

/* Session Formats */
.poker-nights-formats__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-5);
}

.poker-nights-format-card {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  min-width: 0;
  padding: var(--space-5);
}

.poker-nights-format-card h3 {
  margin-block-end: 0;
}

.poker-nights-format-card p {
  margin-block-end: 0;
  color: var(--color-ivory-300);
  max-width: 34ch;
}

.poker-nights-format-card .content-list {
  margin-block-end: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.poker-nights-format-card .content-list > li {
  margin-block-end: 0;
  color: var(--color-ivory-100);
  font-size: var(--text-small-size);
  line-height: var(--text-small-leading);
  padding-inline-start: var(--space-4);
  position: relative;
}

.poker-nights-format-card .content-list > li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.55em;
  width: 6px;
  height: 6px;
  background-color: var(--color-brass-500);
  border-radius: 1px;
}

/* Room on Poker Night */
.poker-nights-room__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-6);
  align-items: center;
}

.poker-nights-room__text {
  grid-column: 1 / span 7;
  min-width: 0;
}

.poker-nights-room__text h2 {
  margin-block-end: var(--space-4);
}

.poker-nights-room__text p {
  max-width: 52ch;
  color: var(--color-ivory-300);
}

.poker-nights-room__text p:last-child {
  margin-block-end: 0;
}

.poker-nights-room__media {
  grid-column: 8 / span 5;
  min-width: 0;
}

.poker-nights-room__media img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: var(--radius-md);
  border: 1px solid var(--border-wood-30);
  display: block;
}

/* Conduct and Expectations */
.poker-nights-conduct__intro {
  max-width: 52ch;
  margin-block-end: var(--space-6);
  color: var(--color-ivory-300);
}

.poker-nights-conduct__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-6);
}

.poker-nights-conduct__grid .content-list {
  margin-block-end: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  padding-inline-start: 0;
  list-style: none;
}

.poker-nights-conduct__grid .content-list > li {
  margin-block-end: 0;
  padding-inline-start: var(--space-5);
  position: relative;
  color: var(--color-ivory-100);
}

.poker-nights-conduct__grid .content-list > li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.5em;
  width: 8px;
  height: 8px;
  border: 1px solid var(--color-brass-500);
  border-radius: 1px;
  background-color: transparent;
}

/* Restaurant Note */
.poker-nights-restaurant {
  padding-block: 0;
}

.poker-nights-restaurant__inner {
  background-color: var(--color-parchment-100);
  border-block-start: 1px solid var(--color-burgundy-700);
  padding-block: var(--section-spacing-mobile);
}

.poker-nights-restaurant__inner .container-narrow {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  align-items: flex-start;
}

.poker-nights-restaurant__label {
  color: var(--color-burgundy-700);
}

.poker-nights-restaurant__inner h2 {
  color: var(--color-ink-900);
  margin-block-end: 0;
}

.poker-nights-restaurant__inner p {
  color: var(--color-ink-900);
  margin-block-end: 0;
  max-width: 52ch;
}

.poker-nights-restaurant__link {
  color: var(--color-brass-500);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  transition: color var(--transition-color), text-decoration-thickness var(--transition-color);
}

.poker-nights-restaurant__link:hover {
  color: var(--color-brass-300);
  text-decoration-thickness: 2px;
}

/* Booking and Arrival */
.poker-nights-booking__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-6);
  align-items: start;
}

.poker-nights-booking__text {
  grid-column: 1 / span 7;
  min-width: 0;
}

.poker-nights-booking__text h2 {
  margin-block-end: var(--space-4);
}

.poker-nights-booking__text p {
  max-width: 52ch;
  color: var(--color-ivory-300);
}

.poker-nights-booking__text p:last-child {
  margin-block-end: 0;
}

.poker-nights-booking__card {
  grid-column: 8 / span 5;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  border-color: var(--border-brass-30);
}

.poker-nights-booking__card h3 {
  margin-block-end: 0;
}

.poker-nights-booking__card p {
  margin-block-end: 0;
  font-variant-numeric: tabular-nums;
}

.poker-nights-booking__card a {
  color: var(--color-brass-500);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

.poker-nights-booking__card a:hover {
  color: var(--color-brass-300);
  text-decoration-thickness: 2px;
}

.poker-nights-booking__address {
  color: var(--color-ivory-300);
  font-size: var(--text-small-size);
}

/* Closing CTA */
.poker-nights-cta {
  background-color: var(--color-felt-900);
  padding-block: var(--section-spacing-mobile);
}

.poker-nights-cta__inner {
  max-width: var(--container-editorial-max);
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-4);
  text-align: center;
}

.poker-nights-cta__inner h2 {
  margin-block-end: 0;
  max-width: 20ch;
  color: var(--color-ivory-100);
}

.poker-nights-cta__inner p {
  margin-block-end: 0;
  max-width: 52ch;
  color: var(--color-ivory-300);
}

.poker-nights-cta__details {
  font-size: var(--text-small-size);
}

.poker-nights-cta__inner .btn {
  margin-block-start: var(--space-2);
}

/* Tablet */
@media (min-width: 768px) and (max-width: 1023px) {
  .poker-nights-hero__inner {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: var(--space-5);
    min-height: 520px;
  }

  .poker-nights-hero__text {
    grid-column: 1 / span 4;
    padding: var(--space-6);
  }

  .poker-nights-hero__media {
    grid-column: 5 / span 2;
  }

  .poker-nights-hero__media img {
    min-height: 380px;
  }

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

  .poker-nights-format-card:last-child {
    grid-column: 1 / -1;
  }

  .poker-nights-room__grid {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }

  .poker-nights-room__text {
    grid-column: 1 / span 4;
  }

  .poker-nights-room__media {
    grid-column: 5 / span 2;
  }

  .poker-nights-booking__grid {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }

  .poker-nights-booking__text {
    grid-column: 1 / span 4;
  }

  .poker-nights-booking__card {
    grid-column: 5 / span 2;
  }

  .poker-nights-restaurant__inner {
    padding-block: var(--section-spacing-mobile);
  }

  .poker-nights-cta {
    padding-block: var(--section-spacing-mobile);
  }
}

/* Mobile */
@media (max-width: 767px) {
  .poker-nights-hero__inner {
    grid-template-columns: 1fr;
    gap: var(--space-5);
    min-height: auto;
    padding-block: var(--space-5);
  }

  .poker-nights-hero__media {
    grid-column: 1;
    order: -1;
  }

  .poker-nights-hero__media img {
    min-height: 240px;
    aspect-ratio: 4 / 3;
    object-fit: cover;
  }

  .poker-nights-hero__text {
    grid-column: 1;
    padding: var(--space-5);
    gap: var(--space-3);
  }

  .poker-nights-hero__text h1 {
    font-size: 2.5rem;
    line-height: 1.05;
  }

  .poker-nights-hero__lead {
    font-size: var(--text-body-size);
  }

  .poker-nights-hero__details {
    font-size: var(--text-small-size);
  }

  .poker-nights-schedule__row {
    grid-template-columns: 1fr;
    gap: var(--space-3);
    padding-block: var(--space-4);
  }

  .poker-nights-schedule__day-time {
    flex-direction: row;
    align-items: baseline;
    gap: var(--space-3);
  }

  .poker-nights-schedule__day-time time {
    font-size: var(--text-body-size);
  }

  .poker-nights-formats__grid {
    grid-template-columns: 1fr;
    gap: var(--space-4);
  }

  .poker-nights-format-card {
    padding: var(--space-4);
  }

  .poker-nights-room__grid {
    grid-template-columns: 1fr;
    gap: var(--space-5);
  }

  .poker-nights-room__media {
    grid-column: 1;
    order: -1;
  }

  .poker-nights-room__text {
    grid-column: 1;
  }

  .poker-nights-conduct__grid {
    grid-template-columns: 1fr;
    gap: var(--space-4);
  }

  .poker-nights-restaurant__inner {
    padding-block: var(--section-spacing-mobile);
  }

  .poker-nights-booking__grid {
    grid-template-columns: 1fr;
    gap: var(--space-5);
  }

  .poker-nights-booking__text {
    grid-column: 1;
  }

  .poker-nights-booking__card {
    grid-column: 1;
  }

  .poker-nights-cta {
    padding-block: var(--section-spacing-mobile);
  }

  .poker-nights-cta__inner {
    gap: var(--space-3);
  }

  .poker-nights-cta__inner h2 {
    font-size: var(--text-h2-size);
  }
}

@media (min-width: 768px) {
  .poker-nights-restaurant__inner {
    padding-block: var(--section-spacing-desktop);
  }

  .poker-nights-cta {
    padding-block: var(--section-spacing-desktop);
  }
}


/* Card Lounge page-owned styles */

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

.cl-hero__image {
  position: absolute;
  inset: 0;
  background-image: url('/src/media/card-lounge-hero.webp');
  background-size: cover;
  background-position: center;
  z-index: 0;
}

.cl-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(18, 16, 14, 0.3) 0%, rgba(18, 16, 14, 0.6) 60%, rgba(18, 16, 14, 0.85) 100%);
  z-index: 1;
}

.cl-hero__content {
  position: relative;
  z-index: 2;
  padding-block: var(--space-8) var(--space-7);
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  align-items: flex-start;
  max-width: 680px;
  margin-inline: 0;
}

.cl-hero__content h1 {
  font-size: var(--text-display-size);
  line-height: var(--text-display-leading);
  font-weight: var(--text-display-weight);
  letter-spacing: var(--text-display-tracking);
  margin-block-end: 0;
  max-width: 42ch;
}

.cl-hero__lead {
  font-size: var(--text-body-lg-size);
  line-height: var(--text-body-lg-leading);
  color: var(--color-ivory-300);
  max-width: 68ch;
  margin-block-end: 0;
}

.cl-hero__cta {
  margin-block-start: var(--space-2);
}

.cl-experience {
  padding-block: var(--section-spacing-mobile);
}

.cl-experience .container-narrow {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

.cl-experience h2,
.cl-experience h3 {
  margin-block-end: 0;
}

.cl-experience p {
  margin-block-end: 0;
}

.cl-experience__quote {
  border-inline-start: 2px solid var(--color-wood-300);
  color: var(--color-wood-300);
  padding-inline-start: var(--space-5);
  margin-block: var(--space-2) 0;
  font-style: italic;
}

.cl-layout {
  padding-block: var(--section-spacing-mobile);
}

.cl-layout__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-6);
  align-items: start;
}

.cl-layout__text {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  min-width: 0;
}

.cl-layout__text h2,
.cl-layout__text h3 {
  margin-block-end: 0;
}

.cl-layout__text p {
  margin-block-end: 0;
}

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

.cl-layout__list li {
  position: relative;
  padding-inline-start: var(--space-5);
}

.cl-layout__list li::before {
  content: '—';
  position: absolute;
  left: 0;
  color: var(--color-brass-500);
}

.cl-layout__figure {
  margin-block-end: 0;
  min-width: 0;
}

.cl-layout__figure img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border: 1px solid var(--border-wood-30);
  border-radius: var(--radius-md);
}

.cl-layout__figure figcaption {
  max-width: 42ch;
  margin-block-start: var(--space-2);
}

.cl-sessions {
  background-color: var(--color-felt-900);
  padding-block: var(--section-spacing-mobile);
}

.cl-sessions .container-narrow {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

.cl-sessions h2,
.cl-sessions h3 {
  margin-block-end: 0;
}

.cl-sessions p {
  margin-block-end: 0;
}

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

.cl-sessions__list li {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: var(--space-2);
  padding-block: var(--space-2);
  border-block-end: 1px solid var(--border-felt-20);
  font-variant-numeric: tabular-nums;
}

.cl-sessions__list li span:first-child {
  color: var(--color-ivory-100);
}

.cl-sessions__list li span:last-child {
  color: var(--color-felt-300);
}

.cl-sessions__list a {
  color: var(--color-brass-500);
}

.cl-tables {
  padding-block: var(--section-spacing-mobile);
}

.cl-tables .container {
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
}

.cl-tables h2,
.cl-tables h3 {
  margin-block-end: 0;
}

.cl-tables p {
  margin-block-end: 0;
}

.cl-tables__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-5);
}

.cl-tables__card {
  background-color: var(--color-charcoal-800);
  border: 1px solid var(--border-wood-30);
  border-radius: var(--radius-md);
  padding: var(--space-5);
  box-shadow: var(--shadow-card-inset);
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  min-width: 0;
  transition: border-color var(--transition-color);
}

.cl-tables__card:hover {
  border-color: var(--border-brass-30);
}

.cl-tables__icon {
  font-size: 2rem;
  line-height: 1;
  color: var(--color-brass-500);
}

.cl-tables__card h3 {
  margin-block-end: 0;
}

.cl-tables__card p {
  margin-block-end: 0;
  max-width: 42ch;
}

.cl-tables__note {
  color: var(--color-ivory-300);
  max-width: 68ch;
}

.cl-etiquette {
  padding-block: var(--section-spacing-mobile);
  border-inline-start: 1px solid var(--border-wood-40);
}

.cl-etiquette .container-narrow {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

.cl-etiquette h2,
.cl-etiquette h3 {
  margin-block-end: 0;
}

.cl-etiquette p {
  margin-block-end: 0;
}

.cl-etiquette__list {
  list-style: none;
  padding-inline-start: 0;
  margin-block-end: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  counter-reset: etiquette-counter;
}

.cl-etiquette__list li {
  counter-increment: etiquette-counter;
  position: relative;
  padding-inline-start: var(--space-6);
}

.cl-etiquette__list li::before {
  content: counter(etiquette-counter);
  position: absolute;
  left: 0;
  color: var(--color-brass-500);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}

.cl-etiquette__quote {
  border-inline-start: 2px solid var(--color-wood-300);
  color: var(--color-wood-300);
  padding-inline-start: var(--space-5);
  margin-block: var(--space-2) 0;
  font-style: italic;
}

.cl-restaurant {
  background-color: var(--color-parchment-100);
  padding-block: var(--section-spacing-mobile);
  border-block-start: 1px solid var(--color-burgundy-700);
}

.cl-restaurant__inner {
  max-width: var(--container-editorial-max);
  margin-inline: auto;
  padding-inline: var(--container-side-padding-mobile);
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  align-items: center;
  text-align: center;
}

.cl-restaurant__label {
  color: var(--color-burgundy-700);
}

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

.cl-restaurant p {
  color: var(--color-ink-900);
  max-width: 60ch;
  margin-block-end: 0;
}

.cl-restaurant a {
  color: var(--color-burgundy-700);
}

.cl-restaurant__link {
  font-size: var(--text-label-size);
  line-height: var(--text-label-leading);
  font-weight: var(--text-label-weight);
  letter-spacing: var(--text-label-tracking);
  text-transform: uppercase;
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: color var(--transition-color), text-decoration-thickness var(--transition-color);
}

.cl-restaurant__link:hover {
  color: var(--color-wood-700);
  text-decoration-thickness: 2px;
}

.cl-visit {
  padding-block: var(--section-spacing-mobile);
}

.cl-visit__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-6);
  background-color: var(--color-charcoal-800);
  border: 1px solid var(--border-wood-30);
  border-radius: var(--radius-md);
  padding: var(--space-6);
  box-shadow: var(--shadow-card-inset);
}

.cl-visit__details,
.cl-visit__cta {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  min-width: 0;
}

.cl-visit__details h2,
.cl-visit__cta h3 {
  margin-block-end: 0;
}

.cl-visit__details p,
.cl-visit__cta p {
  margin-block-end: 0;
}

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

.cl-visit__list li {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: var(--space-2);
  padding-block: var(--space-2);
  border-block-end: 1px solid var(--border-felt-20);
  font-variant-numeric: tabular-nums;
}

.cl-visit__list li span:first-child {
  color: var(--color-felt-300);
  font-size: var(--text-label-size);
  text-transform: uppercase;
  letter-spacing: var(--text-label-tracking);
}

.cl-visit__list li span:last-child {
  color: var(--color-ivory-100);
}

.cl-visit__cta {
  align-items: flex-start;
}

.cl-visit__button {
  margin-block-start: var(--space-2);
}

.cl-faq {
  padding-block: var(--section-spacing-mobile);
}

.cl-faq .container-narrow {
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
}

.cl-faq h2 {
  margin-block-end: 0;
}

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

.cl-faq__item {
  border-block-end: 1px solid var(--border-felt-20);
  padding-block-end: var(--space-4);
}

.cl-faq__question {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--space-4);
  width: 100%;
  text-align: start;
  font-family: var(--font-heading);
  font-size: var(--text-h4-size);
  line-height: var(--text-h4-leading);
  font-weight: var(--text-h4-weight);
  color: var(--color-brass-500);
  padding: 0;
  background: none;
  border: none;
  cursor: pointer;
  transition: color var(--transition-color);
}

.cl-faq__question:hover {
  color: var(--color-brass-300);
}

.cl-faq__question::after {
  content: '+';
  font-family: var(--font-body);
  font-size: 1.5rem;
  line-height: 1;
  color: var(--color-felt-300);
  transition: transform var(--transition-drawer);
}

.cl-faq__question[aria-expanded="true"]::after {
  transform: rotate(45deg);
}

.cl-faq__answer {
  margin-block-start: var(--space-3);
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}

.cl-faq__answer[hidden] {
  display: none;
}

.cl-faq__answer p {
  margin-block-end: 0;
}

.cl-final {
  background-color: var(--color-felt-900);
  padding-block: var(--section-spacing-mobile);
}

.cl-final__inner {
  max-width: var(--container-editorial-max);
  margin-inline: auto;
  padding-inline: var(--container-side-padding-mobile);
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  align-items: center;
  text-align: center;
}

.cl-final h2 {
  margin-block-end: 0;
}

.cl-final p {
  margin-block-end: 0;
  max-width: 60ch;
}

.cl-final__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-4);
  justify-content: center;
  margin-block-start: var(--space-2);
}

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

  .cl-hero__content {
    padding-block: var(--space-9) var(--space-8);
  }

  .cl-experience,
  .cl-layout,
  .cl-tables,
  .cl-etiquette,
  .cl-visit,
  .cl-faq {
    padding-block: var(--section-spacing-desktop);
  }

  .cl-layout__grid {
    grid-template-columns: 7fr 5fr;
    gap: var(--space-7);
  }

  .cl-tables__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-5);
  }

  .cl-visit__grid {
    grid-template-columns: 3fr 2fr;
    gap: var(--space-7);
    padding: var(--space-7);
  }

  .cl-visit__cta {
    align-items: flex-start;
  }

  .cl-restaurant__inner,
  .cl-final__inner {
    padding-inline: var(--container-side-padding-desktop);
  }
}

@media (max-width: 767px) {
  .cl-hero {
    min-height: 0;
    flex-direction: column;
  }

  .cl-hero__image {
    position: relative;
    width: 100%;
    aspect-ratio: 4 / 5;
    background-position: center 30%;
  }

  .cl-hero__overlay {
    display: none;
  }

  .cl-hero__content {
    position: relative;
    z-index: 2;
    background-color: var(--color-charcoal-950);
    padding: var(--space-6) var(--container-side-padding-mobile);
    max-width: 100%;
    margin-inline: 0;
  }

  .cl-hero__content h1 {
    font-size: clamp(2.5rem, 10vw, 3rem);
  }

  .cl-layout__grid {
    grid-template-columns: 1fr;
  }

  .cl-layout__figure {
    order: -1;
  }

  .cl-tables__grid {
    grid-template-columns: 1fr;
  }

  .cl-visit__grid {
    grid-template-columns: 1fr;
    padding: var(--space-5);
  }

  .cl-final__actions {
    flex-direction: column;
    width: 100%;
  }

  .cl-final__actions .btn {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cl-faq__question::after {
    transition: none;
  }
}


/* Page-owned styles for /offline-poker/ */

.op-hero {
  position: relative;
  min-height: 620px;
  display: flex;
  align-items: center;
  background-color: var(--color-charcoal-950);
  overflow: hidden;
}

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

.op-hero__media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    90deg,
    rgba(18, 16, 14, 0.72) 0%,
    rgba(18, 16, 14, 0.55) 45%,
    rgba(14, 43, 34, 0.7) 100%
  );
}

.op-hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 0;
}

.op-hero__content {
  position: relative;
  z-index: 1;
  width: 100%;
}

.op-hero__text {
  max-width: 620px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-5);
}

.op-hero__text h1 {
  font-size: clamp(2.5rem, 4.5vw + 1rem, 4rem);
  line-height: var(--text-display-leading);
  font-weight: var(--text-display-weight);
  letter-spacing: var(--text-display-tracking);
  max-width: 13ch;
  margin-block-end: 0;
  color: var(--color-ivory-100);
}

.op-hero__lead {
  font-size: var(--text-body-lg-size);
  line-height: var(--text-body-lg-leading);
  color: var(--color-ivory-300);
  max-width: 560px;
  margin-block-end: 0;
}

.op-hero__support {
  font-size: var(--text-body-size);
  line-height: var(--text-body-leading);
  color: var(--color-ivory-300);
  max-width: 560px;
  margin-block-end: 0;
}

.op-hero__cta {
  margin-block-start: var(--space-2);
}

.op-meaning {
  background-color: var(--color-felt-900);
  padding-block: var(--section-spacing-mobile);
}

.op-meaning__inner {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-7);
  align-items: center;
}

.op-meaning__content {
  min-width: 0;
}

.op-meaning__content h2 {
  margin-block-end: var(--space-4);
}

.op-meaning__lead {
  font-size: var(--text-body-lg-size);
  line-height: var(--text-body-lg-leading);
  max-width: 680px;
  color: var(--color-ivory-100);
  margin-block-end: var(--space-6);
}

.op-meaning__columns {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-5);
}

.op-meaning__column {
  min-width: 0;
}

.op-meaning__column h3 {
  margin-block-end: var(--space-3);
}

.op-meaning__column p {
  max-width: 68ch;
  color: var(--color-ivory-300);
}

.op-meaning__rule {
  display: block;
  width: 48px;
  height: 2px;
  background-color: var(--color-brass-500);
  margin-block-end: var(--space-3);
}

.op-meaning__quote {
  border-inline-start: none;
  padding-inline-start: 0;
  margin-block-end: 0;
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  max-width: 42ch;
  margin-inline: auto;
}

.op-meaning__quote::before,
.op-meaning__quote::after {
  content: "";
  display: block;
  width: 100%;
  height: 1px;
  background-color: var(--border-brass-30);
}

.op-meaning__quote p {
  font-family: var(--font-heading);
  font-size: 1.5rem;
  line-height: 1.3;
  font-style: italic;
  color: var(--color-wood-300);
  margin-block-end: 0;
}

.op-environment {
  padding-block: var(--section-spacing-mobile);
}

.op-environment__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-7);
  align-items: start;
}

.op-environment__text {
  min-width: 0;
}

.op-environment__text h2 {
  margin-block-end: var(--space-5);
}

.op-environment__feature {
  margin-block-end: var(--space-5);
}

.op-environment__feature:last-child {
  margin-block-end: 0;
}

.op-environment__label {
  display: block;
  font-size: var(--text-label-size);
  line-height: var(--text-label-leading);
  font-weight: var(--text-label-weight);
  letter-spacing: var(--text-label-tracking);
  text-transform: uppercase;
  color: var(--color-felt-300);
  margin-block-end: var(--space-2);
}

.op-environment__feature p {
  max-width: 68ch;
  color: var(--color-ivory-300);
}

.op-environment__media {
  min-width: 0;
}

.op-environment__media img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: var(--radius-md);
  border: 1px solid var(--border-wood-30);
}

.op-sessions {
  padding-block: var(--section-spacing-mobile);
  background-color: var(--color-charcoal-900);
}

.op-sessions .container > h2 {
  margin-block-end: var(--space-6);
}

.op-sessions__card {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-6);
}

.op-sessions__formats,
.op-sessions__times {
  min-width: 0;
}

.op-sessions__formats h3,
.op-sessions__times h3 {
  margin-block-end: var(--space-3);
}

.op-sessions__formats > p,
.op-sessions__times > p {
  color: var(--color-ivory-300);
  max-width: 68ch;
}

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

.op-sessions__list li {
  padding-block-end: var(--space-4);
  border-block-end: 1px solid var(--border-brass-20);
}

.op-sessions__list li:last-child {
  padding-block-end: 0;
  border-block-end: none;
}

.op-sessions__list h4 {
  margin-block-end: var(--space-2);
}

.op-sessions__list p {
  color: var(--color-ivory-300);
  margin-block-end: 0;
}

.op-sessions__table-wrap {
  margin-block-start: var(--space-4);
  overflow-x: auto;
}

.op-sessions__table {
  margin-block-end: 0;
  min-width: 360px;
}

.op-sessions__table th,
.op-sessions__table td {
  padding-inline: 0;
  padding-inline-end: var(--space-4);
}

.op-nights {
  padding-block: var(--section-spacing-mobile);
}

.op-nights__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-7);
  align-items: start;
}

.op-nights__media {
  min-width: 0;
}

.op-nights__media img {
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  border-radius: var(--radius-md);
  border: 1px solid var(--border-wood-30);
}

.op-nights__text {
  min-width: 0;
}

.op-nights__text h2 {
  margin-block-end: var(--space-4);
}

.op-nights__text > p {
  color: var(--color-ivory-300);
  max-width: 68ch;
}

.op-nights__text h3 {
  margin-block-start: var(--space-5);
  margin-block-end: var(--space-3);
}

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

.op-nights__list li {
  position: relative;
  padding-inline-start: var(--space-5);
  color: var(--color-ivory-300);
  max-width: 50ch;
}

.op-nights__list li::before {
  content: "◆";
  position: absolute;
  left: 0;
  top: 0.1em;
  font-size: 0.65rem;
  color: var(--color-brass-500);
}

.op-philosophy {
  padding-block: var(--section-spacing-mobile);
  background-color: var(--color-felt-900);
  border-block-start: 1px solid var(--border-brass-30);
}

.op-philosophy h2 {
  margin-block-end: var(--space-4);
}

.op-philosophy__lead {
  font-size: var(--text-body-lg-size);
  line-height: var(--text-body-lg-leading);
  max-width: 680px;
  color: var(--color-ivory-100);
  margin-block-end: var(--space-7);
}

.op-philosophy__commitments {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-5);
}

.op-philosophy__commitment {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}

.op-philosophy__number {
  font-family: var(--font-heading);
  font-size: 2rem;
  line-height: 1;
  color: var(--color-brass-500);
}

.op-philosophy__commitment h3 {
  margin-block-end: 0;
}

.op-philosophy__commitment p {
  color: var(--color-ivory-300);
  max-width: 60ch;
  margin-block-end: 0;
}

.op-restaurant {
  padding-block: var(--section-spacing-mobile);
  background-color: var(--color-parchment-100);
  color: var(--color-ink-900);
}

.op-restaurant__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-7);
  align-items: start;
}

.op-restaurant__text {
  min-width: 0;
}

.op-restaurant__label {
  display: block;
  font-size: var(--text-label-size);
  line-height: var(--text-label-leading);
  font-weight: var(--text-label-weight);
  letter-spacing: var(--text-label-tracking);
  text-transform: uppercase;
  color: var(--color-burgundy-700);
  margin-block-end: var(--space-2);
}

.op-restaurant__text h2 {
  color: var(--color-ink-900);
  margin-block-end: var(--space-4);
}

.op-restaurant__text > p {
  color: var(--color-ink-900);
  max-width: 68ch;
}

.op-restaurant__secondary {
  max-width: 400px;
}

.op-restaurant__media {
  min-width: 0;
}

.op-restaurant__media img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: var(--radius-md);
  border: 1px solid var(--border-wood-40);
}

.op-testimonials {
  padding-block: var(--section-spacing-mobile);
}

.op-testimonials h2 {
  margin-block-end: var(--space-6);
}

.op-testimonials__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-4);
}

.op-testimonial {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

.op-testimonial__rule {
  display: block;
  width: 48px;
  height: 2px;
  background-color: var(--color-brass-500);
}

.op-testimonial blockquote {
  margin-block-end: 0;
  padding-inline-start: 0;
  border-inline-start: none;
  color: var(--color-ivory-100);
  font-style: normal;
}

.op-testimonial blockquote p {
  font-family: var(--font-heading);
  font-size: 1.25rem;
  line-height: 1.4;
  font-style: italic;
  max-width: 50ch;
  margin-block-end: 0;
  color: var(--color-ivory-100);
}

.op-testimonial__attribution {
  font-size: var(--text-small-size);
  line-height: var(--text-small-leading);
  color: var(--color-ivory-300);
  margin-block-end: 0;
}

.op-visit {
  padding-block: var(--section-spacing-mobile);
  background-color: var(--color-felt-900);
  border-block-start: 1px solid var(--border-brass-30);
}

.op-visit__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: var(--space-5);
}

.op-visit__inner h2 {
  margin-block-end: 0;
}

.op-visit__inner > p {
  max-width: 68ch;
  color: var(--color-ivory-300);
  margin-block-end: 0;
}

.op-visit__cta {
  margin-block-start: var(--space-2);
}

.op-visit__contact {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-2);
  margin-block-start: var(--space-2);
}

.op-visit__contact a {
  font-size: var(--text-small-size);
  line-height: var(--text-small-leading);
  color: var(--color-brass-300);
  font-variant-numeric: tabular-nums;
}

.op-responsible {
  padding-block: var(--space-7);
  background-color: var(--color-charcoal-950);
}

.op-responsible p {
  font-size: var(--text-small-size);
  line-height: var(--text-small-leading);
  color: var(--color-ivory-300);
  max-width: 68ch;
  margin-block-end: 0;
  padding-block-start: var(--space-4);
  border-block-start: 1px solid var(--border-felt-20);
}

@media (min-width: 768px) {
  .op-hero {
    min-height: 680px;
  }

  .op-meaning,
  .op-environment,
  .op-sessions,
  .op-nights,
  .op-philosophy,
  .op-restaurant,
  .op-testimonials,
  .op-visit {
    padding-block: var(--section-spacing-desktop);
  }

  .op-meaning__inner {
    grid-template-columns: 7fr 5fr;
    gap: var(--space-8);
  }

  .op-meaning__columns {
    grid-template-columns: 1fr 1fr;
    gap: var(--space-6);
  }

  .op-environment__grid {
    grid-template-columns: 7fr 5fr;
    gap: var(--space-8);
  }

  .op-sessions__card {
    grid-template-columns: 3fr 2fr;
    gap: var(--space-7);
  }

  .op-nights__grid {
    grid-template-columns: 5fr 7fr;
    gap: var(--space-8);
  }

  .op-philosophy__commitments {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-6);
  }

  .op-restaurant__grid {
    grid-template-columns: 7fr 5fr;
    gap: var(--space-8);
  }

  .op-testimonials__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-5);
  }

  .op-visit__contact {
    flex-direction: row;
    justify-content: center;
    gap: var(--space-5);
  }
}

@media (min-width: 1024px) {
  .op-hero__text {
    max-width: 640px;
  }
}

@media (max-width: 480px) {
  .op-hero {
    min-height: 0;
    align-items: flex-end;
  }

  .op-hero__media {
    position: relative;
    aspect-ratio: 4 / 3;
  }

  .op-hero__media::after {
    background: linear-gradient(
      180deg,
      rgba(18, 16, 14, 0.55) 0%,
      rgba(18, 16, 14, 0.72) 100%
    );
  }

  .op-hero__content {
    padding-block-start: var(--space-5);
    padding-block-end: var(--space-7);
  }

  .op-hero__text h1 {
    font-size: 2.5rem;
  }

  .op-hero__lead {
    font-size: var(--text-body-size);
  }

  .op-meaning__quote p {
    font-size: 1.25rem;
  }
}


/* Thank-you page scoped styles */
.thank-you-main {
  padding-block: var(--section-spacing-mobile);
}

.thank-you-container {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  text-align: center;
}

.thank-you-container .section-label {
  margin-block-end: 0;
}

.thank-you-container h1 {
  margin-block-end: 0;
}

.thank-you-message,
.thank-you-next {
  max-width: 42ch;
  margin-inline: auto;
  text-align: center;
}

.thank-you-message {
  margin-block-end: 0;
}

.thank-you-next {
  margin-block-end: 0;
}

.thank-you-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-4);
  justify-content: center;
  margin-block-start: var(--space-2);
}

@media (min-width: 768px) {
  .thank-you-main {
    padding-block: var(--section-spacing-desktop);
  }
}