.google-review-wrapper{

    position: relative;
    width: 100%;
    display: flex;
    align-items: center;

}

.google-review-slider {

    overflow-x: auto;
    overflow-y: hidden;

    width: 100%;

    padding: 20px 70px;

    cursor: grab;

    scroll-behavior: smooth;

    -ms-overflow-style: none;
    scrollbar-width: none;

}

.google-review-slider::-webkit-scrollbar {

    display: none;

}

.google-review-slider.active {

    cursor: grabbing;

}

.review-track {

    display: flex;

    gap: 20px;

    width: max-content;

    padding: 10px 0;

}

.review-card {

    width: 340px;

    flex-shrink: 0;

    background: #fff;

    border-radius: 28px;

    padding: 25px;

    box-shadow: 0 10px 35px rgba(0,0,0,0.08);

    transition: all .3s ease;

}

.review-card:hover {

    transform: translateY(-6px);

    box-shadow: 0 18px 40px rgba(0,0,0,0.12);

}

.review-top {

    display: flex;

    align-items: center;

    gap: 15px;

    margin-bottom: 20px;

}

/* =========================================================
   REVIEW AVATAR FIX
========================================================= */

.review-top img {

    width: 65px;

    height: 65px;

    min-width:65px;

    min-height:65px;

    border-radius: 50%;

    object-fit: cover;

    object-position:center;

    aspect-ratio:1/1;

    flex-shrink: 0;

    border: 3px solid #f3f3f3;

    overflow:hidden;

    background:#f5f5f5;

    display:block;

}

.review-top h4 {

    margin: 0;

    font-size: 18px;

    color: #111;

    font-weight: 700;

    line-height: 1.3;

}

.stars {

    color: #f5b301;

    font-size: 18px;

    margin-top: 5px;

    letter-spacing: 2px;

}

.review-card p {

    color: #666;

    line-height: 1.9;

    font-size: 15px;

    margin: 0;

}

/* =========================
   ARROW
========================= */

.review-arrow{

    position: absolute !important;

    top: 50% !important;

    transform: translateY(-50%) !important;

    width: 56px !important;

    height: 56px !important;

    min-width: 56px !important;

    min-height: 56px !important;

    border-radius: 999px !important;

    border: none !important;

    background: #fff !important;

    box-shadow: 0 8px 25px rgba(0,0,0,0.12) !important;

    cursor: pointer !important;

    z-index: 20 !important;

    font-size: 22px !important;

    display: flex !important;

    align-items: center !important;

    justify-content: center !important;

    padding: 0 !important;

    line-height: 1 !important;

    transition: all .3s ease !important;

}

.review-arrow:hover{

    transform: translateY(-50%) scale(1.08) !important;

    box-shadow: 0 12px 30px rgba(0,0,0,0.18) !important;

}

.review-prev{

    left: 10px;

}

.review-next{

    right: 10px;

}

/* =========================================================
   REVIEW BUTTON
========================================================= */

.review-submit-wrapper{

    text-align:center;
    margin-top:35px;

}

.open-review-popup{

    background:#111;
    color:#fff;
    border:none;
    padding:16px 34px;
    border-radius:999px;
    cursor:pointer;
    font-size:15px;
    font-weight:600;
    transition:.3s;

}

.open-review-popup:hover{

    transform:translateY(-2px);
    opacity:.95;

}

/* =========================================================
   POPUP
========================================================= */

.review-popup-overlay{

    position:fixed;
    inset:0;
    background:rgba(0,0,0,.65);
    z-index:99999;

    display:flex;
    align-items:center;
    justify-content:center;

    opacity:0;
    visibility:hidden;

    transition:.3s;

    padding:20px;

    backdrop-filter:blur(4px);

}

.review-popup-overlay.active{

    opacity:1;
    visibility:visible;

}

.review-popup{

    width:100%;
    max-width:540px;
    background:#fff !important;
    border-radius:32px;
    padding:35px;
    position:relative;

    max-height:90vh;
    overflow-y:auto;

    animation:popupShow .35s ease;

}

@keyframes popupShow{

    from{

        opacity:0;
        transform:translateY(25px) scale(.96);

    }

    to{

        opacity:1;
        transform:translateY(0) scale(1);

    }

}

.close-review-popup {
    position: absolute !important;
    top: 10px;
    right: 18px;
    background: none !important;
    border: none !important;
    font-size: 34px !important;
    color: #111 !important;
    cursor: pointer !important;
    width: auto !important;
    padding: 0 !important;
}

.review-popup h3{

    color:#111 !important;
    margin-bottom:28px;
    font-size:30px;
    line-height:1.2;
    text-align:center;

}

/* =========================================================
   PHOTO UPLOAD
========================================================= */

.review-photo-upload{

    text-align:center;
    margin-bottom:25px;

}

.review-photo-upload label{

    cursor:pointer;
    display:inline-block;

}

/* =========================================================
   PHOTO PREVIEW FIX
========================================================= */

