/* Native UI behavior and keyboard feedback. */
[hidden] { display: none !important; }

.tab-link:focus-visible,
.nav-toggle:focus-visible,
.accordion-toggle:focus-visible,
.primary-button:focus-visible,
.secondary-button:focus-visible,
.more-button:focus-visible {
  outline: 3px solid #f4c542;
  outline-offset: 3px;
}

.primary-button-text,
.secondary-button-text {
  display: block;
  transition: transform 500ms cubic-bezier(.215, .610, .355, 1);
}

.primary-button-text.absolute,
.secondary-button-text.absolute { transform: translateY(250%); }

.primary-button-text:not(.absolute),
.secondary-button-text:not(.absolute),
.primary-btn-icon,
.more-button { transform: translate(0, 0); }

.primary-btn-icon { transition: transform 500ms cubic-bezier(.215, .610, .355, 1); }
.more-button { transition: transform 300ms cubic-bezier(.215, .610, .355, 1); }

.secondary-button.search-button {
  background-color: var(--base--text-color);
  color: var(--base--white);
}

.secondary-button.authentication-button {
  width: 100%;
  background-color: var(--primary-color--yellow);
  color: var(--neutral-color--dark);
  appearance: button;
  border: 0;
}

.auth-form-note { display: none; }
.auth-form-note.is-visible { display: block; }

@media (hover: hover) and (pointer: fine) {
  .primary-button:hover .primary-button-text:not(.absolute),
  .secondary-button:hover .secondary-button-text:not(.absolute) { transform: translateY(-250%); }

  .primary-button:hover .primary-button-text.absolute,
  .secondary-button:hover .secondary-button-text.absolute { transform: translateY(0); }

  .primary-button:hover .primary-btn-icon { transform: translateX(1.5rem); }

  .more-button:hover { transform: translateX(.5rem); }

  .single-service-wrap .service-hover-bg {
    transition: opacity .5s ease;
  }

  .single-service-wrap:hover .service-hover-bg,
  .single-service-wrap:focus-within .service-hover-bg { opacity: 1; }

}

.accordion-panel { display: none; }
.accordion[open] > .accordion-panel { display: block; }
.accordion-toggle::marker { content: ""; }
.faq-plus { transition: transform .2s ease; }
.accordion[open] .faq-plus { transform: rotate(45deg); }

.subject-single-details h1 {
  color: var(--neutral-color--dark);
  font-size: var(--_font-sizes---h3);
  margin: 2.5rem 0 1rem;
  font-weight: 600;
  line-height: 130%;
}

.event-single-details h1,
.university-single-details h1 {
  color: var(--neutral-color--dark);
  font-size: var(--_font-sizes---h3);
  margin-bottom: 1rem;
  font-weight: 600;
  line-height: 130%;
}

@media (max-width: 991px) {
  .subject-single-details h1 { margin-top: 1.75rem; }
}

@media (max-width: 767px) {
  .subject-single-details h1 { margin-top: 1.5rem; margin-bottom: .75rem; }
}

.nav-toggle {
  appearance: none;
  border: 0;
  color: inherit;
  cursor: pointer;
  font: inherit;
}

.nav-toggle .menu-close,
.nav-toggle.is-open .menu-bars { display: none; }
.nav-toggle.is-open .menu-close { display: block; }

@media (max-width: 1199px) {
  .navbar-wrapper .navbar-wrap { position: relative; }
  .navbar-wrapper .nav-menu {
    position: absolute;
    z-index: 2;
    top: calc(100% + .5rem);
    left: 0;
    width: 100%;
    max-height: calc(100dvh - 9rem);
    overflow: auto;
    display: none;
    padding: 1.25rem;
    background: var(--neutral-color--dark);
    border-radius: 1.5rem;
    text-align: center;
  }
  .navbar-wrapper .nav-menu.is-open { display: block; }
  .navbar-wrapper .nav-menu-flex { flex-direction: column; gap: 1rem; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}
