/* Targeted refinements for the reviewed templates; the shared DS heading scale stays intact. */

/* The tree keeps its hierarchy and controls, with an accent on the selected row only. */
#top .portal-structure-page .university-stucture h1 {
  margin: 24px 0 16px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--ds-text);
  text-transform: none;
  letter-spacing: 0 !important;
}
#top .portal-structure-page .structure_tree > ul { margin: 0; padding: 0; }
#top .portal-structure-page .structure_tree > ul > li { padding: 0; list-style: none; }
#top .portal-structure-page .tree { margin: 0; }
#top .portal-structure-page .tree ul { margin: 0; padding: 0; }
#top .portal-structure-page .tree li { position: relative; margin: 0; padding: 0 0 0 40px; }
#top .portal-structure-page .tree li > ul { margin-left: -16px; }
#top .portal-structure-page .tree li::before { left: 16px; top: 0; bottom: auto; width: 1px; height: 100%; border-left: 1px solid var(--ds-border); }
#top .portal-structure-page .tree li::after { left: 16px; top: 20px; width: 16px; height: 0; border-top: 1px solid var(--ds-border); }
#top .portal-structure-page .tree li:last-child::before { height: 20px; }
#top .portal-structure-page .tree li.li-active,
#top .portal-structure-page .tree li.li-active > ul > li { margin: 0; padding-bottom: 0; background: transparent; }
#top .portal-structure-page .tree li > span {
  position: absolute; left: 0; top: 4px; display: inline-flex; align-items: center; justify-content: center;
  width: 32px; height: 32px; margin: 0; border: 1px solid var(--ds-border); border-radius: var(--ds-radius-s);
  background: var(--ds-surface); color: var(--ds-text-secondary);
}
#top .portal-structure-page .tree li > span[aria-hidden='true'] { left: 13px; top: 17px; width: 6px; height: 6px; border: 0; border-radius: var(--ds-radius-round); background: var(--ds-border); }
#top .portal-structure-page .tree li > span[role='button']:hover { background: var(--ds-surface-subtle); border-color: var(--ds-border-strong); }
#top .portal-structure-page .tree li.li-active > span[role='button'] { color: var(--ds-primary-active); border-color: currentColor; background: var(--ds-surface); }
#top .portal-structure-page .tree li > span .fa { width: 24px; height: 24px; margin: 0; line-height: 24px; color: inherit; transform: none !important; }
#top .portal-structure-page .tree li > a {
  display: block; min-height: 40px; margin: 0; padding: 8px 12px; border: 1px solid transparent;
  border-radius: var(--ds-radius-s); background: transparent; color: var(--ds-text); overflow-wrap: anywhere;
}
body:not(.accessible) #top .portal-structure-page .tree li > a { font-family: var(--ds-font-body) !important; font-size: 16px !important; line-height: 24px !important; }
#top .portal-structure-page .tree li > a[href] { color: var(--ds-link); }
#top .portal-structure-page .tree li > a[href]:hover { color: var(--ds-link-hover); background: var(--ds-surface); text-decoration: underline; }
#top .portal-structure-page .tree li.li-active > a { margin: 0; border-left-color: var(--ds-primary); background: var(--ds-surface-subtle); }
#top .portal-structure-page .tree li.li-active > a[href]:hover { color: var(--ds-link-active); background: var(--ds-surface-subtle); }
body:not(.accessible) #top :is(.portal-structure-layout, .portal-labs-layout) .sidebar-offcanvas :is(h2, h3, h4) {
  font: 500 18px/26px var(--ds-font-body) !important; letter-spacing: 0 !important; overflow-wrap: anywhere;
}

