html {
  overflow-x: clip;
}

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

body.menu-open {
  overflow: hidden;
}

img,
svg,
video,
canvas {
  max-width: 100%;
}

img {
  height: auto;
}

main,
section,
article,
header,
footer,
nav,
form,
fieldset,
div {
  min-width: 0;
}

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

.contact-static {
  cursor: text;
}

.navigation-desktop-nav a.active,
.navigation-mobile-nav a.active {
  color: var(--color-primary);
  font-weight: 600;
}

.navigation-mobile-overlay[aria-hidden="true"] {
  visibility: hidden;
}

.navigation-mobile-overlay.is-active {
  visibility: visible;
}

:focus-visible {
  outline: 3px solid var(--color-accent);
  outline-offset: 3px;
}

.reveal-ready {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.5s ease, transform 0.5s ease;
}

.reveal-ready.reveal-visible {
  opacity: 1;
  transform: translateY(0);
}

.contact-form__status {
  margin-top: 0.75rem;
  color: var(--color-on-surface-secondary);
  font-size: 0.9rem;
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

@media (max-width: 768px) {
  :root {
    --spacing-3xl: 2.5rem;
    --spacing-4xl: 3rem;
  }

  h1,
  .hero-title {
    font-size: 2.25rem !important;
    line-height: 1.14 !important;
  }

  h2,
  .section-title {
    font-size: 1.8rem !important;
    line-height: 1.22 !important;
  }

  .btn,
  a[class*="link"] > div[class*="btn"],
  .contact-form__submit {
    max-width: 100%;
    white-space: normal;
    text-align: center;
  }

  .contact-form__grid {
    grid-template-columns: 1fr !important;
  }

  .footer-container,
  .section-container,
  .hero-container,
  .services-hero-container,
  .responsible-gaming-container,
  .concierge-support-container {
    width: 100%;
    max-width: 100%;
    padding-left: 1rem !important;
    padding-right: 1rem !important;
  }

  .events-rail {
    flex-direction: column;
    padding-left: 1rem;
    padding-right: 1rem;
    overflow-x: visible;
    scroll-snap-type: none;
  }

  .event-card {
    width: 100%;
    flex: 0 0 auto;
    scroll-snap-align: none;
  }

  .casino-features-grid {
    flex-direction: column;
  }

  .casino-feature-card {
    width: 100%;
    flex: none;
  }

  .hero-btn-alt {
    color: var(--color-surface);
    border-color: var(--color-surface);
    background-color: transparent;
  }

  .footer-main-grid {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 480px) {
  h1,
  .hero-title {
    font-size: 2rem !important;
  }

  h2,
  .section-title {
    font-size: 1.65rem !important;
  }

  .hero-content,
  .services-hero-content {
    width: 100%;
    max-width: 100%;
  }

  .hero-actions,
  .services-hero-actions,
  .cta-buttons {
    width: 100%;
    flex-direction: column !important;
    align-items: stretch !important;
  }

  .hero-actions a,
  .services-hero-actions a,
  .cta-buttons a {
    width: 100%;
  }

  .hero-actions .btn,
  .services-hero-actions .btn,
  .cta-buttons .btn {
    width: 100%;
  }

}

@media (max-width: 390px) {
  h1,
  .hero-title {
    font-size: 1.8rem !important;
  }

  body {
    font-size: 0.96rem;
  }
}

@media (max-width: 320px) {
  h1,
  .hero-title {
    font-size: 1.65rem !important;
  }

  .footer-container,
  .section-container,
  .hero-container,
  .services-hero-container,
  .responsible-gaming-container,
  .concierge-support-container {
    padding-left: 0.75rem !important;
    padding-right: 0.75rem !important;
  }
}

@media (max-width: 340px) {
  .navigation-container {
    gap: 0.5rem;
    padding-left: 0.5rem !important;
    padding-right: 0.5rem !important;
  }

  .navigation-brand {
    font-size: 1rem !important;
  }

  .navigation-burger {
    padding: 0.25rem;
  }
}
