/* Local responsive and accessibility safeguards. */
html,
body {
  width: 100%;
  max-width: 100%;
  overflow-x: clip;
}

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

main {
  display: block;
  width: 100%;
}

img {
  max-width: 100%;
}

address.regal-footer-value {
  font-style: normal;
}

.contact-static {
  cursor: text;
}

.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.navigation-hamburger:focus-visible,
.navigation-close:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 3px;
  border-radius: var(--border-radius-sm);
}

.regal-footer-form,
.regal-footer-input-group,
.contact-form,
.legal-form,
.culinary-hero-form {
  max-width: 100%;
}

.regal-footer-input,
.form-input,
.form-textarea,
textarea,
input,
select {
  box-sizing: border-box;
  max-width: 100%;
}

.regal-footer-legal-info,
.regal-footer-legal-links {
  min-width: 0;
  flex-wrap: wrap;
}

@media (max-width: 767px) {
  h1,
  .hero-title,
  .gallery-hero-statement,
  .spa-hero-headline {
    font-size: clamp(2rem, 9vw, 3rem) !important;
    line-height: 1.08 !important;
  }

  h2,
  .section-title {
    font-size: clamp(1.55rem, 7vw, 2.15rem) !important;
    line-height: 1.15 !important;
  }

  h3 {
    font-size: clamp(1.15rem, 5.5vw, 1.5rem) !important;
    line-height: 1.2 !important;
  }

  .navigation-bar {
    width: 100%;
    max-width: 100%;
    padding-inline: max(var(--spacing-md), env(safe-area-inset-left));
  }

  .navigation-logo,
  .company-logo-light,
  .company-logo-text-group {
    max-width: 100%;
    min-width: 0;
  }

  .company-logo-name,
  .company-logo-sub {
    max-width: min(64vw, 280px);
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .hero-regal-container,
  .intro-mission-panel,
  .why-us-split,
  .gallery-hero-content,
  .experience-content-row,
  .legal-panel,
  .rooms-contact-grid,
  .culinary-hero-split,
  .culinary-spotlight-main,
  .culinary-mission-grid,
  .spa-details-grid,
  .legal-grid {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .regal-footer-grid {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .regal-footer-bottom,
  .regal-footer-legal-info,
  .regal-footer-legal-links,
  .culinary-hero-input-group {
    width: 100%;
  }

  .regal-footer-input-group {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .form-field,
  .form-check,
  .legal-section,
  .legal-intro {
    width: 100%;
    min-width: 0;
  }
}

@media (max-width: 479px) {
  .navigation-bar {
    padding-inline: var(--spacing-sm);
  }

  .company-logo-name {
    font-size: 0.9rem !important;
  }

  .company-logo-sub {
    max-width: 48vw;
    font-size: 0.46rem !important;
    letter-spacing: 0.22em !important;
  }

  .regal-footer-input-group {
    grid-template-columns: minmax(0, 1fr) 44px;
  }

  .btn,
  button,
  a.navigation-cta {
    white-space: normal;
  }
}

.not-found-home {
  margin-top: 1rem;
}
