/* ⛓️ CURSOR_ANCHOR:ui:navbar_links */
/* Base nav-link styles - минималистичный */

.navbar .nav-link {
  position: relative;
  transition: color 0.15s ease, background-color 0.15s ease;
  border-radius: 0;
  color: rgb(var(--color-text));
}

/* Icons in nav-link - минималистичный */
.navbar .nav-link .bi {
  transition: color 0.15s ease;
  color: rgb(var(--color-text-subtle));
}

/* Минималистичный hover - только для mobile (desktop использует .nav-item:hover) */
@media (max-width: 991.98px) {
  .navbar .nav-link:hover {
    color: rgb(var(--color-primary));
    background: transparent;
    border-radius: 0;
    box-shadow: none;
  }

  .navbar .nav-link:hover .bi {
    color: rgb(var(--color-primary));
  }
}

/* Dropdown toggle hover */
.navbar .dropdown-toggle:hover {
  color: rgb(var(--color-primary));
  background: transparent;
}

.navbar .dropdown-toggle:hover .bi {
  color: rgb(var(--color-primary));
}

/* Active state - минималистичный */
.navbar .nav-link:active {
  background: rgb(var(--grey-200));
  transition: background-color 0.15s ease;
}

.navbar .nav-link:focus-visible,
.navbar .navbar-toggler:focus-visible,
.navbar .dropdown-item:focus-visible {
  outline: 2px solid rgb(var(--color-primary));
  outline-offset: 2px;
}

/* Lectures link icon animation - кассета заменяется на динамик при hover */
.navbar .lectures-link {
  position: relative;
}

.navbar .lectures-link .lectures-icon-cassette,
.navbar .lectures-link .lectures-icon-speaker {
  position: absolute;
  left: 0.75rem;
  transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s ease;
  width: 1rem;
  text-align: center;
  flex-shrink: 0;
  pointer-events: none;
}

.navbar .lectures-link span {
  margin-left: 1.7rem;
}

.navbar .lectures-link .lectures-icon-cassette {
  opacity: 1;
  visibility: visible;
  transform: scale(1);
}

.navbar .lectures-link .lectures-icon-speaker {
  opacity: 0;
  visibility: hidden;
  transform: scale(0.8);
}

/* Hover state - показываем динамик с анимацией звука */
.navbar .nav-item:hover .lectures-link .lectures-icon-cassette,
.navbar .lectures-link:hover .lectures-icon-cassette {
  opacity: 0;
  visibility: hidden;
  transform: scale(0.8);
}

.navbar .nav-item:hover .lectures-link .lectures-icon-speaker,
.navbar .lectures-link:hover .lectures-icon-speaker {
  opacity: 1;
  visibility: visible;
  transform: scale(1);
  animation: speaker-pulse 1.2s ease-in-out infinite;
}

/* Анимация пульсации динамика (звуковые волны) */
@keyframes speaker-pulse {
  0%, 100% {
    transform: scale(1);
    filter: drop-shadow(0 0 2px rgba(var(--color-primary-active), 0.3));
  }
  25% {
    transform: scale(1.08);
    filter: drop-shadow(0 0 4px rgba(var(--color-primary-active), 0.5));
  }
  50% {
    transform: scale(1.05);
    filter: drop-shadow(0 0 6px rgba(var(--color-primary-active), 0.4));
  }
  75% {
    transform: scale(1.08);
    filter: drop-shadow(0 0 4px rgba(var(--color-primary-active), 0.5));
  }
}

/* Mobile - простая замена без сложной анимации */
@media (max-width: 991.98px) {
  .navbar .lectures-link:hover .lectures-icon-cassette {
    opacity: 0;
    visibility: hidden;
  }
  
  .navbar .lectures-link:hover .lectures-icon-speaker {
    opacity: 1;
    visibility: visible;
    animation: speaker-pulse 1.2s ease-in-out infinite;
  }
}

