/* v369G — Public UI stability sweep after multiple Home/subpage visual patches.
   Goal: preserve approved visual changes, then harden overlap, horizontal overflow,
   mobile floating controls, and admin/public widget boundaries. */

html,
body{
  max-width:100%;
  overflow-x:clip;
}
@supports not (overflow-x: clip){
  html,
  body{ overflow-x:hidden; }
}

*,
*::before,
*::after{ box-sizing:border-box; }

.topbar{
  isolation:isolate;
  z-index:1000;
}

.topbar .navlinks a:not(.btn),
.vge-mobile-menu-drawer a{
  -webkit-tap-highlight-color:transparent;
}

@media (min-width:901px){
  .topbar .navlinks{
    min-width:0 !important;
    flex-wrap:nowrap !important;
  }
  .topbar .navlinks a:not(.btn){
    white-space:nowrap !important;
  }
}

@media (min-width:901px) and (max-width:1240px){
  .topbar .navlinks{
    gap:7px !important;
  }
  .topbar .navlinks a:not(.btn){
    padding-left:7px !important;
    padding-right:7px !important;
    font-size:.875rem !important;
  }
  .topbar .navlinks .nav-apply-btn,
  .topbar .navlinks a.btn{
    padding-left:12px !important;
    padding-right:12px !important;
  }
}

/* Home hero: keep the approved left copy / right fee checker layout, but stop
   the animated plane/wind layer from creating accidental horizontal scroll. */
.home-page .home-hero-v295G,
.home-page .home-conversion-hero-grid-v295G,
.home-page .home-hero-side-stack-v295G,
.home-page .hero-plane-stage-v295G{
  max-width:100% !important;
}

.home-page .hero-plane-stage-v295G{
  contain:layout paint;
}

.home-page .hero-plane-image-v295G,
.home-page .hero-plane-wind-v295G{
  backface-visibility:hidden;
  -webkit-font-smoothing:antialiased;
}

.home-page .home-fee-preview-card-v295G,
.fees-check-section .fee-card,
.card[data-fee-checker]{
  overflow:visible;
}

.home-page .home-service-routes{
  overflow:hidden !important;
}

.home-page .home-service-routes::before,
.home-page .home-service-routes::after,
.fees-check-section .container.grid.two > :first-child::after{
  pointer-events:none !important;
}

.home-page .home-service-routes > .container,
.home-page .home-route-grid,
.home-page .home-route-card{
  position:relative;
  z-index:2;
}

/* Fees page: keep the new left-side landmark artwork, but make sure it never
   competes with text, never touches the fee checker, and remains fully hidden on mobile. */
.fees-check-section .container.grid.two{
  overflow:visible !important;
}

.fees-check-section .container.grid.two > :first-child{
  isolation:isolate;
}

.fees-check-section .container.grid.two > :first-child > *{
  position:relative;
  z-index:1;
}

.fees-check-section .container.grid.two > :first-child::after{
  z-index:-1 !important;
  opacity:.26 !important;
}

@media (max-width:980px){
  .fees-check-section .container.grid.two > :first-child{
    min-height:0 !important;
    padding-bottom:0 !important;
    margin-bottom:0 !important;
  }
  .fees-check-section .container.grid.two > :first-child::after{
    content:none !important;
    display:none !important;
  }
}

/* FAQ: keep the compact overlay hero, but prevent the image/card from pushing
   outside the viewport on narrow screens. */
.faq-compact-hero-v290G,
.faq-hero-visual-card-v290G,
.faq-expanded-page,
.faq-page{
  max-width:100%;
}

.faq-hero-visual-card-v290G{
  overflow:hidden !important;
}

.faq-category-nav,
.faq-page-intro-v289G,
.faq-pager-bottom-v289G{
  max-width:100%;
}

/* Floating contact controls: keep WhatsApp under Need Help on public pages,
   suppress both controls during mobile menu/chat states, and avoid customer
   floating widgets inside internal admin/staff pages. */
body.vge-floating-controls-suppressed .whatsapp-float,
body.vge-mobile-menu-open .whatsapp-float{
  opacity:0 !important;
  pointer-events:none !important;
  transform:translateY(12px) scale(.96) !important;
}

body[class*="admin-"] .whatsapp-float,
body[class*="admin-"] .vge-chatbot-root,
body[class*="admin-"] .vge-lsc-widget,
body[class*="admin-"] .live-staff-chat-root,
body.admin-body .whatsapp-float,
body.admin-body .vge-chatbot-root{
  display:none !important;
}

@media (max-width:640px){
  body .vge-chatbot-root{
    right:12px !important;
  }
  body .whatsapp-float{
    right:12px !important;
  }
  body.vge-mobile-menu-open .vge-chatbot-root,
  body.vge-floating-controls-suppressed .vge-chatbot-root:not(.is-open){
    opacity:0 !important;
    pointer-events:none !important;
    transform:translateY(12px) scale(.96) !important;
  }
}

/* Reduced motion should keep the final visual state clean instead of freezing
   partly outside the hero. */
@media (prefers-reduced-motion:reduce){
  .home-page .hero-plane-image-v295G{
    opacity:1 !important;
    transform:translate3d(0,0,0) scale(1) rotate(0deg) !important;
  }
  .home-page .hero-plane-wind-v295G{
    opacity:0 !important;
  }
}
