/* Generated by scripts/build-source-shell.py. Content styling is isolated. */
:root{
  --color-ink: #000000;
  --color-muted: #463939;
  --color-surface: #ffffff;
  --color-surface-soft: #e9e9e9;
  --color-border: #d9d9d9;
  --color-brand: #5d1c61;
  --color-brand-dark: #5d1c61;
  --color-accent: #c6a5ca;
  --radius-sm: 0.5rem;
  --radius-md: 1rem;
  --radius-lg: 1.5rem;
  --shadow-sm: 0 0.75rem 2rem rgba(23, 32, 51, 0.08);
  --container: 75rem;
  --space-1: 0.5rem;
  --space-2: 0.75rem;
  --space-3: 1rem;
  --space-4: 1.5rem;
  --space-5: 2rem;
  --space-6: 3rem;
  --space-7: 5rem;

  color: var(--color-ink);
  background: var(--color-surface);
}
*,*::before,*::after{
  box-sizing: border-box;
}
body{
  margin: 0;

  background: var(--color-surface);
  font-size: 1rem;
  line-height: 1.65;
}
img{
  max-width: 100%;
  height: auto;
  border-radius: var(--radius-md);
}
a{
  color: var(--color-brand);
}
.site-shell{
  width: min(calc(100% - 2rem), var(--container));
  margin-inline: auto;
}
.skip-link{
  position: fixed;
  z-index: 1000;
  top: var(--space-3);
  left: var(--space-3);
  padding: var(--space-2) var(--space-3);
  border-radius: var(--radius-sm);
  background: var(--color-ink);
  color: white;
  transform: translateY(-200%);
}
.skip-link:focus{
  transform: translateY(0);
}
.site-header{
  position: sticky;
  z-index: 100;
  top: 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.14);


}
.site-header__inner{
  display: flex;

  align-items: center;

}
.site-brand{
  margin-right: auto;
}
.site-brand__name{
  display: flex;
  min-width: 12.5rem;
  flex-direction: column;
  align-items: center;
  color: white;
  line-height: 1;
  text-decoration: none;
}
.site-brand__spark{
  font-family: Georgia, "Times New Roman", serif;
  font-size: 2.45rem;
  font-weight: 700;
  letter-spacing: 0.08em;
}
.site-brand__center{
  margin-top: 0.28rem;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.16em;
}
.custom-logo{
  display: block;
  width: auto;
  max-height: 3rem;
}
.primary-nav__menu{
  display: flex;
  margin: 0;
  padding: 0;
  align-items: center;

  list-style: none;
}
.primary-nav__menu > li{
  position: relative;
}
.primary-nav__menu .sub-menu{
  position: absolute;
  top: calc(100% + 1rem);
  left: 50%;
  display: none;
  min-width: 15rem;
  margin: 0;
  padding: 0.7rem;
  border-radius: 0.65rem;
  background: white;
  box-shadow: 0 1.25rem 3rem rgba(18, 29, 48, 0.2);
  list-style: none;
  transform: translateX(-50%);
}
.primary-nav__menu > li > .sub-menu::before{
  position: absolute;
  right: 0;
  bottom: 100%;
  left: 0;
  height: 1rem;
  content: "";
}
.primary-nav__menu li:hover > .sub-menu,.primary-nav__menu li:focus-within > .sub-menu{
  display: block;
}
.primary-nav__menu .sub-menu .sub-menu{
  top: 0;
  left: calc(100% + 0.35rem);
  transform: none;
}
.primary-nav__menu .sub-menu .sub-menu::before{
  position: absolute;
  top: 0;
  right: 100%;
  bottom: 0;
  width: 0.35rem;
  content: "";
}
.primary-nav a{
  color: #e9e9e9;



  text-decoration: none;
  text-transform: uppercase;
  white-space: nowrap;
}
.primary-nav__menu .sub-menu a{
  display: block;
  padding: 0.55rem 0.65rem;
  color: var(--color-brand-dark);
  font-size: 0.82rem;
  text-transform: none;
  white-space: normal;
}
.menu-toggle{
  display: none;
}
.button,button{
  display: inline-flex;
  min-height: 3rem;
  align-items: center;
  justify-content: center;
  padding: 0.75rem 1.15rem;
  border: 1px solid var(--color-brand);
  border-radius: 999px;
  background: var(--color-brand);
  color: white;
  font: inherit;
  font-weight: 800;
  text-decoration: none;
  cursor: pointer;
}
.button--secondary{
  background: transparent;
  color: var(--color-brand);
}
.button--small{

  gap: 0.55rem;
  padding-inline: 1.15rem;
  border-color: white;

  background: white;
  color: var(--color-brand-dark);

  letter-spacing: 0.04em;

}
.button-row{
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  margin-top: var(--space-5);
}
.site-footer a{
  color: white;
}
.site-footer__title{
  font-size: 1.25rem;
  font-weight: 800;
}
.site-footer__bottom{

  padding-top: var(--space-4);
  border-top: 1px solid rgba(255, 255, 255, 0.2);
  color: rgba(255, 255, 255, 0.72);
}
.site-footer{
  padding-block: clamp(4rem, 7vw, 6rem) 1.5rem;

}
.site-footer__brand > p{
  max-width: 23rem;
  margin-block: 1.4rem 0;
  color: rgba(255, 255, 255, 0.78);
}
.site-footer__wordmark{
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  color: #fff;
  line-height: 1;
  text-decoration: none;
}
.site-footer__wordmark span{
  font-family: Georgia, "Times New Roman", serif;
  font-size: 2.65rem;
  font-weight: 700;
  letter-spacing: 0.09em;
}
.site-footer__wordmark small{
  margin-top: 0.35rem;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.18em;
}
.site-footer__promise{
  padding-left: 1rem;
  border-left: 2px solid var(--color-accent);
  font-size: 0.9rem;
}
.site-footer__heading{
  margin: 0 0 1.1rem;
  color: #fff;
  font-size: 0.78rem;
  font-weight: 900;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}
