/* Final presentation layer for the ITMO DS. Legacy layout and interaction hooks stay intact. */
body {
  font-family: var(--ds-font-body);
  /* Derived semantic text/surface roles meet text contrast while keeping status hues. */
  --ds-status-negative-text: color-mix(in srgb, var(--ds-status-negative) 80%, var(--ds-text));
  --ds-status-positive-text: color-mix(in srgb, var(--ds-status-positive) 65%, var(--ds-text));
  --ds-status-warning-text: color-mix(in srgb, var(--ds-status-warning) 50%, var(--ds-text));
  --ds-status-info-text: var(--ds-status-info);
  --ds-status-negative-bg: color-mix(in srgb, var(--ds-status-negative) 12%, var(--ds-surface));
  --ds-status-positive-bg: color-mix(in srgb, var(--ds-status-positive) 12%, var(--ds-surface));
  --ds-status-warning-bg: color-mix(in srgb, var(--ds-status-warning) 12%, var(--ds-surface));
  --ds-status-info-bg: color-mix(in srgb, var(--ds-status-info) 12%, var(--ds-surface));
  --ds-editorial-ink-bg: var(--ds-text);
  --ds-editorial-surface-bg: var(--ds-surface);
  --ds-editorial-subtle-bg: var(--ds-surface-subtle);
  --ds-editorial-primary-bg: var(--ds-primary);
  --ds-editorial-violet-bg: var(--ds-primary-violet-default);
  --ds-editorial-primary-subtle-bg: color-mix(in srgb, var(--ds-primary) 12%, var(--ds-surface));
  --ds-editorial-violet-subtle-bg: color-mix(in srgb, var(--ds-primary-violet-default) 12%, var(--ds-surface));
}
#top :where(p, div, span, li, dd, dt, td, th, caption, label, a, button, input, select, textarea, font, small, big, summary, u, i, s, strike, b, strong, em, mark, cite, abbr, q, sub, sup, blockquote, address, legend, figcaption, time):where(:not(.fa, .glyphicon, [class^='icon-'], [class*=' icon-'])) {
  font-family: var(--ds-font-body) !important;
}
body:not(.accessible) {
  --portal-blue: var(--ds-primary);
  --portal-red: var(--ds-status-negative);
  --brand-ink: var(--ds-text);
  --brand-muted: var(--ds-text-secondary);
  --brand-line: var(--ds-border);
  color: var(--ds-text);
  background: var(--ds-surface);
  font-size: var(--ds-body-size);
  line-height: var(--ds-body-line-height);
}
body:not(.accessible) #top .container {
  box-sizing: border-box;
  width: min(100%, var(--ds-container-width));
  max-width: 100%;
  padding-inline: var(--ds-grid-padding);
  margin-inline: auto;
}
body:not(.accessible) #top .container .row { margin-inline: calc(-1 * var(--ds-grid-padding)); }
body:not(.accessible) #top .container :where([class^='col-'], [class*=' col-']) { padding-inline: var(--ds-grid-padding); }
body:not(.accessible) #top :is(.brand-intro, .b-links-main .row, .b-life-itmo__content) { gap: var(--ds-grid-gutter); }
body:not(.accessible) #top :is(.b-links-main .row, .b-life-itmo__content) { margin-inline: 0; }
body:not(.accessible) #top .b-links-main .row > div { padding: 0; }
body:not(.accessible) #top .brand-intro { grid-template-columns: 1fr 1fr; }
body:not(.accessible) #top .page-content { font-size: var(--ds-body-size); line-height: var(--ds-body-line-height); }

