* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: 'Arial', sans-serif;
}

body {
    overflow: hidden;
    height: 100vh;
    width: 100vw;
    position: relative;
    font-family: 'TT Firs Neue', -apple-system, BlinkMacSystemFont,
                 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell,
                 'Open Sans', 'Helvetica Neue', sans-serif;
}

@font-face {
    font-family: 'TT Firs Neue';
    src: url('../fonts/TT-Firs-Neue-Regular.woff') format('woff'),
         url('../fonts/TT-Firs-Neue-Regular.ttf') format('truetype');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

/* Шрифт PP Neue Machina */
@font-face {
    font-family: 'PP Neue Machina';
    src: url('../fonts/PPNeueMachina-Regular.woff') format('woff'),
         url('../fonts/PPNeueMachina-Regular.woff2') format('woff2'),
         url('../fonts/PPNeueMachina-Regular.ttf') format('truetype');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}



/* Новые стили для лендинга */
.desktop-landing {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1000;
    background: white;
    flex-direction: column;
}

.desktop-landing ~ #krpano-container {
    display: none;
}

/* Показываем лендинг только если он активен */
.desktop-landing.active {
    display: flex;
}


.landing-top {
    height: 60%;
    padding: 40px 60px;
    position: relative;
    /* padding-left: 10vw; */
    box-sizing: content-box;
}



.landing-nav {
    position: absolute;
    top: 40px;
    /* margin-left: 225px; */
    display: flex;
    /* gap: 10px; */
}

.nav-btn {
    font-family: 'TT Firs Neue', sans-serif;
    font-size: 18px;
    padding: 5px 30px;
    border-radius: 100px;
    border: none;
    cursor: pointer;
    background: none;
    color: #333;
    transition: all 0.3s ease;
}

.nav-btn.active {
    background: #000;
    color: white;
}

.landing-logos {
    position: absolute;
    top: 40px;
    right: 60px;
    display: flex;
    gap: 48px;
    align-items: center;
    flex-direction: row;
}

.logo-main {
    width: 180px;
    /* height: 67px; */
    object-fit: contain;
}

.logo-secondary {
    /* width: 75px; */
    height: 80px;
    object-fit: contain;
}

.landing-content {
    display: flex;
    margin-top: 120px;
    /* margin-left: 225px; */
}

.landing-text {
    max-width: 45vw;
}

.landing-text h1 {
    text-transform: uppercase;
    font-family: 'PP Neue Machina', sans-serif;
    font-size: 48px;
    line-height: 1.2;
    margin: 0;
    /* word-wrap: break-word;
    overflow-wrap: break-word;
    hyphens: auto;
    white-space: normal !important; */
}

.landing-description {
  width: 30vw;
  margin-left: 150px;
}

.description-main {
    font-family: 'TT Firs Neue', sans-serif;
    font-size: 18px;
    line-height: 1.4;
    margin: 0 0 24px 0;
}

.description-note {
    font-family: 'TT Firs Neue', sans-serif;
    font-size: 12px;
    color: #929292;
    line-height: 1.5;
    margin: 0;
}

/* Города на главной */
.landing-bottom {
    height: 40%;
    position: relative;
    overflow: hidden;
}

.bottom-gradient {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(
        30deg,
        #207C85 13%,
        #004C54 53%,
        #3FACB7 86%
    );
    padding: 40px 60px;
    box-sizing: border-box;
    overflow-x: auto; /* Добавить горизонтальный скролл */
    overflow-y: hidden;
    white-space: nowrap; /* Запрещаем перенос строк */
    padding-bottom: 20px; /* Место для скроллбара */
}

.bottom-title {
    font-family: 'PP Neue Machina', sans-serif;
    font-size: 36px;
    margin-bottom: 30px;
    color: white;
}


.cities-grid {
    /* display: grid; */
    /* grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); */
    display: inline-flex; /* Изменяем grid на inline-flex */
    gap: 30px;
    padding: 0 30px; /* Добавляем отступы по бокам */
    width: max-content; /* Ширина по содержимому */
    min-width: 100%; /* Минимальная ширина 100% */
}

.city-card {
    background: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(10px);
    border-radius: 10px;
    padding: 15px;
    cursor: pointer;
    transition: all 0.3s ease;
    position: relative;
    /* overflow: hidden; */
    border: 1px solid rgba(255, 255, 255, 0.2);
    flex: 0 0 auto; /* Запрещаем сжатие/растяжение */
    width: 180px; /* Фиксированная ширина карточек */
}

.city-card:hover {
    transform: translateY(-5px);
    background: rgba(255, 255, 255, 0.15);
}

.city-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(
        135deg,
        rgba(255, 255, 255, 0.05) 0%,
        rgba(255, 255, 255, 0) 100%
    );
    opacity: 0;
    transition: opacity 0.3s ease;
}

.city-card:hover::before {
    opacity: 1;
}

.city-name {
    font-family: 'TT Firs Neue', sans-serif;
    font-size: 20px;
    color: white;
    margin-bottom: 5px;
    position: relative;
    z-index: 2;
}

.city-count {
    font-family: 'PP Neue Machina', sans-serif;
    font-size: 64px;
    font-style: italic;
    font-weight: 700;
    color: rgba(255, 255, 255, 0.3);
    position: absolute;
    right: 20px;
    bottom: -20px;
    padding-right: 5px;
    line-height: 1;
    pointer-events: none;
}

.city-info {
    position: relative;
    z-index: 2;
}

.city-events {
    font-family: 'TT Firs Neue', sans-serif;
    font-size: 14px;
    color: rgba(255, 255, 255, 0.7);
    margin-top: 5px;
}


