/* ==========================================================================
   responsive.css — breakpoint adjustments
   ========================================================================== */

/* Tablet / small desktop */
@media (max-width: 1080px) {
  .hero-grid {
    grid-template-columns: 1fr;
  }

  .hero-aside {
    border-left: none;
    padding-left: 0;
    border-top: 1px solid var(--c-line);
    padding-top: 1.6rem;
  }

  .services-grid,
  .work-grid,
  .promise-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .why-grid {
    grid-template-columns: repeat(2, 1fr);
    row-gap: 2rem;
  }

  .manifesto,
  .service-detail,
  .about-grid,
  .contact-grid {
    grid-template-columns: 1fr;
  }

  .about-portrait {
    aspect-ratio: 16/9;
  }

  .footer-top {
    grid-template-columns: 1fr 1fr;
    row-gap: 2.5rem;
  }
}

/* Mobile nav breakpoint */
@media (max-width: 860px) {
  .nav-desktop,
  .header-actions .btn-primary {
    display: none;
  }

  .nav-toggle {
    display: flex;
  }
}

/* Mobile */
@media (max-width: 640px) {
  .services-grid,
  .work-grid,
  .promise-grid,
  .why-grid,
  .value-grid,
  .check-list,
  .form-row {
    grid-template-columns: 1fr;
  }

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

  .footer-top {
    grid-template-columns: 1fr;
  }

  .footer-bottom {
    flex-direction: column;
    align-items: flex-start;
  }

  .section {
    padding-block: clamp(3.5rem, 12vw, 5rem);
  }

  .cta-band {
    padding: 2.4rem 1.4rem;
    border-radius: var(--radius-m);
  }

  .filter-bar {
    overflow-x: auto;
    flex-wrap: nowrap;
    padding-bottom: 0.4rem;
  }
}

/* Nav toggle active state (JS adds .is-open on body) */
.nav-open .nav-toggle span:nth-child(1) {
  transform: translateY(6.5px) rotate(45deg);
}

.nav-open .nav-toggle span:nth-child(2) {
  opacity: 0;
}

.nav-open .nav-toggle span:nth-child(3) {
  transform: translateY(-6.5px) rotate(-45deg);
}