/* Names inside people cards are UI text, rather than page or section headings. */
body:not(.accessible) #top :is(.portal-labs-page .contact-card, .phoneList .contact-card) .name,
body:not(.accessible).portal-person-list-page #top .contact-pad .name {
  font-family: var(--ds-font-body) !important; font-size: 20px !important; line-height: 28px !important;
  font-weight: 600 !important; letter-spacing: 0 !important; text-transform: none; overflow-wrap: anywhere;
}
#top :is(.portal-labs-page .contact-card, .phoneList .contact-card) .name > a,
body.portal-person-list-page #top .contact-pad .name > a { font-family: inherit !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; letter-spacing: inherit !important; }
body.accessible #top :is(.portal-labs-page .contact-card, .phoneList .contact-card) .name,
body.accessible.portal-person-list-page #top .contact-pad .name { font-family: var(--ds-font-body) !important; font-size: var(--ds-accessible-body-size) !important; line-height: 1.5 !important; font-weight: 600 !important; letter-spacing: 0 !important; }
body.portal-person-list-page #top .pic-person {
  background-image: url('/brand/person-placeholder.svg'); background-color: var(--ds-surface-subtle);
  background-repeat: no-repeat; background-position: center, center; background-size: cover, contain;
  border-radius: var(--ds-radius-s);
}
body.accessible--imagesOff.portal-person-list-page #top .pic-person { display: none !important; }

/* The mandatory navigation keeps every destination and follows a responsive card grid. */
body.portal-sveden-index-page #top .page-content { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; }
body.portal-sveden-index-page #top .page-content > h1 { grid-column: 1 / -1; }
body.portal-sveden-index-page #top .page-content > h3 { display: flex; min-width: 0; margin: 0; }
body:not(.accessible).portal-sveden-index-page #top .page-content > h3 { font-family: var(--ds-font-body) !important; font-size: 18px !important; line-height: 26px !important; font-weight: 500 !important; letter-spacing: 0 !important; }
body.accessible.portal-sveden-index-page #top .page-content > h3 { font-size: var(--ds-accessible-body-size) !important; line-height: 1.5 !important; }
body.portal-sveden-index-page #top .page-content > h3 > a {
  display: flex; align-items: flex-start; flex: 1; min-width: 0; padding: 24px; border: 1px solid var(--ds-border);
  border-radius: var(--ds-radius-m); background: var(--ds-surface); color: var(--ds-link); text-decoration: none; overflow-wrap: anywhere;
}
body.portal-sveden-index-page #top .page-content > h3 > a:hover { border-color: var(--ds-primary); color: var(--ds-link-hover); text-decoration: underline; }
body.portal-sveden-index-page #top .page-content > h3 > a:active { color: var(--ds-link-active); border-color: currentColor; }

/* Convert only the two verified Word indents; leave the source text and tables untouched. */
body.portal-sveden-common-page #top .page-content p[style*='35.4pt'] { margin-inline-start: 0 !important; padding-inline-start: 16px; }
body.portal-sveden-common-page #top .page-content p[style*='70.8pt'] { margin-inline-start: 0 !important; padding-inline-start: 32px; }
body.portal-sveden-page #top .sveden-side-menu { margin-top: 0; padding: 16px; border: 1px solid var(--ds-border); border-radius: var(--ds-radius-m); background: var(--ds-surface); }
body.portal-sveden-page #top .sveden-side-menu li { padding-block: 8px; }

@media (min-width: 768px) {
  #top :is(.portal-structure-layout, .portal-labs-layout),
  body.portal-sveden-page #top .portal-legacy-content > .container > .row:has(> * > .sveden-side-menu) {
    display: grid; grid-template-columns: minmax(0, 1fr) 232px; align-items: start; gap: 24px; margin-inline: 0 !important;
  }
  #top :is(.portal-structure-layout, .portal-labs-layout)::before,
  #top :is(.portal-structure-layout, .portal-labs-layout)::after,
  body.portal-sveden-page #top .portal-legacy-content > .container > .row:has(> * > .sveden-side-menu)::before,
  body.portal-sveden-page #top .portal-legacy-content > .container > .row:has(> * > .sveden-side-menu)::after { display: none; }
  #top :is(.portal-structure-layout, .portal-labs-layout) > *,
  body.portal-sveden-page #top .portal-legacy-content > .container > .row:has(> * > .sveden-side-menu) > * { float: none; width: auto; min-width: 0; padding-inline: 0 !important; }
  body.portal-sveden-index-page #top .page-content { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 992px) {
  #top :is(.portal-structure-layout, .portal-labs-layout),
  body.portal-sveden-page #top .portal-legacy-content > .container > .row:has(> * > .sveden-side-menu) { grid-template-columns: minmax(0, 1fr) 280px; }
}
@media (min-width: 1200px) {
  body.portal-sveden-index-page #top .page-content { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
