

:root {
  --color-canvas: #FAF8F5;
  --color-surface: #FFFFFF;
  --color-surface-alt: #F4EFEB;
  --color-border: #E5DDD0;
  --color-accent: #B88328;
  --color-accent-soft: #C9933B;
  --color-primary: #13231F;
  --color-secondary: #6B8A7E;
  --color-ink: #121418;
  --color-muted: #3D424C;
  --color-subtle: #717784;
  --font-heading: 'Canela', 'Playfair Display', Georgia, serif;
  --font-body: 'Neue Haas Grotesk', 'Inter', 'Helvetica Neue', Arial, sans-serif;
  --text-display: clamp(3.5rem, 8vw, 6rem);
  --text-h1: clamp(2.5rem, 5vw, 4rem);
  --text-h2: clamp(2rem, 3.5vw, 2.75rem);
  --text-h3: clamp(1.5rem, 2.5vw, 2rem);
  --text-h4: 1.25rem;
  --text-body-large: 1.125rem;
  --text-body: 1rem;
  --text-body-small: 0.875rem;
  --text-caption: 0.75rem;
  --space-3xs: 0.25rem;
  --space-2xs: 0.5rem;
  --space-xs: 0.75rem;
  --space-sm: 1rem;
  --space-md: 1.5rem;
  --space-lg: 2rem;
  --space-xl: 3rem;
  --space-2xl: 4rem;
  --space-3xl: 6rem;
  --space-4xl: 8rem;
  --container-max: 1280px;
  --container-padding-mobile: 24px;
  --container-padding-tablet: 48px;
  --container-padding-desktop: 64px;
  --shadow-soft: 0 4px 24px rgba(18, 20, 24, 0.06);
  --radius-0: 0px;
  --radius-2: 2px;
  --radius-4: 4px;
  --radius-full: 9999px;
  --transition-fast: 200ms ease-out;
  --focus-outline: 2px solid var(--color-accent);
  --focus-offset: 2px;
}

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

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

body {
  font-family: var(--font-body);
  font-size: var(--text-body);
  line-height: 1.6;
  font-weight: 400;
  color: var(--color-primary);
  background-color: var(--color-canvas);
  min-height: 100vh;
  min-width: 320px;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-heading);
  font-weight: 300;
  line-height: 1.15;
  color: var(--color-primary);
  margin-block-end: var(--space-md);
  overflow-wrap: break-word;
  word-wrap: break-word;
}

h1 {
  font-size: var(--text-h1);
  line-height: 1.1;
  letter-spacing: -0.01em;
}

h2 {
  font-size: var(--text-h2);
  font-weight: 400;
  letter-spacing: 0;
}

h3 {
  font-size: var(--text-h3);
  font-weight: 400;
  letter-spacing: 0;
}

h4 {
  font-family: var(--font-body);
  font-size: var(--text-h4);
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

h5, h6 {
  font-family: var(--font-body);
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: 0.02em;
}

p {
  font-size: var(--text-body);
  line-height: 1.6;
  margin-block-end: var(--space-md);
  overflow-wrap: break-word;
  word-wrap: break-word;
}

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

li {
  line-height: 1.6;
}

blockquote {
  font-family: var(--font-heading);
  font-size: var(--text-h3);
  line-height: 1.2;
  font-weight: 300;
  color: var(--color-primary);
  margin-block-end: var(--space-md);
  padding-inline-start: var(--space-md);
  border-inline-start: 2px solid var(--color-accent);
}

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

figcaption {
  font-size: var(--text-caption);
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-secondary);
  margin-block-start: var(--space-xs);
}

a {
  color: var(--color-accent);
  text-decoration: underline;
  text-underline-offset: 2px;
  text-decoration-thickness: 1px;
  transition: color var(--transition-fast), border-color var(--transition-fast), opacity var(--transition-fast);
}

a:hover {
  color: var(--color-accent-soft);
}

a:visited {
  color: var(--color-accent);
}

a:focus-visible {
  outline: var(--focus-outline);
  outline-offset: var(--focus-offset);
  border-radius: var(--radius-2);
}

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

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

button,
input,
select,
textarea {
  font-family: inherit;
  font-size: 100%;
  line-height: inherit;
  color: inherit;
  margin: 0;
}

button {
  cursor: pointer;
  border: 1px solid transparent;
  border-radius: var(--radius-2);
  background: none;
  font-family: var(--font-body);
  font-size: var(--text-caption);
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: var(--space-xs) var(--space-md);
  transition: background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast), opacity var(--transition-fast);
}

button:focus-visible {
  outline: var(--focus-outline);
  outline-offset: var(--focus-offset);
}

button:active {
  opacity: 0.8;
}

input,
select,
textarea {
  display: block;
  width: 100%;
  background-color: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-2);
  padding: var(--space-xs) var(--space-sm);
  font-size: var(--text-body);
  line-height: 1.6;
  color: var(--color-primary);
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}

input::placeholder,
textarea::placeholder {
  color: var(--color-muted);
}

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

input:disabled,
select:disabled,
textarea:disabled {
  color: var(--color-subtle);
  background-color: var(--color-surface-alt);
  cursor: not-allowed;
}

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

label {
  display: block;
  font-size: var(--text-caption);
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-secondary);
  margin-block-end: var(--space-2xs);
}

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

th {
  font-family: var(--font-body);
  font-size: var(--text-caption);
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-secondary);
  text-align: start;
  padding: var(--space-xs) var(--space-sm);
  border-block-end: 1px solid var(--color-border);
}

td {
  padding: var(--space-xs) var(--space-sm);
  border-block-end: 1px solid var(--color-border);
  vertical-align: top;
}

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

code, pre {
  font-family: 'SF Mono', 'Cascadia Code', 'Roboto Mono', Consolas, monospace;
  font-size: 0.9em;
  background-color: var(--color-surface-alt);
  border-radius: var(--radius-2);
}

code {
  padding: 0.2em 0.4em;
}

pre {
  padding: var(--space-sm);
  overflow-x: auto;
  margin-block-end: var(--space-md);
}

strong {
  font-weight: 600;
}

em {
  font-style: italic;
}

small {
  font-size: var(--text-body-small);
}

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

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

.surface {
  background-color: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-4);
  box-shadow: var(--shadow-soft);
}

.surface-alt {
  background-color: var(--color-surface-alt);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-4);
}

.surface-flat {
  background-color: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-0);
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: var(--space-xs) var(--space-md);
  font-family: var(--font-body);
  font-size: var(--text-caption);
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none;
  border-radius: var(--radius-2);
  border: 1px solid transparent;
  transition: background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast), opacity var(--transition-fast);
}

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

.btn:active {
  opacity: 0.8;
}

.btn-primary {
  background-color: var(--color-accent);
  color: var(--color-surface);
  border-color: var(--color-accent);
}

.btn-primary:hover {
  background-color: var(--color-accent-soft);
  border-color: var(--color-accent-soft);
  color: var(--color-surface);
}

.btn-secondary {
  background-color: transparent;
  color: var(--color-accent);
  border-color: var(--color-accent);
}

.btn-secondary:hover {
  background-color: var(--color-surface-alt);
  border-color: var(--color-accent-soft);
  color: var(--color-accent-soft);
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.grid-auto {
  display: grid;
  gap: var(--space-md);
  grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr));
}

.grid-auto > * {
  min-width: 0;
}

.caption {
  font-size: var(--text-caption);
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-secondary);
}

.caption-accent {
  font-size: var(--text-caption);
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-accent);
}

.body-large {
  font-size: var(--text-body-large);
  line-height: 1.6;
}

.body-small {
  font-size: var(--text-body-small);
  line-height: 1.5;
}

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

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

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

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

.mt-0 { margin-block-start: 0; }
.mt-xs { margin-block-start: var(--space-xs); }
.mt-sm { margin-block-start: var(--space-sm); }
.mt-md { margin-block-start: var(--space-md); }
.mt-lg { margin-block-start: var(--space-lg); }
.mt-xl { margin-block-start: var(--space-xl); }
.mt-2xl { margin-block-start: var(--space-2xl); }
.mt-3xl { margin-block-start: var(--space-3xl); }
.mb-0 { margin-block-end: 0; }
.mb-xs { margin-block-end: var(--space-xs); }
.mb-sm { margin-block-end: var(--space-sm); }
.mb-md { margin-block-end: var(--space-md); }
.mb-lg { margin-block-end: var(--space-lg); }
.mb-xl { margin-block-end: var(--space-xl); }
.mb-2xl { margin-block-end: var(--space-2xl); }
.mb-3xl { margin-block-end: var(--space-3xl); }
.pt-0 { padding-block-start: 0; }
.pt-sm { padding-block-start: var(--space-sm); }
.pt-md { padding-block-start: var(--space-md); }
.pt-lg { padding-block-start: var(--space-lg); }
.pt-xl { padding-block-start: var(--space-xl); }
.pt-2xl { padding-block-start: var(--space-2xl); }
.pt-3xl { padding-block-start: var(--space-3xl); }
.pb-0 { padding-block-end: 0; }
.pb-sm { padding-block-end: var(--space-sm); }
.pb-md { padding-block-end: var(--space-md); }
.pb-lg { padding-block-end: var(--space-lg); }
.pb-xl { padding-block-end: var(--space-xl); }
.pb-2xl { padding-block-end: var(--space-2xl); }
.pb-3xl { padding-block-end: var(--space-3xl); }

:where(h1, h2, h3, h4, h5, h6, p, ul, ol, blockquote, figure, table, pre):last-child {
  margin-block-end: 0;
}

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

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

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

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

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

  *,
  *::before,
  *::after {
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}

ul {
  list-style: none !important;
}

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


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

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

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

.site-header__brand:focus-visible {
  outline: var(--focus-outline);
  outline-offset: var(--focus-offset);
  border-radius: var(--radius-2);
}

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

.site-header__brand-text {
  font-family: var(--font-heading);
  font-size: 1.125rem;
  font-weight: 400;
  letter-spacing: 0.02em;
  color: var(--color-primary);
  white-space: nowrap;
}

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

.site-header__toggle:hover {
  background-color: var(--color-surface-alt);
  border-color: var(--color-accent);
}

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

.site-header__toggle-line {
  display: block;
  width: 20px;
  height: 2px;
  background-color: var(--color-primary);
  transition: transform var(--transition-fast), opacity var(--transition-fast);
}

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

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

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

.site-header__nav {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  background-color: var(--color-canvas);
  border-bottom: 1px solid var(--color-border);
  box-shadow: var(--shadow-soft);
  max-height: calc(100vh - 72px);
  overflow-y: auto;
  z-index: 999;
}

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

.site-header__nav-list {
  list-style: none !important;
  margin: 0;
  padding: var(--space-md) var(--container-padding-mobile);
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}

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

.site-header__nav-link {
  display: block;
  padding: var(--space-xs) var(--space-sm);
  font-family: var(--font-body);
  font-size: var(--text-caption);
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-primary);
  text-decoration: none;
  border-radius: var(--radius-2);
  transition: color var(--transition-fast), background-color var(--transition-fast);
}

.site-header__nav-link:hover {
  color: var(--color-accent);
  background-color: var(--color-surface-alt);
}

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

.site-header__nav-link[aria-current="page"] {
  color: var(--color-accent);
  text-decoration: underline;
  text-underline-offset: 4px;
  text-decoration-thickness: 2px;
}

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

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

  .site-header__brand-text {
    font-size: 1.25rem;
  }

  .site-header__nav {
    max-height: calc(100vh - 80px);
  }

  .site-header__nav-list {
    padding: var(--space-md) var(--container-padding-tablet);
  }
}

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

  .site-header__toggle {
    display: none;
  }

  .site-header__nav {
    display: block;
    position: static;
    background: transparent;
    border: none;
    box-shadow: none;
    max-height: none;
    overflow: visible;
  }

  .site-header__nav-list {
    flex-direction: row;
    align-items: center;
    gap: var(--space-lg);
    padding: 0;
  }

  .site-header__nav-link {
    padding: var(--space-xs) 0;
    white-space: nowrap;
  }
}


.site-footer {
  background-color: var(--color-surface-alt);
  border-top: 1px solid var(--color-border);
  padding-block: var(--space-2xl) var(--space-xl);
  margin-block-start: var(--space-2xl);
}

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

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

.site-footer__brand-link:focus-visible {
  outline: var(--focus-outline);
  outline-offset: var(--focus-offset);
  border-radius: var(--radius-2);
}

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

