/* Each environment is a quiet photographic window, with a readable label. */
.house-gallery{grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:none;grid-auto-rows:320px;gap:16px}
.house-gallery .category-tile{grid-column:span 4;grid-row:auto;isolation:isolate;background:#203930;border-radius:4px}
.house-gallery .gallery-tile-large{grid-column:span 8;grid-row:auto}
.house-gallery [data-gallery-category=sala],.house-gallery [data-gallery-category=banheiro]{grid-column:span 6}
.house-gallery .category-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1100ms cubic-bezier(.4,0,.2,1),transform 1300ms cubic-bezier(.2,0,0,1);transform:scale(1.025)}
.house-gallery .category-photo.is-active{opacity:1;transform:scale(1)}
.house-gallery .category-tile:hover .category-photo.is-active{transform:scale(1.035)}
.house-gallery .category-tile::after{z-index:1;inset:30% 0 0;background:linear-gradient(0deg,rgba(10,29,24,.88),rgba(10,29,24,.12) 65%,transparent)}
.house-gallery .gallery-label{z-index:2;left:24px;bottom:24px;right:20px;letter-spacing:0;text-transform:none}
.house-gallery .gallery-label strong{display:block;font:400 clamp(23px,2.5vw,32px)/1.1 'DM Serif Display',serif}
.house-gallery .gallery-label small{display:block;margin-top:9px;font:400 11px/1.5 'DM Sans',sans-serif;color:#f5f3e9d9}
.category-count{position:absolute;top:19px;left:20px;z-index:2;padding:8px 12px;border:1px solid #ffffff70;border-radius:30px;background:#14392f75;backdrop-filter:blur(8px);color:white;font:500 10px 'DM Sans',sans-serif;letter-spacing:.12em;font-variant-numeric:tabular-nums}
.house-gallery .zoom-icon{z-index:2;opacity:1;transform:none;background:#14392f55}
.house-gallery .category-tile:focus-visible{outline:3px solid var(--coral);outline-offset:4px}
.house-gallery [data-gallery-category=quartos] .category-photo{object-position:center 55%}
.house-gallery [data-gallery-category=sala] .category-photo{object-position:center 65%}
.house-gallery [data-gallery-category=banheiro] .category-photo{object-position:center 56%}
.lightbox{width:min(1120px,94vw);max-height:calc(100dvh - 110px);overflow:visible;outline:none}
.lightbox img{display:block;width:100%;height:calc(100dvh - 180px);max-height:820px;object-fit:contain;touch-action:pan-y pinch-zoom;border-radius:3px}
.lightbox-caption{margin:13px 50px 0;text-align:center;color:#fff9ed;font:400 12px/1.7 'DM Sans',sans-serif;min-height:35px}
.lightbox-arrow{position:absolute;top:43%;z-index:3;display:grid;place-items:center;width:44px;height:44px;border:1px solid #ffffff90;border-radius:50%;background:#17362ecf;color:white;font:32px/1 sans-serif;cursor:pointer;transition:background 180ms ease,transform 180ms ease}
.lightbox-arrow:hover{background:#c77c61;transform:scale(1.06)}
.lightbox-arrow[hidden]{display:none}
.lightbox-arrow.is-previous{left:8px}.lightbox-arrow.is-next{right:8px}
.lightbox-close{z-index:4;background:#17362ecf}
.lightbox img.photo-arrive{animation:gallery-photo-arrive 400ms cubic-bezier(.2,0,0,1) both}
@keyframes gallery-photo-arrive{from{opacity:.35;transform:translateY(5px) scale(.99)}to{opacity:1;transform:none}}
@media(max-width:800px){.house-gallery{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:none;grid-auto-rows:300px;gap:12px}.house-gallery .category-tile,.house-gallery [data-gallery-category=sala],.house-gallery [data-gallery-category=banheiro]{grid-column:span 1;grid-row:auto}.house-gallery .gallery-tile-large{grid-column:span 2}.house-gallery .gallery-label{left:18px;bottom:20px}.category-count{left:16px;top:16px}.house-gallery .gallery-label strong{font-size:25px}}
@media(max-width:520px){.house-gallery{grid-template-columns:1fr;grid-auto-rows:330px;gap:14px}.house-gallery .category-tile,.house-gallery .gallery-tile-large,.house-gallery [data-gallery-category=sala],.house-gallery [data-gallery-category=banheiro]{grid-column:span 1}.house-gallery .gallery-tile-large{min-height:290px}.house-gallery .gallery-label strong{font-size:30px}.lightbox img{height:calc(100dvh - 200px)}.lightbox-caption{margin:12px 14px 0;font-size:11px}.lightbox-arrow{width:38px;height:38px}.house-gallery [data-gallery-category=quartos],.house-gallery [data-gallery-category=sala],.house-gallery [data-gallery-category=banheiro]{min-height:390px}}
@media(prefers-reduced-motion:reduce){.house-gallery .category-photo,.lightbox img.photo-arrive{animation:none;transition:none;transform:none}}
