/* Подключение шрифта Onest через Google Fonts */
@import url('https://fonts.googleapis.com/css2?family=Onest:wght@100;200;300;400;500;600;700;800;900&display=swap');


/* Глобальные стили */
* {
    font-family: 'Onest', sans-serif;
    margin: 0;
    padding: 0;
    box-sizing: border-box;

}

.animated-icon-wrapper {
    cursor: grab !important;
}


.sub-filters.hidden {
    display: none;
}

/* ------Режим Бонда 2------ */
.toggle-all-control {
    position: fixed !important;
    left: 170px !important;
    bottom: 100px !important;
    z-index: 1000 !important;
    margin: 0 !important;
}

@media(max-width:1024px) {
    .toggle-all-control {
        left: 10% !important;

    }
}

@media(max-width:768px) {
    .toggle-all-control {
        left: 9px !important;
        top: 74px !important;
        pointer-events: none !important;

    }

    .toggle-all-btn {
        pointer-events: auto !important;
    }
}

@media (max-width:768px) {

    #info-bottom2,
    #info-bottom {
        display: none;
    }
}

.leaflet-control-container {
    position: relative;
}

.leaflet-touch .leaflet-control-layers,
.leaflet-touch .leaflet-bar {
    border: none !important;
    background-clip: padding-box;
}

/* кнопка с анимированным градиентом */
.toggle-all-btn {
    position: relative;
    display: flex !important;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 380px !important;
    height: 50px !important;
    color: #fff !important;
    border-radius: 15px !important;
    background: linear-gradient(135deg, rgba(186, 79, 166, 1) 0%, rgba(186, 79, 166, 1) 50%, rgba(186, 79, 166, 1) 100%);
    color: white;
    font-size: 19px !important;
    text-decoration: none;
    cursor: pointer;
    overflow: hidden;
    transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 1;
    border: none !important;
    padding: 0 15px !important;
    box-sizing: border-box;
    font-weight: 400 !important;

}

/* Стили для иконки */
.toggle-all-icon {
    width: 24px;
    height: 24px;
    object-fit: contain;
    transition: all 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55);
    filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.2));
    flex-shrink: 0;
}

.toggle-all-btn:hover .toggle-all-icon {
    transform: scale(1.15) rotate(8deg);
}

.toggle-all-btn.active .toggle-all-icon {
    transform: scale(1.2);
    animation: iconPulse 2s ease-in-out infinite;
}

/* Анимированный слой при ховере */
.toggle-all-btn::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(135deg,
            rgba(255, 255, 255, 0.1) 0%,
            rgba(255, 255, 255, 0) 100%);
    opacity: 0;
    transition: opacity 0.4s ease;
    border-radius: 15px;
    z-index: -1;
}

@keyframes gradientShift {

    0%,
    100% {
        background-position: 0% 50%;
    }

    50% {
        background-position: 100% 50%;
    }
}

.toggle-all-btn:hover::before {
    opacity: 1;
}

/* усиленная тень */
.toggle-all-btn:hover {
    transform: scale(1.05);
    box-shadow:
        0 12px 30px rgba(102, 126, 234, 0.5),
        0 6px 12px rgba(118, 75, 162, 0.3);
}

/* Блик при наведении */
.toggle-all-btn::after {
    content: '';
    position: absolute;
    top: -50%;
    left: -50%;
    width: 200%;
    height: 200%;
    background: linear-gradient(120deg,
            transparent 30%,
            rgba(255, 255, 255, 0.25) 50%,
            transparent 70%);
    transform: translateX(-100%) rotate(45deg);
    transition: transform 0.6s ease;
    z-index: -1;
}

.toggle-all-btn:hover::after {
    transform: translateX(100%) rotate(45deg);
}

/* Активное состояние (все маркеры включены) */
.toggle-all-btn.active {
    background: linear-gradient(135deg, #15A18D 0%, #31E080 100%);
    transform: scale(1.03);
}

/* Лёгкая пульсация в активном состоянии */
.toggle-all-btn.active::before {
    animation: gradientShift 2.5s ease infinite;
    opacity: 1;
}

@keyframes iconPulse {

    0%,
    100% {
        transform: scale(1.2);
    }

    50% {
        transform: scale(1.3);
    }
}

/* Стиль для текста кнопки */
.btn-text {
    white-space: nowrap;
    font-weight: 600;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
}

/* ------------ */



/* Только для Firefox */
@-moz-document url-prefix() {
    .leaflet-image-layer {
        image-rendering: -moz-crisp-edges !important;
    }
}

/* Для всех браузеров */
.leaflet-overlay-pane img[src$=".svg"] {
    image-rendering: crisp-edges;
    image-rendering: -webkit-optimize-contrast;
    -ms-interpolation-mode: nearest-neighbor;
    transform: translateZ(0);
    backface-visibility: hidden;
}

.leaflet-image-layer {
    image-rendering: -moz-crisp-edges;
    image-rendering: -webkit-crisp-edges;
    /* image-rendering: pixelated; */
    image-rendering: crisp-edges;
    -ms-interpolation-mode: nearest-neighbor;
}

/* Для Firefox специфично */
.leaflet-overlay-pane img {
    image-rendering: -moz-crisp-edges !important;
    image-rendering: crisp-edges !important;
}

/* Стили для body и html */
body,
html {
    margin: 0;
    padding: 0;
    height: 100%;
    width: 100%;
    cursor: grab;
    /* overflow: hidden; */
}

/* Контейнер карты */
#map {
    height: 100vh;
    width: 100vw;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1;
    /* background: transparent !important; */

}

/* 17/10/25 */
.marker-icon {
    -webkit-transform: translateZ(0);
    /* GPU ускорение */
    transform: translateZ(0);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}

.marker-container img {
    -webkit-user-select: none;
    user-select: none;
    pointer-events: none;
}

/* 0000000000000000000000 */
.leaflet-left .leaflet-control {
    margin-left: 100px !important;
    margin-top: 100px !important;
}

/* 000000000000000000000000000 */

/* Email Request Modal Styles */
.email-request-modal {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 999999;
    display: flex;
    align-items: center;
    justify-content: center;
    animation: fadeIn 0.3s ease;
}

.email-request-modal.closing {
    animation: fadeOut 0.3s ease;
}

.email-modal-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.6);
    backdrop-filter: blur(5px);
}

.email-modal-content {
    position: relative;
    background: white;
    border-radius: 16px;
    padding: 32px;
    max-width: 420px;
    width: 90%;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
    animation: slideUp 0.3s ease;
}

.email-modal-close {
    position: absolute;
    top: 16px;
    right: 16px;
    background: none;
    border: none;
    font-size: 28px;
    color: #999;
    cursor: pointer;
    padding: 0;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    transition: all 0.2s;
}

.email-modal-close:hover {
    background: #f5f5f5;
    color: #333;
}

.email-modal-header {
    text-align: center;
    margin-bottom: 24px;
}

.email-modal-icon {
    margin-bottom: 16px;
}

/* Стили для мини-карты */
#mini-map {
    width: 200px;
    height: 200px;
    position: absolute;
    bottom: 3.5%;
    right: 4%;
    z-index: 1000;
    border: 2px solid rgba(53, 84, 108, 1);
    border-radius: 16px;
    background: white;
}

@media(max-width:1024px) {
    #mini-map {
        display: none;
    }


}

.email-modal-header h3 {
    margin: 0;
    font-size: 24px;
    color: #333;
}

.email-modal-description {
    text-align: center;
    color: #666;
    margin-bottom: 32px;
    line-height: 1.5;
}

.email-input-wrapper {
    position: relative;
    margin-bottom: 24px;
}

#vk-user-email {
    width: 100%;
    padding: 14px 16px;
    border: 2px solid #e0e0e0;
    border-radius: 8px;
    font-size: 16px;
    transition: all 0.2s;
}

#vk-user-email:focus {
    outline: none;
    border-color: #0077FF;
    box-shadow: 0 0 0 3px rgba(0, 119, 255, 0.1);
}

#vk-user-email.error {
    border-color: #f44336;
}

.email-input-error {
    position: absolute;
    bottom: -20px;
    left: 0;
    color: #f44336;
    font-size: 12px;
    opacity: 0;
    transition: opacity 0.2s;
}

#vk-user-email.error+.email-input-error {
    opacity: 1;
}

.email-submit-btn {
    width: 100%;
    padding: 14px 24px;
    background: #0077FF;
    color: white;
    border: none;
    border-radius: 8px;
    font-size: 16px;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s;
    margin-bottom: 12px;
}

.email-submit-btn:hover:not(:disabled) {
    background: #0066dd;
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(0, 119, 255, 0.3);
}

.email-submit-btn:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

.email-skip-btn {
    width: 100%;
    padding: 12px 24px;
    background: transparent;
    color: #666;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    font-size: 14px;
    cursor: pointer;
    transition: all 0.2s;
}

.email-skip-btn:hover {
    background: #f5f5f5;
}

@keyframes fadeIn {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

@keyframes fadeOut {
    from {
        opacity: 1;
    }

    to {
        opacity: 0;
    }
}

@keyframes slideUp {
    from {
        transform: translateY(20px);
        opacity: 0;
    }

    to {
        transform: translateY(0);
        opacity: 1;
    }
}

body.modal-open {
    overflow: hidden;
}



/* Контейнер Leaflet */
.leaflet-container {
    background: transparent !important;
    height: 100%;
    width: 100%;
}

.leaflet-popup-tip-container,
.leaflet-popup-tip {
    display: none !important;
}

.leaflet-popup-content-wrapper {
    background: none !important;
    box-shadow: none !important;
}

/* Пользовательский дизайн попапов (десктоп) */
.custom-popup-container .leaflet-popup-content-wrapper {
    border-radius: 12px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
    background: transparent;

    overflow: hidden;

}

.heart-icon.is-favorite {
    color: #ff4d4d;
    transform: scale(1.1);
}

@media(max-width:768px) {

    /* Мобильный попап */
    .mobile-popup {
        display: none;
        position: fixed;
        bottom: 0;
        left: 0;
        width: 100%;
        max-height: 70vh;
        background: transparent;
        z-index: 1000;
        overflow-y: auto;
        border-top-left-radius: 20px;
        border-top-right-radius: 20px;
        box-shadow: 0 -4px 15px rgba(0, 0, 0, 0.3);
        transition: transform 0.3s ease-in-out;
        transform: translateY(100%);
    }

    .popup-side-icons {
        display: none !important;
    }

    .mobile-popup.active {
        transform: translateY(0);
    }


    .custom-popup {
        width: 100% !important;
        font-family: 'Onest', sans-serif;
        background-color: #35546C;
        border-radius: 16px;
        color: #fff;
        display: flex;
        flex-direction: column;
        position: relative;
    }

    .custom-popup {
        border-radius: 0px !important;
    }

    .mobile-popup-content {
        position: relative;
        padding: 0px;
        min-height: 100px;
    }

    .parent-popup {
        position: relative;
        width: 100% !important;
        height: 408px;
        border-radius: 0px !important;
        overflow: hidden;
        color: white;
    }

    .close-mobile-popup {
        position: absolute;
        top: 15px;
        right: 15px;
        background: rgba(0, 0, 0, 0.1);
        border: none;
        border-radius: 50%;
        width: 32px;
        height: 32px;
        font-size: 18px;
        cursor: pointer;
        color: #f2eaea;
        display: flex;
        align-items: center;
        justify-content: center;
        transition: background 0.2s ease;
        z-index: 10;
    }

    .close-mobile-popup:hover {
        background: rgba(0, 0, 0, 0.2);
    }
}


/* Общие стили для попапов */
.custom-popup {
    position: relative;
    max-width: 100%;
    overflow: hidden;
}

.popup-image {
    width: 100%;
    height: 100%;
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 0;
    object-fit: cover;
    border-radius: 12px 12px 0 0;
}

.popup-overlay {
    position: relative;
    z-index: 1;
    color: white;
    box-sizing: border-box;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.popup-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 4px;
}

.to-right {
    background-color: rgba(25, 38, 64, 1) !important;
    position: absolute;
    left: 97%;
    top: 5%;


}

.heart-icon {
    font-size: 22px;
    color: #ff4d4d;
    cursor: pointer;
    transition: transform 0.2s ease;
}

.heart-icon:hover {
    transform: scale(1.2);
}

.popup-content {
    margin-bottom: 12px;
    border-radius: 15px;
}

.popup-title {
    font-size: 18px;
    font-weight: 600;
    margin: 0 0 8px 0;
    color: #fff;
}

.popup-description,
.popup-organization,
.popup-group,
.popup-subgroup,
.popup-parent-id {
    font-size: 14px;
    margin: 6px 0;
    line-height: 1.4;
}

.organization {
    font-size: 13px;
}

.address-container {
    font-size: 14px;
    font-weight: 300 !important;
}

.rating {
    font-size: 14px;
    color: #e0e0e0;
    display: flex;
    align-items: center;
    gap: 5px;
}

.rating-score {
    color: #fff;
    font-weight: 500;
}

.review-count {
    color: #bbb;
    font-size: 13px;
}

.popup-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.action-btn {
    background: rgba(53, 84, 108, 0.8);
    color: white;
    border: none;
    padding: 10px 14px;
    border-radius: 6px;
    cursor: pointer;
    font-size: 14px;
    display: flex;
    align-items: center;
    gap: 6px;
    transition: background-color 0.3s ease;
}

.action-btn:hover {
    background: rgba(53, 84, 108, 1);
}

.phone-btn {
    background: rgba(40, 167, 69, 0.8);
}

.phone-btn:hover {
    background: rgba(33, 136, 56, 1);
}

i {
    font-size: 14px;
}



.parent-popup .parent-header {
    padding: 8px;
    border-radius: 8px 8px 0 0;
}

.parent-popup .parent-title {
    font-size: 20px;
    font-weight: 700;
}

.child-popup .child-header {
    padding: 8px;
    border-radius: 8px 8px 0 0;
}

.child-popup .child-title {
    font-size: 16px;
    font-weight: 600;
}

.child-popup .gallery-slider {
    position: relative;
    width: 100%;
    height: 180px;
    overflow: hidden;
    z-index: 1;
}

.child-popup .slider-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    position: absolute;
    top: 0;
    left: 0;
    transition: opacity 0.5s ease;
    z-index: 1;
}

