/* v10.5.4 — Mobile UX repairs. Desktop art, copy, links and layout stay unchanged.
   Shared header/mega menu for EVERY page; two homepage blocks on handhelds. */
@media (max-width:1100px) {
  #ngw-home .ngw-site-header { z-index: 10050 !important; }
  #ngw-home .ngw-site-nav { position: relative; min-width: 0; }
  #ngw-home .ngw-site-logo { flex: 0 1 auto; min-width: 0; }
  #ngw-home .ngw-site-actions { flex-shrink: 0; }
  #ngw-home .ngw-site-menu {
    position: absolute !important;
    top: calc(100% + 6px) !important;
    left: 0 !important; right: 0 !important;
    width: 100% !important;
    min-width: 0 !important;
    max-height: min(78dvh, calc(100dvh - 90px)) !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    border-radius: 15px !important;
    padding: 10px !important;
    gap: 2px !important;
    box-sizing: border-box !important;
  }
  #ngw-home .ngw-site-menu:not(.is-open):not(.ngw-site-menu-open) { visibility: hidden !important; pointer-events: none !important; }
  #ngw-home .ngw-site-menu .ngw-site-link,
  #ngw-home .ngw-site-menu .ngw-site-services-toggle {
    display: flex !important;
    text-align: left !important;
    min-height: 46px !important;
    white-space: normal !important;
    width: 100% !important;
    padding: 9px 12px !important;
    font-size: 14px !important;
    line-height: 1.4 !important;
    border-radius: 9px !important;
  }
  #ngw-home .ngw-site-services { width: 100%; min-width: 0; }
  #ngw-home .ngw-site-services .ngw-site-chevron { display: inline-block !important; flex-shrink: 0; }
  /* The mobile services dropdown is an accordion, NOT a floating desktop mega-menu. */
  #ngw-home .ngw-site-services .ngw-site-dropdown,
  #ngw-home .ngw-site-services.ngw-submenu-open .ngw-site-dropdown,
  #ngw-home .ngw-site-services.is-open .ngw-site-dropdown {
    position: static !important;
    inset: auto !important;
    left: auto !important; top: auto !important;
    transform: none !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    box-shadow: none !important;
    box-sizing: border-box !important;
    transition: none !important;
  }
  #ngw-home .ngw-site-services:not(.is-open):not(.ngw-submenu-open) .ngw-site-dropdown {
    display: none !important;
    max-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    overflow: hidden !important;
  }
  #ngw-home .ngw-site-services.is-open .ngw-site-dropdown,
  #ngw-home .ngw-site-services.ngw-submenu-open .ngw-site-dropdown {
    display: block !important;
    height: auto !important;
    max-height: none !important;
    padding: 10px !important;
    margin: 4px 0 10px !important;
    overflow: visible !important;
    border: 1px solid rgba(255,255,255,.14) !important;
    border-radius: 13px !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }
  #ngw-home .ngw-mega-head { display: flex !important; align-items: flex-start !important; gap: 10px !important; }
  #ngw-home .ngw-mega-head strong { font-size: 13px !important; line-height: 1.4 !important; }
  #ngw-home .ngw-mega-all { align-self: flex-start !important; font-size: 12px !important; }
  #ngw-home .ngw-mega-grid { display: grid !important; grid-template-columns: minmax(0,1fr) !important; gap: 6px !important; }
  #ngw-home .ngw-mega-card { min-width: 0 !important; padding: 10px !important; gap: 10px !important; }
  #ngw-home .ngw-mega-card div { min-width: 0 !important; }
  #ngw-home .ngw-mega-card strong { display: block; font-size: 12.5px !important; line-height: 1.35 !important; white-space: normal !important; }
  #ngw-home .ngw-mega-card small { display: block; font-size: 11px !important; line-height: 1.45 !important; white-space: normal !important; overflow-wrap: anywhere; }
  #ngw-home .ngw-mega-subservices { display: grid !important; grid-template-columns: minmax(0,1fr) !important; justify-items: stretch !important; align-items: stretch !important; gap: 0 !important; text-align: left !important; }
  #ngw-home .ngw-mega-subservices strong { display: block; padding: 5px 6px 9px !important; font-size: 12px !important; }
  #ngw-home .ngw-mega-subservices a { display: block !important; width: 100% !important; padding: 11px 9px !important; min-height: 40px; color: #e4d9f7 !important; border-top: 1px solid rgba(255,255,255,.075) !important; text-align: left !important; font-size: 12px !important; line-height: 1.4 !important; white-space: normal !important; overflow-wrap: anywhere; }
  #ngw-home .ngw-mobile-booking { width: 100% !important; justify-content: center !important; text-align: center !important; margin-top: 8px !important; }
}

