/**
 * AS Google Reviews - styles "slider" repris de tvgooglebusinessreviews,
 * scopés sous .asgr pour rester autonomes et éviter les conflits.
 */

.asgr.slider_wrapper {
    padding: 30px 28px 30px 20px;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
}

.asgr .google-reviews-content,
.asgr .google-reviews-block {
    background-color: #fff;
    border-radius: 8px;
}

.asgr .google-reviews-content {
    padding: 20px 10px;
    border-top: 3px solid #4285F4;
}

.asgr .google-reviews-block {
    padding: 44px 33px;
}

.asgr .google-reviews-badge {
    font-family: Arial, sans-serif;
    padding: 0 20px;
    text-align: center;
    padding-inline-start: 0;
}

.asgr .reviews-title {
    font-size: 21px;
    font-weight: 700;
    color: #030303;
    margin-bottom: 10px;
}

.asgr .tv_google_note {
    font-size: 19px;
    font-weight: 500;
    color: #e7711b;
}

.asgr .jq-star {
    width: 16px !important;
    height: 16px !important;
    display: inline-block;
    cursor: default;
}

/* Contraint le SVG du plugin star-rating à la taille de l'étoile.
   Indispensable pour rester autonome de tvgooglebusinessreviews : sans cette
   règle, le SVG reprend sa taille intrinsèque et les étoiles deviennent énormes. */
.asgr .jq-star-svg {
    width: 100%;
    height: 100%;
}

.asgr .jq-star-svg path {
    stroke-linejoin: round;
}

.asgr .jq-rating-label {
    font-size: 22px;
    display: inline-block;
    position: relative;
    vertical-align: top;
    font-family: helvetica, arial, verdana;
}

.asgr .jq-stars,
.asgr .asgr_review_rating {
    display: inline-flex;
    column-gap: 4px;
}

.asgr .tv_google_reviews {
    display: flex;
    justify-content: center;
    column-gap: 7px;
    flex-wrap: wrap;
}

.asgr .reviews-count {
    font-size: 16px;
    color: #666262;
    font-weight: 500;
}

.asgr .tv_google_left {
    margin-bottom: 6px;
}

.asgr .google_logo_wrapper {
    display: block;
    margin-top: -15px;
    margin-bottom: 5px;
}

.asgr .tv_customer {
    font-weight: 600;
    color: #000;
    opacity: .8;
    margin-bottom: 8px;
}

