

:root {
  --color-obsidian: #0D0D0F;
  --color-obsidian-light: #1A1A1D;
  --color-obsidian-lighter: #2D2D30;
  --color-pure-white: #FFFFFF;
  --color-hearth-bronze: #B87333;
  --color-hearth-gold: #FFC107;
  --color-emerald-deep: #1B5E20;

  --font-heading: "Playfair Display", Georgia, serif;
  --font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

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

  --container-max: 1200px;
  --section-padding-desktop: 96px;
  --section-padding-tablet: 64px;
  --section-padding-mobile: 48px;

  --surface-background: var(--color-obsidian);
  --surface-card: var(--color-obsidian-light);
  --surface-raised: var(--color-obsidian-lighter);

  --border-subtle: 1px solid var(--color-obsidian-lighter);
  --border-bronze: 1px solid var(--color-hearth-bronze);

  --radius-sharp: 0px;
  --radius-small: 2px;
  --radius-circle: 50%;

  --transition-fast: 0.2s ease;

  --focus-ring: 2px solid var(--color-hearth-bronze);
  --focus-ring-offset: 2px;
}

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

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

body {
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.6;
  font-weight: 400;
  color: var(--color-pure-white);
  background-color: var(--surface-background);
  min-height: 100vh;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}

main {
  display: block;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: var(--font-heading);
  font-weight: 400;
  letter-spacing: 0.02em;
  color: var(--color-pure-white);
  line-height: 1.2;
  margin-block-end: var(--space-4);
}

h1 {
  font-size: clamp(40px, 5vw, 56px);
  line-height: 1.2;
  margin-block-end: var(--space-5);
}

h2 {
  font-size: clamp(32px, 4vw, 40px);
  line-height: 1.3;
  margin-block-end: var(--space-4);
}

h3 {
  font-size: clamp(28px, 3.5vw, 32px);
  line-height: 1.4;
  margin-block-end: var(--space-4);
}

h4 {
  font-size: 24px;
  line-height: 1.5;
  font-weight: 500;
  margin-block-end: var(--space-3);
}

h5 {
  font-size: 20px;
  line-height: 1.6;
  margin-block-end: var(--space-3);
}

h6 {
  font-size: 16px;
  line-height: 1.6;
  margin-block-end: var(--space-3);
}

p {
  font-size: 16px;
  line-height: 1.6;
  margin-block-end: var(--space-4);
}

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

a {
  color: var(--color-hearth-bronze);
  text-decoration: none;
  transition: color var(--transition-fast);
}

a:hover {
  color: var(--color-hearth-gold);
}

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

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

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

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

ol {
  list-style: decimal;
}

li {
  line-height: 1.6;
}

blockquote {
  margin-block-end: var(--space-4);
  padding-inline-start: var(--space-5);
  border-inline-start: 3px solid var(--color-hearth-bronze);
  color: var(--color-pure-white);
  font-style: italic;
}

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

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

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

figcaption {
  font-size: 14px;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.7);
  margin-block-start: var(--space-2);
}

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

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

hr {
  border: none;
  border-top: var(--border-subtle);
  margin-block: var(--space-6);
}

address {
  font-style: normal;
}

strong {
  font-weight: 600;
}

em {
  font-style: italic;
}

small {
  font-size: 14px;
  line-height: 1.5;
}

code,
pre {
  font-family: "SF Mono", "Cascadia Code", "Roboto Mono", monospace;
  font-size: 0.9em;
}

pre {
  background-color: var(--surface-raised);
  padding: var(--space-4);
  border-radius: var(--radius-sharp);
  overflow-x: auto;
  margin-block-end: var(--space-4);
}

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

table {
  width: 100%;
  border-collapse: collapse;
  margin-block-end: var(--space-4);
}

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

th,
td {
  padding: var(--space-3);
  text-align: start;
  border-bottom: var(--border-subtle);
}

th {
  font-family: var(--font-heading);
  font-weight: 500;
  letter-spacing: 0.02em;
  color: var(--color-pure-white);
}

caption {
  font-size: 14px;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.7);
  margin-block-end: var(--space-2);
  text-align: start;
}

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

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

fieldset {
  border: var(--border-subtle);
  padding: var(--space-4);
  margin-block-end: var(--space-4);
}

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

legend {
  font-family: var(--font-heading);
  font-size: 20px;
  line-height: 1.6;
  letter-spacing: 0.02em;
  padding-inline: var(--space-2);
  color: var(--color-pure-white);
}

label {
  display: block;
  font-size: 14px;
  line-height: 1.5;
  font-weight: 500;
  margin-block-end: var(--space-2);
  color: var(--color-pure-white);
}

input,
select,
textarea {
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.6;
  color: var(--color-pure-white);
  background-color: var(--surface-raised);
  border: var(--border-subtle);
  border-radius: var(--radius-sharp);
  padding: var(--space-3);
  width: 100%;
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}

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

input::placeholder,
textarea::placeholder {
  color: rgba(255, 255, 255, 0.5);
}

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

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

input[type="checkbox"],
input[type="radio"] {
  width: auto;
  margin-inline-end: var(--space-2);
  accent-color: var(--color-hearth-bronze);
}

input[type="submit"],
input[type="reset"],
input[type="button"] {
  width: auto;
  cursor: pointer;
}

button {
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.6;
  font-weight: 500;
  color: var(--color-obsidian);
  background-color: var(--color-hearth-bronze);
  border: none;
  border-radius: var(--radius-sharp);
  padding: var(--space-3) var(--space-5);
  cursor: pointer;
  transition: background-color var(--transition-fast), color var(--transition-fast);
  min-height: 44px;
}

button:hover {
  background-color: var(--color-hearth-gold);
  color: var(--color-obsidian);
}

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

button:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

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

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

.surface-card {
  background-color: var(--surface-card);
  border: var(--border-subtle);
  border-radius: var(--radius-sharp);
  padding: var(--space-4);
}

.surface-raised {
  background-color: var(--surface-raised);
  border: var(--border-subtle);
  border-radius: var(--radius-sharp);
  padding: var(--space-4);
}

.overline {
  display: block;
  font-size: 12px;
  line-height: 1.4;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--color-hearth-bronze);
  margin-block-end: var(--space-2);
}

.body-large {
  font-size: 20px;
  line-height: 1.6;
  font-weight: 400;
}

.caption {
  font-size: 14px;
  line-height: 1.5;
  font-weight: 400;
}

.btn {
  display: inline-block;
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.6;
  font-weight: 500;
  color: var(--color-obsidian);
  background-color: var(--color-hearth-bronze);
  border: none;
  border-radius: var(--radius-sharp);
  padding: var(--space-3) var(--space-5);
  cursor: pointer;
  text-align: center;
  transition: background-color var(--transition-fast), color var(--transition-fast);
  min-height: 44px;
  text-decoration: none;
}

.btn:hover {
  background-color: var(--color-hearth-gold);
  color: var(--color-obsidian);
}

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

.btn-secondary {
  background-color: transparent;
  color: var(--color-pure-white);
  border: var(--border-bronze);
}

.btn-secondary:hover {
  background-color: var(--color-hearth-bronze);
  color: var(--color-obsidian);
}

.nav-toggle {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  background: transparent;
  border: none;
  padding: var(--space-2);
  min-height: 44px;
  min-width: 44px;
  cursor: pointer;
}

.nav-toggle span {
  display: block;
  width: 24px;
  height: 2px;
  background-color: var(--color-pure-white);
  transition: background-color var(--transition-fast);
}

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

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

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

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

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

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

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

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

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

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

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

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

.skip-link {
  position: absolute;
  top: -100%;
  left: var(--space-4);
  z-index: 10000;
  background-color: var(--color-hearth-bronze);
  color: var(--color-obsidian);
  padding: var(--space-3) var(--space-5);
  border-radius: var(--radius-sharp);
  font-weight: 500;
  transition: top var(--transition-fast);
}

.skip-link:focus {
  top: var(--space-4);
}

@media (max-width: 1024px) {
  .section {
    padding-block: var(--section-padding-tablet);
  }
}

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

  h1 {
    font-size: 40px;
  }

  h2 {
    font-size: 32px;
  }

  h3 {
    font-size: 28px;
  }

  h4 {
    font-size: 22px;
  }

  .container {
    padding-inline: var(--space-3);
  }
}

@media (max-width: 480px) {
  h1 {
    font-size: 36px;
  }

  h2 {
    font-size: 28px;
  }

  h3 {
    font-size: 24px;
  }

  .body-large {
    font-size: 18px;
  }
}

.site-header {
  background-color: var(--color-obsidian-light);
  border-bottom: var(--border-subtle);
  position: relative;
  z-index: 1000;
}

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

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

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

.site-header__wordmark {
  font-family: var(--font-heading);
  font-size: 24px;
  line-height: 1.2;
  letter-spacing: 0.02em;
  color: var(--color-pure-white);
}

.site-header__toggle {
  display: none;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  background: transparent;
  border: none;
  padding: var(--space-2);
  min-height: 44px;
  min-width: 44px;
  cursor: pointer;
}

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

.site-header__toggle:hover .site-header__toggle-line,
.site-header__toggle:focus-visible .site-header__toggle-line {
  background-color: var(--color-hearth-gold);
}

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

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

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

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

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

.site-header__nav-link {
  display: inline-block;
  padding: var(--space-2) var(--space-3);
  color: var(--color-pure-white);
  text-decoration: none;
  font-size: 16px;
  line-height: 1.6;
  font-weight: 400;
  transition: color var(--transition-fast);
  white-space: nowrap;
}

.site-header__nav-link:hover {
  color: var(--color-hearth-gold);
}

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

.site-header__nav-link--cta {
  background-color: var(--color-hearth-bronze);
  color: var(--color-obsidian);
  border-radius: var(--radius-sharp);
  padding: var(--space-2) var(--space-4);
  font-weight: 500;
}

.site-header__nav-link--cta:hover {
  background-color: var(--color-hearth-gold);
  color: var(--color-obsidian);
}

@media (max-width: 1024px) {
  .site-header__container {
    flex-wrap: wrap;
    min-height: 64px;
  }

  .site-header__brand {
    flex-shrink: 1;
  }

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

  .site-header__wordmark {
    display: none;
  }

  .site-header__toggle {
    display: flex;
  }

  .site-header__nav {
    display: none;
    width: 100%;
    background-color: var(--color-obsidian-light);
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 1000;
    border-top: var(--border-subtle);
    max-height: calc(100vh - 64px);
    overflow-y: auto;
  }

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

  .site-header__nav-list {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: var(--space-2) 0;
  }

  .site-header__nav-item {
    width: 100%;
  }

  .site-header__nav-link {
    display: block;
    padding: var(--space-3) var(--space-4);
    border-bottom: var(--border-subtle);
    white-space: normal;
  }

  .site-header__nav-link--cta {
    border-bottom: none;
    margin: var(--space-2) var(--space-4);
    text-align: center;
  }
}

.site-footer {
  background-color: var(--color-obsidian-light);
  border-top: var(--border-subtle);
  padding-block: var(--space-7);
  margin-top: var(--space-7);
}