/* Мобильный лендинг */
.mobile-landing {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(-20deg, #296D75 0%, #4DCCDB 100%);
    padding-top: 80px; /* Отступ для переключателя */
    padding-bottom: 40px;
    box-sizing: border-box;
    overflow-y: auto;
    z-index: -1;
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.5s ease, transform 0.5s ease;
}

.mobile-landing.show {
    z-index: 1000;
    opacity: 1;
    transform: translateY(0);
}

.mobile-landing-content {
    display: flex;
    flex-direction: column;
    height: 100%;
    margin: 80px 35px;
    gap: 40px;
    justify-content: start;
}

.mobile-landing-title {
    font-family: 'TT Firs Neue', sans-serif;
    font-size: 24px;
    color: white;
    margin: 0;
    /* padding: 75px 75px 55px 75px; */
}

.mobile-landing-description {
    font-family: 'TT Firs Neue', sans-serif;
    font-size: 18px;
    color: white;
    margin: 0;
    /* padding: 0 75px 55px 75px; */
    line-height: 1.4;
}

.mobile-landing-note {
    font-family: 'TT Firs Neue', sans-serif;
    font-size: 12px;
    color: rgba(255, 255, 255, 0.7);
    margin: 0;
    /* padding: 0 75px 75px 75px; */
    line-height: 1.5;
}

.mobile-nav-container {
    position: relative;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1100; /* выше лендинга */
    display: flex;
    justify-content: center;
    /* padding: 0 20px; */
    box-sizing: border-box;
    margin-bottom: 48px;
}

.mobile-nav {
    background: rgba(255, 255, 255, 0.9);
    border-radius: 30px;
    padding: 4px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    display: inline-flex;
}

.mobile-nav-btn {
    font-family: 'TT Firs Neue', sans-serif;
    font-size: 14px;
    padding: 8px 24px;
    border-radius: 26px;
    border: none;
    background: none;
    color: #333;
    cursor: pointer;
    transition: all 0.3s ease;
}

.mobile-nav-btn.active {
    background: #333;
    color: white;
    font-weight: 500;
}

.mobile-landing,
.mobile-events-content {
    transition: opacity 0.3s ease, transform 0.3s ease;
}

.mobile-landing.hidden,
.mobile-events-content.hidden {
    opacity: 0;
    pointer-events: none;
    transform: translateY(10px);
}

.mobile-landing.visible,
.mobile-events-content.visible {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
}




#krpano-container {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
}

.hotspot-count {
    pointer-events: none;
    user-select: none;
    font-family: 'TT Firs Neue', sans-serif;
    font-size: 14px;
    color: white;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.7);
}

.hotspot-city-name {
  font-family: 'TT Firs Neue', sans-serif !important;
  user-select: none;
  font-size: 14px;
  color: white;
  text-shadow: 1px 1px 2px rgba(0,0,0,0.7);
}



.menu-toggle {
    position: fixed;
    top: 20px;
    left: 20px;
    width: 40px;
    height: 30px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    cursor: pointer;
    z-index: 100;
    background: rgba(255, 255, 255, 0.8);
    padding: 10px;
    border-radius: 5px;
    transition: all 0.3s ease;
}

.menu-toggle:hover {
    background: rgba(255, 255, 255, 1);
}

.burger-line {
    width: 100%;
    height: 3px;
    background: #333;
    transition: all 0.3s ease;
}

.sidebar {
    display: flex;
    /* display: none; */
    flex-direction: column;
    gap: 20px;
    position: fixed;
    top: 0;
    left: 40px;
    height: 100vh;
    width: 472px;
    background: rgba(255, 255, 255, 0.8);
    backdrop-filter: blur(4px);
    z-index: 90;
    overflow-y: auto;
    padding: 40px 0;
}

.sidebar.open {
    left: 0;
}

.sidebar-nav {
    /* position: absolute; */
    /* top: 40px; */
    margin-left: 20px;
    left: 10px;
    display: flex;
    /* gap: 10px; */
}

.sidebar-nav-btn {
    font-family: 'TT Firs Neue', sans-serif;
    font-size: 18px;
    padding: 5px 30px;
    border-radius: 100px;
    border: none;
    cursor: pointer;
    background: none;
    color: #333;
    transition: all 0.3s ease;
}

.sidebar-nav-btn.active {
    background: #000;
    color: white;
}

/* .suggest-event-btn {
  display: none;
}

.suggest-event-btn-desktop {
    position: fixed;
    bottom:0px;
    margin:30px;
    width: 400px;
    height: 50px;
    background: #030402;
    color: white;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: left;
    font-family: 'TT Firs Neue', sans-serif;
    font-size: 24px;
    text-decoration: none;
    z-index: 915;
    transition: all 0.3s ease;
    padding: 0 20px;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
}

.suggest-event-btn-desktop:hover {
    background: #1a1a1a;
    transform: translateY(-2px);
    box-shadow: 0 6px 15px rgba(0, 0, 0, 0.3);
}

.suggest-event-btn-desktop i {
    margin-right: 10px;
    font-size: 20px;
} */


.suggest-container {
  display: block;
  text-align: center;
}

.suggest-event-btn {
  display: block;
  padding: 14px 28px;
  background: linear-gradient(90deg, #1C4C51 0%, #3FACB7 100%);
  color: white;
  font-family: 'TT Firs Neue', sans-serif;
  font-size: 18px;
  font-weight: 500;
  border-radius: 10px;
  text-decoration: none;
  transition: all 0.3s ease;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.suggest-event-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.2);
  background: linear-gradient(90deg, #1C4C51 0%, #3FACB7 70%);
}


.accordion {
    width: 100%;
    /* margin-top: 60px; */
}

.accordion-item {
    /* margin-bottom: 30px; */
}

.accordion-item.active .accordion-header svg {
    transform: rotate(90deg);
}

/* Стили для неактивных тем */
.accordion-item:not(.active) {
    /* opacity: 0.2; */
    transition: opacity 0.3s ease;
}

.accordion-item.active {
    opacity: 1;
}

.accordion-header {
  padding: 20px 46px;
  position: relative;
  cursor: pointer;
  text-transform: uppercase;
  font-family: 'TT Firs Neue', sans-serif;
  font-weight: 400;
  font-size: 32px;
  color: #333;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.accordion-header::after {
    content: '';
    position: absolute;
    left: 46px;
    right: 72px;
    bottom: 10px;
    height: 1px;
    background: #333;
    z-index: -1;
}

.accordion-header svg {
    width: 24px;
    height: 24px;
    transition: transform 0.3s ease;
}


.accordion-header:hover {
    /* background: #eee; */
}

.accordion-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease, opacity 0.3s ease;
    opacity: 0;
}

