
.project-card{display:block;background:#fafaf9;border-radius:14px;overflow:hidden;max-width:640px;box-shadow:0 8px 24px #00000008}.project-card img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover;transition:transform .25s}.project-card:hover img{transform:scale(1.025)}.project-card-copy{padding:24px}.project-card-copy h3{margin:8px 0 12px;font-size:28px}.project-card-copy p{color:#626260;font-size:16px;line-height:1.6;margin:0}.project-card-copy span{font-size:14px;color:#c8292f}.city-projects{width:100%;grid-column:1/-1}.city-projects summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:24px;list-style:none}.city-projects summary::-webkit-details-marker{display:none}.city-projects summary h3{margin:12px 0}.city-projects summary:after{content:'+';font-size:30px;color:#c8292f}.city-projects[open] summary:after{content:'−'}.city-projects>p{font-size:17px;line-height:1.7;color:#626260;max-width:800px}.city-projects .project-card{margin-top:22px;max-width:480px}.project-cover{margin:0 0 36px}.project-cover img{width:100%;display:block;border-radius:14px;max-height:780px;object-fit:contain;background:#e0e0dd}.project-cover figcaption{font-size:13px;color:#626260;margin-top:10px;line-height:1.5}.gallery-group{padding:28px 0 38px}.gallery-group h2{font-size:32px;letter-spacing:-1px;margin:0 0 24px}.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.gallery-grid figure{margin:0;min-width:0}.gallery-grid button{border:0;padding:0;width:100%;display:block;cursor:zoom-in;border-radius:12px;overflow:hidden;background:#dededb}.gallery-grid img{width:100%;height:280px;object-fit:cover;display:block}.gallery-grid figcaption{font-size:14px;color:#626260;line-height:1.5;margin:10px 0}.gallery-dialog{border:0;border-radius:14px;background:#202124;color:#fff;width:min(1100px,96vw);max-height:94vh;padding:16px}.gallery-dialog::backdrop{background:#000c}.viewer-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}.viewer-bar p{margin:0;font-size:16px}.gallery-dialog button{color:#fff;background:#ffffff18;border:0;border-radius:8px;padding:12px 18px;cursor:pointer;min-height:44px}.gallery-dialog img{width:100%;height:68vh;object-fit:contain;display:block}.viewer-controls{display:flex;align-items:center;justify-content:space-between;margin-top:12px;gap:12px}.gallery-dialog :focus-visible{outline:3px solid white;outline-offset:3px}.project-back{display:inline-block;margin:24px 0 60px;text-decoration:underline;text-underline-offset:4px}@media(max-width:900px){.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-grid img{height:240px}}@media(max-width:639px){.gallery-grid{grid-template-columns:1fr}.gallery-grid img{height:auto;max-height:430px;object-fit:contain}.project-card-copy{padding:20px}.gallery-dialog img{height:60vh}.city-projects summary{gap:12px}}

.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.project-grid .project-card{max-width:none;width:100%}.city-projects .project-grid{margin-top:22px}.city-projects .project-grid .project-card{margin-top:0;max-width:none}.cover-open{border:0;padding:0;background:transparent;width:100%;cursor:zoom-in}@media(max-width:639px){.project-grid{grid-template-columns:1fr}}

/* Compact project cards, matching service column widths. */
.project-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;align-items:start}.project-grid .project-card{min-width:0}.project-card img{height:170px;aspect-ratio:auto;object-fit:cover}.project-card-copy{padding:20px 22px 22px}.project-card-copy h3{font-size:23px;line-height:1.25;margin:8px 0 0}.project-card-copy span{font-size:13px;letter-spacing:1px}.city-panel{padding-top:18px}.city-panel p{font-size:16px;line-height:1.7;color:#626260}.city-panel .city-empty{font-size:14px;margin-top:20px}.city-projects summary h3{margin:12px 0 0}.city-projects summary:focus-visible{outline:3px solid #c8292f;outline-offset:8px;border-radius:4px}@media(max-width:900px){.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:639px){.project-grid{grid-template-columns:1fr}.project-card img{height:190px}.project-card-copy h3{font-size:23px}}
