/* Project-specific accessibility, legal and mobile refinements. */
html { scroll-behavior: smooth; overflow-x: hidden; }
body { overflow-x: hidden; }
section[id] { scroll-margin-top: 86px; }
img { max-width: 100%; }

/* Use a local/system font stack; no external font requests are required. */
body, input, textarea, button, .mbr-fonts-style,
.display-1, .display-2, .display-4, .display-5, .display-7 {
  font-family: "Segoe UI", Arial, Helvetica, sans-serif !important;
}

/* Fixed navigation: keep burger visible and correctly aligned on mobile. */
#site-header .navbar-toggler {
  position: relative;
  z-index: 1102;
  width: 44px;
  height: 44px;
  padding: 8px;
  margin: 0;
  align-items: center;
  justify-content: center;
}
#site-header .navbar-toggler:focus { box-shadow: 0 0 0 0.15rem rgba(46,41,78,.22); }
#site-header .navbar-toggler .hamburger { width: 26px; height: 20px; position: relative; }
#site-header .navbar-toggler .hamburger span { left: 0; width: 100%; }

@media (max-width: 991.98px) {
  #site-header .navbar > .container { min-height: 72px; align-items: center; }
  #site-header .navbar-toggler { display: inline-flex !important; }
  #site-header .navbar-collapse {
    max-height: calc(100vh - 76px);
    overflow-y: auto;
    overscroll-behavior: contain;
  }
  #site-header .navbar-nav { width: 100%; }
  #site-header .navbar-buttons { width: 100%; padding-top: .5rem; }
  #site-header .navbar-buttons .btn { width: 100%; margin-left: 0; margin-right: 0; }
}
@media (max-width: 575.98px) {
  #site-header .navbar-brand { max-width: calc(100% - 60px); }
  #site-header .navbar-logo img { height: 3.4rem !important; }
  #site-header .navbar-caption { font-size: .95rem !important; overflow-wrap: anywhere; }
  #home, #entertainment, #atmosphere { min-height: 72vh !important; }
}

/* Legal business information block. */
.site-legal-block {
  margin-top: 2rem;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(255,255,255,.22);
  color: #fff;
}
.site-legal-title {
  margin: 0 0 1rem;
  font-weight: 700;
  text-align: center;
}
.site-legal-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: .45rem 1.5rem;
  max-width: 980px;
  margin: 0 auto;
}
.site-legal-grid p, .site-legal-note {
  margin: 0;
  font-size: .9rem;
  line-height: 1.55;
  overflow-wrap: anywhere;
}
.site-legal-note {
  max-width: 980px;
  margin: 1rem auto 0;
  opacity: .82;
  text-align: center;
}
@media (max-width: 767.98px) {
  .site-legal-grid { grid-template-columns: 1fr; gap: .35rem; text-align: left; }
  .site-legal-block { padding-left: .25rem; padding-right: .25rem; }
}

/* Legal pages */
.legal-page { padding: 9rem 0 5rem; background: #fff; color: #232323; min-height: 70vh; }
.legal-page .legal-wrap { width: min(920px, calc(100% - 32px)); margin: 0 auto; }
.legal-page h1 { margin-bottom: 1.25rem; font-size: clamp(2rem, 5vw, 3.5rem); }
.legal-page h2 { margin: 2rem 0 .75rem; font-size: clamp(1.25rem, 3vw, 1.75rem); }
.legal-page p, .legal-page li { line-height: 1.75; overflow-wrap: anywhere; }
.legal-page a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.legal-page .legal-card { padding: 1.25rem; background: #f6f6f7; border-radius: 8px; margin: 1.25rem 0; }
.legal-page .legal-warning { border-left: 4px solid #ffd400; padding-left: 1rem; }

/* Footer links should remain readable and never default to browser blue. */
#site-footer a { color: #fff !important; text-decoration: none; }
#site-footer a:hover, #site-footer a:focus { text-decoration: underline; text-underline-offset: 4px; }

/* Content polishing without changing the existing layout. */
#rooms .seo-room-intro { max-width: 760px; margin-left: auto; margin-right: auto; }
.form-control:focus { box-shadow: 0 0 0 .15rem rgba(46,41,78,.16); }
