/* Touch targets, safe-area handling, and small-screen spacing. */

button,
a,
input,
textarea {
  touch-action: manipulation;
}

.channel-link {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  overflow-wrap: anywhere;
}

@media (max-width: 768px) {
  nav {
    padding-top: max(0.8rem, env(safe-area-inset-top));
  }

  .nav-menu {
    max-height: calc(100vh - 70px - env(safe-area-inset-top));
    overflow-y: auto;
    overscroll-behavior: contain;
  }

  .nav-menu a {
    min-height: 44px;
  }

  .section-title {
    line-height: 1.05;
  }

  .featured-show-copy,
  .supporting-project-card .featured-show-copy,
  .compact-project-card .featured-show-copy {
    padding: 1.5rem;
  }

  .video-modal {
    padding-bottom: max(1rem, env(safe-area-inset-bottom));
  }
}

@media (max-width: 520px) {
  main > section,
  #services,
  #contact {
    padding: 3.5rem 1rem;
  }

  #hero {
    padding: calc(7rem + env(safe-area-inset-top)) 1rem 3.5rem;
  }

  .hero-eyebrow,
  .hero-note {
    max-width: 280px;
  }

  .hero-actions {
    max-width: 100%;
  }

  .hero-actions .btn,
  .form-submit .btn,
  .post-submit-cta .btn {
    width: 100%;
  }

  .featured-media {
    gap: 0.6rem;
    padding: 0.75rem;
  }

  .featured-show-copy,
  .supporting-project-card .featured-show-copy,
  .compact-project-card .featured-show-copy {
    padding: 1.25rem;
  }

  .work-tier-label {
    margin-top: 1.1rem;
  }

  .video-modal-dialog {
    max-height: calc(100vh - 5rem - env(safe-area-inset-bottom));
  }

  .video-modal-close {
    top: -46px;
  }

  .contact-form {
    gap: 0.9rem;
  }
}

@media (max-width: 420px) {
  .hero-title {
    font-size: clamp(2.15rem, 15vw, 3rem);
  }

  .hero-title-2 {
    font-size: clamp(1.85rem, 13vw, 2.6rem);
  }

  .hero-promise {
    font-size: clamp(1.2rem, 7vw, 1.6rem);
  }

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

  .project-focus {
    gap: 0.4rem;
  }

  .project-focus span {
    padding: 0.36rem 0.55rem;
    font-size: 0.68rem;
  }

  .video-label {
    right: 0.75rem;
    bottom: 0.7rem;
    left: 0.75rem;
    font-size: 0.7rem;
  }
}