.child-popup .slider-image.active {
    opacity: 1;
    z-index: 2;
}

.child-popup .slider-prev,
.child-popup .slider-next {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    color: white;
    border: none;
    padding: 8px 12px;
    cursor: pointer;
    z-index: 3;
    font-size: 16px;
    border-radius: 4px;
    transition: background 0.2s ease;
}

/* ---------- */
.swiper-pagination {
    bottom: 9% !important;
}

/* ---------- */

.child-popup .slider-prev {
    left: 10px;
}

.child-popup .slider-next {
    right: 10px;
}

/* Отключаем слайдер для родительского попапа */
.parent-popup .gallery-slider,
.parent-popup .slider-image,
.parent-popup .slider-prev,
.parent-popup .slider-next {
    display: none !important;
}

/* Мобильные стили для попапов */
@media (max-width: 768px) {
    .mobile-popup {
        display: block;
    }

    .leaflet-popup-content-wrapper {
        display: none !important;
        /* Скрываем десктопные попапы */
    }

    .mobile-popup .parent-popup .popup-image {
        max-height: 205px;
    }

    .mobile-popup .child-popup .gallery-slider {
        height: 205px;
    }

    .mobile-popup .child-popup .slider-image {
        max-height: 205px;
    }
}

/* Модальное окно поиска */
.modal-window {
    display: none;
    position: fixed;
    left: 4.5%;
    top: 2.2%;
    background-color: rgba(25, 38, 64, 1);
    padding: 20px;
    border-radius: 10px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
    width: 100%;
    max-width: 437px;
    z-index: 1000;
    transition: opacity 0.3s ease;
}

.modal-window[style*="display: block"] {
    opacity: 1;
}

.my-custom-class {
    font-family: 'Onest';
    font-weight: 400;
    font-size: 16px !important;
    letter-spacing: 0%;
    vertical-align: middle;
}

.radioContainer label {
    color: white !important;
}



.radioContainer input[type="radio"] {
    accent-color: white !important;
    cursor: pointer;
    margin: 0;
    margin-right: 6px;
    vertical-align: middle;
}

.radioContainer label {
    color: white !important;
    cursor: pointer;
    vertical-align: middle;
}

/* Fallback для старых браузеров */
@supports not (accent-color: white) {
    .radioContainer input[type="radio"] {
        filter: invert(100%) hue-rotate(180deg) brightness(1.7);
    }
}


.my-custom-class-li {
    font-family: 'Onest';
    font-weight: 400;
    margin-left: 2.6%;
    font-size: 16px;
    letter-spacing: 0%;
    vertical-align: middle;
}

@media (max-width: 768px) {
    .modal-window {
        top: 10%;
        left: 10px;
        right: 10px;
        width: calc(100% - 20px);
    }

    #search-input {
        width: 100% !important;
    }

    .close-modal-btn2 {
        top: -16px !important;
        right: 1px !important;
        border-radius: 6px;
        width: 32px;
        height: 32px;
    }
}

.leaflet-popup-content p {
    margin: 0 !important;
}

.search-container {
    display: flex;
    align-items: center;
    gap: 10px;
    position: relative;
}

.input-wrapper {
    position: relative;
    flex-grow: 1;
}

.input-wrapper input {
    width: 100%;
    height: 42px;
    border: 1px solid #ccc;
    border-radius: 8px;
    padding: 0 40px 0 15px;
    font-size: 16px;
    box-sizing: border-box;
}

.input-wrapper input:focus {
    outline: none;
    border-color: #35546C;
    box-shadow: 0 0 0 2px rgba(53, 84, 108, 0.25);
}

.search-icon {
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    width: 20px;
    height: 20px;
    color: #888;
    pointer-events: none;
}

.search-button {
    height: 42px;
    padding: 0 20px;
    background-color: #35546C;
    color: white;
    border: none;
    border-radius: 8px;
    font-size: 16px;
    cursor: pointer;
    transition: background-color 0.2s;
}

.search-button:hover {
    background-color: #4a6e89;
}

.close-button {
    background: transparent;
    border: none;
    font-size: 28px;
    line-height: 1;
    color: #888;
    cursor: pointer;
    padding: 0 5px;
}

.filters-container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 15px;
    padding-left: 5px;
}

.radio-filters {
    display: flex;
    gap: 20px;
}

.radio-option {
    display: flex;
    align-items: center;
    gap: 6px;
}

.radio-option label {
    font-size: 15px;
    color: #333;
    cursor: pointer;
}

.radio-option input[type="radio"] {
    cursor: pointer;
    accent-color: #35546C;
}

/* Выпадающий список автодополнения */
.search-suggestions {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: #fff;
    border: 1px solid #ccc;
    border-radius: 8px;
    max-height: 220px;
    overflow-y: auto;
    z-index: 1001;
    display: none;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
}

.suggestion-item {
    padding: 12px 15px;
    cursor: pointer;
    transition: background-color 0.2s;
}

.suggestion-item:hover {
    background-color: #f5f5f5;
}

.suggestion-title {
    font-size: 16px;
    font-weight: 500;
    color: #333;
}

.suggestion-organization {
    font-size: 14px;
    color: #333;
    margin-top: 5px;
}

.suggestion-description {
    font-size: 14px;
    color: #888;
    margin-top: 4px;
}

.search-actions {
    display: flex;
    gap: 10px;
    margin-top: 12px;
}

.reset-button {
    padding: 10px 20px;
    background-color: #f44336;
    color: white;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    font-size: 16px;
}

.reset-button:hover {
    background-color: #d32f2f;
}

/* Подсветка маркеров */
.route-marker.search-highlight {
    animation: highlightMarker 1s ease-in-out infinite;
}

@keyframes highlightMarker {
    0% {
        transform: scale(1);
    }

    50% {
        transform: scale(1.3);
    }

    100% {
        transform: scale(1);
    }
}

/* Стили для маршрутов при подсветке */
.leaflet-overlay-pane path {
    transition: stroke-width 0.3s, opacity 0.3s;
}

/* Канвас */
#canvas3 {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 400;
}

/* Кнопка закрытия десктопного попапа */
.leaflet-popup-close-button {
    /* margin-right: 3%; */
    color: white !important;
    margin-top: 5%;
    z-index: 9999;
    border: none !important;
    background: transparent !important;
}

/* Стили для кастомных маркеров */
.custom-boat-marker {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
}


/* Стили для элементов фильтра */
.filter-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 15px;
}

.filter-item {
    padding: 6px 12px;
    border: 1px solid #ddd;
    border-radius: 10px;
    cursor: pointer;
    transition: background-color 0.3s, color 0.3s, border-color 0.3s;
    font-size: 14px;
    background-color: #f9f9f9;
    color: #333;
}

.filter-item:hover {
    background-color: #e9e9e9;
    border-color: #ccc;
}

/* Стиль для активного (выбранного) фильтра */
.filter-item.active {
    background-color: #007bff;
    color: white;
    border-color: #007bff;
}

/* Стили для кнопок управления фильтрами */
.filter-section button {
    margin-right: 10px;
    padding: 8px 16px;
    border: none;
    border-radius: 5px;
    cursor: pointer;
    font-weight: 400;
    color: rgba(255, 255, 255, 1);
    background: transparent;
}

.filter-section button[onclick="applyFilters()"] {}

.filter-section button[onclick="resetFilters()"] {
    background: transparent;
}

.filter-section {
    display: none;
    position: absolute;
    z-index: 8;
    left: 20%;
    top: 10%;
}

.popup-content {
    background-color: rgba(53, 84, 108, 1);
}

.custom-popup {
    max-height: auto;
    border-radius: 16px;
}

/* Стили Leaflet для чистого попапа без стандартных элементов */
.leaflet-popup-content-wrapper {
    background: none !important;
    box-shadow: none !important;
    padding: 0 !important;
}

.leaflet-popup-content {
    margin: 0 !important;
}

.leaflet-popup-tip-container,
.leaflet-popup-tip {
    display: none !important;
}

.leaflet-popup-close-button {
    position: absolute;
    right: 12px;
    width: 30px;
    height: 30px;
    color: white !important;
    font-size: 46px !important;
    text-align: center;
    line-height: 30px;
    z-index: 10;
    cursor: pointer;
    font-weight: 100 !important;
}

/* Общие стили для кастомного попапа */
.custom-popup {
    width: 330px;
    font-family: 'Onest', sans-serif;
    /* background-color: rgba(25, 38, 64, 1); */
    border-radius: 16px;
    overflow: hidden;
    color: #fff;
    display: flex;
    flex-direction: column;
    position: relative;
}

.parent-popup {
    background-color: rgba(25, 38, 64, 1) !important;
    border-radius: 20px !important;
}

.meta-item1 {
    display: none;
}

.swiper-pagination-bullet-active {
    background: #fff !important;
}

/* --- Стили для РОДИТЕЛЬСКОГО попапа (вторая картинка) --- */
.parent-popup .popup-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 1;
}

