/* Стили для праздничных виджетов */

.holiday-widget {
  position: fixed;
  z-index: 99999;
  pointer-events: none;
  transition: opacity 0.3s ease;
}

.holiday-widget .widget-image-container {
  pointer-events: auto;
  cursor: pointer;
  position: relative;
}

/* Внутренний контейнер для изображения - используется для scale (hover эффект) */
.holiday-widget .widget-image-inner {
  transition: transform 0.2s ease;
  display: block;
  transform-origin: center center;
}

.holiday-widget .widget-image-container:hover .widget-image-inner {
  transform: scale(1.01);
}

/* Для виджетов относительно navbar transform-origin должен быть top center ВСЕГДА */
.holiday-widget.widget-relative-to-navbar .widget-image-inner {
  transform-origin: top center !important;
}

.holiday-widget.widget-relative-to-navbar
  .widget-image-container:hover
  .widget-image-inner {
  transform: scale(1.01);
}

/* Анимация покачивания - применяется к внешнему контейнеру (rotate) */
@keyframes widgetSway {
  0% {
    transform: rotate(-3deg);
  }
  50% {
    transform: rotate(3deg);
  }
  100% {
    transform: rotate(-3deg);
  }
}

/* Применение анимации покачивания к внешнему контейнеру */
.holiday-widget.widget-sway-animation
  .widget-image-container.widget-sway-wrapper {
  animation: widgetSway 3s cubic-bezier(0.4, 0, 0.6, 1) infinite;
  transform-origin: var(--sway-transform-origin, top center);
}

/* Для виджетов относительно navbar transform-origin для rotate должен быть top center */
.holiday-widget.widget-relative-to-navbar.widget-sway-animation
  .widget-image-container.widget-sway-wrapper {
  transform-origin: top center !important;
}

/* Кнопки управления виджетом */
.widget-control-buttons {
  position: absolute;
  display: flex;
  flex-direction: column;
  gap: 0;
  z-index: 10000;
  pointer-events: auto;
}

/* Позиционирование кнопок в зависимости от позиции виджета */
/* Для виджетов в левом верхнем углу - кнопки справа внизу */
.holiday-widget.widget-top-left .widget-control-buttons {
  top: auto;
  bottom: -35px;
  left: auto;
  right: 0;
}

/* Для виджетов в верхнем центре - кнопки снизу по центру */
.holiday-widget.widget-top-center .widget-control-buttons {
  top: auto;
  bottom: -35px;
  left: 50%;
  right: auto;
  transform: translateX(-50%);
}

/* Для виджетов в правом верхнем углу - кнопки слева внизу */
.holiday-widget.widget-top-right .widget-control-buttons {
  top: auto;
  bottom: -35px;
  left: 0;
  right: auto;
}

/* Для виджетов в центре слева - кнопки справа по центру */
.holiday-widget.widget-center-left .widget-control-buttons {
  top: 50%;
  bottom: auto;
  left: auto;
  right: -70px;
  transform: translateY(-50%);
}

/* Для виджетов в центре - кнопки справа внизу */
.holiday-widget.widget-center .widget-control-buttons {
  top: auto;
  bottom: -35px;
  left: auto;
  right: 0;
}

/* Для виджетов в центре справа - кнопки слева по центру */
.holiday-widget.widget-center-right .widget-control-buttons {
  top: 50%;
  bottom: auto;
  left: -70px;
  right: auto;
  transform: translateY(-50%);
}

/* Для виджетов в левом нижнем углу - кнопки справа вверху */
.holiday-widget.widget-bottom-left .widget-control-buttons {
  top: -35px;
  bottom: auto;
  left: auto;
  right: 0;
}

/* Для виджетов в нижнем центре - кнопки сверху по центру */
.holiday-widget.widget-bottom-center .widget-control-buttons {
  top: -35px;
  bottom: auto;
  left: 50%;
  right: auto;
  transform: translateX(-50%);
}

/* Для виджетов в правом нижнем углу - кнопки слева вверху */
.holiday-widget.widget-bottom-right .widget-control-buttons {
  top: -35px;
  bottom: auto;
  left: 0;
  right: auto;
}

/* Стили кнопок управления виджетом */
.widget-control-buttons {
  flex-direction: column;
  gap: 0;
}

/* Общие стили кнопок */
.widget-btn {
  padding: 8px 0;
  font-size: 10px;
  line-height: normal;
  border: 1px solid white;
  cursor: pointer;
  transition: all 0.2s ease;
  white-space: nowrap;
  color: rgb(255, 255, 255);
  font-weight: normal;
  font-family: "serif", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
    sans-serif;
  text-transform: uppercase;
  min-width: 80px;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0.5;
}

.widget-btn:hover {
  opacity: 0.9;
  transform: scale(1.02);
}

