/* ===== Descripción adaptada a móvil (componente compartido) ===== */
.desc-mobile,
.desc-mobile-full { display: none; }
.desc-mobile-toggle { position: absolute; opacity: 0; pointer-events: none; width: 1px; height: 1px; }

@media (max-width: 768px) {
    .desc-desktop { display: none !important; }

    .desc-mobile {
        display: block;
        position: relative;
        text-align: left;
        background: var(--desc-bg, rgba(0, 173, 181, 0.08));
        border-left: 3px solid var(--desc-accent, #00adb5);
        border-radius: 12px;
        padding: 14px 16px;
        margin: 4px 0 16px;
        box-shadow: 0 4px 14px rgba(0, 0, 0, 0.05);
        animation: descFadeIn 0.5s ease both;
    }
    .desc-mobile-hook {
        font-size: 1rem;
        font-weight: 700;
        line-height: 1.45;
        color: var(--desc-accent, #00adb5);
        margin: 0 0 10px;
    }
    .desc-mobile-list {
        list-style: none;
        margin: 0;
        padding: 0;
        display: flex;
        flex-direction: column;
        gap: 8px;
    }
    .desc-mobile-list li {
        display: flex;
        align-items: flex-start;
        gap: 10px;
        font-size: 0.9rem;
        line-height: 1.45;
        color: var(--text-color, inherit);
    }
    .desc-mobile-list li i {
        color: var(--desc-accent, #00adb5);
        font-size: 0.95rem;
        margin-top: 2px;
        flex-shrink: 0;
    }
    .desc-mobile-text {
        margin: 0;
        font-size: 0.95rem;
        line-height: 1.55;
        color: var(--text-color, inherit);
        white-space: pre-line;
        display: -webkit-box;
        -webkit-line-clamp: 3;
        line-clamp: 3;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }
    .desc-mobile .desc-mobile-lead { font-weight: 700 !important; color: var(--desc-accent, #00adb5) !important; }
    .desc-mobile-text-extra { margin: 8px 0 0; font-size: 0.9rem; line-height: 1.5; color: var(--text-color, inherit); }
    .desc-mobile-full > :first-child { margin-top: 0; }
    .desc-mobile-full .desc-mobile-list { margin-top: 8px; }

    .desc-mobile-readmore {
        display: inline-flex; align-items: center; gap: 6px; margin-top: 8px; padding: 4px 0;
        cursor: pointer; font-size: 0.85rem; font-weight: 600; color: var(--desc-accent, #00adb5);
    }
    .desc-mobile-readmore i { font-size: 0.7rem; transition: transform 0.25s ease; }
    .desc-mobile-readmore .txt-less { display: none; }

    .desc-mobile-toggle:checked ~ .desc-mobile-text { -webkit-line-clamp: unset; line-clamp: unset; display: block; }
    .desc-mobile-toggle:checked ~ .desc-mobile-preview { display: none; }
    .desc-mobile-toggle:checked ~ .desc-mobile-full { display: block; animation: descFadeIn 0.4s cubic-bezier(0.25, 1, 0.5, 1) both; }
    .desc-mobile-toggle:not(:checked) ~ .desc-mobile-preview,
    .desc-mobile-toggle:not(:checked) ~ .desc-mobile-text { animation: descFadeIn 0.4s cubic-bezier(0.25, 1, 0.5, 1) both; }
    .desc-mobile-toggle:checked ~ .desc-mobile-readmore .txt-more { display: none; }
    .desc-mobile-toggle:checked ~ .desc-mobile-readmore .txt-less { display: inline; }
    .desc-mobile-toggle:checked ~ .desc-mobile-readmore i { transform: rotate(180deg); }
    .desc-mobile-toggle:focus-visible ~ .desc-mobile-readmore,
    .desc-mobile-readmore:focus-visible { outline: 2px solid var(--desc-accent, #00adb5); outline-offset: 2px; border-radius: 4px; }
}

@keyframes descFadeIn {
    from { opacity: 0.15; transform: translateY(4px); }
    to { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
    .desc-mobile, .desc-mobile-full, .desc-mobile-preview, .desc-mobile-text { animation: none !important; }
}