.site-footer__container {
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--space-4);
}

.site-footer__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--space-6);
  margin-bottom: var(--space-6);
}

.site-footer__brand-link {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  text-decoration: none;
  color: var(--color-pure-white);
  margin-bottom: var(--space-4);
}

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

.site-footer__wordmark {
  font-family: var(--font-heading);
  font-size: 24px;
  line-height: 1.2;
  letter-spacing: 0.02em;
  color: var(--color-pure-white);
}

.site-footer__description {
  font-size: 14px;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.7);
  margin-bottom: 0;
}

.site-footer__heading {
  font-family: var(--font-heading);
  font-size: 20px;
  line-height: 1.6;
  letter-spacing: 0.02em;
  color: var(--color-pure-white);
  margin-bottom: var(--space-3);
}

.site-footer__list {
  list-style: none !important;
  margin: 0;
  padding: 0;
}

.site-footer__list li {
  margin-bottom: var(--space-2);
}

.site-footer__list li:last-child {
  margin-bottom: 0;
}

.site-footer__link {
  color: var(--color-pure-white);
  text-decoration: none;
  font-size: 14px;
  line-height: 1.5;
  transition: color var(--transition-fast);
}

.site-footer__link:hover {
  color: var(--color-hearth-gold);
}

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

.site-footer__address {
  font-style: normal;
  font-size: 14px;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.7);
  margin-bottom: var(--space-3);
}

.site-footer__contact {
  font-size: 14px;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.7);
  margin-bottom: 0;
}

.site-footer__bottom {
  border-top: var(--border-subtle);
  padding-top: var(--space-4);
  text-align: center;
}

.site-footer__copyright {
  font-size: 14px;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.7);
  margin: 0;
}

.cookie-consent {
  position: fixed;
  bottom: var(--space-4);
  left: var(--space-4);
  right: var(--space-4);
  max-width: 600px;
  margin-inline: auto;
  background-color: var(--color-obsidian-light);
  border: var(--border-subtle);
  border-radius: var(--radius-sharp);
  padding: var(--space-4);
  z-index: 2000;
}

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

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

.cookie-consent__text {
  font-size: 14px;
  line-height: 1.5;
  color: var(--color-pure-white);
  margin: 0;
}

.cookie-consent__actions {
  display: flex;
  gap: var(--space-3);
  flex-wrap: wrap;
}

.cookie-consent__button {
  font-family: var(--font-body);
  font-size: 14px;
  line-height: 1.5;
  font-weight: 500;
  padding: var(--space-2) var(--space-4);
  border: none;
  border-radius: var(--radius-sharp);
  cursor: pointer;
  transition: background-color var(--transition-fast), color var(--transition-fast);
  min-height: 44px;
}

.cookie-consent__button--accept {
  background-color: var(--color-hearth-bronze);
  color: var(--color-obsidian);
}

.cookie-consent__button--accept:hover {
  background-color: var(--color-hearth-gold);
}

.cookie-consent__button--reject {
  background-color: transparent;
  color: var(--color-pure-white);
  border: var(--border-bronze);
}

.cookie-consent__button--reject:hover {
  background-color: var(--color-hearth-bronze);
  color: var(--color-obsidian);
}

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

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

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

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

.age-modal__dialog {
  position: relative;
  background-color: var(--color-obsidian-light);
  border: var(--border-subtle);
  border-radius: var(--radius-sharp);
  padding: var(--space-6);
  max-width: 480px;
  width: 100%;
  max-height: calc(100vh - var(--space-8));
  overflow-y: auto;
}

.age-modal__title {
  font-family: var(--font-heading);
  font-size: 32px;
  line-height: 1.4;
  letter-spacing: 0.02em;
  color: var(--color-pure-white);
  margin-bottom: var(--space-4);
}

.age-modal__description {
  font-size: 16px;
  line-height: 1.6;
  color: var(--color-pure-white);
  margin-bottom: var(--space-5);
}

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

.age-modal__button {
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.6;
  font-weight: 500;
  padding: var(--space-3) var(--space-5);
  border: none;
  border-radius: var(--radius-sharp);
  cursor: pointer;
  transition: background-color var(--transition-fast), color var(--transition-fast);
  min-height: 44px;
}

.age-modal__button--confirm {
  background-color: var(--color-hearth-bronze);
  color: var(--color-obsidian);
}

.age-modal__button--confirm:hover {
  background-color: var(--color-hearth-gold);
}

.age-modal__button--decline {
  background-color: transparent;
  color: var(--color-pure-white);
  border: var(--border-bronze);
}

.age-modal__button--decline:hover {
  background-color: var(--color-hearth-bronze);
  color: var(--color-obsidian);
}

.age-modal__button:focus-visible {
  outline: var(--focus-ring);
  outline-offset: var(--focus-ring-offset);
}

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

  .site-footer__brand-link {
    flex-direction: column;
    align-items: flex-start;
  }

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

  .site-footer__wordmark {
    font-size: 20px;
  }

  .cookie-consent {
    left: var(--space-3);
    right: var(--space-3);
    bottom: var(--space-3);
  }

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

  .age-modal__title {
    font-size: 28px;
  }
}

.privacy-policy-page {
  background-color: var(--surface-background);
  color: var(--color-pure-white);
}

.privacy-policy-container {
  width: 100%;
  max-width: 800px;
  margin-inline: auto;
  padding-inline: var(--space-4);
  padding-block: var(--section-padding-desktop) var(--space-6);
}

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

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

.privacy-intro {
  padding-block-start: 0;
}

.privacy-intro .overline {
  margin-block-end: var(--space-2);
}

.privacy-intro h1 {
  margin-block-end: var(--space-5);
}

.privacy-intro-lead {
  font-size: 20px;
  line-height: 1.6;
  max-width: 65ch;
  margin-block-end: var(--space-4);
}

.privacy-intro p:not(.privacy-intro-lead) {
  max-width: 65ch;
}

.privacy-effective-date {
  color: var(--color-hearth-bronze);
  font-weight: 500;
  margin-block-start: var(--space-4);
}

.privacy-section h2 {
  margin-block-end: var(--space-4);
}

.privacy-section p {}

.privacy-list {
  margin-block-end: var(--space-4);
  max-width: 70ch;
}

.privacy-list-bullet {
  list-style: none !important;
  padding-inline-start: 0;
}

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

.privacy-list-bullet li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.65em;
  width: 8px;
  height: 8px;
  background-color: var(--color-hearth-bronze);
  border-radius: 0;
}

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

.privacy-list-numbered {
  list-style: none !important;
  padding-inline-start: 0;
  counter-reset: privacy-counter;
}

.privacy-list-numbered li {
  counter-increment: privacy-counter;
  position: relative;
  padding-inline-start: var(--space-6);
  margin-block-end: var(--space-3);
}

.privacy-list-numbered li::before {
  content: counter(privacy-counter) ".";
  position: absolute;
  left: 0;
  top: 0;
  font-family: var(--font-heading);
  font-size: 18px;
  line-height: 1.6;
  color: var(--color-hearth-bronze);
  font-weight: 500;
}

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

.privacy-contact-details {
  font-style: normal;
  max-width: 70ch;
}

.privacy-contact-details p {
  margin-block-end: var(--space-3);
}

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

.privacy-contact-details a {
  color: var(--color-hearth-bronze);
  transition: color var(--transition-fast);
}

.privacy-contact-details a:hover {
  color: var(--color-hearth-gold);
}

.privacy-contact-details a:focus-visible {
  outline: var(--focus-ring);
  outline-offset: var(--focus-ring-offset);
}

@media (max-width: 1024px) {
  .privacy-policy-container {
    padding-block: var(--section-padding-tablet) var(--space-5);
  }

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

@media (max-width: 768px) {
  .privacy-policy-container {
    padding-inline: var(--space-3);
    padding-block: var(--section-padding-mobile) var(--space-4);
  }

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

  .privacy-intro h1 {
    font-size: 32px;
  }

  .privacy-intro-lead {
    font-size: 18px;
  }

  .privacy-list-bullet li {
    padding-inline-start: var(--space-4);
  }

  .privacy-list-numbered li {
    padding-inline-start: var(--space-5);
  }
}

@media (max-width: 480px) {
  .privacy-policy-container {
    padding-inline: var(--space-3);
  }

  .privacy-intro h1 {
    font-size: 28px;
  }

  .privacy-section h2 {
    font-size: 24px;
  }
}

/* Page-owned styles for Terms and Conditions */
.terms-main {
  display: block;
  width: 100%;
}

.terms-section {
  padding-block: var(--section-padding-desktop);
  background-color: var(--surface-background);
}

.terms-section + .terms-section {
  border-top: var(--border-subtle);
}

.terms-container {
  width: 100%;
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--space-4);
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
}

.terms-intro-container {
  max-width: 800px;
  margin-inline: auto;
  padding-block-start: var(--space-8);
}

.terms-intro-heading {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  text-align: left;
  max-width: 70ch;
}

.terms-intro-heading .overline {
  margin-block-end: 0;
}

.terms-intro-heading h1 {
  margin-block-end: 0;
}

.terms-lead {
  font-size: 20px;
  line-height: 1.6;
  font-weight: 400;
  max-width: 70ch;
}

.terms-effective-card {
  background-color: var(--surface-card);
  border: var(--border-subtle);
  border-inline-start: 3px solid var(--color-hearth-bronze);
  border-radius: var(--radius-sharp);
  padding: var(--space-4);
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  max-width: 70ch;
}

.terms-effective-text {
  font-size: 14px;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.7);
  max-width: 70ch;
}

.terms-single-column {
  max-width: 800px;
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  text-align: left;
}

.terms-single-column h2,
.terms-single-column h3,
.terms-single-column p,
.terms-single-column ul {
  max-width: 70ch;
}

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

.terms-single-column h3 {
  margin-block-end: 0;
}

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

.terms-list li {
  position: relative;
  padding-inline-start: var(--space-5);
  line-height: 1.6;
}

.terms-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.6em;
  width: 6px;
  height: 6px;
  background-color: var(--color-hearth-bronze);
  border-radius: var(--radius-circle);
}

.terms-two-column {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-6);
  width: 100%;
}

.terms-column {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  text-align: left;
}

.terms-column h3 {
  margin-block-end: 0;
}

.terms-column p,
.terms-column ul {
  max-width: 70ch;
}

.terms-contact-card {
  background-color: var(--surface-card);
  border: var(--border-subtle);
  border-radius: var(--radius-sharp);
  padding: var(--space-4);
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  max-width: 70ch;
}

.terms-contact-item {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
  min-width: 0;
}

.terms-contact-label {
  font-size: 12px;
  line-height: 1.4;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--color-hearth-bronze);
}

.terms-contact-item a {
  color: var(--color-pure-white);
  text-decoration: none;
  transition: color var(--transition-fast);
  overflow-wrap: break-word;
  word-break: break-word;
}

.terms-contact-item a:hover {
  color: var(--color-hearth-gold);
}

.terms-contact-item a:focus-visible {
  outline: var(--focus-ring);
  outline-offset: var(--focus-ring-offset);
}

