/* ======================================================================
   Compact shared footer
   Loaded after the legacy footer rules and intentionally scoped.
   ====================================================================== */

.footer-premium {
    padding-top: 46px;
    margin-top: 0;
    background: linear-gradient(160deg, #345a52 0%, #153a34 38%, #061b17 100%);
}

.footer-premium::before {
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(165, 212, 199, 0.56), transparent);
}

.footer-premium .footer-background-animation::before,
.footer-premium .footer-background-animation::after,
.footer-premium .footer-grid-pattern,
.footer-premium .footer-glow {
    animation-duration: 24s;
}

.footer-premium .footer-grid-pattern {
    opacity: 0.42;
    background-size: 48px 48px;
}

.footer-premium .footer-glow {
    opacity: 0.22;
    filter: blur(150px);
}

.footer-premium .footer-wave-divider {
    display: none !important;
}

/*
 * The site has several page-specific contact banners. Their shared footer
 * boundary is handled here so each banner visually belongs to the footer,
 * with no white wave or accidental vertical gap between the two surfaces.
 */
:is(
    .cr-connect,
    .cp-connect,
    .oa-connect,
    .cu-connect,
    .gr-connect,
    .inv-connect,
    .vp-connect,
    .mp-connect,
    .products-cta-section,
    .contact-section-creative
) {
    position: relative;
    z-index: 3;
    margin-bottom: -20px !important;
    border-radius: 0 0 24px 24px;
    box-shadow: 0 16px 34px rgba(3, 24, 28, 0.18);
    overflow: hidden;
}

:is(
    .cr-connect,
    .cp-connect,
    .oa-connect,
    .cu-connect,
    .gr-connect,
    .inv-connect,
    .vp-connect,
    .mp-connect,
    .products-cta-section,
    .contact-section-creative
) + .footer-premium {
    padding-top: 56px;
}

/* Keep every CTA/footer social glyph centred and visible across FA versions. */
:is(
    .cr-connect-social,
    .cp-connect-social,
    .oa-connect-social,
    .cu-connect-social,
    .gr-connect-social,
    .inv-connect-social,
    .footer-social-premium
) a {
    flex: 0 0 auto;
}

:is(
    .cr-connect-social,
    .cp-connect-social,
    .oa-connect-social,
    .cu-connect-social,
    .gr-connect-social,
    .inv-connect-social,
    .footer-social-premium
) a > :is(i, svg) {
    display: block !important;
    width: 15px;
    height: 15px;
    flex: 0 0 15px;
    line-height: 15px;
}

.footer-premium .footer-grid-premium {
    max-width: 1440px;
    padding: 0 32px 30px;
    grid-template-columns: minmax(230px, 1.38fr) minmax(120px, 0.72fr) minmax(130px, 0.78fr) minmax(170px, 0.95fr) minmax(245px, 1.16fr);
    gap: clamp(20px, 2.4vw, 38px);
    align-items: start;
}

.footer-premium .footer-brand-column {
    gap: 15px;
}

.footer-premium .footer-brand-logo {
    align-self: flex-start;
    line-height: 0;
}

.footer-premium .footer-brand-logo::before {
    display: none;
}

.footer-premium .footer-logo-img {
    width: auto;
    height: 39px;
}

.footer-premium .footer-brand-description {
    max-width: 315px;
    margin: 0;
    color: rgba(210, 227, 222, 0.65);
    font-size: 0.78rem;
    line-height: 1.58;
}

.footer-premium .footer-social-premium {
    gap: 8px;
    margin-top: 2px;
}

.footer-premium .footer-social-link {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    color: rgba(224, 237, 233, 0.75);
    font-size: 0.88rem;
}

.footer-premium .footer-social-link:hover {
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 7px 16px rgba(4, 29, 24, 0.24);
}

.footer-premium .footer-column-title {
    margin: 2px 0 16px;
    color: #f4faf8;
    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    animation: none;
}

.footer-premium .footer-column-title::after {
    bottom: -7px;
    width: 24px;
    height: 2px;
    animation: none;
    box-shadow: none;
}

.footer-premium .footer-links-list {
    gap: 7px;
}

.footer-premium .footer-links-list a {
    padding: 3px 0;
    color: rgba(207, 224, 219, 0.64);
    font-size: 0.76rem;
    line-height: 1.32;
}

.footer-premium .footer-links-list a::before {
    display: none;
}

.footer-premium .footer-links-list a::after {
    left: 0;
    box-shadow: none;
}

