.vnc-service-reviews,
.vnc-service-reviews button,
.vnc-service-reviews input,
.vnc-service-reviews textarea {
    font-family: inherit;
    letter-spacing: 0;
}

.vnc-service-reviews {
    clear: both;
    margin: 0 0 52px;
    padding: 34px 0 0;
    color: #24313b;
    border-top: 1px solid #dfe5e8;
}

.vnc-review-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 20px;
}

.vnc-review-summary h2 {
    margin: 0 0 8px;
    color: #17354a;
    font-size: 24px;
    line-height: 1.3;
}

.vnc-review-summary p,
.vnc-review-live {
    margin: 0;
    color: #64727d;
    font-size: 14px;
}

.vnc-review-score strong {
    color: #16724b;
    font-size: 22px;
}

.vnc-review-stars {
    display: inline-block;
    margin-left: 7px;
    color: #e6a700;
    font-size: 16px;
    white-space: nowrap;
}

.vnc-review-primary,
.vnc-review-load-more {
    min-height: 42px;
    padding: 9px 18px;
    color: #fff;
    font-weight: 700;
    background: #16724b;
    border: 1px solid #16724b;
    border-radius: 5px;
    cursor: pointer;
}

.vnc-review-filters {
    display: flex;
    gap: 8px;
    margin: 0 0 12px;
    padding: 2px 0 8px;
    overflow-x: auto;
    scrollbar-width: thin;
}

.vnc-review-filters button {
    flex: 0 0 auto;
    min-height: 38px;
    padding: 7px 13px;
    color: #43515c;
    font-size: 13px;
    background: #fff;
    border: 1px solid #cfd8dd;
    border-radius: 5px;
    cursor: pointer;
}

.vnc-review-filters button:hover,
.vnc-review-filters button:focus-visible,
.vnc-review-filters button[aria-pressed="true"] {
    color: #12613f;
    background: #edf8f2;
    border-color: #16724b;
}

.vnc-review-live {
    min-height: 22px;
    margin-bottom: 8px;
}

.vnc-review-list {
    border-top: 1px solid #e2e7ea;
}

.vnc-review-card {
    padding: 22px 0;
    border-bottom: 1px solid #e2e7ea;
    border-radius: 6px;
}

.vnc-review-card[hidden] {
    display: none;
}

.vnc-review-card__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}

.vnc-review-card__header strong,
.vnc-review-card__header .vnc-review-stars {
    display: block;
    margin: 0;
}

.vnc-review-card__header time {
    color: #74818b;
    font-size: 12px;
    white-space: nowrap;
}

.vnc-review-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin: 10px 0;
}

.vnc-review-badges span,
.vnc-review-source {
    display: inline-block;
    padding: 3px 7px;
    color: #12613f;
    font-size: 11px;
    font-weight: 700;
    background: #edf8f2;
    border: 1px solid #cce8d9;
    border-radius: 4px;
}

.vnc-review-badges .is-demo {
    color: #7a5700;
    background: #fff8df;
    border-color: #eed687;
}

.vnc-review-card__content {
    color: #35434d;
    font-size: 14px;
    line-height: 1.65;
}

.vnc-review-media {
    display: grid;
    grid-template-columns: repeat(5, 88px);
    gap: 8px;
    margin-top: 14px;
}

.vnc-review-media button {
    position: relative;
    width: 88px;
    height: 88px;
    padding: 0;
    overflow: hidden;
    color: #fff;
    background: #263640;
    border: 1px solid #cfd8dd;
    border-radius: 5px;
    cursor: pointer;
}

.vnc-review-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.vnc-review-reply {
    margin-top: 15px;
    padding: 14px 16px;
    color: #40505b;
    background: #f4f6f7;
    border-left: 3px solid #16724b;
}

.vnc-review-reply strong {
    display: block;
    margin-bottom: 5px;
    color: #17354a;
}

.vnc-review-card__footer {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 16px;
    margin-top: 14px;
    padding: 0;
    background: transparent;
    color: #52636f;
}

.vnc-review-card__footer button,
.vnc-review-card__footer a {
    padding: 0;
    color: #52636f;
    font-size: 12px;
    text-decoration: none;
    background: transparent;
    border: 0;
    cursor: pointer;
}

.vnc-review-card__footer a {
    color: #12613f;
    font-weight: 700;
}

.vnc-review-load-more {
    display: block;
    margin: 20px auto;
    color: #12613f;
    background: #fff;
}

.vnc-review-form {
    max-width: 720px;
    margin-top: 24px;
    padding: 22px;
    background: #f6f8f8;
    border: 1px solid #dce3e6;
    border-radius: 6px;
}

.vnc-review-form[hidden] {
    display: none;
}

.vnc-review-form h3 {
    margin: 0 0 18px;
    font-size: 19px;
}

.vnc-review-form > label,
.vnc-review-form fieldset {
    display: block;
    margin: 0 0 14px;
    color: #35434d;
    font-size: 13px;
    font-weight: 700;
    border: 0;
}

.vnc-review-form input[type="text"],
.vnc-review-form textarea {
    display: block;
    width: 100%;
    margin-top: 6px;
    padding: 10px 11px;
    color: #24313b;
    background: #fff;
    border: 1px solid #bcc8ce;
    border-radius: 4px;
}

.vnc-review-rating-input {
    display: flex;
    flex-direction: row-reverse;
    justify-content: flex-end;
    gap: 4px;
}

.vnc-review-rating-input input {
    position: absolute;
    opacity: 0;
}

.vnc-review-rating-input label {
    color: #bbc2c6;
    font-size: 28px;
    cursor: pointer;
}

.vnc-review-rating-input label:hover,
.vnc-review-rating-input label:hover ~ label,
.vnc-review-rating-input input:checked ~ label {
    color: #e6a700;
}

.vnc-review-file-preview,
.vnc-review-privacy,
.vnc-review-consent {
    color: #64727d;
    font-size: 12px;
    line-height: 1.5;
}

.vnc-review-honeypot {
    position: absolute;
    left: -10000px;
}

.vnc-review-media-dialog {
    width: min(920px, calc(100vw - 28px));
    max-height: calc(100vh - 28px);
    padding: 42px 14px 14px;
    background: #11191e;
    border: 0;
    border-radius: 6px;
}

.vnc-review-media-dialog::backdrop {
    background: rgba(0, 0, 0, .72);
}

.vnc-review-media-dialog > button {
    position: absolute;
    top: 8px;
    right: 8px;
    width: 34px;
    height: 34px;
    color: #fff;
    font-size: 24px;
    background: transparent;
    border: 1px solid #73808a;
    border-radius: 50%;
}

.vnc-review-media-dialog img,
.vnc-review-media-dialog video {
    display: block;
    max-width: 100%;
    max-height: calc(100vh - 90px);
    margin: auto;
}

@media (max-width: 767px) {
    .vnc-review-summary {
        align-items: flex-start;
        flex-direction: column;
    }

    .vnc-review-summary h2 {
        font-size: 20px;
    }

    .vnc-review-media {
        grid-template-columns: repeat(4, 68px);
    }

    .vnc-review-media button {
        width: 68px;
        height: 68px;
    }

    .vnc-review-form {
        padding: 16px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .vnc-service-reviews * {
        scroll-behavior: auto;
        transition: none !important;
    }
}
