.site-footer,
#footer {
    border-top: 0;
    background: var(--tcn-color-graphite);
    color: var(--tcn-color-on-dark);
}

.site-footer a,
#footer a {
    color: inherit;
    text-decoration: none;
}

.site-footer a:hover,
.site-footer a:focus-visible,
#footer a:hover,
#footer a:focus-visible {
    color: var(--tcn-color-primary);
    text-decoration: underline;
}

.site-footer :where(h2, h3, h4),
#footer :where(h2, h3, h4) {
    color: var(--tcn-color-on-dark);
    font-size: 1rem;
}

.site-footer p,
#footer p,
.tcn-footer-enhanced p {
    color: rgba(247, 247, 242, 0.72);
}

.tcn-footer-enhanced {
    padding-block: var(--tcn-space-2xl);
    background: var(--tcn-color-graphite);
    color: var(--tcn-color-on-dark);
}

.tcn-footer-enhanced a {
    color: inherit;
    text-decoration: none;
}

.tcn-footer-enhanced a:hover,
.tcn-footer-enhanced a:focus-visible {
    color: var(--tcn-color-primary);
    text-decoration: underline;
}

.tcn-footer-enhanced__grid {
    display: grid;
    gap: var(--tcn-space-xl);
    width: min(100% - 2rem, var(--tcn-size-container));
    margin-inline: auto;
}

.tcn-footer-enhanced__brand {
    max-width: 24rem;
}

.tcn-footer-enhanced__title {
    margin-bottom: var(--tcn-space-sm);
    color: var(--tcn-color-on-dark);
    font-size: 1rem;
}

.tcn-footer-enhanced__list {
    display: grid;
    gap: var(--tcn-space-xs);
    padding: 0;
    margin: 0;
    list-style: none;
}

.tcn-footer-enhanced__bottom {
    display: flex;
    flex-wrap: wrap;
    gap: var(--tcn-space-sm) var(--tcn-space-lg);
    justify-content: space-between;
    width: min(100% - 2rem, var(--tcn-size-container));
    padding-top: var(--tcn-space-lg);
    margin: var(--tcn-space-xl) auto 0;
    border-top: var(--tcn-border-width) solid rgba(247, 247, 242, 0.16);
    color: rgba(247, 247, 242, 0.72);
    font-size: 0.875rem;
}
