/* ==============================================
   FOOTER
   ============================================== */
.footer-cta-bar {
    display: grid;
    grid-template-columns: 1fr 1.4fr;
    width: 100%;
}

.footer-cta-left {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 0 20px;
    background: #a9d6e4;
    color: var(--white);
    font-size: clamp(1.1rem, 1.5vw, 1.45rem);
    font-weight: 700;
    text-decoration: none;
    line-height: 1;
}

.footer-cta-right {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    min-height: 48px;
    padding: 0 38px;
    background: #F2F8F9;
    color: var(--black);
    font-size: clamp(1.1rem, 1.5vw, 1.45rem);
    font-weight: 700;
    line-height: 1;
}

.footer-social-bar {
    background: var(--teal);
}

.footer-social-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    min-height: 80px;
}

.footer-social-text {
    margin: 0;
    color: var(--white);
    font-size: clamp(1.1rem, 2vw, 1.6rem);
    font-weight: 700;
    line-height: 1.1;
}

.footer-social-icons {
    display: flex;
    align-items: center;
    gap: 12px;
}

.footer-social-icons a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    color: var(--white);
    text-decoration: none;
}

.footer-social-icons a svg {
    width: 100%;
    height: 100%;
}

#site-footer {
    background: var(--white);
}

.footer-main-grid {
    display: grid;
    grid-template-columns: 1.25fr 1fr 1fr 1fr;
    gap: 34px;
    padding: 22px 0 18px;
    align-items: start;
}

.footer-brand-col .site-logo {
    display: block;
    margin-bottom: 12px;
}

.footer-brand-col .site-logo img,
.footer-brand-col .site-logo svg {
    height: 58px;
    width: auto;
}

.footer-brand-name,
.footer-brand-role {
    margin: 0;
    color: var(--dark);
    font-size: clamp(.85rem, .95vw, 1rem);
    font-weight: 700;
    line-height: 1.1;
}

.footer-info-col {
    position: relative;
}

.footer-info-col h4 {
    margin: 0 0 10px;
    color: var(--teal);
    font-size: clamp(1.2rem, 1.5vw, 1.9rem);
    font-weight: 700;
    line-height: 1;
}

.footer-info-col p {
    margin: 0;
    color: var(--dark);
    font-size: clamp(.9rem, 1vw, 1.15rem);
    font-weight: 700;
    line-height: 1.05;
}

.footer-info-col p+p {
    margin-top: 3px;
}

.footer-info-col a {
    color: inherit;
    text-decoration: none;
}

.footer-phone {
    margin-top: 8px !important;
    color: var(--teal) !important;
    font-size: clamp(1rem, 1.15vw, 1.35rem) !important;
    font-weight: 700;
}

.footer-info-col-split {
    padding-left: 26px;
}

.footer-info-col-split::before {
    content: "";
    position: absolute;
    left: 0;
    top: 32px;
    width: 4px;
    height: 48px;
    background: var(--teal);
    border-radius: 999px;
}

.footer-bottom-bar {
    background: var(--teal);
}

.footer-bottom-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    min-height: 44px;
}

.footer-copy {
    margin: 0;
    color: var(--white);
    font-size: .9rem;
    font-weight: 500;
    line-height: 1;
}

.footer-credit {
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--white);
    font-size: .9rem;
    font-weight: 500;
    line-height: 1;
}

.footer-credit a {
    color: var(--white);
    text-decoration: none;
    font-size: 1.2rem;
    font-weight: 700;
    line-height: 1;
}

@media(max-width:991px) {
    .footer-cta-bar {
        grid-template-columns: 1fr;
    }

    .footer-cta-left,
    .footer-cta-right {
        justify-content: center;
        padding: 12px 18px;
        text-align: center;
    }

    .footer-social-inner {
        min-height: auto;
        padding: 18px 0;
        flex-direction: column;
        justify-content: center;
    }

    .footer-main-grid {
        grid-template-columns: 1fr 1fr;
        gap: 24px;
    }

    .footer-info-col-split {
        padding-left: 18px;
    }

    .footer-info-col-split::before {
        top: 28px;
        height: 40px;
    }
}

@media(max-width:767px) {
    .footer-social-text {
        text-align: center;
    }

    .footer-main-grid {
        grid-template-columns: 1fr;
        padding: 24px 0 20px;
    }

    .footer-info-col-split {
        padding-left: 0;
    }

    .footer-info-col-split::before {
        display: none;
    }

    .footer-bottom-inner {
        min-height: auto;
        padding: 12px 0;
        flex-direction: column;
        justify-content: center;
        text-align: center;
    }

    .footer-copy,
    .footer-credit {
        line-height: 1.3;
    }
}