/* =========================================================================
   HU 2026 Theme for LEQR
   Adapts the LEQR site to the current Humboldt-Universität design system
   (TYPO3 relaunch 2026). Colours, typography, header, navigation and footer
   mirror www.hu-berlin.de. Loaded on top of the legacy content markup.
   ========================================================================= */

/* ----------------------------------------------------------------- Fonts */
@font-face{font-display:swap;font-family:ff-scala;font-style:normal;font-weight:400;src:url(/include/fonts/ScalaPro.woff2) format("woff2")}
@font-face{font-display:swap;font-family:ff-scala;font-style:italic;font-weight:400;src:url(/include/fonts/ScalaPro-Ita.woff2) format("woff2")}
@font-face{font-display:swap;font-family:ff-scala;font-style:normal;font-weight:700;src:url(/include/fonts/ScalaPro-Bold.woff2) format("woff2")}
@font-face{font-display:swap;font-family:hub-ddin;font-style:normal;font-weight:400;src:url(/include/fonts/D-DIN.woff2) format("woff2")}
@font-face{font-display:swap;font-family:hub-ddin;font-style:italic;font-weight:400;src:url(/include/fonts/D-DIN-Italic.woff2) format("woff2")}
@font-face{font-display:swap;font-family:hub-ddin;font-style:normal;font-weight:700;src:url(/include/fonts/D-DIN-Bold.woff2) format("woff2")}
@font-face{font-display:swap;font-family:hub-ddin-exp;font-style:normal;font-weight:400;src:url(/include/fonts/D-DINExp.woff2) format("woff2")}
@font-face{font-display:swap;font-family:hub-ddin-exp;font-style:italic;font-weight:400;src:url(/include/fonts/D-DINExp-Italic.woff2) format("woff2")}
@font-face{font-display:swap;font-family:hub-ddin-exp;font-style:normal;font-weight:700;src:url(/include/fonts/D-DINExp-Bold.woff2) format("woff2")}

/* -------------------------------------------------------------- Tokens */
:root{
  --hu-primary:#00376c;          /* HU blue */
  --hu-body-bg:#fafaf5;          /* warm off-white */
  --hu-secondary-bg:#f0f0eb;
  --hu-ink:#000;
  --hu-danger:#b00259;
  --hu-danger-rgb:176,2,89;
  --hu-black-2:#59595f;
  --hu-black-3:#95959e;
  --hu-black-4:#cfcfd1;
  --hu-link:#00376c;
  --hu-contrast:#fafaf5;
  /* status / server-load indicators (light cell bg + dark text) */
  --hu-ok-bg:#e2f3e5;   --hu-ok-fg:#0f5c2e;
  --hu-warn-bg:#fdf3d6; --hu-warn-fg:#7a5c00;
  --hu-alert-bg:#fbe0ea;
  /* slot fill colours — darkened so the white labels reach AA contrast */
  --hu-slot-free:#1a7a43;
  --hu-slot-busy:#b0342f;
  --hu-font-serif:ff-scala, Georgia, "Times New Roman", serif;
  --hu-font-ddin:hub-ddin-exp, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --hu-container:1376px;
  --hu-gutter:2rem;
  /* max width of the content column (tables, boxes, wrappers) — matches the
     site container so content lines up with the header/footer width.
     Body text keeps its own readable line length via max-width:70ch. */
  --hu-content:1376px;
  --hu-navbar-height:64px;
}

/* -------------------------------------------------------------- Reset */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--hu-body-bg);
  color:var(--hu-ink);
  font-family:var(--hu-font-serif);
  font-size:1.125rem;
  line-height:1.5588;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{max-width:100%;height:auto}
a{color:var(--hu-link);text-decoration:underline;text-underline-offset:.15em}
a:hover{text-decoration:none}

