/* ===========================================================
   FEEDBACK SECTION
   Panel oscuro texturizado con un carrusel infinito de
   testimonios (3 visibles) que avanza solo, y una franja
   blanca inferior con el título serif.
   =========================================================== */

.feedback,
.feedback * {
    box-sizing: border-box;
}

.feedback {
    position: relative;
    background: var(--landing-cream);
    font-family: var(--font-inter);

    /* --- Variables del carrusel --- */
    --fb-visible: 3;                                   /* tarjetas visibles */
    --fb-gap: 34px;                                    /* separación */
    --fb-pad: 60px;                                    /* padding lateral del stage */
    --fb-card: calc(
        (100vw - (var(--fb-pad) * 2) - (var(--fb-gap) * (var(--fb-visible) - 1)))
        / var(--fb-visible)
    );
    --fb-step: calc(var(--fb-card) + var(--fb-gap));   /* avance por tarjeta */
    --fb-count: 10;                                    /* tarjetas originales */
    --fb-distance: calc(var(--fb-step) * var(--fb-count));
    --fb-speed: 8s;                                    /* segundos por tarjeta */
}

/* ---------- Panel oscuro (fondo texturizado) ---------- */
.feedback-stage {
    background-image: none;
    background-color: var(--landing-cream);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    padding: 70px var(--fb-pad) 80px;
}

.feedback-header {
    max-width: 980px;
    margin: 0 auto 58px;
    color: var(--landing-ink);
    text-align: center;
}

.feedback-kicker {
    margin: 0 0 20px;
    color: var(--landing-gold-strong);
    font-family: var(--font-serif);
    font-size: var(--landing-kicker-size);
    font-weight: 500;
    letter-spacing: 2.6px;
    line-height: 1.35;
    text-transform: uppercase;
}

.feedback-header h2 {
    margin: 0 0 12px;
    color: var(--landing-ink);
    font-family: var(--font-serif);
    font-size: var(--landing-section-title-size);
    font-weight: 500;
    line-height: 1.08;
}

.feedback-intro {
    margin: 0;
    color: #665a52;
    font-family: var(--font-serif);
    font-size: 15px;
    line-height: 1.4;
}

/* ---------- Carrusel ---------- */
.feedback-viewport {
    overflow: hidden;
}

.feedback-track {
    display: flex;
    gap: var(--fb-gap);
    width: max-content;
    animation: fb-scroll calc(var(--fb-speed) * var(--fb-count)) linear infinite;
    animation-play-state: paused;
    will-change: transform;
}

.feedback.is-running .feedback-track:not(:hover) {
    animation-play-state: running;
}

.feedback-track:hover {
    animation-play-state: paused;
}

@keyframes fb-scroll {
    from { transform: translate3d(0, 0, 0); }
    to   { transform: translate3d(calc(var(--fb-distance) * -1), 0, 0); }
}

/* ---------- Tarjeta individual ---------- */
.feedback-card {
    flex: 0 0 var(--fb-card);
    width: var(--fb-card);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.feedback-photo {
    width: 148px;
    height: 148px;
    border-radius: 16px;
    overflow: hidden;
    margin: 0 0 24px;
    flex-shrink: 0;
}

.feedback-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.feedback-quote {
    display: block;
    color: var(--landing-gold);
    font-family: var(--font-serif);
    font-size: 40px;
    line-height: 0.6;
    margin: 0 0 6px;
}

.feedback-text {
    margin: 0 0 22px;
    color: #514743;
    font-size: 12.5px;
    line-height: 1.55;
    white-space: pre-line;
}

/* ---------- Bloque de la persona ---------- */
.feedback-person {
    margin-top: auto;
}

.feedback-name {
    margin: 0 0 4px;
    color: var(--landing-gold);
    font-size: 13px;
    font-weight: 700;
    font-style: italic;
    letter-spacing: 0.4px;
}

.feedback-role {
    margin: 0;
    color: #514743;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.4px;
}

.feedback-country {
    margin: 0;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #514743;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 1px;
}

.feedback-country .feedback-flag {
    width: 22px;
    height: 16px;
    border-radius: 2px;
    background-size: cover;
    box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.15);
}

/* ---------- RESPONSIVE ---------- */
@media (max-width: 1024px) {
    .feedback {
        --fb-visible: 2;
        --fb-pad: 40px;
        --fb-gap: 30px;
    }

    .feedback-stage {
        padding: 56px var(--fb-pad) 64px;
    }

    .feedback-header {
        margin-bottom: 48px;
    }
}

@media (max-width: 560px) {
    .feedback {
        --fb-visible: 1;
        --fb-pad: 24px;
    }

    .feedback-stage {
        padding: 46px var(--fb-pad) 52px;
    }

    .feedback-card {
        align-items: center;
        text-align: center;
    }

    .feedback-country {
        justify-content: center;
    }

    .feedback-header {
        margin-bottom: 40px;
    }

    .feedback-header h2 {
        font-size: 26px;
    }

    .feedback-intro {
        font-size: 14px;
    }
}

/* ---------- Accesibilidad: sin movimiento ---------- */
@media (prefers-reduced-motion: reduce) {
    .feedback-track {
        animation: none;
    }
}
