/**
 * Footer — Staff Aéreo
 */

.footer {
    background-color: #010066;
    width: 100%;
    padding: clamp(1.75rem, 3.5vw, 2.75rem) clamp(1.25rem, 4vw, 5rem);
    color: #ffffff;
    font-family: 'Montserrat', sans-serif;
    font-weight: 400;
    font-style: normal;
    box-sizing: border-box;
    /* Altura unificada para email, teléfono y globo */
    --footer-contact-icon: clamp(15px, 1.85vw, 17px);
}

.footer * {
    box-sizing: border-box;
}

.footer-content {
    max-width: var(--layout-footer-inner-max, 1400px);
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: clamp(1.25rem, 3vw, 2.5rem);
    align-items: center;
}

.footer-col {
    display: flex;
    flex-direction: column;
}

.footer-col--left {
    text-align: left;
    align-items: flex-start;
    gap: 0.85rem;
}

.footer-block-title {
    margin: 0;
    font-family: 'Montserrat', sans-serif;
    font-weight: 700;
    font-size: clamp(0.95rem, 1.2vw, 1.1rem);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #ffffff;
    line-height: 1.15;
}

.footer-block-title--right {
    align-self: flex-end;
    text-align: right;
}

.footer-contact-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.footer-contact-phones {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.footer-contact-phones-text {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.footer-contact-line--phone {
    display: block;
    line-height: 1.35;
}

.footer-contact-line {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    color: #ffffff;
    text-decoration: none;
    font-size: clamp(0.875rem, 1.05vw, 1rem);
    font-weight: 400;
    line-height: 1.35;
    transition: opacity 0.2s ease;
}

.footer-contact-line:hover {
    opacity: 0.9;
    text-decoration: none;
    font-weight: 700;
}

.footer-contact-icon {
    flex-shrink: 0;
    width: var(--footer-contact-icon);
    height: var(--footer-contact-icon);
    object-fit: contain;
    object-position: center center;
    display: block;
}

.footer-contact-globe {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--footer-contact-icon);
    height: var(--footer-contact-icon);
    font-size: clamp(12px, 1.55vw, 15px);
    line-height: 1;
    text-align: center;
    opacity: 0.95;
}

.footer-address {
    margin: 0;
    font-size: clamp(0.7rem, 0.85vw, 0.8rem);
    font-weight: 400;
    line-height: 1.3;
    color: #ffffff;
    max-width: 22rem;
    opacity: 0.92;
}

.footer-socials {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.55rem 0.85rem;
}

.footer-socials--left {
    justify-content: flex-start;
}

.footer-social-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 0;
    opacity: 1;
    transition: opacity 0.2s ease, transform 0.2s ease;
}

.footer-social-link:hover {
    opacity: 0.88;
    transform: translateY(-2px);
}

.footer-social-link img {
    width: clamp(36px, 4.5vw, 44px);
    height: clamp(36px, 4.5vw, 44px);
    object-fit: contain;
    display: block;
}

/* Centro: logo */
.footer-col--brand {
    align-items: center;
    justify-content: center;
    text-align: center;
    min-width: 0;
}

.footer-brand-link {
    display: inline-flex;
    line-height: 0;
    text-decoration: none;
}

.footer-brand-link:hover {
    opacity: 0.94;
}

.footer-brand-logo {
    display: block;
    width: clamp(118px, 17vw, 210px);
    height: auto;
    object-fit: contain;
}

/* Derecha: apoyo + legal */
.footer-col--support {
    align-items: flex-end;
    text-align: right;
    gap: 0.28rem;
}

.footer-support-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.12rem;
    align-items: flex-end;
}

.footer-support-list li {
    margin: 0;
    padding: 0;
    line-height: 1.15;
}

.footer-support-list a {
    color: #ffffff;
    text-decoration: none;
    font-size: clamp(0.875rem, 1.05vw, 1rem);
    font-weight: 400;
    line-height: 1.15;
    transition: opacity 0.2s ease;
}

.footer-support-list a:hover {
    text-decoration: none;
    opacity: 0.92;
    font-weight: 700;
}

.footer-copyright {
    margin: 0.12rem 0 0;
    font-size: clamp(0.8rem, 1vw, 0.95rem);
    font-weight: 400;
    color: #ffffff;
    opacity: 0.95;
    max-width: 22rem;
    line-height: 1.25;
}

@media (max-width: 900px) {
    .footer-content {
        grid-template-columns: 1fr;
        gap: 1.75rem;
        justify-items: center;
    }

    .footer-col--left {
        text-align: center;
        align-items: center;
    }

    .footer-contact-list {
        align-items: center;
    }

    .footer-socials--left {
        justify-content: center;
    }

    .footer-block-title--right {
        align-self: center;
        text-align: center;
    }

    .footer-col--support {
        align-items: center;
        text-align: center;
    }

    .footer-support-list {
        align-items: center;
    }

    .footer-copyright {
        text-align: center;
    }
}

/* Pantallas anchas */
@media (min-width: 1400px) {
    header {
        padding-left: clamp(1.5rem, 3vw, 4rem);
        padding-right: clamp(1.5rem, 3vw, 4rem);
    }

    .footer {
        padding-left: var(--container-padding);
        padding-right: var(--container-padding);
    }

    .features,
    .modules-showcase,
    .modules-list-section,
    .workflow-section {
        padding-left: var(--container-padding);
        padding-right: var(--container-padding);
    }

    .contact-header {
        max-width: var(--layout-content-max, 1200px);
        width: 100%;
        margin-left: auto;
        margin-right: auto;
        padding-left: var(--container-padding);
        padding-right: var(--container-padding);
        box-sizing: border-box;
    }
}

@media (min-width: 1600px) {
    .contact-image-wrap img {
        max-width: 640px;
    }
}

@media (min-width: 1920px) {
    .banner-home__content {
        padding-left: clamp(2.5rem, 3.5vw, 5.5rem);
        padding-right: clamp(2.5rem, 3.5vw, 5.5rem);
    }

    .banner-home__title {
        max-width: 760px;
        font-size: clamp(2.75rem, 2vw, 3.65rem);
    }

    .banner-home__subtitle {
        max-width: 600px;
        font-size: 1.2rem;
    }

    .contact-title {
        font-size: clamp(4rem, 4.5vw, 6.25rem);
    }

    .contact-body {
        gap: 5rem;
    }

    .contact-image-wrap img {
        max-width: 720px;
    }

    .modules-box {
        padding: 3.5rem 4.5rem 3.5rem 4rem;
    }

    .modules-title {
        font-size: clamp(2.45rem, 2vw, 3.35rem);
    }

    .features-title {
        font-size: clamp(1.85rem, 1.65vw, 2.15rem);
    }

    .workflow-title {
        font-size: clamp(2.35rem, 1.85vw, 2.85rem);
    }
}

@media (min-width: 2200px) {
    .contact-body {
        gap: 6rem;
    }

    .contact-image-wrap img {
        max-width: 820px;
    }
}

@media (min-width: 2560px) {
    .contact-body {
        gap: 7rem;
    }

    .contact-image-wrap img {
        max-width: 920px;
    }

}