.site-footer__nav a,.site-footer__contact a{
  color: rgba(255, 255, 255, 0.78);
  text-decoration: none;
}
.site-footer__nav a:hover,.site-footer__contact a:hover,.site-footer__bottom a:hover{
  color: #fff;
}
.site-footer__contact p{
  margin-block: 0 0.65rem;
  color: rgba(255, 255, 255, 0.76);
  line-height: 1.5;
}
.site-footer__contact .site-footer__cta{
  display: inline-flex;
  margin-top: 1rem;
  padding: 0.75rem 1rem;
  border-radius: 0.6rem;
  background: #fff;
  color: var(--color-brand-dark);
  font-weight: 800;
}
.site-footer__bottom{
  display: flex;
  margin-top: clamp(3rem, 6vw, 5rem);
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  font-size: 0.85rem;
}
.site-footer__bottom p{
  margin: 0;
}
.site-footer__bottom nav{
  display: flex;
  flex-wrap: wrap;
  gap: 1.2rem;
}
.site-footer__bottom a{
  color: rgba(255, 255, 255, 0.72);
  text-decoration: none;
}
@media  (max-width: 900px) {.primary-nav,.site-header__inner > .button{
    display: none;
  }
.menu-toggle{
    display: inline-flex;
  }}
@media  (min-width: 901px) {.site-header.is-condensed,.site-header.is-condensed .site-header__inner{
    min-height: 62px;
  }
.site-header.is-condensed .site-brand__name,.site-header.is-condensed .site-brand__name img,.site-header.is-condensed .custom-logo-link,.site-header.is-condensed .custom-logo{
    width: 134px;
    max-height: 56px;
  }
.site-header .site-shell{
    padding-inline: 57px;
  }}
.spark-source-assessment .site-header{
  position: absolute;
  z-index: 20;
  top: 0;
  right: 0;
  left: 0;
  background: transparent;
}
.spark-source-access .site-header{
  position: absolute;
  z-index: 20;
  top: 0;
  right: 0;
  left: 0;
  background: transparent;
}
body.spark-source-access #spark-source-root #spark-source-content .spark-node-1876361109,
body.spark-source-access #spark-source-root #spark-source-content .spark-node-1876361109 *,
body.spark-source-access #spark-source-root #spark-source-content .spark-node-1596650588,
body.spark-source-access #spark-source-root #spark-source-content .spark-node-1596650588 *,
body.spark-source-access #spark-source-root #spark-source-content .spark-node-1279668438 h4,
body.spark-source-access #spark-source-root #spark-source-content .spark-node-1279668438 h4 *,
body.spark-source-access #spark-source-root #spark-source-content .spark-node-1414598866 h1,
body.spark-source-access #spark-source-root #spark-source-content .spark-node-1414598866 h1 *{
  color: #fff !important;
}
.spark-source-student-portal .site-header{
  position: absolute;
  z-index: 20;
  top: 0;
  right: 0;
  left: 0;
  background: transparent;
}
.spark-source-spark-store .site-header{
  position: absolute;
  z-index: 20;
  top: 0;
  right: 0;
  left: 0;
  background: transparent;
}
@media  (max-width: 600px) {.site-shell{
    width: min(calc(100% - 1.25rem), var(--container));
  }
.site-footer__grid{
    grid-template-columns: 1fr;
  }
.site-footer__bottom{
    align-items: flex-start;
    flex-direction: column;
  }}
