/* v259U — Final Public UI QA + Polish Lock
   Scope: public customer-facing pages and Ads landing pages only.
   Purpose: final small overrides after v258U design-system cleanup. */

:root {
  --vge-safe-bottom: max(20px, env(safe-area-inset-bottom, 0px));
}

body:not([class*="admin"]) {
  overflow-x: hidden;
}

body:not([class*="admin"]) main,
body:not([class*="admin"]) .page-shell,
body:not([class*="admin"]) .container,
body:not([class*="admin"]) .lp-container {
  max-width: min(1180px, calc(100vw - 32px));
}

body:not([class*="admin"]) .page-hero,
body:not([class*="admin"]) .hero,
body:not([class*="admin"]) .lp-hero {
  isolation: isolate;
}

body:not([class*="admin"]) .page-hero h1,
body:not([class*="admin"]) .hero h1,
body:not([class*="admin"]) .lp-hero h1 {
  text-wrap: balance;
}

body:not([class*="admin"]) .page-hero p,
body:not([class*="admin"]) .hero p,
body:not([class*="admin"]) .lp-hero p,
body:not([class*="admin"]) .lead {
  text-wrap: pretty;
}

body:not([class*="admin"]) a:focus-visible,
body:not([class*="admin"]) button:focus-visible,
body:not([class*="admin"]) input:focus-visible,
body:not([class*="admin"]) select:focus-visible,
body:not([class*="admin"]) textarea:focus-visible {
  outline: 3px solid rgba(37, 99, 235, 0.45);
  outline-offset: 3px;
}

body:not([class*="admin"]) .btn,
body:not([class*="admin"]) .lp-cta,
body:not([class*="admin"]) .hero-actions a,
body:not([class*="admin"]) .hero-actions button,
body:not([class*="admin"]) .cta-row a,
body:not([class*="admin"]) .cta-row button {
  min-height: 44px;
}

body:not([class*="admin"]) table {
  max-width: 100%;
}

body:not([class*="admin"]) .table-wrap,
body:not([class*="admin"]) .fee-table-wrap,
body:not([class*="admin"]) .pricing-table-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

body:not([class*="admin"]) .site-footer,
body:not([class*="admin"]) footer {
  padding-bottom: calc(32px + var(--vge-safe-bottom));
}

@media (max-width: 760px) {
  body:not([class*="admin"]) {
    padding-bottom: 88px;
  }

  body:not([class*="admin"]) main,
  body:not([class*="admin"]) .page-shell,
  body:not([class*="admin"]) .container,
  body:not([class*="admin"]) .lp-container {
    max-width: min(100%, calc(100vw - 24px));
  }

  body:not([class*="admin"]) .topbar,
  body:not([class*="admin"]) .site-header,
  body:not([class*="admin"]) .lp-header {
    min-height: 64px;
  }

  body:not([class*="admin"]) .hero-actions,
  body:not([class*="admin"]) .cta-row,
  body:not([class*="admin"]) .lp-actions {
    gap: 10px;
  }

  body:not([class*="admin"]) .hero-actions .btn,
  body:not([class*="admin"]) .hero-actions a,
  body:not([class*="admin"]) .cta-row .btn,
  body:not([class*="admin"]) .lp-actions .lp-cta {
    width: 100%;
    justify-content: center;
    text-align: center;
  }

  body:not([class*="admin"]) .whatsapp-float,
  body:not([class*="admin"]) .wa-float,
  body:not([class*="admin"]) .floating-whatsapp,
  body:not([class*="admin"]) [data-whatsapp-float] {
    right: 14px !important;
    bottom: calc(14px + var(--vge-safe-bottom)) !important;
    max-width: min(172px, calc(100vw - 28px));
    z-index: 740 !important;
  }

  body.chatbot-open .whatsapp-float,
  body.chatbot-open .wa-float,
  body.chatbot-open .floating-whatsapp,
  body.chatbot-open [data-whatsapp-float],
  body.vge-chatbot-open .whatsapp-float,
  body.vge-chatbot-open .wa-float,
  body.vge-chatbot-open .floating-whatsapp,
  body.vge-chatbot-open [data-whatsapp-float],
  body.vge-mobile-menu-open .whatsapp-float,
  body.vge-mobile-menu-open .wa-float,
  body.vge-mobile-menu-open .floating-whatsapp,
  body.vge-mobile-menu-open [data-whatsapp-float] {
    opacity: 0;
    pointer-events: none;
    transform: translateY(10px) scale(0.96);
  }

  body:not([class*="admin"]) .lp-sticky-cta,
  body:not([class*="admin"]) .mobile-sticky-cta,
  body:not([class*="admin"]) [data-sticky-cta] {
    left: 12px;
    right: 12px;
    bottom: calc(10px + var(--vge-safe-bottom));
    width: auto;
    z-index: 720;
  }

  body.chatbot-open .lp-sticky-cta,
  body.vge-chatbot-open .lp-sticky-cta,
  body.vge-mobile-menu-open .lp-sticky-cta,
  body.chatbot-open .mobile-sticky-cta,
  body.vge-chatbot-open .mobile-sticky-cta,
  body.vge-mobile-menu-open .mobile-sticky-cta,
  body.chatbot-open [data-sticky-cta],
  body.vge-chatbot-open [data-sticky-cta],
  body.vge-mobile-menu-open [data-sticky-cta] {
    opacity: 0;
    pointer-events: none;
    transform: translateY(10px);
  }
}

@media (max-width: 420px) {
  body:not([class*="admin"]) .page-hero,
  body:not([class*="admin"]) .hero,
  body:not([class*="admin"]) .lp-hero {
    padding-top: 44px;
    padding-bottom: 44px;
  }

  body:not([class*="admin"]) .page-hero h1,
  body:not([class*="admin"]) .hero h1,
  body:not([class*="admin"]) .lp-hero h1 {
    font-size: clamp(2rem, 10vw, 2.55rem);
    line-height: 1.04;
  }
}
