/* Wide desktop */
@media (min-width: 1600px) {
  :root {
    --container: 1320px;
  }
}

@media (min-width: 1920px) {
  :root {
    --container: 1440px;
  }
}

/* Laptop: keep the full menu only when the bar has room */
@media (max-width: 1360px) {
  .nav-toggle {
    display: inline-flex;
  }

  .site-nav {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    display: none;
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
    padding: 8px 20px 20px;
    background: #001632;
    border-bottom: 1px solid rgba(0, 200, 245, 0.25);
    max-height: calc(100svh - var(--header-height));
    overflow-y: auto;
  }

  .site-nav.is-open {
    display: flex;
  }

  .nav-links {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
  }

  .nav-link {
    display: block;
    width: 100%;
    padding: 14px 0;
    font-size: 16px;
  }

  .site-nav .btn {
    width: 100%;
    margin-top: 8px;
  }
}

/* Tablet landscape */
@media (max-width: 1100px) {
  .hero-grid,
  .location-grid,
  .price-grid,
  .footer-grid {
    grid-template-columns: 1fr;
  }

  .speaker-grid,
  .speaker-grid.executive {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .countdown {
    grid-template-columns: 1fr repeat(4, minmax(0, 1fr));
  }

  .map-frame {
    min-height: 320px;
    height: 360px;
  }
}

/* Tablet portrait */
@media (max-width: 860px) {
  .hero {
    min-height: 0;
    padding-top: 28px;
    justify-content: flex-start;
  }

  .hero-title {
    font-size: clamp(48px, 12vw, 76px);
  }

  .countdown {
    grid-template-columns: 1fr 1fr;
    width: min(100% - 32px, var(--container));
  }

  .countdown-label {
    grid-column: 1 / -1;
  }

  .session {
    grid-template-columns: 1fr;
    gap: 6px;
  }

  .ticket {
    grid-template-columns: 1fr;
  }

  .ticket-stub {
    min-height: 84px;
    flex-direction: row;
  }

  .sponsors-head::before,
  .sponsors-head::after {
    display: none;
  }

  .about,
  .speakers,
  .agenda,
  .gallery,
  .sponsors,
  .pricing,
  .location {
    padding: 56px 0;
  }

  .section-title {
    overflow-wrap: anywhere;
  }
}

/* Large phone */
@media (max-width: 767px) {
  .logo-row {
    gap: 16px;
  }

  .logo-card {
    width: min(320px, 100%);
    min-height: 182px;
    padding: 16px;
  }

  .logo-card img {
    height: 150px;
  }

  .tier-badge {
    max-width: 100%;
    overflow-wrap: anywhere;
  }

  .container,
  .hero-grid {
    width: min(100% - 32px, var(--container));
  }

  .speaker-grid,
  .speaker-grid.executive {
    grid-template-columns: 1fr;
  }

  .speaker-photo {
    width: 132px;
    height: 132px;
  }

  .day-card,
  .glance,
  .details-card,
  .loc-panel {
    padding: 18px;
  }



  .tabs {
    flex-wrap: wrap;
  }

  .tab {
    flex: 1 1 140px;
  }

  .ticket,
  .site-nav .btn {
    width: 100%;
  }

  .brand img {
    height: 48px;
  }

  .growth-arrow {
    letter-spacing: 0.04em;
    flex-wrap: wrap;
  }

  .ticket-price {
    font-size: clamp(36px, 12vw, 54px);
  }

  .dialog .speaker-photo {
    width: 140px;
    height: 140px;
  }

  .footer-brand img {
    height: 52px;
  }
}

/* Small phone */
@media (max-width: 420px) {
  :root {
    --header-height: 68px;
  }

  .container,
  .hero-grid,
  .countdown {
    width: min(100% - 24px, var(--container));
  }

  .hero {
    padding-top: 20px;
    gap: 18px;
  }

  .hero-subtitle {
    font-size: 17px;
  }

  .details-card h2 {
    font-size: 34px;
  }

  .detail-row {
    grid-template-columns: 78px 1fr;
    gap: 8px;
  }

  .time-box b {
    font-size: 28px;
  }

  .time-box span {
    letter-spacing: 0.08em;
  }

  .tabs {
    flex-direction: column;
  }

  .tab {
    width: 100%;
  }

  .glance {
    padding: 14px;
  }

  .speaker-card {
    padding: 18px 12px;
  }

  .map-frame {
    min-height: 240px;
    height: 260px;
  }
}

/* Very narrow phones */
@media (max-width: 320px) {
  .hero-title {
    font-size: 46px;
    letter-spacing: -0.5px;
  }

  .eyebrow {
    letter-spacing: 0.12em;
    font-size: 11px;
  }

  .ticket-price {
    font-size: 34px;
  }
}
