.ph-block {
  aspect-ratio: 4 / 3;
  width: 100%;
  height: auto;
  background:
    repeating-linear-gradient(45deg, var(--line) 0 1px, transparent 1px 14px),
    var(--card);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-3);
}

img.ph-block {
  padding: 0;
  background: none;
  object-fit: cover;
}

.gallery {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 34px;
  border-top: none !important;
}

.gallery figure {
  margin: 0;
}

.gallery figcaption {
  margin-top: var(--space-4);
  display: flex;
  justify-content: space-between;
  font-size: 13px;
}

.gallery figcaption .cat {
  font-family: var(--f-mono);
  color: var(--wood-dark);
  text-transform: uppercase;
  letter-spacing: .04em;
}

.gallery[data-filtered] figure[hidden] {
  display: none;
}

@media (max-width: 860px) {
  .gallery {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 560px) {
  .gallery {
    grid-template-columns: minmax(0, 1fr);
  }
}

.clients {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-4);
}

.clients li {
  font-family: var(--f-mono);
  font-size: 13px;
  letter-spacing: .03em;
  border: 1px solid var(--line-strong);
  padding: var(--space-3) var(--space-5);
  color: var(--ink-soft);
  text-transform: uppercase;
}

.values {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 40px;
}

.value h3 {
  font-size: 18px;
  margin-bottom: var(--space-3);
}

.value p {
  color: var(--ink-soft);
  font-size: 14.5px;
}

.value .idx {
  font-family: var(--f-mono);
  font-size: 12px;
  color: var(--wood-dark);
  display: block;
  margin-bottom: var(--space-3);
}

@media (max-width: 760px) {
  .values {
    grid-template-columns: minmax(0, 1fr);
  }
}

.specialty-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 22px;
}

.specialty-card {
  border: 1px solid var(--line-strong);
  background: var(--card);
  display: flex;
  flex-direction: column;
}

.specialty-card .ph-block {
  aspect-ratio: 4 / 3;
}

.specialty-card .specialty-body {
  padding: var(--space-5) var(--space-5) 22px;
  display: flex;
  flex-direction: column;
  flex: 1;
}

.specialty-card h3 {
  font-size: 16px;
  margin-bottom: var(--space-2);
}

.specialty-card p {
  font-size: 13.5px;
  color: var(--ink-soft);
  flex: 1;
  margin-bottom: var(--space-4);
}

.specialty-arrow {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  border: 1px solid var(--line-strong);
  display: flex;
  align-items: center;
  justify-content: center;
  align-self: flex-end;
  transition: background var(--ease), border-color var(--ease);
}

.specialty-arrow svg {
  width: 15px;
  height: 15px;
  color: var(--ink);
}

.specialty-card:hover .specialty-arrow {
  background: var(--ink);
  border-color: var(--ink);
}

.specialty-card:hover .specialty-arrow svg {
  color: var(--paper);
}

@media (max-width: 1080px) {
  .specialty-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .specialty-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 460px) {
  .specialty-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}


.featured-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-6);
}

.featured-card .ph-block {
  aspect-ratio: 4 / 3;
  border-radius: var(--radius);
  transition: var(--ease-lift);
}

.featured-card:hover .ph-block {
  transform: translateY(-3px);
  box-shadow: var(--shadow-card-hover);
}

.featured-card .featured-body {
  padding: var(--space-4) 0 0;
}

.featured-card h3 {
  font-size: 15px;
  margin-bottom: 2px;
}

.featured-card .loc {
  font-family: var(--f-mono);
  font-size: 11.5px;
  color: var(--ink-soft);
  text-transform: uppercase;
  letter-spacing: .03em;
}

.featured-card .spec {
  font-size: 13px;
  color: var(--ink-soft);
  margin-top: var(--space-2);
}

@media (max-width: 1080px) {
  .featured-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 460px) {
  .featured-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

.service-list {
  display: grid;
  gap: 0;
  border-top: 1px solid var(--line-strong);
}

.service-list li {
  border-bottom: 1px solid var(--line-strong);
  padding: 26px 0;
  display: grid;
  grid-template-columns: 70px minmax(0, 1fr) minmax(0, 1.2fr);
  gap: var(--space-6);
  align-items: baseline;
}

.service-list .idx {
  font-family: var(--f-mono);
  color: var(--wood-dark);
  font-size: 13px;
}

.service-list h3 {
  font-size: 19px;
}

.service-list p {
  margin: 0;
  color: var(--ink-soft);
  font-size: 14.5px;
}

@media (max-width: 760px) {
  .service-list li {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-2);
  }
}

.specialty-card {
  border: none;
  border-radius: var(--radius-card);
  overflow: hidden;
  background: var(--card);
  box-shadow: var(--shadow-card);
  transition: var(--ease-lift);
}

.specialty-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-card-hover);
}

.specialty-arrow {
  border-color: var(--line-strong);
  transition: background var(--ease), border-color var(--ease), transform .3s ease;
}

.specialty-card:hover .specialty-arrow {
  transform: translateY(-2px);
}