@charset "UTF-8";

/* Shared responsive layer, loaded after every page stylesheet. */
html {
  overflow-x: hidden;
  scroll-padding-top: calc(var(--nav-height) + var(--ribbon-height) + 1rem);
}

body {
  min-width: 0;
  overflow-x: clip;
}

main,
section,
.container,
.card,
form,
fieldset,
header,
footer,
nav,
aside,
article,
figure,
div {
  min-width: 0;
}

p,
h1,
h2,
h3,
h4,
h5,
h6,
li,
dd,
dt,
a,
label,
span {
  overflow-wrap: anywhere;
}

iframe,
table {
  max-width: 100%;
}

.btn,
button,
input,
select,
textarea {
  min-height: 44px;
}

.btn {
  max-width: 100%;
  text-align: center;
  line-height: 1.3;
}

input,
select,
textarea {
  min-width: 0;
}

@media (max-width: 1100px) {
  :root {
    --container-max: 100%;
  }

  .container {
    padding-inline: clamp(1.25rem, 3vw, 2rem);
  }

  .nav-list {
    gap: 1.15rem;
    font-size: 0.76rem;
    letter-spacing: 0.1em;
  }
}

@media (max-width: 900px) {
  :root {
    --nav-height: 68px;
  }

  .site-header__inner {
    position: relative;
  }

  .site-nav {
    position: static;
  }

  .nav-list {
    max-height: calc(100dvh - var(--nav-height) - var(--ribbon-height));
    gap: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
  }

  .nav-list li {
    width: 100%;
  }

  .nav-link {
    display: flex;
    width: 100%;
    min-height: 48px;
    align-items: center;
    border-bottom: 1px solid rgba(192, 180, 150, 0.3);
  }

  .nav-link::after {
    display: none;
  }

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

  .nav-toggle[aria-expanded="true"] span:nth-child(2) {
    opacity: 0;
  }

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

  .home-facts__inner {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
  }

  .footer__top {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  }
}

@media (max-width: 767px) {
  :root {
    --nav-height: 64px;
    --space-12: 3rem;
  }

  body {
    font-size: 0.96rem;
  }

  .container {
    padding-inline: max(1rem, env(safe-area-inset-left));
  }

  .section {
    padding-block: clamp(2.5rem, 10vw, 3.5rem);
  }

  h1,
  .home-hero__title {
    font-size: clamp(2rem, 9vw, 2.65rem);
    line-height: 1.12;
  }

  h2 {
    font-size: clamp(1.65rem, 7vw, 2.05rem);
  }

  h3 {
    font-size: clamp(1.25rem, 5.5vw, 1.6rem);
  }

  p {
    line-height: 1.7;
  }

  .page-hero {
    padding-block: 2.25rem;
  }

  .page-hero__kicker,
  .index-label,
  .card-meta {
    letter-spacing: 0.14em;
  }

  .page-hero__meta {
    line-height: 1.65;
  }

  .card,
  .menu-card {
    padding: 1.35rem;
    border-radius: 16px;
  }

  .home-hero {
    padding-block: 2.25rem 3.25rem;
  }

  .home-hero__grid,
  .menu-hero__grid,
  .vip-intro__grid,
  .events-hero__grid {
    gap: 2rem;
  }

  .home-hero__badge {
    width: 100%;
    border-radius: var(--radius-lg);
    line-height: 1.55;
  }

  .home-hero__lead,
  .events-hero__lead {
    font-size: 1rem;
  }

  .home-hero__actions,
  .menu-hero__actions,
  .events-hero__actions,
  .vip-intro__actions,
  .vip-events__actions,
  .casino-layout__cta,
  .casino-gourmet__cta,
  .casino-vip__cta,
  .casino-brand__cta,
  .casino-reservation__actions,
  .events-vip__cta,
  .reservation-cta__actions,
  .legal-cta__actions,
  .menu-card__cta-row {
    gap: 0.75rem;
  }

  .home-hero__highlights {
    width: 100%;
    max-width: none;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.7rem;
    padding: 0.9rem;
  }

  .hero-highlight-divider {
    display: none;
  }

  .hero-highlight-lbl {
    font-size: 0.62rem;
    letter-spacing: 0.06em;
  }

  .home-hero__floating-card {
    position: relative;
    bottom: auto;
    left: auto;
    width: calc(100% - 1rem);
    margin: -1.1rem auto 0;
  }

  .home-hero__seal {
    top: 0.75rem;
    right: 0.75rem;
    width: 82px;
    height: 82px;
  }

  .home-hero__seal-inner {
    width: 64px;
    height: 64px;
  }

  .seal-brand {
    font-size: 0.58rem;
  }

  .home-hero__caption,
  .menu-hero__caption,
  .home-section__caption {
    letter-spacing: 0.1em;
    line-height: 1.55;
  }

  .home-facts__inner {
    grid-template-columns: 1fr;
    gap: 0;
    padding-block: 0.4rem;
  }

  .home-fact {
    width: 100%;
    min-height: 42px;
    padding-block: 0.55rem;
    border-bottom: 1px solid rgba(192, 180, 150, 0.32);
    line-height: 1.45;
  }

  .home-fact:last-child {
    border-bottom: 0;
  }

  .home-section__grid,
  .home-team__grid,
  .home-booking__grid,
  .home-compliance__card,
  .menu-card--media,
  .casino-brand__grid,
  .casino-reservation__grid,
  .events-lounge__grid,
  .events-location__grid,
  .vip-menu-casino__grid,
  .reservation-form__grid,
  .legal-grid,
  .legal-layout {
    gap: var(--space-6);
  }

  .home-section__links,
  .home-booking__cta {
    width: 100%;
  }

  .home-testimonials__grid,
  .events-testimonials__grid,
  .reservation-faq__grid,
  .vip-flow__grid {
    gap: var(--space-5);
  }

  .menu-cta__inner,
  .reservation-cta__inner,
  .legal-cta__inner {
    padding: 1.35rem;
  }

  .menu-cta__actions,
  .legal-cta__actions {
    min-width: 0;
  }

  .reservation-contact__row,
  .reservation-hours__item {
    gap: var(--space-2);
  }

  .reservation-contact__label {
    min-width: 0;
  }

  .age-gate-modal-backdrop {
    padding: 1rem;
  }

  .age-gate-modal {
    width: 100%;
    max-height: calc(100dvh - 2rem);
    overflow-y: auto;
    padding: 1.4rem;
    border-radius: 18px;
  }

  .cookie-banner {
    padding-inline: 0.75rem;
    padding-bottom: env(safe-area-inset-bottom);
  }

  .cookie-banner__inner {
    width: 100%;
    margin-bottom: 0.75rem;
    padding: 1rem;
  }

  .cookie-banner__actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem;
  }

  .cookie-banner__btn {
    width: 100%;
    padding-inline: 0.75rem;
  }

  .footer {
    padding-block: 2.25rem calc(2rem + env(safe-area-inset-bottom));
  }

  .footer__top,
  .footer__links {
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
    gap: 1.75rem;
  }

  .footer__column {
    min-width: 0;
  }

  .footer__nav a {
    display: flex;
    align-items: center;
    min-height: 40px;
  }
}

