/* Global responsive safeguards across Sunrise pages */
img,
svg,
video,
canvas,
iframe {
  max-width: 100%;
  height: auto;
}

table {
  display: block;
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.as-dropdown--services {
  min-width: min(800px, calc(100vw - 48px));
}

@media (max-width: 1200px) {
  .as-header-wrapper {
    z-index: 10060 !important;
  }

  .as-header-inner,
  .as-header-container {
    overflow: visible !important;
  }

  .as-header-container {
    gap: 12px !important;
  }

  .as-site-branding {
    min-width: 0;
  }

  .as-right-nav {
    margin-left: auto !important;
    gap: 10px !important;
  }

  .as-right-nav .as-btn-theme {
    display: none !important;
  }

  .as-mobile-toggle {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
  }

  .as-main-menu.is-mobile-active {
    display: flex !important;
    right: 0;
    width: 100% !important;
    max-height: calc(100dvh - 56px);
    z-index: 10061 !important;
    overflow-x: hidden;
  }

  .as-main-menu.is-mobile-active .as-dropdown,
  .as-main-menu.is-mobile-active .as-dropdown--services {
    min-width: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  .as-main-menu.is-mobile-active .as-dropdown-menu-list,
  .as-main-menu.is-mobile-active .as-dropdown-menu-list.is-grid-2 {
    width: 100%;
    max-width: 100%;
  }

  .as-main-menu.is-mobile-active .as-has-dropdown {
    width: 100%;
  }

  .as-main-menu.is-mobile-active .as-menu-item {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .as-main-menu.is-mobile-active .as-has-dropdown.is-open > .as-dropdown,
  .as-main-menu.is-mobile-active .as-has-dropdown.is-open > .as-dropdown--services {
    display: flex !important;
    flex-direction: column !important;
  }

  .as-main-menu.is-mobile-active .as-dropdown,
  .as-main-menu.is-mobile-active .as-dropdown--services {
    position: static !important;
    left: auto !important;
    right: auto !important;
    margin: 8px 0 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    transform: none !important;
    overflow: visible !important;
    flex: 0 0 auto !important;
  }

  .as-main-menu.is-mobile-active .as-dropdown-menu-list,
  .as-main-menu.is-mobile-active .as-dropdown-menu-list.is-grid-2 {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 8px !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  .as-main-menu.is-mobile-active .as-dropdown-link-card {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    padding: 10px 12px !important;
    white-space: normal !important;
    overflow: hidden !important;
    border-radius: 10px !important;
  }

  .as-main-menu.is-mobile-active .as-card-text {
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    line-height: 1.35 !important;
    font-size: 13px !important;
  }
}

@media (max-width: 767px) {
  .as-header-container {
    padding-left: 14px !important;
    padding-right: 14px !important;
  }

  .as-site-branding a img {
    max-width: 150px !important;
    height: auto !important;
  }

  .as-main-menu.is-mobile-active {
    padding: 12px !important;
  }
}

/* ─── FIX: Mobile Services dropdown layout ─── */
@media (max-width: 1200px) {
  /* Force the dropdown container to column layout with no gradient */
  .as-main-menu.is-mobile-active .as-dropdown,
  .as-main-menu.is-mobile-active .as-dropdown--services,
  .as-main-menu.is-mobile-active .as-has-dropdown.is-open > .as-dropdown,
  .as-main-menu.is-mobile-active .as-has-dropdown.is-open > .as-dropdown--services {
    position: static !important;
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    border: none !important;
    transform: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    padding: 0 !important;
    margin: 8px 0 0 !important;
    overflow: visible !important;
    flex: 0 0 auto !important;
  }

  /* Hide until .is-open toggled */
  .as-main-menu.is-mobile-active .as-has-dropdown:not(.is-open) > .as-dropdown,
  .as-main-menu.is-mobile-active .as-has-dropdown:not(.is-open) > .as-dropdown--services {
    display: none !important;
  }

  /* Force single-column grid for the service links */
  .as-main-menu.is-mobile-active .as-dropdown-menu-list,
  .as-main-menu.is-mobile-active .as-dropdown-menu-list.is-grid-2 {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 8px !important;
    padding: 0 !important;
    margin: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  /* Make each service card full-width with a proper visible background */
  .as-main-menu.is-mobile-active .as-dropdown-link-card {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    padding: 10px 14px !important;
    white-space: normal !important;
    overflow: hidden !important;
    border-radius: 10px !important;
    background: linear-gradient(135deg, #3b0764 0%, #581c87 100%) !important;
    border: 1px solid rgba(255,255,255,0.12) !important;
  }

  /* Ensure card text is readable */
  .as-main-menu.is-mobile-active .as-card-text {
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    line-height: 1.35 !important;
    font-size: 13px !important;
    color: #e2e8f0 !important;
  }
}

/* ─── FIX: Testimonial section – contain overflow, hide arrows ─── */
@media (max-width: 900px) {
  .testi-stage {
    position: relative !important;
    overflow: hidden !important;
  }

  .testi-arrow,
  .testi-arrow--left,
  .testi-arrow--right {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }

  .testi-track {
    overflow-x: auto !important;
    overflow-y: hidden !important;
    padding: 8px 16px 0 !important;
  }

  .testi-dots {
    display: none !important;
  }

  .testi {
    overflow: hidden !important;
  }
}

/* ─── FIX: Footer bottom – proper stacking & link wrapping on mobile ─── */
@media (max-width: 600px) {
  .footer-bottom {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 4px !important;
    text-align: center !important;
    padding: 10px 16px 12px !important;
  }

  .footer-bottom > p {
    justify-self: center !important;
    text-align: center !important;
    width: 100% !important;
    margin: 0 !important;
    line-height: 1.2 !important;
  }

  .footer-credit {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 5px !important;
    width: 100% !important;
    margin: 0 !important;
    line-height: 1 !important;
  }

  .footer-bottom-links {
    display: flex !important;
    flex-wrap: nowrap !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 4px !important;
    width: 100% !important;
    margin: 0 !important;
    line-height: 1 !important;
  }

  .footer-legal-btn {
    appearance: none !important;
    -webkit-appearance: none !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    height: 22px !important;
    min-width: 0 !important;
    white-space: nowrap !important;
    text-align: center !important;
    line-height: 1 !important;
    font-size: clamp(0.66rem, 3vw, 0.76rem) !important;
    padding: 0 4px !important;
    vertical-align: middle !important;
  }
}
