/**
 * Portada — diagrama Factor (bundle diagrama_factor).
 * Réplica de la sección del diagrama de Lovable. Las zonas y las etiquetas
 * se posicionan en % sobre la caja .factor-diagram (mismo ancho máximo y
 * padding que en Lovable, para que las coordenadas coincidan).
 */

.section-factor-diagram {
    position: relative;
    padding: 38px 0 80px;
    background-color: var(--color-bg-blue-light);
}

.factor-diagram {
    position: relative;
    box-sizing: border-box;
    max-width: 1024px;
    margin: 0 auto;
    padding: 0 24px;
}

.factor-diagram__img {
    display: block;
    width: 100%;
    height: auto;
    margin: 0 auto;
}

.factor-diagram__watermark {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 78%;
    max-width: none;
    height: auto;
    transform: translate(-50%, -50%);
    opacity: 0.1;
    mix-blend-mode: multiply;
    pointer-events: none;
    user-select: none;
}

.factor-diagram__label {
    position: absolute;
    top: 31%;
    color: var(--color-primary);
    font-family: var(--font-family-base);
    font-size: clamp(0.7rem, 1.35vw, 1.05rem);
    font-weight: 300;
    line-height: 1;
    white-space: nowrap;
}

.factor-diagram__label--left { left: 27.5%; }
.factor-diagram__label--right { right: 27.5%; }

/* --- Zonas interactivas ---------------------------------------------- */
.factor-diagram__zone {
    position: absolute;
    z-index: 2;
}

.factor-diagram__zone:hover,
.factor-diagram__zone:focus-within {
    z-index: 3;
}

.factor-diagram__link {
    display: block;
    width: 100%;
    height: 100%;
    border-radius: 999px;
    cursor: pointer;
}

.factor-diagram__link:focus-visible {
    outline: 2px solid var(--color-accent);
    outline-offset: 3px;
}

.factor-diagram__tip {
    position: absolute;
    bottom: calc(100% + 10px);
    z-index: 30;
    width: 300px;
    max-width: 80vw;
    padding: 16px;
    border: 1px solid rgba(3, 159, 255, 0.25);
    border-radius: 0 0 12px 0;
    background: rgba(2, 1, 103, 0.95);
    box-shadow: 0 18px 40px -18px rgba(2, 1, 103, 0.6);
    -webkit-backdrop-filter: blur(12px);
    backdrop-filter: blur(12px);
    opacity: 0;
    transform: translateY(4px);
    pointer-events: none;
    transition: opacity 0.3s ease, transform 0.3s ease;
}

.factor-diagram__zone--start .factor-diagram__tip { left: 0; }
.factor-diagram__zone--end .factor-diagram__tip { right: 0; }
.factor-diagram__zone--center .factor-diagram__tip {
    left: 50%;
    transform: translate(-50%, 4px);
}

.factor-diagram__zone:hover .factor-diagram__tip,
.factor-diagram__zone:focus-within .factor-diagram__tip {
    opacity: 1;
    transform: translateY(0);
}

.factor-diagram__zone--center:hover .factor-diagram__tip,
.factor-diagram__zone--center:focus-within .factor-diagram__tip {
    transform: translate(-50%, 0);
}

.factor-diagram__tip ul {
    margin: 0;
    padding-left: 20px;
    list-style: disc;
    color: var(--color-bg-blue-light);
    font-family: var(--font-family-base);
    font-size: 13px;
    line-height: 1.375;
}

.factor-diagram__tip li + li {
    margin-top: 8px;
}

.factor-diagram__tip li::marker {
    color: var(--color-accent);
}

@media (min-width: 576px) {
    .factor-diagram__tip {
        width: 360px;
    }
}

@media (max-width: 767.98px) {
    .section-factor-diagram {
        padding-bottom: 64px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .factor-diagram__tip {
        transition: none;
    }
}
