/* Keep every project photograph proportional and fully visible. */
.architectural .project-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem;align-items:start}
.architectural .project-grid figure:first-child{grid-row:auto}
.architectural .project-grid figure:first-child img,.architectural .project-grid figure:not(:first-child) img{width:100%;height:auto;aspect-ratio:4/3;object-fit:contain;background:#d2dcd4}
.architectural .project-grid a:hover img{transform:none}
.architectural .project-grid figure a{border:1px solid var(--line)}
.gallery-intro{padding:4.5rem 0 3rem;max-width:760px}
.gallery-intro .eyebrow{margin-bottom:1.3rem}
.gallery-intro h1{font-weight:500;font-size:clamp(3rem,5.7vw,5.8rem)}
.gallery-intro>p:last-child{margin-top:1.7rem;max-width:55ch;color:var(--muted);font-size:1.125rem}
.gallery-filters{display:flex;flex-wrap:wrap;gap:.7rem;border-block:1px solid var(--line);padding:1.3rem 0}
.gallery-filters[hidden],.gallery-category[hidden],.full-gallery-grid figure[hidden],.gallery-pagination[hidden]{display:none}
.gallery-filters button{background:transparent;color:var(--ink);border:1px solid var(--line);padding:.75rem 1rem;min-height:46px;cursor:pointer;font-weight:700}
.gallery-filters button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:white}
.gallery-filters button span{margin-left:.35rem;font-weight:400;font-size:.8rem}
.gallery-count{font-size:.9rem;color:var(--muted);padding-top:1rem}
.gallery-category{padding:3.5rem 0 1rem}
.gallery-section-heading{display:flex;justify-content:space-between;gap:1rem;align-items:baseline;margin-bottom:1.7rem}
.gallery-section-heading h2{font-size:clamp(2rem,3vw,3rem)}
.gallery-section-heading p{color:var(--muted);font-size:.9rem}
.full-gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem 1.5rem}
.full-gallery-grid figure{min-width:0}
.gallery-category-note{max-width:70ch;color:var(--muted);margin:-.5rem 0 1.7rem;line-height:1.6}
.gallery-pagination{display:flex;justify-content:center;padding:2.5rem 0 0}
.full-gallery-grid a{display:block;border:1px solid var(--line);background:var(--soft)}
.full-gallery-grid img{width:100%;height:auto;aspect-ratio:4/3;object-fit:contain;transition:opacity .2s}
.full-gallery-grid a:hover img{opacity:.87}
.full-gallery-grid figcaption{font-size:.875rem;padding-top:.7rem;color:var(--muted)}
.gallery-cta{margin:4rem 0;padding:3rem 0;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:2rem}
.gallery-cta h2{font-size:clamp(2rem,3vw,3rem)}
.photo-viewer{width:min(1280px,96vw);height:min(940px,94dvh);max-width:96vw;max-height:94dvh;margin:auto;padding:1rem 1.2rem;border:1px solid var(--line);background:var(--paper);color:var(--ink);overflow:hidden}
.photo-viewer::backdrop{background:rgba(22,35,29,.78)}
.photo-viewer[open]{display:flex;flex-direction:column;gap:.7rem}
.photo-viewer-top,.photo-viewer-bottom{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-shrink:0}
.photo-viewer h2{font-family:Arial,Helvetica,sans-serif;font-size:1rem;font-weight:700;line-height:1.4;letter-spacing:0}
.photo-viewer button{min-width:48px;min-height:46px;cursor:pointer;border:1px solid var(--line);background:transparent;color:var(--ink);padding:.6rem 1rem;font-weight:700}
.photo-viewer button:hover{background:var(--soft)}
.photo-viewer-frame{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--soft)}
.photo-viewer-frame img{width:100%;height:100%;min-height:0;object-fit:contain;aspect-ratio:auto}
.photo-viewer-caption{font-size:.9rem;line-height:1.4;margin-right:auto}
.photo-viewer-count{font-size:.8rem;white-space:nowrap;color:var(--muted)}
.photo-viewer-arrows{display:flex;gap:.5rem}
body.photo-viewer-open{overflow:hidden}
@media(max-width:900px){.full-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.architectural .project-grid{grid-template-columns:1fr}.gallery-intro{padding:2.5rem 0 2rem}.gallery-filters{gap:.5rem}.gallery-filters button{font-size:.875rem;padding:.65rem .8rem}.gallery-category{padding:2.5rem 0 .5rem}.full-gallery-grid{gap:1.5rem 1rem}.gallery-cta{display:block;margin:2.5rem 0}.gallery-cta .button{margin-top:1.5rem}.photo-viewer{padding:.75rem;width:96vw;height:90dvh;max-height:90dvh}.photo-viewer-bottom{flex-wrap:wrap;gap:.6rem}.photo-viewer-caption{width:100%;margin:0}.photo-viewer-arrows{margin-left:auto}}
@media(max-width:420px){.full-gallery-grid{grid-template-columns:1fr}}

.architectural .phone-contact{display:flex;flex-direction:column;gap:0}.architectural .phone-contact .text-link{min-height:24px;line-height:1.5}.architectural .footer-contact{line-height:1.5}

/* Keep text and phone together, with a separate line of space before email. */
.architectural .direct-contact{gap:1.5rem}
.architectural .direct-contact a,.architectural .footer-contact a{text-decoration:none}
.architectural .direct-contact>a{min-height:24px;line-height:1.5}
.architectural .footer-contact .email-contact{display:inline-block;margin-top:1.5rem}

/* Larger mobile targets keep the heading-to-contact spacing compact. */
@media(max-width:720px),(pointer:coarse){
  .architectural .phone-contact .text-link,.architectural .direct-contact>a,.architectural .footer-contact a{display:inline-flex;align-items:center;min-height:44px}
  .architectural .footer-contact .email-contact{display:inline-flex}
}