/* Explicit editorial roles also override route-specific Open Sans/Schlange rules. */
#top :is(h1, h2, h3, h4, h5, [data-ds-typography^='h']) { font-family: var(--ds-font-heading) !important; letter-spacing: var(--ds-heading-letter-spacing) !important; }
body:not(.accessible) #top :is(h1, [data-ds-typography='h1']) { font-family: var(--ds-font-heading) !important; font-size: var(--ds-h1-size) !important; line-height: var(--ds-h1-line-height) !important; font-weight: var(--ds-h1-weight) !important; letter-spacing: 0 !important; }
body:not(.accessible) #top :is(h2, [data-ds-typography='h2']) { font-family: var(--ds-font-heading) !important; font-size: var(--ds-h2-size) !important; line-height: var(--ds-h2-line-height) !important; font-weight: var(--ds-h2-weight) !important; letter-spacing: 0 !important; }
body:not(.accessible) #top :is(h3, [data-ds-typography='h3']) { font-family: var(--ds-font-heading) !important; font-size: var(--ds-h3-size) !important; line-height: var(--ds-h3-line-height) !important; font-weight: var(--ds-h3-weight) !important; letter-spacing: 0 !important; }
body:not(.accessible) #top :is(h4, h5) { font-family: var(--ds-font-heading) !important; font-size: 18px !important; line-height: 26px !important; font-weight: 700 !important; letter-spacing: 0 !important; }
body:not(.accessible) #top h5 { font-size: 16px !important; line-height: 22px !important; }
body:not(.accessible) #top h6 { font-size: 16px !important; line-height: 24px !important; }
#top :is(h1, h2, h3, h4, h5, h6, [data-ds-typography^='h']) :where(a, span, font, b, strong, em, u, i, s, strike, mark, cite, abbr, q, sub, sup) { font-family: inherit !important; font-size: inherit !important; line-height: inherit !important; }
#top [data-ds-typography^='h'] :where(div, span, a, font, b, strong, em) { font-family: inherit !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; }
#top .portal-legacy-content :where(p, div, span, li, dd, dt, td, th, font, .tn-atom) { font-size: inherit !important; line-height: inherit !important; }
body:not(.accessible) #top .portal-legacy-content :where(p, div, span, li, dd, dt, td, th, font) { color: inherit !important; }
body:not(.accessible) #top [data-ds-typography='body-xs'] { font-size: 12px !important; line-height: 16px !important; }
body:not(.accessible) #top [data-ds-typography^='body-'] { font-family: var(--ds-font-body) !important; }
body:not(.accessible) #top [data-ds-typography='body-s'] { font-size: 14px !important; line-height: 20px !important; }
body:not(.accessible) #top [data-ds-typography='body-m'] { font-size: 16px !important; line-height: 24px !important; }
body:not(.accessible) #top [data-ds-typography='body-l'] { font-size: 18px !important; line-height: 26px !important; }
body:not(.accessible) #top [data-ds-typography='body-xl'] { font-size: 20px !important; line-height: 28px !important; }
body:not(.accessible) #top .brand-intro-copy h2 { font-size: var(--ds-h1-size) !important; line-height: var(--ds-h1-line-height) !important; font-weight: var(--ds-h1-weight) !important; }
body:not(.accessible) #top .brand-intro-word { white-space: normal; }
body:not(.accessible) #top .l-header-title :is(.first-string, .sub-head) { font-family: var(--ds-font-body) !important; font-weight: 400 !important; letter-spacing: 0 !important; }
body:not(.accessible) #top .l-header-title .first-string { font-size: 14px !important; line-height: 20px !important; }
body:not(.accessible) #top .l-header-title .sub-head { font-size: 12px !important; line-height: 16px !important; color: var(--ds-text-secondary); }
body:not(.accessible) #top .b-top-menu .navbar-text { color: var(--ds-text-secondary); font-size: 12px; }
#top .b-breadcrumbs .breadcrumb { color: var(--ds-text-secondary) !important; }
body:not(.accessible) #top .b-breadcrumbs { background: var(--ds-surface); border-color: var(--ds-border); }
#top .b-breadcrumbs .breadcrumb li { color: var(--ds-text-secondary) !important; }
#top .b-breadcrumbs .breadcrumb :is(li.active, [aria-current='page']) { color: var(--ds-primary) !important; }
body:not(.accessible) #top .b-breadcrumbs .breadcrumb :is(li.active, li[aria-current='page']) a { --ds-editorial-link: var(--ds-primary); color: var(--ds-primary) !important; }
body:not(.accessible) #top .b-breadcrumbs .breadcrumb :is(li.active, li[aria-current='page']) a:hover { --ds-editorial-link: var(--ds-link-hover); color: var(--ds-link-hover) !important; text-decoration: underline; }
body:not(.accessible) #top .b-breadcrumbs .breadcrumb :is(li.active, li[aria-current='page']) a:active { --ds-editorial-link: var(--ds-link-active); color: var(--ds-link-active) !important; }
#top .b-breadcrumbs .breadcrumb li::before,
#top .b-breadcrumbs .breadcrumb .ds-breadcrumb-separator { color: var(--ds-text-secondary) !important; }
#top .h-sticky-header .container .header-logo-sm { margin-inline: 0 !important; }
body:not(.accessible) #top .portal-hero-title { font-family: var(--ds-font-body) !important; font-size: 20px !important; line-height: 28px !important; font-weight: 600 !important; }
body:not(.accessible) #top :is(.b-news-card .title, .b-activity-card .name) { font-family: var(--ds-font-body) !important; font-size: 18px !important; line-height: 26px !important; font-weight: 600 !important; }
body:not(.accessible) #top .b-links-main h4 { font-family: var(--ds-font-body) !important; font-size: 18px !important; line-height: 26px !important; font-weight: 500 !important; }
body:not(.accessible) #top .b-life-itmo__content h3 { font-family: var(--ds-font-heading) !important; font-size: var(--ds-h3-size) !important; line-height: var(--ds-h3-line-height) !important; }
body:not(.accessible) #top :is(.b-news-card .label, .b-news-card .date, .brand-eyebrow, .brand-feature-label, .portal-activity-month, .portal-activity-year) { font-size: 12px; line-height: 16px; }

