/* Original photographs on the Abbruch & Rueckbau service page. */
.bestand-gallery { padding: 50px 0 0; background: #fff; }
.bestand-gallery + .section { padding-top: 60px; }
.bestand-gallery-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 28px; margin-bottom: 26px; }
.bestand-gallery-heading > div { min-width: 0; }
.bestand-gallery-heading .eyebrow { display: flex; align-items: center; gap: 10px; margin: 0 0 14px; color: #7b6631; font-size: .6875rem; line-height: 1.5; letter-spacing: .13em; }
.bestand-gallery-heading .eyebrow::before { content: ""; flex: 0 0 24px; width: 24px; height: 2px; background: #c9a148; }
.bestand-gallery-heading h2 { margin: 0; font-size: clamp(1.875rem, 3vw, 2.75rem); line-height: 1.14; letter-spacing: -.04em; color: #1c2321; }
.bestand-gallery-heading > p { max-width: 255px; margin: 0 0 3px; color: #687360; font-size: .8125rem; line-height: 1.75; }
.bestand-gallery-grid { display: grid; grid-template-columns: minmax(0, 1.18fr) repeat(2, minmax(0, 1fr)); align-items: stretch; gap: 18px; }
.bestand-photo { display: block; min-width: 0; overflow: hidden; border: 1px solid #dfe5db; border-radius: 15px; background: #f6f8f3; color: #243025; transition: border-color .2s, box-shadow .2s; }
.bestand-photo figure { display: flex; flex-direction: column; min-width: 0; height: 100%; margin: 0; }
.bestand-photo-frame { position: relative; height: clamp(240px, 27vw, 355px); min-width: 0; overflow: hidden; background: #e0e5dc; }
.bestand-photo-frame img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .35s; }
.bestand-photo--hammer img { object-position: 55% 57%; }
.bestand-photo--machine img { object-position: 45% 54%; }
.bestand-photo--building img { object-position: 47% 55%; }
.bestand-photo-expand { position: absolute; right: 12px; top: 12px; display: grid; place-items: center; width: 32px; height: 32px; border: 1px solid #ffffff65; border-radius: 50%; color: #fff; background: #1c2321b8; backdrop-filter: blur(5px); }
.bestand-photo-expand svg { width: 15px; height: 15px; }
.bestand-photo figcaption { display: flex; align-items: center; gap: 11px; flex: 1; min-width: 0; padding: 16px; font-size: .875rem; font-weight: 500; line-height: 1.5; }
.bestand-photo-number { flex: 0 0 22px; color: #8a7743; font-size: .6875rem; letter-spacing: .035em; font-variant-numeric: tabular-nums; }
.bestand-photo figcaption > span:last-child { min-width: 0; overflow-wrap: break-word; }
.bestand-photo:focus-visible { outline: 3px solid #a9832d; outline-offset: 4px; }
@media (hover: hover) and (pointer: fine) {
  .bestand-photo:hover { border-color: #b5bfaa; box-shadow: 0 10px 28px #2230200b; }
  .bestand-photo:hover img { transform: scale(1.025); }
}
@media (max-width: 1000px) {
  .bestand-gallery-grid { gap: 14px; }
  .bestand-photo figcaption { gap: 8px; padding: 14px; font-size: .8125rem; }
}
@media (max-width: 700px) {
  .bestand-gallery { padding-top: 36px; }
  .bestand-gallery + .section { padding-top: 44px; }
  .bestand-gallery-heading { display: block; margin-bottom: 22px; }
  .bestand-gallery-heading > p { max-width: none; margin: 13px 0 0; }
  .bestand-gallery-heading h2 { font-size: clamp(1.875rem, 6.5vw, 2.4rem); }
  .bestand-gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
  .bestand-photo--hammer { grid-column: 1 / -1; }
  .bestand-photo { border-radius: 12px; }
  .bestand-photo-frame { height: clamp(140px, 32vw, 215px); }
  .bestand-photo--hammer .bestand-photo-frame { height: clamp(245px, 64vw, 385px); }
  .bestand-photo--hammer img { object-position: 54% 57%; }
  .bestand-photo figcaption { align-items: flex-start; padding: 12px; font-size: .8125rem; }
  .bestand-photo-number { flex-basis: 17px; padding-top: 2px; font-size: .625rem; }
  .bestand-photo-expand { right: 9px; top: 9px; width: 29px; height: 29px; }
}
@media (max-width: 380px) {
  .bestand-gallery-grid { gap: 10px; }
  .bestand-photo figcaption { gap: 6px; padding: 11px 9px; font-size: .75rem; }
  .bestand-photo--hammer .bestand-photo-frame { height: 250px; }
}
@media (prefers-reduced-motion: reduce) {
  .bestand-photo, .bestand-photo-frame img { transition: none; }
  .bestand-photo:hover img { transform: none; }
}