.asgr .review_btn {
    padding: 9px 24px;
    color: #302c2c;
    font-size: 1rem;
    font-weight: 600;
    border-radius: 8px;
    cursor: pointer;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    transition: transform 0.2s, box-shadow 0.2s, background-color 1s ease;
    background: linear-gradient(45deg, #D1E3FF, #A6C8FF, #90BFFF, #CCE6FF);
    white-space: normal;
    border: none;
}

.asgr .review_btn:hover {
    background: linear-gradient(45deg, #A6C8FF, #90BFFF, #7CA9FF, #AACDFF);
    color: #ffffff;
}

.asgr .review_btn span {
    font-size: 16px;
    text-transform: math-auto;
    color: #030303e8;
}

.asgr .tv_btn_reviews {
    text-decoration: none;
}

.asgr .tv_reviews_content {
    display: flex;
    align-items: center;
    margin-bottom: 10px;
}

.asgr .clientimg_wrapper {
    padding: 0;
}

.asgr .tv_reviews_avatar {
    width: 100%;
    height: auto;
    border-radius: 50%;
}

.asgr .tv_reviews_name {
    font-size: 14px;
    font-weight: 800;
    margin-bottom: 1px;
}

.asgr .tv_reviews_date {
    font-size: 12px;
    font-weight: 600;
    text-transform: lowercase;
    color: #666262;
}

.asgr .tv_reviews_ratings {
    margin-bottom: 5px;
}

.asgr .tv_comment {
    font-size: 13px;
    color: #1e1c1c;
    font-weight: 500;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
    text-overflow: ellipsis;
    max-height: 5em;
    margin-bottom: 10px;
}

.asgr .tv_reviews {
    background-color: #80808014;
    padding: 10px 20px 4px 20px;
    border-radius: 8px;
}

/* Avis déplié via "Lire la suite" : on retire le clamp pour tout afficher */
.asgr .tv_comment.asgr-open {
    display: block;
    -webkit-line-clamp: unset;
    max-height: none;
    overflow: visible;
}

.asgr .asgr-readmore {
    display: inline-block;
    background: none;
    border: none;
    padding: 0;
    margin: 0 0 10px;
    color: #4285F4;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
}

.asgr .asgr-readmore:hover {
    text-decoration: underline;
}

.asgr .tv_reviews_right {
    padding-inline-end: 0;
}

/* pagination */
.asgr .google-reviews-wrapper {
    position: relative;
}

.asgr .tvreviews-prev.tvcmsprev-btn,
.asgr .tvreviews-next.tvcmsnext-btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 37px;
    height: 37px;
    border-radius: 50%;
    text-align: center;
    line-height: 48px;
    cursor: pointer;
}

.asgr .tvreviews-prev.tvcmsprev-btn {
    left: -2.7%;
}

.asgr .tvreviews-next.tvcmsnext-btn {
    right: -2.7%;
}

.asgr .tvreviews-prev svg,
.asgr .tvreviews-next svg {
    width: 14px;
    height: 22px;
    transition: all 0.4s ease;
}

.asgr .tvreviews-prev svg {
    transform: translateX(-2px);
}

.asgr .tvreviews-next svg {
    transform: translateX(2px);
}

.asgr .tvreviews-prev:hover svg,
.asgr .tvreviews-next:hover svg {
    transform: scale(1.3);
}

.asgr .tvreviews-prev:hover svg path {
    stroke: #4081EC;
}

.asgr .tvreviews-next:hover svg path {
    fill: #4081EC;
}

/* responsive (repris de l'original) */
@media (min-width: 992px) and (max-width: 1399px) {
    .asgr .reviews-title { font-size: 22px; }
    .asgr .tv_google_note { font-size: 19px; }
    .asgr .reviews-count { font-size: 16px; }
    .asgr .jq-star { width: 15px !important; height: 18px !important; }
    .asgr .google_logo_wrapper svg { width: 116px; }
    .asgr .google_logo_wrapper { margin-top: -26px; margin-bottom: -12px; }
    .asgr .tv_customer { font-size: 15px; }
}

@media (max-width: 991px) {
    .asgr.slider_wrapper { row-gap: 17px; }
    .asgr .reviews-title { margin-bottom: 14px; }
    .asgr .tvreviews-next.tvcmsnext-btn { right: 1%; }
    .asgr .tvreviews-prev.tvcmsprev-btn { left: 0; }
    .asgr .tv_reviews_name { font-size: 13px; }
    .asgr .jq-star { width: 14px !important; height: 14px !important; }
    .asgr .google-reviews-badge { padding-inline-end: 0; }
    .asgr .google-reviews-wrapper { padding-inline-end: 0; padding-inline-start: 0; }
    .asgr .google-reviews-block { padding: 15px 33px; }
    .asgr .google-reviews-content { padding: 15px 10px; }
}

@media (max-width: 767px) {
    .asgr .google_logo_wrapper svg { width: 120px; }
    .asgr .google_logo_wrapper { display: block; margin-top: -27px; margin-bottom: -15px; }
    .asgr .tv_customer { font-size: 14px; margin-bottom: 6px; }
    .asgr .review_btn { padding: 7px 17px; }
    .asgr .review_btn span { font-size: 14px; }
    .asgr .tv_google_left { margin-bottom: 5px; }
    .asgr .tv_google_note { font-size: 18px; }
    .asgr .reviews-count { font-size: 16px; }
    .asgr .tv_reviews_right.col-xs-9 { padding-inline-start: 10px; }
    .asgr .tv_reviews { padding: 10px 10px; }
    .asgr .tv_reviews_content { margin-bottom: 5px; }
}

@media (max-width: 575px) {
    .asgr .reviews-title { font-size: 19px; margin-bottom: 7px; }
}