.site-footer__brand-text {
  font-family: var(--font-heading);
  font-size: 1.125rem;
  font-weight: 400;
  letter-spacing: 0.02em;
  color: var(--color-primary);
}

.site-footer__tagline {
  font-size: var(--text-body-small);
  color: var(--color-secondary);
  margin-block-end: 0;
  max-width: 40ch;
}

.site-footer__heading {
  font-family: var(--font-body);
  font-size: var(--text-caption);
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-secondary);
  margin-block-end: var(--space-sm);
}

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

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

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

.site-footer__nav-list a:focus-visible {
  outline: var(--focus-outline);
  outline-offset: var(--focus-offset);
  border-radius: var(--radius-2);
}

.site-footer__address {
  font-style: normal;
  font-size: var(--text-body-small);
  line-height: 1.5;
  color: var(--color-primary);
  margin-block-end: var(--space-sm);
}

.site-footer__contact-item {
  font-size: var(--text-body-small);
  line-height: 1.5;
  margin-block-end: var(--space-2xs);
}

.site-footer__contact-item a {
  color: var(--color-primary);
  text-decoration: none;
  transition: color var(--transition-fast);
}

.site-footer__contact-item a:hover {
  color: var(--color-accent);
}

.site-footer__contact-item a:focus-visible {
  outline: var(--focus-outline);
  outline-offset: var(--focus-offset);
  border-radius: var(--radius-2);
}

.site-footer__bottom {
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-padding-mobile);
  margin-block-start: var(--space-xl);
  padding-block-start: var(--space-lg);
  border-top: 1px solid var(--color-border);
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}

.site-footer__copyright {
  font-size: var(--text-body-small);
  color: var(--color-secondary);
  margin-block-end: 0;
}

.site-footer__rsa,
.site-footer__compliance {
  font-size: var(--text-caption);
  color: var(--color-muted);
  margin-block-end: 0;
  max-width: 70ch;
}

.site-consent {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 1100;
  background-color: var(--color-surface-alt);
  border-top: 1px solid var(--color-border);
  box-shadow: var(--shadow-soft);
  padding-block: var(--space-md);
  padding-inline: var(--container-padding-mobile);
}

.site-consent[hidden] {
  display: none;
}

.site-consent__inner {
  max-width: var(--container-max);
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  align-items: flex-start;
}

.site-consent__text {
  font-size: var(--text-body-small);
  line-height: 1.5;
  color: var(--color-primary);
  margin-block-end: 0;
}

.site-consent__text a {
  color: var(--color-accent);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.site-consent__text a:hover {
  color: var(--color-accent-soft);
}

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

.site-consent__button {
  min-height: 44px;
  padding: var(--space-xs) var(--space-md);
  font-family: var(--font-body);
  font-size: var(--text-caption);
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  border-radius: var(--radius-2);
  border: 1px solid transparent;
  cursor: pointer;
  transition: background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast), opacity var(--transition-fast);
}

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

.site-consent__button:active {
  opacity: 0.8;
}

.site-consent__button--accept {
  background-color: var(--color-accent);
  color: var(--color-surface);
  border-color: var(--color-accent);
}

.site-consent__button--accept:hover {
  background-color: var(--color-accent-soft);
  border-color: var(--color-accent-soft);
}

.site-consent__button--reject {
  background-color: transparent;
  color: var(--color-accent);
  border-color: var(--color-accent);
}

.site-consent__button--reject:hover {
  background-color: var(--color-surface);
  border-color: var(--color-accent-soft);
  color: var(--color-accent-soft);
}

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

  .site-footer__bottom {
    padding-inline: var(--container-padding-tablet);
  }

  .site-consent {
    padding-inline: var(--container-padding-tablet);
  }

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

  .site-consent__text {
    flex: 1;
    margin-inline-end: var(--space-md);
  }
}

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

  .site-footer__bottom {
    padding-inline: var(--container-padding-desktop);
  }

  .site-consent {
    padding-inline: var(--container-padding-desktop);
  }
}


.privacy-policy-page {
  background-color: var(--color-canvas);
}

.privacy-policy-container {
  max-width: 800px;
  margin-inline: auto;
  padding-inline: var(--container-padding-mobile);
  padding-block: var(--space-2xl);
}

.privacy-policy-section {
  padding-block: var(--space-xl);
  border-block-end: 1px solid var(--color-border);
}

.privacy-policy-section:first-child {
  padding-block-start: 0;
}

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

.privacy-policy-intro__text {
  max-width: 800px;
}

.privacy-policy-effective-date {
  font-size: var(--text-caption);
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-accent);
  margin-block-start: var(--space-md);
}

.privacy-policy-list {
  list-style: none;
  padding-inline-start: 0;
  margin-block-end: 0;
}

.privacy-policy-list li {
  position: relative;
  padding-inline-start: var(--space-lg);
  margin-block-end: var(--space-sm);
}

.privacy-policy-list li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.7em;
  width: 6px;
  height: 6px;
  border-radius: var(--radius-full);
  background-color: var(--color-accent);
}

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

.privacy-policy-contact {
  background-color: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-4);
  padding: var(--space-lg);
  margin-block-start: var(--space-xl);
}

.privacy-policy-contact-list {
  list-style: none;
  padding-inline-start: 0;
  margin-block-end: 0;
}

.privacy-policy-contact-list li {
  margin-block-end: var(--space-sm);
}

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

@media (min-width: 768px) {
  .privacy-policy-container {
    padding-inline: var(--container-padding-tablet);
    padding-block: var(--space-3xl);
  }

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

@media (min-width: 1024px) {
  .privacy-policy-container {
    padding-inline: var(--container-padding-desktop);
    padding-block: var(--space-4xl);
  }
}


.cookie-policy-page {
  background-color: var(--color-canvas);
  color: var(--color-primary);
}

.cookie-policy-hero {
  padding-block: var(--space-2xl) var(--space-xl);
  background-color: var(--color-canvas);
}

.cookie-policy-hero__inner {
  max-width: 720px;
  margin-inline: auto;
  padding-inline: var(--container-padding-mobile);
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  text-align: left;
}

.cookie-policy-hero__eyebrow {
  margin: 0;
}

.cookie-policy-hero__title {
  margin: 0;
  font-size: var(--text-h1);
  line-height: 1.1;
  letter-spacing: -0.01em;
  color: var(--color-primary);
}

.cookie-policy-hero__lead {
  margin: 0;
  font-size: var(--text-body-large);
  line-height: 1.6;
  color: var(--color-muted);
  max-width: 65ch;
}

.cookie-policy-hero__date {
  margin: 0;
  font-size: var(--text-body-small);
  font-weight: 500;
  letter-spacing: 0.02em;
  color: var(--color-accent);
}

.cookie-policy-section {
  padding-block: var(--space-xl);
  border-top: 1px solid var(--color-border);
  background-color: var(--color-canvas);
}

.cookie-policy-section--alt {
  background-color: var(--color-surface-alt);
}

.cookie-policy-section--contact {
  background-color: var(--color-surface);
  border-top: 1px solid var(--color-border);
}

.cookie-policy-section__inner {
  max-width: 720px;
  margin-inline: auto;
  padding-inline: var(--container-padding-mobile);
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  text-align: left;
}

.cookie-policy-section__inner h2 {
  margin: 0;
  font-size: var(--text-h2);
  line-height: 1.15;
  font-weight: 400;
  color: var(--color-primary);
}

.cookie-policy-section__inner h3 {
  margin: 0;
  font-size: var(--text-h3);
  line-height: 1.2;
  font-weight: 400;
  color: var(--color-primary);
}

.cookie-policy-section__inner p {
  margin: 0;
  font-size: var(--text-body);
  line-height: 1.6;
  color: var(--color-primary);
}

.cookie-policy-category {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  padding-block: var(--space-sm);
}

.cookie-policy-category + .cookie-policy-category {
  border-top: 1px solid var(--color-border);
  padding-top: var(--space-md);
  margin-top: var(--space-xs);
}

.cookie-policy-list {
  margin: 0;
  padding-inline-start: var(--space-lg);
  list-style: disc !important;
  display: flex;
  flex-direction: column;
  gap: var(--space-2xs);
  max-width: 65ch;
}

.cookie-policy-list li {
  font-size: var(--text-body);
  line-height: 1.6;
  color: var(--color-primary);
  padding-inline-start: var(--space-2xs);
}

.cookie-policy-table-wrap {
  width: 100%;
  overflow-x: auto;
  margin: 0;
}

.cookie-policy-table {
  width: 100%;
  border-collapse: collapse;
  margin: 0;
  font-size: var(--text-body);
  background-color: var(--color-surface);
}

.cookie-policy-table th {
  font-family: var(--font-body);
  font-size: var(--text-caption);
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-secondary);
  text-align: left;
  padding: var(--space-sm);
  border-bottom: 1px solid var(--color-border);
  background-color: var(--color-surface-alt);
}

.cookie-policy-table td {
  padding: var(--space-sm);
  border-bottom: 1px solid var(--color-border);
  vertical-align: top;
  color: var(--color-primary);
}

.cookie-policy-table code {
  font-family: 'SF Mono', 'Cascadia Code', 'Roboto Mono', Consolas, monospace;
  font-size: 0.9em;
  background-color: var(--color-surface-alt);
  border-radius: var(--radius-2);
  padding: 0.2em 0.4em;
}

.cookie-policy-contact-list {
  margin: 0;
  padding: 0;
  list-style: none !important;
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  max-width: 65ch;
}

.cookie-policy-contact-list li {
  font-size: var(--text-body);
  line-height: 1.6;
  color: var(--color-primary);
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2xs);
}

.cookie-policy-contact-list__label {
  font-weight: 600;
  color: var(--color-primary);
  min-width: 5.5rem;
}

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

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

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

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

@media (min-width: 1024px) {
  .cookie-policy-hero {
    padding-block: var(--space-4xl) var(--space-3xl);
  }

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

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

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

@media (max-width: 600px) {
  .cookie-policy-table thead {
    display: none;
  }

  .cookie-policy-table,
  .cookie-policy-table tbody,
  .cookie-policy-table tr,
  .cookie-policy-table td {
    display: block;
    width: 100%;
  }

  .cookie-policy-table tr {
    margin-bottom: var(--space-md);
    border: 1px solid var(--color-border);
    background-color: var(--color-surface);
  }

  .cookie-policy-table td {
    border-bottom: 1px solid var(--color-border);
    padding: var(--space-sm);
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2xs);
  }

  .cookie-policy-table td:last-child {
    border-bottom: none;
  }

  .cookie-policy-table td::before {
    content: attr(data-label);
    font-family: var(--font-body);
    font-size: var(--text-caption);
    font-weight: 500;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--color-secondary);
    flex-basis: 100%;
  }
}

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


/* Page-scoped styles for Contact page */
.contact-page {
  /* Page-level wrapper to ensure no inherited styles interfere */
}

/* Contact Hero */
.contact-hero {
  padding-block: var(--space-2xl) var(--space-xl);
  background-color: var(--color-canvas);
}

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

.contact-hero__caption {
  margin-block-end: var(--space-sm);
}

.contact-hero__title {
  margin-block-end: var(--space-md);
}

.contact-hero__lead {
  font-size: var(--text-body-large);
  line-height: 1.6;
  max-width: 60ch;
  margin-block-end: var(--space-lg);
}

.contact-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-md);
  align-items: center;
}

.contact-hero__btn {
  min-width: 0;
}

/* Direct Contact Details */
.contact-details {
  padding-block: var(--space-2xl);
  background-color: var(--color-surface-alt);
}

.contact-details__heading {
  margin-block-end: var(--space-xl);
}

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

.contact-detail {
  min-width: 0;
  background-color: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-4);
  padding: var(--space-lg);
  box-shadow: var(--shadow-soft);
}

.contact-detail__label {
  font-family: var(--font-body);
  font-size: var(--text-caption);
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-accent);
  margin-block-end: var(--space-xs);
}

.contact-detail__message {
  font-size: var(--text-body);
  color: var(--color-primary);
  margin-block-end: var(--space-sm);
}

.contact-detail__value {
  font-size: var(--text-body-large);
  font-weight: 500;
  color: var(--color-primary);
  margin-block-end: var(--space-sm);
  overflow-wrap: break-word;
}

