/* Layout */
.infin-programs-wrap {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 24px;
}

/* Sidebar */
.programs-sidebar {
  border: 1px solid #eee;
  border-radius: 12px;
  padding: 20px;
  background: #fff;
}
.programs-sidebar h4 { margin: 12px 0 8px; font-size: 0.95rem; font-weight: 600; }
.programs-sidebar input[type="text"],
.programs-sidebar select {
  width: 100%; padding: 8px; border: 1px solid #ccc; border-radius: 6px;
}
.programs-sidebar .filter-button { margin-top: 12px; background: #d1004c; color:#fff; border:0; padding:8px 12px; border-radius:6px; font-weight:700; cursor:pointer; }
.programs-sidebar .filter-clear { background:#666; }

/* Tag/Pill group */
.program-filter-group { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px; }
.program-filter-group label { display:inline-flex; align-items:center; background:#f5f5f5; border:1px solid #ddd; border-radius:20px; padding:6px 12px; cursor:pointer; font-size:0.9rem; transition:.2s; }
.program-filter-group input { display:none; }
.program-filter-group label input:checked ~ span,
.program-filter-group label:has(input:checked) { background:#00457C; color:#fff; border-color:#00457C; }

/* Grid */
.programs-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(260px,1fr)); gap:24px; }

/* Card */
.program-card { border:1px solid #e2e2e2; border-radius:12px; background:#fff; box-shadow:0 2px 8px rgba(0,0,0,.06); overflow:hidden; transition:.2s; }
.program-card:hover { box-shadow:0 4px 14px rgba(0,0,0,.1); }
.program-card-img { width:100%; padding-top:56%; background-size:cover; background-position:center; }
.program-card-body { padding:16px 18px 20px; }
.program-card h3 { font-size:1.05rem; margin:0 0 8px; color:#222; }
.excerpt { font-size:.95rem; color:#444; margin-bottom:12px; }
.cta-button { display:inline-block; padding:8px 16px; background:#00457C; color:#fff; border-radius:6px; text-decoration:none; font-weight:600; }
.cta-button:hover { background:#002f57; }

#program-results.is-loading { opacity: .5; pointer-events: none; transition: opacity .2s; }

#program-filter .filter-button {
  display: none !important;
}
