/* Back-to-top button: TUM gold on every public theme, with a thin, white,
   full arrow (head and stem). Font Awesome's icons only ship in a heavy
   solid weight, so the glyph is hidden and a 2px arrow is drawn instead. !important because
   several themes colour this button (some green) in their own files. */

.scrollToTop {
  background: var(--tum-accent) !important;
  color: #fff !important;
  box-shadow: 0 4px 14px rgba(0, 0, 0, .22);
  transition: background .2s ease, transform .2s ease;
}
.scrollToTop:hover,
.scrollToTop:focus-visible {
  background: color-mix(in srgb, var(--tum-accent) 82%, white) !important;
  color: #fff !important;
  transform: translateY(-2px);
}
.scrollToTop > i { display: none; }
.scrollToTop::before,
.scrollToTop::after { content: ""; position: absolute; left: 50%; top: 50%; }
/* head */
.scrollToTop::before {
  width: 12px; height: 12px;
  border-top: 2px solid #fff; border-left: 2px solid #fff;
  transform: translate(-50%, -62%) rotate(45deg);
}
/* stem */
.scrollToTop::after {
  width: 2px; height: 16px; background: #fff;
  transform: translate(-50%, -50%);
}
@media (prefers-reduced-motion: reduce) {
  .scrollToTop { transition: none; }
  .scrollToTop:hover, .scrollToTop:focus-visible { transform: none; }
}

/* ------------------------------------------------------------------
   Text contrast (WCAG AA, 4.5:1 for small text)

   Lighthouse/axe flagged small text in the TUM gold, pale greys and
   semi-transparent white that sits below 4.5:1 on its background. Each colour
   below is the nearest shade of the SAME colour that passes, so the look holds:

     gold  #d89837 on white/cream  2.2–2.5:1  →  #8f6424  4.7–5.2:1
     grey  #686f69 / #686f69       2.6–3.1:1  →  #686f69  5.2:1
     white 55–78% on TUM green     2.7–3.9:1  →  92%      ≈4.8:1
     gold  link on dark green       3.3:1      →  #e6bd7f  4.6:1
     gold  heading words (large)    2.3–2.5:1  →  #b37e2e  3.2–3.5:1

   Gold stays gold wherever it is large, a background, or on a dark section.
   Loaded before every public theme's own files (kernel defaults), so each rule
   carries `html body` to outrank the theme rule it corrects; hover/focus rules
   in the themes are more specific still and keep working.
   ------------------------------------------------------------------ */

