/* Existing desktop footer geometry, moved out of inline !important styles. */
/* Prevent the legacy shell from painting for one frame while the shared shell script replaces it. */
html:not(.ftb-shell-ready) body > .site-header,
html:not(.ftb-shell-ready) body > .header,
html:not(.ftb-shell-ready) body > .notice-bar,
html:not(.ftb-shell-ready) body > .riskbar,
html:not(.ftb-shell-ready) body > .topline,
html:not(.ftb-shell-ready) body > main,
html:not(.ftb-shell-ready) body > footer,
html:not(.ftb-shell-ready) body > .site-footer,
html:not(.ftb-shell-ready) body > .footer { visibility: hidden !important; }

body #ftb-final-footer-grid,
body .ftb-home-footer .footer-grid {
  grid-template-columns: 2fr 1fr 1fr 1fr !important;
  gap: 50px !important;
  width: 1120px !important;
  max-width: calc(100% - 36px) !important;
}
body #ftb-final-footer-bottom {
  display: flex !important;
  gap: 20px !important;
  width: 1120px !important;
  max-width: calc(100% - 36px) !important;
}

@media (max-width: 1100px) {
  /* Collapse navigation before the eight links collide with the logo. */
  body .site-header .main-nav, body .ftb-home-header .ftb-main-nav {
    position: absolute !important; top: 100% !important; left: 12px !important; right: 12px !important;
    width: auto !important; margin: 0 !important; display: none !important;
    flex-direction: column !important; gap: 0 !important; padding: 10px !important;
    background: #fff !important; border: 1px solid #dfe6eb !important; border-radius: 8px !important;
    max-height: 70vh; overflow-y: auto; box-shadow: 0 8px 26px rgba(16,43,64,.08);
  }
  body .site-header .main-nav.open, body .ftb-home-header .ftb-main-nav.open { display: flex !important; }
  body .site-header .main-nav a, body .ftb-home-header .ftb-main-nav a { padding: 11px 10px !important; color: #4d6070; }
  body .site-header .menu-button, body .ftb-home-header .ftb-menu-button {
    display: flex !important; flex-direction: column; justify-content: center; align-items: center;
    gap: 3px; background: none; border: 0; min-width: 32px; min-height: 44px; padding: 4px; flex-shrink: 0;
  }
  body .menu-button span, body .ftb-menu-button span { display: block; width: 20px; height: 2px; background: #355363; border-radius: 2px; }
  body .menu-button b, body .ftb-menu-button b { font-size: 8px; color: #506574; }
  body .nav-inner, body .ftb-nav-inner { gap: 10px !important; }
  body .site-header .brand, body .ftb-home-header .ftb-brand { margin-right: auto; }
  body .nav-cta, body .ftb-nav-cta { white-space: nowrap; flex-shrink: 0; }
}

@media (max-width: 900px) {
  body #ftb-final-footer-grid, body .ftb-home-footer .footer-grid,
  body footer.footer .footer-grid {
    grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) !important;
    gap: 28px !important; width: 1120px !important; max-width: calc(100% - 24px) !important;
  }
  body footer .footer-grid > div { display: block !important; min-width: 0; }
  body #ftb-final-footer-bottom, body footer.footer .footer-bottom {
    display: block !important; width: 1120px !important; max-width: calc(100% - 24px) !important;
  }
  body footer .footer-bottom > span, body #ftb-final-footer-bottom > span { display: block !important; margin-top: 6px; }
  body footer .footer-bottom > span > span, body #ftb-final-footer-bottom > span > span { display: inline !important; margin: 0 !important; }
  /* Grid items must shrink so wide tables scroll inside their own wrapper. */
  body .chart-card > *, body .summary-grid > *, body .scoreboard > *, body .two-col > *,
  body .hero-grid > *, body .resource-columns > *, body .calculator-shell > *,
  body .review-columns > * { min-width: 0 !important; }
  body .table-wrap, body .comparison-table-wrap { max-width: 100%; min-width: 0; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  /* Shared pale cards inherited white text from the old dark theme. */
  body.page-learn main .glossary-card h2, body main .glossary-card dt { color: #0a2941 !important; }
  body main .glossary-card dd { color: #526575 !important; }
  body.page-learn main .glossary-card .eyebrow, body main .glossary-card > a { color: #0875a8 !important; }
  body main section.hero .hero-card h2 { color: #0a2941 !important; }
  body main section.hero .hero-card p { color: #526575 !important; }
  body .sticky-cta { position: static; }
}

@media (max-width: 480px) {
  body #ftb-final-footer-grid, body .ftb-home-footer .footer-grid,
  body footer.footer .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 24px !important; }
  body #ftb-final-brand-column, body footer .footer-grid > div:first-child { grid-column: 1 / -1 !important; }
  body .site-header .brand, body .ftb-home-header .ftb-brand { font-size: clamp(10px, 3.1vw, 15px) !important; gap: 5px !important; }
  body .site-header .brand small, body .ftb-home-header .ftb-brand small { font-size: 8px !important; }
  body .site-header .brand-mark, body .ftb-home-header .ftb-brand-mark { width: 21px !important; flex-shrink: 0; }
  body .site-header .nav-cta, body .ftb-home-header .ftb-nav-cta { font-size: 9px !important; padding: 9px 8px !important; margin-left: 0 !important; }
  body .nav-inner, body .ftb-nav-inner { gap: 6px !important; }
}

/* A comparison table becomes a clearly labelled, one-column comparison on phones. */
@media (max-width: 640px) {
  body .comparison-scroll.ftb-mobile-comparison { overflow: visible !important; border: 0 !important; background: transparent !important; }
  body .comparison-scroll.ftb-mobile-comparison .comparison-table { display: block !important; width: 100% !important; min-width: 0 !important; border: 0 !important; background: transparent !important; }
  body .comparison-scroll.ftb-mobile-comparison .comparison-table thead { display: none !important; }
  body .comparison-scroll.ftb-mobile-comparison .comparison-table tbody { display: block !important; }
  body .comparison-scroll.ftb-mobile-comparison .comparison-table tr { display: block !important; margin: 0 0 14px !important; border: 1px solid #dbe5ed !important; border-radius: 10px !important; overflow: hidden !important; background: #fff !important; }
  body .comparison-scroll.ftb-mobile-comparison .comparison-table th, body .comparison-scroll.ftb-mobile-comparison .comparison-table td { display: block !important; width: 100% !important; padding: 12px 14px !important; border: 0 !important; border-bottom: 1px solid #e7edf2 !important; text-align: left !important; white-space: normal !important; }
  body .comparison-scroll.ftb-mobile-comparison .comparison-table th:first-child { background: #f2f7fa !important; color: #0a2941 !important; font-weight: 800 !important; font-size: 14px !important; }
  body .comparison-scroll.ftb-mobile-comparison .comparison-table td::before { content: attr(data-broker); display: block; margin-bottom: 5px; color: #0875a8; font-size: 11px; font-weight: 800; }
  body .comparison-scroll.ftb-mobile-comparison .comparison-table td:last-child { border-bottom: 0 !important; }
  body .comparison-scroll.ftb-mobile-comparison .comparison-table a { display: inline-flex !important; width: auto !important; }
}