.parent-popup .popup-overlay {
    position: relative;
    z-index: 2;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
}

.parent-popup .popup-content-wrapper {
    padding: 12px 16px;
}

.parent-popup .popup-body {
    display: flex;
    flex-direction: column;
    gap: 8px;
    background: transparent;
}

.parent-popup .popup-actions {
    padding: 16px 0 0 0;
    background: transparent;
}

/* Вертикальные иконки для родительского попапа */
.popup-side-icons {
    position: absolute;
    top: 50px;
    right: 16px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    z-index: 3;
}

.side-icon {
    width: 24px;
    height: 24px;
    opacity: 0.9;
}

/* --- Стили для ДОЧЕРНЕГО попапа (первая картинка) --- */
.child-popup .popup-header {
    height: 250px;
    position: relative;
}

.child-popup .popup-header .popup-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.child-popup .popup-content-area {
    position: relative;
    z-index: 2;
    margin-top: -20px;
    border-top-left-radius: 20px;
    border-top-right-radius: 20px;
    background-color: rgba(25, 38, 64, 1);
}

.child-popup .popup-body {
    padding: 20px 16px 8px 16px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.child-popup .popup-actions {
    padding: 8px 16px 16px 16px;
}


/* Общие элементы для обоих попапов */
.header-icons {
    position: absolute;
    top: 12px;
    left: 16px;
    z-index: 10;
}

.heart-icon {
    font-size: 24px;
    color: white;
    cursor: pointer;
}

.popup-title {
    font-size: 20px;
    font-weight: 700;
    margin: 0;
}

.popup-description {
    font-size: 14px;
    font-weight: 500;
    margin: 0;
}

.popup-address {
    font-size: 14px;
    /* font-weight: 400; */
    margin: 0;
}

.rating {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
}

.rating-score {
    font-weight: 500;
}

.rating-stars {
    color: #fff;
    font-size: 16px;
}

.review-count {
    opacity: 0.8;
}

/* Стили для кнопок (общие) */
.popup-actions {
    display: flex;
    gap: 8px;
}

.action-btn {
    flex-grow: 1;
    padding: 12px 8px;
    border-radius: 8px;
    background-color: #F3F3F3;
    color: #35546C;
    border: none;
    cursor: pointer;
    font-family: 'Onest', sans-serif;
    font-size: 14px;
    font-weight: 500;
    text-align: center;
    transition: background-color 0.2s;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    height: 31px;
}

.action-btn:hover {
    background-color: #e0e0e0;
}

.action-btn.route-btn {
    flex-grow: 2;
}

.action-btn img {
    width: 16px;
    height: 16px;
}

/* Контейнер для списка попапов */
.popup-list-container {
    position: relative;
    top: 16%;
    left: 4.6%;
    width: 80%;
    /* height: calc(100vh - 31vh); */
    background-color: rgba(255, 255, 255, 0.6);
    box-shadow: -2px 0 10px rgba(0, 0, 0, 0.15);
    z-index: 1001;
    overflow-y: auto;
    transition: right 0.4s ease-in-out;
    padding: 15px 15px 30px;
    box-sizing: border-box;
    display: none;
    scrollbar-width: none;
}

@media (max-width:768px) {
    .popup-list-container {
        top: 32%;
        left: 9.6%;
    }

}


/* Стили для самой кнопки закрытия */
.close-popup-btn {
    position: absolute;
    top: 0px;
    right: 0px;
    width: 32px;
    height: 32px;
    z-index: 10;
    transition: opacity 0.2s;
    padding: 3px 4px;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    font-weight: 400;
    color: rgba(255, 255, 255, 1);
    background: rgba(25, 38, 64, 1);
}


/* Обёртка для контента, чтобы скролл не залезал под кнопку */
.popup-content-wrapper {
    width: 100%;
    height: 100%;
    overflow-y: auto;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(13vw, 5fr));
    gap: 20px;
    scrollbar-width: none;
}

/* Класс для отображения контейнера */
.popup-list-container.active {
    right: 15px;
    display: block;
}

/* Стили для каждого попапа внутри списка */
.popup-list-container .custom-popup {
    margin-bottom: 20px;
    /* border: 1px solid #ddd; */
    border-radius: 8px;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}

.no-results-message {
    text-align: center;
    padding: 40px 20px;
    color: #777;
    font-size: 16px;
}

.filters-wrapper {
    position: absolute;
    top: 10%;
    left: 25%;
    z-index: 999;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.toggle-button {
    background-color: #35546C;
    color: white;
    border: none;
    padding: 10px 18px;
    border-radius: 8px;
    font-size: 15px;
    font-weight: 500;
    cursor: pointer;
    transition: background-color 0.2s, box-shadow 0.2s;
    width: 240px;
    text-align: left;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
}

.toggle-button:hover {
    background-color: #4a6e89;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.25);
}

.filter-category {
    margin-bottom: 20px;
}

.filter-category h5 {
    margin: 0 0 12px 0;
    font-size: 13px;
    font-weight: 600;
    color: #555;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.filter-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.filter-item {
    padding: 6px 14px;
    border: 1px solid #ccc;
    border-radius: 16px;
    cursor: pointer;
    transition: all 0.2s ease-in-out;
    font-size: 14px;
    background-color: #f0f2f5;
    color: #333;
    display: flex;
    align-items: center;
    gap: 6px;
}

.filter-item:hover {
    background-color: #e4e6e9;
    border-color: #aaa;
}

.filter-item.active {
    background-color: #35546C;
    color: white;
    border-color: #35546C;
    font-weight: 500;
}

/*  Адаптивность для мобильных устройств */
@media (max-width: 768px) {
    .filters-wrapper {
        left: 10px;
        right: 10px;
        top: 10px;
        width: auto;
    }

    .toggle-button {
        width: 100%;
    }

    .filter-section {
        width: 100%;
    }

    .popup-content-wrapper {
        grid-template-columns: 1fr !important;
        gap: 15px;
    }
}



/* Стили для кнопки сброса фильтров */
.filter-reset-btn-container {
    margin-top: 20px;
    padding-top: 15px;
    border-top: 1px solid #e0e0e0;
    display: flex;
}

.filter-reset-btn {

    font-size: 14px;
    font-weight: 600;
    color: #fff;
    background-color: #6c757d;
    border: none;
    border-radius: 8px;
    cursor: pointer;
    transition: background-color 0.2s, box-shadow 0.2s;
}

/* --- КНОПКА ДЛЯ ОТКРЫТИЯ/СКРЫТИЯ ФИЛЬТРОВ --- */
.toggle-button {
    background-color: #35546C;
    color: white;
    border: none;
    padding: 10px 18px;
    border-radius: 8px;
    font-size: 15px;
    font-weight: 500;
    cursor: pointer;
    transition: background-color 0.2s, box-shadow 0.2s;
    width: 240px;
    text-align: left;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
}

.toggle-button:hover {
    background-color: #4a6e89;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.25);
}

/* --- ЗАГОЛОВКИ ВНУТРИ ПАНЕЛИ --- */
.filter-section h4 {
    margin: 0 0 20px 0;
    padding-bottom: 15px;
    font-size: 18px;
    font-weight: 600;
    color: #111827;
    border-bottom: 1px solid #e5e7eb;
}

.filter-category {
    margin-bottom: 20px;
}

.filter-category:last-child {
    margin-bottom: 0;
}

.filter-category h5 {
    margin: 0 0 12px 0;
    font-size: 13px;
    font-weight: 600;
    color: #6b7280;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* --- СТИЛИ ДЛЯ САМИХ КНОПОК-ФИЛЬТРОВ --- */
.filter-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 10px;
}

.filter-item {
    padding: 6px 14px;
    border: 1px solid #d1d5db;
    border-radius: 16px;
    cursor: pointer;
    transition: all 0.2s ease-in-out;
    font-size: 14px;
    background-color: #f9fafb;
    color: #374151;
    user-select: none;

    .filter-icon {
        width: 30px;
    }
}

.filter-item:hover {
    background-color: #f3f4f6;
    border-color: #9ca3af;
}

.filter-item.active {
    background-color: #35546C;
    color: white;
    border-color: #35546C;
    font-weight: 500;
}

/* ---  АДАПТИВНОСТЬ --- */
@media (max-width: 768px) {
    .filters-wrapper {
        left: 10px;
        right: 10px;
        top: 10px;
        width: auto;
    }

    .toggle-button {
        width: 100%;
    }

    .filter-section {
        width: 100%;
    }
}

/* --- Стили для модального окна --- */
.modal-overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.6);
    z-index: 2000;
    justify-content: center;
    align-items: center;
}

/* Контейнер самого окна */
.modal-container {
    background-color: #fff;
    padding: 20px;
    border-radius: 8px;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);
    width: 90%;
    max-width: 400px;
}

/* Шапка окна */
.modal-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid #eee;
    padding-bottom: 10px;
    margin-bottom: 15px;
}

.modal-header h3 {
    margin: 0;
    font-size: 1.2em;
}

/* Кнопка "закрыть" */
.modal-close {
    font-size: 2em;
    font-weight: bold;
    cursor: pointer;
    color: #aaa;
    transition: color 0.2s;
}

.modal-close:hover {
    color: #333;
}

/* Контентная часть (для списка языков) */
.modal-content a {
    display: block;
    padding: 10px 5px;
    color: #333;
    text-decoration: none;
    border-radius: 4px;
    transition: background-color 0.2s;
}

.modal-content a:hover {
    background-color: #f0f0f0;
}

/* Класс для отображения модального окна */
.modal-active {
    display: flex;
}

.feedback-form-container {
    font-family: sans-serif;
    max-width: 500px;
    margin: auto;
}

.form-title {
    font-size: 24px;
    color: #333;
    text-align: center;
    margin-bottom: 20px;
}

.accordion-item {
    margin-bottom: 5px;
    border-bottom: 1px solid #e0e0e0;
}

.accordion-item summary {
    position: relative;
    padding: 15px 15px 15px 30px;
    cursor: pointer;
    font-size: 16px;
    list-style: none;
}

.accordion-item summary::before {
    content: '►';
    position: absolute;
    left: 10px;
    font-size: 12px;
    transition: transform 0.2s;
}

.accordion-item[open]>summary::before {
    transform: rotate(90deg);
}

/* Стили для полей ввода внутри аккордеона */
.accordion-item .form-fields {
    padding: 0 15px 15px 15px;
}

.accordion-item input[type="email"],
.accordion-item textarea {
    width: 100%;
    box-sizing: border-box;
    padding: 10px;
    border: 1px solid #ccc;
    border-radius: 4px;
    margin-top: 10px;
}

.accordion-item .g-recaptcha {
    margin-top: 15px;
}

.accordion-item .wpcf7-submit {
    display: block;
    width: auto;
    margin: 20px auto 0;
    padding: 12px 30px;
    border: none;
    border-radius: 20px;
    background-color: #3b5971;
    color: white;
    font-size: 16px;
    cursor: pointer;
}

.form-fields-wrapper input[type='text'] {
    width: 100%;
    box-sizing: border-box;
    padding: 10px;
    border: 1px solid #ccc;
    border-radius: 4px;
    margin-top: 12px;
    font-size: 15px;
}

/* форма */
.feedback-form-container {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    max-width: 500px;
    margin: auto;
    background: #fff;
    padding: 20px 30px;
    border-radius: 8px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
}

.form-title {
    font-size: 24px;
    font-weight: 600;
    color: #333;
    text-align: center;
    margin-bottom: 25px;
}


.accordion-item {
    margin-bottom: 5px;
    border-bottom: 1px solid #e0e0e0;
}

.accordion-item:last-of-type {
    border-bottom: none;
}

