@media (prefers-reduced-motion: reduce) {
  .hero-slide-parallax .hero-layer {
    transform: none !important;
    will-change: auto;
  }
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
/* Swap to the small logo at 1600px and below (independent of the menu collapse) */
@media (max-width: 1600px) {
  .logo-lg { display: none; }
  .logo-sm { display: block; }
}

@media (max-width: 991.98px) {
  /* Percentage callout/text boxes become full-width on smaller screens.
     A full-hero overlay, when enabled, is already independent of this width. */
  .hero-box.width-25,
  .hero-box.width-33,
  .hero-box.width-50,
  .hero-box.width-75,
  .hero-box.width-100 {
    width: 100%;
  }

  /* Inline callouts collapse to a readable stack on smaller screens while
     preserving their selected left, center, or right alignment. */
  .hero-box.inline_left > .hero-box-inner,
  .hero-box.inline_center > .hero-box-inner,
  .hero-box.inline_right > .hero-box-inner {
    flex-direction: column;
  }
  .hero-box.inline_left > .hero-box-inner > .paragraph,
  .hero-box.inline_center > .hero-box-inner > .paragraph,
  .hero-box.inline_right > .hero-box-inner > .paragraph {
    flex-basis: auto;
    width: 100%;
  }
  .hero-box.inline_left > .hero-box-inner > .paragraph.button,
  .hero-box.inline_center > .hero-box-inner > .paragraph.button,
  .hero-box.inline_right > .hero-box-inner > .paragraph.button {
    width: auto;
  }

  .hero-caption.padding-large {
    --hero-callout-space-y: 2rem;
    --hero-callout-space-x: 1.75rem;
  }
  .hero-caption.has-box-background:not(.background-none) .hero-box-inner {
    padding: 2rem 1.75rem;
  }

  .hero-box.width-auto .hero-title-fit-boundary {
    width: 100%;
  }
  .hero-title-fit {
    line-height: .92;
  }

  .mainbar-collapse {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    color: var(--bs-body-color);
    background: var(--bs-body-bg);
    flex-direction: column;
    align-items: stretch;
    display: none;
    border-top: var(--bs-border-width) solid var(--bs-border-color);
    box-shadow: var(--bs-box-shadow-lg);
  }
  .mainbar-collapse.open { display: flex; }
  .mainmenu { flex-direction: column; align-items: stretch; height: auto; }
  .mainmenu > li { height: auto; }
  .mainmenu > li > a { padding: .85rem 1.25rem; height: auto; }
  .mainbar-collapse .mainmenu > li > a { color: var(--bs-body-color) !important; }
  .mainbar-collapse .mainmenu > li > a:hover { color: var(--bs-link-hover-color) !important; }
  .search-btn { height: 56px; border-left: none; border-top: var(--bs-border-width) solid var(--bs-border-color); }
  .mainbar-collapse .search-btn {
    color: var(--bs-body-color) !important;
    background: var(--bs-tertiary-bg);
  }
  .mainbar-collapse .search-btn:hover {
    color: var(--bs-link-hover-color) !important;
    background: var(--bs-secondary-bg);
  }
  .topbar-nav a span { display: none; } /* icons only on small screens */
  .topbar-nav .no-collapse span { display: inline; }
}


@media (max-width: 991.98px) {
  .hero-program-search-form {
    grid-template-columns: minmax(0, 1fr) minmax(12rem, .65fr);
  }
  .hero-program-search-field-query {
    grid-column: 1 / -1;
  }
}

@media (max-width: 767.98px) {
  .hero-slide-program-finder { min-height: 940px; }
  .hero-slide-program-finder .hero-caption {
    padding-right: 1rem;
    padding-bottom: 22rem;
    padding-left: 1rem;
  }
  .hero-program-search {
    bottom: 1.25rem;
  }
  .hero-program-search.has-background {
    bottom: 0;
  }
  .hero-program-search > .container {
    padding-right: 1rem;
    padding-left: 1rem;
  }
  .hero-program-search-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    width: 100%;
  }
  .hero-program-search-field-query {
    grid-column: auto;
  }
  .hero-program-search-action .btn {
    width: 100%;
  }
}
