.panel-footer {
    --surface-foreground: var(--black);
    --surface-background: var(--white);
    --text: var(--white);

    color: var(--text);
    background: var(--surface-foreground);
    border-top: 6px solid var(--dark-gold);
}

.panel-footer .cta-container > div:not(:first-child) {
    position: relative;
}

.panel-footer .cta-container > div:not(:first-child)::before {
    content: '';
    pointer-events: none;
    position: absolute;
    left: 50%;
    top: 0;
    translate: -50% 0;
    display: block;
    width: calc(100% - var(--space-10));
    height: 2px;
    background-color: var(--gray-100);
}

@media (min-width: 64em) {
    .panel-footer .cta-container {
        display: flex;
        position: relative;
    }

    .panel-footer .cta-container > div {
        flex: 1 1 0;
    }

    .panel-footer .cta-container > div:not(:first-child)::before {
        left: 0;
        top: 50%;
        translate: 0 -50%;
        width: 2px;
        height: calc(100% - var(--space-10));
    }
}

.panel-footer .attributions {
    background-color: var(--surface-background);
    color: var(--black);
    border-top: 6px solid var(--dark-gold);
}

.panel-footer .footer-content-container,
.panel-footer .attribution-content-container {
    margin: 0 auto;
    padding: 0 var(--space-4);
    max-width: var(--width-base);
}

.panel-footer .footer-content-container {
    display: grid;
    gap: var(--space-4);
    padding-top: var(--space-5);
    background: bottom / contain no-repeat url(/includes/public/assets/shared/decorations/footer-bg-mobile.svg);
}

@media (min-width: 64em) {    
    .panel-footer .footer-content-container {
        grid-template-columns: minmax(min-content, 500px) auto minmax(min-content, 500px);
        text-align: left;
        padding-block: 53px 30px;
        background: bottom / 650px no-repeat url(/includes/public/assets/shared/decorations/footer-bg.svg) var(--surface-foreground);
    }  
}

.panel-footer .contentRender_name_plugins_core_textbox {
    margin: 0;
    padding: 0;
    max-width: none;
}

.panel-footer .client-details {
    display: grid;
    grid-auto-rows: min-content;
    gap: var(--space-6);
    place-items: center;

    .partners {
        display: grid;
        grid-template-rows: 1fr 1fr;
        grid-template-columns: 1fr 1fr;
        place-items: center;
        gap: var(--space-5);


        & >:first-of-type,
        &:nth-child(2) {
            width: 100%;
            display: flex;
            justify-content: center;

            .partner-logo {
                max-width: 176px;
            }
        }

        & >:not(:first-of-type) {
            opacity: 0.75;

            .partner-logo {
                max-width: 118px;
            }
        }
    }
}

.panel-footer .social-media {
    display: flex;
    align-items: center;
    justify-content: center;
    padding-block: 16px;
}

@media (min-width: 64em) {
    .panel-footer .footer-nav {
        grid-row: 2;
        grid-column: 1;
    }

    .panel-footer .client-details,
    .panel-footer .social-media {
        justify-content: flex-end;
        align-items: flex-end;
        grid-column: 3;
        padding: 0;
    }
    
    .panel-footer .client-details .partners {
        display: flex;
        align-items: flex-start;

        img {
            width: 100%;
        }

        & >:first-of-type {
            width: unset;
        }

        & >:not(:first-of-type) {
            padding-top: 10px;
        }
    }
}

.contentRender_name_plugins_common_logo_footer,
.panel-footer .logo-footer a {
    display: block;
    width: 192px;
}

.panel-footer .logo-footer {
    position: relative;
    padding-bottom: 16px;

    &::before {
        --decoration-height: 6px;
    
        content: '';
        position: absolute;
        bottom: calc(((var(--space-4) / 2) + (var(--decoration-height) / 2)) * -1); /* Half of content container gap + half height of the element, negatively positioned to sit in the middle of the gap */
        left: 50%;
        transform: translateX(-50%);
        width: 65px;
        height: var(--decoration-height);
        background: var(--gold);
    }
}

.panel-footer .logo-footer img {
    display: block;
    width: 100%;
    height: auto;
}

@media (min-width: 64em) {
    .contentRender_name_plugins_common_logo_footer,
    .panel-footer .logo-footer a {
        display: flex;
        width: 100%;
        justify-content: flex-end;
    }

    .panel-footer .logo-footer {
        padding-bottom: 40px;
    
        &::before {
            left: unset;
            transform: unset;
            right: 0;
       }
    }
}

.panel-footer .client-details p {
    font-size: var(--text-sm);
    line-height: var(--leading-snug);
}

.panel-footer .attribution-content-container {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    padding-top: var(--space-4);
    padding-bottom: var(--space-16);
    gap: var(--space-3);

    .text-wrapper,
    .logo-wrapper {
        display: grid;
        gap: var(--space-3);
        width: 100%;
    }

    .logo-wrapper {
        & > img {
            justify-self: center;
        }

        .made-by-sv {
            justify-self: end;
        }
    }
}

@media (min-width: 40em) {
    .panel-footer .attribution-content-container {
        display: flex;
        flex-direction: row;
        justify-content: space-between;
        width: 100%;
        row-gap: 8px;

        .text-wrapper {
            display: grid;
            gap: var(--space-3);
        }
        

        .logo-wrapper {
            display: flex;
            gap: var(--space-10);
            justify-content: flex-end;
        }
        

        .address {
            margin-bottom: var(--space-10);
            flex: 1 1 100%;

            & p {
                max-width: 532px;
                font-size: var(--text-sm);
            }
        }
    }
}

.panel-footer .attribution-content-container p {
    font-size: var(--text-sm);
    line-height: var(--leading-snug);
}

.panel-footer .made-by-sv {
    display: block;
    max-width: 180px;
    width: 100%;
    order: 3;
}

.panel-footer .made-by-sv img {
    display: block;
    width: 100%;
    max-width: 180px;
    height: auto;
}

/* Mobile Bottom Fixed Container */
.panel-footer .mobile-fixed {
    position: fixed;
    bottom: 0px;
    width: 100%;
    z-index: 9999;
}
