/* =========================================================
   Customer Review Form
   v01.01.09
   ========================================================= */

.cc-contactp-form{
    width:100%;
    display:flex;
    flex-direction:column;
    gap:24px;
    margin:0;
}

.cc-contactp-form .cc-field{
    width:100%;
    display:flex;
    flex-direction:column;
    gap:9px;
}

.cc-contactp-form label{
    margin:0;
    font-size:15px;
    line-height:1.35;
    font-weight:500;
    color:#111111;
}

.cc-contactp-form label span{
    color:#15a34a;
}

.cc-contactp-form input:not([type="hidden"]):not([type="file"]):not([type="radio"]),
.cc-contactp-form select,
.cc-contactp-form textarea{
    display:block;
    width:100%;
    max-width:100%;
    box-sizing:border-box;
    margin:0 !important;
    background:#F5F6F6 !important;
    border:1px solid #DDE1E2 !important;
    border-radius:14px !important;
    box-shadow:none !important;
    color:#2A2526 !important;
    font-family:inherit;
    font-size:15px;
    font-weight:400;
    outline:none !important;
    transition:
        background-color .22s ease,
        border-color .22s ease,
        box-shadow .22s ease;
}

.cc-contactp-form input:not([type="hidden"]):not([type="file"]):not([type="radio"]),
.cc-contactp-form select{
    height:56px !important;
    min-height:56px !important;
    padding:0 16px !important;
}

.cc-contactp-form textarea{
    min-height:176px !important;
    height:176px !important;
    padding:15px 16px !important;
    resize:vertical;
}

.cc-contactp-form input:not([type="hidden"]):not([type="file"]):not([type="radio"]):focus,
.cc-contactp-form select:focus,
.cc-contactp-form textarea:focus{
    background:#FFFFFF !important;
    border-color:#24AA58 !important;
    box-shadow:0 0 0 3px rgba(36,170,88,.08) !important;
}

.drc-char-count{
    margin-top:1px;
    font-size:14px;
    line-height:1.4;
    font-weight:400;
    color:#667085;
}

/* ---------------- Rating stars ---------------- */

.drc-rating-field{
    gap:8px !important;
}

.drc-star-rating{
    width:max-content;
    display:flex;
    flex-direction:row-reverse;
    justify-content:flex-end;
    gap:4px;
    margin:0;
    padding:0;
    border:0;
}

.drc-star-rating input{
    position:absolute;
    opacity:0;
    pointer-events:none;
}

.drc-star-rating label{
    display:block;
    margin:0 !important;
    padding:0;
    color:#D9DEE2 !important;
    font-size:32px !important;
    line-height:1 !important;
    font-weight:400 !important;
    cursor:pointer;
    transition:
        color .18s ease,
        transform .18s ease;
}

.drc-star-rating label:hover,
.drc-star-rating label:hover ~ label,
.drc-star-rating input:checked ~ label{
    color:#20A852 !important;
}

.drc-star-rating label:hover{
    transform:translateY(-1px) scale(1.06);
}

.drc-star-rating input:focus-visible + label{
    outline:2px solid #20A852;
    outline-offset:3px;
    border-radius:3px;
}

.drc-rating-note{
    font-size:14px;
    line-height:1.4;
    color:#667085;
}

/* ---------------- Media upload ---------------- */

.drc-upload-field{
    gap:9px !important;
}

.drc-file-input{
    position:absolute !important;
    inset:0 !important;
    z-index:20 !important;
    width:100% !important;
    height:100% !important;
    min-height:100% !important;
    padding:0 !important;
    margin:0 !important;
    opacity:0 !important;
    border:0 !important;
    border-radius:14px !important;
    cursor:pointer !important;
    pointer-events:auto !important;
}

.drc-upload-box{
    position:relative;
    width:100%;
    min-height:92px;
    box-sizing:border-box;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    padding:14px 20px;
    background:#F5F6F6;
    border:1px dashed #D8DDDF;
    border-radius:14px;
    cursor:pointer;
    transition:
        background-color .22s ease,
        border-color .22s ease,
        box-shadow .22s ease;
}

