/* Local final-pass fixes: preserve the original visual system while improving accessibility and responsive behaviour. */
html, body { width: 100%; max-width: 100%; overflow-x: clip; }
body { font-family: var(--font-family-body); }
main { display: block; width: 100%; overflow-x: clip; }
img { max-width: 100%; }
.navigation-brand, .navigation-mobile-toggle, .navigation-mobile-close, .btn, a { outline-offset: 3px; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, [role="button"]:focus-visible {
  outline: 3px solid var(--color-secondary);
  outline-offset: 3px;
}
.footer-copyright, .footer-notice-text { color: rgba(255,255,255,.78); }
.footer-description, .footer-nav-link, .footer-nav-static, .footer-contact-item span { color: rgba(255,255,255,.82); }
.footer-legal-links { display:flex; flex-wrap:wrap; gap:12px 20px; justify-content:center; font-size:14px; }
.footer-legal-links a { color: rgba(255,255,255,.86); text-decoration: underline; text-underline-offset: 3px; }
.footer-legal-links a:hover, .footer-legal-links a:focus-visible { color:#fff; }
.form-error { border-color:#b42318 !important; box-shadow:0 0 0 2px rgba(180,35,24,.16); }
.form-error-message { color:#b42318; font-size:13px; margin-top:4px; }
.form-success-dialog { border:0; border-radius:16px; padding:0; width:min(92vw,520px); background:var(--color-surface); color:var(--color-on-surface); box-shadow:var(--shadow-level-3); }
.form-success-dialog::backdrop { background:rgba(0,0,0,.62); }
.form-success-dialog__inner { padding:32px; text-align:center; display:flex; flex-direction:column; gap:16px; align-items:center; }
.form-success-dialog__close { min-width:140px; }
.quick-enquiry__card[role="button"] { user-select:none; }

/* Keep the footer surface clean: the original 40%-wide overlay created a hard seam. */
.footer::before {
  display: none;
}
.footer-container,
.footer-divider,
.footer-bottom {
  position: relative;
  z-index: 1;
}

/* Centre standalone section introductions and finite horizontal card rows. */
.casino-events-header,
.services-guest-services-header,
.casino-highlights__header {
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}
.casino-events-rail,
.casino-highlights__rail {
  width: max-content;
  max-width: 100%;
  margin-inline: auto;
  box-sizing: border-box;
}

/* Home gallery: a deliberate, balanced grid instead of uneven CSS columns. */
.evening-gallery {
  padding: clamp(24px, 3vw, 48px) !important;
}
.evening-gallery__masonry {
  width: min(100%, 1440px);
  margin-inline: auto;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(12px, 1.25vw, 20px);
  columns: initial;
}
.evening-gallery__item {
  min-width: 0;
  margin: 0;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  border-radius: 10px;
  background: rgba(255,255,255,.05);
}
.evening-gallery__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  border-radius: inherit;
  transition: transform .45s ease, filter .45s ease;
}
@media (hover: hover) {
  .evening-gallery__item:hover .evening-gallery__img {
    transform: scale(1.025);
    filter: grayscale(0%);
  }
}

/* Use the same balanced treatment for the About and Contact galleries. */
.gallery-masonry,
.contact-gallery__masonry {
  width: min(100%, 1440px);
  margin-inline: auto;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(12px, 1.25vw, 20px);
  columns: initial;
}
.gallery-masonry {
  padding-inline: clamp(14px, 2vw, 32px);
}
.gallery-item,
.contact-gallery__item,
.contact-gallery__item--tall {
  min-width: 0;
  margin: 0;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  border-radius: 10px;
  background: rgba(18,39,58,.06);
}
.gallery-img,
.contact-gallery__image {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center;
  border-radius: inherit;
  transition: transform .45s ease, opacity .45s ease;
}
@media (hover: hover) {
  .gallery-item:hover .gallery-img,
  .contact-gallery__item:hover .contact-gallery__image {
    transform: scale(1.025);
  }
}

@media (max-width: 900px) {
  .evening-gallery__masonry,
  .gallery-masonry,
  .contact-gallery__masonry {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  .hero-title {
    max-width: 100%;
    font-size: clamp(26px, 8vw, 32px) !important;
    line-height: 1.15 !important;
    text-align: center !important;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
  }
  .section-title {
    max-width: 100%;
    font-size: clamp(24px, 7vw, 28px) !important;
    line-height: 1.22 !important;
    text-align: center !important;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
  }
  .contact-hero__content .hero-title {
    font-size: clamp(20px, 6vw, 24px) !important;
    line-height: 1.2 !important;
  }
  .navigation-container > a,
  .navigation-overlay-header > a {
    min-width: 0;
  }
  .navigation-brand {
    min-width: 0;
    max-width: 100%;
  }
  .navigation-logo-text.section-title {
    max-width: 100%;
    font-size: clamp(13px, 4vw, 18px) !important;
    line-height: 1.1 !important;
    letter-spacing: .06em;
    text-align: left !important;
    white-space: nowrap;
  }
  .navigation-mobile-toggle,
  .navigation-mobile-close {
    flex: 0 0 auto;
    margin-left: 12px;
  }
  .cta-banner-track,
  .cta-banner-content {
    width: 100%;
    white-space: normal;
  }
  .cta-banner-content {
    gap: 12px;
    padding: 0 18px;
    flex-direction: column;
    justify-content: center;
    text-align: center;
  }
  .cta-text {
    max-width: 32ch;
    font-size: 20px;
    line-height: 1.3;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
  }
  .cta-separator,
  .cta-banner-content .about-us-navlink ~ * {
    display: none;
  }
  .btn {
    max-width: 100%;
    white-space: normal;
  }
  .section-subtitle, h3 {
    max-width: 100%;
    font-size: 20px !important;
    line-height: 1.3 !important;
    text-align: center;
    overflow-wrap: anywhere;
  }
  .footer-logo,
  .footer-nav-static,
  .footer-contact-item span {
    max-width: 100%;
    overflow-wrap: anywhere;
  }
  h4, h5, h6 { text-align:center; }
  .hero-subtitle { text-align:center; }
  .enquiry-form__row { flex-direction:column !important; }
  .enquiry-form__group, .enquiry-form__input, .enquiry-form__textarea, .enquiry-form__footer { width:100%; min-width:0; }
  .enquiry-form__footer { align-items:stretch !important; }
  .enquiry-form__footer .btn { width:100%; }
  .quick-enquiry__grid, .guest-services-grid, .services-guest-services-grid, .why-us__grid, .table-games-grid { grid-template-columns:1fr !important; }
  .quick-enquiry__card, .venue-details__grid, .location-info__grid, .casino-approach-featured, .hotel-experience-featured,
  .memorable-evenings-grid, .casino-floor-featured, .casino-floor-secondary, .slot-featured, .private-experiences-container,
  .stay-style__container, .getaway__wrapper { flex-direction:column !important; }
  .quick-enquiry__card {
    height: auto;
    align-self: start;
  }
  .quick-enquiry__card-media {
    width: 100%;
    height: auto !important;
    min-width: 0;
    flex: none;
    aspect-ratio: 16 / 9;
  }
  .quick-enquiry__card-content {
    flex: none;
    padding: 24px;
    align-items: center;
    text-align: center;
  }
  .footer-links-grid { grid-template-columns:1fr !important; }
  .footer-container, .footer-bottom, .enquiry-form__container, .venue-details__container, .location-info__container,
  .quick-enquiry__container, .age-notice__container { padding-left:18px !important; padding-right:18px !important; }
  main > section:not(.casino-hero):not(.about-hero):not(.services-hero):not(.contact-hero) {
    padding-top:56px !important;
    padding-bottom:56px !important;
  }
  .evening-gallery {
    padding-left: 18px !important;
    padding-right: 18px !important;
  }
}
@media (max-width: 479px) {
  .hero-title { font-size: clamp(25px, 8vw, 30px) !important; }
  .contact-hero__content .hero-title {
    font-size: clamp(19px, 5.8vw, 22px) !important;
  }
  .section-title { font-size: clamp(23px, 7vw, 26px) !important; }
  .navigation-logo-text.section-title {
    font-size: clamp(12px, 4.2vw, 16px) !important;
  }
  .section-subtitle, h3 { font-size: 19px !important; }
  .navigation-container { padding-left:16px !important; padding-right:16px !important; }
  .enquiry-form__card { padding:20px !important; }
  .evening-gallery {
    padding-left: 14px !important;
    padding-right: 14px !important;
  }
  .evening-gallery__masonry,
  .gallery-masonry,
  .contact-gallery__masonry {
    grid-template-columns: 1fr;
  }
  .evening-gallery__item,
  .gallery-item,
  .contact-gallery__item,
  .contact-gallery__item--tall {
    aspect-ratio: 16 / 10;
  }
}