@media (max-width:760px) {
  /* Never crop a text-containing bitmap into a 158px-high banner. The desktop
     source image remains untouched; mobiles get equivalent readable HTML. */
  #ngw-home .ngw-fg-cta { padding: 22px 0 !important; }
  #ngw-home .ngw-fg-cta .ngw-fg-section-shell { width: calc(100% - 28px) !important; }
  #ngw-home .ngw-fg-cta-image-link { display: none !important; }
  #ngw-home .ngw-fg-mobile-cta {
    display: flex !important; flex-direction: column !important;
    align-items: center !important; justify-content: center !important;
    min-width: 0; width: 100%; margin: 0 auto;
    padding: clamp(30px,7vw,48px) 20px !important;
    border-radius: 18px;
    background: radial-gradient(circle at 93% 8%,rgba(190,75,245,.22),transparent 48%),linear-gradient(118deg,#40145b,#682ca4);
    box-shadow: 0 14px 36px rgba(12,3,42,.19);
    color: #fff; text-align: center;
    overflow-wrap: anywhere;
  }
  #ngw-home .ngw-fg-mobile-cta-kicker {
    display: block; font-size: 10px; font-weight: 700;
    text-transform: uppercase; letter-spacing: .14em; color: #ddc0ff;
  }
  #ngw-home .ngw-fg-mobile-cta h2 {
    max-width: 100% !important; margin: 13px auto 0 !important;
    color: #fff !important; font-family: Poppins, sans-serif !important;
    font-size: clamp(24px,6.3vw,34px) !important;
    line-height: 1.2 !important; letter-spacing: -.035em !important;
    font-weight: 700 !important; text-wrap: balance;
  }
  #ngw-home .ngw-fg-mobile-cta p {
    max-width: 34rem; margin: 14px auto 0 !important;
    color: #f3e7ff !important; font-size: 13px !important;
    line-height: 1.6 !important;
  }
  #ngw-home .ngw-fg-mobile-cta-actions {
    display: flex; align-items: stretch; justify-content: center;
    gap: 10px; flex-wrap: wrap; width: 100%; margin-top: 22px;
  }
  #ngw-home .ngw-fg-mobile-cta-actions a {
    display: inline-flex; flex: 1 1 135px; max-width: 235px;
    align-items: center; justify-content: center; min-height: 46px;
    padding: 12px; border-radius: 12px; font: 600 12px/1.35 Poppins,sans-serif;
    text-decoration: none !important; text-align: center;
    white-space: normal !important; overflow-wrap: break-word;
  }
  #ngw-home .ngw-fg-mobile-cta-actions a:first-child { background: #fff; color: #3e1364 !important; }
  #ngw-home .ngw-fg-mobile-cta-actions a:last-child { color: #fff !important; border: 1px solid rgba(255,255,255,.5); }
  /* Shared narrow-screen defensive sizing for imported and saved pages. */
  #ngw-home .vtx-page, #ngw-home .vtx-section,
  #ngw-home .vtx-section .vtx-shell, #ngw-home .vtx-page-hero-grid,
  #ngw-home .vtx-hero-grid, #ngw-home .vtx-cta-panel,
  #ngw-home .ngw-site-footer-grid { min-width: 0 !important; max-width: 100%; }
  #ngw-home .vtx-page h1, #ngw-home .vtx-page h2,
  #ngw-home .vtx-page p, #ngw-home .vtx-page a,
  #ngw-home .ngw-site-footer a { overflow-wrap: anywhere; }
  #ngw-home .vtx-page .vtx-actions { flex-wrap: wrap; }
  #ngw-home .vtx-page .vtx-btn { max-width: 100%; white-space: normal !important; text-align: center; }
  #ngw-home :where(img,video,iframe) { max-width: 100%; }
}
@media (min-width:761px) { #ngw-home .ngw-fg-mobile-cta { display:none !important; } }
@media (max-width:380px) {
  #ngw-home .ngw-fg-mobile-cta { padding: 28px 16px !important; }
  #ngw-home .ngw-fg-mobile-cta-actions { flex-direction:column; }
  #ngw-home .ngw-fg-mobile-cta-actions a { max-width: 100%; flex: auto; width: 100%; }
  #ngw-home .ngw-site-logo { max-width: 135px !important; }
  #ngw-home .ngw-site-menu { max-height: calc(100dvh - 85px) !important; }
}