.contact-detail__value a {
  color: var(--color-accent);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.contact-detail__value a:hover {
  color: var(--color-accent-soft);
}

.contact-detail__note {
  font-size: var(--text-body-small);
  color: var(--color-secondary);
  margin-block-end: 0;
}

/* Reservation Enquiry Form */
.enquiry-form-section {
  padding-block: var(--space-2xl);
  background-color: var(--color-canvas);
}

.enquiry-form-section__inner {
  max-width: 560px;
  margin-inline: 0;
}

.enquiry-form-section__heading {
  margin-block-end: var(--space-md);
}

.enquiry-form-section__lead {
  font-size: var(--text-body);
  color: var(--color-secondary);
  margin-block-end: var(--space-lg);
}

.enquiry-form {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  background-color: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-4);
  box-shadow: var(--shadow-soft);
  padding: var(--space-lg);
}

.enquiry-form__field {
  min-width: 0;
}

.enquiry-form__field label {
  margin-block-end: var(--space-2xs);
}

.enquiry-form__submit {
  align-self: flex-start;
  min-width: 0;
}

/* Location & Directions */
.location-section {
  padding-block: var(--space-2xl);
  background-color: var(--color-surface-alt);
}

.location-section__grid {
  display: grid;
  grid-template-columns: 2fr 3fr;
  gap: var(--space-lg);
  align-items: start;
}

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

.location-section__heading {
  margin-block-end: var(--space-md);
}

.location-section__address {
  font-size: var(--text-body-large);
  font-weight: 500;
  color: var(--color-primary);
  margin-block-end: var(--space-sm);
}

.location-section__directions {
  color: var(--color-secondary);
  margin-block-end: 0;
}

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

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

/* Hours of Operation */
.hours-section {
  padding-block: var(--space-2xl);
  background-color: var(--color-canvas);
}

.hours-section__inner {
  max-width: 600px;
  margin-inline: 0;
}

.hours-section__heading {
  margin-block-end: var(--space-md);
}

.hours-section__lead {
  color: var(--color-secondary);
  margin-block-end: var(--space-lg);
}

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

.hours-list__item {
  display: flex;
  align-items: baseline;
  gap: var(--space-sm);
  padding-block: var(--space-xs);
  border-block-end: 1px solid var(--color-border);
}

.hours-list__item:last-child {
  border-block-end: none;
}

.hours-list__day {
  font-weight: 500;
  color: var(--color-primary);
  min-width: 0;
}

.hours-list__dots {
  flex: 1;
  border-block-end: 1px dotted var(--color-border);
  min-width: 0;
}

.hours-list__time {
  color: var(--color-secondary);
  text-align: right;
  min-width: 0;
}

/* Accessibility & Amenities */
.accessibility-section {
  padding-block: var(--space-2xl);
  background-color: var(--color-surface-alt);
}

.accessibility-section__inner {
  max-width: 700px;
  margin-inline: 0;
}

.accessibility-section__heading {
  margin-block-end: var(--space-md);
}

.accessibility-section__lead {
  color: var(--color-secondary);
  margin-block-end: var(--space-md);
}

.accessibility-list {
  list-style: disc;
  padding-inline-start: var(--space-lg);
  margin-block-end: 0;
}

.accessibility-list li {
  margin-block-end: var(--space-2xs);
}

/* Response Time & Privacy */
.response-privacy-section {
  padding-block: var(--space-2xl);
  background-color: var(--color-canvas);
}

.response-privacy-section__inner {
  max-width: 100%;
}

.response-privacy-section__heading {
  margin-block-end: var(--space-xl);
}

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

.response-privacy-section__column {
  min-width: 0;
  background-color: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-4);
  padding: var(--space-lg);
  box-shadow: var(--shadow-soft);
}

.response-privacy-section__subheading {
  font-family: var(--font-body);
  font-size: var(--text-h4);
  font-weight: 500;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--color-primary);
  margin-block-end: var(--space-sm);
}

.response-privacy-section__column p {
  margin-block-end: 0;
  color: var(--color-secondary);
}

/* Frequently Asked Questions */
.faq-section {
  padding-block: var(--space-2xl);
  background-color: var(--color-surface-alt);
}

.faq-section__inner {
  max-width: 700px;
  margin-inline: 0;
}

.faq-section__heading {
  margin-block-end: var(--space-xl);
}

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

.faq-item {
  min-width: 0;
  background-color: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-4);
  padding: var(--space-md);
  box-shadow: var(--shadow-soft);
}

.faq-item__question {
  font-family: var(--font-body);
  font-size: var(--text-body);
  font-weight: 600;
  color: var(--color-primary);
  margin-block-end: var(--space-xs);
}

.faq-item__answer {
  margin-block-end: 0;
  color: var(--color-secondary);
}

.faq-item__answer a {
  color: var(--color-accent);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.faq-item__answer a:hover {
  color: var(--color-accent-soft);
}

/* Responsive adjustments */
@media (min-width: 768px) and (max-width: 1023px) {
  .contact-hero {
    padding-block: var(--space-3xl) var(--space-2xl);
  }

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

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

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

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

  .location-section__grid {
    grid-template-columns: 1fr 2fr;
    gap: var(--space-md);
  }

  .hours-section,
  .accessibility-section,
  .response-privacy-section,
  .faq-section {
    padding-block: var(--space-3xl);
  }
}

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

  .contact-hero__content {
    max-width: 100%;
  }

  .contact-hero__lead {
    max-width: 100%;
  }

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

  .contact-hero__btn {
    width: 100%;
    justify-content: center;
  }

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

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

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

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

  .enquiry-form-section__inner {
    max-width: 100%;
  }

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

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

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

  .location-section__map {
    aspect-ratio: 16 / 9;
    height: auto;
  }

  .hours-section,
  .accessibility-section,
  .response-privacy-section,
  .faq-section {
    padding-block: var(--space-xl);
  }

  .response-privacy-section__grid {
    grid-template-columns: 1fr;
    gap: var(--space-md);
  }

  .hours-list__item {
    flex-wrap: wrap;
    gap: var(--space-2xs);
  }

  .hours-list__dots {
    display: none;
  }

  .hours-list__time {
    text-align: left;
    width: 100%;
  }
}

@media (min-width: 1024px) {
  .contact-hero {
    padding-block: var(--space-4xl) var(--space-3xl);
  }

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

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

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

  .hours-section,
  .accessibility-section,
  .response-privacy-section,
  .faq-section {
    padding-block: var(--space-4xl);
  }
}


/* Terms and Conditions page styles */

.terms-page {
  padding-block: var(--space-xl) var(--space-2xl);
}

.terms-hero,
.terms-toc,
.terms-section {
  width: 100%;
}

.terms-hero__inner,
.terms-toc__inner,
.terms-section__inner {
  max-width: 720px;
  margin-inline: auto;
  padding-inline: var(--container-padding-mobile);
}

.terms-hero {
  padding-block-end: var(--space-xl);
  border-block-end: 1px solid var(--color-border);
}

.terms-hero__inner {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  text-align: left;
}

.terms-hero__caption {
  margin-block-end: 0;
}

.terms-hero h1 {
  margin-block-end: var(--space-sm);
}

.terms-hero__lead {
  font-size: var(--text-body-large);
  line-height: 1.6;
  color: var(--color-primary);
  margin-block-end: 0;
  max-width: 65ch;
}

.terms-hero__meta {
  font-size: var(--text-body-small);
  color: var(--color-secondary);
  margin-block-end: 0;
}

.terms-toc {
  padding-block: var(--space-xl) var(--space-lg);
}

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

.terms-toc h2 {
  margin-block-end: 0;
}

.terms-toc__list {
  list-style: none !important;
  padding-inline-start: 0;
  margin-block-end: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-2xs);
}

.terms-toc__list li {
  margin-block-start: 0;
}

.terms-toc__list a {
  color: var(--color-primary);
  text-decoration: none;
  border-block-end: 1px solid transparent;
  transition: color var(--transition-fast), border-color var(--transition-fast);
  padding-block: var(--space-2xs);
  display: inline-block;
}

.terms-toc__list a:hover {
  color: var(--color-accent);
  border-block-end-color: var(--color-accent);
}

.terms-toc__list a:focus-visible {
  outline: var(--focus-outline);
  outline-offset: var(--focus-offset);
  border-radius: var(--radius-2);
}

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

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

.terms-section h2 {
  margin-block-end: 0;
  scroll-margin-top: var(--space-xl);
}

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

.terms-section ul,
.terms-section ol {
  margin-block-end: 0;
  max-width: 65ch;
}

.terms-list {
  list-style: disc !important;
  padding-inline-start: var(--space-lg);
  display: flex;
  flex-direction: column;
  gap: var(--space-2xs);
}

.terms-list li {
  margin-block-start: 0;
}

.terms-definitions {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  margin-block-end: 0;
  max-width: 65ch;
}

.terms-definitions__item {
  display: flex;
  flex-direction: column;
  gap: var(--space-3xs);
}

.terms-definitions dt {
  font-weight: 600;
  color: var(--color-primary);
}

.terms-definitions dd {
  margin-inline-start: 0;
  color: var(--color-primary);
}

.terms-contact {
  list-style: none !important;
  padding-inline-start: 0;
  margin-block-end: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  max-width: 65ch;
}

.terms-contact li {
  margin-block-start: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-3xs);
}

.terms-contact__label {
  font-size: var(--text-caption);
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-secondary);
}

.terms-contact a {
  color: var(--color-accent);
}

@media (min-width: 768px) {
  .terms-hero__inner,
  .terms-toc__inner,
  .terms-section__inner {
    padding-inline: var(--container-padding-tablet);
  }

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

@media (min-width: 1024px) {
  .terms-page {
    padding-block: var(--space-2xl) var(--space-3xl);
  }

  .terms-hero__inner,
  .terms-toc__inner,
  .terms-section__inner {
    padding-inline: var(--container-padding-desktop);
  }

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


/* Gift Vouchers page styles */

.gv-hero {
  padding-block-start: var(--space-2xl);
}

.gv-hero__container {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  gap: var(--space-xl);
  align-items: center;
}

.gv-hero__text {
  min-width: 0;
}

.gv-hero__text h1 {
  margin-block-end: var(--space-md);
}

.gv-hero__lead {
  max-width: 560px;
  margin-block-end: var(--space-lg);
}

.gv-hero__cta {
  min-width: 160px;
}

.gv-hero__media {
  min-width: 0;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border-radius: var(--radius-0);
}

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

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

.gv-section-heading h2 {
  margin-block-end: 0;
}

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

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

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

.gv-category-card p {
  margin-block-end: 0;
  }

.gv-category-card__price {
  font-weight: 500;
  color: var(--color-accent);
  margin-block-start: auto;
}

.gv-inclusions {
  background-color: var(--color-surface-alt);
}

.gv-inclusions__container {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: var(--space-xl);
  align-items: center;
}

.gv-inclusions__text {
  min-width: 0;
}

.gv-inclusions__text h2 {
  margin-block-end: var(--space-md);
}

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

.gv-inclusions__list li {
  position: relative;
  padding-inline-start: var(--space-lg);
  line-height: 1.5;
}

.gv-inclusions__list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.5em;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background-color: var(--color-accent);
}

.gv-inclusions__media {
  min-width: 0;
  aspect-ratio: 3 / 2;
  overflow: hidden;
  border-radius: var(--radius-0);
}

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

.gv-pricing__table-wrap {
  background-color: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-0);
  padding: var(--space-md);
}

.gv-pricing-table {
  width: 100%;
  border-collapse: collapse;
  margin-block-end: var(--space-sm);
}

.gv-pricing-table th,
.gv-pricing-table td {
  text-align: left;
  padding: var(--space-sm) var(--space-xs);
  border-block-end: 1px solid var(--color-border);
}

.gv-pricing-table thead th {
  font-size: var(--text-caption);
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-secondary);
}

.gv-pricing-table tbody th {
  font-family: var(--font-heading);
  font-weight: 400;
  color: var(--color-primary);
}

.gv-pricing-table__price {
  text-align: right;
  font-weight: 500;
  color: var(--color-accent);
  white-space: nowrap;
}

.gv-pricing__note {
  margin-block-end: 0;
  color: var(--color-secondary);
}

.gv-purchase {
  background-color: var(--color-surface-alt);
}

.gv-purchase__steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-lg);
  list-style: none;
  padding-inline-start: 0;
  margin-block-end: 0;
}

.gv-purchase-step {
  min-width: 0;
  padding: var(--space-lg);
  background-color: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-0);
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}

.gv-purchase-step__number {
  font-family: var(--font-heading);
  font-size: var(--text-h2);
  font-weight: 300;
  color: var(--color-accent);
  line-height: 1;
}

.gv-purchase-step h3 {
  margin-block-end: 0;
}

.gv-purchase-step p {
  margin-block-end: 0;
  }