@media (max-width: 540px) {
  .rt-ribbon {
    padding: 0.45rem 0.75rem;
    font-size: 0.64rem;
    letter-spacing: 0.08em;
    line-height: 1.45;
  }

  .rt-ribbon__inner {
    align-items: flex-start;
    text-align: left;
  }

  .rt-ribbon__dot {
    margin-top: 0.4rem;
  }

  .rt-brand {
    gap: 0.6rem;
  }

  .rt-brand__monogram {
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
  }

  .rt-brand__title {
    font-size: 1.12rem;
  }

  .rt-brand__tagline {
    max-width: 180px;
    font-size: 0.56rem;
    letter-spacing: 0.1em;
  }

  .nav-toggle {
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
  }

  .nav-list {
    padding: 0.75rem 1rem 1rem;
  }

  .btn,
  .btn-hero-primary,
  .btn-hero-outline {
    width: 100%;
    padding: 0.85rem 1rem;
    white-space: normal;
  }

  .home-hero__actions,
  .menu-hero__actions,
  .events-hero__actions,
  .vip-intro__actions,
  .vip-events__actions,
  .casino-layout__cta,
  .casino-gourmet__cta,
  .casino-vip__cta,
  .casino-brand__cta,
  .casino-reservation__actions,
  .events-vip__cta,
  .reservation-cta__actions,
  .legal-cta__actions,
  .menu-card__cta-row,
  .age-gate-modal__actions {
    width: 100%;
    flex-direction: column;
    align-items: stretch;
  }

  .home-hero__highlights {
    grid-template-columns: 1fr;
  }

  .hero-highlight-item {
    padding-bottom: 0.65rem;
    border-bottom: 1px solid rgba(192, 180, 150, 0.35);
  }

  .hero-highlight-item:last-of-type {
    padding-bottom: 0;
    border-bottom: 0;
  }

  .home-hero__seal,
  .menu-hero__seal {
    transform: scale(0.82);
    transform-origin: top right;
  }

  .menu-cta__actions,
  .thankyou-primary {
    width: 100%;
    min-width: 0;
  }

  .thankyou-links {
    flex-direction: column;
  }

  .cookie-banner__actions {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 360px) {
  .rt-brand__tagline {
    display: none;
  }

  .container {
    padding-inline: 0.875rem;
  }

  .card,
  .menu-card,
  .menu-cta__inner,
  .reservation-cta__inner,
  .legal-cta__inner {
    padding: 1.1rem;
  }
}
