/* Public visual language: quiet page chrome, clear hierarchy and useful media.
   All colours follow design_system.css, including the accessibility palette. */
:root { --public-content-width: 1440px; }
html { scroll-padding-top: 140px; }
body:not(.home-page):not(.program_detail) #main-content { background: var(--gray); }
.breadcrumbs { padding-block: 18px 0; }
.breadcrumbs a { min-height: 24px; display: inline-flex; align-items: center; }
.section_eyebrow, .home_eyebrow { font-size: 12px; font-weight: 700; letter-spacing: .1em; line-height: 1.5; }
:is(.editorial_summary, .education_summary) {
  padding: 28px 0 34px;
  border: 0;
  border-bottom: 1px solid var(--border-strong);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  gap: 48px;
}
:is(.editorial_summary, .education_summary)::before { display: none; }
:is(.editorial_summary_copy, .education_summary_copy) { padding-left: 0; }
:is(.editorial_summary, .education_summary) h1, .editorial_detail_title {
  font-size: clamp(32px, 3.2vw, 48px);
  font-weight: 600;
  line-height: 1.13;
  letter-spacing: -.035em;
  text-wrap: pretty;
}
:is(.editorial_lead, .education_lead) { max-width: 68ch; margin-top: 16px; font-size: 16px; line-height: 1.65; }
:is(.editorial_content, .education_catalog_content) { gap: 32px; }
:is(.editorial_panel, .general_panel, .editorial_detail_main, .editorial_detail_aside) {
  box-shadow: none;
  border-radius: var(--radius-md);
}
:is(.editorial_panel_header, .general_panel_header) :is(h1, h2, h3), .editorial_form_intro h2 {
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -.025em;
}
:is(.editorial_panel_header, .general_panel_header) :is(h2, h3) { font-size: clamp(26px, 2.4vw, 36px); }
.editorial_panel:has(> .editorial_news_grid), .education_catalog_panel,
.editorial_panel:has(> .admission_program_grid) { padding: 8px 0 0; border: 0; background: transparent; overflow: visible; }
:is(.education_metrics, .editorial_metrics) dt { font-size: 28px; font-weight: 600; letter-spacing: -.02em; }
:is(.education_metrics, .editorial_metrics) dd { font-size: 14px; font-weight: 400; line-height: 1.5; }
:is(.education_metrics, .editorial_metrics) > div { padding: 12px 0; }
.education_metrics { border-top: 0; }
.public_header_link { justify-self: end; display: inline-flex; align-items: center; gap: 40px; padding: 16px 0; border-bottom: 1px solid var(--primary); font-size: 16px; font-weight: 600; color: var(--primary-dark); }
.editorial_nav { border: 0; border-block: 1px solid var(--border); border-radius: 0; padding-inline: 0; background: transparent; }
.editorial_nav strong { font-size: 16px; font-weight: 600; }
.editorial_nav_links :is(a, button) { min-height: 44px; font-size: 14px; font-weight: 500; background: var(--white); border-radius: var(--radius-sm); }
:is(.editorial_arrow_link, .education_text_link, .general_text_link) { min-height: 44px; font-size: 14px; font-weight: 600; }
:is(.editorial_action, .ui_btn) { min-height: 46px; }
:is(.editorial_panel, .general_panel) [id] { scroll-margin-top: 144px; }

