/* Building Spaces – photo collage gallery */
.bs-collage{container-type:inline-size}
.bs-grid{--cols:6;--gap:10px;--col:calc((100cqi - (var(--cols) - 1) * var(--gap)) / var(--cols));
  display:grid;grid-template-columns:repeat(var(--cols),1fr);grid-auto-rows:calc(var(--col) * .6);
  gap:var(--gap)}
.bs-tail-row{display:grid;grid-template-rows:minmax(0,1fr);gap:var(--gap);min-width:0;min-height:0}
.bs-tail-row .bs-tile{min-width:0;min-height:0}
.bs-wide-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:10px}
.bs-wide-grid[hidden]{display:none}
.bs-wide-grid .bs-tile{aspect-ratio:1920/1087;min-width:0}
.bs-wide-grid .bs-tile img{object-fit:contain;object-position:center}
.bs-project-caption{max-width:75ch;margin:0 0 24px}
@media(max-width:1024px){.bs-wide-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.bs-wide-grid{grid-template-columns:1fr;gap:6px;margin-top:6px}}
.bs-tile{position:relative;display:block;overflow:hidden;border-radius:4px;background:#e9e4dc;
  opacity:0;transform:translateY(14px);transition:opacity .6s ease,transform .6s ease}
.bs-tile.in{opacity:1;transform:none}
.bs-tile img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.bs-tile:hover img{transform:scale(1.045)}
.bs-tile .cap{position:absolute;inset:auto 0 0 0;padding:36px 14px 12px;color:#fff;font-size:13px;line-height:1.35;
  background:linear-gradient(transparent,rgba(0,0,0,.62));opacity:0;transform:translateY(6px);transition:.35s}
.bs-tile:hover .cap,.bs-tile:focus-visible .cap{opacity:1;transform:none}
.bs-tile .cap b{display:block;font-weight:600}
/* Tile shapes (placed by collage.js): portrait 1x2 ~4:5 · tall 1x3 ~9:16 · wide 2x2 ~5:3 · big 2x3 feature */
.s-wide img{object-position:50% 60%}
.bs-filters{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}
.bs-filters button{font:inherit;font-size:14px;padding:8px 16px;border-radius:999px;border:1px solid currentColor;
  background:transparent;color:inherit;opacity:.75;cursor:pointer;transition:.2s}
.bs-filters button:hover{opacity:1}
.bs-filters button[aria-pressed="true"]{background:#1f1f1f;border-color:#1f1f1f;color:#fff;opacity:1}
.bs-filters.rooms button{font-size:13px;padding:6px 12px;border-color:transparent;text-decoration:underline;text-underline-offset:4px;text-decoration-color:transparent}
.bs-filters.rooms button[aria-pressed="true"]{background:none;color:inherit;text-decoration-color:currentColor}
.bs-count{font-size:13px;opacity:.6;margin:0 0 20px}
@media (max-width:1024px){.bs-grid{--cols:4}}
@media (max-width:640px){.bs-grid{--cols:2;--gap:6px}.bs-tile .cap{opacity:1;transform:none;padding:24px 10px 8px;font-size:11px}}
@media (prefers-reduced-motion:reduce){.bs-tile,.bs-tile img{transition:none}.bs-tile{opacity:1;transform:none}}
.pswp__custom-caption{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);max-width:90%;color:#fff;
  background:rgba(0,0,0,.55);padding:10px 16px;border-radius:6px;font-size:14px;text-align:center}
.pswp__custom-caption a{color:#fff;text-decoration:underline;margin-left:8px}
@media (max-width:640px){
  .bs-filters{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-inline:-12px;padding-inline:12px;-webkit-overflow-scrolling:touch}
  .bs-filters::-webkit-scrollbar{display:none}
  .bs-filters button{flex:none}
}

/* Site theme overrides. */
.bs-filters button{font-family:var(--font-body);color:var(--green);min-height:44px}
.bs-filters button[aria-pressed="true"]{background:var(--green);border-color:var(--green);color:var(--white)}
.bs-filters.rooms button[aria-pressed="true"]{background:none;color:var(--green)}
.bs-tile{background:var(--stone)}
