.footer-publico {
    margin-top: 70px;
    overflow: hidden;
    background: #000000;
    color: #ffffff;
    border-top: 4px solid #0ea5e9;
}
.footer-container {
    width: 100%;
    max-width: 1380px;
    margin: 0 auto;
    padding: 58px 26px 48px;
    display: grid;
    grid-template-columns: 1.35fr .8fr .9fr .9fr;
    gap: 42px;
}
.footer-logo { display: inline-flex; align-items: center; text-decoration: none; color: #ffffff; }
.footer-logo img { max-width: 118px; max-height: 118px; width: auto; height: auto; object-fit: contain; display: block; background: #fff; padding: 8px; border-radius: 8px; filter: drop-shadow(0 12px 24px rgba(254,207,12,.16)); }
.footer-logo strong { font-size: 28px; font-weight: 950; }
.footer-desc { max-width: 390px; margin: 24px 0 0; color: #ffffff; opacity: .78; font-size: 15px; line-height: 1.8; }
.footer-socials { display: flex; align-items: center; gap: 10px; margin-top: 24px; }
.footer-socials a {
    width: 38px;
    height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.15);
    transition: transform .2s ease, background .2s ease, border-color .2s ease;
}
.footer-socials a:hover {
    background: #0ea5e9;
    border-color: #0ea5e9;
    transform: translateY(-2px);
}
.footer-socials img {
    width: 18px;
    height: 18px;
    display: block;
    filter: invert(1);
}
.footer-col h4 {
    margin: 0 0 18px;
    color: #ffffff;
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .08em;
    position: relative;
    padding-bottom: 8px;
    display: block;
}
.footer-col h4::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 24px;
    height: 2px;
    background: #0ea5e9;
}
.footer-col a { display: block; width: fit-content; color: #ffffff; opacity: .78; text-decoration: none; margin-bottom: 11px; font-size: 15px; font-weight: 650; transition: opacity .2s ease, color .2s ease, transform .2s ease; }
.footer-col a:hover { opacity: 1; color: #0ea5e9; transform: translateX(3px); }
.footer-bottom { border-top: 1px solid rgba(255,255,255,.14); padding: 18px 26px; display: flex; align-items: center; justify-content: center; gap: 14px; flex-wrap: wrap; color: #ffffff; font-size: 13px; opacity: .9; text-align: center; }
.footer-bottom a { color: #0ea5e9; font-weight: 900; text-decoration: none; transition: color 0.2s ease; }
.footer-bottom a:hover { color: #ffffff; text-decoration: underline; }

/* Entradas coordinadas con el loader y el sentido del scroll. */
.footer-publico .footer-reveal {
    opacity: 0;
    transform: translate3d(0, 34px, 0);
    transition:
        opacity 1500ms cubic-bezier(0.22, 0.61, 0.36, 1),
        transform 1500ms cubic-bezier(0.22, 0.65, 0.3, 1);
    transition-delay: var(--footer-reveal-delay, 100ms);
    will-change: opacity, transform;
}

.footer-publico .footer-reveal.footer-reveal--from-top:not(.footer-reveal--active) {
    transform: translate3d(0, -34px, 0);
}

.footer-publico .footer-reveal.footer-reveal--active {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    will-change: auto;
}

.footer-brand { --footer-reveal-delay: 100ms; }
.footer-col:nth-of-type(2) { --footer-reveal-delay: 220ms; }
.footer-col:nth-of-type(3) { --footer-reveal-delay: 340ms; }
.footer-col:nth-of-type(4) { --footer-reveal-delay: 460ms; }

@media (max-width: 980px) { .footer-container { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) { .footer-publico { margin-top: 44px; } .footer-container { grid-template-columns: 1fr; padding: 42px 22px 36px; text-align: left; gap: 30px; } .footer-logo img { max-width: 96px; max-height: 96px; } .footer-col a { width: auto; } .footer-bottom { align-items: flex-start; flex-direction: column; text-align: left; } }

@media (prefers-reduced-motion: reduce) {
    .footer-publico .footer-reveal {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }
}
