/* =========================================================
   HOME / 12 SOLUTION PARTNER BRANDS
   ========================================================= */
.kb-home-brands {
    background: var(--kb-white);
    overflow: hidden;
    padding: 58px 0 0;
}

.kb-home-brands__header {
    max-width: 1040px;
    margin-bottom: 34px;
}

.kb-home-brands__title {
    margin: 0;
    color: var(--kb-text);
    font-family: var(--kb-font);
    font-size: clamp(34px, 3.15vw, 52px);
    font-weight: 800;
    line-height: .98;
    letter-spacing: -.03em;
    text-transform: uppercase;
}

.kb-home-brands__intro {
    margin-top: 22px;
    color: #2e2e31;
    font-size: 18px;
    font-weight: 500;
    line-height: 1.38;
}

.kb-home-brands__body {
    display: grid;
    grid-template-columns: 34% 66%;
    align-items: stretch;
    min-height: 470px;
}

.kb-home-brands__nav {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 7px;
    padding: 5px 118px 20px 0;
}

.kb-home-brands__tab {
    position: relative;
    display: flex;
    align-items: center;
    width: 100%;
    min-height: 64px;
    margin: 0;
    padding: 8px 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    appearance: none;
    cursor: pointer;
    text-align: left;
}

.kb-home-brands__tab::after {
    content: '';
    position: absolute;
    top: 50%;
    left: calc(100% + 26px);
    width: 0;
    height: 3px;
    background: var(--kb-accent);
    transform: translateY(-50%);
    transition: width .25s ease;
}

.kb-home-brands__tab.is-active::after,
.kb-home-brands__tab:hover::after,
.kb-home-brands__tab:focus-visible::after {
    width: 118px;
}

.kb-home-brands__tab:focus-visible {
    outline: 2px solid var(--kb-primary);
    outline-offset: 4px;
}

.kb-home-brands__logo {
    display: block;
    width: auto;
    max-width: 190px;
    max-height: 54px;
    object-fit: contain;
    object-position: left center;
    filter: none;
    transition: transform .2s ease, opacity .2s ease;
}

.kb-home-brands__tab:not(.is-active) .kb-home-brands__logo {
    opacity: .88;
}

.kb-home-brands__tab:hover .kb-home-brands__logo,
.kb-home-brands__tab.is-active .kb-home-brands__logo {
    opacity: 1;
    transform: translateX(3px);
}

.kb-home-brands__logo-fallback {
    color: var(--kb-primary);
    font-size: 20px;
    font-weight: 700;
    line-height: 1.05;
}

.kb-home-brands__panel-shell {
    position: relative;
    width: calc(100% + max(0px, (100vw - var(--kb-container)) / 2));
    min-width: 0;
}

.kb-home-brands__panel {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 100%;
    background: var(--kb-accent);
    color: var(--kb-white);
    padding: 56px clamp(44px, 5vw, 92px);
}

.kb-home-brands__detail {
    width: min(100%, 650px);
    animation: kb-brand-panel-in .22s ease both;
}

.kb-home-brands__detail[hidden] {
    display: none !important;
}

@keyframes kb-brand-panel-in {
    from {
        opacity: 0;
        transform: translateY(7px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.kb-home-brands__brand-name {
    margin: 0 0 8px;
    color: var(--kb-white);
    font-size: clamp(30px, 2.4vw, 40px);
    font-weight: 700;
    line-height: 1;
}

.kb-home-brands__description {
    max-width: 610px;
    color: var(--kb-white);
    font-size: 18px;
    font-weight: 500;
    line-height: 1.5;
}

.kb-home-brands__visit {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
    min-width: 182px;
    margin-top: 24px;
    min-height: var(--kb-home-cta-height);
    padding: 8px 12px 7px;
    background: var(--kb-white);
    color: #34363a;
    font-size: 14px;
    font-weight: 600;
    line-height: 1;
    text-decoration: none;
    transition: transform .18s ease, background-color .18s ease;
}

.kb-home-brands__visit:hover,
.kb-home-brands__visit:focus-visible {
    background: #f4f4f4;
    color: #222326;
    transform: translateX(2px);
}

.kb-home-brands__visit-arrow {
    font-size: 20px;
    font-weight: 400;
    line-height: .7;
}

@media (max-width: 1080px) {
    .kb-home-brands__body {
        grid-template-columns: 36% 64%;
    }

    .kb-home-brands__nav {
        padding-right: 70px;
    }

    .kb-home-brands__tab.is-active::after,
    .kb-home-brands__tab:hover::after,
    .kb-home-brands__tab:focus-visible::after {
        width: 72px;
    }

    .kb-home-brands__tab::after {
        left: calc(100% + 14px);
    }

    .kb-home-brands__logo {
        max-width: 165px;
    }
}

@media (max-width: 820px) {
    .kb-home-brands {
        padding-top: 44px;
    }

    .kb-home-brands__header {
        margin-bottom: 24px;
    }

    .kb-home-brands__intro {
        margin-top: 14px;
        font-size: 15px;
        line-height: 1.4;
    }

    .kb-home-brands__body {
        display: grid;
        grid-template-columns: minmax(104px, 34%) minmax(0, 66%);
        align-items: stretch;
        min-height: 330px;
        gap: 0;
    }

    .kb-home-brands__nav {
        display: flex;
        flex-direction: column;
        justify-content: center;
        gap: 6px;
        min-width: 0;
        padding: 8px 12px 8px 0;
    }

    .kb-home-brands__tab {
        min-height: 44px;
        padding: 5px 0;
        border: 0;
    }

    .kb-home-brands__tab::after {
        display: none;
    }

    .kb-home-brands__logo {
        max-width: 104px;
        max-height: 34px;
        object-position: left center;
    }

    .kb-home-brands__logo-fallback {
        font-size: 14px;
    }

    .kb-home-brands__panel-shell {
        width: auto;
        min-width: 0;
        margin: 0;
    }

    .kb-home-brands__panel {
        min-height: 100%;
        padding: 28px 20px;
    }

    .kb-home-brands__brand-name {
        font-size: 24px;
    }

    .kb-home-brands__description {
        font-size: 14px;
        line-height: 1.45;
    }

    .kb-home-brands__visit {
        min-width: 0;
        width: 100%;
        max-width: 160px;
        min-height: 38px;
        margin-top: 18px;
        gap: 14px;
        padding: 8px 10px 7px;
        font-size: 12px;
    }
}

@media (max-width: 520px) {
    .kb-home-brands__body {
        grid-template-columns: minmax(92px, 32%) minmax(0, 68%);
        min-height: 300px;
    }

    .kb-home-brands__nav {
        gap: 3px;
        padding-right: 9px;
    }

    .kb-home-brands__tab {
        min-height: 40px;
    }

    .kb-home-brands__logo {
        max-width: 88px;
        max-height: 29px;
    }

    .kb-home-brands__panel {
        padding: 24px 14px;
    }

    .kb-home-brands__brand-name {
        font-size: 21px;
        line-height: 1.05;
    }

    .kb-home-brands__description {
        font-size: 13px;
        line-height: 1.4;
    }

    .kb-home-brands__visit {
        max-width: 138px;
        min-height: 36px;
        font-size: 11px;
    }
}