/* legacy helpers still referenced in markup */
.hiddenStructure{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
/* reveal a visually-hidden but focusable element (the skip link) on focus */
.hiddenStructure:focus,.hiddenStructure:focus-visible{
  position:fixed!important;left:1rem!important;top:.75rem!important;
  width:auto;height:auto;overflow:visible;z-index:2000;
  background:var(--hu-primary);color:var(--hu-contrast);
  font-family:var(--hu-font-ddin);font-size:1rem;
  padding:.6rem 1rem;border-radius:.25rem;text-decoration:none;
  outline:2px solid var(--hu-contrast);outline-offset:2px;
}
/* NB: no !important — membership.js reveals #submit / #institute-other via inline style */
.display_none{display:none}
.visualClear,.clear_both{clear:both}

/* ================================================================ Header */
.hu-navbar{
  position:sticky;top:0;z-index:1055;
  width:100%;
  background:var(--hu-primary);
}
.hu-container{
  width:100%;
  max-width:calc(var(--hu-container) + var(--hu-gutter));
  margin:0 auto;
  padding:0 var(--hu-gutter);
}
.hu-navbar__inner{
  display:flex;align-items:center;justify-content:space-between;gap:1.5rem;
  min-height:var(--hu-navbar-height);
}
.hu-wordmark{display:inline-flex;align-items:center;line-height:0}
.hu-wordmark img{height:19px;width:auto;display:block}
.hu-utility{
  display:flex;align-items:center;gap:0;
  list-style:none;margin:0;padding:0;
  font-family:var(--hu-font-ddin);
  font-size:.9375rem;
}
.hu-utility li{display:flex;align-items:center}
.hu-utility li+li::before{content:"";width:1px;height:16px;background:rgba(255,255,255,.35);margin:0 1rem}
.hu-utility a{
  color:var(--hu-contrast);text-decoration:none;
  text-transform:uppercase;letter-spacing:.02em;
  padding:.35rem 0;
}
.hu-utility a:hover{text-decoration:underline}
.hu-utility a.is-account{
  display:inline-flex;align-items:center;gap:.4rem;font-weight:700;
}
.hu-utility a.is-account::before{
  content:"";display:inline-block;width:1.05em;height:1.05em;flex:0 0 auto;
  background-color:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3 0 498.7 13.3 512 29.7 512l388.6 0c16.4 0 29.7-13.3 29.7-29.7C448 383.8 368.2 304 269.7 304l-91.4 0z'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3 0 498.7 13.3 512 29.7 512l388.6 0c16.4 0 29.7-13.3 29.7-29.7C448 383.8 368.2 304 269.7 304l-91.4 0z'/%3E%3C/svg%3E") center/contain no-repeat;
}

/* ---------------------------------------------------------- Title band */
.hu-titlebar{background:var(--hu-body-bg)}
.hu-titlebar__inner{
  display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap;
  padding:1.75rem 0 1.5rem;
}
.hu-siteseal{flex:0 0 auto}
.hu-siteseal img{height:64px;width:auto;display:block}
.hu-sitetitle{
  font-family:var(--hu-font-serif);
  font-weight:400;
  font-size:1.75rem;
  line-height:1.2;
  color:var(--hu-ink);
  margin:0;
}
.hu-sitetitle a{color:inherit;text-decoration:none}
.hu-sitetitle a:hover{color:var(--hu-primary)}
.hu-sitetitle small{display:block;font-family:var(--hu-font-ddin);font-size:.8125rem;letter-spacing:.06em;text-transform:uppercase;color:var(--hu-black-2);margin-top:.35rem}

/* ------------------------------------------------------------ Main nav */
.hu-mainnav{
  background:var(--hu-body-bg);
  border-top:1px solid var(--hu-ink);
  border-bottom:1px solid var(--hu-ink);
}
.hu-mainnav ul{
  list-style:none;margin:0;padding:0;
  display:flex;flex-wrap:wrap;align-items:stretch;
  font-family:var(--hu-font-ddin);
}
.hu-mainnav li{display:flex}
.hu-mainnav a{
  display:flex;align-items:center;
  padding:.9rem 1.15rem;
  color:var(--hu-ink);
  text-decoration:none;
  font-size:1rem;
  letter-spacing:.01em;
  border-bottom:3px solid transparent;
  transition:color .12s ease, border-color .12s ease;
}
.hu-mainnav a:hover{color:var(--hu-primary);border-bottom-color:var(--hu-primary)}
.hu-mainnav a.is-active{color:var(--hu-primary);border-bottom-color:var(--hu-primary);font-weight:700}

/* mobile menu toggle — a real <button> for keyboard/AT operability */
.hu-burger{
  display:none;align-items:center;gap:.5rem;
  background:none;border:0;padding:0;margin:0;cursor:pointer;
  color:var(--hu-contrast);font-family:var(--hu-font-ddin);
  font-size:.95rem;text-transform:uppercase;letter-spacing:.03em;
}
.hu-burger span{display:inline-block;width:22px;height:2px;background:var(--hu-contrast);position:relative}
.hu-burger span::before,.hu-burger span::after{content:"";position:absolute;left:0;width:22px;height:2px;background:var(--hu-contrast)}
.hu-burger span::before{top:-7px}
.hu-burger span::after{top:7px}

/* ================================================================ Layout */
.hu-main{padding:2.5rem 0 3.5rem}
.hu-main .hu-container{display:block}

/* legacy content wrappers reset to a clean flow */
.content.contentor{display:block}
/* keep loose (non-<p>) content — e.g. the maintenance-day text — from
   stretching past the site's content column (--hu-content) */
#content-core [id^="parent-fieldname-text"]{max-width:var(--hu-content)}
#viewlet-above-content,#viewlet-below-content,#print-header{display:none}
.portalMessage{display:none}

/* breadcrumb hidden — its links are reachable elsewhere (HU wordmark, site
   title/Home nav; the faculty link now lives in the footer) */
#portal-breadcrumbs{display:none}

/* two-column: main + news aside */
#content{position:relative}
.sectionLeft{display:block}
.asideRight{
  float:right;width:320px;margin:0 0 1.5rem 2.5rem;
  background:#fff;
  border:1px solid var(--hu-black-4);border-top:3px solid var(--hu-primary);
  padding:1.25rem 1.25rem 1.5rem;
}
.asideRight .block-title,.asideRight h3{margin-top:0}
.asideRight table{width:100%;border:0;background:none}
.asideRight td{border:0;padding:.35rem 0;font-size:1rem;line-height:1.45;vertical-align:top}
.asideRight tr+tr td{border-top:1px dotted var(--hu-black-4)}

/* ------------------------------------------------------------- Typography */
h1,h2,h3,h4,h5{font-family:var(--hu-font-serif);font-weight:400;color:var(--hu-ink)}
.documentFirstHeading{
  font-size:2.25rem;line-height:1.15;margin:0 0 1.5rem;
}
h2{font-size:1.875rem;margin:2.5rem 0 1rem}
h2:first-child{margin-top:0}
h3{font-size:1.5rem;margin:2rem 0 .75rem}
.block-title{
  font-family:var(--hu-font-ddin);
  font-size:1.25rem;font-weight:700;
  padding-bottom:.35rem;margin:0 0 1rem;
  border-bottom:2px solid var(--hu-ink);
}
.index_dim,.governance-dim{color:var(--hu-ink)}
p,.contenttext{margin:0 0 1.1rem;max-width:70ch}
.contenttext{font-size:1.125rem;line-height:1.5588}
.text_uppercase{text-transform:uppercase}
strong,b{font-weight:700}
hr{border:0;border-top:1px solid var(--hu-black-4);margin:2rem 0}
/* named-anchor headings (e.g. <h2><a name="dataRes">…) must read as headings,
   not as blue underlined links */
#content-core h2 a:not([href]),
#content-core h3 a:not([href]),
#content-core h4 a:not([href]){color:inherit;text-decoration:none;cursor:text}

/* --------------------------------------------------------------- Tables */
#content-core table{
  border-collapse:collapse;width:100%;max-width:var(--hu-content);margin:0 0 1.75rem;
  font-size:1rem;line-height:1.45;
}
#content-core th{
  background:var(--hu-primary);color:var(--hu-contrast);
  font-family:var(--hu-font-ddin);font-weight:700;text-align:left;
  padding:.65rem .85rem;border:1px solid var(--hu-primary);
}
#content-core th h3,#content-core th .block-title{
  color:var(--hu-contrast);border:0;margin:0;padding:0;font-size:1.125rem;
}
#content-core td{
  padding:.6rem .85rem;border:1px solid var(--hu-black-4);vertical-align:top;
  background:#fff;
}
#content-core tr:nth-child(even) td{background:var(--hu-secondary-bg)}
table.links td.eins{width:32%;font-weight:600}
table.links td[bgcolor],table.links th[bgcolor]{background:var(--hu-primary)!important;color:var(--hu-contrast)}
img.bild{border:1px solid var(--hu-black-4);background:#fff;padding:3px}

/* governance table: reset zebra for photo rows */
#content-core table td:has(img.bild){background:#fff}

/* --------------------------------------------------------------- Links list */
.text_daneben_links{
  background:var(--hu-secondary-bg);border-left:4px solid var(--hu-primary);
  padding:1rem 1.25rem;margin:0 0 1.75rem;font-family:var(--hu-font-ddin);
  max-width:var(--hu-content);
}
.text_daneben_links a{display:inline-block;padding:.15rem 0}

/* iframes used by login / change password */
#content-core iframe{border:1px solid var(--hu-black-4);background:#fff;max-width:100%}

/* --------------------------------------------------- Wide-table wrapper */
.table{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 0 1.75rem}
.table table{margin:0}
/* database tables (databases1/2): keep a comfortable width and column ratios
   so short descriptions don't leave large empty areas on the wide layout.
   (Desktop column widths live in the shared min-width:769px block below;
   the mobile fallback in the shared max-width:768px block.) */
.table td{overflow-wrap:break-word}
/* small, consistent inline action icons (info / access / arrow) — the template
   hard-codes height=25 / width=20, which looks oversized on the new layout */
.table td img{height:18px;width:auto;vertical-align:middle}
.table td .dbdoc,.table td .dbas1{display:inline-flex;align-items:center;justify-content:center}

/* ------------------------------------------------------- Emphasis / errors */
.color_red,.color_red_imp{color:var(--hu-danger)}
a.color_red_imp{color:var(--hu-danger)!important}
.border_red{border:2px solid var(--hu-danger);border-radius:.25rem;padding:.5rem .75rem;background:rgba(var(--hu-danger-rgb),.05)}
.float_left{float:left}
.float_right{float:right}
.padding_2em{padding:2em 0}
h5.red,.red{color:var(--hu-danger)}
.maintenanceday{background:rgba(var(--hu-danger-rgb),.08);border-left:4px solid var(--hu-danger);padding:1rem 1.25rem;margin:0 0 1.5rem}
a .timer-area{text-decoration:none}

/* --------------------------------------------- Server load / status cells */
#content-core td.background-color_green{background:var(--hu-ok-bg)!important;color:var(--hu-ok-fg);font-weight:700;text-align:center}
#content-core td.background-color_yellow{background:var(--hu-warn-bg)!important;color:var(--hu-warn-fg);font-weight:700;text-align:center}
#content-core td.background-color_red{background:var(--hu-alert-bg)!important;color:var(--hu-danger);font-weight:700;text-align:center}
/* neutral "no data" cell — used when a server reports no monitoring plugin */
#content-core td.background-color_na{background:var(--hu-secondary-bg)!important;color:var(--hu-black-2);font-style:italic;font-weight:400;text-align:center}
/* notice shown when the whole monitoring instance is unreachable */
.monitoring-notice{background:var(--hu-warn-bg);border-left:4px solid var(--hu-warn-fg);padding:.85rem 1.15rem;margin:0 0 1.25rem;color:var(--hu-warn-fg);font-weight:600}

/* slot occupancy indicators */
.links td.slot-cell{padding:0!important;background:var(--hu-secondary-bg)!important;border:3px solid #fff!important;white-space:nowrap;height:40px}
.slot-container{display:flex;height:100%;min-height:40px;gap:2px}
.slot{min-width:33px;padding:0 3px;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:#fff;flex:1}
.slot-green{background:var(--hu-slot-free)!important}
.slot-red{background:var(--hu-slot-busy)!important}
.slot-extra{display:flex;align-items:center;margin-left:6px;font-size:12px;font-weight:700;color:var(--hu-ink);flex:1}

/* hover tooltip on a slot (shows the user name / "free" / "VPN required") */
.slot-tooltip{position:relative;cursor:pointer}
.slot-tooltip:hover::after{
  content:attr(data-tooltip);
  position:absolute;bottom:100%;left:50%;transform:translateX(-50%);
  margin-bottom:4px;
  background:#fff;border:1px solid var(--hu-black-4);
  color:var(--hu-black-2);
  font-family:var(--hu-font-ddin);font-size:12px;line-height:16px;font-weight:400;
  padding:4px 8px;white-space:nowrap;z-index:100;
  box-shadow:0 2px 8px rgba(0,0,0,.25);pointer-events:none;
}

/* ---------------------------------------------------- Forms (membership) */
/* content wrappers: allow their tables to reach the shared content width (--hu-content)
   (paragraph text stays readable via the max-width:70ch on p/.contenttext) */
.text_daneben,.text_daneben_data{display:block;max-width:var(--hu-content)}
/* the registration form as one tidy, card-like column */
#content-core form{
  max-width:560px;
  background:#fff;
  border:1px solid var(--hu-black-4);border-top:3px solid var(--hu-primary);
  padding:1.5rem 1.75rem;margin:.5rem 0 1.75rem;
}
#content-core form table{width:100%!important;border:0;background:none;margin:0}
#forma td,#content-core form table td{padding:.4rem 0;vertical-align:top;border:0!important;background:none!important}
/* field labels */
#content-core form b font,#content-core form font[color]{
  color:var(--hu-primary)!important;font-family:var(--hu-font-ddin);
  font-size:.9375rem;font-weight:700;display:inline-block;margin-bottom:.15rem;
}
#content-core input[type=text],
#content-core input[type=password],
#content-core input[type=email],
#content-core input[type=file],
#content-core select,
#content-core textarea{
  font-family:var(--hu-font-ddin);font-size:1rem;color:var(--hu-ink);
  background:#fff;border:1px solid var(--hu-black-3);border-radius:.25rem;
  padding:.5rem .6rem;margin:.15rem 0 .35rem;
  width:100%;max-width:340px;box-sizing:border-box;
}
#content-core input[type=file]{max-width:100%}
/* status radio lists: tighter, aligned */
#content-core form .c_status,#content-core form .c_statusHU,
#content-core form .c_statusESMT,#content-core form .c_statusHWR{line-height:1.9}
#content-core form label{display:block}
#content-core form input[type=checkbox]#agree{display:inline-block;margin:.75rem .5rem .25rem 0}
/* Keep the submit button in the layout at all times, so ticking the agreement
   checkbox reveals it in place (with a soft fade) instead of pushing the page
   down. display:block!important overrides both .display_none and the inline
   style membership.js sets; visibility reserves the exact space either way. */