@media  (prefers-reduced-motion: reduce) {*,*::before,*::after{
    scroll-behavior: auto;
    transition-duration: 0.01ms;
    animation-duration: 0.01ms;
    animation-iteration-count: 1;
  }}
@font-face  {
  font-family: "Spark Avenir";
  src: url("../fonts/avenir-next-regular.otf") format("opentype");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}
@font-face  {
  font-family: "Spark Avenir";
  src: url("../fonts/avenir-next-bold.otf") format("opentype");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}
@font-face  {
  font-family: "Spark Avenir";
  src: url("../fonts/avenir-next-italic.otf") format("opentype");
  font-style: italic;
  font-weight: 400;
  font-display: swap;
}
@font-face  {
  font-family: "Frank Ruhl Libre";
  src: url("../fonts/frank-ruhl-libre-latin-variable.woff2") format("woff2");
  font-style: normal;
  font-weight: 300 900;
  font-display: swap;
}
:root{
  --font-sans: "Spark Avenir", "Avenir Next", Avenir, sans-serif;
  --font-serif: "Frank Ruhl Libre", Georgia, serif;
  --header-height: 5.875rem;
  font-family: var(--font-sans);
}
body{
  color: #000;
  font-family: var(--font-sans);
}
.site-header{
  min-height: var(--header-height);
  border: 0;
  background: #5d1c61;
  backdrop-filter: none;
}
.site-header .site-shell{
  width: 100%;
  max-width: none;
  padding-inline: 1.5625rem;
}
.site-header__inner{
  min-height: var(--header-height);
  gap: clamp(1rem, 2.2vw, 2rem);
}
.site-brand__name,.site-brand__name img,.custom-logo-link,.custom-logo{
  display: block;
  width: 12.5rem;
  max-width: none;
  height: auto;
  max-height: 5rem;
  object-fit: contain;
}
.primary-nav__menu{
  gap: clamp(0.65rem, 1.55vw, 1.55rem);
}
.primary-nav a{
  font-family: var(--font-sans);
  font-size: 0.875rem;
  font-weight: 400;
  letter-spacing: 0;
}
.primary-nav__menu > .current-menu-item > a,.primary-nav__menu > .current-menu-ancestor > a{
  text-decoration: overline underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.42rem;
}
.primary-nav__menu .menu-item-has-children > a{
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
}
.primary-nav__menu .menu-item-has-children > a::after{
  width: 0.42rem;
  height: 0.42rem;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  content: "";
  transform: translateY(-0.12rem) rotate(45deg);
  transition: transform 160ms ease;
}
.primary-nav__menu .sub-menu .menu-item-has-children > a::after{
  margin-left: auto;
  transform: rotate(-45deg);
}
.primary-nav__menu > li > a{
  position: relative;
  padding-block: 0.75rem;
}
.primary-nav__menu > li > a::before{
  position: absolute;
  right: 0;
  bottom: 0.45rem;
  left: 0;
  height: 1px;
  background: currentColor;
  content: "";
  opacity: 0;
  transform: scaleX(0.5);
  transition: opacity 160ms ease, transform 160ms ease;
}
.primary-nav__menu > li:hover > a::before,.primary-nav__menu > li:focus-within > a::before{
  opacity: 1;
  transform: scaleX(1);
}
.primary-nav__menu .sub-menu a:hover,.primary-nav__menu .sub-menu a:focus-visible{
  border-radius: 0.35rem;
  background: rgba(93, 28, 97, 0.08);
  color: #5d1c61;
  outline: none;
}
.submenu-toggle{
  display: none;
}
.button--small{
  min-width: 10.75rem;
  min-height: 2.625rem;
  border: 0;
  border-radius: 0.375rem;
  font-family: var(--font-serif);
  font-size: 0.875rem;
  text-transform: uppercase;
}
.menu-toggle{
  width: 2rem;
  min-width: 2rem;
  min-height: 2rem;
  padding: 0.35rem 0.2rem;
  border: 0;
  border-radius: 0;
  flex-direction: column;
  gap: 0.27rem;
  background: transparent;
}
.menu-toggle__line{
  display: block;
  width: 1.875rem;
  border-top: 2px solid #d9d9d9;
}
@media  (max-width: 900px) {:root{
    --header-height: 5.3125rem;
  }
.site-header .site-shell{
    padding-inline: 2.625rem 1.75rem;
  }
.site-brand__name,.site-brand__name img,.custom-logo-link,.custom-logo{
    width: 8.7rem;
    max-height: 4.2rem;
  }
.menu-toggle{
    margin-left: auto;
  }}