.terms-contact-item address {
  color: var(--color-pure-white);
  font-style: normal;
  line-height: 1.6;
}

@media (max-width: 1024px) {
  .terms-section {
    padding-block: var(--section-padding-tablet);
  }

  .terms-intro-container {
    padding-block-start: var(--space-7);
  }

  .terms-two-column {
    gap: var(--space-5);
  }
}

@media (max-width: 768px) {
  .terms-section {
    padding-block: var(--section-padding-mobile);
  }

  .terms-container {
    padding-inline: var(--space-3);
    gap: var(--space-4);
  }

  .terms-intro-container {
    padding-block-start: var(--space-6);
  }

  .terms-two-column {
    grid-template-columns: 1fr;
    gap: var(--space-5);
  }

  .terms-column {
    gap: var(--space-3);
  }

  .terms-contact-card {
    padding: var(--space-3);
  }
}

@media (max-width: 480px) {
  .terms-lead {
    font-size: 18px;
  }

  .terms-intro-heading h1 {
    font-size: 36px;
  }

  .terms-contact-card {
    gap: var(--space-3);
  }
}

/* Cookie Policy page styles */

.cookie-policy-page {
  display: block;
}

.cookie-hero {
  background-color: var(--color-obsidian-light);
  border-bottom: var(--border-bronze);
  padding-block-start: var(--space-8);
  padding-block-end: var(--space-6);
}

.cookie-hero__inner {
  max-width: 800px;
  margin-inline: auto;
  padding-inline: var(--space-4);
  text-align: left;
}

.cookie-hero__intro {
  font-size: 18px;
  line-height: 1.6;
  margin-block-end: var(--space-4);
}

.cookie-hero__date {
  color: var(--color-hearth-bronze);
  font-weight: 500;
  margin-block-end: var(--space-2);
}

.cookie-hero__scope {
  color: rgba(255, 255, 255, 0.8);
  font-size: 14px;
  line-height: 1.5;
}

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

.cookie-section__inner {
  max-width: 800px;
  margin-inline: auto;
  padding-inline: var(--space-4);
  text-align: left;
}

.cookie-intro__lead {
  font-size: 20px;
  line-height: 1.6;
  margin-block-end: var(--space-4);
}

.cookie-card {
  background-color: var(--color-obsidian-light);
  border: var(--border-bronze);
  border-radius: var(--radius-sharp);
  padding: var(--space-4);
}

.cookie-card__item {
  padding-block: var(--space-3);
  border-bottom: 1px solid var(--color-obsidian-lighter);
}

.cookie-card__item:first-child {
  padding-block-start: 0;
}

.cookie-card__item:last-child {
  border-bottom: none;
  padding-block-end: 0;
}

.cookie-card__item h3 {
  margin-block-end: var(--space-2);
}

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

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

.cookie-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.5em;
  width: 8px;
  height: 8px;
  background-color: var(--color-hearth-bronze);
}

.cookie-steps {
  list-style: none;
  counter-reset: cookie-step;
  padding-inline-start: 0;
  margin-block-end: var(--space-4);
}

.cookie-steps li {
  counter-increment: cookie-step;
  position: relative;
  padding-inline-start: var(--space-6);
  margin-block-end: var(--space-3);
}

.cookie-steps li::before {
  content: counter(cookie-step);
  position: absolute;
  left: 0;
  top: 0;
  color: var(--color-hearth-bronze);
  font-weight: 600;
}

.cookie-note {
  border-inline-start: 3px solid var(--color-hearth-bronze);
  padding-inline-start: var(--space-4);
  margin-block-start: var(--space-4);
  color: rgba(255, 255, 255, 0.85);
}

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

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

.cookie-contact-list li {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  min-width: 0;
}

.cookie-contact-icon {
  flex-shrink: 0;
  width: 24px;
  text-align: center;
  color: var(--color-hearth-bronze);
}

.cookie-contact-list address {
  margin: 0;
  color: var(--color-pure-white);
}

.cookie-acknowledgment {
  padding-block-end: var(--space-8);
}

@media (max-width: 1024px) {
  .cookie-hero {
    padding-block-start: var(--space-7);
    padding-block-end: var(--space-5);
  }

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

  .cookie-acknowledgment {
    padding-block-end: var(--space-7);
  }
}

@media (max-width: 768px) {
  .cookie-hero {
    padding-block-start: var(--space-6);
    padding-block-end: var(--space-5);
  }

  .cookie-hero__inner,
  .cookie-section__inner {
    padding-inline: var(--space-3);
  }

  .cookie-hero h1 {
    font-size: 40px;
  }

  .cookie-hero__intro {
    font-size: 16px;
  }

  .cookie-hero__date {
    font-size: 14px;
  }

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

  .cookie-intro__lead {
    font-size: 18px;
  }

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

  .cookie-card__item h3 {
    font-size: 20px;
  }

  .cookie-acknowledgment {
    padding-block-end: var(--space-6);
  }
}

@media (max-width: 480px) {
  .cookie-hero h1 {
    font-size: 36px;
  }

  .cookie-hero__intro {
    font-size: 15px;
  }

  .cookie-section__inner,
  .cookie-hero__inner {
    padding-inline: var(--space-3);
  }

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

  .cookie-card__item h3 {
    font-size: 18px;
  }

  .cookie-contact-list li {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-1);
  }
}

/* Offers page styles */

.hero-offers {
  position: relative;
  min-height: 80vh;
  display: flex;
  align-items: center;
  overflow: hidden;
  padding-block-start: var(--space-7);
}

.hero-offers__bg {
  position: absolute;
  inset: 0;
  background-image: linear-gradient(to right, rgba(13, 13, 15, 0.9) 0%, rgba(13, 13, 15, 0.6) 50%, rgba(13, 13, 15, 0.3) 100%), url('/src/media/hero-offers-lounge.webp');
  background-size: cover;
  background-position: center;
  z-index: 0;
}

.hero-offers__container {
  position: relative;
  z-index: 1;
  padding-block: var(--space-8);
}

.hero-offers__content {
  max-width: 600px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
}

.hero-offers__content .overline {
  margin-block-end: 0;
}

.hero-offers__content h1 {
  margin-block-end: 0;
  max-width: 100%;
}

.hero-offers__subheadline {
  font-size: 20px;
  line-height: 1.6;
  max-width: 60ch;
  margin-block-end: 0;
}

.hero-offers__cta {
  margin-block-start: var(--space-2);
}

/* Introduction to Offers */
.intro-offers {
  background-color: var(--surface-background);
}

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

.intro-offers .overline {
  margin-block-end: 0;
}

.intro-offers h2 {
  margin-block-end: 0;
}

.intro-offers__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-6);
  margin-block-start: var(--space-4);
}

.intro-offers__column {
  min-width: 0;
}

.intro-offers__column p {}

/* Offer cards */
.offer-card {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-4);
  background-color: var(--surface-card);
  border: 1px solid var(--color-hearth-bronze);
  border-radius: var(--radius-sharp);
  padding: var(--space-4);
  transition: transform var(--transition-fast);
  min-width: 0;
}

.offer-card:hover {
  transform: scale(1.02);
}

.offer-card__media {
  min-width: 0;
  overflow: hidden;
}

.offer-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  filter: brightness(0.85) sepia(0.15) saturate(0.9);
}

.offer-card__body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-3);
  min-width: 0;
  padding: var(--space-2);
}

.offer-card__body .overline {
  margin-block-end: 0;
}

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

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

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

.offer-card__list li {
  position: relative;
  padding-inline-start: var(--space-5);
  line-height: 1.6;
}

.offer-card__list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.6em;
  width: 10px;
  height: 10px;
  background-color: var(--color-hearth-bronze);
  transform: rotate(45deg);
}

.offer-card__body .btn {
  margin-block-start: var(--space-2);
}

/* Seasonal promotions */
.seasonal-promotions {
  background-color: var(--surface-background);
}

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

.seasonal-promotions .overline {
  margin-block-end: 0;
}

.seasonal-promotions h2 {
  margin-block-end: 0;
}

.seasonal-promotions__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-4);
  margin-block-start: var(--space-4);
}

.promo-card {
  background-color: var(--surface-card);
  border: 1px solid var(--color-hearth-bronze);
  border-radius: var(--radius-sharp);
  padding: var(--space-4);
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  min-width: 0;
  transition: transform var(--transition-fast);
}

.promo-card:hover {
  transform: scale(1.02);
}

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

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

/* Terms and conditions */
.offer-terms {
  background-color: var(--surface-background);
  border-top: var(--border-subtle);
}

.offer-terms__container {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  align-items: flex-start;
}

.offer-terms .overline {
  margin-block-end: 0;
}

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

.offer-terms__text {
  max-width: 800px;
  width: 100%;
}

.offer-terms__text p {}

/* Call to action */
.offer-cta {
  background-color: var(--surface-card);
}

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

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

.offer-cta__text {
  max-width: 60ch;
  margin-block-end: 0;
}

.offer-cta__button {
  margin-block-start: var(--space-2);
}

/* Tablet breakpoint */
@media (max-width: 1024px) {
  .hero-offers {
    min-height: 60vh;
  }

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

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

  .offer-card__media {
    max-height: 400px;
  }

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

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

  .hero-offers__container {
    padding-block: var(--space-6);
  }

  .hero-offers__content {
    max-width: 100%;
  }

  .hero-offers__subheadline {
    font-size: 18px;
  }

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

  .offer-card__body {
    padding: var(--space-2) 0;
  }

  .offer-card__media {
    max-height: 300px;
  }

  .offer-terms__container {
    align-items: stretch;
  }

  .offer-cta__container {
    padding-inline: var(--space-3);
  }
}

@media (max-width: 480px) {
  .hero-offers__content h1 {
    font-size: 36px;
  }

  .hero-offers__subheadline {
    font-size: 16px;
  }

  .offer-card__list li {
    padding-inline-start: var(--space-4);
  }

  .offer-card__list li::before {
    width: 8px;
    height: 8px;
    top: 0.55em;
  }
}

/* Dining page styles */

.dining-hero {
  position: relative;
  min-height: 80vh;
  display: flex;
  align-items: center;
  background-image: url('/src/media/dining-hero.webp');
  background-size: cover;
  background-position: center;
  padding-block: var(--space-8);
}

.dining-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(13, 13, 15, 0.85) 0%, rgba(13, 13, 15, 0.4) 100%);
  mix-blend-mode: normal;
}

.dining-hero__inner {
  position: relative;
  z-index: 1;
  max-width: 1200px;
  padding-inline: var(--space-4);
}

.dining-hero h1 {
  max-width: 10ch;
  margin-block-end: var(--space-4);
}

.dining-hero__subtext {
  max-width: 600px;
  margin-block-end: var(--space-5);
  font-size: 20px;
  line-height: 1.6;
}

.dining-hero__cta {
  display: inline-block;
}

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

.dining-philosophy__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-5);
  margin-block-start: var(--space-5);
}

.dining-philosophy__card {
  min-width: 0;
}