.gv-terms__container {
  max-width: 800px;
  margin-inline: auto;
}

.gv-terms__container h2 {
  margin-block-end: var(--space-md);
}

.gv-terms__content {
  background-color: var(--color-surface-alt);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-0);
  padding: var(--space-lg);
}

.gv-terms__content p {
  margin-block-end: var(--space-sm);
}

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

.gv-terms__content li {
  position: relative;
  padding-inline-start: var(--space-lg);
}

.gv-terms__content li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.5em;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background-color: var(--color-accent);
}

.gv-cta {
  background-color: var(--color-accent);
  padding-block: var(--space-3xl);
}

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

.gv-cta__container h2 {
  color: var(--color-surface);
  margin-block-end: 0;
}

.gv-cta__container p {
  color: var(--color-surface);
  margin-block-end: 0;
}

.gv-cta__btn {
  background-color: var(--color-surface);
  color: var(--color-accent);
  border-color: var(--color-surface);
  min-width: 180px;
}

.gv-cta__btn:hover {
  background-color: var(--color-surface-alt);
  border-color: var(--color-surface-alt);
  color: var(--color-accent);
}

@media (min-width: 768px) and (max-width: 1023px) {
  .gv-hero__container {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: var(--space-lg);
  }

  .gv-categories__grid,
  .gv-purchase__steps {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-md);
  }

  .gv-inclusions__container {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: var(--space-lg);
  }
}

@media (max-width: 767px) {
  .gv-hero__container {
    grid-template-columns: 1fr;
    gap: var(--space-md);
  }

  .gv-hero__text {
    order: 2;
  }

  .gv-hero__media {
    order: 1;
    aspect-ratio: 16 / 9;
  }

  .gv-categories__grid,
  .gv-purchase__steps {
    grid-template-columns: 1fr;
    gap: var(--space-md);
  }

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

  .gv-inclusions__text {
    order: 1;
  }

  .gv-inclusions__media {
    order: 2;
    aspect-ratio: 3 / 2;
  }

  .gv-pricing__table-wrap {
    padding: var(--space-sm);
  }

  .gv-pricing-table thead {
    display: none;
  }

  .gv-pricing-table tbody,
  .gv-pricing-table tr,
  .gv-pricing-table th,
  .gv-pricing-table td {
    display: block;
    width: 100%;
    text-align: left;
  }

  .gv-pricing-table tr {
    padding: var(--space-sm) 0;
    border-block-end: 1px solid var(--color-border);
  }

  .gv-pricing-table tbody th {
    font-size: var(--text-h4);
    font-weight: 500;
    margin-block-end: var(--space-2xs);
  }

  .gv-pricing-table td {
    padding: var(--space-2xs) 0;
    border-block-end: none;
  }

  .gv-pricing-table__price {
    text-align: left;
    white-space: normal;
  }

  .gv-terms__container {
    padding-inline: var(--container-padding-mobile);
  }

  .gv-cta {
    padding-block: var(--space-2xl);
  }
}

@media (max-width: 479px) {
  .gv-hero__text h1 {
    font-size: clamp(2rem, 8vw, 2.75rem);
  }

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

  .gv-category-card,
  .gv-purchase-step {
    padding: var(--space-md);
  }
}


/* Page-owned styles for interior page */

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

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

.interior-caption {
  margin-block-end: var(--space-xs);
}

/* Architectural Philosophy */
.philosophy-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-lg);
}

.philosophy-intro,
.philosophy-supporting {
  min-width: 0;
}

.philosophy-dropcap::first-letter {
  font-family: var(--font-heading);
  font-size: 3.5rem;
  font-weight: 300;
  line-height: 1;
  color: var(--color-accent);
  float: left;
  margin-right: var(--space-xs);
  margin-top: 0.1em;
}

.philosophy-quote {
  margin-block-start: var(--space-lg);
  padding-inline-start: var(--space-md);
  border-inline-start: 2px solid var(--color-accent);
}

.philosophy-quote p {
  font-family: var(--font-heading);
  font-size: var(--text-h3);
  line-height: 1.2;
  font-weight: 300;
  color: var(--color-primary);
  margin-block-end: 0;
}

/* Signature Materials */
.materials-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-md);
}

.material-card {
  background-color: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-0);
  padding: var(--space-lg);
  min-width: 0;
}

.material-card h3 {
  margin-block-end: var(--space-sm);
}

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

.material-swatch {
  width: 100%;
  height: 48px;
  margin-block-end: var(--space-md);
  border: 1px solid var(--color-border);
}

.travertine-swatch {
  background: repeating-linear-gradient(
    45deg,
    #f4efeb,
    #f4efeb 8px,
    #e5ddd0 8px,
    #e5ddd0 16px
  );
}

.timber-swatch {
  background: repeating-linear-gradient(
    90deg,
    #d9c3a3,
    #d9c3a3 12px,
    #c4a87e 12px,
    #c4a87e 24px
  );
}

.glazing-swatch {
  background: linear-gradient(
    135deg,
    #dce8e6 0%,
    #b8d0cc 50%,
    #dce8e6 100%
  );
}

/* The Grand Sunlit Atrium */
.atrium-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-lg);
}

.atrium-figure,
.atrium-text {
  min-width: 0;
}

.atrium-figure img {
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: cover;
}

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

/* The Sommelier Vault */
.vault-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-lg);
}

.vault-figure,
.vault-text {
  min-width: 0;
}

.vault-figure img {
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: cover;
}

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

/* The Penthouse Gaming Salon */
.salon-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-lg);
}

.salon-figure,
.salon-text {
  min-width: 0;
}

.salon-figure img {
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

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

/* Acoustic Serenity */
.acoustic-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-lg);
}

.acoustic-primary,
.acoustic-zones {
  min-width: 0;
}

.acoustic-primary p,
.acoustic-zones p {
  margin-block-end: 0;
}

/* Private Entrances & VIP Booths */
.privacy-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-lg);
}

.privacy-text,
.floor-plan {
  min-width: 0;
}

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

.floor-plan {
  background-color: var(--color-surface-alt);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-0);
  padding: var(--space-lg);
  display: flex;
  align-items: center;
  justify-content: center;
}

.floor-plan-inner {
  position: relative;
  width: 100%;
  max-width: 320px;
  height: 240px;
  border: 1px solid var(--color-primary);
  background-color: var(--color-surface);
}

.floor-plan-label {
  position: absolute;
  font-size: var(--text-caption);
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-primary);
  background-color: var(--color-surface);
  border: 1px solid var(--color-border);
  padding: var(--space-2xs) var(--space-xs);
  white-space: nowrap;
}

.floor-plan-entrance {
  top: 8px;
  left: 8px;
}

.floor-plan-lift {
  top: 8px;
  right: 8px;
}

.floor-plan-booth {
  bottom: 8px;
}

.booth-1 {
  left: 8px;
}

.booth-2 {
  left: 88px;
}

.booth-3 {
  right: 88px;
}

.booth-4 {
  right: 8px;
}

/* Experience the Space CTA */
.cta-panel {
  background-color: var(--color-surface-alt);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-0);
  padding: var(--space-xl);
  max-width: 800px;
  margin-inline: auto;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-md);
}

.cta-panel h2 {
  margin-block-end: 0;
}

.cta-panel p {
  margin-block-end: 0;
  }

.cta-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-sm);
  justify-content: center;
}

.cta-actions .btn {
  min-width: 200px;
}

.cta-phone {
  font-size: var(--text-body-small);
  color: var(--color-secondary);
}

/* Tablet breakpoint */
@media (min-width: 768px) {
  .interior-section {
    padding-block: var(--space-3xl);
  }

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

  .philosophy-grid {
    grid-template-columns: 5fr 7fr;
    gap: var(--space-xl);
  }

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

  .atrium-grid {
    grid-template-columns: 7fr 5fr;
    gap: var(--space-xl);
  }

  .vault-grid {
    grid-template-columns: 5fr 7fr;
    gap: var(--space-xl);
  }

  .salon-grid {
    grid-template-columns: 7fr 5fr;
    gap: var(--space-xl);
  }

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

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

/* Desktop breakpoint */
@media (min-width: 1024px) {
  .interior-section {
    padding-block: var(--space-4xl);
  }

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

  .philosophy-grid {
    gap: var(--space-2xl);
  }

  .materials-grid {
    gap: var(--space-xl);
  }

  .atrium-grid,
  .vault-grid,
  .salon-grid,
  .acoustic-grid,
  .privacy-grid {
    gap: var(--space-2xl);
  }
}

/* Mobile adjustments */
@media (max-width: 767px) {
  .philosophy-dropcap::first-letter {
    font-size: 2.75rem;
  }

  .floor-plan-inner {
    height: 200px;
  }

  .floor-plan-booth {
    bottom: 4px;
  }

  .booth-1 {
    left: 4px;
  }

  .booth-2 {
    left: 70px;
  }

  .booth-3 {
    right: 70px;
  }

  .booth-4 {
    right: 4px;
  }

  .cta-panel {
    padding: var(--space-lg);
  }
}


/* Private Dining page styles */

.pd-hero {
  background-color: var(--color-canvas);
  padding-block: var(--space-2xl) var(--space-3xl);
}

.pd-hero__container {
  display: grid;
  grid-template-columns: 7fr 5fr;
  gap: var(--space-xl);
  align-items: center;
}

.pd-hero__text {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  min-width: 0;
}

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

.pd-hero__title {
  font-size: var(--text-h1);
  line-height: 1.1;
  letter-spacing: -0.01em;
  margin-block-end: 0;
  max-width: 12ch;
}

.pd-hero__subhead {
  max-width: 560px;
  margin-block-end: 0;
}

.pd-hero__cta {
  align-self: flex-start;
  margin-block-start: var(--space-sm);
}

.pd-hero__media {
  min-width: 0;
}

.pd-hero__media img {
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  border-radius: var(--radius-0);
}

/* Section heading pattern */
.pd-section-heading {
  display: flex;
  flex-direction: column;
  gap: var(--space-2xs);
  margin-block-end: var(--space-lg);
}

.pd-section-heading .caption-accent {
  margin-block-end: 0;
}

.pd-section-heading h2 {
  margin-block-end: 0;
}

/* Our Private Spaces */
.pd-spaces {
  background-color: var(--color-surface);
}

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

.pd-space-card {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  min-width: 0;
  background-color: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-0);
  box-shadow: none;
}

.pd-space-card img {
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: var(--radius-0);
}

.pd-space-card__body {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  padding: var(--space-md);
}

.pd-space-card__body h3 {
  margin-block-end: 0;
}

.pd-space-card__body p {
  margin-block-end: 0;
}

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

.pd-space-card__body li {
  font-size: var(--text-body-small);
  line-height: 1.5;
  color: var(--color-secondary);
  position: relative;
  padding-inline-start: var(--space-md);
}

.pd-space-card__body li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.6em;
  width: 6px;
  height: 6px;
  border-radius: var(--radius-full);
  background-color: var(--color-accent);
}

/* Bespoke Menus */
.pd-menus {
  background-color: var(--color-surface-alt);
}

.pd-menus__container {
  display: grid;
  grid-template-columns: 6fr 6fr;
  gap: var(--space-xl);
  align-items: start;
}

.pd-menus__intro {
  min-width: 0;
}

.pd-menus__intro p {
  }

.pd-menus__pricing {
  min-width: 0;
}

.pd-menus__pricing h3 {
  margin-block-end: var(--space-2xs);
}

.pd-menus__pricing > p {
  margin-block-end: var(--space-md);
}

.pd-menu-list {
  list-style: none;
  padding-inline-start: 0;
  margin-block-end: 0;
  max-width: 700px;
}

.pd-menu-item {
  display: flex;
  align-items: baseline;
  gap: var(--space-sm);
  padding-block: var(--space-xs);
  border-block-end: 1px dotted var(--color-border);
}

.pd-menu-item:last-child {
  border-block-end: none;
}

.pd-menu-item__dots {
  flex: 1;
  border-block-end: 1px dotted var(--color-border);
  transform: translateY(-4px);
}

.pd-menu-item span:first-child {
  font-weight: 500;
  color: var(--color-primary);
}

.pd-menu-item span:last-child {
  font-weight: 500;
  color: var(--color-accent);
  white-space: nowrap;
}

/* Beverage Pairings */
.pd-pairings {
  background-color: var(--color-canvas);
}

.pd-pairings__container {
  display: grid;
  grid-template-columns: 5fr 7fr;
  gap: var(--space-xl);
  align-items: center;
}

