/* Galería pública de fotografías de una propiedad. */
.public-photo-page { width:min(1180px,calc(100% - 3rem)); margin:0 auto; padding:2.2rem 0 4.5rem; }
.public-photo-page__header { display:flex; align-items:flex-end; justify-content:space-between; gap:2rem; margin-bottom:1.35rem; }
.public-photo-page__back { display:inline-flex; align-items:center; gap:.45rem; margin-bottom:1.25rem; color:var(--brand-dark); font-size:.82rem; font-weight:700; text-decoration:none; }
.public-photo-page__back:hover { color:var(--brand-primary); }
.public-photo-page__kicker { display:block; margin-bottom:.28rem; color:var(--brand-primary); font-size:.72rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.public-photo-page h1 { margin:0; color:var(--brand-dark); font-size:clamp(2rem,4vw,3.1rem); font-weight:500; }
.public-photo-page__header p { margin:.35rem 0 0; color:var(--app-text-muted); font-size:.88rem; }
.public-photo-filters { display:flex; gap:.7rem; overflow-x:auto; padding:.35rem .1rem 1.2rem; scrollbar-width:none; }
.public-photo-filters::-webkit-scrollbar { display:none; }
.public-photo-filter { min-width:145px; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:.58rem; padding:.78rem .9rem; border:1px solid rgba(7,51,68,.13); border-radius:15px; background:#fff; color:var(--brand-dark); box-shadow:0 5px 18px rgba(7,51,68,.05); text-align:left; white-space:nowrap; transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease; }
.public-photo-filter i { color:var(--brand-primary); }
.public-photo-filter span { font-size:.78rem; font-weight:700; }
.public-photo-filter strong { color:var(--app-text-muted); font-size:.7rem; }
.public-photo-filter:hover,.public-photo-filter.is-active { border-color:rgba(41,118,133,.5); box-shadow:0 7px 22px rgba(7,51,68,.1); transform:translateY(-1px); }
.public-photo-filter.is-active { background:rgba(41,118,133,.06); }
.public-photo-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
.public-photo-grid__item { position:relative; display:block; aspect-ratio:4/3; overflow:hidden; border-radius:7px; background:#e9ecef; cursor:zoom-in; }
.public-photo-grid__item--wide { grid-column:1/-1; aspect-ratio:16/8.3; }
.public-photo-grid__item[hidden] { display:none; }
.public-photo-grid__item img { width:100%; height:100%; display:block; object-fit:cover; transition:transform .25s ease,filter .25s ease; }
.public-photo-grid__item:hover img { transform:scale(1.012); filter:brightness(.96); }
.public-photo-grid__item > span { position:absolute; left:.8rem; bottom:.72rem; max-width:calc(100% - 1.6rem); padding:.28rem .48rem; border-radius:6px; background:rgba(7,20,25,.62); color:#fff; font-size:.68rem; font-weight:600; backdrop-filter:blur(4px); }
.public-photo-empty { padding:4rem; border:1px dashed rgba(7,51,68,.2); border-radius:20px; color:var(--app-text-muted); text-align:center; }
.public-photo-pswp-caption { position:absolute; left:50%; bottom:22px; z-index:20; transform:translateX(-50%); width:min(760px,calc(100% - 5rem)); display:flex; flex-direction:column; gap:.2rem; color:#fff; text-align:center; pointer-events:none; }
.public-photo-pswp-caption strong { font-size:.9rem; }
.public-photo-pswp-caption span { color:rgba(255,255,255,.78); font-size:.76rem; }
@media (max-width:760px) {
    .public-photo-page { width:calc(100% - 1.5rem); padding-top:1.3rem; }
    .public-photo-grid { grid-template-columns:1fr; gap:7px; }
    .public-photo-grid__item,.public-photo-grid__item--wide { grid-column:auto; aspect-ratio:4/3; }
    .public-photo-filter { min-width:132px; }
}