/* Отключение анимации для пользователей с prefers-reduced-motion */
@media (prefers-reduced-motion: reduce) {
  .navbar .lectures-link .lectures-icon-speaker {
    animation: none !important;
  }
}

/* RON'S ORG link - глобус крутится при hover */
.navbar .ronsorg-link .ronsorg-icon {
  transition: transform 0.3s ease;
  display: inline-block;
}

.navbar .nav-item:hover .ronsorg-link .ronsorg-icon,
.navbar .ronsorg-link:hover .ronsorg-icon {
  animation: globe-spin 2s linear infinite;
}

@keyframes globe-spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

/* Feedback / Bug link - анимация точек (пульсация и покачивание) */
.navbar .feedback-link .feedback-icon {
  transition: transform 0.2s ease;
  display: inline-block;
}

.navbar .nav-item:hover .feedback-link .feedback-icon,
.navbar .feedback-link:hover .feedback-icon {
  animation: feedback-bounce 1s ease-in-out infinite;
}

@keyframes feedback-bounce {
  0%, 100% {
    transform: translateY(0) scale(1);
  }
  25% {
    transform: translateY(-2px) scale(1.05);
  }
  50% {
    transform: translateY(0) scale(1);
  }
  75% {
    transform: translateY(-1px) scale(1.02);
  }
}

/* Mobile поддержка анимаций */
@media (max-width: 991.98px) {
  .navbar .ronsorg-link:hover .ronsorg-icon {
    animation: globe-spin 2s linear infinite;
  }
  
  .navbar .feedback-link:hover .feedback-icon {
    animation: feedback-bounce 1s ease-in-out infinite;
  }
}

/* Language dropdown - анимация переключения языков (вращение + пульсация) */
.navbar .language-link .language-icon {
  transition: transform 0.3s ease;
  display: inline-block;
  transform-origin: center;
}

.navbar .nav-item:hover .language-link .language-icon,
.navbar .language-link:hover .language-icon {
  animation: language-switch 1.5s ease-in-out infinite;
}

@keyframes language-switch {
  0%, 100% {
    transform: rotate(0deg) scale(1);
    filter: drop-shadow(0 0 2px rgba(var(--color-primary-active), 0.3));
  }
  25% {
    transform: rotate(-15deg) scale(1.1);
    filter: drop-shadow(0 0 4px rgba(var(--color-primary-active), 0.5));
  }
  50% {
    transform: rotate(0deg) scale(1.15);
    filter: drop-shadow(0 0 6px rgba(var(--color-primary-active), 0.6));
  }
  75% {
    transform: rotate(15deg) scale(1.1);
    filter: drop-shadow(0 0 4px rgba(var(--color-primary-active), 0.5));
  }
}

/* Анимация при открытом dropdown (show класс) */
.navbar .language-link.show .language-icon,
.navbar .language-link[aria-expanded="true"] .language-icon {
  animation: language-active 1s ease-in-out infinite;
}

@keyframes language-active {
  0%, 100% {
    transform: rotate(0deg) scale(1.1);
    filter: drop-shadow(0 0 4px rgba(var(--color-primary-active), 0.6));
  }
  50% {
    transform: rotate(180deg) scale(1.2);
    filter: drop-shadow(0 0 8px rgba(var(--color-primary-active), 0.8));
  }
}

/* Mobile поддержка анимаций */
@media (max-width: 991.98px) {
  .navbar .language-link:hover .language-icon {
    animation: language-switch 1.5s ease-in-out infinite;
  }
  
  .navbar .language-link.show .language-icon,
  .navbar .language-link[aria-expanded="true"] .language-icon {
    animation: language-active 1s ease-in-out infinite;
  }
}

/* Отключение анимаций для prefers-reduced-motion */
@media (prefers-reduced-motion: reduce) {
  .navbar .ronsorg-link .ronsorg-icon,
  .navbar .feedback-link .feedback-icon,
  .navbar .language-link .language-icon {
    animation: none !important;
  }
}

