/* CGS Core block styles. Colours and spacing come from theme.json presets, with fallbacks. */
.cgs-collection__header { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; border-bottom: 2px solid var(--wp--preset--color--primary, #006238); margin-bottom: 1.25rem; padding-bottom: .4rem; }
.cgs-collection__heading, .cgs-featured__heading, .cgs-documents__heading, .cgs-related__heading { margin: 0; font-size: var(--wp--preset--font-size--large, 1.5rem); }
.cgs-collection__more { font-weight: 600; text-decoration: none; white-space: nowrap; }
.cgs-collection__more:hover, .cgs-collection__more:focus { text-decoration: underline; }
.cgs-collection__items { display: grid; gap: 1.5rem; }
.cgs-collection--cards .cgs-collection__items { grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr)); }
.cgs-collection--list .cgs-collection__items, .cgs-collection--compact .cgs-collection__items { grid-template-columns: 1fr; gap: 1rem; }
.cgs-collection--list .cgs-card { display: grid; grid-template-columns: minmax(0, 9rem) 1fr; gap: 1rem; align-items: start; }
.cgs-collection--list .cgs-card:not(:has(.cgs-card__media)) { grid-template-columns: 1fr; }
.cgs-collection--compact .cgs-card { border-bottom: 1px solid var(--wp--preset--color--border, #d9dcd8); padding-bottom: .75rem; }
.cgs-collection__empty { color: var(--wp--preset--color--muted, #565a5e); }

.cgs-card { display: flex; flex-direction: column; gap: .5rem; min-width: 0; }
.cgs-card__media { display: block; aspect-ratio: 16 / 9; overflow: hidden; background: var(--wp--preset--color--surface, #f4f6f3); border-radius: 4px; }
.cgs-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s ease; }
.cgs-card:hover .cgs-card__media img { transform: scale(1.02); }
.cgs-card__body > * { margin: 0; }
.cgs-card__body { display: flex; flex-direction: column; gap: .35rem; }
.cgs-card__kicker { font-size: .78rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--wp--preset--color--primary, #006238); }
.cgs-card__title { font-size: 1.12rem; line-height: 1.3; font-family: var(--wp--preset--font-family--heading, inherit); }
.cgs-card__title a { color: var(--wp--preset--color--ink, #1f2328); text-decoration: none; }
.cgs-card__title a:hover, .cgs-card__title a:focus { color: var(--wp--preset--color--primary, #006238); text-decoration: underline; }
.cgs-card__meta { font-size: .85rem; color: var(--wp--preset--color--muted, #565a5e); }
.cgs-card__excerpt { font-size: .95rem; color: var(--wp--preset--color--ink-soft, #3b3f43); }

.cgs-featured--lead { display: grid; gap: 1.5rem; grid-template-columns: 1fr; }
@media (min-width: 900px) { .cgs-featured--lead { grid-template-columns: 2fr 1fr; } }
.cgs-featured--lead .cgs-featured__heading { grid-column: 1 / -1; }
.cgs-featured__lead .cgs-card__title { font-size: clamp(1.5rem, 2.6vw, 2.2rem); }
.cgs-featured__rest { display: grid; gap: 1.25rem; align-content: start; }
.cgs-featured--grid { display: grid; gap: 1.5rem; }
.cgs-featured--grid .cgs-featured__rest { grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr)); }

.cgs-badge { display: inline-block; font-size: .72rem; font-weight: 700; letter-spacing: .03em; text-transform: uppercase; padding: .15rem .5rem; border-radius: 999px; background: var(--wp--preset--color--primary-soft, #e3efe8); color: var(--wp--preset--color--primary-dark, #00472a); text-decoration: none; vertical-align: middle; }
a.cgs-badge:hover, a.cgs-badge:focus { text-decoration: underline; }
.cgs-badge--unconfirmed-link, .cgs-badge--unconfirmed { background: #fff3cd; color: #6b4e00; }
.cgs-badge--not-published { background: #eceff1; color: #37474f; }

.cgs-byline { margin-block: .5rem 1.5rem; }
.cgs-byline > p { margin: .25rem 0; }
.cgs-byline__labels { display: flex; flex-wrap: wrap; gap: .4rem; }
.cgs-byline__meta { color: var(--wp--preset--color--muted, #565a5e); font-size: .95rem; }
.cgs-byline__credit a { font-weight: 600; }

.cgs-project-facts { background: var(--wp--preset--color--surface, #f4f6f3); border-left: 4px solid var(--wp--preset--color--primary, #006238); padding: 1rem 1.25rem; border-radius: 0 4px 4px 0; }
.cgs-facts { display: grid; gap: .6rem; margin: 0; }
.cgs-facts__row { display: grid; grid-template-columns: minmax(7rem, 11rem) 1fr; gap: .75rem; }
.cgs-facts dt { font-weight: 700; font-size: .85rem; text-transform: uppercase; letter-spacing: .03em; color: var(--wp--preset--color--muted, #565a5e); }
.cgs-facts dd { margin: 0; }
.cgs-status { font-weight: 700; }
.cgs-status--ongoing { color: var(--wp--preset--color--primary, #006238); }
.cgs-status--completed { color: #37474f; }

.cgs-editor-note { background: #fff8e1; border: 1px dashed #c79100; color: #4a3b00; padding: .6rem .8rem; border-radius: 4px; font-size: .9rem; margin: .75rem 0; }
.cgs-editor-note--inline { margin-top: -.5rem; font-size: .8rem; }

.cgs-section-nav ul { list-style: none; padding: 0; margin: 0 0 1.5rem; display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; border-bottom: 1px solid var(--wp--preset--color--border, #d9dcd8); padding-bottom: .75rem; }
.cgs-section-nav a { font-weight: 600; text-decoration: none; }
.cgs-section-nav a:hover, .cgs-section-nav a:focus { text-decoration: underline; }
.cgs-section { margin-block: 2.5rem; scroll-margin-top: 6rem; }
.cgs-section__heading { font-size: var(--wp--preset--font-size--large, 1.5rem); border-bottom: 2px solid var(--wp--preset--color--primary, #006238); padding-bottom: .3rem; }
.cgs-section__items { display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr)); }

.cgs-timeline { list-style: none; margin: 0; padding: 0 0 0 1.25rem; border-left: 2px solid var(--wp--preset--color--border, #d9dcd8); }
.cgs-timeline__item { position: relative; margin: 0 0 1rem; padding-left: .75rem; }
.cgs-timeline__item::before { content: ""; position: absolute; left: -1.72rem; top: .35rem; width: .8rem; height: .8rem; border-radius: 50%; background: var(--wp--preset--color--primary, #006238); }
.cgs-timeline__item--planned::before { background: #fff; border: 2px dashed var(--wp--preset--color--primary, #006238); }
.cgs-timeline__item time { font-weight: 700; margin-right: .5rem; }
.cgs-timeline__type { font-size: .8rem; text-transform: uppercase; letter-spacing: .03em; color: var(--wp--preset--color--muted, #565a5e); margin-right: .5rem; }
.cgs-timeline__item.is-candidate { opacity: .8; }

.cgs-filters { display: flex; flex-wrap: wrap; gap: .75rem 1rem; align-items: end; padding: 1rem; background: var(--wp--preset--color--surface, #f4f6f3); border-radius: 4px; margin-bottom: 1rem; }
.cgs-filter { display: flex; flex-direction: column; gap: .25rem; font-size: .85rem; font-weight: 600; }
.cgs-filter select, .cgs-filter input { min-height: 2.5rem; padding: .35rem .5rem; border: 1px solid #8a8f94; border-radius: 3px; font: inherit; font-weight: 400; background: #fff; }
.cgs-filter--search input { min-width: min(18rem, 70vw); }
.cgs-button { min-height: 2.5rem; padding: .4rem 1.1rem; border: 0; border-radius: 3px; background: var(--wp--preset--color--primary, #006238); color: #fff; font: inherit; font-weight: 700; cursor: pointer; }
.cgs-button:hover, .cgs-button:focus-visible { background: var(--wp--preset--color--primary-dark, #00472a); }
.cgs-filters__reset { align-self: center; }
.cgs-results-count { color: var(--wp--preset--color--muted, #565a5e); }
.cgs-pagination { margin-top: 2rem; display: flex; gap: .5rem; }
.cgs-pagination a, .cgs-pagination span { padding: .3rem .7rem; border: 1px solid var(--wp--preset--color--border, #d9dcd8); border-radius: 3px; text-decoration: none; }
.cgs-pagination [aria-current] { background: var(--wp--preset--color--primary, #006238); color: #fff; border-color: transparent; }

.cgs-documents__list { list-style: none; padding: 0; margin: .75rem 0 0; display: grid; gap: .6rem; }
.cgs-documents__link { display: flex; justify-content: space-between; gap: 1rem; padding: .75rem 1rem; border: 1px solid var(--wp--preset--color--border, #d9dcd8); border-radius: 4px; text-decoration: none; }
.cgs-documents__link:hover, .cgs-documents__link:focus { border-color: var(--wp--preset--color--primary, #006238); background: var(--wp--preset--color--surface, #f4f6f3); }
.cgs-documents__title { font-weight: 600; }
.cgs-documents__meta { color: var(--wp--preset--color--muted, #565a5e); white-space: nowrap; }

.cgs-related { border-top: 2px solid var(--wp--preset--color--primary, #006238); padding-top: 1rem; margin-top: 2rem; }
.cgs-related__label { font-size: .85rem; text-transform: uppercase; letter-spacing: .04em; color: var(--wp--preset--color--muted, #565a5e); margin: 1rem 0 .4rem; }
.cgs-related ul { margin: 0; padding-left: 1.1rem; }
.cgs-related__type { font-size: .8rem; color: var(--wp--preset--color--muted, #565a5e); }

.cgs-gallery__photos { list-style: none; margin: 0; padding: 0; display: grid; gap: .6rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 12rem), 1fr)); }
.cgs-gallery__photos a { display: block; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 3px; background: var(--wp--preset--color--surface, #f4f6f3); }
.cgs-gallery__photos img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cgs-gallery__videos { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 20rem), 1fr)); margin-top: 1rem; }
.cgs-video { position: relative; aspect-ratio: 16 / 9; }
.cgs-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; border-radius: 3px; }
