/* ==========================
   Review Form
========================== */

.custom-review-wrapper {
    max-width: 850px;
    margin: 0 auto;
    background: #fff;
    border: 1px solid #ddd;
    padding: 35px;
    border-radius: 6px;
    box-shadow: 0 3px 12px rgba(0,0,0,.08);
}

.custom-review-wrapper *{
    box-sizing:border-box;
}

.review-row{
    display:flex;
    gap:20px;
    margin-bottom:20px;
}

.review-col{
    flex:1;
}

.full-width{
    display:block;
}

.review-col label,
.full-width label{
    display:block;
    font-size:15px;
    font-weight:600;
    margin-bottom:8px;
    color:#222;
}

.review-col label span{
    color:#d40000;
}

.review-row label span{
    color:#d40000;
}

.review-col input,
.full-width textarea{
    width:100%;
    padding:12px 15px;
    border:1px solid #ccc;
    border-radius:4px;
    font-size:15px;
    transition:.3s;
    outline:none;
}

.review-col input:focus,
.full-width textarea:focus{
    border-color:#caa65b;
    box-shadow:0 0 5px rgba(202,166,91,.25);
}

.full-width textarea{
    resize:vertical;
    min-height:150px;
}

/* ==========================
   Rating
========================== */

.rating-wrapper{
    display:flex;
    flex-direction:row-reverse;
    justify-content:flex-end;
}

.rating-wrapper input{
    display:none;
}

.rating-wrapper label{
    font-size:34px;
    color:#ccc;
    cursor:pointer;
    transition:.25s;
    margin-right:5px;
}

.rating-wrapper label:hover,
.rating-wrapper label:hover ~ label{
    color:#f4b400;
}

.rating-wrapper input:checked ~ label{
    color:#f4b400;
}

/* ==========================
   Checkbox
========================== */

.checkbox-row{
    display:block;
}

.checkbox-row label{
    display:flex;
    align-items:center;
    gap:10px;
    font-size:15px;
    cursor:pointer;
}

.checkbox-row input{
    width:18px;
    height:18px;
}

/* ==========================
   Button
========================== */

.review-submit{
    background:#e9a132;
    color:#fff;
    border:none;
    padding:14px 35px;
    border-radius:4px;
    cursor:pointer;
    font-size:16px;
    font-weight:600;
    transition:.3s;
}

.review-submit:hover{
    background:#b28c42;
}

/* ==========================
   Messages
========================== */

.review-message{
    margin-top:20px;
    display:none;
    padding:14px;
    border-radius:4px;
    font-weight:600;
}

.review-message.success{
    display:block;
    background:#d4edda;
    color:#155724;
    border:1px solid #c3e6cb;
}

.review-message.error{
    display:block;
    background:#f8d7da;
    color:#721c24;
    border:1px solid #f5c6cb;
}

/* ==========================
   Validation
========================== */

input.error,
textarea.error{
    border-color:#d40000 !important;
}

/* ==========================
   Responsive
========================== */

@media(max-width:768px){

    .custom-review-wrapper{
        padding:20px;
    }

    .review-row{
        display:block;
    }

    .review-col{
        width:100%;
        margin-bottom:18px;
    }

    .review-col:last-child{
        margin-bottom:0;
    }

    .rating-wrapper{
        margin-top:10px;
    }

}