/* Editorial landing pages. Content remains editable in WordPress. */
.sp-overview { word-break: keep-all; overflow-wrap: anywhere; }
.sp-overview section { padding-block: clamp(2.5rem, 5vw, 5rem); border-top: 1px solid var(--sp-color-border); }
.sp-overview-intro h2 { font-size: var(--sp-text-section-title); line-height: 1.2; font-weight: 550; }
.sp-overview p { max-width: 65ch; color: var(--sp-color-text-secondary); }
.sp-overview-label { font-size: .875rem; letter-spacing: .08em; }
.sp-overview-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem; margin-top: 2.5rem; }
.sp-overview-grid article { padding-top: 1.5rem; border-top: 1px solid var(--sp-color-border); }
.sp-overview h3 { font-size: 1.25rem; line-height: 1.4; }
.sp-overview a { text-decoration: underline; text-underline-offset: .2em; display: inline-block; padding-block: .65rem; }
.sp-overview a:focus-visible { outline: 3px solid var(--sp-color-navy); outline-offset: 4px; }
.sp-project-filter { position: sticky; top: 0; z-index: 20; display: grid; gap: 1rem; padding-block: 1rem; border-block: 1px solid var(--sp-color-border); background: rgba(255, 255, 255, .96); backdrop-filter: blur(12px); }
.admin-bar .sp-project-filter { top: 32px; }
.sp-project-filter__controls { display: flex; gap: .5rem; overflow-x: auto; padding: .2rem .15rem .45rem; scrollbar-width: thin; }
.sp-project-filter__button { flex: 0 0 auto; min-height: 44px; padding: .65rem 1rem; border: 1px solid var(--sp-color-border); border-radius: 999px; background: #fff; color: var(--sp-color-navy); font: inherit; font-size: .875rem; cursor: pointer; }
.sp-project-filter__button span { color: var(--sp-color-muted); font-size: .75rem; }
.sp-project-filter__button:hover { border-color: var(--sp-color-navy); }
.sp-project-filter__button[aria-pressed="true"] { border-color: var(--sp-color-navy); background: var(--sp-color-navy); color: #fff; }
.sp-project-filter__button[aria-pressed="true"] span { color: inherit; opacity: .72; }
.sp-project-filter__button:focus-visible { outline: 3px solid var(--sp-color-navy); outline-offset: 3px; }
.sp-project-filter__status { margin: 0; color: var(--sp-color-text-secondary); font-size: .8rem; }
.sp-overview > section[hidden] { display: none; }
.sp-overview-grid article[hidden] { display: none; }
.sp-overview[data-sp-project-view="all"] .sp-project-photos img[role="link"] { cursor: pointer; }
/* Uniform small thumbnails; original media remains uncropped. */
.sp-project-photos { display: grid; gap: 1rem; width: 100%; max-width: 280px; margin-block: 1.5rem; }
.sp-project-photos figure { margin: 0; }
.sp-project-photos img { display: block; width: 100%; max-width: 280px; height: auto; aspect-ratio: 4 / 3; object-fit: cover; object-position: center; }
.sp-project-photos figcaption { margin-top: .4rem; font-size: .8rem; color: var(--sp-color-text-secondary); }
.sp-overview .sp-gallery-open { min-height: 44px; padding-block: 12px; }
@media (max-width: 782px) { .admin-bar .sp-project-filter { top: 46px; } }
@media (max-width: 767px) { .sp-overview-grid { grid-template-columns: 1fr; } .sp-project-filter { margin-inline: calc(var(--sp-space-4) * -1); padding-inline: var(--sp-space-4); } }