/* Text links and actions use separate semantic roles. */
body:not(.accessible) #top :is(.page-content, .modal, .popover) a { color: var(--ds-link); }
body:not(.accessible) #top :is(.page-content, .modal, .popover) a:visited { color: var(--ds-link-visited); }
body:not(.accessible) #top :is(.page-content, .modal, .popover) a:hover { color: var(--ds-link-hover); }
body:not(.accessible) #top :is(.page-content, .modal, .popover) a:active { color: var(--ds-link-active); }
body:not(.accessible) #top .portal-legacy-content a { --ds-editorial-link: var(--ds-link); color: var(--ds-link) !important; }
body:not(.accessible) #top .portal-legacy-content a:visited { --ds-editorial-link: var(--ds-link-visited); color: var(--ds-link-visited) !important; }
body:not(.accessible) #top .portal-legacy-content a:hover { --ds-editorial-link: var(--ds-link-hover); color: var(--ds-link-hover) !important; }
body:not(.accessible) #top .portal-legacy-content a:active { --ds-editorial-link: var(--ds-link-active); color: var(--ds-link-active) !important; }
#top :is(a, button, input, select, textarea, summary):focus-visible { outline: 2px solid var(--ds-primary); outline-offset: 4px; }
body:not(.accessible) #top :is(.btn, .c-btn, .portal-hero-cta, .brand-intro-link, .timetable-search button) {
  box-sizing: border-box;
  min-height: var(--ds-height-m);
  height: auto;
  padding: 10px 16px;
  border-radius: var(--ds-radius-round);
  border: 1px solid var(--ds-border-button);
  font-family: var(--ds-font-body) !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  line-height: 20px !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  text-decoration: none;
}
body:not(.accessible) #top :is(.btn-primary, .btn-info, .portal-hero-cta, .timetable-search button) { color: #fff !important; background: var(--ds-primary); border-color: var(--ds-primary); }
body:not(.accessible) #top :is(.btn-primary, .btn-info, .portal-hero-cta, .timetable-search button):hover { color: #000 !important; background: var(--ds-primary-hover); border-color: var(--ds-primary-hover); }
body:not(.accessible) #top :is(.btn-primary, .btn-info, .portal-hero-cta, .timetable-search button):active { color: #fff !important; background: var(--ds-primary-active); border-color: var(--ds-primary-active); }
body:not(.accessible) #top .portal-hero-cta { min-height: var(--ds-height-l); padding-block: 14px; }
body:not(.accessible) #top :is(.btn-default, .c-btn, .btn-warning, .btn-danger) { color: var(--ds-text) !important; border-color: var(--ds-border-button); background: var(--ds-surface); }
body:not(.accessible) #top :is(.btn-default, .c-btn, .btn-warning, .btn-danger):hover { color: var(--ds-text) !important; border-color: var(--ds-border-button-hover); background: var(--ds-transparent-hover); }
body:not(.accessible) #top :is(.btn-default, .c-btn, .btn-warning, .btn-danger):active { color: var(--ds-text) !important; border-color: var(--ds-border-button-active); background: var(--ds-transparent-active); }
body:not(.accessible) #top :is(button, .btn, .c-btn):is(:disabled, [aria-disabled='true'], .disabled) { color: var(--ds-text-disabled) !important; border-color: var(--ds-border); background: var(--ds-surface-subtle); cursor: not-allowed; opacity: 1; }
body:not(.accessible) #top :is(.portal-hero-prev, .portal-hero-next, .b-news-controls .pager button) { width: var(--ds-height-l); height: var(--ds-height-l); border-radius: var(--ds-radius-round); color: var(--ds-text); border-color: var(--ds-border-button); background: transparent; }
body:not(.accessible) #top :is(.portal-hero-prev, .portal-hero-next, .b-news-controls .pager button):enabled:hover { color: var(--ds-text); background: var(--ds-transparent-hover); border-color: var(--ds-border-button-hover); }
body:not(.accessible) #top :is(.portal-hero-prev, .portal-hero-next, .b-news-controls .pager button):enabled:active { background: var(--ds-transparent-active); border-color: var(--ds-border-button-active); }
body:not(.accessible) #top .portal-hero-prev { right: 76px; }
body:not(.accessible) #top .portal-hero-next { right: 20px; }
body:not(.accessible) #top .brand-intro-link { color: #fff; border-color: #fff; background: transparent; min-height: var(--ds-height-l); }
body:not(.accessible) #top .brand-intro-link:is(:hover, :focus-visible) { color: #fff; border-color: #fff; background: rgba(255, 255, 255, .16); }
body:not(.accessible) #top .brand-intro-link:active { color: #fff; background: rgba(255, 255, 255, .24); }
body:not(.accessible) #top .b-links-main h4 a { color: var(--ds-text); border-color: var(--ds-border); border-radius: var(--ds-radius-l); }
body:not(.accessible) #top .b-links-main h4 a:hover { color: var(--ds-text); background: var(--ds-surface-subtle); border-color: var(--ds-border-strong); }
body:not(.accessible) #top .b-links-main h4 a:active { background: var(--ds-surface-muted); border-color: var(--ds-text); }

