/* VITALIUS Photo Album V6 - thumbnail gallery, fitted viewer and click-to-zoom pan */
.page-gallery-v6 .main-panel{padding-top:26px;padding-bottom:30px}
.vphoto{width:min(1180px,100%);margin:0 auto}
.vphoto__head{margin:0 0 22px}
.vphoto__head--center{max-width:720px;margin:0 auto 28px;text-align:center}
.vphoto__head h1{margin:7px 0 6px;font-size:clamp(1.45rem,2.3vw,2rem);line-height:1.15}
.vphoto__head p{margin:0;color:var(--muted);font-size:.84rem;line-height:1.55}
.vphoto__back{display:inline-flex;align-items:center;min-height:32px;color:var(--muted);font-size:.78rem;font-weight:800;text-decoration:none}
.vphoto__title-row{display:flex;align-items:flex-end;justify-content:space-between;gap:18px}
.vphoto__count{flex:0 0 auto;padding:6px 9px;border:1px solid var(--line);border-radius:8px;color:var(--soft);font-size:.68rem;font-weight:800}

.vphoto-albums{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px}
.vphoto-album{display:grid;grid-template-rows:180px auto;min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.052);text-decoration:none;color:inherit;transition:transform .16s ease,background .16s ease,border-color .16s ease}
.vphoto-album:hover,.vphoto-album:focus-visible{transform:translateY(-2px);background:rgba(255,255,255,.085);border-color:rgba(255,255,255,.3)}
.vphoto-album__cover{display:grid;place-items:center;overflow:hidden;background:#555a5f}
.vphoto-album__cover img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .22s ease}
.vphoto-album:hover .vphoto-album__cover img{transform:scale(1.03)}
.vphoto-album__cover span{font-size:3rem;color:rgba(255,255,255,.45)}
.vphoto-album__text{padding:13px 14px 15px}
.vphoto-album__text h2{margin:0 0 5px;font-size:1rem;line-height:1.25}
.vphoto-album__text p{display:-webkit-box;margin:0 0 8px;overflow:hidden;color:var(--muted);font-size:.76rem;line-height:1.45;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.vphoto-album__text small{color:var(--soft);font-size:.68rem;font-weight:750}

.vphoto-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;align-items:start}
.vphoto-card{min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,.045)}
.vphoto-thumb{position:relative;display:block;width:100%;height:auto;aspect-ratio:4/3;padding:0;overflow:hidden;border:0;background:#555a5f;cursor:zoom-in}
.vphoto-thumb img{display:block;width:100%;height:100%;max-width:none;max-height:none;object-fit:cover;transition:transform .2s ease,filter .2s ease}
.vphoto-thumb:hover img,.vphoto-thumb:focus-visible img{transform:scale(1.04);filter:brightness(1.05)}
.vphoto-thumb__zoom{position:absolute;right:8px;bottom:8px;display:grid;place-items:center;width:28px;height:28px;border:1px solid rgba(255,255,255,.32);border-radius:50%;background:rgba(30,34,38,.76);color:#fff;font-size:1.15rem;font-weight:500;line-height:1;opacity:0;transform:translateY(4px);transition:opacity .16s ease,transform .16s ease;pointer-events:none}
.vphoto-thumb:hover .vphoto-thumb__zoom,.vphoto-thumb:focus-visible .vphoto-thumb__zoom{opacity:1;transform:translateY(0)}
.vphoto-card__meta{padding:8px 9px 9px}
.vphoto-caption{margin:0 0 7px;overflow:hidden;color:var(--text);font-size:.7rem;line-height:1.35;white-space:nowrap;text-overflow:ellipsis}
.vphoto-rating{display:grid;gap:4px}
.vphoto-rating__line{display:flex;align-items:center;gap:4px;color:var(--soft);font-size:.61rem}
.vphoto-rating__line strong{color:#fff;font-size:.7rem}
.vphoto-rating__line span{color:#f3cf58;font-size:.7rem}
.vphoto-rating__stars{display:flex;gap:2px}
.vphoto-rating__stars button{display:grid;place-items:center;width:24px;height:24px;padding:0;border:1px solid var(--line);border-radius:6px;background:rgba(255,255,255,.035);color:#bfc3c6;cursor:pointer;font-size:.82rem;line-height:1}
.vphoto-rating__stars button:hover,.vphoto-rating__stars button:focus-visible,.vphoto-rating__stars button.is-selected{border-color:rgba(243,207,88,.62);background:rgba(243,207,88,.14);color:#f3cf58}
.vphoto-rating__stars button:disabled{opacity:.55;cursor:wait}
.vphoto-rating__status{min-height:.9rem;margin:0;color:var(--muted);font-size:.58rem;line-height:1.35}
.vphoto-empty{display:grid;min-height:180px;place-items:center;padding:30px;border:1px dashed var(--line);border-radius:12px;color:var(--muted);text-align:center}

body.vphoto-modal-open{overflow:hidden}
.vphoto-viewer[hidden]{display:none!important}
.vphoto-viewer{position:fixed;inset:0;z-index:3000;display:grid;place-items:center;padding:18px}
.vphoto-viewer__backdrop{position:absolute;inset:0;width:100%;height:100%;padding:0;border:0;background:rgba(8,10,12,.94);backdrop-filter:blur(5px);cursor:zoom-out}
.vphoto-viewer__window{position:relative;z-index:1;display:grid;grid-template-rows:minmax(0,1fr) 82px;width:min(96vw,1500px);height:min(94vh,980px);overflow:hidden;border:1px solid rgba(255,255,255,.18);border-radius:14px;background:#24282c;box-shadow:0 28px 100px rgba(0,0,0,.58);outline:none}
.vphoto-viewer__close{position:absolute;z-index:7;top:12px;right:12px;display:grid;width:42px;height:42px;place-items:center;padding:0;border:1px solid rgba(255,255,255,.3);border-radius:50%;background:rgba(47,52,57,.84);color:#fff;cursor:pointer;font-size:1.7rem;line-height:1}
.vphoto-viewer__image-wrap{position:relative;display:grid;min-width:0;min-height:0;place-items:center;overflow:hidden;padding:16px 16px 8px;background:#1d2125;touch-action:none}
.vphoto-viewer__image-wrap img{display:block;max-width:none!important;max-height:none!important;object-fit:contain;border-radius:4px;box-shadow:0 12px 44px rgba(0,0,0,.34);opacity:1;transform:translate3d(0,0,0) scale(1);transform-origin:center center;transition:opacity .15s ease,transform .2s ease;cursor:zoom-in;user-select:none;-webkit-user-drag:none;will-change:transform}
.vphoto-viewer__image-wrap.is-loading img{opacity:.16}
.vphoto-viewer__image-wrap.is-zoomed img{cursor:grab;transition:opacity .15s ease,transform .18s ease}
.vphoto-viewer__image-wrap.is-dragging img{cursor:grabbing;transition:opacity .15s ease,transform 0s}
.vphoto-viewer__spinner{position:absolute;left:50%;top:50%;width:38px;height:38px;margin:-19px 0 0 -19px;border:4px solid rgba(255,255,255,.2);border-top-color:#fff;border-radius:50%;opacity:0;animation:vphoto-spin .75s linear infinite;pointer-events:none}
.vphoto-viewer__image-wrap.is-loading .vphoto-viewer__spinner{opacity:1}
@keyframes vphoto-spin{to{transform:rotate(360deg)}}
.vphoto-viewer__bottom{display:grid;grid-template-columns:64px minmax(0,1fr) 64px;align-items:center;gap:12px;padding:10px 14px;border-top:1px solid rgba(255,255,255,.14);background:#353a3f}
.vphoto-viewer__arrow{display:grid;width:52px;height:52px;place-items:center;padding:0;border:1px solid rgba(255,255,255,.3);border-radius:50%;background:#555b61;color:#fff;cursor:pointer;transition:transform .15s ease,background .15s ease}
.vphoto-viewer__arrow:hover,.vphoto-viewer__arrow:focus-visible{transform:scale(1.05);background:#6a7178}
.vphoto-viewer__arrow span{display:block;margin-top:-4px;font-size:2.4rem;font-weight:300;line-height:1}
.vphoto-viewer__arrow:first-child{justify-self:start}
.vphoto-viewer__arrow:last-child{justify-self:end}
.vphoto-viewer__info{min-width:0;text-align:center}
.vphoto-viewer__info p{max-width:850px;margin:0 auto 3px;overflow:hidden;color:#fff;font-size:.8rem;line-height:1.35;white-space:nowrap;text-overflow:ellipsis}
.vphoto-viewer__info p:empty{display:none}
.vphoto-viewer__info strong{color:#cbd0d4;font-size:.7rem}

@media (max-width:1100px){.vphoto-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:850px){.vphoto-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:640px){
  .page-gallery-v6 .main-panel{padding-top:18px}
  .vphoto__title-row{align-items:flex-start;flex-direction:column;gap:8px}
  .vphoto-albums{grid-template-columns:1fr}
  .vphoto-album{grid-template-rows:180px auto}
  .vphoto-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .vphoto-card__meta{padding:7px}
  .vphoto-rating__line small{display:none}
  .vphoto-rating__stars button{width:23px;height:23px;font-size:.78rem}
  .vphoto-viewer{padding:0}
  .vphoto-viewer__window{width:100%;height:100vh;height:100dvh;border:0;border-radius:0;grid-template-rows:minmax(0,1fr) 76px}
  .vphoto-viewer__image-wrap{padding:58px 7px 7px}
  .vphoto-viewer__bottom{grid-template-columns:52px minmax(0,1fr) 52px;gap:7px;padding:8px}
  .vphoto-viewer__arrow{width:46px;height:46px}
  .vphoto-viewer__info p{font-size:.72rem}
}
