/* X8 Post Grid */
.x8pg{
  --x8pg-accent:#489EEF;
  --x8pg-ink:#0f172a;
  --x8pg-text:#475569;
  --x8pg-line:#e2ecf8;
  --x8pg-gap:24px;
  --x8pg-radius:18px;
  font-family:inherit;
  margin:0 0 32px;
}
.x8pg *,.x8pg *::before,.x8pg *::after{box-sizing:border-box}

/* heading row */
.x8pg__head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:0 0 20px}
.x8pg__heading{position:relative;margin:0;padding-left:14px;font-size:clamp(22px,2.4vw,30px);line-height:1.2;font-weight:800;color:var(--x8pg-ink)}
.x8pg__heading::before{content:"";position:absolute;left:0;top:.15em;bottom:.15em;width:5px;border-radius:5px;background:linear-gradient(180deg,var(--x8pg-accent),#FFD84D)}
.x8pg__more{flex:none;font-size:14px;font-weight:700;color:var(--x8pg-accent);text-decoration:none;white-space:nowrap}
.x8pg__more:hover{text-decoration:underline}

/* grid */
.x8pg__grid{display:grid;gap:var(--x8pg-gap);grid-template-columns:1fr}
@media (min-width:640px){.x8pg__grid{grid-template-columns:repeat(min(2,var(--x8pg-cols)),minmax(0,1fr))}}
@media (min-width:1024px){.x8pg__grid{grid-template-columns:repeat(var(--x8pg-cols),minmax(0,1fr))}}

/* card */
.x8pg__card{
  position:relative;display:flex;flex-direction:column;min-width:0;
  background:#fff;border:1px solid var(--x8pg-line);border-radius:var(--x8pg-radius);overflow:hidden;
  box-shadow:0 1px 2px rgba(15,23,42,.04),0 8px 24px -12px rgba(15,23,42,.12);
  transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease;
}
.x8pg__card:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--x8pg-accent) 35%,#fff);box-shadow:0 18px 40px -16px color-mix(in srgb,var(--x8pg-accent) 45%,transparent)}

.x8pg__media{position:relative;display:block;aspect-ratio:var(--x8pg-ratio);overflow:hidden;background:#eaf3fd}
.x8pg__img{display:block;width:100%!important;height:100%!important;max-width:none;object-fit:cover;transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.x8pg__img--empty{background:linear-gradient(135deg,color-mix(in srgb,var(--x8pg-accent) 30%,#fff),#fff6d6)}
.x8pg__card:hover .x8pg__img{transform:scale(1.06)}
.x8pg__media::after{content:"";position:absolute;inset:auto 0 0 0;height:45%;background:linear-gradient(to top,rgba(2,6,23,.35),transparent);pointer-events:none}

.x8pg__badge{
  position:absolute;left:14px;top:14px;z-index:1;max-width:calc(100% - 28px);
  padding:5px 12px;border-radius:999px;font-size:12px;line-height:1.4;font-weight:700;letter-spacing:.02em;color:#fff;
  background:var(--x8pg-accent);box-shadow:0 6px 16px -6px rgba(0,0,0,.45);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}

.x8pg__body{display:flex;flex:1;flex-direction:column;padding:18px 20px 20px}
.x8pg__meta{display:flex;flex-wrap:wrap;gap:6px 14px;margin:0 0 10px;font-size:12.5px;line-height:1.4;color:#64748b}
.x8pg__meta>*{display:inline-flex;align-items:center;gap:5px}
.x8pg__meta svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

.x8pg__title{margin:0 0 10px;font-size:18px;line-height:1.4;font-weight:800;color:var(--x8pg-ink)}
.x8pg__title a{color:inherit;text-decoration:none;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;background:linear-gradient(var(--x8pg-accent),var(--x8pg-accent)) 0 100%/0 2px no-repeat;transition:background-size .35s ease,color .2s ease}
.x8pg__card:hover .x8pg__title a{color:var(--x8pg-accent)}

.x8pg__excerpt{margin:0 0 16px;font-size:14.5px;line-height:1.65;color:var(--x8pg-text);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}

.x8pg__btn{
  margin-top:auto;align-self:flex-start;display:inline-flex;align-items:center;gap:6px;
  padding:9px 16px;border-radius:10px;font-size:14px;font-weight:700;line-height:1.2;text-decoration:none;
  color:var(--x8pg-accent);background:color-mix(in srgb,var(--x8pg-accent) 10%,#fff);
  transition:background .25s ease,color .25s ease,gap .25s ease;
}
.x8pg__btn:hover,.x8pg__btn:focus-visible{background:var(--x8pg-accent);color:#fff;gap:10px}

/* featured: first card large */
@media (min-width:1024px){
  .x8pg--featured .x8pg__card--big{grid-column:span min(2,var(--x8pg-cols));grid-row:span 2}
  .x8pg--featured .x8pg__card--big .x8pg__media{aspect-ratio:auto;flex:1 1 auto;min-height:280px}
  .x8pg--featured .x8pg__card--big .x8pg__body{flex:0 0 auto}
  .x8pg--featured .x8pg__card--big .x8pg__btn{margin-top:4px}
  .x8pg--featured .x8pg__card--big .x8pg__title{font-size:26px}
  .x8pg--featured .x8pg__card--big .x8pg__excerpt{-webkit-line-clamp:4;font-size:15.5px}
}

/* single column = horizontal list */
@media (min-width:640px){
  .x8pg--cols-1 .x8pg__card{flex-direction:row}
  .x8pg--cols-1 .x8pg__media{flex:0 0 38%;aspect-ratio:auto;min-height:200px}
}

/* pagination */
.x8pg__pagination{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:32px}
.x8pg__pagination .page-numbers{
  display:inline-grid;place-items:center;min-width:42px;height:42px;padding:0 12px;border-radius:12px;
  border:1px solid var(--x8pg-line);background:#fff;color:#334155;font-weight:700;font-size:14px;text-decoration:none;
  transition:background .2s,color .2s,border-color .2s;
}
.x8pg__pagination .page-numbers:hover,.x8pg__pagination .page-numbers.current{background:var(--x8pg-accent);border-color:var(--x8pg-accent);color:#fff}
.x8pg__pagination .dots{border:0;background:none}

.x8pg--empty{padding:24px;border:1px dashed var(--x8pg-line);border-radius:var(--x8pg-radius);text-align:center;color:var(--x8pg-text)}
.x8pg .screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}

@media (prefers-reduced-motion:reduce){.x8pg__card,.x8pg__img,.x8pg__btn{transition:none}.x8pg__card:hover{transform:none}.x8pg__card:hover .x8pg__img{transform:none}}
