/* Federation course directory */
.federation-catalog{padding:30px 0 92px}
.federation-catalog-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:25px}
.federation-catalog-head h2{font-size:clamp(30px,3.4vw,48px);margin:8px 0 10px;letter-spacing:-.045em}
.federation-catalog-head p{margin:0;color:var(--muted);line-height:1.6}
.federation-layout{display:flex;gap:6px;padding:5px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.federation-layout button,.federation-filters button{cursor:pointer;font:inherit;font-weight:750;color:var(--muted);background:transparent;border:0;border-radius:10px;padding:10px 14px}
.federation-layout button[aria-pressed=true],.federation-filters button[aria-pressed=true]{background:var(--accent);color:#052027}
.federation-controls{padding:20px;border:1px solid var(--line);border-radius:20px;background:var(--surface);margin-bottom:24px}
.federation-controls input{display:block;width:100%;height:51px;padding:0 17px;background:var(--bg);border:1px solid var(--line);border-radius:12px;color:var(--text);font:inherit;outline-offset:3px}
.federation-controls input:focus{border-color:var(--accent)}
.federation-filters{display:flex;flex-wrap:wrap;gap:7px;margin-top:16px}
.federation-filters button{border:1px solid var(--line)}
.federation-count{font-size:12px;color:var(--muted);margin:16px 0 0}
.federation-results{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.federation-course{min-width:0;display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--line);border-radius:19px;background:linear-gradient(145deg,var(--surface),var(--surface2))}
.federation-course[hidden],.federation-empty[hidden]{display:none!important}
.federation-course-media{height:200px;padding:16px;background:radial-gradient(ellipse at 55% 25%,var(--glow),transparent 70%),var(--bg);display:grid;place-items:center;border-bottom:1px solid var(--line)}
.federation-course-media img{width:100%;height:100%;object-fit:contain}
.federation-course-placeholder{display:grid;place-items:center;width:min(245px,100%);aspect-ratio:1.58;border-radius:14px;border:1px solid color-mix(in srgb,var(--accent) 40%,var(--line));background:linear-gradient(145deg,var(--surface),var(--surface2));font-size:12px;letter-spacing:.07em;text-align:center;text-transform:uppercase;color:var(--muted);padding:20px}
.federation-course-placeholder[hidden]{display:none}
.federation-course-body{display:flex;flex:1;flex-direction:column;align-items:flex-start;padding:23px}
.federation-course-area{font-size:10px;letter-spacing:.13em;text-transform:uppercase;font-weight:800;color:var(--accent)}
.federation-course h3{font-size:21px;line-height:1.25;margin:12px 0 10px;letter-spacing:-.025em}
.federation-course-degree{font-size:12px;color:var(--muted);line-height:1.55}.federation-course-degree strong{color:var(--text)}
.federation-course p{font-size:13px;line-height:1.7;color:var(--muted);margin:14px 0}
.federation-course-link{margin-top:auto;font-weight:800;font-size:12px;color:var(--accent);padding-top:14px}
.federation-catalog[data-view=list] .federation-results{grid-template-columns:1fr}
.federation-catalog[data-view=list] .federation-course{flex-direction:row}
.federation-catalog[data-view=list] .federation-course-media{flex:0 0 250px;height:auto;min-height:185px;border-bottom:0;border-right:1px solid var(--line)}
.federation-catalog[data-view=list] .federation-course-body{padding:20px 25px}
.federation-empty{padding:35px;text-align:center;border:1px dashed var(--line);color:var(--muted);border-radius:18px}
@media(max-width:1000px){.federation-results{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.federation-catalog-head{align-items:stretch;flex-direction:column}.federation-layout{align-self:flex-start}.federation-results{grid-template-columns:1fr}.federation-catalog[data-view=list] .federation-course-media{flex-basis:125px;min-height:160px;padding:8px}.federation-catalog[data-view=list] .federation-course-body{padding:15px}.federation-catalog[data-view=list] .federation-course h3{font-size:16px}.federation-catalog[data-view=list] .federation-course p{display:none}.federation-filters{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px}.federation-filters button{white-space:nowrap;flex:none}}

/* Edge-to-edge certificate art: the image is the card's media region, not a box inside it. */
.federation-course-media{
  position:relative;display:block;overflow:hidden;padding:0;
  background:linear-gradient(145deg,var(--surface),var(--bg));
}
.federation-course-media img{
  display:block;width:100%;height:100%;object-fit:cover;object-position:center;
}
.federation-course-media img[hidden]{display:none!important}
.federation-course-placeholder{
  width:100%;height:100%;min-height:inherit;aspect-ratio:auto;
  border:0;border-radius:0;background:transparent;padding:18px;
}
.federation-catalog[data-view=list] .federation-course-media{
  align-self:stretch;min-height:185px;padding:0;
}
@media(max-width:640px){
  .federation-catalog[data-view=grid] .federation-course-media{
    width:100%;height:auto;aspect-ratio:1.6;border-left:0;border-right:0;
  }
  .federation-catalog[data-view=list] .federation-course-media{
    flex:0 0 34%;min-height:155px;padding:0;
  }
}

/* Separate two independent facets in the search toolbar. */
.federation-filter-group{margin-top:17px}
.federation-filter-label{display:block;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:800}
.federation-filter-group .federation-filters{margin-top:9px}