.pd-pairings__text {
  min-width: 0;
}

.pd-pairings__text p {
  }

.pd-pull-quote {
  margin-block-end: 0;
  padding-inline-start: var(--space-lg);
  border-inline-start: 2px solid var(--color-accent);
  font-family: var(--font-heading);
  font-size: var(--text-h3);
  line-height: 1.2;
  font-weight: 300;
  color: var(--color-accent);
  max-width: 300px;
  justify-self: end;
}

.pd-pull-quote p {
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
  font-weight: inherit;
  color: inherit;
  margin-block-end: 0;
}

/* Event Types */
.pd-events {
  background-color: var(--color-surface-alt);
}

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

.pd-event-column {
  min-width: 0;
  padding-inline-end: var(--space-md);
  border-inline-end: 1px solid var(--color-border);
}

.pd-event-column:last-child {
  border-inline-end: none;
  padding-inline-end: 0;
}

.pd-event-column h3 {
  margin-block-end: var(--space-sm);
}

.pd-event-column p {
  margin-block-end: var(--space-sm);
}

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

.pd-event-column li {
  font-size: var(--text-body-small);
  line-height: 1.5;
  color: var(--color-secondary);
  position: relative;
  padding-inline-start: var(--space-md);
}

.pd-event-column li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.6em;
  width: 6px;
  height: 6px;
  border-radius: var(--radius-full);
  background-color: var(--color-accent);
}

/* Planning Your Event */
.pd-planning {
  background-color: var(--color-canvas);
}

.pd-planning__container {
  max-width: 960px;
  margin-inline: auto;
}

.pd-planning__lead {
  max-width: 600px;
  margin-block-end: var(--space-lg);
}

.pd-steps {
  list-style: none;
  padding-inline-start: 0;
  margin-block-end: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  max-width: 600px;
}

.pd-steps li {
  display: flex;
  gap: var(--space-md);
  align-items: flex-start;
}

.pd-steps__number {
  flex-shrink: 0;
  width: 2rem;
  height: 2rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--color-accent);
  border-radius: var(--radius-full);
  color: var(--color-accent);
  font-weight: 500;
  font-size: var(--text-body-small);
}

.pd-steps li > div {
  min-width: 0;
}

.pd-steps h4 {
  margin-block-end: var(--space-2xs);
}

.pd-steps p {
  margin-block-end: 0;
}

/* Testimonial */
.pd-testimonial {
  background-color: var(--color-surface-alt);
}

.pd-testimonial__container {
  max-width: 960px;
  margin-inline: auto;
}

.pd-testimonial__quote {
  margin-block-end: 0;
  padding-inline-start: var(--space-lg);
  border-inline-start: 2px solid var(--color-accent);
  font-family: var(--font-heading);
  font-size: var(--text-h3);
  line-height: 1.2;
  font-weight: 300;
  color: var(--color-primary);
  max-width: 700px;
}

.pd-testimonial__quote p {
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
  font-weight: inherit;
  color: inherit;
  margin-block-end: var(--space-sm);
}

.pd-testimonial__quote cite {
  display: block;
  font-family: var(--font-body);
  font-size: var(--text-body-small);
  font-weight: 500;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--color-secondary);
  font-style: normal;
}

/* Enquiry Form */
.pd-enquiry {
  background-color: var(--color-canvas);
  padding-block: var(--space-3xl);
}

.pd-enquiry__container {
  max-width: 720px;
  margin-inline: auto;
}

.pd-enquiry__card {
  padding: var(--space-xl);
  background-color: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-4);
  box-shadow: var(--shadow-soft);
}

.pd-enquiry__card > p {
  margin-block-end: var(--space-lg);
}

.pd-form {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  max-width: 560px;
}

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

.pd-form__field label {
  margin-block-end: 0;
}

.pd-form__submit {
  align-self: flex-start;
  margin-block-start: var(--space-sm);
}

/* RSA Notice */
.pd-rsa {
  background-color: var(--color-canvas);
  padding-block: var(--space-md) var(--space-2xl);
}

.pd-rsa__container {
  max-width: 960px;
  margin-inline: auto;
}

.pd-rsa p {
  margin-block-end: 0;
}

/* Responsive */
@media (max-width: 1023px) {
  .pd-hero__container {
    grid-template-columns: 1fr;
    gap: var(--space-lg);
  }

  .pd-hero__text {
    order: 1;
  }

  .pd-hero__media {
    order: 2;
  }

  .pd-hero__title {
    max-width: 100%;
  }

  .pd-menus__container {
    grid-template-columns: 1fr;
    gap: var(--space-lg);
  }

  .pd-pairings__container {
    grid-template-columns: 1fr;
    gap: var(--space-lg);
  }

  .pd-pull-quote {
    max-width: 100%;
    justify-self: start;
  }
}

@media (max-width: 767px) {
  .pd-hero {
    padding-block: var(--space-xl) var(--space-2xl);
  }

  .pd-hero__container {
    gap: var(--space-md);
  }

  .pd-hero__title {
    font-size: clamp(2rem, 8vw, 2.75rem);
  }

  .pd-spaces__grid,
  .pd-events__grid {
    grid-template-columns: 1fr;
    gap: var(--space-md);
  }

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

  .pd-space-card__body p,
  .pd-event-column p {
  }

  .pd-event-column {
    padding-inline-end: 0;
    border-inline-end: none;
    padding-block-end: var(--space-md);
    border-block-end: 1px solid var(--color-border);
  }

  .pd-event-column:last-child {
    border-block-end: none;
    padding-block-end: 0;
  }

  .pd-menus__container {
    gap: var(--space-md);
  }

  .pd-menu-item {
    flex-wrap: wrap;
    gap: var(--space-2xs);
  }

  .pd-menu-item__dots {
    display: none;
  }

  .pd-menu-item span:last-child {
    margin-inline-start: auto;
  }

  .pd-pairings__container {
    gap: var(--space-md);
  }

  .pd-pull-quote {
    padding-inline-start: var(--space-md);
  }

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

  .pd-steps li {
    gap: var(--space-sm);
  }

  .pd-enquiry {
    padding-block: var(--space-2xl);
  }

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

  .pd-rsa {
    padding-block: var(--space-sm) var(--space-xl);
  }
}


/* Page-owned styles for gaming-lounge */

.gl-hero {
  background-color: var(--color-canvas);
  padding-block: var(--space-2xl);
}

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

.gl-hero__text {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-md);
  min-width: 0;
}

.gl-hero__caption {
  margin: 0;
}

.gl-hero__title {
  font-size: clamp(2.5rem, 5vw, 4rem);
  line-height: 1.1;
  letter-spacing: -0.01em;
  max-width: 11ch;
  margin: 0;
}

.gl-hero__subhead {
  font-size: var(--text-body-large);
  line-height: 1.6;
  max-width: 34ch;
  margin: 0;
}

.gl-hero__cta {
  margin-top: var(--space-sm);
}

.gl-hero__media {
  min-width: 0;
}

.gl-hero__media img {
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  display: block;
}

.gl-experience {
  background-color: var(--color-surface);
}

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

.gl-experience__text {
  min-width: 0;
}

.gl-experience__text h2,
.gl-experience__text h3 {
  margin-bottom: var(--space-md);
}

.gl-experience__text p {
  }

.gl-experience__divider {
  margin-block: var(--space-lg);
  border-color: var(--color-border);
}

.gl-experience__media {
  min-width: 0;
}

.gl-experience__media img {
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  display: block;
}

.gl-tables {
  background-color: var(--color-surface);
}

.gl-tables__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-lg);
  margin-top: var(--space-lg);
}

.gl-table-card {
  background-color: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-4);
  box-shadow: var(--shadow-soft);
  padding: var(--space-md);
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  min-width: 0;
}

.gl-table-card h3 {
  margin: 0;
}

.gl-table-card p {
  margin: 0;
  }

.gl-events {
  background-color: var(--color-surface-alt);
}

.gl-events__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-xl);
  margin-top: var(--space-lg);
}

.gl-events__column {
  min-width: 0;
}

.gl-events__column h3 {
  margin-bottom: var(--space-sm);
}

.gl-events__column p {
  }

.gl-croupier {
  background-color: var(--color-canvas);
}

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

.gl-croupier__text {
  min-width: 0;
}

.gl-croupier__text h2 {
  margin-bottom: var(--space-md);
}

.gl-croupier__text p {
  }

.gl-croupier__media {
  min-width: 0;
}

.gl-croupier__media img {
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  display: block;
}

.gl-sanctuary {
  background-color: var(--color-surface-alt);
}

.gl-sanctuary__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-xl);
  align-items: start;
}

.gl-sanctuary__media {
  min-width: 0;
}

.gl-sanctuary__media img {
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  display: block;
}

.gl-sanctuary__text {
  min-width: 0;
}

.gl-sanctuary__text h2 {
  margin-bottom: var(--space-md);
}

.gl-sanctuary__text p {
  }

.gl-sanctuary__list {
  list-style: none;
  padding: 0;
  margin: var(--space-md) 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
}

.gl-sanctuary__list li {
  position: relative;
  padding-left: var(--space-md);
}

.gl-sanctuary__list li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.6em;
  width: 6px;
  height: 6px;
  background-color: var(--color-accent);
  border-radius: 50%;
}

.gl-etiquette {
  background-color: var(--color-canvas);
}

.gl-etiquette__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-xl);
  margin-top: var(--space-lg);
}

.gl-etiquette__column {
  min-width: 0;
  padding-right: var(--space-lg);
  border-right: 1px solid var(--color-border);
}

.gl-etiquette__column:last-child {
  padding-right: 0;
  border-right: none;
}

.gl-etiquette__column h3 {
  margin-bottom: var(--space-sm);
}

.gl-etiquette__column p {
  }

.gl-etiquette__list {
  list-style: none;
  padding: 0;
  margin: var(--space-md) 0 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
}

.gl-etiquette__list li {
  position: relative;
  padding-left: var(--space-md);
  font-size: var(--text-body-small);
}

.gl-etiquette__list li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.6em;
  width: 6px;
  height: 6px;
  background-color: var(--color-accent);
  border-radius: 50%;
}

.gl-responsible {
  background-color: var(--color-surface-alt);
}

.gl-responsible__inner {
  max-width: 800px;
  margin-inline: auto;
}

.gl-responsible__inner h2 {
  margin-bottom: var(--space-md);
}

.gl-responsible__inner p {
  }

.gl-responsible__list {
  list-style: none;
  padding: 0;
  margin: var(--space-md) 0 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
}

.gl-responsible__list li {
  position: relative;
  padding-left: var(--space-md);
}

.gl-responsible__list li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.6em;
  width: 6px;
  height: 6px;
  background-color: var(--color-accent);
  border-radius: 50%;
}

.gl-reserve {
  background-color: var(--color-surface);
}

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

.gl-reserve__inner h2 {
  margin: 0;
}

.gl-reserve__inner p {
  margin: 0;
  }

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

.gl-reserve__contact p {
  margin: 0;
}

.gl-reserve__cta {
  margin-top: var(--space-sm);
}

@media (min-width: 768px) and (max-width: 1023px) {
  .gl-hero__inner {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: var(--space-md);
  }

  .gl-hero__title {
    font-size: clamp(2rem, 4vw, 3rem);
  }

  .gl-experience__grid,
  .gl-croupier__grid {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-lg);
  }

  .gl-experience__media,
  .gl-croupier__media {
    order: -1;
  }

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

  .gl-table-card:last-child {
    grid-column: 1 / -1;
  }

  .gl-events__grid,
  .gl-sanctuary__grid,
  .gl-etiquette__grid {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-lg);
  }

  .gl-etiquette__column {
    padding-right: 0;
    border-right: none;
    border-bottom: 1px solid var(--color-border);
    padding-bottom: var(--space-lg);
  }

  .gl-etiquette__column:last-child {
    border-bottom: none;
    padding-bottom: 0;
  }
}

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

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

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

  .gl-hero__title {
    font-size: clamp(2rem, 6vw, 3rem);
    max-width: 100%;
  }

  .gl-hero__subhead {
    max-width: 100%;
  }

  .gl-hero__media img {
    aspect-ratio: 16 / 9;
  }

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

  .gl-experience__media,
  .gl-croupier__media {
    order: -1;
  }

  .gl-experience__text p,
  .gl-croupier__text p,
  .gl-sanctuary__text p,
  .gl-events__column p,
  .gl-etiquette__column p,
  .gl-responsible__inner p {
  }

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

  .gl-table-card p {
  }

  .gl-events__grid,
  .gl-sanctuary__grid,
  .gl-etiquette__grid {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-md);
  }

  .gl-etiquette__column {
    padding-right: 0;
    border-right: none;
    border-bottom: 1px solid var(--color-border);
    padding-bottom: var(--space-md);
  }

  .gl-etiquette__column:last-child {
    border-bottom: none;
    padding-bottom: 0;
  }

  .gl-responsible__inner {
    max-width: 100%;
  }

  .gl-reserve__inner {
    max-width: 100%;
  }
}


