/* Acatech Aviation College PNG palette: flag red, gold, black and white. */
:root {
  --png-black: #000000;
  --png-red: #CE1126;
  --png-gold: #FCD116;
  --png-white: #FFFFFF;
  --primary: var(--png-red);
  --blue: var(--png-red);
  --red: var(--png-red);
  --dark: var(--png-black);
  --warning: var(--png-gold);
  --yellow: var(--png-gold);
}

body { color: #343434; background-color: var(--png-white); }
h1, h2, h3, h4, h5, h6 { color: var(--png-black); }
a, a.text-primary { color: var(--png-red); }
a:hover, a:focus { color: #A80D20; }

/* Main and mobile navigation */
.topbar { background: var(--png-black) !important; }
.topbar.navbar-light .navbar-nav .nav-link,
.topbar.navbar-dark .navbar-nav .nav-link { color: var(--png-white); }
.topbar.navbar-light .navbar-nav .nav-link:hover,
.topbar.navbar-light .navbar-nav .nav-link:focus,
.topbar.navbar-dark .navbar-nav .nav-link:hover,
.topbar.navbar-dark .navbar-nav .nav-link:focus { color: var(--png-gold); }
.topbar .topbar-divider { border-color: rgba(255,255,255,.24); }
.topbar .dropdown { position: relative; }
.topbar .dropdown-menu {
  left: auto;
  right: 0;
  width: max-content;
  min-width: 9rem;
  max-width: calc(100vw - 1.5rem);
  margin-top: .35rem;
  padding: .45rem 0;
  overflow-x: auto;
  white-space: nowrap;
  background: var(--png-white);
  border: 1px solid #D5D5D5;
  border-top: 3px solid var(--png-red);
  border-radius: .55rem;
  box-shadow: 0 .7rem 1.6rem rgba(0,0,0,.24);
}
.topbar .dropdown .dropdown-menu {
  width: max-content;
  max-width: calc(100vw - 1rem);
  overflow-x: visible;
}
.topbar .dropdown-menu .dropdown-item {
  padding: .55rem 1rem;
  color: #242424;
  line-height: 1.35;
  white-space: nowrap;
}
.topbar .dropdown-menu .dropdown-item i { color: var(--png-red) !important; }
.topbar .dropdown-menu .dropdown-item:hover,
.topbar .dropdown-menu .dropdown-item:focus {
  color: var(--png-black);
  background-color: #FFF4C2;
}
.topbar .dropdown-menu .dropdown-item:active {
  color: var(--png-white);
  background-color: var(--png-red);
}
.topbar .dropdown-menu .dropdown-item:active i { color: var(--png-white) !important; }
.topbar .dropdown-menu .dropdown-divider { border-top-color: #E8D98B; }
.topbar .mobile-nav .dropdown-menu { left: 0; right: auto; }
.sidebar.bg-gradient-primary,
.sidebar .bg-gradient-primary,
.bg-gradient-primary {
  background-color: var(--png-black) !important;
  background-image: linear-gradient(180deg, #202020 10%, #000 100%) !important;
}
.sidebar { border-right: 3px solid var(--png-red); }
.sidebar .nav-item.active .nav-link,
.sidebar .nav-item .nav-link:hover,
.sidebar .nav-item .nav-link:focus { color: var(--png-gold); }
.sidebar .nav-item.active .nav-link::before { border-left: 3px solid var(--png-gold); }
.sidebar hr.sidebar-divider { border-top-color: rgba(252,209,22,.38); }
.navbar-toggler, #sidebarToggle, #sidebarToggleTop { color: var(--png-gold); }

/* Calls to action, links, and interactive states */
.btn-primary, .bg-primary, .page-item.active .page-link,
.dropdown-item.active, .dropdown-item:active {
  color: var(--png-white) !important;
  background-color: var(--png-red) !important;
  border-color: var(--png-red) !important;
}
.btn-primary:hover, .btn-primary:focus,
.btn-primary:not(:disabled):not(.disabled):active,
.show > .btn-primary.dropdown-toggle { background-color: #A80D20 !important; border-color: #A80D20 !important; }
.text-primary { color: var(--png-red) !important; }
.border-left-primary { border-left-color: var(--png-red) !important; }
.border-bottom-primary { border-bottom-color: var(--png-red) !important; }
.btn-outline-primary { color: var(--png-red); border-color: var(--png-red); }
.btn-outline-primary:hover { color: var(--png-black); background-color: var(--png-gold); border-color: var(--png-gold); }
.btn-warning { color: var(--png-black); background-color: var(--png-gold); border-color: var(--png-gold); }
.btn-warning:hover, .btn-warning:focus { color: var(--png-black); background-color: #E5BB00; border-color: #E5BB00; }
.form-control:focus, .custom-select:focus, .custom-control-input:focus ~ .custom-control-label::before {
  border-color: var(--png-red);
  box-shadow: 0 0 0 .2rem rgba(206,17,38,.2);
}
.form-control, .custom-select { color: #343434; }
.card-header, .card-footer { border-color: rgba(0,0,0,.1); }
.progress-bar { background-color: var(--png-red); }
.pagination .page-link { color: var(--png-red); }
.pagination .page-link:focus { box-shadow: 0 0 0 .2rem rgba(206,17,38,.2); }

/* Shared footer and dark emphasis sections */
.sticky-footer { color: var(--png-white); background: var(--png-black) !important; border-top: 3px solid var(--png-gold); }
.sticky-footer a { color: var(--png-gold); }
.sticky-footer a:hover { color: var(--png-white); }
.bg-dark, .bg-secondary { background-color: var(--png-black) !important; }
.bg-dark, .bg-dark h1, .bg-dark h2, .bg-dark h3, .bg-dark h4,
.bg-secondary, .bg-secondary h1, .bg-secondary h2, .bg-secondary h3, .bg-secondary h4 { color: var(--png-white); }

/* Standalone student login pages */
.container-login100 { background-color: #F3F3F1; background-image: radial-gradient(ellipse at 82% 8%, rgba(252,209,22,.16), transparent 34%), linear-gradient(135deg, #F7F7F5, #EBEBE8); }
.container-login101 { background-image: linear-gradient(135deg, rgba(0,0,0,.72), rgba(206,17,38,.38)), url('../login_old/images/plane.jpg'); }
.login100-form-title { background-color: var(--png-black); border-bottom: 4px solid var(--png-gold); }
.portal-heading .h3 { color: var(--png-black); }
.portal-heading p { color: #555; }
.login100-form-btn { color: var(--png-black); background-color: var(--png-gold); }
.login100-form-btn:hover, .login100-form-btn:focus { color: var(--png-white); background-color: var(--png-red); box-shadow: 0 10px 22px rgba(206,17,38,.25); }
.input100:focus + .focus-input100::before, .has-val.input100 + .focus-input100::before { background-color: var(--png-red); }
.txt1, .txt2, .login100-form a { color: var(--png-red); }

/* Current student login two-column layout */
.container-login100 { display: flex; align-items: center; justify-content: center; padding: clamp(1rem, 4vw, 3.5rem); }
.container-login100 > .wrap-login100 {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  width: min(100%, 66rem);
  min-height: 39rem;
  overflow: hidden;
  background: #FFFFFF;
  border: 1px solid #DEDEDA;
  border-radius: 1.25rem;
  box-shadow: 0 1.5rem 4rem rgba(0,0,0,.16);
}
.login-brand-panel {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  padding: clamp(2rem, 5vw, 4rem);
  color: #FFFFFF;
  background: linear-gradient(145deg, #101010 0%, #000000 72%, #191919 100%);
  border-right: 4px solid var(--png-red);
}
.login-brand-panel::before,
.login-brand-panel::after { position: absolute; content: ""; pointer-events: none; }
.login-brand-panel::before {
  top: -5rem;
  right: -5rem;
  width: 16rem;
  height: 16rem;
  border: 1px solid rgba(252,209,22,.28);
  border-radius: 50%;
  box-shadow: 0 0 0 1.5rem rgba(252,209,22,.035), 0 0 0 3rem rgba(252,209,22,.025);
}
.login-brand-panel::after { right: 0; bottom: 15%; left: 0; height: 1px; background: linear-gradient(90deg, transparent, rgba(252,209,22,.55), transparent); }
.login-brand-content { position: relative; z-index: 1; width: 100%; max-width: 26rem; text-align: center; }
.login-brand-logo-frame {
  display: flex;
  align-items: center;
  justify-content: center;
  width: min(100%, 25rem);
  min-height: 10rem;
  margin: 0 auto 2.5rem;
  padding: 1rem;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}
.login-brand-logo {
  display: block;
  width: 100%;
  max-height: 10rem;
  object-fit: contain;
  transform-origin: center;
  filter: drop-shadow(0 0 3px rgba(252,209,22,.42)) drop-shadow(0 2px 4px rgba(0,0,0,.35));
}
@media (hover: hover) and (pointer: fine) {
  .login-brand-logo { transition: transform .32s cubic-bezier(.2,.75,.25,1), filter .32s ease; }
  .login-brand-logo:hover { transform: translateY(-3px) rotate(-.5deg) scale(1.06); filter: drop-shadow(0 .55rem .6rem rgba(0,0,0,.2)); }
}
.login-brand-kicker { margin: 0 0 .8rem; color: var(--png-gold); font-size: .75rem; font-weight: 700; letter-spacing: .2em; }
.login-brand-content h1 { max-width: 13ch; margin: 0 auto; color: #FFFFFF; font-size: clamp(2rem, 3.4vw, 3rem); font-weight: 800; line-height: 1.12; }
.login-brand-country { margin: 1rem 0 0; color: rgba(255,255,255,.82); font-size: 1.05rem; letter-spacing: .08em; }
.login-brand-rule { display: block; width: 3.5rem; height: 3px; margin: 1.5rem auto 0; background: var(--png-gold); border-radius: 3px; }
.login-form-panel { display: flex; flex-direction: column; justify-content: center; min-width: 0; padding: clamp(2rem, 5vw, 4.5rem); }
.login-form-panel .portal-heading { padding: 0; text-align: left; }
.login-form-panel .portal-heading .h3 { font-family: Poppins-SemiBold, sans-serif; font-size: clamp(1.7rem, 2.5vw, 2.15rem); letter-spacing: -.02em; text-transform: none; }
.login-form-panel .portal-heading p { margin: .45rem 0 0; color: #666; font-size: .9rem; }
.login-form-panel .login100-form { width: 100%; padding: 2rem 0 0; }
.login-form-panel .wrap-input100 { margin-bottom: 1rem; padding: .6rem .8rem .4rem; border-color: #D8D8D8; border-radius: .65rem; background: #FAFAF9; }
.login-form-panel .wrap-input100:focus-within { border-color: var(--png-red); box-shadow: 0 0 0 3px rgba(206,17,38,.12); }
.login-form-panel .label-input100 { color: #3F3F3F; font-size: .78rem; font-weight: 600; }
.login-form-panel input.input100 { height: 2.25rem; padding: 0; color: #202020; font-size: .95rem; }
.login-form-panel input.input100::placeholder { color: #777; }
.login-form-panel .contact100-form-checkbox { margin: 0 0 1.2rem !important; }
.login-form-panel .label-checkbox100 { color: #454545; font-size: .82rem; }
.login-form-panel .input-checkbox100:checked + .label-checkbox100::before { color: var(--png-red); }
.login-input-control { display: flex; align-items: center; gap: .5rem; }
.login-input-control .input100 { flex: 1 1 auto; min-width: 0; }
.login-visibility-toggle { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 2.5rem; width: 2.5rem; height: 2.5rem; color: #555; background: transparent; border: 0; border-radius: .45rem; }
.login-visibility-toggle:hover:not(:disabled) { color: var(--png-red); background: #FBECEF; }
.login-visibility-toggle:focus-visible { outline: 3px solid rgba(252,209,22,.9); outline-offset: 1px; }
.login-visibility-toggle:disabled { color: #999; opacity: .6; }
.login-form-panel .container-login100-form-btn { margin-top: 1.5rem; }
.login-form-panel .login100-form-btn { height: 3.25rem; color: #FFFFFF; background: var(--png-red); border-radius: .65rem; box-shadow: 0 .55rem 1.1rem rgba(206,17,38,.2); }
.login-form-panel .login100-form-btn:hover,
.login-form-panel .login100-form-btn:focus { color: #FFFFFF; background: #A80D20; box-shadow: 0 .7rem 1.3rem rgba(206,17,38,.25); }
.login-form-panel .login100-form-btn:focus-visible { outline: 3px solid rgba(252,209,22,.9); outline-offset: 3px; }
@media (max-width: 800px) {
  .container-login100 { align-items: flex-start; padding: 1rem; }
  .container-login100 > .wrap-login100 { grid-template-columns: 1fr; width: min(100%, 34rem); min-height: 0; margin: auto; border-radius: 1rem; }
  .login-brand-panel { min-height: 0; padding: 1rem 1.1rem; border-right: 0; border-bottom: 4px solid var(--png-red); }
  .login-brand-panel::before { top: -9rem; right: -4rem; }
  .login-brand-panel::after { bottom: 0; }
  .login-brand-content { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); grid-template-rows: auto auto auto; align-items: center; gap: .15rem .8rem; max-width: none; text-align: left; }
  .login-brand-logo-frame { grid-column: 1; grid-row: 1 / span 3; width: 100%; min-height: 0; margin: 0; padding: .4rem; border-radius: .65rem; }
  .login-brand-logo { max-height: 4.3rem; }
  .login-brand-kicker { grid-column: 2; margin: 0; font-size: .58rem; letter-spacing: .14em; }
  .login-brand-content h1 { grid-column: 2; max-width: none; margin: 0; font-size: clamp(1.05rem, 4.5vw, 1.45rem); line-height: 1.08; }
  .login-brand-country { grid-column: 2; margin: .1rem 0 0; font-size: .78rem; }
  .login-brand-rule { display: none; }
  .login-form-panel { padding: .9rem clamp(1rem, 5vw, 1.75rem) 1.1rem; }
  .login-form-panel .portal-heading { margin-bottom: .55rem; }
  .login-form-panel .portal-heading .h3 { font-size: 1.2rem; line-height: 1.2; }
  .login-form-panel .portal-heading p { margin-top: .15rem; font-size: .75rem; line-height: 1.3; }
  .login-form-panel .login100-form { padding-top: 0; }
  .login-form-panel .wrap-input100 { margin-bottom: .65rem; padding: .35rem .65rem .2rem; }
  .login-form-panel .label-input100 { font-size: .7rem; line-height: 1.25; }
  .login-form-panel input.input100 { height: 1.8rem; font-size: .9rem; }
  .login-form-panel .login-visibility-toggle { flex-basis: 2.15rem; width: 2.15rem; height: 2.15rem; }
  .login-form-panel .contact100-form-checkbox { margin: 0 0 .65rem !important; }
  .login-form-panel .container-login100-form-btn { margin-top: .7rem; }
  .login-form-panel .login100-form-btn { height: 2.8rem; }
}
@media (max-width: 380px) {
  .container-login100 { padding: .55rem; }
  .login-brand-panel { padding: .75rem .85rem; }
  .login-brand-logo { max-height: 3.8rem; }
  .login-form-panel { padding: .75rem .85rem .9rem; }
  .login-form-panel .wrap-input100 { margin-bottom: .55rem; }
  .login-form-panel .contact100-form-checkbox { margin-bottom: .5rem !important; }
  .login-form-panel .container-login100-form-btn { margin-top: .5rem; }
}
@media (max-width: 800px) and (max-height: 520px) {
  .container-login100 { padding-top: .4rem; padding-bottom: .4rem; }
  .login-brand-panel { padding-top: .55rem; padding-bottom: .55rem; }
  .login-brand-logo { max-height: 3.2rem; }
  .login-form-panel { padding-top: .55rem; padding-bottom: .65rem; }
  .login-form-panel .portal-heading { margin-bottom: .3rem; }
  .login-form-panel .portal-heading .h3 { font-size: 1.05rem; }
  .login-form-panel .portal-heading p { font-size: .68rem; }
  .login-form-panel .wrap-input100 { margin-bottom: .4rem; }
  .login-form-panel .contact100-form-checkbox { margin-bottom: .35rem !important; }
  .login-form-panel .container-login100-form-btn { margin-top: .35rem; }
  .login-form-panel .login100-form-btn { height: 2.5rem; }
}
/* Keep the complete login card in view on phones held in portrait mode. */
@media screen and (max-width: 800px) and (orientation: portrait) {
  html.login-page,
  body.login-page {
    width: 100%;
    height: 100%;
    min-height: 0;
    margin: 0;
    overflow: hidden;
  }
  body.login-page .limiter {
    width: 100%;
    height: 100%;
    min-height: 0;
    overflow: hidden;
  }
  body.login-page .container-login100 {
    box-sizing: border-box;
    width: 100%;
    height: 100vh;
    height: 100dvh;
    min-height: 0;
    padding: .5rem;
    overflow: hidden;
    align-items: center;
  }
  body.login-page .container-login100 > .wrap-login100 {
    box-sizing: border-box;
    width: min(100%, 34rem);
    min-width: 0;
    min-height: 0;
    max-height: 100%;
    margin: 0 auto;
    overflow: hidden;
    border-radius: .85rem;
  }
  .login-brand-panel {
    box-sizing: border-box;
    min-width: 0;
    padding: clamp(.7rem, 2.4vh, 1.1rem) 1rem;
  }
  .login-brand-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: clamp(.2rem, .8vh, .4rem);
    min-width: 0;
    text-align: center;
  }
  .login-brand-logo-frame {
    order: 0;
    width: min(54vw, 12rem);
    min-height: 0;
    margin: 0 0 .2rem;
    padding: 0;
    background: transparent;
    border: 0;
    box-shadow: none;
  }
  .login-brand-logo {
    max-height: clamp(3.8rem, 10vh, 5.25rem);
    filter: drop-shadow(0 0 3px rgba(252,209,22,.42)) drop-shadow(0 2px 4px rgba(0,0,0,.35));
  }
  .login-brand-kicker { order: 1; margin: 0; font-size: clamp(.7rem, 2.2vw, .8rem); line-height: 1.2; letter-spacing: .16em; }
  .login-brand-content h1 { order: 2; max-width: none; margin: 0; font-size: clamp(1.25rem, 5vw, 1.6rem); line-height: 1.1; }
  .login-brand-country { order: 3; margin: 0; font-size: clamp(.82rem, 3.2vw, .95rem); line-height: 1.2; }
  .login-form-panel { 
    box-sizing: border-box;
    min-width: 0;
    padding: .85rem clamp(1rem, 5vw, 1.5rem) 1rem;
  }
  .login-form-panel .portal-heading { margin: 0 0 .55rem; }
  .login-form-panel .portal-heading .h3 { font-size: 1.15rem; line-height: 1.15; }
  .login-form-panel .portal-heading p { margin-top: .2rem; font-size: .75rem; line-height: 1.3; }
  .login-form-panel .login100-form { min-width: 0; padding: 0; }
  .login-form-panel .wrap-input100 {
    box-sizing: border-box;
    min-width: 0;
    margin-bottom: clamp(.55rem, 1.2vh, .8rem);
    padding: clamp(.3rem, .75vh, .45rem) clamp(.7rem, 4vw, .9rem) .25rem;
    border-radius: .55rem;
  }
  .login-form-panel .label-input100 { font-size: .72rem; line-height: 1.2; }
  .login-form-panel input.input100 { box-sizing: border-box; height: 1.9rem; font-size: .92rem; }
  .login-form-panel .login-visibility-toggle { flex-basis: 2.25rem; width: 2.25rem; height: 2.25rem; }
  .login-form-panel .contact100-form-checkbox { min-height: 2.75rem; margin: 0 0 .3rem !important; }
  .login-form-panel .label-checkbox100 { display: inline-flex; align-items: center; min-height: 2.75rem; font-size: .78rem; line-height: 1.25; }
  .login-form-panel .container-login100-form-btn { margin-top: .5rem; }
  .login-form-panel .login100-form-btn { min-height: 2.9rem; height: 2.9rem; }
}
@media screen and (max-width: 800px) and (orientation: portrait) and (max-height: 560px) {
  .container-login100 { padding: .25rem; }
  .login-brand-panel { padding: .5rem .85rem; }
  .login-brand-content { gap: .18rem; }
  .login-brand-logo-frame { width: min(46vw, 10rem); margin-bottom: .1rem; padding: 0; }
  .login-brand-logo { max-height: 3.2rem; }
  .login-brand-kicker { font-size: .68rem; }
  .login-brand-content h1 { font-size: clamp(1.08rem, 4.3vw, 1.3rem); }
  .login-brand-country { font-size: .76rem; }
  .login-form-panel { padding: .5rem clamp(.85rem, 4vw, 1.2rem) .6rem; }
  .login-form-panel .portal-heading { margin-bottom: .35rem; }
  .login-form-panel .portal-heading .h3 { font-size: 1.05rem; }
  .login-form-panel .portal-heading p { font-size: .68rem; }
  .login-form-panel .wrap-input100 { margin-bottom: .4rem; padding: .25rem .65rem .15rem; }
  .login-form-panel input.input100 { height: 1.8rem; }
  .login-form-panel .contact100-form-checkbox { min-height: 2.35rem; margin-bottom: .15rem !important; }
  .login-form-panel .label-checkbox100 { min-height: 2.35rem; }
  .login-form-panel .container-login100-form-btn { margin-top: .3rem; }
  .login-form-panel .login100-form-btn { min-height: 2.6rem; height: 2.6rem; }
}
@media (prefers-reduced-motion: reduce) {
  .login-brand-logo { transition: none !important; }
  .login-brand-logo:hover { transform: none !important; filter: none !important; }
}

/* Mobile post-login welcome screen */
body.mobile-welcome-page {
  min-height: 100vh;
  min-height: 100dvh;
  margin: 0;
  color: #222;
  background: radial-gradient(ellipse at 50% 12%, #FFF7D4 0, #F7F7F5 48%, #EFEFEF 100%);
}
.welcome-shell {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 100%;
  min-height: 100vh;
  min-height: 100dvh;
  padding: 2rem 1rem 1rem;
}
.welcome-card {
  width: min(100%, 34rem);
  padding: clamp(1.75rem, 8vw, 3.25rem) clamp(1.25rem, 7vw, 3rem);
  text-align: center;
  background: #fff;
  border: 1px solid #E6E2D6;
  border-top: 5px solid var(--png-red);
  border-radius: 1rem;
  box-shadow: 0 1rem 2.5rem rgba(0,0,0,.09);
}
.welcome-logo-wrap { display: flex; justify-content: center; align-items: center; min-height: 5rem; }
.welcome-logo { display: block; width: min(82%, 20rem); max-height: 8rem; object-fit: contain; }
.welcome-flight-mark { display: flex; align-items: center; justify-content: center; gap: .55rem; margin: 1.5rem auto 1.1rem; color: var(--png-red); }
.welcome-flight-line { display: block; width: 3.25rem; height: 2px; background: var(--png-gold); }
.welcome-eyebrow { margin: 0 0 .5rem; color: #6C5700; font-size: .72rem; font-weight: 700; letter-spacing: .18em; }
.welcome-card h1 { max-width: 15ch; margin: 0 auto; color: var(--png-black); font-size: clamp(1.65rem, 7vw, 2.4rem); font-weight: 800; line-height: 1.18; }
.welcome-country { margin: .7rem 0 1.8rem; color: #555; font-size: 1rem; letter-spacing: .06em; }
.welcome-continue {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .75rem;
  min-height: 3.25rem;
  padding: .75rem 1rem;
  color: #fff;
  font-size: .95rem;
  font-weight: 700;
  text-decoration: none;
  background: var(--png-red);
  border-radius: .55rem;
  box-shadow: 0 .35rem .8rem rgba(206,17,38,.18);
}
.welcome-continue:hover, .welcome-continue:focus { color: #fff; text-decoration: none; background: #A80D20; }
.welcome-continue:focus-visible, .welcome-footer a:focus-visible, .policy-back:focus-visible { outline: 3px solid var(--png-gold); outline-offset: 3px; }
.welcome-footer { margin-top: auto; padding: 1.25rem .5rem .25rem; text-align: center; }
.welcome-footer a { display: inline-flex; align-items: center; min-height: 2.75rem; padding: .5rem .75rem; color: #5B111B; font-size: .85rem; text-decoration: underline; text-underline-offset: .18em; }
.announcements-page .announcements-welcome-fallback { min-height: clamp(24rem, calc(100dvh - 14rem), 38rem); }
.announcements-page.announcements-awaiting-welcome #wrapper {
  opacity: 0;
  transition: opacity .6s ease;
}
.announcements-page.announcements-awaiting-welcome.announcements-welcome-dismissed #wrapper { opacity: 1; }
@media (prefers-reduced-motion: reduce) {
  .announcements-page.announcements-awaiting-welcome #wrapper { transition: none; }
}
.policy-shell { justify-content: center; }
.policy-card { position: relative; }
.policy-back { display: inline-flex; align-items: center; gap: .45rem; min-height: 2.75rem; margin: -1rem 0 1.5rem; color: #5B111B; font-size: .9rem; }
.policy-placeholder { margin: 1.25rem 0 0; color: #4D4D4D; line-height: 1.6; }
@media (min-width: 768px) {
  .welcome-shell { padding: 2.5rem; }
  .welcome-card { padding: 3.5rem 3.25rem; }
}

/* Prospectus checklist tables and student summary cards */
.prospectus-page .card-header { border-top: 3px solid var(--png-gold); }
.prospectus-page .text-elem { color: var(--png-red) !important; }
.prospectus-page .rblue { color: var(--png-white); background-color: var(--png-red); }
.prospectus-page .prospectus-term-heading { margin: .35rem 0 .65rem; }
.prospectus-page .prospectus-term-title {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 3.4rem;
  margin: 0;
  padding: .75rem 1rem !important;
  color: #4A2025 !important;
  font-size: 1rem;
  letter-spacing: .035em;
  background: linear-gradient(110deg, #FFF8E6 0%, #F8F5F0 55%, #FBEDEF 100%);
  border: 1px solid #E9DCC6;
  border-left: 4px solid var(--png-gold);
  border-radius: .55rem;
  box-shadow: 0 2px 7px rgba(36, 26, 18, .055);
}
.prospectus-page .rhigh { color: var(--png-black); background-color: #FFF8D8; }
.prospectus-page .rdanger,
.prospectus-page .rfailed { color: #64101B; background-color: #FBE8EB; }
.prospectus-page .responsive-data-table thead th {
  color: var(--png-white);
  background-color: var(--png-black);
  border-bottom: 2px solid var(--png-gold);
}
.prospectus-page .responsive-data-table td,
.prospectus-page .responsive-data-table th { border-color: #E2E2E2; }
.prospectus-page .col-lg-2 .card { border-left: 3px solid var(--png-gold); }

/* Keep wide subject names optional on phone sized screens. */
@media screen and (max-width: 767.98px) {
  .subject-column { display: none; }
  body.show-subject-column .subject-column { display: table-cell; }
  .subject-column-toggle { white-space: nowrap; flex: 0 0 auto; }
  .responsive-data-table { width: 100%; min-width: 0; table-layout: auto; }
  .responsive-data-table th,
  .responsive-data-table td { white-space: normal; }
  body.grades-page:not(.grades-expanded) .responsive-table-scroll { overflow-x: visible; }
  .grades-page .grades-table { width: 100%; min-width: 0; table-layout: fixed; }
  .grades-page:not(.grades-expanded) .subject-column,
  .grades-page:not(.grades-expanded) .grades-optional-column { display: none; }
  .grades-page.grades-expanded .subject-column,
  .grades-page.grades-expanded .grades-optional-column { display: table-cell; }
  .grades-page .grades-table th,
  .grades-page .grades-table td {
    padding: .3rem .35rem;
    font-size: .8rem;
    white-space: normal;
    overflow-wrap: anywhere;
    vertical-align: middle;
  }
  .grades-page:not(.grades-expanded) .grades-table th:nth-child(2),
  .grades-page:not(.grades-expanded) .grades-table td:nth-child(2) { width: 42%; }
  .grades-page:not(.grades-expanded) .grades-table th:nth-child(4),
  .grades-page:not(.grades-expanded) .grades-table td:nth-child(4) { width: 30%; }
  .grades-page:not(.grades-expanded) .grades-table th:nth-child(6),
  .grades-page:not(.grades-expanded) .grades-table td:nth-child(6) { width: 28%; }
  .grades-expand-toggle { white-space: nowrap; flex: 0 0 auto; }
  body.grades-page.grades-expanded .responsive-table-scroll { overflow-x: auto; }
  body.grades-page.grades-expanded .grades-table {
    width: max-content;
    min-width: 760px;
    table-layout: auto;
  }
  body.grades-page.grades-expanded .grades-table th,
  body.grades-page.grades-expanded .grades-table td {
    padding: .3rem .5rem;
    font-size: 1rem;
    white-space: nowrap;
    overflow-wrap: normal;
    vertical-align: top;
  }
  body.saccount-page:not(.account-expanded) .responsive-table-scroll { overflow-x: visible; }
  .saccount-page .account-subject-table { width: 100%; min-width: 0; table-layout: fixed; }
  .saccount-page:not(.account-expanded) .account-subject-column { display: none; }
  .saccount-page .account-subject-table th,
  .saccount-page .account-subject-table td {
    padding: .3rem .25rem;
    font-size: .75rem;
    white-space: normal;
    overflow-wrap: anywhere;
    vertical-align: middle;
  }
  .saccount-page:not(.account-expanded) .account-subject-table th:nth-child(1),
  .saccount-page:not(.account-expanded) .account-subject-table td:nth-child(1) { width: 28%; }
  .saccount-page:not(.account-expanded) .account-subject-table th:nth-child(3),
  .saccount-page:not(.account-expanded) .account-subject-table td:nth-child(3) { width: 12%; }
  .saccount-page:not(.account-expanded) .account-subject-table th:nth-child(4),
  .saccount-page:not(.account-expanded) .account-subject-table td:nth-child(4),
  .saccount-page:not(.account-expanded) .account-subject-table th:nth-child(5),
  .saccount-page:not(.account-expanded) .account-subject-table td:nth-child(5) { width: 30%; }
  .account-expand-toggle { white-space: nowrap; flex: 0 0 auto; }
  body.saccount-page.account-expanded .responsive-table-scroll { overflow-x: auto; }
  body.saccount-page.account-expanded .account-subject-table {
    width: max-content;
    min-width: 760px;
    table-layout: auto;
  }
  body.saccount-page.account-expanded .account-subject-table th,
  body.saccount-page.account-expanded .account-subject-table td {
    padding: .3rem .5rem;
    font-size: 1rem;
    white-space: nowrap;
    overflow-wrap: normal;
    vertical-align: top;
  }
  body.saccount-page.account-expanded .account-subject-table .d-md-none { display: none !important; }
  body.saccount-page.account-expanded .account-subject-table .d-none.d-md-table-cell { display: table-cell !important; }
  .saccount-page .account-payments-table { width: 100%; min-width: 0; table-layout: fixed; }
  .saccount-page .account-payments-table th,
  .saccount-page .account-payments-table td {
    padding: .25rem .2rem;
    font-size: .7rem;
    white-space: normal;
    overflow-wrap: anywhere;
    vertical-align: middle;
  }
  .saccount-page .account-payments-table th:nth-child(1),
  .saccount-page .account-payments-table td:nth-child(1) { width: 23%; }
  .saccount-page .account-payments-table th:nth-child(2),
  .saccount-page .account-payments-table td:nth-child(2) { width: 31%; }
  .saccount-page .account-payments-table th:nth-child(3),
  .saccount-page .account-payments-table td:nth-child(3) { width: 25%; }
  .saccount-page .account-payments-table th:nth-child(4),
  .saccount-page .account-payments-table td:nth-child(4) { width: 21%; }
  .saccount-page .totals-mobile { display: flex; flex-direction: column; gap: .25rem; }
  .saccount-page .totals-mobile-line {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: .75rem;
    padding: .35rem .15rem;
    border-bottom: 1px solid #E6E2D6;
    color: #343434;
    font-size: .85rem;
  }
  .saccount-page .totals-mobile-line span { min-width: 0; }
  .saccount-page .totals-mobile-line strong { color: var(--png-red); font-weight: 700; white-space: nowrap; }
  body.records-page:not(.show-subject-column) .responsive-table-scroll { overflow-x: visible; }
  .records-page .records-table { width: 100%; min-width: 0; table-layout: fixed; }
  .records-page .records-table th,
  .records-page .records-table td {
    padding: .3rem .35rem;
    font-size: .8rem;
    white-space: normal;
    overflow-wrap: anywhere;
    vertical-align: middle;
  }
  .records-page .records-table th:nth-child(1),
  .records-page .records-table td:nth-child(1) { width: 42%; }
  .records-page .records-table th:nth-child(3),
  .records-page .records-table td:nth-child(3),
  .records-page .records-table th:nth-child(4),
  .records-page .records-table td:nth-child(4) { width: 29%; }
  body.records-page.show-subject-column .responsive-table-scroll { overflow-x: auto; }
  body.records-page.show-subject-column .records-table {
    width: max-content;
    min-width: 760px;
    table-layout: auto;
  }
  body.records-page.show-subject-column .records-table th,
  body.records-page.show-subject-column .records-table td {
    padding: .3rem .5rem;
    font-size: 1rem;
    white-space: nowrap;
    overflow-wrap: normal;
    vertical-align: top;
  }
  body.schedule-page:not(.schedule-expanded) .responsive-table-scroll { overflow-x: visible; }
  .schedule-page .responsive-data-table.schedule-table {
    width: 100%;
    min-width: 0;
    table-layout: fixed;
  }
  .schedule-page:not(.schedule-expanded) .schedule-optional-column { display: none; }
  .schedule-page .schedule-table th,
  .schedule-page .schedule-table td {
    padding: .25rem .2rem;
    font-size: .72rem;
    white-space: normal;
    overflow-wrap: anywhere;
    vertical-align: middle;
  }
  .schedule-page:not(.schedule-expanded) .schedule-table th:nth-child(1),
  .schedule-page:not(.schedule-expanded) .schedule-table td:nth-child(1) { width: 8%; }
  .schedule-page:not(.schedule-expanded) .schedule-table th:nth-child(2),
  .schedule-page:not(.schedule-expanded) .schedule-table td:nth-child(2) { width: 20%; }
  .schedule-page:not(.schedule-expanded) .schedule-table th:nth-child(5),
  .schedule-page:not(.schedule-expanded) .schedule-table td:nth-child(5) { width: 32%; }
  .schedule-page:not(.schedule-expanded) .schedule-table th:nth-child(6),
  .schedule-page:not(.schedule-expanded) .schedule-table td:nth-child(6) { width: 18%; }
  .schedule-page:not(.schedule-expanded) .schedule-table th:nth-child(7),
  .schedule-page:not(.schedule-expanded) .schedule-table td:nth-child(7) { width: 22%; }
  .schedule-expand-toggle { white-space: nowrap; flex: 0 0 auto; }
  body.schedule-page.schedule-expanded .responsive-table-scroll { overflow-x: auto; }
  body.schedule-page.schedule-expanded .schedule-table {
    width: max-content;
    min-width: 760px;
    table-layout: auto;
  }
  body.schedule-page.schedule-expanded .schedule-table th,
  body.schedule-page.schedule-expanded .schedule-table td {
    padding: .3rem .5rem;
    font-size: 1rem;
    white-space: nowrap;
    overflow-wrap: normal;
    vertical-align: top;
  }
  .prospectus-page .responsive-table-scroll { overflow-x: visible; }
  .prospectus-page .responsive-data-table {
    width: 100%;
    min-width: 0;
    table-layout: fixed;
  }
  .prospectus-page .responsive-data-table th,
  .prospectus-page .responsive-data-table td {
    padding: .3rem .25rem;
    font-size: .78rem;
    white-space: normal;
    overflow-wrap: anywhere;
    vertical-align: middle;
  }
  .prospectus-page:not(.show-subject-column) .responsive-data-table th:nth-child(1),
  .prospectus-page:not(.show-subject-column) .responsive-data-table td:nth-child(1) { width: 25%; }
  .prospectus-page:not(.show-subject-column) .responsive-data-table th:nth-child(2),
  .prospectus-page:not(.show-subject-column) .responsive-data-table td:nth-child(2) { width: 46%; }
  .prospectus-page:not(.show-subject-column) .responsive-data-table th:nth-child(4),
  .prospectus-page:not(.show-subject-column) .responsive-data-table td:nth-child(4) { width: 29%; }
  .prospectus-page.show-subject-column .responsive-data-table th:nth-child(1),
  .prospectus-page.show-subject-column .responsive-data-table td:nth-child(1) { width: 17%; }
  .prospectus-page.show-subject-column .responsive-data-table th:nth-child(2),
  .prospectus-page.show-subject-column .responsive-data-table td:nth-child(2) { width: 29%; }
  .prospectus-page.show-subject-column .responsive-data-table th:nth-child(3),
  .prospectus-page.show-subject-column .responsive-data-table td:nth-child(3) { width: 39%; }
  .prospectus-page.show-subject-column .responsive-data-table th:nth-child(4),
  .prospectus-page.show-subject-column .responsive-data-table td:nth-child(4) { width: 15%; }
}
