/* ==========================================================================
   ABF Conference — Public site responsive (real viewport)
   ========================================================================== */

/* ---------- Tablet & below ---------- */
@media (max-width: 1024px) {
  .hero__grid { grid-template-columns: 1fr; gap: var(--space-10); }
  .hero__visual { max-width: 380px; margin: 0 auto; }
  .footer-grid { grid-template-columns: 1.4fr 1fr 1fr; }
  .sponsor-grid--silver { grid-template-columns: repeat(3, 1fr); }
  .sponsor-grid--bronze { grid-template-columns: repeat(3, 1fr); }
  .session { grid-template-columns: 120px 1fr; }
  .session__cta { grid-column: 1 / -1; padding-top: var(--space-3); border-top: 1px dashed var(--color-border); }
  .pricing-row { grid-template-columns: 1fr; }
  .speaker-hero { grid-template-columns: 280px 1fr; }
  .about-cibn-grid { grid-template-columns: 1fr !important; }
}

@media (max-width: 860px) {
  .primary-nav { display: none; }
  .menu-toggle { display: flex; }
  .header-actions .btn--primary { display: none; }
  h1 { font-size: clamp(2.25rem, 8vw, 3.25rem); }
  h2 { font-size: clamp(1.6rem, 5vw, 2.25rem); }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .stat-strip { grid-template-columns: repeat(2, 1fr); }
  .stat-strip > * { border-right: 0; border-bottom: 1px solid var(--color-border); }
  .stat-strip > *:nth-child(odd) { border-right: 1px solid var(--color-border); }
  .stat-strip > *:nth-last-child(-n+2) { border-bottom: 0; }
  .speaker-hero { grid-template-columns: 1fr; }
  .speaker-hero__photo { max-width: 280px; }
  .timeline::before { left: 56px; }
  .timeline-item { grid-template-columns: 56px 1fr; }
  .timeline-item__time { font-size: 12px; }
  .timeline-item__dot { left: 51px; }

  /* ---------- Mobile nav dropdown ---------- */
  .site-header { position: relative; }
  .primary-nav.is-open {
    display: flex;
    flex-direction: column;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: #fff;
    border-bottom: 1px solid var(--color-border);
    box-shadow: 0 12px 24px -8px rgba(0,0,0,0.12);
    padding: 8px 20px 16px;
    gap: 2px;
    z-index: 60;
  }
  .primary-nav.is-open a {
    padding: 12px 8px;
    border-bottom: 1px solid var(--color-border);
    border-radius: 0;
    width: 100%;
  }
  .primary-nav.is-open a:last-child { border-bottom: 0; }
  body.nav-open { overflow: hidden; }

  /* Animate hamburger into an X when open */
  .menu-toggle span { transition: background var(--duration-fast); }
  .menu-toggle span::before, .menu-toggle span::after { transition: transform var(--duration-fast), top var(--duration-fast); }
  .menu-toggle.is-active span { background: transparent; }
  .menu-toggle.is-active span::before { top: 0; transform: rotate(45deg); }
  .menu-toggle.is-active span::after { top: 0; transform: rotate(-45deg); }
}

@media (max-width: 640px) {
  .container { padding-inline: 20px; }
  .hero { padding: 32px 0 48px; }
  .hero__cta { flex-direction: column; }
  .hero__cta .btn { width: 100%; }
  .hero__proof { flex-wrap: wrap; gap: 12px 18px; }
  .hero__proof > div { flex: 1 1 40%; }
  .section { padding: 48px 0; }
  .cta-band { padding: 32px 24px; grid-template-columns: 1fr; }
  .cta-band__actions { justify-content: flex-start; }
  .footer-grid { grid-template-columns: 1fr; }
  .session { grid-template-columns: 1fr; }
  .session__time { flex-direction: row; gap: 8px; align-items: center; padding-right: 0; padding-bottom: var(--space-3); border-right: 0; border-bottom: 1px solid var(--color-border); }
  .field-row, .field-row--3, .field-row--4 { grid-template-columns: 1fr; }
  .filterbar { flex-direction: column; align-items: stretch; }
  .filterbar .search { width: 100%; }
  .speaker-grid { grid-template-columns: 1fr; }
  .sponsor-grid--platinum, .sponsor-grid--gold, .sponsor-grid--silver, .sponsor-grid--bronze { grid-template-columns: 1fr 1fr; }
  .sponsor-band { grid-template-columns: repeat(2, 1fr); }
  .confirm-card { padding: 32px 20px; }
  .confirm-card__details { grid-template-columns: 1fr; }
  .breadcrumb { font-size: 13px; }
}

/* Sticky bottom register CTA on mobile */
@media (max-width: 860px) {
  body { padding-bottom: 72px; }
  body > header.site-header + main, body > section:first-of-type { /* noop */ }
  .mobile-sticky-cta { display: flex; }
}
.mobile-sticky-cta { display: none; position: fixed; bottom: 0; left: 0; right: 0; z-index: 60; background: rgba(255,255,255,0.96); backdrop-filter: blur(8px); border-top: 1px solid var(--color-border); padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); gap: 8px; align-items: center; }
.mobile-sticky-cta .btn { flex: 1; }
