/* Small, scoped improvements that preserve the original page design. */
html { scroll-behavior: smooth; }
body { min-width: 0; }
img { max-width: 100%; }
main { display: block; width: 100%; min-width: 0; }
:where(section, article, .homepage-container1, .about-gallery-item, .gallery-tile, .club-footer-inner) { min-width: 0; }
:where(p, li, a, span) { overflow-wrap: break-word; }
.navigation-section { isolation: isolate; }
.navigation-mobile-overlay { max-width: 100vw; height: 100dvh; min-height: 100vh; overscroll-behavior: contain; }
.navigation-overlay-header { flex-shrink: 0; }
.navigation-overlay-links { width: 100%; min-width: 0; }
.navigation-hamburger, .navigation-overlay-close {
  border: 0; background: transparent; align-items: center; justify-content: center;
  min-width: 40px; min-height: 40px; flex-shrink: 0; touch-action: manipulation;
}
.navigation-hamburger:hover, .navigation-overlay-close:hover { color: var(--color-primary); }
.navigation-section.is-open .navigation-mobile-overlay { display: flex; }
.navigation-section:not(.is-open) .navigation-mobile-overlay { display: none; }
.site-menu-open { overflow: hidden; }
.navigation-overlay-link { display: inline-flex; cursor: pointer; }
.navigation-overlay-link:hover { color: var(--color-primary); }
.navigation-cta { color: var(--color-on-primary); cursor: pointer; padding: var(--spacing-sm) var(--spacing-xl);
  font-size: var(--font-size-sm); font-family: var(--font-family-body); font-weight: var(--font-weight-medium);
  white-space: nowrap; border-radius: var(--border-radius-full); background-color: var(--color-primary); text-decoration: none; }
.navigation-cta:hover { filter: brightness(1.08); }
.navigation-nav-link { cursor: pointer; }
.club-footer-legal-links { flex-wrap: wrap; row-gap: .5rem; }
.club-footer-nav-link { display: inline-block; cursor: pointer; }
.club-footer-contact-value { overflow-wrap: anywhere; }
.club-footer-legal-details { display: flex; gap: .4rem 1rem; flex-wrap: wrap;
  padding-top: 1rem; color: var(--color-on-surface-secondary); font-size: var(--font-size-xs); }
.club-footer-legal-details [data-address] { flex: 1 1 240px; }
:where(a, button, summary, input, textarea, select):focus-visible { outline: 2px solid var(--color-primary); outline-offset: 3px; }
[data-address], [data-company] { overflow-wrap: anywhere; }
@media (max-width: 767px) {
  .navigation-capsule { grid-template-columns: minmax(0,1fr) auto; gap: .5rem; }
  .navigation-brand { min-width: 0; }
  .navigation-logo-link { max-width: 100%; }
  .navigation-cta { display: none; }
  .navigation-hamburger { display: inline-flex; }
  .navigation-overlay-header { gap: .6rem; padding: 1rem clamp(1rem, 5vw, 2rem); }
  .navigation-overlay-header .navigation-logo-link { height: auto; }
  .navigation-overlay-links { padding: clamp(1.4rem,7vw,3rem) clamp(1rem, 6vw, 2rem); gap: clamp(1rem,6vw,2rem); }
  .navigation-overlay-link { font-size: clamp(1.45rem,6.5vw,1.85rem); }
  .club-footer-legal-links { gap: .9rem 1.2rem; }
  .club-footer-links-grid > *, .club-footer-inner > * { min-width: 0; }
  .homepage-container1, .abouthtml-about-the-club-container1, .facilitieshtml-courts-and-club-facilities-container1,
  .tennishtml-tennis-and-club-experiences-container1, .terms-conditions-container { min-width: 0; }
}
@media (max-width: 479px) {
  .navigation-capsule { padding: .25rem .8rem; }
  .navigation-overlay-header .company-logo-name, .navigation-brand .company-logo-name { font-size: clamp(.85rem,3.8vw,1rem); }
  .navigation-overlay-header .company-logo-tagline, .navigation-brand .company-logo-tagline { font-size: .58rem; }
  :where(.purevessa-hero h1, .about-hero h1, .tennis-hero h1, .courts-hero h1) {
    font-size: clamp(2.25rem, 9.5vw, 3rem); overflow-wrap: normal; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}

/* Shared wrapper display rules for the new pages using the original navigation/footer. */
.navigation-wrapper, .footer-wrapper, [class*="logo-wrapper"],
.navigation-container1, .footer-container1, .logo-container1, .logo-container6, .logo-container11,
.logo-container3, .logo-container5, .logo-container8, .logo-container10, .logo-container13, .logo-container15,
.navigation-navlink1, .navigation-navlink2, .navigation-navlink3, .navigation-navlink4,
.navigation-navlink5, .navigation-navlink6, .navigation-navlink7, .navigation-navlink8,
.footer-navlink1, .footer-navlink2, .footer-navlink3, .footer-navlink4, .footer-navlink5 {
  display: contents;
}
.logo-container2, .logo-container4, .logo-container7, .logo-container9, .logo-container12, .logo-container14 { display: none; }
.logo-site-company-logo-light-elm, .logo-site-company-logo-light-elm1, .logo-site-company-logo-light-elm2 { flex-shrink:0; white-space:nowrap; }

/* Correct intrinsic minimum sizing of original pill CTAs at tablet/mobile widths. */
@media (max-width: 991px) {
  .story-editorial-btn { padding-inline: var(--spacing-lg); max-width: 100%; }
}
@media (max-width: 479px) {
  .purevessa-hero-content, .courts-hero-inner { width: 100%; min-width: 0; max-width: 100%; }
  .purevessa-hero-action-row, .courts-hero-action-group { min-width: 0; max-width: 100%; }
  .purevessa-hero-cta, .story-editorial-btn, .courts-hero-action-group .btn {
    max-width: 100%; min-width: 0; white-space: normal;
    overflow-wrap: normal; text-align: center;
    font-size: clamp(.78rem, 3.6vw, .9rem);
    letter-spacing: .04em; padding: .55rem .75rem;
  }
  .experience-narrative a:has(.story-editorial-btn) { max-width: 100%; min-width: 0; }
}
@media (max-width: 479px) {
  .facilitieshtml-courts-and-club-facilities-container1 .btn {
    max-width: 100%; min-width: 0; white-space: normal;
    font-size: clamp(.77rem, 3.5vw, .88rem); letter-spacing: .04em;
    padding: .55rem .7rem; text-align: center;
  }
}

/* Keep native anchors in the keyboard accessibility tree (display:contents hid them). */
.navigation-navlink1, .navigation-navlink5, .footer-navlink1 { display: inline-flex; align-items: center; }
.navigation-navlink2, .navigation-navlink3, .navigation-navlink4 { display: inline-flex; align-items: center; }
.navigation-navlink6, .navigation-navlink7, .navigation-navlink8 { display: block; width: 100%; }
.footer-navlink2, .footer-navlink3, .footer-navlink4, .footer-navlink5 { display: inline-flex; align-items: center; max-width: 100%; }

/* Switch to compact navigation before the tablet rail begins wrapping. */
@media (min-width: 768px) and (max-width: 900px) {
  .navigation-capsule { grid-template-columns: minmax(0,1fr) auto; gap: 1rem; }
  .navigation-links-rail, .navigation-cta { display: none; }
  .navigation-hamburger { display: inline-flex; }
}