.home-main {
  display: block;
}

.home-hero {
  padding-block-start: var(--space-2xl);
  padding-block-end: var(--space-2xl);
}

.home-hero__container {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-lg);
  align-items: center;
}

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

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

.home-hero__title {
  font-size: var(--text-h1);
  line-height: 1.1;
  letter-spacing: -0.01em;
  margin-block-end: 0;
  max-width: 100%;
}

.home-hero__subhead {
  max-width: 560px;
  margin-block-end: 0;
}

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

.home-hero__actions > * {
  min-width: 0;
}

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

.home-hero__media img {
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  display: block;
  border-radius: var(--radius-0);
}

.home-philosophy {
  padding-block-start: var(--space-2xl);
  padding-block-end: var(--space-2xl);
}

.home-philosophy__container {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-lg);
  align-items: center;
}

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

.home-philosophy__eyebrow {
  margin-block-end: 0;
}

.home-philosophy__title {
  margin-block-end: 0;
}

.home-philosophy__paragraph {
  max-width: 600px;
  margin-block-end: 0;
}

.home-philosophy__quote {
  font-family: var(--font-heading);
  font-size: var(--text-h3);
  line-height: 1.2;
  font-weight: 300;
  font-style: italic;
  color: var(--color-accent);
  max-width: 400px;
  margin-block-end: 0;
  padding-inline-start: var(--space-md);
  border-inline-start: 2px solid var(--color-accent);
}

.home-degustation {
  padding-block-start: var(--space-2xl);
  padding-block-end: var(--space-2xl);
}

.home-degustation__header {
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
  margin-block-end: var(--space-lg);
}

.home-degustation__eyebrow {
  margin-block-end: 0;
}

.home-degustation__title {
  margin-block-end: 0;
}

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

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

.home-dish-card__name {
  font-size: var(--text-h3);
  font-weight: 400;
  margin-block-end: 0;
}

.home-dish-card__description {
  max-width: 300px;
  margin-block-end: 0;
}

.home-dish-card__price {
  font-family: var(--font-body);
  font-size: var(--text-body-large);
  font-weight: 500;
  color: var(--color-primary);
  align-self: flex-end;
  margin-block-start: auto;
  margin-block-end: 0;
}

.home-degustation__footer {
  margin-block-start: var(--space-lg);
}

.home-text-link {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2xs);
  color: var(--color-accent);
  text-decoration: underline;
  text-underline-offset: 2px;
  text-decoration-thickness: 1px;
  font-size: var(--text-body);
  font-weight: 500;
  letter-spacing: 0.02em;
  transition: color var(--transition-fast);
}

.home-text-link:hover {
  color: var(--color-accent-soft);
}

.home-text-link:focus-visible {
  outline: var(--focus-outline);
  outline-offset: var(--focus-offset);
  border-radius: var(--radius-2);
}

.home-chef {
  padding-block-start: var(--space-2xl);
  padding-block-end: var(--space-2xl);
}

.home-chef__container {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-lg);
  align-items: center;
}

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

.home-chef__media img {
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  display: block;
  border-radius: var(--radius-0);
}

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

.home-chef__eyebrow {
  margin-block-end: 0;
}

.home-chef__title {
  margin-block-end: 0;
}

.home-chef__name {
  font-size: var(--text-h3);
  font-weight: 400;
  margin-block-end: 0;
}

.home-chef__bio {
  max-width: 500px;
  margin-block-end: 0;
}

.home-salon {
  padding-block-start: var(--space-2xl);
  padding-block-end: var(--space-2xl);
}

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

.home-salon__eyebrow {
  margin-block-end: 0;
}

.home-salon__title {
  margin-block-end: 0;
}

.home-salon__intro {
  max-width: 600px;
  margin-block-end: 0;
}

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

.home-salon__item {
  position: relative;
  padding-inline-start: var(--space-md);
  max-width: 400px;
  line-height: 1.6;
}

.home-salon__item::before {
  content: "";
  position: absolute;
  inset-inline-start: 0;
  inset-block-start: 0.6em;
  width: 8px;
  height: 8px;
  background-color: var(--color-accent);
  border-radius: var(--radius-full);
}

.home-salon__footer {
  margin-block-start: var(--space-sm);
}

.home-testimonials {
  padding-block-start: var(--space-2xl);
  padding-block-end: var(--space-2xl);
}

.home-testimonials__header {
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
  margin-block-end: var(--space-lg);
}

.home-testimonials__eyebrow {
  margin-block-end: 0;
}

.home-testimonials__title {
  margin-block-end: 0;
}

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

.home-testimonial-card {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  padding: var(--space-md);
  min-width: 0;
  margin-block-end: 0;
  border-inline-start: none;
}

.home-testimonial-card__quote {
  font-family: var(--font-heading);
  font-size: var(--text-body-large);
  line-height: 1.5;
  font-weight: 300;
  font-style: italic;
  color: var(--color-primary);
  max-width: 300px;
  margin-block-end: 0;
}

.home-testimonial-card__attribution {
  margin-block-start: auto;
  margin-block-end: 0;
}

.home-operations {
  padding-block-start: var(--space-2xl);
  padding-block-end: var(--space-2xl);
}

.home-operations__header {
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
  margin-block-end: var(--space-lg);
}

.home-operations__eyebrow {
  margin-block-end: 0;
}

.home-operations__title {
  margin-block-end: 0;
}

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

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

.home-operations__subtitle {
  font-size: var(--text-h4);
  font-family: var(--font-body);
  font-weight: 500;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  margin-block-end: 0;
}

.home-operations__list {
  display: flex;
  flex-direction: column;
  gap: var(--space-2xs);
  margin-block-end: 0;
  padding-inline-start: 0;
  list-style: none;
  max-width: 400px;
}

.home-operations__item {
  display: flex;
  flex-direction: column;
  gap: var(--space-3xs);
  line-height: 1.5;
}

.home-operations__item span:first-child {
  font-weight: 500;
  color: var(--color-primary);
}

.home-operations__item span:last-child {
  color: var(--color-secondary);
}

.home-operations__list--plain .home-operations__item {
  display: list-item;
  list-style: disc;
  margin-inline-start: var(--space-md);
  color: var(--color-primary);
}

.home-operations__paragraph {
  max-width: 400px;
  margin-block-end: 0;
}

.home-operations__note {
  margin-block-start: var(--space-xs);
  margin-block-end: 0;
}

.home-booking {
  padding-block-start: var(--space-2xl);
  padding-block-end: var(--space-2xl);
}

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

.home-booking__eyebrow {
  margin-block-end: 0;
}

.home-booking__title {
  margin-block-end: 0;
}

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

.home-booking__actions > * {
  min-width: 0;
}

.home-booking__contact {
  max-width: 500px;
  margin-block-end: 0;
}

@media (min-width: 640px) {
  .home-hero__actions,
  .home-booking__actions {
    flex-wrap: nowrap;
  }

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

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

@media (min-width: 768px) {
  .home-hero,
  .home-philosophy,
  .home-degustation,
  .home-chef,
  .home-salon,
  .home-testimonials,
  .home-operations,
  .home-booking {
    padding-block-start: var(--space-3xl);
    padding-block-end: var(--space-3xl);
  }

  .home-hero__container {
    grid-template-columns: 5fr 7fr;
    gap: var(--space-xl);
  }

  .home-philosophy__container {
    grid-template-columns: 7fr 5fr;
    gap: var(--space-xl);
  }

  .home-chef__container {
    grid-template-columns: 4fr 8fr;
    gap: var(--space-xl);
  }

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

  .home-operations__grid {
    gap: var(--space-xl);
  }
}

@media (min-width: 1024px) {
  .home-hero,
  .home-philosophy,
  .home-degustation,
  .home-chef,
  .home-salon,
  .home-testimonials,
  .home-operations,
  .home-booking {
    padding-block-start: var(--space-4xl);
    padding-block-end: var(--space-4xl);
  }

  .home-hero__container {
    gap: var(--space-2xl);
  }

  .home-philosophy__container {
    gap: var(--space-2xl);
  }

  .home-chef__container {
    gap: var(--space-2xl);
  }

  .home-degustation__grid,
  .home-testimonials__grid {
    gap: var(--space-xl);
  }
}

@media (prefers-reduced-motion: reduce) {
  .home-text-link,
  .home-text-link:hover {
    transition: none;
  }
}


/* Page-owned styles for Artisanal Cocktail Sanctuary */

/* Hero */
.cocktail-hero {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: var(--space-lg);
  align-items: center;
  padding: var(--space-2xl) var(--container-padding-mobile);
  background-color: var(--color-canvas);
}

.cocktail-hero__content {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  align-items: flex-start;
}

.cocktail-hero__eyebrow {
  margin: 0;
}

.cocktail-hero__title {
  font-size: var(--text-h1);
  line-height: 1.1;
  letter-spacing: -0.01em;
  margin: 0;
  max-width: 12ch;
}

.cocktail-hero__subtitle {
  margin: 0;
  max-width: 34ch;
}

.cocktail-hero__media {
  min-width: 0;
  position: relative;
  overflow: hidden;
  border-radius: var(--radius-0);
}

.cocktail-hero__media::after {
  content: "";
  position: absolute;
  inset: 0;
  background-color: rgba(250, 248, 245, 0.08);
  pointer-events: none;
}

.cocktail-hero__media img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border-radius: var(--radius-0);
}

/* Philosophy */
.cocktail-philosophy {
  background-color: var(--color-surface);
}

.cocktail-philosophy__header {
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
  margin-bottom: var(--space-xl);
}

.cocktail-philosophy__header h2 {
  margin: 0;
  max-width: 18ch;
}

.cocktail-philosophy__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-lg);
  margin-bottom: var(--space-xl);
}

.cocktail-philosophy__card {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}

.cocktail-philosophy__card h3 {
  margin: 0;
}

.cocktail-philosophy__card p {
  margin: 0;
  }

.cocktail-philosophy__card ul {
  margin: 0;
  padding-left: var(--space-lg);
  list-style: disc !important;
  display: flex;
  flex-direction: column;
  gap: var(--space-2xs);
}

.cocktail-philosophy__botanical {
  margin: 0 0 var(--space-xl) 0;
  max-width: 560px;
}

.cocktail-philosophy__botanical img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: var(--radius-0);
}

.cocktail-philosophy__quote {
  margin: 0;
  padding: var(--space-xl);
  background-color: var(--color-surface-alt);
  border-radius: var(--radius-0);
  text-align: center;
}

.cocktail-philosophy__quote p {
  margin: 0;
  font-family: var(--font-heading);
  font-size: var(--text-h3);
  line-height: 1.2;
  font-weight: 300;
  color: var(--color-primary);
}

/* Signature Cocktails */
.cocktail-signatures {
  background-color: var(--color-canvas);
}

.cocktail-signatures__header {
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
  margin-bottom: var(--space-xl);
}

.cocktail-signatures__header h2 {
  margin: 0;
  max-width: 18ch;
}

.cocktail-signatures__menu {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-xl);
}

.cocktail-signatures__column {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-lg);
}

.cocktail-signatures__item {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-2xs);
  padding-bottom: var(--space-sm);
  border-bottom: 1px dotted var(--color-border);
}

.cocktail-signatures__item h3 {
  margin: 0;
}

.cocktail-signatures__item p {
  margin: 0;
  }

.cocktail-signatures__price {
  align-self: flex-end;
  font-size: var(--text-body);
  font-weight: 500;
  color: var(--color-accent);
  margin-top: var(--space-2xs);
}

.cocktail-signatures__note {
  margin: 0;
  padding-top: var(--space-sm);
}

/* Rare & Vintage */
.cocktail-rare {
  background-color: var(--color-surface);
}

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