/* Стили для активного состояния */
.accordion-item.active .accordion-content {
    max-height: 20000px; /* Достаточно большое значение */
    opacity: 1;
}

.accordion-subitem {
    display: flex;
    align-items: center;
    gap: 15px;
    padding: 12px 15px;
    cursor: pointer;
    border-bottom: 1px solid #f0f0f0;
    transition: all 0.2s ease;
}

.accordion-subitem:hover {
    /* background: #f8f8f8; */
}

/* Стили для месяцев (второй уровень) */
.months-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
    padding: 0 46px 30px;
}

.month-btn {
    height: 42px;
    border: 1px solid #333;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'TT Firs Neue', sans-serif;
    font-size: 24px;
    color: #333;
    background: transparent;
    cursor: pointer;
    transition: all 0.3s ease;
    text-transform: lowercase;
}

.month-btn.active {
    background: #333;
    color: white;
}

.arrow-icon {
    width: 24px;
    height: 24px;
    fill: #333;
}

/* Стили для событий в аккордеоне */
.accordion .event-item {
    display: flex;
    justify-content: space-between;
    padding: 12px 0;
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
    cursor: pointer;
    transition: background 0.2s;
}

.accordion .event-item:hover {
    /* background: rgba(0, 0, 0, 0.03); */
}

.accordion .event-title {
    font-family: 'TT Firs Neue', sans-serif;
    font-size: 18px;
    color: #333;
    flex-grow: 1;
}

.accordion .event-date {
    font-family: 'TT Firs Neue', sans-serif;
    font-size: 16px;
    color: #666;
    margin-left: 20px;
    white-space: nowrap;
}






/* Блок 1: Основная информация */
.event-card {
    position: fixed;
    /* padding-top: 179px; */
    /* left: 530px; */
    right: 0px;
    background: rgba(255, 255, 255, 0.7);
    backdrop-filter: blur(4px);
    /* width: 730px; */
    /* max-height: 100vh;  */
    max-width: 40vw;
    height: 100vh;
    z-index: 110;
    display: none;
    padding-right: 0;
    overflow-y: auto;
}

.event-card-content {
    width: 100%;
    height: 100%;
    padding-right: 0; /* Убираем отступ для скроллбара */
    overflow-y: none; /* Оставляем возможность скролла */
    -ms-overflow-style: none;  /* IE и Edge */
    scrollbar-width: none;  /* Firefox */
}

/* Скрываем стандартный скроллбар в WebKit */
.event-card-content::-webkit-scrollbar {
    display: none; /* Для WebKit */
}

/* Кастомный скроллбар снаружи */
.event-card-scrollbar {
    display: none;
    position: absolute;
    top: 0;
    right: 0;
    width: 8px;
    height: 100%;
    background: rgba(0, 0, 0, 0.05);
    border-radius: 4px;
}


/* Ползунок скроллбара */
.event-card-scrollbar-thumb {
    position: absolute;
    width: 100%;
    background: rgba(0, 0, 0, 0.2);
    border-radius: 4px;
    transition: background 0.2s;
    cursor: pointer;
}

.event-card-scrollbar-thumb:hover {
    background: rgba(0, 0, 0, 0.3);
}

/* Стили для кнопки закрытия карточки */
.close-card-btn {
    position: absolute;
    /* top: calc(179px + 15px); */
    /* right: calc(63px + 15px); */
    right: 0px;
    margin: 20px;
    width: 40px;
    height: 40px;
    background: transparent;
    border-radius: 50%;
    border: solid 1px #9D9D9D;
    color: #9D9D9D;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 120;
    transition: all 0.3s ease;
}

.close-card-btn:hover {
  color: #000;
  border: solid 1px #000;
    /* background: #7D7D7D; */
    /* transform: rotate(90deg); */
}

.close-card-btn i {
    font-size: 16px;
}


/* Основной блок карточки */
.card-main {
    /* width: calc(100% - 63px * 2);  */
    /* background: rgba(255, 255, 255, 0.7);
    backdrop-filter: blur(4px); */
    border-radius: 38px;
    padding: 40px 40px;
    box-sizing: border-box;
    position: relative;
    margin: 0 auto; /* Центрируем */
}

.card-main::after {
  content: '';
  position: absolute;
  left: 40px;
  right: 40px;
  bottom: 10px;
  height: 1px;
  background: #333;
  z-index: -1;
}

.card-content-wrapper {
    /* Удаляем height: calc(100% - 50px); */
    margin-top: 20px;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.card-content-inline-wrapper {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 20px; /* Добавляем отступ между изображением и текстом */
}

.card-header-wrapper{
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 40px;
}

.card-date {
    /* position: absolute;
    top: 50px;
    left: 40px; */
    font-family: 'TT Firs Neue', sans-serif;
    font-size: 18px;
    color: #333;
}

.card-type {
    /* position: absolute;
    top: 50px;
    right: 80px; */
    font-family: 'TT Firs Neue', sans-serif;
    font-size: 18px;
    color: #333;
    text-transform: lowercase;
}

.card-title {
    font-family: 'TT Firs Neue', sans-serif;
    font-size: 32px;
    color: #333;
    text-transform: uppercase;
    line-height: 1.2;
    /* margin-bottom: 20px; */
    /* padding-right: 80px; */
    /* word-wrap: break-word;
    overflow-wrap: break-word;
    hyphens: auto;
    white-space: normal !important; */
}


.card-content-details-wrapper {
  display: flex;
  flex-direction: column;
  gap: 20px;
  flex-grow: 1; /* Занимает оставшееся пространство */
}

.card-description {
    font-family: 'TT Firs Neue', sans-serif;
    font-size: 18px;
    color: #333;
    line-height: 1.4;
    /* padding-bottom: 20px; */
    white-space: pre-line; /* Сохраняем переносы строк */
}

/* Адресный блок */
.card-address {
    /* width: calc(100% - 63px * 2);  */
    /* min-height: 70px; */
    /* background: rgba(255, 255, 255, 0.7);
    backdrop-filter: blur(4px); */
    /* border-radius: 38px; */
    display: flex;
    align-items: start;
    /* padding: 0 40px; */
    padding: 0;
    box-sizing: border-box;
    margin-left: 20px;
    /* margin: 17px auto 20px;  */
}

.card-icon {
    font-size: 18px;
    color: #333;
    width: 24px;
    text-align: center;
}

.card-address-text {
    flex-grow: 1;
    font-family: 'TT Firs Neue', sans-serif;
    font-size: 18px;
    color: #333;
    margin-left: 16px;
}

/* Блок с изображением */
.card-image {
    /* width: calc(100% - 63px * 2);  */
    /* margin: 17px auto 20px;  */
    width: 50%;
    border-radius: 10px;
    overflow: hidden;
    flex-shrink: 0; /* Запрещаем сжатие */
    align-self: flex-start; /* Выравниваем по верху */
}

.card-image img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: contain; /* Сохраняем пропорции */
  max-height: 400px; /* Ограничиваем максимальную высоту */
}

