/* ============================================================================
   Галерея фотографий объявления и просмотрщик на весь экран.

   Раньше карточка показывала только один кадр (p.photo), хотя сервер отдаёт
   весь список (до 8 штук, поле photos). Здесь два связанных блока:

   .pg  — лента кадров прямо в карточке: листается свайпом, родной прокруткой
          с зацепом на кадре, снизу — полоска миниатюр, в углу — счётчик.
   .pgl — просмотрщик на весь экран: тот же свайп, счётчик, миниатюры, а главное
          — увеличение: двойное касание (или двойной щелчок), «щипок» двумя
          пальцами и перетаскивание увеличенного кадра.

   Ничего не заменяется на «своё»: кадры ленты остаются .pet-photo, поэтому
   подгонка кадра под рамку (petheartFitPhoto в app.js) работает как раньше.
   ========================================================================= */

.pg{position:relative;margin:0}
.pg__track{
  display:flex;overflow-x:auto;overflow-y:hidden;
  scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;
  border-radius:var(--radius-xl);box-shadow:var(--shadow);background:var(--bg-mist);
}
.pg__track::-webkit-scrollbar{display:none}

/* Кадр ленты: рамку и тень держит общий контейнер, поэтому у самих кадров
   скругление и тень сняты — иначе при свайпе соседний кадр выглядел бы
   отдельной карточкой. */
.pg .pg__slide{
  flex:0 0 100%;max-width:100%;scroll-snap-align:center;
  display:block;border:0;padding:0;background:var(--bg-mist);
  aspect-ratio:16/11;border-radius:0;box-shadow:none;
  cursor:zoom-in;position:relative;overflow:hidden;font:inherit;
}
.pg .pg__slide img{width:100%;height:100%;object-fit:cover;object-position:var(--photo-focus);transition:transform .3s cubic-bezier(.22,.7,.2,1)}
.pg .pg__slide[data-photo-shape="fit"] img{object-fit:contain;background:none}
.pg .pg__slide:focus-visible{outline:3px solid var(--brand);outline-offset:-3px}
.pg .pg__slide:active img{transform:scale(1.01)}

/* Подсказка «кадр можно открыть целиком»: тихий значок в углу, а не надпись. */
.pg__hint{
  position:absolute;right:12px;bottom:12px;z-index:3;
  width:36px;height:36px;border-radius:50%;display:grid;place-items:center;
  background:rgba(23,13,10,.46);color:#fff;border:1px solid rgba(255,255,255,.26);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);pointer-events:none;
}
.pg__hint .ico{width:18px;height:18px}

.pg__counter{
  position:absolute;right:12px;top:12px;z-index:3;
  padding:6px 11px;border-radius:999px;font-size:12.5px;font-weight:700;
  color:#fff;background:rgba(23,13,10,.46);border:1px solid rgba(255,255,255,.24);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  font-variant-numeric:tabular-nums;pointer-events:none;
}

