/* ============================================================
   Site-wide section spacing
   All content sections: padding-top / padding-bottom = 40px
   Loaded last so page CSS is overridden.
   ============================================================ */

:root {
    --section-pad-y: 40px;
}

/*
 * Universal: every direct content section in main gets 40px vertical padding.
 * Heroes, banners, login, and breadcrumb bars are excluded.
 */
main#main-content > section:not(.hero-section):not(.page-banner):not(.research-hero):not(.research-hero--alumni):not(.echr-section):not(.login-panel):not(.staff-breadcrumb-bar):not(.resources-hero-wrap):not([class*="-hero"]),
main > section:not(.hero-section):not(.page-banner):not(.research-hero):not(.research-hero--alumni):not(.echr-section):not(.login-panel):not(.staff-breadcrumb-bar):not(.resources-hero-wrap):not([class*="-hero"]),
.site-content > section:not(.hero-section):not(.page-banner):not(.research-hero):not(.echr-section):not([class*="-hero"]),
main > section[class*="-section"]:not(.hero-section):not(.echr-section),
main section.education-container,
section.education-container,
#research-app section:not(.research-hero):not(.page-banner):not(.position-relative):not([class*="-hero"]),
#mph-app section:not(.page-banner):not(.research-hero):not(.position-relative):not([class*="-hero"]),
#mep-app section:not(.page-banner):not(.research-hero):not(.position-relative):not([class*="-hero"]),
.about-section,
.awards-section,
.impact-section,
.school-intro-section,
.vm-section,
.smc-section,
.partners-section,
.pubs-section,
.inspiration-section,
.edu-section,
.rsch-section,
.rsch-pub-section,
.pub-section,
.trng-section,
.cta-section,
.alumni-stats,
.alumni-leaders,
.alumni-events,
.alumni-engage,
.alumni-register,
.career-listing,
.career-openings,
.career-listings,
.career-detail,
.int-about,
.int-benefits,
.int-objectives,
.int-eligibility,
.int-procedure,
.int-roles,
.int-contact,
.int-support,
.partnership-stats,
.partnership-featured,
.partnership-pathways,
.partnership-journey,
.partnership-enquiry,
.exchange-about,
.exchange-eligibility,
.exchange-guidelines,
.exchange-partners,
.exchange-dates,
.exchange-testimonials,
.exchange-cta,
.impact-highlights,
.impact-engagements,
.funders-section,
.collab-section,
.irp-section,
.nrp-section,
.newsletter-section,
.nl-main-section,
.annual-section,
.staff-filters-section,
.staff-list-section,
.sd-section,
.ct-main-section,
.ct-faq-section,
.pd-section,
.rb-body-section,
.ed-section,
.ut-section,
.utd-section,
.utd-related-section,
.coe-section,
.coe-lrp-section,
.rc-section,
.rph-section,
.rih-section,
.rcta-section,
.tr-intro-section,
.tr-courses-section,
.tr-popular-section,
.cg-about-section,
.cg-dist-section,
.cg-why-section,
.cg-career-section,
.dmb-badges-section,
.dmb-intro-section,
.dmb-get-section,
.dmb-details-section,
.dmb-why-section,
.ev-about,
.ev-people,
.ev-timeline,
.ev-gallery,
.ev-history,
.global-health,
.cohort-section,
.mph-faculty-section,
.mph-alumni-section,
.faq-section,
.fin-tuition-section,
.fin-extra-section,
.results-info-section,
.key-pages-section,
.mep-documents-section,
.mep-webinar-section,
.mempten-section,
.send-message-section,
.bhw-section,
.resources-content,
.search-section,
.rp-section,
.pub-stats,
.cs-section,
.irb-intro,
.irb-guidelines,
.irb-team,
.irb-contact,
.results-confirm-strip,
.curriculum-section,
.all-modules,
.fin-tuition-note-wrap,
.pi-section,
.se-section,
.ro-form-section,
.as-section,
.st-section,
.sd-card,
.sd-quick-actions,
.sd-activity {
    padding-top: var(--section-pad-y) !important;
    padding-bottom: var(--section-pad-y) !important;
}

/*
 * Direct inner wrappers: zero vertical padding so the section’s 40px
 * is the only vertical space. Horizontal padding is unchanged.
 */