/* Стили для кнопки "Поделиться" */
.share-container {
  margin-left: 20px;
  display: flex;
  justify-content: flex-start;
  font-family: 'TT Firs Neue', sans-serif !important;
}

.share-btn {
  display: flex;
  align-items: center;
  gap: 8px;
  background: transparent;
  border: 1px solid #333;
  border-radius: 10px;
  padding: 8px 16px;
  font-family: 'TT Firs Neue', sans-serif !important;
  font-size: 16px;
  color: #333;
  cursor: pointer;
  transition: all 0.3s ease;
}

.share-btn:hover {
  background: rgba(255, 255, 255, 0.15);
  transform: translateY(-1px);
}

.share-btn i {
  font-size: 16px;
  color: #333;
}

.share-btn-text {
    font-family: 'TT Firs Neue', sans-serif !important;
    font-size: 16px;
}


.back-button {
    padding: 10px 15px;
    background: #333;
    color: white;
    border: none;
    border-radius: 5px;
    cursor: pointer;
    margin-bottom: 20px;
    display: flex;
    align-items: center;
    gap: 5px;
}

.back-button:hover {
    background: #555;
}

.event-content img {
    width: 100%;
    height: auto;
    max-height: 300px;
    object-fit: cover;
    border-radius: 5px;
    margin-bottom: 20px;
}

.event-content h2 {
    margin-bottom: 10px;
    color: #333;
}

.event-content .event-type {
    display: inline-block;
    padding: 5px 10px;
    background: #f0f0f0;
    border-radius: 20px;
    font-size: 14px;
    margin-bottom: 15px;
}

.event-content .event-dates {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 15px;
    color: #666;
}

.event-content .event-location {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 15px;
    color: #666;
}

.event-content .event-links {
    display: flex;
    gap: 10px;
    margin-bottom: 20px;
}

.event-content .event-links a {
    padding: 8px 15px;
    background: #f0f0f0;
    border-radius: 5px;
    text-decoration: none;
    color: #333;
    display: flex;
    align-items: center;
    gap: 5px;
}

.event-content .event-links a:hover {
    background: #e0e0e0;
}

.event-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 25px;
}

.event-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 25px;
}

.event-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 10px 15px;
    border-radius: 30px;
    font-size: 14px;
    font-weight: 500;
    text-decoration: none;
    cursor: pointer;
    transition: all 0.2s ease;
    border: none;
    white-space: nowrap;
}

.site {
    display: flex;
    align-items: center;
    justify-content: start;
    transition: all 0.2s ease;
    text-decoration-line: none;
    margin-left: 20px
}
.site-link {
    display: flex;
    align-items: center;
    justify-content: start;
    transition: all 0.2s ease;
    text-decoration-line: none;
}
.site-text {
    font-family: 'TT Firs Neue', sans-serif;
    font-size: 18px;
    color: #333;
    /* cursor: pointer; */
    padding: 0 16px;
}
.site-icon{
  height: 24px;
  width: 24px;
  color: #333;
  font-size: 18px;
  text-align: center;
}

/* Обновленные стили для иконок соцсетей */
.social-icons {
    display: flex;
    gap: 12px;
    align-items: center;
    margin-left: 20px;
}

.social-icon {
    /* width: 24px;
    height: 24px; */
    /* display: flex;
    align-items: center;
    justify-content: center; */
    color: #333;
    font-size: 40px;
    transition: all 0.2s ease;
    text-decoration-line: none;
}

.social-icon:hover {
    opacity: 1;
    transform: translateY(-1px);
    color: #117976; /* Цвет при наведении */
}


/* Иконки в кнопках */
.event-btn i {
    font-size: 14px;
}

.admin-panel {
    position: fixed;
    bottom: 20px;
    right: 20px;
    z-index: 100;
    display: none; /* По умолчанию скрыта */
}

/* Показываем только когда isAdmin = true */
.admin-mode .admin-panel {
    display: block;
}

.admin-toggle {
    padding: 10px 15px;
    background: #333;
    color: white;
    border: none;
    border-radius: 5px;
    cursor: pointer;
}

.admin-content {
    position: absolute;
    bottom: 50px;
    right: 0;
    width: 400px;
    background: white;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
    border-radius: 5px;
    padding: 20px;
    display: none;
    max-height: 80vh;
    overflow-y: auto;
}

.admin-content.open {
    display: block;
}

.form-group {
    margin-bottom: 15px;
}

.form-group label {
    display: block;
    margin-bottom: 5px;
    font-weight: bold;
}

.form-group input,
.form-group select,
.form-group textarea {
    width: 100%;
    padding: 10px;
    border: 1px solid #ddd;
    border-radius: 5px;
}



.wysiwyg-toolbar {
    display: flex;
    gap: 5px;
    padding: 5px;
    background: #f5f5f5;
    border-radius: 5px 5px 0 0;
    border: 1px solid #ddd;
    border-bottom: none;
}

.wysiwyg-toolbar button {
    padding: 5px 10px;
    background: white;
    border: 1px solid #ddd;
    border-radius: 3px;
    cursor: pointer;
}

.wysiwyg-toolbar button:hover {
    background: #eee;
}

.wysiwyg-editor {
    min-height: 150px;
    padding: 10px;
    border: 1px solid #ddd;
    border-radius: 0 0 5px 5px;
    outline: none;
    overflow-y: auto;
}