/* Native fields retain keyboard/validation behaviour, with DS roles in all states. */
body:not(.accessible) #top :is(.form-control, .timetable-search input[type='text'], select, textarea) { min-height: var(--ds-height-m); border: 1px solid var(--ds-border); border-radius: var(--ds-radius-s); background: var(--ds-surface); color: var(--ds-text); font-family: var(--ds-font-body) !important; font-size: 16px; line-height: 24px; box-shadow: none; }
body:not(.accessible) #top :is(.form-control, .timetable-search input[type='text'], select, textarea):hover { border-color: var(--ds-border-strong); }
body:not(.accessible) #top :is(.form-control, .timetable-search input[type='text'], select, textarea):focus { border-color: var(--ds-primary); box-shadow: 0 0 0 1px var(--ds-primary); }
body:not(.accessible) #top :is(input, textarea)::placeholder { color: var(--ds-text-secondary); opacity: 1; }
body:not(.accessible) #top :is(input, select, textarea):disabled { color: var(--ds-text-disabled); background: var(--ds-surface-subtle); border-color: var(--ds-border); }
body:not(.accessible) #top :is(input, select, textarea)[aria-invalid='true'], body:not(.accessible) #top .has-error .form-control { border-color: var(--ds-status-negative); }
body:not(.accessible) #top input:is([type='checkbox'], [type='radio']) { accent-color: var(--ds-primary); }
body:not(.accessible) #top input:is([type='checkbox'], [type='radio']):hover { accent-color: var(--ds-primary-hover); }
body:not(.accessible) #top input:is([type='checkbox'], [type='radio']):active { accent-color: var(--ds-primary-active); }
body:not(.accessible) #top .timetable-search .search-type { gap: 12px 16px; }
body:not(.accessible) #top .timetable-search .search-type > span { gap: 8px; min-height: 32px; }
body:not(.accessible) #top .timetable-search .search-type label { margin: 0; color: var(--ds-text); font-size: 14px; line-height: 20px; }
body:not(.accessible) #top .mn-checkbox a[role='checkbox'] { display: flex; align-items: baseline; gap: 8px; min-height: 32px; padding: 4px 8px; border-radius: var(--ds-radius-xs); font-size: 14px; line-height: 20px; color: var(--ds-text); }
body:not(.accessible) #top .mn-checkbox a[role='checkbox']:hover { background: var(--ds-transparent-hover); }
body:not(.accessible) #top .mn-checkbox a[role='checkbox']:active { background: var(--ds-transparent-active); }
body:not(.accessible) #top .mn-checkbox a[aria-checked='true'] { color: var(--ds-primary-active); }
body:not(.accessible) #top :is(.page-content, .portal-legacy-content) .pagination { display: flex; flex-wrap: wrap; gap: 8px; }
body:not(.accessible) #top :is(.page-content, .portal-legacy-content) .pagination > li > :is(a, span) { display: inline-flex; align-items: center; justify-content: center; min-width: var(--ds-height-m); min-height: var(--ds-height-m); padding: 8px 12px; border-radius: var(--ds-radius-s); border-color: var(--ds-border); font-size: 14px; line-height: 20px; }
body:not(.accessible) #top :is(.page-content, .portal-legacy-content) .pagination > li:not(.active) > a:hover { --ds-editorial-link: var(--ds-text); color: var(--ds-text) !important; background: var(--ds-transparent-hover); }
body:not(.accessible) #top :is(.page-content, .portal-legacy-content) .pagination > li:not(.active) > a:active { background: var(--ds-transparent-active); }
body:not(.accessible) #top :is(.page-content, .portal-legacy-content) :is(.list-group-item.active, .nav-pills > li.active > a, .pagination > li.active > a, .pagination > li.active > span) { --ds-editorial-link: #fff; color: #fff !important; background: var(--ds-primary); border-color: var(--ds-primary); }
body:not(.accessible) #top :is(.page-content, .portal-legacy-content) :is(.list-group-item.active, .nav-pills > li.active > a, .pagination > li.active > a):hover { --ds-editorial-link: #000; color: #000 !important; background: var(--ds-primary-hover); border-color: var(--ds-primary-hover); }
body:not(.accessible) #top :is(.page-content, .portal-legacy-content) :is(.list-group-item.active, .nav-pills > li.active > a, .pagination > li.active > a):active { --ds-editorial-link: #fff; color: #fff !important; background: var(--ds-primary-active); border-color: var(--ds-primary-active); }
body:not(.accessible) #top .supportMenu .search-panel .form-control { height: var(--ds-height-s); min-height: var(--ds-height-s); border: 0; background: transparent; font-size: 14px; line-height: 20px; }
body:not(.accessible) #top .supportMenu .search-panel .input-group-btn .btn { height: var(--ds-height-s); min-height: var(--ds-height-s); padding: 5px 12px; color: #fff !important; background: var(--ds-primary-black-default); }
body:not(.accessible) #top .supportMenu .search-panel .input-group-btn .btn:hover { color: #fff !important; background: var(--ds-primary-black-hover); }
body:not(.accessible) #top .supportMenu .search-panel .input-group-btn .btn:active { color: #fff !important; background: var(--ds-primary-black-active); }
body:not(.accessible) #top .supportMenu .search-panel .input-group { border-radius: var(--ds-radius-round); border-color: var(--ds-border); }