main > section:not(.page-banner):not(.research-hero):not(.hero-section):not([class*="-hero"]) > [class*="-inner"],
.about-inner,
.awards-inner,
.impact-inner,
.edu-inner,
.rsch-inner,
.rsch-pub-inner,
.pub-inner,
.pubs-inner,
.trng-inner,
.cta-inner,
.partners-inner,
.smc-inner,
.inspiration-inner,
.vm-inner,
.school-intro-inner,
.alumni-stats-inner,
.alumni-events-inner,
.alumni-leaders-inner,
.alumni-engage-inner,
.alumni-register-inner,
.int-about-inner,
.int-benefits-inner,
.int-objectives-inner,
.int-eligibility-inner,
.int-procedure-inner,
.int-roles-inner,
.int-contact-inner,
.int-support-inner,
.exchange-about-inner,
.exchange-eligibility-inner,
.exchange-guidelines-inner,
.exchange-partners-inner,
.exchange-dates-inner,
.exchange-testimonials-inner,
.exchange-cta-inner,
.partnership-stats-inner,
.partnership-featured-inner,
.partnership-pathways-inner,
.partnership-journey-inner,
.partnership-enquiry-inner,
.career-listings-inner,
.career-detail-inner,
.funders-inner,
.collab-inner,
.irp-inner,
.nrp-inner,
.newsletter-inner,
.nl-main-inner,
.annual-inner,
.ct-main-inner,
.ct-faq-inner,
.sd-inner,
.tr-intro-inner,
.tr-courses-inner,
.tr-popular-inner,
.cg-about-inner,
.cg-dist-inner,
.cg-why-inner,
.cg-career-inner,
.dmb-badges-inner,
.dmb-intro-inner,
.dmb-get-inner,
.dmb-details-inner,
.dmb-why-inner,
.ev-about-inner,
.ev-people-inner,
.ev-timeline-inner,
.ev-gallery-inner,
.ev-history-inner,
.global-health-inner,
.coe-inner,
.coe-lrp-inner,
.rc-inner,
.rph-inner,
.rih-inner,
.rcta-inner,
.bhw-inner,
.ut-inner,
.utd-inner,
.pd-inner,
.ed-inner,
.rb-inner,
.search-inner,
.rp-inner,
.pub-stats-inner,
.irb-intro-inner,
.irb-guidelines-inner,
.irb-team-inner,
.irb-contact-inner,
.staff-filters-inner,
.staff-list-inner {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

/*
 * .education-container
 * - section.education-container = full content block (40px vertical from --section-pad-y)
 * - div.education-container inside a section = horizontal padding only
 */
section.education-container {
    padding-top: var(--section-pad-y) !important;
    padding-bottom: var(--section-pad-y) !important;
}

div.education-container,
section:not(.education-container) > .education-container,
.tab-content div.education-container,
.tab-pane.education-container {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

/* Education programme tab content shells — section elements only */
.tab-pane > section.education-container,
#overview > section.education-container,
#admission > section.education-container,
#news-and-events > section.education-container,
#faq > section.education-container,
#results > section.education-container {
    padding-top: var(--section-pad-y) !important;
    padding-bottom: var(--section-pad-y) !important;
}

/* Legacy tab-pane div shells (horizontal padding only) */
.tab-pane > div.education-container,
#overview > div.education-container,
#admission > div.education-container,
#news-and-events > div.education-container,
#faq > div.education-container,
#results > div.education-container {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

/* Vue education apps: wrapper sections with no class */
#mph-app section:not([class]),
#mph-app section[class=""],
#mep-app section:not([class]),
#mep-app section[class=""] {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

/* Nested widgets / sidebars — not full-page sections */
.impact-highlights .mep-featured-stories-section,
.impact-events-sidebar-widget
 {
    padding-top: revert !important;
    padding-bottom: revert !important;
}

/* Heroes / full-bleed / fixed layouts — do not force 40px */
.hero-section,
.page-banner,
.research-hero,
.research-hero--alumni,
.echr-section,
.login-visual,
.login-panel,
.position-relative,
.tab-content-area,
[class*="-hero"] {
    padding-top: revert !important;
    padding-bottom: revert !important;
}

.echr-section {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

/* ============================================================
   Section subtitle (eyebrow/label) + section title
   margin-bottom / padding-bottom = 0 on all pages
   ============================================================ */

/* Subtitles / labels */
.section-label,
.gh-label,
.gh-label--center,
.exchange-section-label,
.about-label,
.smc-label-row,
.partners-label-row,
.pubs-label-row,
.edu-label,
.rsch-label,
.pub-label,
.trng-label,
.cta-label,
.int-about-label,
.int-benefits-label,
.int-objectives-label,
.int-eligibility-label,
.int-procedure-label,
.int-roles-label,
.alumni-register-label,
.irb-contact-label-row,
.ev-people .gh-label,
.ev-gallery .gh-label,
/* Titles */
.section-title-lg,
.gh-title,
.ev-history-title,
.exchange-section-title,
.about-heading,
.smc-heading,
.partners-heading,
.pubs-heading,
.edu-heading,
.rsch-heading,
.trng-heading,
.cta-heading,
.overview-title,
.alumni-section-title,
.alumni-events-title,
.alumni-register-title,
.int-about-title,
.int-benefits-title,
.int-eligibility-title,
.int-procedure-title,
.int-roles-title,
.int-support-title,
.int-contact-title,
.tr-section-heading,
.utd-section-title,
.irb-intro-title,
.irb-team-title,
.irb-contact-title,
.ev-people-title,
.ev-gallery-title,
.partnership-pathways-title,
.partnership-featured-title,
.partnership-journey-title,
.partnership-enquiry-title,
.research-methodology-heading {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

/* Bootstrap mb-* utilities on section titles/labels */
.section-label.mb-1,
.section-label.mb-2,
.section-label.mb-3,
.section-label.mb-4,
.section-title-lg.mb-1,
.section-title-lg.mb-2,
.section-title-lg.mb-3,
.section-title-lg.mb-4,
.gh-label.mb-1,
.gh-label.mb-2,
.gh-label.mb-3,
.gh-label.mb-4,
.gh-title.mb-1,
.gh-title.mb-2,
.gh-title.mb-3,
.gh-title.mb-4 {
    margin-bottom: 0 !important;
}