.drc-upload-box:hover,
.drc-upload-box:focus-within,
.drc-upload-box.is-dragging{
    background:#FFFFFF;
    border-color:#2AAF5D;
    outline:none;
    box-shadow:0 0 0 3px rgba(42,175,93,.07);
}

.drc-upload-left{
    position:relative;
    z-index:2;
    min-width:0;
    display:flex;
    align-items:center;
    gap:16px;
}

.drc-upload-icon{
    width:46px;
    height:46px;
    min-width:46px;
    border-radius:12px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#E8F8ED;
    color:#23AD58;
}

.drc-upload-copy{
    min-width:0;
}

.drc-upload-title{
    color:#111827;
    font-size:15px;
    line-height:1.35;
    font-weight:500;
}

.drc-upload-subtitle{
    margin-top:4px;
    color:#718096;
    font-size:14px;
    line-height:1.3;
}

.drc-selected-file{
    display:none;
    max-width:320px;
    margin-top:5px;
    color:#159947;
    font-size:12px;
    line-height:1.3;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

.drc-selected-file.has-file{
    display:block;
}

.cc-contactp-form .drc-choose-file{
    position:relative;
    z-index:2;
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:auto !important;
    min-width:116px !important;
    height:46px !important;
    min-height:46px !important;
    margin:0 !important;
    padding:0 18px !important;
    border:1px solid #D8DDDF !important;
    border-radius:11px !important;
    background:#FFFFFF !important;
    box-shadow:none !important;
    color:#111111 !important;
    font-family:inherit;
    font-size:14px !important;
    font-weight:600 !important;
    line-height:1 !important;
    cursor:pointer;
    user-select:none;
}

.cc-contactp-form .drc-choose-file:hover{
    background:#FAFAFA !important;
    border-color:#BFC6C9 !important;
}


/* ---------------- Submit ---------------- */

.cc-contactp-form .drc-submit-btn{
    position:relative;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    width:max-content !important;
    min-width:170px;
    height:56px;
    margin:4px 0 0;
    padding:0 28px !important;
    border:0 !important;
    border-radius:11px !important;
    background:#29B354 !important;
    box-shadow:none;
    color:#FFFFFF !important;
    font-family:inherit;
    font-size:16px;
    font-weight:600;
    line-height:1;
    cursor:pointer;
}

.cc-contactp-form .drc-submit-btn:hover{
    background:#219D49 !important;
    transform:translateY(-2px);
    box-shadow:0 10px 24px rgba(41,179,84,.18);
}

.cc-contactp-form .drc-submit-btn:disabled{
    opacity:.72;
    cursor:not-allowed;
    transform:none !important;
    box-shadow:none !important;
}

.drc-submit-spinner{
    display:none;
    width:16px;
    height:16px;
    border:2px solid rgba(255,255,255,.45);
    border-top-color:#fff;
    border-radius:50%;
    animation:drc-spin .7s linear infinite;
}

.drc-submit-btn.is-loading .drc-submit-spinner{
    display:inline-block;
}

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

.drc-form-message{
    display:none;
    width:100%;
    box-sizing:border-box;
    margin-top:-6px;
    padding:14px 16px;
    border-radius:11px;
    font-size:15px;
    line-height:1.45;
}

.drc-form-message.is-visible{
    display:block;
}

.drc-form-message.is-success{
    color:#087A38;
    background:#EDFFF4;
    border:1px solid #ADE6C1;
}

.drc-form-message.is-error{
    color:#B42318;
    background:#FFF4F2;
    border:1px solid #FDA29B;
}

/* =========================================================
   Testimonial cards
   ========================================================= */

.drc-testimonials{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:24px;
}

.drc-card{
    background:#fff;
    border:1px solid #e8ebed;
    border-radius:18px;
    padding:31px 32px;
    box-shadow:0 9px 25px rgba(15,23,42,.06);
    overflow:hidden;
    will-change:transform, opacity;
}

.drc-card .stars{
    font-size:20px;
    line-height:1;
    letter-spacing:1px;
    margin-bottom:17px;
}

.drc-filled-stars{
    color:#20A852;
}

.drc-empty-stars{
    color:#D9DEE2;
}

.drc-review-text{
    color:#5b6b82;
    font-size:16px;
    line-height:1.62;
}

.drc-review-text p{ margin:0; }

.review-user{
    margin-top:24px;
    border-top:1px solid #e8ebed;
    padding-top:20px;
    display:flex;
    align-items:center;
    gap:12px;
}

.drc-initial-avatar{
    width:44px;
    height:44px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
}

.drc-initial-avatar{
    background:#edf9f0;
    color:#159947;
    font-weight:700;
    font-size:14px;
}

.drc-user-meta{
    display:flex;
    flex-direction:column;
    gap:3px;
}

.drc-user-meta strong{
    color:#111827;
    font-size:15px;
    line-height:1.25;
}

.drc-user-meta span{
    color:#64748b;
    font-size:14px;
}

.drc-reveal{
    opacity:0;
    transform:translateY(34px) scale(.985);
    filter:blur(2px);
    transition:
        opacity .68s cubic-bezier(.2,.7,.2,1),
        transform .68s cubic-bezier(.2,.7,.2,1),
        filter .68s ease,
        box-shadow .25s ease;
    transition-delay:var(--drc-delay,0ms);
}

.drc-reveal.drc-visible{
    opacity:1;
    transform:translateY(0) scale(1);
    filter:blur(0);
}

.drc-reveal.drc-visible:hover{
    transform:translateY(-4px);
    box-shadow:0 14px 34px rgba(15,23,42,.10);
}

@media (prefers-reduced-motion: reduce){
    .drc-reveal,
    .drc-reveal.drc-visible,
    .drc-reveal.drc-visible:hover{
        opacity:1;
        transform:none;
        filter:none;
        transition:none;
    }
}

@media(max-width:767px){
    .cc-contactp-form{
        gap:22px;
    }

    .drc-star-rating label{
        font-size:30px !important;
    }

    .drc-upload-box{
        min-height:96px;
        padding:14px;
        gap:12px;
    }

    .drc-upload-left{
        gap:12px;
    }

    .drc-upload-icon{
        width:42px;
        height:42px;
        min-width:42px;
    }

    .drc-upload-title{
        font-size:14px;
    }

    .cc-contactp-form .drc-choose-file{
        min-width:104px !important;
        padding:0 14px !important;
    }

    .drc-testimonials{
        grid-template-columns:1fr;
        gap:18px;
    }

    .drc-card{
        padding:24px 22px;
    }
}


/* v01.01.09: Native file-input overlay reliability fix */
.drc-upload-box > *:not(.drc-file-input){
    pointer-events:none !important;
}

.drc-upload-box{
    overflow:hidden;
}


/* =========================================================
   Testimonial Show More
   v01.01.10
   ========================================================= */

.drc-load-more-wrap{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:10px;
    width:100%;
    margin-top:30px;
}

.drc-load-more-spinner{
    display:none;
    width:15px;
    height:15px;
    border:2px solid rgba(255,255,255,.45);
    border-top-color:#FFFFFF;
    border-radius:50%;
    animation:drc-spin .7s linear infinite;
}

.drc-load-more-btn.is-loading .drc-load-more-spinner{
    display:inline-block;
}

.drc-load-more-status{
    min-height:18px;
    color:#B42318;
    font-size:13px;
    line-height:1.4;
    text-align:center;
}

@media(max-width:767px){
    .drc-load-more-wrap{
        margin-top:24px;
    }

    .drc-load-more-btn{
        min-width:120px;
        height:44px;
        padding:0 20px;
    }
}


/* =========================================================
   FINAL Show More button override
   v01.01.12
   Keep this block at the end of the stylesheet.
   ========================================================= */

.drc-testimonials-wrap .drc-load-more-wrap button.drc-load-more-btn,
.drc-testimonials-wrap button.drc-load-more-btn,
button.drc-load-more-btn{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:8px !important;

    width:auto !important;
    min-width:120px !important;
    height:44px !important;
    min-height:44px !important;
    padding:0 20px !important;

    margin:0 !important;

    background:#237A3D !important;
    background-color:#237A3D !important;
    background-image:none !important;

    border:1px solid #237A3D !important;
    border-color:#237A3D !important;
    border-radius:10px !important;

    color:#FFFFFF !important;
    -webkit-text-fill-color:#FFFFFF !important;

    font-family:inherit !important;
    font-size:15px !important;
    font-weight:700 !important;
    line-height:1 !important;
    text-decoration:none !important;
    text-transform:none !important;
    letter-spacing:0 !important;

    box-shadow:none !important;
    outline:none;

    cursor:pointer !important;
    opacity:1;

    appearance:none !important;
    -webkit-appearance:none !important;

    transition:
        background-color .18s ease,
        border-color .18s ease,
        transform .18s ease !important;
}

.drc-testimonials-wrap .drc-load-more-wrap button.drc-load-more-btn:hover,
.drc-testimonials-wrap button.drc-load-more-btn:hover,
button.drc-load-more-btn:hover{
    background:#1E6D36 !important;
    background-color:#1E6D36 !important;
    background-image:none !important;

    border-color:#1E6D36 !important;

    color:#FFFFFF !important;
    -webkit-text-fill-color:#FFFFFF !important;

    box-shadow:none !important;
    transform:translateY(-1px) !important;
}

.drc-testimonials-wrap .drc-load-more-wrap button.drc-load-more-btn:focus,
.drc-testimonials-wrap .drc-load-more-wrap button.drc-load-more-btn:focus-visible,
.drc-testimonials-wrap button.drc-load-more-btn:focus,
button.drc-load-more-btn:focus{
    background:#237A3D !important;
    background-color:#237A3D !important;
    border-color:#237A3D !important;
    color:#FFFFFF !important;
    -webkit-text-fill-color:#FFFFFF !important;

    outline:2px solid rgba(35,122,61,.24) !important;
    outline-offset:2px !important;
    box-shadow:none !important;
}

.drc-testimonials-wrap .drc-load-more-wrap button.drc-load-more-btn:active,
.drc-testimonials-wrap button.drc-load-more-btn:active,
button.drc-load-more-btn:active{
    background:#195E2E !important;
    background-color:#195E2E !important;
    border-color:#195E2E !important;
    color:#FFFFFF !important;
    -webkit-text-fill-color:#FFFFFF !important;
}

.drc-testimonials-wrap .drc-load-more-wrap button.drc-load-more-btn:disabled,
.drc-testimonials-wrap button.drc-load-more-btn:disabled,
button.drc-load-more-btn:disabled{
    background:#237A3D !important;
    background-color:#237A3D !important;
    border-color:#237A3D !important;
    color:#FFFFFF !important;
    -webkit-text-fill-color:#FFFFFF !important;

    opacity:.72 !important;
    cursor:not-allowed !important;
    transform:none !important;
    box-shadow:none !important;
}

/* Keep the button label white even when a theme styles spans inside buttons. */
.drc-load-more-btn .drc-load-more-text,
.drc-load-more-btn .drc-load-more-spinner{
    color:#FFFFFF !important;
    -webkit-text-fill-color:#FFFFFF !important;
}

@media(max-width:767px){
    .drc-testimonials-wrap .drc-load-more-wrap button.drc-load-more-btn,
    .drc-testimonials-wrap button.drc-load-more-btn,
    button.drc-load-more-btn{
        min-width:120px !important;
        height:44px !important;
        min-height:44px !important;
        padding:0 20px !important;
    }
}
