/* A quiet motion layer. Content is never hidden while waiting for JavaScript. */
:root { --motion-ease: cubic-bezier(.22, 1, .36, 1); }
.faq details { transition: background-color 250ms ease, box-shadow 250ms ease; }
.faq details[data-expanded="true"] { box-shadow: inset 3px 0 0 var(--gold); }
.faq details[data-animating] { overflow: hidden; }
.faq summary { transition: color 200ms ease, background-color 200ms ease; }
.faq summary:hover { color: #267355; background-color: #073e2c04; }
.faq .plus:after { transition: transform 320ms var(--motion-ease); }
.faq details[data-expanded="false"] .plus:after { transform: rotate(90deg); }
.faq details[data-expanded="true"] .plus:after { transform: rotate(0); }
.hero-art > .hero-students {
  transform: translate3d(var(--scene-x, 0px), var(--scene-y, 0px), 0);
  transition: transform 950ms var(--motion-ease);
}
.programme-card, .contact-option {
  transition: transform 350ms var(--motion-ease), border-color 250ms ease;
}
.brand img { transition: transform 400ms var(--motion-ease); }
.button { transition: background-color 220ms ease, transform 300ms var(--motion-ease); }
.button .icon, .programme-bar .bar-arrow { transition: transform 300ms var(--motion-ease); }
.route-list > a { transition: padding-left 300ms var(--motion-ease); }
.text-link { transition: text-decoration-color 200ms ease; }
.menu-lines { transition: border-color 200ms ease; }
.menu-lines:after { transition: transform 250ms var(--motion-ease); }
.menu-toggle[aria-expanded="true"] .menu-lines:after { transform: rotate(-12deg); }
/* Small silhouettes travel through the open sky, clear of the students. */
.bird-scene { position: absolute; inset: 0 0 auto; height: 19%; overflow: hidden; pointer-events: none; color: #365c4d; }
.bird-flight { position: absolute; top: 42%; left: 0; width: 100%; height: 24px; opacity: .65; transform: translate3d(62%, 0, 0); }
.bird-flight-two { top: 16%; transform: translate3d(76%, 0, 0); opacity: .48; }
.bird { display: block; width: 29px; height: 20px; }
.bird-flight-two .bird { width: 21px; height: 15px; }
.bird-wing { transform-origin: 20px 16px; }
.birds-ready .bird-flight { animation: bird-crossing 22s linear infinite; }
.birds-ready .bird-flight-two { animation-duration: 27s; animation-delay: -11s; }
.birds-ready .bird-wing { animation: bird-wings 2.4s ease-in-out infinite; }
.birds-ready .bird-flight-two .bird-wing { animation-duration: 2.8s; animation-delay: -.9s; }
.birds-out-of-view .bird-flight, .birds-out-of-view .bird-wing { animation-play-state: paused; }
@keyframes bird-crossing {
  0% { transform: translate3d(9%, 9px, 0) rotate(-5deg); opacity: 0; }
  8% { opacity: .58; }
  45% { transform: translate3d(48%, -9px, 0) rotate(2deg); opacity: .65; }
  82% { opacity: .5; }
  96%, 100% { transform: translate3d(94%, -2px, 0) rotate(-3deg); opacity: 0; }
}
@keyframes bird-wings {
  0%, 18%, 72%, 100% { transform: scaleY(1); }
  40% { transform: scaleY(-.45); }
  54% { transform: scaleY(.8); }
}
@media (max-width: 550px) {
  .bird { width: 23px; height: 16px; }
  .bird-flight-two .bird { width: 17px; height: 12px; }
}
@media (hover: hover) and (pointer: fine) {
  .programme-card:hover, .contact-option:hover { transform: translateY(-4px); border-color: #8b9f86; }
  .programme-card-dark:hover { border-color: #a6bd96; }
  .brand:hover img { transform: translateY(-2px); }
  .button:hover .icon, .programme-bar > a:hover .bar-arrow { transform: translateX(4px); }
  .route-list > a:hover { padding-left: 5px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *:before, *:after { animation: none !important; transition: none !important; }
  .hero-art > .hero-students { transform: none; }
  .programme-card:hover, .contact-option:hover, .brand:hover img,
  .button:hover, .button:hover .icon, .programme-bar > a:hover .bar-arrow { transform: none; }
  .route-list > a:hover { padding-left: 0; }
}