.error404 .empty-state .button-row{
  margin-top: 1.5rem;
}
.site-footer{
  min-height: 21.75rem;
  padding: 7.25rem 0 4.25rem;
  background: #5d1c61;
  color: #fff;
  font-family: var(--font-serif);
}
.site-footer__grid{
  display: grid;
  width: min(calc(100% - 2rem), 75rem);
  align-items: start;
  gap: 3.5rem;
  grid-template-columns: 1.5fr 0.85fr 0.85fr 1.2fr;
}
.site-footer__wordmark,.site-footer__wordmark img{
  display: block;
  width: 14.5rem;
  height: auto;
}
.site-footer__nav ul{
  margin: 0;
  padding: 0;
  list-style: none;
}
.site-footer__nav li + li{
  margin-top: 2.5rem;
}
.site-footer__nav a,.site-footer__contact a,.site-footer__contact p{
  color: #fff;
  font-size: 1rem;
  line-height: 1.35;
}
.site-footer__contact p{
  margin: 0;
}
.site-footer__social{
  display: flex;
  min-height: 2.25rem;
  align-items: center;
  gap: 1.15rem;
  margin-bottom: 1.5rem;
}
.site-footer__social a{
  font-family: var(--font-sans);
  font-size: 1.2rem;
  font-weight: 700;
  text-decoration: none;
}
@media  (max-width: 480px) {.menu-toggle{
    width: 1.375rem;
    min-width: 1.375rem;
  }
.menu-toggle__line{
    width: 1.375rem;
  }}
@media  (max-width: 480px) {.site-header .site-shell{
    padding-right: 1.25rem;
  }
.menu-toggle,.menu-toggle__line{
    width: 1.375rem;
    min-width: 1.375rem;
  }}
.site-footer{
  position: relative;
  z-index: 1;
  clear: both;
}
@media  (min-width: 901px) and (max-width: 1199px) {.site-header .site-shell{
    padding-right: 24px;
    padding-left: 24px;
  }
.site-header__inner{
    gap: 12px;
  }
.site-brand__name,.site-brand__name img,.custom-logo-link,.custom-logo{
    width: 134px;
    max-height: 56px;
  }
.primary-nav__menu{ gap: 8px; }
.primary-nav a{ font-size: 13px; }
.site-header__inner > .button{
    width: 140px;
    min-width: 140px;
    padding-right: 12px;
    padding-left: 12px;
  }}
