/* Source photography follows the existing newspaper grid; no empty image slots. */
.story-photo{display:block;overflow:hidden;background:var(--paper);margin:0 0 13px;color:inherit}
.story-photo img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain;border:1px solid var(--rule)}
.front-lead-photo{margin:0 0 17px}.front-briefs .story-photo{margin-top:3px}.front-story-grid .story-photo{margin-top:6px}
.article-photo-lead{margin:25px 0 30px}.article-photo-lead img{display:block;width:auto;max-width:100%;margin:0 auto;height:auto;aspect-ratio:16/9;object-fit:contain;border:1px solid var(--rule)}.article-photo-lead figcaption{font:12px/1.65 var(--sans);color:var(--ink-secondary);margin-top:9px;max-width:76ch}.article-photo-lead .quote-links{margin-top:6px}
.record-card.has-photo{display:grid;grid-template-columns:53px minmax(0,1fr) 190px;gap:20px;align-items:start}.record-thumbnail{margin:4px 0 0;min-width:0}
.primary-meeting-report .story-photo,.meeting-main-report .story-photo{max-width:680px}
.community-coverage .story-photo,.school-meeting-reports .story-photo{max-width:580px}
.support-local-journalism{border-top:1px solid var(--rule);padding-top:8px!important;margin-top:8px!important}
.herald-donate{display:inline-block;font-weight:700;margin-top:3px}
.sports-herald{border-left:3px solid var(--accent);padding:5px 0 5px 18px;margin:25px 0}.sports-herald h2{font:700 20px/1.3 var(--serif-display);margin:0 0 7px}.sports-herald p{margin:0}
@media(max-width:700px){.record-card.has-photo{grid-template-columns:43px minmax(0,1fr);gap:12px}.record-card .record-thumbnail{grid-column:2;margin-top:0;max-width:100%}.article-photo-lead{margin:20px 0 25px}.front-lead-photo{margin-bottom:14px}.article-photo-lead figcaption{font-size:11px}}