.accordion-item summary {
    position: relative;
    padding: 16px 16px 16px 35px;
    cursor: pointer;
    font-size: 16px;
    font-weight: 500;
    color: #444;
    list-style: none;
    transition: background-color 0.2s;
}

.accordion-item summary:hover {
    background-color: #f7f7f7;
}

.accordion-item summary::before {
    content: '►';
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%) rotate(0deg);
    font-size: 12px;
    color: #337ab7;
    transition: transform 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.accordion-item[open]>summary::before {
    transform: translateY(-50%) rotate(90deg);
}

.form-fields-wrapper {
    padding: 5px 15px 15px 15px;
    border-top: 1px solid #e8e8e8;
    margin-top: 5px;
}

.form-fields-wrapper input[type="email"],
.form-fields-wrapper textarea {
    width: 100%;
    box-sizing: border-box;
    padding: 10px;
    border: 1px solid #ccc;
    border-radius: 4px;
    margin-top: 12px;
    font-size: 15px;
}

.form-fields-wrapper .wpcf7-form-control-wrap {
    display: block;
    margin-bottom: 10px;
}

.form-fields-wrapper .g-recaptcha {
    margin-top: 15px;
}

.form-fields-wrapper .wpcf7-submit {
    display: block;
    width: auto;
    margin: 20px auto 0;
    padding: 12px 30px;
    border: none;
    border-radius: 25px;
    background-color: #3b5971;
    color: white;
    font-size: 16px;
    font-weight: bold;
    cursor: pointer;
    transition: background-color 0.2s, transform 0.1s;
}

.form-fields-wrapper .wpcf7-submit:hover {
    background-color: #4a6d88;
}

.form-fields-wrapper .wpcf7-submit:active {
    transform: scale(0.98);
}

.feedback-modal-overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.6);
    z-index: 1000;
    justify-content: center;
    align-items: center;
}

.feedback-modal-overlay.feedback-modal-active {
    display: flex;
}

.feedback-modal-container {
    width: 90%;
    max-width: 500px;
}

/* --- Внутреннее содержимое (форма) --- */
.feedback-form-container {
    font-family: sans-serif;
    background: #fff;
    padding: 20px 30px;
    border-radius: 8px;
    box-shadow: 0 4px S15px rgba(0, 0, 0, 0.1);
}

.feedback-modal-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 15px;
}

.form-title {
    font-size: 22px;
    font-weight: 600;
    color: #333;
    margin: 0;
}

.feedback-modal-close {
    font-size: 2em;
    font-weight: bold;
    cursor: pointer;
    color: #aaa;
    line-height: 1;
}

.accordion-item {
    border-bottom: 1px solid #e0e0e0;
}

.accordion-item:last-of-type {
    border-bottom: none;
}

.accordion-item summary {
    position: relative;
    padding: 15px 15px 15px 35px;
    cursor: pointer;
    font-size: 16px;
    list-style: none;
}

.accordion-item summary::before {
    content: '►';
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 12px;
    transition: transform 0.2s;
}

.accordion-item[open]>summary::before {
    transform: translateY(-50%) rotate(90deg);
}

.form-fields-wrapper {
    padding: 10px 15px 15px;
    border-top: 1px solid #e8e8e8;
    margin-top: 5px;
}

/* Общий контейнер для кастомных попапов Leaflet */
.custom-popup-container .leaflet-popup-content-wrapper {
    background: transparent;
    box-shadow: none;
    border: none;
}

.custom-popup-container .leaflet-popup-content {
    margin: 0;
    padding: 0;
    max-width: 600px;
}

/* Общие стили для кнопок в попапе */
.custom-popup .popup-actions {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    padding: 12px 16px;
    background-color: rgba(25, 38, 64, 1);
    border-bottom-left-radius: 12px;
    border-bottom-right-radius: 12px;
}


/* .abroute {
    background: linear-gradient(135deg, rgba(212, 175, 55, 1) 0%, rgba(212, 175, 55, 0.8) 100%) !important;
    color: #000 !important;
} */


.custom-popup .action-btn {
    background-color: transparent;
    color: white;
    border: 1px solid rgba(255, 255, 255, 1);
    border-radius: 8px;
    padding: 10px 5px;
    font-size: 13px;
    cursor: pointer;
    transition: background-color 0.3s;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    font-weight: 500;
}

.custom-popup .action-btn:hover {
    background-color: rgba(255, 255, 255, 0.2);
}

.custom-popup .action-btn img {
    width: 16px;
    height: 16px;
}

.custom-popup .rating {
    display: flex;
    align-items: center;
    gap: 8px;
    color: white;
    font-size: 14px;
    margin: 8px 0;
}

.custom-popup .rating-stars {
    color: #FFD700;
}

.custom-popup .review-count {
    color: #B0C4DE;
}

/* Иконка сердца (избранное) */
.custom-popup .header-icons {
    position: absolute;
    top: 12px;
    left: 12px;
    z-index: 10;
}

.custom-popup .heart-icon {
    font-size: 28px;
    cursor: pointer;
}

/* --- Стили для родительского попапа (Parent Popup) --- */

.parent-popup {
    position: relative;
    width: 330px;
    height: 433px;
    border-radius: 12px;
    overflow: hidden;
    color: white;
}

.parent-popup {
    .popup-actions {
        background: transparent;
    }
}

/* Изображение как фон */
.parent-popup .popup-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 1;
}

/* Полупрозрачное наложение для читаемости текста */
.parent-popup .popup-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;

    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

/* Контейнер для иконок справа */
.parent-popup .popup-side-icons {
    position: absolute;
    top: 12px;
    right: 12px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    z-index: 3;
}

.parent-popup .side-icon {
    width: 32px;
    height: 32px;
    padding: 5px;


    border-radius: 50%;
}


/* Блок с текстовым содержимым */
.parent-popup .popup-content-wrapper {
    position: relative;
    z-index: 3;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    height: 100%;
}

.parent-popup .popup-body {
    padding: 0 16px 12px 16px;
}

.parent-popup .popup-title {
    font-size: 22px;
    margin: 0;
    font-weight: bold;
}

.parent-popup .popup-address {
    font-size: 14px;
    color: #E0E0E0;
    margin: 4px 0 0 0;
}

.relevanssi-live-search-results {
    z-index: 99999 !important;
    position: absolute;
    background-color: #ffffff;
    border: 1px solid #ccc;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
    border-radius: 4px;
    margin-top: 5px;
    width: 300px;
    max-height: 400px;
    overflow-y: auto;
}

/* Стили для каждого элемента в списке результатов */
.relevanssi-live-search-result {
    padding: 10px 15px;
    border-bottom: 1px solid #eee;
    transition: background-color 0.2s;
}

.relevanssi-live-search-result:last-child {
    border-bottom: none;
}

.relevanssi-live-search-result:hover {
    background-color: #f5f5f5;
}

.relevanssi-live-search-result a {
    text-decoration: none;
    color: #333;
    display: block;
}

.relevanssi-live-search-result .live-search-title {
    font-weight: bold;
    font-size: 16px;
    margin: 0 0 5px 0;
}

.relevanssi-live-search-result .live-search-excerpt {
    font-size: 14px;
    color: #555;
}

.relevanssi-no-results {
    padding: 15px;
    color: #777;
}


/* --- ОБЩИЙ КОНТЕЙНЕР ДЛЯ ПОЗИЦИОНИРОВАНИЯ --- */
.filters-wrapper {
    position: absolute;
    top: 20px;
    left: 20px;
    z-index: 999;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

/* ---  КНОПКИ ДЛЯ ОТКРЫТИЯ/СКРЫТИЯ ПАНЕЛЕЙ ФИЛЬТРОВ --- */
.toggle-button {
    display: flex;
    align-items: center;
    gap: 10px;
    background-color: #35546C;
    color: white;
    border: none;
    padding: 12px 18px;
    border-radius: 8px;
    font-family: 'Onest', sans-serif;
    font-size: 15px;
    font-weight: 500;
    cursor: pointer;
    transition: background-color 0.2s, box-shadow 0.2s;
    width: 250px;
    text-align: left;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
}

.toggle-button:hover {
    background-color: #4a6e89;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.25);
}

.toggle-button img.toggle-icon {
    width: 20px;
    height: 20px;
}

/* --- ОСНОВНАЯ ПАНЕЛЬ ФИЛЬТРОВ (БЕЛЫЙ БЛОК) --- */
.filter-section {
    display: none;
    flex-direction: column;
    padding: 20px;
    border-radius: 16px;
    margin-top: 5px;
    font-family: 'Onest', sans-serif;
}

.filter-close-btn:hover {
    opacity: 0.7;
}

.filter-close-btn svg {
    width: 24px;
    height: 24px;
    margin-top: -3px;
    margin-left: -12px;
    color: #666;
}

.filter-section-routes {
    display: none;
    flex-direction: column;
    padding: 20px;
    border-radius: 8px;
    position: absolute;
    max-width: 91vw;
    z-index: 8;
    left: 96px;
    top: 5px;

    button {
        margin-right: 10px;
        padding: 8px 16px;
        border: none;
        border-radius: 5px;
        cursor: pointer;
        font-weight: 400;
        color: rgba(255, 255, 255, 1);
        background: transparent;
        align-items: center;
    }
}

/* --- ЗАГОЛОВКИ ВНУТРИ ПАНЕЛИ --- */
.filter-section h4 {
    margin: 0 0 20px 0;
    padding-bottom: 15px;
    font-size: 18px;
    font-weight: 600;
    color: #111827;
    border-bottom: 1px solid #e5e7eb;
}

.filter-category {
    margin-bottom: 25px;
}

.filter-group {
    flex-direction: row;
}

.filter-section:first {
    background-color: rgba(53, 84, 108, 0.5);
}

#filtersection-filter-organizations {
    background-color: rgba(53, 84, 108, 0.5);
    backdrop-filter: blur(200px);
    -webkit-backdrop-filter: blur(200px);
    padding: 15px 5px 15px 5px;
    border-radius: 8px 8px 0 0;

}

#filtersectionroutes-filter-organizations {
    background-color: rgba(53, 84, 108, 0.5);
    backdrop-filter: blur(200px);
    -webkit-backdrop-filter: blur(200px);
    padding: 15px 5px 15px 5px;
    border-radius: 8px 8px 0 0;
}


#filtersection-filter-sections {
    background-color: rgba(0, 0, 0, 0.1);
    backdrop-filter: blur(200px);
    -webkit-backdrop-filter: blur(200px);
    padding: 15px 5px 15px 5px;
}

#filtersectionroutes-filter-sections {
    background-color: rgba(0, 0, 0, 0.1);
    backdrop-filter: blur(200px);
    -webkit-backdrop-filter: blur(200px);
    padding: 15px 5px 15px 5px;
}


#filtersection-filter-categories {
    background-color: rgba(255, 255, 255, 0.2);
    backdrop-filter: blur(200px);
    -webkit-backdrop-filter: blur(200px);
    padding: 15px 5px 15px 5px;
}


#filtersectionroutes-filter-categories {
    background-color: rgba(255, 255, 255, 0.2);
    backdrop-filter: blur(200px);
    -webkit-backdrop-filter: blur(200px);
    padding: 15px 5px 15px 5px;
}


.filter-category:last-child {
    margin-bottom: 10px;
}

.filter-category h5 {
    margin: 0 0 12px 0;
    font-size: 13px;
    font-weight: 600;
    color: #6b7280;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* --- СТИЛИ ДЛЯ САМИХ КНОПОК-ФИЛЬТРОВ --- */
.filter-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 10px;
}