.wysiwyg-editor:focus {
    border-color: #aaa;
}

/* Стили для разрешенного форматирования */
.card-description b,
.card-description strong {
    font-weight: bold;
}

.card-description i,
.card-description em {
    font-style: italic;
}

.card-description u {
    text-decoration: underline;
}

.card-description ul,
.card-description ol {
    padding-left: 20px;
    margin: 10px 0;
}

.card-description li {
    margin-bottom: 5px;
}



.events-list {
    padding: 0 46px;
}

.event-item {
    display: flex;
    justify-content: space-between;
    padding: 15px 0;
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}

.event-item:last-child {
    border-bottom: none;
}

.delete-btn {
    padding: 5px 10px;
    background: #ff4444;
    color: white;
    border: none;
    border-radius: 5px;
    cursor: pointer;
}

.delete-btn:hover {
    background: #cc0000;
}

.location-events {
    display: none;
    padding: 20px;
}


.click-hint {
    background: rgba(0, 0, 0, 0.7);
    color: white;
    padding: 10px 15px;
    border-radius: 5px;
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 1000;
    pointer-events: none;
}

.add-event-btn {
    padding: 10px 15px;
    background: #4CAF50;
    color: white;
    border: none;
    border-radius: 5px;
    cursor: pointer;
    margin-bottom: 15px;
    width: 100%;
}

.add-event-btn:hover {
    background: #45a049;
}

.date-separator {
    margin: 0 5px;
}

.form-group label {
    display: block;
    margin-bottom: 5px;
    font-weight: bold;
}

.form-group input[readonly] {
    background-color: #f5f5f5;
    cursor: not-allowed;
}

.city-select {
    width: 100%;
    padding: 10px;
    margin-bottom: 10px;
    border: 1px solid #ddd;
    border-radius: 5px;
}

.form-text {
    display: block;
    margin-top: -8px;
    margin-bottom: 10px;
    color: #666;
    font-size: 0.9em;
}

.form-group input:invalid,
.form-group select:invalid {
    border-color: #ff4444;
}

.form-group input:invalid + small,
.form-group select:invalid + small {
    color: #ff4444;
}

/* Стили для админ-панели */
#adminPanel {
    position: fixed;
    bottom: 30px;
    right: 30px;
    z-index: 999;
    display: flex;
    gap: 10px;
}

.admin-mode #adminPanel {
    display: block;
}

#adminToggle, #adminLogoutBtn {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    background: linear-gradient(135deg, #4a76a8 0%, #2c3e50 100%);
    color: white;
    border: none;
    cursor: pointer;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
    transition: all 0.3s ease;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 48px;
    text-decoration: none;
    display: inline-flex;
}
#adminToggle:hover, #adminLogoutBtn:hover {
    transform: translateY(-3px);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3);
    background: linear-gradient(135deg, #3a5f8a 0%, #1a2635 100%);
}

#adminToggle:active, #adminLogoutBtn:active {
    transform: translateY(0);
}

#adminLogoutBtn {
    background: linear-gradient(135deg, #4a76a8 0%, #2c3e50 100%);
  font-size: 32px;
}

/* Стили для контента админ-панели */
#adminContent {
    position: absolute;
    bottom: 80px;
    right: 0;
    width: 400px;
    background: white;
    border-radius: 20px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
    padding: 25px;
    display: none;
    max-height: 70vh;
    overflow-y: auto;
}

#adminContent.open {
    display: block;
    animation: fadeIn 0.3s ease;
}

@keyframes fadeIn {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Стили для кнопки "Добавить событие" */
#addEventBtn {
    width: 100%;
    padding: 15px 25px;
    background: linear-gradient(135deg, #27ae60 0%, #2ecc71 100%);
    color: white;
    border: none;
    border-radius: 12px;
    font-family: 'TT Firs Neue', sans-serif;
    font-size: 16px;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    box-shadow: 0 4px 12px rgba(46, 204, 113, 0.3);
    margin-bottom: 20px;
}

#addEventBtn:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(46, 204, 113, 0.4);
    background: linear-gradient(135deg, #219653 0%, #27ae60 100%);
}

#addEventBtn:active {
    transform: translateY(0);
}

#addEventBtn i {
    font-size: 18px;
}

/* Стили для формы добавления события */
#eventForm {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

#eventForm .form-group {
    margin-bottom: 15px;
}

#eventForm label {
    display: block;
    margin-bottom: 8px;
    font-family: 'TT Firs Neue', sans-serif;
    font-size: 14px;
    color: #333;
    font-weight: 500;
}

#eventForm input,
#eventForm select,
#eventForm textarea {
    width: 100%;
    padding: 12px 15px;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    font-family: 'TT Firs Neue', sans-serif;
    font-size: 14px;
    transition: border-color 0.3s;
}

#eventForm input:focus,
#eventForm select:focus,
#eventForm textarea:focus {
    outline: none;
    border-color: #4a76a8;
}

#eventForm button[type="submit"] {
    padding: 15px;
    background: linear-gradient(135deg, #4a76a8 0%, #2c3e50 100%);
    color: white;
    border: none;
    border-radius: 8px;
    font-family: 'TT Firs Neue', sans-serif;
    font-size: 16px;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.3s ease;
    margin-top: 10px;
}

#eventForm button[type="submit"]:hover {
    background: linear-gradient(135deg, #3a5f8a 0%, #1a2635 100%);
    transform: translateY(-2px);
}

#eventForm button[type="submit"]:active {
    transform: translateY(0);
}

/* Стили для превью изображения */
#imagePreview {
    margin-top: 10px;
}

#imagePreview img {
    max-width: 100%;
    border-radius: 8px;
    border: 1px solid #e0e0e0;
}

/* Стили для списка событий */
#eventsList {
    margin-top: 20px;
}

#eventsList .event-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 0;
    border-bottom: 1px solid #f0f0f0;
}

#eventsList .delete-btn {
    padding: 8px 12px;
    background: #e74c3c;
    color: white;
    border: none;
    border-radius: 6px;
    font-family: 'TT Firs Neue', sans-serif;
    font-size: 14px;
    cursor: pointer;
    transition: all 0.3s ease;
}

