/* ==========================================================================
   TELA CHEIA COM ZOOM — veja js/viewer.js
   ========================================================================== */

/* --------------------------------------------------------------------------
   Indicador na foto: lupa com "+" no canto de baixo da foto
   (avisa que dá para ampliar; tocar/clicar na foto também abre)
   -------------------------------------------------------------------------- */
.stage__zoom {
  position: absolute;
  z-index: 3;
}
.stage__zoom .icon { width: 22px; height: 22px; }

/* computador: logo acima da barra de miniaturas, no fim da parte nítida
   da foto (os últimos 18% da foto se dissolvem no fundo). Acima e não ao
   lado da barra: com muitas fotos a barra fica larga e encostaria nela. */
@media (min-width: 960px) {
  .stage__zoom {
    right: calc(18% + 8px);
    bottom: calc(var(--edge) + 58px + 12px); /* barra (58px) + respiro */
  }
}
/* celular / tablet em pé: canto de baixo, à direita, dentro da área da foto */
@media (max-width: 959.98px) {
  .stage__zoom {
    right: calc(var(--fit-x, 12px) + 8px);
    bottom: calc(var(--fit-bottom, 118px) + 8px);
  }
}
/* com mouse: o cursor vira uma lupa em cima da foto */
@media (hover: hover) and (pointer: fine) {
  .stage__viewport { cursor: zoom-in; }
}

/* --------------------------------------------------------------------------
   A tela cheia
   -------------------------------------------------------------------------- */
html.is-viewer-open { overflow: hidden; } /* a página atrás não rola */

.viewer {
  position: fixed;
  inset: 0;
  z-index: 100;
  background-color: rgba(12, 14, 16, 0.96);
  /* o que fica atrás vira só um borrão: nada de texto "fantasma" da página */
  -webkit-backdrop-filter: blur(18px);
          backdrop-filter: blur(18px);
  color: #F9F9F9;
  touch-action: none;          /* os gestos (pinça, arrastar) são tratados no JS */
  overscroll-behavior: contain;
  -webkit-user-select: none;
          user-select: none;
}
.viewer[hidden] { display: none; }

/* área da foto: a tela inteira, com folga para a barra do topo e as setas */
.viewer__stage {
  position: absolute;
  inset: 0;
  display: grid;
  /* linha e coluna do tamanho da tela (e não do tamanho da foto): sem isso
     o max-width/max-height: 100% da foto não segura e ela sai maior que a tela */
  grid-template: minmax(0, 1fr) / minmax(0, 1fr);
  place-items: center;
  padding: 76px 92px;
  overflow: hidden;
  cursor: zoom-out;            /* fora da foto: clicar fecha */
}
.viewer__img,
.viewer__video {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  border-radius: 4px;
  transform-origin: center;
  -webkit-user-drag: none;
}
.viewer__img { cursor: zoom-in; }
.viewer.is-zoomed .viewer__img { cursor: grab; border-radius: 0; }
.viewer.is-dragging .viewer__img { cursor: grabbing; }
.viewer__video { background: #000; }

/* barra do topo: contador à esquerda, zoom e fechar à direita */
.viewer__bar {
  position: absolute;
  z-index: 2;
  top: 0;
  left: 0;
  right: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: calc(16px + env(safe-area-inset-top, 0px)) max(16px, env(safe-area-inset-right, 0px)) 16px max(16px, env(safe-area-inset-left, 0px));
  pointer-events: none;        /* só os botões recebem clique */
}
.viewer__bar > * { pointer-events: auto; }
.viewer__counter {
  margin: 0;
  padding: 10px 14px;
  border-radius: 999px;
  background: rgba(41, 45, 48, 0.72);
  font: 600 14px/1 var(--font-family);
  font-variant-numeric: tabular-nums;
}
.viewer__counter[hidden] { visibility: hidden; display: block; } /* segura o lugar */
.viewer__tools { display: flex; gap: 8px; margin-left: auto; }

.viewer__arrow {
  position: absolute;
  z-index: 2;
  top: 50%;
  translate: 0 -50%;
}
.viewer__arrow--prev { left: max(20px, env(safe-area-inset-left, 0px)); }
.viewer__arrow--next { right: max(20px, env(safe-area-inset-right, 0px)); }
.viewer .glassBtn--icon .icon { width: 22px; height: 22px; }

/* dica de zoom (só na primeira vez) */
.viewer__hint {
  position: absolute;
  z-index: 2;
  left: 50%;
  bottom: calc(24px + env(safe-area-inset-bottom, 0px));
  translate: -50% 0;
  max-width: calc(100% - 32px);
  margin: 0;
  padding: 10px 16px;
  border-radius: 999px;
  background: rgba(41, 45, 48, 0.82);
  font: 400 14px/1.3 var(--font-family);
  text-align: center;
  opacity: 0;
  transition: opacity 0.4s ease;
  pointer-events: none;
}
.viewer__hint.is-visible { opacity: 1; }

/* toque (celular, tablet): troca de foto deslizando; sem as setas
   laterais, a foto usa a largura toda */
@media (hover: none) and (pointer: coarse) {
  .viewer__arrow { display: none; }
  .viewer__stage { padding: 72px 0; }
  .viewer__img { border-radius: 0; }
}
/* janela estreita com mouse */
@media (max-width: 599.98px) and (hover: hover) {
  .viewer__stage { padding: 72px 64px; }
  .viewer__arrow--prev { left: 8px; }
  .viewer__arrow--next { right: 8px; }
}