@media  (max-width: 900px) {.site-footer{ width: 100%; min-width: 0; min-height: 0; padding: 60px 0; }
.site-footer__grid{ width: calc(100% - 48px); grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px; }
.site-footer__grid > *{ min-width: 0; }
.site-footer__wordmark,.site-footer__wordmark img{ width: min(232px, 100%); }
.site-footer__contact{ overflow-wrap: anywhere; }}
@media  (max-width: 600px) {.site-footer__brand,.site-footer__contact{ grid-column: 1 / -1; }
.site-footer__nav li + li{ margin-top: 24px; }}
@media (min-width:1200px) {body .site-header .site-shell{ padding-left:25px !important; padding-right:57px !important; }
body .site-header__inner>.button{ align-self:flex-start; margin-top:10px; height:40px; min-height:40px; padding:6px 14px; }}
.spark-lightbox{ width:min(1100px,94vw); max-height:94dvh; padding:52px 16px 16px; border:0; background:#171217; color:white; }
.spark-lightbox::backdrop{ background:rgb(0 0 0 / 80%); }
.spark-lightbox img{ display:block; max-width:100%; max-height:calc(94dvh - 80px); width:auto; height:auto; margin:auto; border-radius:0; }
.spark-lightbox button{ position:absolute; right:10px; top:4px; width:44px; height:44px; border:0; background:none; color:white; font:32px/1 sans-serif; cursor:pointer; }
@font-face  { font-family:AvenirNextLTPro-Regular; src:url("../fonts/avenir-next-regular.otf") format("opentype"); font-weight:400; font-style:normal; font-display:swap; }
@font-face  { font-family:AvenirNextLTPro-Bold; src:url("../fonts/avenir-next-bold.otf") format("opentype"); font-weight:400; font-style:normal; font-display:swap; }
@media (min-width:1025px) {body .site-header__inner > .button{ justify-content:flex-start; gap:20px; font-weight:700; transition:background-color .2s, color .2s, border-color .2s; }
body .site-header__inner > .button svg{ width:25px; height:25px; flex:0 0 25px; }}
@media (min-width:1025px) {.site-header,.site-header__inner{ transition:min-height .2s ease; }
.site-header :is(.site-brand__name,.site-brand__name img,.custom-logo-link,.custom-logo){ transition:width .2s ease, max-height .2s ease; }}
@media (min-width:1200px) {body .site-footer{ padding:70px 0; min-height:347px; }
body .site-footer__grid{ width:min(100%,1200px); padding:0 2vw; gap:4%; grid-template-columns:repeat(4,minmax(0,1fr)); }
body .site-footer__wordmark,body .site-footer__wordmark img{ width:100%; max-width:251px; height:auto; }
body .site-footer__nav{ margin-top:27px; }
body .site-footer__nav + .site-footer__nav{ margin-top:26px; }
body .site-footer__nav li + li{ margin-top:40px; }
body .site-footer__nav a{ line-height:21px; }
body .site-footer__contact{ padding:16px; }
body .site-footer__contact p,body .site-footer__contact a{ font-size:15px; line-height:20px; }
body .site-footer__social{ height:54px; min-height:54px; margin-bottom:24px; gap:12px; }}
@media (min-width:1200px) {body .site-footer__wordmark img{ height:148px; object-fit:contain; }}
@font-face  { font-family:AvenirNextLTPro-It; src:url("../fonts/avenir-next-italic.otf") format("opentype"); font-weight:400; font-style:normal; font-display:swap; }
body .site-header__inner > .button{ font-size:15px; font-weight:700; line-height:normal; letter-spacing:normal; }
@font-face  {
 font-family:"Frank Ruhl Libre"; src:url("../fonts/frank-ruhl-libre-latin-ext-variable.woff2") format("woff2");
 font-weight:300 900; font-style:normal; font-display:swap;
 unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face  { font-family:Lato; font-style:normal; font-weight:400; font-display:swap; src:url("../fonts/lato-400-latin-ext.woff2") format("woff2"); unicode-range:U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face  { font-family:Lato; font-style:normal; font-weight:400; font-display:swap; src:url("../fonts/lato-400-latin.woff2") format("woff2"); unicode-range:U+0-FF, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face  { font-family:Lato; font-style:normal; font-weight:700; font-display:swap; src:url("../fonts/lato-700-latin-ext.woff2") format("woff2"); unicode-range:U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face  { font-family:Lato; font-style:normal; font-weight:700; font-display:swap; src:url("../fonts/lato-700-latin.woff2") format("woff2"); unicode-range:U+0-FF, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face  { font-family:Raleway; font-style:normal; font-weight:100 900; font-display:swap; src:url("../fonts/raleway-100-900-latin-ext.woff2") format("woff2"); unicode-range:U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face  { font-family:Raleway; font-style:normal; font-weight:100 900; font-display:swap; src:url("../fonts/raleway-100-900-latin.woff2") format("woff2"); unicode-range:U+0-FF, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
/* Adapt source canvases to the native WordPress shell and accessible controls. */
#spark-source-root{width:100%;max-width:none;margin:0;padding:0}
#spark-source-root .spark-honeypot{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;opacity:0!important;pointer-events:none;overflow:hidden}
#spark-source-root .section{padding:0}
#spark-source-root input[type=submit]{display:inline-block;min-height:0}
#spark-source-root .dmformsubmit{border:1px solid transparent}
#spark-source-root [id="1004254545"] .spark-form-clear{display:block!important}
#spark-source-root :is(h1,h2,h3,h4,h5,h6){letter-spacing:normal}
#spark-source-root button.dmBlogSearchIcon{min-height:0;display:block;border:0;border-radius:0;background:transparent;box-shadow:none}
@media(min-width:1025px){body:has(#spark-source-root) .site-header.is-condensed + .site-main{padding-top:32px}}
/* These source layouts let their content move up with the compact header. */
@media(min-width:1025px){body:is(.spark-source-access,.spark-source-assessment,.spark-source-spark_store,.spark-source-student-portal) .site-header.is-condensed + .site-main{padding-top:0}}
@media(max-width:1024px){body:has(#spark-source-root) .site-main{padding-top:0}}
/* Header already occupies normal document flow outside the source canvas. */
#spark-source-root #spark-source-content .dmLayoutWrapper .site_content{margin-top:0!important}
@media(max-width:767px){
 #spark-source-root .postArticle .postTextContainer{display:contents}
 #spark-source-root #spark-source-content .postArticle .postText>.readMore{padding:0;width:100%}
}

/* Source runtime normally reveals these; our observer controls opacity instead. */
#spark-source-root :is([data-anim-desktop],[data-anim-mobile],[data-anim-tablet],[data-anim-extended]){visibility:visible!important}
#spark-source-root .spark-animation-pending{opacity:0}
#spark-source-root .spark-animation-running{animation:var(--spark-animation-name) 1s ease-in-out both}
@keyframes spark-fade-in{from{opacity:0}to{opacity:1}}
@keyframes spark-fade-up{from{opacity:0;transform:translateY(100%)}to{opacity:1;transform:none}}
@keyframes spark-fade-down{from{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:none}}
@keyframes spark-fade-left{from{opacity:0;transform:translateX(-100%)}to{opacity:1;transform:none}}
@keyframes spark-fade-right{from{opacity:0;transform:translateX(100%)}to{opacity:1;transform:none}}
@keyframes spark-zoom-in{from{opacity:0;transform:scale(.3)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){#spark-source-root .spark-animation-pending{opacity:1}#spark-source-root .spark-animation-running{animation:none}}

/* Source footer: four equal columns, with contact details vertically centered. */
@media(min-width:768px){
 body:has(#spark-source-root) .site-footer{padding:70px 0;min-height:347px}
 body:has(#spark-source-root) .site-footer__grid{width:min(100%,1200px);padding:0 2vw;gap:4%;grid-template-columns:repeat(4,minmax(0,1fr));align-items:stretch}
 body:has(#spark-source-root) .site-footer__brand,body:has(#spark-source-root) .site-footer__contact{grid-column:auto}
 body:has(#spark-source-root) .site-footer__wordmark,body:has(#spark-source-root) .site-footer__wordmark img{width:100%;max-width:none;height:148px;object-fit:contain}
 body:has(#spark-source-root) .site-footer__nav{margin-top:27px;padding-right:5.921875px;min-height:180px}
 body:has(#spark-source-root) .site-footer__nav+.site-footer__nav{margin-top:26px;padding-right:19.5234375px}
 body:has(#spark-source-root) .site-footer__nav li+li{margin-top:0}
 body:has(#spark-source-root) .site-footer__nav a{display:block;padding:0 0 40px;line-height:21px;letter-spacing:.48px}
 body:has(#spark-source-root) .site-footer__nav li:last-child a{padding-bottom:0}
 body:has(#spark-source-root) .site-footer__contact{display:flex;flex-direction:column;justify-content:center;padding:16px;gap:24px;overflow-wrap:normal}
 body:has(#spark-source-root) .site-footer__social{height:39px;min-height:39px;margin:0;align-items:flex-start;gap:3.828125px}
 body:has(#spark-source-root) .site-footer__social a{display:flex;align-items:center;justify-content:center;width:34px;height:34px;flex:0 0 34px;margin-bottom:5px}
 body:has(#spark-source-root) .site-footer__social svg{display:block;width:22.6667px;height:23.1406px}
 body:has(#spark-source-root) .site-footer__contact p,body:has(#spark-source-root) .site-footer__contact a{font-size:15px;line-height:normal}
 body:has(#spark-source-root) .spark-footer-phone a{font-size:16px}
 body:has(#spark-source-root) .site-footer__contact .spark-footer-email,body:has(#spark-source-root) .spark-footer-email a{line-height:22.5px}
 body:has(#spark-source-root) .spark-footer-mobile-break{display:initial}
 body:has(#spark-source-root) .spark-footer-email a{text-decoration:underline}
}
@media(min-width:768px) and (max-width:1024px){
 body:has(#spark-source-root) .site-footer__grid{gap:2%}
 body:has(#spark-source-root) .site-footer__nav+.site-footer__nav{margin-top:32px;padding-right:10.0703125px}
}
/* Keep global form/button styles out of the PhotoSwipe interface. */
.pswp button{min-height:0;border-radius:0;box-shadow:none}
.pswp .pswp__counter{font-family:Arial,sans-serif}
.pswp .pswp__img{border-radius:0;box-shadow:none}
