/* Ajustes de encuadre compartidos por los recursos HODL. */
html, body { max-width: 100%; overflow-x: clip; }
.lab-course-nav + .top { top: 42px; }
.topin > *, .hero > *, .grid > *, .kpis > *, .routes > *, .terms > * { min-width: 0; }
.brand > div, .brand > span { min-width: 0; }
.actions { min-width: 0; }
.ph h2, .ph h3, .panel-head h2, .panel-head h3 { overflow-wrap: anywhere; }
.lead, .callout, .notice, td, th { overflow-wrap: anywhere; }
canvas { max-width: 100%; }

@media (max-width: 980px) {
  .topin { align-items: flex-start; flex-direction: column; }
  .actions { width: 100%; max-width: none !important; justify-content: flex-start; }
  .actions .btn { flex: 1 1 150px; }
}

@media (max-width: 620px) {
  .topin { gap: 8px; }
  .actions .btn { flex-basis: 132px; }
  .hero h1 { font-size: clamp(1.8rem, 10vw, 2.5rem); letter-spacing: -.025em; }
  .ph, .panel-head { align-items: flex-start; flex-direction: column; }
  .kpis { grid-template-columns: 1fr 1fr !important; }
  .tablewrap { max-width: 100%; overscroll-behavior-inline: contain; }
}

@media (max-width: 390px) {
  .actions .btn { flex-basis: 118px; font-size: .76rem !important; }
  .kpis, .stats { grid-template-columns: 1fr !important; }
  .bandgrid { grid-template-columns: 1fr !important; }
}
