@layer components {
    body > footer {
        background-color: var(--color--brand--90);
        border-top: solid var(--size--border) var(--color--border);

        & div.summary {
            display: flex;
            justify-content: space-between;

            & div.logo {
                padding: var(--space-m-new);
                border-right: solid var(--size--border) var(--color--border);
            }

            & label.footerToggle {
                grid-column: 4 / 5;
                text-align: right;
                display: flex;
                align-items: center;
                padding: var(--space-s);
                column-gap: var(--space-2xs);

                font-family: var(--font--title--family--xxsmall--all-caps);
                font-size: var(--font--title--size--xxsmall--all-caps);
                font-weight: var(--font--title--weight--xxsmall--all-caps);
                line-height: var(--font--title--line-height--xxsmall--all-caps);
                letter-spacing: var(--font--title--letter-spacing--xxsmall--all-caps);
                text-transform: var(--font--title--casing--xxsmall--all-caps);

                & > input[type=checkbox] {
                    appearance: none;
                    border: none;
                    background: none;
                    width: 1rem;
                    height: 1rem;

                    &:before {
                        content: "";
                        display: none;
                    }

                    &:checked:after {
                        mask-image: var(--icon--down);
                    }

                    &:after {
                        content: "";
                        background-color: var(--color--border);
                        mask-image: var(--icon--up);
                        mask-repeat: no-repeat;
                        mask-position: center center;
                        width: 1rem;
                        height: 1rem;
                    }
                }
            }
        }

        &:has(label > input[type=checkbox]:checked) div.main-footer,
        & div.main-footer.always-open {
            display: block;

            @media screen and (min-width: 1000px) {
                display: grid;
            }
        }

        & div.main-footer {
            border-top: solid var(--size--border) var(--color--border);
            display: none;

            & h4 {
                border-bottom: solid var(--size--border) var(--color--border);
                padding-bottom: var(--space-s);
                margin-bottom: var(--space-m-new);

                font-family: var(--font--title--family--xxsmall--all-caps);
                font-size: var(--font--title--size--xxsmall--all-caps);
                font-weight: var(--font--title--weight--xxsmall--all-caps);
                line-height: var(--font--title--line-height--xxsmall--all-caps);
                letter-spacing: var(--font--title--letter-spacing--xxsmall--all-caps);
                text-transform: var(--font--title--casing--xxsmall--all-caps);
            }

            & p {
                margin: var(--space-l);
                font-family: var(--font--text--family--medium);
                font-size: var(--font--text--size--medium);
                font-weight: var(--font--text--weight--medium);
                line-height: var(--font--text--line-height--medium);
                letter-spacing: var(--font--text--letter-spacing--medium);
                text-transform: var(--font--text--casing--medium);
            }

            & a {
                text-decoration: none;
            }

            & ul.links {
                list-style-type: none;

                & li {
                    font-family: var(--font--title--family--xxsmall);
                    font-size: var(--font--title--size--xxsmall);
                    font-weight: var(--font--title--weight--xxsmall);
                    line-height: var(--font--title--line-height--xxsmall);
                    letter-spacing: var(--font--title--letter-spacing--xxsmall);
                    text-transform: var(--font--title--casing--xxsmall);

                    border-bottom: solid var(--size--border) var(--color--brand--85);

                    & a {
                        display: block;
                        padding-block: var(--space-s);
                    }

                    &:first-of-type a {
                        display: block;
                        padding-top: 0;
                    }

                    &:last-of-type {
                        border-bottom: none;
                    }
                }
            }

            & div.message {
                & p {
                    max-width: 55rem;
                }
            }

            & ul.social {
                list-style-type: none;
                display: flex;
                align-items: center;
                column-gap: var(--space-s);

                & svg {
                    stroke: none;
                    fill: currentColor;
                }
            }

            & > div:not(:first-child) {
                padding: var(--space-m-new) var(--space-m); 
            }

            & div.contact {
                & dl {
                    display: grid;
                    grid-template-columns: auto 1fr;
                    border-bottom: solid var(--size--border) var(--color--border);
                    row-gap: var(--space-s);
                    column-gap: var(--space-m);
                    padding-bottom: var(--space-m-new);
                    margin-bottom: var(--space-s);

                    & div {
                        display: grid;
                        grid-template-columns: subgrid;
                        grid-column: span 2;
                        align-items: center;
                    }

                    & div:first-of-type {
                    }

                    & dt {
                        font-family: var(--font--title--family--xxsmall);
                        font-size: var(--font--title--size--xxsmall);
                        font-weight: var(--font--title--weight--xxsmall);
                        line-height: var(--font--title--line-height--xxsmall);
                        letter-spacing: var(--font--title--letter-spacing--xxsmall);
                        text-transform: var(--font--title--casing--xxsmall);
                    }

                    & dd {
                        font-family: var(--font--title--family--xxsmall);
                        font-size: var(--font--title--size--xxsmall);
                        font-weight: var(--font--title--weight--xxsmall);
                        line-height: var(--font--title--line-height--xxsmall);
                        letter-spacing: var(--font--title--letter-spacing--xxsmall);
                        text-transform: var(--font--title--casing--xxsmall);

                        /* TODO: Weight override */
                        font-weight: 500;
                    }
                }
            }
        }

        @media screen and (min-width: 1000px) {
            div.main-footer {
                grid-template-columns: 1fr auto auto;
                align-items: stretch;

                & div.message {
                    display: flex;
                    align-items: center;
                    justify-content: center;

                    & p {
                        font-family: var(--font--text--family--large);
                        font-size: var(--font--text--size--large);
                        font-weight: var(--font--text--weight--large);
                        line-height: var(--font--text--line-height--large);
                        letter-spacing: var(--font--text--letter-spacing--large);
                        text-transform: var(--font--text--casing--large);
                    }
                }

                & div.contact {
                    min-width: 23rem;
                    border-left: solid var(--size--border) var(--color--border);
                }

                & div.studioworks {
                    border-left: solid var(--size--border) var(--color--border);
                    min-width: 15rem;
                }
            }
        }
    }
}
