/* Small public-site overrides. Update the URL version and SRI hash together. */

/* Left navigation: stable submenus, neutral colours and visible keyboard focus. */
.leftnav-header {
    border-bottom: 1px solid #cbd5dc;
    margin-bottom: 12px;
    padding-bottom: 10px;
}

.leftnav-header h2,
.leftnav-header h2 a,
.leftnav-header h2 a::before {
    color: #243746;
}

.left-nav {
    background: #f5f7f8;
    border: 1px solid #dce3e8;
    border-radius: 4px;
    padding: 12px;
    margin-bottom: 20px;
}

.left-nav ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

.left-nav ul li {
    color: #243746;
    /* The legacy bundle sets its menu font size with !important. */
    font-size: 1.6rem !important;
    font-weight: 400;
    line-height: 1.45;
    padding: 0;
    margin: 0 0 6px;
}

.left-nav ul li::before {
    content: none;
    display: none;
}

.left-nav a,
.left-nav a:link,
.left-nav a:visited,
.left-nav a:active {
    display: block;
    color: #243746;
    font-weight: 400;
    text-decoration: none;
    overflow-wrap: anywhere;
    margin: 0;
    padding: 7px 9px;
    border-radius: 3px;
}

.left-nav a:hover,
.left-nav a:focus {
    color: #004f65;
    background: #e3edf1;
    text-decoration: underline;
}

.left-nav a:focus-visible {
    outline: 2px solid #00677f;
    outline-offset: -2px;
}

/* Override both the hidden and hover-expanded legacy rules at every width.
   The whole-menu mobile heading toggle remains controlled by the existing JS. */
.left-nav ul li ul,
.left-nav ul li:hover ul {
    display: block;
    border-left: 1px solid #cbd5dc;
    padding: 0 0 0 12px !important;
    margin: 8px 0 10px;
}

/* Top navigation: content-sized items, uniform height, and explicit site blue. */
.navigation .ifm-main-navigation {
    --ifm-nav-background: #01729a;
    display: block;
    padding: 0;
    margin: 0;
    background: var(--ifm-nav-background);
}
.navigation .ifm-main-navigation .navbar-collapse {
    background: var(--ifm-nav-background);
}
.navigation .ifm-main-navigation .navbar-nav {
    width: 100%; margin: 0; padding: 0; align-items: stretch;
}
.navigation .ifm-main-navigation .navbar-nav > li { position: relative; }
.navigation .ifm-main-navigation .navbar-nav > li > a {
    display: flex;
    height: 100%;
    min-height: 60px;
    align-items: center;
    justify-content: center;
    white-space: nowrap;
    padding: 18px 12px !important;
    font-size: 16px;
    line-height: 24px;
    text-decoration: none;
    background: var(--ifm-nav-background);
    color: #fff;
}
.navigation .ifm-main-navigation .navbar-nav > li.active > a,
.navigation .ifm-main-navigation .navbar-nav > li > a:hover,
.navigation .ifm-main-navigation .navbar-nav > li > a:focus-visible {
    background: #fff;
    color: #01729a;
}
.navigation .ifm-main-navigation .navbar-toggler {
    margin: 8px 12px; padding: 8px 12px; font-size: 1.6rem;
    background: #fff;
}
.navigation .ifm-main-navigation .navbar-collapse.show { display: block !important; }
@media (min-width: 1200px) {
    .navigation .ifm-main-navigation .navbar-collapse { display: flex !important; }
    .navigation .ifm-main-navigation .navbar-nav { display: flex; flex-direction: row; }
    .navigation .ifm-main-navigation .navbar-nav > li { flex: 1 0 auto; float: none; width: auto; }
}
@media (max-width: 1199.98px) {
    .navigation .ifm-main-navigation .navbar-collapse:not(.show):not(.collapsing) { display: none !important; }
    .navigation .ifm-main-navigation .navbar-nav { display: flex; flex-direction: column; }
    .navigation .ifm-main-navigation .navbar-nav > li { float: none; width: 100%; }
    .navigation .ifm-main-navigation .navbar-nav > li > a { min-height: 48px; padding: 12px !important; }
    .navigation .ifm-main-navigation .navbar-nav > li.active > a::after { content: none; }
}

