/* MurderFan Core block structure. Theme owns the visual personality. */
.mf-block-empty{padding:18px;border:1px dashed currentColor;opacity:.65}
.mf-block-heading{margin-top:0;margin-bottom:.85rem;line-height:1.18}
.mf-block-section .mf-block-items{display:grid;grid-template-columns:repeat(var(--mf-block-columns,3),minmax(0,1fr));gap:1rem}
.mf-block-section.mf-block-layout-list .mf-block-items,.mf-block-section.mf-block-layout-compact .mf-block-items{display:block}
.mf-block-story{min-width:0}
.mf-block-story-image{display:block;overflow:hidden}
.mf-block-story-image img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}
.mf-block-story h3{margin:.55rem 0 .25rem;line-height:1.22}
.mf-block-story p{margin:.25rem 0;line-height:1.5}
.mf-block-story-date,.mf-block-kicker,.mf-block-timeline-date{font-size:.78em;text-transform:uppercase;letter-spacing:.06em}
.mf-block-layout-list .mf-block-story,.mf-block-layout-compact .mf-block-story,.mf-block-latest.is-list .mf-block-story{display:grid;grid-template-columns:minmax(96px,28%) 1fr;gap:1rem;align-items:start;margin-bottom:1rem}
.mf-block-layout-compact .mf-block-story p{display:none}
.mf-block-featured-story{display:grid;grid-template-columns:minmax(140px,42%) 1fr;gap:1rem;align-items:center}
.mf-block-featured-story>img,.mf-block-featured-story>a img{width:100%;aspect-ratio:16/9;object-fit:cover}
.mf-block-featured-story h3{line-height:1.2}
.mf-block-featured-story p{line-height:1.5}
.mf-block-cta{display:inline-block;margin-top:.5rem}
.mf-block-latest.is-grid .mf-block-items{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}

/* Timeline: one semantic/clickable card per event. The image, date, title and
   optional excerpt are all inside the card; there are no nested image/title links. */
.mf-block-timeline-track{position:relative}
.mf-block-timeline.is-horizontal .mf-block-timeline-track{display:flex;gap:1rem;overflow-x:auto;scroll-snap-type:x proximity;padding:1.65rem 0 .5rem}
.mf-block-timeline.is-horizontal .mf-block-timeline-track:before{content:"";position:absolute;left:0;right:0;top:.43rem;border-top:1px solid currentColor;opacity:.35}
.mf-block-timeline-event{position:relative;min-width:190px;max-width:250px;scroll-snap-align:start}
.mf-block-timeline-dot{display:block;width:10px;height:10px;border-radius:50%;background:currentColor;position:absolute;left:.8rem;top:-1.57rem;z-index:2}
.mf-block-timeline-card{display:flex;flex-direction:column;height:100%;overflow:hidden;color:inherit;text-decoration:none;border:1px solid color-mix(in srgb,currentColor 18%,transparent);border-radius:.35rem;background:color-mix(in srgb,currentColor 3%,transparent);transition:transform 160ms ease,border-color 160ms ease,background-color 160ms ease}
a.mf-block-timeline-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,currentColor 38%,transparent);background:color-mix(in srgb,currentColor 6%,transparent)}
a.mf-block-timeline-card:focus-visible{outline:2px solid currentColor;outline-offset:3px}
.mf-block-timeline-card img{display:block;width:100%;aspect-ratio:2/3;object-fit:cover}
.mf-block-timeline-card-copy{padding:.7rem .75rem .8rem}
.mf-block-timeline-date{margin-bottom:.25rem}
.mf-block-timeline-card h3{font-size:1rem;line-height:1.2;margin:0}
.mf-block-timeline-card p{margin:.4rem 0 0;line-height:1.45}
.mf-block-timeline.is-vertical .mf-block-timeline-track{display:grid;gap:1rem}
.mf-block-timeline.is-vertical .mf-block-timeline-event{max-width:none;min-width:0;padding-left:1.65rem}
.mf-block-timeline.is-vertical .mf-block-timeline-event:before{content:"";position:absolute;left:4px;top:0;bottom:-1rem;border-left:1px solid currentColor;opacity:.35}
.mf-block-timeline.is-vertical .mf-block-timeline-event:last-child:before{bottom:50%}
.mf-block-timeline.is-vertical .mf-block-timeline-dot{left:0;top:.85rem}
.mf-block-timeline.is-vertical .mf-block-timeline-card{display:grid;grid-template-columns:minmax(90px,150px) 1fr}
.mf-block-timeline.is-vertical .mf-block-timeline-card:not(.has-image){grid-template-columns:1fr}
.mf-block-timeline.is-vertical .mf-block-timeline-card img{height:100%;aspect-ratio:2/3}

.mf-block-stat{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:110px;padding:.75rem 1rem;text-align:center}
.mf-block-stat strong{font-size:1.5rem;line-height:1}
.mf-block-stat span{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;margin-top:.35rem}
@media(max-width:782px){.mf-block-section .mf-block-items,.mf-block-latest.is-grid .mf-block-items{grid-template-columns:1fr 1fr}.mf-block-featured-story{grid-template-columns:1fr}}
@media(max-width:520px){.mf-block-section .mf-block-items,.mf-block-latest.is-grid .mf-block-items{grid-template-columns:1fr}.mf-block-layout-list .mf-block-story,.mf-block-layout-compact .mf-block-story,.mf-block-latest.is-list .mf-block-story{grid-template-columns:96px 1fr}.mf-block-timeline.is-vertical .mf-block-timeline-card{grid-template-columns:90px 1fr}}
