/*!*******************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./src/scss/main.scss ***!
  \*******************************************************************************************************************************************************************************************************************************************/
@charset "UTF-8";
/* start point for premium smartphone */
:root {
  /* Measurements */
  --measure: 75ch;
  --max-inline-size: 81.5rem; /* site width 1304px */
  --article-inline-size: 74rem; /* 1184px */
  --container-inline-size: 50rem; /* 800px, used for accordion and tables */
  --component-inline-size: 42rem; /* 672px */
  --component-inline-size-s: 34.25rem; /* 584px */
  --component-inline-size-xs: 16.75rem; /* 268px */
  --space-xs: 0.25rem;
  --space-s: 0.5rem;
  --space-m: 1rem;
  --space-l: 1.5rem;
  --space-xl: 2.5rem;
  --space-xxl: 4rem;
  --space: var(--space-m);
  --icon-space: 0.4em;
  --inline-scroll-element: var(--space-l);
  --border-radius: 16px;
  --border-radius-s: 8px;
  --border-radius-xs: 4px;
  --padding-xs: var(--space-l);
  --padding-s: var(--space-xl);
  --padding-m: var(--space-xxl);
  --padding-l: 6rem;
  --padding-xl: 8.375rem;
  --padding: var(--padding-s);
  --padding-clamp-m: clamp(var(--padding-s), 0.8146rem + 3.3708vw, var(--padding-m));
  --padding-clamp-l: clamp(var(--padding-s), 1.1803rem + 5.1002vw, var(--padding-l));
  --padding-clamp-xl: clamp(var(--padding-m), 2.3504rem + 6.3752vw, var(--padding-xl));
  /* Section padding */
  --section-block-s: var(--padding-s);
  --section-block-m: var(--padding-clamp-m);
  --section-block-xl: var(--padding-clamp-xl);
  --section-block: var(--padding-clamp-m);
  --section-inline: clamp(var(--padding-xs), calc(50vw - calc(var(--max-inline-size) / 2)), calc(50vw - calc(var(--max-inline-size) / 2)));
  --section-inline-with-panel: var(--section-inline);
  --section-inline-corporate: clamp(var(--padding-xs), calc(50vw - calc(var(--article-inline-size) / 2)), calc(50vw - calc(var(--article-inline-size) / 2)));
  --section-inline-filter-page: clamp(var(--padding-xs), calc(50vw - 35rem), calc(50vw - 35rem));
  --section-inline-narrow: clamp(var(--padding-xs), calc(50vw - calc(var(--component-inline-size) / 2)), calc(50vw - calc(var(--component-inline-size) / 2)));
  /* Breakpoint where in-page menu floats */
  /* Grid setup
  auto filling grid used in `card-flexi` and `feature-panel`
  based on css-tricks.com/an-auto-filling-css-grid-with-max-columns
  */
  --grid-layout-gap: var(--space-l);
  --grid-layout-gap-xl: clamp(var(--space-l), 0.8387rem + 2.5559vw, var(--space-xl));
  --grid-layout-gap-xxl: clamp(var(--space-l), -0.984rem + 7.6677vw, var(--space-xxl));
  --grid-item-min-inline-size: min(100%, 22rem);
  --grid-item-max-inline-size: calc((100% - var(--grid-layout-gap)) / 2);
  /* Hero widths */
  --hero-leaf: 81px;
  --hero-content-inline-size: 32.625rem;
  --hero-banner-block-size: 54.55vw; /* 1080/1980 = 54.55% */
  /* Typography
   If Barlow is unavailable the font stack will fallback to system fonts:
   Corbel (Microsoft Windows), Apple SD Gothic Neo (macOS, iOS), Roboto (Android).
  */
  --font-body: "Barlow", -apple-system, "BlinkMacSystemFont", "Segoe UI", "Roboto", "Helvetica", "Arial", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
  --font-article: 1.125rem;
  --font-s: 0.875rem; /* 14px, small body (help text, use sparingly) */
  /* Heading sizes */
  --font-heading-xxs-mobile: 1.125rem;
  --font-heading-xxs-desktop: 1.25rem;
  --font-heading-xxs: clamp(var(--font-heading-xxs-mobile), 1.0423rem + 0.3195vw, var(--font-heading-xxs-desktop));
  --font-heading-xs-mobile: 1.25rem;
  --font-heading-xs-desktop: 1.4375rem;
  --font-heading-xs: clamp(var(--font-heading-xs-mobile), 1.126rem + 0.4792vw, var(--font-heading-xs-desktop));
  --font-heading-s-mobile: 1.4375rem;
  --font-heading-s-desktop: 1.75rem;
  --font-heading-s: clamp(var(--font-heading-s-mobile), 1.2308rem + 0.7987vw, var(--font-heading-s-desktop));
  --font-heading-m-mobile: 1.75rem;
  --font-heading-m-desktop: 2.0625rem;
  --font-heading-m: clamp(var(--font-heading-m-mobile), 1.5433rem + 0.7987vw, var(--font-heading-m-desktop));
  --font-heading-l-mobile: 2.0625rem;
  --font-heading-l-desktop: 2.5rem;
  --font-heading-l: clamp(var(--font-heading-l-mobile), 1.7732rem + 1.1182vw, var(--font-heading-l-desktop));
  /* Line height */
  --font-line-height: 1.5;
  --font-heading-line-height: 1.3;
  --font-heading-xxs-line-height: var(--font-heading-line-height);
  --font-heading-xs-line-height: var(--font-heading-line-height);
  --font-heading-s-line-height: var(--font-heading-line-height);
  --font-heading-m-line-height: var(--font-heading-line-height);
  --font-heading-l-line-height: clamp(2.681rem, 0.815vw + 2.47rem, 3rem); /* 33/1.3 -> 40/1.2 fluidtypography.com min@414px -> max@1040px */
  /* Drop shadows */
  --drop-shadow: 0 4px 8px 0 rgb(0 0 0 / 10%);
  --drop-shadow-text: 0 1px 0 rgb(0 0 0 / 32%);
  --drop-shadow-svg: drop-shadow(var(--drop-shadow-text));
  /* Transitions */
  --transition-time: 0.4s;
  --transition-time-s: 0.2s;
  --cubic-bezier: cubic-bezier(0.15, 0.67, 0.75, 1);
  --transition: all var(--transition-time) var(--cubic-bezier);
  --transition-s: all var(--transition-time-s) var(--cubic-bezier);
  /* Creative Thinkers colours */
  /* Orange variants - keep all variants for error messages */
  --color-orange-050: hsl(20deg 100% 70% / 100%); /* #ff9866 */
  --color-orange-100: hsl(20deg 100% 65% / 100%); /* #ff874d */
  --color-orange-200: hsl(20deg 100% 60% / 100%); /* #ff7633 */
  --color-orange-300: hsl(20deg 100% 55% / 100%); /* #ff6519 */
  --color-orange-400: hsl(20deg 100% 50% / 100%); /* #ff5400 */
  --color-orange-500: hsl(20deg 100% 45% / 100%); /* #e64c00 */
  --color-orange-600: hsl(20deg 100% 40% / 100%); /* #cc4300 */
  --color-orange-700: hsl(20deg 100% 35% / 100%); /* #b33b00 */
  --color-orange-800: hsl(20deg 100% 30% / 100%); /* #993200 */
  --color-orange-900: hsl(20deg 100% 25% / 100%); /* #802a00 */
  /* New Dawn */
  /* Teal (primary) variants */
  --color-teal-050: hsl(169deg 48% 90% / 100%); /* #daf2ee */
  --color-teal-100: hsl(169deg 47% 81% / 100%); /* #b8e5dd */
  --color-teal-200: hsl(169deg 47% 71% / 100%); /* #92d8cb */
  --color-teal-300: hsl(169deg 48% 62% / 100%); /* #70cdbc */
  --color-teal-400: hsl(169deg 47% 52% / 100%); /* #4bbea9 */
  --color-teal-500: hsl(169deg 65% 42% / 100%); /* #25b197 */
  --color-teal-600: hsl(169deg 64% 35% / 100%); /* #20927d */
  --color-teal-700: hsl(169deg 65% 28% / 100%); /* #197665 */
  --color-teal-800: hsl(169deg 65% 21% / 100%); /* #13584c */
  --color-teal-900: hsl(169deg 64% 14% / 100%); /* #0d3b32 */
  --color-teal: var(--color-teal-500);
  /* Plum (secondary) variants */
  --color-plum-050: hsl(324deg 49% 90% / 100%); /* #f2d9e8 */
  --color-plum-100: hsl(324deg 48% 80% / 100%); /* #e4b3d0 */
  --color-plum-200: hsl(324deg 49% 70% / 100%); /* #d88eba */
  --color-plum-300: hsl(324deg 49% 60% / 100%); /* #cb68a3 */
  --color-plum-400: hsl(324deg 49% 50% / 100%); /* #be428c */
  --color-plum-500: hsl(324deg 72% 40% / 100%); /* #b11d75 */
  --color-plum-600: hsl(324deg 72% 32% / 100%); /* #941862 */
  --color-plum-700: hsl(324deg 72% 27% / 100%); /* #76134e */
  --color-plum-800: hsl(324deg 71% 20% / 100%); /* #590f3b */
  --color-plum-900: hsl(324deg 71% 14% / 100%); /* #3b0a27 */
  --color-plum: var(--color-plum-500);
  /* Black (tertiary) variants */
  /* Using RGB as HSL values containing 0deg or 0 cause display error in Safari macOS 14.1, fixed in 15+ */
  --color-black-050: rgb(229 229 229 / 100%); /* #e5e5e5 */
  --color-black-100: rgb(204 204 204 / 100%); /* #ccc */
  --color-black-200: rgb(178 178 178 / 100%); /* #b2b2b2 */
  --color-black-300: rgb(153 153 153 / 100%); /* #999 */
  --color-black-400: rgb(127 127 127 / 100%); /* #7f7f7f */
  --color-black-500: rgb(102 102 102 / 100%); /* #666 */
  --color-black-600: rgb(77 77 77 / 100%); /* #4d4d4d */
  --color-black-700: rgb(51 51 51 / 100%); /* #333 */
  --color-black-800: rgb(26 26 26 / 100%); /* #1a1a1a */
  --color-black-900: rgb(0 0 0 / 100%); /* #000 */
  --color-black: var(--color-black-900);
  /* Alerts */
  /* Alert Green */
  --color-alert-green-050: hsl(154deg 54% 91% / 100%); /* #DDF2E9 */
  --color-alert-green-100: hsl(154deg 54% 82% / 100%); /* #BBE5D3 */
  --color-alert-green-200: hsl(154deg 54% 73% / 100%); /* #9AD9BE */
  --color-alert-green-300: hsl(154deg 54% 64% / 100%); /* #79CDA9 */
  --color-alert-green-400: hsl(155deg 54% 55% / 100%); /* #57BF93 */
  --color-alert-green-500: hsl(155deg 54% 46% / 100%); /* #36B37E */
  --color-alert-green-600: hsl(155deg 54% 38% / 100%); /* #2D9569 */
  --color-alert-green-700: hsl(154deg 54% 31% / 100%); /* #247854 */
  --color-alert-green-800: hsl(154deg 54% 23% / 100%); /* #1B5A3F */
  --color-alert-green-900: hsl(154deg 54% 15% / 100%); /* #123C2A */
  --color-alert-green: var(--color-alert-green-500);
  /* Alert Red */
  --color-alert-red-050: hsl(12deg 100% 93% / 100%); /* #FFE3DC */
  --color-alert-red-100: hsl(11deg 100% 86% / 100%); /* #FFC6B9 */
  --color-alert-red-200: hsl(11deg 100% 80% / 100%); /* #FFAA97 */
  --color-alert-red-300: hsl(11deg 100% 73% / 100%); /* #FF8E74 */
  --color-alert-red-400: hsl(11deg 100% 66% / 100%); /* #FF7252 */
  --color-alert-red-500: hsl(11deg 100% 59% / 100%); /* #FF5630 */
  --color-alert-red-600: hsl(11deg 100% 50% / 100%); /* #D54828 */
  --color-alert-red-700: hsl(11deg 100% 40% / 100%); /* #AA3920 */
  --color-alert-red-800: hsl(11deg 100% 30% / 100%); /* #802B18 */
  --color-alert-red-900: hsl(11deg 100% 20% / 100%); /* #561D10 */
  --color-alert-red: var(--color-alert-red-500);
  /* Alert Yellow */
  --color-alert-yellow-050: hsl(40deg 100% 92% / 100%); /* #FFF1D4 */
  --color-alert-yellow-100: hsl(40deg 100% 83% / 100%); /* #FFE2A9 */
  --color-alert-yellow-200: hsl(40deg 100% 75% / 100%); /* #FFD57F */
  --color-alert-yellow-300: hsl(40deg 100% 67% / 100%); /* #FFC755 */
  --color-alert-yellow-400: hsl(40deg 100% 58% / 100%); /* #FFB92A */
  --color-alert-yellow-500: hsl(40deg 100% 50% / 100%); /* #FFAB00 */
  --color-alert-yellow-600: hsl(40deg 100% 42% / 100%); /* #D58F00 */
  --color-alert-yellow-700: hsl(40deg 100% 33% / 100%); /* #AA7200 */
  --color-alert-yellow-800: hsl(40deg 100% 25% / 100%); /* #805600 */
  --color-alert-yellow-900: hsl(40deg 100% 17% / 100%); /* #563900 */
  --color-alert-yellow: var(--color-alert-yellow-500);
  /* Alert Blue */
  --color-alert-blue-050: hsl(216deg 100% 92% / 100%); /* #D4E5FF */
  --color-alert-blue-100: hsl(216deg 100% 83% / 100%); /* #A9CBFF */
  --color-alert-blue-200: hsl(216deg 100% 75% / 100%); /* #7FB2FF */
  --color-alert-blue-300: hsl(216deg 100% 67% / 100%); /* #5598FF */
  --color-alert-blue-400: hsl(216deg 100% 58% / 100%); /* #2A7EFF */
  --color-alert-blue-500: hsl(216deg 100% 50% / 100%); /* #0065FF */
  --color-alert-blue-600: hsl(216deg 100% 42% / 100%); /* #0054D5 */
  --color-alert-blue-700: hsl(216deg 100% 33% / 100%); /* #0043AA */
  --color-alert-blue-800: hsl(216deg 100% 25% / 100%); /* #003380 */
  --color-alert-blue-900: hsl(216deg 100% 17% / 100%); /* #002256 */
  /* White variants */
  --color-white: rgb(255 255 255 / 100%); /* #fff, using rgb due to HSL Safari display error */
  --color-ecru: hsl(156deg 19% 95% / 100%); /* #eff4f2 */
  /* Primary variants */
  --color-primary: var(--color-teal);
  --color-secondary: var(--color-plum);
  --color-tertiary: var(--color-black);
  /* Corporate colours */
  --color-web-blue: hsl(202deg 100% 35% / 100%); /* #0073b4 */
  --color-web-blue-dark: hsl(202deg 93% 21% / 100%); /* #055785 */
  --color-web-grey: hsl(202deg 2% 35% / 100%); /* #575a5b */
  --color-web-yellow: hsl(40deg 100% 67% / 100%); /* #ffc658 */
  --color-web-yellow-dark: hsl(40deg 87% 56% / 100%); /* #f0ad2c */
  --color-web-yellow-light: hsl(39deg 100% 74% / 100%); /* #ffd179 */
  /* Current student */
  --color-current-student-green-050: hsl(159deg 37% 65% / 100%);
  --color-current-student-green-100: hsl(159deg 37% 47% / 100%);
  --color-current-student-green-200: hsl(159deg 37% 44% / 100%);
  --color-current-student-green-300: hsl(159deg 37% 41% / 100%);
  --color-current-student-green-400: hsl(159deg 36% 35% / 100%);
  --color-current-student-green-500: hsl(159deg 36% 31% / 100%);
  /* Miscellanous */
  --color-accent: var(--color-primary); /* highlight buttons and custom icons */
  --color-error: var(--color-orange-400);
  --addtocompare-heart-color: var(--color-secondary);
  --component-disabled-background-color: var(--color-black-200);
  --component-disabled-text-color: var(--color-black-500); /* required to meet AA colour contrast */
  --color-focus-visible: var(--color-primary);
  --autocomplete-fill-color: var(--color-ecru);
  /* Background images */
  --tick-ul: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 512 512%27%3E%3Cpath fill=%27%2300172a%27 d=%27M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm113-303L241 337l-17 17-17-17-64-64-17-17 34-33.9 17 17 47 47L335 175l17-17 33.9 34-17 17z%27/%3E%3C/svg%3E"); /* built using https://www.svgbackgrounds.com/tools/svg-to-css/ */
}
@media (min-width: 65em) {
  :root {
    --section-inline-with-panel: clamp(30vw, calc(50vw - 19.5rem), calc(50vw - 19.5rem));
  }
}

.autocomplete__wrapper {
  position: relative;
}

.autocomplete__hint,
.autocomplete__input {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border: 2px solid #0b0c0c;
  border-radius: 0; /* Safari 10 on iOS adds implicit border rounding. */
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  margin-bottom: 0; /* BUG: Safari 10 on macOS seems to add an implicit margin. */
  line-height: 1.25;
  height: 2.5rem;
  width: 100%;
}

.autocomplete__input {
  background-color: transparent;
  position: relative;
}

.autocomplete__hint {
  color: #505a5f;
  position: absolute;
}

.autocomplete__input--default {
  padding: 5px;
}

.autocomplete__input--focused {
  outline: 3px solid #fd0;
  outline-offset: 0;
  -webkit-box-shadow: inset 0 0 0 2px;
          box-shadow: inset 0 0 0 2px;
}

.autocomplete__input--show-all-values {
  padding: 5px 35px 5px 5px; /* Space for arrow. Other padding should match .autocomplete__input--default. */
  cursor: pointer;
}

.autocomplete__dropdown-arrow-down {
  z-index: -1;
  display: inline-block;
  position: absolute;
  right: 8px;
  width: 24px;
  height: 24px;
  top: 10px;
}

.autocomplete__menu {
  background-color: #ffffff;
  border: 2px solid #0b0c0c;
  border-top: 0;
  color: #0b0c0c;
  margin: 0;
  max-height: 342px;
  overflow-x: hidden;
  padding: 0;
  width: 100%;
  width: calc(100% - 4px);
}

.autocomplete__menu--visible {
  display: block;
}

.autocomplete__menu--hidden {
  display: none;
}

.autocomplete__menu--overlay {
  -webkit-box-shadow: rgba(0, 0, 0, 0.256863) 0px 2px 6px;
          box-shadow: rgba(0, 0, 0, 0.256863) 0px 2px 6px;
  left: 0;
  position: absolute;
  top: 100%;
  z-index: 100;
}

.autocomplete__menu--inline {
  position: relative;
}

.autocomplete__option {
  border-bottom: solid #b1b4b6;
  border-width: 1px 0;
  cursor: pointer;
  display: block;
  position: relative;
}

.autocomplete__option > * {
  pointer-events: none;
}

.autocomplete__option:first-of-type {
  border-top-width: 0;
}

.autocomplete__option:last-of-type {
  border-bottom-width: 0;
}

.autocomplete__option--odd {
  background-color: #f3f2f1;
}

.autocomplete__option--focused,
.autocomplete__option:hover {
  background-color: #1d70b8;
  border-color: #1d70b8;
  color: white;
  outline: none;
}

@media (-ms-high-contrast: active), (forced-colors: active) {
  .autocomplete__menu {
    border-color: FieldText;
  }
  .autocomplete__option {
    background-color: Field;
    color: FieldText;
  }
  .autocomplete__option--focused,
  .autocomplete__option:hover {
    forced-color-adjust: none; /* prevent backplate from obscuring text */
    background-color: Highlight;
    border-color: Highlight;
    color: HighlightText;
    /* Prefer SelectedItem / SelectedItemText in browsers that support it */
    background-color: SelectedItem;
    border-color: SelectedItem;
    color: SelectedItemText;
    outline-color: SelectedItemText;
  }
}
.autocomplete__option--no-results {
  background-color: #f3f2f1;
  color: #505a5f;
  cursor: not-allowed;
}

.autocomplete__hint,
.autocomplete__input,
.autocomplete__option {
  font-size: 1rem;
  font-weight: 400;
}

.autocomplete__hint,
.autocomplete__option {
  padding: 5px;
}

@media (min-width: 641px) {
  .autocomplete__hint,
  .autocomplete__input,
  .autocomplete__option {
    font-size: 1.1875rem;
    line-height: 1.3157894737;
  }
}
/* stylelint-disable-line no-invalid-position-at-import-rule */
.tf-v1-widget {
  width: 100%;
  height: 100%;
  min-height: inherit;
  position: relative;
}

.tf-v1-widget iframe {
  width: 100%;
  height: 100%;
  border: none;
  overflow: hidden;
  border-radius: 8px;
  min-height: inherit;
}

.tf-v1-widget-close {
  display: none;
}

.tf-v1-widget-iframe-overlay {
  width: 100%;
  height: 100%;
  border: none;
  overflow: hidden;
  border-radius: 8px;
  position: absolute;
  top: 0;
  left: 0;
}

.tf-v1-widget-fullscreen {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 10001;
  width: 100% !important;
  height: 100% !important;
}

.tf-v1-widget-fullscreen .tf-v1-widget-close {
  display: block;
  display: block;
  padding: 0;
  margin: 0;
  position: absolute;
  font-size: 32px;
  font-weight: normal;
  line-height: 24px;
  width: 24px;
  height: 24px;
  text-align: center;
  text-transform: none;
  cursor: pointer;
  opacity: 0.75;
  -webkit-transition: opacity 0.25s ease-in-out;
  transition: opacity 0.25s ease-in-out;
  text-decoration: none;
  color: #000;
  top: 6px;
  right: 8px;
  background: none;
  border: none;
  border-radius: 0;
  z-index: 1;
}

.tf-v1-widget-fullscreen .tf-v1-widget-close:hover {
  opacity: 1;
}

@media (min-width: 481px) {
  .tf-v1-widget-fullscreen .tf-v1-widget-close {
    color: #fff !important;
  }
}
.tf-v1-widget-fullscreen iframe {
  border-radius: 0;
}

/* stylelint-disable-line no-invalid-position-at-import-rule */
@-webkit-keyframes splide-loading {
  0% {
    -webkit-transform: rotateZ(0);
            transform: rotateZ(0);
  }
  100% {
    -webkit-transform: rotateZ(360deg);
            transform: rotateZ(360deg);
  }
}
@keyframes splide-loading {
  0% {
    -webkit-transform: rotateZ(0);
            transform: rotateZ(0);
  }
  100% {
    -webkit-transform: rotateZ(360deg);
            transform: rotateZ(360deg);
  }
}
.splide__track--draggable {
  -webkit-touch-callout: none;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}

.splide__track--fade > .splide__list > .splide__slide {
  margin: 0 !important;
  opacity: 0;
  z-index: 0;
}
.splide__track--fade > .splide__list > .splide__slide.is-active {
  opacity: 1;
  z-index: 1;
}

.splide--rtl {
  direction: rtl;
}

.splide__track--ttb > .splide__list {
  display: block;
}

.splide__container {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  position: relative;
}

.splide__list {
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  height: 100%;
  margin: 0 !important;
  padding: 0 !important;
}
.splide.is-initialized:not(.is-active) .splide__list {
  display: block;
}

.splide__pagination {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin: 0;
  pointer-events: none;
}
.splide__pagination li {
  display: inline-block;
  line-height: 1;
  list-style-type: none;
  margin: 0;
  pointer-events: auto;
}
.splide:not(.is-overflow) .splide__pagination {
  display: none;
}

.splide__progress__bar {
  width: 0;
}

.splide {
  position: relative;
  visibility: hidden;
}
.splide.is-initialized, .splide.is-rendered {
  visibility: visible;
}

.splide__slide {
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  list-style-type: none !important;
  margin: 0;
  position: relative;
}
.splide__slide img {
  vertical-align: bottom;
}

.splide__spinner {
  -webkit-animation: splide-loading 1s infinite linear;
          animation: splide-loading 1s infinite linear;
  border: 2px solid #999;
  border-left-color: transparent;
  border-radius: 50%;
  bottom: 0;
  contain: strict;
  display: inline-block;
  height: 20px;
  left: 0;
  margin: auto;
  position: absolute;
  right: 0;
  top: 0;
  width: 20px;
}

.splide__sr {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
}

.splide__toggle__pause {
  display: none;
}
.splide__toggle.is-active .splide__toggle__play {
  display: none;
}
.splide__toggle.is-active .splide__toggle__pause {
  display: inline;
}

.splide__track {
  overflow: hidden;
  position: relative;
  z-index: 0;
}

/*
Mixin helping to define the settings always required by a pseudo class

@author Aaron Chapman

@access public

@param {String} $display - Element’s `display` type
@param {String} $pos - Element’s `position` type
@param {String} $content - Element’s `content` details

@example scss - Usage
  .foo::after {
    @include pseudo(block, absolute, '');
  }

  .bar::after {
    @include pseudo(inline-block, absolute, 'Menu');
  }

@example css - CSS output
  .foo::after {
    content: '';
    display: block;
    position: absolute;
  }

  .bar::after {
    content: 'Menu';
    display: inline-block;
    position: absolute;
  }
*/
/*
Mixin to hide content visually, but have it available for screen readers:
Reference: https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
1. For long content, line feeds are not interpreted as spaces and small width
   causes content to wrap 1 word per line:
   https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
2. Extends visuallyHidden to allow the element to be focusable when navigated to via the keyboard:
   https://www.drupal.org/node/897638

@author Katie Hartrick

@access public

@example scss - Usage
  .foo {
    @include visuallyHidden;
  }

@example css - CSS output
  .foo {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
  }

  .foo::active, .foo::focus  {
     clip: auto;
     height: auto;
     margin: 0;
     overflow: visible;
     position: static;
     width: auto;
     white-space: inherit;
  }
*/
/* Mixin for form inputs */
/*
Mixin to fix white text on dark background
For use on sections or panels with light text and dark backgrounds

@author Katie Hartrick

@access public

@example scss - Usage
  .darkPanel {
    @include fontSmoothing;
  }

@example css - CSS output
  .darkPanel {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
  }
*/
/* Pop up tool tips, https://atomiks.github.io/tippyjs/themes/

Also used for GitBridge Developer Switcher on QA

@example html - Usage
<div class="tippy-popper">
  <div class="tippy-tooltip" x-placement="top">
    <div class="tippy-content">{content}</div>
  </div>
</div>
*/
.tippy-tooltip, .tippy-box {
  -webkit-font-smoothing: antialiased; /* WebKit (caniuse.com/font-smooth) */
  -moz-osx-font-smoothing: grayscale; /* Firefox (caniuse.com/font-smooth) */
  background-color: var(--color-black);
  padding: 1.5rem;
  color: var(--color-white);
  font-size: 1rem;
}

.tippy-content > *:first-child {
  margin-top: 0;
}

