.sf-archive {
  --sf-blue: #174ea6;
  --sf-blue-dark: #0d3478;
  --sf-ink: #162033;
  --sf-muted: #617087;
  --sf-line: #dce4ef;
  --sf-surface: #fff;
  color: var(--sf-ink);
  margin: 2rem auto;
  max-width: 1180px;
}

.sf-archive *, .sf-archive *::before, .sf-archive *::after { box-sizing: border-box; }
.sf-archive__intro { max-width: 800px; margin-bottom: 1.5rem; }
.sf-archive__intro h2 { margin: 0 0 .65rem; font-size: clamp(1.45rem, 2vw, 2rem); }
.sf-archive__intro p { color: var(--sf-muted); line-height: 1.7; margin: 0; }
.sf-archive__summary { color: var(--sf-muted); font-size: .95rem; font-weight: 700; margin: 0 0 1rem; }

.sf-archive__grid {
  display: grid;
  gap: 1.25rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.sf-card {
  background: var(--sf-surface);
  border: 1px solid var(--sf-line);
  border-radius: 16px;
  box-shadow: 0 8px 24px rgba(22, 32, 51, .07);
  display: flex;
  flex-direction: column;
  margin: 0;
  min-width: 0;
  overflow: hidden;
  transition: transform .2s ease, box-shadow .2s ease;
}

.sf-card:hover { box-shadow: 0 14px 34px rgba(22, 32, 51, .12); transform: translateY(-2px); }
.sf-card__image { aspect-ratio: 16 / 9; background: #eaf1fb; display: block; overflow: hidden; }
.sf-card__image img { display: block; height: 100%; margin: 0; object-fit: cover; width: 100%; }
.sf-card__placeholder { align-items: center; color: var(--sf-blue); display: flex; font-size: 2rem; font-weight: 800; height: 100%; justify-content: center; }
.sf-card__body { display: flex; flex: 1; flex-direction: column; padding: 1.1rem; }
.sf-card__status { align-self: flex-start; background: #eaf7ef; border-radius: 999px; color: #176339; font-size: .76rem; font-weight: 800; line-height: 1; margin-bottom: .7rem; padding: .45rem .65rem; }
.sf-card__title { font-size: 1.12rem; line-height: 1.35; margin: 0 0 .5rem; }
.sf-card__title a { color: var(--sf-ink); text-decoration: none; }
.sf-card__title a:hover { color: var(--sf-blue); }
.sf-card__university { color: var(--sf-muted); font-size: .9rem; margin: 0 0 .9rem; }
.sf-card__facts { border-top: 1px solid var(--sf-line); margin: 0 0 1rem; padding-top: .55rem; }
.sf-card__facts div { display: grid; font-size: .86rem; gap: .5rem; grid-template-columns: 82px 1fr; padding: .32rem 0; }
.sf-card__facts dt { color: var(--sf-muted); font-weight: 600; }
.sf-card__facts dd { font-weight: 700; margin: 0; overflow-wrap: anywhere; }
.sf-card__button { background: var(--sf-blue); border-radius: 10px; color: #fff !important; display: block; font-size: .9rem; font-weight: 800; margin-top: auto; padding: .75rem .9rem; text-align: center; text-decoration: none !important; }
.sf-card__button:hover, .sf-card__button:focus { background: var(--sf-blue-dark); color: #fff; }

.sf-pagination { display: flex; flex-wrap: wrap; gap: .45rem; justify-content: center; margin: 2rem 0 0; }
.sf-pagination .page-numbers { align-items: center; border: 1px solid var(--sf-line); border-radius: 9px; color: var(--sf-blue); display: inline-flex; font-weight: 700; justify-content: center; min-height: 42px; min-width: 42px; padding: .55rem .75rem; text-decoration: none; }
.sf-pagination .current, .sf-pagination a:hover { background: var(--sf-blue); border-color: var(--sf-blue); color: #fff; }
.sf-archive__empty { background: #f7f9fc; border: 1px solid var(--sf-line); border-radius: 14px; padding: 2rem; text-align: center; }
.sf-archive__empty h2 { font-size: 1.25rem; margin: 0 0 .5rem; }
.sf-archive__empty p { color: var(--sf-muted); margin: 0; }

@media (max-width: 900px) { .sf-archive__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) {
  .sf-archive { margin: 1.25rem auto; }
  .sf-archive__grid { grid-template-columns: 1fr; }
  .sf-card__facts div { grid-template-columns: 92px 1fr; }
}

@media (prefers-reduced-motion: reduce) { .sf-card { transition: none; } }

