/* ============================================================================
   RKonnections interim site — clean interaction layer
   Replaces the dead 4.5MB WordPress/LiteSpeed JS. Vanilla, self-contained.
   Restores: dropdown menus, mobile menu, logo marquee, testimonial/intro
   rotators, search panel, back-to-top. Appearance matches the live site.
   ============================================================================ */

/* ---- Desktop dropdown menus (>=768px) ------------------------------------ */
@media (min-width: 768px) {
  .primary-nav .menu .menu-item-has-children { position: relative; }
  .primary-nav .menu .sub-menu {
    position: absolute; top: 100%; left: 0; min-width: 230px;
    display: block !important;                 /* beat theme display:none */
    opacity: 0; visibility: hidden; transform: translateY(10px);
    transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
    background: #fff; box-shadow: 0 10px 30px rgba(0,0,0,.13);
    border-radius: 8px; padding: 8px 0; margin: 0; list-style: none; z-index: 1000;
  }
  .primary-nav .menu .menu-item-has-children:hover > .sub-menu,
  .primary-nav .menu .menu-item-has-children:focus-within > .sub-menu {
    opacity: 1; visibility: visible; transform: translateY(0);
  }
  .primary-nav .menu .sub-menu > li { display: block; width: 100%; float: none; margin: 0; }
  .primary-nav .menu .sub-menu > li > a {
    display: block; padding: 9px 20px; white-space: nowrap; color: #241d2e;
  }
  .primary-nav .menu .sub-menu > li > a:hover { background: #f4efe6; color: #522e7b; }
}

/* ---- Mobile menu (<=767px) ----------------------------------------------- */
@media (max-width: 767px) {
  #site-navigation {
    display: none; width: 100%; background: #fff;
    box-shadow: 0 12px 24px rgba(0,0,0,.12);
  }
  #site-navigation.nav-open { display: block; }
  #site-navigation .menu { flex-direction: column; display: block; margin: 0; padding: 0; }
  #site-navigation .menu > li { width: 100%; float: none; border-top: 1px solid #eee; }
  #site-navigation .menu > li > a { display: block; padding: 13px 18px; }
  #site-navigation .sub-menu {
    display: none; position: static; box-shadow: none;
    background: #faf7f1; padding: 0; margin: 0; list-style: none;
  }
  #site-navigation .menu-item-has-children.open > .sub-menu { display: block; }
  #site-navigation .sub-menu > li > a { display: block; padding: 11px 34px; }
}

/* ---- University-acceptances logo marquee --------------------------------- */
.university-acceptances-logos { overflow: hidden; width: 100%; }
.university-acceptances-logos .lp-owl-list {
  display: flex !important; flex-wrap: nowrap !important; width: max-content !important;
  align-items: center; margin: 0 !important; padding: 0 !important;
  animation: rk-marquee 45s linear infinite;
}
.university-acceptances-logos:hover .lp-owl-list { animation-play-state: paused; }
.university-acceptances-logos .lp-owl-carousel {
  flex: 0 0 auto !important; width: 170px !important; max-width: 170px !important;
  padding: 0 18px !important; margin: 0 !important; float: none !important;
  display: flex; align-items: center; justify-content: center;
}
.university-acceptances-logos .lp-owl-carousel img {
  max-width: 100%; height: auto; margin: 0 auto;
}
@keyframes rk-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* ---- Fade rotators (.bxslider — intro text + testimonials) --------------- */
.bxslider { position: relative; list-style: none; margin: 0; padding: 0; }
.bxslider > li { transition: opacity .6s ease; }
.bxslider.rk-ready > li { position: absolute; top: 0; left: 0; width: 100%; }
.bxslider.rk-ready > li.rk-active { position: relative; }

/* ---- Search panel -------------------------------------------------------- */
#search-panel {
  display: none; position: fixed; inset: 0; z-index: 9999;
  background: rgba(36,29,46,.92);
}
#search-panel.rk-open { display: flex; align-items: center; justify-content: center; }
#search-panel .search-content { width: min(600px, 90vw); position: relative; }
#search-panel .search-panel-close {
  position: absolute; top: -46px; right: 0; color: #fff; font-size: 34px;
  text-decoration: none; line-height: 1;
}

/* ---- Back-to-top --------------------------------------------------------- */
#scroll-top.backtotop {
  position: fixed; right: 22px; bottom: 22px; z-index: 998;
  opacity: 0; visibility: hidden; transform: translateY(10px);
  transition: opacity .3s ease, transform .3s ease, visibility .3s ease;
}
#scroll-top.backtotop.rk-show { opacity: 1; visibility: visible; transform: translateY(0); }

/* ---- Log In button (the one intentional addition vs. the live site) ------ */
.rk-login-item { display: flex; align-items: center; }
.rk-login-item .rk-login-btn {
  display: inline-block; background: #522e7b; color: #fff !important;
  padding: 9px 22px; border-radius: 6px; font-weight: 600;
  line-height: 1.2; white-space: nowrap; text-decoration: none;
  transition: background .18s ease, transform .18s ease;
}
.rk-login-item .rk-login-btn:hover { background: #6a3f9c; transform: translateY(-1px); }
@media (max-width: 767px) {
  .rk-login-item { padding: 12px 18px; }
  .rk-login-item .rk-login-btn { display: block; text-align: center; }
}

/* ---- Fidelity tweaks vs. the live PUBLIC site ---------------------------- */
/* The services + register band render white for public visitors (LiteSpeed
   trims the CSS); the director prefers the grey from the logged-in view, so we
   restore it to match the intro/mission band colour (#edecf0). */
.vc_custom_1443972453797 { background-color: #edecf0; }              /* services block */
.vc_custom_1443973510157 {                                            /* register band */
  background-color: #edecf0;
  margin-top: 0 !important;
  padding-top: 40px !important;
}

/* Respect reduced-motion */
@media (prefers-reduced-motion: reduce) {
  .university-acceptances-logos .lp-owl-list { animation: none; }
  .bxslider > li { transition: none; }
}
