.seccion-opiniones {
    text-align: center;
    margin-top: var(--margin-layout-mobile);
}

.ancla {
    scroll-margin-top: 85px;
}

.opiniones-header h2 {
    font-size: var(--h2-desktop);
    margin-bottom: .5em;
}

.opiniones-header h2::after {
    content: '';
    display: block;
    width: 80px;
    height: 2.5px;
    background-color: var(--secondary-color-5);
    margin: .4em auto 0;
}

.resumen-estrellas {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
    margin-bottom: 2.5em;
    font-size: 1.1em;
}

.resumen-estrellas .estrellas-texto {
    font-weight: 700;
}

.resumen-estrellas .estrellas-iconos {
    color: #fbbc05;
}

.opiniones-verificacion {
    font-size: .88em;
    font-style: italic;
    color: #5f6368;
    margin-top: -2em;
    margin-bottom: 2em;
}

.slider-container {
    position: relative;
    max-width: 1200px;
    margin: 0 auto;
}

.opiniones-slider {
    overflow: hidden;
    width: 99%;
    container-type: inline-size;
    container-name: opiniones-slider;
    margin: auto;
}

.opiniones-wrapper {
    display: flex;
    flex-wrap: nowrap;
    align-items: stretch;
    gap: 1.5rem;
    transition: transform .5s ease-in-out;
}

/* Desktop: exactamente 3 tarjetas en una sola fila horizontal */
.opinion-card {
    box-sizing: border-box;
    flex: 0 0 calc((100cqw - 3rem) / 3);
    width: calc((100cqw - 3rem) / 3);
    max-width: calc((100cqw - 3rem) / 3);
    min-width: 0;
    padding: 1.5em;
    margin: 0;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, .08);
    text-align: left;
    display: flex;
    flex-direction: column;
}

.opinion-header {
    display: flex;
    align-items: center;
    margin-bottom: 1em;
}

.opinion-estrellas {
    color: #fbbc05;
    font-size: 1.1em;
}

.opinion-fecha {
    font-size: .88em;
    color: #5f6368;
    margin-left: auto;
    margin-right: 10px;
}

.google-logo {
    width: 20px;
    height: 20px;
}

.opinion-body {
    flex-grow: 1;
}

.opinion-autor-link,
.opinion-footer {
    align-items: center;
    display: flex;
}

.opinion-texto {
    font-size: .88em;
    line-height: 1.6;
    color: #3c4043;
}

.opinion-autor-link,
.opinion-toggle {
    text-decoration: none;
    color: var(--primary-color-1);
}

.opinion-toggle {
    display: inline-block;
    margin-top: .5em;
    font-weight: 500;
    cursor: pointer;
    font-size: .88em;
}

.opinion-autor-link:hover .opinion-autor,
.opinion-toggle:hover {
    text-decoration: underline;
}

.opinion-footer {
    margin-top: .88em;
}

.opinion-avatar,
.opinion-avatar-img {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    margin-right: 12px;
}

.opinion-avatar {
    color: #fff;
    font-weight: 500;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.2em;
}

.opinion-avatar-img {
    object-fit: cover;
}

.opinion-autor {
    font-weight: 500;
    transition: text-decoration .2s;
    font-size: .88em;
    color: var(--primary-color-1);
}

.slider-btn {
    position: absolute;
    top: 40%;
    transform: translateY(-50%);
    background: 0 0;
    border: none;
    font-size: 2.5em;
    color: #aaa;
    cursor: pointer;
    z-index: 1;
    font-weight: 100;
    transition: color .3s;
}

.slider-btn:hover {
    color: #333;
}

.prev-btn {
    left: -15px;
}

.next-btn {
    right: -15px;
}

.slider-dots {
    text-align: center;
    margin-bottom: 1em;
}

.dot {
    display: inline-block;
    width: 10px;
    height: 10px;
    background-color: var(--color-primary);
    border-radius: 50%;
    margin: 0 5px;
    cursor: pointer;
    opacity: .5;
    transition: opacity .3s;
}

.dot.active {
    opacity: 1;
}

.dot.active2 {
    background-color: var(--primary-color-1);
}

/* Tablet: 2 tarjetas por vista */
@media (max-width: 960px) {
    .opiniones-wrapper {
        gap: 1rem;
    }

    .opinion-card {
        flex: 0 0 calc((100cqw - 1rem) / 2);
        width: calc((100cqw - 1rem) / 2);
        max-width: calc((100cqw - 1rem) / 2);
    }
}

/* Móvil: 1 tarjeta por vista */
@media (max-width: 600px) {
    .opiniones-wrapper {
        gap: 0.75rem;
    }

    .opinion-card {
        flex: 0 0 100cqw;
        width: 100cqw;
        max-width: 100cqw;
    }

    .slider-btn {
        display: none;
    }

    .resumen-estrellas {
        margin-bottom: 1.5em;
        font-size: var(--texto-mobile);
    }

    .opiniones-header h2 {
        font-size: var(--h2-mobile);
    }

    .opiniones-verificacion {
        margin-top: -1em;
        margin-bottom: 1.5em;
    }
}

/* Fallback sin container queries */
@supports not (width: 1cqw) {
    @media (min-width: 961px) {
        .opiniones-wrapper {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 1.5rem;
            transform: none !important;
        }

        .opinion-card {
            flex: none;
            width: auto;
            max-width: none;
        }

        .slider-btn {
            display: none;
        }
    }

    @media (max-width: 960px) and (min-width: 601px) {
        .opinion-card {
            flex: 0 0 300px;
            width: 300px;
            max-width: 300px;
        }
    }

    @media (max-width: 600px) {
        .opinion-card {
            flex: 0 0 92%;
            width: 92%;
            max-width: 98%;
        }
    }
}

@media (min-width: 961px) {
    .seccion-opiniones {
        margin-top: var(--margin-layout-desktop);
    }

    /* Refuerzo: una sola fila, 3 columnas simétricas */
    .opiniones-wrapper {
        flex-wrap: nowrap;
    }
}

.opinion-card.is-expanded .opinion-texto .texto-corto,
.opinion-texto .texto-completo {
    display: none;
}

.opinion-card.is-expanded .opinion-texto .texto-completo {
    display: inline;
}

/* CTA → /opiniones */
.opiniones-cta {
    margin-top: 2rem;
    text-align: center;
}

.btn-ver-opiniones {
    display: inline-block;
    padding: 0.85rem 1.75rem;
    background: var(--color-primary, #192d4e);
    color: #fff;
    font-weight: 500;
    font-size: 0.95rem;
    letter-spacing: 0.04em;
    text-decoration: none;
    border-radius: 6px;
    transition: background 0.2s ease, transform 0.15s ease;
}

.btn-ver-opiniones:hover,
.btn-ver-opiniones:focus {
    background: #b9872a;
    color: #fff;
    transform: translateY(-1px);
}

/* Listado completo /opiniones */
.opiniones-listado-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
    max-width: 1200px;
    margin: 0 auto;
    text-align: left;
}

.seccion-opiniones--listado .opiniones-listado-grid .opinion-card {
    flex: none;
    width: auto;
    max-width: none;
    min-width: 0;
}

@media (max-width: 960px) {
    .opiniones-listado-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 600px) {
    .opiniones-listado-grid {
        grid-template-columns: 1fr;
    }

    .btn-ver-opiniones {
        width: 100%;
        max-width: 22rem;
    }
}
