.site-footer { background: var(--color-atlantic-ink); color: var(--color-linen); }

.site-footer__scene { position: relative; isolation: isolate; overflow: hidden; }
.site-footer__scene-image { position: absolute; z-index: -2; inset: 0; background: linear-gradient(rgba(9,27,33,.55), rgba(9,27,33,.9)), url('/src/media/card-room-private-table.webp') center / cover no-repeat, var(--color-mulberry); }
.site-footer__scene::after { position: absolute; z-index: -1; inset: 0; background: rgba(9,27,33,.38); content: ""; }

.site-footer__inner { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: clamp(var(--space-7), 8vw, var(--space-10)); padding-block: var(--space-10) var(--space-8); }
.site-footer__intro { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-5); }
.site-footer__intro > * { margin: 0; }
.site-footer__eyebrow { color: var(--color-sandstone); font-size: var(--text-utility); font-weight: 600; letter-spacing: var(--tracking-utility); text-transform: uppercase; }
.site-footer__intro h2 { max-inline-size: 10ch; font-size: clamp(2.7rem, 5vw, 4.5rem); }
.site-footer__intro p:not(.site-footer__eyebrow) { max-inline-size: 39ch; color: var(--color-text-muted); }
.site-footer__cta { margin-block-start: var(--space-2); }

.site-footer__table-nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-content: start; border-block-start: 1px solid var(--color-border); }
.site-footer__table-nav a { display: flex; align-items: center; gap: var(--space-3); min-block-size: 4.5rem; border-block-end: 1px solid var(--color-border); color: var(--color-linen); font-size: var(--text-utility); font-weight: 600; letter-spacing: var(--tracking-utility); text-decoration: none; text-transform: uppercase; }
.site-footer__table-nav a:nth-child(odd) { border-inline-end: 1px solid var(--color-border); padding-inline-end: var(--space-4); }
.site-footer__table-nav a:nth-child(even) { padding-inline-start: var(--space-4); }
.site-footer__table-nav a:hover { color: var(--color-sandstone); }
.site-footer__table-number { display: grid; flex: 0 0 auto; place-items: center; inline-size: 2rem; block-size: 2rem; border: 1px solid var(--color-copper-rose); border-radius: 50%; color: var(--color-sandstone); font-size: 0.6rem; letter-spacing: 0; transition: background-color var(--transition-fast), color var(--transition-fast), transform var(--transition-fast); }
.site-footer__table-nav a:hover .site-footer__table-number { background: var(--color-copper-rose); color: var(--color-atlantic-ink); transform: rotate(4deg); }

.site-footer__contact { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: var(--space-2); margin: 0; padding-block-start: var(--space-6); border-block-start: 1px solid var(--color-border); color: var(--color-text-muted); font-size: var(--text-meta); font-style: normal; }
.site-footer__contact a { color: var(--color-linen); }

.site-footer__legal { border-block-start: 1px solid var(--color-border); background: var(--color-deep-atlantic); }
.site-footer__legal-inner { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--space-4); padding-block: var(--space-5); }
.site-footer__legal p { margin: 0; color: var(--color-text-muted); font-size: var(--text-utility); }
.site-footer__legal nav { display: flex; flex-wrap: wrap; gap: var(--space-4); }
.site-footer__legal a { font-size: var(--text-utility); text-decoration: none; }

.site-consent { position: fixed; z-index: 90; inset: auto var(--gutter) var(--gutter); max-inline-size: 48rem; margin-inline: auto; border: 1px solid var(--color-border-strong); background: var(--color-smoked-glass); box-shadow: var(--shadow-elevation); backdrop-filter: blur(14px); }
.site-consent[hidden] { display: none !important; }
.site-consent__inner { display: flex; align-items: center; justify-content: space-between; gap: var(--space-5); padding: var(--space-4); }
.site-consent__inner p { max-inline-size: 47ch; margin: 0; font-size: var(--text-meta); line-height: var(--leading-meta); }
.site-consent__actions { display: flex; flex: 0 0 auto; gap: var(--space-2); }
.site-consent__button { min-inline-size: auto; padding-inline: var(--space-3); }

.site-age-modal { position: fixed; z-index: 120; inset: 0; display: grid; place-items: center; overflow-y: auto; padding: var(--gutter); background: rgba(9, 27, 33, .93); }
.site-age-modal[hidden] { display: none !important; }
.site-age-modal__panel { inline-size: min(100%, 34rem); padding: clamp(var(--space-5), 6vw, var(--space-7)); border: 1px solid var(--color-border-strong); background: var(--color-deep-atlantic); box-shadow: var(--shadow-elevation), var(--shadow-inset-rule); }
.site-age-modal__panel > * { margin: 0; }
.site-age-modal__panel { display: flex; flex-direction: column; gap: var(--space-5); }
.site-age-modal__eyebrow { color: var(--color-sandstone); font-size: var(--text-utility); font-weight: 600; letter-spacing: var(--tracking-utility); text-transform: uppercase; }
.site-age-modal__panel h2 { font-size: clamp(2.4rem, 6vw, 3.5rem); }
.site-age-modal__panel p:not(.site-age-modal__eyebrow) { color: var(--color-text-muted); }
.site-age-modal__actions { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-3); }
.site-age-modal__actions .button { min-inline-size: 0; }

@media (max-width: 700px) {
  .site-footer__inner { grid-template-columns: 1fr; gap: var(--space-7); padding-block: var(--space-8); }
  .site-footer__intro h2 { max-inline-size: 12ch; }
  .site-footer__table-nav { grid-template-columns: 1fr; }
  .site-footer__table-nav a:nth-child(odd) { border-inline-end: 0; padding-inline-end: 0; }
  .site-footer__table-nav a:nth-child(even) { padding-inline-start: 0; }
  .site-footer__contact { grid-column: auto; flex-direction: column; gap: var(--space-2); }
  .site-footer__contact span[aria-hidden="true"] { display: none; }
  .site-footer__legal-inner { flex-direction: column; }
  .site-consent { inset-inline: var(--gutter); }
  .site-consent__inner { align-items: stretch; flex-direction: column; }
  .site-consent__actions { flex-direction: column; }
  .site-consent__button { inline-size: 100%; }
  .site-age-modal__actions { grid-template-columns: 1fr; }
}