#content-core form #submit{
  display:block!important;
  visibility:hidden;opacity:0;
  transition:opacity .18s ease;
  margin-top:1.25rem;margin-bottom:0;
}
#content-core form:has(#agree:checked) #submit{visibility:visible;opacity:1}
/* Fallback: browsers without :has() can't run the reveal above, so show the
   button unconditionally there (usable, just without the in-place fade). */
@supports not selector(:has(*)){
  #content-core form #submit{visibility:visible;opacity:1}
}
/* Collapse form fields that membership.js has hidden, so their table cells
   don't leave empty gaps (e.g. the upload/date rows above the closing note). */
#content-core form td:has(> label[style*="display: none"]),
#content-core form td:has(> div[style*="display: none"]),
#content-core form td:has(> label[style*="display:none"]),
#content-core form td:has(> div[style*="display:none"]){padding:0!important}
/* small breathing room above the closing note (last row of the upload table) */
#content-core form table:not(#forma) tr:last-child td{padding-top:.9rem}
/* vertical rhythm carried by the visible controls, so JS-hidden fields (.c_*)
   collapse to zero height instead of leaving gaps in the columns */
#forma input,#forma select,#forma textarea{margin-bottom:1rem}
#forma .c_status,#forma .c_statusHU,#forma .c_statusESMT,#forma .c_statusHWR{margin-bottom:1rem}