:root { --tum-accent-ink: #8f6424; --tum-muted-ink: #686f69; }

/* Gold eyebrows and small gold links on light backgrounds */
html body h6.letter-space-2.text-theme-colored3:not(:is(.sch-cta, .sch-funfacts, .page-title, .sch-pagetitle, .cos-pagetitle, .bg-theme-colored1, .bg-theme-colored2, .bg-dark, .sch-footer, .cos-footer, .hero-carousel) *),
html body .cos-sec-head .ey,
html body .cos-sch-card .go,
html body .sch-ledger .row-item .date,
html body .cos-vc-sign .ro,
html body .cos-statement .lbl,
html body .contact-panel-head .ey,
html body .sch-welcome .sign .ro,
html body .sch-leader .info .ro,
html body .sch-staff-card .info .ro { color: var(--tum-accent-ink); }

/* Gold buttons (template .btn-theme-colored3): ink text on the gold, as the
   site's other gold buttons already use — white on this gold is 2.5:1, ink 6:1.
   Templates often add .text-white (Bootstrap !important), hence the extra class. */
html body .btn-theme-colored3,
html body .btn-theme-colored3.text-white,
html body .btn-theme-colored3:hover,
html body .btn-theme-colored3.text-white:hover { color: var(--cos-ink, var(--tum-ink, #052d17)) !important; }
/* The template forces .text-theme-colored3 with !important, so the eyebrow
   override has to as well (still only on light backgrounds — see the :not()). */
html body h6.letter-space-2.text-theme-colored3:not(:is(.sch-cta, .sch-funfacts, .page-title, .sch-pagetitle, .cos-pagetitle, .bg-theme-colored1, .bg-theme-colored2, .bg-dark, .sch-footer, .cos-footer, .hero-carousel) *) { color: var(--tum-accent-ink) !important; }

/* The gold word in section headings (large text: 3:1 is the bar) — a slightly
   deeper gold that passes on white and the light greys, still clearly gold. */
html body h2 .text-theme-colored3:not(:is(.sch-cta, .sch-funfacts, .page-title, .sch-pagetitle, .cos-pagetitle, .bg-theme-colored1, .bg-theme-colored2, .bg-dark, .sch-footer, .cos-footer, .hero-carousel) *) { color: #b37e2e !important; }

/* Gold link text on the dark green cookie banner: a lighter shade of the gold. */
html body .cc__copy a { color: #e6bd7f; }

/* Pale grey captions on white */
html body .cos-quicklinks .ql .s,
html body .sch-course-card .cc-dept,
html body .sch-news-card .date .author,
html body .sch-event-mini .v { color: var(--tum-muted-ink); }

/* Footer text on the green band */
html body .sch-footer,
html body .sch-footer a,
html body .sch-footer p,
html body .sch-footer .copyright a,
html body .sch-footer .foot-follow__label,
html body .footer-legal a { color: rgba(255, 255, 255, .92); }

/* Badges holding real words (areas of specialisation on staff profiles) may be
   long: let them wrap instead of running off the side of a phone screen. */
html body main .badge { white-space: normal; text-align: left; }

/* Social icons in each platform's own colours — footer, header strip and the
   contact panel, on every public theme. Matched on the icon class so it
   follows whatever Settings → Social supplies. !important because themes
   style these same links (including their :hover) with theme colours. */

:root {
  --social-facebook:  #1877F2;
  --social-x:         #000000;
  --social-youtube:   #FF0000;
  --social-linkedin:  #0A66C2;
  --social-instagram: radial-gradient(circle at 30% 107%, #FDF497 0%, #FDF497 5%, #FD5949 45%, #D6249F 60%, #285AEB 90%);
  --social-tiktok:    #000000;
}

.socials a, .contact-socials a { transition: transform .15s ease, filter .15s ease; }
.socials a:hover, .contact-socials a:hover { transform: translateY(-2px); filter: brightness(1.12); }

:is(.socials, .contact-socials) a:has(> .fa-facebook-f, > .fa-facebook)   { background: var(--social-facebook) !important;  border-color: var(--social-facebook) !important;  color: #fff !important; }
:is(.socials, .contact-socials) a:has(> .fa-x-twitter, > .fa-twitter)     { background: var(--social-x) !important;         border-color: rgba(255,255,255,.35) !important;   color: #fff !important; }
:is(.socials, .contact-socials) a:has(> .fa-youtube)                      { background: var(--social-youtube) !important;   border-color: var(--social-youtube) !important;   color: #fff !important; }
:is(.socials, .contact-socials) a:has(> .fa-linkedin-in, > .fa-linkedin)  { background: var(--social-linkedin) !important;  border-color: var(--social-linkedin) !important;  color: #fff !important; }
:is(.socials, .contact-socials) a:has(> .fa-instagram)                    { background: var(--social-instagram) !important; border-color: transparent !important;             color: #fff !important; }
:is(.socials, .contact-socials) a:has(> .fa-tiktok)                       { background: var(--social-tiktok) !important;    border-color: rgba(255,255,255,.35) !important;   color: #fff !important; }

/* The footer's contact block colours every <i> gold; the glyph follows its link. */
:is(.socials, .contact-socials) a > i { color: inherit !important; }

/* ------------------------------------------------------------------
   Tender card — markup in modules/website/widgets/views/tender-card.php,
   used by every theme's tenders page.

   Same surface as the downloads file rows (border, radius, hover lift),
   but self-contained rather than built on .pri-file-row: this file loads
   before each theme's own CSS, so leaning on that class would lose every
   specificity tie to the theme's version of it.

   Status (Open/Closed) is a filled pill; category is an outlined chip,
   so the two never read as the same kind of label.
   ------------------------------------------------------------------ */

.tender-card {
  display: flex; align-items: center; gap: 14px;
  padding: 14px 16px;
  background: #fff;
  border: 1px solid #e9efe9; border-radius: 8px;
  transition: box-shadow .2s ease, border-color .2s ease;
}
.tender-card:hover {
  border-color: color-mix(in srgb, var(--tum-primary) 22%, white);
  box-shadow: 0 6px 16px color-mix(in srgb, var(--tum-ink) 7%, transparent);
}

/* ---- icon, tinted by category ------------------------------------- */
.tender-card__icon {
  flex: 0 0 40px; height: 40px; border-radius: 8px;
  display: flex; align-items: center; justify-content: center; font-size: 16px;
}
.tender-card__icon--tender   { background: color-mix(in srgb, var(--tum-primary) 11%, white);   color: var(--tum-primary); }
.tender-card__icon--notice   { background: color-mix(in srgb, var(--tum-tertiary) 10%, white);  color: var(--tum-tertiary); }
.tender-card__icon--addendum { background: color-mix(in srgb, var(--tum-accent) 15%, white);    color: color-mix(in srgb, var(--tum-accent) 72%, black); }

/* ---- title + one meta row ----------------------------------------- */
.tender-card__body { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 7px; }

.tender-card__title {
  margin: 0; font-family: inherit; font-size: 14.5px; font-weight: 600;
  line-height: 1.35; letter-spacing: 0; text-transform: none; color: var(--tum-ink);
  /* Tender titles run long; two lines keeps the grid even without cutting
     the useful part off. The full title is in the tooltip. */
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}

.tender-card__meta {
  display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px;
  font-size: 12.5px; line-height: 1.4; color: #5f6c64;
}
.tender-card__date { display: inline-flex; align-items: center; gap: 5px; white-space: nowrap; font-weight: 600; }
.tender-card__date i { font-size: 11px; color: #686f69; }
.tender-card__due {
  white-space: nowrap; font-size: 11.5px; font-weight: 700;
  color: #a8431c; background: #fdeee6; padding: 1px 8px; border-radius: 999px;
}
.tender-card__ref { color: #8a968e; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ---- badges -------------------------------------------------------- */
.tender-badge {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 1px 8px; border-radius: 999px;
  font-size: 10.5px; font-weight: 700; line-height: 1.7;
  letter-spacing: .05em; text-transform: uppercase; white-space: nowrap;
}
.tender-badge--open   { background: color-mix(in srgb, var(--tum-primary) 12%, white); color: var(--tum-primary); }
.tender-badge--open::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.tender-badge--closed { background: #eef0ef; color: #6b7a72; }

.tender-badge--tender,
.tender-badge--notice,
.tender-badge--addendum { background: #fff; box-shadow: inset 0 0 0 1px currentColor; }
.tender-badge--tender   { color: var(--tum-secondary); }
.tender-badge--notice   { color: var(--tum-tertiary); }
.tender-badge--addendum { color: color-mix(in srgb, var(--tum-accent) 72%, black); }

/* ---- action -------------------------------------------------------- */
/* Two classes: on the Bootstrap themes this file loads before Bootstrap's
   own .btn padding. */
.tender-card .tender-card__action {
  flex: 0 0 auto; display: inline-flex; align-items: center; gap: 6px;
  padding: 7px 14px; font-size: 12px; font-weight: 600;
}
.tender-card__nodoc { flex: 0 0 auto; font-size: 11.5px; color: #686f69; }

/* ---- closed: quieter, but still readable (no blanket opacity) ------ */
.tender-card.is-closed { background: #fafbfa; }
.tender-card.is-closed .tender-card__title { color: #5f6c64; }
.tender-card.is-closed .tender-card__icon { background: #eef0ef; color: #8b978f; }

/* ---- phones: icon-only download, so the title keeps the width ------ */
@media (max-width: 575.98px) {
  .tender-card { padding: 12px; gap: 12px; align-items: flex-start; }
  .tender-card .tender-card__action { padding: 9px 11px; }
  .tender-card__action span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
}

/* ------------------------------------------------------------------
   Theme-colour utilities, available in every public theme.

   The *-theme-coloredN vocabulary came from the studypress vendor skin,
   so it only ever existed in the five studypress themes — yet shared
   widgets (downloads, news, team grid) use it, and on cosmos, campus
   and procurement those classes silently did nothing. Values match the
   vendor skin exactly, so studypress themes render the same as before.

     1 = secondary (navy)   2 = primary (green)
     3 = accent (gold)      4 = tertiary (deep blue)

   Buttons are `.btn.btn-theme-coloredN` because on the Bootstrap
   themes this file loads before Bootstrap itself, and a single class
   would lose to Bootstrap's own `.btn` / `.btn:hover`.
   ------------------------------------------------------------------ */

/* ---- text ---------------------------------------------------------- */
.text-theme-colored1, .text-hover-theme-colored1:hover { color: var(--tum-secondary) !important; }
.text-theme-colored2, .text-hover-theme-colored2:hover { color: var(--tum-primary) !important; }
.text-theme-colored3, .text-hover-theme-colored3:hover { color: var(--tum-accent) !important; }
.text-theme-colored4, .text-hover-theme-colored4:hover { color: var(--tum-tertiary) !important; }

/* Named variants, for markup that reads better with a colour name. */
.text-theme-colored-green      { color: var(--tum-primary) !important; }
.text-theme-colored-green-dark { color: var(--tum-primary-dark) !important; }
.text-theme-colored-gold       { color: var(--tum-accent) !important; }
.text-theme-colored-ink        { color: var(--tum-ink) !important; }

/* ---- background ---------------------------------------------------- */
.bg-theme-colored1 { background-color: var(--tum-secondary) !important; }
.bg-theme-colored2 { background-color: var(--tum-primary) !important; }
.bg-theme-colored3 { background-color: var(--tum-accent) !important; }
.bg-theme-colored4 { background-color: var(--tum-tertiary) !important; }

/* ---- border -------------------------------------------------------- */
.border-theme-colored1 { border-color: var(--tum-secondary) !important; }
.border-theme-colored2 { border-color: var(--tum-primary) !important; }
.border-theme-colored3 { border-color: var(--tum-accent) !important; }
.border-theme-colored4 { border-color: var(--tum-tertiary) !important; }

.border-1px-theme-colored1 { border: 1px solid var(--tum-secondary); }
.border-1px-theme-colored2 { border: 1px solid var(--tum-primary); }
.border-1px-theme-colored3 { border: 1px solid var(--tum-accent); }
.border-1px-theme-colored4 { border: 1px solid var(--tum-tertiary); }

/* ---- heading underline -------------------------------------------- */
.line-bottom { position: relative; margin-bottom: 35px; padding-bottom: 10px; }
.line-bottom::after { content: ""; position: absolute; left: 0; bottom: -10px; width: 65px; height: 4px; }

.line-bottom-theme-colored1::after { background: var(--tum-secondary); }
.line-bottom-theme-colored2::after { background: var(--tum-primary); }
.line-bottom-theme-colored3::after { background: var(--tum-accent); }
.line-bottom-theme-colored4::after { background: var(--tum-tertiary); }

/* ---- buttons ------------------------------------------------------- */
.btn-xs { padding: .75rem 1rem; font-size: .8rem; border-radius: .2rem; }

.btn.btn-theme-colored1,
.btn.btn-theme-colored1:hover,
.btn.btn-theme-colored1:active,
.btn.btn-theme-colored1.active,
.btn.btn-theme-colored1:disabled,
.btn.btn-theme-colored1.disabled { color: #fff; background-color: var(--tum-secondary); border-color: var(--tum-secondary); }
.btn.btn-theme-colored1:focus { color: #fff; box-shadow: 0 0 0 .25rem color-mix(in srgb, var(--tum-secondary) 50%, transparent); }

.btn.btn-theme-colored2,
.btn.btn-theme-colored2:hover,
.btn.btn-theme-colored2:active,
.btn.btn-theme-colored2.active,
.btn.btn-theme-colored2:disabled,
.btn.btn-theme-colored2.disabled { color: #fff; background-color: var(--tum-primary); border-color: var(--tum-primary); }
.btn.btn-theme-colored2:focus { color: #fff; box-shadow: 0 0 0 .25rem color-mix(in srgb, var(--tum-primary) 50%, transparent); }

.btn.btn-theme-colored3,
.btn.btn-theme-colored3:hover,
.btn.btn-theme-colored3:active,
.btn.btn-theme-colored3.active,
.btn.btn-theme-colored3:disabled,
.btn.btn-theme-colored3.disabled { color: #000; background-color: var(--tum-accent); border-color: var(--tum-accent); }
.btn.btn-theme-colored3:focus { box-shadow: 0 0 0 .25rem color-mix(in srgb, var(--tum-accent) 50%, transparent); }

.btn.btn-theme-colored4,
.btn.btn-theme-colored4:hover,
.btn.btn-theme-colored4:active,
.btn.btn-theme-colored4.active,
.btn.btn-theme-colored4:disabled,
.btn.btn-theme-colored4.disabled { color: #000; background-color: var(--tum-tertiary); border-color: var(--tum-tertiary); }
.btn.btn-theme-colored4:focus { box-shadow: 0 0 0 .25rem color-mix(in srgb, var(--tum-tertiary) 50%, transparent); }

/* ------------------------------------------------------------------
   TUM brand palette — the defaults every public theme starts from.

   Cosmos owns this file; the kernel prepends everything in this
   defaults/ folder to every public theme's stylesheet (see
   Kernel::registerLayoutAssets), so each theme reuses it instead of
   keeping its own copy.

   Who wins, lowest to highest:
     1. the values below
     2. Admin → Settings → Branding (emitted inline by the kernel,
        only for colours that differ from these)
     3. a theme's own `:root { --tum-accent: … }` — a deliberate
        per-theme override

   That ordering comes from specificity, not load order: these and
   the CMS values sit on :where(:root) (specificity 0), a theme's
   override on :root (0,1,0). The Branding settings screen reads its
   defaults from this file (helpers\Brand::colorDefaults), so change a
   hex here and the admin form follows.
   ------------------------------------------------------------------ */

:where(:root) {
  --tum-primary:      #097B3E;  /* theme colour 2 — TUM green */
  --tum-primary-dark: #065C2E;  /* hover / pressed primary */
  --tum-accent:       #D89837;  /* theme colour 3 — TUM gold */
  --tum-secondary:    #202C45;  /* theme colour 1 — navy */
  --tum-tertiary:     #003A6B;  /* theme colour 4 — deep blue */
  --tum-ink:          #16261d;  /* near-black for body text */
  --tum-surface:      #f5f2eb;  /* warm sand background */
}

/* Names older stylesheets already use, pointed at the palette above.
   On :root (not :where) so they beat the studypress vendor skin's own
   hardcoded `--theme-colorN` declarations, which load before this. */
:root {
  /* studypress numbering — what *-theme-coloredN classes mean */
  --theme-color1: var(--tum-secondary);
  --theme-color2: var(--tum-primary);
  --theme-color3: var(--tum-accent);
  --theme-color4: var(--tum-tertiary);

  --sch-green:      var(--tum-primary);
  --sch-green-dark: var(--tum-primary-dark);
  --sch-gold:       var(--tum-accent);
  --sch-ink:        var(--tum-ink);
  --sch-sand:       var(--tum-surface);

  --cos-green:      var(--tum-primary);
  --cos-green-dark: var(--tum-primary-dark);
  --cos-gold:       var(--tum-accent);
  --cos-ink:        var(--tum-ink);

  --pri-green:      var(--tum-primary);
  /* Was always declared equal to the green, never actually darker —
     kept that way so nothing that hovers with it changes shade. */
  --pri-green-dark: var(--tum-primary);
  --pri-gold:       var(--tum-accent);
}

@charset "UTF-8";/*!
 * Bootstrap v5.0.0-beta1 (https://getbootstrap.com/)
 * Copyright 2011-2020 The Bootstrap Authors
 * Copyright 2011-2020 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
 */:root{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-primary:#0d6efd;--bs-secondary:#6c757d;--bs-success:#198754;--bs-info:#0dcaf0;--bs-warning:#ffc107;--bs-danger:#dc3545;--bs-light:#f8f9fa;--bs-dark:#212529;--bs-font-sans-serif:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--bs-font-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--bs-gradient:linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0))}*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--bs-font-sans-serif);font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}hr{margin:1rem 0;color:inherit;background-color:currentColor;border:0;opacity:.25}hr:not([size]){height:1px}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){.h1,h1{font-size:2.5rem}}.h2,h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){.h2,h2{font-size:2rem}}.h3,h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){.h3,h3{font-size:1.75rem}}.h4,h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){.h4,h4{font-size:1.5rem}}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[data-bs-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}.small,small{font-size:.875em}.mark,mark{padding:.2em;background-color:#fcf8e3}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#0d6efd;text-decoration:underline}a:hover{color:#0a58ca}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:var(--bs-font-monospace);font-size:1em;direction:ltr;unicode-bidi:bidi-override}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:#d63384;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:.875em;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:1em;font-weight:700}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:#6c757d;text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus{outline:dotted 1px;outline:-webkit-focus-ring-color auto 5px}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}[list]::-webkit-calendar-picker-indicator{display:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-6{font-size:2.5rem}}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:.875em;color:#6c757d}.blockquote-footer::before{content:"— "}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:.875em;color:#6c757d}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{width:100%;padding-right:var(--bs-gutter-x,.75rem);padding-left:var(--bs-gutter-x,.75rem);margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}@media (min-width:1400px){.container,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{max-width:1320px}}.row{--bs-gutter-x:2rem;--bs-gutter-y:0;display:flex;flex-wrap:wrap;margin-top:calc(var(--bs-gutter-y) * -1);margin-right:calc(var(--bs-gutter-x)/ -2);margin-left:calc(var(--bs-gutter-x)/ -2)}.row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x)/ 2);padding-left:calc(var(--bs-gutter-x)/ 2);margin-top:var(--bs-gutter-y)}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.6666666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.3333333333%}.col-2{flex:0 0 auto;width:16.6666666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.3333333333%}.col-5{flex:0 0 auto;width:41.6666666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.3333333333%}.col-8{flex:0 0 auto;width:66.6666666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.3333333333%}.col-11{flex:0 0 auto;width:91.6666666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.3333333333%}.offset-2{margin-left:16.6666666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.3333333333%}.offset-5{margin-left:41.6666666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.3333333333%}.offset-8{margin-left:66.6666666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.3333333333%}.offset-11{margin-left:91.6666666667%}.g-0,.gx-0{--bs-gutter-x:0}.g-0,.gy-0{--bs-gutter-y:0}.g-1,.gx-1{--bs-gutter-x:0.25rem}.g-1,.gy-1{--bs-gutter-y:0.25rem}.g-2,.gx-2{--bs-gutter-x:0.5rem}.g-2,.gy-2{--bs-gutter-y:0.5rem}.g-3,.gx-3{--bs-gutter-x:1rem}.g-3,.gy-3{--bs-gutter-y:1rem}.g-4,.gx-4{--bs-gutter-x:1.5rem}.g-4,.gy-4{--bs-gutter-y:1.5rem}.g-5,.gx-5{--bs-gutter-x:3rem}.g-5,.gy-5{--bs-gutter-y:3rem}@media (min-width:576px){.col-sm{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.6666666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.3333333333%}.col-sm-2{flex:0 0 auto;width:16.6666666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.3333333333%}.col-sm-5{flex:0 0 auto;width:41.6666666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.3333333333%}.col-sm-8{flex:0 0 auto;width:66.6666666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.3333333333%}.col-sm-11{flex:0 0 auto;width:91.6666666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.3333333333%}.offset-sm-2{margin-left:16.6666666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.3333333333%}.offset-sm-5{margin-left:41.6666666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.3333333333%}.offset-sm-8{margin-left:66.6666666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.3333333333%}.offset-sm-11{margin-left:91.6666666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x:0}.g-sm-0,.gy-sm-0{--bs-gutter-y:0}.g-sm-1,.gx-sm-1{--bs-gutter-x:0.25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y:0.25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x:0.5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y:0.5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x:1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y:1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x:1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y:1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x:3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y:3rem}}@media (min-width:768px){.col-md{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.6666666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.3333333333%}.col-md-2{flex:0 0 auto;width:16.6666666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.3333333333%}.col-md-5{flex:0 0 auto;width:41.6666666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.3333333333%}.col-md-8{flex:0 0 auto;width:66.6666666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.3333333333%}.col-md-11{flex:0 0 auto;width:91.6666666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.3333333333%}.offset-md-2{margin-left:16.6666666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.3333333333%}.offset-md-5{margin-left:41.6666666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.3333333333%}.offset-md-8{margin-left:66.6666666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.3333333333%}.offset-md-11{margin-left:91.6666666667%}.g-md-0,.gx-md-0{--bs-gutter-x:0}.g-md-0,.gy-md-0{--bs-gutter-y:0}.g-md-1,.gx-md-1{--bs-gutter-x:0.25rem}.g-md-1,.gy-md-1{--bs-gutter-y:0.25rem}.g-md-2,.gx-md-2{--bs-gutter-x:0.5rem}.g-md-2,.gy-md-2{--bs-gutter-y:0.5rem}.g-md-3,.gx-md-3{--bs-gutter-x:1rem}.g-md-3,.gy-md-3{--bs-gutter-y:1rem}.g-md-4,.gx-md-4{--bs-gutter-x:1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y:1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x:3rem}.g-md-5,.gy-md-5{--bs-gutter-y:3rem}}@media (min-width:992px){.col-lg{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.6666666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.3333333333%}.col-lg-2{flex:0 0 auto;width:16.6666666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.3333333333%}.col-lg-5{flex:0 0 auto;width:41.6666666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.3333333333%}.col-lg-8{flex:0 0 auto;width:66.6666666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.3333333333%}.col-lg-11{flex:0 0 auto;width:91.6666666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.3333333333%}.offset-lg-2{margin-left:16.6666666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.3333333333%}.offset-lg-5{margin-left:41.6666666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.3333333333%}.offset-lg-8{margin-left:66.6666666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.3333333333%}.offset-lg-11{margin-left:91.6666666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x:0}.g-lg-0,.gy-lg-0{--bs-gutter-y:0}.g-lg-1,.gx-lg-1{--bs-gutter-x:0.25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y:0.25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x:0.5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y:0.5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x:1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y:1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x:1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y:1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x:3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y:3rem}}@media (min-width:1200px){.col-xl{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.3333333333%}.col-xl-2{flex:0 0 auto;width:16.6666666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.3333333333%}.col-xl-5{flex:0 0 auto;width:41.6666666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.3333333333%}.col-xl-8{flex:0 0 auto;width:66.6666666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.3333333333%}.col-xl-11{flex:0 0 auto;width:91.6666666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.3333333333%}.offset-xl-2{margin-left:16.6666666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.3333333333%}.offset-xl-5{margin-left:41.6666666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.3333333333%}.offset-xl-8{margin-left:66.6666666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.3333333333%}.offset-xl-11{margin-left:91.6666666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x:0}.g-xl-0,.gy-xl-0{--bs-gutter-y:0}.g-xl-1,.gx-xl-1{--bs-gutter-x:0.25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y:0.25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x:0.5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y:0.5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x:1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y:1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x:1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y:1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x:3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y:3rem}}@media (min-width:1400px){.col-xxl{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.3333333333%}.col-xxl-2{flex:0 0 auto;width:16.6666666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.3333333333%}.col-xxl-5{flex:0 0 auto;width:41.6666666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.3333333333%}.col-xxl-8{flex:0 0 auto;width:66.6666666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.3333333333%}.col-xxl-11{flex:0 0 auto;width:91.6666666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.3333333333%}.offset-xxl-2{margin-left:16.6666666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.3333333333%}.offset-xxl-5{margin-left:41.6666666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.3333333333%}.offset-xxl-8{margin-left:66.6666666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.3333333333%}.offset-xxl-11{margin-left:91.6666666667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x:0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y:0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x:0.25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y:0.25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x:0.5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y:0.5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x:1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y:1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x:1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y:1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x:3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y:3rem}}.table{--bs-table-bg:transparent;--bs-table-striped-color:#212529;--bs-table-striped-bg:rgba(0, 0, 0, 0.05);--bs-table-active-color:#212529;--bs-table-active-bg:rgba(0, 0, 0, 0.1);--bs-table-hover-color:#212529;--bs-table-hover-bg:rgba(0, 0, 0, 0.075);width:100%;margin-bottom:1rem;color:#212529;vertical-align:top;border-color:#dee2e6}.table>:not(caption)>*>*{padding:.5rem .5rem;background-color:var(--bs-table-bg);background-image:linear-gradient(var(--bs-table-accent-bg),var(--bs-table-accent-bg));border-bottom-width:1px}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table>:not(:last-child)>:last-child>*{border-bottom-color:currentColor}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem .25rem}.table-bordered>:not(caption)>*{border-width:1px 0}.table-bordered>:not(caption)>*>*{border-width:0 1px}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-striped>tbody>tr:nth-of-type(odd){--bs-table-accent-bg:var(--bs-table-striped-bg);color:var(--bs-table-striped-color)}.table-active{--bs-table-accent-bg:var(--bs-table-active-bg);color:var(--bs-table-active-color)}.table-hover>tbody>tr:hover{--bs-table-accent-bg:var(--bs-table-hover-bg);color:var(--bs-table-hover-color)}.table-primary{--bs-table-bg:#cfe2ff;--bs-table-striped-bg:#c5d7f2;--bs-table-striped-color:#000;--bs-table-active-bg:#bacbe6;--bs-table-active-color:#000;--bs-table-hover-bg:#bfd1ec;--bs-table-hover-color:#000;color:#000;border-color:#bacbe6}.table-secondary{--bs-table-bg:#e2e3e5;--bs-table-striped-bg:#d7d8da;--bs-table-striped-color:#000;--bs-table-active-bg:#cbccce;--bs-table-active-color:#000;--bs-table-hover-bg:#d1d2d4;--bs-table-hover-color:#000;color:#000;border-color:#cbccce}.table-success{--bs-table-bg:#d1e7dd;--bs-table-striped-bg:#c7dbd2;--bs-table-striped-color:#000;--bs-table-active-bg:#bcd0c7;--bs-table-active-color:#000;--bs-table-hover-bg:#c1d6cc;--bs-table-hover-color:#000;color:#000;border-color:#bcd0c7}.table-info{--bs-table-bg:#cff4fc;--bs-table-striped-bg:#c5e8ef;--bs-table-striped-color:#000;--bs-table-active-bg:#badce3;--bs-table-active-color:#000;--bs-table-hover-bg:#bfe2e9;--bs-table-hover-color:#000;color:#000;border-color:#badce3}.table-warning{--bs-table-bg:#fff3cd;--bs-table-striped-bg:#f2e7c3;--bs-table-striped-color:#000;--bs-table-active-bg:#e6dbb9;--bs-table-active-color:#000;--bs-table-hover-bg:#ece1be;--bs-table-hover-color:#000;color:#000;border-color:#e6dbb9}.table-danger{--bs-table-bg:#f8d7da;--bs-table-striped-bg:#eccccf;--bs-table-striped-color:#000;--bs-table-active-bg:#dfc2c4;--bs-table-active-color:#000;--bs-table-hover-bg:#e5c7ca;--bs-table-hover-color:#000;color:#000;border-color:#dfc2c4}.table-light{--bs-table-bg:#f8f9fa;--bs-table-striped-bg:#ecedee;--bs-table-striped-color:#000;--bs-table-active-bg:#dfe0e1;--bs-table-active-color:#000;--bs-table-hover-bg:#e5e6e7;--bs-table-hover-color:#000;color:#000;border-color:#dfe0e1}.table-dark{--bs-table-bg:#212529;--bs-table-striped-bg:#2c3034;--bs-table-striped-color:#fff;--bs-table-active-bg:#373b3e;--bs-table-active-color:#fff;--bs-table-hover-bg:#323539;--bs-table-hover-color:#fff;color:#fff;border-color:#373b3e}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width:575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label{margin-bottom:.5rem}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem}.form-text{margin-top:.25rem;font-size:.875em;color:#6c757d}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:#212529;background-color:#fff;border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-control::-webkit-date-and-time-value{height:1.5em}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}.form-control::file-selector-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:#212529;background-color:#e9ecef;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:#dde0e3}.form-control::-webkit-file-upload-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:#212529;background-color:#e9ecef;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::-webkit-file-upload-button{-webkit-transition:none;transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:#dde0e3}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-sm::-webkit-file-upload-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}.form-control-lg::-webkit-file-upload-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + .75rem + 2px)}textarea.form-control-sm{min-height:calc(1.5em + .5rem + 2px)}textarea.form-control-lg{min-height:calc(1.5em + 1rem + 2px)}.form-control-color{max-width:3rem;height:auto;padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{height:1.5em;border-radius:.25rem}.form-control-color::-webkit-color-swatch{height:1.5em;border-radius:.25rem}.form-select{display:block;width:100%;padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;vertical-align:middle;background-color:#fff;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-select:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{color:#6c757d;background-color:#e9ecef}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #212529}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.form-check{display:block;min-height:1.5rem;padding-left:1.5em;margin-bottom:.125rem}.form-check .form-check-input{float:left;margin-left:-1.5em}.form-check-input{width:1em;height:1em;margin-top:.25em;vertical-align:top;background-color:#fff;background-repeat:no-repeat;background-position:center;background-size:contain;border:1px solid rgba(0,0,0,.25);-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;color-adjust:exact;transition:background-color .15s ease-in-out,background-position .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-check-input{transition:none}}.form-check-input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-check-input:checked{background-color:#0d6efd;border-color:#0d6efd}.form-check-input:checked[type=checkbox]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3l6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate{background-color:#0d6efd;border-color:#0d6efd;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{opacity:.5}.form-switch{padding-left:2.5em}.form-switch .form-check-input{width:2em;margin-left:-2.5em;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");background-position:left center;border-radius:2em}.form-switch .form-check-input:focus{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.btn-check:disabled+.btn,.btn-check[disabled]+.btn{pointer-events:none;filter:none;opacity:.65}.form-range{width:100%;height:1.5rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#0d6efd;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#b6d4fe}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#0d6efd;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-range::-moz-range-thumb{-moz-transition:none;transition:none}}.form-range::-moz-range-thumb:active{background-color:#b6d4fe}.form-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.form-range:disabled::-moz-range-thumb{background-color:#adb5bd}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-select{height:calc(3.5rem + 2px);padding:1rem .75rem}.form-floating>label{position:absolute;top:0;left:0;height:100%;padding:1rem .75rem;pointer-events:none;border:1px solid transparent;transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media (prefers-reduced-motion:reduce){.form-floating>label{transition:none}}.form-floating>.form-control::-webkit-input-placeholder{color:transparent}.form-floating>.form-control::-moz-placeholder{color:transparent}.form-floating>.form-control::placeholder{color:transparent}.form-floating>.form-control:not(:-moz-placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:not(:-moz-placeholder-shown)~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-select~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:-webkit-autofill~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-select{position:relative;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-select:focus{z-index:3}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:3}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-lg>.btn,.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.input-group-sm>.btn,.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text{padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:1.75rem}.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu){border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#198754}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:rgba(25,135,84,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#198754;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#198754;box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-valid,.was-validated .form-select:valid{border-color:#198754;padding-right:calc(.75em + 2.3125rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-position:right .75rem center,center right 1.75rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-valid:focus,.was-validated .form-select:valid:focus{border-color:#198754;box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.form-check-input.is-valid,.was-validated .form-check-input:valid{border-color:#198754}.form-check-input.is-valid:checked,.was-validated .form-check-input:valid:checked{background-color:#198754}.form-check-input.is-valid:focus,.was-validated .form-check-input:valid:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#198754}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-invalid,.was-validated .form-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-position:right .75rem center,center right 1.75rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-invalid:focus,.was-validated .form-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.form-check-input.is-invalid,.was-validated .form-check-input:invalid{border-color:#dc3545}.form-check-input.is-invalid:checked,.was-validated .form-check-input:invalid:checked{background-color:#dc3545}.form-check-input.is-invalid:focus,.was-validated .form-check-input:invalid:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.btn{display:inline-block;font-weight:400;line-height:1.5;color:#212529;text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529}.btn-check:focus+.btn,.btn:focus{outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.btn.disabled,.btn:disabled,fieldset:disabled .btn{pointer-events:none;opacity:.65}.btn-primary{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-primary:hover{color:#fff;background-color:#0b5ed7;border-color:#0a58ca}.btn-check:focus+.btn-primary,.btn-primary:focus{color:#fff;background-color:#0b5ed7;border-color:#0a58ca;box-shadow:0 0 0 .25rem rgba(49,132,253,.5)}.btn-check:active+.btn-primary,.btn-check:checked+.btn-primary,.btn-primary.active,.btn-primary:active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0a58ca;border-color:#0a53be}.btn-check:active+.btn-primary:focus,.btn-check:checked+.btn-primary:focus,.btn-primary.active:focus,.btn-primary:active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(49,132,253,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5c636a;border-color:#565e64}.btn-check:focus+.btn-secondary,.btn-secondary:focus{color:#fff;background-color:#5c636a;border-color:#565e64;box-shadow:0 0 0 .25rem rgba(130,138,145,.5)}.btn-check:active+.btn-secondary,.btn-check:checked+.btn-secondary,.btn-secondary.active,.btn-secondary:active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#565e64;border-color:#51585e}.btn-check:active+.btn-secondary:focus,.btn-check:checked+.btn-secondary:focus,.btn-secondary.active:focus,.btn-secondary:active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-success{color:#fff;background-color:#198754;border-color:#198754}.btn-success:hover{color:#fff;background-color:#157347;border-color:#146c43}.btn-check:focus+.btn-success,.btn-success:focus{color:#fff;background-color:#157347;border-color:#146c43;box-shadow:0 0 0 .25rem rgba(60,153,110,.5)}.btn-check:active+.btn-success,.btn-check:checked+.btn-success,.btn-success.active,.btn-success:active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#146c43;border-color:#13653f}.btn-check:active+.btn-success:focus,.btn-check:checked+.btn-success:focus,.btn-success.active:focus,.btn-success:active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(60,153,110,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#198754;border-color:#198754}.btn-info{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-info:hover{color:#000;background-color:#31d2f2;border-color:#25cff2}.btn-check:focus+.btn-info,.btn-info:focus{color:#000;background-color:#31d2f2;border-color:#25cff2;box-shadow:0 0 0 .25rem rgba(11,172,204,.5)}.btn-check:active+.btn-info,.btn-check:checked+.btn-info,.btn-info.active,.btn-info:active,.show>.btn-info.dropdown-toggle{color:#000;background-color:#3dd5f3;border-color:#25cff2}.btn-check:active+.btn-info:focus,.btn-check:checked+.btn-info:focus,.btn-info.active:focus,.btn-info:active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(11,172,204,.5)}.btn-info.disabled,.btn-info:disabled{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-warning{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#000;background-color:#ffca2c;border-color:#ffc720}.btn-check:focus+.btn-warning,.btn-warning:focus{color:#000;background-color:#ffca2c;border-color:#ffc720;box-shadow:0 0 0 .25rem rgba(217,164,6,.5)}.btn-check:active+.btn-warning,.btn-check:checked+.btn-warning,.btn-warning.active,.btn-warning:active,.show>.btn-warning.dropdown-toggle{color:#000;background-color:#ffcd39;border-color:#ffc720}.btn-check:active+.btn-warning:focus,.btn-check:checked+.btn-warning:focus,.btn-warning.active:focus,.btn-warning:active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(217,164,6,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#bb2d3b;border-color:#b02a37}.btn-check:focus+.btn-danger,.btn-danger:focus{color:#fff;background-color:#bb2d3b;border-color:#b02a37;box-shadow:0 0 0 .25rem rgba(225,83,97,.5)}.btn-check:active+.btn-danger,.btn-check:checked+.btn-danger,.btn-danger.active,.btn-danger:active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#b02a37;border-color:#a52834}.btn-check:active+.btn-danger:focus,.btn-check:checked+.btn-danger:focus,.btn-danger.active:focus,.btn-danger:active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-light{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#000;background-color:#f9fafb;border-color:#f9fafb}.btn-check:focus+.btn-light,.btn-light:focus{color:#000;background-color:#f9fafb;border-color:#f9fafb;box-shadow:0 0 0 .25rem rgba(211,212,213,.5)}.btn-check:active+.btn-light,.btn-check:checked+.btn-light,.btn-light.active,.btn-light:active,.show>.btn-light.dropdown-toggle{color:#000;background-color:#f9fafb;border-color:#f9fafb}.btn-check:active+.btn-light:focus,.btn-check:checked+.btn-light:focus,.btn-light.active:focus,.btn-light:active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(211,212,213,.5)}.btn-light.disabled,.btn-light:disabled{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-dark{color:#fff;background-color:#212529;border-color:#212529}.btn-dark:hover{color:#fff;background-color:#1c1f23;border-color:#1a1e21}.btn-check:focus+.btn-dark,.btn-dark:focus{color:#fff;background-color:#1c1f23;border-color:#1a1e21;box-shadow:0 0 0 .25rem rgba(66,70,73,.5)}.btn-check:active+.btn-dark,.btn-check:checked+.btn-dark,.btn-dark.active,.btn-dark:active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1a1e21;border-color:#191c1f}.btn-check:active+.btn-dark:focus,.btn-check:checked+.btn-dark:focus,.btn-dark.active:focus,.btn-dark:active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(66,70,73,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#212529;border-color:#212529}.btn-outline-primary{color:#0d6efd;border-color:#0d6efd}.btn-outline-primary:hover{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-check:focus+.btn-outline-primary,.btn-outline-primary:focus{box-shadow:0 0 0 .25rem rgba(13,110,253,.5)}.btn-check:active+.btn-outline-primary,.btn-check:checked+.btn-outline-primary,.btn-outline-primary.active,.btn-outline-primary.dropdown-toggle.show,.btn-outline-primary:active{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-check:active+.btn-outline-primary:focus,.btn-check:checked+.btn-outline-primary:focus,.btn-outline-primary.active:focus,.btn-outline-primary.dropdown-toggle.show:focus,.btn-outline-primary:active:focus{box-shadow:0 0 0 .25rem rgba(13,110,253,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#0d6efd;background-color:transparent}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-check:focus+.btn-outline-secondary,.btn-outline-secondary:focus{box-shadow:0 0 0 .25rem rgba(108,117,125,.5)}.btn-check:active+.btn-outline-secondary,.btn-check:checked+.btn-outline-secondary,.btn-outline-secondary.active,.btn-outline-secondary.dropdown-toggle.show,.btn-outline-secondary:active{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-check:active+.btn-outline-secondary:focus,.btn-check:checked+.btn-outline-secondary:focus,.btn-outline-secondary.active:focus,.btn-outline-secondary.dropdown-toggle.show:focus,.btn-outline-secondary:active:focus{box-shadow:0 0 0 .25rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-success{color:#198754;border-color:#198754}.btn-outline-success:hover{color:#fff;background-color:#198754;border-color:#198754}.btn-check:focus+.btn-outline-success,.btn-outline-success:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,.5)}.btn-check:active+.btn-outline-success,.btn-check:checked+.btn-outline-success,.btn-outline-success.active,.btn-outline-success.dropdown-toggle.show,.btn-outline-success:active{color:#fff;background-color:#198754;border-color:#198754}.btn-check:active+.btn-outline-success:focus,.btn-check:checked+.btn-outline-success:focus,.btn-outline-success.active:focus,.btn-outline-success.dropdown-toggle.show:focus,.btn-outline-success:active:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#198754;background-color:transparent}.btn-outline-info{color:#0dcaf0;border-color:#0dcaf0}.btn-outline-info:hover{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-check:focus+.btn-outline-info,.btn-outline-info:focus{box-shadow:0 0 0 .25rem rgba(13,202,240,.5)}.btn-check:active+.btn-outline-info,.btn-check:checked+.btn-outline-info,.btn-outline-info.active,.btn-outline-info.dropdown-toggle.show,.btn-outline-info:active{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-check:active+.btn-outline-info:focus,.btn-check:checked+.btn-outline-info:focus,.btn-outline-info.active:focus,.btn-outline-info.dropdown-toggle.show:focus,.btn-outline-info:active:focus{box-shadow:0 0 0 .25rem rgba(13,202,240,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#0dcaf0;background-color:transparent}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-check:focus+.btn-outline-warning,.btn-outline-warning:focus{box-shadow:0 0 0 .25rem rgba(255,193,7,.5)}.btn-check:active+.btn-outline-warning,.btn-check:checked+.btn-outline-warning,.btn-outline-warning.active,.btn-outline-warning.dropdown-toggle.show,.btn-outline-warning:active{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-check:active+.btn-outline-warning:focus,.btn-check:checked+.btn-outline-warning:focus,.btn-outline-warning.active:focus,.btn-outline-warning.dropdown-toggle.show:focus,.btn-outline-warning:active:focus{box-shadow:0 0 0 .25rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-check:focus+.btn-outline-danger,.btn-outline-danger:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,.5)}.btn-check:active+.btn-outline-danger,.btn-check:checked+.btn-outline-danger,.btn-outline-danger.active,.btn-outline-danger.dropdown-toggle.show,.btn-outline-danger:active{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-check:active+.btn-outline-danger:focus,.btn-check:checked+.btn-outline-danger:focus,.btn-outline-danger.active:focus,.btn-outline-danger.dropdown-toggle.show:focus,.btn-outline-danger:active:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-check:focus+.btn-outline-light,.btn-outline-light:focus{box-shadow:0 0 0 .25rem rgba(248,249,250,.5)}.btn-check:active+.btn-outline-light,.btn-check:checked+.btn-outline-light,.btn-outline-light.active,.btn-outline-light.dropdown-toggle.show,.btn-outline-light:active{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-check:active+.btn-outline-light:focus,.btn-check:checked+.btn-outline-light:focus,.btn-outline-light.active:focus,.btn-outline-light.dropdown-toggle.show:focus,.btn-outline-light:active:focus{box-shadow:0 0 0 .25rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-dark{color:#212529;border-color:#212529}.btn-outline-dark:hover{color:#fff;background-color:#212529;border-color:#212529}.btn-check:focus+.btn-outline-dark,.btn-outline-dark:focus{box-shadow:0 0 0 .25rem rgba(33,37,41,.5)}.btn-check:active+.btn-outline-dark,.btn-check:checked+.btn-outline-dark,.btn-outline-dark.active,.btn-outline-dark.dropdown-toggle.show,.btn-outline-dark:active{color:#fff;background-color:#212529;border-color:#212529}.btn-check:active+.btn-outline-dark:focus,.btn-check:checked+.btn-outline-dark:focus,.btn-outline-dark.active:focus,.btn-outline-dark.dropdown-toggle.show:focus,.btn-outline-dark:active:focus{box-shadow:0 0 0 .25rem rgba(33,37,41,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#212529;background-color:transparent}.btn-link{font-weight:400;color:#0d6efd;text-decoration:underline}.btn-link:hover{color:#0a58ca}.btn-link.disabled,.btn-link:disabled{color:#6c757d}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropend,.dropstart,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu[style]{right:auto!important}.dropdown-menu-start{--bs-position:start;right:auto;left:0}.dropdown-menu-end{--bs-position:end;right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-start{--bs-position:start;right:auto;left:0}.dropdown-menu-sm-end{--bs-position:end;right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-start{--bs-position:start;right:auto;left:0}.dropdown-menu-md-end{--bs-position:end;right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-start{--bs-position:start;right:auto;left:0}.dropdown-menu-lg-end{--bs-position:end;right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-start{--bs-position:start;right:auto;left:0}.dropdown-menu-xl-end{--bs-position:end;right:0;left:auto}}@media (min-width:1400px){.dropdown-menu-xxl-start{--bs-position:start;right:auto;left:0}.dropdown-menu-xxl-end{--bs-position:end;right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropend .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropend .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-toggle::after{vertical-align:0}.dropstart .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropstart .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle::after{display:none}.dropstart .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropstart .dropdown-toggle:empty::after{margin-left:0}.dropstart .dropdown-toggle::before{vertical-align:0}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid rgba(0,0,0,.15)}.dropdown-item{display:block;width:100%;padding:.25rem 1rem;clear:both;font-weight:400;color:#212529;text-align:inherit;text-decoration:none;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#1e2125;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#0d6efd}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1rem;color:#212529}.dropdown-menu-dark{color:#dee2e6;background-color:#343a40;border-color:rgba(0,0,0,.15)}.dropdown-menu-dark .dropdown-item{color:#dee2e6}.dropdown-menu-dark .dropdown-item:focus,.dropdown-menu-dark .dropdown-item:hover{color:#fff;background-color:rgba(255,255,255,.15)}.dropdown-menu-dark .dropdown-item.active,.dropdown-menu-dark .dropdown-item:active{color:#fff;background-color:#0d6efd}.dropdown-menu-dark .dropdown-item.disabled,.dropdown-menu-dark .dropdown-item:disabled{color:#adb5bd}.dropdown-menu-dark .dropdown-divider{border-color:rgba(0,0,0,.15)}.dropdown-menu-dark .dropdown-item-text{color:#dee2e6}.dropdown-menu-dark .dropdown-header{color:#adb5bd}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropend .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropstart .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn~.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem;text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media (prefers-reduced-motion:reduce){.nav-link{transition:none}}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-link{margin-bottom:-1px;border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#0d6efd}.nav-fill .nav-item,.nav-fill>.nav-link{flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{flex-basis:0;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding-top:.5rem;padding-bottom:.5rem}.navbar>.container,.navbar>.container-fluid,.navbar>.container-lg,.navbar>.container-md,.navbar>.container-sm,.navbar>.container-xl,.navbar>.container-xxl{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.navbar-brand{padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;text-decoration:none;white-space:nowrap}.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{align-items:center;width:100%}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem;transition:box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 .25rem}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-repeat:no-repeat;background-position:center;background-size:100%}@media (min-width:576px){.navbar-expand-sm{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm .navbar-collapse{display:flex!important}.navbar-expand-sm .navbar-toggler{display:none}}@media (min-width:768px){.navbar-expand-md{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md .navbar-collapse{display:flex!important}.navbar-expand-md .navbar-toggler{display:none}}@media (min-width:992px){.navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg .navbar-collapse{display:flex!important}.navbar-expand-lg .navbar-toggler{display:none}}@media (min-width:1200px){.navbar-expand-xl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl .navbar-collapse{display:flex!important}.navbar-expand-xl .navbar-toggler{display:none}}@media (min-width:1400px){.navbar-expand-xxl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xxl .navbar-collapse{display:flex!important}.navbar-expand-xxl .navbar-toggler{display:none}}.navbar-expand{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand .navbar-collapse{display:flex!important}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.55)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.55);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:rgba(0,0,0,.55)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.55)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.55);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:rgba(255,255,255,.55)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;padding:1rem 1rem}.card-title{margin-bottom:.5rem}.card-subtitle{margin-top:-.25rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1rem}.card-header{padding:.5rem 1rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-footer{padding:.5rem 1rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.5rem;margin-bottom:-.5rem;margin-left:-.5rem;border-bottom:0}.card-header-pills{margin-right:-.5rem;margin-left:-.5rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1rem;border-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom,.card-img-top{width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-group>.card{margin-bottom:.75rem}@media (min-width:576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.accordion-button{position:relative;display:flex;align-items:center;width:100%;padding:1rem 1.25rem;font-size:1rem;color:#212529;background-color:transparent;border:1px solid rgba(0,0,0,.125);border-radius:0;overflow-anchor:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,border-radius .15s ease}@media (prefers-reduced-motion:reduce){.accordion-button{transition:none}}.accordion-button.collapsed{border-bottom-width:0}.accordion-button:not(.collapsed){color:#0c63e4;background-color:#e7f1ff}.accordion-button:not(.collapsed)::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%230c63e4'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");transform:rotate(180deg)}.accordion-button::after{flex-shrink:0;width:1.25rem;height:1.25rem;margin-left:auto;content:"";background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-size:1.25rem;transition:transform .2s ease-in-out}@media (prefers-reduced-motion:reduce){.accordion-button::after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.accordion-header{margin-bottom:0}.accordion-item:first-of-type .accordion-button{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.accordion-item:last-of-type .accordion-button.collapsed{border-bottom-width:1px;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.accordion-item:last-of-type .accordion-collapse{border-bottom-width:1px;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.accordion-collapse{border:solid rgba(0,0,0,.125);border-width:0 1px}.accordion-body{padding:1rem 1.25rem}.accordion-flush .accordion-button{border-right:0;border-left:0;border-radius:0}.accordion-flush .accordion-collapse{border-width:0}.accordion-flush .accordion-item:first-of-type .accordion-button{border-top-width:0;border-top-left-radius:0;border-top-right-radius:0}.accordion-flush .accordion-item:last-of-type .accordion-button.collapsed{border-bottom-width:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.breadcrumb{display:flex;flex-wrap:wrap;padding:0 0;margin-bottom:1rem;list-style:none}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:.5rem;color:#6c757d;content:var(--bs-breadcrumb-divider, "/")}.breadcrumb-item.active{color:#6c757d}.pagination{display:flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;color:#0d6efd;text-decoration:none;background-color:#fff;border:1px solid #dee2e6;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:#0a58ca;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;color:#0a58ca;background-color:#e9ecef;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.page-item:not(:first-child) .page-link{margin-left:-1px}.page-item.active .page-link{z-index:3;color:#fff;background-color:#0d6efd;border-color:#0d6efd}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;background-color:#fff;border-color:#dee2e6}.page-link{padding:.375rem .75rem}.page-item:first-child .page-link{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.35em .65em;font-size:.75em;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{position:relative;padding:1rem 1rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-primary{color:#084298;background-color:#cfe2ff;border-color:#b6d4fe}.alert-primary .alert-link{color:#06357a}.alert-secondary{color:#41464b;background-color:#e2e3e5;border-color:#d3d6d8}.alert-secondary .alert-link{color:#34383c}.alert-success{color:#0f5132;background-color:#d1e7dd;border-color:#badbcc}.alert-success .alert-link{color:#0c4128}.alert-info{color:#055160;background-color:#cff4fc;border-color:#b6effb}.alert-info .alert-link{color:#04414d}.alert-warning{color:#664d03;background-color:#fff3cd;border-color:#ffecb5}.alert-warning .alert-link{color:#523e02}.alert-danger{color:#842029;background-color:#f8d7da;border-color:#f5c2c7}.alert-danger .alert-link{color:#6a1a21}.alert-light{color:#636464;background-color:#fefefe;border-color:#fdfdfe}.alert-light .alert-link{color:#4f5050}.alert-dark{color:#141619;background-color:#d3d3d4;border-color:#bcbebf}.alert-dark .alert-link{color:#101214}@-webkit-keyframes progress-bar-stripes{0%{background-position-x:1rem}}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress{display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:#fff;text-align:center;white-space:nowrap;background-color:#0d6efd;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:1s linear infinite progress-bar-stripes;animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:.25rem}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.5rem 1rem;text-decoration:none;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#0d6efd;border-color:#0d6efd}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1400px){.list-group-horizontal-xxl{flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#084298;background-color:#cfe2ff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#084298;background-color:#bacbe6}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#084298;border-color:#084298}.list-group-item-secondary{color:#41464b;background-color:#e2e3e5}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#41464b;background-color:#cbccce}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#41464b;border-color:#41464b}.list-group-item-success{color:#0f5132;background-color:#d1e7dd}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#0f5132;background-color:#bcd0c7}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#0f5132;border-color:#0f5132}.list-group-item-info{color:#055160;background-color:#cff4fc}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#055160;background-color:#badce3}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#055160;border-color:#055160}.list-group-item-warning{color:#664d03;background-color:#fff3cd}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#664d03;background-color:#e6dbb9}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#664d03;border-color:#664d03}.list-group-item-danger{color:#842029;background-color:#f8d7da}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#842029;background-color:#dfc2c4}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#842029;border-color:#842029}.list-group-item-light{color:#636464;background-color:#fefefe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#636464;background-color:#e5e5e5}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#636464;border-color:#636464}.list-group-item-dark{color:#141619;background-color:#d3d3d4}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#141619;background-color:#bebebf}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#141619;border-color:#141619}.btn-close{box-sizing:content-box;width:1em;height:1em;padding:.25em .25em;color:#000;background:transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat;border:0;border-radius:.25rem;opacity:.5}.btn-close:hover{color:#000;text-decoration:none;opacity:.75}.btn-close:focus{outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25);opacity:1}.btn-close.disabled,.btn-close:disabled{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;opacity:.25}.btn-close-white{filter:invert(1) grayscale(100%) brightness(200%)}.toast{width:350px;max-width:100%;font-size:.875rem;pointer-events:auto;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .5rem 1rem rgba(0,0,0,.15);border-radius:.25rem}.toast:not(.showing):not(.show){opacity:0}.toast.hide{display:none}.toast-container{width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:.75rem}.toast-header{display:flex;align-items:center;padding:.5rem .75rem;color:#6c757d;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05);border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.toast-header .btn-close{margin-right:-.375rem;margin-left:.75rem}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1rem)}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .btn-close{padding:.5rem .5rem;margin:-.5rem -.5rem -.5rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;flex:1 1 auto;padding:1rem}.modal-footer{display:flex;flex-wrap:wrap;flex-shrink:0;align-items:center;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{height:calc(100% - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-header{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}.modal-fullscreen .modal-footer{border-radius:0}@media (max-width:575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-header{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}.modal-fullscreen-sm-down .modal-footer{border-radius:0}}@media (max-width:767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-header{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}.modal-fullscreen-md-down .modal-footer{border-radius:0}}@media (max-width:991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-header{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}.modal-fullscreen-lg-down .modal-footer{border-radius:0}}@media (max-width:1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-header{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}.modal-fullscreen-xl-down .modal-footer{border-radius:0}}@media (max-width:1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-header{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}.modal-fullscreen-xxl-down .modal-footer{border-radius:0}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .tooltip-arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .tooltip-arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[data-popper-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow,.bs-tooltip-top .tooltip-arrow{bottom:0}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before,.bs-tooltip-top .tooltip-arrow::before{top:-1px;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[data-popper-placement^=right],.bs-tooltip-end{padding:0 .4rem}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow,.bs-tooltip-end .tooltip-arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before,.bs-tooltip-end .tooltip-arrow::before{right:-1px;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[data-popper-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow,.bs-tooltip-bottom .tooltip-arrow{top:0}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before,.bs-tooltip-bottom .tooltip-arrow::before{bottom:-1px;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[data-popper-placement^=left],.bs-tooltip-start{padding:0 .4rem}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow,.bs-tooltip-start .tooltip-arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before,.bs-tooltip-start .tooltip-arrow::before{left:-1px;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .popover-arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .popover-arrow::after,.popover .popover-arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[data-popper-placement^=top],.bs-popover-top{margin-bottom:.5rem!important}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow,.bs-popover-top>.popover-arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before,.bs-popover-top>.popover-arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after,.bs-popover-top>.popover-arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[data-popper-placement^=right],.bs-popover-end{margin-left:.5rem!important}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow,.bs-popover-end>.popover-arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before,.bs-popover-end>.popover-arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after,.bs-popover-end>.popover-arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[data-popper-placement^=bottom],.bs-popover-bottom{margin-top:.5rem!important}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow,.bs-popover-bottom>.popover-arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after,.bs-popover-bottom>.popover-arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[data-popper-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f0f0f0}.bs-popover-auto[data-popper-placement^=left],.bs-popover-start{margin-right:.5rem!important}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow,.bs-popover-start>.popover-arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before,.bs-popover-start>.popover-arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after,.bs-popover-start>.popover-arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem 1rem;margin-bottom:0;font-size:1rem;background-color:#f0f0f0;border-bottom:1px solid #d8d8d8;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:1rem 1rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-end,.carousel-item-next:not(.carousel-item-start){transform:translateX(100%)}.active.carousel-item-start,.carousel-item-prev:not(.carousel-item-end){transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-next-icon,.carousel-dark .carousel-control-prev-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators li{background-color:#000}.carousel-dark .carousel-caption{color:#000}@-webkit-keyframes spinner-border{to{transform:rotate(360deg)}}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;-webkit-animation:.75s linear infinite spinner-border;animation:.75s linear infinite spinner-border}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:.75s linear infinite spinner-grow;animation:.75s linear infinite spinner-grow}.spinner-grow-sm{width:1rem;height:1rem}@media (prefers-reduced-motion:reduce){.spinner-border,.spinner-grow{-webkit-animation-duration:1.5s;animation-duration:1.5s}}.clearfix::after{display:block;clear:both;content:""}.link-primary{color:#0d6efd}.link-primary:focus,.link-primary:hover{color:#0a58ca}.link-secondary{color:#6c757d}.link-secondary:focus,.link-secondary:hover{color:#565e64}.link-success{color:#198754}.link-success:focus,.link-success:hover{color:#146c43}.link-info{color:#0dcaf0}.link-info:focus,.link-info:hover{color:#3dd5f3}.link-warning{color:#ffc107}.link-warning:focus,.link-warning:hover{color:#ffcd39}.link-danger{color:#dc3545}.link-danger:focus,.link-danger:hover{color:#b02a37}.link-light{color:#f8f9fa}.link-light:focus,.link-light:hover{color:#f9fafb}.link-dark{color:#212529}.link-dark:focus,.link-dark:hover{color:#1a1e21}.ratio{position:relative;width:100%}.ratio::before{display:block;padding-top:var(--aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--aspect-ratio:100%}.ratio-4x3{--aspect-ratio:calc(3 / 4 * 100%)}.ratio-16x9{--aspect-ratio:calc(9 / 16 * 100%)}.ratio-21x9{--aspect-ratio:calc(9 / 21 * 100%)}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}@media (min-width:576px){.sticky-sm-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:768px){.sticky-md-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:992px){.sticky-lg-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:1200px){.sticky-xl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:1400px){.sticky-xxl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.visually-hidden,.visually-hidden-focusable:not(:focus){position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.float-start{float:left!important}.float-end{float:right!important}.float-none{float:none!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-visible{overflow:visible!important}.overflow-scroll{overflow:scroll!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.top-0{top:0!important}.top-50{top:50%!important}.top-100{top:100%!important}.bottom-0{bottom:0!important}.bottom-50{bottom:50%!important}.bottom-100{bottom:100%!important}.start-0{left:0!important}.start-50{left:50%!important}.start-100{left:100%!important}.end-0{right:0!important}.end-50{right:50%!important}.end-100{right:100%!important}.translate-middle{transform:translate(-50%,-50%)!important}.translate-middle-x{transform:translateX(-50%)!important}.translate-middle-y{transform:translateY(-50%)!important}.border{border:1px solid #dee2e6!important}.border-0{border:0!important}.border-top{border-top:1px solid #dee2e6!important}.border-top-0{border-top:0!important}.border-end{border-right:1px solid #dee2e6!important}.border-end-0{border-right:0!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-bottom-0{border-bottom:0!important}.border-start{border-left:1px solid #dee2e6!important}.border-start-0{border-left:0!important}.border-primary{border-color:#0d6efd!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#198754!important}.border-info{border-color:#0dcaf0!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#212529!important}.border-white{border-color:#fff!important}.border-0{border-width:0!important}.border-1{border-width:1px!important}.border-2{border-width:2px!important}.border-3{border-width:3px!important}.border-4{border-width:4px!important}.border-5{border-width:5px!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.mw-100{max-width:100%!important}.vw-100{width:100vw!important}.min-vw-100{min-width:100vw!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mh-100{max-height:100%!important}.vh-100{height:100vh!important}.min-vh-100{min-height:100vh!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-0{gap:0!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.gap-3{gap:1rem!important}.gap-4{gap:1.5rem!important}.gap-5{gap:3rem!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-right:0!important;margin-left:0!important}.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-5{margin-right:3rem!important;margin-left:3rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:3rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:3rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-right:0!important;padding-left:0!important}.px-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-5{padding-right:3rem!important;padding-left:3rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:3rem!important}.fs-1{font-size:calc(1.375rem + 1.5vw)!important}.fs-2{font-size:calc(1.325rem + .9vw)!important}.fs-3{font-size:calc(1.3rem + .6vw)!important}.fs-4{font-size:calc(1.275rem + .3vw)!important}.fs-5{font-size:1.25rem!important}.fs-6{font-size:1rem!important}.fst-italic{font-style:italic!important}.fst-normal{font-style:normal!important}.fw-light{font-weight:300!important}.fw-lighter{font-weight:lighter!important}.fw-normal{font-weight:400!important}.fw-bold{font-weight:700!important}.fw-bolder{font-weight:bolder!important}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.text-start{text-align:left!important}.text-end{text-align:right!important}.text-center{text-align:center!important}.text-primary{color:#0d6efd!important}.text-secondary{color:#6c757d!important}.text-success{color:#198754!important}.text-info{color:#0dcaf0!important}.text-warning{color:#ffc107!important}.text-danger{color:#dc3545!important}.text-light{color:#f8f9fa!important}.text-dark{color:#212529!important}.text-white{color:#fff!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:rgba(255,255,255,.5)!important}.text-reset{color:inherit!important}.lh-1{line-height:1!important}.lh-sm{line-height:1.25!important}.lh-base{line-height:1.5!important}.lh-lg{line-height:2!important}.bg-primary{background-color:#0d6efd!important}.bg-secondary{background-color:#6c757d!important}.bg-success{background-color:#198754!important}.bg-info{background-color:#0dcaf0!important}.bg-warning{background-color:#ffc107!important}.bg-danger{background-color:#dc3545!important}.bg-light{background-color:#f8f9fa!important}.bg-dark{background-color:#212529!important}.bg-body{background-color:#fff!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.bg-gradient{background-image:var(--bs-gradient)!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-decoration-none{text-decoration:none!important}.text-decoration-underline{text-decoration:underline!important}.text-decoration-line-through{text-decoration:line-through!important}.text-break{word-wrap:break-word!important;word-break:break-word!important}.font-monospace{font-family:var(--bs-font-monospace)!important}.user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}.pe-none{pointer-events:none!important}.pe-auto{pointer-events:auto!important}.rounded{border-radius:.25rem!important}.rounded-0{border-radius:0!important}.rounded-1{border-radius:.2rem!important}.rounded-2{border-radius:.25rem!important}.rounded-3{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-end{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-start{border-bottom-left-radius:.25rem!important;border-top-left-radius:.25rem!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media (min-width:576px){.float-sm-start{float:left!important}.float-sm-end{float:right!important}.float-sm-none{float:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-sm-0{gap:0!important}.gap-sm-1{gap:.25rem!important}.gap-sm-2{gap:.5rem!important}.gap-sm-3{gap:1rem!important}.gap-sm-4{gap:1.5rem!important}.gap-sm-5{gap:3rem!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-right:0!important;margin-left:0!important}.mx-sm-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-sm-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-sm-3{margin-right:1rem!important;margin-left:1rem!important}.mx-sm-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-sm-5{margin-right:3rem!important;margin-left:3rem!important}.mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-sm-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-5{margin-right:3rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-5{margin-left:3rem!important}.ms-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-right:0!important;padding-left:0!important}.px-sm-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-sm-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-sm-3{padding-right:1rem!important;padding-left:1rem!important}.px-sm-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-sm-5{padding-right:3rem!important;padding-left:3rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-sm-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-5{padding-right:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-5{padding-left:3rem!important}.text-sm-start{text-align:left!important}.text-sm-end{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.float-md-start{float:left!important}.float-md-end{float:right!important}.float-md-none{float:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-md-0{gap:0!important}.gap-md-1{gap:.25rem!important}.gap-md-2{gap:.5rem!important}.gap-md-3{gap:1rem!important}.gap-md-4{gap:1.5rem!important}.gap-md-5{gap:3rem!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-right:0!important;margin-left:0!important}.mx-md-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-md-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-md-3{margin-right:1rem!important;margin-left:1rem!important}.mx-md-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-md-5{margin-right:3rem!important;margin-left:3rem!important}.mx-md-auto{margin-right:auto!important;margin-left:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-md-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-5{margin-right:3rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-5{margin-left:3rem!important}.ms-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-right:0!important;padding-left:0!important}.px-md-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-md-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-md-3{padding-right:1rem!important;padding-left:1rem!important}.px-md-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-md-5{padding-right:3rem!important;padding-left:3rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-md-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-5{padding-right:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-5{padding-left:3rem!important}.text-md-start{text-align:left!important}.text-md-end{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.float-lg-start{float:left!important}.float-lg-end{float:right!important}.float-lg-none{float:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-lg-0{gap:0!important}.gap-lg-1{gap:.25rem!important}.gap-lg-2{gap:.5rem!important}.gap-lg-3{gap:1rem!important}.gap-lg-4{gap:1.5rem!important}.gap-lg-5{gap:3rem!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-right:0!important;margin-left:0!important}.mx-lg-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-lg-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-lg-3{margin-right:1rem!important;margin-left:1rem!important}.mx-lg-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-lg-5{margin-right:3rem!important;margin-left:3rem!important}.mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-lg-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-5{margin-right:3rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-5{margin-left:3rem!important}.ms-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-right:0!important;padding-left:0!important}.px-lg-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-lg-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-lg-3{padding-right:1rem!important;padding-left:1rem!important}.px-lg-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-lg-5{padding-right:3rem!important;padding-left:3rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-lg-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-5{padding-right:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-5{padding-left:3rem!important}.text-lg-start{text-align:left!important}.text-lg-end{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.float-xl-start{float:left!important}.float-xl-end{float:right!important}.float-xl-none{float:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-xl-0{gap:0!important}.gap-xl-1{gap:.25rem!important}.gap-xl-2{gap:.5rem!important}.gap-xl-3{gap:1rem!important}.gap-xl-4{gap:1.5rem!important}.gap-xl-5{gap:3rem!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-right:0!important;margin-left:0!important}.mx-xl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-5{margin-right:3rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-5{margin-left:3rem!important}.ms-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-right:0!important;padding-left:0!important}.px-xl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-5{padding-right:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-5{padding-left:3rem!important}.text-xl-start{text-align:left!important}.text-xl-end{text-align:right!important}.text-xl-center{text-align:center!important}}@media (min-width:1400px){.float-xxl-start{float:left!important}.float-xxl-end{float:right!important}.float-xxl-none{float:none!important}.d-xxl-inline{display:inline!important}.d-xxl-inline-block{display:inline-block!important}.d-xxl-block{display:block!important}.d-xxl-grid{display:grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-xxl-0{gap:0!important}.gap-xxl-1{gap:.25rem!important}.gap-xxl-2{gap:.5rem!important}.gap-xxl-3{gap:1rem!important}.gap-xxl-4{gap:1.5rem!important}.gap-xxl-5{gap:3rem!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:1.5rem!important}.m-xxl-5{margin:3rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-right:0!important;margin-left:0!important}.mx-xxl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xxl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xxl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xxl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xxl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xxl-auto{margin-right:auto!important;margin-left:auto!important}.my-xxl-0{margin-top:0!important;margin-bottom:0!important}.my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xxl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xxl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-5{margin-top:3rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-right:0!important}.me-xxl-1{margin-right:.25rem!important}.me-xxl-2{margin-right:.5rem!important}.me-xxl-3{margin-right:1rem!important}.me-xxl-4{margin-right:1.5rem!important}.me-xxl-5{margin-right:3rem!important}.me-xxl-auto{margin-right:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:1.5rem!important}.mb-xxl-5{margin-bottom:3rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-left:0!important}.ms-xxl-1{margin-left:.25rem!important}.ms-xxl-2{margin-left:.5rem!important}.ms-xxl-3{margin-left:1rem!important}.ms-xxl-4{margin-left:1.5rem!important}.ms-xxl-5{margin-left:3rem!important}.ms-xxl-auto{margin-left:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:1.5rem!important}.p-xxl-5{padding:3rem!important}.px-xxl-0{padding-right:0!important;padding-left:0!important}.px-xxl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xxl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xxl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xxl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xxl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xxl-0{padding-top:0!important;padding-bottom:0!important}.py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xxl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xxl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-5{padding-top:3rem!important}.pe-xxl-0{padding-right:0!important}.pe-xxl-1{padding-right:.25rem!important}.pe-xxl-2{padding-right:.5rem!important}.pe-xxl-3{padding-right:1rem!important}.pe-xxl-4{padding-right:1.5rem!important}.pe-xxl-5{padding-right:3rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-5{padding-bottom:3rem!important}.ps-xxl-0{padding-left:0!important}.ps-xxl-1{padding-left:.25rem!important}.ps-xxl-2{padding-left:.5rem!important}.ps-xxl-3{padding-left:1rem!important}.ps-xxl-4{padding-left:1.5rem!important}.ps-xxl-5{padding-left:3rem!important}.text-xxl-start{text-align:left!important}.text-xxl-end{text-align:right!important}.text-xxl-center{text-align:center!important}}@media (min-width:1200px){.fs-1{font-size:2.5rem!important}.fs-2{font-size:2rem!important}.fs-3{font-size:1.75rem!important}.fs-4{font-size:1.5rem!important}.fs-sm-1{font-size:2.5rem!important}.fs-sm-2{font-size:2rem!important}.fs-sm-3{font-size:1.75rem!important}.fs-sm-4{font-size:1.5rem!important}.fs-md-1{font-size:2.5rem!important}.fs-md-2{font-size:2rem!important}.fs-md-3{font-size:1.75rem!important}.fs-md-4{font-size:1.5rem!important}.fs-lg-1{font-size:2.5rem!important}.fs-lg-2{font-size:2rem!important}.fs-lg-3{font-size:1.75rem!important}.fs-lg-4{font-size:1.5rem!important}}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}}
/*# sourceMappingURL=bootstrap.min.css.map */
/* =====================================================
   Cosmos · TUM main university website theme on StudyPress (Bootstrap 5)
   Loaded LAST. Brand: green #097b3e / gold #d89837 / ink #16261d

   Two layers live here:
     1) A shared component library on the TUM palette (cards, ledgers,
        toolbars, prose, footer …) authored under the `sch-` namespace and
        reused verbatim by the main site — the class names are inert CSS and
        the palette is identical, so there is no need to re-skin them.
     2) Main-site chrome (`cos-` namespace): the 2-row floating header,
        institutional mega-menu, hero carousel and home sections — appended at
        the bottom of this file.
   ===================================================== */

/* overflow-x: clip (not hidden) keeps `position: sticky` working — `hidden`
   on <body> turns it into a scroll container and breaks the sticky navbar. */
body { font-family: "Manrope", -apple-system, "Segoe UI", system-ui, sans-serif; color: var(--sch-ink); overflow-x: clip; }

/* Full-screen layout — containers span the viewport with comfortable gutters
   (mirrors the PRI theme; not a fixed boxed width). */
.container, .container-lg, .container-md, .container-sm, .container-xl, .container-xxl {
  max-width: 100% !important;
  width: 100%;
  padding-left: clamp(1rem, 4vw, 4.5rem);
  padding-right: clamp(1rem, 4vw, 4.5rem);
}

a { text-decoration: none; }
section { padding-block: 80px; }
.bg-sand { background: var(--sch-sand); }
.text-green { color: var(--sch-green) !important; }
.text-gold { color: var(--sch-gold) !important; }

/* ---- Section heading ------------------------------------------------- */
.sch-eyebrow { display: inline-block; font-size: 13px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--sch-gold); margin-bottom: 12px; }
.sch-heading { font-family: "Fraunces", Georgia, serif; font-weight: 600; color: var(--sch-ink); line-height: 1.15; }
/* StudyPress `.section-title` headings render in the serif display face too,
   matching the PRI theme so inner-page titles share one type voice. */
.section-title h2, h2.line-bottom { font-family: "Fraunces", Georgia, serif; }
.sch-heading.h-lg { font-size: clamp(28px, 3.4vw, 44px); }
.sch-lead { color: #54605a; font-size: 17px; line-height: 1.7; }

/* ---- Top utility bar -------------------------------------------------- */
.sch-topbar { background: var(--sch-green-dark); color: rgba(255,255,255,.8); font-size: 13px; }
.sch-topbar a { color: rgba(255,255,255,.85); }
.sch-topbar a:hover { color: var(--sch-gold); }
.sch-topbar .info { margin: 0; padding: 9px 0; list-style: none; display: flex; flex-wrap: wrap; gap: 4px 24px; }
.sch-topbar .info i { color: var(--sch-gold); margin-right: 7px; }
.sch-topbar .socials { margin: 0; padding: 6px 0; list-style: none; display: inline-flex; gap: 8px; }
.sch-topbar .socials a { display: inline-flex; width: 30px; height: 30px; align-items: center; justify-content: center; border: 1px solid rgba(255,255,255,.22); border-radius: 50%; }
.sch-topbar .socials a:hover { background: var(--sch-gold); border-color: var(--sch-gold); color: var(--sch-ink); }
.sch-topbar .mainlink { font-weight: 600; color: var(--sch-gold) !important; white-space: nowrap; }
.sch-topbar .mainlink:hover { color: #fff !important; }

/* ---- Bootstrap 5 navbar (replaces menuzord) -------------------------- */
.sch-navbar {
  background: #fff;
  box-shadow: 0 2px 14px rgba(5, 45, 23, .07);
  border-bottom: 3px solid var(--sch-gold);
  position: sticky; top: 0; z-index: 1030;
  transition: box-shadow .25s ease, padding .25s ease;
}
.sch-navbar.is-stuck { box-shadow: 0 6px 22px rgba(5, 45, 23, .14); }
.sch-navbar .navbar-brand { display: flex; align-items: center; gap: 12px; padding: 10px 0; }
.sch-navbar .brand-mark {
  width: 48px; height: 48px; border-radius: 12px; flex-shrink: 0;
  display: inline-flex; align-items: center; justify-content: center;
  background: linear-gradient(135deg, var(--sch-green), var(--sch-green-dark));
  color: var(--sch-gold); font-family: "Fraunces", Georgia, serif; font-style: italic; font-weight: 600; font-size: 22px;
}
.sch-navbar .brand-logo {
  height: 52px; width: 52px; max-width: 220px; object-fit: contain; flex-shrink: 0;
  border-radius: 12px; padding: 4px; background: #fff;
  border: 2px solid var(--sch-gold); box-shadow: 0 0 0 2px color-mix(in srgb, var(--tum-accent) 25%, transparent);
}
.sch-navbar .brand-name { font-family: "Fraunces", Georgia, serif; font-size: 18px; line-height: 1.05; color: var(--sch-ink); display: block; }
.sch-navbar .brand-sub { font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: #8a9a90; display: block; }
.sch-navbar .navbar-nav .nav-link {
  font-weight: 600; font-size: 14.5px; color: #1d2a22; text-transform: uppercase; letter-spacing: .02em;
  padding: 28px 13px; position: relative;
}
.sch-navbar .navbar-nav .nav-link::after {
  content: ""; position: absolute; left: 13px; right: 13px; bottom: 18px; height: 2px;
  background: var(--sch-gold); transform: scaleX(0); transform-origin: left; transition: transform .2s ease;
}
.sch-navbar .navbar-nav .nav-link:hover,
.sch-navbar .navbar-nav .nav-link.active { color: var(--sch-green); }
.sch-navbar .navbar-nav .nav-link:hover::after,
.sch-navbar .navbar-nav .nav-link.active::after { transform: scaleX(1); }
.sch-navbar .navbar-nav .nav-link.is-disabled { color: #b7c0ba; pointer-events: none; cursor: default; }
.sch-navbar .nav-cta-btn { background: var(--sch-green); color: #fff !important; border-radius: 999px; padding: 11px 24px; font-weight: 600; font-size: 13.5px; }
.sch-navbar .nav-cta-btn:hover { background: var(--sch-green-dark); }
@media (max-width: 991.98px) {
  .sch-navbar .navbar-nav .nav-link { padding: 11px 0; border-bottom: 1px solid #eee; }
  .sch-navbar .navbar-nav .nav-link::after { display: none; }
  .sch-navbar .navbar-collapse { padding-bottom: 14px; }
  .sch-navbar .nav-cta-btn { display: inline-block; margin-top: 12px; }
}

/* ---- Hero ------------------------------------------------------------ */
.sch-hero { position: relative; color: #fff; overflow: hidden; background: linear-gradient(120deg, var(--sch-green-dark), var(--sch-green)); }
.sch-hero::before { content: ""; position: absolute; inset: 0; background: linear-gradient(120deg, rgba(6,40,22,.92), color-mix(in srgb, var(--tum-primary) 78%, transparent)); z-index: 1; }
.sch-hero .container { position: relative; z-index: 2; }
.sch-hero-inner { padding: clamp(70px, 11vw, 140px) 0; max-width: 760px; }
.sch-hero .kicker { display: inline-flex; align-items: center; gap: 9px; font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--sch-gold); margin-bottom: 18px; }
.sch-hero .kicker::before { content: ""; width: 30px; height: 2px; background: var(--sch-gold); }
.sch-hero h1 { font-family: "Fraunces", Georgia, serif; font-weight: 600; font-size: clamp(34px, 5.2vw, 60px); line-height: 1.05; margin: 0 0 20px; }
.sch-hero p { font-size: clamp(16px, 1.7vw, 20px); color: rgba(255,255,255,.88); max-width: 60ch; margin: 0 0 30px; }
.sch-hero .hero-actions { display: flex; flex-wrap: wrap; gap: 14px; }

.btn-gold { background: var(--sch-gold); color: var(--sch-ink) !important; border: 0; border-radius: 999px; padding: 14px 30px; font-weight: 700; font-size: 15px; transition: transform .15s ease, background .2s ease; }
.btn-gold:hover { background: #e6a948; transform: translateY(-2px); }
.btn-ghost { background: transparent; color: #fff !important; border: 1.5px solid rgba(255,255,255,.5); border-radius: 999px; padding: 13px 28px; font-weight: 600; font-size: 15px; transition: border-color .2s ease, background .2s ease; }
.btn-ghost:hover { border-color: #fff; background: rgba(255,255,255,.1); }
.btn-green { background: var(--sch-green); color: #fff !important; border: 0; border-radius: 999px; padding: 13px 28px; font-weight: 600; font-size: 15px; }
.btn-green:hover { background: var(--sch-green-dark); transform: translateY(-2px); }

/* ---- Hero stat strip ------------------------------------------------- */
.sch-stats { background: #fff; border: 1px solid #e9efe9; border-radius: 16px; box-shadow: 0 18px 40px rgba(5,45,23,.1); margin-top: -54px; position: relative; z-index: 3; }
.sch-stats .stat { padding: 28px 22px; text-align: center; }
.sch-stats .stat + .stat { border-left: 1px solid #eef3ef; }
.sch-stats .num { font-family: "Fraunces", Georgia, serif; font-weight: 600; font-size: 36px; color: var(--sch-green); line-height: 1; }
.sch-stats .lbl { font-size: 13px; letter-spacing: .05em; text-transform: uppercase; color: #686f69; margin-top: 8px; }
@media (max-width: 767.98px){ .sch-stats .stat + .stat { border-left: 0; border-top: 1px solid #eef3ef; } }

/* ---- Page title band (inner pages) ---------------------------------- */
.sch-pagetitle { position: relative; color: #fff; background: linear-gradient(120deg, var(--sch-green-dark), var(--sch-green)); overflow: hidden; }
.sch-pagetitle::before { content: ""; position: absolute; inset: 0; background: linear-gradient(120deg, rgba(6,40,22,.9), color-mix(in srgb, var(--tum-primary) 70%, transparent)); z-index: 1; }
.sch-pagetitle .container { position: relative; z-index: 2; padding-block: clamp(54px, 8vw, 96px); }
.sch-pagetitle h1 { font-family: "Fraunces", Georgia, serif; font-weight: 600; font-size: clamp(28px, 4vw, 46px); margin: 0; }
.sch-pagetitle .crumbs { margin: 12px 0 0; font-size: 14px; color: rgba(255,255,255,.78); }
.sch-pagetitle .crumbs a { color: var(--sch-gold); }
.sch-pagetitle .crumbs .sep { margin: 0 8px; opacity: .6; }

/* ---- Feature / "why study here" cards -------------------------------- */
.sch-feature {
  background: #fff; border: 1px solid #e9efe9; border-radius: 14px; height: 100%;
  padding: 34px 28px; transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.sch-feature:hover { transform: translateY(-6px); box-shadow: 0 18px 36px rgba(5,45,23,.1); border-color: var(--sch-gold); }
.sch-feature .ico { width: 60px; height: 60px; border-radius: 14px; display: inline-flex; align-items: center; justify-content: center; background: #e5f1ea; color: var(--sch-green); font-size: 28px; margin-bottom: 20px; }
.sch-feature h4 { font-family: "Fraunces", Georgia, serif; margin: 0 0 10px; font-size: 20px; }
.sch-feature p { color: #5a655d; margin: 0; }

/* ---- Department / programme teaser cards ---------------------------- */
.sch-dept {
  position: relative; display: flex; flex-direction: column; height: 100%;
  background: #fff; border: 1px solid #e9efe9; border-radius: 14px; overflow: hidden;
  transition: transform .25s ease, box-shadow .25s ease;
}
.sch-dept:hover { transform: translateY(-5px); box-shadow: 0 16px 34px rgba(5,45,23,.12); }
.sch-dept .top { height: 8px; background: linear-gradient(90deg, var(--sch-green), var(--sch-gold)); }
.sch-dept .body { padding: 26px 24px; display: flex; flex-direction: column; flex: 1; }
.sch-dept h5 { font-family: "Fraunces", Georgia, serif; font-size: 19px; margin: 0 0 10px; color: var(--sch-ink); }
.sch-dept p { color: #5a655d; font-size: 14.5px; margin: 0 0 16px; }
.sch-dept .more { margin-top: auto; font-weight: 600; font-size: 13px; text-transform: uppercase; letter-spacing: .04em; color: var(--sch-green); }
.sch-dept .more i { transition: transform .2s ease; }
.sch-dept:hover .more i { transform: translateX(4px); }

/* ---- Dean / welcome split ------------------------------------------- */
.sch-welcome-img { border-radius: 16px; overflow: hidden; position: relative; box-shadow: 0 24px 50px rgba(5,45,23,.18); }
.sch-welcome-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sch-welcome-ph { aspect-ratio: 4/5; display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, var(--sch-green), var(--sch-green-dark)); color: var(--sch-gold); font-family: "Fraunces", Georgia, serif; font-style: italic; font-size: 88px; }
.sch-welcome blockquote { font-family: "Fraunces", Georgia, serif; font-size: clamp(19px, 2.1vw, 24px); line-height: 1.5; color: var(--sch-ink); border: 0; margin: 0 0 22px; }
.sch-welcome .sign { display: flex; align-items: center; gap: 14px; }
.sch-welcome .sign .nm { font-family: "Fraunces", Georgia, serif; font-size: 18px; color: var(--sch-ink); }
.sch-welcome .sign .ro { font-size: 13px; text-transform: uppercase; letter-spacing: .05em; color: var(--sch-gold); }

/* ---- Vision / Mission tiles ----------------------------------------- */
.sch-vm { border-radius: 16px; padding: 38px 34px; height: 100%; color: #fff; }
.sch-vm.vis { background: linear-gradient(135deg, var(--sch-green), var(--sch-green-dark)); }
.sch-vm.mis { background: var(--sch-green-dark); }
.sch-vm .ico { font-size: 34px; color: var(--sch-gold); margin-bottom: 16px; display: block; }
.sch-vm h4 { font-family: "Fraunces", Georgia, serif; margin: 0 0 12px; font-size: 24px; }
.sch-vm p { margin: 0; color: rgba(255,255,255,.85); line-height: 1.7; }

/* ---- Numbered mandate / objectives ---------------------------------- */
.sch-obj { display: flex; gap: 20px; padding: 22px 0; border-bottom: 1px solid #ece6da; }
.sch-obj:last-child { border-bottom: 0; }
.sch-obj .n { font-family: "Fraunces", Georgia, serif; font-style: italic; font-size: 30px; color: var(--sch-gold); line-height: 1; flex-shrink: 0; min-width: 46px; }
.sch-obj h5 { font-family: "Fraunces", Georgia, serif; font-size: 18px; margin: 0 0 6px; color: var(--sch-ink); }
.sch-obj p { margin: 0; color: #5a655d; }

/* ---- Leadership card ------------------------------------------------- */
.sch-leader { background: #fff; border: 1px solid #e9efe9; border-radius: 16px; overflow: hidden; box-shadow: 0 14px 34px rgba(5,45,23,.08); }
.sch-leader .photo { aspect-ratio: 1/1; background: linear-gradient(135deg, var(--sch-green), var(--sch-green-dark)); color: var(--sch-gold); display: flex; align-items: center; justify-content: center; font-family: "Fraunces", Georgia, serif; font-style: italic; font-size: 64px; }
.sch-leader .photo img { width: 100%; height: 100%; object-fit: cover; }
.sch-leader .info { padding: 22px 24px; }
.sch-leader .info .nm { font-family: "Fraunces", Georgia, serif; font-size: 20px; color: var(--sch-ink); margin: 0 0 4px; }
.sch-leader .info .ro { font-size: 13px; text-transform: uppercase; letter-spacing: .05em; color: var(--sch-gold); margin: 0 0 12px; }
.sch-leader .info p { color: #5a655d; font-size: 14.5px; margin: 0; }

/* ---- CTA band (full-width, gold / theme-colored3 — mirrors PRI) ------- */
.sch-cta { background: linear-gradient(135deg, var(--sch-gold), #a8741f); color: #fff; padding-block: clamp(54px, 8vw, 96px); position: relative; overflow: hidden; }
.sch-cta h3 { font-family: "Fraunces", Georgia, serif; font-size: clamp(26px, 3.6vw, 40px); margin: 0 0 14px; color: #fff; }
.sch-cta p { color: rgba(255,255,255,.9); max-width: 56ch; margin: 0 0 28px; font-size: 17px; }

/* ---- Footer ---------------------------------------------------------- */
.sch-footer { background: var(--sch-green); color: rgba(255,255,255,.74); }
.sch-footer .container { padding-top: 70px; padding-bottom: 30px; }
.sch-footer h6 { color: #fff; font-family: "Fraunces", Georgia, serif; font-size: 17px; margin: 0 0 18px; }
.sch-footer a { color: rgba(255,255,255,.7); }
.sch-footer a:hover { color: var(--sch-gold); }
.sch-footer .flinks { list-style: none; padding: 0; margin: 0; }
.sch-footer .flinks li { margin-bottom: 10px; }
.sch-footer .brand-mark { width: 48px; height: 48px; border-radius: 12px; display: inline-flex; align-items: center; justify-content: center; background: var(--sch-gold); color: var(--sch-green-dark); font-family: "Fraunces", Georgia, serif; font-style: italic; font-size: 24px; }
.sch-footer .copyright a, .sch-footer p { color: rgba(255,255,255,.78); }
.sch-footer .socials { list-style: none; display: flex; gap: 8px; padding: 0; margin-top: 16px; }
.sch-footer .socials a { display: inline-flex; width: 36px; height: 36px; align-items: center; justify-content: center; border: 1px solid rgba(255,255,255,.18); border-radius: 50%; color: #fff; }
.sch-footer .socials a:hover { background: var(--sch-gold); border-color: var(--sch-gold); color: var(--sch-ink); }
.sch-footer .copyright { border-top: 1px solid rgba(255,255,255,.1); margin-top: 40px; padding-top: 24px; font-size: 13px; color: rgba(255,255,255,.55); }

/* ---- scrollToTop ----------------------------------------------------- */
.scrollToTop {
  position: fixed; right: 24px; bottom: 24px; width: 46px; height: 46px; z-index: 1000;
  background: var(--sch-green); color: #fff; border-radius: 50%; display: none;
  align-items: center; justify-content: center; opacity: .92;
}
.scrollToTop.show { display: inline-flex; }
.scrollToTop:hover { background: var(--sch-green-dark); color: #fff; }

/* =====================================================
   Inner content pages (departments, programmes, news,
   events, notices, downloads, staff, contact) — shared,
   responsive components on the green/gold palette.
   ===================================================== */

/* ---- Two-column content + sidebar layout ----------------------------- */
.sch-layout { display: grid; grid-template-columns: 1fr 330px; gap: 40px; align-items: start; }
@media (max-width: 991.98px){ .sch-layout { grid-template-columns: 1fr; } }
.sch-side { position: sticky; top: 110px; display: flex; flex-direction: column; gap: 24px; }
@media (max-width: 991.98px){ .sch-side { position: static; } }
.sch-widget { background: #fff; border: 1px solid #e9efe9; border-radius: 14px; padding: 22px 22px; }
.sch-widget h5 { font-family: "Fraunces", Georgia, serif; font-size: 18px; margin: 0 0 16px; color: var(--sch-ink); position: relative; padding-bottom: 12px; }
.sch-widget h5::after { content: ""; position: absolute; left: 0; bottom: 0; width: 44px; height: 3px; background: var(--sch-gold); border-radius: 3px; }
.sch-widget .wlist { list-style: none; padding: 0; margin: 0; }
.sch-widget .wlist li { border-bottom: 1px solid #eef2ee; }
.sch-widget .wlist li:last-child { border-bottom: 0; }
.sch-widget .wlist a { display: flex; justify-content: space-between; gap: 10px; padding: 10px 0; color: #3a443c; font-size: 14.5px; }
.sch-widget .wlist a:hover { color: var(--sch-green); }
.sch-widget .wlist .count { font-size: 12px; color: var(--sch-green); background: #e5f1ea; border-radius: 999px; padding: 1px 9px; align-self: center; }

/* ---- Search + filter toolbar ---------------------------------------- */
.sch-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; margin-bottom: 26px; }
.sch-search { position: relative; flex: 1 1 260px; max-width: 420px; }
.sch-search i { position: absolute; left: 16px; top: 50%; transform: translateY(-50%); color: #9aa79e; pointer-events: none; }
.sch-search input { width: 100%; height: 46px; padding: 0 16px 0 44px; border: 1px solid #dde6df; border-radius: 999px; background: #fff; font-size: 14.5px; color: var(--sch-ink); outline: none; transition: border-color .2s, box-shadow .2s; }
.sch-search input:focus { border-color: var(--sch-green); box-shadow: 0 0 0 3px color-mix(in srgb, var(--tum-primary) 12%, transparent); }
.sch-select { height: 46px; min-width: 190px; padding: 0 40px 0 16px; border: 1px solid #dde6df; border-radius: 999px; background: #fff; font-size: 14.5px; color: var(--sch-ink); cursor: pointer; outline: none; appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23097B3E' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 16px center; background-size: 16px; }
.sch-select:focus { border-color: var(--sch-green); box-shadow: 0 0 0 3px color-mix(in srgb, var(--tum-primary) 12%, transparent); }
.sch-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 24px; }
.sch-chip { display: inline-flex; align-items: center; gap: 7px; padding: 8px 15px; border: 1px solid #dde6df; border-radius: 999px; background: #fff; font-size: 13.5px; font-weight: 600; color: #3a443c; cursor: pointer; transition: all .18s; line-height: 1; }
.sch-chip:hover { border-color: var(--sch-green); color: var(--sch-green); }
.sch-chip.is-active { background: var(--sch-green); border-color: var(--sch-green); color: #fff; }
.sch-summary { font-size: 13.5px; color: #686f69; margin-bottom: 18px; }

/* ---- Card grid helper ------------------------------------------------ */
.sch-grid { display: grid; gap: 24px; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }

/* ---- News card ------------------------------------------------------- */
.sch-news-card { display: flex; flex-direction: column; background: #fff; border: 1px solid #e3ece6; border-radius: 14px; overflow: hidden; box-shadow: 0 8px 24px rgba(5,45,23,.06); transition: transform .2s, box-shadow .2s; height: 100%; }
.sch-news-card:hover { transform: translateY(-4px); box-shadow: 0 16px 36px rgba(5,45,23,.12); }
.sch-news-card .thumb { position: relative; display: block; height: 180px; background: #e5f1ea; overflow: hidden; }
.sch-news-card .thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s; }
.sch-news-card:hover .thumb img { transform: scale(1.05); }
.sch-news-card .thumb-ph { display: flex; width: 100%; height: 100%; align-items: center; justify-content: center; color: var(--sch-green); }
.sch-news-card .thumb-ph i { font-size: 46px; }
.sch-news-card .cat { position: absolute; left: 12px; top: 12px; background: var(--sch-gold); color: var(--sch-ink); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; border-radius: 6px; padding: 4px 10px; }
.sch-news-card .body { display: flex; flex-direction: column; flex: 1; padding: 18px; }
.sch-news-card .date { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; color: var(--sch-green); font-size: 12px; text-transform: uppercase; letter-spacing: .05em; margin-bottom: 8px; }
.sch-news-card .date .author { color: #686f69; font-weight: 600; }
.sch-news-card h4 { font-family: "Fraunces", Georgia, serif; font-size: 18px; line-height: 1.35; margin: 0 0 10px; }
.sch-news-card h4 a { color: var(--sch-ink); }
.sch-news-card h4 a:hover { color: var(--sch-green); }
.sch-news-card p { color: #5a655d; font-size: 14px; margin: 0 0 14px; }
.sch-news-card .more { margin: auto -18px -18px; display: flex; align-items: center; justify-content: space-between; padding: 11px 18px; border-top: 1px solid #e3ece6; background: #f6faf8; font-weight: 600; font-size: 13px; color: var(--sch-green); text-transform: uppercase; letter-spacing: .03em; transition: background .2s ease, color .2s ease; }
.sch-news-card .more i { transition: transform .2s; }
.sch-news-card:hover .more { background: var(--sch-green); color: #fff; }
.sch-news-card:hover .more i { transform: translateX(4px); }

/* ---- Event card ------------------------------------------------------ */
.sch-event-card { display: flex; flex-direction: column; background: #fff; border: 1px solid #e3ece6; border-radius: 14px; overflow: hidden; box-shadow: 0 8px 24px rgba(5,45,23,.06); transition: transform .2s, box-shadow .2s; height: 100%; }
.sch-event-card:hover { transform: translateY(-4px); box-shadow: 0 16px 36px rgba(5,45,23,.12); }
.sch-event-card .ec-top { position: relative; height: 150px; background: linear-gradient(135deg, var(--sch-green), var(--sch-green-dark)); display: flex; align-items: center; justify-content: center; color: rgba(255,255,255,.25); }
.sch-event-card .ec-top i { font-size: 52px; }
.sch-event-card .ec-date { position: absolute; left: 14px; bottom: 14px; background: #fff; color: var(--sch-green); border-radius: 10px; padding: 8px 12px; text-align: center; line-height: 1; box-shadow: 0 6px 16px rgba(5,45,23,.25); }
.sch-event-card .ec-date strong { display: block; font-size: 22px; font-family: "Fraunces", serif; }
.sch-event-card .ec-date small { display: block; font-size: 11px; text-transform: uppercase; letter-spacing: .05em; margin-top: 2px; color: var(--sch-gold); }
.sch-event-card .ec-tag { position: absolute; right: 14px; top: 14px; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; border-radius: 6px; padding: 4px 10px; background: var(--sch-gold); color: var(--sch-ink); }
.sch-event-card .ec-tag.past { background: rgba(255,255,255,.85); color: #5a655d; }
.sch-event-card .ec-body { display: flex; flex-direction: column; flex: 1; padding: 18px; }
.sch-event-card h4 { font-family: "Fraunces", Georgia, serif; font-size: 18px; line-height: 1.35; margin: 0 0 12px; }
.sch-event-card h4 a { color: var(--sch-ink); }
.sch-event-card h4 a:hover { color: var(--sch-green); }
.sch-event-card .ec-meta { list-style: none; padding: 0; margin: 0; font-size: 13.5px; color: #6a756c; }
.sch-event-card .ec-meta li { display: flex; align-items: flex-start; gap: 9px; margin-bottom: 7px; }
.sch-event-card .ec-meta i { color: var(--sch-gold); margin-top: 2px; flex-shrink: 0; }

/* ---- Programme card -------------------------------------------------- */
.sch-prog-card { display: flex; flex-direction: column; background: #fff; border: 1px solid #e9efe9; border-radius: 14px; overflow: hidden; transition: transform .2s, box-shadow .2s, border-color .2s; height: 100%; }
.sch-prog-card:hover { transform: translateY(-4px); box-shadow: 0 16px 34px rgba(5,45,23,.1); border-color: var(--sch-gold); }
.sch-prog-card .pc-body { padding: 24px; display: flex; flex-direction: column; flex: 1; }
.sch-prog-card .lvl { align-self: flex-start; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--sch-green); background: #e5f1ea; border-radius: 999px; padding: 4px 12px; margin-bottom: 14px; }
.sch-prog-card h4 { font-family: "Fraunces", Georgia, serif; font-size: 18px; line-height: 1.35; margin: 0 0 6px; color: var(--sch-ink); }
.sch-prog-card .dept { font-size: 13px; color: #686f69; margin: 0 0 16px; }
.sch-prog-card .pc-meta { list-style: none; padding: 0; margin: 0 0 18px; display: flex; flex-wrap: wrap; gap: 8px 16px; font-size: 13px; color: #5a655d; }
.sch-prog-card .pc-meta i { color: var(--sch-gold); margin-right: 6px; }
.sch-prog-card .pc-foot { margin-top: auto; display: flex; align-items: center; justify-content: space-between; }
.sch-prog-card .pc-foot .view { font-weight: 600; font-size: 13px; color: var(--sch-green); text-transform: uppercase; letter-spacing: .03em; }
.sch-prog-card .pc-foot .view i { transition: transform .2s; }
.sch-prog-card:hover .pc-foot .view i { transform: translateX(4px); }

/* ---- File / download row -------------------------------------------- */
.sch-file-cat { background: #fff; border: 1px solid #e9efe9; border-radius: 14px; padding: 22px 24px; margin-bottom: 22px; }
.sch-file-cat > h4 { font-family: "Fraunces", Georgia, serif; font-size: 19px; margin: 0 0 4px; color: var(--sch-ink); }
.sch-file-cat > p { color: #6a756c; font-size: 14px; margin: 0 0 16px; }
.sch-file-row { display: flex; align-items: center; gap: 14px; padding: 12px 14px; border: 1px solid #e9efe9; border-radius: 10px; background: #fff; margin-bottom: 9px; transition: box-shadow .2s, border-color .2s; }
.sch-file-row:last-child { margin-bottom: 0; }
.sch-file-row:hover { box-shadow: 0 6px 16px rgba(5,45,23,.07); border-color: #cfe3d6; }
.sch-file-row .fi { width: 40px; height: 40px; flex-shrink: 0; border-radius: 9px; display: flex; align-items: center; justify-content: center; background: #e5f1ea; color: var(--sch-green); font-size: 18px; }
.sch-file-row .name { font-size: 14.5px; line-height: 1.3; color: var(--sch-ink); }
.sch-file-row .meta { font-size: 11px; letter-spacing: .04em; text-transform: uppercase; color: #686f69; margin-top: 2px; }
.sch-file-row .dl { margin-left: auto; }

/* ---- Ledger rows (notices list) ------------------------------------- */
.sch-ledger { border-top: 1px solid #e6e0d4; }
.sch-ledger .row-item { display: grid; grid-template-columns: 96px 1fr auto; gap: 22px; align-items: center; padding: 20px 0; border-bottom: 1px solid #e6e0d4; }
.sch-ledger .row-item .date { font-size: 13px; color: var(--sch-gold); font-weight: 600; }
.sch-ledger .row-item .title a { font-family: "Fraunces", Georgia, serif; font-size: 17px; color: var(--sch-ink); }
.sch-ledger .row-item .title a:hover { color: var(--sch-green); }
.sch-ledger .row-item .pin { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--sch-green); background: #e5f1ea; border-radius: 6px; padding: 3px 9px; }
.sch-ledger .row-item .go { color: var(--sch-green); }
@media (max-width: 640px){ .sch-ledger .row-item { grid-template-columns: 1fr; gap: 6px; } .sch-ledger .row-item .go { display: none; } }

/* ---- Staff card ------------------------------------------------------ */
.sch-staff-card { background: #fff; border: 1px solid #eef3ef; border-radius: 14px; overflow: hidden; box-shadow: 0 6px 18px rgba(5,45,23,.05); transition: transform .2s, box-shadow .2s; height: 100%; text-align: center; }
.sch-staff-card:hover { transform: translateY(-4px); box-shadow: 0 14px 30px rgba(5,45,23,.1); }
.sch-staff-card .ph { aspect-ratio: 1/1; background: linear-gradient(135deg, var(--sch-green), var(--sch-green-dark)); color: var(--sch-gold); display: flex; align-items: center; justify-content: center; font-family: "Fraunces", serif; font-style: italic; font-size: 56px; }
.sch-staff-card .ph img { width: 100%; height: 100%; object-fit: cover; }
.sch-staff-card .info { padding: 18px 16px; }
.sch-staff-card .info .nm { font-family: "Fraunces", Georgia, serif; font-size: 17px; color: var(--sch-ink); margin: 0 0 4px; }
.sch-staff-card .info .ro { font-size: 12.5px; color: var(--sch-gold); text-transform: uppercase; letter-spacing: .04em; margin: 0 0 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sch-staff-socials { display: flex; justify-content: center; flex-wrap: wrap; gap: 6px; }
.sch-staff-socials a { width: 30px; height: 30px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: #f1f6f2; color: var(--sch-green); font-size: 13px; transition: background .2s, color .2s; }
.sch-staff-socials a:hover { background: var(--sch-green); color: #fff; }

/* ---- Prose / article body ------------------------------------------- */
.sch-prose { color: #3f4a43; font-size: 16px; line-height: 1.8; }
.sch-prose h2, .sch-prose h3, .sch-prose h4 { font-family: "Fraunces", Georgia, serif; color: var(--sch-ink); margin: 1.6em 0 .6em; }
.sch-prose p { margin: 0 0 1.1em; }
.sch-prose ul, .sch-prose ol { margin: 0 0 1.1em; padding-left: 1.3em; }
.sch-prose li { margin-bottom: .5em; }
.sch-prose img { max-width: 100%; height: auto; border-radius: 12px; }
.sch-prose a { color: var(--sch-green); text-decoration: underline; }

/* ---- Detail meta panel ---------------------------------------------- */
.sch-meta-panel { background: #fff; border: 1px solid #e9efe9; border-radius: 14px; padding: 8px 22px; }
.sch-meta-panel .mp-row { display: flex; align-items: center; gap: 12px; padding: 14px 0; border-bottom: 1px solid #eef2ee; }
.sch-meta-panel .mp-row:last-child { border-bottom: 0; }
.sch-meta-panel .mp-row i { width: 38px; height: 38px; flex-shrink: 0; border-radius: 9px; background: #e5f1ea; color: var(--sch-green); display: inline-flex; align-items: center; justify-content: center; }
.sch-meta-panel .mp-row .k { font-size: 12px; text-transform: uppercase; letter-spacing: .04em; color: #686f69; }
.sch-meta-panel .mp-row .v { font-size: 15px; color: var(--sch-ink); font-weight: 600; }

/* ---- Pagination ------------------------------------------------------ */
.sch-pager nav > ul, .sch-pager .pagination { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; padding: 0; margin: 40px 0 0; justify-content: center; }
.sch-pager .page-link { display: inline-flex; min-width: 42px; height: 42px; align-items: center; justify-content: center; padding: 0 12px; color: var(--sch-green); border: 1px solid #e0e6e0; border-radius: 9px; background: #fff; font-weight: 600; }
.sch-pager .page-link:hover { background: #e5f1ea; border-color: #cfe3d6; }
.sch-pager .active .page-link { background: var(--sch-green); border-color: var(--sch-green); color: #fff; }
.sch-pager .disabled .page-link { color: #c2cbc4; }

/* ---- Empty state ----------------------------------------------------- */
.sch-empty { text-align: center; padding: 70px 20px; color: #686f69; }
.sch-empty i { font-size: 50px; color: #d9e2db; margin-bottom: 16px; display: block; }
.sch-empty h4 { font-family: "Fraunces", Georgia, serif; color: #6a756c; margin: 0 0 6px; }

/* ---- Contact --------------------------------------------------------- */
.sch-contact-card { background: #fff; border: 1px solid #e9efe9; border-radius: 14px; padding: 30px; height: 100%; }
.sch-contact-card .ico { width: 54px; height: 54px; border-radius: 12px; background: #e5f1ea; color: var(--sch-green); display: inline-flex; align-items: center; justify-content: center; font-size: 24px; margin-bottom: 16px; }
.sch-form label { font-weight: 600; font-size: 14px; color: var(--sch-ink); margin-bottom: 6px; display: block; }
.sch-form .form-control { width: 100%; border: 1px solid #dde6df; border-radius: 10px; padding: 12px 14px; font-size: 14.5px; outline: none; transition: border-color .2s, box-shadow .2s; }
.sch-form .form-control:focus { border-color: var(--sch-green); box-shadow: 0 0 0 3px color-mix(in srgb, var(--tum-primary) 12%, transparent); }

/* =====================================================
   Home page extras (hero card, hero points, event mini)
   ===================================================== */
.sch-hero-points { list-style: none; padding: 0; margin: 30px 0 0; display: flex; flex-wrap: wrap; gap: 10px 26px; }
.sch-hero-points li { display: inline-flex; align-items: center; gap: 9px; color: rgba(255,255,255,.92); font-weight: 600; font-size: 14.5px; }
.sch-hero-points i { color: var(--sch-gold); }

.sch-hero-card { background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.2); border-radius: 18px; padding: 34px 30px; backdrop-filter: blur(6px); color: #fff; }
.sch-hero-card .hc-ico { width: 60px; height: 60px; border-radius: 14px; background: var(--sch-gold); color: var(--sch-green-dark); display: inline-flex; align-items: center; justify-content: center; font-size: 28px; margin-bottom: 18px; }
.sch-hero-card h3 { font-family: "Fraunces", Georgia, serif; font-size: 24px; margin: 0 0 10px; color: #fff; }
.sch-hero-card p { color: rgba(255,255,255,.85); margin: 0 0 22px; }

.sch-event-mini { display: flex; align-items: center; gap: 16px; background: #fff; border: 1px solid #e9efe9; border-radius: 12px; padding: 16px 18px; transition: border-color .2s, box-shadow .2s, transform .2s; }
.sch-event-mini:hover { border-color: var(--sch-gold); box-shadow: 0 10px 24px rgba(5,45,23,.08); transform: translateX(3px); }
.sch-event-mini .d { flex-shrink: 0; width: 58px; height: 58px; border-radius: 12px; background: linear-gradient(135deg, var(--sch-green), var(--sch-green-dark)); color: #fff; display: flex; flex-direction: column; align-items: center; justify-content: center; line-height: 1; }
.sch-event-mini .d strong { font-family: "Fraunces", serif; font-size: 22px; }
.sch-event-mini .d small { font-size: 11px; text-transform: uppercase; letter-spacing: .05em; color: var(--sch-gold); margin-top: 2px; }
.sch-event-mini .t { min-width: 0; display: flex; flex-direction: column; }
.sch-event-mini .ttl { font-family: "Fraunces", Georgia, serif; font-size: 16px; color: var(--sch-ink); line-height: 1.3; }
.sch-event-mini .v { font-size: 12.5px; color: #686f69; margin-top: 4px; }

@media (max-width: 991.98px){ .sch-home-hero .row { --bs-gutter-y: 0; } }

/* ---- Dean welcome block (home) -------------------------------------- */
.sch-dean-photo { width: 200px; height: 200px; margin: 0 auto; border-radius: 50%; overflow: hidden; display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, var(--sch-green), var(--sch-green-dark)); color: var(--sch-gold); font-family: "Fraunces", Georgia, serif; font-style: italic; font-size: 72px; border: 4px solid #fff; box-shadow: 0 18px 40px rgba(5,45,23,.18); }
.sch-dean-photo img { width: 100%; height: 100%; object-fit: cover; }
.sch-dean a { display: inline-block; }

/* ---- News share bar -------------------------------------------------- */
.sch-share { border-top: 1px solid #e3ece6; }
.sch-share-btn { width: 40px; height: 40px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; border: 1px solid #e3ece6; background: #fff; color: var(--c, var(--tum-primary)); font-size: 15px; transition: all .2s ease; cursor: pointer; }
.sch-share-btn:hover { background: var(--c, var(--tum-primary)); border-color: var(--c, var(--tum-primary)); color: #fff; transform: translateY(-2px); }

/* ---- Author / filter banner (news index) ---------------------------- */
.sch-filter-banner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; background: #e5f1ea; border: 1px solid #c8e2d3; border-radius: 12px; padding: 14px 20px; margin-bottom: 26px; }
.sch-filter-banner .lbl { color: var(--sch-green-dark); font-weight: 600; font-size: 14.5px; }
.sch-filter-banner .lbl i { color: var(--sch-gold); margin-right: 7px; }
.sch-filter-banner a.clear { color: var(--sch-green); font-weight: 600; font-size: 13.5px; }
.sch-filter-banner a.clear:hover { color: var(--sch-green-dark); }

/* ---- Department card banner + page-title bg ------------------------- */
.sch-dept-thumb { display: block; height: 150px; background-size: cover; background-position: center; background-color: #e5f1ea; position: relative; }
.sch-dept-thumb::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(6,40,22,0) 40%, rgba(6,40,22,.35)); }
.sch-pagetitle.has-bg::before { display: none; }

/* ---- Why-us cards (About) ------------------------------------------- */
.sch-why { background: #fff; border: 1px solid #e9efe9; border-radius: 14px; overflow: hidden; height: 100%; box-shadow: 0 8px 24px rgba(5,45,23,.06); transition: transform .25s ease, box-shadow .25s ease; }
.sch-why:hover { transform: translateY(-5px); box-shadow: 0 16px 34px rgba(5,45,23,.12); }
.sch-why .why-media { height: 160px; background: linear-gradient(135deg, var(--sch-green), var(--sch-green-dark)); display: flex; align-items: center; justify-content: center; }
.sch-why .why-media img { width: 100%; height: 100%; object-fit: cover; }
.sch-why .why-media .why-ph { color: var(--sch-gold); font-size: 40px; }
.sch-why .why-body { padding: 22px 20px; }
.sch-why .why-body h4 { font-family: "Fraunces", Georgia, serif; font-size: 19px; margin: 0 0 8px; color: var(--sch-ink); }
.sch-why .why-body p { color: #5a655d; font-size: 14.5px; margin: 0; }

/* =====================================================
   Home redesign (education layout) — feature strip,
   about split + checklist, funfacts band, course cards,
   why-choose split. Built on the sch- palette.
   ===================================================== */

/* ---- Feature highlights strip (elevated card over hero) -------------- */
.sch-feature-strip { background:#fff; border:1px solid #eef3ef; border-radius:16px; box-shadow:0 18px 44px rgba(5,45,23,.12); position:relative; z-index:3; margin-top:-60px; overflow:hidden; }
.sch-feature-strip .fs-item { display:flex; align-items:flex-start; gap:16px; padding:28px 26px; }
.sch-feature-strip [class*="col-"] + [class*="col-"] .fs-item { border-left:1px solid #eef3ef; }
.sch-feature-strip .fs-ico { flex-shrink:0; width:54px; height:54px; border-radius:14px; display:inline-flex; align-items:center; justify-content:center; background:#e5f1ea; color:var(--sch-green); font-size:24px; }
.sch-feature-strip .fs-t { font-family:"Fraunces", Georgia, serif; font-size:17px; color:var(--sch-ink); margin:0 0 4px; }
.sch-feature-strip .fs-x { font-size:13.5px; color:#6a756c; margin:0; line-height:1.55; }
@media (max-width:991.98px){ .sch-feature-strip [class*="col-"] + [class*="col-"] .fs-item { border-left:0; border-top:1px solid #eef3ef; } }

/* ---- Two-column content + media split -------------------------------- */
.sch-split-media { position:relative; border-radius:18px; overflow:hidden; box-shadow:0 24px 50px rgba(5,45,23,.18); min-height:380px; }
.sch-split-media img { width:100%; height:100%; object-fit:cover; display:block; position:absolute; inset:0; }
.sch-split-media .ph { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; background:linear-gradient(135deg, var(--sch-green), var(--sch-green-dark)); color:var(--sch-gold); font-family:"Fraunces", Georgia, serif; font-style:italic; font-size:120px; }
.sch-split-media .badge-float { position:absolute; left:20px; bottom:20px; z-index:2; background:#fff; border-radius:14px; padding:14px 20px; box-shadow:0 12px 30px rgba(5,45,23,.22); display:flex; align-items:center; gap:12px; }
.sch-split-media .badge-float.top { bottom:auto; top:20px; }
.sch-split-media .badge-float .n { font-family:"Fraunces", Georgia, serif; font-size:32px; color:var(--sch-green); line-height:1; }
.sch-split-media .badge-float .l { font-size:12px; text-transform:uppercase; letter-spacing:.05em; color:#686f69; }

/* Dean spotlight overlay pinned to the foot of the about/welcome image */
.sch-split-media .sch-dean-spot { position:absolute; left:0; right:0; bottom:0; z-index:2; display:flex; align-items:center; gap:20px; padding:80px 26px 30px; text-decoration:none; background:linear-gradient(0deg, rgba(6,40,22,.95), rgba(6,40,22,.6) 60%, rgba(6,40,22,0)); }
.sch-split-media .sch-dean-spot .ph { flex-shrink:0; width:167px; height:167px; border-radius:50%; overflow:hidden; border:4px solid var(--sch-gold); background:linear-gradient(135deg, var(--sch-green), var(--sch-green-dark)); display:flex; align-items:center; justify-content:center; color:var(--sch-gold); font-family:"Fraunces", Georgia, serif; font-style:italic; font-size:46px; box-shadow:0 10px 26px rgba(0,0,0,.35); }
.sch-split-media .sch-dean-spot .ph img { width:100%; height:100%; object-fit:cover; }
.sch-split-media .sch-dean-spot .info { flex:1; min-width:0; display:flex; flex-direction:column; align-items:center; text-align:center; }
.sch-split-media .sch-dean-spot .nm { font-family:"Fraunces", Georgia, serif; font-size:24px; line-height:1.2; color:#fff; }
.sch-split-media .sch-dean-spot .ro { font-size:13px; text-transform:uppercase; letter-spacing:.06em; color:var(--sch-gold); margin-top:5px; }
.sch-split-media .sch-dean-spot .go { flex-shrink:0; width:46px; height:46px; border:1px solid rgba(255,255,255,.45); border-radius:50%; display:inline-flex; align-items:center; justify-content:center; color:#fff; transition:background .2s ease, border-color .2s ease, color .2s ease; }
.sch-split-media a.sch-dean-spot:hover .go { background:var(--sch-gold); border-color:var(--sch-gold); color:var(--sch-ink); }

.sch-checklist { list-style:none; padding:0; margin:0 0 26px; display:grid; grid-template-columns:1fr 1fr; gap:12px 24px; }
@media (max-width:575.98px){ .sch-checklist { grid-template-columns:1fr; } }
.sch-checklist li { display:flex; align-items:flex-start; gap:10px; font-size:14.5px; color:#3f4a43; font-weight:600; }
.sch-checklist li i { flex-shrink:0; width:22px; height:22px; border-radius:50%; background:#e5f1ea; color:var(--sch-green); display:inline-flex; align-items:center; justify-content:center; font-size:11px; margin-top:1px; }

/* ---- Funfacts band (stats on green) ---------------------------------- */
.sch-funfacts { background:linear-gradient(120deg, var(--sch-green-dark), var(--sch-green)); color:#fff; position:relative; overflow:hidden; }
.sch-funfacts .ff { text-align:center; padding:14px 18px; }
.sch-funfacts .ff + .ff { /* divider handled by columns */ }
.sch-funfacts .num { font-family:"Fraunces", Georgia, serif; font-weight:600; font-size:clamp(34px,4vw,48px); line-height:1; }
.sch-funfacts .num .animate-number, .sch-funfacts .num span { color:var(--sch-gold); }
.sch-funfacts .lbl { margin-top:10px; font-size:13.5px; letter-spacing:.06em; text-transform:uppercase; color:rgba(255,255,255,.82); }

/* ---- Course cards (image-led programme cards) ------------------------ */
.sch-course-card { display:flex; flex-direction:column; height:100%; background:#fff; border:1px solid #e9efe9; border-radius:16px; overflow:hidden; transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.sch-course-card:hover { transform:translateY(-6px); box-shadow:0 20px 40px rgba(5,45,23,.12); border-color:var(--sch-gold); }
.sch-course-card .cc-thumb { position:relative; display:block; height:180px; background:linear-gradient(135deg, var(--sch-green), var(--sch-green-dark)); overflow:hidden; }
.sch-course-card .cc-thumb img { width:100%; height:100%; object-fit:cover; transition:transform .35s ease; }
.sch-course-card:hover .cc-thumb img { transform:scale(1.06); }
.sch-course-card .cc-thumb .cc-ph { display:flex; width:100%; height:100%; align-items:center; justify-content:center; color:var(--sch-gold); font-size:46px; }
.sch-course-card .cc-lvl { position:absolute; left:14px; top:14px; background:var(--sch-gold); color:var(--sch-ink); font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; border-radius:7px; padding:5px 12px; }
.sch-course-card .cc-body { display:flex; flex-direction:column; flex:1; padding:22px 22px 0; }
.sch-course-card .cc-body h4 { font-family:"Fraunces", Georgia, serif; font-size:18px; line-height:1.35; margin:0 0 6px; color:var(--sch-ink); }
.sch-course-card .cc-dept { font-size:13px; color:#686f69; margin:0 0 14px; }
.sch-course-card .cc-meta { list-style:none; padding:0; margin:0; display:flex; flex-wrap:wrap; gap:6px 16px; font-size:13px; color:#5a655d; }
.sch-course-card .cc-meta i { color:var(--sch-gold); margin-right:6px; }
.sch-course-card .cc-foot { margin-top:18px; padding:14px 22px; border-top:1px solid #eef3ef; display:flex; align-items:center; justify-content:space-between; font-weight:600; font-size:13px; text-transform:uppercase; letter-spacing:.03em; color:var(--sch-green); }
.sch-course-card .cc-foot i { transition:transform .2s ease; }
.sch-course-card:hover .cc-foot { color:var(--sch-green-dark); }
.sch-course-card:hover .cc-foot i { transform:translateX(4px); }

/* =====================================================
   Notices — ported verbatim from the PRI theme so the
   Notices index/detail render identically. Reuses the PRI
   class names (`dl-*`, `pri-*`) on top of the --pri-* aliases.
   ===================================================== */

/* ---- Downloads list (compact cards) — used by notice attachments ----- */
.pri-file-row {
  display: flex; align-items: center; gap: 12px; padding: 9px 12px;
  border: 1px solid #e9efe9; border-radius: 7px; background: #fff; margin-bottom: 7px;
  transition: box-shadow .2s ease, border-color .2s ease;
}
.pri-file-row:hover { box-shadow: 0 6px 16px rgba(5,45,23,.07); border-color: #cfe3d6; }
.pri-file-row .fi {
  width: 34px; height: 34px; flex-shrink: 0; border-radius: 6px; display: flex; align-items: center; justify-content: center;
  background: #e5f1ea; color: var(--pri-green); font-size: 16px;
}
.pri-file-row .name { font-size: 14px; line-height: 1.3; }
.pri-file-row .meta { font-size: 11px; letter-spacing: .04em; text-transform: uppercase; color: #686f69; margin-top: 1px; }
.pri-file-row .btn { padding: 5px 12px; font-size: 12px; }

/* ---- Filter + search toolbar ----------------------------------------- */
.dl-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; }
.dl-search { position: relative; flex: 1 1 260px; max-width: 380px; }
.dl-search i { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: #9aa79e; font-size: 18px; pointer-events: none; }
.dl-search input {
  width: 100%; height: 44px; padding: 0 16px 0 42px;
  border: 1px solid #dde6df; border-radius: 999px; background: #fff;
  font-size: 14px; color: #1d2a22; outline: none; transition: border-color .2s ease, box-shadow .2s ease;
}
.dl-search input:focus { border-color: var(--pri-green); box-shadow: 0 0 0 3px color-mix(in srgb, var(--tum-primary) 12%, transparent); }
.dl-select {
  height: 44px; min-width: 200px; padding: 0 38px 0 16px;
  border: 1px solid #dde6df; border-radius: 999px; background: #fff;
  font-size: 14px; color: #1d2a22; cursor: pointer; outline: none;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23097b3e' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 14px center; background-size: 16px;
}
.dl-select:focus { border-color: var(--pri-green); box-shadow: 0 0 0 3px color-mix(in srgb, var(--tum-primary) 12%, transparent); }
.dl-reset { font-size: 13px; color: #686f69; text-decoration: underline; align-self: center; }
.dl-reset:hover { color: var(--pri-green); }
.dl-summary { font-size: 13px; color: #686f69; margin-bottom: 14px; }

/* ---- Pagination (green) ---------------------------------------------- */
.pri-pagination { gap: 4px; }
.pri-pagination .page-link {
  color: var(--pri-green); border-color: #e0e6e0; border-radius: 6px; min-width: 38px; text-align: center;
}
.pri-pagination .page-link:hover { background: #e5f1ea; color: var(--pri-green-dark); border-color: #cfe3d6; }
.pri-pagination .page-item.active .page-link {
  background: var(--pri-green); border-color: var(--pri-green); color: #fff;
}
.pri-pagination .page-item.disabled .page-link { color: #c2cbc4; }

/* ---- Notices / ledger rows ------------------------------------------ */
.pri-ledger { border-top: 1px solid #e6e0d4; }
.pri-ledger .row-item {
  display: grid; grid-template-columns: 70px 1fr 1.2fr; gap: 24px; align-items: baseline;
  padding: 20px 0; border-bottom: 1px solid #e6e0d4;
}
.pri-ledger .row-item .num { font-size: 13px; color: var(--pri-gold); }
.pri-ledger .row-item .name { font-family: "Fraunces", Georgia, serif; font-size: 17px; }
.pri-ledger .row-item .partners { color: #5a655d; font-size: 14px; }
@media (max-width: 640px){ .pri-ledger .row-item { grid-template-columns: 1fr; gap: 4px; } }

/* ---- Empty state ----------------------------------------------------- */
.pri-empty { text-align: center; padding: 60px 20px; color: #686f69; }
.pri-empty i { font-size: 46px; color: #d9d2c4; margin-bottom: 14px; display: block; }

/* ---- Section tint (news "more stories" band) ------------------------- */
.bg-silver-light { background: var(--tum-surface); }

/* ---- Event cards (events listing) — ported verbatim from PRI --------- */
.pri-event-card{display:flex;flex-direction:column;width:100%;background:#fff;border:1px solid #e3ece6;border-radius:12px;overflow:hidden;box-shadow:0 8px 24px rgba(5,45,23,.06);transition:transform .2s ease,box-shadow .2s ease;}
.pri-event-card:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(5,45,23,.12);}
.pri-event-card .pec-thumb{position:relative;display:block;height:170px;background:#e5f1ea;overflow:hidden;}
.pri-event-card .pec-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease;}
.pri-event-card:hover .pec-thumb img{transform:scale(1.05);}
.pri-event-card .pec-thumb-ph{display:flex;width:100%;height:100%;align-items:center;justify-content:center;color:var(--tum-primary);}
.pri-event-card .pec-thumb-ph i{font-size:44px;}
.pri-event-card .pec-date{position:absolute;left:12px;bottom:12px;background:var(--tum-primary);color:#fff;border-radius:8px;padding:8px 12px;text-align:center;line-height:1;box-shadow:0 6px 16px rgba(5,45,23,.35);}
.pri-event-card .pec-date strong{display:block;font-size:22px;font-family:'Fraunces',serif;}
.pri-event-card .pec-date small{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.05em;margin-top:2px;}
.pri-event-card .pec-body{display:flex;flex-direction:column;flex:1;padding:18px;}
.pri-event-card .pec-title{margin:0 0 12px;font-size:17px;line-height:1.35;}
.pri-event-card .pec-title a{color:#1d2a22;}
.pri-event-card .pec-title a:hover{color:var(--tum-primary);}
.pri-event-card .pec-meta{margin:0;font-size:13px;color:#686f69;}
.pri-event-card .pec-meta li{display:flex;align-items:flex-start;gap:8px;margin-bottom:6px;}
.pri-event-card .pec-meta li:last-child{margin-bottom:0;}
.pri-event-card .pec-meta i{color:var(--tum-accent);font-size:15px;flex-shrink:0;margin-top:1px;}
.pri-event-card .pec-foot{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;border-top:1px solid #e3ece6;background:#f6faf8;color:var(--tum-primary);font-weight:600;font-size:13px;text-transform:uppercase;letter-spacing:.03em;}
.pri-event-card .pec-foot i{transition:transform .2s ease;}
.pri-event-card:hover .pec-foot{background:var(--tum-primary);color:#fff;}
.pri-event-card:hover .pec-foot i{transform:translateX(4px);}

/* =====================================================
   COSMOS MAIN-SITE CHROME (`cos-` namespace)
   2-row STICKY header · institutional mega-menu · global search · hero carousel
   ===================================================== */

/* The <header> must NOT form a box, otherwise the sticky bar can only stick
   within the short header box and releases immediately. display:contents makes
   .cos-bar a child of #wrapper (full page height) so sticky works site-wide. */
.cos-header { display: contents; }

/* ---- Row 1 · top utility bar (scrolls away) ------------------------- */
.cos-topbar { background: var(--cos-green-dark); color: rgba(255,255,255,.82); font-size: 13.5px; }
.cos-topbar .container { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 20px; padding-top: 8px; padding-bottom: 8px; }
.cos-topbar a { color: rgba(255,255,255,.85); }
.cos-topbar a:hover { color: var(--cos-gold); }
.cos-topbar .info { margin: 0; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 4px 22px; }
.cos-topbar .info i { color: var(--cos-gold); margin-right: 7px; }
.cos-topbar .right { display: inline-flex; align-items: center; gap: 18px; }
.cos-topbar .socials { margin: 0; padding: 0; list-style: none; display: inline-flex; gap: 8px; }
.cos-topbar .socials a { display: inline-flex; width: 28px; height: 28px; align-items: center; justify-content: center; border: 1px solid rgba(255,255,255,.22); border-radius: 50%; font-size: 12px; }
.cos-topbar .socials a:hover { background: var(--cos-gold); border-color: var(--cos-gold); color: var(--cos-ink); }
.cos-topbar .tb-link { font-weight: 600; color: var(--cos-gold) !important; white-space: nowrap; }
.cos-topbar .tb-link:hover { color: #fff !important; }
@media (max-width: 575.98px){ .cos-topbar .info { display:none; } }

/* ---- Row 2 · STICKY main bar (logo + nav + search + CTA) ------------ */
.cos-bar {
  position: sticky; top: 0; z-index: 1040;
  background: #fff; border-bottom: 3px solid var(--cos-gold);
  box-shadow: 0 2px 10px rgba(5,45,23,.06);
  transition: box-shadow .25s ease;
}
.cos-bar.is-stuck { box-shadow: 0 6px 22px rgba(5,45,23,.16); }
.cos-bar .navbar { padding: 0; position: static; }        /* static → mega-menu spans .cos-bar width */
.cos-bar .navbar-brand { display: flex; align-items: center; gap: 13px; padding: 10px 0; }
.cos-bar .brand-logo { height: 54px; width: auto; max-width: 220px; object-fit: contain; flex-shrink: 0; }
.cos-bar .brand-mark { width: 50px; height: 50px; border-radius: 12px; flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; background: linear-gradient(135deg, var(--cos-green), var(--cos-green-dark)); color: var(--cos-gold); font-family: "Fraunces", Georgia, serif; font-style: italic; font-weight: 600; font-size: 24px; }
.cos-bar .brand-text { display: flex; flex-direction: column; line-height: 1.1; }
.cos-bar .brand-name { font-family: "Fraunces", Georgia, serif; font-weight: 600; font-size: 18px; line-height: 1.1; color: var(--cos-ink); max-width: 17ch; }
.cos-bar .brand-sub { font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--cos-gold); margin-top: 3px; }

.cos-bar .navbar-nav .nav-link { font-weight: 600; font-size: 15px; color: #1d2a22; text-transform: uppercase; letter-spacing: .02em; padding: 26px 11px; position: relative; }
.cos-bar .navbar-nav .nav-link::after { content: ""; position: absolute; left: 11px; right: 11px; bottom: 18px; height: 2px; background: var(--cos-gold); transform: scaleX(0); transform-origin: left; transition: transform .2s ease; }
.cos-bar .navbar-nav > .nav-item > .nav-link:hover,
.cos-bar .navbar-nav > .nav-item.active > .nav-link,
.cos-bar .navbar-nav > .nav-item.show > .nav-link { color: var(--cos-green); }
.cos-bar .navbar-nav > .nav-item > .nav-link:hover::after,
.cos-bar .navbar-nav > .nav-item.active > .nav-link::after,
.cos-bar .navbar-nav > .nav-item.show > .nav-link::after { transform: scaleX(1); }
.cos-bar .dropdown-toggle::after { vertical-align: 1px; margin-left: 6px; opacity: .6; }

/* Right-hand action cluster: search toggle + Apply CTA + hamburger */
.cos-actions { display: flex; align-items: center; gap: 10px; }
.cos-search-btn { width: 42px; height: 42px; border-radius: 50%; border: 1px solid #e3ece6; background: #fff; color: var(--cos-green); display: inline-flex; align-items: center; justify-content: center; font-size: 15px; transition: background .2s, color .2s; }
.cos-search-btn:hover, .cos-search-btn[aria-expanded="true"] { background: var(--cos-green); color: #fff; border-color: var(--cos-green); }
.cos-bar .nav-cta { background: var(--cos-green); color: #fff !important; border-radius: 999px; padding: 11px 22px; font-weight: 700; font-size: 13px; letter-spacing: .03em; white-space: nowrap; }
.cos-bar .nav-cta:hover { background: var(--cos-green-dark); }
.cos-bar .navbar-toggler { border: 1px solid #e3ece6; padding: 6px 9px; }
.cos-bar .navbar-toggler:focus { box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--tum-primary) 15%, transparent); }

/* ---- Global search panel (slides under the bar) -------------------- */
.cos-search { border-top: 1px solid #eef2ee; background: #f6faf8; }
.cos-search .container { padding-top: 16px; padding-bottom: 16px; }
.cos-search form { position: relative; max-width: 720px; margin: 0 auto; }
.cos-search .fa-search { position: absolute; left: 18px; top: 50%; transform: translateY(-50%); color: var(--cos-green); pointer-events: none; }
.cos-search input { width: 100%; height: 52px; padding: 0 120px 0 48px; border: 1px solid #cfe3d6; border-radius: 999px; background: #fff; font-size: 16px; color: var(--cos-ink); outline: none; transition: border-color .2s, box-shadow .2s; }
.cos-search input:focus { border-color: var(--cos-green); box-shadow: 0 0 0 3px color-mix(in srgb, var(--tum-primary) 12%, transparent); }
.cos-search button[type=submit] { position: absolute; right: 6px; top: 6px; bottom: 6px; border: 0; border-radius: 999px; padding: 0 22px; background: var(--cos-green); color: #fff; font-weight: 600; font-size: 14px; cursor: pointer; }
.cos-search button[type=submit]:hover { background: var(--cos-green-dark); }

/* ---- Dropdowns + mega-menu ----------------------------------------- */
.cos-bar .dropdown-menu { border: 1px solid #e3ece6; border-top: 3px solid var(--cos-gold); border-radius: 0; box-shadow: 1px 1px 35px rgba(5,45,23,.10); padding: 0; margin-top: 0; min-width: 230px; background: #fcfcfc; overflow: hidden; }
.cos-bar .dropdown-menu > li { margin: 0; padding: 0; }
.cos-bar .dropdown-item { display: block; width: 100%; box-sizing: border-box; margin: 0; position: relative; font-size: 14px; font-weight: 500; color: #555; border-radius: 0; border-bottom: 1px solid #eee; padding: 10px 20px 10px 22px; transition: padding .2s linear, background .2s ease, color .2s ease; }
.cos-bar .dropdown-menu li:last-child > .dropdown-item { border-bottom: 0; }
.cos-bar .dropdown-item::before { content: ""; position: absolute; top: 0; left: 0; width: 3px; height: 0; background: var(--cos-green); transition: height .3s ease; }
.cos-bar .dropdown-item:hover, .cos-bar .dropdown-item:focus { background: #eef2ee; color: var(--cos-green); padding-left: 26px; }
.cos-bar .dropdown-item:hover::before, .cos-bar .dropdown-item:focus::before { height: 100%; }
.cos-bar .dropdown-menu .dropdown-header { font-family: "Fraunces", Georgia, serif; font-size: 12.5px; text-transform: uppercase; letter-spacing: .06em; color: var(--cos-gold); padding: 10px 20px 8px; border-bottom: 1px solid #eee; margin-bottom: 2px; }

.cos-bar .has-mega { position: static; }
.cos-mega { width: 100%; left: 0; right: 0; }
.cos-mega .mega-inner { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px 26px; padding: 10px 8px; }
.cos-mega .mcol h6 { font-family: "Fraunces", Georgia, serif; font-size: 13px; text-transform: uppercase; letter-spacing: .05em; color: var(--cos-gold); margin: 6px 0 8px; padding-bottom: 8px; border-bottom: 1px solid #eef2ee; }
.cos-mega .mcol ul { list-style: none; padding: 0; margin: 0; }
.cos-mega .mcol a { display: block; font-size: 14px; color: #2c382f; padding: 8px 10px; border-radius: 8px; }
.cos-mega .mcol a:hover { background: #e5f1ea; color: var(--cos-green); }
.cos-mega .mega-feature { background: linear-gradient(135deg, var(--cos-green), var(--cos-green-dark)); color: #fff; border-radius: 10px; padding: 22px; display: flex; flex-direction: column; justify-content: center; }
.cos-mega .mega-feature h5 { font-family: "Fraunces", Georgia, serif; color: #fff; font-size: 19px; margin: 0 0 8px; }
.cos-mega .mega-feature p { color: rgba(255,255,255,.85); font-size: 13.5px; margin: 0 0 16px; }

/* Hover-open on desktop — matches navbar-expand-xl (≥1200px). BS5 click still
   works for keyboard/touch; below this the menu collapses to the hamburger. */
@media (min-width: 1200px) {
  .cos-bar .nav-item.dropdown:hover > .dropdown-menu { display: block; }
  .cos-bar .dropdown-menu { animation: cosFade .18s ease; }
}
@keyframes cosFade { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }

@media (max-width: 1199.98px) {
  .cos-bar .navbar-collapse { max-height: 74vh; overflow-y: auto; padding: 6px 4px 16px; border-top: 1px solid #eef2ee; margin-top: 8px; }
  .cos-bar .navbar-nav .nav-link { padding: 12px 4px; border-bottom: 1px solid #eef2ee; }
  .cos-bar .navbar-nav .nav-link::after { display: none; }
  .cos-mega .mega-inner { grid-template-columns: 1fr; }
  .cos-mega .mega-feature { display: none; }
  .cos-bar .dropdown-menu { box-shadow: none; border-top: 0; padding: 0 0 0 12px; }
  .cos-bar .nav-cta { padding: 9px 16px; }
}
@media (max-width: 575.98px){ .cos-bar .nav-cta { display: none; } }

/* ---- Hero carousel (home) ------------------------------------------- */
.cos-hero { position: relative; }
.cos-hero .carousel, .cos-hero .carousel-inner, .cos-hero .carousel-item { height: clamp(460px, 76vh, 720px); }
.cos-hero .carousel-item { background-size: cover; background-position: center; background-color: var(--cos-green-dark); }
.cos-hero .carousel-item::before { content: ""; position: absolute; inset: 0; background: linear-gradient(110deg, rgba(6,40,22,.92) 0%, rgba(6,40,22,.72) 45%, color-mix(in srgb, var(--tum-primary) 42%, transparent) 100%); }
.cos-hero .hero-caption { position: absolute; inset: 0; z-index: 2; display: flex; align-items: center; }
.cos-hero .hero-caption .inner { max-width: 720px; }
.cos-hero .kicker { display: inline-flex; align-items: center; gap: 9px; font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--cos-gold); margin-bottom: 16px; }
.cos-hero .kicker::before { content: ""; width: 30px; height: 2px; background: var(--cos-gold); }
.cos-hero h1 { font-family: "Fraunces", Georgia, serif; font-weight: 600; font-size: clamp(32px, 5vw, 58px); line-height: 1.06; color: #fff; margin: 0 0 18px; }
.cos-hero p { font-size: clamp(16px, 1.7vw, 20px); color: rgba(255,255,255,.9); max-width: 60ch; margin: 0 0 28px; }
.cos-hero .hero-actions { display: flex; flex-wrap: wrap; gap: 14px; }
.cos-hero .carousel-indicators { z-index: 3; margin-bottom: 28px; }
.cos-hero .carousel-indicators [data-bs-target] { width: 12px; height: 12px; border-radius: 50%; border: 2px solid #fff; background: transparent; opacity: .8; }
.cos-hero .carousel-indicators .active { background: var(--cos-gold); border-color: var(--cos-gold); }
.cos-hero .carousel-control-prev, .cos-hero .carousel-control-next { width: 6%; z-index: 3; opacity: .65; }
.cos-hero .carousel-control-prev:hover, .cos-hero .carousel-control-next:hover { opacity: 1; }

/* ---- Home quick-links strip (overlaps hero) ------------------------- */
.cos-quicklinks { position: relative; z-index: 5; margin-top: -46px; }
.cos-quicklinks .ql { display: flex; align-items: center; gap: 14px; background: #fff; border: 1px solid #eef3ef; border-radius: 14px; padding: 20px 22px; height: 100%; box-shadow: 0 14px 34px rgba(5,45,23,.08); transition: transform .2s ease, box-shadow .2s ease; }
.cos-quicklinks a.ql:hover { transform: translateY(-4px); box-shadow: 0 20px 40px rgba(5,45,23,.14); border-color: var(--cos-gold); }
.cos-quicklinks .ql .ico { flex-shrink: 0; width: 50px; height: 50px; border-radius: 12px; background: #e5f1ea; color: var(--cos-green); display: inline-flex; align-items: center; justify-content: center; font-size: 22px; }
.cos-quicklinks .ql .t { font-family: "Fraunces", Georgia, serif; font-size: 16px; color: var(--cos-ink); line-height: 1.2; }
.cos-quicklinks .ql .s { font-size: 12.5px; color: #686f69; margin-top: 2px; }

/* ---- Apply / funding CTA strip (green band) ------------------------- */
.cos-apply { background: linear-gradient(120deg, var(--cos-green-dark), var(--cos-green)); color: #fff; }
.cos-apply .row + .row { margin-top: 14px; padding-top: 14px; border-top: 1px solid rgba(255,255,255,.14); }
.cos-apply .lead { color: rgba(255,255,255,.92); margin: 0; font-size: 18px; }

/* ---- Section heading lockup (reused on home + inner) ---------------- */
.cos-sec-head .ey { display: inline-block; font-size: 13px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--cos-gold); margin-bottom: 10px; }
.cos-sec-head h2 { font-family: "Fraunces", Georgia, serif; font-weight: 600; color: var(--cos-ink); font-size: clamp(26px, 3.2vw, 40px); line-height: 1.15; margin: 0; }
.cos-sec-head p { color: #5a655d; font-size: 16px; margin: 12px 0 0; }

/* ---- Accordion (FAQ) green accent ---------------------------------- */
.accordion-button:not(.collapsed) { background: #e5f1ea; color: var(--cos-green) !important; }
.accordion-button:focus { border-color: #cfe3d6; box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--tum-primary) 15%, transparent); }
.accordion-button:not(.collapsed)::after { filter: hue-rotate(85deg) saturate(1.4); }

/* ------------------------------------------------------------------
   Closing call-to-action band

   The space above and below the text is the section's own padding —
   `.sch-cta { padding-block: clamp(54px, 8vw, 96px) }` — not a margin on
   anything inside it, which is why `mt-0 mb-0` on the container had no
   effect: there was no margin there to remove.

   Halved. The band still reads as a distinct closing note rather than a
   strip of text, but it no longer takes a screenful on a wide monitor.
   ------------------------------------------------------------------ */
.sch-cta { padding-block: clamp(28px, 4vw, 48px); }

/* The paragraph carried 28px beneath it on top of the band's own padding,
   which was most of the gap between the copy and the buttons. */
.sch-cta p { margin-bottom: 18px; }

/* ------------------------------------------------------------------
   Quality Policy Statement

   The policy text itself is plain .sch-prose — a signed institutional
   document reads as a document, not as a marketing section, so it gets
   no cards, no icons, just the paragraph and list styling every other
   rich-text block on the site already uses.

   The one addition is the certification line: a small, quiet badge
   rather than another paragraph, since "ISO 9001:2015 certified" is a
   fact to notice at a glance, not a sentence to read in sequence with
   the policy above it.
   ------------------------------------------------------------------ */

.cos-qps-cert {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 28px 0 0;
  padding: 10px 18px;
  border: 1px solid #dde8e0;
  border-radius: 999px;
  font-size: 14px;
  font-weight: 600;
  color: var(--cos-green, var(--tum-primary));
  background: #f3f8f4;
}

.cos-qps-cert i { color: var(--cos-gold, var(--tum-accent)); }

/* ------------------------------------------------------------------
   Citizens' Service Delivery Charter

   Bootstrap's own tab component (already loaded site-wide), restyled to
   match the theme rather than left in its default blue-and-grey — a
   gold underline on the active tab is the same accent language used for
   the site's other active-state indicators (nav links, the mega-menu).

   The Charter itself is CMS-managed tables, not an embedded document —
   see .cos-csdc-table below — kept alongside the narration audio and
   explainer video, which genuinely are files.
   ------------------------------------------------------------------ */

.cos-csdc-tabs { border-bottom-color: #e7ede8; margin-bottom: 24px; }

.cos-csdc-tabs .nav-link {
  border: 0;
  border-bottom: 2px solid transparent;
  border-radius: 0;
  padding: 10px 4px;
  margin-right: 28px;
  font-family: "Fraunces", Georgia, serif;
  font-weight: 600;
  font-size: 17px;
  color: #6a756c;
  background: none;
}

.cos-csdc-tabs .nav-link:hover { color: var(--cos-green, var(--tum-primary)); border-bottom-color: #e7ede8; }

.cos-csdc-tabs .nav-link.active {
  color: var(--cos-ink, var(--tum-ink));
  border-bottom-color: var(--cos-gold, var(--tum-accent));
  background: none;
}

.cos-csdc-audio { display: block; width: 100%; max-width: 520px; }

/* ── Branded audio player ──────────────────────────────────────────
   The native <audio controls> stays in the DOM as the real fallback;
   cosmos.main.zz-audio.js hides it and shows this once it runs. Built
   on a native <input type="range"> for the seek bar rather than a
   custom div, so it is keyboard-operable and has slider semantics for
   free instead of hand-rolled ARIA. */

.cos-audio audio { display: block; width: 100%; max-width: 520px; }
.cos-audio.is-enhanced audio { display: none; }

.cos-audio-ui {
  display: none;
  align-items: center;
  gap: 16px;
  max-width: 520px;
  padding: 12px 18px;
  background: #fff;
  border: 1px solid #e7ede8;
  border-radius: 999px;
  box-shadow: 0 4px 14px rgba(5, 45, 23, .05);
}

.cos-audio.is-enhanced .cos-audio-ui { display: flex; }

.cos-audio-ui .play {
  flex: none;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  border: 0;
  background: var(--cos-green, var(--tum-primary));
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  cursor: pointer;
  transition: background .15s ease;
}

.cos-audio-ui .play:hover { background: var(--cos-gold, var(--tum-accent)); }
.cos-audio-ui .play:focus-visible { outline: 2px solid var(--cos-gold, var(--tum-accent)); outline-offset: 2px; }
.cos-audio-ui .play .fa-pause { font-size: 13px; }
.cos-audio-ui .play .fa-play { margin-left: 2px; } /* optical centring */

.cos-audio-ui .body { flex: 1 1 auto; min-width: 0; }

.cos-audio-ui .lbl {
  margin: 0 0 6px;
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: #6a756c;
}

.cos-audio-ui .seek {
  -webkit-appearance: none;
  appearance: none;
  display: block;
  width: 100%;
  height: 4px;
  border-radius: 2px;
  background: linear-gradient(to right,
    var(--cos-green, var(--tum-primary)) 0%, var(--cos-green, var(--tum-primary)) var(--fill, 0%),
    #e7ede8 var(--fill, 0%), #e7ede8 100%);
  outline: none;
  cursor: pointer;
  margin: 0 0 6px;
}

.cos-audio-ui .seek::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 13px;
  height: 13px;
  border-radius: 50%;
  background: var(--cos-green, var(--tum-primary));
  border: 2px solid #fff;
  box-shadow: 0 1px 3px rgba(0, 0, 0, .25);
  cursor: pointer;
}

.cos-audio-ui .seek::-moz-range-thumb {
  width: 13px;
  height: 13px;
  border-radius: 50%;
  background: var(--cos-green, var(--tum-primary));
  border: 2px solid #fff;
  box-shadow: 0 1px 3px rgba(0, 0, 0, .25);
  cursor: pointer;
}

.cos-audio-ui .seek::-moz-range-track { background: #e7ede8; height: 4px; border-radius: 2px; }
.cos-audio-ui .seek::-moz-range-progress { background: var(--cos-green, var(--tum-primary)); height: 4px; border-radius: 2px; }
.cos-audio-ui .seek:focus-visible { outline: 2px solid var(--cos-gold, var(--tum-accent)); outline-offset: 3px; }

.cos-audio-ui .time {
  display: flex;
  gap: 4px;
  font-size: 12px;
  font-variant-numeric: tabular-nums;
  color: #6a756c;
}

.cos-audio-ui .time .sep { opacity: .5; }

.cos-audio-ui .dl {
  flex: none;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--cos-green, var(--tum-primary));
  border: 1px solid #e7ede8;
  transition: color .15s ease, border-color .15s ease;
}

.cos-audio-ui .dl:hover,
.cos-audio-ui .dl:focus-visible { color: var(--cos-gold, var(--tum-accent)); border-color: var(--cos-gold, var(--tum-accent)); }

@media (max-width: 575.98px) {
  .cos-audio-ui { padding: 10px 14px; gap: 12px; max-width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .cos-audio-ui .play,
  .cos-audio-ui .dl { transition: none; }
}

.cos-csdc-video {
  position: relative;
  padding-top: 56.25%; /* 16:9 */
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 8px 24px rgba(5, 45, 23, .06);
}

.cos-csdc-video iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

/* ── Service-standards tables ──────────────────────────────────────
   The Charter's real content: rows a CMS editor can add, edit or
   remove, not a document to re-upload. Wide on a phone by nature —
   five columns of real sentences — so the table scrolls sideways in
   its own frame rather than the page doing it, or the columns being
   crushed unreadable to fit. */

.cos-csdc-table-title {
  font-family: "Fraunces", Georgia, serif;
  font-size: 18px;
  font-weight: 600;
  color: var(--cos-ink, var(--tum-ink));
  margin: 0 0 14px;
}

.cos-csdc-gap { height: 40px; }

.cos-csdc-table-wrap {
  overflow-x: auto;
  border: 1px solid #e7ede8;
  border-radius: 14px;
  -webkit-overflow-scrolling: touch;
}

.cos-csdc-table {
  width: 100%;
  min-width: 720px;
  border-collapse: collapse;
  font-size: 14.5px;
  line-height: 1.5;
}

.cos-csdc-table th,
.cos-csdc-table td {
  padding: 14px 16px;
  text-align: left;
  vertical-align: top;
  border-bottom: 1px solid #e7ede8;
}

.cos-csdc-table thead th {
  background: var(--cos-sand, #f6f4ee);
  color: var(--cos-ink, var(--tum-ink));
  font-family: "Fraunces", Georgia, serif;
  font-weight: 600;
  font-size: 13.5px;
  text-transform: uppercase;
  letter-spacing: .03em;
  white-space: nowrap;
}

.cos-csdc-table tbody tr:last-child td { border-bottom: 0; }
.cos-csdc-table tbody tr:hover td { background: color-mix(in srgb, var(--tum-primary) 4%, transparent); }

.cos-csdc-table td.num,
.cos-csdc-table th:first-child {
  width: 44px;
  color: var(--cos-green, var(--tum-primary));
  font-weight: 600;
  text-align: center;
}

/* ── Reporting / complaints block ──────────────────────────────── */

.cos-csdc-report {
  padding: 32px;
  background: var(--cos-sand, #f6f4ee);
  border-radius: 16px;
}

.cos-csdc-report h4 {
  font-family: "Fraunces", Georgia, serif;
  font-size: 19px;
  font-weight: 600;
  color: var(--cos-ink, var(--tum-ink));
  margin-bottom: 8px;
}

.cos-csdc-report > p { color: #4b564d; margin-bottom: 20px; }

.cos-csdc-report .who {
  font-weight: 700;
  color: var(--cos-ink, var(--tum-ink));
  margin-bottom: 4px;
}

.cos-csdc-report a { color: var(--cos-green, var(--tum-primary)); }
.cos-csdc-report a:hover { color: var(--cos-gold, var(--tum-accent)); }

@media (max-width: 575.98px) {
  .cos-csdc-report { padding: 24px 20px; }
}

/* ------------------------------------------------------------------
   Team directory grid — ported verbatim from the research theme
   (research-custom.css), which the PRI /team page proved out earlier.
   Needed here for any organisation unit with no theme of its own (e.g.
   Dean of Students) — website\controllers\StaffController is shared
   across every unit-subdomain theme, cosmos included, so it needs this
   CSS the same way research/forge/scholaris/graduate already have it.
   Same --pri-green/--pri-gold/--tum-ink tokens cosmos already defines
   (cosmos.main.theme.css), so no colour changes were needed to port it.
   ------------------------------------------------------------------ */

/* min-width: 0 on the grid item is what lets a cell shrink below its
   content's natural size; without it a long name pushes a cell wider
   than its share of the row and the whole grid overflows sideways. */
.staff-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
.staff-grid > div { min-width: 0; }
@media (min-width: 576px) { .staff-grid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 992px) { .staff-grid { grid-template-columns: repeat(5, 1fr); } }

/* Modelled on the reference design at tum.ac.ke/profiles: a full-bleed
   square photo, sharp corners throughout (no rounded card, no circular
   photo), a coloured rule marking where the photo ends and the text
   begins, left-aligned copy, and a solid button + icon row sharing one
   line at the foot of the card. */
.staff-card {
  display: flex; flex-direction: column;
  min-width: 0; height: 100%;
  background: #fff; border: 1px solid #eef3ef; border-radius: 0;
  overflow: hidden;
  box-shadow: 0 4px 16px rgba(5,45,23,.05); color: inherit;
  transition: box-shadow .25s ease, border-color .25s ease;
}
.staff-card:hover { box-shadow: 0 14px 30px rgba(5,45,23,.10); border-color: var(--pri-green); }

/* Photo / initials — one frame for both, full width, square. */
.staff-thumb { aspect-ratio: 1/1; width: 100%; flex-shrink: 0; }
.staff-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s ease; }
.staff-card:hover .staff-thumb img { transform: scale(1.05); }
.staff-thumb.staff-initials {
  display: flex; align-items: center; justify-content: center;
  background: linear-gradient(135deg, var(--pri-green), var(--pri-green-dark));
  color: var(--pri-gold); font-family: "Fraunces", Georgia, serif; font-style: italic; font-size: 46px;
}

/* Text block flexes to fill the card so the footer (socials + view-profile
   button) lands at the same height on every card in a row, regardless of
   how many lines the name/role/docket take above it. */
.staff-content {
  display: flex; flex-direction: column; align-items: flex-start; text-align: left;
  flex: 1; width: 100%; min-width: 0; padding: 14px 16px 16px;
  border-top: 3px solid var(--pri-gold);
}
/* Overrides the vendored studypress rule where this page also loads it
   (style-main.css sets the 2px solid border-bottom, theme-skin-color-set1.css
   tints it navy) — needs the same .staff-item .staff-content specificity
   to win. Harmless on cosmos, which doesn't load that vendor CSS at all. */
.staff-item .staff-content { border-bottom-color: var(--pri-gold); }
.staff-name {
  font-size: 14px; font-weight: 700; line-height: 1.3; text-transform: uppercase; letter-spacing: .02em;
  color: var(--pri-green); margin: 0 0 4px; overflow-wrap: break-word;
}
.staff-role, .staff-docket { max-width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.staff-role { font-size: 12px; font-weight: 500; color: #5a655d; margin: 0 0 3px; }
.staff-docket { font-size: 11px; color: #686f69; letter-spacing: .02em; margin: 0; }

.staff-footer {
  margin-top: auto; padding-top: 14px; width: 100%;
  display: flex; align-items: center; justify-content: space-between; gap: 8px;
}

.staff-socials { display: flex; flex-wrap: wrap; gap: 6px; }
.staff-socials a {
  width: 26px; height: 26px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;
  background: #f1f6f2; color: var(--pri-green); font-size: 12px; transition: background .2s ease, color .2s ease;
}
.staff-socials a:hover { background: var(--pri-green); color: #fff; }

.staff-view {
  display: inline-flex; align-items: center; gap: 5px; flex-shrink: 0;
  margin-left: auto; /* always pins to the right, with or without a socials row beside it */
  font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .03em;
  color: #fff; background: var(--pri-green); text-decoration: none;
  padding: 7px 12px; border-radius: 3px;
  transition: background .2s ease;
}
.staff-view i { font-size: 10px; transition: transform .2s ease; }
.staff-view:hover { background: var(--pri-gold); color: var(--tum-ink); }
.staff-view:hover i { transform: translateX(3px); }

/* ------------------------------------------------------------------
   About page

   Two additions, both replacing something that was doing damage.

   The photograph replaces a 400px box containing the letter T. A
   placeholder that large reads as a broken image rather than as a
   deliberate mark, and it sat in the first screenful of the page most
   visitors see after the homepage.

   The section index replaces nothing — which was the problem. About
   has eleven pages and the landing page linked to two, so a visitor
   arriving from a search result met a dead end. The cards are quiet on
   purpose: they are wayfinding at the foot of the page, not a second
   set of feature tiles competing with the values above them.
   ------------------------------------------------------------------ */

.cos-about-media {
  margin: 0;
  position: relative;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 18px 44px rgba(5, 45, 23, .14);
}

.cos-about-media img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 340px;
  object-fit: cover;
}

/* Reads across the foot of the picture, the same treatment the
   homepage welcome image uses, so the two do not look like different
   components doing the same job. */
.cos-about-media figcaption {
  position: absolute;
  inset: auto 0 0 0;
  padding: 14px 20px;
  background: rgba(6, 40, 22, .82);
  color: #fff;
  font-size: 14px;
  line-height: 1.5;
}

/* ---- Section index ---------------------------------------------- */

.cos-abouthub {
  background: #fff;
  border: 1px solid #e9efe9;
  border-radius: 16px;
  padding: 26px 26px 18px;
  height: 100%;
}

.cos-abouthub h3 {
  font-family: "Manrope", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: 11.5px;
  font-weight: 800;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: var(--cos-green, var(--tum-primary));
  margin: 0 0 6px;
  padding-bottom: 12px;
  border-bottom: 1px solid #eef2ee;
}

.cos-abouthub ul { list-style: none; margin: 0; padding: 0; }

.cos-abouthub li + li { border-top: 1px solid #f2f6f2; }

.cos-abouthub a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 13px 0;
  color: var(--cos-ink, var(--tum-ink));
  font-size: 15px;
  font-weight: 500;
  text-decoration: none;
  transition: color .18s ease;
}

/* The arrow is the affordance, so it stays out of the way until the
   row is the one being read. */
.cos-abouthub a i {
  flex: none;
  font-size: 12px;
  color: var(--cos-gold, var(--tum-accent));
  opacity: 0;
  transform: translateX(-4px);
  transition: opacity .18s ease, transform .18s ease;
}

.cos-abouthub a:hover,
.cos-abouthub a:focus-visible { color: var(--cos-green, var(--tum-primary)); }

.cos-abouthub a:hover i,
.cos-abouthub a:focus-visible i { opacity: 1; transform: translateX(0); }

@media (prefers-reduced-motion: reduce) {
  .cos-abouthub a,
  .cos-abouthub a i { transition: none; }
  .cos-abouthub a i { transform: none; }
}

/* With no photograph the intro is centred, so anything inside it that was
   left-aligned by default has to follow — otherwise the eyebrow and the
   button drift off the axis the prose now sits on. */
.cos-about-intro--wide .cos-sec-head { text-align: center; }
.cos-about-intro--wide .sch-lead,
.cos-about-intro--wide .sch-prose { margin-inline: auto; max-width: 70ch; }

/* ---- Vice-Chancellor's message ---------------------------------- */

/* A quotation, so it is marked up as one — but without the hanging
   quote marks a pull-quote would carry. This is a signed statement,
   not an extract from one. */
.cos-vc-message {
  margin: 0;
  padding: 0 0 0 20px;
  border-left: 3px solid var(--cos-gold, var(--tum-accent));
}

.cos-vc-message p:last-child { margin-bottom: 0; }

.cos-vc-sign {
  margin: 22px 0 26px;
  line-height: 1.4;
}

.cos-vc-sign .nm {
  display: block;
  font-family: "Fraunces", Georgia, serif;
  font-size: 19px;
  color: var(--cos-ink, var(--tum-ink));
}

.cos-vc-sign .ro {
  display: block;
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--cos-gold, var(--tum-accent));
  margin-top: 4px;
}

/* A portrait is read at the face, so it keeps a taller crop than the
   landscape photograph this slot used to hold — but at half the width it
   had, which is enough to recognise somebody beside their own words
   without the picture becoming the section.

   min-height is dropped with it: at this column width the 4:5 ratio sets
   the height on its own, and a floor of 420px would have overridden it
   and stretched the crop. */
.cos-vc-portrait img { min-height: 0; aspect-ratio: 4 / 5; }

/* Stacked on a phone, a full-width portrait is a screenful of face before
   any of the message. Held to a readable width and centred instead. */
@media (max-width: 991.98px) {
  .cos-vc-portrait { max-width: 260px; margin-inline: auto; }
  .cos-vc-portrait img { aspect-ratio: 4 / 5; }
}

/* ---- Card icons ------------------------------------------------- */

/* The icon sat above the heading as its own block, so on a card whose
   heading ran to one line it floated with the space of a full row
   beneath it and no relationship to the words. Icon and heading now
   share a row and are centred against each other; the paragraph keeps
   the full width of the card underneath.

   Done with grid rather than a wrapper element so the markup — which
   is repeated across seven views — does not have to change.

   :has(> h4) is what makes that safe. academics/schools reuses
   `sch-feature` as a utility class on a 54px icon badge rather than on
   a card, and turning that span into a grid container would be
   meaningless at best. Matching on the heading picks out the card form
   and leaves the badge alone; a browser without :has() simply keeps
   the old stacked layout, which is a fallback rather than a break. */
.sch-vm:has(> h4),
.sch-feature:has(> h4) {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  column-gap: 16px;
}

/* Everything that is not the icon or the heading spans the card. Stated as
   a default rather than as a rule per element on purpose: these cards hold
   a <p> in some views and a rich-text <div> in others, and naming only <p>
   left the <div> to auto-placement, which dropped it into the narrow icon
   column and squeezed the mission statement into a ribbon. */
.sch-vm:has(> h4) > *,
.sch-feature:has(> h4) > * {
  grid-column: 1 / -1;
  margin-bottom: 0;
}

.sch-vm:has(> h4) > .ico,
.sch-feature:has(> h4) > .ico {
  grid-column: 1;
  grid-row: 1;
  margin-bottom: 0;
}

.sch-vm:has(> h4) > h4,
.sch-feature:has(> h4) > h4 {
  grid-column: 2;
  grid-row: 1;
  margin: 0;
}

.sch-vm:has(> h4) > h4 ~ *,
.sch-feature:has(> h4) > h4 ~ * {
  margin-top: 16px;
}

/* Rich text arrives wrapped in its own paragraphs; the last one's bottom
   margin would otherwise sit inside the card as unexplained space. */
.sch-vm:has(> h4) > * > p:last-child,
.sch-feature:has(> h4) > * > p:last-child { margin-bottom: 0; }

/* ---- Vision & mission ------------------------------------------- */

/* Two statements the University has weighed carefully, so they are set
   as statements: a small label, the sentence at reading size in the
   display face, and a hairline between them. No panel, no radius, no
   shadow — the words are the object, and a coloured box around a
   sentence is a way of not trusting it. */

.cos-statements {
  display: grid;
  gap: 34px;
}

@media (min-width: 992px) {
  .cos-statements {
    grid-template-columns: 1fr 1fr;
    gap: 0 56px;
  }

  /* The rule sits between the two, not around either. */
  .cos-statements > * + * {
    padding-left: 56px;
    border-left: 1px solid color-mix(in srgb, var(--tum-primary) 18%, transparent);
  }
}

.cos-statement .lbl {
  font-size: 11.5px;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--cos-gold, var(--tum-accent));
  margin: 0 0 14px;
}

.cos-statement .stmt p {
  font-family: "Fraunces", Georgia, serif;
  font-size: clamp(19px, 1.9vw, 25px);
  line-height: 1.45;
  color: var(--cos-ink, var(--tum-ink));
  margin: 0 0 12px;
}

.cos-statement .stmt p:last-child { margin-bottom: 0; }

/* ------------------------------------------------------------------
   Core Values — an accordion of principles beside a stage, not a card grid

   Composition: heading, then a two-column row at desktop — a column of
   native <details> rows on the left, a photograph-or-texture panel on the
   right that echoes whichever row is open. Below 992px the columns stack
   and the panel becomes a short mood banner above the list (or disappears
   entirely if no photograph is set — an echo panel with nothing to echo
   into isn't worth the space on a small screen).

   Why <details>: it is the one native element built for "a label plus the
   content it discloses" — focusable and operable by keyboard with zero
   custom JS, and a screen reader announces its own expanded/collapsed
   state without any ARIA authored here. `name="cos-values"` on every row
   groups them so opening one closes the rest, in any browser that
   understands the attribute (Baseline since late 2023); a browser that
   does not simply leaves every row independently toggleable, which is
   still a complete, working list.

   Why the photo moved out of the band: painted across the whole section
   behind the text, it was competing with the words for attention no
   matter how it was tinted. Contained in its own panel, away from every
   line of body copy, it can be shown at real strength without a fight —
   and the two jobs (readable text, a photograph with presence) stop
   pulling the same background layer in opposite directions.

   The panel is sized by CSS Grid's default stretch, not JavaScript or a
   sticky position: at any row count the two columns end the same height
   with no offset to compute against the sticky masthead and no risk of
   the panel drifting under the header on a screen this was not tested on.
   ------------------------------------------------------------------ */

.cos-values-section {
  position: relative;
  background-color: var(--tum-primary-dark);
  color: #fff;
  padding-block: clamp(64px, 8vw, 104px);
}

.cos-values-head { margin-bottom: clamp(32px, 4vw, 48px); }

.cos-values-count {
  margin: 0;
  max-width: 46ch;
  font-size: 15.5px;
  line-height: 1.6;
  color: rgba(255, 255, 255, .68);
}

/* ---- Two-column frame ---- */

.cos-values {
  display: flex;
  flex-direction: column;
  gap: clamp(28px, 4vw, 40px);
}

@media (min-width: 992px) {
  .cos-values {
    display: grid;
    grid-template-columns: 1.15fr 0.85fr;
    align-items: stretch;
    gap: clamp(40px, 5vw, 72px);
  }
}

/* ---- The list ---- */

.cos-values__list {
  display: flex;
  flex-direction: column;
}

.cos-value {
  border-top: 1px solid rgba(255, 255, 255, .18);
}

.cos-value:last-child { border-bottom: 1px solid rgba(255, 255, 255, .18); }

.cos-value__summary {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: baseline;
  gap: 20px;
  padding-block: clamp(18px, 2.4vw, 26px);
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

/* Kill the browser's own disclosure triangle in both marker dialects so
   ours (.cos-value__icon) is the only affordance shown. */
.cos-value__summary::-webkit-details-marker { display: none; }
.cos-value__summary::marker { content: ""; }
.cos-value__summary { list-style: none; }

.cos-value__summary:focus-visible {
  outline: 2px solid #F0C579;
  outline-offset: 6px;
  border-radius: 2px;
}

.cos-value__num {
  font-family: "Fraunces", Georgia, serif;
  font-style: italic;
  font-weight: 600;
  font-size: clamp(19px, 1.7vw, 24px);
  line-height: 1;
  color: rgba(255, 255, 255, .7); /* .4 was 2.6:1 on the dark green; .7 is 4.6:1 */
  font-variant-numeric: tabular-nums;
  transition: color .2s ease;
}

.cos-value__title {
  font-family: "Fraunces", Georgia, serif;
  font-weight: 600;
  font-size: clamp(19px, 1.9vw, 25px);
  line-height: 1.3;
  color: rgba(255, 255, 255, .78);
  transition: color .2s ease;
}

/* A plus that becomes a minus — the standard, legible affordance for
   "this is open, activating it again will close it." Two bars drawn with
   pseudo-elements rather than an icon font, so nothing here depends on
   Font Awesome having loaded. */
.cos-value__icon {
  position: relative;
  width: 20px;
  height: 20px;
  flex: none;
  align-self: center;
}

.cos-value__icon::before,
.cos-value__icon::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  background: rgba(255, 255, 255, .55);
  transition: transform .25s ease, opacity .25s ease, background-color .2s ease;
}

.cos-value__icon::before { width: 14px; height: 1.5px; transform: translate(-50%, -50%); }
.cos-value__icon::after  { width: 1.5px; height: 14px; transform: translate(-50%, -50%); }

.cos-value__summary:hover .cos-value__num,
.cos-value[open] .cos-value__num { color: #F0C579; }

.cos-value__summary:hover .cos-value__title,
.cos-value[open] .cos-value__title { color: #fff; }

.cos-value[open] .cos-value__icon::after { transform: translate(-50%, -50%) rotate(90deg); opacity: 0; }
.cos-value[open] .cos-value__icon::before { background: #F0C579; }

/* ---- The disclosure panel ---- */

/* The UA stylesheet hides everything after <summary> with `display:none`
   the instant a <details> closes — fine for content, fatal for an
   animation, since a property can't transition to or from "not rendered."
   Forcing `display:grid` on every child, open or closed, defeats that
   default so our own grid-template-rows collapse is what actually hides
   the panel — the one place this file reaches for !important, because it
   is overriding UA behaviour rather than fighting another author rule. */
.cos-value > .cos-value__panel { display: grid !important; }

.cos-value__panel {
  grid-template-rows: 0fr;
  opacity: 0;
  transition: grid-template-rows .35s ease, opacity .25s ease;
}

.cos-value[open] .cos-value__panel {
  grid-template-rows: 1fr;
  opacity: 1;
}

.cos-value__panel-inner { overflow: hidden; min-height: 0; }

.cos-value__panel-inner p {
  margin: 0;
  padding: 0 0 clamp(20px, 2.4vw, 28px) 44px;
  max-width: 58ch;
  font-size: 16px;
  line-height: 1.75;
  color: rgba(255, 255, 255, .75);
}

/* Lines up under the title, not the number — 44px is the number column's
   own width (its widest value, "88", plus the row gap). */

/* ---- The stage ---- */

.cos-values__stage {
  position: relative;
  min-height: 380px;
  overflow: hidden;
  display: flex;
  align-items: flex-end;
  padding: clamp(24px, 3vw, 40px);
  background-color: #0a6b3c;
  background-image: linear-gradient(150deg, #0d7a44, #044722);
  background-size: cover;
  background-position: center;
}

.cos-values__echo {
  font-family: "Fraunces", Georgia, serif;
  font-style: italic;
  font-weight: 600;
  font-size: clamp(26px, 2.6vw, 36px);
  line-height: 1.2;
  color: #fff;
  max-width: 18ch;
  transition: opacity .2s ease, transform .2s ease;
}

.cos-values__echo.is-swapping { opacity: 0; transform: translateY(6px); }

@media (max-width: 991.98px) {
  .cos-values__stage {
    order: -1;
    min-height: 0;
    aspect-ratio: 16 / 9;
  }

  /* An echo panel with nothing to echo into is empty decoration on a
     screen that has no room to spare — it only earns its place here
     when there is a real photograph behind it. */
  .cos-values__stage:not(.has-photo) { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .cos-value__num,
  .cos-value__title,
  .cos-value__icon::before,
  .cos-value__icon::after,
  .cos-value__panel,
  .cos-values__echo {
    transition: none !important;
  }
}

/* ------------------------------------------------------------------
   Apply / funding strip

   Was two full-width rows — a sentence, then a button pushed to the far
   right — stacked with a hairline between them. At desktop width the eye
   had to travel the whole page to get from the offer to the action, and
   the two routes read as a list rather than as the pair of choices they
   are.

   Now a two-up grid of cards on the same green band: each route gets an
   icon, a short title, its supporting line and its own action, side by
   side so they can be compared at a glance. The card itself is the link,
   so the target is the whole panel rather than a few words at the end.
   ------------------------------------------------------------------ */

.cos-apply__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 20px;
}

.cos-apply__card {
  display: flex;
  /* The icon centres against the card rather than hanging off the top of
     it: with two lines of copy beside a 52px tile, top alignment left the
     icon sitting above the text it belongs to. */
  align-items: center;
  gap: 18px;
  padding: 26px 28px;
  border-radius: 16px;
  text-decoration: none;
  color: #fff;
  /* A translucent panel rather than a solid one, so the band's gradient
     still reads through and the cards belong to it. */
  background: rgba(255, 255, 255, .08);
  border: 1px solid rgba(255, 255, 255, .16);
  transition: transform .2s ease, background .2s ease, border-color .2s ease;
}

.cos-apply__card:hover,
.cos-apply__card:focus-visible {
  transform: translateY(-3px);
  background: rgba(255, 255, 255, .13);
  border-color: color-mix(in srgb, var(--tum-accent) 60%, transparent);
  color: #fff;
}
.cos-apply__card:focus-visible { outline: 2px solid var(--cos-gold, var(--tum-accent)); outline-offset: 3px; }

.cos-apply__card .ico {
  flex-shrink: 0;
  width: 52px; height: 52px;
  border-radius: 14px;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 22px;
  background: var(--cos-gold, var(--tum-accent));
  color: var(--cos-ink, var(--tum-ink));
  transition: transform .2s ease;
}
.cos-apply__card.is-ghost .ico {
  /* The secondary route keeps the same shape, in a quieter treatment. */
  background: rgba(255, 255, 255, .14);
  color: #fff;
}
.cos-apply__card:hover .ico { transform: scale(1.06); }

.cos-apply__card .body {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
  /* Takes the rest of the row. Without this the column is only as wide as
     its text, so "right" would mean the end of the sentence rather than
     the edge of the card — and would move as the copy changed. */
  flex: 1 1 auto;
}

.cos-apply__card .t {
  font-family: "Fraunces", Georgia, serif;
  font-size: 20px; line-height: 1.2;
  color: #fff;
}
.cos-apply__card .s {
  font-size: 15px; line-height: 1.55;
  color: rgba(255, 255, 255, .82);
}

.cos-apply__card .cta {
  display: inline-flex; align-items: center; gap: 8px;
  /* .body is a column, so the CTA is pushed to the trailing edge with
     align-self rather than a margin — it ends the card where the eye
     leaves it, under the copy and to the right. */
  align-self: flex-end;
  margin-top: 12px;
  font-size: 15px; font-weight: 700;
  color: var(--cos-gold, var(--tum-accent));
}
.cos-apply__card.is-ghost .cta { color: #fff; }
.cos-apply__card .cta i { transition: transform .2s ease; }
.cos-apply__card:hover .cta i { transform: translateX(4px); }

@media (max-width: 575.98px) {
  .cos-apply__card { padding: 22px; gap: 14px; }
  .cos-apply__card .ico { width: 44px; height: 44px; font-size: 19px; }
  .cos-apply__card .t { font-size: 18px; }
}

@media (prefers-reduced-motion: reduce) {
  .cos-apply__card, .cos-apply__card .ico, .cos-apply__card .cta i { transition: none; }
  .cos-apply__card:hover { transform: none; }
}

/* ------------------------------------------------------------------
   "See more" links under the events and notices lists

   These were solid green pills — the same weight the page gives "Apply
   Now" — for what is really a tertiary action: carry on reading the
   list you are already looking at. Two of them at full button weight
   pulled attention away from the actual call to action.

   They now use the theme's own "more" idiom (small caps, green, arrow)
   which the news cards already use, right-aligned under the column so
   the eye finishes the list and finds the way onward at the end of it.
   ------------------------------------------------------------------ */

.cos-more-row {
  display: flex;
  justify-content: flex-end;
  margin-top: 22px;
  /* A hairline tying the link to the list it continues. */
  border-top: 1px solid color-mix(in srgb, var(--tum-primary) 12%, transparent);
  padding-top: 16px;
}

.cos-more {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: var(--cos-green, var(--tum-primary));
  text-decoration: none;
  padding: 6px 2px;
  border-bottom: 2px solid transparent;
  transition: color .2s ease, border-color .2s ease;
}

.cos-more i { transition: transform .2s ease; }

.cos-more:hover,
.cos-more:focus-visible {
  color: var(--cos-gold, var(--tum-accent));
  border-bottom-color: var(--cos-gold, var(--tum-accent));
}
.cos-more:hover i,
.cos-more:focus-visible i { transform: translateX(4px); }

@media (prefers-reduced-motion: reduce) {
  .cos-more, .cos-more i { transition: none; }
}

/* ------------------------------------------------------------------
   Brand wordmark  (cosmos)

   The masthead holds the wordmark, the navigation and the right-hand
   actions on one line, and what fits changes three times across the
   range:

     ≥1200px   The navigation comes out of the hamburger and needs the
               whole bar, so the wordmark gives way to the logo alone.
     768–1199  Logo and full name, with the name shrinking as the bar
               narrows rather than wrapping into the buttons.
     <768px    Neither the name nor a shrunk name clears the logo and
               the two action buttons, so the acronym stands in its
               place, centred between them.

   Hidden always means visually hidden, never removed. The full name
   stays in the document at every width, so the accessible name of the
   link and what a crawler reads are the same everywhere — which is
   also why the acronym carries aria-hidden: it is a picture of the
   name, not a second one.

   The acronym itself comes from Admin → Settings → General.
   ------------------------------------------------------------------ */

/* --- ≥1200: logo only ------------------------------------------------ */

@media (min-width: 1200px) {
  .brand-responsive {
    position: absolute !important;
    width: 1px; height: 1px;
    margin: -1px; padding: 0; border: 0;
    overflow: hidden; white-space: nowrap;
    clip: rect(0 0 0 0); clip-path: inset(50%);
  }
  /* The tagline sits under the wordmark and goes with it. */
  .brand-text .brand-sub { display: none; }
}

/* --- 768–1199: full name, shrinking to fit --------------------------- */

@media (min-width: 768px) and (max-width: 1199.98px) {
  .cos-bar .brand-name {
    font-size: clamp(14px, 1.55vw, 18px);
    max-width: 20ch;
  }
}

/* --- <768: acronym, centred ------------------------------------------ */

.cos-bar .brand-acronym { display: none; }

@media (max-width: 767.98px) {
  .brand-responsive {
    position: absolute !important;
    width: 1px; height: 1px;
    margin: -1px; padding: 0; border: 0;
    overflow: hidden; white-space: nowrap;
    clip: rect(0 0 0 0); clip-path: inset(50%);
  }

  .cos-bar .brand-acronym {
    display: block;
    font-family: "Fraunces", Georgia, serif;
    font-weight: 600;
    font-size: clamp(19px, 5.5vw, 26px);
    line-height: 1;
    letter-spacing: .02em;
    color: var(--cos-ink, var(--tum-ink));
    white-space: nowrap;
  }

  /* Logo left, acronym centred, actions right — the brand takes the
     space between them so the acronym has something to centre in. */
  .cos-bar .navbar-brand { flex: 1 1 auto; min-width: 0; }
  .cos-bar .brand-text   { flex: 1 1 auto; min-width: 0; align-items: center; }

  /* A tall logo plus the buttons is already most of a phone's width. */
  .cos-bar .brand-logo { height: 44px; max-width: 130px; }

  /* The tagline has no wordmark above it to sit under at this width (that's
     what .brand-responsive just clipped) — left visible it floats as a stray
     line over the acronym instead of going with the name it belongs to. */
  .brand-text .brand-sub { display: none; }
}

/* ------------------------------------------------------------------
   Footer base rule

   The faint hairline above the copyright row was a border on .copyright,
   which sits inside .container — so it stopped at the grid's edge and
   looked like an unfinished line rather than a rule closing the page.

   The row now lives in a full-width band of its own, with the rule as
   that band's top border: gold, and running the whole width of the page.
   The text inside stays on the container so it still lines up with the
   footer columns above it.
   ------------------------------------------------------------------ */

.footer-base {
  border-top: 2px solid var(--cos-gold, var(--tum-accent));
  margin-top: 40px;
}

/* The border moved to the band; what is left here is the row's own
   spacing and type. */
.sch-footer .copyright {
  border-top: 0;
  margin-top: 0;
  padding-top: 24px;
}

/* Legal links in the base band. Separated by a hairline pipe rather than a
   middot so the row still reads as a list when it wraps on a phone. */
.footer-legal { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 18px; }
.footer-legal a {
  position: relative;
  color: rgba(255, 255, 255, .72);
  text-decoration: none;
  transition: color .2s ease;
}
.footer-legal a + a::before {
  content: "";
  position: absolute; left: -9px; top: 50%;
  width: 1px; height: 12px;
  transform: translateY(-50%);
  background: rgba(255, 255, 255, .22);
}
.footer-legal a:hover,
.footer-legal a:focus-visible { color: var(--cos-gold, var(--tum-accent)); }
/* ------------------------------------------------------------------
   Base band type

   The copyright line and the legal links are the page's last word and
   they were set at 55%/78% white, which reads as disabled text rather
   than as a statement of ownership. Both go solid white and bold.

   Specificity note: the theme sets these as `.sch-footer .copyright`
   and `.sch-footer .copyright a`, so a bare `.footer-legal a` loses on
   specificity no matter how late this file loads. The selectors below
   match through .sch-footer for that reason.
   ------------------------------------------------------------------ */

.sch-footer .copyright {
  color: #fff;
  font-weight: 700;
}

.sch-footer .copyright .footer-legal a {
  color: #fff;
  font-weight: 700;
}

/* The separators stay faint — they are punctuation, not content, and at
   full white they would compete with the links they divide. */
.sch-footer .copyright .footer-legal a + a::before {
  background: rgba(255, 255, 255, .35);
}

.sch-footer .copyright .footer-legal a:hover,
.sch-footer .copyright .footer-legal a:focus-visible {
  color: var(--cos-gold, var(--sch-gold, var(--tum-accent)));
}

/* ------------------------------------------------------------------
   Back-to-top button

   Bottom-of-page chrome, so it lives with the footer. It was the same
   green as the primary buttons it floats over, which made it read as
   another call to action; gold marks it as navigation instead, and
   matches the rule closing the footer directly beneath it.

   Gold on white is far too low-contrast for an icon, so the chevron is
   the ink already used for gold buttons elsewhere (.cc-btn--gold).
   ------------------------------------------------------------------ */

.scrollToTop {
  background: var(--cos-gold, var(--sch-gold, var(--tum-accent)));
  color: var(--cos-ink, var(--sch-ink, var(--tum-ink)));
  box-shadow: 0 4px 14px rgba(0, 0, 0, .22);
  transition: background .2s ease, transform .2s ease;
}

.scrollToTop:hover,
.scrollToTop:focus-visible {
  background: #e8a94a;
  color: var(--cos-ink, var(--sch-ink, var(--tum-ink)));
  transform: translateY(-2px);
}

@media (prefers-reduced-motion: reduce) {
  .scrollToTop { transition: none; }
  .scrollToTop:hover, .scrollToTop:focus-visible { transform: none; }
}
/* ==================================================================
   Footer — structure and type

   Measured against the footers of Cambridge, MIT and Oxford, the old
   one had three problems: it opened with a link list rather than with
   the institution; its columns mixed topics ("Explore") with audiences
   ("Portals"); and the column headings were set in the same serif
   display face as page headlines, which made wayfinding compete with
   editorial.

   So: four navigation columns on one scheme — contact, study,
   institution, news — with the service portals given the widest
   column because on this site they are what most people came down
   here to find. Ways of reaching the University, the social channels
   included, all sit together in the first column.
   ================================================================== */

/* ---- Follow row (inside Contact) --------------------------------- */

.sch-footer .foot-follow { margin-top: 22px; }

.sch-footer .foot-follow__label {
  display: block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .55);
  margin-bottom: 12px;
}

/* The theme spaces this row for the layout it used to sit in. */
.sch-footer .foot-follow .socials { margin-top: 0; }

/* ---- Column headings -------------------------------------------- */

/* Small, spaced and capitalised rather than serif display: a footer
   heading is a signpost, and the wordmark above should be the only
   thing in here set in the display face. The gold tick under each one
   is the single repeated accent tying the columns together. */
.sch-footer .foot-col h6 {
  font-family: "Manrope", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: 11.5px;
  font-weight: 800;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: #fff;
  margin: 0 0 18px;
  padding-bottom: 11px;
  position: relative;
}

.sch-footer .foot-col h6::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 26px;
  height: 2px;
  background: var(--cos-gold, var(--sch-gold, var(--tum-accent)));
}

/* ---- Links ------------------------------------------------------- */

.sch-footer .foot-col .flinks li { margin-bottom: 9px; }

.sch-footer .foot-col .flinks a {
  display: inline-block;
  font-size: 14.5px;
  line-height: 1.45;
  transition: color .18s ease, transform .18s ease;
}

.sch-footer .foot-col .flinks a:hover,
.sch-footer .foot-col .flinks a:focus-visible { transform: translateX(3px); }

/* Says the link leaves tum.ac.ke. Drawn in CSS rather than pulled from
   the icon font so it cannot arrive as a missing-glyph box. */
.sch-footer .foot-ext::after {
  content: "\2197";
  display: inline-block;
  margin-left: 5px;
  font-size: .82em;
  opacity: .55;
  transition: opacity .18s ease;
}

.sch-footer .foot-ext:hover::after { opacity: 1; }

/* ---- Contact ----------------------------------------------------- */

.sch-footer .foot-contact p {
  display: flex;
  gap: 11px;
  font-size: 14.5px;
  line-height: 1.55;
  margin: 0 0 12px;
}

.sch-footer .foot-contact i {
  flex: none;
  width: 15px;
  margin-top: 4px;
  color: var(--cos-gold, var(--sch-gold, var(--tum-accent)));
}

.sch-footer .foot-contact__more { margin-top: 16px; }
/* Several telephone lines under one icon, stacked so the second and
   third align with the first rather than running on as a sentence. */
.sch-footer .foot-phones {
  display: flex;
  flex-direction: column;
  gap: 4px;
}


.sch-footer .foot-contact__more a {
  font-weight: 600;
  border-bottom: 1px solid rgba(255, 255, 255, .25);
  padding-bottom: 2px;
}

.sch-footer .foot-contact__more a:hover {
  border-bottom-color: var(--cos-gold, var(--sch-gold, var(--tum-accent)));
}

/* ---- Portals ----------------------------------------------------- */

/* On a phone the two portal lists side by side leave each about twelve
   characters wide, so they stack instead. */
@media (max-width: 575.98px) {
  .sch-footer .foot-portals .row > [class*="col-"] { width: 100%; }
  .sch-footer .foot-portals .row > [class*="col-"] + [class*="col-"] .flinks { margin-top: 9px; }
}

/* The columns need their own vertical rhythm once they wrap onto
   several rows on a tablet. */
@media (max-width: 991.98px) {
  .sch-footer .foot-col { margin-bottom: 8px; }
}

@media (prefers-reduced-motion: reduce) {
  .sch-footer .foot-col .flinks a { transition: color .18s ease; }
  .sch-footer .foot-col .flinks a:hover,
  .sch-footer .foot-col .flinks a:focus-visible { transform: none; }
}

/* ------------------------------------------------------------------
   Cookie consent banner

   Self-hosted, so this is the whole of it — no vendor stylesheet, no
   external font, nothing to allow through the content security policy.

   It sits at the foot of the window rather than covering the page: a
   visitor can read what they came for while deciding, which is both
   kinder and less likely to produce a reflexive "accept all".
   ------------------------------------------------------------------ */

.cc {
  position: fixed;
  left: 0; right: 0; bottom: 0;
  z-index: 1080;
  background: var(--cos-green-dark, var(--tum-primary-dark));
  border-top: 3px solid var(--cos-gold, var(--tum-accent));
  color: #fff;
  box-shadow: 0 -10px 40px rgba(5, 45, 23, .28);
}

.cc__inner {
  max-width: 1140px;
  margin-inline: auto;
  padding: 20px 24px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px 28px;
}

.cc__copy { flex: 1 1 380px; min-width: 0; }
.cc__copy h2 { font-family: "Fraunces", Georgia, serif; font-size: 19px; margin: 0 0 6px; color: #fff; }
.cc__copy p  { margin: 0; font-size: 14px; line-height: 1.55; color: rgba(255, 255, 255, .85); }
.cc__copy a  { color: var(--cos-gold, var(--tum-accent)); text-decoration: underline; }

/* The per-category choices, revealed by "Choose". */
.cc__choices { flex: 1 1 100%; }
.cc__cats { display: flex; flex-wrap: wrap; gap: 12px 28px; }
.cc-cat {
  display: flex; align-items: flex-start; gap: 10px;
  max-width: 460px; cursor: pointer;
}
.cc-cat input { margin-top: 3px; flex-shrink: 0; }
.cc-cat strong { display: block; font-size: 14px; color: #fff; }
.cc-cat small  { display: block; font-size: 13px; line-height: 1.5; color: rgba(255, 255, 255, .75); }

.cc__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-left: auto; }

.cc-btn {
  border: 0; border-radius: 999px;
  padding: 11px 22px;
  font-size: 14px; font-weight: 700;
  cursor: pointer;
  transition: background .2s ease, border-color .2s ease, color .2s ease;
}
.cc-btn--gold  { background: var(--cos-gold, var(--tum-accent)); color: var(--cos-ink, var(--tum-ink)); }
.cc-btn--gold:hover  { background: #e8a94a; }
.cc-btn--ghost { background: transparent; color: #fff; border: 1.5px solid rgba(255, 255, 255, .45); }
.cc-btn--ghost:hover { border-color: var(--cos-gold, var(--tum-accent)); color: var(--cos-gold, var(--tum-accent)); }
.cc-btn:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }

@media (max-width: 767.98px) {
  .cc__inner   { padding: 18px; gap: 14px; }
  .cc__actions { margin-left: 0; width: 100%; }
  .cc-btn      { flex: 1 1 auto; }
}

/* ------------------------------------------------------------------
   Schools & Institutes slider  +  partners marquee
   ------------------------------------------------------------------ */

/* ── Schools: a snapping horizontal track of banner cards ─────────── */
.cos-sch-slider { position: relative; }

.cos-sch-track {
  display: flex;
  gap: var(--cos-sch-gap, 22px);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  /* Matches the 2px side padding below, so the first card's snap point is
     scroll position 0. Without it the browser snaps the track 2px on load —
     a scroll, which makes Chrome stop recording Largest Contentful Paint and
     left the home page with no LCP at all (Lighthouse performance 0). */
  scroll-padding-inline: 2px;
  scroll-behaviour: smooth;
  scroll-behavior: smooth;
  padding: 4px 2px 18px;
  /* The scrollbar is replaced by the arrows and the cards' own overhang. */
  scrollbar-width: none;
}
.cos-sch-track::-webkit-scrollbar { display: none; }
.cos-sch-track:focus-visible { outline: 2px solid var(--cos-gold, var(--tum-accent)); outline-offset: 4px; border-radius: 16px; }

.cos-sch-card {
  /* Four to a view on a desktop, so a page of the slider is a full row rather
     than an arbitrary number of cards with one cut off at the edge. The width
     is derived from the gap so the arithmetic stays right if the gap changes. */
  --cos-sch-gap: 22px;
  --cos-sch-per-view: 4;
  flex: 0 0 calc((100% - (var(--cos-sch-per-view) - 1) * var(--cos-sch-gap)) / var(--cos-sch-per-view));
  scroll-snap-align: start;
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid color-mix(in srgb, var(--tum-primary) 10%, transparent);
  border-radius: 16px;
  overflow: hidden;
  text-decoration: none;
  box-shadow: 0 6px 18px rgba(5, 45, 23, .05);
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.cos-sch-card:hover,
.cos-sch-card:focus-visible {
  transform: translateY(-4px);
  box-shadow: 0 18px 38px rgba(5, 45, 23, .13);
  border-color: color-mix(in srgb, var(--tum-accent) 55%, transparent);
}

/* The unit's own banner, set by its editors in the CMS. */
.cos-sch-card .media {
  position: relative;
  display: block;
  aspect-ratio: 16 / 9;
  background: linear-gradient(135deg, var(--cos-green-dark, var(--tum-primary-dark)), var(--cos-green, var(--tum-primary)));
  overflow: hidden;
}
.cos-sch-card .media img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .4s ease;
}
.cos-sch-card:hover .media img { transform: scale(1.05); }

/* Stand-in when a unit has not set a banner yet. */
.cos-sch-card .media .ph {
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
  color: rgba(255, 255, 255, .55); font-size: 40px;
}

.cos-sch-card .media .tag {
  position: absolute; left: 12px; bottom: 12px;
  background: rgba(255, 255, 255, .92);
  color: var(--cos-green-dark, var(--tum-primary-dark));
  font-size: 11px; font-weight: 700;
  letter-spacing: .10em; text-transform: uppercase;
  padding: 5px 10px; border-radius: 999px;
}

.cos-sch-card .body {
  display: flex; flex-direction: column; gap: 10px;
  padding: 18px 20px 20px;
  flex: 1 1 auto;
}
.cos-sch-card .name {
  font-family: "Fraunces", Georgia, serif;
  font-size: 18px; line-height: 1.25;
  color: var(--cos-ink, var(--tum-ink));
}
.cos-sch-card .go {
  margin-top: auto;
  font-size: 13px; font-weight: 600;
  color: var(--cos-gold, var(--tum-accent));
}
.cos-sch-card .go i { transition: transform .22s ease; margin-left: 4px; }
.cos-sch-card:hover .go i { transform: translateX(4px); }

/* Fewer per view as the room runs out; below that a card takes most of the
   width so the next one peeks in and the row reads as scrollable. */
@media (max-width: 1199.98px) { .cos-sch-card { --cos-sch-per-view: 3; } }
@media (max-width: 991.98px)  { .cos-sch-card { --cos-sch-per-view: 2; } }
@media (max-width: 575.98px)  { .cos-sch-card { flex-basis: 78vw; } }

/* Arrows sit outside the track on wide screens, over it on narrow ones. */
.cos-sch-nav {
  position: absolute; top: 38%; z-index: 3;
  width: 42px; height: 42px; border-radius: 50%;
  border: 1px solid color-mix(in srgb, var(--tum-primary) 15%, transparent);
  background: #fff; color: var(--cos-green-dark, var(--tum-primary-dark));
  box-shadow: 0 8px 20px rgba(5, 45, 23, .12);
  display: inline-flex; align-items: center; justify-content: center;
  cursor: pointer;
  transition: background .2s ease, color .2s ease, opacity .2s ease;
}
.cos-sch-nav:hover { background: var(--cos-green, var(--tum-primary)); color: #fff; }
.cos-sch-nav.prev { left: -18px; }
.cos-sch-nav.next { right: -18px; }
.cos-sch-nav[disabled] { opacity: .3; cursor: default; }
@media (max-width: 991.98px) {
  .cos-sch-nav.prev { left: 2px; }
  .cos-sch-nav.next { right: 2px; }
}

/* ── Partners: an uninterrupted marquee ───────────────────────────── */
/* A band of its own between two white sections, so the row of logos reads
   as a section rather than as something floating on the page. */
.cos-partners {
  padding-block: 56px;
  background: var(--sch-sand, var(--tum-surface));
  border-block: 1px solid color-mix(in srgb, var(--tum-primary) 8%, transparent);
}

.cos-marquee {
  overflow: hidden;
  /* Fades at both ends so logos enter and leave rather than being cut. */
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
          mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}
.cos-marquee__row { display: flex; width: max-content; animation: cos-marquee 38s linear infinite; }
.cos-marquee:hover .cos-marquee__row { animation-play-state: paused; }
.cos-marquee__set { display: flex; align-items: center; gap: 24px; padding-right: 24px; }

@keyframes cos-marquee {
  from { transform: translateX(0); }
  /* Exactly one set, so the second copy lands where the first began. */
  to   { transform: translateX(-50%); }
}

/* Each logo sits on its own white tile. Partner marks arrive in every
   shape, weight and background there is — a tall crest next to a wide
   wordmark next to something with its own white box baked in — and laid
   bare on the page they read as a jumble. A consistent tile gives them a
   common edge and a common ground, which is what makes a logo wall look
   deliberate rather than pasted together. */
.cos-partner {
  flex: 0 0 auto;
  display: inline-flex; align-items: center; justify-content: center;
  /* The tile takes the shape of the artwork it holds. Partner logos are
     supplied at 300 x 200, so the picture area is 3:2 and a logo fills it
     exactly — no bars down the sides, no cropping. The height is not set:
     it follows from the width and the ratio below, so changing the spec
     means changing one number. */
  width: 220px;
  /* No padding: the logo is the tile. The radius is clipped rather than
     inset, so the artwork reaches every edge. */
  padding: 0;
  overflow: hidden;
  background: #fff;
  border: 1px solid color-mix(in srgb, var(--tum-primary) 10%, transparent);
  border-radius: 14px;
  box-shadow: 0 4px 14px rgba(5, 45, 23, .04);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.cos-partner img {
  /* The logo fills the tile edge to edge. `cover` rather than `contain`,
     which is what makes the difference: at the supplied 300 x 200 the two
     are identical — the ratios match, so nothing is cropped — while
     anything off-spec fills the tile instead of sitting in a letterbox.
     The trade is that off-spec artwork loses its overflow, which is the
     right way round: a logo delivered to the stated size is never touched,
     and one that ignores it still looks deliberate. */
  width: 100%;
  aspect-ratio: 3 / 2;   /* 300 x 200 */
  height: auto;
  object-fit: cover;
  object-position: center;
  /* Muted at rest so the wall reads as one row, true colour on hover. */
  filter: grayscale(1); opacity: .7;
  transition: filter .25s ease, opacity .25s ease;
}
a.cos-partner:hover {
  transform: translateY(-3px);
  box-shadow: 0 14px 30px rgba(5, 45, 23, .10);
  border-color: color-mix(in srgb, var(--tum-accent) 50%, transparent);
}
a.cos-partner:hover img { filter: none; opacity: 1; }

@media (prefers-reduced-motion: reduce) {
  .cos-marquee__row { animation: none; }
  .cos-marquee { overflow-x: auto; }
  .cos-sch-track { scroll-behavior: auto; }
  .cos-sch-card, .cos-sch-card .media img, .cos-sch-card .go i { transition: none; }
  .cos-sch-card:hover { transform: none; }
}


/* ── News cards: four across, thumbnails that scale with the card ──────────
   The thumbnail was a fixed 180px strip, which was a reasonable shape at three
   cards to a row and a squat letterbox at four. A ratio keeps every card's
   picture the same shape whatever the column count, and object-fit: cover
   (already set) fills it without distortion. */
.sch-news-card .thumb {
  height: auto;
  aspect-ratio: 16 / 9;
}
.sch-news-card .thumb img { display: block; }

/* Titles and excerpts vary in length; pinning the footer keeps every "Read
   More" on the same line across the row. */
.sch-news-card .body { display: flex; flex-direction: column; flex: 1 1 auto; }
.sch-news-card .body .more { margin-top: auto; }

/* ------------------------------------------------------------------
   Spacing utilities: padding-block, margin-top, margin-bottom

   The theme gives every <section> `padding-block: 80px`. That is the
   right default and the wrong answer often enough that overriding it
   needed a stylesheet edit each time — which is how a page ends up with
   `mt-0 mb-0` on an inner element doing nothing, because the space was
   never a margin (or, going the other way, `mt-10` written expecting a
   pixel scale that plain Bootstrap never defines).

   These set the property directly, in pixels, from the markup:

       <section class="pb-30">   →   padding-block: 30px
       <div class="mt-40">       →   margin-top: 40px
       <div class="mb-15">       →   margin-bottom: 15px

   Each scale runs 10px to 200px in steps of 5, plus a `-none` for zero.

   Why they start at 10: Bootstrap already defines .mt-0 … .mt-5 and
   .mb-0 … .mb-5 on its rem-based spacer scale (0, .25, .5, 1, 1.5, 3rem),
   with !important — pb-* has no Bootstrap equivalent to collide with, but
   is held to the same floor for one scale across all three. Redefining
   0-5 would change the meaning of classes used all over the site and
   would lose the specificity fight anyway. Anything from 10 up is free —
   and `-none` exists because `-0` could not mean this scale's zero.

   Specificity: these carry !important, the way Bootstrap's own spacing
   utilities do. A version of this note once argued none was needed
   because .pb-30 (0,1,0) beats the `section` element selector (0,0,1) —
   true, but only for a bare element. The moment the target is styled
   through a descendant selector the utility silently loses: the footer's
   padding comes from `.sch-footer .container` (0,1,1), so `pb-50` on
   that container did nothing at all. A spacing utility that works on
   some elements and not others is worse than none, because the failure
   is invisible in the markup.
   ------------------------------------------------------------------ */

.pb-none { padding-block: 0 !important; }

.pb-10 { padding-block: 10px !important; }
.pb-15 { padding-block: 15px !important; }
.pb-20 { padding-block: 20px !important; }
.pb-25 { padding-block: 25px !important; }
.pb-30 { padding-block: 30px !important; }
.pb-35 { padding-block: 35px !important; }
.pb-40 { padding-block: 40px !important; }
.pb-45 { padding-block: 45px !important; }
.pb-50 { padding-block: 50px !important; }
.pb-55 { padding-block: 55px !important; }
.pb-60 { padding-block: 60px !important; }
.pb-65 { padding-block: 65px !important; }
.pb-70 { padding-block: 70px !important; }
.pb-75 { padding-block: 75px !important; }
.pb-80 { padding-block: 80px !important; }
.pb-85 { padding-block: 85px !important; }
.pb-90 { padding-block: 90px !important; }
.pb-95 { padding-block: 95px !important; }
.pb-100 { padding-block: 100px !important; }
.pb-105 { padding-block: 105px !important; }
.pb-110 { padding-block: 110px !important; }
.pb-115 { padding-block: 115px !important; }
.pb-120 { padding-block: 120px !important; }
.pb-125 { padding-block: 125px !important; }
.pb-130 { padding-block: 130px !important; }
.pb-135 { padding-block: 135px !important; }
.pb-140 { padding-block: 140px !important; }
.pb-145 { padding-block: 145px !important; }
.pb-150 { padding-block: 150px !important; }
.pb-155 { padding-block: 155px !important; }
.pb-160 { padding-block: 160px !important; }
.pb-165 { padding-block: 165px !important; }
.pb-170 { padding-block: 170px !important; }
.pb-175 { padding-block: 175px !important; }
.pb-180 { padding-block: 180px !important; }
.pb-185 { padding-block: 185px !important; }
.pb-190 { padding-block: 190px !important; }
.pb-195 { padding-block: 195px !important; }
.pb-200 { padding-block: 200px !important; }

/* ---- margin-top ---- */

.mt-none { margin-top: 0 !important; }

.mt-10 { margin-top: 10px !important; }
.mt-15 { margin-top: 15px !important; }
.mt-20 { margin-top: 20px !important; }
.mt-25 { margin-top: 25px !important; }
.mt-30 { margin-top: 30px !important; }
.mt-35 { margin-top: 35px !important; }
.mt-40 { margin-top: 40px !important; }
.mt-45 { margin-top: 45px !important; }
.mt-50 { margin-top: 50px !important; }
.mt-55 { margin-top: 55px !important; }
.mt-60 { margin-top: 60px !important; }
.mt-65 { margin-top: 65px !important; }
.mt-70 { margin-top: 70px !important; }
.mt-75 { margin-top: 75px !important; }
.mt-80 { margin-top: 80px !important; }
.mt-85 { margin-top: 85px !important; }
.mt-90 { margin-top: 90px !important; }
.mt-95 { margin-top: 95px !important; }
.mt-100 { margin-top: 100px !important; }
.mt-105 { margin-top: 105px !important; }
.mt-110 { margin-top: 110px !important; }
.mt-115 { margin-top: 115px !important; }
.mt-120 { margin-top: 120px !important; }
.mt-125 { margin-top: 125px !important; }
.mt-130 { margin-top: 130px !important; }
.mt-135 { margin-top: 135px !important; }
.mt-140 { margin-top: 140px !important; }
.mt-145 { margin-top: 145px !important; }
.mt-150 { margin-top: 150px !important; }
.mt-155 { margin-top: 155px !important; }
.mt-160 { margin-top: 160px !important; }
.mt-165 { margin-top: 165px !important; }
.mt-170 { margin-top: 170px !important; }
.mt-175 { margin-top: 175px !important; }
.mt-180 { margin-top: 180px !important; }
.mt-185 { margin-top: 185px !important; }
.mt-190 { margin-top: 190px !important; }
.mt-195 { margin-top: 195px !important; }
.mt-200 { margin-top: 200px !important; }

/* ---- margin-bottom ---- */

.mb-none { margin-bottom: 0 !important; }

.mb-10 { margin-bottom: 10px !important; }
.mb-15 { margin-bottom: 15px !important; }
.mb-20 { margin-bottom: 20px !important; }
.mb-25 { margin-bottom: 25px !important; }
.mb-30 { margin-bottom: 30px !important; }
.mb-35 { margin-bottom: 35px !important; }
.mb-40 { margin-bottom: 40px !important; }
.mb-45 { margin-bottom: 45px !important; }
.mb-50 { margin-bottom: 50px !important; }
.mb-55 { margin-bottom: 55px !important; }
.mb-60 { margin-bottom: 60px !important; }
.mb-65 { margin-bottom: 65px !important; }
.mb-70 { margin-bottom: 70px !important; }
.mb-75 { margin-bottom: 75px !important; }
.mb-80 { margin-bottom: 80px !important; }
.mb-85 { margin-bottom: 85px !important; }
.mb-90 { margin-bottom: 90px !important; }
.mb-95 { margin-bottom: 95px !important; }
.mb-100 { margin-bottom: 100px !important; }
.mb-105 { margin-bottom: 105px !important; }
.mb-110 { margin-bottom: 110px !important; }
.mb-115 { margin-bottom: 115px !important; }
.mb-120 { margin-bottom: 120px !important; }
.mb-125 { margin-bottom: 125px !important; }
.mb-130 { margin-bottom: 130px !important; }
.mb-135 { margin-bottom: 135px !important; }
.mb-140 { margin-bottom: 140px !important; }
.mb-145 { margin-bottom: 145px !important; }
.mb-150 { margin-bottom: 150px !important; }
.mb-155 { margin-bottom: 155px !important; }
.mb-160 { margin-bottom: 160px !important; }
.mb-165 { margin-bottom: 165px !important; }
.mb-170 { margin-bottom: 170px !important; }
.mb-175 { margin-bottom: 175px !important; }
.mb-180 { margin-bottom: 180px !important; }
.mb-185 { margin-bottom: 185px !important; }
.mb-190 { margin-bottom: 190px !important; }
.mb-195 { margin-bottom: 195px !important; }
.mb-200 { margin-bottom: 200px !important; }

/* ------------------------------------------------------------------
   Masthead chrome  (cosmos)

   The hamburger and the search button sit side by side in .cos-actions
   and are the only two controls in the bar below 1200px, so they are
   treated as a pair: same 42px circle, same hairline border, same
   fill-on-open behaviour. Bootstrap's default toggler is a squarish
   box with a grey icon, which next to the round search button read as
   two unrelated things.

   The icon is gold. Bootstrap 5.0 bakes the stroke colour into a data
   URI rather than exposing a custom property, so recolouring it means
   replacing the whole background-image — hence the two near-identical
   SVGs below. The second is the open state, where the button fills
   gold and the bars flip to ink so they stay legible.
   ------------------------------------------------------------------ */

.cos-bar .navbar-toggler {
  width: 42px;
  height: 42px;
  padding: 0;
  border: 1px solid color-mix(in srgb, var(--tum-accent) 45%, transparent);
  border-radius: 50%;
  align-items: center;
  justify-content: center;
  background: #fff;
  transition: background .2s, border-color .2s;
}

/* `display` is set here and nowhere else, deliberately.
   Bootstrap hides the toggler at the expand breakpoint with
   `.navbar-expand-xl .navbar-toggler { display: none }` — the same
   specificity as the rule above and earlier in the bundle, so an
   unconditional `display: inline-flex` up there quietly beat it and
   left the hamburger sitting next to the full menu on desktop.
   Confining it to the range where the menu is actually collapsed
   means Bootstrap's rule is never fought. */
@media (max-width: 1199.98px) {
  .cos-bar .navbar-toggler { display: inline-flex; }
}

.cos-bar .navbar-toggler .navbar-toggler-icon {
  width: 1.35em;
  height: 1.35em;
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%23D89837' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2.4' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

.cos-bar .navbar-toggler:hover,
.cos-bar .navbar-toggler[aria-expanded="true"] {
  background: var(--cos-gold, var(--sch-gold, var(--tum-accent)));
  border-color: var(--cos-gold, var(--sch-gold, var(--tum-accent)));
}

.cos-bar .navbar-toggler:hover .navbar-toggler-icon,
.cos-bar .navbar-toggler[aria-expanded="true"] .navbar-toggler-icon {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%2316261d' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2.4' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

.cos-bar .navbar-toggler:focus {
  box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--tum-accent) 25%, transparent);
}

/* ------------------------------------------------------------------
   Sticky masthead on the narrowest screens

   Only .cos-bar was sticky; the utility bar above it scrolled away, so
   the social links were gone after the first swipe with no way back to
   them short of scrolling to the top.

   The breakpoint is 575.98px and not a rounder number because it has
   to match the theme's `@media (max-width: 575.98px) { .cos-topbar
   .info { display: none } }` exactly. Below that the utility bar is
   one short row of social icons and is worth carrying down the page;
   above it the bar also holds the address, email and telephone lines,
   which wrap to two or three rows on a tablet and would take a third
   of the screen with them. Change one of these two queries and you
   must change the other.

   Both rows stick together, and the header itself does the sticking
   rather than each row separately — two sticky siblings would need
   .cos-bar's `top` to equal the utility bar's height, which is a
   number that changes the moment that row wraps. Making the header the
   sticky box means the browser measures it instead.

   The header's `display: contents` exists so a sticky child is not
   trapped inside a short parent (see the theme). That reason falls
   away when the header is the thing sticking, so it becomes a block
   here and .cos-bar stands down.
   ------------------------------------------------------------------ */

@media (max-width: 575.98px) {
  .cos-header {
    display: block;
    position: sticky;
    top: 0;
    z-index: 1040;
  }

  .cos-bar { position: static; }

  /* A sticky box taller than the viewport stops sticking, and the open
     menu is inside this one — so the theme's 74vh comes down enough to
     leave room for both bars above it. */
  .cos-bar .navbar-collapse { max-height: calc(100vh - 150px); }
}

/* ------------------------------------------------------------------
   Strategic Plan — embedded PDF

   The download row above this is unchanged theme styling (.sch-file-cat /
   .sch-file-row); this file only styles the frame the document itself
   sits in below it.

   A fixed height rather than a viewport-relative one: a PDF paginates
   internally regardless of how tall its frame is, so there is no content
   to reveal by growing the box — only more or less of the browser's own
   scrollbar-and-toolbar chrome around page one. 78vh keeps the frame from
   dominating the screen on a short laptop while still showing most of a
   page at once on a phone in portrait, where iframes render but the
   viewer inside is impractical to use — hence the explicit "Open in new
   tab" link elsewhere on the page. This container just holds it steady;
   it never asks anyone to use it as their only way to read.
   ------------------------------------------------------------------ */

.cos-plan-frame {
  border: 1px solid #e9efe9;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 8px 24px rgba(5, 45, 23, .06);
}

.cos-plan-frame iframe {
  display: block;
  width: 100%;
  height: min(850px, 78vh);
  border: 0;
}

/* ------------------------------------------------------------------
   Academics — Schools & Institutes, Campuses

   Both pages are directories: real units and real campuses, each linking
   out to its own site rather than restating what that site already says.
   One card component serves both, since the shape of the two problems is
   the same ("this real place, here is where it lives").
   ------------------------------------------------------------------ */

/* Same banner treatment as the homepage's own "Schools & Institutes" slider
   (.cos-sch-card): a real photo when the unit's editors have set one, a
   plain gradient with a type icon when they haven't, and a badge over the
   image rather than floating above the heading — one visual language for
   "this is a school/institute" wherever the site shows one. */
.cos-unit-card {
  height: 100%;
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid #e7ede8;
  border-radius: 16px;
  overflow: hidden;
  transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}

.cos-unit-card:hover {
  border-color: var(--cos-green, var(--tum-primary));
  box-shadow: 0 10px 28px rgba(5, 45, 23, .07);
  transform: translateY(-2px);
}

.cos-unit-card .media {
  position: relative;
  display: block;
  aspect-ratio: 16 / 9;
  background: linear-gradient(135deg, var(--cos-green-dark, var(--tum-primary-dark)), var(--cos-green, var(--tum-primary)));
  overflow: hidden;
}

.cos-unit-card .media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .4s ease;
}

.cos-unit-card:hover .media img { transform: scale(1.05); }

.cos-unit-card .media .ph {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255, 255, 255, .55);
  font-size: 40px;
}

.cos-unit-card .media .type {
  position: absolute;
  left: 12px;
  bottom: 12px;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--cos-green-dark, var(--tum-primary-dark));
  background: rgba(255, 255, 255, .92);
  padding: 5px 10px;
  border-radius: 999px;
}

.cos-unit-card .body {
  display: flex;
  flex-direction: column;
  padding: 20px 22px 24px;
  flex: 1 1 auto;
}

.cos-unit-card h4 {
  font-family: "Fraunces", Georgia, serif;
  font-size: 19px;
  font-weight: 600;
  color: var(--cos-ink, var(--tum-ink));
  line-height: 1.3;
  margin: 0 0 10px;
}

.cos-unit-card .stat {
  font-size: 14px;
  color: #6a756c;
  margin: 0 0 16px;
}

.cos-unit-card .cos-gov-link,
.cos-unit-card .soon { margin-top: auto; }

.cos-unit-card .soon {
  display: inline-block;
  font-size: 13px;
  font-style: italic;
  color: #93a096;
}

/* ── Campuses ───────────────────────────────────────────────────── */

.cos-campus-card {
  height: 100%;
  background: #fff;
  border: 1px solid #e7ede8;
  border-radius: 16px;
  overflow: hidden;
  transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}

.cos-campus-card:hover {
  border-color: var(--cos-green, var(--tum-primary));
  box-shadow: 0 10px 28px rgba(5, 45, 23, .07);
  transform: translateY(-2px);
}

.cos-campus-card .banner {
  height: 130px;
  background: linear-gradient(135deg, #0d3d24, var(--cos-green, var(--tum-primary)));
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255, 255, 255, .85);
  font-size: 30px;
}

.cos-campus-card .badge {
  position: absolute;
  top: 14px;
  right: 14px;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--tum-ink);
  background: var(--cos-gold, var(--tum-accent));
  padding: 4px 10px;
  border-radius: 999px;
}

.cos-campus-card .banner-wrap { position: relative; }

.cos-campus-card .body { padding: 22px 24px 26px; }

.cos-campus-card h4 {
  font-family: "Fraunces", Georgia, serif;
  font-size: 19px;
  font-weight: 600;
  color: var(--cos-ink, var(--tum-ink));
  margin: 0 0 8px;
}

.cos-campus-card .loc {
  font-size: 13.5px;
  color: #6a756c;
  margin: 0 0 16px;
  display: flex;
  align-items: flex-start;
  gap: 6px;
}

.cos-campus-card .loc i { color: var(--cos-gold, var(--tum-accent)); margin-top: 3px; }

/* ------------------------------------------------------------------
   Board member biography modal  (about/_board.php)

   A card becomes a real <button> only when the member has a biography on
   file — one that does not is left as the plain, non-interactive div it
   always was, so nothing here invites a click that opens to nothing.

   The button is reset to look exactly like the card it replaces (no
   border, no background, full width, inherited text alignment) rather
   than styled as a button — it reads as a card that happens to respond
   to a click, which is what it is.
   ------------------------------------------------------------------ */

button.sch-staff-card {
  display: block;
  width: 100%;
  border: 1px solid #eef3ef;
  padding: 0;
  font: inherit;
  cursor: pointer;
}

/* The hint is the affordance: without it, nothing about the card signals
   that clicking does anything. Sits over the photo rather than beside
   the name, so it never competes with the role label already there. */
.sch-staff-card__hint {
  position: absolute;
  inset: auto 0 0 0;
  padding: 8px 0;
  background: rgba(6, 40, 22, .8);
  color: #fff;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .03em;
  text-transform: uppercase;
  opacity: 0;
  transform: translateY(6px);
  transition: opacity .18s ease, transform .18s ease;
}

.sch-staff-card--btn .ph { position: relative; }

.sch-staff-card--btn:hover .sch-staff-card__hint,
.sch-staff-card--btn:focus-visible .sch-staff-card__hint {
  opacity: 1;
  transform: translateY(0);
}

.sch-staff-card--btn:focus-visible {
  outline: 2px solid var(--cos-gold, var(--tum-accent));
  outline-offset: 3px;
}

/* ---- The dialog ---- */

.sch-bio-modal .modal-header { align-items: center; gap: 16px; border-bottom-color: #eef3ef; }

.sch-bio-modal__who { display: flex; align-items: center; gap: 16px; min-width: 0; }

.sch-bio-modal__avatar {
  flex: none;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  overflow: hidden;
  background: linear-gradient(135deg, var(--cos-green, var(--tum-primary)), var(--cos-green-dark, var(--tum-primary-dark)));
  color: var(--cos-gold, var(--tum-accent));
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
}

.sch-bio-modal__avatar img { width: 100%; height: 100%; object-fit: cover; }

.sch-bio-modal .modal-title {
  font-family: "Fraunces", Georgia, serif;
  font-size: 19px;
  color: var(--cos-ink, var(--tum-ink));
}

.sch-bio-modal__role {
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--cos-gold, var(--tum-accent));
  margin-top: 2px;
}

/* modal-lg gives the dialog real presence (800px rather than the default
   500px); the text itself still wants a comfortable line length, not the
   full width, so the extra room goes to padding and to a proper reading
   measure rather than to a bio stretching edge to edge. */
.sch-bio-modal__bio {
  padding: 28px 32px;
  max-width: 62ch;
}

@media (prefers-reduced-motion: reduce) {
  .sch-staff-card__hint { transition: none; }
}

/* ------------------------------------------------------------------
   Page title banner  (cosmos family)

   Height. The theme sets `padding-block: clamp(54px, 8vw, 96px)` on
   the container, which with the heading and breadcrumbs under it made
   the band about 200px on a desktop. This brings it to a strip.

   No gradients. Both of the theme's were removed: the base
   `linear-gradient(120deg, green-dark, green)` becomes a flat brand
   green, and the ::before wash becomes a flat layer whose strength is
   set in Settings → Branding rather than fixed at 90%/70% green.

   Legibility is carried twice over, because the two halves fail in
   different places. The shading handles a picture that is bright
   overall; the shadow on the text handles a bright patch in an
   otherwise dark one, which no amount of even shading fixes without
   flattening the whole image. The banner in use is a case of the
   second kind — mid-dark on average, but a tenth of the area behind
   the title bright enough that white text on it falls to about
   1.8:1.

   A single page can still override the height from the markup — the
   container accepts the pb-* utilities, so `class="container pb-30"`
   on one view sets that page's banner alone.
   ------------------------------------------------------------------ */

.sch-pagetitle {
  background: var(--cos-green-dark, var(--sch-green-dark, var(--tum-primary-dark)));
}

/* The theme's ::before was a green gradient wash. It is now a flat layer
   whose strength and colour both come from Settings → Branding, so an
   editor can trade photograph against legibility without touching CSS. At 0 it is invisible
   and costs nothing; with no banner --pt-shade is never set and the fallback
   leaves it off.

   The .has-bg selector is repeated, not redundant: the theme carries
   `.sch-pagetitle.has-bg::before { display: none }` to kill the old wash,
   and at (0,2,1) that outranks a plain `.sch-pagetitle::before` no matter
   how late this file loads — so without the second selector the shading
   would be hidden in exactly the case it exists for, a banner being shown. */
.sch-pagetitle::before,
.sch-pagetitle.has-bg::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  display: block;
  background: var(--pt-shade-color, var(--cos-ink, var(--sch-ink, var(--tum-ink))));
  opacity: var(--pt-shade, 0);
}

.sch-pagetitle .container {
  padding-block: clamp(20px, 3vw, 38px);
}

.sch-pagetitle h1 {
  text-shadow: 0 1px 2px rgba(0, 0, 0, .55), 0 2px 14px rgba(0, 0, 0, .45);
}

.sch-pagetitle .crumbs,
.sch-pagetitle p {
  text-shadow: 0 1px 2px rgba(0, 0, 0, .6), 0 1px 8px rgba(0, 0, 0, .4);
}

/* ------------------------------------------------------------------
   Governance Structure

   A list, not a row of cards. The previous treatment (.sch-dept: a gold
   top bar, an icon in a tinted box, a shadow that lifts on hover) is the
   same shape used by every SaaS-template "features" grid — spend it on a
   Council and a Senate and the page reads as generic rather than as an
   institution's own account of itself. Hairline rules, a serif name and
   a plain text link say the same thing without dressing it up as a
   product feature.

   Reuses the accent-link idiom already established for the About page's
   own section index (.cos-abouthub) — an arrow that fades and slides in
   on hover — rather than inventing a second hover treatment for the same
   kind of "go read more" link elsewhere on the same site.
   ------------------------------------------------------------------ */

.cos-gov-list { margin-top: 4px; }

.cos-gov-row {
  padding: 32px 0;
  border-top: 1px solid #e7ede8;
}

.cos-gov-row:last-child { border-bottom: 1px solid #e7ede8; }

.cos-gov-row h3 {
  font-family: "Fraunces", Georgia, serif;
  font-weight: 600;
  font-size: clamp(20px, 2.1vw, 25px);
  color: var(--cos-ink, var(--tum-ink));
  margin: 0 0 12px;
}

.cos-gov-row p {
  color: #55615a;
  font-size: 16px;
  line-height: 1.75;
  margin: 0;
}

.cos-gov-link {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  margin-top: 16px;
  font-weight: 700;
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--cos-green, var(--tum-primary));
  text-decoration: none;
}

.cos-gov-link i {
  font-size: 11px;
  color: var(--cos-gold, var(--tum-accent));
  opacity: 0;
  transform: translateX(-4px);
  transition: opacity .18s ease, transform .18s ease;
}

.cos-gov-link:hover,
.cos-gov-link:focus-visible { color: var(--cos-green-dark, var(--tum-primary-dark)); }

.cos-gov-link:hover i,
.cos-gov-link:focus-visible i { opacity: 1; transform: translateX(0); }

@media (prefers-reduced-motion: reduce) {
  .cos-gov-link i { transition: none; }
}

/* ------------------------------------------------------------------
   Quick links band

   These four cards used to be pulled 46px up into the hero
   (.cos-quicklinks { margin-top: -46px }), which cropped the banner and
   left the gold rule half-covered. They now sit in a band of their own
   beneath it: the hero keeps its full picture, and the row reads as the
   first thing on the page rather than an appendage to the banner.

   The band is the University's sand tone, so the white cards have
   something to sit on; a hairline gold rule at the top continues the one
   that closes the hero, tying the two together without overlapping them.
   ------------------------------------------------------------------ */

.cos-ql-band {
  padding-block: 34px;
  background: var(--sch-sand, var(--tum-surface));
  border-bottom: 1px solid color-mix(in srgb, var(--tum-primary) 8%, transparent);
}

/* The negative lift is what fused the row into the banner. */
.cos-quicklinks { margin-top: 0; }

.cos-quicklinks .ql {
  position: relative;
  display: flex;
  align-items: center;
  gap: 14px;
  background: #fff;
  border: 1px solid color-mix(in srgb, var(--tum-primary) 10%, transparent);
  border-radius: 14px;
  padding: 18px 46px 18px 20px;   /* room on the right for the arrow */
  height: 100%;
  box-shadow: 0 6px 18px rgba(5, 45, 23, .05);
  overflow: hidden;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

/* A gold edge that grows on hover — the accent arrives rather than blinks. */
.cos-quicklinks .ql::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 3px;
  background: var(--cos-gold, var(--tum-accent));
  transform: scaleY(0);
  transform-origin: 50% 0;
  transition: transform .22s ease;
}

.cos-quicklinks a.ql:hover,
.cos-quicklinks a.ql:focus-visible {
  transform: translateY(-3px);
  box-shadow: 0 16px 32px rgba(5, 45, 23, .12);
  border-color: color-mix(in srgb, var(--tum-accent) 55%, transparent);
}
.cos-quicklinks a.ql:hover::before,
.cos-quicklinks a.ql:focus-visible::before { transform: scaleY(1); }

.cos-quicklinks .ql .ico {
  flex-shrink: 0;
  width: 46px; height: 46px;
  border-radius: 12px;
  background: linear-gradient(135deg, color-mix(in srgb, var(--tum-primary) 10%, transparent), color-mix(in srgb, var(--tum-primary) 4%, transparent));
  color: var(--cos-green, var(--tum-primary));
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 20px;
  transition: background .22s ease, color .22s ease;
}
.cos-quicklinks a.ql:hover .ico {
  background: var(--cos-green, var(--tum-primary));
  color: #fff;
}

.cos-quicklinks .ql .txt { display: flex; flex-direction: column; min-width: 0; }
.cos-quicklinks .ql .t {
  font-family: "Fraunces", Georgia, serif;
  font-size: 16px; line-height: 1.2;
  color: var(--cos-ink, var(--tum-ink));
}
.cos-quicklinks .ql .s {
  font-size: 12.5px; color: #686f69; margin-top: 3px;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}

/* The arrow says "this goes somewhere" without shouting. */
.cos-quicklinks .ql .go {
  position: absolute;
  right: 18px; top: 50%;
  transform: translate(-6px, -50%);
  font-size: 13px;
  color: var(--cos-gold, var(--tum-accent));
  opacity: 0;
  transition: opacity .22s ease, transform .22s ease;
}
.cos-quicklinks a.ql:hover .go,
.cos-quicklinks a.ql:focus-visible .go { opacity: 1; transform: translate(0, -50%); }

@media (prefers-reduced-motion: reduce) {
  .cos-quicklinks .ql,
  .cos-quicklinks .ql::before,
  .cos-quicklinks .ql .ico,
  .cos-quicklinks .ql .go { transition: none; }
  .cos-quicklinks a.ql:hover { transform: none; }
}


/* ------------------------------------------------------------------
   Welcome / about split

   The picture fills the section from its top edge to its bottom edge.
   Two things were stopping it:

     · the section carried the theme-wide `padding-block: 80px`, so
       there was 160px of background the panel could never reach; and
     · `height: 100%` on the panel depended on the column resolving a
       definite height, which a stretched grid column does not reliably
       give it.

   So the padding moves off the section and onto the text column — the
   copy keeps its breathing room, the row becomes the full height of the
   section — and the panel stretches by being a flex child rather than
   by asking for a percentage of an auto height.
   ------------------------------------------------------------------ */
.cos-welcome { padding-block: 0; overflow: hidden; }

.cos-welcome__text { padding-block: clamp(48px, 6vw, 88px); }

/* The gutter the row lost (g-0, so the picture can reach the edge of the
   column) is put back as space between the picture and the copy. The
   picture is on the left, so the space goes on the copy's leading edge. */
@media (min-width: 992px) {
  .cos-welcome__text { padding-left: 56px; }
}

/* display:flex on the column, so the panel inside it stretches to the
   column's height whatever that turns out to be. */
.cos-welcome__media { display: flex; }
.cos-welcome__media .sch-split-media {
  flex: 1 1 auto;
  width: 100%;
  min-height: 420px;   /* a floor for when the copy is very short */
  /* Square, and flat. The panel now runs to the edge of the section
     rather than sitting inside it as a card: a rounded corner against a
     straight section edge reads as a mistake, and the drop shadow the
     theme gives .sch-split-media was lifting a card off a page it is no
     longer sitting on. */
  border-radius: 0;
  box-shadow: none;
}
.cos-welcome__media .sch-split-media img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
}

@media (max-width: 991.98px) {
  /* Stacked: the picture keeps a sensible shape of its own rather than
     inheriting the height of the copy above it, and the section needs
     its bottom margin back. */
  .cos-welcome__media .sch-split-media { min-height: 300px; }
  .cos-welcome__text { padding-bottom: 32px; }
  .cos-welcome { padding-bottom: 48px; }
}

/* ------------------------------------------------------------------
   Welcome picture caption

   The theme's own .badge-float — a white pill inside the picture at the
   foot — is the treatment this block started with, so it is what the
   caption uses. Nothing is restyled here; the only adjustment is room
   for a sentence, since the pill was built for a two-word label beside
   a large figure.
   ------------------------------------------------------------------ */
.cos-welcome__media .badge-float {
  /* Centred across the foot of the picture, and as wide as its text needs.
     `left: 50%` looked like it centred the pill, but an absolutely
     positioned box shrink-to-fits inside the space left over from its
     offsets — so it could never grow past half the panel and a sentence
     wrapped long before it had to. Anchoring both edges gives the box the
     full width to size against; `width: fit-content` with auto margins
     then makes it exactly as wide as the caption and centres what is
     left. */
  left: 20px;
  right: 20px;
  transform: none;
  width: fit-content;
  max-width: 100%;
  margin-inline: auto;
  text-align: center;
  /* The soft green the checklist uses behind its ticks (#e5f1ea), so the
     two halves of the block share a surface instead of the pill being the
     only pure white on the page. */
  background: #e5f1ea;
  /* Padding follows the type: the pill was proportioned for 12px label
     text and looks pinched around a 19px sentence. */
  padding: 18px 30px;
}
/* No type overrides. The caption sits in the badge's own display slot, so
   it takes the family, size and colour the theme already gives it —
   Fraunces at 32px in the University green. The only adjustment is a
   line-height, because that slot was written for a single figure on one
   line and a sentence needs room to wrap. */
.cos-welcome__media .badge-float .n { line-height: 1.25; }

/* ------------------------------------------------------------------
   Admissions — entry-requirements ladder

   A native <details> accordion, the light-page counterpart to the About
   page's Core Values disclosure (cosmos.main.zz-about.css): same plus-
   becomes-minus marker built from two pseudo-elements rather than an
   icon font, same tabular-numeral index, same reduced-motion respect —
   just the site's ordinary white-page palette instead of the values
   section's dark backdrop.
   ------------------------------------------------------------------ */

.cos-req-ladder {
  border-top: 1px solid #e7ede8;
}

.cos-req-step {
  border-bottom: 1px solid #e7ede8;
}

.cos-req-step__head {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 18px;
  padding-block: 20px;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  list-style: none;
}

.cos-req-step__head::-webkit-details-marker { display: none; }
.cos-req-step__head::marker { content: ""; }

.cos-req-step__head:focus-visible {
  outline: 2px solid var(--cos-gold, var(--tum-accent));
  outline-offset: 4px;
  border-radius: 2px;
}

.cos-req-step__num {
  font-family: "Fraunces", Georgia, serif;
  font-style: italic;
  font-weight: 600;
  font-size: clamp(17px, 1.6vw, 21px);
  color: #b7c2ba;
  font-variant-numeric: tabular-nums;
  transition: color .2s ease;
}

.cos-req-step__title {
  font-family: "Fraunces", Georgia, serif;
  font-weight: 600;
  font-size: clamp(17px, 1.7vw, 20px);
  color: var(--cos-ink, var(--tum-ink));
  transition: color .2s ease;
}

.cos-req-step__head:hover .cos-req-step__num,
.cos-req-step[open] .cos-req-step__num { color: var(--cos-gold, var(--tum-accent)); }

.cos-req-step__head:hover .cos-req-step__title,
.cos-req-step[open] .cos-req-step__title { color: var(--cos-green, var(--tum-primary)); }

.cos-req-step__icon {
  position: relative;
  width: 18px;
  height: 18px;
  flex: none;
}

.cos-req-step__icon::before,
.cos-req-step__icon::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  background: var(--cos-green, var(--tum-primary));
  transition: transform .25s ease, opacity .25s ease;
}

.cos-req-step__icon::before { width: 13px; height: 1.5px; transform: translate(-50%, -50%); }
.cos-req-step__icon::after  { width: 1.5px; height: 13px; transform: translate(-50%, -50%); }

.cos-req-step[open] .cos-req-step__icon::after { transform: translate(-50%, -50%) rotate(90deg); opacity: 0; }

.cos-req-step__body {
  padding: 0 0 24px 46px;
}

.cos-req-step__body p {
  font-size: 15px;
  line-height: 1.65;
  color: #4b564d;
  margin: 0;
}

@media (prefers-reduced-motion: reduce) {
  .cos-req-step__num,
  .cos-req-step__title,
  .cos-req-step__icon::before,
  .cos-req-step__icon::after {
    transition: none;
  }
}

@media (max-width: 575.98px) {
  .cos-req-step__head { gap: 12px; }
  .cos-req-step__body { padding-left: 0; }
}

/* ------------------------------------------------------------------
   Documents / Fees — two matching panels

   Was a bare checklist beside a bare <table>, sharing no container, no
   framing and no visual weight of their own — two unrelated-looking lists
   that happened to sit in the same row. Giving both an identical card
   shell (icon, eyebrow, heading) makes the pairing itself legible: this
   is "what you need" and "what it costs" as one deliberate two-part
   answer, not two leftover fragments.
   ------------------------------------------------------------------ */

.cos-req-panel {
  height: 100%;
  padding: 30px 32px;
  background: #fff;
  border: 1px solid #e7ede8;
  border-radius: 16px;
  box-shadow: 0 6px 20px rgba(5, 45, 23, .04);
}

.cos-req-panel__head {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 22px;
}

.cos-req-panel__head .ico {
  flex: none;
  width: 50px;
  height: 50px;
  border-radius: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  background: #e5f1ea;
  color: var(--cos-green, var(--tum-primary));
}

.cos-req-panel__head .ey {
  display: block;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--cos-gold, var(--tum-accent));
  margin-bottom: 3px;
}

.cos-req-panel__head h3 {
  font-family: "Fraunces", Georgia, serif;
  font-size: 19px;
  font-weight: 600;
  color: var(--cos-ink, var(--tum-ink));
  margin: 0;
}

/* ---- Documents checklist ---- */

.cos-req-panel__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.cos-req-panel__list li {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  font-size: 15px;
  line-height: 1.5;
  color: var(--cos-ink, var(--tum-ink));
}

.cos-req-panel__list .chk {
  flex: none;
  width: 22px;
  height: 22px;
  margin-top: 1px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--cos-green, var(--tum-primary));
  color: #fff;
  font-size: 11px;
}

/* ---- Fee list ---- */

.cos-req-panel__price {
  list-style: none;
  margin: 0;
  padding: 0;
}

.cos-req-panel__price li {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  padding-block: 13px;
  border-bottom: 1px dashed #e7ede8;
  font-size: 15px;
}

.cos-req-panel__price li:last-child { border-bottom: 0; }

.cos-req-panel__price .lvl { color: var(--cos-ink, var(--tum-ink)); }

.cos-req-panel__price .fee {
  font-family: "Fraunces", Georgia, serif;
  font-weight: 600;
  font-size: 17px;
  color: var(--cos-green, var(--tum-primary));
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

@media (max-width: 575.98px) {
  .cos-req-panel { padding: 24px 22px; }
}

/* ------------------------------------------------------------------
   Admissions Guide — connected step list

   Unlike the Requirements ladder (an accordion of parallel, independent
   facts), these steps are a single ordered procedure meant to be followed
   in sequence while the reader is actually doing it — collapsing them
   would hide the next step exactly when it's needed. A connected vertical
   line through numbered nodes reads as "one procedure, in order" the way
   a plain stacked list of tiles does not.
   ------------------------------------------------------------------ */

.cos-guide-steps {
  list-style: none;
  margin: 0;
  padding: 0;
  position: relative;
}

/* The connecting line, drawn once behind every node rather than as a
   border on each <li> — a per-item border leaves a gap at every step and
   stops short at the last one; one continuous line does not. */
.cos-guide-steps::before {
  content: "";
  position: absolute;
  top: 6px;
  bottom: 6px;
  left: 17px;
  width: 2px;
  background: #e7ede8;
}

.cos-guide-steps li {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 20px;
  padding-bottom: 26px;
}

.cos-guide-steps li:last-child { padding-bottom: 0; }

.cos-guide-steps .n {
  position: relative;
  z-index: 1;
  flex: none;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #fff;
  border: 2px solid var(--cos-green, var(--tum-primary));
  color: var(--cos-green, var(--tum-primary));
  font-family: "Fraunces", Georgia, serif;
  font-weight: 600;
  font-size: 14px;
  font-variant-numeric: tabular-nums;
}

.cos-guide-steps li p {
  margin: 0;
  padding-top: 6px;
  font-size: 15px;
  line-height: 1.65;
  color: var(--cos-ink, var(--tum-ink));
}

@media (max-width: 575.98px) {
  .cos-guide-steps::before { left: 15px; }
  .cos-guide-steps .n { width: 32px; height: 32px; font-size: 13px; }
  .cos-guide-steps li { gap: 14px; }
}

/* ------------------------------------------------------------------
   Division office headings (Academics/Research/Extension, Admin/Finance/Planning)

   A small, quiet label above each office's photo and message — the job
   title, not a section heading, so it does not compete with the page's
   own "Academics, Research & Extension" heading above it.
   ------------------------------------------------------------------ */

.cos-office-title {
  font-family: "Fraunces", Georgia, serif;
  font-weight: 600;
  font-size: 15px;
  letter-spacing: .02em;
  color: var(--cos-gold, var(--tum-accent));
  text-transform: uppercase;
  margin: 0;
}

