/* Sprint 9.2 — luxe openbare fotogalerij */
.public-gallery-section{position:relative}.public-gallery-heading .eyebrow{margin:0 0 4px}.public-gallery-albums{display:grid;gap:28px}.public-gallery-album{display:grid;gap:14px}.public-gallery-album>p{margin:0;color:#75675e;line-height:1.65}.public-gallery-album__cover{position:relative;width:100%;min-height:280px;border:0;border-radius:28px;overflow:hidden;padding:0;background:#efe8e1;cursor:pointer;text-align:left;box-shadow:0 18px 50px rgba(76,54,41,.10)}.public-gallery-album__cover img{width:100%;height:100%;min-height:280px;max-height:480px;object-fit:cover;display:block;transition:transform .7s ease,filter .4s ease}.public-gallery-album__cover:hover img{transform:scale(1.025)}.public-gallery-album__overlay{position:absolute;inset:auto 0 0;padding:48px 24px 22px;color:#fff;background:linear-gradient(transparent,rgba(24,17,13,.78));display:flex;align-items:flex-end;justify-content:space-between;gap:20px}.public-gallery-album__overlay strong{font-family:Georgia,serif;font-size:clamp(1.45rem,4vw,2.2rem);font-weight:500}.public-gallery-album__overlay small{display:inline-flex;padding:7px 11px;border-radius:999px;background:rgba(255,255,255,.18);backdrop-filter:blur(9px);font-weight:700;white-space:nowrap}.public-gallery-grid{columns:3 250px;column-gap:14px}.public-gallery-grid[hidden]{display:none}.public-gallery-photo{position:relative;width:100%;display:block;break-inside:avoid;margin:0 0 14px;padding:0;border:0;border-radius:18px;overflow:hidden;background:#eee6df;cursor:zoom-in;box-shadow:0 8px 26px rgba(67,47,35,.08);opacity:0;transform:translateY(10px);transition:opacity .45s ease,transform .45s ease,box-shadow .25s ease}.public-gallery-photo.is-loaded{opacity:1;transform:none}.public-gallery-photo:hover{box-shadow:0 14px 36px rgba(67,47,35,.15)}.public-gallery-photo img{width:100%;height:auto;display:block;transition:transform .45s ease}.public-gallery-photo:hover img{transform:scale(1.025)}.public-gallery-photo__skeleton{position:absolute;inset:0;min-height:190px;background:linear-gradient(90deg,#eee6df 25%,#f8f3ee 40%,#eee6df 60%);background-size:300% 100%;animation:galleryShimmer 1.35s infinite}.public-gallery-photo.is-loaded .public-gallery-photo__skeleton{display:none}.public-gallery-photo__favorite{position:absolute;top:10px;right:10px;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.86);font-size:21px;color:#7b5d4c;box-shadow:0 6px 18px rgba(0,0,0,.12)}@keyframes galleryShimmer{0%{background-position:100% 0}100%{background-position:-100% 0}}
.public-gallery-lightbox{position:fixed;inset:0;z-index:9999;display:none;place-items:center;padding:24px}.public-gallery-lightbox.is-open{display:grid}.public-gallery-lightbox__backdrop{position:absolute;inset:0;background:rgba(18,13,10,.92);backdrop-filter:blur(12px)}.public-gallery-lightbox__panel{position:relative;z-index:1;width:min(1180px,100%);height:min(88vh,900px);display:grid;grid-template-columns:64px minmax(0,1fr) 64px;align-items:center}.public-gallery-lightbox figure{margin:0;min-width:0;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px}.public-gallery-lightbox figure img{display:block;max-width:100%;max-height:calc(88vh - 72px);object-fit:contain;border-radius:8px;opacity:0;transition:opacity .25s ease}.public-gallery-lightbox figure img.is-loaded{opacity:1}.public-gallery-lightbox figcaption{min-height:24px;color:#f8f3ef;text-align:center;font-size:.95rem}.public-gallery-lightbox__close{position:fixed;top:max(16px,env(safe-area-inset-top));right:18px;z-index:2;border:0;background:rgba(255,255,255,.14);color:#fff;width:46px;height:46px;border-radius:50%;font-size:30px;cursor:pointer}.public-gallery-lightbox__nav{border:0;background:rgba(255,255,255,.12);color:#fff;width:48px;height:48px;border-radius:50%;font-size:38px;line-height:1;cursor:pointer}.public-gallery-lightbox__nav:disabled{opacity:.25;cursor:default}.public-gallery-lightbox__counter{position:fixed;left:50%;bottom:max(18px,env(safe-area-inset-bottom));transform:translateX(-50%);padding:7px 12px;border-radius:999px;background:rgba(255,255,255,.12);color:#fff;font-size:.85rem}.public-gallery-lightbox__loader{position:absolute;width:42px;height:42px;border-radius:50%;border:3px solid rgba(255,255,255,.24);border-top-color:#fff;animation:gallerySpin .8s linear infinite}.public-gallery-lightbox__loader.is-hidden{display:none}@keyframes gallerySpin{to{transform:rotate(360deg)}}
@media(max-width:720px){.public-gallery-album__cover,.public-gallery-album__cover img{min-height:220px}.public-gallery-album__overlay{padding:42px 18px 17px}.public-gallery-grid{columns:2 135px;column-gap:9px}.public-gallery-photo{margin-bottom:9px;border-radius:13px}.public-gallery-lightbox{padding:0}.public-gallery-lightbox__panel{height:100dvh;width:100%;grid-template-columns:1fr}.public-gallery-lightbox figure{height:100dvh;padding:62px 8px 74px}.public-gallery-lightbox figure img{max-height:calc(100dvh - 150px);border-radius:4px}.public-gallery-lightbox__nav{position:fixed;top:50%;transform:translateY(-50%);width:42px;height:42px;background:rgba(0,0,0,.28)}.public-gallery-lightbox__nav--prev{left:7px}.public-gallery-lightbox__nav--next{right:7px}.public-gallery-lightbox figcaption{padding:0 36px}}
@media(prefers-reduced-motion:reduce){.public-gallery-photo,.public-gallery-album__cover img,.public-gallery-photo img,.public-gallery-lightbox figure img{transition:none}.public-gallery-photo__skeleton,.public-gallery-lightbox__loader{animation:none}}
