/* ==========================================================
   PUBLICACIONES — listado y efecto zoom-glare
   ========================================================== */

/* ---------- PUBLICACIONES ---------- */
.pub-list{list-style:none; margin:0; padding:0;}
.pub-item{
  border-top:1px solid var(--rule);
  padding:32px 0;
  display:grid; grid-template-columns:236px 1fr; gap:36px; align-items:start;
}
.pub-item:last-child{border-bottom:1px solid var(--rule);}
.pub-thumb{
  display:block; position:relative; overflow:hidden; background:var(--navy);
}
.ratio{position:relative; width:100%; height:0; padding-bottom:66.6%; overflow:hidden;}
.ratio img{
  position:absolute; top:0; left:0; width:100%; height:100%;
  object-fit:cover; object-position:center top;
  transition:transform var(--t-hover) var(--ease-flip);
}
/* Encuadre propio de una miniatura concreta. Debe ir DESPUES de la regla de
   arriba: misma especificidad, decide el orden. */
.ratio--focus-right img{object-position:60% 40%;}
/* Efecto zoom-glare: banda blanca rotada -45° que barre el encuadre */
.pub-thumb .ratio::after{
  content:""; position:absolute; top:0; left:0; width:100%; height:100%;
  background:linear-gradient(to bottom, rgba(255,255,255,0) 0%, rgba(255,255,255,0.30) 50%, rgba(255,255,255,0) 100%);
  transition:transform var(--t-hover) ease;
  transform:scale3d(2.4, 0.7, 1) rotate3d(0,0,1,-45deg) translate3d(0, -260%, 0);
  pointer-events:none;
}
.pub-item:hover .pub-thumb .ratio::after{
  transform:scale3d(2.4, 0.7, 1) rotate3d(0,0,1,-45deg) translate3d(0, 260%, 0);
}
.pub-item:hover .pub-thumb img{transform:scale(1.14);}
.pub-meta{display:flex; align-items:center; gap:14px; margin-bottom:10px;}
.pub-tag{font-size:11.5px; color:var(--brass); letter-spacing:0.03em; text-transform:uppercase;}
.pub-date{font-size:12.5px; color:var(--slate);}
.pub-body h3{
  font-size:19px; margin-bottom:10px; max-width:600px;
  transition:color var(--t-hover) ease;
}
.pub-item:hover .pub-body h3{color:var(--brass);}
.pub-body p{color:var(--slate); font-size:14.5px; max-width:600px; margin:0 0 14px;}
.pub-body a.pub-more{
  font-size:13px; color:var(--navy); text-decoration:none;
  position:relative; padding-bottom:3px; display:inline-flex; align-items:center; gap:8px;
}
.pub-body a.pub-more::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:1px; background:var(--brass);
  transform:scaleX(0); transform-origin:left; transition:transform .35s var(--ease-out);
}
.pub-item:hover a.pub-more::after, a.pub-more:hover::after{transform:scaleX(1);}
.pub-body a.pub-more i{
  display:block; width:16px; height:1px; background:currentColor;
  transition:width var(--t-hover) var(--ease-flip);
}
.pub-item:hover a.pub-more i{width:26px;}
@media (max-width:700px){
  .pub-item{grid-template-columns:1fr; gap:18px;}
}
