/* --- TEC Events Grid (scoped) --- */
.teg-wrap { --teg-gap:36px; --teg-radius: 14px; --teg-shadow: 0 4px 20px rgba(0,0,0,.06); }
.teg-section{margin:28px 0}
.teg-section h3{font-size:1.25rem; margin:0 0 14px; font-weight:600}
.teg-grid{
  display:grid; gap:var(--teg-gap);
  grid-template-columns: repeat(var(--teg-cols,3), minmax(0,1fr));
}
@media (max-width: 980px){ .teg-grid{ grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 640px){ .teg-grid{ grid-template-columns: 1fr; } }

.teg-card{
  border-radius: var(--teg-radius);
  overflow:hidden;
  background:#fff;
  box-shadow: var(--teg-shadow);
  display:flex; flex-direction:column;
  transition: transform .18s ease, box-shadow .18s ease;
}
.teg-card:hover{ transform: translateY(-2px); box-shadow: 0 10px 28px rgba(0,0,0,.10); }

.teg-media{
  position:relative; width:100%; overflow:hidden; background:#f4f4f4;
}
.teg-media::before{ content:""; display:block; width:100%; }
.teg-media.ratio-16x9::before{ padding-top:56.25%; }
.teg-media.ratio-4x3::before{ padding-top:75%; }
.teg-media.ratio-1x1::before{ padding-top:100%; }
.teg-media.ratio-3x4::before{ padding-top:133.333%; }
.teg-media.ratio-9x16::before{ padding-top:177.777%; }

.teg-media img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  transition: transform .25s ease;
}
.teg-card:hover .teg-media img{ transform: scale(1.04); }

.teg-body{ padding: 24px; display:flex; flex-direction:column; gap:8px; }
.teg-date{ font-size:1em; font-weight:500; color: #919193; letter-spacing:.2px; }
.teg-title{ font-size: 1.22em;
  font-weight: 600;
  line-height: 1.35;
  margin: 2px 0; }
.teg-title a{ text-decoration:none; color:#111; }
.teg-meta{ font-size:.86rem; color:#666; }
.teg-excerpt{ color: #6D6C6FC2;
  font-size: 1em; }
.teg-cta{ margin-top:auto; }
.teg-btn{
  display:inline-flex; align-items:center; gap:8px; font-weight:600;
  font-size:.92rem; text-decoration:none; color:#0a66c2;
}
.teg-btn svg{ width:18px; height:18px; }

.teg-pagination{ display: block;
  gap: 10px;
  margin-top: 40px;
  flex-wrap: wrap;
  text-align: center; }
.teg-pagination a, .teg-pagination span{
  padding:8px 12px; border-radius:10px; background:#f2f5f8; text-decoration:none; color:#223;
}
.teg-pagination .current{ background:#0a66c2; color:#fff; }
button.teg-loadmore {
	border: none;
}

button.teg-loadmore:hover {
  background: #6b5099;
  opacity: 0.8;
}