.footer-premium .footer-links-list a:hover {
    color: #fff;
    transform: translateX(3px);
    text-shadow: none;
}

.footer-premium .footer-offices-column {
    gap: 10px;
}

.footer-premium .footer-office-block {
    display: block;
    padding: 11px 12px;
    border-radius: 11px;
    color: inherit;
    text-decoration: none;
    background: rgba(255, 255, 255, 0.045);
    backdrop-filter: blur(5px);
}

.footer-premium .footer-office-block::before {
    display: none;
}

.footer-premium .footer-office-block:hover,
.footer-premium .footer-office-block:focus-visible {
    border-color: rgba(159, 205, 192, 0.28);
    background: rgba(255, 255, 255, 0.075);
    box-shadow: 0 7px 18px rgba(4, 26, 21, 0.16);
    transform: translateY(-2px);
}

.footer-premium .footer-office-title {
    margin-bottom: 6px;
    padding-left: 9px;
    color: rgba(241, 249, 247, 0.9);
    font-size: 0.65rem;
    letter-spacing: 0.12em;
}

.footer-premium .footer-office-title::before {
    width: 2px;
    height: 11px;
}

.footer-premium .footer-office-address {
    color: rgba(205, 222, 217, 0.62);
    font-size: 0.7rem;
    line-height: 1.48;
}

.footer-premium .footer-bottom-premium {
    padding: 12px 0;
    border-top-color: rgba(188, 220, 211, 0.1);
    background: rgba(0, 15, 12, 0.4);
}

.footer-premium .footer-bottom-container {
    max-width: 1440px;
    padding: 0 32px;
    gap: 12px;
}

.footer-premium .footer-copyright p,
.footer-premium .footer-credit p {
    color: rgba(191, 211, 205, 0.5);
    font-size: 0.68rem;
}

.footer-premium .footer-credit a {
    color: rgba(221, 235, 231, 0.7);
}

@media (max-width: 1180px) {
    .footer-premium .footer-grid-premium {
        grid-template-columns: minmax(230px, 1.25fr) repeat(3, minmax(125px, 0.72fr));
    }

    .footer-premium .footer-offices-column {
        grid-column: 1 / -1;
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 820px) {
    .footer-premium {
        padding-top: 42px;
    }

    .footer-premium .footer-grid-premium {
        padding: 0 24px 26px;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 24px 18px;
    }

    .footer-premium .footer-brand-column {
        grid-column: 1 / -1;
        display: grid;
        grid-template-columns: auto minmax(0, 1fr) auto;
        align-items: center;
        column-gap: 18px;
    }

    .footer-premium .footer-brand-description {
        max-width: none;
    }

    .footer-premium .footer-social-premium {
        margin: 0;
    }

    .footer-premium .footer-offices-column {
        grid-column: 1 / -1;
    }
}

@media (max-width: 600px) {
    .footer-premium {
        padding-top: 36px;
    }

    :is(
        .cr-connect,
        .cp-connect,
        .oa-connect,
        .cu-connect,
        .gr-connect,
        .inv-connect,
        .vp-connect,
        .mp-connect,
        .products-cta-section,
        .contact-section-creative
    ) {
        margin-bottom: -14px !important;
        border-radius: 0 0 16px 16px;
    }

    .footer-premium .footer-grid-premium {
        padding: 0 18px 22px;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 22px 16px;
    }

    .footer-premium .footer-brand-column {
        grid-template-columns: 1fr;
        gap: 12px;
        text-align: left;
    }

    .footer-premium .footer-logo-img {
        max-width: none;
        height: 35px;
    }

    .footer-premium .footer-brand-description {
        max-width: 390px;
        text-align: left;
        font-size: 0.73rem;
    }

    .footer-premium .footer-social-premium {
        justify-content: flex-start;
    }

    .footer-premium .footer-links-column:nth-of-type(4) {
        grid-column: 1 / -1;
    }

    .footer-premium .footer-links-column:nth-of-type(4) .footer-links-list {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        column-gap: 18px;
    }

    .footer-premium .footer-offices-column {
        grid-template-columns: 1fr;
    }

    .footer-premium .footer-bottom-container {
        padding: 0 18px;
        flex-direction: column;
        text-align: center;
        gap: 5px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .footer-premium::before,
    .footer-premium .footer-background-animation::before,
    .footer-premium .footer-background-animation::after,
    .footer-premium .footer-grid-pattern,
    .footer-premium .footer-glow,
    .footer-premium .footer-star {
        animation: none;
    }
}