/* Tabs use the Base form: 16px horizontal inset, state colours and a single bottom stroke. */
body:not(.accessible) #top :is(.b-tabs, .page-content, .portal-legacy-content) .nav-tabs > li > a { box-sizing: border-box; min-height: var(--ds-height-l); padding: 12px 16px; border-radius: 0; border: 0; border-bottom: 2px solid transparent; color: var(--ds-text-secondary); background: transparent; font-family: var(--ds-font-body) !important; font-size: 16px !important; line-height: 24px !important; font-weight: 500 !important; letter-spacing: 0; }
body:not(.accessible) #top :is(.b-tabs, .page-content, .portal-legacy-content) .nav-tabs > li > a:hover { --ds-editorial-link: var(--ds-text); color: var(--ds-text) !important; background: var(--ds-transparent-hover); }
body:not(.accessible) #top :is(.b-tabs, .page-content, .portal-legacy-content) .nav-tabs > li > a:active,
body:not(.accessible) #top :is(.b-tabs, .page-content, .portal-legacy-content) .nav-tabs > li.active > a { --ds-editorial-link: var(--ds-primary-active); color: var(--ds-primary-active) !important; border-bottom-color: var(--ds-primary-active); background: transparent; }
body:not(.accessible) #top .b-news-card .label { background: var(--ds-surface-muted) !important; color: var(--ds-text-secondary); padding: 4px 8px; border-radius: var(--ds-radius-xs); font-size: 12px; line-height: 16px; }
body:not(.accessible) #top .b-news-card .date { color: var(--ds-text-secondary); font-size: 12px; line-height: 16px; }
body:not(.accessible) #top .academic-title { color: var(--ds-text-secondary); }
body:not(.accessible) #top .page-content .badge { color: var(--ds-text-secondary) !important; background: var(--ds-surface-muted); border-radius: var(--ds-radius-round); padding: 4px 8px; font-size: 12px; line-height: 16px; }
body:not(.accessible) #top #lineTabs li button { box-sizing: border-box; min-height: var(--ds-height-m); padding: 8px 16px; color: var(--ds-text-secondary); font-size: 16px !important; line-height: 24px !important; }
body:not(.accessible) #top #lineTabs li button small { color: inherit; font-size: 14px !important; line-height: 20px !important; }
body:not(.accessible) #top #lineTabs li button:hover { color: var(--ds-text); background: var(--ds-transparent-hover); }
body:not(.accessible) #top #lineTabs li.active button,
body:not(.accessible) #top #lineTabs li button:active { color: var(--ds-primary-active); }
body:not(.accessible) #top .b-activity-card .date { background: var(--ds-surface-subtle); color: var(--ds-text); }
body:not(.accessible) #top .b-activity-card .date :is(.num, .portal-activity-month, .portal-activity-year) { color: var(--ds-text); }
body:not(.accessible) #top .page-content table { font-family: var(--ds-font-body); font-size: 14px; line-height: 20px; color: var(--ds-text); }
body:not(.accessible) #top .page-content .table :is(th, td) { border-color: var(--ds-border); }
body:not(.accessible) #top .page-content .table > thead > tr > :is(th, td) { background: var(--ds-surface-subtle); }
body:not(.accessible) #top .page-content .table-striped > tbody > tr:nth-of-type(odd) { background: var(--ds-surface-subtle); }
body:not(.accessible) #top :is(.modal-content, .portal-contacts-popover, .panel, .well) { border-radius: var(--ds-radius-m); border-color: var(--ds-border); }
body:not(.accessible) #top .b-footer .popover { color: var(--ds-text); background: var(--ds-surface); font-family: var(--ds-font-body) !important; font-size: 14px; line-height: 20px; }
body:not(.accessible) #top .b-footer .popover :is(a, h4, h3) { color: var(--ds-text); }
body:not(.accessible) #top .b-footer .popover .btn-block { font-family: var(--ds-font-body) !important; color: var(--ds-text) !important; }
body:not(.accessible) #top :is(.b-footer, .b-footer-bottom) { background: #000; color: rgba(255, 255, 255, .8); }
body:not(.accessible) #top :is(.b-footer, .b-footer-bottom) a { color: #7c96f4 !important; }
body:not(.accessible) #top :is(.b-footer, .b-footer-bottom) a:visited { color: #7c96f4 !important; }
body:not(.accessible) #top :is(.b-footer, .b-footer-bottom) a:hover { color: #a1b4f9 !important; }
body:not(.accessible) #top :is(.b-footer, .b-footer-bottom) a:active { color: #6279ce !important; }
body:not(.accessible) #top .b-footer__contacts .nav-pills > li > a[aria-controls='service-contacts'] { color: #fff !important; background: transparent !important; border: 1px solid currentColor; border-radius: var(--ds-radius-s); }
body:not(.accessible) #top .b-footer__contacts .nav-pills > li > a[aria-controls='service-contacts']:hover { background: rgba(255, 255, 255, .16) !important; }
body:not(.accessible) #top .b-footer__contacts .nav-pills > li > a[aria-controls='service-contacts'][aria-expanded='true'],
body:not(.accessible) #top .b-footer__contacts .nav-pills > li > a[aria-controls='service-contacts']:active { background: rgba(255, 255, 255, .24) !important; }
body:not(.accessible) #top .b-footer__contacts .nav-pills > li.active > a .icon-wrap { color: inherit; background: transparent; border: 1px solid currentColor; }
body:not(.accessible) #top .b-footer__contacts .nav-pills > li.active > a .icon-wrap .icon { fill: currentColor; opacity: 1; }
body:not(.accessible) #top .b-footer .popover a { color: var(--ds-link) !important; }
body:not(.accessible) #top .b-footer .popover a:visited { color: var(--ds-link-visited) !important; }
body:not(.accessible) #top .b-footer .popover a:hover { color: var(--ds-link-hover) !important; }
body:not(.accessible) #top .b-footer .popover a:active { color: var(--ds-link-active) !important; }
body:not(.accessible) #top .b-footer-bottom__links .www { font-family: var(--ds-font-body) !important; font-size: 12px; line-height: 16px; color: #fff; }
body:not(.accessible) #top .b-footer-top .menu > a { color: var(--ds-text); border-radius: var(--ds-radius-round); }
body:not(.accessible) #top .b-footer-top .menu > a:is(:hover, :focus-visible) { background: var(--ds-transparent-hover); border-color: var(--ds-border-button-hover); }
body:not(.accessible) #top .b-footer-top .menu > a:active,
body:not(.accessible) #top .b-footer-top .menu > a.button-panel-expanded { background: var(--ds-surface-muted); border-color: var(--ds-border-button-active); }
body:not(.accessible) #top .cd-nav-trigger::after { background: var(--ds-surface-muted); }

