/* Project-only extension of the approved CLEAN composition. */
.clean-project-photos { border-top: 1px solid var(--clean-line); }
.project-gallery__count { color: var(--clean-muted); font-size: var(--clean-label-size); }
.project-gallery__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 36px 26px; margin-top: 32px; }
.project-gallery__grid figure { min-width: 0; margin: 0; }
.project-gallery__grid figure[hidden] { display: none; }
.project-gallery__grid img { display: block; width: 100%; height: auto; object-fit: contain; }
.project-gallery__photo { display: block; }
.clean-project__gallery .project-gallery__photo { height: 100%; }
.project-gallery__photo:focus-visible { outline: 3px solid var(--clean-teal); outline-offset: 5px; }
.project-gallery__more,
.project-viewer button { min-height: 44px; padding: 12px 20px; border: 1px solid var(--clean-line); background: var(--clean-white); color: var(--clean-ink); font: inherit; cursor: pointer; }
.project-gallery__more { margin-top: 32px; background: var(--clean-teal); border-color: var(--clean-teal); color: var(--clean-white); }
.project-gallery__more[hidden],
.project-gallery__count[hidden] { display: none; }
.project-viewer { width: min(1400px, calc(100vw - 40px)); max-width: calc(100vw - 40px); max-height: calc(100dvh - 40px); padding: 20px; border: 1px solid var(--clean-line); background: var(--clean-white); color: var(--clean-ink); }
.project-viewer::backdrop { background: rgba(20, 30, 34, .78); }
.project-viewer__header,
.project-viewer__nav { display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.project-viewer__header p { margin: 0; overflow-wrap: anywhere; font-size: var(--clean-label-size); }
.project-viewer__header button { min-width: 44px; flex-shrink: 0; padding: 8px; font-size: 24px; line-height: 1; }
.project-viewer__image { display: grid; place-items: center; height: min(72dvh, 900px); margin: 16px 0; }
.project-viewer__image img { width: 100%; height: 100%; min-height: 0; object-fit: contain; }
.project-viewer__image img[hidden],
.project-viewer__image p[hidden] { display: none; }
.project-viewer__nav button { min-width: 0; white-space: normal; font-size: var(--clean-label-size); }
body.clean-design.is-project-viewer-open { overflow: hidden; }
@media (max-width: 700px) {
	.project-gallery__grid { grid-template-columns: 1fr; gap: 26px; }
	.project-viewer { width: calc(100vw - 24px); max-width: calc(100vw - 24px); max-height: calc(100dvh - 24px); padding: 12px; }
	.project-viewer__image { height: 60dvh; }
	.project-viewer__nav { gap: 8px; }
	.project-viewer__nav button { padding: 10px 12px; }
}