/*
Modal code is in several places:
 * Data record, generated in DataRecordModule.js and built in webCMS super content
 * Modal with Matterport, generated in ModalModule.js
 * Last Reviwed article component, built in webCMS helper file Body - Modal Footer Last Reviewed
*/
.modal-overlay {
  position: fixed;
  inset: 0;
  background-color: hsla(207, 100%, 8%, 0.8);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.modal-container {
  position: relative;
  max-block-size: 100vh;
  inline-size: min(90%, 31.5rem);
  overflow-y: auto;
  padding-block: var(--padding-xs);
  padding-inline: var(--padding-xs);
}
.modal-container-persona {
  inline-size: min(100%, var(--container-inline-size));
  max-block-size: 80vh;
  padding: clamp(var(--padding-xs), 0.8387rem + 2.5559vw, var(--padding)); /* clamp.font-size.app min@414px -> max@1040px */
}

.modal-close {
  position: absolute;
  top: var(--space-l);
  right: var(--space-l);
  z-index: 1;
}
.modal-container-persona .modal-close {
  right: var(--space);
}

.modal-heading {
  margin-block: var(--padding-xs);
  margin-inline: var(--padding-xs) var(--padding);
}

.modal-caption {
  padding-block: var(--padding-xs);
  padding-inline: var(--padding-xs);
}

/* 
Modal with Matterport, generated in ModalModule.js

@example html
<div class="modal-container modal-container-matterport" role="dialog" aria-modal="true" aria-labelledby="modalCaption">
 <main class="modal-body">
   <iframe src="https://my.matterport.com/show/?m={matterport_id}" width="1666" height="1063"></iframe>
   <div id="modalCaption" class="modal-caption stack">{caption}</div>
 </main>
</div>
*/
.modal-container-matterport {
  inline-size: auto;
  max-inline-size: unset;
  padding: 0;
}

/*
Data record, generated in DataRecordModule.js and built in webCMS super content
super-content-ct/templates-ct.html object #1026657

@example html
<div class="modal-container modal-container-data-record background-{color}" role="dialog" aria-modal="true" aria-labelledby="modalHeading">
 <main class="modal-body stack">
   <h4 id="modalHeading" class="modal-heading heading-xs">{heading}</h4>
   <div class="videoResponsive" data-videoid="{data_record}">
   <div class="modal-caption">{caption}</div>
 </main>
</div>
*/
.modal-container-data-record {
  inline-size: min(90%, 50rem);
  padding: 0;
}

@-webkit-keyframes mm-fade-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes mm-fade-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@-webkit-keyframes mm-fade-out {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}
@keyframes mm-fade-out {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}
@-webkit-keyframes mm-slide-in {
  from {
    -webkit-transform: translateY(15%), translate3d(0, 0, 0);
            transform: translateY(15%), translate3d(0, 0, 0);
  } /* 1 */
  to {
    -webkit-transform: translateY(0), translate3d(0, 0, 0);
            transform: translateY(0), translate3d(0, 0, 0);
  } /* 1 */
}
@keyframes mm-slide-in {
  from {
    -webkit-transform: translateY(15%), translate3d(0, 0, 0);
            transform: translateY(15%), translate3d(0, 0, 0);
  } /* 1 */
  to {
    -webkit-transform: translateY(0), translate3d(0, 0, 0);
            transform: translateY(0), translate3d(0, 0, 0);
  } /* 1 */
}
@-webkit-keyframes mm-slide-out {
  from {
    -webkit-transform: translateY(0), translate3d(0, 0, 0);
            transform: translateY(0), translate3d(0, 0, 0);
  } /* 1 */
  to {
    -webkit-transform: translateY(-10%), translate3d(0, 0, 0);
            transform: translateY(-10%), translate3d(0, 0, 0);
  } /* 1 */
}
@keyframes mm-slide-out {
  from {
    -webkit-transform: translateY(0), translate3d(0, 0, 0);
            transform: translateY(0), translate3d(0, 0, 0);
  } /* 1 */
  to {
    -webkit-transform: translateY(-10%), translate3d(0, 0, 0);
            transform: translateY(-10%), translate3d(0, 0, 0);
  } /* 1 */
}
.modal {
  display: none;
}
.modal.is-open {
  display: block;
}
.modal .modal-container,
.modal .modal-overlay {
  will-change: transform;
  z-index: 10;
}

.modal[aria-hidden=false] .modal-overlay {
  -webkit-animation: mm-fade-in 0.3s cubic-bezier(0, 0, 0.2, 1);
          animation: mm-fade-in 0.3s cubic-bezier(0, 0, 0.2, 1);
}
.modal[aria-hidden=false] .modal-container {
  -webkit-animation: mm-slide-in 0.3s cubic-bezier(0, 0, 0.2, 1);
          animation: mm-slide-in 0.3s cubic-bezier(0, 0, 0.2, 1);
}

.modal[aria-hidden=true] .modal-overlay {
  -webkit-animation: mm-fade-out 0.3s cubic-bezier(0, 0, 0.2, 1);
          animation: mm-fade-out 0.3s cubic-bezier(0, 0, 0.2, 1);
}
.modal[aria-hidden=true] .modal-container {
  -webkit-animation: mm-slide-out 0.3s cubic-bezier(0, 0, 0.2, 1);
          animation: mm-slide-out 0.3s cubic-bezier(0, 0, 0.2, 1);
}

.g-recaptcha {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin-top: var(--space);
}
.ecu-forms .g-recaptcha, .featureCard .g-recaptcha {
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
}

.toastify {
  -webkit-font-smoothing: antialiased; /* WebKit (caniuse.com/font-smooth) */
  -moz-osx-font-smoothing: grayscale; /* Firefox (caniuse.com/font-smooth) */
  display: inline-block;
  position: fixed;
  bottom: 1rem;
  left: calc(var(--section-inline) - 0.5rem);
  max-inline-size: -webkit-fit-content;
  max-inline-size: -moz-fit-content;
  max-inline-size: fit-content;
  -webkit-margin-start: auto;
          margin-inline-start: auto;
  padding-block: var(--space-s);
  padding-inline: var(--space);
  background: var(--color-tertiary);
  color: var(--color-white);
  opacity: 0;
  -webkit-transition: var(--transition);
  transition: var(--transition);
  cursor: pointer;
  text-decoration: none;
  z-index: 25;
}

.toastify.on {
  opacity: 1;
}

.st-custom-button {
  cursor: pointer;
}

/* Class names from @slidejs/splide */
.splide {
  --slider-inline-space: clamp(var(--space), -0.0164rem + 3.928vw, var(--space-xl)); /* clamp.font-size.app min@414px -> max@1025px */
  --slider-arrow-placement: calc(calc(var(--slider-inline-space) + 0.25em) * -1);
  margin-inline: var(--slider-inline-space);
  inline-size: calc(100% - var(--slider-inline-space) * 2); /* prevents overspill when slider is in `center` parent */
}

.splide__list,
.splide__slide {
  max-inline-size: unset;
}

.splide__arrow {
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}

.splide__arrow:disabled {
  color: var(--component-disabled-background-color);
}

.splide__arrow--prev {
  left: var(--slider-arrow-placement);
}

.splide__arrow--next {
  right: var(--slider-arrow-placement);
}

/*
Pagination (class `splide__pagination__page` is inserted by splide)
@usage html
<ul class="splide__pagination splide__pagination--ltr" role="tablist" aria-label="Select a slide to show">
   <li role="presentation">
    <button class="splide__pagination__page" type="button" role="tab" aria-controls="{controls}" aria-label="{label}" tabindex="-1"></button>
  </li>
</ul>
*/
.splide__pagination {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: var(--space); /* Figma: 16px */
  max-inline-size: 100%;
  -webkit-margin-before: var(--space-l);
          margin-block-start: var(--space-l); /* Figma: 24px */
  -webkit-padding-start: 0;
          padding-inline-start: 0; /* override default `ul` style in `typography` */
}

.splide__pagination button {
  position: relative;
  display: inline-block;
  -webkit-transition: -webkit-transform 0.2s linear;
  transition: -webkit-transform 0.2s linear;
  transition: transform 0.2s linear;
  transition: transform 0.2s linear, -webkit-transform 0.2s linear;
  inline-size: 0.75rem; /* Figma: 12px */
  block-size: 0.75rem; /* Figma: 12px */
  padding: 0;
  background-color: var(--component-disabled-background-color);
  border: 0;
  border-radius: 50%;
}
.splide__pagination button.is-active {
  background-color: var(--component-text-color);
}
@media (hover) {
  .splide__pagination button:hover {
    background-color: var(--component-text-color);
    cursor: pointer;
  }
}

/* Custom Splide instances */
.splide-why-ecu img {
  max-inline-size: 11.5rem;
  margin-inline: auto;
}

@media (min-width: 90em) {
  .splide-why-ecu :disabled {
    display: none; /* target slide__arrow:disabled and hide on large screens */
  }
}
/* 

Site wide search, used in Search overlay

@example html
<div class="autocomplete__wrapper">
  <input aria-expanded="false" aria-owns="searchQ__listbox" aria-autocomplete="list" aria-describedby="searchQ__assistiveHint" autocomplete="off" class="autocomplete__input autocomplete__input--default" id="searchQ" name="query" placeholder="" type="search" role="combobox" tabindex="-1">
  <ul class="autocomplete__menu autocomplete__menu--overlay autocomplete__menu--hidden" id="searchQ__listbox" role="listbox">
    <li aria-selected="false" class="autocomplete__option" id="searchQ__option--0" role="option" tabindex="-1" aria-posinset="1" aria-setsize="20">
      <span class="autocomplete-title">health</span>
    </li>
  </ul>
  <span id="searchQ__assistiveHint" style="display: none;">{autocomplete hint}</span>
</div>
*/
.autocomplete__wrapper {
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
}

.autocomplete__menu,
.search-suggestions ul {
  inline-size: calc(100% + 3.75rem); /* matches `components/search-submit` */
  max-inline-size: calc(100% + 3.75rem); /* override default var(--measure) */
  border: 0;
  padding-block: 0;
  inset-inline-end: 0;
  color: var(--color-black);
}

.autocomplete__menu {
  background-color: var(--autocomplete-fill-color);
  -webkit-box-shadow: var(--drop-shadow);
          box-shadow: var(--drop-shadow);
}
@media (min-width: 37.5em) {
  .autocomplete__menu {
    -webkit-margin-before: var(--space-s);
            margin-block-start: var(--space-s); /* create space on desktop */
  }
}

/* Manually entered into Funnelback search template `ecu-web/Profile-main/project.ftl` */
.autocomplete__input {
  margin: 0;
  border: 0;
  padding-block: 0.75rem;
  padding-inline: var(--space-l);
  font-size: 1rem; /* Overwriting the size created by plugin */
  line-height: var(--font-line-height); /* line height needs to be at least 19px to account for character ascenders and descenders */
}

.autocomplete__input--focused {
  outline: 0.25rem solid var(--color-primary);
  -webkit-box-shadow: none;
          box-shadow: none;
}

/* Autocomplete options */
.autocomplete__option {
  padding-block: 0.75rem;
}

.autocomplete__option,
.search-suggestions-option {
  position: relative; /* required for pseudo elements */
  max-inline-size: 100%; /* override default var(--measure) */
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: var(--space-s);
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin-block: 0;
  border: 0;
  padding-inline: var(--space-l);
  font-size: 1rem; /* Overwriting the size created by plugin */
  text-align: start; /* overrides any parent center classes */
  line-height: var(--font-line-height); /* line height needs to be at least 19px to account for character ascenders and descenders */
}
.autocomplete__option:hover,
.search-suggestions-option:hover {
  font-weight: 500;
  -webkit-transition: font-weight 400ms var(--cubic-bezier);
  transition: font-weight 400ms var(--cubic-bezier);
}
.autocomplete__option svg,
.search-suggestions-option svg {
  color: var(--color-black-200);
}
.autocomplete__option:hover svg,
.search-suggestions-option:hover svg {
  color: var(--color-black);
  -webkit-transition: color 400ms var(--cubic-bezier);
  transition: color 400ms var(--cubic-bezier);
}
.autocomplete__option::after, .autocomplete__option::before,
.search-suggestions-option::after,
.search-suggestions-option::before {
  /* Create a psuedo element so that hover states look nice */
  content: "";
  display: block;
  position: absolute;
  block-size: calc(100% + 0.125rem);
  inline-size: var(--space-l);
  inset-inline-start: 0;
  inset-block-start: 0;
  background-color: var(--autocomplete-fill-color);
}
.autocomplete__option::after,
.search-suggestions-option::after {
  inset-inline-start: unset;
  inset-inline-end: 0;
}

.autocomplete__option:not(:last-of-type),
.search-suggestions-option:not(:last-of-type) {
  -webkit-border-after: 0.125rem solid var(--color-black-050);
          border-block-end: 0.125rem solid var(--color-black-050);
}

.autocomplete__option--odd, .autocomplete__option--focused,
.autocomplete__option:hover {
  background-color: var(--autocomplete-fill-color);
  color: var(--color-black);
}

/* Title */
.autocomplete-title {
  -ms-flex-preferred-size: 100%;
      flex-basis: 100%; /* prevents `.autocomplete-category` from shrinking */
  -webkit-padding-end: 1ch;
          padding-inline-end: 1ch; /* helps with layout shift on hover */
  text-align: start;
}

.autocomplete__option:hover .autocomplete-title {
  -webkit-padding-end: 0;
          padding-inline-end: 0; /* helps with layout shift on hover */
}

/* Ask Us, Courses, Staff */
.autocomplete-category {
  display: none;
  inline-size: 8ch; /* wide enough for 'staff' 'courses' and 'ask us' in small text */
  text-align: center;
}
@media (min-width: 37.5em) {
  .autocomplete-category {
    display: block;
  }
}

.autocomplete__option:focus-visible,
.search-suggestions-option:focus-visible {
  outline-offset: -0.25rem;
}
.autocomplete__option:focus-visible::after, .autocomplete__option:focus-visible::before,
.search-suggestions-option:focus-visible::after,
.search-suggestions-option:focus-visible::before {
  /* remove pseudo elements on focus so that the outline-offset displays */
  content: none;
}
.background-primary .autocomplete__option:focus-visible,
.background-primary .search-suggestions-option:focus-visible {
  outline-color: var(--color-black);
}

.autocomplete__option--focused .autocomplete__category,
.autocomplete__option:hover .autocomplete__category {
  color: var(--color-black);
}

/* Small X mark, created in shadow DOM */
input[type=search i]::-webkit-search-cancel-button {
  margin-inline: 0 calc(var(--space-l) * -1);
  color: var(--color-black);
}

/* Document
 * ========================================================================== */
/**
 * 1. Add border box sizing in all browsers (opinionated).
 * 2. Backgrounds do not repeat by default (opinionated).
 */
*,
::before,
::after {
  -webkit-box-sizing: border-box;
          box-sizing: border-box; /* 1 */
  background-repeat: no-repeat; /* 2 */
}

/**
 * 1. Add text decoration inheritance in all browsers (opinionated).
 * 2. Add vertical alignment inheritance in all browsers (opinionated).
 */
::before,
::after {
  text-decoration: inherit; /* 1 */
  vertical-align: inherit; /* 2 */
}

/**
 * 1. Use the default cursor in all browsers (opinionated).
 * 2. Change the line height in all browsers (opinionated).
 * 3. Breaks words to prevent overflow in all browsers (opinionated).
 * 4. Use a 4-space tab width in all browsers (opinionated).
 * 5. Remove the grey highlight on links in iOS (opinionated).
 * 6. Prevent adjustments of font size after orientation changes in iOS.
 */
:where(:root) {
  cursor: default; /* 1 */
  line-height: 1.5; /* 2 */
  overflow-wrap: break-word; /* 3 */
  -moz-tab-size: 4; /* 4 */
  -o-tab-size: 4;
     tab-size: 4; /* 4 */
  -webkit-tap-highlight-color: transparent; /* 5 */
  -webkit-text-size-adjust: 100%; /* 6 */
}

/* Sections
 * ========================================================================== */
/**
 * Remove the margin in all browsers (opinionated).
 */
:where(body) {
  margin: 0;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Edge, Firefox, and Safari.
 */
:where(h1) {
  font-size: 2em;
  margin: 0.67em 0;
}

/* Grouping content
 * ========================================================================== */
/**
 * Remove the margin on nested lists in Chrome, Edge, and Safari.
 */
:where(dl, ol, ul) :where(dl, ol, ul) {
  margin: 0;
}

/**
 * 1. Correct the inheritance of border color in Firefox.
 * 2. Add the correct box sizing in Firefox.
 */
:where(hr) {
  color: inherit; /* 1 */
  height: 0; /* 2 */
}

/**
 * Remove the list style on navigation lists in all browsers (opinionated).
 */
:where(nav) :where(ol, ul) {
  list-style-type: none;
  padding: 0;
}

/**
 * Prevent VoiceOver from ignoring list semantics in Safari (opinionated).
 */
:where(nav li)::before {
  content: "​";
  float: left;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 * 3. Prevent overflow of the container in all browsers (opinionated).
 */
:where(pre) {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
  overflow: auto; /* 3 */
}

/* Text-level semantics
 * ========================================================================== */
/**
 * Add the correct text decoration in Safari.
 */
:where(abbr[title]) {
  text-decoration: underline;
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
:where(b, strong) {
  font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
:where(code, kbd, samp) {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}

/**
 * Add the correct font size in all browsers.
 */
:where(small) {
  font-size: 80%;
}

/* Embedded content
 * ========================================================================== */
/*
 * Change the alignment on media elements in all browsers (opinionated).
 */
:where(audio, canvas, iframe, img, svg, video) {
  vertical-align: middle;
}

/**
 * Remove the border on iframes in all browsers (opinionated).
 */
:where(iframe) {
  border-style: none;
}

/**
 * Change the fill color to match the text color in all browsers (opinionated).
 */
:where(svg:not([fill])) {
  fill: currentColor;
}

/* Tabular data
 * ========================================================================== */
/**
 * 1. Collapse border spacing in all browsers (opinionated).
 * 2. Correct table border color inheritance in all Chrome, Edge, and Safari.
 * 3. Remove text indentation from table contents in Chrome, Edge, and Safari.
 */
:where(table) {
  border-collapse: collapse; /* 1 */
  border-color: inherit; /* 2 */
  text-indent: 0; /* 3 */
}

/* Forms
 * ========================================================================== */
/**
 * Remove the margin on controls in Safari.
 */
:where(button, input, select) {
  margin: 0;
}

/**
 * Correct the inability to style buttons in iOS and Safari.
 */
:where(button, [type=button i], [type=reset i], [type=submit i]) {
  -webkit-appearance: button;
}

/**
 * Change the inconsistent appearance in all browsers (opinionated).
 */
:where(fieldset) {
  border: 1px solid #a0a0a0;
}

/**
 * Add the correct vertical alignment in Chrome, Edge, and Firefox.
 */
:where(progress) {
  vertical-align: baseline;
}

/**
 * 1. Remove the margin in Firefox and Safari.
 * 3. Change the resize direction in all browsers (opinionated).
 */
:where(textarea) {
  margin: 0; /* 1 */
  resize: vertical; /* 3 */
}

/**
 * 1. Correct the odd appearance in Chrome, Edge, and Safari.
 * 2. Correct the outline style in Safari.
 */
:where([type=search i]) {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}

/**
 * Correct the cursor style of increment and decrement buttons in Safari.
 */
::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto;
}

/**
 * Correct the text style of placeholders in Chrome, Edge, and Safari.
 */
::-webkit-input-placeholder {
  color: inherit;
  opacity: 0.54;
}

/**
 * Remove the inner padding in Chrome, Edge, and Safari on macOS.
 */
::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
 * 1. Correct the inability to style upload buttons in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */
::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}

/* Interactive
 * ========================================================================== */
/*
 * Add the correct styles in Safari.
 */
:where(dialog) {
  background-color: white;
  border: solid;
  color: black;
  height: -moz-fit-content;
  height: -webkit-fit-content;
  height: fit-content;
  left: 0;
  margin: auto;
  padding: 1em;
  position: absolute;
  right: 0;
  width: -moz-fit-content;
  width: -webkit-fit-content;
  width: fit-content;
}

:where(dialog:not([open])) {
  display: none;
}

/*
 * Add the correct display in Safari.
 */
:where(details > summary:first-of-type) {
  display: list-item;
}

/* Accessibility
 * ========================================================================== */
/**
 * Change the cursor on busy elements in all browsers (opinionated).
 */
:where([aria-busy=true i]) {
  cursor: progress;
}

/*
 * Change the cursor on control elements in all browsers (opinionated).
 */
:where([aria-controls]) {
  cursor: pointer;
}

/*
 * Change the cursor on disabled, not-editable, or otherwise
 * inoperable elements in all browsers (opinionated).
 */
:where([aria-disabled=true i], [disabled]) {
  cursor: not-allowed;
}

/*
 * Change the display on visually hidden accessible elements
 * in all browsers (opinionated).
 */
:where([aria-hidden=false i][hidden]) {
  display: initial;
}

:where([aria-hidden=false i][hidden]:not(:focus)) {
  clip: rect(0, 0, 0, 0);
  position: absolute;
}

/* stylelint-disable-line no-invalid-position-at-import-rule */
/**
 * 1. Change the inconsistent appearance in all browsers (opinionated).
 * 2. Add typography inheritance in all browsers (opinionated).
 */
:where(button, input, select, textarea) {
  background-color: transparent; /* 1 */
  border: 1px solid WindowFrame; /* 1 */
  color: inherit; /* 1 */
  font: inherit; /* 2 */
  letter-spacing: inherit; /* 2 */
  padding: 0.25em 0.375em; /* 1 */
}

/**
 * Change the inconsistent appearance in all browsers (opinionated).
 */
:where(select) {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2716%27 height=%274%27%3E%3Cpath d=%27M4 0h6L7 4%27/%3E%3C/svg%3E") no-repeat right center/1em;
  border-radius: 0;
  padding-right: 1em;
}

/**
 * Don't show the arrow for multiple choice selects
 */
:where(select[multiple]) {
  background-image: none;
}

/**
 * Remove the border and padding in all browsers (opinionated).
 */
:where([type=color i], [type=range i]) {
  border-width: 0;
  padding: 0;
}

/* stylelint-disable-line no-invalid-position-at-import-rule */
/**
 * Use the default user interface font in all browsers (opinionated).
 */
html {
  font-family: system-ui, -apple-system, "Segoe UI", "Roboto", "Ubuntu", "Cantarell", "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
}

/**
 * Use the default monospace user interface font in all browsers (opinionated).
 */
code,
kbd,
samp,
pre {
  font-family: ui-monospace, "Menlo", "Consolas", "Roboto Mono", "Ubuntu Monospace", "Noto Mono", "Oxygen Mono", "Liberation Mono", monospace, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
}

/* stylelint-disable-line no-invalid-position-at-import-rule */
button {
  padding: 0;
  border: 0;
  outline: none;
  font: inherit;
  color: inherit;
  background: none;
}

:where(nav li)::before {
  content: "";
  position: absolute;
}

:focus-visible {
  outline: 0.25rem solid var(--color-focus-visible);
  outline-offset: 0.25rem;
}

* {
  max-inline-size: var(--measure);
}

html,
body,
div,
header,
nav,
main,
section,
article,
footer {
  max-inline-size: none;
}

figure {
  margin-block: 0;
  margin-inline: 0;
}

:where(img, video) {
  block-size: auto;
  max-inline-size: 100%;
}

/**
 * Override sanitize.css
 */
:where(b, strong) {
  font-weight: 500;
}

.center {
  -webkit-box-sizing: content-box;
          box-sizing: content-box;
  max-inline-size: var(--measure);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin-inline: auto;
  text-align: center;
}

.wrapper-aside .section.center {
  margin-inline: 0;
}

.inline-end {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}

.stack {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}

.stack > * {
  margin-block: 0;
}

.stack > * + * {
  --stack: var(--space);
  -webkit-margin-before: var(--stack);
          margin-block-start: var(--stack);
}

.stack-0 > * + * {
  --stack: 0;
}

.stack-s > * + * {
  --stack: var(--space-s);
}

.stack-l > * + * {
  --stack: var(--space-l);
}

.stack-xl > * + * {
  --stack: var(--space-xl);
}

.stack-xxl > * + * {
  --stack: var(--space-xxl);
}

/* stack-reverse - useful when accessibility dictates a specific DOM order, 
   but Design System shows reverse, i.e. <h1> should be first text on the page
@example html
<div class="hero-content stack stack-reverse">
  <h1 class="heading-l">${dispTitle!}</h1>
  <p class="hero-course-code">Course code <strong>${code!}</strong></p>
  <div class="flex-wrap">
    <small class="badge new"><i class="fa-solid fa-sharp fa-sparkles fa-lg icon-inline-start background-black-700"></i>${dispNew!}</small>
    <small class="badge recognition"><i class="fa-solid fa-sharp fa-badge-check fa-lg icon-inline-start background-black-700"></i>Professional Recognition</span></small>
  </div>
</div>
*/
.stack-reverse {
  -webkit-box-orient: vertical;
  -webkit-box-direction: reverse;
      -ms-flex-direction: column-reverse;
          flex-direction: column-reverse;
}

.stack-reverse > *:first-child {
  --stack: var(--space);
  -webkit-margin-before: var(--stack);
          margin-block-start: var(--stack);
}

.stack-reverse > * + *:last-child {
  -webkit-margin-before: 0;
          margin-block-start: 0;
}

.stack-0.stack-reverse > *:first-child {
  --stack: 0;
}

.hidden {
  display: none;
  visibility: hidden;
  opacity: 0;
  height: 0;
  padding: 0;
  -webkit-transition: var(--transition-s);
  transition: var(--transition-s);
}

/* Flex wrap */
.flex-wrap {
  --flex-gap: var(--space-s);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: var(--flex-gap);
}
.flex-wrap-s {
  --flex-gap: 0 var(--space); /* reduce column gap, increase row gap */
}
.flex-wrap-l {
  --flex-gap: var(--space) var(--space-l);
}
.flex-wrap-100 {
  -ms-flex-preferred-size: 100%;
      flex-basis: 100%; /* used on Event landing page */
}
.flex-wrap-discipline { /* used on Study area discipline lists */
  --flex-gap: var(--space);
  max-inline-size: var(--container-inline-size);
}
.flex-wrap-discipline a {
  text-align: start;
}

/* Visually hidden, use for screen-reader text */
.visuallyHidden {
  border: 0;
  clip-path: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  white-space: nowrap; /* 1 */
}
.visuallyHidden:active, .visuallyHidden:focus-visible {
  clip-path: auto; /* 2 */
  height: auto;
  margin: 0;
  overflow: visible;
  position: static; /* 2 */
  width: auto;
  white-space: inherit;
}

/* Prevent click events for svg inside links */
a > svg {
  pointer-events: none;
}

body {
  font-family: var(--font-body);
  color: var(--color-black);
  font-size: 1em;
  letter-spacing: 0;
}

a {
  color: currentcolor;
}

ul, ol {
  margin-inline: 0;
  -webkit-padding-start: 1.5em;
          padding-inline-start: 1.5em;
}

small,
.small {
  font-size: var(--font-s);
}

small,
.small:not(strong) {
  font-weight: 400; /* override with <strong> tags, for example: <h2 class="small">Hello <strong>Katie!</strong></h2> */
}

/* Content container template: Pull out quote #932910

@example html
 <blockquote class="blockquote heading-xs stack">
   {content}
</blockquote>
*/
blockquote {
  margin-inline: 0;
}

/* Highlighted headings and icons, changes on dark backgrounds */
.highlight {
  color: var(--color-accent);
}

/* 
Creates AA+ contrast on light background. For use with large text.
Large text is defined as 14 point (typically 18.66px) and bold or larger, or 18 point (typically 24px) or larger.
*/
.highlight-text {
  color: var(--color-teal-700);
}

/* Heading styles */
h2, h3, h4 {
  font-weight: 500; /* webCMS and CAPS data */
}

.heading-xxs {
  font-weight: 500;
  font-size: var(--font-heading-xxs);
  line-height: var(--font-heading-xxs-line-height);
}

.heading-xs {
  font-weight: 500;
  font-size: var(--font-heading-xs);
  line-height: var(--font-heading-xs-line-height);
}

.heading-s {
  font-weight: 500;
  font-size: var(--font-heading-s);
  line-height: var(--font-heading-s-line-height);
}

.heading-m {
  font-weight: 500;
  font-size: var(--font-heading-m);
  line-height: var(--font-heading-m-line-height);
}

.heading-l {
  font-weight: 500;
  font-size: var(--font-heading-l);
  line-height: var(--font-heading-l-line-height);
}

.tick-ul {
  list-style-type: none;
}
.tick-ul li {
  position: relative;
}
.tick-ul li::before {
  content: "";
  display: block;
  position: absolute;
  top: 0.3125em;
  left: -1.4em;
  height: 0.9em;
  width: 0.9em;
  background-image: var(--tick-ul);
}

/*
@usage html - Course Information list, found in `course-archived.ftl`, `inc-archived.ftl` and `unitset.ftl` templates
<div class="card stack column-m background-white">
  <h3 class="heading-xxs">{title}</h3>
  <p>{content}</p>
  <ul class="list-style-none stack stack-s">
    <li><span>Location:</span> Online, Joondalup</li>
    <li><span>Study Mode:</span> Full Time, Part Time</li>
    <li><span>Code:</span> Y85</li>
  </ul>
</div>
*/
.list-style-none {
  -webkit-padding-start: 0;
          padding-inline-start: 0; /* override default `ul` */
  list-style-type: none;
}
.list-style-none span {
  font-weight: 500; /* Location/ Study Mode/ Code */
}

.background-primary {
  --component-background-color: var(--color-primary);
  --component-text-color: var(--color-black); /* keep this for nested components */
  --color-accent: var(--component-text-color);
  --color-focus-visible: var(--component-text-color); /* Update focus state on primary, teal-300, teal-400 panels */
  background-color: var(--component-background-color);
  color: var(--component-text-color);
}

.background-secondary {
  --component-background-color: var(--color-secondary);
  -webkit-font-smoothing: antialiased; /* WebKit (caniuse.com/font-smooth) */
  -moz-osx-font-smoothing: grayscale; /* Firefox (caniuse.com/font-smooth) */
  --component-text-color: var(--color-white);
  --component-disabled-background-color: var(--color-black-700); /* matches Figma */
  --component-disabled-text-color: var(--color-black-200); /* matches Figma */
  --tick-ul: url("data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path fill=\"%2326B298\" d=\"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm113-303L241 337l-17 17-17-17-64-64-17-17 34-33.9 17 17 47 47L335 175l17-17 33.9 34-17 17z\"/></svg>"); /* svgbackgrounds.com/tools/svg-to-css */
  background-color: var(--component-background-color);
  color: var(--component-text-color);
}

.background-white {
  --component-background-color: var(--color-white);
  --component-text-color: var(--color-black); /* keep this for nested components */
  background-color: var(--component-background-color);
  color: var(--component-text-color);
}

.background-alert-green {
  --component-background-color: var(--color-alert-green);
  --component-text-color: var(--color-black); /* keep this for nested components */
  background-color: var(--component-background-color);
  color: var(--component-text-color);
}

.background-alert-yellow {
  --component-background-color: var(--color-alert-yellow);
  --component-text-color: var(--color-black); /* keep this for nested components */
  background-color: var(--component-background-color);
  color: var(--component-text-color);
}

.background-alert-red {
  --component-background-color: var(--color-alert-red);
  --component-text-color: var(--color-black); /* keep this for nested components */
  background-color: var(--component-background-color);
  color: var(--component-text-color);
}

.background-teal-050 {
  --component-background-color: var(--color-teal-050);
  --component-text-color: var(--color-black); /* keep this for nested components */
  background-color: var(--component-background-color);
  color: var(--component-text-color);
}

.background-teal-100 {
  --component-background-color: var(--color-teal-100);
  --component-text-color: var(--color-black); /* keep this for nested components */
  background-color: var(--component-background-color);
  color: var(--component-text-color);
}

.background-teal-300 {
  --component-background-color: var(--color-teal-300);
  --component-text-color: var(--color-black); /* keep this for nested components */
  --color-accent: var(--component-text-color);
  --color-focus-visible: var(--component-text-color); /* Update focus state on primary, teal-300, teal-400 panels */
  background-color: var(--component-background-color);
  color: var(--component-text-color);
}

.background-teal-400 {
  --component-background-color: var(--color-teal-400);
  --component-text-color: var(--color-black); /* keep this for nested components */
  --color-accent: var(--component-text-color);
  --color-focus-visible: var(--component-text-color); /* Update focus state on primary, teal-300, teal-400 panels */
  background-color: var(--component-background-color);
  color: var(--component-text-color);
}

.background-ecru {
  --component-background-color: var(--color-ecru);
  --component-text-color: var(--color-black); /* keep this for nested components */
  background-color: var(--component-background-color);
  color: var(--component-text-color);
}

.background-black {
  --component-background-color: var(--color-black);
  -webkit-font-smoothing: antialiased; /* WebKit (caniuse.com/font-smooth) */
  -moz-osx-font-smoothing: grayscale; /* Firefox (caniuse.com/font-smooth) */
  --component-text-color: var(--color-white);
  --component-disabled-background-color: var(--color-black-700); /* matches Figma */
  --component-disabled-text-color: var(--color-black-200); /* matches Figma */
  --tick-ul: url("data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path fill=\"%2326B298\" d=\"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm113-303L241 337l-17 17-17-17-64-64-17-17 34-33.9 17 17 47 47L335 175l17-17 33.9 34-17 17z\"/></svg>"); /* svgbackgrounds.com/tools/svg-to-css */
  background-color: var(--component-background-color);
  color: var(--component-text-color);
}

.background-black-050 {
  --component-background-color: var(--color-black-050);
  --component-text-color: var(--color-black); /* keep this for nested components */
  background-color: var(--component-background-color);
  color: var(--component-text-color);
}

.background-black-100 {
  --component-background-color: var(--color-black-100);
  --component-text-color: var(--color-black); /* keep this for nested components */
  background-color: var(--component-background-color);
  color: var(--component-text-color);
}

.background-black-200 {
  --component-background-color: var(--color-black-200);
  --component-text-color: var(--color-black); /* keep this for nested components */
  background-color: var(--component-background-color);
  color: var(--component-text-color);
}

.background-black-600 {
  --component-background-color: var(--color-black-600);
  -webkit-font-smoothing: antialiased; /* WebKit (caniuse.com/font-smooth) */
  -moz-osx-font-smoothing: grayscale; /* Firefox (caniuse.com/font-smooth) */
  --component-text-color: var(--color-white);
  --component-disabled-background-color: var(--color-black-700); /* matches Figma */
  --component-disabled-text-color: var(--color-black-200); /* matches Figma */
  --tick-ul: url("data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path fill=\"%2326B298\" d=\"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm113-303L241 337l-17 17-17-17-64-64-17-17 34-33.9 17 17 47 47L335 175l17-17 33.9 34-17 17z\"/></svg>"); /* svgbackgrounds.com/tools/svg-to-css */
  background-color: var(--component-background-color);
  color: var(--component-text-color);
}

.background-black-700 {
  --component-background-color: var(--color-black-700);
  -webkit-font-smoothing: antialiased; /* WebKit (caniuse.com/font-smooth) */
  -moz-osx-font-smoothing: grayscale; /* Firefox (caniuse.com/font-smooth) */
  --component-text-color: var(--color-white);
  --component-disabled-background-color: var(--color-black-700); /* matches Figma */
  --component-disabled-text-color: var(--color-black-200); /* matches Figma */
  --tick-ul: url("data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path fill=\"%2326B298\" d=\"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm113-303L241 337l-17 17-17-17-64-64-17-17 34-33.9 17 17 47 47L335 175l17-17 33.9 34-17 17z\"/></svg>"); /* svgbackgrounds.com/tools/svg-to-css */
  background-color: var(--component-background-color);
  color: var(--component-text-color);
}

.background-black-800 {
  --component-background-color: var(--color-black-800);
  -webkit-font-smoothing: antialiased; /* WebKit (caniuse.com/font-smooth) */
  -moz-osx-font-smoothing: grayscale; /* Firefox (caniuse.com/font-smooth) */
  --component-text-color: var(--color-white);
  --component-disabled-background-color: var(--color-black-700); /* matches Figma */
  --component-disabled-text-color: var(--color-black-200); /* matches Figma */
  --tick-ul: url("data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path fill=\"%2326B298\" d=\"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm113-303L241 337l-17 17-17-17-64-64-17-17 34-33.9 17 17 47 47L335 175l17-17 33.9 34-17 17z\"/></svg>"); /* svgbackgrounds.com/tools/svg-to-css */
  background-color: var(--component-background-color);
  color: var(--component-text-color);
}

.background-with-image {
  --component-background-color: var(--color-black);
  -webkit-font-smoothing: antialiased; /* WebKit (caniuse.com/font-smooth) */
  -moz-osx-font-smoothing: grayscale; /* Firefox (caniuse.com/font-smooth) */
  --component-text-color: var(--color-white);
  --component-disabled-background-color: var(--color-black-700); /* matches Figma */
  --component-disabled-text-color: var(--color-black-200); /* matches Figma */
  --tick-ul: url("data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path fill=\"%2326B298\" d=\"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm113-303L241 337l-17 17-17-17-64-64-17-17 34-33.9 17 17 47 47L335 175l17-17 33.9 34-17 17z\"/></svg>"); /* svgbackgrounds.com/tools/svg-to-css */
  background-color: var(--component-background-color);
  color: var(--component-text-color);
}

.background-with-image {
  background-size: cover;
  text-shadow: var(--drop-shadow-text);
}

.section {
  position: relative;
  max-inline-size: none; /* override `center` class */
  padding-block: var(--section-block);
  padding-inline: var(--section-inline);
}

/* Event landing page and Countdown timer mobile */
.section-xxs {
  padding-block: var(--space);
}

/* used as hero section in Newsroom categories, Open Day planner and Search Error (Body - Search - Error results #1058516) */
.section-xs {
  -webkit-padding-before: var(--padding-xs);
          padding-block-start: var(--padding-xs);
  -webkit-padding-after: clamp(var(--padding-xs), 0.8387rem + 2.5559vw, var(--padding-s));
          padding-block-end: clamp(var(--padding-xs), 0.8387rem + 2.5559vw, var(--padding-s));
}

.section-s {
  padding-block: var(--section-block-s);
}

.section-m {
  padding-block: var(--section-block-m);
}

.section-xl {
  padding-block: var(--section-block-xl);
}

/* Narrower presentation, used in Newsroom and Extra */
.section-corporate {
  --section-inline: var(--section-inline-corporate);
}

/* Search and Open Day layout */
.section-filter-page {
  --section-inline: var(--section-inline-filter-page);
}

/* Used in articles and categories, narrowest presentation */
.section-narrow {
  --section-inline: var(--section-inline-narrow);
}

/* Used article template, custom padding block */
.section-longform {
  padding-block: var(--padding-s) var(--padding-l);
}

/* 
Used on Newsroom categories and Extra home, pilars and themes layouts
sits underneath Newsroom and Extra category pills
newsroomCategory #1050968
extraHome #1053731
extraPillar #1053745
extraTheme #1053756

*/
.section-categories {
  padding-block: 0 var(--padding-m);
}

/*
Hide panel while event data loads

@example html - Usage
<section
  class="section section-hidden"
  data-events="eventsWide"
>{content}</section>
*/
.section-hidden {
  visibility: hidden;
  opacity: 0;
  height: 0;
  padding: 0;
}

/*
Used on .after-hero and #injectable_zone_one feature-panels
where the same background colour causes too big a gap between the content.
.after-hero example: https://www.ecu.edu.au/degrees/courses/bachelor-of-arts
#injectable_zone_one exampe: https://www.ecu.edu.au/degrees/pathways

@example html - Usage
<section class="section section-block-end-zero background-ecru after-hero after-hero-increase-z-index">
  {content}
</section>
<section class="section section-block-end-zero background-white">
  {content}
</section>
*/
.section-block-end-zero {
  -webkit-padding-after: 0;
          padding-block-end: 0;
}

.select-field {
  display: block;
  inline-size: 100%;
  max-inline-size: 100%;
  border: 0;
  padding-block: var(--space);
  padding-inline: var(--padding-xs);
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background-color: var(--color-white);
  background-image: url("data:image/svg+xml,%3Csvg viewBox=%270 0 14 9%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath d=%27M13.75 2.0625L6.875 8.25L0 2.0625V0H13.75V2.0625Z%27 fill=%27%2300172A%27/%3E%3C/svg%3E");
  background-repeat: no-repeat, repeat;
  background-position: right 1.25rem top 50%, 0 0;
  background-size: 0.65em auto, 100%;
  color: var(--color-black);
}

input[type=text], input[type=email], input[type=tel] {
  display: inherit;
  inline-size: 100%;
  margin-inline: 0; /* Stack will set block margins */
  border: 0;
  padding-block: var(--space);
  padding-inline: var(--padding-xs);
  background-color: var(--color-white);
  color: var(--color-black);
}

label {
  text-align: start;
}

textarea {
  display: inherit;
  inline-size: 100%;
  margin-inline: 0; /* Stack will set block margins */
  border: 0;
  padding-block: var(--space);
  padding-inline: var(--padding-xs);
  background-color: var(--color-white);
  color: var(--color-black);
  max-inline-size: none;
}

.checkbox {
  inline-size: 100%;
  text-align: start;
}
.checkbox label {
  -webkit-margin-start: var(--icon-space);
          margin-inline-start: var(--icon-space);
}

.form-group {
  position: relative;
}
@media (min-width: 37.5em) {
  .form-group {
    inline-size: calc(50% - var(--space-l) / 2);
  }
}
.form-group .pristine-error {
  position: absolute;
  top: 0;
  right: 0;
  color: var(--color-error);
  margin: 0;
}

.form-group-full-span {
  inline-size: 100%;
}

.form-error {
  color: var(--color-error);
}

.site-footer {
  display: grid;
  row-gap: var(--space-xl);
  grid-template-columns: minmax(0, 1fr); /* set min width of 0 so that Glide slider doesn't assume a larger screen, revisit for Splide slider */
  grid-template-areas: "ways-to-contact" "within-australia" "international" "campuses" "socials" "essential-info" "recognition" "additional-links";
  -webkit-padding-after: var(--space);
          padding-block-end: var(--space); /* overwrite default `section` class */
}
@media (min-width: 37.5em) {
  .site-footer {
    -webkit-column-gap: 2rem;
       -moz-column-gap: 2rem;
            column-gap: 2rem;
    grid-template-columns: 1fr 1fr 1fr;
    grid-template-areas: "ways-to-contact ways-to-contact ways-to-contact" "within-australia international campuses" "socials socials essential-info" "recognition recognition recognition" "additional-links additional-links additional-links";
  }
}
@media (min-width: 73em) {
  .site-footer {
    -webkit-column-gap: 2rem;
       -moz-column-gap: 2rem;
            column-gap: 2rem;
    grid-template-columns: repeat(3, 15.5rem) auto 15.5rem;
    grid-template-areas: "ways-to-contact ways-to-contact . . socials " "within-australia international campuses . essential-info" "recognition recognition recognition recognition recognition" "additional-links additional-links additional-links additional-links additional-links";
  }
}

.site-footer-ways-to-contact {
  grid-area: ways-to-contact;
}

.site-footer-within-australia {
  grid-area: within-australia;
}

.site-footer-international {
  grid-area: international;
}

.site-footer-campuses {
  grid-area: campuses;
}

.site-footer-socials {
  grid-area: socials;
}

.site-footer-essential-info {
  grid-area: essential-info;
}

.site-footer-recognition {
  grid-area: recognition;
}

.site-footer-additional-links {
  grid-area: additional-links;
}

.site-footer-essential-info ul {
  margin-block: 0; /* remove margin, preceeded by visually hidden heading */
}

.site-footer-socials ul {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: var(--icon-space);
}

.site-footer-recognition {
  -webkit-margin-before: calc(var(--section-block) - var(--space-xl));
          margin-block-start: calc(var(--section-block) - var(--space-xl)); /* Remove grid column gap to account for correct margin */
}
.site-footer-recognition li {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center; /* fix for minmax() applied to `site-footer` on screen <600px */
}

.site-footer-additional-links ul {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: var(--space);
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  max-inline-size: unset;
}

.accordion {
  padding: 0;
  list-style: none;
  text-align: start;
  max-inline-size: var(--container-inline-size);
}

.accordion-item {
  max-inline-size: var(--container-inline-size);
  margin: 0;
  -webkit-border-after: 0.125rem solid var(--color-primary);
          border-block-end: 0.125rem solid var(--color-primary);
  padding: 0;
}
@media print {
  .accordion-item {
    -webkit-column-break-inside: avoid !important;
       -moz-column-break-inside: avoid !important;
            break-inside: avoid !important;
  }
}
.accordion-item svg {
  block-size: 1em; /* force size of Font Awesome icon */
}
.accordion-item > .heading-xxs {
  margin-block: 0;
}

.accordion-title {
  display: block;
  position: relative;
  inline-size: 100%;
  max-inline-size: var(--container-inline-size);
  margin: 0;
  padding-block: 0.75rem;
  -webkit-padding-start: 0;
          padding-inline-start: 0;
  -webkit-padding-end: 2rem;
          padding-inline-end: 2rem;
  font-size: var(--font-heading-xxs);
  font-weight: 500;
  text-align: start;
  -webkit-transition: all 0.2s ease;
  transition: all 0.2s ease;
}
.accordion-title::before, .accordion-title::after {
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  content: "";
  display: block;
  position: absolute;
  background-color: var(--color-primary);
}
.accordion-title::before {
  right: 0;
  inline-size: 0.8125rem;
  block-size: 0.125rem;
}
.accordion-title::after {
  right: 0.325rem;
  inline-size: 0.125rem;
  block-size: 0.8125rem;
  -webkit-transition: inline-size 0.2s var(--cubic-bezier);
  transition: inline-size 0.2s var(--cubic-bezier);
}
.accordion-title-open::after {
  height: 0;
}

.accordion-body {
  position: relative;
  visibility: hidden;
  opacity: 0;
  block-size: 0;
  padding: 0;
  -webkit-transition: var(--transition-s);
  transition: var(--transition-s);
  transition-behavior: allow-discrete; /* https://www.youtube.com/watch?v=1VsMKz4Zweg */
}
.accordion-body ul {
  list-style-type: disc;
}
.accordion-body * {
  block-size: 0;
  line-height: 0;
  visibility: hidden;
}
.accordion-body table {
  display: none; /* Override browser default (eg `display: table`) */
}

.accordion-body-open {
  visibility: visible;
  opacity: 1;
  block-size: auto;
  padding: 0 0 var(--space);
  -webkit-transition: var(--transition-s);
  transition: var(--transition-s);
  transition-behavior: allow-discrete; /* https://www.youtube.com/watch?v=1VsMKz4Zweg */
}
@starting-style {
  .accordion-body-open {
    block-size: 0;
    padding: 0;
  }
}

.accordion-body-open * {
  block-size: auto;
  line-height: inherit;
  visibility: visible;
}

.accordion-body-open table {
  display: table; /* Restore browser default */
}

.accordion-body:not(.accordion-body-open) * {
  margin: 0; /* Collapse margins when closed, apply this after `-open` to prevent unexpected collapsed margins on open */
}

@media print {
  .accordion-body {
    block-size: auto;
    visibility: visible;
    opacity: 1;
    -webkit-border-after: 0.0625rem solid var(--color-black-400);
            border-block-end: 0.0625rem solid var(--color-black-400);
    padding: 1em 0;
  }
  .accordion-body * {
    block-size: auto;
    line-height: inherit;
  }
  .accordion-body table {
    display: table;
  }
  .accordion-item {
    border-bottom: 0;
  }
}
/*
  Accordion displaying item count
  used on `/future-students/course-entry/experience-based-entry-scheme` and `/future-students/applying/important-dates`
*/
.accordion-count {
  position: relative;
  z-index: 0;
  display: inline-block;
  -webkit-margin-start: var(--space-s);
          margin-inline-start: var(--space-s);
  inline-size: var(--padding-xs);
  color: var(--color-black);
  font-size: var(--font-s);
  font-weight: 500;
  line-height: 1;
  text-align: center;
}

.accordion-count::after {
  content: "";
  display: block;
  position: absolute;
  z-index: -1;
  left: 0;
  top: 50%;
  block-size: var(--padding-xs);
  inline-size: var(--padding-xs);
  background-color: var(--color-teal-050);
  border-radius: 100%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}

/* Design System 2025: Additional styles when accordion open */
.accordion-title-open .accordion-count {
  color: var(--color-teal-700);
}

.accordion-title-open .accordion-count::after {
  background-color: var(--color-ecru);
}

/*
  UniSpeak accordion component
  Column layout on future student course pages
  Using CSS `columns` property does not work as items move columns when accordion items open
*/
.accordion--uniSpeak {
  --auto-grid-min-size: 16rem;
  display: grid;
  gap: 0 var(--space-xl);
  grid-template-columns: repeat(auto-fill, minmax(var(--auto-grid-min-size), 1fr));
}

.accordion__span ul {
  -webkit-padding-start: 0;
          padding-inline-start: 0;
  list-style-type: none;
}

.addToCompare {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  text-align: start;
  font-weight: 500;
}
.addToCompare-compared .fa-heart {
  color: var(--addtocompare-heart-color);
}

.career-finder-results .addToCompare {
  margin-block: 0 var(--padding);
  margin-inline: var(--padding);
  padding-block: var(--space);
  padding-inline: var(--padding);
  max-inline-size: 100%;
}

.filtered-results-page .addToCompare {
  margin-inline: auto;
}

/*

Sections that directly follow the `hero` have a pseudo element on mobile.

Layout variations:

Campagin and study, hero followed by Why ECU panel

<section class="hero" style="background-image: linear-gradient(), url();">
  {hero}
</section>
<section class="section section-s background-{color}} stack after-hero"></section>

Home page, hero followed by Search our courses

<section class="hero" style="background-image: linear-gradient(), url();">
  {hero}
</section>
<form class="section section-s stack stack-l center background-{color}  after-hero"></form>

Open day, hero followed by section

<section class="hero" style="background-image: linear-gradient(), url();">
  {hero}
</section>
<section class="section section-s background-{color}} stack after-hero"></section>

Newsroom, hero followed by section

<section class="hero" style="background-image: linear-gradient(), url();">
  {hero}
</section>
<section class="section section-m section-corporate stack stack-l background-{color} after-hero"></section>

Info pages (example future-students/applying/important-dates), hero followed by `js-content-toggle`

<section class="hero" style="background-image: linear-gradient(), url();">
  {hero}
</section>
<div class="js-content-toggle background-{color} after-hero">
  <div class="set-audience "></div>
</section>

Course compare page (degrees/courses/course-compare)

<section class="hero" style="background-image: linear-gradient(), url();">
  {hero}
</section>
<section class="background-{color}  after-hero">
  <div class="section section-s center stack background-{color}"></div>
  <div class="js-content-toggle"></div>
</section>

*/
.after-hero {
  position: relative; /* assists pseudo elements below hero */
}

/* 

Sometimes priority banner or countdown timer are injected above the regular Why ECU banner 
Use this class to assist layout

*/
.after-hero-increase-z-index {
  z-index: 1; /* sit above succeding sections that contain `after-hero` */
}

.after-hero::before {
  content: "";
  display: block;
  position: absolute;
  background-color: var(--component-background-color);
  block-size: var(--hero-leaf);
  inline-size: 100%;
  top: calc(-1 * var(--hero-leaf));
  left: 0;
  z-index: 0;
}
@media (min-width: 64.0625em) {
  .after-hero::before {
    display: none;
  }
}

.alert-inline {
  -webkit-border-start: var(--alert-inline-border-width, 0) solid var(--alert-inline-border-color, transparent);
          border-inline-start: var(--alert-inline-border-width, 0) solid var(--alert-inline-border-color, transparent);
  background-color: var(--alert-inline-background-color, var(--color-ecru));
  color: var(--alert-inline-text-color, currentColor);
  padding: var(--padding-xs);
  text-align: start;
  inline-size: min(100%, var(--container-inline-size));
}
.alert-inline .heading-xs {
  color: var(--alert-inline-heading-color, var(--alert-inline-text-color));
}
.alert-inline svg {
  color: var(--alert-inline-icon-color, var(--alert-inline-heading-color, var(--alert-inline-text-color)));
}
.background-ecru .alert-inline {
  --alert-inline-background-color: var(--color-white);
}

/* Variable maps for inline alert styles
@type list

Variables
- alert name
- text colour
- background colour
- heading colour
- icon colour
- update border
- add text shadow to heading
*/
.alert-inline.important {
  --alert-inline-heading-color: var(--color-orange-700);
}

.alert-inline.error {
  --alert-inline-text-color: var(--color-white);
  --alert-inline-background-color: var(--color-black);
  --alert-inline-icon-color: var(--color-orange-500);
}

.alert-inline.success {
  --alert-inline-text-color: var(--color-white);
  --alert-inline-background-color: var(--color-black);
  --alert-inline-icon-color: var(--color-current-student-green-100);
}

.alert-inline.tip {
  --alert-inline-icon-color: var(--color-current-student-green-100);
  --alert-inline-border-width: 0.5rem;
  --alert-inline-border-color: var(--alert-inline-icon-color);
}

.alert-inline.recognition {
  --alert-inline-icon-color: var(--color-primary);
  --alert-inline-border-width: 0.5rem;
  --alert-inline-border-color: var(--alert-inline-icon-color);
}

/** Helper class used in Content Container Templates
  * In Page - Image Gallery #898913
  * In Page - Image #936146
  * In Page - Infographics #933075
  * In Page - Video #932928
*/
.article-media {
  max-inline-size: var(--container-inline-size); /* ensures article images/ videos/ image galleries are not much wider than surrounding content */
}
.article-media * {
  max-inline-size: 100%;
}

.articles-grid {
  display: grid;
  gap: var(--grid-layout-gap);
  grid-template-columns: 100%;
}
@media (min-width: 37.5em) {
  .articles-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (min-width: 65em) {
  .articles-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

/**
  Three column grid
   used for injectable Saleforce content placed on campaign and course pages
   also used on newsroom
*/
.articles-grid-3-col {
  --grid-layout-gap: var(--grid-layout-gap-xl);
}
@media (min-width: 65em) {
  .articles-grid-3-col {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* Two column grid, used on newsroom */
.articles-grid-l {
  --grid-layout-gap: var(--grid-layout-gap-xxl);
}
@media (min-width: 65em) {
  .articles-grid-l {
    grid-template-columns: repeat(2, 1fr);
  }
}

.aside {
  position: sticky;
  display: grid;
  grid-template-areas: "nav" "buttons";
  gap: 0 clamp(var(--space), 10vw, 3.75rem);
  justify-items: center;
  background-color: var(--color-black-100);
  top: 0;
  left: 0;
  z-index: 1;
  max-inline-size: 100vw;
  padding-inline: var(--section-inline);
  -webkit-transition: top var(--transition-time) var(--cubic-bezier);
  transition: top var(--transition-time) var(--cubic-bezier);
}
.aside * {
  max-inline-size: 100vw;
}
.aside nav {
  --component-background-color: var(--color-black-050);
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  grid-area: nav;
  background-color: var(--component-background-color);
  inline-size: 100vw;
  margin-inline: calc(var(--space-l) * -1);
}
.aside nav::before,
.aside nav::after {
  content: "";
  display: block;
  position: absolute;
  inline-size: var(--inline-scroll-element);
  block-size: 100%;
  top: 0;
  left: 0;
  background-image: -webkit-gradient(linear, right top, left top, from(transparent), color-stop(85%, var(--component-background-color)));
  background-image: linear-gradient(to left, transparent, var(--component-background-color) 85%);
}
.aside nav::after {
  background-image: -webkit-gradient(linear, left top, right top, from(transparent), color-stop(85%, var(--component-background-color)));
  background-image: linear-gradient(to right, transparent, var(--component-background-color) 85%);
  right: 0;
  left: unset;
}
.aside .button {
  inline-size: 100%;
}
.aside .button-outline {
  display: none;
}

.scroll-up .aside {
  top: -100%;
}

.scroll-down .aside {
  top: 0;
}

.aside ul {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: var(--space-s);
  margin-block: 0;
  margin-inline: auto;
  padding-inline: var(--section-inline);
  padding-block: var(--space);
  overflow-x: auto;
  white-space: nowrap;
}

.aside ul a {
  display: block;
  border: 0.125rem solid var(--color-black-100);
  border-radius: 2rem;
  padding-block: var(--space-s);
  padding-inline: var(--space);
  text-decoration: none;
}

.aside .active {
  font-weight: 500;
}

.aside-buttons {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  grid-area: buttons;
  inline-size: min(100%, 19.5rem);
  padding-block: var(--space-s);
}

.aside .addToCompare {
  grid-area: compare;
  justify-self: start;
}

.aside-with-compare {
  grid-template-areas: "nav nav" "compare buttons";
}
.aside-with-compare .aside-buttons {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse;
}
.aside-with-compare .button {
  inline-size: auto;
}

@media (min-width: 65em) {
  .aside {
    top: var(--section-block);
    grid-area: content;
    align-self: self-start;
    grid-template-areas: "nav" "buttons";
    grid-template-columns: 100%;
    gap: var(--padding);
    inline-size: calc(25vw - var(--space));
    max-inline-size: 20rem;
    margin-inline: var(--section-inline) auto;
    margin-block: var(--section-block);
    -webkit-border-after: 0;
            border-block-end: 0;
    background-color: var(--color-black-050);
    padding-block: var(--padding);
    padding-inline: var(--padding);
  }
  .scroll-up .aside {
    top: 7.5rem;
  }
  .scroll-down .aside {
    top: var(--section-block);
  }
  .wrapper-aside-inline-end .aside {
    margin-inline: auto var(--section-inline);
  }
  .aside .addToCompare {
    -webkit-margin-before: calc(var(--padding) * -1);
            margin-block-start: calc(var(--padding) * -1);
    margin-inline: calc(var(--padding) * -1);
    background-color: var(--color-black-100);
    padding-block: var(--space);
    padding-inline: var(--padding);
    inline-size: calc(100% + var(--padding) * 2);
  }
  .aside nav {
    inline-size: 100%;
    margin-block: calc(var(--space-s) * -1);
    margin-inline: 0;
    background-color: transparent;
  }
  .aside nav::before,
  .aside nav::after {
    display: none;
  }
  .aside ul {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 0;
    -webkit-margin-start: calc(var(--space) * -1);
            margin-inline-start: calc(var(--space) * -1);
    padding-inline: 0;
    padding-block: 0;
    white-space: normal; /* allow wrapping */
  }
  .aside ul a {
    border-width: 0 !important;
    border-radius: 0 !important;
  }
  .aside ul a:focus-visible {
    outline-offset: -0.25rem;
  }
  .aside-buttons,
  .aside-with-compare .aside-buttons {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: var(--space);
    padding-block: 0;
  }
  .aside .button-outline {
    display: block;
  }
  /* Aside with compare layout */
  .aside-with-compare {
    grid-template-areas: "compare" "nav" "buttons";
  }
  .aside-with-compare .aside-buttons {
    inline-size: 100%;
    -webkit-margin-start: 0;
            margin-inline-start: 0;
  }
}
.atsi-recognition {
  z-index: 1;
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0 var(--padding-clamp-m);
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-padding-before: var(--padding-clamp-l);
          padding-block-start: var(--padding-clamp-l);
  padding-inline: var(--padding-clamp-l);
}
.atsi-recognition img {
  inline-size: clamp(7.5rem, 1.7311rem + 22.2951vw, 16rem);
}
.atsi-recognition > div {
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  max-inline-size: 28.5rem;
  padding-block: var(--padding-clamp-l);
  color: var(--color-white);
  text-shadow: var(--drop-shadow-text);
}
@media (min-width: 50em) {
  .atsi-recognition {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-padding-before: 0;
            padding-block-start: 0;
  }
}
.atsi-recognition::after, .atsi-recognition::before {
  content: "";
  display: block;
  position: absolute;
  inset: 0;
  z-index: -1;
}
.atsi-recognition::after {
  background: var(--color-teal-800);
  mix-blend-mode: hard-light;
}
.atsi-recognition::before {
  -webkit-filter: grayscale(1);
          filter: grayscale(1);
  background-image: url("https://www.ecu.edu.au/__data/assets/image/0003/1030089/atsi-banner-bg.jpg");
}

/* 

Badge - rectangle with rounded corners

Used in Funnelback Course/ Unitset templates

Built in webCMS objects:
- ECU City courses - course overview badge #1084321
- ECU City courses - majors badge #1099012

Similar to `card-badge`
 
@example html
<a class="badge background-{color}" href="{url}">
    <i class="fa-sharp fa-solid fa-city icon-inline-start"></i>
    <strong class="small">Coming to ECU City 2026</strong>
</a>

*/
.badge {
  inline-size: -webkit-fit-content;
  inline-size: -moz-fit-content;
  inline-size: fit-content; /* truncate width inside stack component */
  border-radius: var(--border-radius-xs);
  padding: 0.25rem var(--space-s);
  text-decoration: none; /* prevent underline when used as a link */
  -webkit-box-decoration-break: clone;
          box-decoration-break: clone; /* improve styling if badge has a line break when used inside a 3 or 4 card layout https://css-tricks.com/almanac/properties/b/box-decoration-break/ */
}

.blockquote {
  position: relative;
  -webkit-margin-start: 3.5rem;
          margin-inline-start: 3.5rem;
  font-weight: 500;
  -webkit-margin-before: var(--space-xl);
          margin-block-start: var(--space-xl);
  -webkit-margin-after: var(--space-l);
          margin-block-end: var(--space-l);
}
.blockquote::before {
  content: "";
  display: block;
  position: absolute;
  left: -3.5rem;
  top: 0.125em;
  inline-size: 2rem;
  block-size: 2rem;
  background-image: url("data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 28 32\"><path fill=\"%23e6e8ea\" d=\"M0 13.5C0 9.356 3.356 6 7.5 6H10v4H7.5A3.502 3.502 0 0 0 4 13.5v.5h8v12H0V13.5Zm16 0C16 9.356 19.356 6 23.5 6H26v4h-2.5a3.502 3.502 0 0 0-3.5 3.5v.5h8v12H16V13.5Z\"/></svg>");
  background-size: contain;
}
.blockquote cite {
  display: block;
  -webkit-border-before: 0.125rem solid var(--color-black-050);
          border-block-start: 0.125rem solid var(--color-black-050);
  -webkit-padding-before: var(--space-s);
          padding-block-start: var(--space-s);
  font-weight: 400;
  font-style: unset;
}

/*
Breadcrumbs located in hero banner,
 element markup is located in the following places:
- webCMS helper file  `Head - Asset Lineage` #1034843
- webCMS helper file `Body - Search - Error Results` #1058516
- src/modules/CareerFinderModule.js
- ecu-dmt/funnelback/ecu-fs-courses/incl-archived.ftl
- ecu-dmt/funnelback/ecu-fs-courses/overview.ftl
- ecu-dmt/funnelback/ecu-fs-unitsets/unitset.ftl
- ecu-dmt/openday-ct/src/components/Header.vue

@example html
<nav aria-label="Breadcrumb" class="breadcrumbs">
 <ul>
   <li>
     <a href="../../../..">
       {title}
     </a>
   </li>
   <li>
     <a href="" aria-current="page" class="visuallyHidden">
       {title}
     </a>
     {title}
   </li>
 </ul>
</nav>
*/
.breadcrumbs {
  max-inline-size: var(--measure); /* override `nav` */
  position: absolute;
  padding-inline: var(--section-inline);
  top: var(--space-s);
  /* experimented with using `white-space: break-spaces`, this worked on local host, did not work on QA */
}
.hero .breadcrumbs {
  text-shadow: var(--drop-shadow-text);
}
.breadcrumbs ul {
  margin-block: 0;
  -webkit-padding-start: 0;
          padding-inline-start: 0;
  list-style-type: none;
}
.breadcrumbs li {
  position: relative;
  display: inline;
}
.breadcrumbs li + li {
  -webkit-margin-start: var(--space);
          margin-inline-start: var(--space);
}
.breadcrumbs li + li::before {
  content: "";
  display: block;
  position: absolute;
  block-size: 0.8em;
  left: calc(var(--space) * -1);
  top: 0.25rem;
  margin-inline: var(--icon-space);
  -webkit-border-end: 0.0625rem solid currentcolor;
          border-inline-end: 0.0625rem solid currentcolor;
  -webkit-transform: rotate(15deg);
          transform: rotate(15deg);
}
@media (min-width: 64.0625em) {
  .breadcrumbs {
    position: relative;
    top: unset;
    padding-inline: 0;
  }
}
.section .breadcrumbs {
  position: relative;
  top: unset;
  padding-inline: 0;
}

.button {
  display: inline-block;
  position: relative;
  padding-block: var(--space-s);
  padding-inline: var(--space);
  vertical-align: middle;
  text-align: center;
  text-decoration: none;
  font-weight: 500;
  border: 0.125rem solid var(--component-background-color, transparent);
  inline-size: 100%;
}
@media (min-width: 37.5em) {
  .button {
    inline-size: -webkit-fit-content;
    inline-size: -moz-fit-content;
    inline-size: fit-content;
  }
}
.button-center {
  margin-inline: auto; /* center buttons where using the `.center` parent class would affect button width */
}
.button-outline {
  border-color: currentcolor;
}
.button-outline-highlight {
  border-color: var(--color-accent);
}
.button-text-only {
  border: 0;
  padding: 0;
  text-decoration: underline;
  cursor: pointer;
}
.button[type=submit] {
  border-color: var(--color-primary);
}

.button-group {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row wrap;
          flex-flow: row wrap;
  gap: var(--space);
  inline-size: 100%; /* match `search-form` on landing pages */
  max-inline-size: var(--measure);
}
.center .button-group {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

/* Card examples

@usage html - Base card, text no image
<div class="card stack">
  <h3 class="heading-s">{heading}</h3>
  <p>{content}</p>
  <a href="{url}">{link title}</a>
</div>

@usage html - Base card with image and text, append class  `card-contained` wrap text in `card__text`
<div class="card card-contained">
  <img src="{src}">
  <div class="card-text stack">
    <h3 class="heading-s">{heading}</h3>
    <p>{content}</p>
    <a href="{url}">{link title}</a>
  </div>
</div>

@usage html - Open card with image, append class `card-open`
<div class="card card-open stack">
  <img src="{src}">
  <h3 class="heading-s">{heading}</h3>
  <p>{content}</p>
  <a href="{url}">{link title}</a>
</div>

@usage html - image modal Matterport 3D (used on World Ready Facilities), creates modal using `js/modules/ModalModule`
<div class="card card-contained stack">
  <button 
    class="js-modalTrigger card-modal-trigger"
    data-caption="{caption}"
    data-src="{src:matterport}"
    data-iframe="true"
    tabindex="0"
    >
    <i class="card-icon fa-sharp fa-solid fa-street-view fa-lg"></i>
    <img alt="{caption}" src="{url}">
  </button>
  <div class="heading-xs">{caption}</div>
</div>

@usage html - image modal (used on Article pages), creates modal using `js/modules/ModalModule`
<div class="card card-contained stack">
  <button 
    class="js-modalTrigger card-modal-trigger"
    data-caption="{caption}"
    data-src="{src}"
    tabindex="0"
    >
    <i class="card-icon fa-sharp fa-solid fa-expand fa-lg"></i>
    <img alt="{caption}" src="{url}">
  </button>
  <div class="heading-xs">{caption}</div>
</div>

@usage html Pixelcase (used on World Ready Facilities), opens Pixelcase in seperate tab
<div class="card card-contained stack">
  <a href="url:pixelcase" target="_blank">
    <i class="card-icon fa-sharp fa-solid fa-vr-cardboard fa-lg"></i>
    <img class="modalTriggerVR" alt="{caption}" src="{src}">
  </a>
  <div class="heading-xs">{caption}</div>
  <p>href="{url:pixelcase}" target="_blank">{link}</a></p>
</div>
*/
.card {
  position: relative;
  margin-inline: 0; /* overwrite browser div styles, margin-block is controlled via `stack` */
  padding: var(--padding);
}
.card-contained {
  padding: 0; /* required to set text alignment, use on cards with images, content padding added using `card-text` component */
}
.card-s {
  padding: var(--padding-xs);
}
.card-m {
  padding: var(--padding-clamp-m);
}

.card:not(.center) {
  text-align: start; /* override `center` parent class to force text-align: start, unless `center` is also placed on card element */
}

.card-modal-trigger {
  position: relative;
  cursor: pointer;
}

/* Card icon, overlaid on images that trigger modals and Pixelcase */
.card-icon {
  position: absolute; /* Override `li .svg-inline--fa` */
  inset-block-start: var(--space-s); /* Override `li .svg-inline--fa` */
  inset-inline-start: var(--space-s);
  z-index: 1;
  color: var(--color-white);
  -webkit-filter: var(--drop-shadow-svg);
          filter: var(--drop-shadow-svg);
}

/*
Badge, Coming to ECU City, New in {year})
 - ECU City courses Search badge #1079684, linked from Funnelback search template
 - Salesforce trending courses article cards
*/
.card-badge {
  border-radius: var(--border-radius-xs);
  padding: 0.25rem var(--space-s);
  -webkit-box-decoration-break: clone;
          box-decoration-break: clone; /* improve styling if badge has a line break https://css-tricks.com/almanac/properties/b/box-decoration-break/ */
}

/**
Card with background header, found in `degrees/choose`, Open Day planner
Note: school colours are no longer in use, so card-{studyarea} class is redundant 

@example html
<div class="card card-contained card-{studyArea}">
  <h4 class="card-header heading-xs">
    <a href="#">{title}</a>
  </h4>
  <div class="card-text stack">
    <h5 class="heading-xs">{heading}</h5>
    <table class="courseSearchTable">{table}</table>
  </div>
</div>

*/
.card-header {
  margin-block: 0;
  padding-block: var(--space-s);
  padding-inline: var(--padding);
}
.card-header-open-day {
  inline-size: calc(100% + 2 * var(--padding)); /* required for Open Day "suggested for you" */
  -webkit-margin-before: calc(-1 * var(--padding));
          margin-block-start: calc(-1 * var(--padding));
}
.card-header :focus-visible {
  display: inherit;
  outline-color: currentcolor;
}

.card-text {
  padding: var(--padding);
  text-align: start; /* override `center` parent class */
}

.card-text-m {
  padding: var(--padding-clamp-m);
}

.card-text-l {
  padding: var(--padding-clamp-l);
}

/* Course / Unitset template 
@example html for Unit Set with mutliple semesters
Request for update in heading hierarchy, Oct 2025
Proposed H4 set to the same size as `.table caption`

<h2 class="heading-s">Details</h2>
<div class="caps-structure stack">
  <h3>Upon successful completion of this unit, students will be able to:</h3>
  <h4>Year 1 - Semester 1</h4>
  {{table caption}}
  {{table}}
</div>
*/
.caps-structure h3 {
  font-size: var(--font-heading-xs);
  line-height: var(--font-heading-xs-line-height);
}

.caps-structure h4 {
  font-size: var(--font-heading-xxs);
  line-height: var(--font-heading-xxs-line-height);
}

.learning-outcome-list {
  list-style-type: none;
}
.learning-outcome-list li {
  position: relative;
}
.learning-outcome-list > * {
  margin-block: 0;
}
.learning-outcome-list > * + * {
  -webkit-margin-before: var(--space-s);
          margin-block-start: var(--space-s);
}
.learning-outcome-list li::before {
  content: "";
  display: block;
  position: absolute;
  top: 0.3125em;
  left: -1.4em;
  height: 0.9em;
  width: 0.9em;
  background-image: url("data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\" fill=\"00172a\"><path d=\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM369 209L241 337l-17 17-17-17-64-64-17-17L160 222.1l17 17 47 47L335 175l17-17L385.9 192l-17 17z\"/></svg>");
}

.content-panel {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  max-inline-size: 100%;
  text-align: start;
}

.content-panel-section {
  margin-inline: var(--section-inline);
}

.content-panel > * {
  position: relative;
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  -ms-flex-preferred-size: calc((40rem - 100%) * 999);
      flex-basis: calc((40rem - 100%) * 999);
  padding-block: var(--padding);
  padding-inline: var(--padding);
}

.content-panel:not(.content-panel-wide) > :nth-last-child(n+4),
.content-panel:not(.content-panel-wide) > :nth-last-child(n+4) ~ * {
  -ms-flex-preferred-size: 100%;
      flex-basis: 100%;
}

/* stylelint-disable */
.content-panel-wide > * {
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  -ms-flex-preferred-size: calc((60rem - 100%) * 999);
      flex-basis: calc((60rem - 100%) * 999);
  max-inline-size: unset;
}

/* stylelint-enable */
/* stylelint-disable */
.content-panel-signposts {
  gap: 0.125rem;
}
.content-panel-signposts > * {
  padding-block: var(--padding) var(--padding-clamp-m);
}

/* stylelint-enable */
/* stylelint-disable */
.content-panel-text-and-icon {
  gap: var(--space-l);
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding-block: var(--padding);
  padding-inline: var(--padding);
}
.content-panel-text-and-icon > * {
  padding: 0;
}

/* stylelint-enable */
.content-panel-icon {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  -ms-flex-preferred-size: 7.5rem;
      flex-basis: 7.5rem;
  block-size: 7.5rem;
  max-inline-size: 7.5rem;
  -ms-flex-item-align: center;
      align-self: center;
}

.content-panel-logo {
  max-block-size: 10rem;
}

.columns {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: var(--space) var(--space-l);
}

.columns-l {
  row-gap: var(--space-l);
}

.columns-xl {
  gap: var(--space-l) var(--grid-layout-gap-xl);
}

.columns-xxl {
  gap: var(--space-l) var(--grid-layout-gap-xxl);
}

.column {
  inline-size: clamp(400px, 33.3333% - var(--space-xxl), 50%);
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
}

.column-s {
  inline-size: clamp(10rem, 50% - var(--space-xxl), 100%);
}

.column-m {
  inline-size: clamp(400px, 50% - var(--space-xxl), 100%);
}

.column-l {
  inline-size: 100%;
}

.compare-course-button {
  position: absolute;
  right: var(--space-l);
  top: var(--space-l);
}
.compare-course-button .fa-heart {
  color: var(--addtocompare-heart-color);
}
.compare-course-button .fa-circle {
  color: var(--color-white);
}

/*
used on conjunction with `section section-xxs` 
preview link https://www.ecu.edu.au/?evergageTestMessages=wzW8D
*/
.countdown-section {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
@media (min-width: 50em) {
  .countdown-section {
    padding-block: var(--space-s);
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-column-gap: 0.5rem;
       -moz-column-gap: 0.5rem;
            column-gap: 0.5rem;
  }
}

@media (min-width: 50em) {
  .countdown-cta {
    -webkit-margin-before: 0;
            margin-block-start: 0;
  }
}

.countdown-wrap {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1rem;
}
@media (min-width: 50em) {
  .countdown-wrap {
    gap: unset;
  }
}

@media (min-width: 50em) {
  .countdown-item {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-margin-end: 0.75rem;
            margin-inline-end: 0.75rem;
  }
}

.countdown-number {
  position: relative;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  font-weight: 500;
  font-size: var(--font-heading-xs);
}

.countdown-title {
  font-size: var(--font-s);
  font-weight: 500;
  -webkit-padding-end: 0.5rem;
          padding-inline-end: 0.5rem;
  -webkit-margin-before: -0.25rem;
          margin-block-start: -0.25rem;
}
@media (min-width: 50em) {
  .countdown-title {
    -webkit-margin-before: 0;
            margin-block-start: 0;
  }
}
.countdown-title:last-of-type {
  -webkit-padding-end: 0;
          padding-inline-end: 0;
}

.countdown-top,
.countdown-bottom,
.top-flip,
.bottom-flip {
  block-size: 0.75em;
  line-height: 1;
  padding-block: 0.25em;
  inline-size: 1.5em;
  -ms-flex-item-align: center;
      align-self: center;
  overflow: hidden;
}

.countdown-bottom,
.bottom-flip {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.top-flip,
.bottom-flip {
  position: absolute;
  background-color: var(--component-background-color);
  inline-size: 100%;
  -webkit-animation: flip-top 250ms ease-in;
          animation: flip-top 250ms ease-in;
  -webkit-transform-origin: bottom;
          transform-origin: bottom;
}

@-webkit-keyframes flip-top {
  100% {
    -webkit-transform: rotateX(90deg);
            transform: rotateX(90deg);
  }
}

@keyframes flip-top {
  100% {
    -webkit-transform: rotateX(90deg);
            transform: rotateX(90deg);
  }
}
.bottom-flip {
  bottom: 0;
  -webkit-animation: flip-bottom 250ms ease-out 250ms;
          animation: flip-bottom 250ms ease-out 250ms;
  -webkit-transform-origin: top;
          transform-origin: top;
  -webkit-transform: rotateX(90deg);
          transform: rotateX(90deg);
}

@-webkit-keyframes flip-bottom {
  100% {
    -webkit-transform: rotateX(0deg);
            transform: rotateX(0deg);
  }
}

@keyframes flip-bottom {
  100% {
    -webkit-transform: rotateX(0deg);
            transform: rotateX(0deg);
  }
}
[data-compare-courses] {
  position: relative;
}

.course-compare-wrapper {
  position: relative;
  overflow: auto visible;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

.course-compare-arrows {
  position: inherit;
  top: 5.625rem;
  z-index: 5;
  padding-inline: inherit;
  -webkit-transition: top 0.5s var(--cubic-bezier);
  transition: top 0.5s var(--cubic-bezier);
}

.course-compare-arrow {
  position: absolute;
}
.course-compare-arrow .fa-circle {
  color: var(--color-white);
}

.course-compare-arrow-start {
  left: 0;
}

.course-compare-arrow-end {
  right: 1rem;
}

.course-compare {
  border-collapse: separate;
  border-spacing: var(--space-l) 0;
  text-align: start;
  table-layout: fixed;
}

.course-compare-border-row:nth-child(2) {
  height: var(--padding);
}

.course-compare-border-row > td {
  -webkit-border-after: 0.125rem solid var(--color-primary);
          border-block-end: 0.125rem solid var(--color-primary);
  padding: 0;
}

.course-compare-heading-row {
  display: none;
}
@media (min-width: 65em) {
  .course-compare-heading-row {
    display: table-row;
  }
}

.course-compare-heading-row th {
  padding-block: var(--space-s);
  text-align: start;
}

.course-compare > tbody > tr > th[scope=row],
.course-compare > tbody > tr > th[scope=rowgroup] {
  position: sticky;
  left: -1px;
  z-index: 2;
  inline-size: 1rem;
  background-color: var(--component-background-color);
}
@media (min-width: 65em) {
  .course-compare > tbody > tr > th[scope=row],
  .course-compare > tbody > tr > th[scope=rowgroup] {
    inline-size: 13.75rem;
    left: 0;
  }
}

.course-compare-row-title {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: var(--space-s);
  margin-block: var(--space);
  font-weight: 400;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  text-align: start;
}

.course-compare-row-title span {
  display: none;
}
@media (min-width: 65em) {
  .course-compare-row-title span {
    display: inline;
  }
}

.course-compare > tbody > tr > th[scope=col] {
  position: sticky;
  top: -1px;
  z-index: 1;
  inline-size: clamp(19.5rem, 16.6066rem + 11.1821vw, 23.875rem);
}

.course-compare-title {
  position: relative;
  vertical-align: bottom;
  text-align: start;
  block-size: 26.25rem;
  -webkit-transition: block-size 0.5s var(--cubic-bezier);
  transition: block-size 0.5s var(--cubic-bezier);
}
.course-compare-title .card-text {
  block-size: 15.25rem;
}
.course-compare-title img {
  -o-object-fit: cover;
     object-fit: cover;
  block-size: 11rem;
  inline-size: 100%;
}
.course-compare-title .button {
  -webkit-margin-before: auto;
          margin-block-start: auto;
}

.course-compare-content {
  padding-block: var(--space-l);
  padding-inline: var(--padding);
  vertical-align: top;
  text-align: start;
}

.course-compare-content > * {
  margin-block: 0;
}

.course-compare-content > * + * {
  -webkit-margin-before: var(--space);
          margin-block-start: var(--space);
}

.course-compare-add-more {
  inline-size: min(23.875rem, 100%);
  border: 0.125rem solid var(--color-black-050);
}
.course-compare-add-more a {
  padding-block: var(--padding-l);
  padding-inline: var(--padding);
  text-decoration: none;
}

.courselist {
  position: relative;
}
.courselist::after {
  content: "* For selected courses/majors only. See the course webpage for further details.";
  display: block;
  position: relative;
  margin-top: 1rem;
}

.developer-switcher-button {
  position: fixed;
  top: var(--space);
  left: var(--space);
  background-color: var(--color-teal-200);
  color: var(--color-tertiary);
  padding: var(--padding-xs);
  border-radius: 50%;
  z-index: 11; /* Sit above `header` (10) and `site-overlay` (9) */
}

.ecu-city-campaign {
  padding: 0;
  -webkit-padding-before: var(--padding-xs);
          padding-block-start: var(--padding-xs);
  padding-inline: var(--padding-xs);
  background-size: auto;
  background-color: var(--color-black);
  background-position: top left;
}
@media (min-width: 64.0625em) {
  .ecu-city-campaign {
    -webkit-padding-before: 0;
            padding-block-start: 0;
  }
}

.ecu-city-campaign-wrapper {
  display: grid;
  margin-inline: auto;
  grid-template-columns: 1fr;
  grid-template-rows: auto auto;
  grid-template-areas: "image" "content";
  gap: 0 var(--padding-clamp-m);
}
@media (min-width: 64.0625em) {
  .ecu-city-campaign-wrapper {
    grid-template-columns: auto auto;
    grid-template-rows: 1fr;
    grid-template-areas: "content image";
  }
}

@supports (-moz-appearance: none) {
  @media (min-width: 64.0625em) {
    .ecu-city-campaign-wrapper {
      grid-template-columns: 1fr 1fr;
    }
  }
}
.ecu-city-campaign-content {
  grid-area: content;
  max-inline-size: 28.5rem;
  padding-block: var(--padding-s);
  justify-self: center;
  text-shadow: var(--drop-shadow-text);
}
@media (min-width: 64.0625em) {
  .ecu-city-campaign-content {
    padding-block: var(--padding-m);
    justify-self: end;
  }
}

.ecu-city-campaign-image {
  grid-area: image;
  width: 100%;
  max-inline-size: 28.5rem;
  aspect-ratio: 1/1;
  background-size: contain;
  justify-self: center;
}
@media (min-width: 64.0625em) {
  .ecu-city-campaign-image {
    max-inline-size: unset;
    height: 100%;
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
    -ms-flex-line-pack: end;
        align-content: end;
    justify-self: start;
  }
}

/*
Events listing used homepage + throughout future students
Updated for Creative Thinkers, now runs through Super Content

@example html - Usage
<div class="event background-black">
  <time datetime="{datetime}" class="event-calendar background-primary">
    <span class="event-day heading-xs">Mon</span>
    <span class="event-date">11</span>
    <span class="event-month heading-xs">Jan</span>
  </time>
  <div class="event-container stack background-{color}">
    <h3 class="heading-xs">
      <a href="https://www.trybooking.com/662371" aria-label="{eventTitle}">{eventTitle}</a>
    </h3>
    <span class="flex-wrap flex-wrap-s">
      <span class="event-details"><i class="fa-sharp fa-solid fa-clock icon-inline-start primary"></i>{time}</span>
      <span class="event-details"><i class="fa-sharp fa-solid fa-location-dot icon-inline-start primary"></i>{venue}</span>
    </span>
  </div>
</div>
*/
.event {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  block-size: 100%;
  inline-size: 100%;
  margin-inline: auto;
  text-align: start;
}

.event-container {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 80%;
          flex: 1 1 80%;
  padding: var(--padding-xs);
}
@media (min-width: 64.0625em) {
  .event-container {
    padding: var(--padding);
  }
}

.event-calendar {
  padding-block: var(--space-s);
  padding-inline: var(--padding-xs);
  max-inline-size: 100%;
  text-transform: uppercase;
  font-weight: 500;
  font-size: var(--font-heading-xs-mobile);
}
@media (min-width: 64.0625em) {
  .event-calendar {
    padding-block: var(--space);
    padding-inline: var(--padding);
  }
}

.event-details {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; /* prevent text from spilling underneath icon */
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; /* center icon (prevent browser discrepancies) */
}

/*
Different layout for events slider, this applies to every page outside
of `/future-students/events`
*/
.event:not(.filtered-results-wrapper-events .event) {
  max-inline-size: var(--measure);
}

@media (min-width: 64.0625em) {
  .event:not(.filtered-results-wrapper-events .event) {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
  }
  .event-calendar:not(.filtered-results-wrapper-events .event-calendar) {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    -ms-flex-negative: 0;
        flex-shrink: 0;
    -ms-flex-preferred-size: 6.375rem;
        flex-basis: 6.375rem;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    gap: var(--space-s);
    text-align: center;
    line-height: 1;
  }
  .event-day:not(.filtered-results-wrapper-events .event-day) {
    font-size: 1rem;
    font-weight: 400;
  }
  .event-date:not(.filtered-results-wrapper-events .event-date) {
    font-size: var(--font-heading-s);
  }
  .event-month:not(.filtered-results-wrapper-events .event-month) {
    font-size: var(--font-heading-xs);
  }
}
.feature-text {
  position: relative;
  -webkit-border-start: var(--space-s) solid var(--color-black-050);
          border-inline-start: var(--space-s) solid var(--color-black-050);
  -webkit-padding-start: var(--space-l);
          padding-inline-start: var(--space-l);
  font-weight: 500;
  -webkit-margin-before: var(--space-xl);
          margin-block-start: var(--space-xl);
  -webkit-margin-after: var(--space-l);
          margin-block-end: var(--space-l);
}

.feature-panel {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(max(var(--grid-item-min-inline-size), var(--grid-item-max-inline-size)), 1fr));
  inline-size: 100%;
  max-inline-size: 100%;
  text-align: start;
}
.feature-panel picture {
  max-inline-size: 100%;
}
.feature-panel picture img {
  -o-object-fit: cover;
     object-fit: cover;
  block-size: 100%;
  inline-size: 100%;
}

@media only screen and (width >= 47em) {
  .feature-panel-reverse > picture {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1; /* switches at default var(--grid-item-min-inline-size) */
  }
}

.feature-panel .card-text {
  -ms-flex-item-align: center;
      align-self: center; /* centers text vertically, used on `offer` and `research-feature` on homepage + `/degrees/year-12-pathways` */
}

.leadGen__confirmation {
  position: relative;
  inline-size: 100%;
  max-inline-size: none;
}

.leadGen__form,
.form {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: var(--space-l);
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  max-inline-size: none;
}
@media (min-width: 37.5em) {
  .leadGen__form,
  .form {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-flow: row wrap;
            flex-flow: row wrap;
  }
}

.form-close {
  position: absolute;
  top: calc(var(--section-block) * -1 + var(--padding));
  right: 0;
  z-index: 1;
  margin: 0;
}

.header {
  position: sticky;
  z-index: 10; /* sits above `site-overlay`, nav/search and other items with higher z-index */
  top: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  padding-inline: var(--section-inline);
  padding-block: var(--space);
  -webkit-border-after: 0.125rem solid transparent;
          border-block-end: 0.125rem solid transparent; /* add border to not change dom size on scroll  */
  -webkit-transition: top var(--transition-time) var(--cubic-bezier), border-color var(--transition-time) var(--cubic-bezier);
  transition: top var(--transition-time) var(--cubic-bezier), border-color var(--transition-time) var(--cubic-bezier);
}
.header .button {
  margin-inline: calc(var(--space) - 0.125rem); /* add extra space around primary button and account for button border */
}
@media (prefers-reduced-motion) {
  .header {
    position: relative;
  }
}
.article-page .header {
  border-block-end-color: var(--color-black-050);
}
.scroll-up .header, .overlay-open .header {
  top: 0;
  border-block-end-color: var(--color-black-050); /* differentiate on light bg */
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-transition: top var(--transition-time) var(--cubic-bezier), border-color var(--transition-time) var(--cubic-bezier);
  transition: top var(--transition-time) var(--cubic-bezier), border-color var(--transition-time) var(--cubic-bezier);
}
.scroll-down .header {
  top: -100%;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.scroll-up .header, .scroll-down .header, .overlay-open .header {
  padding-block: var(--space-s);
}

/* Show and hide items on mobile/ desktop */
.header-medium {
  display: none;
}
@media (min-width: 50em) {
  .header-medium {
    display: block;
  }
}

.header-large {
  display: none;
}
@media (min-width: 65em) {
  .header-large {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }
}

/* Header logo 
The inline-size affects the offset of `site-overlay`
*/
.header-logo {
  -ms-flex-item-align: center;
      align-self: center; /* needed for scroll */
  inline-size: 5.6875rem; /* 91px */
  -webkit-transition: inline-size var(--transition-time) ease-in-out;
  transition: inline-size var(--transition-time) ease-in-out;
}
.header-logo img {
  inline-size: 100%;
}
.scroll-up .header-logo, .scroll-down .header-logo, .overlay-open .header-logo {
  inline-size: 4.375rem; /* shrink to 70px */
}

/* Site navigation, includes `header-menu`, compare apply, enquire, search and menu buttons. */
.header-nav {
  gap: clamp(var(--space), 0.4153rem + 2.2599vw, var(--space-l)); /* generated using https://clamp.font-size.app/ 1rem @414px -> 1.5rem @768px */
  -webkit-margin-before: var(--space);
          margin-block-start: var(--space);
}
.scroll-up .header-nav, .scroll-down .header-nav, .overlay-open .header-nav {
  -webkit-margin-before: 0;
          margin-block-start: 0;
}

/* Menu that appears inside `header-nav` */
.header-menu {
  gap: 3.5rem;
  margin-block: 0.625rem; /* create space for tap target (0.625rem + 1.5rem + 0.625rem = 2.75rem/ 44px) */
  -webkit-padding-start: 0;
          padding-inline-start: 0;
  font-weight: 500;
}
.header-menu a {
  position: relative;
  padding-block: 1rem;
  text-decoration: none;
}
.header-menu a::after {
  content: "";
  display: block;
  position: absolute;
  -webkit-transition-property: width;
  transition-property: width;
  -webkit-transition-duration: 0.15s;
          transition-duration: 0.15s;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  width: 0;
  height: 0.25rem; /* 4px in Figma design */
  -webkit-margin-before: var(--space-s);
          margin-block-start: var(--space-s);
  background-color: var(--color-primary);
}
.header-menu a.active::after {
  width: 100%;
}
.header-menu-hidden {
  display: none;
}

/* Hamburger menu */
.header-hamburger {
  -webkit-transition-property: display;
  transition-property: display;
  -webkit-transition-duration: 0.15s;
          transition-duration: 0.15s;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
}

.height-limited p {
  display: -webkit-box; /* stylelint-disable-line value-no-vendor-prefix */
  line-clamp: 5;
  box-orient: vertical; /* stylelint-disable-line property-no-unknown */
  overflow: hidden;
  -ms-hyphens: auto;
      hyphens: auto;
}

.height-limited input {
  opacity: 0;
  position: absolute;
  pointer-events: none;
}

.height-limited input:checked + p {
  line-clamp: unset;
}

.height-limited input:checked ~ label,
.height-limited p:not(.truncated) ~ label {
  display: none;
}

/*

Hero banner, running across the top of a page, with a background image and content overlay.
 - The hero is used on Campaign, Study, Newsroom, Extra and Courses pages.
 - most instances are powered from Super Content CT, some are hardcoded in webCMS paint layouts

@example html
<div 
  class="hero"
  style="background-image: 
    linear-gradient(180deg, rgb(0 0 0 / 70%) 0, rgb(0 0 0 / 0) 7rem), 
    url('./?a={imageURL}');" 
>
  <nav aria-label="breadcrumbs">
    {breadcrumbs}
  </nav>
  <div class="card hero-content stack stack-l background-black">
    <div class="stack">
      {content}
    </div>
    {button}
  </div>
  <span role="none presentation" class="hero-campaign-text"></span>
</div>
*/
.hero {
  z-index: 2; /* sit above succeding sections that contain `after-hero` */
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  border-bottom-right-radius: 50px;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: top center;
  padding-top: 54.55%; /* Campaign and Study use a standard 1920px x 1080px (16:9) ratio. Newsroom and Extra use a custom 1080px x 1980px ratio. Setting padding to 54.55% prevents display issues on Newsroom and Extra */
  color: var(--component-text-color, var(--color-white));
}
.hero > * {
  z-index: 1;
}
@media (min-width: 64.0625em) {
  .hero {
    border-bottom-right-radius: 0;
    background-size: cover;
    padding-block: var(--space) 4.25rem;
    padding-inline: var(--section-inline);
    background-position: center;
    min-block-size: var(--component-inline-size-s);
  }
}

.hero-courses {
  -webkit-padding-before: 52.5%;
          padding-block-start: 52.5%; /* Courses link directly to the Open Graph 1200px x 630px (1:1.9 ratio), using Squiz Var globals_frontend_asset_metadata_og-image */
}
@media (min-width: 64.0625em) {
  .hero-courses {
    -webkit-padding-before: var(--space);
            padding-block-start: var(--space);
  }
}

/* Hero inner */
.hero-content {
  position: relative;
  border-bottom-right-radius: 50px;
  padding-block: var(--padding-xs) var(--hero-leaf); /* to align with figma */
  padding-inline: var(--section-inline);
  z-index: 1;
}
@media (min-width: 64.0625em) {
  .hero-content {
    max-inline-size: var(--hero-content-inline-size);
    -webkit-margin-before: var(--space-s);
            margin-block-start: var(--space-s);
    padding-inline: var(--padding-s);
    -webkit-padding-before: 2rem;
            padding-block-start: 2rem; /* to align with figma */
  }
}

/* Leaf element */
.hero-content::after {
  content: "";
  display: block;
  position: absolute;
  block-size: calc(1.0865 * var(--hero-leaf)); /* 81px & 88px */
  inline-size: var(--hero-leaf);
  bottom: 0;
  right: 0;
  z-index: 1;
  background-image: url("data:image/svg+xml,<svg width=\"81\" height=\"89\" viewBox=\"0 0 81 89\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0.376313 88.375H3.19758C5.97127 79.4807 13.6226 64.727 34.5674 56.5653C52.0695 49.7638 63.1636 41.8635 72.7754 29.3069C74.7839 26.6386 78.3705 21.1974 81.0006 12.8786L81.0013 0.375H80.9527C79.0398 14.9716 73.3972 23.8657 70.6715 27.4234C61.3944 39.5091 50.6828 47.1478 33.6589 53.7923C10.897 62.6342 3.05435 79.0621 0.376313 88.375Z\" fill=\"%2326B298\"/></svg>"); /* svgbackgrounds.com/tools/svg-to-css */
}

.hero-course-code {
  font-size: var(--font-article);
}

.hero-campaign-text {
  display: none;
}
@media (min-width: 64.0625em) {
  .hero-campaign-text {
    display: block;
    position: absolute;
    inline-size: 6.2986rem;
    block-size: 3.5rem;
    right: var(--section-inline);
    bottom: 3rem;
    background-image: url("data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" data-name=\"Layer 1\" viewBox=\"0 0 425.2 239.76\"><path fill=\"%23fff\" d=\"M12.33 62.97c-3.28-1.68-5.81-4.07-7.62-7.17-1.81-3.09-2.7-6.65-2.7-10.68V22.2c0-4.02.89-7.55 2.7-10.59s4.33-5.4 7.62-7.08C15.61 2.85 19.36 2 23.61 2s7.99.81 11.24 2.44 5.78 3.92 7.56 6.86c1.81 2.96 2.7 6.38 2.7 10.26v.09c0 .29-.09.53-.26.7-.17.17-.38.26-.62.26l-6.72.36c-.58 0-.89-.26-.89-.79v-.26c0-3.78-1.19-6.83-3.54-9.11-2.36-2.3-5.52-3.46-9.47-3.46s-7.13 1.15-9.52 3.46c-2.39 2.3-3.59 5.35-3.59 9.11v23.55c0 3.78 1.2 6.83 3.59 9.11 2.39 2.29 5.57 3.46 9.52 3.46s7.12-1.15 9.47-3.46c2.36-2.3 3.54-5.35 3.54-9.11v-.17c0-.53.29-.79.89-.79l6.72.36c.58 0 .89.29.89.88 0 3.9-.89 7.34-2.7 10.32-1.81 2.97-4.32 5.3-7.56 6.95-3.25 1.65-7 2.48-11.24 2.48s-8.01-.84-11.3-2.53ZM80.55 20.33c.41.17.57.53.45 1.07l-1.41 6.64c-.05.53-.41.7-1.07.53-1-.41-2.18-.62-3.54-.62l-1.24.09c-2.77.12-5.05 1.08-6.86 2.87s-2.7 4.14-2.7 7.03V63.8c0 .58-.29.88-.88.88h-6.72c-.58 0-.88-.29-.88-.88V20.52c0-.58.29-.89.88-.89h6.72c.58 0 .88.29.88.89v4.69c0 .17.05.28.14.31.09.03.15 0 .22-.14 2.65-4.13 6.29-6.19 10.88-6.19 1.89 0 3.59.38 5.14 1.15l-.02-.02ZM99.81 28.17c-1.65 1.27-2.77 2.97-3.37 5.09-.41 1.29-.67 2.96-.79 4.95 0 .24.12.36.36.36h20.27c.24 0 .36-.12.36-.36-.12-1.94-.29-3.39-.53-4.33-.58-2.3-1.75-4.14-3.49-5.54s-3.92-2.08-6.52-2.08-4.64.64-6.29 1.91Zm25.32 16.52c0 .58-.29.88-.88.88H96c-.24 0-.36.12-.36.36 0 2.01.17 3.54.53 4.61.65 2.36 1.96 4.21 3.94 5.54 1.98 1.32 4.47 1.99 7.48 1.99 4.37 0 7.74-1.81 10.09-5.4.29-.58.67-.67 1.15-.26l5.05 3.37c.41.36.5.74.26 1.15-1.65 2.65-4.01 4.74-7.03 6.29-3.04 1.53-6.48 2.3-10.32 2.3-4.32 0-7.94-.95-10.88-2.84-2.96-1.89-5.16-4.57-6.64-8.06-1.41-3.49-2.13-7.7-2.13-12.65 0-4.32.33-7.58.98-9.83 1.07-4.07 3.18-7.29 6.38-9.64 3.18-2.36 7.05-3.54 11.6-3.54 5.97 0 10.42 1.5 13.38 4.47 2.96 2.97 4.74 7.36 5.4 13.15.24 2.42.33 5.14.26 8.15l-.02-.03ZM158.36 55.77c2.3-1.65 3.46-3.75 3.46-6.29v-5.23c0-.24-.12-.36-.36-.36h-8.32c-3.49 0-6.26.69-8.32 2.03-2.06 1.36-3.09 3.25-3.09 5.67 0 2.18.77 3.83 2.34 4.95 1.56 1.12 3.61 1.68 6.15 1.68 3.13 0 5.85-.83 8.15-2.48v.02Zm3.6-34.94c2.68 1.27 4.74 3.04 6.19 5.31s2.17 4.87 2.17 7.75v29.93c0 .58-.29.88-.88.88h-6.72c-.58 0-.88-.29-.88-.88v-3.18c0-.29-.15-.36-.45-.17-1.53 1.6-3.4 2.82-5.62 3.68-2.22.86-4.68 1.29-7.39 1.29-4.37 0-7.98-1.1-10.85-3.32-2.87-2.22-4.3-5.57-4.3-10.04s1.6-8.22 4.83-10.85c3.21-2.63 7.72-3.94 13.5-3.94h9.92c.24 0 .36-.12.36-.36v-2.39c0-2.6-.76-4.62-2.25-6.07-1.51-1.44-3.8-2.17-6.86-2.17-2.48 0-4.5.48-6.07 1.46s-2.53 2.29-2.87 3.94c-.17.58-.53.86-1.07.79l-7.17-.98c-.58-.12-.86-.36-.79-.7.46-3.49 2.34-6.33 5.59-8.54 3.25-2.22 7.32-3.32 12.22-3.32 3.59 0 6.74.64 9.44 1.91l-.05-.03ZM202.96 26.63h-9.56c-.24 0-.36.12-.36.36v23.47c0 2.48.57 4.26 1.68 5.36 1.12 1.1 2.87 1.63 5.23 1.63h2.56c.58 0 .89.29.89.88v5.48c0 .58-.29.88-.89.88-1.89.12-3.25.17-4.07.17-4.49 0-7.87-.81-10.14-2.44-2.27-1.62-3.4-4.62-3.4-8.99V26.99c0-.24-.12-.36-.36-.36h-5.4c-.58 0-.88-.29-.88-.89v-5.23c0-.58.29-.89.88-.89h5.4c.24 0 .36-.12.36-.36V8.84c0-.58.29-.89.88-.89h6.38c.58 0 .88.29.88.89v10.45c0 .24.12.36.36.36h9.56c.58 0 .88.29.88.89v5.23c0 .58-.29.89-.88.89l.02-.03ZM213.88 63.73V20.52c0-.58.29-.89.89-.89h6.72c.58 0 .88.29.88.89v43.2c0 .58-.29.88-.88.88h-6.72c-.58 0-.89-.29-.89-.88Zm.36-52.77c-1.07-1.07-1.6-2.42-1.6-4.07s.53-3.01 1.6-4.07 2.42-1.6 4.07-1.6 3.01.53 4.07 1.6 1.6 2.42 1.6 4.07-.53 3.01-1.6 4.07-2.42 1.6-4.07 1.6-3.01-.53-4.07-1.6ZM246.28 63.98l-14.42-43.39-.09-.36c0-.41.26-.62.79-.62H240c.53 0 .88.24 1.07.7l9.75 32.05c.05.12.14.17.26.17s.21-.05.26-.17l9.64-32.05c.17-.46.53-.7 1.07-.7l7.44.09c.65 0 .89.33.7.98l-14.34 43.29c-.17.48-.53.7-1.07.7h-7.44c-.53 0-.88-.24-1.07-.7v.02ZM289.07 28.17c-1.65 1.27-2.77 2.97-3.37 5.09-.41 1.29-.67 2.96-.79 4.95 0 .24.12.36.36.36h20.27c.24 0 .36-.12.36-.36-.12-1.94-.29-3.39-.53-4.33-.58-2.3-1.75-4.14-3.49-5.54-1.74-1.39-3.92-2.08-6.52-2.08s-4.64.64-6.29 1.91Zm25.33 16.52c0 .58-.29.88-.88.88h-28.25c-.24 0-.36.12-.36.36 0 2.01.17 3.54.53 4.61.65 2.36 1.96 4.21 3.94 5.54 1.98 1.32 4.47 1.99 7.48 1.99 4.37 0 7.74-1.81 10.09-5.4.29-.58.67-.67 1.15-.26l5.05 3.37c.41.36.5.74.26 1.15-1.65 2.65-4.01 4.74-7.03 6.29-3.04 1.53-6.48 2.3-10.32 2.3-4.32 0-7.94-.95-10.88-2.84-2.96-1.89-5.16-4.57-6.64-8.06-1.41-3.49-2.13-7.7-2.13-12.65 0-4.32.33-7.58.98-9.83 1.07-4.07 3.18-7.29 6.38-9.64 3.18-2.36 7.05-3.54 11.6-3.54 5.97 0 10.42 1.5 13.38 4.47 2.96 2.97 4.74 7.36 5.4 13.15.24 2.42.33 5.14.26 8.15l-.02-.03ZM26.55 111.73h-9.56c-.24 0-.36.12-.36.36v23.47c0 2.48.57 4.26 1.68 5.36 1.12 1.1 2.87 1.63 5.23 1.63h2.56c.58 0 .89.29.89.88v5.48c0 .58-.29.88-.89.88-1.89.12-3.25.17-4.07.17-4.49 0-7.87-.81-10.14-2.44-2.27-1.62-3.4-4.62-3.4-8.99v-26.48c0-.24-.12-.36-.36-.36H2.72c-.58 0-.88-.29-.88-.89v-5.23c0-.58.29-.89.88-.89h5.42c.24 0 .36-.12.36-.36V93.87c0-.58.29-.89.88-.89h6.38c.58 0 .88.29.88.89v10.45c0 .24.12.36.36.36h9.56c.58 0 .88.29.88.89v5.23c0 .58-.29.89-.88.89v.03ZM68.76 108.32c2.84 2.8 4.25 6.6 4.25 11.38v29.23c0 .58-.29.88-.89.88H65.4c-.58 0-.88-.29-.88-.88v-27.54c0-2.96-.86-5.35-2.56-7.17-1.72-1.82-3.99-2.75-6.83-2.75s-5.05.91-6.83 2.75c-1.77 1.82-2.65 4.19-2.65 7.08v27.63c0 .58-.29.88-.88.88h-6.72c-.58 0-.88-.29-.88-.88V88.71c0-.58.29-.88.88-.88h6.72c.58 0 .88.29.88.88v20.1c0 .12.05.21.14.26.09.07.15.03.22-.09 2.54-3.25 6.29-4.87 11.24-4.87s8.68 1.41 11.5 4.21ZM85.5 148.83v-43.2c0-.58.29-.89.89-.89h6.72c.58 0 .88.29.88.89v43.2c0 .58-.29.88-.88.88h-6.72c-.58 0-.89-.29-.89-.88Zm.37-52.77c-1.07-1.07-1.6-2.42-1.6-4.07s.53-3.01 1.6-4.07 2.42-1.6 4.07-1.6 3.01.53 4.07 1.6c1.07 1.07 1.6 2.42 1.6 4.07s-.53 3.01-1.6 4.07c-1.07 1.07-2.42 1.6-4.07 1.6s-3.01-.53-4.07-1.6ZM138.63 108.32c2.84 2.8 4.25 6.6 4.25 11.38v29.23c0 .58-.29.88-.89.88h-6.72c-.58 0-.88-.29-.88-.88v-27.54c0-2.96-.86-5.35-2.56-7.17-1.72-1.82-3.99-2.75-6.83-2.75s-5.05.91-6.83 2.75c-1.77 1.82-2.65 4.19-2.65 7.08v27.63c0 .58-.29.88-.88.88h-6.72c-.58 0-.88-.29-.88-.88v-43.29c0-.58.29-.89.88-.89h6.72c.58 0 .88.29.88.89v3.18c0 .12.05.21.14.26.09.07.15.03.22-.09 2.54-3.25 6.29-4.87 11.24-4.87s8.68 1.41 11.5 4.21v-.02ZM155.23 148.91V88.7c0-.58.29-.88.88-.88h6.72c.58 0 .88.29.88.88v34.09c0 .12.05.21.17.26.12.05.21.03.26-.09l16.38-17.79c.24-.29.58-.45 1.07-.45h7.87c.36 0 .57.1.67.31.09.21 0 .46-.22.76l-11.42 13.19c-.12.24-.15.41-.09.53l13.55 29.23.09.36c0 .48-.28.7-.79.7h-7.08c-.48 0-.79-.24-.98-.7l-10.54-24.09c-.12-.29-.28-.33-.45-.09l-8.32 9.21c-.12.24-.17.38-.17.45v14.34c0 .58-.29.88-.88.88h-6.72c-.58 0-.88-.29-.88-.88v-.02ZM210.04 113.27c-1.65 1.27-2.77 2.97-3.37 5.09-.41 1.29-.67 2.96-.79 4.95 0 .24.12.36.36.36h20.27c.24 0 .36-.12.36-.36-.12-1.94-.29-3.39-.53-4.33-.58-2.3-1.75-4.14-3.49-5.54s-3.92-2.08-6.52-2.08-4.64.64-6.29 1.91Zm25.33 16.52c0 .58-.29.88-.88.88h-28.25c-.24 0-.36.12-.36.36 0 2.01.17 3.54.53 4.61.65 2.36 1.96 4.21 3.94 5.54 1.98 1.32 4.47 1.99 7.48 1.99 4.37 0 7.74-1.81 10.09-5.4.29-.58.67-.67 1.15-.26l5.05 3.37c.41.36.5.74.26 1.15-1.65 2.65-4.01 4.74-7.03 6.29-3.04 1.53-6.48 2.3-10.32 2.3-4.32 0-7.94-.95-10.88-2.84-2.96-1.89-5.16-4.57-6.64-8.06-1.41-3.49-2.13-7.7-2.13-12.65 0-4.32.33-7.58.98-9.83 1.07-4.07 3.18-7.29 6.38-9.64 3.18-2.36 7.05-3.54 11.6-3.54 5.97 0 10.42 1.5 13.38 4.47 2.96 2.97 4.74 7.36 5.4 13.15.24 2.42.33 5.14.26 8.15l-.02-.03ZM271.09 105.43c.41.17.57.53.45 1.07l-1.41 6.64c-.05.53-.41.7-1.07.53-1-.41-2.18-.62-3.54-.62l-1.24.09c-2.77.12-5.05 1.08-6.86 2.87-1.81 1.79-2.7 4.14-2.7 7.03v25.86c0 .58-.29.88-.88.88h-6.72c-.58 0-.88-.29-.88-.88v-43.29c0-.58.29-.89.88-.89h6.72c.58 0 .88.29.88.89v4.69c0 .17.05.28.14.31s.15 0 .22-.14c2.65-4.13 6.29-6.19 10.88-6.19 1.89 0 3.59.38 5.14 1.15h-.02ZM286.44 148.74c-2.68-1.07-4.76-2.53-6.24-4.38-1.48-1.86-2.22-3.9-2.22-6.15v-.98c0-.58.29-.88.89-.88h6.38c.58 0 .88.29.88.88v.45c0 1.65.89 3.09 2.7 4.33 1.81 1.24 4.09 1.86 6.86 1.86s4.81-.57 6.46-1.72 2.48-2.61 2.48-4.38-.77-2.99-2.3-3.85c-1.53-.86-4.02-1.75-7.44-2.7-3.37-.95-6.19-1.91-8.46-2.87-2.27-.98-4.19-2.36-5.76-4.16s-2.36-4.11-2.36-6.95c0-3.95 1.55-7.1 4.64-9.42 3.09-2.32 7.22-3.49 12.34-3.49 3.42 0 6.45.55 9.08 1.63 2.63 1.1 4.64 2.61 6.07 4.56 1.41 1.94 2.13 4.13 2.13 6.55v.26c0 .58-.29.88-.88.88h-6.21c-.58 0-.88-.29-.88-.88v-.26c0-1.72-.84-3.15-2.53-4.3-1.68-1.15-3.97-1.72-6.86-1.72-2.6 0-4.71.5-6.33 1.51-1.62 1-2.44 2.36-2.44 4.07s.79 3.01 2.34 3.9c1.56.89 4.09 1.84 7.56 2.84 3.42.95 6.28 1.87 8.54 2.79 2.27.91 4.21 2.27 5.79 4.07 1.6 1.81 2.39 4.14 2.39 7.03 0 4.02-1.58 7.2-4.74 9.56-3.16 2.36-7.36 3.54-12.62 3.54-3.54 0-6.65-.53-9.34-1.6l.05-.02ZM59.66 193.25c2.6 2.68 3.9 6.41 3.9 11.19v29.57c0 .58-.29.88-.89.88h-6.64c-.58 0-.88-.29-.88-.88v-27.8c0-2.96-.81-5.3-2.44-7.03s-3.8-2.61-6.52-2.61-4.93.86-6.64 2.56c-1.72 1.72-2.56 4.01-2.56 6.91v27.97c0 .58-.29.88-.89.88h-6.64c-.58 0-.88-.29-.88-.88v-27.8c0-2.96-.81-5.3-2.44-7.03-1.63-1.74-3.8-2.61-6.52-2.61s-4.88.86-6.52 2.56c-1.63 1.7-2.44 4.01-2.44 6.91v27.97c0 .58-.29.88-.88.88H3.09c-.58 0-.88-.29-.88-.88v-43.29c0-.58.29-.89.88-.89h6.72c.58 0 .88.29.88.89v3.01c0 .12.05.21.14.26.09.05.19.03.31-.09 2.6-3.13 6.38-4.69 11.33-4.69 3.01 0 5.57.57 7.7 1.72s3.78 2.85 4.95 5.09c.17.24.36.24.53 0 1.41-2.3 3.28-4.01 5.62-5.14 2.34-1.12 4.92-1.68 7.75-1.68 4.49 0 8.03 1.34 10.62 4.02l.02.03ZM98.23 225.97c2.3-1.65 3.46-3.75 3.46-6.29v-5.23c0-.24-.12-.36-.36-.36h-8.32c-3.49 0-6.26.69-8.32 2.03-2.06 1.36-3.09 3.25-3.09 5.67 0 2.18.77 3.83 2.34 4.95 1.56 1.12 3.61 1.68 6.15 1.68 3.13 0 5.85-.83 8.15-2.48v.02Zm3.59-34.94c2.68 1.27 4.74 3.04 6.19 5.31s2.17 4.87 2.17 7.75v29.93c0 .58-.29.88-.88.88h-6.72c-.58 0-.88-.29-.88-.88v-3.18c0-.29-.15-.36-.45-.17-1.53 1.6-3.4 2.82-5.62 3.68-2.22.86-4.68 1.29-7.39 1.29-4.37 0-7.98-1.1-10.85-3.32-2.87-2.22-4.3-5.57-4.3-10.04s1.6-8.22 4.83-10.85c3.21-2.63 7.72-3.94 13.5-3.94h9.92c.24 0 .36-.12.36-.36v-2.39c0-2.6-.76-4.62-2.25-6.07-1.51-1.44-3.8-2.17-6.86-2.17-2.48 0-4.5.48-6.07 1.46s-2.53 2.29-2.87 3.94c-.17.58-.53.86-1.07.79l-7.17-.98c-.58-.12-.86-.36-.79-.7.46-3.49 2.34-6.33 5.59-8.54 3.25-2.22 7.32-3.32 12.22-3.32 3.59 0 6.74.64 9.44 1.91l-.05-.03ZM149.73 212.33c0-4.95-.74-8.73-2.22-11.33-1.72-3.01-4.23-4.52-7.53-4.52-3.54 0-6.17 1.41-7.87 4.25-1.89 2.96-2.84 6.84-2.84 11.69 0 4.54.74 8.2 2.22 10.99 1.72 3.25 4.52 4.87 8.41 4.87 3.42 0 6.02-1.6 7.79-4.78 1.36-2.48 2.03-6.19 2.03-11.16h.02Zm1.07-39.4h6.72c.58 0 .89.29.89.88v60.21c0 .58-.29.88-.89.88h-6.72c-.58 0-.88-.29-.88-.88v-2.92c0-.12-.05-.21-.14-.26-.09-.05-.19-.03-.31.09-1.29 1.48-2.84 2.63-4.61 3.46-1.77.83-3.7 1.24-5.76 1.24-4.25 0-7.77-1.05-10.57-3.15s-4.85-5.05-6.15-8.91c-1.12-3.13-1.68-6.91-1.68-11.33 0-4.13.46-7.7 1.41-10.71 1.24-3.9 3.28-6.93 6.1-9.11 2.84-2.18 6.46-3.28 10.88-3.28 2.01 0 3.9.4 5.71 1.2 1.81.79 3.35 1.93 4.64 3.4.12.12.22.15.31.09.09-.05.14-.14.14-.26v-19.74c0-.58.29-.88.88-.88l.03-.02ZM182.29 198.37c-1.65 1.27-2.77 2.97-3.37 5.09-.41 1.29-.67 2.96-.79 4.95 0 .24.12.36.36.36h20.27c.24 0 .36-.12.36-.36-.12-1.94-.29-3.39-.53-4.33-.58-2.3-1.75-4.14-3.49-5.54-1.74-1.39-3.92-2.08-6.52-2.08s-4.64.64-6.29 1.91Zm25.33 16.52c0 .58-.29.88-.88.88h-28.25c-.24 0-.36.12-.36.36 0 2.01.17 3.54.53 4.61.65 2.36 1.96 4.21 3.94 5.54 1.98 1.32 4.47 1.99 7.48 1.99 4.37 0 7.74-1.81 10.09-5.4.29-.58.67-.67 1.15-.26l5.05 3.37c.41.36.5.74.26 1.15-1.65 2.65-4.01 4.74-7.03 6.29-3.04 1.53-6.48 2.3-10.32 2.3-4.32 0-7.94-.95-10.88-2.84-2.96-1.89-5.16-4.57-6.64-8.06-1.41-3.49-2.13-7.7-2.13-12.65 0-4.32.33-7.58.98-9.83 1.07-4.07 3.18-7.29 6.38-9.64 3.18-2.36 7.05-3.54 11.6-3.54 5.97 0 10.42 1.5 13.38 4.47 2.96 2.97 4.74 7.36 5.4 13.15.24 2.42.33 5.14.26 8.15l-.02-.03ZM269.4 193.42c2.84 2.8 4.25 6.6 4.25 11.38v29.23c0 .58-.29.88-.89.88h-6.72c-.58 0-.88-.29-.88-.88v-27.54c0-2.96-.86-5.35-2.56-7.17-1.72-1.82-3.99-2.75-6.83-2.75s-5.05.91-6.83 2.75c-1.77 1.82-2.65 4.19-2.65 7.08v27.63c0 .58-.29.88-.88.88h-6.72c-.58 0-.88-.29-.88-.88v-60.21c0-.58.29-.88.88-.88h6.72c.58 0 .88.29.88.88v20.1c0 .12.05.21.14.26.09.07.15.03.22-.09 2.54-3.25 6.29-4.87 11.24-4.87s8.68 1.41 11.5 4.21v-.02ZM297.12 198.37c-1.65 1.27-2.77 2.97-3.37 5.09-.41 1.29-.67 2.96-.79 4.95 0 .24.12.36.36.36h20.27c.24 0 .36-.12.36-.36-.12-1.94-.29-3.39-.53-4.33-.58-2.3-1.75-4.14-3.49-5.54s-3.92-2.08-6.52-2.08-4.64.64-6.29 1.91Zm25.32 16.52c0 .58-.29.88-.88.88h-28.25c-.24 0-.36.12-.36.36 0 2.01.17 3.54.53 4.61.65 2.36 1.96 4.21 3.94 5.54 1.98 1.32 4.47 1.99 7.48 1.99 4.37 0 7.74-1.81 10.09-5.4.29-.58.67-.67 1.15-.26l5.05 3.37c.41.36.5.74.26 1.15-1.65 2.65-4.01 4.74-7.03 6.29-3.04 1.53-6.48 2.3-10.32 2.3-4.32 0-7.94-.95-10.88-2.84-2.96-1.89-5.16-4.57-6.64-8.06-1.41-3.49-2.13-7.7-2.13-12.65 0-4.32.33-7.58.98-9.83 1.07-4.07 3.18-7.29 6.38-9.64 3.18-2.36 7.05-3.54 11.6-3.54 5.97 0 10.42 1.5 13.38 4.47 2.96 2.97 4.74 7.36 5.4 13.15.24 2.42.33 5.14.26 8.15l-.02-.03ZM358.15 190.53c.41.17.57.53.45 1.07l-1.41 6.64c-.05.53-.41.7-1.07.53-1-.41-2.18-.62-3.54-.62l-1.24.09c-2.77.12-5.05 1.08-6.86 2.87s-2.7 4.14-2.7 7.03V234c0 .58-.29.88-.88.88h-6.72c-.58 0-.88-.29-.88-.88v-43.29c0-.58.29-.89.88-.89h6.72c.58 0 .88.29.88.89v4.69c0 .17.05.28.14.31s.15 0 .22-.14c2.65-4.13 6.29-6.19 10.88-6.19 1.89 0 3.59.38 5.14 1.15h-.02ZM377.42 198.37c-1.65 1.27-2.77 2.97-3.37 5.09-.41 1.29-.67 2.96-.79 4.95 0 .24.12.36.36.36h20.27c.24 0 .36-.12.36-.36-.12-1.94-.29-3.39-.53-4.33-.58-2.3-1.75-4.14-3.49-5.54s-3.92-2.08-6.52-2.08-4.64.64-6.29 1.91Zm25.33 16.52c0 .58-.29.88-.88.88h-28.25c-.24 0-.36.12-.36.36 0 2.01.17 3.54.53 4.61.65 2.36 1.96 4.21 3.94 5.54 1.98 1.32 4.47 1.99 7.48 1.99 4.37 0 7.74-1.81 10.09-5.4.29-.58.67-.67 1.15-.26l5.05 3.37c.41.36.5.74.26 1.15-1.65 2.65-4.01 4.74-7.03 6.29-3.04 1.53-6.48 2.3-10.32 2.3-4.32 0-7.94-.95-10.88-2.84-2.96-1.89-5.16-4.57-6.64-8.06-1.41-3.49-2.13-7.7-2.13-12.65 0-4.32.33-7.58.98-9.83 1.07-4.07 3.18-7.29 6.38-9.64 3.18-2.36 7.05-3.54 11.6-3.54 5.97 0 10.42 1.5 13.38 4.47 2.96 2.97 4.74 7.36 5.4 13.15.24 2.42.33 5.14.26 8.15l-.02-.03ZM414.09 233.31c-1.07-1.07-1.6-2.42-1.6-4.07s.53-3.01 1.6-4.07 2.42-1.6 4.07-1.6 3.01.53 4.07 1.6 1.6 2.42 1.6 4.07-.53 3.01-1.6 4.07c-1.07 1.07-2.42 1.6-4.07 1.6s-3.01-.53-4.07-1.6Z\"/></svg>"); /* generated using svgbackgrounds.com/tools/svg-to-css */
    -webkit-filter: drop-shadow(1px 1px 1px rgba(0, 0, 0, 0.7));
            filter: drop-shadow(1px 1px 1px rgba(0, 0, 0, 0.7));
  }
}

/* Used in site wide page header, create buttons for compare, enquire, search, menu */
.icon-button {
  position: relative;
  block-size: 2.75rem;
  inline-size: 2.75rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: reverse;
      -ms-flex-direction: column-reverse;
          flex-direction: column-reverse;
  -ms-flex-pack: distribute;
      justify-content: space-around;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  text-decoration: none; /* Remove underline for anchor links */
}

.icon-inline-start {
  -webkit-margin-end: var(--icon-space);
          margin-inline-end: var(--icon-space);
}

.icon-inline-end {
  -webkit-margin-start: var(--icon-space);
          margin-inline-start: var(--icon-space);
}

/* 
Use in conjunction with `list-style-none` to remove default list styles,
   creates a flex container for the list items, and aligns them vertically.
   Used in Footer (webCMS) and `src/js/modules/CourseCompareModule.js`
*/
.icon-list li {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.ident-hero {
  max-inline-size: none;
}

/*
  Output course information inside accordion
  Used on future student landing pages, study area and discipline templates

  Powered with /src/js/modules/CourselistingModule.js

  @example html

 <div class="info-card-wrapper" role="list">
  <div class="info-card" role="listitem">
    <a class="gtm__eventTrigger stack" {data-item} href="{url}">
      {title}
    </a>
    <div class="info-card-tabs">
      {tabs}
    </div>
  </div>
</div> 
*/
.info-card-wrapper {
  display: grid;
  gap: var(--space);
  grid-auto-rows: auto;
  grid-template-columns: 100%;
}
@media (min-width: 50em) {
  .info-card-wrapper {
    grid-template-columns: repeat(2, 1fr);
  }
}

.info-card {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: reverse;
      -ms-flex-direction: column-reverse;
          flex-direction: column-reverse; /* ensures headings have succeeding content */
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: start;
  -webkit-border-start: var(--space-s) solid var(--color-primary);
          border-inline-start: var(--space-s) solid var(--color-primary);
  background-color: var(--color-ecru);
  -webkit-transition: var(--transition);
  transition: var(--transition);
}
.info-card a {
  padding-block: 0.75rem var(--space); /* add extra block end padding to account for underlined text */
  padding-inline: var(--space);
}
.background-ecru .info-card {
  background-color: var(--color-white);
}

.info-card-tabs {
  width: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-border-after: 2px solid var(--color-black-050);
          border-block-end: 2px solid var(--color-black-050);
  height: -webkit-fit-content;
  height: -moz-fit-content;
  height: fit-content;
}
.info-card-tabs small {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 0.3125rem var(--space) 0.25rem;
}
.info-card-tabs small:not(:first-of-type) {
  -webkit-border-start: 2px solid var(--color-black-050);
          border-inline-start: 2px solid var(--color-black-050);
}

/* ECU City flag

@example html
<div class="info-card" role="listitem">
  <a href="#" class="stack">
    <h3 class="heading-xxs">Associate Degree in Criminology and Justice</h3>
  </a>
  <div class="info-card-tabs">
    {infocard}
  </div>
  <span class="info-card-city background-{color}">
    <i class="fa-sharp fa-solid fa-city icon-inline-start"></i>
    <span class="small">{text}</span>
  </span>
</div>
*/
.info-card-city {
  padding: var(--space-s) var(--space);
  -webkit-box-ordinal-group: 0;
      -ms-flex-order: -1;
          order: -1;
  -webkit-margin-before: auto;
          margin-block-start: auto; /* push to bottom of info card */
  max-inline-size: 100%; /* width extends over default var(--measure) prior to breakpoint */
}

.info-table {
  --table-border-color: var(--color-primary);
  border: 0;
  inline-size: 100%;
}
.info-table tr {
  -webkit-border-after: 0.125rem solid var(--table-border-color);
          border-block-end: 0.125rem solid var(--table-border-color);
}
.info-table tr:last-of-type {
  --table-border-color: transparent;
}
.info-table th,
.info-table td {
  padding-inline: 0.375rem;
  padding-block: 0.625rem;
}
.info-table th[scope=row] {
  -webkit-padding-start: 0;
          padding-inline-start: 0;
  font-weight: 400;
  text-align: start;
}

.info-table-availability {
  font-size: var(--font-s);
  font-weight: 500;
  text-align: center;
  inline-size: min(100%, 20rem);
}
.info-table-availability th[scope=row] {
  -webkit-padding-start: 0;
          padding-inline-start: 0;
  font-weight: 500;
}
.info-table-availability th[scope=col] {
  padding-block: 0 var(--space-s);
  font-weight: 400;
  inline-size: 33.3333333333%;
  min-inline-size: 12ex;
}
.info-table-availability .info-table-location-heading {
  -webkit-padding-start: 0;
          padding-inline-start: 0;
  text-align: start;
}

.info-table-study-method {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: var(--space-s);
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

/* Generic component, used in conjunction with `background-*` classes */
.inline-rule {
  inline-size: 100%; /* overrides default browser `hr` */
  max-inline-size: 100%;
  block-size: 0.125rem;
  border: 0;
  background-color: var(--component-background-color);
}

@media (min-width: 64.0625em) {
  .inline-rule-desktop {
    inline-size: 100%;
    max-inline-size: 100%;
    block-size: 0.125rem;
    border: 0;
    background-color: var(--component-background-color);
  }
}

/*
inline menu wrapper
this is used on main menu (quicklinks on mobile) and newsroom/ category pages

@example html
<div class="inline-scroll-wrapper background-white">
 <div class="inline-scroll">
   <ul class="pill-list">
     <li>
       <a class="pill background-{color}" href="#">{link}<i class="fa-sharp fa-solid fa-up-right-from-square fa-xs icon-inline-end"></i></a>
     </li>
   </ul>
 </div>
</div>
*/
.inline-scroll-wrapper {
  position: relative;
  margin-inline: 0;
}
.inline-scroll-wrapper::before, .inline-scroll-wrapper::after {
  content: "";
  display: block;
  position: absolute;
  inline-size: var(--padding-xs);
  block-size: 100%;
  top: 0;
  left: calc(var(--inline-scroll-element) * -1);
  background-image: -webkit-gradient(linear, right top, left top, from(transparent), color-stop(85%, var(--component-background-color)));
  background-image: linear-gradient(to left, transparent, var(--component-background-color) 85%);
}
.inline-scroll-wrapper::after {
  background-image: -webkit-gradient(linear, left top, right top, from(transparent), color-stop(85%, var(--component-background-color)));
  background-image: linear-gradient(to right, transparent, var(--component-background-color) 85%);
  right: calc(var(--inline-scroll-element) * -1);
  left: unset;
}

.inline-scroll {
  inline-size: calc(100% + var(--inline-scroll-element) * 2);
  margin-inline: calc(var(--inline-scroll-element) * -1);
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  -ms-scroll-snap-type: inline;
      scroll-snap-type: inline;
  white-space: nowrap;
}

/* Adjust pill-list when used inside an inline-scroll element */
.inline-scroll .pill-list {
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
  -webkit-box-pack: unset;
      -ms-flex-pack: unset;
          justify-content: unset;
  margin-block: 0;
  margin-inline: var(--inline-scroll-element);
  max-inline-size: unset;
}

.loader {
  -webkit-margin-before: 20vh;
          margin-block-start: 20vh;
}

/*
Notification banner

@example html - Usage
<div class="notification hidden background-{color}" role="banner" id="${notificationID}">
  <span class="notification-content">
  <i class="fa-sharp fa-solid fa-info-circle icon-inline-start"></i>
    <div class="stack">
      {notificationText}
    </div>
  </span>
  <button class="notification-close" aria-label="Close notification" data-action="notificationButton">
    <i title="close notification" class="fa-sharp fa-solid fa-xmark"></i>
  </button>
</div>
*/
.notification {
  position: relative;
  display: grid;
  grid-template-columns: 1fr -webkit-min-content;
  grid-template-columns: 1fr min-content;
  padding-inline: var(--section-inline);
  padding-block: 0.75rem;
  text-align: start;
  z-index: 5;
}

.notification-content {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  justify-self: center;
}

.notification-close {
  --notifcation-close-spacing: 0.875rem;
  justify-self: flex-end;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  top: 0;
  right: var(--section-inline);
  margin-block: -1rem;
  -webkit-margin-end: calc(var(--notifcation-close-spacing) * -1);
          margin-inline-end: calc(var(--notifcation-close-spacing) * -1);
  padding-block: 1.25rem;
  padding-inline: var(--notifcation-close-spacing);
}
.notification-close:focus-visible {
  outline-offset: -0.25rem;
}

.overlayContainer {
  width: 100%;
  max-width: var(--component-inline-size);
  margin-right: auto;
  margin-left: auto;
  background-color: var(--color-black-600);
}
.overlayContainer iframe {
  width: 100%;
}
.overlayContainer .button {
  width: 100%;
  border: 0;
  margin: 0 0 1.5rem;
}

.overview-wrapper {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: var(--space) var(--padding-clamp-m);
}
.overview-wrapper > * {
  -ms-flex-preferred-size: clamp(300px, 40% - var(--padding-clamp-m) / 2, 40% - var(--padding-clamp-m) / 2);
      flex-basis: clamp(300px, 40% - var(--padding-clamp-m) / 2, 40% - var(--padding-clamp-m) / 2);
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
}

.overview {
  display: block;
  -webkit-column-width: 18rem;
     -moz-column-width: 18rem;
          column-width: 18rem;
  -webkit-column-gap: var(--space);
     -moz-column-gap: var(--space);
          column-gap: var(--space);
  -ms-flex-preferred-size: clamp(300px, 60% - var(--padding-clamp-m) / 2, 60% - var(--padding-clamp-m) / 2);
      flex-basis: clamp(300px, 60% - var(--padding-clamp-m) / 2, 60% - var(--padding-clamp-m) / 2);
}

.overview-item {
  -webkit-border-start: 0.5rem solid var(--color-primary);
          border-inline-start: 0.5rem solid var(--color-primary);
  padding-block: var(--padding-xs);
  padding-inline: var(--padding-xs);
  /* https://caniuse.com/mdn-css_properties_break-inside_multicol_context */
  -webkit-column-break-inside: avoid;
     -moz-column-break-inside: avoid;
          break-inside: avoid; /* > Firefox v65 */
  break-inside: avoid-column; /* avoid content breaking between columns, > Firefox v92, not respected in Safari 3.1-17.2 */
}

/* Layout for course, unitset and CRICOS codes

@example html
<div class="overview-item background-{color}">
  <i class="fa-sharp fa-solid fa-bookmark icon-inline-start highlight"></i><h3 class="header-xxs overview-item-code">Code</h3> {code}
</div>

*/
.overview-item-code {
  margin-block: 0;
  display: inline;
}

/* used on `src/js/modules/PersonaModalModule.js` to set residence status */
.persona-columns h3 {
  margin-block: 0;
}
.persona-columns .button {
  margin-inline: auto;
}
.persona-columns .column {
  inline-size: clamp(314px, 50% - var(--space-xxl), 100%);
}

.persona-icon {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  gap: 0.25rem var(--space-s);
}
@media (min-width: 50em) {
  .persona-icon {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
}

.persona-icon svg {
  font-size: 2rem;
}
@media (min-width: 50em) {
  .persona-icon svg {
    font-size: 3.25rem;
  }
}

.preheader {
  font-size: var(--font-s);
  line-height: 1rem;
  opacity: 1;
  visibility: visible;
  -webkit-transition: var(--transition-time) visibility ease-in-out, var(--transition-time) block-size ease-in-out, var(--transition-time) opacity ease-in-out;
  transition: var(--transition-time) visibility ease-in-out, var(--transition-time) block-size ease-in-out, var(--transition-time) opacity ease-in-out;
}
.scroll-down .preheader, .scroll-up .preheader, .overlay-open .preheader {
  opacity: 0;
  visibility: hidden;
  block-size: 0;
}

.preheader ul {
  gap: var(--space-l);
  margin-block: 0;
  -webkit-padding-start: 0;
          padding-inline-start: 0;
}

.preheader a {
  padding-block: var(--space);
  text-decoration: none;
}

/* Main search form 
Located in webCMS home [ecu.edua.au], Funnelback and search overlay
- webCMS `Landing page - Search Panel #1028865`
- Funnelback file `ecu-web/Profile-main/project.ftl`
- search overlay built using `src/js/modules/SearchEnquireModule.js`
*/
.search-form {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  inline-size: calc(100% + var(--section-inline) * 2);
  max-inline-size: calc(100% + var(--section-inline) * 2);
  margin-inline: calc(var(--section-inline) * -1);
}
@media (min-width: 50em) {
  .search-form {
    --component-background-color: var(--color-white);
    inline-size: 100%;
    max-inline-size: var(--component-inline-size-s);
    margin-inline: auto;
  }
}

.search-form-courses,
.search-form-courses + .search-suggestions-wrapper {
  --component-inline-size-s: var(--component-inline-size); /* Figma is 680px, this is set to nearest existing value */
  inline-size: 100%;
  max-inline-size: var(--component-inline-size-s);
  margin-inline: auto;
}

.search-form input:focus-visible,
.search-submit:focus-visible {
  outline-offset: -0.125rem;
}
@media (min-width: 50em) {
  .search-form input:focus-visible,
  .search-submit:focus-visible {
    outline-offset: 0.125rem;
  }
}

.search-submit {
  z-index: 1;
  -webkit-box-ordinal-group: 2;
      -ms-flex-order: 1;
          order: 1;
  -ms-flex-preferred-size: 3.5rem;
      flex-basis: 3.5rem;
  -ms-flex-negative: 1;
      flex-shrink: 1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.search-submit svg {
  padding-inline: var(--space) var(--space-l);
}

/* matches style on .autocomplete__menu */
.search-suggestions-wrapper {
  position: relative; /* matches `.autocomplete__menu--overlay` */
  z-index: 1; /* sit above subsequent sections */
  inline-size: calc(100% + var(--section-inline) * 2);
  max-inline-size: calc(100% + var(--section-inline) * 2);
  -webkit-margin-before: 0;
          margin-block-start: 0; /* override any `stack` classes */
  margin-inline: calc(var(--section-inline) * -1);
}
@media (min-width: 50em) {
  .search-suggestions-wrapper {
    inline-size: 100%;
    max-inline-size: var(--component-inline-size-s);
    margin-inline: auto;
  }
}

.search-suggestions {
  position: absolute; /* prevent distortions, matches `.autocomplete__menu--overlay` */
  overflow-x: hidden;
  max-block-size: 342px; /* matches `.autocomplete__menu` */
  inline-size: 100%;
  -webkit-box-shadow: var(--drop-shadow);
          box-shadow: var(--drop-shadow);
  -webkit-padding-before: var(--space);
          padding-block-start: var(--space);
  text-align: start;
}
.search-suggestions small {
  margin-inline: var(--space-l);
}
.search-suggestions ul {
  position: relative; /* needed to prevent screen issues, other styles on .autocomplete__menu */
  inline-size: 100%;
  margin-block: 0; /* override browser default `ul` */
  -webkit-padding-start: 0;
          padding-inline-start: 0; /* override browser default `ul` */
}
@media (min-width: 50em) {
  .search-suggestions {
    inset-block-start: var(--space-s);
  }
}

.search-suggestions-option a {
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
}

.search-suggestions-option a,
.search-suggestions-option button {
  padding-block: 0.75rem;
  z-index: 1; /* allows focus state to sit above pseudo elements */
  text-decoration: none;
}

.set-audience {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin-block: 0;
  padding-inline: 0;
  list-style: none;
  max-inline-size: 100%;
}
.set-audience li {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  -ms-flex-preferred-size: 30%;
      flex-basis: 30%;
  max-inline-size: 20rem;
}
@media (min-width: 37.5em) {
  .set-audience {
    padding-inline: var(--section-inline);
  }
}

.set-audience input {
  border: 0;
  clip-path: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  white-space: nowrap;
}

.set-audience label {
  --set-audience-rectangle: 0.375rem;
  --set-audience-triange: 0.625rem;
  position: relative;
  padding-block: var(--space);
  padding-inline: var(--space-s);
  text-decoration: none;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  inline-size: 100%;
  -webkit-transition: background-color var(--transition-time) var(--cubic-bezier), font-weight var(--transition-time) var(--cubic-bezier);
  transition: background-color var(--transition-time) var(--cubic-bezier), font-weight var(--transition-time) var(--cubic-bezier);
}
@media (min-width: 37.5em) {
  .set-audience label {
    padding: var(--padding-xs);
  }
}
.set-audience label::before, .set-audience label::after {
  content: "";
  display: block;
  position: absolute;
  z-index: 4;
  inline-size: 100%;
}
.set-audience label::before {
  background-color: transparent;
  bottom: 0;
  left: 0;
  height: var(--set-audience-rectangle);
  -webkit-transition: background-color var(--transition-time) var(--cubic-bezier);
  transition: background-color var(--transition-time) var(--cubic-bezier);
}
.set-audience label::after {
  bottom: var(--set-audience-rectangle);
  left: calc(50% - var(--set-audience-triange));
  block-size: var(--set-audience-triange);
  inline-size: calc(2 * var(--set-audience-triange));
  background-image: url("data:image/svg+xml,%3Csvg viewBox=%270 0 20 10%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath d=%27M0 10H20L10 0L0 10Z%27 fill=%27%2326b298%27/%3E%3C/svg%3E");
  visibility: hidden;
  opacity: 0;
  -webkit-transition: opacity var(--transition-time) var(--cubic-bezier);
  transition: opacity var(--transition-time) var(--cubic-bezier);
}

.set-audience input:checked + label {
  background-color: var(--color-tertiary);
  font-weight: 500;
}

.set-audience input:checked + label::before {
  background-color: var(--color-accent);
}

.set-audience input:checked + label::after {
  visibility: visible;
  opacity: 1;
}

.set-audience input:focus-visible + label {
  outline: var(--space-xs) solid var(--color-focus-visible);
  outline-offset: -0.25rem;
}

.set-audience-icon {
  -webkit-margin-before: 0;
          margin-block-start: 0;
  font-size: 2.5rem;
  -webkit-transition: color var(--transition-time) var(--cubic-bezier);
  transition: color var(--transition-time) var(--cubic-bezier);
  color: var(--color-teal-700);
}

.set-audience input:checked + label .set-audience-icon {
  color: var(--color-accent);
}

/* Dynamic Viewport Units
Use dvh for the browser to adapt to the mobile device's hidden tabs while scrolling.
It works the similar way for width with dvw, lvw and svw units.
Google explanation video: https://youtu.be/Xy9ZXRRgpLk?t=982 */
.site-overlay {
  position: fixed; /* prevents screen from scrolling beyound `site-overlay` */
  inset: 4.5rem 0 0;
  inline-size: 100vw;
  min-block-size: calc(100dvh - 4.5rem); /* adapt to the mobile device's hidden tabs  */
  -webkit-transition: top 0.5s var(--cubic-bezier);
  transition: top 0.5s var(--cubic-bezier);
  z-index: 9;
}

@media (min-width: 64.0625em) {
  .site-overlay:not(.site-overlay-search) {
    inset-block-start: max(20vh, 4.5rem);
    block-size: min(80vh, 100vh - 4.5rem);
  }
}

/* Warning! Test any changes directly on your device
Test the quick links menu and opening/ closing menu tabs
local testing is available at https://{ip.address}:{port} (example https://10.200.46.14:8080)
*/
.site-overlay-inner {
  block-size: 100%;
  inline-size: 100vw;
  overflow-y: auto;
}

/* Adjust layout on global menu, mobile view */
.site-overlay .inline-scroll-wrapper,
.site-overlay .inline-scroll,
.site-overlay .pill-list {
  --inline-scroll-element: 0.75rem;
}

.site-overlay .inline-scroll-wrapper {
  margin-inline: var(--inline-scroll-element);
}

.site-overlay .pill-list {
  padding-block: var(--space-xl) var(--space);
}

/* Shown behind `site-overlay` */
.site-overlay-background {
  position: fixed;
  inset: 0; /* logical property for top, right, bottom, left */
  block-size: 100dvh; /* dynamic view height */
  z-index: 4;
}

.skipLinks {
  left: -999px;
  position: absolute;
  top: auto;
  width: 1px;
  height: 1px;
  overflow: hidden;
  z-index: -1;
}
.skipLinks:focus-visible, .skipLinks:active {
  color: var(--color-white);
  background-color: var(--color-black-800);
  left: 50%;
  top: 1rem;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  width: 18rem;
  height: auto;
  overflow: auto;
  padding: 0.5rem;
  text-align: center;
  z-index: 6;
}

.sticky-course-compare {
  position: fixed;
  z-index: 8;
  bottom: var(--space-s);
  left: var(--space-s);
  padding-block: var(--space);
  padding-inline: var(--space-s);
  inline-size: auto;
  max-inline-size: 5.5rem;
}
.sticky-course-compare span {
  font-weight: 500;
  font-size: var(--font-s);
  line-height: 1rem;
}
.sticky-course-compare svg {
  color: var(--addtocompare-heart-color);
}
@media (min-width: 37.5em) {
  .sticky-course-compare {
    inset: 25vh 0 auto auto;
  }
}

/*
Used on home page
Content container template: In Page - Explore Study Areas #tbc

@example html
<ul class="study-area-list">
 <li><a href="#">{study-area}</a></li>
 <li><a href="#">{study-area}</a></li>
</ul>
*/
.study-area-list {
  display: grid;
  gap: 0 var(--space-l);
  grid-template-columns: 100%;
  max-inline-size: 100%;
  -webkit-padding-start: 0;
          padding-inline-start: 0;
  list-style: none;
}
.study-area-list a {
  position: relative;
  inline-size: 100%;
  max-inline-size: 100%;
  padding-block: var(--space-s);
  -webkit-padding-end: var(--space-l);
          padding-inline-end: var(--space-l);
}
.study-area-list svg {
  position: absolute;
  inset-block-start: calc(50% - 0.5em);
  inset-inline-end: 0;
}
@media (min-width: 37.5em) {
  .study-area-list {
    grid-template-columns: repeat(2, 1fr);
    max-inline-size: 58.5rem;
    margin-inline: auto;
  }
}
@media (min-width: 64.0625em) {
  .study-area-list {
    grid-template-columns: repeat(3, 1fr);
  }
}

.study-area-list li {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  block-size: 4rem;
  inline-size: 100%;
  max-inline-size: 100%;
}
.study-area-list li:not(:last-of-type) {
  -webkit-border-after: 0.125rem solid var(--color-black-050);
          border-block-end: 0.125rem solid var(--color-black-050);
}
@media (min-width: 64.0625em) {
  .study-area-list li:nth-last-of-type(2), .study-area-list li:nth-last-of-type(3) {
    -webkit-border-after: 0;
            border-block-end: 0;
  }
}

.table-responsive {
  inline-size: 100%;
  overflow-x: auto;
}

.table {
  inline-size: 100%;
  max-inline-size: var(--container-inline-size);
  /* table caption not output on all tables */
}
.table caption {
  margin-block: 0 var(--space-s);
  font-size: var(--font-heading-xxs); /* used as a de facto H4 element on Course and Unit Set pages */
  font-weight: 500;
  text-align: start;
}
.table th {
  vertical-align: middle;
  text-align: start;
}
.table td {
  vertical-align: top;
}
.table .table__col {
  min-inline-size: 10rem;
}
.table .unit,
.table .table__colNarrow {
  min-inline-size: 7.3125em;
}
.table .points {
  min-inline-size: 8.125em;
}
.table .unit,
.table .points {
  inline-size: 20%;
}
.table .description {
  inline-size: 60%;
  min-inline-size: 16em;
}

.table-bordered th,
.table-bordered td {
  border: 0.125rem solid var(--color-tertiary);
  padding-block: 0.5625rem;
  padding-inline: clamp(var(--space-s), 0.1693rem + 1.278vw, var(--space));
  overflow-wrap: normal;
}

.table-bordered th {
  background-color: var(--color-black-100);
}

.table-col-dates {
  inline-size: 30%;
  min-inline-size: 12.5rem;
}

.table-sort {
  inline-size: 100%;
  max-inline-size: var(--measure);
  overflow-x: auto;
}
.table-sort th {
  position: relative;
  cursor: pointer;
}
.table-sort th::after {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  right: 0.5rem;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  border-width: 0 0.5rem 0.5rem;
  border-style: solid;
  border-color: var(--color-tertiary) transparent;
  opacity: 0.4;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}
.table-sort th[aria-sort=ascending]::after {
  border-bottom: 0;
  border-width: 0.5rem 0.5rem 0;
  border-color: var(--color-tertiary) transparent;
  opacity: 1;
}
.table-sort th[aria-sort=descending]::after {
  border-color: var(--color-tertiary) transparent;
  opacity: 1;
}

.table-sort-title {
  width: 60%;
  min-width: 16em;
}

.table-sort-col {
  width: 20%;
  min-width: 20ex;
}

.tabs {
  display: grid;
  grid-template-areas: "tablist" "tabcontent";
  grid-template-columns: 100%;
  grid-template-rows: -webkit-min-content 1fr;
  grid-template-rows: min-content 1fr;
  block-size: 100%;
}

.tabs-navigation {
  grid-template-areas: "tablist tablist" "tabcontent quicklinks";
  grid-template-columns: 1fr calc(27ex + var(--section-inline) + var(--section-block-s));
  block-size: 100%;
}

.tabs [role=tablist] {
  grid-area: tablist;
  background-color: var(--color-white);
  -webkit-padding-start: var(--section-inline);
          padding-inline-start: var(--section-inline);
  margin: 0;
  list-style: none;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 0.25rem;
}

.tabs [role=tab] {
  display: block;
  -webkit-margin-after: 0;
          margin-block-end: 0;
  border-radius: var(--border-radius) var(--border-radius) 0 0;
  padding: 1rem var(--section-block-s);
  text-decoration: none;
}
.tabs [role=tab][aria-selected=true] {
  background-color: var(--color-ecru);
  position: relative;
}
.tabs [role=tab]:focus-visible {
  outline-offset: -0.5rem;
}
.tabs [role=tab][aria-selected=true]::after {
  content: "";
  background-color: var(--color-primary);
  block-size: 0.25rem;
  inline-size: calc(100% - 5rem);
  position: absolute;
  bottom: 0.25rem;
  left: 2.5rem;
}

.tabs-navigation [role=tabpanel] {
  padding-inline: calc(var(--section-inline) + var(--section-block-s)) var(--section-block-s);
}

.tabs [role=tabpanel] {
  grid-area: tabcontent;
  padding-block: var(--section-block-s);
  grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
  grid-auto-rows: -webkit-min-content;
  grid-auto-rows: min-content;
  gap: var(--section-block-s);
  overflow-y: scroll;
}
.tabs [role=tabpanel]:focus-visible {
  outline-offset: -0.25rem;
}

.tabs-list ul {
  list-style-type: none;
  -webkit-padding-start: 0;
          padding-inline-start: 0;
  min-inline-size: 8rem;
}

.tab-quick-links {
  grid-area: quicklinks;
  position: relative;
  padding-inline: var(--section-block-s) var(--section-inline);
  padding-block: var(--section-block-s);
}
.tab-quick-links ul {
  list-style-type: none;
  -webkit-padding-start: 0;
          padding-inline-start: 0;
}
.tab-quick-links li a {
  display: block;
}
.tab-quick-links::before, .tab-quick-links::after {
  display: none;
}

.tab-accordion {
  inline-size: 100vw;
  max-inline-size: 100vw;
  margin: 0;
}

.tab-accordion .accordion-body-open {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  overflow-x: auto;
  padding: 1.5rem;
  -webkit-transition: all 0.2s ease-in, padding 0s;
  transition: all 0.2s ease-in, padding 0s;
  gap: var(--section-block-s);
}

.tab-accordion .accordion-item {
  max-inline-size: 100%;
}

.tab-accordion .accordion-title {
  padding-inline: var(--space);
  max-inline-size: 100%;
}
.tab-accordion .accordion-title::before {
  right: 0.9rem;
}
.tab-accordion .accordion-title::after {
  right: 1.25rem;
}

/* Student stories (testimonials), used throughout future students */
.testimonial {
  display: grid;
  gap: var(--space);
  text-align: start; /* override `center` class on section */
  padding-inline: 0.125rem; /* remove vertical line rendering issue */
}
@media (min-width: 37.5em) {
  .testimonial {
    grid-template-columns: repeat(2, 1fr);
    gap: var(--padding-clamp-m);
  }
}

.toolTip {
  font-size: 1rem;
}
.toolTip svg {
  color: var(--color-black-400);
}

.wrapper-aside {
  position: relative;
}
@media (min-width: 65em) {
  .wrapper-aside {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "content";
  }
}

.wrapper-aside-inline-start .section {
  -webkit-padding-start: var(--section-inline-with-panel);
          padding-inline-start: var(--section-inline-with-panel);
}

.wrapper-aside-inline-end .section {
  -webkit-padding-end: var(--section-inline-with-panel);
          padding-inline-end: var(--section-inline-with-panel);
}

@media (min-width: 65em) {
  .wrapper-content-sections {
    grid-area: content;
  }
}
.study-area-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--padding) var(--space-l);
}
@media (min-width: 50em) {
  .study-area-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

.video-grid {
  --grid-item-min-inline-size: min(100%, 10rem);
  display: grid;
  gap: var(--grid-layout-gap);
  grid-template-columns: repeat(auto-fill, minmax(max(var(--grid-item-min-inline-size), var(--grid-item-max-inline-size)), 1fr));
  inline-size: 100%; /* set min 100% as used inside `center` parent */
}

/* Responsive YouTube videos (ratio 16:9)

Uses SVG play button in var(--color-primary)
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
 <circle cx="50" cy="50" r="49" fill="#8885e7"/>
 <path fill="#fff" d="M74.1 50.2 34.9 73.7V26.6z"/>
</svg>
*/
.videoResponsive {
  position: relative;
  inline-size: 100%; /* needed for `.center` parent, do not update without testing in modal! */
  max-inline-size: 100%; /* override default var(--measure), required for Super Content URL loader */
  overflow: hidden;
  background: var(--color-black);
  aspect-ratio: 16/9;
}
.videoResponsive iframe {
  position: absolute;
  inset: 0;
  block-size: 100%;
  max-inline-size: 100%; /* override default var(--measure), required for Super Content URL loader */
  inline-size: 100%;
  background: transparent;
}
.videoResponsive img {
  -o-object-fit: cover;
     object-fit: cover;
  inset: 0;
  margin: auto !important;
  max-inline-size: 100%; /* override default var(--measure), required for Super Content URL loader */
  inline-size: 100%; /* required where thumbnail is smaller than video area */
  position: absolute;
  border: 0;
  cursor: pointer;
  -webkit-transition: 0.4s all;
  transition: 0.4s all;
}
.videoResponsive img:hover {
  -webkit-filter: brightness(75%);
          filter: brightness(75%);
}
.videoResponsive .play {
  block-size: 4.5rem;
  inline-size: 4.5rem;
  inset-inline-start: 50%;
  inset-block-start: 50%;
  -webkit-margin-start: -2.25rem;
          margin-inline-start: -2.25rem;
  -webkit-margin-before: -2.25rem;
          margin-block-start: -2.25rem;
  position: absolute;
  background-image: url("data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 100 100\"><circle cx=\"50\" cy=\"50\" r=\"49\" fill=\"%2326b298\"/><path fill=\"%23fff\" d=\"M74.1 50.2 34.9 73.7V26.6z\"/></svg>");
  cursor: pointer;
  pointer-events: none; /* Prevent .play:hover affecting img:hover */
}

/* Responsive YouTube shorts (ratio 9:16) 
    Extends .videoResponsive
*/
.videoResponsive.video-vertical {
  aspect-ratio: 9/16;
  inline-size: 100%;
}
.videoResponsive.video-vertical img {
  aspect-ratio: 9/16;
  block-size: 100%; /* Required for Firefox else poster shown at 16/9 */
}

.video-vertical-wrapper {
  position: relative;
  inline-size: 100%;
  max-inline-size: 400px; /* Required for Safari - do not use inline-size min() */
}

.video-vertical-caption {
  position: absolute;
  inset-block-end: var(--space);
  inset-inline: var(--space);
  padding: var(--space);
  pointer-events: none;
  margin-block: 0;
}

.gdprBanner {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  color: var(--color-white);
  padding: var(--padding) var(--section-inline);
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row wrap;
          flex-flow: row wrap;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

/* Used in CareerFinderModule, NavigationModule and in webCMS

@example html
<ul class="pill-list">
  <li>
    <a href="#" class="pill background-{color} heading-xxs">{title}</a>
  </li>
  <li class="pill background-{color} heading-xxs" disabled>{title}</li>
</ul>
*/
.pill {
  display: inline-block;
  border: 0.125rem solid var(--component-background-color); /* set a default border */
  border-radius: var(--space-l);
  padding-block: 0.375rem; /* border + padding = creates a pill with tap targer of 40px */
  padding-inline: 0.875rem;
  white-space: nowrap;
  text-decoration: none;
  font-weight: 500;
}
.pill-border {
  border-color: var(--component-text-color); /* change border colour */
}
.pill-s {
  padding-block: 0.125rem;
  padding-inline: 0.5rem;
  font-size: var(--font-s);
}
.pill[disabled] {
  --component-text-color: var(--component-disabled-text-color);
}

.pill-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: var(--space-s);
  margin-block: var(--space-s);
  -webkit-padding-start: 0;
          padding-inline-start: 0;
  list-style-type: none;
}

@media (min-width: 65em) {
  .section .pill-list-wide {
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
}

@media (min-width: 37.5em) {
  .section .pill-list:not(.pill-list-wide) {
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
}

.feature-grid {
  display: grid;
  gap: var(--space-l);
  grid-template-columns: 100%;
  grid-template-rows: repeat(3, -webkit-min-content);
  grid-template-rows: repeat(3, min-content);
  inline-size: 100%;
  text-align: start;
}

.apply {
  grid-area: apply;
}

.offer {
  grid-area: offer;
}

.scholarship {
  grid-area: scholarship;
}

.research-introduction {
  grid-area: research-introduction;
}

.research-feature {
  grid-area: research-feature;
}

.feature-grid-apply {
  grid-template-areas: "apply" "offer" "scholarship";
}
@media (min-width: 50em) {
  .feature-grid-apply {
    grid-template-areas: "apply offer" "scholarship scholarship";
    grid-template-columns: 1fr 1fr;
    grid-template-rows: repeat(2, -webkit-min-content);
    grid-template-rows: repeat(2, min-content);
  }
}
@media (min-width: 65em) {
  .feature-grid-apply {
    grid-template-areas: "apply offer" "apply scholarship";
    gap: var(--padding-s);
  }
}

.feature-grid-research {
  grid-template-areas: "research-introduction" "research-feature" ".";
}

@media screen and (width >= 1220px) {
  .feature-grid-research-corporate {
    grid-template-areas: "research-introduction research-feature" "research-introduction .";
    grid-template-columns: 1fr 1fr;
    grid-template-rows: minmax(20rem, -webkit-min-content);
    grid-template-rows: minmax(20rem, min-content);
    gap: var(--padding-s);
  }
}

.apply {
  --grid-item-min-inline-size: min(100%, 24rem);
}

.offer {
  --grid-item-min-inline-size: min(100%, 17.5rem);
}

.offer .card-text {
  -webkit-box-ordinal-group: 2;
      -ms-flex-order: 1;
          order: 1;
}
@media (min-width: 50em) {
  .offer .card-text {
    -webkit-box-ordinal-group: 1;
        -ms-flex-order: 0;
            order: 0;
  }
}
@media (min-width: 65em) {
  .offer .card-text {
    padding: var(--padding-s);
  }
}

.scholarship {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
@media (min-width: 65em) {
  .scholarship {
    padding: var(--padding-s);
  }
}

.research-feature {
  --grid-item-min-inline-size: min(100%, 17.25rem);
}

.research-feature .card-text {
  -webkit-box-ordinal-group: 2;
      -ms-flex-order: 1;
          order: 1;
}
@media (min-width: 37.5em) {
  .research-feature .card-text {
    -webkit-box-ordinal-group: 1;
        -ms-flex-order: 0;
            order: 0;
  }
}

.research-secondary {
  --grid-item-min-inline-size: min(100%, 14rem);
  display: grid;
  gap: var(--grid-layout-gap);
  grid-template-columns: repeat(auto-fill, minmax(max(var(--grid-item-min-inline-size), var(--grid-item-max-inline-size)), 1fr));
}

.research-secondary img {
  -o-object-fit: cover;
     object-fit: cover;
  inline-size: 100%;
}
@media (min-width: 37.5em) {
  .research-secondary img {
    block-size: 100%;
    max-block-size: 8.25rem;
  }
}

.apply .card-text,
.research-introduction .card-text {
  -ms-flex-item-align: self-start;
      align-self: self-start; /* override `.feature-panel .card-text` */
}

.signpost ul {
  list-style: none;
  -webkit-padding-start: 0;
          padding-inline-start: 0;
  text-align: start;
}

.content-panel-pathway {
  z-index: 0;
}
.content-panel-pathway ul {
  font-size: var(--font-s);
  text-align: start;
}

.content-panel-pathway > div {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -ms-flex-preferred-size: 100%;
      flex-basis: 100%;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  text-align: center;
}
.content-panel-pathway > div:not(:first-of-type)::before, .content-panel-pathway > div:not(:last-of-type)::after {
  content: "";
  display: block;
  position: absolute;
  top: -1rem;
  right: 0;
  width: 100%;
  height: 2rem;
  background-color: var(--component-background-color);
}
.content-panel-pathway > div:not(:last-of-type)::after {
  z-index: 1;
  top: unset;
  bottom: -0.9375rem;
  clip-path: polygon(100% 0, 100% 15%, 50% 100%, 0 15%, 0 0);
}
@media (min-width: 50em) {
  .content-panel-pathway > div {
    -ms-flex-preferred-size: 33.3333333333%;
        flex-basis: 33.3333333333%;
  }
  .content-panel-pathway > div:not(:first-of-type)::before, .content-panel-pathway > div:not(:last-of-type)::after {
    height: 100%;
    width: 2.0625rem;
    bottom: 0;
    top: 0;
  }
  .content-panel-pathway > div:not(:first-of-type)::before {
    right: unset;
    left: -1.0375rem;
  }
  .content-panel-pathway > div:not(:last-of-type)::after {
    right: -1.0125rem;
    clip-path: polygon(5% 0, 100% 50%, 5% 100%, 0 100%, 0 0);
  }
}

/* Form styles for ECU Forms, very different to our development method, but this is temporary */
.ecu-forms fieldset {
  margin: 0;
  border: 0;
  padding: 0;
}
.ecu-forms legend {
  display: none;
}
.ecu-forms .form-group {
  margin: 0;
  inline-size: 100%;
}
.ecu-forms .control-label {
  display: block;
  font-size: 1.125rem;
  -webkit-margin-before: var(--space);
          margin-block-start: var(--space);
}
.ecu-forms .control-label.xSubmit {
  border: 0;
  clip-path: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  white-space: nowrap; /* 1 */
}
.ecu-forms .control-label.xSubmit:active, .ecu-forms .control-label.xSubmit:focus-visible {
  clip-path: auto; /* 2 */
  height: auto;
  margin: 0;
  overflow: visible;
  position: static; /* 2 */
  width: auto;
  white-space: inherit;
}
.ecu-forms input[type=text], .ecu-forms input[type=email], .ecu-forms input[type=tel], .ecu-forms textarea {
  display: inherit;
  inline-size: 100%;
  margin-inline: 0; /* Stack will set block margins */
  border: 0;
  padding-block: var(--space);
  padding-inline: var(--padding-xs);
  background-color: var(--color-white);
  color: var(--color-black);
}
.ecu-forms select[multiple=multiple] {
  display: inherit;
  inline-size: 100%;
  margin-inline: 0; /* Stack will set block margins */
  border: 0;
  padding-block: var(--space);
  padding-inline: var(--padding-xs);
  background-color: var(--color-white);
  color: var(--color-black);
  padding: 0;
}
.ecu-forms select[multiple=multiple] option {
  padding: 1em;
}
.ecu-forms input[type=submit] {
  display: inline-block;
  position: relative;
  -webkit-margin-before: var(--space);
          margin-block-start: var(--space);
  border: 0.125rem solid var(--color-primary);
  padding-block: var(--space-s);
  padding-inline: var(--space);
  vertical-align: middle;
  text-align: center;
  text-decoration: none;
  font-weight: 500;
  inline-size: -webkit-fit-content;
  inline-size: -moz-fit-content;
  inline-size: fit-content;
}
.ecu-forms input[type=submit]:visited {
  color: currentcolor;
}
.ecu-forms .pristine-error, .ecu-forms .form-error {
  color: var(--color-error);
  padding: 1rem 0;
  font-size: 1.25rem;
}
.ecu-forms .pristine-error {
  bottom: auto;
  top: 0;
  padding-top: 0;
  right: 1rem;
  width: 40%;
  font-size: 0.9rem;
  text-align: right;
}
.ecu-forms .has-danger input, .ecu-forms .has-danger textarea, .ecu-forms .has-danger select[multiple=multiple] {
  border: 0.0625rem solid var(--color-error);
}
.ecu-forms label.radio {
  display: block;
  margin: var(--space-s) 0 0;
}
.ecu-forms label.radio.inline {
  display: inline-block;
  margin-right: 1rem;
}
.ecu-forms label.radio input {
  margin-right: var(--space-s);
}
.ecu-forms .fa-star {
  -webkit-margin-start: var(--icon-space);
          margin-inline-start: var(--icon-space);
}

.securityNotification {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  padding: 1rem 0;
  border-top: 1px solid currentcolor;
  border-bottom: 1px solid currentcolor;
}
.securityNotification__lock {
  height: 3rem;
  width: auto !important;
  margin-right: 1rem;
}

.securityNotification ~ p {
  margin-top: var(--space);
}

.fs-form-background {
  margin: var(--space) 0 0;
}

@media (min-width: 65em) {
  .fs-form-background {
    max-width: 75vw;
  }
}
@media (min-width: 90em) {
  .fs-form-background {
    max-width: 50vw;
  }
}
.remove-from-view {
  border: 0;
  clip-path: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  white-space: nowrap; /* 1 */
}
.remove-from-view:active, .remove-from-view:focus-visible {
  clip-path: auto; /* 2 */
  height: auto;
  margin: 0;
  overflow: visible;
  position: static; /* 2 */
  width: auto;
  white-space: inherit;
}

.formSubmission {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

.formSubmission .span7 {
  -ms-flex-preferred-size: 100%;
      flex-basis: 100%;
}
@media (min-width: 65em) {
  .formSubmission .span7 {
    -ms-flex-preferred-size: 55%;
        flex-basis: 55%;
  }
}

.formSubmission .span5 {
  -ms-flex-preferred-size: 100%;
      flex-basis: 100%;
}
@media (min-width: 65em) {
  .formSubmission .span5 {
    -ms-flex-preferred-size: 45%;
        flex-basis: 45%;
  }
}

.formSubmission .custom-shares {
  margin: 1rem 0;
}

.formSubmission .custom-shares ul {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  list-style: none;
  margin: 0;
  padding: 0;
}

.formSubmission .custom-shares li {
  margin: 0 0.5em;
}

.formSubmission .open-day-facebook {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.formSubmission .open-day-facebook h3 {
  width: 100%;
}

.formSubmission .open-day-facebook svg {
  margin-right: 1rem;
}

.formSubmission .open-day-info ul {
  list-style: none;
  padding: 0;
}

.ecu-forms .form-half-wrap {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}

@media (min-width: 37.5em) {
  .ecu-forms .form-group-half {
    width: calc(50% - 1rem);
  }
}

.ecu-forms .radioWrapper {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  margin-bottom: 1rem;
}
.ecu-forms .radioWrapper label {
  margin-left: 1rem;
}

.ecu-forms .eventType {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: baseline;
      -ms-flex-align: baseline;
          align-items: baseline;
}
.ecu-forms .eventType label {
  margin-right: 1rem;
}

.ecu-forms .noSessionWarning strong {
  font-size: 1.125rem;
}

.ecu-forms .checkbox {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  margin: var(--space) 0 0;
}
.ecu-forms .checkbox input[type=checkbox] {
  opacity: 1;
  width: auto;
  height: auto;
  margin: 0.25rem 0.5rem 0 0;
}
.ecu-forms .checkbox label {
  position: relative;
  display: inline-block;
  padding-left: 2rem;
}
.ecu-forms .checkbox input[type=checkbox]:focus-visible ~ label {
  outline: 0.25rem solid var(--color-focus-visible);
  outline-offset: 0.25rem;
}

.link-tree {
  -webkit-padding-after: var(--padding-clamp-m);
          padding-block-end: var(--padding-clamp-m);
  min-height: 100vh;
}
.link-tree main {
  inline-size: 70vw;
  max-inline-size: var(--measure);
}
.link-tree .links {
  list-style: none;
  inline-size: 100%;
  max-inline-size: 100%;
  padding: 0;
}
.link-tree .button {
  inline-size: 100%;
}

.link-tree-logo {
  inline-size: 7rem;
}

.link-tree-social-icons {
  list-style: none;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: var(--space);
  -webkit-padding-start: 0;
          padding-inline-start: 0;
  font-size: 1.5rem;
}

/* Search hero banner */
.section-search-banner {
  -webkit-padding-after: 0;
          padding-block-end: 0;
}
@media (min-width: 50em) {
  .section-search-banner {
    --component-background-color: var(--color-black);
    --component-text-color: var(--color-white);
    -webkit-font-smoothing: antialiased; /* WebKit (caniuse.com/font-smooth) */
    -moz-osx-font-smoothing: grayscale; /* Firefox (caniuse.com/font-smooth) */
    -webkit-padding-after: var(--section-block-s);
            padding-block-end: var(--section-block-s);
  }
}

.section-search-banner h1 {
  border: 0;
  clip-path: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  white-space: nowrap; /* 1 */
  line-height: 0;
}
.section-search-banner h1:active, .section-search-banner h1:focus-visible {
  clip-path: auto; /* 2 */
  height: auto;
  margin: 0;
  overflow: visible;
  position: static; /* 2 */
  width: auto;
  white-space: inherit;
}
@media (min-width: 50em) {
  .section-search-banner h1 {
    display: block;
    clip-path: rect(0 0 0 0);
    height: unset;
    margin: unset;
    overflow: hidden;
    position: relative;
    width: unset;
    white-space: inherit;
    line-height: var(--font-heading-l-line-height);
  }
}

.section-search-banner .search-form {
  margin-inline: calc(var(--section-inline) * -1);
  inline-size: unset;
  max-inline-size: calc(100% + var(--section-inline) * 2);
}
@media (min-width: 50em) {
  .section-search-banner .search-form {
    --component-background-color: var(--color-white);
    inline-size: 100%;
    max-inline-size: var(--component-inline-size-s);
    -webkit-margin-before: var(--space-l);
            margin-block-start: var(--space-l);
    margin-inline: auto;
  }
}

.section-search-banner input:focus-visible,
.section-search-banner .search-submit:focus-visible {
  outline-offset: -0.125rem;
}
@media (min-width: 50em) {
  .section-search-banner input:focus-visible,
  .section-search-banner .search-submit:focus-visible {
    outline-offset: 0.125rem;
  }
}

.section-search-banner .search-suggestions-wrapper {
  inline-size: calc(100% + var(--section-inline) * 2);
  margin-inline: calc(var(--section-inline) * -1);
}
@media (min-width: 50em) {
  .section-search-banner .search-suggestions-wrapper {
    inline-size: 100%;
    margin-inline: auto;
  }
}

/* Search body section
Add overlay when search is open, applied in `js/modules/AutocompleteModule` */
.section-search-body {
  padding-block: 0 var(--padding-clamp-l); /* no padding on top */
}

.section-search-body::after,
.site-footer::after {
  -webkit-transition: background-color 400ms var(--cubic-bezier);
  transition: background-color 400ms var(--cubic-bezier); /* slow transition out of search-page-active */
}

.search-page-active .section-search-body::after,
.search-page-active .site-footer::after {
  content: "";
  display: block;
  position: absolute;
  inset: 0;
  background-color: var(--color-ecru);
  -webkit-transform: background-color 400ms var(--cubic-bezier);
          transform: background-color 400ms var(--cubic-bezier);
}
@media (min-width: 50em) {
  .search-page-active .section-search-body::after,
  .search-page-active .site-footer::after {
    background-color: var(--color-black);
    opacity: 0.8;
  }
}

/* Career Finder hero */
.career-finder-hero {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}
@media (min-width: 64.0625em) {
  .career-finder-hero {
    padding-block: var(--space) 4.25rem;
    padding-inline: var(--section-inline);
    min-block-size: var(--component-inline-size-s);
  }
}

.career-finder-hero-image {
  position: relative;
  -webkit-margin-before: var(--padding);
          margin-block-start: var(--padding);
  background-size: contain;
  background-position: bottom;
  block-size: var(--hero-banner-block-size); /* 1080/1980 = 54.55% */
}
@media (min-width: 64.0625em) {
  .career-finder-hero-image {
    position: absolute;
    block-size: calc(100% - 2rem);
    inline-size: min(80%, 30rem);
    inset-inline-start: var(--hero-banner-block-size);
    -webkit-margin-before: 0;
            margin-block-start: 0;
  }
}

.career-finder-hero::before {
  content: "";
  display: block;
  position: absolute;
  background-image: url("data:image/svg+xml,<svg width=\"1512\" height=\"407\" viewBox=\"0 0 1512 407\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0 406.64C0 406.64 1298.76 406.638 1512 406.638C1374.3 -39.9839 1057.5 -161.984 598.5 260.517C397.145 445.861 158.4 63.0175 0 406.64Z\" fill=\"%23eff4f2\"/></svg>");
  background-position: bottom center;
  background-size: contain;
  inset-block-start: var(--padding);
  inset-inline-end: 0;
  inline-size: 100vw;
  block-size: var(--hero-banner-block-size); /* 1080/1980 = 54.55% */
}
@media (min-width: 64.0625em) {
  .career-finder-hero::before {
    block-size: 75%;
    inset-block-start: unset;
    inset-block-end: 0;
  }
}

.career-finder-content {
  margin-block: auto;
  background-color: var(--color-ecru);
  padding-inline: var(--section-inline);
  padding-block: var(--padding-s);
  z-index: 1;
}
@media (min-width: 64.0625em) {
  .career-finder-content {
    background-color: transparent;
    padding-inline: 0;
    max-inline-size: var(--hero-content-inline-size);
  }
}

.career-finder-results {
  display: grid;
  gap: var(--padding);
  grid-template-columns: 100%;
}
.career-finder-results > div {
  block-size: -webkit-fit-content;
  block-size: -moz-fit-content;
  block-size: fit-content;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}
@media (min-width: 65em) {
  .career-finder-results {
    grid-template-columns: repeat(auto-fit, minmax(17.25rem, 1fr));
    -webkit-margin-before: var(--space);
            margin-block-start: var(--space);
  }
}

@media (min-width: 65em) {
  .career-finder-results > div:nth-of-type(1) {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
    -webkit-margin-before: -1rem;
            margin-block-start: -1rem;
  }
}

@media (min-width: 65em) {
  .career-finder-results > div:nth-of-type(2) {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
  }
}

@media (min-width: 65em) {
  .career-finder-results > div:nth-of-type(3) {
    -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
            order: 3;
  }
}

.career-finder-matches {
  position: relative;
  margin-inline: auto;
  -webkit-margin-after: var(--space-l);
          margin-block-end: var(--space-l);
  padding-block: var(--padding);
  padding-inline: var(--space-l);
  text-align: center;
  max-inline-size: min(100% - 2 * var(--space-l), 63.75rem);
}
.career-finder-matches::after {
  content: "";
  position: absolute;
  bottom: calc(var(--space-l) * -1 + 1px);
  left: 50%;
  inline-size: calc(var(--space-l) * 2);
  block-size: var(--space-l);
  margin-left: calc(var(--space) * -1);
  background-color: var(--component-background-color);
  clip-path: polygon(0 0, 50% 100%, 100% 0);
}

.career-finder-highlight {
  padding-block: var(--space);
  padding-inline: var(--padding);
}

.career-finder-best-match .career-finder-highlight svg {
  color: var(--color-web-yellow);
}

.career-finder-featured {
  margin-inline: var(--padding);
}
.career-finder-featured hr {
  border-color: var(--color-black-700);
  border-style: solid;
  inline-size: 100%;
  max-inline-size: 100%;
}

.career-finder-featured-job {
  font-size: var(--font-s);
}

.career-finder-course-details li:not(:last-of-type) {
  -webkit-padding-after: var(--space);
          padding-block-end: var(--space);
  -webkit-border-after: 0.125rem solid var(--color-black-700);
          border-block-end: 0.125rem solid var(--color-black-700);
}

.career-finder-footnotes {
  text-align: start;
}

.career-finder-wrapper {
  background-image: url("https://www.ecu.edu.au/__data/assets/image/0007/1037599/career-finder-bg-patten.png"), -webkit-gradient(linear, left top, left bottom, from(var(--color-tertiary)), to(var(--color-tertiary)));
  background-image: url("https://www.ecu.edu.au/__data/assets/image/0007/1037599/career-finder-bg-patten.png"), linear-gradient(var(--color-tertiary), var(--color-tertiary));
  background-repeat: no-repeat, repeat;
  block-size: 100vh;
}
.career-finder-wrapper iframe {
  max-inline-size: unset;
}

/* Event landing page 

Event data is coupled to Try Booking API
*/
.card-try-booking {
  display: grid;
  gap: var(--space);
  grid-template-columns: 100%;
}
.card-try-booking [disabled] {
  color: var(--color-black-200);
}
@media (min-width: 37.5em) {
  .card-try-booking {
    grid-template-columns: 1fr auto;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
}

.try-booking-details {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: var(--space);
  grid-template-columns: 1fr auto;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.try-booking-details > * {
  margin-block: 0; /* apply margins using gap */
}
@media (min-width: 37.5em) {
  .try-booking-details {
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
  }
}

.choose-form {
  inline-size: var(--measure);
  max-inline-size: calc(100vw - var(--padding-xs) * 2);
  margin-inline: auto;
  /* Updates to Auto Complete results */
}
.choose-form > div {
  inline-size: 100%;
}
.choose-form label {
  text-align: center;
}
.choose-form input {
  block-size: 3.5rem; /* force height for autocomplete input */
  background-color: var(--color-ecru);
}
.choose-form .disabled {
  color: var(--component-disabled-text-color);
}
.choose-form .autocomplete__menu {
  inline-size: 100%; /* override `autocomplete__menu` set in main theme, this input does not have a search button */
}
.choose-form .autocomplete-category {
  inline-size: 14ch; /* widen to account for longer phrases (Study Area, Study Interest */
  text-align: end;
}

.course-selector-card-list {
  display: grid;
  gap: var(--space-l);
}
@media (min-width: 37.5em) {
  .course-selector-card-list {
    grid-template-columns: 1fr 1fr;
  }
}
.course-selector-card-list .info-table-availability th[scope=row] {
  min-inline-size: 11ch;
}
.course-selector-card-list .info-table {
  --table-border-color: var(--color-black-200);
}

@media (min-width: 37.5em) {
  .course-selector-card-list-span {
    grid-column: 1/3;
  }
}

.article-feature-image {
  max-inline-size: var(--article-inline-size);
  margin-block: 0;
  margin-inline: var(--section-inline-corporate);
}
.article-feature-image small {
  text-align: start;
  max-inline-size: unset;
}

.article-header {
  max-inline-size: var(--container-inline-size);
}

.article-meta {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 0 var(--space-l);
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.article-meta p {
  margin-block: 0;
}

/*
Article social media links + share count

@example html
<div class="article-social">
  <ul>
    <li><i class="{font_awesome}"></i></li>
  </ul>
  <small>150 shares</small>
</div>

*/
.article-social {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: var(--space);
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.article-social ul {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: var(--space-l);
  -webkit-padding-start: 0;
          padding-inline-start: 0;
  list-style: none;
}

.article-read-time {
  position: relative;
  -webkit-margin-start: 0.75rem;
          margin-inline-start: 0.75rem;
}
.article-read-time::before {
  content: "";
  display: block;
  position: absolute;
  background-image: url("data:image/svg+xml,<svg viewBox=\"0 0 2 2\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"1\" cy=\"1\" r=\"1\" /></svg>");
  block-size: 0.25rem;
  inline-size: 0.25rem;
  left: -0.625rem;
  top: 0.5rem;
}

/* Aricle Columns

Displays small article excerpts on Newsroom Category page
the articles inside `article-columns` use a pseudo element for a top border
and use transform to reposition the themselves in the correct position
based on https://medium.com/@mandy.michael/you-dont-need-a-media-query-for-that-1-inline-content-separators-a9c562a597a6

The column layout is built using Macy.js, controlled in `/src/js/modules/MacyModule.js`
*/
.article-columns {
  overflow-y: hidden;
  /* 
  create a pseudo border element and use transform to reposition <article> in the correct place
  based on https://medium.com/@mandy.michael/you-dont-need-a-media-query-for-that-1-inline-content-separators-a9c562a597a6
  */
}
.article-columns > article {
  -webkit-transform: translateY(calc(var(--space-l) * -1));
          transform: translateY(calc(var(--space-l) * -1));
  -webkit-padding-before: var(--space-l);
          padding-block-start: var(--space-l);
}
.article-columns > article::before {
  content: "";
  display: block;
  position: relative;
  top: calc(var(--space-l) * -1);
  block-size: 0.125rem;
  background-color: var(--color-black-050);
}

/* styling for articles that are added in using the "more articles" button */
.article-additional {
  -webkit-transition: var(--transition-s);
  transition: var(--transition-s);
  padding-block: var(--space-l); /* required for Chrome and Firefox */
}

/* Generic classes so that web editors can write directly inside webCMS WYSIWYG */
.article-content {
  font-size: var(--font-article);
  /** Increase spacing for content container elements

  Content Container Templates
   * In Page - Image Gallery #898913
   * In Page - Image #936146
   * In Page - Infographics #933075
   * In Page - Video #932928

  @example html
  <div class="article-media stack">
    {media}
    <small>{caption}</small>
  </div>
  */
  /* Replicate heading styles for WYSIWYG H2, H3, and H4 elements */
}
.article-content .alert-inline,
.article-content .button-group,
.article-content .content-panel {
  font-size: 1rem;
  font-weight: 400;
}
.article-content > * + .alert-inline,
.article-content > * + .article-media,
.article-content > * + .button-group,
.article-content > * + .content-panel,
.article-content > * + h2,
.article-content > * + h3,
.article-content > * + h4 {
  -webkit-margin-before: var(--space-l);
          margin-block-start: var(--space-l);
}
.article-content .article-media {
  -webkit-margin-after: var(--space-s);
          margin-block-end: var(--space-s);
}
.article-content h2 {
  font-size: var(--font-heading-m);
  line-height: var(--font-heading-m-line-height);
}
.article-content h3 {
  font-size: var(--font-heading-s);
  line-height: var(--font-heading-s-line-height);
}
.article-content h4 {
  font-size: var(--font-heading-xs);
  line-height: var(--font-heading-xs-line-height);
}

/* Stack spacing for content hub layouts, 
newsroomCategory #1050968
*/
@media (min-width: 37.5em) {
  .stack-category > * + * {
    --stack: var(--space-xxl); /* pairs with `stack stack-xl` used on Newsroom category and Extra pillar */
  }
}
/* 
Add padding and border on select cards to replicate `.inline-rule`
Variation that displays until tablet
*/
@media (max-width: 37.5em) {
  .child-has-inline-rule-s-category > article,
  .child-has-inline-rule-s > article:not(:last-of-type) {
    -webkit-padding-after: var(--space-l);
            padding-block-end: var(--space-l);
    -webkit-border-after: 0.125rem solid var(--color-black-050);
            border-block-end: 0.125rem solid var(--color-black-050);
  }
}

.articles-grid-content-hub {
  display: grid;
  gap: var(--grid-layout-gap);
  grid-template-columns: 100%;
}

@media (min-width: 65em) {
  .articles-grid-content-hub-featured {
    grid-template-columns: 1fr 0.125rem 1fr;
    grid-template-rows: 100%;
  }
}

@media (min-width: 50em) {
  .articles-grid-content-hub-1 {
    grid-template-columns: 1fr 0.125rem max(var(--component-inline-size-xs), 40%);
    grid-template-rows: 100%;
  }
}

@media (min-width: 50em) {
  .articles-grid-content-hub-2 {
    grid-template-columns: max(var(--component-inline-size-xs), 25%) 0.125rem 1fr;
    grid-template-rows: 100%;
  }
}

@media (min-width: 50em) {
  .articles-grid-content-hub-3 {
    grid-template-columns: 1fr 0.125rem max(var(--component-inline-size-xs), 40%);
    grid-template-rows: 100%;
  }
}

@media (min-width: 65em) {
  .articles-grid-content-hub-4 {
    grid-template-columns: 1fr 0.125rem 1fr;
    grid-template-rows: 100%;
  }
}

@media (min-width: 50em) {
  .articles-grid-content-hub-5 {
    grid-template-columns: 1fr 0.125rem min(var(--component-inline-size-xs), 25%);
    grid-template-rows: 100%;
  }
}

@media (min-width: 37.5em) {
  .articles-grid-content-hub-s {
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: 100%;
  }
}

.articles-grid-span {
  inline-size: 100%;
  max-inline-size: 100%;
  block-size: 0.125rem;
  border: 0;
  background-color: var(--component-background-color);
}

@media (min-width: 50em) {
  .articles-grid-span-s {
    inline-size: 0.125rem;
    block-size: 100%;
  }
}

@media (min-width: 65em) {
  .articles-grid-span-l {
    inline-size: 0.125rem;
    block-size: 100%;
  }
}

.card-feature-grid-supplementary {
  --grid-item-min-inline-size: min(100%, 12rem);
  display: grid;
  gap: var(--grid-layout-gap);
  /* stylelint-disable max-nesting-depth */
  /* stylelint-enable max-nesting-depth */
}
@media (min-width: 37.5em) {
  .card-feature-grid-supplementary {
    grid-template-columns: repeat(auto-fill, minmax(max(var(--grid-item-min-inline-size), var(--grid-item-max-inline-size)), 1fr));
  }
}
@media (min-width: 90em) {
  .card-feature-grid-supplementary img {
    aspect-ratio: 4/3;
    -o-object-fit: cover;
       object-fit: cover;
  }
}

/* Used on Extra Pillar and Themes when there is only one article */
.card-extra-single-article {
  display: grid;
  gap: var(--grid-layout-gap-xl); /* match gap used in extra articles grid */
}
@media (min-width: 37.5em) {
  .card-extra-single-article {
    grid-template-columns: repeat(2, 1fr);
  }
}

.card-inline {
  display: grid;
  gap: var(--grid-layout-gap);
  grid-template-columns: repeat(auto-fill, minmax(max(var(--grid-item-min-inline-size), var(--grid-item-max-inline-size)), 1fr));
}
@media (min-width: 37.5em) {
  .card-inline {
    grid-template-columns: min(35%, var(--component-inline-size-xs)) 1fr;
  }
}

.card-floated-image > img {
  inline-size: clamp(7.0625rem, 35%, 10rem);
  float: right;
  -webkit-margin-start: var(--space);
          margin-inline-start: var(--space);
  -webkit-margin-after: var(--space-s);
          margin-block-end: var(--space-s);
}

.card-floated-image > * {
  margin-block: 0;
}

.card-floated-image > p {
  -webkit-margin-before: var(--space);
          margin-block-start: var(--space);
}

.card-floated-image > small {
  display: block;
  -webkit-margin-after: var(--space-s);
          margin-block-end: var(--space-s);
}

@media (min-width: 37.5em) {
  .card-floated-image-s {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
  .card-floated-image-s > img {
    inline-size: 100%;
    float: none;
    -webkit-margin-start: 0;
            margin-inline-start: 0;
    -webkit-margin-after: var(--space);
            margin-block-end: var(--space);
    -webkit-box-ordinal-group: 0;
        -ms-flex-order: -1;
            order: -1;
  }
}
@media (max-width: 37.5em) {
  .card-floated-image-l {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
  .card-floated-image-l > img {
    inline-size: 100%;
    float: none;
    -webkit-margin-start: 0;
            margin-inline-start: 0;
    -webkit-margin-after: var(--space);
            margin-block-end: var(--space);
    -webkit-box-ordinal-group: 0;
        -ms-flex-order: -1;
            order: -1;
  }
}
.card-article-authors {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: var(--grid-layout-gap);
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
}
.card-article-authors img {
  -ms-flex-preferred-size: 25%;
      flex-basis: 25%;
  max-inline-size: 6.25rem;
}

/* Generic layout for extra articles grid, changes at mobile size
  This layout is designed to adapt the grid structure for different screen sizes,
  ensuring optimal presentation of articles in the content hub.
  Used as a base class for specific article counts.
*/
.extra-articles-grid {
  display: grid;
  gap: var(--grid-layout-gap-xl); /* default gap, overwritten for 4, 5 & 6 article layouts */
  grid-template-columns: 100%;
}
@media (min-width: 37.5em) {
  .extra-articles-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* Category with 3 articles */
.extra-3-articles-grid {
  /* stylelint-disable max-nesting-depth */
  /* stylelint-enable max-nesting-depth */
}
@media (min-width: 37.5em) {
  .extra-3-articles-grid {
    grid-template-areas: "article-1 article-1" "article-2 article-3";
  }
  .extra-3-articles-grid > :first-child {
    grid-area: article-1;
  }
  .extra-3-articles-grid > :nth-child(2) {
    grid-area: article-2;
  }
  .extra-3-articles-grid > :nth-child(3) {
    grid-area: article-3;
  }
}
@media (min-width: 65em) {
  .extra-3-articles-grid {
    grid-template-columns: repeat(3, 1fr);
    grid-template-areas: "article-1 article-2 article-3";
  }
}

/* Category with 4 articles */
.extra-4-articles-grid {
  gap: var(--grid-layout-gap); /* reduce gap for 4 article layout to match Figma */
}
@media (min-width: 65em) {
  .extra-4-articles-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

/* Category with 5 articles */
.extra-5-articles-grid {
  gap: var(--grid-layout-gap); /* reduce gap for 5 article layout to match Figma */
  /* stylelint-disable max-nesting-depth */
  /* stylelint-enable max-nesting-depth */
}
@media (min-width: 37.5em) {
  .extra-5-articles-grid {
    grid-template-areas: "article-1 article-1" "article-2 article-3" "article-4 article-5";
  }
  .extra-5-articles-grid > :first-child {
    grid-area: article-1;
  }
  .extra-5-articles-grid > :nth-child(2) {
    grid-area: article-2;
  }
  .extra-5-articles-grid > :nth-child(3) {
    grid-area: article-3;
  }
  .extra-5-articles-grid > :nth-child(4) {
    grid-area: article-4;
  }
  .extra-5-articles-grid > :nth-child(5) {
    grid-area: article-5;
  }
}
@media (min-width: 65em) {
  .extra-5-articles-grid {
    grid-template-columns: repeat(6, 1fr);
    grid-template-areas: "article-1 article-1 article-1 article-2 article-2 article-2" "article-3 article-3 article-4 article-4 article-5 article-5";
  }
}

/* Category with 6 articles */
.extra-6-articles-grid {
  gap: var(--grid-layout-gap); /* reduce gap for 6 article layout to match Figma */
}
@media (min-width: 65em) {
  .extra-6-articles-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.key-points h2 {
  font-size: var(--font-article);
}
.key-points ul {
  list-style-type: square;
}

.block-end {
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}

.avatar {
  inline-size: 3rem;
  block-size: 3rem;
  border-radius: 100%;
  text-align: center;
  background-color: var(--color-black-700);
  color: var(--component-text-color);
  overflow: hidden;
  border: var(--space-xs) solid var(--color-black-700);
}

.avatar-icon {
  block-size: var(--space-xl);
  -webkit-padding-before: var(--space-s);
          padding-block-start: var(--space-s);
}
.avatar-icon.fa-user {
  -webkit-padding-before: var(--space-s);
          padding-block-start: var(--space-s);
}

.avatar span {
  line-height: var(--space-xl);
}

/*  
* .button-open-day-plan used on Open Day dashboard for 'Edit my plan', and 'Create a plan' buttons.
* Also used on suggested plans - last item 'Create a plan' button
*/
.button-open-day-plan {
  border: 0.125rem dashed var(--color-black-050);
  padding-block: var(--space-m);
  padding-inline: var(--space-l);
  inline-size: auto;
  -webkit-transition: 0.2s all ease-in-out;
  transition: 0.2s all ease-in-out;
}
@media (hover) {
  .button-open-day-plan:hover {
    border-color: var(--color-black-100);
    border-style: solid;
    background-color: var(--color-black-800);
  }
}

/*
*  This additional margin allows the 'Create a plan' button to be in line with the 'Edit my plan' button
*  These buttons are placed in cards using .block-end which justify-content: space-between;
*  'Edit my plan' button has an additional text link below, hence the need for the additonal margin
*/
@media (min-width: 50em) {
  .button-create-plan {
    -webkit-margin-after: 2.4rem;
            margin-block-end: 2.4rem;
  }
}

.card-full-width {
  grid-column-start: 1;
  grid-column-end: -1;
  max-inline-size: none;
}

.dashboard-panel {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: var(--space-xl);
}
@media (min-width: 50em) {
  .dashboard-panel {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center; /* center display when there is only one event */
  }
}

@media (min-width: 50em) {
  .dashboard-panel .card {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 33%;
            flex: 1 1 33%; /* improve display when there are two, rather than three events */
  }
}

.filtered-plans-panel {
  -webkit-margin-before: var(--space-m);
          margin-block-start: var(--space-m);
}
@media (min-width: 64.0625em) {
  .filtered-plans-panel {
    -webkit-margin-before: var(--space-s);
            margin-block-start: var(--space-s);
  }
}

.filtered-results-nav {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  row-gap: 1rem;
}
@media (min-width: 50em) {
  .filtered-results-nav {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    gap: var(--padding);
  }
}

/* override default `button` media query */
.filtered-results-nav .button {
  inline-size: 100%;
}
@media (min-width: 50em) {
  .filtered-results-nav .button {
    inline-size: -webkit-fit-content;
    inline-size: -moz-fit-content;
    inline-size: fit-content;
  }
}

@media (min-width: 64.0625em) {
  .filter-open-day-button {
    display: none;
  }
}

.loading-state {
  position: fixed;
  top: 0;
  left: 0;
  inline-size: 100%;
  block-size: 100%;
  background-color: hsla(207, 100%, 8%, 0.8);
  z-index: 9999;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  color: var(--color-white);
}

.loading {
  inline-size: var(--space-xxl);
  block-size: var(--space-xxl);
  border-radius: 50%;
  border: 10px solid var(--color-white);
  border-top-color: var(--color-primary);
  -webkit-animation: loading 1s linear infinite;
          animation: loading 1s linear infinite;
}

@-webkit-keyframes loading {
  to {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg);
  }
}

@keyframes loading {
  to {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg);
  }
}
.open-day-header {
  display: grid;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: start;
  grid-template-columns: 0 auto var(--padding-l) 0;
  grid-template-rows: auto;
  grid-template-areas: ". steps steps ." ". title avatar ." ". text avatar .";
  row-gap: var(--space-m);
}
@media (min-width: 37.5em) {
  .open-day-header {
    grid-template-columns: var(--padding-m) auto auto var(--padding-m);
    grid-template-areas: ". steps steps avatar" ". title title avatar" ". text text .";
  }
}

.open-day-header-steps {
  grid-area: steps;
}

.open-day-header-title {
  grid-area: title;
}

.open-day-header-text {
  grid-area: text;
}

.open-day-header-avatar {
  grid-area: avatar;
}

@media (min-width: 37.5em) {
  .open-day-header-title,
  .open-day-header-text {
    text-align: center;
    margin-inline: auto;
    max-width: 46rem;
  }
}

.open-day-header-text p {
  max-inline-size: none;
}

.open-day-header-avatar {
  justify-self: end;
}
.open-day-header-avatar button {
  -webkit-border-after: 1px solid var(--component-text-color);
          border-block-end: 1px solid var(--component-text-color);
}
.open-day-header-avatar button:hover {
  border-block-end-color: var(--component-background-color);
}

.open-day-header-title-no-avatar,
.open-day-header-text-no-avatar {
  text-align: center;
  margin-inline: auto;
}

.open-day-header-title-no-avatar {
  grid-column: 1/5;
  grid-row: 2/3;
}
@media (min-width: 37.5em) {
  .open-day-header-title-no-avatar {
    grid-area: title;
  }
}

.open-day-header-text-no-avatar {
  grid-column: 1/5;
  grid-row: 3/4;
}
@media (min-width: 37.5em) {
  .open-day-header-text-no-avatar {
    grid-area: text;
  }
}

.section .pill-list.pill-check-list {
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
}

.pill-check-list input[type=checkbox] {
  position: absolute;
  opacity: 0;
}

.pill-check-list label {
  white-space: unset;
}
.pill-check-list label:hover {
  border-color: var(--color-primary);
  background-color: var(--component-text-color);
  color: var(--component-background-color);
}

.pill-check-list li:has(:focus-visible) {
  outline: var(--space-xs) solid var(--color-focus-visible);
  outline-offset: -0.25rem;
  border-radius: var(--space-l);
}

.pill-check-list input:checked + label {
  background-color: var(--component-text-color);
  color: var(--component-background-color);
}

.pill-check-toggle {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-preferred-size: 100%;
      flex-basis: 100%;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-margin-after: var(--space-l);
          margin-block-end: var(--space-l);
  -webkit-padding-after: var(--space-l);
          padding-block-end: var(--space-l);
  border-bottom: 0.125rem solid var(--color-black-700);
}
.pill-check-toggle h3 {
  margin: 0;
}

.pill-check-reset-group {
  inline-size: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
.pill-check-reset-group .button-text-only {
  margin-block: var(--space-xs);
  inline-size: -webkit-fit-content;
  inline-size: -moz-fit-content;
  inline-size: fit-content;
}

.selected-plans {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-l);
  -webkit-margin-before: var(--space-m);
          margin-block-start: var(--space-m);
}

.selected-plan-notice {
  background-color: var(--color-teal-100);
  padding-block: var(--padding-xs);
  padding-inline: var(--padding-xs);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
.selected-plan-notice > svg {
  -webkit-margin-before: var(--space-xs);
          margin-block-start: var(--space-xs);
}

.selected-plan-content {
  padding-block: var(--padding);
  padding-inline: var(--padding);
}
.selected-plan-content .small {
  font-weight: 500;
}
.selected-plan-content .button-text-only {
  text-align: start;
}

.selected-plan-sessions {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  -webkit-padding-start: 0;
          padding-inline-start: 0;
  list-style-type: none;
}
.selected-plan-sessions input[type=checkbox] {
  position: absolute;
  display: none;
}
.selected-plan-sessions time {
  -webkit-margin-end: 1em;
          margin-inline-end: 1em;
}

/* Used to display progress steps with default, active, and complete

@example html

<ul class="step-progress small">
  <li class="complete">
    <span>Register</span>
    <i class="fa-sharp fa-solid fa-check step-progress-icon"></i>
  </li>
  <li class="active">
    <span>Plan</span>
  </li>
  <li>
    <span>Finalise</span>
  </li>
<ul>

*/
.step-progress {
  counter-reset: step;
  list-style-type: none;
  -webkit-padding-start: 0;
          padding-inline-start: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: 1rem;
}

.step-progress-wrapper {
  width: 100%;
  max-width: 22rem;
  margin-inline: auto;
  z-index: 0;
}

.step-progress li {
  list-style-type: none;
  display: inline-block;
  width: 33%;
  position: relative;
  text-align: center;
  font-weight: 600; /* matches Figma */
}

.step-progress li::before {
  content: counter(step);
  counter-increment: step;
  width: 2rem;
  height: 2rem;
  line-height: 1.7rem;
  border: 2px solid var(--color-white);
  border-radius: 100%;
  color: var(--color-white);
  font-weight: 700; /* matches Figma */
  font-size: var(--font-heading-xxs);
  display: block;
  margin: 0 auto 10px;
  background-color: var(--color-black);
}

.step-progress li::after {
  content: "";
  position: absolute;
  width: 100%;
  height: 2px;
  background-color: var(--color-white);
  top: 1rem;
  left: -50%;
  z-index: -1;
}

.step-progress li:first-child::after {
  content: none;
}

.step-progress li.active,
.step-progress li.complete {
  color: var(--color-primary);
}

.step-progress-icon {
  -webkit-padding-start: 0.25rem;
          padding-inline-start: 0.25rem;
  display: none;
}

.step-progress li.complete .step-progress-icon {
  display: inline-block;
}

.step-progress li.active::before {
  border-color: var(--color-primary);
  color: var(--color-primary);
}

.step-progress li.active::after,
.step-progress li.complete::after {
  background-color: var(--color-primary);
}

.step-progress li.complete::before {
  color: var(--color-black);
  background-color: var(--color-primary);
  border-color: var(--color-primary);
}

.suggested-plans {
  --suggested-plans-grid-min-size: 15rem;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(var(--suggested-plans-grid-min-size), 1fr));
  gap: var(--space-l);
}

/* always show first on mobile */
.suggested-plan-highlight {
  -webkit-box-ordinal-group: 0;
      -ms-flex-order: -1;
          order: -1;
}
@media (width >= 552px) {
  .suggested-plan-highlight {
    -webkit-box-ordinal-group: unset;
        -ms-flex-order: unset;
            order: unset;
  }
}

/* 

`suggested-plan-message`, used with `stack` utility class

@example html

<div class="card card-s stack background-black suggested-plan-message">
  {image}
  {cardtext}
</div>

*/
.suggested-plan-message {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  -ms-flex-line-pack: center;
      align-content: center;
  gap: var(--space-l);
}

.suggested-plan-message img {
  display: none;
}
@media (min-width: 37.5em) {
  .suggested-plan-message img {
    display: block;
    max-inline-size: 4rem;
  }
}

.toggle {
  position: relative;
  inline-size: 7rem;
  display: grid;
}
.toggle:has(:focus-visible) {
  outline: var(--space-xs) solid var(--color-focus-visible);
  outline-offset: var(--space-xs);
}

.toggle-label {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  inline-size: 100%;
}
@media (min-width: 37.5em) {
  .toggle-label {
    inline-size: auto;
  }
}

.toggle-disabled-msg {
  display: none;
}
.toggle-disabled-msg::before {
  content: attr(data-unchecked);
  font-style: italic;
  opacity: 0.8;
}

.toggle-switch {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  position: relative;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  inline-size: 50px;
  block-size: 30px;
  border-radius: 1rem;
  -webkit-transition: background 0.1s, border-color 0.1s;
  transition: background 0.1s, border-color 0.1s;
  background-color: var(--color-black);
}
.toggle-switch::after {
  content: "";
  display: block;
  position: absolute;
  left: 5px;
  border-radius: 100%;
  background-color: var(--color-white);
  inline-size: 20px;
  block-size: 20px;
  -webkit-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out;
  -webkit-transform: translate3d(0, 0, 0);
          transform: translate3d(0, 0, 0);
}

[class^=toggle-] {
  position: relative;
  font-size: 1.1rem;
  -webkit-transition: all 0.3s ease-out;
  transition: all 0.3s ease-out;
}

.toggle-left {
  font-weight: 600;
  inline-size: 1.5rem;
}

.toggle-right {
  text-align: end;
  inline-size: 1.5rem;
}

.toggle-input {
  opacity: 0;
  position: absolute;
  top: 0;
  left: 0;
}

.toggle-input[disabled] ~ label .toggle-switch,
.toggle-input[disabled] ~ label [class^=toggle-] {
  display: none;
}
.toggle-input[disabled] ~ label .toggle-disabled-msg {
  display: block;
}

.toggle-input:checked ~ label .toggle-switch::after {
  -webkit-transform: translate3d(100%, 0, 0);
          transform: translate3d(100%, 0, 0);
}
.toggle-input:checked ~ label .toggle-disabled-msg::before {
  content: attr(data-checked);
}
.toggle-input:checked ~ label .toggle-left {
  font-weight: 400;
}
.toggle-input:checked ~ label .toggle-right {
  font-weight: 600;
}

.filtered-results-wrapper {
  --filter-inline-size: 20rem;
  display: grid;
  gap: var(--space-l);
}
@media (min-width: 64.0625em) {
  .filtered-results-wrapper {
    grid-template-columns: var(--filter-inline-size) 1fr; /* match Figma search results */
    -webkit-column-gap: var(--padding);
       -moz-column-gap: var(--padding);
            column-gap: var(--padding);
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: start;
  }
}

.filtered-results-wrapper-events {
  --filter-inline-size: clamp(20rem, 35%, 31.5rem);
}

.filtered-results-wrapper-open-day {
  --filter-inline-size: clamp(20rem, 35%, 31.5rem);
}

@media (min-width: 64.0625em) {
  .filtered-results-wrapper.stack {
    grid-template-columns: 100%;
  }
}

.breadcrumbs-filter-page {
  -webkit-padding-start: clamp(0rem, -5.2459rem + 8.1967vw, var(--padding));
          padding-inline-start: clamp(0rem, -5.2459rem + 8.1967vw, var(--padding));
}

.filtered-search-tabs {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0.125rem;
}

.filtered-search-results {
  display: grid;
  grid-template-columns: 1fr 8ch;
  margin-inline: calc(var(--section-inline) * -1);
  border-block: 0.125rem solid var(--color-black-050);
  padding-inline: var(--section-inline);
}
@media (min-width: 64.0625em) {
  .filtered-search-results {
    grid-template-columns: 1fr;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    text-align: center;
  }
}

.filtered-search-results p {
  margin-block: 0; /* remove browser default */
  max-inline-size: 100%;
  -webkit-border-end: 0.125rem solid var(--color-black-050);
          border-inline-end: 0.125rem solid var(--color-black-050);
  padding-block: var(--space-s);
}
@media (min-width: 64.0625em) {
  .filtered-search-results p {
    border: 0;
  }
}

.filtered-search-results button {
  -webkit-margin-start: var(--space);
          margin-inline-start: var(--space);
}
@media (min-width: 64.0625em) {
  .filtered-search-results button {
    display: none;
  }
}

.filter-button {
  inline-size: 100%;
  max-inline-size: 100%;
}
@media (min-width: 64.0625em) {
  .filter-button {
    display: none;
  }
}

.filters {
  padding-inline: var(--padding);
  padding-block: var(--padding) var(--padding-l);
  position: fixed;
  z-index: 10;
  left: -100vw;
  top: 0;
  inline-size: 100vw;
  block-size: 100vh;
  -webkit-transition: var(--transition-time) left var(--cubic-bezier);
  transition: var(--transition-time) left var(--cubic-bezier);
  overflow-y: scroll;
}
@media (min-width: 64.0625em) {
  .filters {
    position: relative;
    top: auto;
    left: auto;
    overflow-y: auto;
    z-index: auto;
    padding-block: var(--padding);
    padding-inline: 0;
    inline-size: unset;
    block-size: -webkit-fit-content;
    block-size: -moz-fit-content;
    block-size: fit-content;
  }
}

@media (min-width: 64.0625em) {
  .filters-open-day {
    -webkit-padding-before: 0;
            padding-block-start: 0;
    padding-inline: var(--space-xs);
  }
}

.filter-close-button {
  position: absolute;
  top: var(--padding);
  right: var(--padding);
  -webkit-margin-before: 0;
          margin-block-start: 0;
}
@media (min-width: 64.0625em) {
  .filter-close-button {
    display: none;
  }
}

.filter-close-button-open-day {
  top: var(--space-m);
}

.filters-show-on-mobile {
  left: 0;
  -webkit-transition: var(--transition-time) left var(--cubic-bezier);
  transition: var(--transition-time) left var(--cubic-bezier);
}
@media (min-width: 64.0625em) {
  .filters-show-on-mobile {
    left: auto;
  }
}

/* 
  Reset button for filtered events and search results
  Events filtering only provides
*/
.filter-reset {
  position: absolute;
  inline-size: -webkit-fit-content;
  inline-size: -moz-fit-content;
  inline-size: fit-content;
  -webkit-margin-before: 0;
          margin-block-start: 0;
  inset-inline-end: 0;
  inset-block-end: unset; /* sit inline with first filter heading */
}

.filter-reset-events {
  inset-block-end: 0;
  inline-size: 100%;
  max-inline-size: 100%;
  border-inline: var(--padding) solid var(--color-ecru);
  border-block: var(--space-l) solid var(--color-ecru);
  background-color: var(--component-text-color);
  color: var(--component-background-color);
}
@media (min-width: 64.0625em) {
  .filter-reset-events {
    inline-size: -webkit-fit-content;
    inline-size: -moz-fit-content;
    inline-size: fit-content;
    inset-block-end: unset; /* sit inline with first filter heading */
    border: 0;
    padding: 0;
    background-color: transparent;
    color: var(--component-text-color);
    font-weight: 400;
    text-decoration: underline;
  }
}

.filter-section {
  position: relative; /* assists `.filter-reset` placement */
  -webkit-padding-after: var(--space-l);
          padding-block-end: var(--space-l);
}
.filter-section:not(:last-of-type) {
  -webkit-border-after: 0.125rem solid var(--color-black-050);
          border-block-end: 0.125rem solid var(--color-black-050);
}
.filter-section ul {
  list-style: none;
  -webkit-padding-start: var(--space-s);
          padding-inline-start: var(--space-s); /* create space for focus-visible state */
}
.filter-section li {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: var(--icon-space);
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
}
.filter-section input[type=checkbox] {
  -webkit-margin-before: 0.375rem;
          margin-block-start: 0.375rem;
}

.info-table-search-results {
  --table-border-color: var(--color-black-050);
}
.info-table-search-results th[scope=row] {
  inline-size: 12ch;
}
.info-table-search-results td {
  font-weight: 500;
}

.pagination {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: var(--space);
  max-inline-size: 100%;
  margin-block: 0;
  -webkit-padding-start: 0;
          padding-inline-start: 0;
  list-style-type: none;
}

/* change pill size on layout change 
markup stored in Funnelback main/tabs.ftl */
.pill-search-page {
  padding-block: 0.125rem;
  padding-inline: 0.375rem;
  font-size: var(--font-s);
  line-height: 1rem;
}
@media (min-width: 50em) {
  .pill-search-page {
    padding-block: 0.375rem;
    padding-inline: 0.875rem;
    font-size: 1rem;
    line-height: 1.5rem;
  }
}

.search-results {
  margin-block: 0;
  -webkit-padding-start: 0;
          padding-inline-start: 0;
  list-style-type: none;
  max-inline-size: 100%;
}

/* use `.search-results li` to capture all children elements */
.search-results li {
  margin-inline: calc(var(--section-inline) * -1);
  max-inline-size: unset; /* ensure full width prior to tableLarge breakpoint */
}
@media (min-width: 50em) {
  .search-results li {
    margin-inline: auto;
    inline-size: 100%;
  }
}

.search-results-full-width {
  display: block;
  -ms-flex-item-align: center;
      align-self: center;
}
@media (min-width: 64.0625em) {
  .search-results-full-width {
    grid-column: 1/3;
  }
}

@media (min-width: 37.5em) {
  .search-result-with-image {
    display: grid;
    grid-template-columns: max(35%, 15rem, 20%) 1fr;
  }
}

.search-result-with-image img {
  aspect-ratio: 16/9;
  -o-object-fit: cover;
     object-fit: cover;
  inline-size: 100%;
}
@media (min-width: 37.5em) {
  .search-result-with-image img {
    aspect-ratio: 4/3;
    block-size: 100%;
  }
}

/* 
The idea of shame.scss is that you have a filereserved just for your hacky code.
The code you have to write to get the release out on time, but the code that makes you ashamed.
*/
/*
Additional top margin required for injectable_zone_two content found on 
study and disciple pages. Examples found on: 
study area page - /degrees/study-areas/arts-and-humanities
discipline page - /degrees/study-areas/arts-and-humanities/creative-humanities
*/
.injected-block-start-l {
  -webkit-margin-before: var(--space-l);
          margin-block-start: var(--space-l);
}