.filter-item {
    display: flex;
    align-items: center;
    gap: 5px;
    padding: 7px 18px;
    border: 1px solid #54600B;
    cursor: pointer;
    transition: all 0.2s ease-in-out;
    font-size: 14px;
    background-color: #54600B;
    color: white;
    user-select: none;

}

.filter-item img.filter-icon {
    width: 16px;
    height: 16px;
}

.popup-actions .svg-container svg {
    margin: 0px;
    margin-top: -5px;
}

.svg-container {
    margin-top: auto;

    border-radius: 8px;

    height: 43.33px;
    cursor: pointer;

}

.filter-item:hover {
    background-color: #417A60;
    border-color: #417A60;
}

.filter-item.active {
    background-color: #35546C;
    color: white;
    border-color: #35546C;
    font-weight: 500;
}

/* ---  КНОПКА СБРОСА ФИЛЬТРОВ --- */
.filter-reset-btn-container {
    margin-top: 20px;
    padding-top: 15px;
    border-top: 1px solid #e5e7eb;
    display: flex;
}

.filter-reset-btn {
    font-size: 14px;
    font-weight: 600;
    color: #374151;
    background-color: #f0f2f5;
    border: 1px solid #d1d5db;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.2s ease;
}


/* --- АДАПТИВНОСТЬ --- */
@media (max-width: 768px) {
    .filters-wrapper {
        left: 10px;
        right: 10px;
        top: 10px;
        width: auto;
    }

    .toggle-button {
        width: 100%;
    }

    .filter-section {
        width: 100%;
        box-sizing: border-box;
    }
}



.filter-section {
    padding: 20px;
    border-radius: 8px;
    position: absolute;
    max-width: 91vw;
}

.filter-group {
    margin-bottom: 15px;
}

.filter-group label {
    display: block;
    margin-bottom: 8px;
    font-weight: 600;
    color: #333;
}

.filter-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    opacity: 90%;
}

.filter-button {
    padding: 8px 16px;
    border: 2px solid #ddd;
    border-radius: 40px;
    font-size: 14px;
    cursor: pointer;
    transition: all 0.3s ease;
    position: relative;
    min-height: 36px;
    display: flex;
    align-items: center;
    gap: 8px;
    white-space: nowrap;
}

.filter-button.active {
    background: #007bff;
    border-color: #007bff;
    color: white;
}

.filter-button:not(.active):hover {
    border-color: #888;
}

.filter-button i {
    font-size: 16px;
    opacity: 0.8;
}

.counter {
    position: absolute;
    top: -5px;
    right: -5px;
    background: #007bff;
    color: white;
    width: 30px;
    height: 20px;
    border-radius: 4px;
    font-size: 12px;
    text-align: center;
    line-height: 20px;
}

.action-buttons {
    display: flex;
    gap: 10px;
    margin-top: 20px;
}

.action-button {
    padding: 8px 20px;
    border-radius: 40px;
    font-size: 14px;
    cursor: pointer;
    transition: all 0.3s ease;
    border: none;
    background: #f0f0f0;
}

.action-button:hover {
    background: #e0e0e0;
}

/* Специфические стили для категорий */
.organization-filter .filter-button {
    border-color: #007bff;
}

.group-filter .filter-button {
    border-color: #28a745;
}

.subgroup-filter .filter-button {
    border-color: #ffc107;
}

.tag-filter .filter-button {
    border-color: #6c757d;
}

.filter-group {
    margin-bottom: -15px;
}

#filtersection-filter-tags {
    background-color: rgba(107, 114, 128, 0.5);
    backdrop-filter: blur(200px);
    -webkit-backdrop-filter: blur(200px);
    padding: 15px 5px 15px 5px;
    border-radius: 0 0 8px 8px;
}

#filtersectionroutes-filter-tags {
    background-color: rgba(107, 114, 128, 0.5);
    backdrop-filter: blur(200px);
    -webkit-backdrop-filter: blur(200px);
    padding: 15px 5px 15px 5px;
    border-radius: 0 0 8px 8px;
}

#filtersectionroutes-close-btn {
    position: absolute;
    top: 10px;
    right: 10px;
    width: 32px;
    height: 32px;
    z-index: 10;
    transition: opacity 0.2s;
    padding: 8px 16px;
    border: none;
    border-radius: 5px;
    cursor: pointer;
    font-weight: 400;
    color: rgba(255, 255, 255, 1);
    background: rgba(25, 38, 64, 1);
}

.button-filter {
    width: max-content;
    box-sizing: border-box;
    background-color: rgba(53, 84, 108, 0.2);
    backdrop-filter: blur(200px);
    -webkit-backdrop-filter: blur(200px);
    opacity: 0.9;
    padding: 5px 0 5px 0;
    border-radius: 0 0 8px 8px;
}

.button-filter {
    display: flex;
}

.button-filter button {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
}

.button-filter p {
    margin-left: 10px;
}

.filter-section {
    left: 96px;
    top: 5px;
}

.popup-header {
    img {
        mask-size: cover;
        mask-position: center;
    }
}

.leaflet-popup-content {
    width: max-content !important;
}


.child-popup .popup-header {
    height: 200px;
    position: relative;
    border-top-left-radius: 16px;
    border-top-right-radius: 16px;
    overflow: hidden;
}

/* Главный контейнер слайдера в попапе */
.child-popup .gallery-slider {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
}

/* Базовый стиль для всех картинок в слайдере */
.child-popup .slider-image {
    display: none;
    width: 100%;
    height: 100%;
    object-fit: cover;
    animation: fadeIn 0.4s;
}

/* Стиль для активной (видимой) картинки */
.child-popup .slider-image.active-slide {
    display: block;
}

/* Контейнер для точек пагинации */
.child-popup .slider-dots {
    position: absolute;
    bottom: 10px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 8px;
    padding: 5px;
    border-radius: 12px;
    z-index: 3;
}

/* Стиль для одной точки */
.child-popup .slider-dot {
    width: 10px;
    height: 10px;
    background-color: rgba(255, 255, 255, 0.5);
    border-radius: 50%;
    cursor: pointer;
    transition: background-color 0.3s ease;
}

/* Стиль для активной точки */
.child-popup .slider-dot.active-dot {
    background-color: #ffffff;
}

/* Иконки в шапке (сердце) должны быть поверх всего */
.child-popup .header-icons {
    position: absolute;
    top: 12px;
    left: 16px;
    z-index: 3;
}

/* Контентная часть дочернего попапа */
.child-popup .popup-content-area {
    position: relative;
    z-index: 2;
    margin-top: -20px;
    border-top-left-radius: 20px;
    border-top-right-radius: 20px;
    background-color: rgba(25, 38, 64, 1);
    padding-top: 1px;
}

.child-popup .popup-body {
    padding: 20px 16px 8px 16px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.child-popup .popup-actions {
    padding: 8px 16px 16px 16px;
}



.parent-popup {
    img {
        mask-image: linear-gradient(to bottom, #35546C 59.52%, rgba(103, 103, 103, 0.432874) 74.44%, rgba(255, 255, 255, 0) 96.22%);
        mask-size: cover;
        mask-position: center;
    }
}

/* Простая анимация появления */
@keyframes fadeIn {
    from {
        opacity: 0.4;
    }

    to {
        opacity: 1;
    }
}


/* info  */

#info-bottom2 {
    position: fixed;
    bottom: 3%;
    left: 7%;
    z-index: 3;
}

@media(max-width:768px) {
    #info-bottom2 {
        bottom: 60px;
        left: 2%;
    }
}

/*стили title странцы */
#info-bottom2 p {
    font-family: 'Onest', sans-serif;
    font-size: clamp(16px, 4vw, 26px);
    font-weight: 400;
    color: #FFFFFF;
    line-height: 1.4;
    text-shadow: 0px 2px 8px rgba(0, 0, 0, 0.7);
}

/* Стили для блока в правом нижнем углу */
#info-bottom {
    position: fixed;
    bottom: 7px;
    right: 20px;
    z-index: 3;
    font-family: 'Onest', sans-serif;
}

#info-bottom ul {
    display: flex;
    flex-direction: row;
    gap: 20px;
    list-style: none;
    margin: 0;
    padding: 0;
}

#info-bottom li {
    display: inline-flex;
    align-items: center;
}

#info-bottom a {
    color: #ffffff;
    text-decoration: none;
    font-size: 12px;
    font-weight: 400;
    transition: color 0.2s ease;
}

#info-bottom a:hover {
    color: #e0e0e0;
}

/* Адаптивность для маленьких экранов */
@media (max-width: 768px) {
    #info-bottom {
        bottom: 10px;
        right: 10px;
    }

    #info-bottom ul {
        flex-wrap: wrap;
        gap: 10px;
    }

    #info-bottom a {
        font-size: 12px;
    }
}

.text-advertising {
    color: rgba(255, 255, 255, 0.7);
    font-size: 10px;
    font-weight: 400;
    line-height: 23px;
    font-family: 'Onest', sans-serif;

}

/* Стили для блока рекламы */
.text-advertising-link {
    text-align: end;
    font-family: 'Onest', sans-serif;
    margin: 0;
}

.text-advertising-link a {
    text-decoration: none;
    background: linear-gradient(90deg,
            rgba(255, 255, 255, 1),
            rgba(168, 207, 183, 1),
            rgba(212, 175, 55, 1));
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    font-size: 12px;
    font-weight: 400;
    line-height: 23px;
    font-family: 'Onest', sans-serif;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    transition: all 0.2s ease;
}

.text-advertising-link a:hover {
    color: rgba(255, 244, 214, 0.8);
}

.text-advertising-link a::before {
    content: '';
    display: inline-block;
    width: 16px;
    height: 16px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='rgba(255, 244, 214, 1)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2' ry='2'/%3E%3Cpath d='M6 8h12M6 12h12M6 16h12'/%3E%3C/svg%3E");
    background-size: contain;
    background-repeat: no-repeat;
}

#search-input {
    width: 383px;
    height: 34px;
    border: 1px solid #35546C;
    border-radius: 8px;
    padding: 10px;
}

.search-type-toggle {
    margin-top: 10px;
}

input[name="search-type"] {
    width: 16px;
    height: 16px;
}

.search-type-toggle {
    display: flex;
}

.radioContainer:nth-last-of-type {
    margin-left: 15px;
}

/* Адаптивность для маленьких экранов */
@media (max-width: 768px) {
    .text-advertising-link {
        bottom: 30px;
        right: 10px;
    }

    .text-advertising-link a {
        font-size: 12px;
        line-height: 20px;
        gap: 6px;
    }

    .text-advertising-link a::before {
        width: 14px;
        height: 14px;
    }
}



/* =================================================================== */
/* == СТИЛИ ДЛЯ МОДАЛЬНОГО ОКНА ОБРАТНОЙ СВЯЗИ == */
/* =================================================================== */

#feedback-modal-overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.6);
    z-index: 2000;
    justify-content: center;
    align-items: center;
    padding: 15px;
    box-sizing: border-box;
}

#feedback-modal-overlay.feedback-modal-active {
    display: flex;
}

/* Контейнер самого окна */
.feedback-modal-container {
    width: 100%;
    max-width: 500px;
    max-height: 90vh;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

/*  Основной белый блок формы */
.feedback-form-container {
    background: #fff;
    padding: 25px 30px;
    border-radius: 12px;
    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.2);
}

/*  Шапка окна */
.feedback-modal-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
}

.feedback-modal-header .form-title {
    font-size: 22px;
    font-weight: 600;
    color: #333;
    margin: 0;
}