/* Programme cards keep the same hierarchy with or without photography. */
.public_media { position: relative; display: block; width: 100%; height: 100%; overflow: hidden; background: var(--primary-soft); }
.public_media_art { display: flex; position: absolute; inset: 0; flex-direction: column; justify-content: space-between; padding: 24px; color: var(--primary-dark); overflow: hidden; background: linear-gradient(115deg, var(--primary-soft), var(--gray)); }
.public_media_art::after { position: absolute; width: 190px; height: 190px; top: -70px; right: -35px; border: 1px solid var(--primary-light); box-shadow: 0 0 0 24px var(--primary-soft), 0 0 0 25px var(--border); transform: rotate(35deg); content: ''; }
.public_media_brand { font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; z-index: 1; }
.public_media_art strong { z-index: 1; margin-top: auto; font-size: clamp(28px, 3vw, 44px); font-weight: 500; line-height: 1.2; letter-spacing: -.03em; }
.public_media_rule { width: 44px; height: 3px; margin-top: 14px; background: var(--primary); }
.public_media > img { position: relative; width: 100%; height: 100%; display: block; object-fit: cover; }
.public_media > img[hidden] { display: none; }
:is(.education_program_grid, .admission_program_grid) { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
:is(.education_card, .admission_program, .editorial_news_card) { border-radius: var(--radius-md); box-shadow: none; }
:is(.education_card, .admission_program, .editorial_news_card):hover { box-shadow: var(--shadow-sm); transform: translateY(-2px); }
:is(.education_card_media, .admission_program_media) { aspect-ratio: 2.7; height: auto; }
:is(.education_card_body, .admission_program_body) { padding: 26px; gap: 16px; }
:is(.education_card_body, .admission_program_body) h3 { font-size: clamp(22px, 2vw, 30px); font-weight: 600; line-height: 1.22; letter-spacing: -.025em; }
:is(.education_card_body, .admission_program_body) h3 a { color: inherit; }
:is(.education_card_body, .admission_program_body) h3 a:hover { color: var(--primary-dark); }
:is(.education_card_description, .admission_program_desc) { font-size: 15px; line-height: 1.6; }
:is(.education_card_code, .education_card_type, .admission_program_code) { font-size: 12px; font-weight: 600; }
:is(.education_program_facts, .admission_program_meta) { margin-top: 12px; }
:is(.education_program_facts, .admission_program_meta) dt { font-size: 12px; font-weight: 400; }
:is(.education_program_facts, .admission_program_meta) dd { font-size: 14px; font-weight: 500; line-height: 1.5; }
.admission_help { display: grid; gap: 10px; padding: 24px 28px; background: var(--primary-soft); border-left: 2px solid var(--primary); }
.admission_help > span { font-size: 13px; color: var(--secondary); }
.admission_help > a:first-of-type { font-size: clamp(21px, 2vw, 28px); font-weight: 600; color: var(--black); }
.admission_help p { margin: 0; font-size: 14px; line-height: 1.6; color: var(--secondary); }
.admission_help .editorial_arrow_link { justify-content: space-between; }
.admission_document_grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.admission_document { min-height: 160px; }
.admission_document_body h3 { font-weight: 600; line-height: 1.3; }
.admission_document_body p { font-size: 15px; line-height: 1.6; }

/* News uses a regular editorial grid: dates, readable titles, then actions. */
.editorial_news_grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.editorial_news_card:first-child { grid-column: auto; }
.editorial_news_card .editorial_news_media { aspect-ratio: 16 / 9; flex: 0 0 auto; }
.editorial_news_body { padding: 24px; }
.editorial_news_body time { font-size: 13px; font-weight: 500; color: var(--secondary); }
.editorial_news_body h3 { margin: 12px 0; font-size: 24px; line-height: 1.28; font-weight: 600; letter-spacing: -.02em; }
.editorial_news_body h3 a { color: var(--black); }
.editorial_news_body h3 a:hover { color: var(--primary-dark); }
.editorial_news_body p { font-size: 15px; line-height: 1.65; }
.editorial_detail_main { padding: clamp(24px, 4vw, 56px); }
.editorial_detail_main :is(.richtext, .editorial_detail_text) { max-width: 78ch; font-size: 17px; line-height: 1.8; }
.editorial_detail_aside { background: var(--surface-subtle); }

/* Official directory and contact information are practical, compact lists. */
.general_directory { gap: 0 24px; border: 0; }
.general_directory_card { display: grid; grid-template-columns: 32px minmax(0, 1fr) 20px; align-items: center; min-height: 104px; gap: 14px; padding: 20px 0; border: 0; border-bottom: 1px solid var(--border); border-radius: 0; background: transparent; }
.general_directory_card:hover { background: transparent; box-shadow: none; transform: none; }
.general_directory_index { margin: 0; font-size: 13px; font-weight: 500; }
.general_directory_card strong { margin: 0; font-size: 18px; font-weight: 500; line-height: 1.4; }
.general_directory_action { font-size: 0; margin: 0; }
.general_directory_action img { width: 18px; height: 18px; }
.general_facts dt { font-size: 14px; font-weight: 500; }
.general_facts dd { font-size: 16px; line-height: 1.6; }
.contact_quick_facts { margin: 0; }
.contact_quick_facts dt { font-size: 12px; }
.contact_quick_facts dd { font-weight: 500; }
.contacts_hours dt { font-size: 14px; }
.contacts_hours dd { font-size: 20px; font-weight: 500; }
.contacts_map, .contacts_map :is(iframe, .external_content_gate) { min-height: 380px; }
.external_content_gate__inner { max-width: 440px; }
.external_content_gate__inner strong { font-size: 24px; font-weight: 600; }

/* Home: an institutional masthead with a technical drawing as its native
   no-photo composition; the illustration does not depict a real campus. */
.home_hero { min-height: 0; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); padding: 40px var(--page-gutter); gap: 48px; background: var(--white); }
.home_hero_copy { padding: 10px 0 0; }
.home_hero_copy h1 { max-width: 22ch; font-size: clamp(38px, 3.8vw, 58px); line-height: 1.1; font-weight: 600; letter-spacing: -.035em; text-wrap: pretty; }
.home_hero_lead { margin-top: 24px; max-width: 58ch; font-size: 17px; line-height: 1.6; }
.home_actions { margin-top: 26px; }
.home_hero_facts { margin-top: 32px; padding-top: 24px; }
.home_hero_facts dt { font-size: 30px; }
.home_hero_facts dd { max-width: 190px; font-size: 12px; font-weight: 400; }
.home_hero_visual { grid-template-rows: minmax(260px, 1fr) auto; border: 0; border-radius: var(--radius-md); overflow: hidden; background: var(--primary-dark); }
.home_hero_media { background: var(--primary-dark); }
.home_hero_fallback { position: relative; padding: 28px; overflow: hidden; display: flex; flex-direction: column; align-items: stretch; justify-content: space-between; gap: 8px; background: var(--primary-dark); color: var(--white); }
.home_blueprint_label { display: flex; align-items: center; justify-content: space-between; gap: 12px; z-index: 1; }
.home_blueprint_label span { font-size: 24px; letter-spacing: .04em; }
.home_blueprint_label small { max-width: 140px; font-size: 12px; line-height: 1.5; opacity: .85; }
.academic_illustration { position: absolute; left: 0; top: 35px; width: 100%; height: calc(100% - 50px); }
.home_hero_fallback .home_blueprint_caption { position: relative; padding-top: 210px; font-size: 13px; font-weight: 400; letter-spacing: .03em; }
.home_admission { min-height: 166px; padding: 24px 84px 24px 28px; border-top: 1px solid rgba(var(--white-rgb), .22); }
.home_admission_label { font-size: 12px; font-weight: 500; }
.home_admission strong { font-size: 30px; line-height: 1.15; margin-top: 10px; }
.home_admission_text { font-size: 14px; line-height: 1.5; margin-top: 10px; }
.home_admission_arrow { right: 24px; bottom: 24px; color: var(--primary-dark); }
.home_services { margin: 0 var(--page-gutter); }
.home_services a { min-height: 170px; padding: 24px 40px 24px 24px; }
.home_services a:first-child { padding-left: 0; }
.home_services img { margin-bottom: 16px; width: 24px; height: 24px; }
.home_services span { font-size: 12px; font-weight: 500; letter-spacing: .04em; }
.home_services strong { font-size: 21px; font-weight: 600; line-height: 1.25; }
.home_services small { font-size: 13px; }
.home_services b { right: 20px; }
:is(.home_section, .home_paths, .home_about) { padding-block: 72px; }
.home_section_header { margin-bottom: 32px; }
.home_section_header h2, .home_about h2, .home_partners h2 { font-size: clamp(30px, 3vw, 44px); line-height: 1.15; letter-spacing: -.03em; }
.home_program_grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); }
.home_program_media { aspect-ratio: 2.5; }
.home_program_body { padding: 26px; }
.home_program_body > strong { font-size: 27px; line-height: 1.25; }
.home_program_code, .home_program_meta { font-size: 13px; }
.home_program_card { border-radius: var(--radius-md); overflow: hidden; }
.home_paths { background: var(--primary-dark); }
.home_path h3 { font-size: 30px; font-weight: 600; line-height: 1.2; }
.home_path p { font-size: 15px; line-height: 1.65; }
.home_path li :is(a, button) { font-size: 15px; min-height: 46px; }
.home_news_body > strong { font-size: 25px; line-height: 1.3; }
.home_news_body > span:not(.home_card_action) { font-size: 15px; line-height: 1.65; }
.home_news_body time, .home_notice_list time { font-size: 13px; }
.home_about_contacts > div > span { font-size: 13px; }
.home_about_contacts :is(strong, a) { line-height: 1.4; }