/* Section menu: progressively enhance visible lists into button disclosures. */
.left-nav { display: block; }
.leftnav-header h2 .ifm-section-toggle,
.left-nav .ifm-subnav-toggle {
    display: block;
    width: 100%;
    border: 0;
    background: transparent;
    color: #243746;
    font: inherit;
    text-align: left;
    padding: 7px 9px;
    border-radius: 3px;
}
.leftnav-header h2 .ifm-section-toggle { padding-left: 0; font-size: 2rem; }
.ifm-section-toggle::after, .ifm-subnav-toggle::after { content: '+'; float: right; margin-left: 8px; }
.ifm-section-toggle[aria-expanded="true"]::after,
.ifm-subnav-toggle[aria-expanded="true"]::after { content: '\2212'; }
.left-nav .ifm-subnav-toggle:hover { background: #e3edf1; color: #004f65; }
.ifm-section-toggle:focus-visible, .ifm-subnav-toggle:focus-visible { outline: 2px solid #00677f; outline-offset: -2px; }
.left-nav ul li ul.ifm-subnav-collapse:not(.show),
.left-nav ul li:hover ul.ifm-subnav-collapse:not(.show) { display: none; }
.left-nav ul li ul.ifm-subnav-collapse.show { display: block; }
.left-nav ul li ul.ifm-subnav-collapse.collapsing { display: block; margin-top: 0; margin-bottom: 0; }
@media (min-width: 992px) {
    .left-nav.ifm-section-collapse:not(.show),
    .ifm-responsive-panel.ifm-section-collapse:not(.show) { display: block; }
    .ifm-section-toggle::after { content: none; }
}
@media (max-width: 991.98px) {
    .left-nav.ifm-section-collapse:not(.show):not(.collapsing),
    .ifm-responsive-panel.ifm-section-collapse:not(.show):not(.collapsing) { display: none; }
    .left-nav.ifm-section-collapse.show,
    .ifm-responsive-panel.ifm-section-collapse.show { display: block; }
}

/* Equal gutters around the research content; limit this to its three columns. */
.ifm-research-group > .row > .col-xs-12,
.ifm-news-section > .row > .col-xs-12,
.ifm-about-section > .row > .col-xs-12,
.ifm-alumni-section > .row > .col-xs-12,
.ifm-intranet-section > .row > .col-xs-12,
.ifm-events-section > .row > .col-xs-12,
.ifm-insights-section > .row > .col-xs-12,
.ifm-not-found-section > .row > .col-xs-12 {
    padding-left: 15px;
    padding-right: 15px;
}

/* Legacy top images keep their intrinsic width unless constrained to the column. */
.ifm-research-group .mainimg > img,
.ifm-about-section .mainimg > img,
.ifm-alumni-section .mainimg > img,
.ifm-intranet-section .mainimg > img,
.ifm-events-section .ifm-page-content img,
.ifm-insights-section .mainimg > img {
    display: block;
    max-width: 100%;
    height: auto;
}

/* Research group heading spans section navigation and main content. */
.ifm-research-group > .ifm-group-heading,
.ifm-news-section > .ifm-section-heading,
.ifm-about-section > .ifm-section-heading,
.ifm-alumni-section > .ifm-section-heading,
.ifm-intranet-section > .ifm-section-heading,
.ifm-events-section > .ifm-section-heading,
.ifm-insights-section > .ifm-section-heading,
.ifm-not-found-section > .ifm-section-heading {
    color: #243746;
    font-size: 2.2rem;
    line-height: 1.25;
    margin: 0 0 8px;
    padding: 0 0 4px;
    border-bottom: 1px solid #cbd5dc;
}
.ifm-research-group .left-nav a[aria-current="page"] {
    background: #dcebf1;
    color: #004f65;
    font-weight: 600;
}
@media (min-width: 992px) {
    .ifm-research-group .leftnav-header, .ifm-about-section .leftnav-header, .ifm-alumni-section .leftnav-header, .ifm-intranet-section .leftnav-header { display: none; }
}

/* Research sidebar: coherent contact, quiet signup and collapsed related links. */
.ifm-research-sidebar, .ifm-sidebar-component { color: #243746; font-size: 1.6rem; line-height: 1.45; }
.ifm-research-sidebar .ifm-sidebar-contact,
.ifm-research-sidebar .ifm-sidebar-signup,
.ifm-research-sidebar .ifm-sidebar-links,
.ifm-sidebar-component {
    background: #f5f7f8;
    border: 1px solid #dce3e8;
    border-radius: 4px;
    padding: 12px;
    margin-bottom: 12px;
}
.ifm-research-sidebar h2, .ifm-sidebar-component h2 { color: #243746; font-size: 1.8rem; line-height: 1.35; margin: 0 0 10px; }
.ifm-research-sidebar p, .ifm-sidebar-component p { margin: 0 0 8px; overflow-wrap: anywhere; }
.ifm-research-sidebar .ifm-contact-name, .ifm-sidebar-component .ifm-contact-name { font-weight: 600; }
.ifm-research-sidebar a, .ifm-sidebar-component a, .ifm-research-sidebar a:visited, .ifm-sidebar-component a:visited { color: #004f65; }
.ifm-research-sidebar a:hover, .ifm-sidebar-component a:hover { text-decoration: underline; }
.ifm-research-sidebar .ifm-sidebar-signup, .ifm-sidebar-component.ifm-sidebar-signup { font-size: 1.4rem; }
.ifm-research-sidebar .ifm-sidebar-links h2 { margin: 0; }
.ifm-research-sidebar .ifm-sidebar-links button {
    border: 0; background: transparent; color: #243746; font: inherit;
    display: block; width: 100%; padding: 0; text-align: left;
}
.ifm-research-sidebar .ifm-sidebar-links button::after { content: '+'; float: right; margin-left: 8px; }
.ifm-research-sidebar .ifm-sidebar-links button[aria-expanded="true"]::after { content: '\2212'; }
.ifm-research-sidebar button:focus-visible, .ifm-research-sidebar a:focus-visible, .ifm-sidebar-component a:focus-visible { outline: 2px solid #00677f; outline-offset: 2px; }
.ifm-research-sidebar .quick-links { margin: 0; padding: 0; }
.ifm-research-sidebar ul { list-style: none; margin: 12px 0 0; padding: 0; }
.ifm-research-sidebar li { margin: 0 0 8px; padding: 0; font-size: 1.6rem; line-height: 1.45; }
.ifm-research-sidebar li::before { content: none; }
.ifm-research-sidebar li a { display: block; padding: 6px; color: #004f65; font-size: 1.6rem; font-weight: 400; overflow-wrap: anywhere; }
.ifm-research-sidebar .ifm-sidebar-kind { display: block; color: #526575; font-size: 1.2rem; font-weight: 600; }

/* Match associated Quick Links to the latest-content list; suppress legacy arrows. */
.ifm-research-sidebar .ifm-sidebar-links ul li::before,
.ifm-research-sidebar .ifm-sidebar-links ul li > a::before {
    content: none;
    display: none;
}
.ifm-research-sidebar .ifm-sidebar-links ul li > a {
    font-size: 1.6rem;
    font-weight: 400;
    line-height: 1.45;
    padding: 6px;
}

/* Compact breadcrumb-to-title space only for the research group layout. */
.breadcrumb:has(+ .ifm-research-group),
.breadcrumb:has(+ .ifm-news-section),
.breadcrumb:has(+ .ifm-about-section),
.breadcrumb:has(+ .ifm-alumni-section),
.breadcrumb:has(+ .ifm-intranet-section),
.breadcrumb:has(+ .ifm-events-section),
.breadcrumb:has(+ .ifm-insights-section) {
    margin-bottom: 6px;
    padding-bottom: 4px;
}

.ifm-research-group > .ifm-group-heading { text-align: center; }
.ifm-news-section > .ifm-section-heading, .ifm-about-section > .ifm-section-heading { text-align: left; }
.ifm-news-section .newsImg img { max-width: 100%; height: auto; }

/* News cards must fit the central column rather than retain 270px float limits. */
.ifm-news-section .event > .col-xs-12 {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
    gap: 16px;
    padding: 0;
}
.ifm-news-section .newsImg,
.ifm-news-section .newsText {
    float: none;
    max-width: none;
    min-width: 0;
    overflow-wrap: anywhere;
}
.ifm-news-section .newsImg { margin-right: 0; }
.ifm-news-section .event > .col-xs-12 > .clear { display: none; }
@media (max-width: 575.98px) {
    .ifm-news-section .event > .col-xs-12 { grid-template-columns: minmax(0, 1fr); }
}

/* Curated News navigation shares the sidebar panel styling without legacy arrows. */
.ifm-sidebar-curated .ifm-sidebar-list { list-style: none; margin: 0; padding: 0; }
.ifm-sidebar-curated .ifm-sidebar-list li { margin: 0 0 8px; padding: 0; }
.ifm-sidebar-curated .ifm-sidebar-list li:last-child { margin-bottom: 0; }
.ifm-sidebar-curated .ifm-sidebar-list li::before,
.ifm-sidebar-curated .ifm-sidebar-list a::before { content: none; display: none; }
.ifm-sidebar-curated .ifm-sidebar-list a { display: block; padding: 6px; font-size: 1.6rem; font-weight: 400; overflow-wrap: anywhere; }
.ifm-sidebar-curated .ifm-sidebar-kind { display: block; color: #526575; font-size: 1.2rem; font-weight: 600; }

/* News disclosure headings appear only when its panels stack. */
@media (min-width: 992px) {
    .ifm-news-section .ifm-mobile-panel-heading { display: none; }
}

.ifm-events-section > .ifm-section-heading,
.ifm-insights-section > .ifm-section-heading { text-align: left; }
/* An absent sidebar leaves one content column, which occupies the entire row. */
.ifm-events-section > .row > .ifm-page-content:only-child,
.ifm-insights-section > .row > .ifm-page-content:only-child { width: 100%; }
.ifm-page-sidebar .ifm-sidebar-component { overflow-wrap: anywhere; }
.ifm-events-section .ifm-page-sidebar .qlinks-header {
    border: 0; padding: 0; margin: 0; background: transparent;
}
.ifm-events-section .coming-up-list h2 { border: 0; padding: 0; margin: 0 0 10px; }
.ifm-events-section .coming-up-list ul { margin: 0; padding: 0; list-style: none; }

/* Course rows must contain their dates/text inside the narrow Events panel. */
.ifm-events-section .coming-up-list li {
    display: grid;
    grid-template-columns: 56px minmax(0, 1fr);
    gap: 10px;
    margin: 0 0 14px;
    padding: 0;
    list-style: none;
}
.ifm-events-section .coming-up-list li:last-child { margin-bottom: 0; }
.ifm-events-section .coming-up-list .hp-cu-date,
.ifm-events-section .coming-up-list .hp-cu-entry {
    float: none;
    width: auto;
    min-width: 0;
    padding: 0;
    margin: 0;
}
.ifm-events-section .coming-up-list .hp-cu-date {
    white-space: nowrap;
    overflow-wrap: normal;
    word-break: normal;
}
.ifm-events-section .coming-up-list .cu-day {
    display: block;
    font-size: 2.4rem;
    line-height: 1.15;
}
.ifm-events-section .coming-up-list .cu-month {
    display: block;
    font-size: 1.4rem;
    line-height: 1.3;
}
.ifm-events-section .coming-up-list .hp-cu-entry { font-size: 1.3rem; line-height: 1.4; }
.ifm-events-section .coming-up-list .hp-cu-entry strong { font-size: 1.5rem; line-height: 1.35; }

/* Generated group mugshots: bounded portraits, including the local fallback. */
.ifm-person-thumbnail { display: block; width: 80px; height: 100px; max-width: 100%; object-fit: contain; border-radius: 4px; }

.ifm-alumni-section > .ifm-section-heading,
.ifm-intranet-section > .ifm-section-heading { text-align: left; }
@media (min-width: 768px) {
    .ifm-alumni-section > .row,
    .ifm-intranet-section > .row { display: flex; flex-wrap: wrap; }
    .ifm-alumni-section > .row > .ifm-flexible-content,
    .ifm-intranet-section > .row > .ifm-flexible-content { flex: 1 1 0; width: auto; min-width: 0; }
}

/* Title-only course links must not inherit the old whole-row anchor geometry. */
.coming-up-list li a.ifm-course-title {
    display: inline;
    padding: 0;
    border: 0;
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 2px;
}
.coming-up-list li a.ifm-course-title::after { content: none; display: none; }

/* Missing-page content shares the section heading, with no sidebar columns. */
.ifm-not-found-section > .ifm-section-heading { text-align: left; }
.ifm-not-found-section img { max-width: 100%; height: auto; }
