/* Endolifter — v1.19 Google Reviews block (card de perfil + slider) */

.gapi-block {
    display: grid;
    gap: 28px;
    align-items: stretch;
    margin: 0 auto 40px;
    max-width: 100%;
}

/* Card en la izquierda (default) → 1fr profile / 2.4fr reviews */
.gapi-block--card-left  { grid-template-columns: minmax(260px, 320px) 1fr; }
.gapi-block--card-right { grid-template-columns: 1fr minmax(260px, 320px); }
.gapi-block--card-right .gapi-card-profile { order: 2; }
.gapi-block--card-right .gapi-reviews      { order: 1; }
.gapi-block--card-top   { grid-template-columns: 1fr; }
.gapi-block--card-only  { grid-template-columns: 1fr; max-width: 480px; }
.gapi-block--card-only .gapi-card-profile { padding: 36px 28px; }

/* === Profile card === */
.gapi-card-profile {
    background: var(--color-bg-card);
    border: 1px solid var(--color-border);
    border-radius: 14px;
    padding: 26px 24px;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 10px;
    box-shadow: 0 14px 36px -20px rgba(0,0,0,0.5);
}
.gapi-card-profile__logo {
    width: 76px; height: 76px;
    border-radius: 50%;
    overflow: hidden;
    background: #fff;
    display: inline-flex; align-items: center; justify-content: center;
    border: 1px solid var(--color-border);
}
.gapi-card-profile__logo img { width: 100%; height: 100%; object-fit: cover; }
.gapi-card-profile__logo--g  { background: #fff; }
.gapi-card-profile__name {
    margin: 4px 0 0;
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--color-text);
}
.gapi-card-profile__address {
    margin: 0;
    font-size: 0.85rem;
    color: var(--color-text-muted);
    line-height: 1.4;
}
.gapi-card-profile__rating {
    display: flex; flex-direction: column; align-items: center;
    margin-top: 8px;
}
.gapi-card-profile__rating-num {
    font-size: 2.4rem;
    font-weight: 800;
    color: var(--color-accent);
    line-height: 1;
}
.gapi-card-profile__stars {
    color: var(--color-accent);
    letter-spacing: 2px;
    font-size: 1.1rem;
    margin-top: 2px;
}
.gapi-card-profile__count {
    margin: 4px 0 0;
    color: var(--color-text);
    font-size: 0.88rem;
}
.gapi-card-profile__count strong { color: var(--color-accent); font-size: 1rem; }
.gapi-card-profile__cta {
    margin-top: 12px;
    color: var(--color-accent);
    font-size: 0.88rem;
    text-decoration: none;
    border-bottom: 1px solid transparent;
    transition: border-color .2s;
}
.gapi-card-profile__cta:hover { border-bottom-color: var(--color-accent); }

/* === Slider === */
.gapi-reviews { --gapi-per-view: 3; --gapi-gap: 16px; width: 100%; min-width: 0; overflow: hidden; }
.gapi-reviews__head {
    display: flex; justify-content: space-between; align-items: center;
    margin-bottom: 16px;
}
.gapi-reviews__title { color: var(--color-text-muted); font-size: 0.9rem; letter-spacing: .04em; text-transform: uppercase; }
.gapi-reviews__controls { display: inline-flex; gap: 8px; }
.gapi-reviews__arrow {
    width: 36px; height: 36px; border-radius: 50%;
    border: 1px solid var(--color-border);
    background: var(--color-bg-card); color: var(--color-text);
    font-size: 19px; line-height: 1; cursor: pointer;
    display: inline-flex; align-items: center; justify-content: center;
    transition: background .2s, border-color .2s, color .2s, transform .2s;
}
.gapi-reviews__arrow:hover { color: var(--color-accent); border-color: var(--color-accent); transform: scale(1.05); }

.gapi-reviews__viewport { overflow: hidden; width: 100%; }
.gapi-reviews__track { display: flex; gap: var(--gapi-gap); transition: transform .5s cubic-bezier(.22,1,.36,1); will-change: transform; }

.gapi-card {
    flex: 0 0 calc((100% - (var(--gapi-per-view) - 1) * var(--gapi-gap)) / var(--gapi-per-view));
    min-width: 0;
    background: var(--color-bg-card);
    border: 1px solid var(--color-border);
    border-radius: 14px;
    padding: 18px;
    box-shadow: 0 12px 28px -20px rgba(0,0,0,0.5);
    display: flex; flex-direction: column; gap: 12px;
}
.gapi-card__head { display: flex; align-items: flex-start; gap: 12px; }
.gapi-card__avatar {
    width: 44px; height: 44px; flex: 0 0 44px;
    border-radius: 50%; object-fit: cover;
    border: 1px solid var(--color-border); background: #222;
    display: inline-flex; align-items: center; justify-content: center;
    color: var(--color-accent); font-weight: 700; font-size: 1.2rem;
}
.gapi-card__who { display: flex; flex-direction: column; flex: 1; min-width: 0; }
.gapi-card__name {
    color: var(--color-text); font-weight: 600; text-decoration: none;
    font-size: 0.95rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.gapi-card__name:hover { color: var(--color-accent); }
.gapi-card__time { color: var(--color-text-muted); font-size: 0.78rem; margin-top: 2px; }
.gapi-card__stars { color: var(--color-accent); letter-spacing: 1px; font-size: 0.95rem; align-self: flex-start; }
.gapi-card__text {
    color: var(--color-text); font-size: 0.9rem; line-height: 1.55; margin: 0;
    display: -webkit-box; -webkit-line-clamp: 6; -webkit-box-orient: vertical; overflow: hidden;
}

.gapi-reviews__dots { display: flex; gap: 8px; justify-content: center; margin-top: 18px; }
.gapi-reviews__dot {
    width: 8px; height: 8px; border-radius: 50%;
    border: 1px solid var(--color-border); background: transparent; padding: 0; cursor: pointer;
    transition: background .2s, border-color .2s, width .3s;
}
.gapi-reviews__dot:hover { border-color: var(--color-accent); }
.gapi-reviews__dot.is-active { background: var(--color-accent); border-color: var(--color-accent); width: 24px; border-radius: 100px; }

/* === Responsive === */
@media (max-width: 1023px) {
    .gapi-block--card-left,
    .gapi-block--card-right { grid-template-columns: 1fr; }
    .gapi-block--card-right .gapi-card-profile,
    .gapi-block--card-right .gapi-reviews { order: initial; }
    .gapi-reviews { --gapi-per-view: 2; }
}
@media (max-width: 640px) {
    .gapi-reviews { --gapi-per-view: 1; }
    .gapi-card__name { white-space: normal; }
    .gapi-card-profile { padding: 22px 18px; }
}