@media (min-width: 1600px) {
  .home_hero { padding-inline: max(var(--page-gutter), calc((100vw - var(--public-content-width)) / 2)); }
  .home_services { margin-inline: max(var(--page-gutter), calc((100vw - var(--public-content-width)) / 2)); }
  :is(.home_section, .home_paths, .home_about, .home_partners, .home_resources) { padding-inline: max(var(--page-gutter), calc((100vw - var(--public-content-width)) / 2)); }
}
@media (max-width: 1100px) {
  .home_hero { gap: 28px; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); }
  .home_hero_copy h1 { font-size: 40px; }
  .home_hero_facts div { padding-right: 12px; }
  .home_hero_facts div + div { padding-left: 12px; }
  .home_blueprint_label { align-items: flex-start; }
  .editorial_news_grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  :is(.education_summary, .editorial_summary) { gap: 28px; }
}
@media (max-width: 900px) {
  html { scroll-padding-top: 100px; }
  .home_hero { grid-template-columns: 1fr; padding-block: 28px; }
  .home_hero_copy h1 { max-width: 24ch; font-size: clamp(34px, 5.7vw, 48px); }
  .home_hero_visual { grid-template-columns: 1fr 1fr; grid-template-rows: auto; }
  .home_hero_fallback { min-height: 250px; }
  .home_hero_fallback .home_blueprint_caption { padding-top: 150px; }
  .home_admission { border-top: 0; border-left: 1px solid rgba(var(--white-rgb), .22); align-content: center; }
  .home_blueprint_label small { display: none; }
  .home_hero_facts { margin-bottom: 4px; }
  .home_services { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home_services a:nth-child(2) { border-right: 0; }
  .home_services a:nth-child(3) { padding-left: 0; border-top: 1px solid var(--border); }
  .home_services a:nth-child(4) { border-top: 1px solid var(--border); }
  :is(.education_summary, .editorial_summary) { grid-template-columns: 1fr; padding-block: 18px 28px; }
  .education_metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
  .education_metrics > div { display: block; border-bottom: 0; }
  .education_metrics dd { margin-top: 8px; }
  .admission_help { grid-template-columns: 1fr 1fr; align-items: center; }
  .admission_help p { grid-column: 1; }
  .public_header_link { justify-self: start; }
}
@media (max-width: 600px) {
  :is(.editorial_content, .education_catalog_content) { gap: 24px; }
  :is(.editorial_summary, .education_summary) h1, .editorial_detail_title { font-size: 32px; }
  :is(.editorial_panel, .general_panel) { padding: 20px; }
  .editorial_summary, .education_summary, .editorial_nav { padding-inline: 0; }
  .editorial_panel:has(> .editorial_news_grid), .education_catalog_panel, .editorial_panel:has(> .admission_program_grid) { padding-inline: 0; }
  :is(.education_program_grid, .admission_program_grid, .editorial_news_grid, .admission_document_grid) { grid-template-columns: 1fr; gap: 20px; }
  :is(.education_card_media, .admission_program_media) { aspect-ratio: 2.4; }
  :is(.education_card_body, .admission_program_body, .editorial_news_body) { padding: 22px; }
  .education_metrics dd { font-size: 12px; }
  .education_metrics dt { font-size: 26px; }
  .admission_help { display: grid; grid-template-columns: 1fr; padding: 22px; }
  .admission_help p { grid-column: auto; }
  .general_directory { grid-template-columns: 1fr; }
  .general_directory_card { min-height: 84px; gap: 10px; }
  .general_directory_card strong { font-size: 17px; }
  .contacts_map, .contacts_map :is(iframe, .external_content_gate) { min-height: 320px; }
  .home_hero { gap: 24px; }
  .home_hero_copy h1 { font-size: clamp(31px, 7.6vw, 42px); line-height: 1.14; }
  .home_hero_lead { font-size: 16px; margin-top: 20px; }
  .home_eyebrow { margin-bottom: 14px; }
  .home_actions { gap: 10px; margin-top: 22px; }
  .home_button { min-height: 48px; }
  .home_button--primary { min-width: 0; flex: 1 1 210px; }
  .home_hero_facts { margin-top: 24px; padding-top: 20px; }
  .home_hero_facts dt { font-size: 26px; }
  .home_hero_facts dd { font-size: 12px; line-height: 1.5; }
  .home_hero_visual { grid-template-columns: 1fr; }
  .home_hero_media { min-height: 220px; max-height: 260px; }
  .home_hero_fallback { min-height: 220px; padding: 22px; }
  .home_hero_fallback .home_blueprint_caption { padding-top: 145px; }
  .home_blueprint_label small { display: block; }
  .academic_illustration { top: 12px; height: 100%; }
  .home_admission { border-left: 0; border-top: 1px solid rgba(var(--white-rgb), .22); min-height: 165px; padding-left: 22px; }
  .home_admission strong { font-size: 27px; }
  .home_services a { min-height: 186px; padding: 22px 20px; }
  .home_services strong { font-size: 18px; }
  .home_services small { font-size: 13px; }
  .home_services b { display: none; }
  :is(.home_section, .home_paths, .home_about) { padding-block: 48px; }
  .home_section_header { align-items: flex-start; flex-direction: column; gap: 16px; margin-bottom: 24px; }
  .home_section_header h2, .home_about h2 { font-size: 30px; }
  .home_program_grid, .home_news_grid { grid-template-columns: 1fr; }
  .home_program_body { padding: 22px; }
  .home_program_body > strong { font-size: 24px; }
  .home_path h3 { font-size: 27px; }
}
@media (prefers-reduced-motion: reduce) {
  :is(.education_card, .admission_program, .editorial_news_card):hover { transform: none; }
}

/* Final content-density pass, shared by desktop and phone layouts. */
.education_summary { border-radius: 0; }
:is(.education_card_media, .admission_program_media, .home_program_media):has(.public_media--empty) { height: 160px; aspect-ratio: auto; }
.editorial_news_body { gap: 8px; }
.editorial_news_body h3 { margin-block: 6px 12px; }
.editorial_detail_intro:has(.public_media--empty) { grid-template-columns: 1fr; }
.editorial_detail_media:has(.public_media--empty) { aspect-ratio: auto; height: 176px; }
.editorial_detail_meta dt { font-size: 12px; line-height: 1.5; }
.editorial_detail_meta dd { font-size: 18px; font-weight: 500; line-height: 1.5; }
.editorial_detail_copy > p, .editorial_richtext { font-size: 16px; line-height: 1.75; }
.editorial_detail_feature { font-size: 15px; line-height: 1.6; }
.news_detail_layout { grid-template-columns: minmax(0, 1fr) minmax(260px, 320px); align-items: start; gap: 40px; }
.news_main { padding: clamp(24px, 4vw, 56px); background: var(--white); border: 1px solid var(--border); border-radius: var(--radius-md); }
.news_head { margin-bottom: 28px; }
.news_detail_title.page_title { font-size: clamp(30px, 3vw, 44px); font-weight: 600; line-height: 1.18; color: var(--black); letter-spacing: -.03em; }
.news_date { font-size: 13px; font-weight: 500; line-height: 1.5; }
.news_hero_media { aspect-ratio: 16 / 9; margin-bottom: 28px; overflow: hidden; border-radius: var(--radius-sm); }
.news_text, .check_text, .news_info_banner .banner_body { font-size: 16px; line-height: 1.75; font-weight: 400; letter-spacing: normal; }
.news_text { margin-bottom: 22px; }
.news_text :is(p, ul, ol) { margin-bottom: 16px; }
.news_info_banner { height: auto; min-height: 100px; align-items: stretch; }
.news_info_banner .banner_left { height: auto; flex: 0 0 48px; }
.news_info_banner .banner_body { padding: 18px; }
.news_sidebar .news_card .news_image { object-fit: contain; background: var(--primary-soft); }
.public_article_back { display: inline-flex; min-height: 44px; align-items: center; gap: 14px; margin-top: 24px; font-size: 14px; font-weight: 600; }
.general_section_nav { box-shadow: none; border-radius: var(--radius-md); }
.general_nav_link { font-weight: 500; }
.site_footer { background: var(--primary-dark); padding-top: 48px; }
.footer_top { grid-template-columns: minmax(260px, 1.4fr) repeat(3, minmax(140px, 1fr)); gap: 32px; }
.footer_brand { gap: 18px; }
.footer_logo { flex: 0 0 72px; }
.site_footer .footer_logo img { width: 72px; height: 72px; }
.footer_brand p { color: var(--white); opacity: .88; }
.footer_nav_list a { min-height: 36px; display: inline-flex; align-items: center; font-size: 14px; line-height: 1.45; }
.footer_column h2 { font-size: 13px; font-weight: 600; letter-spacing: .06em; }
.footer_contact_bar { border-radius: var(--radius-md); }
.footer_links { gap: 8px 24px; }
.footer_links :is(a, button) { font-size: 12px; line-height: 1.5; min-height: 32px; display: inline-flex; align-items: center; }
@media (max-width: 1100px) {
  .footer_top { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .footer_brand { grid-column: 1 / -1; }
}
@media (max-width: 900px) {
  .news_detail_layout { grid-template-columns: 1fr; gap: 28px; }
}
@media (max-width: 600px) {
  .news_detail_title.page_title { font-size: 30px; }
  .news_main { padding: 22px; }
  .footer_top { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 20px; }
  .footer_brand { flex-direction: row; }
  .footer_logo { flex-basis: 54px; }
  .site_footer .footer_logo img { width: 54px; height: 54px; }
  .footer_brand h2 { font-size: 22px; }
  .footer_brand p { font-size: 13px; }
  .footer_nav_list { gap: 4px; }
  .footer_nav_list a { font-size: 13px; min-height: 38px; }
  .footer_column:last-child { grid-column: 1 / -1; }
  .footer_column:last-child ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 20px; }
  .footer_bottom { margin-bottom: 24px; }
  .footer_links { gap: 8px 16px; }
}
.home_hero_media { position: relative; }
.home_hero_media > .home_hero_fallback { position: absolute; inset: 0; }
.home_hero_media > img { position: relative; z-index: 1; }
.home_hero_media > img[hidden] { display: none; }
@media (max-width: 900px) and (min-width: 601px) { .home_hero_media { min-height: 260px; } }
.news_sidebar .news_card { display: block; height: auto; min-height: 0; border: 0; border-bottom: 1px solid var(--border); border-radius: 0; box-shadow: none; background: transparent; }
.news_sidebar .news_card .news_info { padding: 18px 0; height: auto; }
.news_sidebar .news_card .news_name { display: block; height: auto; max-height: none; overflow: visible; font-size: 17px; font-weight: 500; line-height: 1.5; -webkit-line-clamp: unset; }
.news_sidebar .news_card .news_btn { margin-top: 12px; font-size: 14px; }
.news_sidebar .news_card .news_image { max-height: 160px; object-fit: cover; }
@media (max-width: 1036px) {
  .site_header .mnav_btn[data-action="menu"] { width: auto; min-width: 72px; padding-inline: 8px; display: inline-flex; align-items: center; gap: 6px; }
  .site_header .mnav_btn[data-action="menu"] .mnav_label { display: inline; width: auto; height: auto; position: static; clip: auto; overflow: visible; font-size: 12px; font-weight: 600; }
}
.site_footer .footer_logo img { background: var(--white); border-radius: 50%; }
@media (max-width: 1036px) { .site_header .mnav_btn[data-action="menu"] { border-radius: var(--radius-sm); } }
.news_sidebar .news_card .news_info { min-height: 0; gap: 12px; background: transparent; }

/* Submission feedback remains in context, including after a network failure. */
.form_result { padding: 18px 20px; margin-top: 18px; border: 1px solid var(--border); border-left: 3px solid var(--primary); border-radius: var(--radius-sm); background: var(--primary-soft); color: var(--black); font-size: 15px; line-height: 1.65; overflow-wrap: anywhere; }
.form_result[hidden] { display: none; }
.form_result[data-state="error"] { border-left-color: var(--danger-strong); background: var(--surface-subtle); }
.form_result[data-state="success"] { border-left-color: var(--primary-dark); font-weight: 500; }
.form_result:focus-visible { outline: 2px solid var(--primary); outline-offset: 3px; }
form[aria-busy="true"] :is(input, select, textarea) { opacity: .7; }
form[aria-busy="true"] .btn_submit { cursor: progress; opacity: 1; }
form[aria-busy="true"] .btn_text { visibility: visible; opacity: 1; }
.field_error_text { font-size: 14px; line-height: 1.5; }
.program_search { display: grid; gap: 10px; margin-bottom: 20px; }
.program_search label { font-size: 15px; font-weight: 500; }
.program_search > div { display: flex; gap: 10px; flex-wrap: wrap; }
.program_search input { flex: 1 1 250px; min-width: 0; padding: 12px 16px; border: 1px solid var(--border-strong); border-radius: var(--radius-sm); background: var(--white); font: inherit; }
.program_search p { margin: 0; font-size: 14px; color: var(--secondary); }
.program_comparison { margin-bottom: 28px; border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--white); }
.program_comparison summary { display: flex; justify-content: space-between; padding: 18px 22px; cursor: pointer; font-weight: 500; color: var(--primary-dark); }
.program_comparison_scroll { overflow-x: auto; }
.program_comparison table { width: 100%; min-width: 640px; border-collapse: collapse; font-size: 15px; }
.program_comparison caption { text-align: left; padding: 12px 22px; font-size: 13px; color: var(--secondary); }
.program_comparison :is(th,td) { padding: 18px 22px; text-align: left; border-top: 1px solid var(--border); vertical-align: top; line-height: 1.6; }
.program_comparison thead { background: var(--primary-soft); }
.program_comparison th { font-weight: 500; }
.program_comparison small { display: block; color: var(--secondary); }
.program_admission { padding-block: 28px; margin-block: 24px; border-block: 1px solid var(--border); }
.program_admission h2 { font-size: 28px; font-weight: 600; line-height: 1.25; margin: 0 0 16px; }
.program_admission p { font-size: 16px; line-height: 1.7; }
.admission_roadmap { padding-block: 24px; }
.admission_roadmap h2 { font-size: clamp(28px, 3vw, 38px); font-weight: 600; line-height: 1.2; margin: 0 0 28px; }
.admission_roadmap ol { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); padding: 0; gap: 28px; list-style: none; counter-reset: admission-step; }
.admission_roadmap li { padding-top: 20px; border-top: 2px solid var(--primary); counter-increment: admission-step; }
.admission_roadmap li::before { content: counter(admission-step, decimal-leading-zero); display: block; font-size: 14px; color: var(--primary-dark); margin-bottom: 20px; }
.admission_roadmap strong { font-size: 22px; font-weight: 600; line-height: 1.3; }
.admission_roadmap p { color: var(--secondary); font-size: 15px; line-height: 1.7; margin-block: 14px; }
.admission_roadmap a { display: inline-flex; min-height: 44px; align-items: center; font-size: 14px; font-weight: 500; }
@media(max-width: 760px) { .admission_roadmap ol { grid-template-columns: 1fr; } }
/* Keep small text and filled controls above 4.5:1 on light surfaces. */
html:not([data-a11y-contrast="high"]) body {
  --primary: var(--primary-dark);
  --home-blue: var(--primary-dark);
  --home-orange: var(--primary-dark);
}
.home_path_index { color: var(--white); }
.footer_contact_bar { background: transparent; }
.footer_help_copy span, .footer_info :is(span, a) { color: var(--white); }
.site_footer .footer_btn.outline { background: transparent; }
.mpti_schedule_source .mpti_schedule_shell > p,
.mpti_schedule_push_intro > p,
.mpti_schedule_push_privacy > span,
.mpti_schedule_push_settings summary > b,
.mpti_schedule_push_guide > summary > b { color: var(--white); }
.contact-form .btn_submit:not(:disabled) { background: var(--primary); color: var(--white); }
.contact-form .btn_submit:not(:disabled):hover { background: var(--primary-dark); }
.btn_submit .btn_text { color: inherit; }
.contact-form .btn_submit:hover .btn_icon { content: url("/static/media/generated/icons/arrow_right_white.3939102fe3fb.png"); }
:is(.contact-form, .certificate-form, .transfer-form) :is(input, textarea)::placeholder { color: var(--secondary); opacity: 1; font-weight: 400; }
.program_comparison_hint { display: none; }
@media (max-width: 760px) { .program_comparison_hint { display: block; margin: 0; padding: 0 20px 12px; font-size: 12px; color: var(--secondary); } }