.dining-card {
  background-color: var(--surface-card);
  border: var(--border-subtle);
  border-radius: var(--radius-sharp);
  padding: var(--space-4);
  transition: transform var(--transition-fast);
}

.dining-card:hover {
  transform: scale(1.02);
}

.dining-card h3 {
  margin-block-end: var(--space-3);
}

.dining-card p {}

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

.dining-menu-item {
  border-bottom: var(--border-subtle);
  padding-block-end: var(--space-4);
}

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

.dining-menu-item__header {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--space-2);
  margin-block-end: var(--space-2);
}

.dining-menu-item__header h3 {
  margin-block-end: 0;
}

.dining-menu-item__price {
  font-family: var(--font-body);
  font-size: 16px;
  color: var(--color-hearth-bronze);
  white-space: nowrap;
}

.dining-menu-item p {}

.dining-atmosphere__grid {
  display: grid;
  grid-template-columns: 40% 60%;
  gap: var(--space-6);
  align-items: center;
}

.dining-atmosphere__text {
  min-width: 0;
}

.dining-atmosphere__text p {}

.dining-atmosphere__figure {
  margin: 0;
  min-width: 0;
}

.dining-atmosphere__figure img {
  width: 100%;
  height: auto;
  display: block;
  border: var(--border-bronze);
  position: relative;
}

.dining-atmosphere__figure img::after {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(184, 115, 51, 0.15);
  mix-blend-mode: multiply;
  pointer-events: none;
}

.dining-private__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-5);
  margin-block-start: var(--space-5);
}

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

.dining-private__card .btn {
  align-self: flex-start;
  margin-block-start: auto;
}

.dining-reservation-cta {
  background-color: var(--surface-card);
  border-block: var(--border-bronze);
}

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

.dining-reservation-cta__inner p {margin-inline: auto;
}

.dining-reservation-cta__button {
  display: inline-block;
}

.dining-gallery-teaser__intro {
  max-width: 60ch;
  margin-block-end: var(--space-5);
}

.dining-gallery-teaser__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-4);
  margin-block-end: var(--space-5);
}

.dining-gallery-teaser__item {
  margin: 0;
  min-width: 0;
}

.dining-gallery-teaser__item img {
  width: 100%;
  height: auto;
  display: block;
  border: var(--border-subtle);
  transition: transform var(--transition-fast);
}

.dining-gallery-teaser__item:hover img {
  transform: scale(1.03);
}

.dining-gallery-teaser__item figcaption {
  margin-block-start: var(--space-2);
  text-align: center;
}

.dining-gallery-teaser__link {
  display: inline-block;
}

@media (max-width: 1024px) {
  .dining-section {
    padding-block: var(--section-padding-tablet);
  }

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

  .dining-atmosphere__grid {
    grid-template-columns: 1fr;
  }

  .dining-atmosphere__figure {
    order: -1;
  }
}

@media (max-width: 768px) {
  .dining-section {
    padding-block: var(--section-padding-mobile);
  }

  .dining-hero {
    min-height: 60vh;
    padding-block: var(--space-6);
  }

  .dining-hero h1 {
    font-size: 40px;
  }

  .dining-hero__subtext {
    font-size: 16px;
  }

  .dining-philosophy__grid,
  .dining-private__grid,
  .dining-gallery-teaser__grid {
    grid-template-columns: 1fr;
  }

  .dining-menu-item__header {
    flex-direction: column;
    align-items: flex-start;
  }

  .dining-reservation-cta__inner {
    text-align: left;
    align-items: flex-start;
  }

  .dining-reservation-cta__inner p {
    margin-inline: 0;
  }
}

@media (max-width: 480px) {
  .dining-hero h1 {
    font-size: 36px;
  }

  .dining-hero__subtext {
    font-size: 16px;
  }
}

/* Gallery page styles */

.gallery-hero {
  position: relative;
  min-height: 80vh;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  background-color: var(--color-obsidian);
  padding-block-start: var(--space-7);
}

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

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

.gallery-hero__overlay {
  position: relative;
  z-index: 1;
  max-width: 600px;
  margin-inline: auto;
  padding: var(--space-6) var(--space-4);
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-4);
  background: linear-gradient(180deg, rgba(13, 13, 15, 0.55) 0%, rgba(13, 13, 15, 0.75) 100%);
}

.gallery-hero__overlay .overline {
  color: var(--color-hearth-gold);
}

.gallery-hero__overlay h1 {
  color: var(--color-pure-white);
  margin: 0;
  max-width: 560px;
}

.gallery-hero__lead {
  font-size: 20px;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.92);
  max-width: 560px;
  margin: 0;
}

.gallery-hero__details {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  max-width: 560px;
}

.gallery-hero__details li {
  color: rgba(255, 255, 255, 0.85);
  font-size: 16px;
  line-height: 1.6;
}

.gallery-intro__grid {
  display: grid;
  grid-template-columns: 60% 40%;
  gap: var(--space-6);
  align-items: center;
}

.gallery-intro__text {
  min-width: 0;
}

.gallery-intro__text h2,
.gallery-intro__text p {}

.gallery-intro__accent {
  display: flex;
  justify-content: center;
  align-items: center;
  min-width: 0;
}

.gallery-intro__accent-shape {
  width: 120px;
  height: 120px;
  border: 2px solid var(--color-hearth-bronze);
  background: linear-gradient(135deg, rgba(184, 115, 51, 0.15), rgba(184, 115, 51, 0.05));
  transform: rotate(45deg);
}

.gallery-section__header {
  margin-bottom: var(--space-6);
}

.gallery-section__header h2,
.gallery-section__header p {}

.gallery-grid {
  display: grid;
  gap: var(--space-6);
}

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

.gallery-card {
  margin: 0;
  min-width: 0;
}

.gallery-card__link {
  display: block;
  overflow: hidden;
  border: 1px solid var(--color-obsidian-lighter);
  transition: transform var(--transition-fast), border-color var(--transition-fast);
}

.gallery-card__link:hover {
  transform: scale(1.02);
  border-color: var(--color-hearth-bronze);
}

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

.gallery-card__link img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
}

.gallery-card__caption {
  margin-top: var(--space-2);
  font-size: 14px;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.75);
  max-width: 60ch;
}

.gallery-split {
  display: grid;
  grid-template-columns: 60% 40%;
  gap: var(--space-6);
  align-items: center;
}

.gallery-split--reverse {
  grid-template-columns: 40% 60%;
}

.gallery-split__media {
  min-width: 0;
}

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

.gallery-split__text {
  min-width: 0;
}

.gallery-split__text h2,
.gallery-split__text p {}

.amenities__header {
  margin-bottom: var(--space-6);
}

.amenities__header h2,
.amenities__header p {}

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

.amenity-card {
  background-color: var(--surface-card);
  border: 1px solid var(--color-obsidian-lighter);
  padding: var(--space-4);
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}

.amenity-card h3 {
  margin: 0;
  font-size: 24px;
  line-height: 1.5;
  font-weight: 500;
}

.amenity-card p {
  margin: 0;
  font-size: 16px;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.85);
}

.gallery-cta {
  background-color: var(--color-obsidian-light);
  border-top: 1px solid var(--color-obsidian-lighter);
  border-bottom: 1px solid var(--color-obsidian-lighter);
}

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

.gallery-cta__inner h2 {
  margin: 0;
}

.gallery-cta__text {
  margin: 0;
  max-width: 560px;
}

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

.gallery-cta__contacts a {
  color: var(--color-hearth-bronze);
  text-decoration: none;
  transition: color var(--transition-fast);
}

.gallery-cta__contacts a:hover {
  color: var(--color-hearth-gold);
}

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

/* Lightbox modal */
.lightbox {
  position: fixed;
  inset: 0;
  z-index: 1000;
  background-color: rgba(13, 13, 15, 0.95);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-4);
}

.lightbox__content {
  position: relative;
  max-width: 90vw;
  max-height: 90vh;
  display: flex;
  align-items: center;
  justify-content: center;
}

.lightbox__content img {
  max-width: 100%;
  max-height: 90vh;
  object-fit: contain;
  border: 1px solid var(--color-obsidian-lighter);
}

.lightbox__close {
  position: absolute;
  top: -20px;
  right: -20px;
  width: 44px;
  height: 44px;
  min-height: 44px;
  background-color: var(--color-hearth-bronze);
  color: var(--color-obsidian);
  border: none;
  border-radius: 0;
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background-color var(--transition-fast), color var(--transition-fast);
}

.lightbox__close:hover {
  background-color: var(--color-hearth-gold);
  color: var(--color-obsidian);
}

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

@media (max-width: 1024px) {
  .gallery-intro__grid {
    grid-template-columns: 1fr;
    gap: var(--space-4);
  }

  .gallery-intro__accent {
    display: none;
  }

  .gallery-split,
  .gallery-split--reverse {
    grid-template-columns: 1fr;
    gap: var(--space-4);
  }

  .gallery-split__media {
    order: -1;
  }

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

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

  .gallery-hero__overlay {
    padding: var(--space-5) var(--space-3);
    gap: var(--space-3);
  }

  .gallery-hero__lead {
    font-size: 18px;
  }

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

  .gallery-card__link img {
    aspect-ratio: 4 / 3;
  }

  .gallery-split__media img {
    aspect-ratio: 3 / 2;
  }

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

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

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

  .gallery-hero__overlay h1 {
    font-size: 36px;
  }

  .gallery-hero__lead {
    font-size: 16px;
  }

  .gallery-section__header h2,
  .gallery-split__text h2,
  .amenities__header h2,
  .gallery-cta__inner h2 {
    font-size: 28px;
  }
}

/* Page-owned styles for Guest Experiences */

.hero-experiences {
  position: relative;
  min-height: 80vh;
  display: flex;
  align-items: center;
  overflow: hidden;
  background-color: var(--color-obsidian);
  padding-block-start: var(--space-7);
}

.hero-experiences__media {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.hero-experiences__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

.hero-experiences__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(90deg, rgba(13, 13, 15, 0.85) 0%, rgba(13, 13, 15, 0.55) 45%, rgba(13, 13, 15, 0.15) 100%);
}

.hero-experiences__content {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
  max-width: 600px;
  padding-block: var(--space-8);
}

.hero-experiences__content h1 {
  margin-block-end: 0;
  color: var(--color-pure-white);
}

.hero-experiences__intro {
  color: rgba(255, 255, 255, 0.8);
  margin-block-end: 0;
}

.hero-experiences__content .btn {
  margin-block-start: var(--space-2);
}

.overview-experiences {
  background-color: var(--color-obsidian);
}

.overview-experiences__header {
  margin-block-end: var(--space-6);
}

.overview-experiences__header h2 {
  margin-block-end: 0;
}

.overview-experiences__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-4);
}

.experience-card {
  background-color: var(--color-obsidian-light);
  border: var(--border-subtle);
  border-radius: var(--radius-sharp);
  padding: var(--space-4);
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  min-width: 0;
  transition: transform var(--transition-fast);
}

.experience-card:hover {
  transform: scale(1.02);
}

.experience-card h3 {
  margin-block-end: 0;
  font-size: 24px;
}

