/* Ingenieur- und Planungsbüros: Kopf mit Foto (wie Energie), Soll/Ist-Lageplan, zwei Wege */
.ib-hero h1 { max-width: none; }
.ib-hero h1 span { display: block; white-space: nowrap; }
@media (max-width: 420px) { .ib-hero h1 { font-size: 32px; } }
@media (max-width: 360px) { .ib-hero h1 { font-size: 27px; } }

/* Kopf: Planung liegt als Blatt über dem Gelände (isometrisch wie die Dienstleistungsseite) */
.ib-iso { margin: 0; }
.ib-iso svg { display: block; width: 100%; height: auto; overflow: visible; }
.ib-iso-face { fill: #fff; stroke: var(--c-line); stroke-width: 1.2; vector-effect: non-scaling-stroke; }
.ib-iso-face-top { stroke: var(--c-accent); stroke-width: 1.5; }
.ib-iso-slab { fill: #E4EAE6; }
.ib-iso-slab-top { fill: #D3E8DA; }
.ib-iso-strasse { fill: none; stroke: #E2E8E4; stroke-width: 22; }
.ib-iso-haus { fill: #EDF1EE; stroke: var(--c-line); stroke-width: 1; vector-effect: non-scaling-stroke; }
.ib-iso-baum { fill: #CFE6D6; stroke: #7CC694; stroke-width: 1.5; vector-effect: non-scaling-stroke; }
.ib-iso-ist { fill: none; stroke: var(--c-accent); stroke-width: 4.5; stroke-linejoin: round; stroke-linecap: round; }
.ib-iso-pt { fill: var(--c-accent); stroke: #fff; stroke-width: 1.5; }
.ib-iso-stab { stroke: var(--c-dark); stroke-width: 2.5; }
.ib-iso-antenne { fill: #fff; stroke: var(--c-dark); stroke-width: 2; }
.ib-iso-kante { fill: none; stroke: #B5C0BA; stroke-width: 1; vector-effect: non-scaling-stroke; }
.ib-iso-umriss { fill: none; stroke: #B5C0BA; stroke-width: 1; vector-effect: non-scaling-stroke; }
.ib-iso-soll { fill: none; stroke: var(--c-dark); stroke-width: 2.5; stroke-dasharray: 6 5; }
.ib-iso-schacht { fill: #fff; stroke: var(--c-dark); stroke-width: 1.5; vector-effect: non-scaling-stroke; }
.ib-iso-kopf { fill: none; stroke: var(--c-dark); stroke-width: 1; vector-effect: non-scaling-stroke; }
.ib-iso-lote line { stroke: var(--c-accent-deep); stroke-width: 1.5; stroke-dasharray: 2 6; stroke-linecap: round; }
.ib-iso-tag line { stroke: var(--c-dark); stroke-width: 1; }
.ib-iso-tag text { font: 500 17px/1 var(--font-display); fill: var(--c-dark); }
.ib-iso-tag .ib-iso-n { font: 500 11px/1 var(--font-mono); letter-spacing: .14em; fill: var(--c-gray); }
.ib-iso-legende { display: none; }
@media (prefers-reduced-motion: no-preference) {
  .ib-iso-lage, .ib-iso-lote, .ib-iso-tag { opacity: 0; animation: ib-lage .9s cubic-bezier(.2,.7,.2,1) forwards; animation-delay: calc(.2s + var(--i) * 1.1s); }
  .ib-iso-lote, .ib-iso-tag { animation-name: ib-ein; }
  .ib-iso-tag { animation-delay: calc(.7s + var(--i) * 1.1s); }
}
@keyframes ib-lage { from { opacity: 0; transform: translateY(-18px); } to { opacity: 1; transform: none; } }
@keyframes ib-ein { from { opacity: 0; } to { opacity: 1; } }
@media (max-width: 1100px) { .ib-iso { max-width: 640px; } }
@media (max-width: 600px) {
  .ib-iso-tag { display: none; }
  .ib-iso { overflow: hidden; }
  .ib-iso svg { width: 138%; max-width: none; }
  .ib-iso-legende { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 16px; margin-top: 16px; font: 500 14px/1.3 var(--font-display); color: var(--c-dark); }
  .ib-iso-legende b { display: block; font: 500 11px/1.6 var(--font-mono); letter-spacing: .14em; color: var(--c-gray); }
}

/* Workflow: Feldtablet mit dem Lageplan auf dem Bildschirm (tools/ingenieur-kopf/) */
.ib-tablet { margin: 0; border-radius: 6px; overflow: hidden; background: var(--c-bg-light); }
.ib-tablet { aspect-ratio: 4 / 3; }
.ib-tablet img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; }

/* Zwei Wege: Kacheln mit gleicher Zeilenhöhe (Subgrid) */
.ib-wege { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.ib-weg { display: grid; grid-row: span 5; grid-template-rows: subgrid; gap: 16px; background: #fff; border-top: 1px solid var(--c-dark); padding: 28px 28px 32px; }
.ib-weg .eyebrow { margin: 0; }
.ib-weg h3 { font: 500 24px/1.3 var(--font-display); color: var(--c-dark); margin: 0; text-wrap: pretty; }
.ib-weg p { margin: 0; color: var(--c-dark-2); }
.ib-weg ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; font-size: 15px; }
.ib-weg li { display: grid; grid-template-columns: 14px minmax(0, 1fr); gap: 10px; }
.ib-weg li::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--c-accent); margin-top: 9px; }
.ib-weg .link-arrow { align-self: end; }
@media (max-width: 820px) { .ib-wege { grid-template-columns: 1fr; } .ib-weg { grid-row: auto; grid-template-rows: none; } }