/* ImageGen editorial photography and raster pictograms. */
.home_hero_media > .home_generated_hero { object-position: center; filter: none; }
.home_hero_media > .home_hero_fallback { background: var(--primary-dark) url("/static/media/generated/hero-640.5275b2d8ac52.webp") center / cover no-repeat; }
.home_hero_fallback :is(.home_blueprint_label, .home_blueprint_caption) { visibility: hidden; }
.home_hero_media.public_media--empty .home_hero_fallback :is(.home_blueprint_label, .home_blueprint_caption) { visibility: visible; }
.public_media_art::after { display: none; }
.public_media:has(> img:not([hidden])) .public_media_art { visibility: hidden; }
.home_services img { width: 44px; height: 44px; padding: 6px; border-radius: var(--radius-sm); background: var(--primary-soft); object-fit: contain; }
img[src*='/media/generated/icons/'][src$='_white.png'],
.site_header .student_btn > img,
.site_footer .footer_btn img,
.btn_submit .btn_icon { filter: brightness(0) invert(1); }
img[src*='/media/generated/icons/'][src$='_gray.png'],
img[src*='/media/generated/icons/'][src$='_black.png'] { filter: grayscale(1) brightness(.6); }
.site_footer .footer_info img { filter: brightness(0) invert(1); }