.widget-btn:active {
  transform: scale(0.98);
  opacity: 0.8;
}

/* Кнопка "СКРЫТЬ" - темно-синяя, скругление только верхних углов */
.widget-btn-hide {
  background: #426ab9;
  border-radius: 6px 6px 0 0;
  border-bottom: 1px solid white;
}

/* Кнопка "ОСТАВИТЬ" - темно-зеленая, скругление только нижних углов */
.widget-btn-keep {
  background: #317237;
  border-radius: 0 0 6px 6px;
  border-top: none;
}

/* Убираем двойную границу между кнопками */
.widget-btn-hide + .widget-btn-keep {
  border-top: none;
}

/* Кнопка закрытия виджета - крестик в круге */
.widget-close-btn {
  position: absolute;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background-color: rgba(128, 128, 128, 0.8);
  border: 2px solid white;
  color: white;
  opacity: 0;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 10001;
  pointer-events: none;
  transition: opacity 0.3s ease, transform 0.2s ease;
  top: 10px;
  right: 10px;
  left: auto;
  bottom: auto;
  transform: none;
}

.widget-close-btn:hover {
  background-color: rgba(128, 128, 128, 1);
  border-color: white;
  transform: scale(1.1);
}

.widget-close-btn:active {
  transform: scale(0.95);
}

.widget-close-btn::before,
.widget-close-btn::after {
  content: "";
  position: absolute;
  width: 18px;
  height: 2px;
  background: white;
  border-radius: 1px;
}

.widget-close-btn::before {
  transform: rotate(45deg);
}

.widget-close-btn::after {
  transform: rotate(-45deg);
}

/* Класс для программного показа кнопки (при клике на виджет) */
/* Имеет более высокую специфичность, чтобы кнопка оставалась видимой даже при уходе курсора */
.widget-close-btn.show {
  opacity: 1 !important;
  pointer-events: auto !important;
}

/* Специфичное позиционирование для виджета #widget-close-1 */
#widget-close-1 {
  top: 10px;
  right: 10px;
}

.holiday-widget .widget-image {
  width: var(--widget-size);
  height: auto;
  max-width: 100%;
  display: block;
  user-select: none;
  -webkit-user-drag: none;
}

/* Позиционирование: верхний ряд */
.holiday-widget.widget-top-left {
  top: var(--widget-offset-y, var(--widget-offset));
  left: var(--widget-offset-x, var(--widget-offset));
}

.holiday-widget.widget-top-center {
  top: var(--widget-offset-y, var(--widget-offset));
  left: 50%;
  transform: translateX(-50%);
}

.holiday-widget.widget-top-right {
  top: var(--widget-offset-y, var(--widget-offset));
  right: var(--widget-offset-x, var(--widget-offset));
}

/* Позиционирование относительно navbar для верхних позиций */
/* Виджет перемещается внутрь navbar через JavaScript, поэтому используем position: absolute */
.holiday-widget.widget-relative-to-navbar {
  position: absolute;
  z-index: 1019; /* Меньше navbar (1020) */
}

.holiday-widget.widget-relative-to-navbar.widget-top-left {
  top: 100%; /* Нижняя граница navbar */
  left: var(--widget-offset-x, var(--widget-offset));
  right: auto;
  bottom: auto;
}

.holiday-widget.widget-relative-to-navbar.widget-top-center {
  top: 100%; /* Нижняя граница navbar */
  left: 50%;
  right: auto;
  bottom: auto;
  transform: translateX(-50%);
}

.holiday-widget.widget-relative-to-navbar.widget-top-right {
  top: 100%; /* Нижняя граница navbar */
  left: auto;
  right: var(--widget-offset-x, var(--widget-offset));
  bottom: auto;
}

/* Позиционирование: центральный ряд */
.holiday-widget.widget-center-left {
  top: 50%;
  left: var(--widget-offset-x, var(--widget-offset));
  transform: translateY(-50%);
}

