/* Shared photo layouts for the service overview and detail pages. */
.service-photos .hero { background: var(--bg-alt); }
.service-photos .hero::before { display: none; }
.service-photos .hero-grid { align-items: start; }
.service-photos .service-hero-photo {
  margin: 0;
  padding: 0;
  min-width: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}
.service-photos .service-hero-photo > img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  border-radius: 8px;
}
.service-photos .service-hero-photo .hero-note,
.service-photos .service-hero-photo .caption {
  position: static;
  margin: 18px 0 0;
  padding: 0 0 0 18px;
  border: 0;
  border-left: 3px solid var(--accent);
  border-radius: 0;
  background: transparent;
  backdrop-filter: none;
}
.service-photos .service-hero-photo .hero-note h3,
.service-photos .service-hero-photo .caption h3 { font-size: 26px; line-height: 1.2; margin: 0 0 8px; }
.service-photos .service-hero-photo .hero-note p,
.service-photos .service-hero-photo .caption p { font-size: 16px; line-height: 1.6; margin: 0; }
.service-photos .service-gallery { margin-top: 40px; }
.service-photos .service-gallery h3 {
  font-size: 28px;
  line-height: 1.25;
  margin: 0 0 24px;
  color: var(--primary-dark);
}
.service-photos .service-photo-grid {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 24px;
}
.service-photos .service-photo { margin: 0; min-width: 0; }
.service-photos .service-photo img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  border-radius: 8px;
}
.service-photos .service-photo figcaption {
  font-size: 15px;
  line-height: 1.5;
  margin-top: 12px;
  color: var(--muted);
}
.service-photos .service-photo-card {
  padding: 0;
  border-radius: 8px;
  overflow: hidden;
}
.service-photos .service-photo-card > img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  flex: 0 0 auto;
}
.service-photos .service-card-copy {
  padding: 24px;
  display: flex;
  flex-direction: column;
  flex: 1;
}
.service-photos .service-card-copy h3 { font-size: 28px; line-height: 1.2; }
.service-photos .service-card-copy .text-link { margin-top: auto; }
@media (min-width: 769px) {
  .service-photos .hero h1 { font-size: 56px; line-height: 1.12; letter-spacing: 0; }
  .service-photos .hero h1 span { white-space: normal; }
  .service-photos .hero-grid { grid-template-columns: minmax(0,1.05fr) minmax(0,.95fr); gap: 40px; }
  .service-photos main h2 { font-size: 44px; line-height: 1.15; }
}
@media (min-width: 769px) and (max-width: 1100px) {
  .service-photos .hero-grid { grid-template-columns: 1fr; }
  .service-photos .service-hero-photo { max-width: 850px; }
}
@media (max-width: 768px) {
  .service-photos .service-photo-grid { grid-template-columns: 1fr; gap: 28px; }
  .service-photos .service-gallery { margin-top: 28px; }
  .service-photos .service-photo-card { padding: 0 !important; border-radius: 8px !important; }
  .service-photos .service-card-copy { padding: 22px; }
  .service-photos .service-photo figcaption { font-size: 14px; }
}

@media (max-width: 768px) {
  .service-photos .hero { padding: 40px 0 !important; }
  .service-photos .hero-grid { padding-block: 0 !important; }
  .service-photos .hero-grid > :first-child { display: contents; }
  .service-photos .hero-grid > :first-child > .crumb { order: -4; }
  .service-photos .hero-grid > :first-child > h1 { order: -3; margin-top: 0; }
  .service-photos .hero-grid > :first-child > .lead,
  .service-photos .hero-grid > :first-child > .desc:has(> strong) { order: -2; margin-bottom: 0; }
  .service-photos .service-hero-photo { order: -1; }
  .service-photos .hero-grid > :first-child > .desc { margin-bottom: 0; }
  .service-photos .hero-grid > :first-child > .actions { margin-top: 0; }
}