.feedback-modal-close {
    font-size: 2.2em;
    font-weight: 300;
    cursor: pointer;
    color: #aaa;
    line-height: 0.8;
    transition: color 0.2s;
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.feedback-modal-close:hover {
    color: #333;
}

/* Стили для баяна */
.accordion-item {
    border-bottom: 1px solid #e0e0e0;
}

.accordion-item:last-of-type {
    border-bottom: none;
}

.accordion-item summary {
    position: relative;
    padding: 16px 10px 16px 35px;
    cursor: pointer;
    font-size: 16px;
    font-weight: 500;
    color: #444;
    list-style: none;
    transition: background-color 0.2s;
    user-select: none;
}

.accordion-item summary:hover {
    background-color: #f7f7f7;
}

.accordion-item summary::before {
    content: '►';
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%) rotate(0deg);
    font-size: 12px;
    color: #35546C;
    transition: transform 0.3s;
}

.accordion-item[open]>summary::before {
    transform: translateY(-50%) rotate(90deg);
}

/* Стили для полей формы Cf7 */
.form-wrapper .wpcf7-form-control {
    width: 100%;
    box-sizing: border-box;
    padding: 12px;
    border: 1px solid #ccc;
    border-radius: 6px;
    margin-top: 8px;
    font-size: 15px;
    font-family: 'Onest', sans-serif;
    -webkit-appearance: none;
    appearance: none;
}

.form-wrapper .wpcf7-form-control-wrap {
    display: block;
    margin-bottom: 15px;
}

.form-wrapper .wpcf7-submit {
    display: block;
    width: auto;
    min-width: 140px;
    margin: 20px auto 0;
    padding: 12px 35px;
    border: none;
    border-radius: 25px;
    background-color: #35546C;
    color: white;
    font-size: 16px;
    font-weight: 500;
    cursor: pointer;
    transition: background-color 0.2s, transform 0.1s;
    touch-action: manipulation;
}

.form-wrapper .wpcf7-submit:hover {
    background-color: #4a6d88;
}

.form-wrapper .wpcf7-submit:active {
    transform: scale(0.98);
}

/* =================================================================== */
/* == АДАПТИВНЫЕ СТИЛИ ДЛЯ МОБИЛЬНЫХ УСТРОЙСТВ == */
/* =================================================================== */

/* Планшеты и маленькие ноутбуки */
@media (max-width: 768px) {
    .feedback-form-container {
        padding: 20px 25px;
    }

    .feedback-modal-header .form-title {
        font-size: 20px;
    }

    .accordion-item summary {
        padding: 14px 10px 14px 35px;
        font-size: 15px;
    }

    .form-wrapper .wpcf7-submit {
        padding: 14px 40px;
        width: 100%;
        max-width: 300px;
    }
}

@media (max-width: 480px) {
    .feedback-form-container {
        padding: 18px 20px;
        border-radius: 10px;
    }

    .feedback-modal-header {
        margin-bottom: 15px;
    }

    .feedback-modal-header .form-title {
        font-size: 18px;
    }

    .feedback-modal-close {
        font-size: 1.8em;
        width: 36px;
        height: 36px;
    }

    .accordion-item summary {
        padding: 12px 10px 12px 32px;
        font-size: 14px;
    }

    .accordion-item summary::before {
        left: 10px;
        font-size: 11px;
    }

    .form-wrapper .wpcf7-form-control {
        padding: 14px 12px;
        font-size: 16px;
    }

    .form-wrapper .wpcf7-form-control[type="email"],
    .form-wrapper .wpcf7-form-control[type="tel"],
    .form-wrapper .wpcf7-form-control[type="text"],
    .form-wrapper .wpcf7-textarea {
        min-height: 44px;
    }

    .form-wrapper .wpcf7-textarea {
        min-height: 100px;
        resize: vertical;
    }

    .form-wrapper .wpcf7-submit {
        padding: 15px 20px;
        font-size: 17px;
    }
}

@media (max-width: 360px) {
    .feedback-form-container {
        padding: 15px;
    }

    .feedback-modal-header .form-title {
        font-size: 17px;
    }

    .accordion-item summary {
        padding: 10px 8px 10px 28px;
        font-size: 13px;
    }

    .accordion-item summary::before {
        left: 8px;
    }

    .form-wrapper .wpcf7-form-control {
        padding: 12px 10px;
    }
}

/* Ландшафтная ориентация на мобильных */
@media (max-height: 500px) and (orientation: landscape) {
    #feedback-modal-overlay {
        align-items: flex-start;
        padding-top: 20px;
        padding-bottom: 20px;
    }

    .feedback-modal-container {
        max-height: 85vh;
    }

    .feedback-form-container {
        padding: 15px 20px;
    }
}

@media (min-height: 800px) {
    .feedback-modal-container {
        max-height: 80vh;
    }
}

@media screen and (max-width: 768px) {
    .form-wrapper .wpcf7-form-control {
        font-size: 16px !important;
    }
}

/* внешний вид выделенного поля */
.form-wrapper .wpcf7-form-control:focus {
    outline: none;
    border-color: #35546C;
    box-shadow: 0 0 0 2px rgba(53, 84, 108, 0.2);
}

.filter-item.disabled {
    opacity: 0.5;
    cursor: not-allowed;
    background-color: #f0f0f0;
    pointer-events: none;
    display: none;
}

.filter-item.disabled:hover {
    box-shadow: none;
    transform: none;
}

.filter-section.active {
    display: flex;
    flex-direction: column;

}


/* Мобильные стили для фильтров */
@media (max-width: 767px) {
    .filters-wrapper {
        left: 10px;
        right: 10px;
        top: 10px;
        width: auto;
    }

    .toggle-button {
        width: 100%;
    }

    .filter-section {
        width: 100%;
        box-sizing: border-box;
        left: 4%;
        top: 60px;
    }

    .filter-section.active {
        display: flex;
    }

    .filter-list {
        display: flex;
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scroll-snap-type: x proximity;
        padding: 0 10px 10px 10px;
        scrollbar-width: none;
        -ms-overflow-style: none;
        gap: 8px;
    }

    .filter-list::-webkit-scrollbar {
        display: none;
    }

    .filter-item {
        flex: 0 0 auto;
        scroll-snap-align: start;

        padding: 7px 14px;
    }

    .filter-category {
        width: 100%;
        overflow: hidden;
    }

    .filter-section .filter-list {
        margin-bottom: 10px;
    }
}

.filter-section-routes.active {
    display: flex;
}

.animated-vehicle-container {
    background: none !important;
    border: none !important;
    pointer-events: none !important;
}

.animated-icon-wrapper {
    position: relative !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.animated-icon-img {
    transition: transform 0.15s linear !important;
    will-change: transform !important;
    transform-origin: center center !important;
    backface-visibility: hidden !important;
    -webkit-backface-visibility: hidden !important;
    image-rendering: optimizeSpeed !important;
    pointer-events: auto !important;
}

.leaflet-marker-icon.animated-vehicle-container {
    transition: none !important;
}

.leaflet-div-icon {
    background: transparent !important;
    border: none !important;
}

.custom-animated-vehicle {
    pointer-events: none !important;
    transform-origin: center center !important;
}

.custom-animated-vehicle img {
    image-rendering: pixelated !important;
    image-rendering: -moz-crisp-edges !important;
    image-rendering: crisp-edges !important;
}

.animated-vehicle-div {
    pointer-events: none !important;
}

.animated-vehicle-div img {
    image-rendering: pixelated !important;
    image-rendering: -moz-crisp-edges !important;
    image-rendering: crisp-edges !important;
}

.invisible-marker {
    display: none !important;
}



/* Стили только для попапа "Финиш" */
.finish-popup .leaflet-popup-content-wrapper {
    background-color: rgba(53, 84, 108, 1) !important;
    display: flex;
    align-items: center;
    text-align: center !important;
    border-radius: 10px !important;
    width: 100px !important;
    height: 30px !important;
}

.finish-popup b {
    position: relative;
    bottom: 2%;
    left: 50%;
    text-align: center !important;
    color: white !important;
    font-weight: 400 !important;
}

.finish-popup .leaflet-popup-tip {
    background-color: rgba(53, 84, 108, 1) !important;
}

.admin-popup .leaflet-popup-content-wrapper {
    background-color: rgb(139, 175, 202) !important;
    display: flex;
    align-items: center;
    text-align: center !important;
    border-radius: 10px !important;
    width: 320px !important;
    height: 40px !important;
}

.admin-popup .leaflet-popup-tip {
    position: relative;
    bottom: 2%;
    left: 50%;
    text-align: center !important;
    color: white !important;
    font-weight: 400 !important;
}


/* ------------------ */
.bondImage {
    position: absolute;
    z-index: 402;
    top: 20%;
    right: -10px;
    width: 260px;
    height: auto;
    -webkit-transform: translateY(-50%);
    -moz-transform: translateY(-50%);
    transform: translateY(-50%);
    -webkit-animation: floatLeft 90s linear infinite;
    -moz-animation: floatLeft 90s linear infinite;
    -o-animation: floatLeft 90s linear infinite;
    animation: floatLeft 90s linear infinite;
}


@-webkit-keyframes floatLeft {
    0% {
        -webkit-transform: translateY(-50%) translateX(0);
        opacity: 0.8;
    }

    50% {
        opacity: 1;
    }

    100% {
        -webkit-transform: translateY(-50%) translateX(calc(-100vw - 100%));
        opacity: 0.8;
    }
}

@-moz-keyframes floatLeft {
    0% {
        -moz-transform: translateY(-50%) translateX(0);
        opacity: 0.8;
    }

    50% {
        opacity: 1;
    }

    100% {
        -moz-transform: translateY(-50%) translateX(calc(-100vw - 100%));
        opacity: 0.8;
    }
}

@-o-keyframes floatLeft {
    0% {
        -o-transform: translateY(-50%) translateX(0);
        opacity: 0.8;
    }

    50% {
        opacity: 1;
    }

    100% {
        -o-transform: translateY(-50%) translateX(calc(-100vw - 100%));
        opacity: 0.8;
    }
}

@keyframes floatLeft {
    0% {
        transform: translateY(-50%) translateX(0);
        opacity: 0.8;
    }

    50% {
        opacity: 1;
    }

    100% {
        transform: translateY(-50%) translateX(calc(-100vw - 100%));
        opacity: 0.8;
    }
}


.bondImage2 {
    position: absolute;
    z-index: 402;
    top: 30%;
    right: -10px;
    width: 160px;
    height: auto;
    -webkit-transform: translateY(-50%);
    -moz-transform: translateY(-50%);
    transform: translateY(-50%);
    -webkit-animation: floatLeft 170s linear infinite;
    -moz-animation: floatLeft 170s linear infinite;
    -o-animation: floatLeft 170s linear infinite;
    animation: floatLeft 170s linear infinite;
}

@-webkit-keyframes floatLeft {
    0% {
        -webkit-transform: translateY(-50%) translateX(0);
        opacity: 0.8;
    }

    50% {
        opacity: 1;
    }

    100% {
        -webkit-transform: translateY(-50%) translateX(calc(-100vw - 100%));
        opacity: 0.8;
    }
}

@-moz-keyframes floatLeft {
    0% {
        -moz-transform: translateY(-50%) translateX(0);
        opacity: 0.8;
    }

    50% {
        opacity: 1;
    }

    100% {
        -moz-transform: translateY(-50%) translateX(calc(-100vw - 100%));
        opacity: 0.8;
    }
}

@-o-keyframes floatLeft {
    0% {
        -o-transform: translateY(-50%) translateX(0);
        opacity: 0.8;
    }

    50% {
        opacity: 1;
    }

    100% {
        -o-transform: translateY(-50%) translateX(calc(-100vw - 100%));
        opacity: 0.8;
    }
}

@keyframes floatLeft {
    0% {
        transform: translateY(-50%) translateX(0);
        opacity: 0.8;
    }

    50% {
        opacity: 1;
    }

    100% {
        transform: translateY(-50%) translateX(calc(-100vw - 100%));
        opacity: 0.8;
    }
}

.bondImage3 {
    position: absolute;
    z-index: 402;
    top: 14%;
    right: -10px;
    width: 100px;
    height: auto;
    -webkit-transform: translateY(-50%);
    -moz-transform: translateY(-50%);
    transform: translateY(-50%);
    -webkit-animation: floatLeft 120s linear infinite;
    -moz-animation: floatLeft 120s linear infinite;
    -o-animation: floatLeft 120s linear infinite;
    animation: floatLeft 120s linear infinite;
}

@-webkit-keyframes floatLeft {
    0% {
        -webkit-transform: translateY(-50%) translateX(0);
        opacity: 0.8;
    }

    50% {
        opacity: 1;
    }

    100% {
        -webkit-transform: translateY(-50%) translateX(calc(-100vw - 100%));
        opacity: 0.8;
    }
}

@-moz-keyframes floatLeft {
    0% {
        -moz-transform: translateY(-50%) translateX(0);
        opacity: 0.8;
    }

    50% {
        opacity: 1;
    }

    100% {
        -moz-transform: translateY(-50%) translateX(calc(-100vw - 100%));
        opacity: 0.8;
    }
}

@-o-keyframes floatLeft {
    0% {
        -o-transform: translateY(-50%) translateX(0);
        opacity: 0.8;
    }

    50% {
        opacity: 1;
    }

    100% {
        -o-transform: translateY(-50%) translateX(calc(-100vw - 100%));
        opacity: 0.8;
    }
}

@keyframes floatLeft {
    0% {
        transform: translateY(-50%) translateX(0);
        opacity: 0.8;
    }

    50% {
        opacity: 1;
    }

    100% {
        transform: translateY(-50%) translateX(calc(-100vw - 100%));
        opacity: 0.8;
    }
}

.bondImage6 {
    position: absolute;
    z-index: 402;
    top: 40%;
    right: -10px;
    width: 60px;
    height: auto;
    -webkit-transform: translateY(-50%);
    -moz-transform: translateY(-50%);
    transform: translateY(-50%);
    -webkit-animation: floatLeft 140s linear infinite;
    -moz-animation: floatLeft 140s linear infinite;
    -o-animation: floatLeft 140s linear infinite;
    animation: floatLeft 140s linear infinite;
}

/* Стили для частиц салюта */
.firework-particle {
    position: fixed;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    pointer-events: none;
    z-index: 1000;
    animation: firework 1.5s ease-out forwards;
}

/* Разные цвета для частиц */
.firework-particle.red {
    background: #ff0000;
}

.firework-particle.blue {
    background: #00b7eb;
}

.firework-particle.yellow {
    background: #ffff00;
}

.firework-particle.green {
    background: #00ff00;
}

.firework-particle.purple {
    background: #ff00ff;
}

.firework-particle.orange {
    background: #ff8000;
}

.firework-particle.cyan {
    background: #00ffff;
}

.firework-particle.pink {
    background: #ff69b4;
}

.firework-particle.white {
    background: #ffffff;
}

.firework-particle.lime {
    background: #bfff00;
}

/* Анимация движения и затухания частиц */
@keyframes firework {
    0% {
        opacity: 1;
        transform: translate(0, 0) scale(1);
    }

    100% {
        opacity: 0;
        transform: translate(var(--x), var(--y)) scale(0.5);
    }
}


.bondImage5 {
    position: absolute;
    z-index: 402;
    top: 50%;
    right: 15%;
    width: 40px;
    height: auto;
}


#filtersection-close-btn {
    position: absolute;
    top: 3px;
    right: 10px;
    width: 32px;
    height: 32px;
    z-index: 10;
    transition: opacity 0.2s;
    padding: 7px 17px;
    border: none;
    border-radius: 5px;
    cursor: pointer;
    font-weight: 400;
    color: rgba(255, 255, 255, 1);
    background: rgba(25, 38, 64, 1);
}