/* -- Desktop (shared): 2-column registration form + database table widths -- */
@media (min-width:769px){
  /* registration form flows into two columns */
  #content-core form{max-width:860px}
  #forma{display:block;column-count:2;column-gap:2.75rem}
  #forma tbody{display:block}
  #forma tr{display:block;margin:0;
    break-inside:avoid;-webkit-column-break-inside:avoid;page-break-inside:avoid}
  #forma td{display:block;padding:0}
  /* database tables: comfortable width + column ratios */
  .table table{width:100%;max-width:var(--hu-content);table-layout:fixed}
  .table th.eins{width:20%}
  .table th.zwei{width:52%}
  .table th.drei{width:28%}
}
#content-core input:focus,#content-core select:focus,#content-core textarea:focus{
  outline:2px solid var(--hu-primary);outline-offset:1px;border-color:var(--hu-primary);
}
#content-core input[type=radio],#content-core input[type=checkbox]{
  accent-color:var(--hu-primary);margin-right:.4rem;transform:translateY(1px);
}
#content-core input[type=submit],
#content-core input[type=reset],
#content-core .form_button{
  font-family:var(--hu-font-ddin);font-size:1rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.02em;cursor:pointer;
  border-radius:.25rem;padding:.6rem 1.4rem;margin:.5rem .5rem .5rem 0;
  background:var(--hu-primary);color:var(--hu-contrast);border:2px solid var(--hu-primary);
  transition:background .12s,color .12s;
}
#content-core input[type=submit]:hover,
#content-core .form_button:hover{background:var(--hu-contrast);color:var(--hu-primary)}
#content-core input[type=reset]{background:transparent;color:var(--hu-primary)}
#content-core input[type=reset]:hover{background:var(--hu-primary);color:var(--hu-contrast)}

