/* Scoped project photographs; retain the existing site's typography and palette. */
.pj-projects {
  --project-gap: 1rem;
  --project-space: 2rem;
  --project-caption: 0.875rem;
  --project-heading: 1.125rem;
  margin-block: var(--project-space);
  scroll-margin-top: 7rem;
}
.pj-project-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--project-gap);
}
.pj-project-grid figure { margin: 0; min-width: 0; }
.pj-project-photo { display: block; background: var(--cream, #f9f7f2); }
.pj-project-photo:focus-visible { outline: 3px solid var(--navy); outline-offset: 4px; }
.pj-project-photo img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  object-position: center;
}
.pj-project-grid figcaption { padding-block: var(--project-gap); }
.service-body .pj-project-grid h3 {
  font: inherit;
  font-size: var(--project-heading);
  font-weight: 700;
  line-height: 1.35;
  color: var(--navy);
  margin: 0 0 0.5rem;
}
.service-body .pj-project-grid figcaption p {
  font-size: var(--project-caption);
  line-height: 1.6;
  margin: 0;
}
@media (max-width: 600px) {
  .pj-project-grid { grid-template-columns: minmax(0, 1fr); gap: var(--project-space); }
  .pj-project-photo img { aspect-ratio: auto; }
}
