/* Stage 4.2: editorial layouts built on the existing lf-theme typography. */
.lf-content-page { min-height: 55vh; }
.lf-content-inner { padding-top: clamp(24px, 4vw, 64px); padding-bottom: clamp(60px, 6vw, 100px); }
.lf-content-page .single-news-page__title { max-width: 100%; overflow-wrap: anywhere; }
.lf-content-eyebrow { font-size: 15px; margin-bottom: 24px; }
.lf-content-eyebrow a { color: inherit; }
.lf-content-cover { margin: 35px 0; }
.lf-content-cover img { display: block; width: 100%; height: auto; max-height: 600px; object-fit: contain; border-radius: 12px; }
.lf-project-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 24px; }
.lf-project-tags span { border: 1px solid #ccc; border-radius: 30px; padding: 7px 12px; }
.lf-content-body { max-width: 960px; }
.lf-content-body > * { margin-bottom: 22px; }
.lf-content-body img { max-width: 100%; height: auto; }
.lf-content-accent, .lf-content-callout { border-left: 4px solid currentColor; padding: 18px 24px; margin: 32px 0; background: rgba(125,125,125,.07); }
.lf-content-gallery, .lf-content-feature-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 16px; margin: 26px 0; }
.lf-content-gallery img, .lf-content-feature img, .lf-content-tile img, .lf-content-video img { display: block; width: 100%; height: auto; object-fit: cover; border-radius: 8px; }
.lf-content-tile a, .lf-content-feature a { color: inherit; }
.lf-content-tile strong, .lf-content-tile span { display: block; margin: 8px 0; }
.lf-content-features, .lf-content-buttons, .lf-report-years { margin: 32px 0; }
.lf-content-buttons { display: flex; flex-wrap: wrap; gap: 12px; }
.lf-content-button { display: inline-block; border: 1px solid currentColor; padding: 10px 18px; border-radius: 8px; color: inherit; text-decoration: none; cursor: pointer; }
.lf-content-button:hover, .lf-content-button:focus-visible { text-decoration: underline; }
.lf-content-detail { max-width: 100%; }
.lf-content-detail summary { list-style: none; }
.lf-content-detail summary::-webkit-details-marker { display: none; }
.lf-content-modal-body { padding: 20px; border: 1px solid #aaa; border-radius: 10px; margin-top: 10px; }
.lf-content-video a { color: inherit; }
.lf-content-archive-grid, .lf-report-months { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 24px; margin-top: 32px; }
.lf-content-archive-card, .lf-report-month { border: 1px solid rgba(125,125,125,.35); padding: 22px; border-radius: 12px; }
.lf-content-archive-card img { display: block; width: 100%; max-height: 250px; object-fit: cover; border-radius: 8px; }
.lf-content-archive-card h2 { font-size: clamp(20px, 2.6vw, 28px); margin: 14px 0; }
.lf-content-archive-card a { color: inherit; text-decoration: none; }
.lf-report-year { margin: 48px 0; }
.lf-report-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 14px; margin: 32px 0; }
.lf-report-stats > div { padding: 22px; border: 1px solid rgba(125,125,125,.3); border-radius: 12px; }
.lf-report-stats span, .lf-report-stats strong, .lf-report-stats small { display: block; }
.lf-report-stats strong { font-size: clamp(21px, 3vw, 32px); margin: 9px 0; }
.lf-report-hero { display: flex; gap: 26px; align-items: center; margin: 32px 0; }
.lf-report-hero img { width: min(220px, 35%); height: auto; border-radius: 12px; }
@media (max-width: 640px) { .lf-report-hero { flex-direction: column; align-items: flex-start; } .lf-report-hero img { width: 100%; max-width: 230px; } }
