/* List/grid course catalogue, with live products grouped by their existing MedUC year categories. */
.mcl { --mcl-bg:#050506; --mcl-surface:#151619; --mcl-input:#1d1e22; --mcl-ink:#fff; --mcl-muted:#b4b7bf; --mcl-line:#ffffff24; --mcl-red:#ed204f; background:var(--mcl-bg); color:var(--mcl-ink); font:400 15px/1.7 Inter,Arial,sans-serif; -webkit-font-smoothing:antialiased; }
html[data-meduc-theme="light"] .mcl { --mcl-bg:#fff; --mcl-surface:#fff; --mcl-input:#f4f4f6; --mcl-ink:#17191e; --mcl-muted:#656b76; --mcl-line:#e2e4e9; --mcl-red:#bd263a; }
.mcl *, .mcl *::before, .mcl *::after { box-sizing:border-box; }
.mcl [hidden] { display:none !important; }
.mcl .mcl-shell { width:min(83.333333%,1440px); margin-inline:auto; }
.mcl h1,.mcl h2,.mcl h3,.mcl p { color:inherit; }
.mcl a { color:inherit; text-decoration:none; }
.mcl a:focus,.mcl button:focus,.mcl select:focus { outline:none !important; }
.mcl a:focus-visible,.mcl button:focus-visible,.mcl select:focus-visible { outline:2px solid var(--mcl-red) !important; outline-offset:4px; }
.mcl .mcl-eyebrow { margin:0 0 18px; color:var(--mcl-red); font:700 10px/1.5 Inter,Arial,sans-serif; letter-spacing:.13em; }
.mcl-hero { display:flex; align-items:flex-end; justify-content:space-between; gap:60px; padding-block:60px 48px; }
.mcl h1 { margin:0; max-width:850px; font:400 clamp(42px,4.7vw,68px)/1.14 Anton,Impact,sans-serif; letter-spacing:-.015em; text-wrap:balance; }
.mcl h1 span { display:block; color:var(--mcl-red); }
.mcl .mcl-category-title { font-size:clamp(40px,4.3vw,62px); }
.mcl .mcl-back { display:inline-block; margin-bottom:16px; color:var(--mcl-muted); font-size:12px; }
.mcl .mcl-back:hover { color:var(--mcl-red); }
.mcl-hero-detail { flex:0 0 300px; padding-bottom:3px; }
.mcl-hero-detail p { margin:0 0 20px; color:var(--mcl-muted); font-size:13px; line-height:1.8; }
.mcl-hero-detail>span { color:var(--mcl-muted); font-size:12px; }
.mcl-hero-detail strong { margin-right:5px; color:var(--mcl-ink); font-size:25px; font-weight:600; }
.mcl-year-nav { position:sticky; top:var(--mhi-header-h,66px); z-index:1010; border-block:1px solid var(--mcl-line); background:var(--mcl-bg); }
.mcl-year-links { display:flex; gap:32px; overflow:auto; scrollbar-width:none; }
.mcl-year-links::-webkit-scrollbar { display:none; }
.mcl-year-links>a { display:flex; align-items:center; position:relative; min-height:60px; color:var(--mcl-muted); font-size:12px; font-weight:600; white-space:nowrap; }
.mcl-year-links>a:hover,.mcl-year-links>a[aria-current] { color:var(--mcl-ink); }
.mcl-year-links>a[aria-current]::after { position:absolute; right:0; bottom:0; left:0; height:2px; background:var(--mcl-red); content:""; }
.mcl-catalog-body { padding-block:32px 65px; scroll-margin-top:calc(var(--mhi-header-h,66px) + 76px); }
.mcl-tools { display:flex; align-items:center; justify-content:space-between; gap:30px; }
.mcl-search { display:flex; align-items:center; gap:12px; width:min(100%,580px); min-height:48px; padding:0 15px; border:1px solid transparent; border-radius:7px; background:var(--mcl-input); }
.mcl-search:focus-within { border-color:var(--mcl-red); }
.mcl-search svg { flex:none; width:20px; height:20px; fill:none; stroke:var(--mcl-muted); stroke-width:1.7; stroke-linecap:round; }
.mcl-search input { width:100%; min-width:0; height:46px; border:0; outline:0; background:transparent; color:var(--mcl-ink); font:400 13px/1.5 Inter,Arial,sans-serif; }
.mcl .mcl-search input:focus,.mcl .mcl-search input:focus-visible { outline:none !important; box-shadow:none !important; }
.mcl-search input::placeholder { color:var(--mcl-muted); }
.mcl-search input::-webkit-search-cancel-button { display:none; }
.mcl-search button { flex:none; display:grid; place-items:center; width:26px; height:26px; padding:0; border:0; border-radius:50%; background:var(--mcl-bg); color:var(--mcl-muted); font:400 20px/1 Inter,Arial,sans-serif; cursor:pointer; }
.mcl-sort { display:flex; align-items:center; gap:12px; margin:0; color:var(--mcl-muted); font-size:11px; white-space:nowrap; }
.mcl-sort select { max-width:100%; min-height:47px; padding:10px 30px 10px 13px; border:1px solid var(--mcl-line); border-radius:7px; background:var(--mcl-bg); color:var(--mcl-ink); font:400 12px/1.5 Inter,Arial,sans-serif; cursor:pointer; }
.mcl .mcl-result { margin:19px 0 0; color:var(--mcl-muted); font-size:11px; }
.mcl-group { margin-top:40px; }
.mcl-group+.mcl-group { margin-top:55px; }
.mcl-group-heading { display:grid; grid-template-columns:minmax(39px,1fr) minmax(0,auto) minmax(39px,1fr); align-items:center; gap:18px; margin-bottom:22px; }
.mcl-group-number { flex:none; display:grid; place-items:center; width:39px; height:39px; border:1px solid var(--mcl-line); border-radius:50%; color:var(--mcl-red); font-size:11px; }
.mcl-group-heading .mcl-eyebrow { margin-bottom:5px; font-size:8px; }
.mcl-group-heading h2 { margin:0; font:400 clamp(25px,2.4vw,35px)/1.3 Anton,Impact,sans-serif; }
.mcl-group-heading>div:not(.mcl-group-actions) { min-width:0; text-align:center; }
.mcl-group-actions { justify-self:end; display:flex; flex:none; align-items:center; gap:18px; margin-left:auto; }
.mcl-group-count { flex:none; color:var(--mcl-muted); font-size:11px; white-space:nowrap; }
.mcl-layout-switch { display:flex; gap:3px; padding:3px; border:1px solid var(--mcl-line); border-radius:7px; background:var(--mcl-input); }
.mcl-layout-switch button { display:grid; place-items:center; width:34px; height:34px; padding:0; border:0; border-radius:4px; background:transparent; color:var(--mcl-muted); cursor:pointer; transition:background .18s,color .18s; }
.mcl-layout-switch button:hover { color:var(--mcl-ink); }
.mcl-layout-switch button[aria-pressed="true"] { background:var(--mcl-surface); color:var(--mcl-red); box-shadow:0 1px 4px #0000000d; }
.mcl-layout-switch svg { width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.mcl-course-list { display:grid; gap:16px; }
.mcl-card { display:grid; grid-template-columns:minmax(220px,29%) minmax(0,1fr); min-width:0; border:1px solid var(--mcl-line); border-radius:10px; overflow:hidden; background:var(--mcl-surface); transition:border-color .2s; }
.mcl-card:hover { border-color:color-mix(in srgb,var(--mcl-red) 55%,var(--mcl-line)); }
.mcl-cover { position:relative; display:flex; align-items:center; overflow:hidden; min-height:215px; background:#f0f0f1; }
.mcl-cover img { display:block; width:100%; height:100%; min-height:215px; object-fit:cover; transition:transform .4s ease; }
.mcl-cover:hover img { transform:scale(1.035); }
.mcl-cover-placeholder { display:flex; flex:1; flex-direction:column; align-items:center; justify-content:center; gap:14px; padding:30px; color:#bb243a; font:400 37px/1.2 Anton,Impact,sans-serif; }
.mcl-cover-placeholder>span { color:#626672; font:600 8px/1.5 Inter,Arial,sans-serif; letter-spacing:.14em; }
.mcl-card-copy { display:flex; flex-direction:column; min-width:0; padding:23px 25px 21px; }
.mcl-card h3 { margin:0; font:600 clamp(18px,1.6vw,23px)/1.4 Inter,Arial,sans-serif; letter-spacing:-.035em; }
.mcl-card h3 a { color:var(--mcl-ink); transition:color .2s; }
.mcl-card h3 a:hover { color:var(--mcl-red); }
.mcl-card-meta { display:flex; flex-wrap:wrap; gap:8px; margin-top:11px; color:var(--mcl-muted); font-size:11px; }
.mcl-card-meta span+span::before { content:"·"; margin-right:8px; }
.mcl .mcl-card-description { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; margin:12px 0 0; color:var(--mcl-muted); font-size:11px; line-height:1.8; }
.mcl .mcl-details { display:inline-flex; align-items:center; gap:12px; width:fit-content; margin-top:auto; padding-top:16px; color:var(--mcl-muted); font-size:11px; font-weight:500; }
.mcl .mcl-details:hover { color:var(--mcl-red); }
.mcl-details span { font-size:18px; line-height:1; }
.mcl .mcl-register { display:inline-flex; align-items:center; justify-content:space-between; gap:14px; min-height:45px; padding:11px 15px; border:0; border-radius:6px; background:#e8234f; color:#fff; font:600 13px/1.4 Inter,Arial,sans-serif; text-decoration:none; transition:filter .18s; white-space:nowrap; }
.mcl-card-copy > .mcl-register { align-self:flex-start; max-width:100%; margin-top:18px; }
html[data-meduc-theme="light"] .mcl .mcl-register { background:#de2334; }
.mcl .mcl-register:hover { color:#fff; filter:brightness(1.12); }
.mcl-register>span { font-size:19px; line-height:1; }
.mcl .mcl-list-note { margin:28px 0 0; color:var(--mcl-muted); font-size:10px; }
.mcl-empty { display:flex; flex-direction:column; align-items:center; gap:13px; margin-top:30px; padding:55px 25px; border:1px dashed var(--mcl-line); border-radius:10px; text-align:center; }
.mcl-empty>span { color:var(--mcl-red); font-size:35px; }
.mcl-empty h2 { margin:0; font:600 22px/1.5 Inter,Arial,sans-serif; }
.mcl-empty p { margin:0; color:var(--mcl-muted); font-size:13px; }
.mcl-empty button,.mcl-empty>a { padding:8px 12px; border:0; background:transparent; color:var(--mcl-red); font:600 13px/1.5 Inter,Arial,sans-serif; cursor:pointer; }
.mcl-help { padding-block:60px; border-top:1px solid var(--mcl-line); background:var(--mcl-input); }
.mcl-help-inner { display:flex; align-items:center; justify-content:space-between; gap:45px; }
.mcl-help h2 { margin:0; font:400 clamp(33px,3.8vw,54px)/1.2 Anton,Impact,sans-serif; }
.mcl-help h2 span { color:var(--mcl-red); }
.mcl-help p:last-child { max-width:520px; margin:20px 0 0; color:var(--mcl-muted); font-size:13px; }
.mcl-help-inner>div:last-child { display:flex; flex-direction:column; gap:12px; min-width:220px; }
.mcl-help-phone { color:var(--mcl-muted); text-align:center; font-size:12px; }
.mcl-sr-only { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
@media(min-width:1600px) { .mcl-card { grid-template-columns:29% minmax(0,1fr); } .mcl-cover,.mcl-cover img { min-height:235px; } .mcl-card-copy { padding:28px; } }
@media(max-width:1150px) { .mcl-card { grid-template-columns:28% minmax(0,1fr); } .mcl-card-copy { padding:20px; } .mcl .mcl-register { padding-inline:12px; font-size:12px; } .mcl-hero { gap:35px; } .mcl-hero-detail { flex-basis:255px; } }
@media(max-width:991.98px) { .mcl-hero { align-items:flex-start; flex-direction:column; gap:24px; } .mcl-hero-detail { display:flex; align-items:center; gap:30px; flex-basis:auto; width:100%; } .mcl-hero-detail p { max-width:490px; margin:0; } .mcl-hero-detail>span { flex:none; margin-left:auto; } .mcl-card { grid-template-columns:30% minmax(0,1fr); } .mcl-cover { grid-row:auto; } .mcl-card-copy { padding-bottom:16px; } .mcl-card-description { -webkit-line-clamp:2; } }
@media(max-width:767.98px) {
  .mcl .mcl-shell { width:calc(100% - 40px); }
  .mcl-hero { padding-block:38px 32px; }
  .mcl h1 { font-size:clamp(36px,8.6vw,54px); }
  .mcl .mcl-category-title { font-size:clamp(35px,8vw,48px); }
  .mcl .mcl-eyebrow { font-size:8px; margin-bottom:15px; }
  .mcl-hero-detail { align-items:flex-start; flex-direction:column; gap:15px; }
  .mcl-hero-detail p { max-width:none; font-size:12px; }
  .mcl-hero-detail>span { margin-left:0; font-size:11px; }
  .mcl-hero-detail strong { font-size:23px; }
  .mcl-year-links { gap:25px; }
  .mcl-year-links>a { min-height:55px; font-size:11px; }
  .mcl-catalog-body { padding-block:23px 45px; }
  .mcl-tools { align-items:stretch; flex-direction:column; gap:13px; }
  .mcl-search { width:100%; }
  .mcl-sort { justify-content:space-between; }
  .mcl-sort select { width:210px; min-height:42px; }
  .mcl-group { margin-top:30px; }
  .mcl-group+.mcl-group { margin-top:42px; }
  .mcl-group-heading { grid-template-columns:31px minmax(0,1fr) 31px; gap:12px; margin-bottom:16px; }
  .mcl-group-heading .mcl-group-actions { grid-column:1 / -1; }
  .mcl-group-number { width:31px; height:31px; font-size:9px; }
  .mcl-group-heading h2 { font-size:25px; }
  .mcl-group-heading .mcl-eyebrow { font-size:7px; margin-bottom:5px; }
  .mcl-group-count { padding-left:0; font-size:9px; }
  .mcl-card { grid-template-columns:36% minmax(0,1fr); }
  .mcl-cover { grid-row:auto; min-height:0; }
  .mcl-cover img { height:100%; min-height:150px; object-position:50% 50%; }
  .mcl-card-copy { padding:15px 14px; }
  .mcl-card h3 { font-size:16px; line-height:1.45; }
  .mcl-card-meta { margin-top:9px; gap:6px; font-size:9px; }
  .mcl-card-meta span+span::before { margin-right:6px; }
  .mcl .mcl-card-description { font-size:10px; line-height:1.65; }
  .mcl .mcl-details { padding-top:12px; font-size:9px; gap:6px; }
  .mcl-details span { font-size:15px; }
  .mcl .mcl-register { justify-content:center; min-height:43px; padding:10px 13px; gap:15px; font-size:12px; }
  .mcl-card-copy > .mcl-register { margin-top:14px; padding-inline:10px; gap:8px; font-size:11px; }
  .mcl-card-copy > .mcl-register > span { font-size:16px; }
  .mcl-cover-placeholder { padding:10px; font-size:26px; }
  .mcl-cover-placeholder>span { font-size:6px; }
  .mcl-help { padding-block:43px; }
  .mcl-help-inner { align-items:stretch; flex-direction:column; gap:27px; }
  .mcl-help h2 { font-size:36px; }
  .mcl-help p:last-child { font-size:12px; }
  .mcl-help-inner>div:last-child { max-width:340px; min-width:0; }
}
@media(max-width:380px) { .mcl .mcl-shell { width:calc(100% - 28px); } .mcl-card { grid-template-columns:33% minmax(0,1fr); } .mcl-card h3 { font-size:15px; } .mcl-card-copy { padding:13px 12px; } .mcl-group-heading h2 { font-size:23px; } }
/* Both layouts use the same card and free-preview link. */
.mcl-group[data-course-layout="grid"] .mcl-course-list { grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px 18px; }
.mcl-group[data-course-layout="grid"] .mcl-card { display:flex; flex-direction:column; }
.mcl-group[data-course-layout="grid"] .mcl-cover { flex:none; display:block; min-height:0; aspect-ratio:4 / 3; }
.mcl-group[data-course-layout="grid"] .mcl-cover img { width:100%; height:100%; min-height:0; }
.mcl-group[data-course-layout="grid"] .mcl-cover-placeholder { height:100%; }
.mcl-group[data-course-layout="grid"] .mcl-card-copy { flex:1; padding:20px 21px 18px; }
.mcl-group[data-course-layout="grid"] .mcl-card h3 { min-height:2.8em; font-size:20px; line-height:1.4; }
.mcl-group[data-course-layout="grid"] .mcl-card-meta { gap:8px; margin-top:12px; font-size:11px; }
.mcl-group[data-course-layout="grid"] .mcl-card-meta span+span::before { margin-right:8px; }
.mcl-group[data-course-layout="grid"] .mcl-card-description { display:-webkit-box; }
.mcl-group[data-course-layout="grid"] .mcl-details { justify-content:space-between; gap:12px; width:100%; margin-top:auto; padding-top:18px; color:var(--mcl-red); font-size:12px; }
.mcl-group[data-course-layout="grid"] .mcl-details span { font-size:18px; }
.mcl-group[data-course-layout="grid"] .mcl-register { justify-content:space-between; min-height:45px; padding:11px 15px; font-size:13px; }
@media(max-width:991.98px) { .mcl-group[data-course-layout="grid"] .mcl-course-list { grid-template-columns:repeat(2,minmax(0,1fr)); } .mcl-group[data-course-layout="grid"] .mcl-cover { grid-row:auto; } }
@media(max-width:767.98px) { .mcl-group-actions { flex-direction:column; align-items:flex-end; gap:7px; } .mcl-layout-switch { gap:2px; padding:2px; } .mcl-layout-switch button { width:29px; height:29px; } .mcl-layout-switch svg { width:17px; height:17px; } .mcl-search input { font-size:16px; } }
@media(max-width:640px) { .mcl-group[data-course-layout="grid"] .mcl-course-list { grid-template-columns:1fr; gap:18px; } .mcl-group[data-course-layout="grid"] .mcl-card h3 { min-height:0; font-size:19px; } }
@media(max-width:767.98px) {
  .mcl-group .mcl-layout-switch { display:none !important; }
  .mcl-group .mcl-course-list { grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
  .mcl-group .mcl-card { display:flex; flex-direction:column; }
  .mcl-group .mcl-cover { flex:none; display:block; min-height:0; aspect-ratio:4 / 3; }
  .mcl-group .mcl-cover img { height:100%; min-height:0; }
  .mcl-group .mcl-cover-placeholder { height:100%; }
  .mcl-group .mcl-card-copy { flex:1; padding:20px 21px 18px; }
  .mcl-group .mcl-card h3 { font-size:19px; }
  .mcl-group .mcl-card-meta { gap:8px; margin-top:12px; font-size:11px; }
  .mcl-group .mcl-card-copy > .mcl-register { justify-content:space-between; padding:11px 15px; gap:14px; font-size:13px; }
}
@media(max-width:640px) { .mcl-group .mcl-course-list { grid-template-columns:1fr; } }
@media(prefers-reduced-motion:reduce) { .mcl *, .mcl *::before, .mcl *::after { transition:none !important; } }

/* Three public course types share the same catalogue. */
.mcl-kind-nav { display:flex; flex-wrap:wrap; gap:10px; padding-top:24px; padding-bottom:16px; }
.mcl-kind-nav a { padding:11px 18px; border:1px solid var(--mcl-line,#dedee4); border-radius:10px; color:inherit; font-weight:700; }
.mcl-kind-nav a[aria-current="page"] { background:#d61c3b; color:#fff; border-color:#d61c3b; }
