/* Containers, grids, section wrappers */
.container {
  width: 100%;
  max-width: var(--container-max);
  margin: 0 auto;
  padding-left: var(--container-padding);
  padding-right: var(--container-padding);
}

.section-block {
  padding-top: var(--section-padding);
  padding-bottom: var(--section-padding);
}

.two-col {
  display: grid;
  gap: clamp(2rem, 4vw, 3.5rem);
  align-items: center;
}

@media (min-width: 64rem) {
  .two-col {
    grid-template-columns: 1fr 1fr;
  }
}

.hero-grid {
  display: grid;
  gap: clamp(2.5rem, 6vw, 3.75rem);
  align-items: center;
  min-height: calc(100svh - var(--nav-height));
  padding-top: calc(var(--nav-height) + 1.5rem);
  padding-bottom: 2.5rem;
}

@media (max-width: 63.9375rem) {
  .hero-grid {
    min-height: auto;
    gap: 1.5rem;
    padding-top: calc(var(--nav-height) + 1.5rem);
    padding-bottom: 1.25rem;
  }
}

@media (min-width: 64rem) {
  .hero-grid {
    grid-template-columns: minmax(0, 1.18fr) minmax(0, 0.82fr);
    min-height: calc(100svh - var(--nav-height));
    padding-top: calc(var(--nav-height) + 2rem);
    align-items: stretch;
  }
}

.services-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(1rem, 2.5vw, 2rem);
}

@media (min-width: 48rem) {
  .services-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 64rem) {
  .services-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (min-width: 80rem) {
  .services-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

/* Our Work — masonry flow with offset columns */
.work-gallery {
  column-count: 1;
  column-gap: clamp(0.9rem, 2vw, 1.3rem);
}

@media (min-width: 40rem) {
  .work-gallery {
    column-count: 2;
  }
}

@media (min-width: 64rem) {
  .work-gallery {
    column-count: 3;
  }
}

@media (min-width: 90rem) {
  .work-gallery {
    column-count: 4;
  }
}

/* Keep cards visually larger when 4 columns are active by widening only this section */
#work .container {
  max-width: 92rem;
}

.why-grid {
  display: grid;
  gap: clamp(1.25rem, 3vw, 2rem);
  grid-template-columns: 1fr;
}

@media (min-width: 48rem) {
  .why-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 64rem) {
  .why-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.testimonials-grid {
  display: grid;
  gap: clamp(1.25rem, 3vw, 2rem);
  grid-template-columns: 1fr;
}

@media (min-width: 48rem) {
  .testimonials-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.contact-grid {
  display: grid;
  gap: clamp(2rem, 5vw, 3.5rem);
}

@media (min-width: 64rem) {
  .contact-grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
    align-items: start;
  }
}

.footer-grid {
  display: grid;
  gap: clamp(1.25rem, 3vw, 2rem);
  padding-top: 2rem;
  padding-bottom: 1.25rem;
}

@media (min-width: 48rem) {
  .footer-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: center;
  }
}

.service-area-layout {
  display: grid;
  gap: clamp(2rem, 4vw, 3rem);
  align-items: start;
}

@media (min-width: 64rem) {
  .service-area-layout {
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    align-items: center;
  }
}