#eventsList .delete-btn:hover {
    background: #c0392b;
    transform: translateY(-1px);
}

#eventsList .delete-btn:active {
    transform: translateY(0);
}

/* Подсказка для клика по карте */
#clickHint {
    background: rgba(0, 0, 0, 0.8);
    color: white;
    padding: 12px 20px;
    border-radius: 8px;
    font-family: 'TT Firs Neue', sans-serif;
    font-size: 14px;
    text-align: center;
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 1000;
    pointer-events: none;
    animation: pulse 2s infinite;
}

@keyframes pulse {
    0% { opacity: 0.8; }
    50% { opacity: 1; }
    100% { opacity: 0.8; }
}



.accordion-subitem {
    padding: 10px 15px;
    cursor: pointer;
    border-bottom: 1px solid #eee;
    display: flex;
    align-items: center;
}

.event-dates {
    display: flex;
    align-items: center;
    margin: 10px 0;
    color: #555;
}

.date-separator {
    margin: 0 5px;
}

.top-controls {
    position: fixed;
    top: 20px;
    right: 20px;
    z-index: 95;
    display: flex;
    gap: 15px;
}

.city-search-container {
    padding: 0 46px;
    position: relative;
}

.city-search-input {
    position: relative;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    border: 1px solid #333;
    border-radius: 10px;
    height: 42px;
    padding: 0 15px;
    padding-right: 40px; /* Место для прелоадера */
}

.city-search-input:focus-within {
    box-shadow: 0 0 0 2px rgba(74, 107, 223, 0.3);
}

/* Иконка лупы */
.search-icon {
    transform: rotate(0deg);
    color: #333;
    margin-right: 8px;
    font-size: 16px;
}

/* Кнопка выпадающего списка */
.city-dropdown-toggle {
    position: absolute;
    right: 15px;
    background: none;
    border: none;
    color: #333;
    cursor: pointer;
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s ease;
    margin-left: 8px;
}

.city-dropdown-toggle:hover {
    color: #4a6bdf;
}

.city-dropdown-toggle.active {
    transform: rotate(180deg);
}



/* Выпадающий список */
.city-search-results {
    position: absolute;
    top: 42px;
    left: 46px;
    right: 46px;
    max-height: 300px;
    overflow-y: auto;
    background: white;
    border-radius: 0 0 10px 10px;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
    z-index: 100;
    display: none;
    border: 1px solid #eee;
    border-top: none;
}

.city-search-results.visible {
    display: block;
    opacity: 1;
    transform: translateY(0);
}

/* Элементы списка */
.city-result-item {
    padding: 12px 15px;
    cursor: pointer;
    display: flex;
    align-items: center;
    transition: background 0.2s;
}

.city-result-item:hover {
    background: #f8f8f8;
}

.city-result-item i {
    color: #333;
    margin-right: 10px;
}

.city-result-item[data-city="all"] {
    border-bottom: 1px solid #eee;
    margin-bottom: 5px;
    padding-bottom: 10px;
}

.city-result-item span {
  font-family: 'TT Firs Neue', sans-serif;
  font-size: 16px;
  color: #333;
}

/* Поле ввода */
#citySearch {
    flex-grow: 1;
    border: none;
    outline: none;
    background: transparent;
    font-family: 'TT Firs Neue', sans-serif;
    font-size: 16px;
    color: #333;
    padding: 0 10px;
    height: 100%;
}

#citySearch:focus {
    outline: none;
    box-shadow: 0 2px 15px rgba(0, 0, 0, 0.15);
    background: white;
}

#citySearch::placeholder {
    color: #999;
}

.search-results {
    position: absolute;
    top: 100%;
    right: 0;
    width: 100%;
    max-height: 250px;
    overflow-y: auto;
    background: white;
    border-radius: 0 0 10px 10px;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
    display: none;
    z-index: 100;
    padding: 5px 0;
}


.search-result-item {
    padding: 10px 15px;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 10px;
    transition: background 0.2s;
}

.search-result-item:hover {
    background: #f8f8f8;
}

.search-result-item i {
    color: #4a6bdf;
    width: 20px;
    text-align: center;
}

.search-result-item span {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-family: 'TT Firs Neue', sans-serif;
    font-size: 16px;
    color: #fff;
}

.no-results {
    padding: 10px 15px;
    color: #666;
    font-size: 14px;
}

.no-results i {
    margin-right: 8px;
    color: #ff4757;
}

.search-result-item:last-child {
    border-bottom: none;
}

.events-button {
    position: fixed;
    top: 20px;
    left: 20px;
    padding: 12px 20px;
    background: rgba(255, 255, 255, 0.95);
    color: #333;
    border: none;
    border-radius: 30px;
    cursor: pointer;
    z-index: 100;
    font-weight: 600;
    transition: all 0.3s ease;
    /* display: flex; */
    display: none;
    align-items: center;
    gap: 10px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
    font-size: 16px;
}

.events-button:hover {
    background: white;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.15);
    transform: translateY(-1px);
}

.events-button:active {
    transform: translateY(0);
    background: #4a6bdf;
    color: white;
}

.events-button i {
    font-size: 18px;
    color: #4a6bdf;
}

.city-title {
    margin-bottom: 20px;
    padding-bottom: 10px;
    border-bottom: 1px solid #eee;
    color: #333;
}

.event-date {
    font-family: 'TT Firs Neue', sans-serif;
    font-size: 16px;
    color: #666;
}

.event-day {
    font-size: 18px;
    font-weight: bold;
    line-height: 1;
}

.event-month {
    font-size: 12px;
    text-transform: lowercase;
    line-height: 1;
    margin-top: 2px;
}

.event-info {
    flex-grow: 1;
    min-width: 0;
}

.event-city {
    font-size: 13px;
    color: #666;
    margin-bottom: 3px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.event-title {
    font-family: 'TT Firs Neue', sans-serif;
    font-size: 18px;
    color: #333;
}

.event-btn:active {
    transform: translateY(0) !important;
    box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.1);
}

.city-filter-header {
    background: #f5f7fa;
    padding: 15px;
    margin: -20px -20px 20px -20px;
    border-bottom: 1px solid #e1e5eb;
    position: sticky;
    top: 0;
    z-index: 10;
}