/* ------------------------------------------------------- Scheduler views */
.box_scheduler{
  background:#fff;
  border:1px solid var(--hu-black-4);border-top:3px solid var(--hu-primary);
  padding:1.25rem 1.5rem;margin:0 0 1.75rem;
}
.box_scheduler .bcontent table{width:auto;border:0;background:none}
.box_scheduler td{border:0!important;background:none!important;padding:.25rem .5rem;font-size:1rem}
.links_daneben{margin:0 0 1.75rem}
.links_daneben table{width:auto}
.links_daneben td{border:0;background:none;padding:.2rem .5rem}
table.links.scheduler td.scheduler{
  background:#fff;border:1px solid var(--hu-black-4);
  padding:.75rem 1rem;text-align:center;
}
table.links.scheduler td.scheduler a{font-family:var(--hu-font-ddin);text-decoration:none}
table.links.scheduler td.scheduler a:hover{text-decoration:underline}
#video-view video{max-width:100%;height:auto}

/* ================================================================ Footer */
.hu-footer{
  background:var(--hu-primary);color:var(--hu-contrast);
  font-family:var(--hu-font-ddin);
  margin-top:4rem;padding:3rem 0 2.5rem;
}
.hu-footer a{color:var(--hu-contrast);text-decoration:none}
.hu-footer a:hover{text-decoration:underline}
.hu-footer__title{
  font-family:var(--hu-font-serif);font-size:1.5rem;
  padding-bottom:1.5rem;border-bottom:1px solid rgba(255,255,255,.3);margin-bottom:2rem;
}
.hu-footer__cols{
  display:grid;grid-template-columns:repeat(4,1fr);gap:2rem;
}
.hu-footer__cols h5{
  font-family:var(--hu-font-serif);font-size:1.1875rem;font-weight:400;
  margin:0 0 1rem;color:var(--hu-contrast);
}
.hu-footer__cols ul{list-style:none;margin:0;padding:0}
.hu-footer__cols li{margin:0 0 .6rem;font-size:.9375rem}
.hu-social{display:flex;flex-wrap:wrap;gap:.85rem}
.hu-social a{
  width:38px;height:38px;border:1px solid rgba(255,255,255,.5);border-radius:50%;
  display:inline-flex;align-items:center;justify-content:center;
}
.hu-social a:hover{background:var(--hu-contrast)}
.hu-social svg{width:18px;height:18px;fill:var(--hu-contrast)}
.hu-social a:hover svg{fill:var(--hu-primary)}
.hu-footer__bottom{
  display:flex;flex-wrap:wrap;gap:.75rem 1.5rem;align-items:center;
  margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.3);
  font-size:.875rem;
}
.hu-footer__bottom .sep{color:rgba(255,255,255,.5)}