.experience-card p {
  margin-block-end: 0;
  color: rgba(255, 255, 255, 0.85);margin-inline: auto;
  text-align: center;
}

.experience-card a {
  margin-block-start: auto;
  color: var(--color-hearth-bronze);
  font-weight: 500;
  text-align: center;
}

.experience-card a:hover {
  color: var(--color-hearth-gold);
}

.suites-highlight {
  background-color: var(--color-obsidian-light);
}

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

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

.suites-highlight__text h2 {
  margin-block-end: 0;
}

.suites-highlight__text p {
  margin-block-end: 0;}

.suites-highlight__list {
  list-style: none;
  padding-inline-start: 0;
  margin-block-end: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-2);
  max-width: 500px;
}

.suites-highlight__list li {
  position: relative;
  padding-inline-start: var(--space-4);
  color: rgba(255, 255, 255, 0.85);
}

.suites-highlight__list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.6em;
  width: 6px;
  height: 6px;
  background-color: var(--color-hearth-bronze);
  border-radius: var(--radius-circle);
}

.suites-highlight__media {
  min-width: 0;
  overflow: hidden;
  border-radius: var(--radius-sharp);
}

.suites-highlight__media img {
  width: 100%;
  height: auto;
  display: block;
  transition: transform var(--transition-fast);
}

.suites-highlight__media:hover img {
  transform: scale(1.02);
}

.dining-experience {
  background-color: var(--color-obsidian);
}

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

.dining-experience__media {
  min-width: 0;
  overflow: hidden;
  border-radius: var(--radius-sharp);
}

.dining-experience__media img {
  width: 100%;
  height: auto;
  display: block;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  transition: transform var(--transition-fast);
}

.dining-experience__media:hover img {
  transform: scale(1.02);
}

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

.dining-experience__text h2 {
  margin-block-end: 0;
}

.dining-experience__text p {
  margin-block-end: 0;}

.dining-experience__list {
  list-style: none;
  padding-inline-start: 0;
  margin-block-end: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-2);
  max-width: 500px;
}

.dining-experience__list li {
  position: relative;
  padding-inline-start: var(--space-4);
  color: rgba(255, 255, 255, 0.85);
}

.dining-experience__list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.6em;
  width: 6px;
  height: 6px;
  background-color: var(--color-hearth-bronze);
  border-radius: var(--radius-circle);
}

.lounge-gaming {
  background-color: var(--color-obsidian-light);
}

.lounge-gaming__header {
  margin-block-end: var(--space-6);
}

.lounge-gaming__header h2 {
  margin-block-end: 0;
}

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

.lounge-gaming__column {
  min-width: 0;
  background-color: var(--color-obsidian);
  border: var(--border-subtle);
  border-radius: var(--radius-sharp);
  padding: var(--space-5);
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}

.lounge-gaming__column h3 {
  margin-block-end: 0;
}

.lounge-gaming__column p {
  margin-block-end: 0;
  color: rgba(255, 255, 255, 0.85);}

.testimonials {
  background-color: var(--color-obsidian);
}

.testimonials__header {
  margin-block-end: var(--space-6);
}

.testimonials__header h2 {
  margin-block-end: 0;
}

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

.testimonial-card {
  background-color: var(--color-obsidian-light);
  border: var(--border-subtle);
  border-radius: var(--radius-sharp);
  padding: var(--space-4);
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  min-width: 0;
  transition: transform var(--transition-fast);
}

.testimonial-card:hover {
  transform: scale(1.02);
}

.testimonial-card blockquote {
  margin-block-end: 0;
  padding-inline-start: var(--space-4);
  border-inline-start: 3px solid var(--color-hearth-bronze);
  color: var(--color-pure-white);
  font-style: italic;
  max-width: 300px;
}

.testimonial-card__attribution {
  margin-block-end: 0;
  font-size: 14px;
  line-height: 1.5;
  color: var(--color-hearth-bronze);
  margin-block-start: auto;
}

.offers-teaser {
  background-color: var(--color-obsidian-light);
  text-align: center;
}

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

.offers-teaser__content h2 {
  margin-block-end: 0;
}

.offers-teaser__content p {
  margin-block-end: 0;
  color: rgba(255, 255, 255, 0.85);
}

.final-cta {
  background-color: var(--color-obsidian);
  text-align: center;
}

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

.final-cta__content h2 {
  margin-block-end: 0;
}

.final-cta__content p {
  margin-block-end: 0;
  color: rgba(255, 255, 255, 0.8);
}

@media (max-width: 1024px) {
  .overview-experiences__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .suites-highlight__grid,
  .dining-experience__grid {
    gap: var(--space-5);
  }

  .lounge-gaming__grid {
    gap: var(--space-5);
  }

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

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

  .hero-experiences__overlay {
    background: linear-gradient(180deg, rgba(13, 13, 15, 0.75) 0%, rgba(13, 13, 15, 0.6) 100%);
  }

  .hero-experiences__content {
    max-width: 100%;
    padding-block: var(--space-7);
  }

  .overview-experiences__grid {
    grid-template-columns: 1fr;
    gap: var(--space-3);
  }

  .experience-card p {margin-inline: 0;
    text-align: left;
  }

  .suites-highlight__grid,
  .dining-experience__grid {
    grid-template-columns: 1fr;
    gap: var(--space-5);
  }

  .suites-highlight__text,
  .dining-experience__text {
    max-width: 100%;
  }

  .suites-highlight__text p,
  .dining-experience__text p,
  .suites-highlight__list,
  .dining-experience__list {
    max-width: 100%;
  }

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

  .lounge-gaming__column p {}

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

  .testimonial-card blockquote {
    max-width: 100%;
  }

  .final-cta__content {
    padding: var(--space-4);
  }
}

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

  .hero-experiences__content {
    padding-block: var(--space-6);
  }

  .suites-highlight__list,
  .dining-experience__list {
    grid-template-columns: 1fr;
  }
}

/* Page-owned styles for rooms page */

/* Hero Section */
.rooms-hero {
  position: relative;
  min-height: 80vh;
  display: flex;
  align-items: center;
  background-color: var(--color-obsidian);
  overflow: hidden;
  padding-block-start: var(--space-7);
}

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

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

.rooms-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to right, rgba(13, 13, 15, 0.85) 0%, rgba(13, 13, 15, 0.65) 40%, rgba(13, 13, 15, 0.3) 100%);
}

.rooms-hero__content {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--space-4);
}

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

.rooms-hero__title {
  font-size: clamp(40px, 5vw, 56px);
  line-height: 1.2;
  margin-block-end: 0;
  color: var(--color-pure-white);
}

.rooms-hero__subtext {
  font-size: 20px;
  line-height: 1.6;
  max-width: 60ch;
  color: rgba(255, 255, 255, 0.9);
  margin-block-end: 0;
}

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

/* Suite Categories Overview */
.suite-categories {
  background-color: var(--color-obsidian);
}

.suite-categories__header {
  margin-block-end: var(--space-6);
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.suite-categories__title {
  margin-block-end: 0;
}

.suite-categories__intro {
  max-width: 65ch;
  color: rgba(255, 255, 255, 0.8);
  margin-block-end: 0;
}

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

.suite-card {
  background-color: var(--surface-card);
  border: var(--border-subtle);
  border-radius: var(--radius-sharp);
  padding: var(--space-4);
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  position: relative;
  overflow: hidden;
  transition: transform var(--transition-fast);
  min-width: 0;
}

.suite-card:hover {
  transform: scale(1.02);
}

.suite-card__accent {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 3px;
  background-color: var(--color-hearth-bronze);
}

.suite-card__title {
  font-size: 24px;
  line-height: 1.5;
  margin-block-end: 0;
  color: var(--color-pure-white);
}

.suite-card__description {
  font-size: 16px;
  line-height: 1.6;
  max-width: 50ch;
  color: rgba(255, 255, 255, 0.85);
  margin-block-end: 0;
  flex-grow: 1;
}

.suite-card__link {
  color: var(--color-hearth-bronze);
  text-decoration: none;
  transition: color var(--transition-fast);
  align-self: flex-start;
}

.suite-card__link:hover {
  color: var(--color-hearth-gold);
}

/* Suite Detail Sections */
.suite-detail {
  background-color: var(--color-obsidian);
}

.suite-detail__container {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-6);
  align-items: center;
}

.suite-detail__container--reverse {
  grid-template-columns: 1fr 1fr;
}

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

.suite-detail__title {
  margin-block-end: 0;
}

.suite-detail__description {
  max-width: 65ch;
  color: rgba(255, 255, 255, 0.85);
  margin-block-end: 0;
}

.suite-detail__list-title {
  font-size: 20px;
  line-height: 1.6;
  margin-block-end: 0;
  color: var(--color-pure-white);
}

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

.suite-detail__list-item {
  position: relative;
  padding-inline-start: var(--space-5);
  color: rgba(255, 255, 255, 0.85);
  line-height: 1.6;
}

.suite-detail__list-item::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.5em;
  width: 8px;
  height: 8px;
  background-color: var(--color-hearth-bronze);
  border-radius: var(--radius-circle);
}

.suite-detail__media {
  min-width: 0;
  overflow: hidden;
  border-radius: var(--radius-sharp);
}

.suite-detail__image {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
}

/* Amenities Grid */
.amenities {
  background-color: var(--color-obsidian-light);
}

.amenities__header {
  margin-block-end: var(--space-6);
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.amenities__title {
  margin-block-end: 0;
}

.amenities__intro {
  max-width: 65ch;
  color: rgba(255, 255, 255, 0.8);
  margin-block-end: 0;
}

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

.amenity-card {
  background-color: var(--surface-card);
  border: var(--border-subtle);
  border-radius: var(--radius-sharp);
  padding: var(--space-4);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  text-align: center;
  transition: transform var(--transition-fast);
  min-width: 0;
}

.amenity-card:hover {
  transform: scale(1.02);
}

.amenity-card__icon {
  color: var(--color-hearth-bronze);
  font-size: 24px;
  line-height: 1;
}

.amenity-card__label {
  font-size: 14px;
  line-height: 1.5;
  max-width: 20ch;
  color: var(--color-pure-white);
}

/* Design Philosophy */
.design-philosophy {
  background-color: var(--color-obsidian);
}

.design-philosophy__container {
  max-width: 800px;
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  text-align: center;
  align-items: center;
}

.design-philosophy__overline {
  margin-block-end: 0;
}

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

.design-philosophy__text {
  max-width: 70ch;
  color: rgba(255, 255, 255, 0.85);
  margin-block-end: 0;
  text-align: center;
}

/* Dining and Lounge Connection */
.dining-lounge {
  background-color: var(--color-obsidian-light);
}

.dining-lounge__container {
  display: grid;
  grid-template-columns: 3fr 2fr;
  gap: var(--space-6);
  align-items: start;
}

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

.dining-lounge__title {
  margin-block-end: 0;
}

.dining-lounge__description {
  max-width: 65ch;
  color: rgba(255, 255, 255, 0.85);
  margin-block-end: 0;
}

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

.dining-lounge__list-title {
  font-size: 20px;
  line-height: 1.6;
  margin-block-end: 0;
  color: var(--color-pure-white);
}

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

.dining-lounge__list-item {
  position: relative;
  padding-inline-start: var(--space-5);
  color: rgba(255, 255, 255, 0.85);
  line-height: 1.6;
}

.dining-lounge__list-item::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.5em;
  width: 8px;
  height: 8px;
  background-color: var(--color-hearth-bronze);
  border-radius: var(--radius-circle);
}