.pg__track{gap:0}
.pg__thumbs{display:flex;gap:8px;margin-top:12px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
.pg__thumbs::-webkit-scrollbar{display:none}
.pg__thumb{
  flex:0 0 auto;width:64px;height:64px;padding:0;border-radius:12px;overflow:hidden;
  border:1px solid var(--line-2);background:var(--bg-mist);cursor:pointer;
  transition:border-color .16s ease,transform .16s ease,box-shadow .16s ease;
}
.pg__thumb img{width:100%;height:100%;object-fit:cover;display:block}
.pg__thumb:hover{border-color:var(--brand-line)}
.pg__thumb.is-active{border-color:var(--brand);box-shadow:0 0 0 2px var(--brand-soft);transform:translateY(-1px)}
.pg__thumb:focus-visible{outline:2px solid var(--brand);outline-offset:2px}

/* Стрелки ленты — только там, где нет свайпа: на широком экране. */
.pg__nav{
  position:absolute;top:50%;transform:translateY(-50%);z-index:4;
  width:40px;height:40px;border-radius:50%;display:none;place-items:center;
  background:rgba(23,13,10,.46);color:#fff;border:1px solid rgba(255,255,255,.28);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);cursor:pointer;
  transition:background .16s ease,transform .16s ease;
}
.pg__nav:hover{background:rgba(23,13,10,.68)}
.pg__nav--prev{left:14px}
.pg__nav--next{right:14px}
.pg__nav .ico{width:18px;height:18px}
@media(min-width:981px){.pg__nav{display:grid}}

/* ==========================================================================
   Просмотрщик на весь экран
   ========================================================================= */
.pgl{
  position:fixed;inset:0;z-index:9500;
  display:flex;flex-direction:column;
  background:rgba(19,10,8,.94);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  opacity:0;transition:opacity .2s ease;
  overscroll-behavior:contain;
}
.pgl[hidden]{display:none}
.pgl.is-open{opacity:1}

.pgl__top{
  flex:none;display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:calc(10px + env(safe-area-inset-top,0px)) 14px 10px;
}
.pgl__counter{color:#fff;font-size:14px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:.01em}
.pgl__tools{display:flex;align-items:center;gap:8px}
.pgl__btn{
  min-height:40px;padding:0 13px;border-radius:999px;
  display:inline-flex;align-items:center;gap:7px;
  background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.24);
  font:inherit;font-size:13.5px;font-weight:650;cursor:pointer;
  transition:background .16s ease,border-color .16s ease;
}
.pgl__btn:hover{background:rgba(255,255,255,.24);border-color:rgba(255,255,255,.44)}
.pgl__btn--icon{width:40px;padding:0;justify-content:center}
.pgl__btn .ico{width:17px;height:17px}
.pgl [hidden]{display:none!important}

.pgl__stage{position:relative;flex:1;min-height:0;display:flex;align-items:center}
.pgl__track{
  flex:1;height:100%;display:flex;
  overflow-x:auto;overflow-y:hidden;
  scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;
}
.pgl__track::-webkit-scrollbar{display:none}
.pgl__slide{
  flex:0 0 100%;max-width:100%;height:100%;
  scroll-snap-align:center;
  display:grid;place-items:center;padding:6px 4px;
  touch-action:pan-x;
}
/* Рамка кадра обнимает саму фотографию — тогда увеличение и перетаскивание
   считаются по её размерам, и кадр не уезжает за край экрана. */
.pgl__slide img{
  max-width:100%;max-height:100%;width:auto;height:auto;
  object-fit:contain;display:block;border-radius:4px;
  transform-origin:center center;will-change:transform;
  -webkit-user-select:none;user-select:none;-webkit-user-drag:none;
  cursor:zoom-in;
}
.pgl__slide.is-zoomed{touch-action:none}
.pgl__slide.is-zoomed img{cursor:grab;touch-action:none}
.pgl__slide.is-panning img{cursor:grabbing}

.pgl__slide img.is-animated{transition:transform .22s cubic-bezier(.22,.7,.2,1)}

.pgl__nav{
  position:absolute;top:50%;transform:translateY(-50%);
  width:46px;height:46px;border-radius:50%;display:none;place-items:center;
  background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.26);
  cursor:pointer;z-index:3;
}
.pgl__nav:hover{background:rgba(255,255,255,.26)}
.pgl__nav .ico{width:20px;height:20px}
.pgl__nav--prev{left:12px}
.pgl__nav--next{right:12px}
@media(min-width:701px){.pgl__nav{display:grid}}

.pgl__bottom{
  flex:none;display:flex;flex-direction:column;align-items:center;gap:8px;
  padding:10px 14px calc(14px + env(safe-area-inset-bottom,0px));
}
.pgl__hint{color:rgba(255,255,255,.62);font-size:12px;text-align:center;margin:0}
.pgl__thumbs{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;max-width:100%;padding-bottom:2px}
.pgl__thumbs::-webkit-scrollbar{display:none}
.pgl__thumb{
  flex:0 0 auto;width:54px;height:54px;padding:0;border-radius:10px;overflow:hidden;
  border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.06);cursor:pointer;
  opacity:.72;transition:opacity .16s ease,border-color .16s ease,transform .16s ease;
}
.pgl__thumb img{width:100%;height:100%;object-fit:cover;display:block}
.pgl__thumb:hover{opacity:1}
.pgl__thumb.is-active{opacity:1;border-color:#fff;transform:translateY(-2px)}

body.is-photo-viewer{overflow:hidden}

/* На телефоне кадр ленты выходит на всю ширину экрана: так фотография
   занимает максимум места, а свайп начинается у самого края. */
@media(max-width:860px){
  .pg{margin-inline:-24px}
  .pg__track{border-radius:0;box-shadow:none}
  .pg__thumbs{padding-inline:24px}
  .pg__hint{right:10px;bottom:10px;width:34px;height:34px}
  .pg__counter{right:10px;top:10px}
  .pgl__slide{padding:0}
  .pgl__slide img{border-radius:0}
}
@media(max-width:560px){
  .pg{margin-inline:-18px}
  .pg__thumbs{padding-inline:18px}
}

@media(prefers-reduced-motion:reduce){
  .pgl{transition:none}
  .pg__slide:active img{transform:none}
  .pgl__slide img.is-animated{transition:none}
}
