/* Documento gerado — parte própria do relatório (specs.md §5 e Apêndice A): grade de fotos, molduras, anotações
   e legendas. A página A4, o cabeçalho, as assinaturas e o rodapé vêm do kit (../../compartilhado/css/documento.css,
   classes doc-*). Valores numéricos idênticos ao modelo de referência. */

.doc-page {
  --rf-photo-h: 340px;                     /* nominal do layout; ajustado por página (§5.6) */
  --rf-caption-lines: 2;
}
.rf-page--3x2 { --rf-photo-h: 316px; --rf-caption-lines: 3; }

.rf-photos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.rf-photos--3x2 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.rf-photo { margin: 0; display: flex; flex-direction: column; border: 1px solid var(--rf-line); min-width: 0; }
.rf-photo .rf-media { height: var(--rf-photo-h); }

/* Foto + anotações (RF-24). O SVG tem a proporção da imagem (--r) e é posicionado como o
   "object-fit: cover" + "object-position" da foto, via unidades de container (cqw/cqh). */
.rf-media { position: relative; overflow: hidden; container-type: size; background: var(--rf-muted); }
.rf-media > img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rf-media__anot {
  --rw: max(100cqw, calc(100cqh * var(--r)));
  --rh: max(100cqh, calc(100cqw / var(--r)));
  position: absolute; pointer-events: none; overflow: visible;
  width: var(--rw); height: var(--rh);
  left: calc((100cqw - var(--rw)) * var(--px));
  top: calc((100cqh - var(--rh)) * var(--py));
}

/* Proporção original (RF-25): a foto inteira cabe na moldura, que mantém o tamanho do layout.
   O SVG segue o "contain": usa min() no lugar de max(). */
.rf-media--contain { background: #f4f5f9; }
.rf-media--contain > img { object-fit: contain; }
.rf-media--contain > .rf-media__anot {
  --rw: min(100cqw, calc(100cqh * var(--r)));
  --rh: min(100cqh, calc(100cqw / var(--r)));
}
.rf-photo figcaption { padding: 8px 10px; font-size: 12px; line-height: 1.35; border-top: 1px solid var(--rf-line);
                       --doc-clamp: var(--rf-caption-lines); }
.rf-photo__num { font-weight: 600; letter-spacing: .06em; color: var(--rf-navy); }