.cocktail-rare__content {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.cocktail-rare__content h2 {
  margin: 0;
}

.cocktail-rare__content p {
  margin: 0;
}

.cocktail-rare__content ul {
  margin: 0;
  padding-left: var(--space-lg);
  list-style: disc !important;
  display: flex;
  flex-direction: column;
  gap: var(--space-2xs);
}

.cocktail-rare__tasting {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  padding: var(--space-md);
  background-color: var(--color-surface-alt);
  border-radius: var(--radius-0);
}

.cocktail-rare__tasting h3 {
  margin: 0;
}

.cocktail-rare__tasting p {
  margin: 0;
}

.cocktail-rare__tasting .btn {
  align-self: flex-start;
}

.cocktail-rare__media {
  min-width: 0;
}

.cocktail-rare__media img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  border-radius: var(--radius-0);
}

/* Bar Dining */
.cocktail-dining {
  background-color: var(--color-canvas);
}

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

.cocktail-dining__content {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.cocktail-dining__content h2 {
  margin: 0;
  max-width: 20ch;
}

.cocktail-dining__content p {
  margin: 0;
}

.cocktail-dining__content ul {
  margin: 0;
  padding-left: var(--space-lg);
  list-style: disc !important;
  display: flex;
  flex-direction: column;
  gap: var(--space-2xs);
}

.cocktail-dining__seasonal {
  margin: 0;
}

.cocktail-dining__media {
  min-width: 0;
}

.cocktail-dining__media img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  border-radius: var(--radius-0);
}

/* Sanctuary Experience */
.cocktail-experience {
  background-color: var(--color-surface);
}

.cocktail-experience__content {
  max-width: 720px;
  margin-bottom: var(--space-xl);
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.cocktail-experience__content h2 {
  margin: 0;
}

.cocktail-experience__content p {
  margin: 0;
}

.cocktail-experience__content ul {
  margin: 0;
  padding-left: var(--space-lg);
  list-style: disc !important;
  display: flex;
  flex-direction: column;
  gap: var(--space-2xs);
}

.cocktail-experience__media {
  width: 100%;
}

.cocktail-experience__media img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border-radius: var(--radius-0);
}

/* Private Cocktail Experiences */
.cocktail-private {
  background-color: var(--color-canvas);
}

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

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

.cocktail-private__content h2 {
  margin: 0;
}

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

.cocktail-private__event h3 {
  margin: 0;
}

.cocktail-private__event p {
  margin: 0;
}

.cocktail-private__event ul {
  margin: 0;
  padding-left: var(--space-lg);
  list-style: disc !important;
  display: flex;
  flex-direction: column;
  gap: var(--space-2xs);
}

.cocktail-private__event .btn {
  align-self: flex-start;
}

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

.cocktail-private__media img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  border-radius: var(--radius-0);
}

/* Meet the Mixologists */
.cocktail-team {
  background-color: var(--color-surface);
}

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

.cocktail-team__content {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.cocktail-team__content h2 {
  margin: 0;
}

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

.cocktail-team__profile h3 {
  margin: 0;
}

.cocktail-team__profile p {
  margin: 0;
}

.cocktail-team__profile ul {
  margin: 0;
  padding-left: var(--space-lg);
  list-style: disc !important;
  display: flex;
  flex-direction: column;
  gap: var(--space-2xs);
}

.cocktail-team__bar {
  margin: 0;
}

.cocktail-team__media {
  min-width: 0;
}

.cocktail-team__media img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: var(--radius-0);
}

/* Reservations */
.cocktail-reservations {
  background-color: var(--color-surface-alt);
}

.cocktail-reservations__content {
  max-width: 560px;
  margin-inline: auto;
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  align-items: center;
}

.cocktail-reservations__content h2 {
  margin: 0;
}

.cocktail-reservations__content p {
  margin: 0;
}

.cocktail-reservations__contacts {
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
}

.cocktail-reservations__phone,
.cocktail-reservations__email {
  font-size: var(--text-body);
  color: var(--color-accent);
  text-decoration: underline;
  text-underline-offset: 2px;
  text-decoration-thickness: 1px;
}

.cocktail-reservations__phone:hover,
.cocktail-reservations__email:hover {
  color: var(--color-accent-soft);
}

/* RSA Compliance */
.cocktail-rsa {
  background-color: var(--color-canvas);
  padding-top: var(--space-lg);
  padding-bottom: var(--space-lg);
}

.cocktail-rsa__content {
  max-width: 760px;
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
}

.cocktail-rsa__content h4 {
  margin: 0;
}

.cocktail-rsa__content p {
  margin: 0;
}

/* Responsive */
@media (min-width: 768px) {
  .cocktail-hero {
    padding-inline: var(--container-padding-tablet);
  }
}

@media (min-width: 1024px) {
  .cocktail-hero {
    padding-inline: var(--container-padding-desktop);
    padding-block: var(--space-3xl);
  }
}

@media (max-width: 900px) {
  .cocktail-hero,
  .cocktail-rare__grid,
  .cocktail-dining__grid,
  .cocktail-private__grid,
  .cocktail-team__grid {
    grid-template-columns: 1fr;
  }

  .cocktail-hero__content {
    order: 2;
  }

  .cocktail-hero__media {
    order: 1;
  }

  .cocktail-philosophy__grid {
    grid-template-columns: 1fr;
  }

  .cocktail-signatures__menu {
    grid-template-columns: 1fr;
  }

  .cocktail-rare__media,
  .cocktail-dining__media,
  .cocktail-private__media,
  .cocktail-team__media {
    order: -1;
  }
}

@media (max-width: 600px) {
  .cocktail-hero__title {
    font-size: clamp(2rem, 8vw, 3rem);
  }

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

  .cocktail-philosophy__quote {
    padding: var(--space-lg);
  }

  .cocktail-reservations__content {
    padding-inline: var(--space-sm);
  }
}


/* Page-owned styles for Culinary & Degustation Menu */

.menu-hero {
  padding-block: var(--space-2xl);
  background-color: var(--color-canvas);
}

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

.menu-hero__text {
  grid-column: 1 / 6;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  align-items: flex-start;
}

.menu-hero__text h1 {
  margin-block-end: 0;
}

.menu-hero__lead {
  max-width: 40ch;
  margin-block-end: 0;
}

.menu-hero__cta {
  margin-block-start: var(--space-sm);
}

.menu-hero__media {
  grid-column: 6 / 13;
  min-width: 0;
}

.menu-hero__media img {
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  display: block;
}

.menu-degustation {
  background-color: var(--color-surface-alt);
}

.menu-degustation__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-xl);
}

.menu-degustation__intro {
  grid-column: 1 / 5;
  min-width: 0;
}

.menu-degustation__intro h2 {
  margin-block-end: var(--space-md);
}

.menu-degustation__intro p:last-child {
  max-width: 60ch;
  margin-block-end: 0;
}

.menu-degustation__courses {
  grid-column: 5 / 13;
  min-width: 0;
}

.menu-course-list {
  list-style: none !important;
  padding-inline-start: 0;
  margin-block-end: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-md) var(--space-xl);
}

.menu-course-item {
  display: flex;
  align-items: baseline;
  gap: var(--space-xs);
  min-width: 0;
}

.menu-course-item__name {
  font-weight: 500;
  color: var(--color-primary);
  white-space: nowrap;
}

.menu-course-item__dots {
  flex: 1 1 auto;
  border-block-end: 1px dotted var(--color-border);
  min-width: 1rem;
}

.menu-course-item__price {
  color: var(--color-secondary);
  text-align: right;
  white-space: nowrap;
}

.menu-degustation__note {
  margin-block-start: var(--space-md);
  color: var(--color-secondary);
  font-size: var(--text-body-small);
}

.menu-signature {
  background-color: var(--color-canvas);
}

.menu-signature__heading {
  margin-block-end: var(--space-xl);
}

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

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

.dish-card {
  min-width: 0;
  display: flex;
  flex-direction: column;
  background-color: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-4);
  box-shadow: var(--shadow-soft);
  transition: background-color var(--transition-fast);
}

.dish-card:hover {
  background-color: var(--color-surface-alt);
}

.dish-card img {
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  display: block;
}

.dish-card__body {
  padding: var(--space-md);
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
}

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

.dish-card__body p {
  margin-block-end: 0;
}

.menu-cellar {
  background-color: var(--color-surface-alt);
}

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

.menu-cellar__intro {
  grid-column: 1 / 6;
  min-width: 0;
}

.menu-cellar__intro h2 {
  margin-block-end: var(--space-md);
}

.menu-cellar__intro p {
  margin-block-end: var(--space-md);
}

.menu-cellar__intro img {
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  display: block;
}

.menu-cellar__list {
  grid-column: 6 / 13;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-lg);
}

.wine-entry h3 {
  margin-block-end: var(--space-2xs);
}

.wine-entry p {
  margin-block-end: 0;
}

.menu-cellar__note {
  color: var(--color-secondary);
  font-size: var(--text-body-small);
  margin-block-start: var(--space-sm);
}

.menu-cocktails {
  background-color: var(--color-canvas);
}

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

.menu-cocktails__text {
  grid-column: 1 / 7;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

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

.cocktail-entry h3 {
  margin-block-end: var(--space-2xs);
}

.cocktail-entry p {
  margin-block-end: 0;
}

.menu-cocktails__media {
  grid-column: 7 / 13;
  min-width: 0;
}

.menu-cocktails__media img {
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  display: block;
}

.menu-allergen {
  background-color: var(--color-surface-alt);
}

.menu-allergen__content {
  max-width: 800px;
  margin-inline: auto;
}

.menu-allergen__content h2 {
  margin-block-end: var(--space-md);
}

.menu-allergen__content p {
  margin-block-end: var(--space-md);
}

.menu-allergen__list {
  list-style: disc !important;
  padding-inline-start: var(--space-lg);
  margin-block-end: 0;
}

.menu-allergen__list li {
  margin-block-end: var(--space-2xs);
}

.menu-pairing {
  background-color: var(--color-canvas);
}

.menu-pairing__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-xl);
}

.menu-pairing__intro {
  grid-column: 1 / 5;
  min-width: 0;
}

.menu-pairing__intro h2 {
  margin-block-end: var(--space-md);
}

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

.menu-pairing__list {
  grid-column: 5 / 13;
  min-width: 0;
}

.pairing-list {
  list-style: none !important;
  padding-inline-start: 0;
  margin-block-end: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.pairing-item {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: var(--space-xs) var(--space-sm);
  min-width: 0;
}

.pairing-item__course {
  font-weight: 500;
  color: var(--color-primary);
  min-width: 8rem;
}

.pairing-item__wine {
  color: var(--color-secondary);
  flex: 1 1 auto;
  min-width: 0;
}

.menu-private {
  background-color: var(--color-surface-alt);
}

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

.menu-private__text {
  grid-column: 1 / 6;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  align-items: flex-start;
}

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

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

.menu-private__cta {
  margin-block-start: var(--space-sm);
}

.menu-private__media {
  grid-column: 6 / 13;
  min-width: 0;
}

.menu-private__media img {
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  display: block;
}

.menu-reservation {
  background-color: var(--color-canvas);
}

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

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

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

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

.menu-rsa {
  background-color: var(--color-canvas);
  padding-block: var(--space-md);
}

.menu-rsa__content {
  max-width: 800px;
  margin-inline: auto;
}

.menu-rsa__notice {
  font-size: var(--text-body-small);
  color: var(--color-muted);
  max-width: 70ch;
  margin-block-end: 0;
}

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

  .menu-hero__text {
    grid-column: 1 / 7;
  }

  .menu-hero__media {
    grid-column: 1 / 7;
  }

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

  .menu-degustation__intro {
    grid-column: 1 / 7;
  }

  .menu-degustation__courses {
    grid-column: 1 / 7;
  }

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

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

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

  .menu-cellar__intro {
    grid-column: 1 / 7;
  }

  .menu-cellar__list {
    grid-column: 1 / 7;
  }

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

  .menu-cocktails__text {
    grid-column: 1 / 7;
  }

  .menu-cocktails__media {
    grid-column: 1 / 7;
  }

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

  .menu-pairing__intro {
    grid-column: 1 / 7;
  }

  .menu-pairing__list {
    grid-column: 1 / 7;
  }

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

  .menu-private__text {
    grid-column: 1 / 7;
  }

  .menu-private__media {
    grid-column: 1 / 7;
  }
}

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

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

  .menu-hero__text {
    grid-column: 1;
  }

  .menu-hero__media {
    grid-column: 1;
    order: -1;
  }

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

  .menu-degustation__intro {
    grid-column: 1;
  }

  .menu-degustation__courses {
    grid-column: 1;
  }

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

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

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

  .menu-cellar__intro {
    grid-column: 1;
  }

  .menu-cellar__list {
    grid-column: 1;
  }

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

  .menu-cocktails__text {
    grid-column: 1;
  }

  .menu-cocktails__media {
    grid-column: 1;
    order: -1;
  }

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

  .menu-pairing__intro {
    grid-column: 1;
  }

  .menu-pairing__list {
    grid-column: 1;
  }

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

  .menu-private__text {
    grid-column: 1;
  }

  .menu-private__media {
    grid-column: 1;
    order: -1;
  }
}


