.site-footer.ft {
    --ft-bg: #f4f7fb;
    --ft-text: #3d4e62;
    --ft-strong: #122033;
    --ft-muted: #6b7c8e;
    --ft-line: rgba(15, 23, 42, .08);
    --ft-chip: rgba(15, 23, 42, .06);
    --ft-icon: #111111;
    background: var(--ft-bg);
    color: var(--ft-text);
    font-size: .92rem;
}
[data-bs-theme="dark"] .site-footer.ft {
    --ft-bg: #071525;
    --ft-text: #c5d2e0;
    --ft-strong: #ffffff;
    --ft-muted: #8ea0b4;
    --ft-line: rgba(255, 255, 255, .08);
    --ft-chip: rgba(255, 255, 255, .06);
    --ft-icon: #ffffff;
}
.site-footer.ft a { color: inherit; text-decoration: none; }
.site-footer.ft a:hover { color: var(--ft-strong); }
.ft-main { padding: 3.5rem 0 2.75rem; }
.ft-grid {
    display: grid;
    grid-template-columns: minmax(15rem, 18.5rem) repeat(3, minmax(9rem, 1fr));
    column-gap: clamp(3rem, 5vw, 5.5rem);
    row-gap: 3rem;
    align-items: start;
}
.ft-logo { height: 28px; width: auto; }
.ft-brand-name { font-weight: 700; font-size: 1.35rem; letter-spacing: -.03em; color: var(--ft-strong); }
.ft-blurb { max-width: 28rem; color: var(--ft-muted); font-size: .84rem; line-height: 1.55; margin: 1rem 0 1.15rem; }
.ft-contacts { display: grid; gap: .7rem; margin-bottom: 1.15rem; }
.ft-contact {
    display: flex;
    align-items: center;
    gap: .75rem;
    min-width: 0;
}
.ft-contact-ico {
    width: 2.35rem;
    height: 2.35rem;
    border-radius: .7rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--ft-chip);
    color: var(--ft-strong);
    flex: 0 0 auto;
}
.ft-contact-label {
    display: block;
    font-size: .62rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--ft-muted);
    line-height: 1.2;
}
.ft-contact-value { display: block; color: var(--ft-strong); font-size: .92rem; font-weight: 600; }
.ft-social { display: flex; gap: .45rem; margin-bottom: 1rem; }
.ft-social a {
    width: 2.15rem;
    height: 2.15rem;
    border-radius: .55rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--ft-chip);
    color: var(--ft-strong);
}
.ft-social a:hover { color: var(--ft-strong); }
.ft-tools { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
.ft-heading {
    margin: 0 0 .85rem;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--ft-muted);
}
.ft-links { display: grid; gap: .7rem; }
.ft-links a { color: var(--ft-text); font-size: .875rem; font-weight: 400; }
.ft-links a:hover { color: var(--ft-strong); }
.ft-sub { margin-top: 2.75rem; }
.ft-rule { border: 0; border-top: 1px solid var(--ft-line); margin: 0; }
.ft-legal { padding: 1.15rem 0 1.65rem; text-align: center; }
.ft-legal p { max-width: 52rem; margin: 0 auto .85rem; color: var(--ft-muted); font-size: .78rem; line-height: 1.55; }
.ft-legal-links { display: flex; flex-wrap: wrap; justify-content: center; gap: .35rem 1.1rem; }
.ft-legal-links a { color: var(--ft-text); font-size: .84rem; }
.ft-base {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 0 1.25rem;
}
.ft-base-brand { display: flex; align-items: center; gap: .7rem; min-width: 0; }
.ft-base-copy { display: flex; flex-direction: column; gap: .12rem; min-width: 0; }
.ft-fingerprint {
    color: var(--ft-icon);
    font-size: 1.55rem;
    line-height: 1;
    flex: 0 0 auto;
}
.ft-tagline { color: var(--ft-strong); font-size: .92rem; font-weight: 600; line-height: 1.2; }
.ft-copy { display: block; color: var(--ft-muted); font-size: .7rem; line-height: 1.2; }
.ft-base-links { display: flex; flex-wrap: wrap; align-items: center; gap: .85rem 1.1rem; margin-left: auto; }
.ft-base-links a { color: var(--ft-text); font-size: .75rem; }
@media (max-width: 991.98px) {
    .ft-grid { grid-template-columns: 1fr 1fr; }
    .ft-brand { grid-column: 1 / -1; }
}
@media (max-width: 575.98px) {
    .ft-grid { grid-template-columns: 1fr; }
    .ft-base { align-items: flex-start; }
    .ft-base-links { margin-left: 0; }
}