/* Dedicated generated service illustrations replace the small pictogram strip. */
.home_services.home_services--illustrated {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  border: 0;
  padding-bottom: 36px;
}
.home_services.home_services--illustrated > a {
  display: grid;
  grid-template-rows: 168px auto minmax(54px, auto) 1fr;
  align-content: start;
  align-items: start;
  min-width: 0;
  min-height: 330px;
  gap: 8px;
  padding: 20px 24px 24px;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--white);
  overflow: hidden;
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast);
}
.home_services.home_services--illustrated > a:hover {
  background: var(--white);
  border-color: var(--primary);
  box-shadow: var(--shadow-md);
  transform: translateY(-3px);
}
.home_services.home_services--illustrated > a:focus-visible { outline: 3px solid var(--primary); outline-offset: 4px; }
.home_services.home_services--illustrated .home_service_art {
  width: 100%;
  height: 168px;
  margin: 0;
  padding: 0;
  border-radius: 0;
  background: var(--white);
  object-fit: contain;
  filter: none;
}
.home_services.home_services--illustrated strong { font-size: 22px; line-height: 1.25; margin: 0; }
.home_services.home_services--illustrated small { font-size: 14px; line-height: 1.5; margin: 0; }
.home_services.home_services--illustrated b {
  display: grid;
  place-items: center;
  position: absolute;
  inset: 14px 14px auto auto;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--primary-soft);
  color: var(--primary-dark);
  font-size: 18px;
}
@media(max-width: 1036px) {
  .home_services.home_services--illustrated { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media(max-width: 600px) {
  .home_services.home_services--illustrated { gap: 12px; padding-bottom: 24px; }
  .home_services.home_services--illustrated > a { grid-template-rows: 120px auto minmax(46px, auto) 1fr; min-height: 285px; padding: 16px 14px 18px; }
  .home_services.home_services--illustrated .home_service_art { height: 120px; }
  .home_services.home_services--illustrated span { font-size: 10px; letter-spacing: .03em; }
  .home_services.home_services--illustrated strong { font-size: 18px; }
  .home_services.home_services--illustrated small { font-size: 12px; }
  .home_services.home_services--illustrated b { width: 24px; height: 24px; inset: 8px 8px auto auto; font-size: 16px; }
}
@media(max-width: 360px) {
  .home_services.home_services--illustrated strong { font-size: 16px; }
}

/* News covers use the same uploaded image or editorial fallback on every surface. */
.home_news_media, .news_related_media { display: block; flex: 0 0 auto; aspect-ratio: 16 / 9; overflow: hidden; background: var(--primary-soft); }
.news_cover > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.news_cover_label { position: absolute; bottom: 12px; left: 12px; padding: 4px 8px; border-radius: var(--radius-xs); background: var(--white); color: var(--secondary); font-size: 12px; font-weight: 400; line-height: 1.4; }
.news_cover_label[hidden] { display: none; }
.news_cover.public_media--empty .news_cover_label { display: none; }
.home_news_body { flex: 1; }
html[data-a11y="on"][data-a11y-images="off"] :is(.home_news_media, .news_related_media, .news_hero_media, .editorial_news_media) { display: none; }