/* Reservation CTA */
.reservation-cta {
  background-color: var(--color-obsidian);
  position: relative;
  overflow: hidden;
}

.reservation-cta::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at center, rgba(184, 115, 51, 0.15) 0%, transparent 70%);
  pointer-events: none;
}

.reservation-cta__container {
  position: relative;
  z-index: 1;
  max-width: 600px;
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  text-align: center;
  align-items: center;
}

.reservation-cta__overline {
  margin-block-end: 0;
}

.reservation-cta__title {
  margin-block-end: 0;
}

.reservation-cta__text {
  color: rgba(255, 255, 255, 0.85);
  margin-block-end: 0;
}

.reservation-cta__button {
  margin-block-start: var(--space-2);
}

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

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

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

  .rooms-hero__text {
    max-width: 100%;
  }

  .rooms-hero__title {
    font-size: 40px;
  }

  .rooms-hero__subtext {
    font-size: 18px;
  }

  .suite-categories__grid {
    grid-template-columns: 1fr;
    gap: var(--space-3);
  }

  .suite-detail__container,
  .suite-detail__container--reverse {
    grid-template-columns: 1fr;
    gap: var(--space-4);
  }

  .suite-detail__container--reverse .suite-detail__media {
    order: -1;
  }

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

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

  .design-philosophy__container {
    max-width: 100%;
  }
}

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

  .rooms-hero__title {
    font-size: 36px;
  }

  .rooms-hero__subtext {
    font-size: 16px;
  }

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

  .reservation-cta__container {
    max-width: 100%;
  }
}

/* Contact Us page styles — scoped to page-owned components */

.contact-hero {
  background-color: var(--color-obsidian);
  background-image: linear-gradient(135deg, rgba(184, 115, 51, 0.08) 0%, rgba(13, 13, 15, 0) 65%);
  padding-block: var(--section-padding-desktop);
}

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

.contact-hero__inner .overline {
  margin-block-end: 0;
}

.contact-hero h1 {
  max-width: 20em;
  margin-block-end: 0;
  font-size: clamp(40px, 5vw, 56px);
}

.contact-hero__lead {
  max-width: 35em;
  margin-block-end: 0;
  font-size: 20px;
  line-height: 1.6;
}

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

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

.contact-section__inner {
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--space-4);
}

/* Reservation Form */
.reservation-section {
  background-color: var(--color-obsidian);
}

.reservation-section__inner {
  max-width: 800px;
}

.reservation-section__intro {
  margin-block-end: var(--space-5);
}

.reservation-section__intro h2 {
  margin-block-end: var(--space-3);
}

.reservation-section__intro p {margin-block-end: 0;
}

.reservation-form {
  background-color: var(--surface-card);
  border: var(--border-bronze);
  border-radius: var(--radius-sharp);
  padding: var(--space-4);
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

.reservation-form__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-4);
}

.reservation-form__grid > .form-field {
  min-width: 0;
}

.form-field {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.form-field label {
  margin-block-end: 0;
}

.form-field input,
.form-field select,
.form-field textarea {
  width: 100%;
  min-width: 0;
}

.form-field--full {
  grid-column: 1 / -1;
}

.reservation-form__actions {
  display: flex;
  justify-content: flex-start;
}

.reservation-form__submit {
  min-width: 200px;
}

.form-message {
  margin-block-end: 0;
  font-size: 14px;
  line-height: 1.5;
  min-height: 1.5em;
}

.form-message--success {
  color: var(--color-emerald-deep);
}

.form-message--error {
  color: #e57373;
}

/* Direct Contact Details */
.contact-details-section {
  background-color: var(--color-obsidian-light);
}

.contact-details-section__header {
  margin-block-end: var(--space-6);
}

.contact-details-section__header h2 {
  margin-block-end: var(--space-3);
}

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

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

.contact-card {
  background-color: var(--surface-card);
  border: var(--border-bronze);
  border-radius: var(--radius-sharp);
  padding: var(--space-4);
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  min-width: 0;
}

.contact-card__icon {
  color: var(--color-hearth-bronze);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border: var(--border-subtle);
  border-radius: var(--radius-circle);
  margin-block-end: var(--space-2);
}

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

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

.contact-card h3 {
  margin-block-end: 0;
  font-size: 24px;
}

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

.contact-card__link {
  font-size: 18px;
  font-weight: 500;
  color: var(--color-hearth-bronze);
  text-decoration: none;
  transition: color var(--transition-fast);
  word-break: break-word;
}

.contact-card__link:hover {
  color: var(--color-hearth-gold);
}

.contact-card__address {
  font-style: normal;
  color: var(--color-pure-white);
  font-size: 16px;
  line-height: 1.6;
}

/* Venue Highlights */
.venue-highlights-section {
  background-color: var(--color-obsidian);
}

.venue-highlights-section__header {
  margin-block-end: var(--space-6);
}

.venue-highlights-section__header h2 {
  margin-block-end: var(--space-3);
}

.venue-highlights-section__header p {margin-block-end: 0;
}

.venue-highlights-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-4);
}

.venue-highlight-card {
  background-color: var(--surface-card);
  border: var(--border-subtle);
  border-radius: var(--radius-sharp);
  padding: var(--space-4);
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  min-width: 0;
  transition: transform var(--transition-fast);
}

.venue-highlight-card:hover {
  transform: scale(1.02);
}

.venue-highlight-card__icon {
  color: var(--color-hearth-bronze);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border: var(--border-subtle);
  border-radius: var(--radius-circle);
  margin-block-end: var(--space-2);
}

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

.venue-highlight-card h3 {
  margin-block-end: 0;
  font-size: 24px;
}

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

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

.venue-highlight-card li {
  position: relative;
  padding-inline-start: var(--space-4);
  color: rgba(255, 255, 255, 0.85);
  font-size: 14px;
  line-height: 1.5;
}

.venue-highlight-card li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.65em;
  width: 6px;
  height: 6px;
  background-color: var(--color-hearth-bronze);
  border-radius: var(--radius-circle);
}

/* Reservation Process */
.process-section {
  background-color: var(--color-obsidian-light);
}

.process-section__inner {
  max-width: 800px;
}

.process-section__inner .overline {
  margin-block-end: var(--space-2);
}

.process-section h2 {
  margin-block-end: var(--space-3);
}

.process-section__lead {
  max-width: 50em;
  margin-block-end: var(--space-5);
}

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

.process-step {
  display: flex;
  align-items: flex-start;
  gap: var(--space-4);
  padding-block-end: var(--space-4);
  border-bottom: var(--border-subtle);
}

.process-step:last-child {
  border-bottom: none;
  padding-block-end: 0;
}

.process-step__number {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border: var(--border-bronze);
  border-radius: var(--radius-circle);
  color: var(--color-hearth-bronze);
  font-family: var(--font-heading);
  font-size: 24px;
  line-height: 1;
}

.process-step__content {
  min-width: 0;
}

.process-step__content h3 {
  margin-block-end: var(--space-2);
  font-size: 24px;
}

.process-step__content p {margin-block-end: 0;
}

/* Privacy Assurance */
.privacy-section {
  background-color: var(--color-obsidian);
}

.privacy-section__inner {
  max-width: 800px;
}

.privacy-card {
  background-color: var(--surface-card);
  border: var(--border-bronze);
  border-radius: var(--radius-sharp);
  padding: var(--space-4);
  display: flex;
  align-items: flex-start;
  gap: var(--space-4);
}

.privacy-card__icon {
  flex-shrink: 0;
  color: var(--color-hearth-bronze);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border: var(--border-subtle);
  border-radius: var(--radius-circle);
}

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

.privacy-card__content {
  min-width: 0;
}

.privacy-card__content .overline {
  margin-block-end: var(--space-2);
}

.privacy-card__content h2 {
  margin-block-end: var(--space-3);
}

.privacy-card__content p {margin-block-end: 0;
}

/* Final CTA */
.final-cta-section {
  background-color: var(--color-obsidian-light);
  border-top: 1px solid var(--color-hearth-bronze);
}

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

.final-cta-section__inner .overline {
  margin-block-end: 0;
}

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

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

.final-cta-section__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-4);
  justify-content: center;
}

.final-cta-section__actions .btn {
  min-width: 160px;
}

/* Tablet */
@media (max-width: 1024px) {
  .contact-section {
    padding-block: var(--section-padding-tablet);
  }

  .contact-hero {
    padding-block: var(--section-padding-tablet);
  }

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

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

/* Mobile */
@media (max-width: 768px) {
  .contact-section {
    padding-block: var(--section-padding-mobile);
  }

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

  .contact-hero h1 {
    font-size: 40px;
  }

  .contact-hero__lead {
    font-size: 16px;
  }

  .reservation-form__grid {
    grid-template-columns: 1fr;
  }

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

  .reservation-form__submit {
    width: 100%;
  }

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

  .venue-highlights-grid {
    grid-template-columns: 1fr;
    gap: var(--space-3);
  }

  .process-step {
    flex-direction: column;
    gap: var(--space-3);
  }

  .privacy-card {
    flex-direction: column;
    gap: var(--space-3);
  }

  .final-cta-section__actions {
    flex-direction: column;
    width: 100%;
  }

  .final-cta-section__actions .btn {
    width: 100%;
  }
}

@media (max-width: 480px) {
  .contact-hero h1 {
    font-size: 36px;
  }

  .contact-hero__lead {
    font-size: 16px;
  }

  .contact-section__inner,
  .contact-hero__inner {
    padding-inline: var(--space-3);
  }
}

/* Page-owned styles for features page */

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

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

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

.features-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(13, 13, 15, 0.95) 0%, rgba(13, 13, 15, 0.7) 40%, rgba(13, 13, 15, 0.3) 100%);
}

.features-hero__content {
  position: relative;
  z-index: 1;
  padding-block: var(--space-8) var(--space-9);
  width: 100%;
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--space-4);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
}

.features-hero__content .overline {
  margin-block-end: 0;
}

.features-hero__content h1 {
  max-width: 600px;
  margin-block-end: 0;
  font-size: clamp(40px, 5vw, 56px);
  line-height: 1.2;
}

.features-hero__lead {
  max-width: 600px;
  font-size: 20px;
  line-height: 1.6;
  margin-block-end: 0;
}

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

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

.features-section__header {
  margin-block-end: var(--space-6);
}

.features-section__header .overline {
  margin-block-end: var(--space-2);
}

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

/* Flagship Gaming Hall */
.features-gaming-hall__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-4);
}

.features-card {
  background-color: var(--surface-card);
  border: var(--border-subtle);
  border-radius: var(--radius-sharp);
  padding: var(--space-4);
  min-width: 0;
  transition: transform var(--transition-fast);
}

.features-card:hover {
  transform: scale(1.02);
}