/* ================================================================ Responsive */
@media (max-width:992px){
  .hu-footer__cols{grid-template-columns:repeat(2,1fr)}
  .asideRight{float:none;width:auto;margin:0 0 2rem}
}
@media (max-width:768px){
  body{font-size:1.0625rem}
  .documentFirstHeading{font-size:1.75rem}
  .hu-burger{display:inline-flex}
  .hu-navbar__inner{flex-wrap:wrap}
  .hu-wordmark img{height:44px}
  .hu-utility{
    display:none;
    flex-basis:100%;width:100%;
    flex-direction:column;align-items:stretch;gap:0;
    padding:.25rem 0 .75rem;
  }
  .hu-utility li{width:100%}
  .hu-utility li+li::before{display:none}
  .hu-utility a{width:100%;padding:.85rem 0;border-top:1px solid rgba(255,255,255,.2)}
  .hu-burger[aria-expanded="true"] ~ .hu-utility{display:flex}
  .hu-mainnav ul{flex-direction:column}
  .hu-mainnav a{padding:.85rem 0;border-bottom:1px solid var(--hu-black-4)}
  .hu-mainnav a.is-active,.hu-mainnav a:hover{border-bottom-color:var(--hu-black-4);padding-left:.5rem}
  .hu-footer__cols{grid-template-columns:1fr}
  /* database tables: readable columns; the .table wrapper scrolls horizontally */
  .table table{table-layout:auto;width:auto;min-width:560px}
}
/* ============================================ Accessibility & hardening */
/* offset in-page anchor targets so the sticky header doesn't cover them */
#content-core [id],#content-core a[name],#mxday{
  scroll-margin-top:calc(var(--hu-navbar-height) + 1rem);
}
/* visible keyboard focus — HU-blue ring on light areas ... */
a:focus-visible,
.hu-mainnav a:focus-visible,
#content-core button:focus-visible,
#content-core input[type=submit]:focus-visible,
#content-core input[type=reset]:focus-visible{
  outline:2px solid var(--hu-primary);outline-offset:2px;border-radius:2px;
}
/* ... and a light ring on the blue header / footer, where blue would vanish */
.hu-utility a:focus-visible,
.hu-footer a:focus-visible,
.hu-social a:focus-visible,
.hu-burger:focus-visible,
.hu-wordmark:focus-visible{
  outline:2px solid var(--hu-contrast);outline-offset:2px;border-radius:2px;
}
/* respect the user's reduced-motion preference */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    transition-duration:.01ms!important;
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    scroll-behavior:auto!important;
  }
}

@media print{
  .hu-navbar,.hu-mainnav,.hu-footer,.asideRight{display:none!important}
  body{background:#fff}
}
