/* (A) Fit real work to photo slots without enlarging the tiny exterior pair. */
.ln-job-picture{display:block;width:100%;max-width:1000px;margin-inline:auto}
/* (B) Reserve full-frame space before decode; the legacy service rule is 5/4. */
.n-home .ln-job-picture img{display:block;width:100%;height:auto;aspect-ratio:auto 4/3;object-fit:contain}
.n-home .ln-work-photos img[height="1000"],.n-home .ln-work-photos img[height="1200"]{aspect-ratio:auto 3/4}
.n-home .ln-small-exterior{max-width:320px;background:var(--n-char)}
.n-home .ln-small-exterior img{max-width:320px;aspect-ratio:4/3}
.ln-service-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;align-items:start}
.n-home .ln-craft-service img{height:auto;aspect-ratio:5/4;object-fit:contain;background:var(--n-char)}
.ln-photo-caption{display:block;padding:8px 16px;font-size:11px;line-height:1.4;color:var(--n-stone)}
.ln-work-photos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:28px}
.ln-job-figure{min-width:0;margin:0;align-self:start;overflow:hidden}
.ln-job-figure figcaption{font-size:12px;line-height:1.5;padding:10px 0;color:var(--muted)}
.ln-work-photos .ln-job-picture img{height:auto;width:100%;object-fit:contain;background:var(--paper-2)}
.ln-work-photos .ln-job-picture:has(img[height="1000"]),.ln-work-photos .ln-job-picture:has(img[height="1200"]){max-width:330px}
.ln-exterior-pair{display:grid;grid-template-columns:repeat(2,minmax(0,320px));gap:12px;max-width:652px;margin-top:32px}
.ln-exterior-pair .ln-job-picture,.ln-exterior-pair img{width:100%;max-width:320px;height:auto;aspect-ratio:4/3}
.n-season-photo.ln-job-figure{height:auto;max-width:1000px}.n-season-photo.ln-job-figure img{height:auto;object-fit:contain}
.n-season-photo.ln-job-figure figcaption{padding:12px 16px;color:var(--n-stone)}
@media(max-width:599px){.ln-work-photos{gap:18px 12px}.ln-work-photos .ln-job-figure:last-child{grid-column:1/-1}.ln-job-figure figcaption{font-size:11px}}

/* (C) Missing job imagery is an intentional compact service card, with no reserved photo area. */
.n-home .chip.ln-service-text{justify-content:flex-start;background:var(--n-char)}
.n-home .ln-service-text .chip-code{position:static;display:block;padding:16px 16px 0;color:var(--n-stone)}
.n-home .ln-service-text .chip-label{display:flex;flex:1;flex-direction:column;box-shadow:none}
.n-home .ln-service-text .chip-label em{margin-top:auto;padding-top:16px}
