/*! public/css/home/reviews.css */

/* ---------------------------------------------------------
   ⭐ Reviews Section Styling
--------------------------------------------------------- */

#reviews {
    padding-top: 2rem;
    padding-bottom: 3rem;
}

#reviews h2 {
    color: var(--color-primary);
    font-weight: 600;
    margin-bottom: 2rem;
}

#reviewsCarousel .carousel-inner {
    padding: 2rem 0;
}

#reviews .carousel-item {
    min-height: 380px;
    padding: 2rem 1rem;
    text-align: center;
}

/* Card styling */
#reviews .card {
    border: none;
    border-radius: var(--radius-lg);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
    max-width: 650px;
    transition: transform .3s ease, box-shadow .3s ease;
}

#reviews .card:hover {
    transform: translateY(-4px);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.18);
}

.review-photo {
    width: 60px;
    height: 60px;
    object-fit: cover;
}

/* Rating stars */
.rating-stars {
    font-size: 1.1rem;
    color: #ffd700;
    white-space: nowrap;
}

/* ⭐ Shine effect for perfect 5-star ratings */
@media (prefers-reduced-motion: no-preference) {
    .perfect-rating i {
        color: #d4af37;
        filter: drop-shadow(0 0 6px rgba(255, 215, 0, 0.75));
    }

    .rating-block:hover .perfect-rating {
        animation: starShine 2.2s infinite ease-in-out;
    }

    /* Make the middle star even brighter */
    .perfect-rating i:nth-child(3) {
        filter: drop-shadow(0 0 10px rgba(255, 255, 140, 0.9));
    }

    /* Small sparkle animation */
    @keyframes starShine {
        0% {
            transform: scale(1);
            filter: drop-shadow(0 0 6px rgba(255, 230, 0, 0.5));
        }

        50% {
            transform: scale(1.12);
            filter: drop-shadow(0 0 14px rgba(255, 255, 150, 1));
        }

        100% {
            transform: scale(1);
            filter: drop-shadow(0 0 6px rgba(255, 230, 0, 0.5));
        }
    }
}

/* No animations for users who prefer reduced motion */
@media (prefers-reduced-motion: reduce) {
    .perfect-rating i {
        animation: none !important;
        filter: none !important;
    }
}

#reviews blockquote {
    font-size: 1.05rem;
}

/* Review text */
#reviews blockquote p {
    font-size: 0.95rem;
    line-height: 1.6;
    color: var(--color-text);
}

.clamp {
    /* Standard property */
    line-clamp: 3;
    /* Old syntax for WebKit (Chrome, Safari, Edge, Opera) */
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.review-text a {
    text-decoration: none;
}

#reviews .g-brand img {
    width: auto;
    height: 1.5rem;
}

/* Indicators */
.carousel-control-next-icon,
.carousel-control-prev-icon {
    font-weight: bold;
    background-color: var(--color-primary);
    border-radius: 30%;
}

.carousel-indicators [data-bs-target] {
    background-color: var(--color-primary);
    width: 10px;
    height: 10px;
    border-radius: 50%;
}

#reviews .carousel-indicators .active {
    background-color: var(--color-brand);
}

/* Mobile Optimizations */
@media (max-width: 576px) {
    #reviews .card {
        padding: 1.2rem;
    }

    .clamp {
        -webkit-line-clamp: 5;
    }
}
