.ic-v2-footer {
    width: 100%;
    padding: 0;
    background: var(--color-v2-page);
    color: var(--color-v2-text);
}

.ic-v2-footer__inner {
    width: min(1344px, calc(100% - 96px));
    margin: 0 auto;
    padding: 0 22px 26px;
    border-inline: 1px solid var(--color-v2-line);
}

.ic-v2-footer__rule {
    width: 100%;
    height: 1px;
    background: var(--color-v2-line);
}

.ic-v2-footer__directory {
    display: grid;
    grid-template-columns: repeat(4, minmax(120px, 1fr)) minmax(170px, 1.15fr);
    gap: clamp(28px, 4vw, 64px);
    padding: 58px 0 44px;
}

.ic-v2-footer__group {
    display: flex;
    align-items: flex-start;
    flex-direction: column;
    gap: 10px;
}

.ic-v2-footer__group h2,
.ic-v2-footer__group a,
.ic-v2-footer__group span,
.ic-v2-footer__bottom {
    font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
}

.ic-v2-footer__group h2 {
    margin: 0 0 4px;
    color: var(--color-v2-text);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.12em;
    line-height: 1.4;
    text-transform: uppercase;
}

.ic-v2-footer__group a,
.ic-v2-footer__group span {
    color: var(--color-v2-text-faint);
    font-size: 10px;
    font-weight: 500;
    letter-spacing: 0.08em;
    line-height: 1.5;
    text-decoration: none;
    text-transform: uppercase;
    transition: color 150ms ease;
}

.ic-v2-footer__group a:hover,
.ic-v2-footer__group a:focus-visible {
    color: var(--color-v2-text);
    outline: none;
}

.ic-v2-footer__group a:focus-visible,
.ic-v2-footer__brand:focus-visible,
.ic-v2-footer__bottom a:focus-visible {
    outline: 3px solid var(--color-v2-focus-ring);
    outline-offset: 4px;
}

.ic-v2-footer__group small {
    display: block;
    margin-top: 1px;
    color: var(--color-v2-accent-text);
    font: inherit;
    font-size: 8px;
}

.ic-v2-footer__brand {
    width: 100%;
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
}

.ic-v2-footer__brand img {
    width: min(190px, 100%);
    height: auto;
    max-height: 88px;
    object-fit: contain;
    object-position: left top;
}

.ic-v2-footer__bottom {
    min-height: 62px;
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: end;
    gap: 28px;
    color: var(--color-v2-text-faint);
    font-size: 9px;
    letter-spacing: 0.06em;
    line-height: 1.5;
    text-transform: uppercase;
}

.ic-v2-footer__bottom p {
    margin: 0;
    color: var(--color-v2-text-soft);
    text-align: center;
}

.ic-v2-footer__bottom a {
    justify-self: end;
    color: inherit;
    text-decoration: none;
    text-transform: lowercase;
    transition: color 150ms ease;
}

.ic-v2-footer__bottom a:hover {
    color: var(--color-v2-text);
}

html[data-theme="dark"] .ic-v2-footer__brand img {
    filter: invert(1) grayscale(1) brightness(1.8);
}

@media (max-width: 1120px) {
    .ic-v2-footer__inner {
        width: calc(100% - 32px);
        padding-inline: 15px;
    }
}

@media (max-width: 940px) {
    .ic-v2-footer__directory {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .ic-v2-footer__brand {
        grid-column: 1 / -1;
        grid-row: 1;
        justify-content: flex-start;
        padding-bottom: 18px;
    }

    .ic-v2-footer__brand img {
        width: 170px;
        object-position: left top;
    }
}

@media (max-width: 620px) {
    .ic-v2-footer {
        padding: 0;
    }

    .ic-v2-footer__directory {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 42px 24px;
        padding: 42px 0 38px;
    }

    .ic-v2-footer__brand {
        padding-bottom: 8px;
    }

    .ic-v2-footer__bottom {
        min-height: 0;
        grid-template-columns: 1fr;
        align-items: start;
        gap: 8px;
    }

    .ic-v2-footer__bottom p {
        text-align: left;
    }

    .ic-v2-footer__bottom a {
        justify-self: start;
    }
}