.review-photo-upload img{

    width:95px;

    height:95px;

    min-width:95px;

    min-height:95px;

    border-radius:50%;

    object-fit:cover;

    object-position:center;

    aspect-ratio:1/1;

    display:block;

    margin:auto;

    border:4px solid #f3f3f3;

    transition:.3s;

    overflow:hidden;

    background:#f5f5f5;

}

.review-photo-upload label:hover img{

    transform:scale(1.05);

}

.review-photo-upload span{

    display:block;

    margin-top:12px;

    color:#111;

    font-size:14px;

    font-weight:600;

}

.review-photo-upload input{

    display:none !important;

}

/* =========================================================
   FORM
========================================================= */

.review-popup input,
.review-popup textarea{

    width:100% !important;

    background:#fff !important;

    color:#111 !important;

    border:1px solid #ddd !important;

    border-radius:18px !important;

    padding:16px 18px !important;

    font-size:15px !important;

    outline:none !important;

    box-shadow:none !important;

    margin-bottom:16px !important;

    transition:.3s;

}

.review-popup input:focus,
.review-popup textarea:focus{

    border-color:#111 !important;

}

.review-popup textarea{

    min-height:140px;
    resize:none;

}

.review-popup input::placeholder,
.review-popup textarea::placeholder{

    color:#777 !important;
    opacity:1 !important;

}

/* =========================================================
   STAR RATING
========================================================= */

.rating-select{

    display:flex;
    justify-content:center;
    gap:10px;

    margin-bottom:22px;

}

.rating-select span{

    font-size:42px;

    color:#ddd;

    cursor:pointer;

    transition:.25s;

    line-height:1;

}

.rating-select span:hover{

    transform:scale(1.15);

}

.rating-select span.active{

    color:#f5b301;

}

/* =========================================================
   SUBMIT BUTTON
========================================================= */

.review-popup button[type="submit"]{

    width:100% !important;

    background:#2fb1a2 !important;

    color:#fff !important;

    border:none !important;

    border-radius:18px !important;

    padding:17px !important;

    font-size:15px !important;

    font-weight:600 !important;

    cursor:pointer;

    transition:.3s;

}

.review-popup button[type="submit"]:hover{

    transform:translateY(-2px);

}

/* =========================================================
   MESSAGE
========================================================= */

.review-message{

    margin-top:18px;

    text-align:center;

    font-size:14px;

    display:none;

}

.review-message.success{

    display:block;
    color:#16a34a;

}

.review-message.error{

    display:block;
    color:#dc2626;

}

/* =========================================================
   MOBILE
========================================================= */

@media only screen and (max-width:768px){

    .google-review-slider {

        padding: 10px 0 10px 15px !important;

    }

    .review-track {

        gap: 14px !important;

    }

    .review-card {

        width: 78vw !important;

        min-width: 78vw !important;

        max-width: 78vw !important;

        padding: 18px !important;

        border-radius: 24px !important;

    }

    .review-top img {

        width: 52px;

        height: 52px;

        min-width:52px;

        min-height:52px;

    }

    .review-top h4 {

        font-size: 15px;

    }

    .review-card p {

        font-size: 14px;

        line-height: 1.7;

    }

    .review-arrow,
    .review-prev,
    .review-next{

        display: none !important;

    }

    .review-popup{

        padding:25px;

        border-radius:26px;

    }

    .review-popup h3{

        font-size:24px;

    }

    .rating-select span{

        font-size:36px;

    }

}

button.open-review-popup {

    position: relative;

    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    background: linear-gradient(90deg, #f4e7dc 0%, #fffefe 100%);
    color: #000000 !important;
    border: none !important;
    padding: 17px 34px;
    border-radius: 999px;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: .3px;
    cursor: pointer;
    overflow: hidden;
    transition: all .35s ease;
    box-shadow:
        0 10px 30px rgba(0,0,0,.18),
        inset 0 1px 0 rgba(255,255,255,.08);
}

/* ICON */
button.open-review-popup::before {

    content: "✦";

    font-size: 15px;

    opacity: .9;

    transition: transform .35s ease;

}

/* SHINE EFFECT */
button.open-review-popup::after {

    content: "";

    position: absolute;

    top: -120%;
    left: -40%;

    width: 60%;
    height: 320%;

    background: rgba(255,255,255,.18);

    transform: rotate(25deg);

    transition: all .7s ease;

}

/* HOVER */
button.open-review-popup:hover {

    transform: translateY(-3px) scale(1.02);

    box-shadow:
        0 16px 40px rgba(0,0,0,.22),
        inset 0 1px 0 rgba(255,255,255,.12);

}

/* HOVER SHINE */
button.open-review-popup:hover::after {

    left: 120%;

}

/* HOVER ICON */
button.open-review-popup:hover::before {

    transform: rotate(12deg) scale(1.2);

}

/* ACTIVE */
button.open-review-popup:active {

    transform: translateY(0) scale(.98);

}

/* MOBILE */
@media(max-width:768px){

    button.open-review-popup {

        width: 100%;

        padding: 16px 24px;

        font-size: 14px;

    }

}

.char-count{

    text-align:right;

    font-size:13px;

    color:#888;

    margin-top:-10px;
    margin-bottom:15px;

}

.char-count span{

    font-weight:600;
    color:#111;

}