footer {
    background-color: #F2F3F5;
    line-height: 1.5;
}

/* ── Main layout ── */
.footer-main {
    padding-top: 40px !important;
    padding-bottom: 10px;
}

.footer-columns {
    display: flex;
    gap: 10px;
    justify-content: space-between;
}

.footer-column {
    flex: 1 1 200px;
    max-width: 300px;
    margin-bottom: 10px;
}

.footer-column.company-column {
    flex: 0 0 40%;
    max-width: 40%;
}

.footer-text {
    max-width: 380px;
}

/* ── Brand logo ── */
.footer-brand-logo {
    display: block;
    width: 100px;
    height: auto;
    margin-bottom: 20px;
}

/* ── Company info (left column) ── */
.footer-company-name {
    font-family: 'IBM Plex Sans', sans-serif;
    font-weight: 700;
    font-size: 15px;
    text-transform: uppercase;
    color: #0C1220;
    margin-bottom: 4px;
}

.footer-company-slogan {
    font-family: 'IBM Plex Sans', sans-serif;
    font-weight: 400;
    font-size: 15px;
    text-transform: uppercase;
    color: #6B7280;
    margin-bottom: 16px;
}

.footer-text {
    color: #6B7280;
    margin-bottom: 16px;
}

.footer-text p {
    font-weight: 400;
    font-size: 15px;
    margin-bottom: 0;
}

.footer-contact {
    font-style: normal;
    font-size: 15px;
    color: #6B7280;
    margin-bottom: 16px;
    line-height: 1.7;
}

.footer-contact a {
    color: #1187D4;
}

.footer-contact a:hover {
    color: #0e72b0;
}

.footer-socials {
    display: flex;
    gap: 10px;
    margin-bottom: 16px;
}

.footer-social-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    background-color: #0C1220;
    color: #fff;
    border-radius: 4px;
    font-size: 18px;
    text-decoration: none;
    transition: background-color 0.2s;
}

.footer-social-icon:hover {
    background-color: #1187D4;
    color: #fff;
}

.footer-copyright-bar {
    border-top: 1px solid #E4E5E8;
    padding-top: 15px !important;
    padding-bottom: 15px !important;
}

.footer-copyright {
    font-size: 14px;
    color: #9CA3AF;
    margin-bottom: 0;
}

/* ── Nav columns (right side) ── */
.footer-links-group {
    display: flex;
    flex-wrap: wrap;
    gap: 1.5rem;
    flex: 1;
}

.footer-links-group .footer-column {
    flex: 1 1 150px;
    max-width: 200px;
}

/* Accordion heading styled as plain text on desktop */
.footer-column button.accordion {
    border: 0;
    padding: 0;
    background-color: transparent;
    cursor: default;
    color: #0C1220;
    font-family: 'JetBrains Mono', monospace;
    font-weight: 500;
    font-size: 16px;
    margin-bottom: 16px;
    width: 100%;
    text-align: left;
    pointer-events: none;
}

.footer-links-group .footer-column button.accordion::before {
    content: "/";
    font-family: 'JetBrains Mono', monospace;
    color: #1187D4;
    font-size: 0.9rem;
    font-weight: 400;
    margin-right: 6px;
}

footer button span.chevron {
    display: none;
}

/* Nav links always visible on desktop */
.footer-links-group .footer-column nav {
    display: block;
}

.footer-menu {
    list-style: none;
    padding: 0;
    margin: 0;
}

.footer-menu li {
    margin-bottom: 8px;
}

.footer-menu a {
    color: #6B7280;
    font-family: 'JetBrains Mono', monospace;
    font-size: 15px;
    text-decoration: none;
    display: flex;
    align-items: baseline;
    gap: 8px;
}

.footer-menu a::before {
    content: "//";
    font-family: 'JetBrains Mono', monospace;
    font-size: 0.72rem;
    color: #D4D6DA;
    flex-shrink: 0;
}

.footer-menu li.menu-spacer a::before {
    display: none;
}

.footer-menu a:hover {
    color: #1187D4 !important;
    text-decoration: none;
}

/* Placeholder links (href="#") hidden */
ul.footer-menu li a[href="#"] {
    pointer-events: none;
    cursor: default;
}

ul.footer-menu li.menu-spacer {
    margin-top: 32px;
}

ul.footer-menu li.menu-spacer a {
    display: block;
    font-size: 0;
    line-height: 0;
    height: 0;
    pointer-events: none;
}

/* Disclaimer column — no top heading, just links */
.footer-disclaimer button.accordion {
    display: none;
}

.footer-disclaimer nav,
.footer-links-group .footer-disclaimer nav {
    display: block;
    margin-top: 0;
}

/* General footer link colour */
footer a {
    color: #6B7280;
}

footer a:hover {
    color: #0C1220;
}

/* ── Full-width logo ── */
.footer-img {
    position: relative;
    width: 100%;
    overflow: hidden;
    padding-top: 35px;
}

.footer-img img,
.footer-img svg {
    width: 100%;
    height: auto;
    display: block;
}

/* ── Category page header ── */
.grey-bg {
    background-color: #FAFAF8;
    border-bottom: 1px solid #E4E5E8;
}

.grey-bg h1 {
    color: #0C1220;
}

/* ── Breadcrumbs ── */
.global-breadcrumb {
    background-color: #ECEEF1;
}

.global-breadcrumb .category-cards-section {
    padding-top: 5px !important;
    padding-bottom: 5px !important;
}

.global-breadcrumb a {
    color: #2A2F3A;
}

.global-breadcrumb a:hover {
    color: #1187D4;
}

.global-breadcrumb::after {
    background: none;
}

li.breadcrumb-item:last-child,
li.breadcrumb-item:last-child a {
    color: #1187D4;
}

li.breadcrumb-item:last-child a:hover {
    color: #0e72b0;
}

/* ── Wide screens ── */
@media (min-width: 1726px) {
    .footer-links-group {
        flex-wrap: nowrap;
        gap: 5rem;
    }
}

/* ── Mobile ── */
@media (max-width: 768px) {

    .footer-columns {
        flex-direction: column;
        gap: 0;
    }

    .footer-column.company-column {
        flex: 1 1 100%;
        max-width: 100%;
        padding: 5% 0;
    }

    .footer-text {
        width: auto;
    }

    .footer-links-group {
        display: flex !important;
        flex-direction: column;
        flex-wrap: nowrap;
        padding: 20px 0 0;
        gap: 0;
    }

    .footer-links-group .footer-column {
        flex: 1 1 auto;
        max-width: 100%;
        margin-bottom: 0;
        border-bottom: 1px solid #E4E5E8;
    }

    /* Accordion interactive on mobile */
    .footer-column button.accordion {
        padding: 10px 0;
        font-size: 16px;
        cursor: pointer;
        pointer-events: auto;
        margin-bottom: 0;
        transition: color 0.15s ease;
    }

    .footer-column button.accordion:hover,
    .footer-column button.accordion.active {
        color: #1187D4;
    }

    footer button span.chevron {
        display: inline;
        float: right;
    }

    .accordion.active .chevron i {
        transform: rotate(180deg);
    }

    /* Hide nav links until opened */
    .footer-links-group .footer-column nav {
        display: none;
    }

    .footer-links-group .footer-column nav.open {
        display: block;
        padding-bottom: 10px;
    }

    /* Disclaimer column on mobile */
    .footer-disclaimer button.accordion {
        display: none;
    }

    .footer-disclaimer nav {
        display: block;
    }

    .footer-img {
        padding: 10px;
    }

    .category-cards-section {
        padding: 15px 10px;
    }
}