/* Accessible settings retain bw/wb colours and M/L/XL sizes while sharing current branding. */
body.accessible { --ds-primary: currentColor; --ds-primary-hover: currentColor; --ds-primary-active: currentColor; --ds-link: currentColor; --ds-link-hover: currentColor; --ds-link-active: currentColor; --ds-link-visited: currentColor; --ds-status-positive: currentColor; --ds-status-negative: currentColor; --ds-status-warning: currentColor; --ds-status-info: currentColor; --ds-primary-violet-default: currentColor; --ds-status-negative-text: currentColor; --ds-status-positive-text: currentColor; --ds-status-warning-text: currentColor; --ds-status-info-text: currentColor; --ds-status-negative-bg: transparent; --ds-status-positive-bg: transparent; --ds-status-warning-bg: transparent; --ds-status-info-bg: transparent; font-family: var(--ds-font-body) !important; }
body.accessible--bw { --ds-text: #000; --ds-text-secondary: #000; --ds-text-inverse: #fff; --ds-surface: #fff; --ds-surface-subtle: #fff; --ds-border: #000; }
body.accessible--wb { --ds-text: #fff; --ds-text-secondary: #fff; --ds-text-inverse: #000; --ds-surface: #000; --ds-surface-subtle: #000; --ds-border: #fff; }
body.accessible { --ds-text-inverse: var(--ds-text); --ds-editorial-ink-bg: transparent; --ds-editorial-surface-bg: transparent; --ds-editorial-subtle-bg: transparent; --ds-editorial-primary-bg: transparent; --ds-editorial-violet-bg: transparent; --ds-editorial-primary-subtle-bg: transparent; --ds-editorial-violet-subtle-bg: transparent; }
body.accessible #top :is(.l-header-logo__link, .header-logo-sm__logo, .b-footer__logo) { background-image: url('/brand/itmo-ru-black.svg') !important; background-size: contain !important; background-position: left center !important; background-repeat: no-repeat !important; width: 218px; height: 60px; }
body.accessible--wb #top :is(.l-header-logo__link, .header-logo-sm__logo, .b-footer__logo) { background-image: url('/brand/itmo-ru-white.svg') !important; }
body.accessible #top .l-header-logo__svg { visibility: hidden; }
body.accessible #top :is(.header-logo-sm__logo, .b-footer__logo) { width: 166px; height: 46px; }
body.accessible #top :is(.page-content, .portal-legacy-content, .popover, .modal) { font-family: var(--ds-font-body) !important; }
body.accessible #top .portal-legacy-content :where([data-ds-typography]) { font-size: inherit !important; line-height: inherit !important; }
body.accessible #top [data-ds-typography='h2'] { font-weight: 700 !important; }
body.accessible #top .portal-legacy-content :where(p, div, span, li, dd, dt, td, th, font) { background-color: transparent !important; color: inherit !important; }
body.accessible { --ds-accessible-body-size: 16px; --ds-accessible-h1: 30px; --ds-accessible-h2: 26px; --ds-accessible-h3: 22px; --ds-accessible-h4: 18px; --ds-accessible-h5: 16px; font-size: var(--ds-accessible-body-size) !important; line-height: 1.5; }
body.accessible--M { --ds-accessible-body-size: 18px; --ds-accessible-h1: 34px; --ds-accessible-h2: 30px; --ds-accessible-h3: 26px; --ds-accessible-h4: 21px; --ds-accessible-h5: 18px; }
body.accessible--L { --ds-accessible-body-size: 22px; --ds-accessible-h1: 38px; --ds-accessible-h2: 34px; --ds-accessible-h3: 30px; --ds-accessible-h4: 26px; --ds-accessible-h5: 22px; }
body.accessible--XL { --ds-accessible-body-size: 26px; --ds-accessible-h1: 44px; --ds-accessible-h2: 38px; --ds-accessible-h3: 32px; --ds-accessible-h4: 25px; --ds-accessible-h5: 20px; }
body.accessible #top :where(div, p, span, li, dd, dt, td, th, caption, label, a, button, input, select, textarea, font, small, big, summary) { font-size: inherit !important; line-height: inherit !important; }
body.accessible #top h1 { font-size: var(--ds-accessible-h1) !important; line-height: 1.3; }
body.accessible #top h2 { font-size: var(--ds-accessible-h2) !important; line-height: 1.3; }
body.accessible #top h3 { font-size: var(--ds-accessible-h3) !important; line-height: 1.3; }
body.accessible #top h4 { font-size: var(--ds-accessible-h4) !important; line-height: 1.4; }
body.accessible #top h5 { font-size: var(--ds-accessible-h5) !important; line-height: 1.4; }
body.accessible #top :is(.b-news-card .title, .b-activity-card .name, .portal-hero-title) { font-size: var(--ds-accessible-body-size) !important; line-height: 1.5 !important; }
body.accessible #top :is(.btn, .c-btn, button, input:not([type='radio']):not([type='checkbox']), select, textarea) { height: auto; min-height: calc(1.5em + 16px); padding-block: 8px; }
body.accessible #top .b-news-card :is(.label, .date) { position: static; display: inline-block; width: auto; height: auto; max-width: 100%; white-space: normal; color: var(--ds-text) !important; background: var(--ds-surface) !important; border: 1px solid currentColor; }
body.accessible #top :is(.label, .badge) { color: var(--ds-text) !important; background: var(--ds-surface) !important; border-color: currentColor; }
body.accessible--imagesOff #top :is(.news-photo, .portal-hero-image, .t-bgimg, .tn-atom__img) { display: none !important; background-image: none !important; }
body.accessible--imagesOff #top .portal-legacy-content [style*='background-image'] { background-image: none !important; }

@media (max-width: 991px) {
  body.accessible #top .cd-primary-nav:not(.fade-in),
  body.accessible #top .cd-primary-nav:not(.fade-in) * { visibility: hidden !important; pointer-events: none !important; }
  body.accessible #top .cd-primary-nav.fade-in { visibility: visible !important; pointer-events: auto; }
  body:not(.accessible) #top .brand-intro { grid-template-columns: 1fr; }
  body:not(.accessible) #top .brand-intro-copy { min-height: 380px; }
  body:not(.accessible) #top .brand-intro .portal-hero { min-height: 400px; }
  body:not(.accessible) #top .supportMenu .search-panel .form-control { min-height: var(--ds-height-m); height: var(--ds-height-m); font-size: 16px; }
}
@media (max-width: 575px) {
  body:not(.accessible) #top .brand-intro-copy { padding: 24px; min-height: 360px; }
  body:not(.accessible) #top .brand-intro .portal-hero { min-height: 400px; height: 400px; }
  body:not(.accessible) #top .b-news-card .title { font-size: 14px !important; line-height: 20px !important; }
  body:not(.accessible) #top .b-links-main h4 { font-size: 16px !important; line-height: 24px !important; }
  body:not(.accessible) #top .modal-title { font-size: var(--ds-h3-size) !important; line-height: var(--ds-h3-line-height) !important; }
}
@media (min-width: 576px) and (max-width: 1199px) {
  body:not(.accessible) #top h5 { font-size: 18px !important; line-height: 24px !important; }
}
@media (min-width: 1200px) {
  body:not(.accessible) #top h4 { font-size: 20px !important; line-height: 26px !important; font-weight: 400 !important; }
  body:not(.accessible) #top h5 { font-size: 16px !important; line-height: 22px !important; font-weight: 400 !important; }
}
