/* Клон иконки для анимации полёта */
.ratings-control,
.ratings-click {
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
    cursor: pointer;
}

.is-hidden {
    display: none !important;
}

.flying-clone {
    position: fixed !important;
    z-index: 9999;
    pointer-events: none;
    margin: 0 !important;
    padding: 0 !important;
    will-change: transform, opacity, filter;
    transition: transform 0.6s cubic-bezier(0.2, 0.6, 0.2, 1), opacity 0.6s ease-in, filter 0.6s ease-in;
    transform: translate(0, 0) scale(1);
    opacity: 1;
    filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.3));
}

.flying-clone.is-flying {
    transform: translate(var(--fly-dx, 0), var(--fly-dy, 0)) scale(0.85);
    opacity: 0;
    filter: drop-shadow(0 0 0 rgba(0, 0, 0, 0));
}

.ratings-click:active {
    transform: scale(0.95);
    transition: transform 0.1s ease-out;
}

a.ratings-points,
a.ratings-points:link,
a.ratings-points:visited,
a.ratings-points:hover,
a.ratings-points:active {
    color: #ff7f50;
    text-decoration: none;
}

.comments-container {
    position: relative;
}

/* Резерв под skeleton */
.photo-description:not([data-comments-loaded="1"]) .comments-container {
    min-height: 260px;
}

.photo-description[data-comments-loaded="1"] .comments-container {
    min-height: 0;
}

/* data-comment-blocked на .comments-form обновляется из photos-comments.js при блокировке */
.comments-form[data-comment-blocked="1"] ~ .comments-container .js-comment-reply {
    display: none;
}

.comments-loader {
    position: absolute;
    inset: 0;
    padding: 6px 0;
    pointer-events: none;
}

.comments-loader--hidden {
    opacity: 0;
    visibility: hidden;
}

.comments-content {
    position: relative;
    opacity: 0;
    transition: opacity 400ms ease-in;
}

.comments-content--visible {
    opacity: 1;
}

.comments-loader__item {
    display: flex;
    gap: 10px;
    align-items: flex-start;
}

.comments-loader__avatar,
.comments-loader__line {
    position: relative;
    overflow: hidden;
    background: #f1f1f1;
}

.comments-loader__avatar::before,
.comments-loader__line::before {
    content: "";
    position: absolute;
    inset: 0;
    transform: translateX(-100%);
    background: linear-gradient(
        90deg,
        rgba(255, 244, 240, 0) 0%,
        rgba(255, 244, 240, 0.55) 35%,
        rgba(255, 250, 247, 0.9) 50%,
        rgba(255, 244, 240, 0.55) 65%,
        rgba(255, 244, 240, 0) 100%
    );
    animation: comments-loader-shimmer-slide 1400ms ease-in infinite;
}

.comments-loader__avatar {
    width: 36px;
    height: 36px;
    border-radius: 4px;
    flex-shrink: 0;
}

.comments-loader__content {
    flex: 1;
}

.comments-loader__line {
    height: 10px;
    border-radius: 4px;
    margin-bottom: 7px;
}

.comments-loader__line--name {
    width: 120px;
    height: 12px;
}

.comments-loader__line--text {
    width: 85%;
}

.comments-loader__line--text:last-child {
    width: 60%;
    margin-bottom: 0;
}

@keyframes comments-loader-shimmer-slide {
    0% { transform: translateX(-100%); }
    28.57% { transform: translateX(100%); }
    100% { transform: translateX(100%); }
}

a.snackbar-btn,
a.snackbar-btn:link,
a.snackbar-btn:visited,
a.snackbar-btn:hover,
a.snackbar-btn:active {
    color: #FF7F50;
    text-decoration: none;
}

/* Попап «ВАУ» с монетами: лоадер до прихода баланса; снять класс is-loading из JS после запроса. */
.popup-coins-loader {
    display: none;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 28px 20px 32px;
    min-height: 160px;
    box-sizing: border-box;
}

.popup-coins-root.is-loading .popup-coins-loader {
    display: flex;
}

.popup-coins-root.is-loading .popup-coins-body {
    display: none;
}

.popup-coins-loader__spinner {
    width: 36px;
    height: 36px;
    box-sizing: border-box;
    border: 3px solid rgba(0, 0, 0, 0.1);
    border-top-color: #ff7f50;
    border-radius: 50%;
    animation: popup-coins-spin 0.65s linear infinite;
}

.popup-coins-loader__label {
    font-size: 14px;
    line-height: 1.3;
    color: #666;
}

@keyframes popup-coins-spin {
    to {
        transform: rotate(360deg);
    }
}

.emojione {
    width: 22px;
    height: 22px;
}

/* До init Swiper: не показывать SSR-первый слайд (иначе мелькание 20 → 24) */
#js-swiper:not(.photos-swiper--ready) {
    visibility: hidden;
}