.features-card h3 {
  margin-block-end: var(--space-3);
}

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

/* Live Dealer Tables */
.features-live-dealer__layout {
  display: grid;
  grid-template-columns: 60% 40%;
  gap: var(--space-6);
  align-items: start;
}

.features-live-dealer__text {
  min-width: 0;
}

.features-live-dealer__text h3 {
  margin-block-end: var(--space-3);
}

.features-live-dealer__text p {
  margin-block-end: var(--space-4);
}

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

.features-live-dealer__list li {
  line-height: 1.6;
}

.features-live-dealer__media {
  min-width: 0;
  margin-block-end: 0;
}

.features-live-dealer__media img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

/* Hearth Relaxation Lounges */
.features-lounges__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-4);
}

.features-lounge-card {
  position: relative;
  background-color: var(--surface-card);
  border: var(--border-subtle);
  border-radius: var(--radius-sharp);
  overflow: hidden;
  min-width: 0;
  transition: transform var(--transition-fast);
}

.features-lounge-card:hover {
  transform: scale(1.02);
}

.features-lounge-card__media {
  position: relative;
  aspect-ratio: 4 / 3;
  overflow: hidden;
}

.features-lounge-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.features-lounge-card__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(13, 13, 15, 0.9) 0%, rgba(13, 13, 15, 0.5) 60%, rgba(13, 13, 15, 0.2) 100%);
}

.features-lounge-card__content {
  position: relative;
  z-index: 1;
  padding: var(--space-4);
  margin-block-start: calc(-1 * var(--space-6));
}

.features-lounge-card__content h3 {
  margin-block-end: var(--space-3);
}

.features-lounge-card__content p {
  margin-block-end: 0;
}

/* Integration with Luxury Suites */
.features-suite-integration__inner {
  max-width: 800px;
  margin-inline: auto;
}

.features-suite-integration__content h3 {
  margin-block-end: var(--space-3);
}

.features-suite-integration__content p {
  margin-block-end: var(--space-4);
}

.features-suite-integration__content p:last-child {
  margin-block-end: 0;
}

/* Fine Dining Connection */
.features-dining__layout {
  display: grid;
  grid-template-columns: 60% 40%;
  gap: var(--space-6);
  align-items: start;
}

.features-dining__text {
  min-width: 0;
}

.features-dining__text h3 {
  margin-block-end: var(--space-3);
}

.features-dining__text p {
  margin-block-end: var(--space-4);
}

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

.features-dining__list li {
  line-height: 1.6;
}

.features-dining__media {
  min-width: 0;
  margin-block-end: 0;
}

.features-dining__media img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

/* Atmosphere and Design */
.features-atmosphere__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-4);
}

/* Guest Services and Amenities */
.features-services__inner {
  max-width: 800px;
  margin-inline: auto;
}

.features-services__list {
  list-style: none !important;
  padding-inline-start: 0;
  margin-block-end: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
}

.features-services__list li {
  line-height: 1.6;
}

.features-services__list h3 {
  margin-block-end: var(--space-2);
}

.features-services__list p {
  margin-block-end: 0;
}

/* Visitor Guidance and CTA */
.features-cta__inner {
  max-width: 600px;
  margin-inline: auto;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-4);
}

.features-cta__inner .overline {
  margin-block-end: 0;
}

.features-cta__inner h2 {
  margin-block-end: 0;
}

.features-cta__inner p {
  margin-block-end: 0;
}

.features-cta__button {
  margin-block-start: var(--space-2);
}

/* Responsive */
@media (max-width: 1024px) {
  .features-section {
    padding-block: var(--section-padding-tablet);
  }

  .features-hero__content {
    padding-block: var(--space-7) var(--space-8);
  }

  .features-live-dealer__layout,
  .features-dining__layout {
    grid-template-columns: 1fr;
    gap: var(--space-5);
  }

  .features-live-dealer__media,
  .features-dining__media {
    order: 2;
  }

  .features-live-dealer__text,
  .features-dining__text {
    order: 1;
  }
}

@media (max-width: 768px) {
  .features-section {
    padding-block: var(--section-padding-mobile);
  }

  .features-hero {
    min-height: 70vh;
  }

  .features-hero__content {
    padding-block: var(--space-6) var(--space-7);
    padding-inline: var(--space-3);
  }

  .features-hero__content h1 {
    font-size: 40px;
  }

  .features-hero__lead {
    font-size: 18px;
  }

  .features-gaming-hall__grid,
  .features-lounges__grid,
  .features-atmosphere__grid {
    grid-template-columns: 1fr;
  }

  .features-card,
  .features-lounge-card {
    transform: none;
  }

  .features-card:hover,
  .features-lounge-card:hover {
    transform: none;
  }
}

@media (max-width: 480px) {
  .features-hero__content h1 {
    font-size: 36px;
  }

  .features-hero__lead {
    font-size: 18px;
  }
}

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

.home-hero {
  position: relative;
  min-height: 100vh;
  display: flex;
  align-items: center;
  overflow: hidden;
  background-color: var(--color-obsidian);
  padding-block-start: var(--space-7);
}

.home-hero__media,
.home-hero__media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.home-hero__media img {
  filter: saturate(0.85);
}

.home-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(13, 13, 15, 0.82) 0%, rgba(13, 13, 15, 0.55) 55%, rgba(13, 13, 15, 0.25) 100%);
  z-index: 1;
}

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

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

.home-hero__title {
  font-size: clamp(40px, 5.5vw, 72px);
  line-height: 1.1;
  margin-block-end: 0;
  max-width: 800px;
}

.home-hero__lead {
  margin-block-end: 0;
  max-width: 600px;
  color: rgba(255, 255, 255, 0.92);
}

.home-hero__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-4);
  margin-block-start: var(--space-3);
}

.home-hero__cta {
  min-width: 200px;
}

.home-hero__secondary {
  color: var(--color-pure-white);
  font-weight: 500;
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  min-height: 44px;
  transition: color var(--transition-fast);
}

.home-hero__secondary:hover {
  color: var(--color-hearth-gold);
}

.home-hero__secondary:focus-visible {
  outline: var(--focus-ring);
  outline-offset: var(--focus-ring-offset);
}

.home-welcome {
  background-color: var(--color-obsidian);
  border-top: var(--border-subtle);
}

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

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

.home-welcome__text h2 {
  margin-block-end: var(--space-4);
}

.home-welcome__text p {}

.home-welcome__features {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-3);
  list-style: none;
  padding: 0;
  margin: 0;
  min-width: 0;
}

.home-welcome__features li {
  position: relative;
  padding-inline-start: var(--space-4);
  color: var(--color-pure-white);
  font-weight: 500;
  transition: color var(--transition-fast);
}

.home-welcome__features li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.6em;
  width: 8px;
  height: 8px;
  background-color: var(--color-hearth-bronze);
  transition: background-color var(--transition-fast);
}

.home-welcome__features li:hover {
  color: var(--color-hearth-gold);
}

.home-welcome__features li:hover::before {
  background-color: var(--color-hearth-gold);
}

.home-suites {
  background-color: var(--color-obsidian-light);
  border-top: var(--border-subtle);
}

.home-suites__header,
.home-testimonials__header,
.home-offers__header {
  margin-block-end: var(--space-6);
}

.home-suites__header h2,
.home-testimonials__header h2,
.home-offers__header h2 {
  margin-block-end: 0;
}

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

.home-suite-card {
  background-color: var(--color-obsidian);
  border: var(--border-subtle);
  border-radius: var(--radius-sharp);
  padding: var(--space-4);
  min-width: 0;
  transition: transform var(--transition-fast), border-color var(--transition-fast);
}

.home-suite-card:hover {
  transform: scale(1.02);
  border-color: var(--color-hearth-bronze);
}

.home-suite-card h3 {
  margin-block-end: var(--space-3);
}

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

.home-suites__footer,
.home-offers__footer {
  margin-block-start: var(--space-5);
}

.home-section-link {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  color: var(--color-hearth-bronze);
  font-weight: 500;
  min-height: 44px;
  transition: color var(--transition-fast);
}

.home-section-link:hover {
  color: var(--color-hearth-gold);
}

.home-section-link:focus-visible {
  outline: var(--focus-ring);
  outline-offset: var(--focus-ring-offset);
}

.home-dining {
  background-color: var(--color-obsidian);
}

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

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

.home-dining__text h2 {
  margin-block-end: var(--space-4);
}

.home-dining__text p {}

.home-dining__media {
  min-width: 0;
  overflow: hidden;
}

.home-dining__media img {
  width: 100%;
  height: auto;
  display: block;
  filter: saturate(0.85);
  transition: transform var(--transition-fast);
}

.home-dining__media:hover img {
  transform: scale(1.02);
}

.home-dining__media {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);
  gap: var(--space-4);
}

.home-dining__media img {
  width: 100%;
  height: 100%;
  min-height: 0;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.home-dining__media img:first-child {
  grid-row: span 2;
  aspect-ratio: auto;
}

.home-lounges {
  background-color: var(--color-obsidian-light);
  border-top: var(--border-subtle);
}

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

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

.home-lounges__text h2 {
  margin-block-end: var(--space-4);
}

.home-lounges__text p {}

.home-lounges__features {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  list-style: none;
  padding: 0;
  margin: 0;
  min-width: 0;
}

.home-lounges__features li {
  position: relative;
  padding-inline-start: var(--space-4);
  color: var(--color-pure-white);
  font-weight: 500;
}

.home-lounges__features li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.6em;
  width: 8px;
  height: 8px;
  background-color: var(--color-hearth-bronze);
}

.home-gaming {
  background-color: var(--color-obsidian);
}

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

.home-gaming__media {
  min-width: 0;
  overflow: hidden;
}

.home-gaming__media img {
  width: 100%;
  height: auto;
  display: block;
  filter: saturate(0.85);
  transition: transform var(--transition-fast);
}

.home-gaming__media:hover img {
  transform: scale(1.02);
}

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

.home-gaming__text h2 {
  margin-block-end: var(--space-4);
}

.home-gaming__text p {}

.home-gaming__games {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  list-style: none;
  padding: 0;
  margin: var(--space-4) 0 0;
}

.home-gaming__games li {
  color: var(--color-pure-white);
  font-weight: 500;
}

.home-gaming__games li:not(:last-child)::after {
  content: "·";
  margin-inline-start: var(--space-3);
  color: var(--color-hearth-bronze);
}

.home-testimonials {
  background-color: var(--color-obsidian-light);
  border-top: var(--border-subtle);
}

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

.home-testimonial-card {
  background-color: var(--color-obsidian);
  border: var(--border-subtle);
  border-radius: var(--radius-sharp);
  padding: var(--space-4);
  margin: 0;
  min-width: 0;
  transition: transform var(--transition-fast), border-color var(--transition-fast);
}

.home-testimonial-card:hover {
  transform: scale(1.02);
  border-color: var(--color-hearth-bronze);
}

.home-testimonial-card p {
  font-style: italic;margin-block-end: var(--space-3);
}

.home-testimonial-card footer {
  color: var(--color-hearth-bronze);
  font-weight: 500;
}

