/* ===========================================================================
   Block: review-form — "Leave a review" white card form
   - card: white, radius 30px, padding 48px (lg) / 24px (mobile)
   - heading ~46px with purple highlighted word · required note red (top right)
   - required inputs: light pink bg · textarea: light gray bg · radius 15px
   - Send button: #7616F4, radius 10px + consent text with underlined link
   =========================================================================== */

.voctos-review-form {
    font-family: 'Unbounded', sans-serif;
    margin-bottom: 30px;
}

.voctos-review-form .rvf-card {
    background: #fff;
    border-radius: 30px;
    padding: 28px 22px;
}
@media (min-width: 1024px) {
    .voctos-review-form .rvf-card { padding: 48px; }
}

/* ── Head row ───────────────────────────────────────────────── */
.voctos-review-form .rvf-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 16px;
    flex-wrap: wrap;
    margin-bottom: 28px;
}
.voctos-review-form .rvf-heading {
    font-size: 38px;
    font-weight: 400;
    line-height: 1.2;
    color: #0D172D;
    margin: 0;
}
.voctos-review-form .rvf-hl { color: #7616F4; }

.voctos-review-form .rvf-required {
    font-size: 12px;
    color: #FB4B5B;
    padding-top: 10px;
}

/* ── Fields ─────────────────────────────────────────────────── */
.voctos-review-form .rvf-row {
    display: grid;
    grid-template-columns: 1fr;
    gap: 20px;
    margin-bottom: 20px;
}
@media (min-width: 1024px) {
    .voctos-review-form .rvf-row { grid-template-columns: 1fr 1fr; }
}

.voctos-review-form .rvf-input {
    width: 100%;
    border: 1px solid transparent;
    border-radius: 15px;
    padding: 17px 24px 24px 24px;
    font-family: 'Unbounded', sans-serif;
    font-size: 14px;
    color: #0D172D;
    background: #F0F1F5;
    outline: none;
    transition: border-color .18s, background-color .18s;
}
.voctos-review-form .rvf-input::placeholder { color: #5B6472; opacity: 1; }
.voctos-review-form .rvf-input:focus { border-color: #7616F4; background: #fff; }

/* required text inputs → light pink like the original */
.voctos-review-form .rvf-input--req { background: #FBE9E5; }
.voctos-review-form .rvf-input--req:focus { background: #fff; }

.voctos-review-form .rvf-textarea {
    resize: vertical;
    min-height: 160px;
    margin-bottom: 24px;
    display: block;
}

/* validation error highlight */
.voctos-review-form .rvf-error { border-color: #FB4B5B; }

/* honeypot */
.voctos-review-form .rvf-hp {
    position: absolute !important;
    left: -9999px !important;
    width: 1px; height: 1px;
    opacity: 0;
}

/* ── Footer: button + consent ───────────────────────────────── */
.voctos-review-form .rvf-footer {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
}
@media (min-width: 1024px) {
    .voctos-review-form .rvf-footer {
        flex-direction: row;
        align-items: center;
        gap: 24px;
    }
}

.voctos-review-form .rvf-send {
    border: 0;
    cursor: pointer;
    background: #7616F4;
    color: #fff;
    font-family: 'Unbounded', sans-serif;
    font-size: 14px;
    padding: 16px 0;
    width: 100%;
    border-radius: 10px;
    transition: background-color .18s;
}
.voctos-review-form .rvf-send:hover { background: #0D172D; }
.voctos-review-form .rvf-send:disabled { opacity: .6; cursor: wait; }
@media (min-width: 1024px) {
    .voctos-review-form .rvf-send { width: 194px; flex-shrink: 0; }
}

.voctos-review-form .rvf-consent {
    font-size: 12px;
    line-height: 1.5;
    color: #7f8287;
    margin: 0;
}
.voctos-review-form .rvf-consent a {
    color: #1531DA;
    font-weight: 500;
    text-decoration: underline;
}
.voctos-review-form .rvf-consent a:hover { color: #7616F4; }

/* ── Result message ─────────────────────────────────────────── */
.voctos-review-form .rvf-msg {
    margin: 16px 0 0;
    font-size: 14px;
    display: none;
}
.voctos-review-form .rvf-msg.is-success { display: block; color: #2e7d32; }
.voctos-review-form .rvf-msg.is-error   { display: block; color: #FB4B5B; }