.reset-city-btn {
    background: #4a6bdf;
    color: white;
    border: none;
    padding: 8px 15px;
    border-radius: 20px;
    cursor: pointer;
    font-size: 14px;
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.reset-city-btn:hover {
    background: #3a5bd9;
}

.city-filter-header h3 {
    margin: 10px 0 0 0;
    color: #2c3e50;
    font-size: 16px;
}

.mobile-container {
  display: none; /* По умолчанию скрыт */
}





/* Адаптация для меньших экранов */
@media (767 < width <= 1600px) {
    .sidebar {
        width: 400px;
        left: 60px;
    }

    .accordion-header {
        font-size: 36px;
        padding: 15px 50px 15px 30px;
    }

    .accordion-header::after {
        left: 30px;
        right: 50px;
    }

    .months-grid {
        padding: 0 30px 20px;
    }

    .event-card {
        left: 500px;
        width: 600px;
    }

    .card-title {
        font-size: 36px;
    }

    .card-main,
    .card-image,
    .card-address {
        width: calc(100% - 50px * 2);
    }

    .card-type,
    .card-date,
    .card-description,
    .card-address-text {
        font-size: 16px;
    }

    .card-content-wrapper {
      margin-top: 35px;
    }
}

@media (767 < width <= 1400px) {
  .event-card {
      left: 450px;
      /* width: 500px; */
  }

  .card-main,
  .card-image,
  .card-address {
      width: calc(100% - 40px * 2);
  }

  .card-type,
  .card-date,
  .card-description,
  .card-address-text {
      font-size: 16px;
  }

  .card-content-wrapper {
    margin-top: 35px;
  }
}

/* Mobile styles */
@media (max-width: 767px) {
  body {
    overflow: auto;
    background: #fff;
  }

  #krpano-container,
  .sidebar,
  .event-card,
  .admin-panel,
  .events-button {
    display: none !important;
  }

  /* Основной контейнер */
  .mobile-container {
    padding: 60px 40px 100px;
    max-width: 100%;
  }

  /* Логотип */
  .mobile-logo {
    width: calc(100vw - 80px);
    margin-bottom: 40px;
    display: block;
  }

  /* Поиск */
  .city-search-container {
      position: relative;
      z-index: 100;
      padding: 0 0 30px;
  }

  .city-search-results {
      display: none; /* Изначально скрыт */
      position: absolute;
      top: calc(100% + 8px);
      left: 0;
      right: 0;
      background: white;
      box-shadow: 0 4px 12px rgba(0,0,0,0.1);
      border-radius: 8px;
      transition: opacity 0.3s, transform 0.3s;
      opacity: 1;
      transform: translateY(-10px);
  }

  .city-search-results.visible {
      display: block;
      opacity: 1;
      transform: translateY(0);
  }

  .city-dropdown-toggle.active {
      transform: rotate(180deg);
  }

  .city-search-input {
    border: 1px solid #333;
    border-radius: 10px;
    padding: 8px 30px 8px 0;
    height: auto;
  }

  .city-search-input {
    position: relative;
    border: 1px solid #333;
    border-radius: 10px;
    height: 42px;
    padding: 0 15px;
    display: flex;
    align-items: center;
    background: white;
  }


  /* Иконка лупы */
  .search-icon {
      color: #333;
      margin-right: 8px;
      font-size: 16px;
  }

  /* Стрелка выпадающего списка */
  .city-dropdown-toggle {
      position: relative;
      width: 44px; /* Увеличенная область */
      height: 44px;
      display: flex;
      align-items: center;
      justify-content: center;
      margin-left: 4px;
      cursor: pointer;
  }

  /* Видимая иконка стрелки */
  .city-dropdown-toggle i {
      font-size: 16px;
      color: #333;
      transition: transform 0.3s ease;
  }

  .city-dropdown-toggle.active {
      transform: rotate(180deg);
  }

  /* Фокус-состояние */
  .city-search-input:focus-within {
      box-shadow: 0 0 0 2px rgba(74, 107, 223, 0.3);
      border-color: #4A6BDF;
  }

  /* Стили для выпадающего списка (как в десктопе) */
  .city-search-results {
      position: absolute;
      top: 100%;
      left: 0;
      right: 0;
      background: white;
      border: 1px solid #eee;
      border-radius: 0 0 10px 10px;
      box-shadow: 0 5px 15px rgba(0,0,0,0.1);
      max-height: 300px;
      overflow-y: auto;
      z-index: 100;
      margin-top: -1px;
  }

  /* Элементы списка */
  .city-result-item {
      padding: 12px 16px;
      display: flex;
      align-items: center;
      font-family: 'TT Firs Neue', sans-serif;
      font-size: 16px;
      color: #333;
      border-bottom: 1px solid #f0f0f0;
      cursor: pointer;
      transition: background 0.2s;
  }

  .city-result-item span{
      font-family: 'TT Firs Neue', sans-serif;
  }

  .city-result-item:hover {
      background: #f8f8f8;
  }

  .city-result-item i {
      margin-right: 12px;
      color: #333;
      width: 20px;
      text-align: center;
  }


  /* Поле ввода */
  #mobileCitySearch {
      flex: 1;
      border: none;
      outline: none;
      font-family: 'TT Firs Neue', sans-serif;
      font-size: 16px;
      color: #333;
      background: transparent;
      height: 100%;
      padding: 0;
  }

  /* Плейсхолдер */
  #mobileCitySearch::placeholder {
      color: #999;
      opacity: 1;
  }

  /* Изображение панорамы */
  .mobile-pano-image {
    height: 230px;
    border-radius: 20px;
    margin-bottom: 40px;
    object-fit: contain;
    width: -webkit-fill-available;
  }

  /* Аккордеон */
  .accordion {
    width: 100%;
    padding: 0;
  }

  .accordion-item {
    margin-bottom: 0;
    background: none;
  }

  .accordion-header {
    position: relative;
    padding: 12px 40px 12px 0;
    font-family: 'TT Firs Neue', sans-serif;
    font-size: 32px;
    color: #333;
    border-bottom: 1px solid #333;
    cursor: pointer;
    transition: color 0.3s ease;
  }

  .accordion-header::after {
    content: '';
    position: absolute;
    right: 0;
    top: 50%;
    left: auto;
    bottom: auto;
    background: transparent;
    transform: translateY(-50%);
    width: 24px;
    height: 24px;
    background-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 23' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cmask id='mask0' maskUnits='userSpaceOnUse' x='0' y='0' width='24' height='24'%3E%3Cpath d='M0 0H23.046V23H0V0z' fill='white'/%3E%3C/mask%3E%3Cg mask='url(%23mask0)'%3E%3Cpath d='M2.827 23L0 20.185L15.293 3.972H0V-0.01h23.022v4.01c-1.442 0-2.82.595-3.809 1.644L2.827 23z' fill='%23333'/%3E%3C/g%3E%3Cmask id='mask1' maskUnits='userSpaceOnUse' x='19' y='5' width='5' height='18'%3E%3Cpath d='M19.037 5.73h4.01v17.27h-4.01V5.73z' fill='white'/%3E%3C/mask%3E%3Cg mask='url(%23mask1)'%3E%3Cpath d='M19.048 10.5l-.002.002v-2.44h-.002s1.692-2.927 3.983-2.17V23h-3.983V10.5z' fill='%23333'/%3E%3C/g%3E%3C/svg%3E");
    transition: transform 0.3s ease;
  }

  .accordion-item.active .accordion-header::after {
    transform: translateY(-50%) rotate(90deg);
  }

  /* Активная тема */
  .accordion-item.active .accordion-header {
  }

  /* Неактивные темы */
  .accordion-item:not(.active){
    opacity: 1;
  }

  /* Месяцы */
  .months-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
    padding: 24px 0;
  }

  .month-btn {
    height: 48px;
    font-size: 24px;
    border-radius: 8px;
  }

  .month-btn.active {
      background: #105F65;
      color: white;
  }

  /* Список событий */
  .mobile-event-item {
    display: flex;
    justify-content: space-between;
    padding: 16px 0;
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
    cursor: pointer;
  }

  .mobile-event-item .event-title {
    font-family: 'TT Firs Neue', sans-serif;
    font-size: 18px;
    color: #000;
    flex-grow: 1;
    /* word-wrap: break-word;
    overflow-wrap: break-word;
    hyphens: auto;
    white-space: normal !important; */
  }

  .mobile-event-item .event-date {
    font-family: 'TT Firs Neue', sans-serif;
    font-size: 18px;
    color: #000;
    margin-left: 0;
    white-space: nowrap;
  }

  .events-list {
    padding: 0;
  }

  /* Карточка события */
  .mobile-event-card {
    padding: 0 0 50px;
    display: flex;
    flex-direction: column;
    gap: 20px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
  }

  /* Для мобильной версии */
  .mobile-event-card .social-icons {
      /* margin-left: 10px;
      margin-top: 8px; */
      gap: 20px;
      /* padding: 0 10px 0; */
      margin: 0;
  }

  .mobile-event-card .social-icon {
      /* width: 22px;
      height: 22px;
      font-size: 24px; */
  }

  .card-main {
    width: auto;
    background: #F4F4F4;
    border-radius: 20px;
    padding: 16px;
    margin: 0;
  }

  .card-title {
      /* Существующие стили */
      font-family: 'TT Firs Neue', sans-serif;
      font-size: 24px;
      color: #333;
      text-transform: uppercase;
      line-height: 1.2;
      padding-right: 80px;
      /* word-wrap: break-word;
      overflow-wrap: break-word;
      hyphens: auto;
      white-space: normal !important; */
  }

  .card-type {
    font-size: 15px;
    color: #B3B3B3;
    text-align: right;
    right: 25px;
    top: auto;
  }

  .card-description {
    font-size: 16px;
    line-height: 1.4;
    color: #333;
    margin: 16px 0;
  }

  .card-footer {
    /* padding: 0 16px; */
    display: flex;
    flex-direction: row;
    gap: 20px;
  }

  .card-address {
    width: auto;
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 24px;
    color: #333;
    /* margin-bottom: 16px; */
    padding: 20px 10px;
    margin: 0;
  }

  .card-address-text {
    font-family: 'TT Firs Neue', sans-serif;
    font-size: 16px;
  }

  .card-image {
    width: auto;
    border-radius: 12px;
    overflow: hidden;
    margin-top: 16px;
  }

  .card-image img {
    width: 100%;
    height: auto;
  }

  .fa-globe {
    margin-left: auto;
    color: #333;
  }

  /* Мобильная кнопка шаринга */
  .mobile-share-btn {
    display: flex;
    align-items: center;
    gap: 8px;
    background: transparent;
    border: 1px solid #333;
    border-radius: 10px;
    padding: 8px 16px;
    font-family: 'TT Firs Neue', sans-serif !important;
    font-size: 16px;
    color: #333;
    cursor: pointer;
    transition: all 0.3s ease;
  }

  .mobile-share-btn i {
      font-size: 16px;
  }


  /* Кнопка "Предложи событие" */
  .suggest-event-btn {
    display: block;
    width: 100%;
    height: 42px;
    margin-top: 14px;
    background: #117976;
    border: 1px solid #1C4C51;
    border-radius: 10px;
    color: white;
    font-family: 'TT Firs Neue', sans-serif;
    font-size: 16px;
    font-weight: 500;
    text-align: center;
    line-height: 42px;
    text-decoration: none;
    transition: all 0.3s ease;
    align-content: center;
    padding: 0;
  }

  .suggest-event-btn:hover {
    background: #0e6a68;
    transform: translateY(-1px);
  }

  .suggest-event-btn:active {
    background: #0c5b5a;
    transform: translateY(0);
  }
  .suggest-event-btn-desktop {
    display: none;
  }
}

/* Оптимизация для маленьких экранов */
@media (max-width: 360px) {
    .city-search-input {
        padding: 0 8px;
    }
    .city-result-item {
        padding: 10px 12px;
    }
    .suggest-event-btn-desktop {
      display: none;
    }
    .mobile-landing-title,
    .mobile-landing-description,
    .mobile-landing-note {
        padding-left: 40px;
        padding-right: 40px;
    }
}
