/* ==========================================================================
   zahid-grid · portfolio.css — фото обʼєктів портфоліо
   Картка з обкладинкою · сторінка обʼєкта · лайтбокс.
   Базовий .passport — у pages.css / shop.css (регіональні сторінки тягнуть shop.css).
   ========================================================================== */

/* ===== картка: обкладинка ============================================= */
.passport__photo{position:relative;display:block;aspect-ratio:4/3;background:var(--sz-bg-alt);overflow:hidden;cursor:zoom-in}
.passport__photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease}
.passport:hover .passport__photo img{transform:scale(1.035)}
.passport__photo:focus-visible{outline:3px solid var(--sz-gold);outline-offset:-3px}
/* лічильник — праворуч: лівий нижній кут фото зайнятий емблемою */
.passport__count{position:absolute;right:12px;bottom:12px;display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border-radius:var(--r-s);background:rgba(17,25,44,.78);color:#fff;font-family:var(--f-mono);font-size:12px;line-height:1}
/* без кВт локація стає головним підписом картки */
.passport__top--solo .passport__loc{margin-top:0;font-family:var(--f-head);font-weight:700;font-size:17px;color:#fff}
.passport__top--solo .passport__loc svg{color:var(--sz-gold-bright)}
.passport--photo .passport__top{padding-block:16px}

/* ===== сторінка обʼєкта ============================================== */
.pintro p a{color:var(--sz-blue-tech);text-decoration:underline;text-underline-offset:2px}
.pobj{padding-top:0}
.pobj__grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:28px;align-items:start}
@media(max-width:900px){.pobj__grid{grid-template-columns:1fr}}
.pobj__side{display:grid;gap:18px;position:sticky;top:96px}
@media(max-width:900px){.pobj__side{position:static}}
.pobj__side .passport{height:auto}
.pobj__cta{border:1px solid var(--sz-line);border-radius:var(--r-m);background:var(--sz-bg-warm);padding:20px 22px;display:grid;gap:10px}
.pobj__cta b{font-family:var(--f-head);font-size:17px;color:var(--sz-navy)}
.pobj__cta p{font-size:14px;color:var(--sz-text-muted);margin:0}
.pobj__text{margin-top:28px}

.pgallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.pgallery__it{display:block;aspect-ratio:4/3;border-radius:var(--r-m);overflow:hidden;background:var(--sz-bg-alt);cursor:zoom-in}
.pgallery__it:first-child{grid-column:1/-1}   /* 4:3, як фото — інакше обрізало б емблему внизу */
.pgallery__it img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease}
.pgallery__it:hover img{transform:scale(1.03)}
.pgallery__it:focus-visible{outline:3px solid var(--sz-gold);outline-offset:2px}
@media(max-width:520px){.pgallery{grid-template-columns:1fr}}

/* ===== лайтбокс (<dialog>) =========================================== */
.zlb{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:0;border:0;background:rgba(10,15,28,.94);color:#fff;overflow:hidden}
.zlb::backdrop{background:transparent}
.zlb__fig{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;margin:0;padding:56px 16px 48px}
.zlb__img{max-width:min(100%,1400px);max-height:calc(100% - 36px);object-fit:contain;border-radius:var(--r-s);user-select:none;-webkit-user-drag:none}
.zlb__cap{font-size:14px;color:#c4cbdb;text-align:center;max-width:70ch}
.zlb.is-loading .zlb__img{opacity:0}
.zlb.is-loading .zlb__fig::before{content:"";position:absolute;top:50%;left:50%;width:36px;height:36px;margin:-18px 0 0 -18px;border:3px solid rgba(255,255,255,.18);border-top-color:var(--sz-gold);border-radius:50%;animation:zlbSpin .8s linear infinite}
@keyframes zlbSpin{to{transform:rotate(360deg)}}
.zlb__count{position:absolute;top:18px;left:20px;font-family:var(--f-mono);font-size:13px;color:#c4cbdb}
.zlb__btn{position:absolute;display:flex;align-items:center;justify-content:center;width:46px;height:46px;border:0;border-radius:50%;background:rgba(255,255,255,.1);color:#fff;cursor:pointer;transition:background .15s}
.zlb__btn:hover{background:rgba(255,255,255,.2)}
.zlb__btn:focus-visible{outline:2px solid var(--sz-gold);outline-offset:2px}
.zlb__close{top:10px;right:12px}
.zlb__prev{left:12px;top:50%;transform:translateY(-50%)}
.zlb__next{right:12px;top:50%;transform:translateY(-50%)}
.zlb__btn[hidden]{display:none}
@media(max-width:620px){.zlb__prev,.zlb__next{top:auto;bottom:8px;transform:none}.zlb__fig{padding-bottom:64px}}
@media(prefers-reduced-motion:reduce){.passport__photo img,.pgallery__it img{transition:none}}
