/* Priyadarshika - guest reviews section + popup */
.rv-section {
    --rv-gold: var(--main-600, hsl(39, 100%, 69%));
    --rv-gold-d: #9a6b00;
    --rv-ink: #1d1d1b;
    --rv-muted: #6a665c;
    position: relative;
    padding: 80px 0 90px;
    background: linear-gradient(180deg, #fff 0%, #fbf8ec 100%);
    overflow: hidden;
}
.rv-section::before, .rv-section::after {
    content: ""; position: absolute; border-radius: 50%; filter: blur(70px); opacity: .45; pointer-events: none;
}
.rv-section::before { width: 320px; height: 320px; background: #ffe2a3; top: -120px; left: -100px; }
.rv-section::after { width: 280px; height: 280px; background: #ffd1a1; bottom: -120px; right: -80px; }
.rv-section .container { position: relative; z-index: 1; }

/* ---------- Heading + summary ---------- */
.rv-head { text-align: center; max-width: 720px; margin: 0 auto 44px; }
.rv-eyebrow {
    display: inline-flex; align-items: center; gap: 8px;
    padding: 7px 16px; border-radius: 30px; background: #fff; border: 1px solid rgba(0, 0, 0, .08);
    font-size: 13px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: var(--rv-ink);
    box-shadow: 0 4px 14px rgba(0, 0, 0, .06); margin-bottom: 16px;
}
.rv-head h2 { font-size: clamp(28px, 4vw, 42px); color: var(--rv-ink); margin-bottom: 10px; }
.rv-head > p { color: var(--rv-muted); font-size: 17px; margin-bottom: 24px; }
.rv-summary {
    display: inline-flex; align-items: center; flex-wrap: wrap; justify-content: center; gap: 14px 18px;
    background: #fff; padding: 12px 22px; border-radius: 60px; box-shadow: 0 10px 30px rgba(0, 0, 0, .08);
    border: 1px solid rgba(0, 0, 0, .05);
}
.rv-summary__num { font-size: 38px; line-height: 1; color: var(--rv-ink); }
.rv-summary > span { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; }
.rv-summary small { color: var(--rv-muted); font-size: 13px; }
.rv-gbtn {
    display: inline-flex; align-items: center; gap: 8px; padding: 10px 18px; border-radius: 30px;
    border: 1px solid #dadce0; color: #3c4043; font-weight: 600; font-size: 14px; text-decoration: none; background: #fff;
    transition: box-shadow .3s, transform .3s;
}
.rv-gbtn:hover { box-shadow: 0 6px 16px rgba(66, 133, 244, .25); transform: translateY(-2px); color: #1a73e8; }

.rv-stars { display: inline-flex; gap: 2px; color: #f5b301; font-size: 17px; }
.rv-stars .off { color: #ddd6c2; }

/* ---------- Carousel ---------- */
.rv-carousel { position: relative; padding: 0 28px; }
.rv-track {
    display: flex; gap: 22px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth;
    padding: 14px 4px 22px; scrollbar-width: none; outline: none;
}
.rv-track::-webkit-scrollbar { display: none; }
.rv-card {
    position: relative; flex: 0 0 calc((100% - 44px) / 3); scroll-snap-align: start;
    background: #fff; border-radius: 22px; padding: 26px 24px 20px;
    display: flex; flex-direction: column; gap: 12px;
    border: 1px solid rgba(0, 0, 0, .06); box-shadow: 0 8px 26px rgba(30, 24, 8, .08);
    transition: transform .45s cubic-bezier(.22, .61, .36, 1), box-shadow .45s ease;
    animation: rvCardIn .8s cubic-bezier(.22, .61, .36, 1) both; animation-delay: calc(var(--i) * 110ms);
}
.rv-card:hover { transform: translateY(-8px); box-shadow: 0 22px 44px rgba(30, 24, 8, .16); }
.rv-card::after {
    content: ""; position: absolute; left: 24px; right: 24px; top: 0; height: 4px; border-radius: 0 0 6px 6px;
    background: linear-gradient(90deg, var(--rv-gold), #fff0c8, var(--rv-gold)); transform: scaleX(0); transition: transform .5s;
}
.rv-card:hover::after { transform: scaleX(1); }
.rv-card__quote { position: absolute; top: 18px; right: 20px; font-size: 44px; color: #f3e6bf; }
.rv-card__top { display: flex; align-items: center; gap: 14px; }
.rv-card__top strong { display: block; color: var(--rv-ink); font-size: 16.5px; line-height: 1.25; }
.rv-card__top small { color: var(--rv-muted); font-size: 13px; }
.rv-avatar {
    flex: 0 0 auto; width: 48px; height: 48px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;
    color: #fff; font-weight: 700; font-size: 20px; background: linear-gradient(135deg, hsl(var(--h, 35) 65% 48%), hsl(calc(var(--h, 35) + 35) 70% 38%));
    box-shadow: 0 6px 14px rgba(0, 0, 0, .18);
}
.rv-card__text {
    margin: 0; color: #4a463e; line-height: 1.75; font-size: 15.5px; flex: 1;
    display: -webkit-box; -webkit-line-clamp: 6; -webkit-box-orient: vertical; overflow: hidden;
}
.rv-card.open .rv-card__text { -webkit-line-clamp: unset; display: block; }
.rv-more { align-self: flex-start; border: 0; background: none; padding: 0; color: var(--rv-gold-d); font-weight: 700; font-size: 14px; cursor: pointer; }
.rv-more:hover { text-decoration: underline; }
.rv-card__src { display: flex; align-items: center; gap: 8px; padding-top: 12px; border-top: 1px dashed rgba(0, 0, 0, .12); color: var(--rv-muted); font-size: 13px; }
.rv-card__src .ph-seal-check { color: #1fa971; font-size: 18px; }

.rv-nav {
    position: absolute; top: 46%; transform: translateY(-50%); z-index: 3; width: 46px; height: 46px; border-radius: 50%;
    border: 0; background: #fff; color: var(--rv-ink); font-size: 20px; cursor: pointer;
    box-shadow: 0 8px 22px rgba(0, 0, 0, .18); transition: background .25s, transform .25s, opacity .25s;
}
.rv-nav:hover { background: var(--rv-gold); transform: translateY(-50%) scale(1.08); }
.rv-nav[disabled] { opacity: .35; pointer-events: none; }
.rv-nav--prev { left: -6px; }
.rv-nav--next { right: -6px; }
.rv-dots { display: flex; justify-content: center; gap: 8px; margin-top: 6px; }
.rv-dots button { width: 9px; height: 9px; border-radius: 9px; border: 0; padding: 0; background: #d9d1b6; cursor: pointer; transition: width .3s, background .3s; }
.rv-dots button.on { width: 28px; background: var(--rv-gold); }

@keyframes rvCardIn { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: none; } }

/* ---------- Popup (bottom-left, compact) ---------- */
.rv-pop {
    position: fixed; left: 20px; bottom: 20px; z-index: 9990; width: 340px; max-width: calc(100vw - 24px);
    background: #fff; border-radius: 16px; padding: 11px 38px 13px 14px; overflow: hidden;
    box-shadow: 0 18px 50px rgba(0, 0, 0, .28); border: 1px solid rgba(0, 0, 0, .06);
    cursor: pointer;
    /* hidden state = also the "leaving" animation: eases out and fades smoothly */
    opacity: 0; transform: translate3d(-36px, 14px, 0) scale(.96);
    transition: opacity .55s ease, transform .55s cubic-bezier(.4, 0, .6, 1);
    will-change: transform, opacity;
}
.rv-pop::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 5px; background: linear-gradient(180deg, var(--main-600, #ffc96b), #e39a1f); }
/* shown state = the "arriving" animation: soft, no bounce */
.rv-pop.show {
    opacity: 1; transform: none;
    transition: opacity .7s ease, transform .8s cubic-bezier(.16, 1, .3, 1);
}
.rv-pop__close {
    position: absolute; top: 8px; right: 8px; width: 28px; height: 28px; border: 0; border-radius: 50%; background: #f3efe0; color: #555;
    cursor: pointer; display: flex; align-items: center; justify-content: center; font-size: 14px; transition: background .2s, color .2s;
}
.rv-pop__close:hover { background: #dc3545; color: #fff; }
.rv-pop__body { display: flex; gap: 11px; align-items: center; padding-left: 6px; }
.rv-pop__avatar { width: 38px; height: 38px; font-size: 16px; }
.rv-pop__txt { min-width: 0; flex: 1; display: grid; grid-template-columns: auto 1fr; column-gap: 10px; row-gap: 1px; align-items: center; }
.rv-pop__who { grid-column: 1 / -1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; line-height: 1.3; }
.rv-pop__who strong { color: var(--rv-ink, #1d1d1b); font-size: 14px; }
.rv-pop__who small { color: #6a665c; font-size: 12px; margin-left: 4px; }
.rv-pop__stars { grid-column: 1; font-size: 13px; margin: 0; line-height: 1; }
.rv-pop__src { grid-column: 2; justify-self: end; display: flex; align-items: center; gap: 5px; color: #6a665c; font-size: 11.5px; line-height: 1; margin: 0; white-space: nowrap; }
.rv-pop__src svg { width: 13px; height: 13px; }
.rv-pop__src .ph-seal-check { color: #1fa971; font-size: 14px; }
.rv-pop p { grid-column: 1 / -1; margin: 3px 0 0; color: #4a463e; font-size: 13px; line-height: 1.45; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.rv-pop__bar { position: absolute; left: 0; bottom: 0; height: 3px; width: 100%; background: var(--main-600, #ffc96b); transform-origin: left; transform: scaleX(0); }
.rv-pop.show .rv-pop__bar { animation: rvBar var(--rv-show, 7s) linear forwards; }
.rv-pop.paused .rv-pop__bar { animation-play-state: paused; }
@keyframes rvBar { from { transform: scaleX(1); } to { transform: scaleX(0); } }

/* ---------- Responsive ---------- */
@media (max-width: 991px) {
    .rv-section { padding: 60px 0 70px; }
    .rv-card { flex-basis: calc((100% - 22px) / 2); }
}
@media (max-width: 767px) {
    .rv-section { padding: 46px 0 56px; }
    .rv-head { margin-bottom: 30px; }
    .rv-carousel { padding: 0; }
    .rv-card { flex-basis: 88%; padding: 22px 18px 16px; }
    .rv-nav { display: none; }
    .rv-summary { border-radius: 24px; padding: 14px 16px; }
    .rv-summary__num { font-size: 32px; }
    /* popup sits above the call / WhatsApp bar, left of the scroll-to-top button */
    .rv-pop { left: 10px; right: 68px; width: auto; max-width: none; bottom: 66px; transform: translate3d(0, 28px, 0) scale(.97); }
    .rv-pop__src span { display: none; }
}
@media (prefers-reduced-motion: reduce) {
    .rv-card { animation: none; }
    .rv-track { scroll-behavior: auto; }
    .rv-pop, .rv-pop.show { transition: opacity .2s; transform: none; }
    .rv-pop.show .rv-pop__bar { animation: none; }
}

/* Google profile photos */
.rv-avatar { position: relative; overflow: hidden; }
.rv-avatar img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }
.rv-card__top strong a { color: inherit; text-decoration: none; }
.rv-card__top strong a:hover { color: var(--rv-gold-d); text-decoration: underline; }
