/* Projektbeispiel-Galerie (echte Baustellenfotos). Nutzt die Farbvariablen der jeweiligen Seite. */
.proj { margin-top: 40px; }
.proj-head { max-width: 760px; margin-bottom: 18px; }
.proj-head h2, .proj-head h3 { font-size: 1.3rem; margin: 6px 0 8px; }
.proj-head p { color: var(--ink-2); }
.proj-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
.proj-grid.compact { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.proj-grid figure { margin: 0; position: relative; border-radius: var(--radius, 14px); overflow: hidden; background: var(--paper, #faf7f2); }
.proj-grid img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; }
.proj-grid figcaption { position: absolute; left: 8px; bottom: 8px; right: 8px; width: fit-content; max-width: calc(100% - 16px);
  background: rgba(35, 31, 32, .8); color: #fff; font-size: .8rem; line-height: 1.35; padding: 4px 8px; border-radius: 6px; }
.proj-grid figcaption .d { white-space: nowrap; }
.proj-note { font-size: .82rem; color: var(--muted); margin-top: 10px; }
.proj-link { display: inline-block; margin-top: 14px; font-weight: 600; color: var(--red-dark, #9a1422); text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 759px) {
  .proj-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .proj-grid figcaption { font-size: .74rem; left: 6px; bottom: 6px; max-width: calc(100% - 12px); padding: 3px 7px; }
}
@media (max-width: 599px) { .proj-grid.compact { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 600px) and (max-width: 759px) { .proj-grid.compact { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

/* Vorher/Nachher-Regler im Hochformat-Motiv (Paket 5): quadratisch, damit Giebel und Sockel sichtbar bleiben */
.ba.ba-quadrat { aspect-ratio: 1 / 1; width: 100%; max-width: 640px; margin-inline: auto; }
.ba-note { max-width: 640px; margin: 8px auto 0; text-align: center; }

/* Bauverlauf (Paket 6) */
.proj-step { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 10px; font-size: 1.05rem; margin: 26px 0 10px; }
.proj-step .n { display: inline-grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--red, #BF1A2C); color: #fff; font-size: .82rem; flex: none; }
.proj-step small { font-weight: 400; color: var(--muted); font-size: .85rem; }
.proj-aufbau { margin-top: 28px; padding: 18px 22px; border: 1px solid var(--line, #e9e1d4); border-left: 3px solid var(--red, #BF1A2C); border-radius: var(--radius, 14px); max-width: 860px; }
.proj-aufbau h4 { font-size: 1.05rem; margin: 0 0 8px; }
.proj-step, .proj-aufbau h4 { font-family: "Manrope", sans-serif; }
.proj-aufbau ol { list-style: decimal; margin: 0; padding-left: 1.3em; }
.proj-aufbau li { margin: 6px 0; color: var(--ink-2); }
.proj-aufbau li b { color: var(--ink); }

/* Paket 7: erstes Befund-Foto am Handy ueber die volle Breite (9 Bilder, Desktop 3x3) */
@media (max-width: 759px) { .proj-grid.lead > figure:first-child { grid-column: 1 / -1; } }
