/* Экскурсии/места/доставки — перенос CSS из сниппетов 1325/1320/1332/1466/1350/1397/1417.
   Slick заменён на Swiper, инлайн-стили сведены в классы. Шрифт блоков — Open Sans. */

.ypec-container, .yvos-container, .ydms-container, .yds-container, .yro-container,
.otdyh-single, .dosug-single-container, .yds-single-container { 
    font-family: 'Open Sans', sans-serif; 
    width: 1160px;
    max-width: 1160px; 
    margin-left: auto; 
    margin-right: auto; 
    padding-left: 0; 
    padding-right: 0; 
    box-sizing: border-box; 
}
@media (max-width: 1190px) {
    .ypec-container, .yvos-container, .ydms-container, .yds-container, .yro-container,
    .otdyh-single, .dosug-single-container, .yds-single-container {
        width: 100%;
        max-width: 100%;
        padding-left: 15px;
        padding-right: 15px;
    }
}
.breadcrumbs { font-size: 15px; color: #666; }
.breadcrumbs a { color: #1D1D1F; text-decoration: none; }
.breadcrumbs a:hover { color: #037fff; }

/* ---------- /ekskursii/ (ypec) ---------- */
.ypec-page-layout { display: flex; gap: 40px; margin-bottom: 4rem; position: relative; }
.ypec-page-layout > .singlst-r { position: relative; }
.ypec-page-layout > .singlst-r::before { content: ''; position: absolute; top: 0; bottom: 0; left: -20px; width: 1px; background-color: #e0e0e0; }
.ypec-main-content { flex: 1; min-width: 0; }
.ypec-main-content .entry-content { width: 100%; max-width: 100%; font-size: 16px; line-height: 1.6; color: #1D1D1F; margin-top: 0; margin-bottom: 25px; position: relative; }
.ypec-main-content .entry-content::after { display: none; content: none; }
.ypec-main-content h1 { font-family: 'Open Sans', sans-serif; font-size: 37px; font-weight: 600; color: #1D1D1F; margin: 0 0 24px; }
.ypec-category-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
.ypec-category-card:last-child:nth-child(2n-1) { grid-column: 1 / -1; justify-self: center; max-width: calc(50% - 12px); }
.ypec-category-card { background: #EFF0F1; border-radius: 8px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08); overflow: hidden; transition: transform 0.2s ease, box-shadow 0.2s ease; display: flex; flex-direction: column; position: relative; text-decoration: none !important; color: #1D1D1F; }
.ypec-category-card:hover { transform: translateY(-2px); box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15); }
.ypec-category-card__image { position: relative; height: 260px; padding: 16px; box-sizing: border-box; }
.ypec-category-card__image-container { width: 100%; height: 100%; overflow: hidden; border-radius: 4px; display: flex; align-items: center; justify-content: center; background-color: #e9ecef; }
.ypec-category-card__image img { width: 100%; height: 100%; object-fit: cover; }
.ypec-category-card__no-image { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; color: #6c757d; font-size: 14px; }
.ypec-category-card__content { flex: 1; padding: 16px; display: flex; flex-direction: column; gap: 12px; padding-bottom: 70px; }
.ypec-category-card__title { font-family: 'Open Sans', sans-serif; font-weight: 600; font-size: 20px; line-height: 1.2; color: #1D1D1F; margin: 0; }
.ypec-category-card__description { font-family: 'Open Sans', sans-serif; font-weight: 400; font-size: 14px; line-height: 1.4; color: #6c757d; flex-grow: 1; display: -webkit-box; -webkit-line-clamp: 4; line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; text-overflow: ellipsis; }
.ypec-category-card__button { display: inline-flex; align-items: center; justify-content: center; padding: 6px 16px; background: #D90429; color: white; font-family: 'Open Sans', sans-serif; font-weight: 400; font-size: 14px; line-height: 130%; border-radius: 4px; transition: background-color 0.2s ease; white-space: nowrap; position: absolute; bottom: 16px; left: 16px; right: auto; }
.ypec-category-card:hover .ypec-category-card__button { background: #b80322; }

/* ---------- Каталог экскурсий (yvos) ---------- */
.yvos-category-header { font-size: 37px; font-weight: 600; color: #1D1D1F; margin: 0 0 24px; }
.yvos-top-navigation { display: flex; justify-content: space-between; align-items: center; gap: 20px; flex-wrap: wrap; margin-bottom: 2rem; max-width: 100%; }
.yvos-terms-list { display: flex; gap: 20px; flex-wrap: wrap; align-items: center; flex: 1; min-width: 0; max-width: 100%; }
.yvos-term { display: inline-flex; align-items: center; height: 37px; padding: 0 16px; border-radius: 4px; background: #EFF0F1; color: #1D1D1F; opacity: .7; text-decoration: none; transition: all .2s; }
.yvos-term:hover { background: #e9ecef; color: #037fff; opacity: 1; }
.yvos-term.yvos-term-current { background: #BDBEBF; opacity: 1; }
.yvos-add-tour-button { display: inline-flex; align-items: center; gap: 6px; height: 37px; background: #dc3545; color: #fff; font-weight: 500; font-size: 16px; border: none; border-radius: 4px; padding: 0 16px; cursor: pointer; }
.yvos-add-tour-button:hover { background: #c82333; }
.yvos-tours-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 2rem; margin-bottom: 4rem; }
.yvos-tour-card-link { text-decoration: none; color: inherit; display: block; }
.yvos-tour-card { background: #F3F4F6; border-radius: 8px; box-shadow: 0 2px 8px rgba(0,0,0,.1); overflow: hidden; transition: transform .2s, box-shadow .2s; display: flex; flex-direction: column; position: relative; min-height: 460px; }
.yvos-tour-card:hover { transform: translateY(-2px); box-shadow: 0 4px 16px rgba(0,0,0,.15); }
.yvos-tour-card__image { position: relative; height: 260px; padding: 16px; }
.yvos-tour-card__image-container { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; overflow: hidden; border-radius: 4px; }
.yvos-tour-card__image img { width: 100%; height: 225px; object-fit: cover; border-radius: 4px; }
.yvos-tour-card__no-image { color: #6c757d; }
.yvos-tour-card__content { flex: 1; padding: 5px 16px 16px; display: flex; flex-direction: column; gap: 7px; position: relative; padding-bottom: 64px; }
.yvos-tour-card__titles { display: flex; flex-direction: column; gap: 4px; margin-bottom: 0; }
.yvos-tour-card__title { font-weight: 600; font-size: 17px; line-height: 1.3; color: #1D1D1F; margin: 0; min-height: calc(17px * 1.3 * 2); display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden; -webkit-line-clamp: 2; line-clamp: 2; }
.yvos-tour-card__meta { display: flex; flex-direction: column; gap: 8px; }
.yvos-tour-card__meta-item { display: flex; align-items: center; gap: 6px; font-size: 14px; line-height: 1; color: #949494; }
.yvos-meta-label { color: #949494; } .yvos-meta-value { color: #1D1D1F; }
.yvos-tour-card__rating { display: flex; align-items: center; gap: 8px; }
.yvos-tour-card__stars { display: flex; gap: 2px; }
.yvos-tour-card__rating-value { font-weight: 600; font-size: 16px; line-height: 1.2; color: #1D1D1F; }
.yvos-tour-card__rating-separator, .yvos-tour-card__reviews-count { font-size: 16px; line-height: 1.2; color: #949494; }
.yvos-tour-card__footer { display: flex; justify-content: space-between; align-items: flex-end; position: absolute; bottom: 16px; left: 16px; right: 16px; gap: 8px; }
.yvos-tour-card__price { display: flex; flex-wrap: wrap; align-items: baseline; column-gap: 5px; row-gap: 1px; min-width: 0; }
.yvos-tour-card__price-amount { display: inline-flex; align-items: baseline; gap: 3px; white-space: nowrap; }
.yvos-tour-card__price-value { font-weight: 600; font-size: 20px; line-height: 1.2; color: #1D1D1F; }
.yvos-tour-card__price-currency { font-weight: 600; font-size: 14px; line-height: 1.2; color: #1D1D1F; }
.yvos-tour-card__price-per { font-size: 13px; line-height: 1.2; color: #949494; white-space: nowrap; }
.yvos-tour-card__button { display: inline-flex; align-items: center; justify-content: center; position: static; background: #dc3545; color: #fff; padding: 8px 16px; border-radius: 4px; font-weight: 500; font-size: 14px; white-space: nowrap; flex-shrink: 0; margin-left: auto; pointer-events: none; }
.yvos-empty, .ydms-empty, .yds-empty { padding: 40px 0; color: #666; }

/* ---------- Страница экскурсии single (otdyh) ---------- */

/* Контейнер для изображения и информационного блока */
.otdyh-content-top { display: flex; gap: 25px; margin-bottom: 40px; align-items: flex-start; }

/* Фото */
.otdyh-thumb { width: 600px; height: 412px; margin-bottom: 0; overflow: hidden; border-radius: 8px; flex-shrink: 0; }
.otdyh-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* Информационный блок справа */
.otdyh-info-box { width: 535px; min-height: 412px; background-color: #EFF0F1; border-radius: 8px; padding: 20px 20px 25px 20px; box-sizing: border-box; flex-shrink: 0; display: flex; flex-direction: column; justify-content: space-between; gap: 12px; }

/* Параметры экскурсии */
.otdyh-params-title { font-weight: 400; font-size: 16px; line-height: 130%; color: rgba(29,29,31,0.6); margin: 0; padding: 0; }

/* Маршрут */
.otdyh-route-info { display: flex; align-items: flex-start; gap: 11px; margin: 0; }
.otdyh-route-info svg { flex-shrink: 0; margin-top: 2px; }
.otdyh-route-text { font-size: 14px; line-height: 1.4; margin: 0; padding: 0; }
.otdyh-route-text .route-label { color: #949494; }
.otdyh-route-text .route-value { color: #1D1D1F; }

/* Время в пути */
.otdyh-travel-time-info { display: flex; align-items: flex-start; gap: 11px; margin: 0; }
.otdyh-travel-time-info svg { flex-shrink: 0; margin-top: 2px; }
.otdyh-travel-time-text { font-size: 14px; line-height: 1.4; margin: 0; padding: 0; }
.otdyh-travel-time-text .travel-time-label { color: #949494; }
.otdyh-travel-time-text .travel-time-value { color: #1D1D1F; }

/* Продолжительность */
.otdyh-duration-info { display: flex; align-items: flex-start; gap: 11px; margin: 0; }
.otdyh-duration-info svg { flex-shrink: 0; margin-top: 2px; }
.otdyh-duration-text { font-size: 14px; line-height: 1.4; margin: 0; padding: 0; }
.otdyh-duration-text .duration-label { color: #949494; }
.otdyh-duration-text .duration-value { color: #1D1D1F; }

/* Количество человек */
.otdyh-people-info { display: flex; align-items: flex-start; gap: 11px; margin: 0; }
.otdyh-people-info svg { flex-shrink: 0; margin-top: 2px; }
.otdyh-people-text { font-size: 14px; line-height: 1.4; margin: 0; padding: 0; }
.otdyh-people-text .people-label { color: #949494; }
.otdyh-people-text .people-value { color: #1D1D1F; }

/* Телефоны */
.otdyh-phones-block { display: flex; flex-direction: column; gap: 6px; margin: 0; }
.otdyh-phones-title { font-weight: 400; font-size: 16px; line-height: 130%; color: rgba(29,29,31,0.6); margin: 0; padding: 0; }
.otdyh-phones-list { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.otdyh-phone-item { display: flex; align-items: center; gap: 6px; }
.otdyh-phone-item svg { flex-shrink: 0; width: 20px; height: 20px; }
.otdyh-phone-item .phone-number { font-weight: 400; font-size: 16px; line-height: 130%; color: #1D1D1F; text-decoration: none; }
.otdyh-phone-separator { width: 1px; height: 14px; background-color: #D9D9D9; flex-shrink: 0; }

/* Соц.сети */
.otdyh-social-block { display: flex; flex-direction: column; gap: 6px; margin: 0; }
.otdyh-social-title { font-weight: 400; font-size: 16px; line-height: 130%; color: rgba(29,29,31,0.6); margin: 0; padding: 0; }
.otdyh-social-list { display: flex; flex-wrap: wrap; gap: 8px; }
.otdyh-social-item { display: block; width: 32px; height: 32px; border-radius: 4px; overflow: hidden; transition: transform 0.2s ease; text-decoration: none; }
.otdyh-social-item:hover { transform: scale(1.1); }
.otdyh-social-item svg { width: 100%; height: 100%; display: block; }
.otdyh-no-social { font-size: 14px; color: #949494; margin: 0; font-style: italic; }

/* Разделитель */
.otdyh-separator { width: 100%; height: 1px; background-color: #D9D9D9; margin: 0; }

/* Цены */
.otdyh-prices-block { display: flex; align-items: center; gap: 8px; font-size: 14px; margin: 0; }
.otdyh-prices-block .price-value { font-weight: 600; font-size: 18px; line-height: 100%; color: #1D1D1F; }
.otdyh-prices-block .price-label { font-weight: 400; font-size: 16px; line-height: 100%; color: #949494; }
.otdyh-prices-block .price-separator { color: #D9D9D9; font-weight: 400; }

/* Комментарий / Примечание */
.otdyh-comment-block { margin: 0; padding: 0; }
.otdyh-comment-text { font-size: 13px; line-height: 1.4; color: #666667; word-break: break-word; }

/* Кнопки */
.otdyh-buttons-block { display: flex; flex-direction: row; gap: 12px; justify-content: flex-start; align-items: center; margin: 0; }
.otdyh-book-btn { width: 344px; height: 37px; background-color: #D90429; color: white; border: none; border-radius: 4px; font-weight: 500; font-size: 14px; cursor: pointer; transition: background-color 0.2s ease; display: flex; align-items: center; justify-content: center; box-sizing: border-box; flex-shrink: 0; line-height: 1; padding: 0 12px; }
.otdyh-book-btn:hover { background-color: #C0021F; }
.otdyh-review-btn { width: 145px; height: 37px; background-color: #F9FAFB; color: #1D1D1F; border: 1px solid #E5E7EB; border-radius: 4px; font-weight: 500; font-size: 14px; cursor: pointer; transition: background-color 0.2s ease, border-color 0.2s ease; display: flex; align-items: center; justify-content: center; box-sizing: border-box; flex-shrink: 0; line-height: 1; padding: 0 12px; }
.otdyh-review-btn:hover { background-color: #F3F4F6; border-color: #D1D5DB; }

/* Заголовок */
.entry-header { margin-top: -10px; margin-bottom: 20px; }
.entry-title { margin: 0; padding: 0; font-weight: 600; font-size: 25px; line-height: 130%; word-wrap: break-word; overflow-wrap: break-word; hyphens: auto; max-width: 600px; }

/* Рейтинг */
.otdyh-rating-block { display: flex; align-items: center; gap: 6px; margin-top: 10px; margin-bottom: 0; }
.otdyh-rating-block .stars { display: flex; gap: 3px; }
.otdyh-rating-block .stars svg { flex: 0 0 auto; }
.otdyh-rating-block .rating-value { font-weight: 600; font-size: 16px; color: #1D1D1F; }
.otdyh-rating-block .reviews-count { font-size: 16px; color: #A0A0A0; }

/* Описание */
.otdyh-description-title { font-weight: 600; font-size: 20px; line-height: 100%; color: rgba(29,29,31,0.6); margin: 25px 0 10px 0; padding: 0; }
.otdyh-single .entry-content { width: 600px; max-width: 600px; word-wrap: break-word; overflow-wrap: break-word; font-size: 16px; line-height: 1.6; color: #1D1D1F; margin-top: 0; position: relative; }
.otdyh-single .entry-content::after { content: ''; position: absolute; top: -200px; right: -15px; width: 1px; height: calc(100% + 200px); background-color: #E5E7EB; z-index: 999; }
.otdyh-single .entry-content p, .otdyh-single .entry-content div, .otdyh-single .entry-content span { max-width: 100%; word-wrap: break-word; overflow-wrap: break-word; }

/* Программа экскурсии */
.otdyh-program-section { margin-top: 30px; margin-bottom: 35px; width: 600px; max-width: 600px; position: relative; }
.otdyh-program-title { font-weight: 600; font-size: 20px; line-height: 100%; color: rgba(29,29,31,0.6); margin: 0 0 20px 0; padding: 0; }
.otdyh-timeline { position: relative; padding-left: 20px; display: flex; flex-direction: column; gap: 16px; margin: 0; }
.otdyh-timeline::before { content: ''; position: absolute; left: 5px; top: 8px; bottom: 8px; width: 2px; background: #CBD5E1; }
.otdyh-timeline-item { position: relative; display: flex; align-items: baseline; gap: 12px; font-size: 15px; line-height: 1.5; }
.otdyh-timeline-marker { position: absolute; left: -19px; top: 6px; width: 10px; height: 10px; border-radius: 50%; background: #037FFF; border: 2px solid #FFFFFF; box-shadow: 0 0 0 1.5px #037FFF; flex-shrink: 0; z-index: 2; }
.otdyh-timeline-time { font-weight: 600; font-size: 13.5px; color: #037FFF; background: #EFF6FF; border: 1px solid #BFDBFE; padding: 2px 9px; border-radius: 4px; flex-shrink: 0; letter-spacing: 0.3px; white-space: nowrap; line-height: 1.3; }
.otdyh-timeline-content { color: #1D1D1F; word-break: break-word; flex: 1; }
.otdyh-timeline-item-text .otdyh-timeline-content { font-style: normal; color: #334155; }

/* Фото-галерея */
.otdyh-photos-section { margin-top: 35px; margin-bottom: 40px; }
.otdyh-photos-title { font-weight: 600; font-size: 20px; line-height: 100%; color: #1D1D1F; margin: 0 0 22px 0; padding: 0; }
.otdyh-photos-empty {
    background-color: #EFF0F1;
    border-radius: 8px;
    padding: 24px 20px;
    color: #6E6E73;
    font-size: 15px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 600px;
    max-width: 100%;
    box-sizing: border-box;
    border: 1px dashed #CBD5E1;
}
@media (max-width: 1200px) {
    .otdyh-photos-empty { width: 100% !important; }
}
body .otdyh-photos-gallery { position: relative !important; width: 100% !important; height: 300px !important; overflow: hidden !important; margin: 0 !important; padding: 0 !important; }
body .otdyh-photos-slider { display: flex !important; height: 100% !important; transition: transform 0.3s ease !important; gap: 15px !important; margin: 0 !important; padding: 0 !important; }
body .otdyh-photo-item { flex: 0 0 450px !important; height: 300px !important; border-radius: 8px !important; overflow: hidden !important; margin: 0 !important; cursor: pointer !important; }
body .otdyh-photo-item img { width: 100% !important; height: 100% !important; object-fit: cover !important; display: block !important; }
body .otdyh-photos-gallery button.otdyh-gallery-arrow { position: absolute !important; top: 50% !important; transform: translateY(-50%) !important; margin: 0 !important; padding: 0 !important; width: 32px !important; height: 32px !important; border-radius: 50% !important; background-color: rgba(29,29,31,0.4) !important; border: none !important; cursor: pointer !important; z-index: 100 !important; transition: background-color 0.3s ease !important; outline: none !important; box-sizing: border-box !important; }
body .otdyh-photos-gallery button.otdyh-gallery-arrow:hover { background-color: rgba(29,29,31,0.7) !important; }
body .otdyh-photos-gallery button.otdyh-gallery-arrow.prev { left: 10px !important; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='16' viewBox='0 0 12 20' fill='none'%3E%3Cpath d='M10.5 1.5L2 10L10.5 18.5' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important; background-repeat: no-repeat !important; background-position: center !important; background-size: 8px 14px !important; }
body .otdyh-photos-gallery button.otdyh-gallery-arrow.next { right: 10px !important; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='16' viewBox='0 0 12 20' fill='none'%3E%3Cpath d='M1.5 1.5L10 10L1.5 18.5' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important; background-repeat: no-repeat !important; background-position: center !important; background-size: 8px 14px !important; }

/* Секция отзывов */
.otdyh-reviews-section { margin-top: 45px; margin-bottom: 40px; }
.otdyh-reviews-title { font-weight: 600; font-size: 24px; line-height: 100%; color: #1D1D1F; margin: 0 0 20px 0; padding: 0; }
.otdyh-reviews-title .reviews-count-bracket { color: rgba(29,29,31,0.6); }

/* Форма отзыва */
.review-form-container { background-color: #EFF0F1 !important; padding: 24px !important; border-radius: 4px !important; width: 100% !important; margin: 0 0 25px 0 !important; box-sizing: border-box !important; font-family: 'Open Sans', sans-serif !important; }
.review-form { display: flex !important; flex-direction: column !important; gap: 16px !important; }
.review-form h3 { font-family: 'Open Sans', sans-serif !important; font-weight: 600 !important; font-size: 16px !important; color: #1D1D1F !important; margin: 0 !important; }
.form-row { display: flex !important; gap: 12px !important; flex-wrap: wrap !important; }
.form-row input { flex: 1 !important; min-width: 200px !important; }
.form-row input, .review-form textarea { background-color: #FFFFFF !important; border: 1px solid transparent !important; border-radius: 6px !important; padding: 12px 16px !important; font-family: 'Open Sans', sans-serif !important; font-size: 16px !important; color: #1D1D1F !important; width: 100% !important; box-sizing: border-box !important; transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out !important; }
.review-form textarea { padding: 16px !important; min-height: 120px !important; resize: vertical !important; }
.review-form input:focus, .review-form textarea:focus { border-color: transparent !important; outline: 0 !important; box-shadow: 0 0 0 3px rgba(13,110,253,.25) !important; }
.form-row input::placeholder, .review-form textarea::placeholder { color: #949494 !important; font-weight: 400 !important; }
.rating-section { display: flex !important; align-items: center !important; gap: 24px !important; flex-wrap: wrap !important; }
.rating-section .rating-label { font-size: 16px !important; color: #949494 !important; }
.rating-stars { display: flex !important; gap: 12px !important; }
.rating-stars .star { width: 24px !important; height: 24px !important; cursor: pointer !important; transition: transform 0.2s ease-in-out, opacity 0.2s !important; }
.rating-stars .star.off { opacity: 0.3 !important; }
.rating-stars .star:hover { transform: scale(1.2) !important; }
.review-form button { background-color: #007bff !important; color: #FFFFFF !important; border: none !important; border-radius: 6px !important; padding: 12px 16px !important; font-family: 'Open Sans', sans-serif !important; font-size: 16px !important; cursor: pointer !important; text-align: center !important; transition: background .2s, transform .1s !important; align-self: flex-start !important; }
.review-form button:hover { background: #0069d9 !important; }
.review-form button:active { transform: translateY(1px) !important; }

/* Отзывы — карточки */
.otdyh-reviews-list { display: flex; flex-direction: column; gap: 16px; }
.review-item { background-color: #F5F5F7; border-radius: 8px; padding: 16px; margin-bottom: 12px; }
.review-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 12px; flex-wrap: wrap; gap: 8px; }
.review-author-info { display: flex; flex-direction: column; gap: 4px; }
.review-author { font-weight: 600; font-size: 16px; display: block; color: #1D1D1F; }
.review-date { font-size: 14px; color: #6E6E73; margin-top: 2px; }
.review-location { font-size: 14px; color: #6E6E73; }
.review-rating { display: flex; gap: 3px; }
.review-rating svg { width: 12px; height: 12px; }
.review-content { line-height: 1.6; font-size: 15px; color: #444; }
.review-content p { margin: 0; }
.review-content p:empty { display: none; }
.review-images { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 12px; }
.review-images img { width: 140px; height: 90px; object-fit: cover; border-radius: 4px; cursor: pointer; transition: transform .3s ease, box-shadow .3s ease; border: 1px solid #ddd; }
.review-images img:hover { transform: scale(1.05); box-shadow: 0 4px 12px rgba(0,0,0,0.15); }
.no-reviews { text-align: center; color: #6E6E73; font-style: italic; padding: 40px 20px; }

/* Медиа */
@media (min-width: 769px) {
    .otdyh-prices-block { width: 535px; max-width: 535px; }
}
@media (max-width: 1200px) {
    .otdyh-content-top { flex-direction: column; gap: 20px; align-items: stretch; }
    .otdyh-thumb { width: 100%; height: auto; max-height: 400px; }
    .otdyh-info-box { width: 100%; height: auto; padding: 20px; box-sizing: border-box; }
    .entry-title { max-width: 100%; }
    .otdyh-single .entry-content { width: 100% !important; max-width: 100% !important; }
    .otdyh-single .entry-content::after { display: none !important; }
    .otdyh-program-section { width: 100% !important; max-width: 100% !important; }
    .otdyh-reviews-section { width: 100%; max-width: none; }
}
@media (max-width: 768px) {
    .otdyh-thumb img { height: 280px; object-fit: cover; }
    .otdyh-buttons-block { flex-direction: column; width: 100%; gap: 10px; }
    .otdyh-book-btn, .otdyh-review-btn { width: 100%; }
    .otdyh-phones-list { flex-direction: column; align-items: flex-start; gap: 6px; }
    .otdyh-phone-separator { display: none; }
    .otdyh-prices-block { width: 100%; flex-wrap: wrap; }
    body .otdyh-photos-gallery { height: 220px !important; }
    body .otdyh-photo-item { flex: 0 0 300px !important; height: 220px !important; }
    .review-header { flex-direction: column; gap: 6px; }
}
@media (max-width: 480px) {
    .breadcrumbs { flex-wrap: wrap; word-break: break-word; font-size: 14px; }
    .otdyh-thumb { width: 100%; max-width: 100%; }
    .otdyh-thumb img { width: 100%; max-width: 100%; height: 200px; object-fit: cover; border-radius: 8px; }
    .entry-title { font-size: 20px; line-height: 1.3; }
    body .otdyh-photos-gallery { height: 180px !important; }
    body .otdyh-photo-item { flex: 0 0 250px !important; height: 180px !important; }
    .form-row { flex-direction: column; gap: 10px; }
    .form-row input { width: 100%; }
}

/* ---------- Карточка места/доставки (ydms/yds) ---------- */
.ydms-category-header, .yds-category-header { font-size: 37px; font-weight: 600; color: #1D1D1F; margin: 0 0 12px; }
.ydms-action-buttons, .yds-top-navigation { display: flex; gap: 15px; margin: 1.5rem 0; justify-content: space-between; align-items: center; flex-wrap: wrap; width: 100%; max-width: 100%; box-sizing: border-box; }
.dosug-terms-list, .yds-terms-list { display: flex; gap: 10px; align-items: center; flex-wrap: nowrap; overflow-x: auto; flex: 1 1 auto; min-width: 0; max-width: 100%; padding-bottom: 4px; -webkit-overflow-scrolling: touch; scrollbar-width: none; box-sizing: border-box; }
.dosug-terms-list::-webkit-scrollbar, .yds-terms-list::-webkit-scrollbar { display: none; }
.category-tab { display: inline-flex; align-items: center; height: 37px; padding: 0 16px; border-radius: 4px; background: #EFF0F1; color: #1D1D1F; opacity: .7; text-decoration: none; transition: all 0.3s ease; flex: 0 0 auto; white-space: nowrap; }
.category-tab:hover { background: #e9ecef !important; color: #037fff !important; transform: translateY(-2px); box-shadow: 0 2px 8px rgba(0,0,0,0.05); }
.category-tab.active { background: #BDBEBF; opacity: 1; }
.ydms-add-button, .yds-add-button { height: 37px; padding: 0 16px; border-radius: 4px; border: 1px solid #dc3545; background: #dc3545; color: #fff; font-size: 16px; cursor: pointer; flex-shrink: 0; white-space: nowrap; transition: all 0.3s ease; display: inline-flex; align-items: center; justify-content: center; }
.ydms-add-button:hover, .yds-add-button:hover { background-color: #b00320 !important; transform: translateY(-2px); box-shadow: 0 4px 12px rgba(220,53,69,0.3); }
.ydms-select-map-button { height: 37px; padding: 0 16px; border-radius: 4px; border: 1px solid #EFF0F1; background: #EFF0F1; color: #1D1D1F; cursor: pointer; flex-shrink: 0; white-space: nowrap; transition: all 0.3s ease; display: inline-flex; align-items: center; justify-content: center; gap: 8px; }
.ydms-select-map-button:hover { background-color: #e2e6ea !important; transform: translateY(-2px); box-shadow: 0 4px 12px rgba(0,0,0,0.1); }
.ydms-grid, .dosug-category-grid, .yds-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 35px; }

.ydms-card-link, .yds-card-link { text-decoration: none; color: inherit; display: block; height: 100%; }
.ydms-card, .yds-card { background: #F3F4F6; border-radius: 8px; box-shadow: 0 2px 8px rgba(0,0,0,.1); overflow: visible; transition: transform .2s, box-shadow .2s; display: flex; flex-direction: column; position: relative; min-height: 410px; height: 100%; width: 100%; }
.yds-card { background: #EFF0F1; }
.ydms-card:hover, .yds-card:hover { transform: translateY(-2px); box-shadow: 0 4px 16px rgba(0,0,0,.15); }
.ydms-card__image, .yds-card__image { height: 235px; padding: 12px 12px 6px; box-sizing: border-box; }
.ydms-card__image-container, .yds-card__image-container { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; overflow: visible; border-radius: 4px; position: relative; }
.ydms-card__image img, .yds-card__image img { width: 100%; height: 215px; object-fit: cover; border-radius: 4px; }
.yds-card__image img { height: 215px; }
.ydms-card__no-image, .yds-card__no-image { color: #6c757d; font-size: 14px; }
.ydms-card__star-badge, .yds-card__star-badge, .yvos-tour-card__star-badge { position: absolute; bottom: -15px; right: 8px; background: #ffd700; color: #fff; width: 30px; height: 30px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: bold; z-index: 10; box-shadow: 0 2px 8px rgba(255,215,0,.4); }
.yvos-tour-card__star-badge { top: 22px; bottom: auto; right: 22px; }
.ydms-card--recommended, .yds-card--recommended { border: 2px solid #ffd700; }
.ydms-card__content, .yds-card__content { flex: 1; padding: 4px 12px 48px; display: flex; flex-direction: column; gap: 4px; position: relative; }
.ydms-card__meta-item span, .yds-card__meta-item span { color: #D90429; font-size: 14px; }
.ydms-card__title, .yds-card__title { font-weight: 600; font-size: 18px; color: #1D1D1F; margin: 0 0 4px; }
.ydms-card__rating, .yds-card__rating { display: flex; align-items: center; gap: 6px; margin-bottom: 4px; }
.ydms-card__rating-value, .yds-card__rating-value { font-weight: 600; font-size: 15px; }
.ydms-card__rating-separator, .ydms-card__reviews-count, .yds-card__rating-separator, .yds-card__reviews-count { font-size: 15px; color: #949494; }
.ydms-card__meta, .yds-card__meta { font-size: 14px; color: #949494; margin-bottom: 6px; }
.ydms-card__footer, .yds-card__footer { position: absolute; bottom: 12px; left: 12px; }
.ydms-card__price, .yds-card__price { display: flex; align-items: baseline; gap: 4px; }
.ydms-card__price-value, .yds-card__price-value { font-weight: 600; font-size: 18px; color: #1D1D1F; }
.ydms-card__price-currency { font-weight: 600; font-size: 14px; }
.ydms-card__price-per, .yds-card__price-per { font-size: 14px; color: #949494; }
.ydms-card__button, .yds-card__button { position: absolute; bottom: 10px; right: 12px; background: #dc3545; color: #fff; padding: 6px 14px; border-radius: 4px; font-weight: 500; font-size: 14px; display: inline-flex; align-items: center; }

/* ---------- Single место/доставка ---------- */
.dosug-single-container, .yds-single-container { width: 1160px; max-width: 1160px; margin: 0 auto; padding-left: 0; padding-right: 0; box-sizing: border-box; }
@media (max-width: 1190px) {
    .dosug-single-container, .yds-single-container { width: 100%; max-width: 100%; padding-left: 15px; padding-right: 15px; }
}
.dosug-single-header h1, .yds-single-header h1 { font-size: 40px; font-weight: 600; color: #1D1D1F; margin-bottom: 1rem; }
.place-featured { position: relative; margin-bottom: 20px; }
.place-featured img { width: 100%; height: 352px; object-fit: cover; border-radius: 8px; box-shadow: 0 4px 12px rgba(0,0,0,.15); }
.place-featured .overlay-title { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); color: #fff; font-weight: 600; font-size: 48px; text-align: center; text-shadow: 2px 2px 4px rgba(0,0,0,.7); }
.place-single-address { display: flex; align-items: center; gap: 6px; margin: 12px 0; color: #D90429; }
.place-info-cards { display: flex; gap: 24px; margin: 20px 0; flex-wrap: wrap; }
.place-info-card { display: flex; align-items: center; gap: 10px; background: #EFF0F1; border-radius: 8px; padding: 14px 20px; }
.place-single-buttons { display: flex; gap: 12px; margin: 20px 0; flex-wrap: wrap; }
.place-single-buttons a, .place-single-buttons button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 44px; padding: 0 20px; border-radius: 4px; text-decoration: none; cursor: pointer; border: none; font-size: 15px; }
.place-phone-btn { background: #D90429; color: #fff; }
.place-map-btn { background: #EFF0F1; color: #1D1D1F; }
.place-review-btn { background: #F9FAFB; color: #1D1D1F; border: 1px solid #E5E7EB !important; }
.tabs-nav { display: flex; gap: 0; margin: 24px 0; border-bottom: 1px solid #E5E5E5; }
.tabs-nav [data-tab] { padding: 12px 24px; border: none; background: transparent; font-weight: 600; font-size: 16px; color: #666667; cursor: pointer; border-bottom: 2px solid transparent; }
.tabs-nav [data-tab].active { color: #1D1D1F; border-bottom-color: #1D1D1F; }
.tab-pane { display: none; }
.tab-pane.active { display: block; }
.place-info-layout { display: grid; grid-template-columns: 1fr 1px 1fr; gap: 32px; }
.place-info-layout .divider { background: #E5E5E5; }
.place-info-item { margin-bottom: 16px; }
.place-info-item h3 { margin: 0 0 8px; font-size: 16px; }
.place-info-item p, .place-info-item a { margin: 0; color: #1D1D1F; }
.place-map { width: 100%; height: 260px; border-radius: 8px; overflow: hidden; }
.place-photos-section { margin-top: 24px; }
.photo-ribbon { height: 100% !important; }
.photo-ribbon .swiper-wrapper { height: 100% !important; display: flex !important; align-items: center !important; }
.photo-ribbon .swiper-slide { width: auto !important; height: 100% !important; display: flex !important; align-items: center !important; justify-content: center !important; }
.photo-ribbon img { height: 100% !important; max-height: 100% !important; width: auto !important; border-radius: 8px !important; object-fit: cover !important; cursor: pointer !important; }
.ribbon-prev, .ribbon-next { position: absolute; top: 50%; transform: translateY(-50%); width: 40px; height: 40px; border-radius: 50%; background: rgba(0,0,0,.7); border: none; cursor: pointer; z-index: 10; color: #fff; }
.ribbon-prev { left: 10px; } .ribbon-next { right: 10px; }

/* === ДОБАВЛЕННЫЕ СТИЛИ DOSUG SINGLE === */
/* Global and Layout */
.dosug-single-container { 
    width: 1160px;
    max-width: 1160px; 
    margin: 0 auto; 
    padding: 0; 
    box-sizing: border-box;
    font-family: 'Open Sans', sans-serif; 
}
@media (max-width: 1190px) {
    .dosug-single-container {
        width: 100%;
        max-width: 100%;
        padding-left: 15px;
        padding-right: 15px;
    }
}

.dosug-single-breadcrumbs { 
    color: #1D1D1F; 
    margin-bottom: 1rem;
}

.dosug-single-breadcrumbs a { 
    color: #1D1D1F; 
    text-decoration: none; 
    transition: color 0.2s ease;
}

.dosug-single-breadcrumbs a:hover { 
    color: #037fff; 
}

.dosug-single-breadcrumbs span { 
    color: rgba(29, 29, 31, 0.76); 
}

.dosug-single-header h1 { 
    font-size: 40px; 
    font-weight: 600; 
    color: #1D1D1F;
    margin-bottom: 1rem;
}

.dosug-single-content { 
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 2rem;
    margin-top: 2rem;
}

.dosug-single-main-content { 
    padding: 0;
}

.dosug-single-featured-image { 
    position: relative;
}

.dosug-single-featured-image img { 
    width: 100% !important;
    height: 352px !important;
    object-fit: cover;
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}

.dosug-single-featured-image::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(255, 255, 255, 0.2);
    border-radius: 8px;
    pointer-events: none;
}

.dosug-single-featured-image .overlay-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: white;
    font-family: 'Open Sans', sans-serif;
    font-weight: 600;
    font-size: 48px;
    text-align: center;
    text-shadow: 2px 2px 4px rgba(0,0,0,0.7);
    z-index: 1;
    max-width: 90%;
    line-height: 1.2;
}

/* Кнопки с анимацией наведения */
.dosug-single-map-btn:hover,
.dosug-single-review-btn:hover {
    transform: translateY(-1px);
}

.dosug-single-phone-btn:hover {
    filter: brightness(0.9);
}

/* Система вкладок */
.dosug-single-tabs-nav {
    display: flex;
    gap: 0;
    margin-bottom: 24px;
}

.dosug-single-tab-btn {
    padding: 12px 24px;
    border: none;
    background: transparent;
    font-family: 'Open Sans', sans-serif;
    font-weight: 600;
    font-size: 16px;
    color: #666667;
    cursor: pointer;
    border-bottom: 2px solid transparent;
    transition: all 0.3s ease;
    position: relative;
}

.dosug-single-tab-btn:hover {
    color: #1D1D1F;
    transform: translateY(-1px);
}

.dosug-single-tab-btn.active {
    color: #1D1D1F !important;
    transform: translateY(-1px);
}

.dosug-single-tabs-content {
    /* Убираем фон */
    padding: 0;
}

.dosug-single-tab-content {
    display: none;
}

.dosug-single-tab-content.active {
    display: block;
}

.dosug-single-info-layout {
    display: grid;
    grid-template-columns: 1fr 1px 1fr;
    gap: 32px;
}

.dosug-single-map-btn-small:hover {
    transform: translateY(-1px);
}

.dosug-single-contact-row {
    display: flex;
    gap: 24px;
    flex-wrap: wrap;
}

.dosug-single-info-item h3 {
    margin: 0 0 8px 0;
}

.dosug-single-info-item p {
    margin: 0;
}

.dosug-single-social-links a:hover {
    transform: translateY(-1px);
}

.dosug-single-gallery-item:hover img {
    transform: scale(1.05);
}

.dosug-single-gallery-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 16px;
}

.dosug-single-review-item {
    background: #FFFFFF;
    border-radius: 8px;
    padding: 20px;
    margin-bottom: 16px;
    transition: box-shadow 0.2s ease;
}

.dosug-single-review-item:hover {
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}

/* Responsive - оптимизировано для всех мобильных устройств */
@media (max-width: 768px) {
    .dosug-single-container {
        padding: 0;
        max-width: 100%;
        margin-top: 20px;
    }

    .dosug-single-breadcrumbs {
        margin-bottom: 16px;
        font-size: 14px;
    }

    .dosug-single-content {
        grid-template-columns: 1fr;
        gap: 1rem;
        margin-top: 1rem;
    }

    .dosug-single-header h1 {
        font-size: 22px !important;
        line-height: 1.3;
        margin-bottom: 12px;
    }

    .dosug-single-featured-image img {
        height: 250px !important;
    }

    .dosug-single-featured-image .overlay-title {
        font-size: 22px;
        max-width: 95%;
        padding: 0 10px;
    }

    .dosug-single-address {
        margin-top: 30px !important;
        margin-bottom: 12px !important;
    }

    .dosug-single-info-cards {
        flex-direction: column;
        gap: 12px;
        margin-top: 20px !important;
    }

    .dosug-single-reviews-card,
    .dosug-single-closing-card {
        justify-content: flex-start;
    }

    .dosug-single-buttons {
        flex-direction: column;
        gap: 12px;
        margin-top: 20px !important;
        margin-bottom: 20px !important;
    }

    .dosug-single-buttons a {
        width: 100% !important;
        text-align: center;
        min-height: 44px;
        display: flex !important;
        align-items: center;
        justify-content: center;
        font-size: 16px;
    }

    .dosug-single-main-content {
        padding: 0;
    }

    .dosug-single-separator {
        margin: 12px 0 !important;
    }

    /* Навигация вкладок */
    .dosug-single-tabs-nav {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        -ms-overflow-style: none;
        margin-bottom: 0;
        justify-content: flex-start;
        gap: 0;
        width: 100%;
    }

    .dosug-single-tabs-nav::-webkit-scrollbar {
        display: none;
    }

    .dosug-single-tabs-nav > div[style*="width: 1px"] {
        display: none;
    }

    /* Кнопки вкладок - все кнопки */
    .dosug-single-tab-btn {
        flex: none !important;
        padding: 6px 24px !important;
        font-size: 14px;
        white-space: nowrap;
        min-width: fit-content;
        flex-shrink: 0;
    }

    /* Контент вкладок */
    .dosug-single-tabs-content {
        padding: 20px 0 0 0;
        display: flex;
        flex-direction: column;
    }

    /* Layout информационной вкладки */
    .dosug-single-info-layout {
        display: flex !important;
        flex-direction: column !important;
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .dosug-single-info-layout > div:nth-child(2) {
        display: none;
    }

    /* Элементы информации */
    .dosug-single-info-item {
        margin-bottom: 16px !important;
    }

    .dosug-single-info-item h3 {
        font-size: 15px;
        margin-bottom: 8px;
    }

    .dosug-single-info-item p {
        font-size: 14px;
        line-height: 140%;
    }

    /* Контактная информация */
    .dosug-single-contact-row {
        flex-direction: column;
        gap: 16px;
    }

    /* Карта */
    .dosug-single-map-placeholder > div {
        max-width: 100% !important;
        height: 200px !important;
    }

    /* Галерея фотографий */
    .dosug-single-gallery-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 10px;
    }

    /* Секция фотографий */
    .dosug-single-photos-section {
        margin-top: 24px !important;
    }

    .dosug-single-photos-header {
        margin-bottom: 16px !important;
    }

    .dosug-single-photos-header h3,
    .dosug-single-photos-header span {
        font-size: 18px !important;
    }

    /* Карусель фотографий */
    .dosug-single-photo-carousel {
        width: 100% !important;
        overflow: hidden !important;
    }

    .dosug-single-photo-strip {
        width: 100% !important;
        overflow: hidden !important;
    }

    .dosug-single-photo-ribbon {
        gap: 0 !important;
        display: flex !important;
    }

    .dosug-single-photo-item {
        min-width: 100% !important;
        width: 100% !important;
        flex-shrink: 0 !important;
    }

    .dosug-single-photo-item img {
        width: 100% !important;
        height: 250px !important;
        object-fit: cover !important;
        display: block !important;
    }

    .dosug-single-photo-prev,
    .dosug-single-photo-next {
        width: 36px !important;
        height: 36px !important;
    }

    .dosug-single-photo-prev {
        left: 0.5rem !important;
    }

    .dosug-single-photo-next {
        right: 0.5rem !important;
    }

    /* Секция отзывов */
    .dosug-single-reviews-section {
        margin-top: 24px !important;
    }

    .dosug-single-reviews-header {
        margin-bottom: 16px !important;
    }

    .dosug-single-reviews-header h3,
    .dosug-single-reviews-header span {
        font-size: 20px !important;
    }

    /* Форма отзыва */
    .dosug-single-review-form-container {
        margin-bottom: 24px !important;
    }

    .dosug-single-review-form {
        padding: 20px !important;
        gap: 14px !important;
    }

    .dosug-single-review-form h3 {
        font-size: 15px !important;
    }

    .dosug-single-form-row {
        flex-direction: column;
        gap: 12px !important;
    }

    .dosug-single-form-row input {
        font-size: 15px !important;
        padding: 12px 14px !important;
    }

    .dosug-single-review-form textarea {
        font-size: 15px !important;
        padding: 14px !important;
        min-height: 100px !important;
    }

    .dosug-single-rating-section {
        flex-direction: column;
        align-items: flex-start !important;
        gap: 12px !important;
    }

    .dosug-single-rating-label {
        font-size: 15px !important;
    }

    .dosug-single-rating-stars {
        gap: 8px !important;
    }

    .dosug-single-review-form button {
        font-size: 15px !important;
        padding: 14px !important;
    }

    /* Список отзывов */
    .dosug-single-review-item {
        padding: 20px !important;
        margin-bottom: 12px !important;
    }

    .dosug-single-review-header {
        flex-direction: column;
        align-items: flex-start !important;
        gap: 8px !important;
    }

    .dosug-single-review-author {
        font-size: 15px !important;
    }

    .dosug-single-review-date {
        font-size: 13px !important;
    }

    .dosug-single-review-content {
        font-size: 14px !important;
        line-height: 140% !important;
    }

    /* Навигация между постами */
    .dosug-single-navigation {
        margin-top: 32px !important;
    }

    /* Вкладка Меню */
    .dosug-single-tab-content[data-tab="menu"] {
        padding: 0;
    }

    /* Блок "Поделиться" */
    .kartochka__item {
        margin-top: 24px !important;
        margin-bottom: 32px !important;
    }

    .kartochka__item span {
        font-size: 15px !important;
        margin-bottom: 12px !important;
    }
}

/* Review Form Styles */
.dosug-single-review-form input:focus,
.dosug-single-review-form textarea:focus {
    border-color: transparent !important;
    outline: 0 !important;
    box-shadow: 0 0 0 3px rgba(13,110,253,.25) !important;
}

.dosug-single-review-form input::placeholder,
.dosug-single-review-form textarea::placeholder {
    color: #949494;
    font-weight: 400;
}

.dosug-single-star.dosug-single-star-off path {
    opacity: 0.3;
}

.dosug-single-star:hover {
    transform: scale(1.2);
}

.dosug-single-review-form button:hover {
    transform: translateY(-1px);
    filter: brightness(0.9);
}

.dosug-single-review-form button:active {
    transform: translateY(1px);
}

/* Photo carousel navigation arrows */
.dosug-single-photo-prev,
.dosug-single-photo-next {
    opacity: 1 !important;
    transition: all 0.2s ease !important;
    z-index: 1000 !important;
    display: flex !important;
    background: rgba(0, 0, 0, 0.7) !important;
    width: 40px !important;
    height: 40px !important;
    border-radius: 50% !important;
}

.dosug-single-photo-prev:hover,
.dosug-single-photo-next:hover {
    background: rgba(0, 0, 0, 0.9) !important;
    transform: translateY(-50%) scale(1.1) !important;
}

.dosug-single-photo-prev {
    left: 1rem !important;
}

.dosug-single-photo-next {
    right: 1rem !important;
}

/* Navigation fix - правильное позиционирование */
.dosug-single-navigation .nav-links {
    display: flex;
    justify-content: space-between;
    width: 100%;
}

.dosug-single-navigation .nav-previous {
    text-align: left;
    flex: 1;
}

.dosug-single-navigation .nav-next {
    text-align: right;
    flex: 1;
}

/* Когда есть только "следующая" - она должна быть справа */
.dosug-single-navigation .nav-links:not(:has(.nav-previous)) .nav-next {
    margin-left: auto;
}

/* Когда есть только "предыдущая" - она должна быть слева */
.dosug-single-navigation .nav-links:not(:has(.nav-next)) .nav-previous {
    margin-right: auto;
}

/* Social sharing styles */
.kartochka__social a:hover {
    transform: translateY(-2px);
}

/* Стили для встроенной карты и меток */
.yctp-custom-marker {
    background: #ffffff;
    width: 24px;
    height: 24px;
    border-radius: 3px !important;
    border: 3px solid #dc3545;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'Open Sans', sans-serif;
    font-size: 12px;
    font-weight: 600;
    color: #dc3545;
    box-shadow: 0 2px 8px rgba(0,0,0,0.3);
    cursor: pointer;
    transition: all 0.2s ease;
    position: relative;
}

.yctp-custom-marker:hover {
    transform: scale(1.1);
    box-shadow: 0 4px 12px rgba(0,0,0,0.4);
}

/* Рекомендуемые заведения - золотой цвет с эффектами */
.yctp-custom-marker.featured {
    background: #ffffff;
    border: 3px solid #ffd700;
    color: #e6ac00;
    width: 28px;
    height: 28px;
    border-radius: 3px !important;
    font-size: 14px;
    font-weight: 900;
    box-shadow: 0 3px 12px rgba(255, 215, 0, 0.4), 0 0 0 3px rgba(255, 215, 0, 0.2);
    animation: yctp-featured-glow 2s ease-in-out infinite alternate;
}

.yctp-custom-marker.featured:hover {
    transform: scale(1.15);
    box-shadow: 0 6px 20px rgba(255, 215, 0, 0.6), 0 0 0 4px rgba(255, 215, 0, 0.3);
}

.yctp-custom-marker.featured::after {
    content: "★" !important;
    position: absolute !important;
    top: -8px !important;
    right: -8px !important;
    width: 16px !important;
    height: 16px !important;
    background: #ffd700 !important;
    border-radius: 50% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 10px !important;
    color: #fff !important;
    font-weight: bold !important;
    box-shadow: 0 2px 6px rgba(0,0,0,0.3) !important;
    animation: yctp-star-pulse 1.5s ease-in-out infinite !important;
    z-index: 1000 !important;
}

@keyframes yctp-star-pulse {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.1); }
}

/* Анимация свечения для рекомендуемых */
@keyframes yctp-featured-glow {
    0% {
        box-shadow: 0 3px 12px rgba(255, 215, 0, 0.4), 0 0 0 3px rgba(255, 215, 0, 0.2);
    }
    100% {
        box-shadow: 0 4px 16px rgba(255, 215, 0, 0.6), 0 0 0 4px rgba(255, 215, 0, 0.4);
    }
}

/* Стили для встроенных карт - изолируем только для embedded карт */
#dosug-single-embedded-map .leaflet-popup-content-wrapper {
    margin-bottom: 20px !important;
}

#dosug-single-embedded-map .leaflet-popup-tip-container {
    margin-top: -20px !important;
}

/* ---------- Модалки (предложить/бронь) ---------- */
.place-modal { display: none; position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; inset: 0; background: rgba(0,0,0,.6); backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); z-index: 999999; align-items: center; justify-content: center; padding: 20px; box-sizing: border-box; }
.place-modal.active, .place-modal.is-active { display: flex !important; }
html.modal-open, body.modal-open { overflow: hidden !important; height: 100vh !important; touch-action: none !important; }
.place-modal-inner { width: 500px; max-width: 100%; max-height: calc(100vh - 40px); overflow-y: auto; background: #EFF0F1; border-radius: 4px; position: relative; padding: 24px; box-sizing: border-box; }
.place-modal .modal-close { position: absolute; top: 16px; right: 16px; font-size: 24px; color: #666; background: none; border: none; cursor: pointer; }
.place-modal-title { font-weight: 600; font-size: 22px; color: #1D1D1F; margin: 0 0 20px; }
.place-modal .form-group { margin-bottom: 12px; }
.place-modal input, .place-modal textarea { width: 100%; padding: 12px 16px; border: 1px solid transparent; border-radius: 4px; background: #fff; font-size: 16px; box-sizing: border-box; }
.place-modal .counter-section { display: flex; gap: 24px; margin: 16px 0; }
.place-modal .counter-controls { display: flex; align-items: center; gap: 4px; }
.place-modal .counter-btn { width: 32px; height: 32px; border: none; background: #fff; color: #037fff; font-size: 18px; cursor: pointer; border-radius: 4px; }
.place-modal .counter-display { width: 60px; height: 32px; background: #fff; display: flex; align-items: center; justify-content: center; border-radius: 4px; }
.place-modal .checkbox-section { margin: 16px 0; display: flex; flex-direction: column; gap: 10px; }
.place-modal .btn-v4 { width: 100%; margin-top: 12px; }

/* Лайтбокс */
.places-lightbox { position: fixed !important; top: 0 !important; left: 0 !important; width: 100vw !important; height: 100vh !important; inset: 0 !important; background: rgba(0,0,0,.9) !important; display: none; align-items: center !important; justify-content: center !important; z-index: 1000000 !important; }
.places-lightbox.active { display: flex !important; }
.places-lightbox img { width: auto !important; height: auto !important; max-width: 90vw !important; max-height: 90vh !important; border-radius: 6px !important; object-fit: contain !important; display: block !important; }
.places-lightbox .lb-close { position: absolute; top: 15px; right: 20px; font-size: 40px; color: #fff; background: none; border: none; cursor: pointer; }
.places-lightbox .lb-nav { position: absolute; top: 50%; transform: translateY(-50%); font-size: 3rem; color: rgba(255,255,255,.7); background: none; border: none; cursor: pointer; }
.places-lightbox .lb-prev { left: 10px; } .places-lightbox .lb-next { right: 10px; }

@media (max-width: 992px) {
    .ypec-page-layout { flex-direction: column; gap: 30px; }
    .yvos-tours-grid, .yds-grid, .ydms-grid, .dosug-category-grid { grid-template-columns: repeat(2, 1fr) !important; gap: 16px !important; }
    .yds-card, .ydms-card, .yvos-tour-card { width: 100% !important; }
    .place-info-layout { grid-template-columns: 1fr; }
    .place-info-layout .divider { display: none; }

    /* Адаптация навигационных панелей и списков фильтров */
    .yvos-top-navigation, .ydms-action-buttons, .yds-top-navigation {
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 12px !important;
        margin-bottom: 1.5rem !important;
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }
    
    .yvos-terms-list, .dosug-terms-list, .yds-terms-list {
        display: flex !important;
        gap: 8px !important;
        flex-wrap: wrap !important; /* На планшетах и ПК переносим строки */
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }
    
    .yvos-add-tour-button, .ydms-add-button, .yds-add-button, .ydms-select-map-button {
        width: 100% !important;
        justify-content: center !important;
        text-align: center !important;
        display: inline-flex !important;
    }
}

/* На мобильных телефонах */
@media (max-width: 767px) {
    .yvos-tours-grid {
        grid-template-columns: 1fr !important;
        gap: 16px !important;
    }
    /* Уменьшаем шрифты заголовков на мобилках, чтобы длинные слова не вылезали за экран */
    .yvos-category-header, .ydms-category-header, .yds-category-header {
        font-size: 26px !important;
        word-wrap: break-word !important;
        overflow-wrap: break-word !important;
    }
}

/* Стили для модалки предложения тура (modal-suggest) по макету и сниппету */
.booking-suggest-modal-inner {
    width: 500px !important;
    max-width: 90vw !important;
    background-color: #EFF0F1 !important;
    border-radius: 4px !important;
    position: relative !important;
    padding: 16px 20px !important;
    box-sizing: border-box !important;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3) !important;
    font-family: 'Open Sans', sans-serif !important;
}

.booking-suggest-header {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    margin-bottom: 18px !important;
}

.booking-suggest-modal-inner .modal-close {
    position: static !important;
    font-size: 28px !important;
    line-height: 1 !important;
    margin: 0 !important;
    padding: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    transform: translateY(-2px) !important;
}

.booking-suggest-title {
    font-family: 'Open Sans', sans-serif !important;
    font-weight: 600 !important;
    line-height: 1 !important;
    margin: 0 !important;
    font-size: 24px !important;
    color: #1D1D1F !important;
    text-align: left !important;
}

.booking-suggest-field {
    margin: 0 !important;
    width: 100% !important;
    font-family: "Open Sans", sans-serif !important;
    font-weight: 400 !important;
    font-size: 16px !important;
    line-height: 130% !important;
    letter-spacing: 0% !important;
    color: rgb(29, 29, 31) !important;
    box-sizing: border-box !important;
    border: 1px solid transparent !important;
    border-radius: 8px !important;
    padding: 0px 16px !important;
    background: white !important;
    outline: none !important;
    box-shadow: none !important;
    transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out !important;
}

.booking-suggest-field:not(textarea) {
    height: 45px !important;
}

.booking-suggest-field:focus {
    outline: none !important;
    border-color: transparent !important;
    box-shadow: 0 0 0 3px rgba(3, 127, 255, 0.25) !important;
}

/* Перебиваем глобальное правило `.place-suggest-form input[type="text"]` из site.css (0,2,1),
   из-за которого поля красились в #EFF0F1 и сливались с фоном модалки. В сниппете поля белые.
   Селектор ниже — (0,3,0), чтобы гарантированно выиграть. */
.place-modal .place-suggest-form .booking-suggest-field {
    background: #fff !important;
}
.place-modal .place-suggest-form .booking-suggest-field:focus {
    border-color: transparent !important;
    box-shadow: 0 0 0 3px rgba(3, 127, 255, 0.25) !important;
}

textarea.booking-suggest-field {
    height: 95px;
    min-height: 60px !important;
    padding: 12px 16px !important;
    resize: vertical !important;
}

.booking-suggest-radio-group {
    display: flex !important;
    gap: 20px !important;
    margin-bottom: 16px !important;
}

.booking-suggest-radio-item {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    cursor: pointer !important;
}

.booking-suggest-radio-item input[type="radio"] {
    display: none !important;
}

.booking-suggest-radio-item .yvos-radio-icon {
    flex-shrink: 0 !important;
}

.yvos-radio-custom {
    position: relative !important;
    display: inline-block !important;
    width: 16px !important;
    height: 17px !important;
    vertical-align: middle !important;
}

.booking-suggest-radio-item .yvos-radio-icon {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 16px !important;
    height: 17px !important;
    transition: opacity 0.2s ease !important;
}

.yvos-radio-on {
    opacity: 0 !important;
}

.yvos-radio-off {
    opacity: 1 !important;
}

.booking-suggest-radio-item input[type="radio"]:checked ~ .yvos-radio-custom .yvos-radio-on {
    opacity: 1 !important;
}

.booking-suggest-radio-item input[type="radio"]:checked ~ .yvos-radio-custom .yvos-radio-off {
    opacity: 0 !important;
}

.booking-suggest-radio-label {
    font-family: 'Open Sans', sans-serif !important;
    font-size: 14px !important;
    color: #1D1D1F !important;
}

.booking-suggest-section-title {
    font-family: 'Open Sans', sans-serif !important;
    font-size: 16px !important;
    line-height: 130% !important;
    color: #949494 !important;
    margin-bottom: 8px !important;
    font-weight: 400 !important;
}

.booking-suggest-upload-btn {
    box-sizing: border-box !important;
    outline: none !important;
    margin: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    vertical-align: middle !important;
    font-size: 16px !important;
    line-height: 1 !important;
    color: rgb(17, 24, 39) !important;
    cursor: pointer !important;
    font-family: "Open Sans", sans-serif !important;
    gap: 10px !important;
    background: rgb(249, 250, 251) !important;
    border-style: none !important;
    border-radius: 8px !important;
    padding: 10px 18px !important;
    transition: background-color 0.2s, transform 0.1s !important;
}

.booking-suggest-upload-btn svg {
    display: block !important;
}

.booking-suggest-upload-btn:hover {
    background-color: rgb(235, 237, 240) !important;
}

.booking-suggest-submit-btn {
    width: 100% !important;
    height: 45px !important;
    background-color: #037fff !important;
    color: #fff !important;
    border: none !important;
    border-radius: 4px !important;
    font-family: 'Open Sans', sans-serif !important;
    font-size: 16px !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    transition: background-color 0.2s !important;
    margin-top: 10px !important;
}

.booking-suggest-submit-btn:hover {
    background-color: #0056cc !important;
}

.booking-suggest-consent {
    font-family: 'Open Sans', sans-serif !important;
    font-weight: 400 !important;
    font-size: 12px !important;
    line-height: 130% !important;
    color: #949494 !important;
    text-align: center !important;
    margin-top: 8px !important;
    box-sizing: border-box !important;
}

.place-suggest-form .form-group {
    margin-bottom: 4px !important;
}

/* Легенда карты досуга (плавающий бейдж, как в сниппете «Карта в местах») */
.yctp-map-modal-inner { position: relative; }

.yctp-map-floating-legend {
    position: absolute;
    bottom: 20px;
    left: 20px;
    z-index: 700;
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(10px);
    border-radius: 20px;
    padding: 8px 15px;
    box-shadow: 0 2px 10px rgba(0,0,0,0.15);
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: #333;
    font-weight: 500;
    border: 1px solid rgba(255,255,255,0.8);
}

.yctp-legend-marker {
    width: 12px;
    height: 12px;
    border-radius: 3px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.3);
    flex-shrink: 0;
}

/* Рекомендуемое — золотой маркер со звездой (как в сниппете «Карта в местах») */
.yctp-marker-featured {
    background: #ffffff;
    border: 3px solid #ffd700;
    width: 16px;
    height: 16px;
    position: relative;
    box-shadow: 0 2px 8px rgba(255, 215, 0, 0.4);
    border-radius: 3px;
}
.yctp-marker-featured::after {
    content: "★";
    position: absolute;
    top: -4px;
    right: -4px;
    width: 8px;
    height: 8px;
    font-size: 8px;
    color: #ffd700;
    line-height: 8px;
    text-align: center;
}

/* ---------- Модальное окно карты заведений досуга 1-в-1 по сниппету 1364 ---------- */
.yctp-modal {
    position: fixed;
    z-index: 99999;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: auto;
    background-color: rgba(0,0,0,0.5);
    backdrop-filter: blur(4px);
    animation: yctp-fadeIn 0.3s ease;
    display: none;
}

.yctp-modal.active {
    display: flex;
    align-items: center;
    justify-content: center;
}

@keyframes yctp-fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

.yctp-modal-content {
    position: relative;
    background-color: #fff;
    margin: auto;
    padding: 0;
    border-radius: 12px;
    width: 90%;
    max-width: 900px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.3);
    animation: yctp-slideIn 0.3s ease;
    overflow: hidden;
}

@keyframes yctp-slideIn {
    from { transform: translateY(-30px); opacity: 0; }
    to { transform: translateY(0); opacity: 1; }
}

.yctp-modal-content .yctp-map-modal-title {
    margin: 0 !important;
    padding: 20px 25px !important;
    background: transparent !important;
    color: #333 !important;
    font-size: 20px !important;
    font-weight: 600 !important;
}

.yctp-close, .yctp-map-close {
    position: absolute;
    right: 20px;
    top: 20px;
    color: #666;
    font-size: 28px;
    font-weight: bold;
    cursor: pointer;
    z-index: 10;
    width: 30px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: rgba(0,0,0,0.06);
    transition: all 0.3s ease;
    border: none;
    line-height: 1;
}

.yctp-close:hover, .yctp-map-close:hover {
    background: rgba(220, 53, 69, 0.1);
    color: #dc3545;
    transform: scale(1.1);
}

#yctp-map-wrapper {
    position: relative;
    display: flex;
    overflow: hidden;
    width: 100%;
}

#yctp-leaflet-map {
    width: 100%;
    height: 500px;
    border: none;
    transition: width 0.35s ease-in-out, height 0.35s ease-in-out;
}

#yctp-map-wrapper.panel-open #yctp-leaflet-map {
    width: calc(100% - 320px);
}

.yctp-map-control-button {
    position: absolute;
    top: 10px;
    right: 10px;
    z-index: 802;
    background: white;
    border: 1px solid #ddd;
    border-radius: 4px;
    width: 44px;
    height: 44px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 1px 5px rgba(0,0,0,0.2);
    transition: background-color 0.2s;
}

.yctp-map-control-button:hover:not(:disabled) {
    background-color: #f4f4f4;
}

.yctp-map-control-button .icon-arrow-left { display: none; }
.yctp-map-control-button .icon-arrow-right { display: block; }
#yctp-map-wrapper.panel-open .yctp-map-control-button .icon-arrow-left { display: block; }
#yctp-map-wrapper.panel-open .yctp-map-control-button .icon-arrow-right { display: none; }

#yctp-map-side-panel {
    width: 0;
    height: 500px;
    background-color: #ffffff;
    transition: width 0.35s ease-in-out;
    overflow: hidden;
    box-sizing: border-box;
    scrollbar-width: thin;
    scrollbar-color: #ccc #f1f1f1;
}

#yctp-map-side-panel::-webkit-scrollbar {
    width: 6px;
}
#yctp-map-side-panel::-webkit-scrollbar-track {
    background: #f1f1f1;
}
#yctp-map-side-panel::-webkit-scrollbar-thumb {
    background: #ccc;
    border-radius: 3px;
}

#yctp-map-wrapper.panel-open #yctp-map-side-panel {
    width: 320px;
    padding: 20px;
    border-left: 1px solid #e9ecef;
    overflow-y: auto;
}

.yctp-panel-content .panel-image {
    width: 100%;
    height: 180px;
    object-fit: cover;
    border-radius: 8px;
    margin-bottom: 15px;
    background-color: #f0f0f0;
}

.yctp-panel-content .panel-title {
    font-size: 1.2rem;
    font-weight: 600;
    color: #1d1d1f;
    margin: 0 0 8px 0;
    line-height: 1.3;
    text-align: left;
}

.yctp-panel-content .panel-title a {
    color: inherit;
    text-decoration: none;
    transition: color 0.2s;
}

.yctp-panel-content .panel-title a:hover {
    color: #037fff;
}

.yctp-panel-content .panel-category {
    font-size: 0.85rem;
    color: #dc3545;
    background-color: rgba(220, 53, 69, 0.1);
    display: inline-block;
    padding: 3px 8px;
    border-radius: 4px;
    margin-bottom: 8px;
}

.yctp-panel-content .panel-address {
    font-size: 0.9rem;
    color: #6c757d;
    margin-bottom: 12px;
    display: flex;
    align-items: center;
    gap: 5px;
}

.yctp-panel-content .panel-rating {
    margin: 10px 0;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 8px;
}

.yctp-panel-content .panel-price {
    font-size: 1.1rem;
    font-weight: 600;
    color: #dc3545;
    margin-bottom: 15px;
}

.dosug-panel-button {
    display: inline-block;
    background: #dc3545;
    color: white;
    padding: 12px 20px;
    text-decoration: none;
    border-radius: 6px;
    margin-top: 15px;
    font-weight: 500;
    width: 100%;
    text-align: center;
    box-sizing: border-box;
    transition: all 0.3s ease;
    position: relative;
}

.dosug-panel-button:hover {
    background: #c82333 !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 4px 12px rgba(220, 53, 69, 0.3) !important;
}

.yctp-panel-placeholder {
    color: #666;
    font-size: 14px;
    text-align: center;
    padding: 40px 20px;
}

.yctp-map-navigation {
    display: flex;
    flex-wrap: nowrap;
    padding: 15px 20px;
    background: #f8f9fa;
    border-top: 1px solid #e9ecef;
    justify-content: space-between;
    align-items: center;
}

.yctp-category-link {
    display: inline-block;
    padding: 7px 10px;
    font-size: 12px;
    background: #f0f0f0;
    color: #333;
    border-radius: 4px;
    text-decoration: none;
    transition: all 0.2s;
    text-align: center;
    white-space: nowrap;
    flex: 1;
    margin: 0 4px;
}

.yctp-category-link:first-child {
    margin-left: 0;
}

.yctp-category-link:last-child {
    margin-right: 0;
}

.yctp-category-link:hover, .yctp-category-link.active, .yctp-category-link.yctp-current-category {
    background: #e0e0e0;
    color: #037fff;
}

@keyframes combined-star-pulse {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.1); }
}

.combined-venue-marker.featured::after {
    content: '★';
    position: absolute;
    top: -8px;
    right: -8px;
    width: 16px;
    height: 16px;
    background: #ffd700;
    color: #fff;
    border-radius: 50%;
    font-size: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid #fff;
    box-shadow: 0 2px 4px rgba(0,0,0,0.2);
    animation: combined-star-pulse 1.5s ease-in-out infinite;
}

/* ---------- Мобильная адаптация и планшеты (320px – 1024px) ---------- */

/* 1. Сетка заведений (< 1024px) */
@media (max-width: 1024px) {
    .dosug-category-grid,
    .ydms-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 16px !important;
    }
    .place-card,
    .ydms-card {
        min-height: auto !important;
    }
    .place-card__image,
    .ydms-card__image {
        height: 220px !important;
        padding: 12px 12px 0 12px !important;
        overflow: visible !important;
        box-sizing: border-box !important;
    }
    .place-card__image-container,
    .ydms-card__image-container {
        height: 100% !important;
        width: 100% !important;
        position: relative !important;
        overflow: visible !important;
    }
    .place-card img,
    .ydms-card img,
    .ydms-card__image img,
    .ydms-card__image-container img {
        width: 100% !important;
        height: 200px !important;
        object-fit: cover !important;
        border-radius: 6px !important;
    }
}

/* 2. Категории, модалка карты (< 1024px) */
@media (max-width: 1024px) {
    /* Шапка и кнопки категорий */
    .dosug-terms-list {
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 8px !important;
        padding-bottom: 5px !important;
        width: 100% !important;
        box-sizing: border-box !important;
        margin-left: 0 !important;
        justify-content: flex-start !important;
        overflow: visible !important;
    }
    .dosug-terms-list::-webkit-scrollbar {
        display: none;
    }
    .dosug-terms-list .category-tab {
        flex: 0 1 auto !important;
        white-space: normal !important;
        text-align: center;

    }

    /* Модальное окно карты досуга */
    #yctp-map-modal.yctp-modal,
    .yctp-modal {
        display: none;
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        width: 100% !important;
        height: 100vh !important;
        z-index: 99999 !important;
        padding: 0 !important;
        margin: 0 !important;
    }
    #yctp-map-modal.yctp-modal.active,
    .yctp-modal.active {
        display: flex !important;
    }
    #yctp-map-modal .yctp-modal-content,
    .yctp-modal-content {
        width: 100% !important;
        max-width: 100% !important;
        height: 100vh !important;
        margin: 0 !important;
        border-radius: 0 !important;
        display: flex !important;
        flex-direction: column !important;
        box-sizing: border-box !important;
        position: relative !important;
    }
    #yctp-map-wrapper {
        flex: 1 !important;
        position: relative !important;
        width: 100% !important;
        height: auto !important;
        overflow: hidden !important;
    }
    #yctp-leaflet-map,
    #yctp-map-wrapper.panel-open #yctp-leaflet-map {
        height: calc(100vh - 120px) !important;
        width: 100% !important;
        border-radius: 0 0 16px 16px !important;
    }
    #yctp-map-side-panel {
        position: absolute !important;
        bottom: 0 !important;
        left: 0 !important;
        right: 0 !important;
        width: 100% !important;
        height: auto !important;
        max-height: 50% !important;
        transform: translateY(100%) !important;
        transition: transform 0.35s ease !important;
        border-radius: 16px 16px 0 0 !important;
        z-index: 801 !important;
        background-color: #ffffff !important;
        box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.15) !important;
        border-left: none !important;
        border-top: 1px solid #e9ecef !important;
        overflow-y: auto !important;
        box-sizing: border-box !important;
        padding: 20px !important;
    }
    #yctp-map-wrapper.panel-open #yctp-map-side-panel,
    .panel-open #yctp-map-side-panel {
        transform: translateY(0) !important;
    }
    .yctp-map-navigation {
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 8px !important;
        padding: 10px 15px !important;
        justify-content: flex-start !important;
        background: #f8f9fa !important;
        border-top: 1px solid #e9ecef !important;
        width: 100% !important;
        box-sizing: border-box !important;
        margin-left: 0 !important;
        overflow: visible !important;
    }
    .yctp-map-navigation::-webkit-scrollbar {
        display: none;
    }
    .yctp-category-link {
        flex: 0 1 auto !important;
        white-space: normal !important;
        padding: 6px 12px !important;
        font-size: 12px !important;
        border-radius: 4px !important;
        margin: 0 !important;
    }
    .yctp-map-floating-legend {
        bottom: 15px;
        left: 15px;
        font-size: 12px;
        padding: 6px 12px;
        border-radius: 18px;
    }
    .yctp-legend-marker { width: 10px; height: 10px; }
}

/* 3. Сетка заведений на узких экранах (< 600px) */
@media (max-width: 600px) {
    .dosug-category-grid,
    .ydms-grid,
    .yds-grid {
        grid-template-columns: 1fr !important;
        gap: 15px !important;
    }
}

/* 4. Кнопки и форма добавления (< 480px) */
@media (max-width: 480px) {
    .ydms-add-button,
    .ydms-select-map-button {
        width: 100% !important;
        display: block !important;
        margin-top: 8px !important;
        box-sizing: border-box !important;
        text-align: center !important;
    }
    #place-modal-add .booking-suggest-field,
    .booking-suggest-field {
        width: 100% !important;
        box-sizing: border-box !important;
    }
    #place-modal-add .upload-button-wrapper {
        width: 100% !important;
        justify-content: center !important;
    }
    #place-modal-add .booking-suggest-upload-btn,
    #place-modal-add .booking-suggest-submit-btn,
    .booking-suggest-upload-btn,
    .booking-suggest-submit-btn {
        width: 100% !important;
        display: flex !important;
        justify-content: center !important;
        box-sizing: border-box !important;
        margin-top: 8px !important;
    }
}

/* Адаптация карт на внутренней странице досуга (dosug-single) */
@media (max-width: 768px) {
    .dosug-single-container {
        width: 100% !important;
        max-width: 100% !important;
        padding-left: 15px !important;
        padding-right: 15px !important;
        box-sizing: border-box !important;
        overflow-x: hidden !important;
    }

    .dosug-single-container .dosug-single-buttons {
        flex-wrap: wrap !important;
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

    .dosug-single-container .dosug-single-map-btn,
    .dosug-single-container .dosug-single-phone-btn,
    .dosug-single-container .dosug-single-review-btn {
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

    .dosug-single-container .dosug-single-info-cards {
        flex-wrap: wrap !important;
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

    .dosug-single-container .dosug-single-tabs {
        width: 100% !important;
        max-width: 100% !important;
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch !important;
        scrollbar-width: none !important;
        box-sizing: border-box !important;
    }

    .dosug-single-container .dosug-single-tabs::-webkit-scrollbar {
        display: none !important;
    }

    .dosug-single-container .dosug-single-tabs-nav {
        display: flex !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        justify-content: space-between !important;
        align-items: center !important;
        box-sizing: border-box !important;
        overflow: hidden !important;
    }

    .dosug-single-container .dosug-single-tab-btn {
        flex: 1 1 0% !important;
        min-width: 0 !important;
        text-align: center !important;
        padding: 10px 4px !important;
        font-size: 15px !important;
        white-space: nowrap !important;
        box-sizing: border-box !important;
    }

    .dosug-single-container .dosug-single-tabs-nav > div[style*="width: 1px"] {
        flex-shrink: 0 !important;
    }

    .dosug-single-container .dosug-single-info-layout {
        grid-template-columns: 1fr !important;
        gap: 20px !important;
    }

    .dosug-single-container #place-map {
        max-width: 100% !important;
        height: 200px !important;
    }

    #dosug-single-map-modal .yctp-modal-content {
        width: 100% !important;
        max-width: 100% !important;
        height: 100vh !important;
        margin: 0 !important;
        border-radius: 0 !important;
        display: flex !important;
        flex-direction: column !important;
    }

    #dosug-single-map-modal h3 {
        padding: 14px 45px 14px 16px !important;
        font-size: 16px !important;
        line-height: 1.3 !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
    }

    #dosug-single-map-modal .yctp-close {
        top: 10px !important;
        right: 10px !important;
        width: 32px !important;
        height: 32px !important;
        font-size: 24px !important;
    }

    #yctp-single-map-wrapper {
        flex: 1 !important;
        height: calc(100vh - 50px) !important;
    }

    #yctp-single-leaflet-map {
        height: 100% !important;
        min-height: 300px !important;
    }
}

/* Адаптация открывающейся карты заведения на планшетах (769px - 1024px) */
@media (min-width: 769px) and (max-width: 1024px) {
    #dosug-single-map-modal .yctp-modal-content {
        width: 92% !important;
        max-width: 92% !important;
        height: 85vh !important;
        margin: 4vh auto !important;
        border-radius: 12px !important;
        display: flex !important;
        flex-direction: column !important;
        box-shadow: 0 10px 30px rgba(0,0,0,0.3) !important;
    }

    #dosug-single-map-modal h3 {
        padding: 16px 50px 16px 20px !important;
        font-size: 18px !important;
        line-height: 1.3 !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
    }

    #dosug-single-map-modal .yctp-close {
        top: 12px !important;
        right: 14px !important;
        width: 34px !important;
        height: 34px !important;
        font-size: 26px !important;
    }

    #dosug-single-map-modal #yctp-single-map-wrapper {
        flex: 1 !important;
        height: calc(100% - 55px) !important;
    }

    #dosug-single-map-modal #yctp-single-leaflet-map {
        height: 100% !important;
        min-height: 400px !important;
    }
}



/* Global and Layout */
.yds-single-container { 
    width: 1160px;
    max-width: 1160px; 
    margin: 0 auto; 
    padding: 0; 
    box-sizing: border-box;
    font-family: 'Open Sans', sans-serif; 
}
@media (max-width: 1190px) {
    .yds-single-container {
        width: 100%;
        max-width: 100%;
        padding-left: 15px;
        padding-right: 15px;
    }
}

.yds-single-breadcrumbs { 
    color: #1D1D1F; 
    margin-bottom: 1rem;
}

.yds-single-breadcrumbs a { 
    color: #1D1D1F; 
    text-decoration: none; 
    transition: color 0.2s ease;
}

.yds-single-breadcrumbs a:hover { 
    color: #037fff; 
}

.yds-single-breadcrumbs span { 
    color: rgba(29, 29, 31, 0.76); 
}

.yds-single-header h1 { 
    font-size: 40px; 
    font-weight: 600; 
    color: #1D1D1F;
    margin-bottom: 1rem;
}

.yds-single-content { 
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 2rem;
    margin-top: 2rem;
}

.yds-single-main-content { 
    padding: 0;
}

.yds-single-featured-image img { 
    width: 100% !important;
    height: 352px !important;
    object-fit: cover;
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}

/* Удален yds-single-content-text */

/* Кнопки с анимацией наведения */
.yds-single-map-btn:hover,
.yds-single-review-btn:hover {
    transform: translateY(-1px);
}

.yds-single-phone-btn:hover {
    filter: brightness(0.9);
}

/* Система вкладок */
.yds-single-tabs-nav {
    display: flex;
    gap: 0;
    width: fit-content;
    margin-bottom: 24px;
}

.yds-single-tab-btn {
    padding: 12px 24px;
    border: none;
    background: transparent;
    font-family: 'Open Sans', sans-serif;
    font-weight: 600;
    font-size: 16px;
    color: #666667;
    cursor: pointer;
    border-bottom: 2px solid transparent;
    transition: all 0.3s ease;
    position: relative;
}

.yds-single-tab-btn:hover {
    color: #1D1D1F;
    transform: translateY(-1px);
}

.yds-single-tab-btn.active {
    color: #1D1D1F !important;
    transform: translateY(-1px);
}

.yds-single-tabs-content {
    /* Убираем фон */
    padding: 0;
}

.yds-single-tab-content {
    display: none;
}

.yds-single-tab-content.active {
    display: block;
}

.yds-single-info-layout {
    display: grid;
    grid-template-columns: 1fr 1px 1fr;
    gap: 32px;
}

.yds-single-map-btn-small:hover {
    transform: translateY(-1px);
}

.yds-single-contact-row {
    display: flex;
    gap: 24px;
    flex-wrap: wrap;
}

.yds-single-info-item h3 {
    margin: 0 0 8px 0;
}

.yds-single-info-item p {
    margin: 0;
}

.yds-single-social-links a:hover {
    transform: translateY(-1px);
}

.yds-single-gallery-item:hover img {
    transform: scale(1.05);
}

.yds-single-gallery-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 16px;
}

.yds-single-review-item {
    background: #FFFFFF;
    border-radius: 8px;
    padding: 20px;
    margin-bottom: 16px;
    transition: box-shadow 0.2s ease;
}

.yds-single-review-item:hover {
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}

/* Responsive */
@media (max-width: 768px) {
    .yds-single-container {
        padding: 0 15px !important;
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

    .yds-single-content {
        grid-template-columns: 1fr;
        gap: 1rem;
    }

    .yds-single-breadcrumbs,
    .yds-single-address,
    .yds-single-info-cards {
        padding: 0 !important;
    }

    .yds-single-header {
        padding: 0 !important;
    }

    .yds-single-header h1 {
        font-size: 24px !important;
        line-height: 1.25 !important;
    }

    .yds-single-main-content {
        padding: 0 !important;
    }

    .yds-single-tabs-content {
        padding: 0 !important;
        margin-top: 0 !important;
    }

    .yds-single-tab-content {
        padding: 0 !important;
        width: 100% !important;
        box-sizing: border-box;
    }

    .yds-single-info-layout {
        grid-template-columns: 1fr !important;
        gap: 20px !important;
    }
    
    .yds-single-info-layout > div:nth-child(2) {
        display: none !important; /* Скрываем разделитель на мобильных */
    }

    .yds-single-info-left,
    .yds-single-info-right {
        width: 100% !important;
        max-width: 100% !important;
    }

    .yds-single-info-item {
        width: 100% !important;
        box-sizing: border-box;
    }

    .yds-single-contact-row {
        flex-direction: column;
        gap: 16px;
    }
    
    .yds-single-tabs {
        padding: 0 !important;
        margin-bottom: 1.5rem !important;
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch !important;
        scrollbar-width: none !important;
    }
    .yds-single-tabs::-webkit-scrollbar {
        display: none !important;
    }

    .yds-single-tabs-nav {
        display: flex !important;
        gap: 0 !important;
        padding: 0 !important;
        margin-bottom: 0px !important;
        width: max-content !important;
        min-width: 100% !important;
        box-sizing: border-box !important;
        align-items: center !important;
        border-bottom: 1px solid #E5E5E5 !important;
    }

    .yds-single-tab-btn {
        padding: 12px 12px !important;
        font-size: 14.5px !important;
        white-space: nowrap !important;
        flex: 1 0 auto !important;
        text-align: center !important;
        box-sizing: border-box !important;
    }

    .yds-single-separator {
        width: 100% !important;
        margin: 15px 0 !important;
        box-sizing: border-box !important;
    }

    .yds-single-tabs-content {
        margin-top: 15px !important;
    }
    
    .yds-single-gallery-grid {
        grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
        gap: 12px;
    }
    
    .yds-single-info-cards {
        flex-wrap: wrap;
        gap: 12px !important;
    }

    .yds-single-buttons {
        flex-direction: column !important;
        gap: 8px !important;
        width: 100% !important;
    }

    .yds-single-buttons a,
    .yds-single-buttons button,
    .yds-single-phone-btn,
    .yds-single-map-btn,
    .yds-single-review-btn {
        width: 100% !important;
        box-sizing: border-box !important;
    }

    /* Оптимизация отступов для текста */
    .yds-single-info-item h3 {
        font-size: 15px !important;
    }

    .yds-single-info-item p,
    .yds-single-info-item div {
        font-size: 14.5px !important;
    }

    /* Фотокарусель на мобиле */
    .yds-single-photo-carousel {
        overflow: hidden !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    .yds-single-photo-strip {
        width: 100% !important;
        padding: 0 !important;
        margin: 0 !important;
        box-sizing: border-box;
    }

    .yds-single-photo-ribbon {
        justify-content: flex-start !important;
        gap: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    .yds-single-photo-item {
        width: 100% !important;
        min-width: 100% !important;
        flex-shrink: 0 !important;
        display: flex !important;
        justify-content: center !important;
        align-items: center !important;
        padding: 0 !important;
        margin: 0 !important;
    }

    .yds-single-photo-item img {
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
        border-radius: 0 !important;
    }

    .yds-single-photo-prev,
    .yds-single-photo-next {
        display: none !important;
    }
}

/* Дополнительные стили для экранов <= 480px */
@media screen and (max-width: 480px) {
    .yds-single-container {
        padding: 0 12px !important;
    }

    .yds-single-header h1 {
        font-size: 20px !important;
    }

    .yds-single-tab-btn {
        padding: 10px 10px !important;
        font-size: 13.5px !important;
    }
}

/* Review Form Styles */
.yds-single-review-form input:focus,
.yds-single-review-form textarea:focus {
    border-color: transparent !important;
    outline: 0 !important;
    box-shadow: 0 0 0 3px rgba(13,110,253,.25) !important;
}

.yds-single-review-form input::placeholder,
.yds-single-review-form textarea::placeholder {
    color: #949494;
    font-weight: 400;
}

.yds-single-star.yds-single-star-off path {
    opacity: 0.3;
}

.yds-single-star:hover {
    transform: scale(1.2);
}

.yds-single-review-form button:hover {
    transform: translateY(-1px);
    filter: brightness(0.9);
}

.yds-single-review-form button:active {
    transform: translateY(1px);
}

/* Photo carousel navigation arrows */
.yds-single-photo-prev,
.yds-single-photo-next {
    opacity: 1 !important;
    transition: all 0.2s ease !important;
    z-index: 1000 !important;
    display: flex !important;
    background: rgba(0, 0, 0, 0.7) !important;
    width: 40px !important;
    height: 40px !important;
    border-radius: 50% !important;
}

.yds-single-photo-prev:hover,
.yds-single-photo-next:hover {
    background: rgba(0, 0, 0, 0.9) !important;
    transform: translateY(-50%) scale(1.1) !important;
}

.yds-single-photo-prev {
    left: 1rem !important;
}

.yds-single-photo-next {
    right: 1rem !important;
}

/* Navigation fix - правильное позиционирование */
.yds-single-navigation .nav-links {
    display: flex;
    justify-content: space-between;
    width: 100%;
}

.yds-single-navigation .nav-previous {
    text-align: left;
    flex: 1;
}

.yds-single-navigation .nav-next {
    text-align: right;
    flex: 1;
}

/* Когда есть только "следующая" - она должна быть справа */
.yds-single-navigation .nav-links:not(:has(.nav-previous)) .nav-next {
    margin-left: auto;
}

/* Когда есть только "предыдущая" - она должна быть слева */
.yds-single-navigation .nav-links:not(:has(.nav-next)) .nav-previous {
    margin-right: auto;
}

/* Social sharing styles */
.kartochka__social a:hover {
    transform: translateY(-2px);
}




.combined-venue-marker.standard {
    border-color: #000000 !important;
    color: #000000 !important;
}

.yds-single-map-btn {
    white-space: nowrap !important;
    width: auto !important;
    padding: 0 16px !important;
    font-size: 16px !important;
}

/* ---------- Адаптация /ekskursii/ (ypec-category-card) под мобильные экраны ---------- */
@media screen and (max-width: 767px) {
    .ypec-category-grid {
        grid-template-columns: 1fr !important;
        gap: 16px !important;
    }
    .ypec-category-card:last-child:nth-child(2n-1) {
        grid-column: auto !important;
        max-width: 100% !important;
    }
    .ypec-main-content h1 {
        font-size: 26px !important;
        word-wrap: break-word !important;
        margin-bottom: 16px !important;
    }
}
