.projects-intro { display: grid; min-height: 350px; padding-block: 4.5rem; align-items: end; grid-template-columns: 1.1fr .9fr; gap: 4rem; }
.projects-intro h1 { margin-top: .8rem; }
.projects-intro h1 span { color: var(--navy-2); }
.projects-intro > div:last-child { max-width: 500px; padding-bottom: .25rem; }
.gallery-controls { padding-bottom: 1.5rem; }
.gallery-grid { display: grid; padding-bottom: 4rem; grid-template-columns: repeat(3,1fr); grid-auto-flow: dense; gap: 1rem; }
.gallery-item { margin: 0; }
.gallery-item button { position: relative; display: block; width: 100%; height: 255px; padding: 0; overflow: hidden; border: 0; background: var(--offwhite); text-align: left; }
.gallery-item img { width: 100%; height: 100%; }
.gallery-item button > span { position: absolute; bottom: 0; left: 0; padding: .4rem .65rem; background: rgba(255,255,255,.94); color: var(--navy); font-size: .72rem; font-weight: 700; }
.gallery-item figcaption { padding: .65rem .1rem; color: var(--ink); font-size: .83rem; }
.gallery-item figcaption { transition: opacity .2s ease, transform .2s ease; }
.gallery-item button:hover + figcaption { color: var(--navy-2); transform: translateY(-2px); }
.gallery-large { grid-column: span 2; }
.gallery-large button { height: 390px; }
.gallery-wide { grid-column: span 2; }
.gallery-wide button { height: 320px; }
.gallery-item.is-hidden { display: none; }
.gallery-note { padding-block: 0 3rem; }
.gallery-note p { padding: 1rem 1.2rem; border-left: 3px solid var(--gold); background: var(--offwhite); font-size: .88rem; }
.gallery-note strong { color: var(--navy); }
.projects-close { display: grid; margin: 0 var(--pad) 5rem; align-items: center; grid-template-columns: 1fr 1fr; gap: 3rem; background: var(--navy); }
.projects-close > div { padding: 3rem; }
.projects-close h2 { margin: .7rem 0; color: #fff; }
.projects-close p:not(.eyebrow) { color: #d6dfe8; }
.projects-close .eyebrow { color: #e3c66f; }
.projects-close img { width: 100%; height: 100%; min-height: 340px; }
.lightbox { position: fixed; z-index: 60; inset: 0; display: flex; padding: 4rem; align-items: center; justify-content: center; background: rgba(16,43,78,.94); opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .22s ease, visibility .22s ease; }
.lightbox.is-open { opacity: 1; visibility: visible; pointer-events: auto; }
.lightbox figure { width: min(100%, 1100px); }
.lightbox figure img { width: 100%; max-height: 78vh; object-fit: contain; background: transparent; }
.lightbox figure img.is-changing { animation: lightbox-image-in .2s ease both; }
@keyframes lightbox-image-in { from { opacity: .5; transform: scale(.99); } to { opacity: 1; transform: none; } }
.lightbox figcaption { margin-top: .5rem; color: #fff; text-align: center; }
.lightbox button { position: absolute; border: 1px solid rgba(255,255,255,.5); background: transparent; color: #fff; font-size: 1.3rem; }
.lightbox-close { top: 1.5rem; right: 1.5rem; width: 45px; height: 45px; font-size: 1.8rem !important; }
.lightbox-prev, .lightbox-next { top: 50%; width: 48px; height: 48px; transform: translateY(-50%); }
.lightbox-prev { left: 1rem; }
.lightbox-next { right: 1rem; }
.gallery-item button > span { transition: transform .22s ease, opacity .22s ease; }
.gallery-item button:hover > span { transform: translateY(-3px); }
@media (max-width: 750px) { .projects-intro { grid-template-columns: 1fr; gap: 1.3rem; } .gallery-grid { grid-template-columns: repeat(2,1fr); } .gallery-large, .gallery-wide { grid-column: span 2; } .gallery-large button, .gallery-wide button, .gallery-item button { height: 240px; } .projects-close { margin-inline: var(--pad); grid-template-columns: 1fr; gap: 0; } .projects-close > div { padding: 2rem; } .projects-close img { min-height: 240px; max-height: 300px; } .lightbox { padding: 3rem 1rem; } }
@media (max-width: 430px) { .gallery-grid { grid-template-columns: 1fr; } .gallery-large, .gallery-wide { grid-column: auto; } }

.gallery-controls { padding-top: 2rem; }
.gallery-grid { grid-auto-flow: row; padding-bottom: 2.5rem; gap: 1.25rem; }
.gallery-item { min-width: 0; border: 1px solid var(--line); background: #fff; }
.gallery-item button { height: auto; aspect-ratio: 4 / 3; cursor: zoom-in; }
.gallery-item[data-gallery-category="equipment"] img { object-fit: contain; }
.gallery-item figcaption { padding: .85rem 1rem; }
.projects-close { grid-template-columns: minmax(0, 1fr) auto; gap: 1.5rem; padding: clamp(1.5rem, 4vw, 3rem); }
.projects-close > div { padding: 0; }
.projects-close .button { justify-self: start; }
@media (max-width: 750px) { .projects-close { grid-template-columns: 1fr; } }
