/* ==========================================================
   Mis Publicaciones – cards premium
   ========================================================== */
.pub-grid{
  --pub-ink:#1c2733; --pub-muted:#6b7785; --pub-line:rgba(28,39,51,.08);
  --pub-teal:#2fb89d; --pub-blue:#3d6fa8; --pub-bg:#fff;
  display:grid; grid-template-columns:repeat(6,1fr); gap:28px;
  max-width:1180px; margin:10px auto 70px; padding:0 24px;
  font-family:"Poppins",system-ui,sans-serif;
}
.pub-card{ grid-column:span 2; }
.pub-card:nth-child(4){ grid-column:2 / span 2; }
.pub-card:nth-child(5){ grid-column:4 / span 2; }

.pub-card{
  position:relative; display:flex; flex-direction:column;
  background:var(--pub-bg); border-radius:20px; overflow:hidden;
  border:1px solid var(--pub-line);
  box-shadow:0 1px 2px rgba(20,30,45,.05), 0 10px 30px -12px rgba(20,30,45,.18);
  transition:transform .45s cubic-bezier(.2,.7,.2,1), box-shadow .45s ease;
}
.pub-card::before{
  content:""; position:absolute; inset:0 0 auto 0; height:3px; z-index:3;
  background:linear-gradient(90deg,var(--pub-teal),var(--pub-blue));
  transform:scaleX(0); transform-origin:left; transition:transform .5s ease;
}
.pub-card:hover{ transform:translateY(-8px);
  box-shadow:0 2px 4px rgba(20,30,45,.05), 0 28px 50px -18px rgba(20,30,45,.32); }
.pub-card:hover::before{ transform:scaleX(1); }

.pub-media{ position:relative; aspect-ratio:4/3; overflow:hidden; background:#eef1f4; }
.pub-media img{
  width:100%; height:100%; object-fit:cover; object-position:center top; display:block;
  transition:transform .9s cubic-bezier(.2,.7,.2,1);
}
.pub-card:hover .pub-media img{ transform:scale(1.07); }
.pub-media::after{
  content:""; position:absolute; inset:auto 0 0 0; height:45%;
  background:linear-gradient(to top,rgba(16,24,34,.35),transparent); pointer-events:none;
}
.pub-badge{
  position:absolute; top:14px; left:14px; z-index:2;
  padding:6px 13px; border-radius:999px; font-size:11px; font-weight:500;
  letter-spacing:.09em; text-transform:uppercase; color:var(--pub-ink);
  background:rgba(255,255,255,.88); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
  box-shadow:0 2px 10px rgba(0,0,0,.12);
}
.pub-year{
  position:absolute; right:16px; bottom:12px; z-index:2;
  font-family:"Playfair Display",serif; font-weight:600; font-size:26px; line-height:1;
  color:#fff; text-shadow:0 2px 12px rgba(0,0,0,.45); letter-spacing:.02em;
}

.pub-body{ display:flex; flex-direction:column; flex:1; padding:22px 24px; }
.pub-title{
  font-family:"Playfair Display",serif; font-weight:600; font-size:20px; line-height:1.3;
  color:var(--pub-ink); margin:0 0 8px;
}
.pub-meta{ font-size:13.5px; line-height:1.55; color:var(--pub-muted); margin:0; }
.pub-foot{ margin-top:auto; padding-top:20px; }
.pub-cta{
  display:inline-flex; align-items:center; gap:8px; font-size:13px; font-weight:500;
  letter-spacing:.04em; color:var(--pub-blue); text-decoration:none;
  padding-bottom:4px; background:linear-gradient(currentColor,currentColor) 0 100%/0 1.5px no-repeat;
  transition:background-size .35s ease, color .3s ease;
}
.pub-cta svg{ transition:transform .35s ease; }
.pub-card:hover .pub-cta{ background-size:100% 1.5px; color:var(--pub-teal); }
.pub-card:hover .pub-cta svg{ transform:translateX(5px); }
.pub-foot:empty{ display:none; }
.pub-stretch{ position:absolute; inset:0; z-index:4; }
.pub-stretch:focus-visible{ outline:2px solid var(--pub-teal); outline-offset:-3px; border-radius:20px; }

.js-reveal .pub-card{ opacity:0; transform:translateY(26px);
  transition:opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1), box-shadow .45s ease; }
.js-reveal .pub-card.in{ opacity:1; transform:none; }
.js-reveal .pub-card.in:hover{ transform:translateY(-8px); }

@media (max-width:980px){
  .pub-grid{ grid-template-columns:repeat(2,1fr); gap:22px; }
  .pub-card,.pub-card:nth-child(4),.pub-card:nth-child(5){ grid-column:auto; }
  .pub-card:nth-child(5){ grid-column:1 / -1; width:calc(50% - 11px); justify-self:center; }
}
@media (max-width:620px){
  .pub-grid{ grid-template-columns:1fr; padding:0 18px; }
  .pub-card:nth-child(5){ width:auto; }
}
@media (prefers-reduced-motion:reduce){
  .pub-card,.pub-media img,.pub-cta,.pub-cta svg{ transition:none !important; }
  .js-reveal .pub-card{ opacity:1; transform:none; }
}
