/* Presentation comes from the original live page. These rules fix behavior only. */
html { scroll-behavior: smooth; }
body { margin: 0; overflow-x: clip; }
.tpp-system-page { min-height: 100dvh; display: grid; place-items: center; padding: 32px; box-sizing: border-box; background: #f5f8fc; color: #183153; font: 16px/1.6 Arial, sans-serif; text-align: center; }
.tpp-system-page h1 { margin: 0; font-size: clamp(32px, 8vw, 72px); line-height: 1.15; }
.tpp-system-page h2 { font-size: 24px; }
.tpp-system-page a, .tpp-system-page button { display: inline-block; margin: 12px 6px 0; padding: 10px 20px; border: 0; border-radius: 8px; background: #183153; color: white; font: inherit; text-decoration: none; cursor: pointer; }
[hidden] { display: none !important; }
.tpp-migration-skip { position: fixed; z-index: 2147483647; left: 12px; top: 10px; transform: translateY(-180%); background: #fff; color: #0c2d68; padding: 12px 18px; border: 2px solid #0c2d68; border-radius: 8px; }
.tpp-migration-skip:focus { transform: none; }
.hl-faq-child-heading:focus-visible, .menu-item-title:focus-visible, .tpp-phone-dot:focus-visible { outline: 3px solid #0ea5e9; outline-offset: 3px; }
.tpp-hosted-checkout { display: block; width: 100%; min-height: 100vh; height: 100dvh; border: 0; background: white; }
.tpp-booking-dialog { width: min(720px, calc(100vw - 32px)); max-width: 720px; height: min(850px, calc(100dvh - 40px)); max-height: calc(100dvh - 40px); padding: 12px; border: 10px solid #2f416b; border-radius: 2px; margin: auto; overflow: auto; background: white; box-shadow: 0 20px 80px #0005; }
.tpp-booking-dialog::backdrop { background: #0009; }
.tpp-booking-dialog iframe { width: 100%; height: 100%; min-height: 650px; border: 0; display: block; }
.tpp-booking-close { position: sticky; float: right; top: 0; z-index: 2; width: 30px; height: 30px; border: 0; border-radius: 50%; background: #183153; color: white; font-size: 24px; line-height: 24px; cursor: pointer; }
.tpp-phone-dot { font: inherit; padding: 0; border: 0; cursor: pointer; }
.tpp-external-fallback { display: block; text-align: center; margin: 12px auto; font: 14px/1.5 Arial, sans-serif; color: #123a84; text-decoration: underline; }
.tpp-calculator-assumptions { font: inherit; font-size: 12px; line-height: 1.5; color: inherit; margin-top: 12px; }
iframe[data-tpp-form] { margin-bottom: -5px; }
iframe[data-tpp-form][data-tpp-loading] { position: absolute !important; left: -10000px !important; opacity: 0; pointer-events: none; }
[data-tpp-form-sizing] { position: absolute; top: 0; left: 0; width: 100%; visibility: hidden; pointer-events: none; }
@media (max-width: 767px) {
  .nav-menu-desktop:not(.hide-popup) { overscroll-behavior: contain; }
  .mega-menu.mega-menu-mobile-active { visibility: visible !important; opacity: 1 !important; }
  .tpp-booking-dialog { padding: 4px; border-width: 4px; }
  .tpp-ai-chat-panel { min-width: 0; width: 100%; box-sizing: border-box; }
  .tpp-ai-chat-panel .tpp-ai-chat-embed-box,
  .tpp-ai-chat-panel .tpp-ghl-chat-slot { min-height: 620px; height: 620px; }
  .tpp-ghl-chat-slot chat-widget {
    display: block;
    min-width: 0;
    width: 100%;
    max-width: 100%;
    --chat-widget-width: 100%;
  }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .tpp-training-video-wrap [data-tpp-reveal] { opacity: 1 !important; transform: none !important; }
  .tpp-training-video-wrap *, .tpp-smart-command-hero * { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
/* The source welcome prompt covers page copy on phones; retain its launch button. */
@media (max-width: 480px) { chat-widget { --chat-widget-prompt-display: none; } }