.holiday-widget.widget-center {
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.holiday-widget.widget-center-right {
  top: 50%;
  right: var(--widget-offset-x, var(--widget-offset));
  transform: translateY(-50%);
}

/* Позиционирование: нижний ряд */
.holiday-widget.widget-bottom-left {
  bottom: var(--widget-offset-y, var(--widget-offset));
  left: var(--widget-offset-x, var(--widget-offset));
}

.holiday-widget.widget-bottom-center {
  bottom: var(--widget-offset-y, var(--widget-offset));
  left: 50%;
  transform: translateX(-50%);
}

.holiday-widget.widget-bottom-right {
  bottom: var(--widget-offset-y, var(--widget-offset));
  right: var(--widget-offset-x, var(--widget-offset));
}

/* Контейнер для анимации */
.widget-animation-container {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 9998;
  overflow: hidden;
}

/* Адаптивность для мобильных устройств */
@media (max-width: 768px) {
  .holiday-widget {
    --widget-size: 100px;
    --widget-offset: 15px;
  }

  .holiday-widget .widget-image-container:hover {
    transform: scale(1.05);
  }

  /* На мобильных устройствах увеличиваем прозрачность кнопок */
  .widget-btn {
    opacity: 0.9;
  }

  /* Переопределяем transform для мобильных */
  .holiday-widget.widget-top-center {
    transform: translateX(-50%);
  }

  .holiday-widget.widget-center-left {
    transform: translateY(-50%);
  }

  .holiday-widget.widget-center {
    transform: translate(-50%, -50%);
  }

  .holiday-widget.widget-center-right {
    transform: translateY(-50%);
  }

  .holiday-widget.widget-bottom-center {
    transform: translateX(-50%);
  }

  /* Позиционирование относительно navbar для верхних позиций на мобильных */
  /* Используем top: 100% так как виджет находится внутри navbar */
  .holiday-widget.widget-relative-to-navbar.widget-top-left {
    top: 100%;
    left: var(--widget-offset-x, var(--widget-offset));
    right: auto;
  }

  .holiday-widget.widget-relative-to-navbar.widget-top-center {
    top: 100%;
    left: 50%;
    right: auto;
    transform: translateX(-50%);
  }

  .holiday-widget.widget-relative-to-navbar.widget-top-right {
    top: 100%;
    left: auto;
    right: var(--widget-offset-x, var(--widget-offset));
    bottom: auto;
  }
}

/* Для очень маленьких экранов */
@media (max-width: 480px) {
  .holiday-widget {
    --widget-size: 80px;
    --widget-offset: 10px;
  }
}

/* Скрытие виджета */
.holiday-widget.hidden {
  display: none !important;
}

/* Анимация появления */
@keyframes widgetFadeIn {
  from {
    opacity: 0;
    transform: scale(0.8);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}

.holiday-widget {
  animation: widgetFadeIn 0.5s ease-out;
}

/* Исправление для позиций с transform */
.holiday-widget.widget-top-left,
.holiday-widget.widget-top-right,
.holiday-widget.widget-bottom-left,
.holiday-widget.widget-bottom-right {
  animation: widgetFadeIn 0.5s ease-out;
}

.holiday-widget.widget-top-center,
.holiday-widget.widget-bottom-center {
  animation: widgetFadeIn 0.5s ease-out;
}

.holiday-widget.widget-center-left,
.holiday-widget.widget-center-right {
  animation: widgetFadeIn 0.5s ease-out;
}

.holiday-widget.widget-center {
  animation: widgetFadeIn 0.5s ease-out;
}

/* КРИТИЧНО: Правила для виджетов относительно navbar должны быть в конце файла */
/* для максимальной специфичности и перезаписи всех остальных правил */
/* Анимация при наведении для виджетов относительно navbar - от верхнего края */
/* Применяется для всех верхних позиций (top-left, top-center, top-right) */
/* Внешний контейнер для rotate (анимация покачивания) */
.holiday-widget.widget-relative-to-navbar.widget-sway-animation.widget-top-left
  .widget-image-container.widget-sway-wrapper,
.holiday-widget.widget-relative-to-navbar.widget-sway-animation.widget-top-center
  .widget-image-container.widget-sway-wrapper,
.holiday-widget.widget-relative-to-navbar.widget-sway-animation.widget-top-right
  .widget-image-container.widget-sway-wrapper {
  transform-origin: top center !important;
}

/* Внутренний контейнер для scale (hover эффект) */
.holiday-widget.widget-relative-to-navbar.widget-top-left
  .widget-image-container:hover
  .widget-image-inner,
.holiday-widget.widget-relative-to-navbar.widget-top-center
  .widget-image-container:hover
  .widget-image-inner,
.holiday-widget.widget-relative-to-navbar.widget-top-right
  .widget-image-container:hover
  .widget-image-inner {
  transform-origin: top center !important;
  transform: scale(1.1) !important;
}

/* Для виджетов с анимацией покачивания и относительно navbar - внутренний контейнер */
.holiday-widget.widget-relative-to-navbar.widget-sway-animation.widget-top-left
  .widget-image-container:hover
  .widget-image-inner,
.holiday-widget.widget-relative-to-navbar.widget-sway-animation.widget-top-center
  .widget-image-container:hover
  .widget-image-inner,
.holiday-widget.widget-relative-to-navbar.widget-sway-animation.widget-top-right
  .widget-image-container:hover
  .widget-image-inner {
  transform-origin: top center !important;
  transform: scale(1.1) !important;
}