/* ========== ЖЕЛТАЯ КНОПКА БРОНИРОВАНИЯ ========== */

.booking-btn {
    width: 100%;
    background: linear-gradient(135deg, rgba(212, 175, 55, 1) 0%, rgba(212, 175, 55, 0.8) 100%) !important;
    color: #FFF !important;
    font-weight: 700;
    font-size: 16px;
    padding: 14px 20px;
    border: none;
    border-radius: 8px;
    cursor: pointer;
    margin-top: 10px;
}

.booking-btn:hover {
    background: #ecdb9e !important;
}

.booking-btn:active {
    box-shadow: 0 2px 6px rgba(255, 215, 0, 0.3);
}


.code-input-container {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin: 25px 0;
}

.reset-code-digit,
.code-digit {
    width: 50px;
    height: 60px;
    font-size: 24px;
    font-weight: 700;
    text-align: center;
    border: 2px solid #ddd;
    border-radius: 10px;
    background: #f9f9f9;
    color: #333;
    transition: all 0.2s ease;
    outline: none;
    caret-color: #007bff;
}

.reset-code-digit:focus,
.code-digit:focus {
    border-color: #007bff;
    background: #ffffff;
    box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.1);
    transform: scale(1.05);
}

.reset-code-digit.filled,
.code-digit.filled {
    background: #e3f2fd;
    border-color: #007bff;
    color: #007bff;
}

.reset-code-digit.error,
.code-digit.error {
    border-color: #dc3545;
    background: #fff5f5;
    animation: shakeError 0.5s ease;
}

@keyframes shakeError {

    0%,
    100% {
        transform: translateX(0);
    }

    10%,
    30%,
    50%,
    70%,
    90% {
        transform: translateX(-5px);
    }

    20%,
    40%,
    60%,
    80% {
        transform: translateX(5px);
    }
}

.reset-code-digit:disabled,
.code-digit:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

/**
 * ========================================
 * ПОЛЯ ФОРМ
 * ========================================
 */

.form-group {
    margin-bottom: 20px;
}

.form-group label {
    display: block;
    font-size: 14px;
    font-weight: 600;
    color: #333;
    margin-bottom: 8px;
}

.form-group input[type="password"],
.form-group input[type="text"],
.form-group input[type="email"] {
    width: 100%;
    padding: 12px 16px;
    font-size: 15px;
    border: 2px solid #ddd;
    border-radius: 8px;
    background: #f9f9f9;
    transition: all 0.2s ease;
    outline: none;
    box-sizing: border-box;
}

.form-group input:focus {
    border-color: #007bff;
    background: #ffffff;
    box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.1);
}

.form-group input:invalid {
    border-color: #dc3545;
}

/**
 * ========================================
 * КОНТЕЙНЕР СООБЩЕНИЙ
 * ========================================
 */

.auth-message-container {
    padding: 12px 16px;
    border-radius: 8px;
    font-size: 14px;
    margin: 20px 0;
    display: none;
    align-items: center;
    gap: 10px;
    line-height: 1.5;
    animation: messageSlideIn 0.3s ease;
}

.auth-message-container.show {
    display: block;
}