.home-offers {
  background-color: var(--color-obsidian);
}

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

.home-offer-card {
  background-color: var(--color-obsidian-light);
  border: var(--border-bronze);
  border-radius: var(--radius-sharp);
  padding: var(--space-4);
  min-width: 0;
  transition: transform var(--transition-fast), border-color var(--transition-fast);
}

.home-offer-card:hover {
  transform: scale(1.02);
  border-color: var(--color-hearth-gold);
}

.home-offer-card h3 {
  margin-block-end: var(--space-3);
}

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

.home-venue {
  background-color: var(--color-obsidian-light);
  border-top: var(--border-subtle);
}

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

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

.home-venue__details {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  width: 100%;
  max-width: 400px;
}

.home-venue__item {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
  font-style: normal;
  color: var(--color-pure-white);
  text-align: left;
}

.home-venue__link {
  color: var(--color-pure-white);
  transition: color var(--transition-fast);
}

.home-venue__link:hover {
  color: var(--color-hearth-gold);
}

.home-venue__label {
  font-size: 12px;
  line-height: 1.4;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--color-hearth-bronze);
}

.home-venue__cta {
  min-width: 200px;
}

.home-final-cta {
  background-color: var(--color-obsidian);
  border-top: var(--border-subtle);
}

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

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

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

.home-final-cta__button {
  min-width: 200px;
}

@media (max-width: 1024px) {
  .home-welcome__grid,
  .home-lounges__grid {
    grid-template-columns: 1fr;
    gap: var(--space-5);
  }

  .home-dining__grid,
  .home-gaming__grid {
    grid-template-columns: 1fr;
    gap: var(--space-5);
  }

  .home-dining__media,
  .home-gaming__media {
    order: -1;
  }

  .home-dining__media {
    min-height: 28rem;
  }

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

  .home-offers__grid {
    grid-template-columns: 1fr;
  }
}

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

  .home-hero__content {
    max-width: 100%;
    padding-block: var(--space-6);
  }

  .home-hero__actions {
    flex-direction: column;
    align-items: stretch;
    width: 100%;
  }

  .home-hero__cta,
  .home-hero__secondary {
    width: 100%;
    justify-content: center;
  }

  .home-welcome__features {
    grid-template-columns: 1fr;
  }

  .home-suites__grid,
  .home-testimonials__grid {
    grid-template-columns: 1fr;
  }

  .home-suite-card p,
  .home-testimonial-card p,
  .home-offer-card p {}
}

@media (max-width: 480px) {
  .home-dining__media {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto;
    min-height: 0;
  }

  .home-dining__media img:first-child {
    grid-column: 1 / -1;
    grid-row: auto;
    aspect-ratio: 4 / 3;
  }

  .home-hero__title {
    font-size: 36px;
  }

  .home-hero__lead {
    font-size: 16px;
  }
}

.thank-you-main {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: calc(100vh - 200px);
  padding-block: var(--space-8);
}

.thank-you-section {
  width: 100%;
}

.thank-you-content {
  max-width: 640px;
  margin-inline: auto;
  text-align: center;
  padding-inline: var(--space-4);
}

.thank-you-content .overline {
  margin-block-end: var(--space-3);
}

.thank-you-content h1 {
  margin-block-end: var(--space-4);
}

.thank-you-message {
  font-size: 20px;
  line-height: 1.6;
  margin-block-end: var(--space-4);
}

.thank-you-next {
  margin-block-end: var(--space-6);
}

.thank-you-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-4);
  justify-content: center;
}

@media (max-width: 768px) {
  .thank-you-main {
    padding-block: var(--space-6);
  }

  .thank-you-message {
    font-size: 18px;
  }

  .thank-you-actions {
    flex-direction: column;
    align-items: center;
  }

  .thank-you-actions .btn {
    width: 100%;
    max-width: 320px;
  }
}
html, body {
  overflow-x: clip;
  max-width: 100%;
}

img, video, svg {
  max-width: 100%;
  height: auto;
}
/* media-frame-fill-reassert */
.image-frame,
.media-frame,
.card__media {
  overflow: hidden;
}

.image-frame img,
.media-frame img,
.media-frame video,
.card__media img {
  width: 100%;
  height: 100%;
  max-width: none;
  min-width: 100%;
  min-height: 100%;
  object-fit: cover;
}


/* mobile-photo-center */
@media (max-width: 56.25rem) {
  img,
  video {
    object-position: center !important;
  }

  .image-frame,
  .media-frame,
  .card__media,
  [class*='__media'] {
    width: 100%;
    max-width: 100%;
    margin-inline: 0;
    justify-self: stretch;
    overflow: hidden;
    grid-column: 1 / -1;
  }

  .image-frame img,
  .media-frame img,
  .media-frame video,
  .card__media img,
  [class*='__media'] img,
  [class*='hero'] img,
  [class*='hero__image'] {
    width: 100%;
    height: 100%;
    max-width: none;
    min-width: 100%;
    min-height: 100%;
    object-fit: cover;
    object-position: center !important;
  }
}

/* cookie-banner-compact */
@media (max-width: 56.25rem) {
  .cookie-consent,
  .cookie-banner,
  .consent-banner,
  .site-consent,
  [data-cookie-consent],
  [data-consent-banner] {
    height: auto;
    min-height: 0;
    max-height: min(70dvh, calc(100dvh - 2rem));
    overflow-x: hidden;
    overflow-y: auto;
  }

  .cookie-consent__content,
  .cookie-consent__inner,
  .cookie-consent__card,
  .cookie-consent-inner,
  .cookie-banner__inner,
  .consent-banner__inner,
  .consent-banner__content,
  .consent-content,
  .site-consent__inner {
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    gap: 1rem;
    height: auto;
    min-height: 0;
  }

  .cookie-consent__text,
  .cookie-consent-text,
  .cookie-banner__copy,
  .consent-banner__text,
  .consent-banner__copy,
  .consent-content p {
    flex: 0 1 auto;
  }

  .cookie-consent__actions,
  .cookie-consent-actions,
  .cookie-banner__actions,
  .consent-banner__actions,
  .consent-actions,
  .site-consent__actions {
    flex: 0 0 auto;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    width: 100%;
    height: auto;
    min-height: 0;
    gap: 0.75rem;
  }

  .cookie-consent__actions button,
  .cookie-consent__actions .button,
  .cookie-consent__actions .btn,
  .cookie-consent-actions button,
  .cookie-consent-actions .button,
  .cookie-banner__actions button,
  .cookie-banner__actions .button,
  .consent-banner__actions button,
  .consent-banner__actions .button,
  .consent-banner__button,
  .consent-actions button,
  .consent-actions .btn,
  .consent-actions .button,
  .site-consent__actions button,
  .site-consent__actions .button {
    flex: 0 0 auto;
    width: 100%;
    height: auto;
    min-height: 44px;
    max-height: none;
    align-self: stretch;
  }
}

/* mobile-nav-overlay */
@media (max-width: 80rem) {
  .site-nav.is-open,
  .site-nav[data-nav-open],
  .site-header__nav.is-open,
  .site-navigation.is-open {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: stretch;
    align-content: flex-start;
    left: 0;
    right: 0;
    width: 100%;
    max-width: none;
    margin-inline: 0;
    padding-inline: 1.25rem;
    padding-block-start: 1.5rem;
    visibility: visible;
    overflow-y: auto;
    box-sizing: border-box;
  }

  .site-nav.is-open ul,
  .site-nav.is-open li,
  .site-nav.is-open a,
  .site-nav.is-open .btn,
  .site-nav.is-open .button,
  .site-nav[data-nav-open] ul,
  .site-nav[data-nav-open] li,
  .site-nav[data-nav-open] a,
  .site-nav[data-nav-open] .btn,
  .site-nav[data-nav-open] .button,
  .site-header__nav.is-open ul,
  .site-header__nav.is-open li,
  .site-header__nav.is-open a,
  .site-header__nav.is-open .btn,
  .site-header__nav.is-open .button,
  .site-navigation.is-open ul,
  .site-navigation.is-open li,
  .site-navigation.is-open a,
  .site-navigation.is-open .btn,
  .site-navigation.is-open .button {
    width: 100%;
    max-width: none;
    justify-content: center;
    align-items: center;
    text-align: center;
    margin-inline: 0;
  }
}

/* mobile-nav-height */
@media (max-width: 80rem) {
  .site-nav.is-open,
  .site-nav[data-nav-open],
  .site-header__nav.is-open,
  .site-navigation.is-open {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: stretch;
    position: fixed;
    top: var(--header-height, 4.5rem);
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 100;
    width: 100%;
    max-width: none;
    height: calc(100dvh - var(--header-height, 4.5rem));
    max-height: none;
    margin-inline: 0;
    visibility: visible;
    overflow-y: auto;
    box-sizing: border-box;
  }
}

/* nav-toggle-x */
.nav-toggle,
.site-header__toggle {
  position: relative;
  flex-direction: column;
}

.nav-toggle[aria-expanded="true"] span:nth-child(1),
.nav-toggle[aria-expanded="true"] .nav-toggle__line:nth-child(1),
.nav-toggle[aria-expanded="true"] .nav-toggle__bar:nth-child(1),
.nav-toggle[aria-expanded="true"] .nav-toggle-line:nth-child(1),
.nav-toggle[aria-expanded="true"] .nav-toggle-bar:nth-child(1),
.site-header__toggle[aria-expanded="true"] span:nth-child(1),
.site-header__toggle[aria-expanded="true"] .site-header__toggle-line:nth-child(1) {
  position: absolute;
  left: 50%;
  top: 50%;
  margin: 0;
  transform: translate(-50%, -50%) rotate(45deg);
  transform-origin: center;
}

.nav-toggle[aria-expanded="true"] span:nth-child(2),
.nav-toggle[aria-expanded="true"] .nav-toggle__line:nth-child(2),
.nav-toggle[aria-expanded="true"] .nav-toggle__bar:nth-child(2),
.nav-toggle[aria-expanded="true"] .nav-toggle-line:nth-child(2),
.nav-toggle[aria-expanded="true"] .nav-toggle-bar:nth-child(2),
.site-header__toggle[aria-expanded="true"] span:nth-child(2),
.site-header__toggle[aria-expanded="true"] .site-header__toggle-line:nth-child(2) {
  opacity: 0;
}

.nav-toggle[aria-expanded="true"] span:nth-child(3),
.nav-toggle[aria-expanded="true"] .nav-toggle__line:nth-child(3),
.nav-toggle[aria-expanded="true"] .nav-toggle__bar:nth-child(3),
.nav-toggle[aria-expanded="true"] .nav-toggle-line:nth-child(3),
.nav-toggle[aria-expanded="true"] .nav-toggle-bar:nth-child(3),
.site-header__toggle[aria-expanded="true"] span:nth-child(3),
.site-header__toggle[aria-expanded="true"] .site-header__toggle-line:nth-child(3) {
  position: absolute;
  left: 50%;
  top: 50%;
  margin: 0;
  transform: translate(-50%, -50%) rotate(-45deg);
  transform-origin: center;
}
