/* Shared page structure: the footer follows content, including on short pages. */
html { min-height: 100%; scroll-padding-top: 105px; }
body.mdn-site { display: flex; flex-direction: column; min-height: 100vh; min-height: 100svh; margin: 0; }
body.mdn-site > #navigation { flex: 0 0 auto; }
body.mdn-site > #site-content { flex: 1 0 auto; width: 100%; min-width: 0; display: flow-root; }
body.mdn-site > #site-content:focus { outline: none; }
.skip-link { position: fixed; top: -100px; left: 16px; padding: 12px 20px; background: #fff; color: #102b3c; z-index: 2000; }
.skip-link:focus { top: 12px; }
#footer.mdn-footer { position: static; flex: 0 0 auto; clear: both; width: 100%; margin: auto 0 0; padding: 40px 0 24px; background: #102733; color: #c0cdd3; text-align: left; z-index: auto; }
#footer .mdn-footer-inner { max-width: 1248px; }
#footer .mdn-footer-top, #footer .mdn-footer-bottom { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
#footer .mdn-footer-top { padding-bottom: 28px; border-bottom: 1px solid #324650; }
#footer .mdn-footer-brand { color: #fff; font-size: 22px; line-height: 1.4; font-weight: 700; text-decoration: none; }
#footer .mdn-footer-brand span { display: block; color: #c0cdd3; font-size: 12px; font-weight: 400; margin-top: 5px; }
#footer .mdn-footer-nav, #footer .mdn-footer-social { display: flex; flex-wrap: wrap; gap: 16px 26px; }
#footer .mdn-footer-nav a, #footer .mdn-footer-social a { color: #e6edf0; font-size: 13px; line-height: 1.6; text-decoration: none; }
#footer .mdn-footer-bottom { padding-top: 22px; }
#footer .mdn-footer-bottom p { margin: 0; padding: 0; color: #c0cdd3; font-size: 12px; line-height: 1.7; }
#footer a:hover { color: #93e3cb; text-decoration: underline; text-underline-offset: 4px; }
#footer a:focus-visible, .mdn-home a:focus-visible, .mdn-home button:focus-visible { outline: 3px solid #1d997c; outline-offset: 5px; }
@media (max-width: 575px) {
    #footer.mdn-footer { padding: 32px 12px 24px; }
    #footer .mdn-footer-top, #footer .mdn-footer-bottom { align-items: flex-start; flex-direction: column; gap: 20px; }
    #footer .mdn-footer-nav { gap: 12px 22px; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
/* Database-authored job text is sanitized server-side, then styled consistently. */
.job-rich-text { line-height: 1.8; overflow-wrap: anywhere; }
.job-rich-text ul, .job-rich-text ol { margin: 12px 0 20px; padding-left: 24px; }
.job-rich-text ul { list-style: disc; }
.job-rich-text ol { list-style: decimal; }
.job-rich-text li { margin-bottom: 10px; padding-left: 4px; }
.job-rich-text p { margin-bottom: 14px; }
.job-rich-text h3, .job-rich-text h4, .job-rich-text h5, .job-rich-text h6 { margin: 18px 0 12px; line-height: 1.5; }
.job-rich-text a { text-decoration: underline; text-underline-offset: 3px; }
/* Keep the logo and menu toggle on one row at narrow widths. */
.mdn-site #header_navbar .navbar-brand { flex: 0 0 150px; width: 150px; height: auto; margin-right: 16px; }
.mdn-site #header_navbar img#logo { display: block; width: 150px; height: auto; max-width: 100%; }
@media (max-width: 575px) {
    .mdn-site #header_navbar .navbar-brand { flex-basis: 140px; width: 140px; }
    .mdn-site #header_navbar img#logo { width: 140px; }
}
