/* Shared CISFA rhythm for navigation, public pages and the platform footer. */
body {
    --cisfa-space-unit: 8px;
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
body #header .cisfa-brand-copy strong { letter-spacing: .8px; }
body #header .cisfa-brand-copy small { line-height: 1.5; }
body #header .nav-link, body #header .cisfa-nav-login { font-weight: 600; }
body#page-site-index .cisfa-section-heading h2,
body.cisfa-catalog-page .cisfa-catalog-intro h2 { font-size: clamp(25px, 2.2vw, 32px); line-height: 1.25; letter-spacing: -.7px; font-weight: 650; }
body#page-site-index .cisfa-card-body p { line-height: 1.75; }
body .cisfa-course-metadata { margin-bottom: 20px; }
body .cisfa-course-metadata .cisfa-speaker-bio { font-size: 12px; line-height: 1.75; margin: 10px 0 0; }
body .cisfa-course-metadata .cisfa-meta-facts { gap: 8px; }
body .cisfa-course-metadata .cisfa-meta-facts > span { display: inline-flex; align-items: center; gap: 4px; padding: 6px 9px; border: 1px solid #ece5f2; border-radius: 7px; background: #fcfafd; }
body .cisfa-course-metadata .cisfa-speaker-name { font-size: 14px; }
body.cisfa-catalog-page .cisfa-catalog-card-details .summary ul { margin: 12px 0 0; padding-left: 18px; }
body.cisfa-catalog-page .cisfa-catalog-card-details .summary li { padding-left: 3px; margin-bottom: 6px; }
body.cisfa-catalog-page .cisfa-catalog-card-details .summary li::marker { color: #9a80ad; }
body.cisfa-catalog-page .cisfa-catalog-card-details .summary { margin-bottom: 0; }
/* Use one compact footer treatment on every layout. */
body #page-footer #footer { background: #241232; }
body #page-footer #footer .footer-main { padding: 32px 24px 28px; background: transparent; }
body #page-footer #footer .footer-main .row { display: grid; grid-template-columns: 1.1fr .85fr 1.2fr .65fr; gap: 32px; max-width: 1200px; margin: 0 auto; }
body #page-footer #footer .footer-main .row > div { width: auto; max-width: none; min-width: 0; padding: 0; }
body #page-footer #footer .footer-main :is(.infoarea, .foot-links, .contact-info, .social-media) { padding: 0; margin: 0; }
body #page-footer #footer .footer-main h2 { margin: 0 0 12px; color: #fff; font-size: 13px; line-height: 1.5; font-weight: 650; }
body #page-footer #footer .footer-main .footer-logo { max-width: 145px; margin: 0 0 14px; }
body #page-footer #footer .footer-main :is(p, a) { color: #d8cde2; font-size: 12px; line-height: 1.75; }
body #page-footer #footer .footer-main p { margin: 0 0 10px; }
body #page-footer #footer .footer-main .foot-links li a { display: inline-block; padding: 3px 0; line-height: 1.7; text-decoration: none; }
body #page-footer #footer .footer-main a:hover { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
body #page-footer #footer .footer-main a:focus-visible { outline: 2px solid #9cdbd5; outline-offset: 3px; border-radius: 3px; }
body #page-footer #footer .footer-main .contact-info { padding-right: 8px; overflow-wrap: anywhere; }
body #page-footer #footer .footer-main .social-media { padding-left: 16px; }
body #page-footer #footer .footer-main .social-media ul { gap: 4px; }
body #page-footer #footer .footer-main .social-media li a { color: #fff; font-size: 17px; line-height: 1; }
body #page-footer #footer .footer-bottom { padding: 12px 24px; background: #1b0d26; border-top: 1px solid #ffffff0a; }
body #page-footer #footer .footer-bottom p { margin: 0; color: #c4b4cf; font-size: 11px; line-height: 1.6; }
@media (min-width: 768px) and (max-width: 991px) {
    body #page-footer #footer .footer-main .row { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 40px; }
    body #page-footer #footer .footer-main .social-media { padding-left: 0; }
}
@media (max-width: 767px) {
    body #page-footer #footer .footer-main { padding: 28px 24px 24px; }
    body #page-footer #footer .footer-main .row { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; text-align: left; }
    body #page-footer #footer .footer-main .row > div:first-child,
    body #page-footer #footer .footer-main .row > div:last-child { grid-column: 1 / -1; }
    body #page-footer #footer .footer-main .infoarea { max-width: 360px; margin-inline: auto; text-align: center; }
    body #page-footer #footer .footer-main .footer-logo { max-width: 140px; margin-inline: auto; }
    body #page-footer #footer .footer-main .contact-info { padding-right: 0; }
    body #page-footer #footer .footer-main .social-media { display: flex; align-items: center; justify-content: center; gap: 24px; padding-left: 0; }
    body #page-footer #footer .footer-main .social-media h2 { margin: 0; }
    body #page-footer #footer .footer-main .social-media ul { margin: 0; }
    body #page-footer #footer .footer-bottom { padding-inline: 20px; }
}
/* Moodle displays its support links inline on mobile; integrate them into the footer. */
@media (max-width: 767px) {
    body #page-footer #footer .footer-content-popover { max-width: none; padding: 0; border: 0; border-radius: 0; background: #1b0d26; }
    body #page-footer #footer .footer-content-popover .footer-section { padding: 12px 24px !important; border-color: #ffffff0a !important; }
    body #page-footer #footer .footer-content-popover .footer-section div,
    body #page-footer #footer .footer-content-popover .footer-section a { color: #c4b4cf; font-size: 11px; line-height: 1.8; }
    body #page-footer #footer .footer-content-popover .footer-section a:hover { color: #fff; }
    body #page-footer #footer .footer-content-popover hr { margin: 10px 0; border-color: #ffffff18; }
}
