/* Cuerpo de las publicaciones: bloques de texto, foto, galería, cita, video, archivo, botón y hallazgo.
   Usa los colores de edutic.css; los valores de respaldo permiten verlo también en la vista previa de /gestion. */
.pub-cuerpo { display: flow-root; font-size: 1.0625rem; line-height: 1.75; color: var(--edu-text, #334155); }
.pub-cuerpo > * + * { margin-top: 1.1rem; }
.pub-texto h2, .pub-texto h3, .pub-texto h4 { color: var(--edu-ink, #222); line-height: 1.25; margin: 1.6rem 0 .6rem; clear: both; }
.pub-texto h2 { font-size: 1.5rem; }
.pub-texto h3 { font-size: 1.25rem; }
.pub-texto h4 { font-size: 1.0625rem; }
.pub-texto p { margin: 0 0 1rem; }
.pub-texto ul, .pub-texto ol { margin: 0 0 1rem; padding-left: 1.4rem; }
.pub-texto a { color: var(--edu-green-dark, #4F7A12); text-decoration: underline; text-underline-offset: 2px; }
.pub-texto table { width: 100%; border-collapse: collapse; margin: 0 0 1rem; font-size: .9375rem; }
.pub-texto th, .pub-texto td { border: 1px solid var(--edu-border, #e2e8f0); padding: .5rem .7rem; text-align: left; }

/* Fila con columnas (<div class="row"> con columnas <div class="col-…">): lo de cada columna se apila y no sobresale de ella */
.pub-fila { clear: both; margin-top: 1.75rem; margin-bottom: 1.75rem; }
.pub-col { min-width: 0; display: flow-root; }
.pub-col > * + * { margin-top: 1.1rem; }
.pub-col > :first-child { margin-top: 0; }
.pub-col .pub-texto > :first-child { margin-top: 0; }
.pub-col .pub-texto > :last-child { margin-bottom: 0; }
.pub-col .pub-foto, .pub-col .pub-galeria, .pub-col .pub-cita, .pub-col .pub-video, .pub-col .pub-hallazgo { margin-top: 0; margin-bottom: 0; }
/* En una columna la foto no flota: ocupa el ancho de la columna */
.pub-col .pub-foto--izquierda, .pub-col .pub-foto--derecha { float: none; width: 100% !important; margin: 0; }
.pub-col .pub-galeria--mosaico { grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); }
.pub-col .pub-cita p { font-size: 1.125rem; }

/* Foto: a todo el ancho o flotando a un costado con el texto alrededor */
.pub-foto { margin: 1.5rem 0; }
.pub-foto img { display: block; width: 100%; height: auto; border-radius: 12px; background: #E6E9EC; }
.pub-foto figcaption, .pub-galeria figcaption { margin-top: .5rem; font-size: .8125rem; line-height: 1.4; color: var(--edu-muted, #64748b); }
.pub-credito { opacity: .8; }
.pub-foto--izquierda, .pub-foto--derecha { margin-top: .35rem; margin-bottom: 1rem; }
.pub-foto--izquierda { float: left; margin-right: 1.5rem; }
.pub-foto--derecha { float: right; margin-left: 1.5rem; }
.pub-foto--izquierda.pub-foto--chico, .pub-foto--derecha.pub-foto--chico { width: 25%; }
.pub-foto--izquierda.pub-foto--mediano, .pub-foto--derecha.pub-foto--mediano { width: 33%; }
.pub-foto--izquierda.pub-foto--grande, .pub-foto--derecha.pub-foto--grande { width: 50%; }
@media (max-width: 767.98px) {
  .pub-foto--izquierda, .pub-foto--derecha { float: none; width: 100% !important; margin: 1.25rem 0; }
}

/* Galería: mosaico o carrusel horizontal */
.pub-galeria { clear: both; margin: 1.75rem 0; }
.pub-galeria__item { margin: 0; }
.pub-galeria a { display: block; }
.pub-galeria img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 10px; background: #E6E9EC; transition: opacity .15s; }
.pub-galeria a:hover img { opacity: .9; }
.pub-galeria--mosaico { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: .75rem; }
.pub-galeria--carrusel { display: flex; gap: .75rem; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: .5rem; }
.pub-galeria--carrusel .pub-galeria__item { flex: 0 0 min(80%, 440px); scroll-snap-align: start; }

/* Cita destacada, video, hallazgo y enlaces */
.pub-cita { clear: both; margin: 1.75rem 0; padding: .25rem 0 .25rem 1.25rem; border-left: 4px solid var(--edu-accent, #80B327); }
.pub-cita p { margin: 0; font-size: 1.3rem; line-height: 1.5; font-style: italic; color: var(--edu-ink, #222); }
.pub-cita cite { display: block; margin-top: .5rem; font-size: .875rem; font-style: normal; font-weight: 700; color: var(--edu-muted, #64748b); }
.pub-video { clear: both; position: relative; aspect-ratio: 16 / 9; margin: 1.75rem 0; }
.pub-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; border-radius: 12px; }
.pub-hallazgo { clear: both; margin: 1.5rem 0; padding: 1.1rem 1.4rem; background: var(--edu-green-soft, #F2F6EA); border: 1px solid var(--edu-green-line, #E1EACF); border-radius: 12px; }
.pub-hallazgo h3 { margin: 0 0 .5rem; font-size: 1.125rem; color: var(--edu-ink, #222); }
.pub-hallazgo > :last-child { margin-bottom: 0; }
.pub-enlace { clear: both; }

/* Vista ampliada de las fotos (public/js/paginas/publicacion.js) */
.pub-zoom { position: fixed; inset: 0; z-index: 2000; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .75rem; padding: 2rem 3.5rem; background: rgba(15, 23, 42, .92); }
.pub-zoom img { max-width: 100%; max-height: calc(100vh - 8rem); object-fit: contain; border-radius: 8px; }
.pub-zoom img { cursor: zoom-in; }
/* A tamaño real: la ventana se recorre con scroll; margin:auto la centra si cabe sin cortar el lado izquierdo si no cabe */
.pub-zoom.is-real { display: block; overflow: auto; padding: 1rem; }
.pub-zoom.is-real img { display: block; max-width: none; max-height: none; margin: auto; cursor: zoom-out; }
.pub-zoom.is-real .pub-zoom__pie { display: none; }
.pub-zoom.is-real button { position: fixed; background: rgba(15, 23, 42, .8); }
.pub-zoom__pie { max-width: 70ch; margin: 0; color: #e2e8f0; font-size: .9375rem; text-align: center; }
.pub-zoom button { position: absolute; border: 0; border-radius: 50%; width: 2.75rem; height: 2.75rem; background: rgba(255, 255, 255, .14); color: #fff; font-size: 1.5rem; line-height: 1; cursor: pointer; }
.pub-zoom button:hover, .pub-zoom button:focus-visible { background: rgba(255, 255, 255, .28); }
.pub-zoom__cerrar { top: 1rem; right: 1rem; }
.pub-zoom__ant { left: .75rem; top: 50%; }
.pub-zoom__sig { right: .75rem; top: 50%; }
