/* Real project photos: show the complete frame, including portrait details. */
.photo-open { position: relative; display: block; color: inherit; background: #eaf2f7; }
.photo-open:focus-visible { outline: 3px solid #1597e5; outline-offset: -4px; }
.photo-full-frame .photo-open { overflow: hidden; }
.object-photo.photo-full-frame img { height: clamp(280px, 35vw, 460px); aspect-ratio: auto; object-fit: contain; background: #eaf2f7; }
.object-photo.photo-full-frame:hover img { transform: none; }
.photo-open-hint { position: absolute; right: 10px; bottom: 10px; padding: 7px 11px; border-radius: 9px; background: #073653; color: #fff; font-size: 12px; font-weight: 700; line-height: 1.4; }
.service-hero-media.photo-hero-full { aspect-ratio: auto; align-self: center; }
.photo-hero-full .photo-open { background: #073653; }
.service-hero-media.photo-hero-full img { display: block; width: 100%; height: min(55vh, 470px); object-fit: contain; }
.service-hero-media.photo-hero-full figcaption { position: static; padding: 16px 20px; background: #073653; }
.photo-hero-grid-with-note > .hero-card { grid-column: 1 / -1; grid-row: 2; }
.service-card-media.photo-card-full img { object-fit: contain; }
.service-card:hover .photo-card-full img { transform: none; }
.photo-jump-links { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 32px; }
.photo-jump-links a { display: inline-flex; align-items: center; min-height: 44px; padding: 10px 16px; border: 1px solid #b6d9ee; border-radius: 12px; color: #075f9b; background: #fff; font-weight: 700; text-decoration: none; }
.photo-jump-links a:hover { background: #eaf6fd; }
.photo-jump-links a:focus-visible { outline: 3px solid #1597e5; outline-offset: 3px; }
.photo-group { scroll-margin-top: 112px; margin-top: 42px; }
.photo-group h3 { margin-bottom: 12px; }
.photo-group > p { max-width: 780px; }
.photo-service-links { display: flex; flex-wrap: wrap; gap: 8px 22px; margin-top: 12px; }
.photo-service-links .text-link, .photo-group > .text-link { display: inline-flex; align-items: center; min-height: 44px; margin-top: 12px; }
@media (max-width: 1000px) {
  .photo-hero-grid-with-note > .hero-card { grid-column: auto; grid-row: auto; }
  .photo-hero-grid-with-note > .photo-hero-full { grid-row: 2; }
}
@media (max-width: 640px) {
  .service-hero-media.photo-hero-full img { height: min(65vh, 420px); }
  .object-photo.photo-full-frame img { height: min(120vw, 420px); aspect-ratio: auto; }
  .photo-jump-links { gap: 8px; }
  .photo-jump-links a { padding: 10px 12px; font-size: 14px; }
  .photo-group { scroll-margin-top: 92px; margin-top: 30px; }
}