/* Reservations page styles */

.reservation-hero {
  background-color: var(--color-canvas);
  padding-block: var(--space-2xl);
}

.reservation-hero__inner {
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-padding-mobile);
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-lg);
  align-items: center;
}

.reservation-hero__text {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  align-items: flex-start;
}

.reservation-hero__text h1 {
  margin-block-end: 0;
}

.reservation-hero__text .body-large {
  margin-block-end: 0;
  max-width: 520px;
}

.reservation-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-sm);
  margin-block-start: var(--space-sm);
}

.reservation-hero__actions > * {
  min-width: 0;
}

.reservation-hero__media {
  min-width: 0;
  width: 100%;
}

.reservation-hero__media img {
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  object-position: center;
  display: block;
}

.reservation-interface {
  background-color: var(--color-surface);
  border-block: 1px solid var(--color-border);
}

.reservation-interface__heading {
  max-width: 560px;
  margin-inline: auto;
  text-align: left;
  margin-block-end: var(--space-xl);
}

.reservation-interface__heading h2 {
  margin-block-end: var(--space-sm);
}

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

.reservation-form {
  max-width: 560px;
  margin-inline: auto;
  background-color: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-4);
  padding: var(--space-lg);
  box-shadow: var(--shadow-soft);
}

.reservation-form__steps {
  list-style: none;
  margin: 0 0 var(--space-lg);
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-sm);
  align-items: center;
}

.reservation-form__step {
  display: flex;
  align-items: center;
  gap: var(--space-2xs);
  font-size: var(--text-caption);
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-secondary);
  min-width: 0;
}

.reservation-form__step-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border-radius: var(--radius-full);
  background-color: var(--color-surface-alt);
  color: var(--color-primary);
  font-size: 0.75rem;
  flex-shrink: 0;
}

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

.reservation-form__fieldset {
  border: none;
  margin: 0;
  padding: 0;
  min-width: 0;
}

.reservation-form__legend {
  font-family: var(--font-body);
  font-size: var(--text-h4);
  font-weight: 500;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--color-primary);
  margin-block-end: var(--space-xs);
}

.reservation-form__description {
  font-size: var(--text-body-small);
  color: var(--color-secondary);
  margin-block-end: var(--space-sm);
}

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

.reservation-option {
  display: flex;
  align-items: flex-start;
  gap: var(--space-sm);
  padding: var(--space-sm);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-2);
  cursor: pointer;
  transition: border-color var(--transition-fast), background-color var(--transition-fast);
  min-width: 0;
}

.reservation-option:hover {
  border-color: var(--color-accent-soft);
  background-color: var(--color-surface-alt);
}

.reservation-option input[type="radio"] {
  width: auto;
  margin-block-start: 0.2rem;
  flex-shrink: 0;
}

.reservation-option__content {
  display: flex;
  flex-direction: column;
  gap: var(--space-2xs);
  min-width: 0;
}

.reservation-option__title {
  font-weight: 500;
  color: var(--color-primary);
}

.reservation-option__desc {
  font-size: var(--text-body-small);
  color: var(--color-secondary);
}

.reservation-form__guest-size {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  max-width: 200px;
}

.reservation-form__guest-btn {
  width: 44px;
  height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-2);
  background-color: var(--color-surface);
  color: var(--color-primary);
  font-size: 1.25rem;
  font-weight: 500;
  transition: background-color var(--transition-fast), border-color var(--transition-fast);
}

.reservation-form__guest-btn:hover {
  background-color: var(--color-surface-alt);
  border-color: var(--color-accent-soft);
}

.reservation-form__guest-size input[type="number"] {
  width: 64px;
  text-align: center;
  padding-inline: var(--space-2xs);
}

.reservation-form__hint {
  font-size: var(--text-body-small);
  color: var(--color-secondary);
  margin-block-start: var(--space-xs);
  margin-block-end: 0;
}

.reservation-form__label {
  margin-block-start: var(--space-sm);
}

.reservation-form__contact-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-sm);
}

.reservation-form__field {
  min-width: 0;
}

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

.experience-selection {
  background-color: var(--color-canvas);
}

.experience-selection__heading {
  max-width: 720px;
  margin-block-end: var(--space-xl);
}

.experience-selection__heading h2 {
  margin-block-end: var(--space-sm);
}

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

.experience-selection__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-md);
}

.experience-card {
  background-color: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-4);
  padding: var(--space-lg);
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  min-width: 0;
  transition: border-color var(--transition-fast);
}

.experience-card:hover {
  border-color: var(--color-accent-soft);
}

.experience-card__icon {
  width: 40px;
  height: 40px;
  color: var(--color-accent);
}

.experience-card__icon svg {
  width: 100%;
  height: 100%;
}

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

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

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

.experience-card__list li {
  font-size: var(--text-body-small);
  color: var(--color-primary);
  padding-inline-start: var(--space-sm);
  position: relative;
}

.experience-card__list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.6em;
  width: 4px;
  height: 4px;
  border-radius: var(--radius-full);
  background-color: var(--color-accent);
}

.experience-card__note {
  font-size: var(--text-body-small);
  color: var(--color-secondary);
  border-block-start: 1px solid var(--color-border);
  padding-block-start: var(--space-sm);
}

.session-timing {
  background-color: var(--color-surface-alt);
  border-block: 1px solid var(--color-border);
}

.session-timing__heading {
  max-width: 720px;
  margin-block-end: var(--space-xl);
}

.session-timing__heading h2 {
  margin-block-end: var(--space-sm);
}

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

.session-timing__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-md);
}

.timing-card {
  background-color: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-4);
  padding: var(--space-lg);
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  min-width: 0;
}

.timing-card__time {
  font-size: var(--text-caption);
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-accent);
  margin-block-end: 0;
}

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

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

.timing-card__note {
  font-size: var(--text-body-small);
  color: var(--color-secondary);
  border-block-start: 1px solid var(--color-border);
  padding-block-start: var(--space-sm);
}

.guest-croupier {
  background-color: var(--color-surface);
  border-block: 1px solid var(--color-border);
}

.guest-croupier__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-xl);
}

.guest-capacity,
.croupier-options {
  min-width: 0;
}

.guest-capacity h2,
.croupier-options h2 {
  margin-block-end: var(--space-sm);
}

.guest-capacity p,
.croupier-options p {
  margin-block-end: var(--space-sm);
}

.guest-capacity__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
}

.guest-capacity__list li {
  font-size: var(--text-body);
}

.croupier-options__cards {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  margin-block-start: var(--space-sm);
}

.croupier-card {
  background-color: var(--color-surface-alt);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-4);
  padding: var(--space-sm);
  min-width: 0;
}

.croupier-card h3 {
  margin-block-end: var(--space-2xs);
}

.croupier-card p {
  margin-block-end: 0;
  font-size: var(--text-body-small);
}

.croupier-options__note {
  font-size: var(--text-body-small);
  color: var(--color-secondary);
  margin-block-start: var(--space-sm);
  margin-block-end: 0;
}

.venue-location {
  background-color: var(--color-canvas);
}

.venue-location__block {
  max-width: 600px;
  margin-inline: auto;
  background-color: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-4);
  padding: var(--space-lg);
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}

.venue-location__block h2 {
  margin-block-end: var(--space-sm);
}

.venue-location__block p {
  margin-block-end: 0;
}

.venue-location__address {
  font-style: normal;
  font-size: var(--text-body-large);
  line-height: 1.5;
  color: var(--color-primary);
  border-inline-start: 2px solid var(--color-accent);
  padding-inline-start: var(--space-sm);
}

.venue-location__details {
  display: flex;
  flex-direction: column;
  gap: var(--space-2xs);
  font-size: var(--text-body-small);
  color: var(--color-secondary);
}

.contact-hotline {
  background-color: var(--color-surface-alt);
  border-block: 1px solid var(--color-border);
}

.contact-hotline__heading {
  max-width: 720px;
  margin-block-end: var(--space-xl);
}

.contact-hotline__heading h2 {
  margin-block-end: var(--space-sm);
}

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

.contact-hotline__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-md);
}

.contact-hotline__block {
  background-color: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-4);
  padding: var(--space-lg);
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
  min-width: 0;
}

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

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

.contact-hotline__hours {
  font-size: var(--text-body-small);
  color: var(--color-secondary);
}

.dress-code {
  background-color: var(--color-surface);
  border-block: 1px solid var(--color-border);
}

.dress-code__heading {
  max-width: 720px;
  margin-block-end: var(--space-xl);
}

.dress-code__heading h2 {
  margin-block-end: var(--space-sm);
}

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

.dress-code__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-md);
}

.dress-code__block {
  background-color: var(--color-surface-alt);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-4);
  padding: var(--space-lg);
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  min-width: 0;
}

.dress-code__block h3 {
  margin-block-end: 0;
}

.dress-code__block p {
  margin-block-end: 0;
}

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

.dress-code__list li {
  font-size: var(--text-body-small);
  padding-inline-start: var(--space-sm);
  position: relative;
}

.dress-code__list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.6em;
  width: 4px;
  height: 4px;
  border-radius: var(--radius-full);
  background-color: var(--color-accent);
}

.dress-code__note {
  font-size: var(--text-body-small);
  color: var(--color-secondary);
  border-block-start: 1px solid var(--color-border);
  padding-block-start: var(--space-sm);
}

.reservation-confirmation {
  background-color: var(--color-surface-alt);
  border-block: 1px solid var(--color-border);
}

.reservation-confirmation__block {
  max-width: 600px;
  margin-inline: auto;
  background-color: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-4);
  padding: var(--space-lg);
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  align-items: center;
  text-align: center;
}

.reservation-confirmation__block h2 {
  margin-block-end: 0;
}

.reservation-confirmation__block p {
  margin-block-end: 0;
  }

.reservation-confirmation__block .btn {
  margin-block-start: var(--space-sm);
}

@media (min-width: 640px) {
  .reservation-form__contact-grid {
    grid-template-columns: 1fr 1fr;
  }

  .reservation-form__field:last-child {
    grid-column: 1 / -1;
  }
}

@media (min-width: 768px) {
  .reservation-hero {
    padding-block: var(--space-3xl);
  }

  .reservation-hero__inner {
    padding-inline: var(--container-padding-tablet);
    grid-template-columns: 7fr 5fr;
    gap: var(--space-xl);
  }

  .reservation-hero__text {
    max-width: 520px;
  }

  .reservation-hero__media img {
    aspect-ratio: 16 / 9;
  }

  .reservation-form {
    padding: var(--space-xl);
  }

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

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

  .guest-croupier__grid {
    grid-template-columns: 5fr 7fr;
    gap: var(--space-xl);
  }

  .croupier-options__cards {
    flex-direction: row;
    flex-wrap: wrap;
  }

  .croupier-card {
    flex: 1 1 200px;
  }

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

  .dress-code__grid {
    grid-template-columns: 1fr 1fr;
    gap: var(--space-lg);
  }
}

@media (min-width: 1024px) {
  .reservation-hero {
    padding-block: var(--space-4xl);
  }

  .reservation-hero__inner {
    padding-inline: var(--container-padding-desktop);
  }

  .reservation-hero__text {
    max-width: 520px;
  }

  .reservation-hero__media img {
    aspect-ratio: 16 / 9;
  }

  .experience-selection__grid {
    gap: var(--space-xl);
  }

  .session-timing__grid {
    gap: var(--space-xl);
  }
}

@media (max-width: 767px) {
  .reservation-form__steps {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-xs);
  }

  .reservation-form__step {
    width: 100%;
  }
}


.thank-you {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: calc(100vh - 200px);
  padding-block: var(--space-2xl);
  padding-inline: var(--container-padding-mobile);
}

.thank-you__content {
  max-width: 560px;
  width: 100%;
  text-align: center;
  margin-inline: auto;
}

.thank-you__caption {
  margin-block-end: var(--space-sm);
}

.thank-you__heading {
  margin-block-end: var(--space-md);
}

.thank-you__message {
  margin-block-end: var(--space-sm);
}

.thank-you__next {
  margin-block-end: var(--space-lg);
}

.thank-you__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-sm);
}

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

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