@keyframes messageSlideIn {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Типы сообщений */
.auth-message-container.info {
    background: #e3f2fd;
    color: #0d47a1;
    border-left: 4px solid #2196f3;
}

.auth-message-container.success {
    background: #e8f5e9;
    color: #1b5e20;
    border-left: 4px solid #4caf50;
}

.auth-message-container.error {
    background: #ffebee;
    color: #b71c1c;
    border-left: 4px solid #f44336;
}

.auth-message-container.warning {
    background: #fff3e0;
    color: #e65100;
    border-left: 4px solid #ff9800;
}

/**
 * ========================================
 * КНОПКИ
 * ========================================
 */

.btn {
    width: 100%;
    padding: 14px 24px;
    font-size: 16px;
    font-weight: 600;
    border: none;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.2s ease;
    text-align: center;
    outline: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.btn-primary {
    background: linear-gradient(135deg, #007bff 0%, #0056b3 100%);
    color: #ffffff;
    box-shadow: 0 4px 12px rgba(0, 123, 255, 0.3);
}

.btn-primary:hover {
    background: linear-gradient(135deg, #0056b3 0%, #003d82 100%);
    box-shadow: 0 6px 16px rgba(0, 123, 255, 0.4);
    transform: translateY(-2px);
}

.btn-primary:active {
    transform: translateY(0);
    box-shadow: 0 2px 8px rgba(0, 123, 255, 0.3);
}

.btn-primary:disabled {
    background: #ccc;
    cursor: not-allowed;
    box-shadow: none;
    transform: none;
}

.btn-link {
    background: transparent;
    color: #007bff;
    border: none;
    padding: 10px;
    font-size: 14px;
    font-weight: 500;
    text-decoration: none;
    margin-top: 10px;
}

.btn-link:hover {
    background: #f0f8ff;
    text-decoration: underline;
}

.btn-link:disabled {
    color: #999;
    cursor: not-allowed;
}

/**
 * ========================================
 * ТАЙМЕР ПОВТОРНОЙ ОТПРАВКИ
 * ========================================
 */

#reset-timer,
#resend-timer {
    display: none;
    color: #666;
}

#reset-timer-seconds,
#timer-seconds {
    font-weight: 700;
    color: #007bff;
}

/**
 * ========================================
 * АДАПТИВНОСТЬ
 * ========================================
 */

@media (max-width: 600px) {
    .auth-modal-content {
        padding: 30px 20px;
        max-width: 95%;
        border-radius: 12px;
    }

    .auth-modal h2 {
        font-size: 22px;
    }

    .auth-subtitle {
        font-size: 13px;
        margin-bottom: 20px;
    }

    .reset-code-digit,
    .code-digit {
        width: 42px;
        height: 52px;
        font-size: 20px;
    }

    .code-input-container {
        gap: 6px;
    }

    .form-group input {
        font-size: 16px;
    }

    .btn {
        font-size: 15px;
        padding: 12px 20px;
    }
}

@media (max-width: 400px) {

    .reset-code-digit,
    .code-digit {
        width: 38px;
        height: 48px;
        font-size: 18px;
    }

    .code-input-container {
        gap: 4px;
    }
}

/**
 * ========================================
 * СКРОЛЛ ДЛЯ МОДАЛЬНОГО ОКНА
 * ========================================
 */

.auth-modal-content::-webkit-scrollbar {
    width: 8px;
}

.auth-modal-content::-webkit-scrollbar-track {
    background: #f1f1f1;
    border-radius: 10px;
}

.auth-modal-content::-webkit-scrollbar-thumb {
    background: #c1c1c1;
    border-radius: 10px;
}

.auth-modal-content::-webkit-scrollbar-thumb:hover {
    background: #a1a1a1;
}


/**
 * ========================================
 * АНИМАЦИЯ ЗАГРУЗКИ (для кнопок)
 * ========================================
 */

.btn.loading {
    position: relative;
    color: transparent;
    pointer-events: none;
}

.btn.loading::after {
    content: "";
    position: absolute;
    width: 20px;
    height: 20px;
    top: 50%;
    left: 50%;
    margin-left: -10px;
    margin-top: -10px;
    border: 3px solid rgba(255, 255, 255, 0.3);
    border-top-color: #ffffff;
    border-radius: 50%;
    animation: btnSpin 0.6s linear infinite;
}

@keyframes btnSpin {
    to {
        transform: rotate(360deg);
    }
}

/**
 * ========================================
 * ДОПОЛНИТЕЛЬНЫЕ УТИЛИТЫ
 * ========================================
 */

/* Текст с иконкой безопасности */
.security-notice {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px;
    background: #f0f8ff;
    border-radius: 8px;
    font-size: 13px;
    color: #0066cc;
    margin-bottom: 20px;
}

.security-notice::before {
    content: "🔒";
    font-size: 18px;
}

.password-strength-bar {
    height: 4px;
    border-radius: 2px;
    background: #e0e0e0;
    margin-top: 8px;
    overflow: hidden;
}

.password-strength-bar-fill {
    height: 100%;
    width: 0;
    transition: width 0.3s ease, background 0.3s ease;
}

.password-strength-bar-fill.weak {
    width: 33%;
    background: #f44336;
}

.password-strength-bar-fill.medium {
    width: 66%;
    background: #ff9800;
}

.password-strength-bar-fill.strong {
    width: 100%;
    background: #4caf50;
}

/* Подсказки под полями */
.field-hint {
    font-size: 12px;
    color: #999;
    margin-top: 6px;
    display: block;
}

.field-hint.error {
    color: #dc3545;
}

.field-hint.success {
    color: #28a745;
}

/**
 * ========================================
 * УЛУЧШЕНИЯ ДОСТУПНОСТИ
 * ========================================
 */

.reset-code-digit:focus-visible,
.code-digit:focus-visible,
.form-group input:focus-visible,
.btn:focus-visible {
    outline: 3px solid #007bff;
    outline-offset: 2px;
}

/* Скрытие для screen readers */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/**
 * ========================================
 * ПЕЧАТЬ (отключаем модалки при печати)
 * ========================================
 */

@media print {
    .auth-modal {
        display: none !important;
    }
}

.reset-step {
    display: none;
    opacity: 0;
    transform: translateX(20px);
    transition: opacity 0.3s ease, transform 0.3s ease;
}

.reset-step.active {
    display: block;
    opacity: 1;
    transform: translateX(0);
}

/* Иконка успеха на шаге 2 */
.success-icon {
    width: 60px;
    height: 60px;
    margin: 0 auto 20px;
    background: linear-gradient(135deg, #4caf50 0%, #45a049 100%);
    color: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 32px;
    font-weight: bold;
    box-shadow: 0 4px 12px rgba(76, 175, 80, 0.3);
    animation: successPulse 0.6s ease;
}

@keyframes successPulse {
    0% {
        transform: scale(0);
        opacity: 0;
    }

    50% {
        transform: scale(1.1);
    }

    100% {
        transform: scale(1);
        opacity: 1;
    }
}

/* Футер с ссылками */
.modal-footer-links {
    text-align: center;
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px solid #eee;
}

.link-secondary {
    color: #666;
    text-decoration: none;
    font-size: 14px;
    transition: color 0.2s ease;
}

.link-secondary:hover {
    color: #007bff;
    text-decoration: underline;
}

.password-requirements {
    margin-top: 10px;
    padding: 12px;
    background: #f9f9f9;
    border-radius: 8px;
    font-size: 13px;
    display: none;
}

.password-requirements strong {
    display: block;
    margin-bottom: 8px;
    color: #333;
}

.password-requirements ul {
    margin: 0;
    padding-left: 20px;
    list-style: none;
}

.password-requirements li {
    position: relative;
    padding-left: 24px;
    margin-bottom: 6px;
    color: #666;
    transition: color 0.2s ease;
}

.password-requirements li::before {
    content: "○";
    position: absolute;
    left: 0;
    color: #ccc;
    font-size: 16px;
    transition: all 0.2s ease;
}

.password-requirements li.valid {
    color: #28a745;
}

.password-requirements li.valid::before {
    content: "✓";
    color: #28a745;
    font-weight: bold;
}

/**
 * ========================================
 * ПОДСКАЗКИ ДЛЯ ПОЛЕЙ
 * ========================================
 */

.field-hint {
    font-size: 12px;
    color: #999;
    margin-top: 6px;
    display: block;
}

.field-hint.error {
    color: #dc3545;
}

.field-hint.success {
    color: #28a745;
}

/**
 * ========================================
 * АНИМАЦИЯ ПЕРЕХОДА МЕЖДУ ШАГАМИ
 * ========================================
 */

@keyframes slideInRight {
    from {
        opacity: 0;
        transform: translateX(30px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes slideOutLeft {
    from {
        opacity: 1;
        transform: translateX(0);
    }

    to {
        opacity: 0;
        transform: translateX(-30px);
    }
}

.reset-step.active {
    animation: slideInRight 0.3s ease;
}

/**
 * ========================================
 * АДАПТИВНОСТЬ ДЛЯ ДВУХ ШАГОВ
 * ========================================
 */

@media (max-width: 600px) {
    .success-icon {
        width: 50px;
        height: 50px;
        font-size: 28px;
        margin-bottom: 15px;
    }

    .password-requirements {
        font-size: 12px;
        padding: 10px;
    }

    .modal-footer-links {
        margin-top: 15px;
        padding-top: 15px;
    }
}

/* ===== СТИЛИ ДЛЯ КНОПОК ПОИСКА ===== */
.search-submit-btn,
.search-reset-btn {
    padding: 10px 20px;
    margin: 5px;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    font-size: 14px;
    font-weight: 600;
    transition: all 0.3s ease;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.search-submit-btn {
    background-color: #4CAF50;
    color: white;
}

.search-submit-btn:hover {
    background-color: #45a049;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
    transform: translateY(-1px);
}

.search-submit-btn:active {
    transform: translateY(0);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.search-reset-btn {
    background-color: #f44336;
    color: white;
}

.search-reset-btn:hover {
    background-color: #da190b;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
    transform: translateY(-1px);
}

.search-reset-btn:active {
    transform: translateY(0);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

/* ===== СТИЛИ ДЛЯ ПОДСКАЗОК ПОИСКА ===== */
#search-suggestions {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: white;
    border: 1px solid #ddd;
    border-top: none;
    border-radius: 0 0 8px 8px;
    max-height: 300px;
    overflow-y: auto;
    z-index: 1000;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.suggestion-item {
    padding: 12px 16px;
    cursor: pointer;
    border-bottom: 1px solid #f0f0f0;
    transition: background-color 0.2s ease;
}

.suggestion-item:last-child {
    border-bottom: none;
}

.suggestion-item:hover {
    background-color: #f5f5f5;
}

.suggestion-title {
    font-weight: 500;
    margin-bottom: 4px;
    color: #333;
    font-size: 14px;
}

.suggestion-organization {
    font-size: 12px;
    color: #666;
}

.no-results {
    color: #999;
    text-align: center;
    padding: 20px;
    font-style: italic;
}

/* ===== ПОДСВЕТКА НАЙДЕННОГО МАРКЕРА ===== */
.search-highlight {
    filter: drop-shadow(0 0 10px #FFD700) drop-shadow(0 0 20px #FFA500);
    animation: pulse-highlight 2s infinite;
}

@keyframes pulse-highlight {

    0%,
    100% {
        filter: drop-shadow(0 0 10px #FFD700) drop-shadow(0 0 20px #FFA500);
    }

    50% {
        filter: drop-shadow(0 0 15px #FFD700) drop-shadow(0 0 30px #FFA500);
    }
}

/* Блокировка альбомной ориентации - тест */
/* @media only screen and (max-width: 1144px) and (orientation: landscape) {
    body::before {
        content: '📱 Поверните устройство вертикально';
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: #35546C;
        color: white;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 20px;
        font-weight: 600;
        text-align: center;
        z-index: 999999;
        padding: 20px;
    }
} */



/* ========================================
   СТИЛИ ПРОКРУТКИ ДЛЯ ПОПАПОВ (ЛАНДШАФТНЫЙ РЕЖИМ)
   ======================================== */

.popup-scrollable {
    scrollbar-width: thin;
    scrollbar-color: rgba(255, 255, 255, 0.5) rgba(0, 0, 0, 0.2);
}

.popup-scrollable::-webkit-scrollbar {
    width: 6px;
}

.popup-scrollable::-webkit-scrollbar-track {
    background: rgba(0, 0, 0, 0.2);
    border-radius: 3px;
}

.popup-scrollable::-webkit-scrollbar-thumb {
    background-color: rgba(255, 255, 255, 0.5);
    border-radius: 3px;
}

.popup-scrollable::-webkit-scrollbar-thumb:hover {
    background-color: rgba(255, 255, 255, 0.7);
}

[data-scrollable="true"]::after {
    content: '';
    position: absolute;
    bottom: 10px;
    left: 50%;
    transform: translateX(-50%);
    width: 30px;
    height: 4px;
    background: rgba(255, 255, 255, 0.4);
    border-radius: 2px;
    animation: scrollHint 1.5s ease-in-out infinite;
    pointer-events: none;
}

@keyframes scrollHint {

    0%,
    100% {
        opacity: 0.4;
    }

    50% {
        opacity: 0.8;
    }
}

[data-scrollable="true"].scrolled::after {
    display: none;
}

/* Ландшафтная ориентация  */
@media screen and (orientation: landscape) and (max-height: 500px) {

    .popup-title {
        font-size: 16px !important;
    }

    .popup-description {
        font-size: 13px !important;
        max-height: 60px;
        overflow: hidden;
    }

    .popup-actions {
        flex-wrap: wrap;
        gap: 6px;
    }

    .popup-actions .action-btn {
        padding: 8px 12px;
        font-size: 12px;
    }
}



/* Мобильная адаптация */
@media (max-width: 768px) {
    .button-filter {
        flex-direction: column;
        gap: 8px;
        width: 100%;
    }

    .button-filter button {
        width: 100%;
        justify-content: flex-start;
        padding: 14px 16px;
        font-size: 15px;
    }

    .button-filter button {
        min-height: 48px;
    }
}

@media (max-width: 480px) {
    .button-filter button {
        padding: 12px 14px;
        font-size: 14px;
    }

    .button-filter button svg {
        width: 18px;
        height: 18px;
    }
}

/* тултипы на родительских маркерах  */
/* .custom-parent-label-tooltip {
    background: none !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0 !important;
}



.parent-marker-label {
    background: rgba(18, 34, 52, 1);
    padding: clamp(8px, 2vw, 14px) clamp(12px, 3vw, 22px);
    border-radius: 15px;
    font-weight: 700;
    font-size: 14px;
    opacity: 1;
    visibility: visible;
    transition: opacity 0.4s ease, transform 0.4s ease;
    pointer-events: none;
    z-index: 10000;
    color: var(--white);
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.8);
    backdrop-filter: blur(10px);
    text-align: center;
    white-space: normal;
    max-width: clamp(140px, 20vw, 200px);
    width: max-content;

} */

/* Общий контейнер попапа */
.custom-object-popup-bond .leaflet-popup-content-wrapper {
    background: rgba(38, 38, 146, 0.85) !important;
    color: #fff;
    border-radius: 12px;
    padding: 20px !important;
    /* отступы внутри, можно увеличить при необходимости */
    font-size: 18px;
    font-weight: 500;
    line-height: 1.5;
    backdrop-filter: blur(4px);
    border: 1px solid rgba(255, 255, 255, 0.2);

    /* Центрирование содержимого */
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: start;

    /* Адаптивные размеры */
    width: auto;
    /* ширина по содержимому */
    min-width: 60px;
    /* минимальная ширина, чтобы не было слишком узко */
    max-width: 400px;
    /* максимальная ширина, чтобы не растягивалось на всю карту */
    height: auto;
    /* высота по содержимому */
    min-height: 80px;
    /* минимальная высота для односложного текста */

}


.custom-object-popup-bond {
    animation: popupFadeIn 0.2s ease-out;
}

@keyframes popupFadeIn {
    from {
        opacity: 0;
        transform: translateY(5px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}