/* Botón flotante de WhatsApp (inicio y portafolio) */
.cdw-wa-float {
    position: fixed; right: 24px; bottom: 24px; z-index: 999;
    display: flex; align-items: center; justify-content: flex-end;
    height: 58px; min-width: 58px; padding: 0;
    border-radius: 29px; background: #25D366; color: #fff;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.22);
    text-decoration: none; overflow: hidden;
    transition: box-shadow .3s ease, transform .3s ease;
    animation: cdw-wa-in .6s cubic-bezier(.22, .61, .36, 1) .8s both;
}
.cdw-wa-float i { flex: 0 0 58px; width: 58px; text-align: center; font-size: 30px; line-height: 58px; color: #fff; }
.cdw-wa-float-label {
    max-width: 0; overflow: hidden; white-space: nowrap;
    font-family: 'Jost', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 1.2px; text-transform: uppercase;
    transition: max-width .45s cubic-bezier(.22, .61, .36, 1), padding .45s cubic-bezier(.22, .61, .36, 1);
}
.cdw-wa-float::before {
    content: ""; position: absolute; inset: 0; border-radius: inherit;
    box-shadow: 0 0 0 0 rgba(37, 211, 102, 0.55);
    animation: cdw-wa-pulse 2.6s ease-out 2s infinite;
    pointer-events: none;
}
.cdw-wa-float:hover, .cdw-wa-float:focus-visible { color: #fff; box-shadow: 0 12px 30px rgba(0, 0, 0, 0.28); transform: translateY(-2px); }
.cdw-wa-float:hover .cdw-wa-float-label, .cdw-wa-float:focus-visible .cdw-wa-float-label { max-width: 260px; padding-left: 22px; }

@keyframes cdw-wa-in { from { opacity: 0; transform: translateY(20px) scale(.8); } to { opacity: 1; transform: none; } }
@keyframes cdw-wa-pulse {
    0% { box-shadow: 0 0 0 0 rgba(37, 211, 102, 0.55); }
    70% { box-shadow: 0 0 0 16px rgba(37, 211, 102, 0); }
    100% { box-shadow: 0 0 0 0 rgba(37, 211, 102, 0); }
}

@media (max-width: 767px) {
    .cdw-wa-float { right: 16px; bottom: 16px; height: 54px; min-width: 54px; border-radius: 27px; }
    .cdw-wa-float i { flex-basis: 54px; width: 54px; line-height: 54px; font-size: 28px; }
    .cdw-wa-float-label { display: none; }
}

@media (prefers-reduced-motion: reduce) {
    .cdw-wa-float, .cdw-wa-float::before { animation: none; }
}
