/* ============================================
   Responsive Breakpoints (Revamped 2026)
   ============================================ */

/* ── 1024px: tablet ── */
@media (max-width: 1024px) {
  .authority-inner { grid-template-columns: 1fr; }
  .authority-images-container { position: static; grid-template-columns: 1fr 1fr; max-width: 520px; }

  .programs-tier-2col { grid-template-columns: 1fr; }
  .programs-tier-3col { grid-template-columns: 1fr 1fr; }
  .program-card--course:last-child { border-right: none; }

  .footer-inner { grid-template-columns: 1fr 1fr; gap: 48px; }
  .footer-inner > div:first-child { grid-column: 1 / -1; }

  .program-modules-grid { grid-template-columns: 1fr; }
}

/* ── 900px: mobile nav ── */
@media (max-width: 900px) {
  .nav-links, .nav-cta { display: none; }
  .nav-toggle { display: flex; }

  .hero h1 { font-size: clamp(2.8rem, 8vw, 4.5rem); }

  .programs-tier-3col { grid-template-columns: 1fr; }
  .program-card--invitation { border-right: none; }

  .pillars-grid { grid-template-columns: 1fr; }
  .pillar-card { border-right: none; border-bottom: 1px solid rgba(var(--gold-rgb),.12); }
  .pillar-card:last-child { border-bottom: none; }

  .offer-card { padding: 40px 28px; }
  .offer-card::after { display: none; }

  .footer-inner { grid-template-columns: 1fr; gap: 36px; }
  .footer-bottom { flex-direction: column; text-align: center; }

  .program-hero-meta { flex-direction: column; }
  .hero-meta-divider { width: auto; height: 1px; margin: 0 18px; }
  .hero-meta-item { padding: 18px 22px; }

  .authority-inner { padding: var(--space-2xl) clamp(20px,5vw,40px); }
}

/* ── 768px ── */
@media (max-width: 768px) {
  section { padding: var(--space-2xl) 0; }

  .section-title { font-size: clamp(2.2rem, 7vw, 3rem); }

  .intro-strip { padding: 100px 0; }

  .featured-logos { gap: 36px; }
  .featured-logo { font-size: .95rem; }

  .authority-stats { grid-template-columns: repeat(3,1fr); gap: var(--space-sm); }
  .stat-num { font-size: 2.4rem; }

  .testimonial-marquee-track .marquee-card { width: 320px; }

  .program-hero { padding-top: calc(var(--nav-height) + 48px); }
  .program-hero-top { flex-direction: column; align-items: flex-start; gap: 16px; }
  .program-hero-title { font-size: clamp(2.4rem, 8vw, 4rem); }
}

/* ── 480px: small mobile ── */
@media (max-width: 480px) {
  :root { --space-3xl: 80px; }

  .hero h1 { font-size: clamp(2.2rem, 9vw, 3rem); }

  .authority-images-container { grid-template-columns: 1fr; max-width: 280px; margin: 0 auto 40px; }

  .authority-stats { grid-template-columns: 1fr; gap: 24px; }

  .programs-tier-2col,
  .programs-tier-3col { grid-template-columns: 1fr; }

  .intro-btns { flex-direction: column; align-items: center; }
  .hero-btns  { flex-direction: column; align-items: center; }

  .offer-includes { gap: 10px; }
  .offer-actions { flex-direction: column; }

  .form-progress { flex-wrap: wrap; gap: 12px; }
  .progress-connector { display: none; }

  .footer-quote p { font-size: 1rem; }

  .program-modules-grid { grid-template-columns: 1fr; }
  .marquee-card { width: 280px; }

  /* Prevent buttons overflowing their containers on narrow phones */
  .btn-primary,
  .btn-ghost,
  .btn-champ,
  .btn,
  [class*="btn-"] {
    white-space: normal;
    max-width: 100%;
    word-break: break-word;
  }

  /* CTA button groups that stack on mobile */
  .cta-band,
  .cta-section,
  .cta-inner { padding-left: 20px; padding-right: 20px; }
}

/* ── Reduced motion ── */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .001ms !important;
    transition-duration: .001ms !important;
  }
}
