/* SphereNexus v1.9 — mobile-first category grid, robust footer accordions and responsive polish. */

/* Prevent third-party/cache CSS from causing page-wide horizontal overflow. */
html,
body {
    max-width: 100%;
    overflow-x: clip;
}

img,
video,
iframe,
embed,
object {
    max-width: 100%;
}

/* Footer controls are headings on desktop and real accordion buttons on mobile. */
.footer-toggle:disabled {
    opacity: 1;
    cursor: default;
}

@media (max-width: 980px) {
    .sn-container {
        width: min(calc(100% - 32px), var(--sn-container));
    }

    .content-section {
        padding-block: 22px;
    }

    .section-heading {
        gap: 14px;
    }
}

@media (max-width: 760px) {
    .sn-container {
        width: min(calc(100% - 24px), var(--sn-container));
    }

    /* Homepage categories: exactly two cards in each row. */
    .spherenexus-front-page .category-ribbon,
    .spherenexus-front-page .category-ribbon--v16,
    .category-ribbon.category-ribbon--v16 {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 9px !important;
        width: 100%;
        margin-top: 14px;
        padding: 9px !important;
        overflow: visible !important;
        border-radius: 14px;
        scroll-snap-type: none !important;
    }

    .spherenexus-front-page .category-ribbon__item,
    .category-ribbon--v16 .category-ribbon__item {
        min-width: 0 !important;
        min-height: 88px;
        padding: 11px 8px !important;
        gap: 7px;
        border: 1px solid #e1e8ed !important;
        border-radius: 8px 15px 8px 15px;
        background: #fff;
        box-shadow: 0 7px 20px rgba(7, 27, 49, .045);
        scroll-snap-align: none !important;
    }

    .spherenexus-front-page .category-ribbon__item:last-child,
    .category-ribbon--v16 .category-ribbon__item:last-child {
        grid-column: 1 / -1;
        min-height: 72px;
        flex-direction: row;
    }

    .spherenexus-front-page .category-ribbon__icon .sn-icon,
    .category-ribbon--v16 .category-ribbon__icon .sn-icon {
        width: 25px;
        height: 25px;
    }

    .spherenexus-front-page .category-ribbon__item > span:last-child,
    .category-ribbon--v16 .category-ribbon__item > span:last-child {
        font-size: 10px;
        line-height: 1.35;
    }

    /* Compact and predictable mobile section layout. */
    .content-section {
        padding-block: 18px;
    }

    .section-heading,
    .category-heading {
        align-items: flex-start;
        gap: 10px;
        margin-bottom: 14px;
    }

    .section-heading h2,
    .category-heading h2 {
        font-size: 18px !important;
        line-height: 1.35;
    }

    .section-heading > a {
        flex: 0 0 auto;
        padding-top: 4px;
        font-size: 10px;
    }

    .card-grid--five,
    .category-card-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 18px 11px !important;
    }

    .story-card,
    .story-card__content,
    .story-card__title,
    .story-card__media {
        min-width: 0;
    }

    .story-card__title {
        font-size: 13px !important;
        line-height: 1.4;
    }

    .story-card__media {
        border-radius: 6px 14px 6px 14px;
    }

    /* Keep hero and supporting cards inside the viewport. */
    .sn-hero-v16-grid,
    .sn-hero-v16-featured,
    .sn-hero-v16-side,
    .sn-hero-v16-side-card {
        min-width: 0;
        max-width: 100%;
    }

    .sn-hero-v16-featured {
        min-height: 510px;
    }

    .sn-hero-v16-slide {
        grid-template-rows: 210px minmax(0, 1fr);
    }

    .sn-hero-v16-slide__content {
        padding: 21px 18px 72px;
    }

    .sn-hero-v16-title {
        font-size: 21px !important;
    }

    .sn-hero-v16-side {
        gap: 9px;
    }

    /* Footer mobile accordions: clear plus/minus and reliable open state. */
    .footer-grid--ultra {
        display: block !important;
        padding-bottom: 25px;
    }

    .footer-brand--ultra {
        margin-bottom: 25px;
    }

    .footer-accordion {
        margin: 0;
        border-top: 1px solid var(--sn-line);
    }

    .footer-accordion:last-child {
        border-bottom: 1px solid var(--sn-line);
    }

    .footer-toggle,
    .footer-toggle:disabled {
        display: flex !important;
        align-items: center;
        justify-content: space-between;
        width: 100%;
        min-height: 52px;
        padding: 0 2px !important;
        pointer-events: auto !important;
        cursor: pointer;
        color: var(--sn-navy);
        font-size: 14px !important;
        font-weight: 600 !important;
    }

    .footer-toggle:not(:disabled):active {
        color: var(--sn-teal-dark);
    }

    .footer-toggle__icon {
        position: relative;
        display: block !important;
        width: 28px;
        height: 28px;
        flex: 0 0 28px;
        border: 1px solid #d9e6e8;
        border-radius: 8px 12px 8px 12px;
        background: #fff;
    }

    .footer-toggle__icon::before,
    .footer-toggle__icon::after {
        content: "";
        position: absolute;
        left: 7px;
        right: 7px;
        top: 13px;
        height: 1.5px;
        border-radius: 999px;
        background: var(--sn-teal-dark);
        transition: transform .22s ease;
    }

    .footer-toggle__icon::after {
        transform: rotate(90deg);
    }

    .footer-accordion.is-open .footer-toggle__icon::after {
        transform: rotate(0deg);
    }

    .footer-panel {
        display: block !important;
        max-height: 0;
        margin: 0 !important;
        padding: 0 !important;
        overflow: hidden;
        visibility: hidden;
        opacity: 0;
        transition: max-height .28s ease, opacity .2s ease, padding .28s ease, visibility 0s linear .28s;
    }

    .footer-accordion.is-open .footer-panel {
        max-height: 420px;
        padding: 1px 0 19px !important;
        visibility: visible;
        opacity: 1;
        transition: max-height .3s ease, opacity .22s ease, padding .3s ease, visibility 0s;
    }

    .footer-menu {
        gap: 8px;
    }

    .footer-menu a,
    .footer-contact-link,
    .footer-contact-column p {
        font-size: 12px;
    }

    .footer-bottom__inner {
        align-items: center !important;
        text-align: center;
    }
}

@media (max-width: 520px) {
    .card-grid--five,
    .category-card-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .story-card__media {
        aspect-ratio: 1.25 / 1;
    }

    .story-card__content {
        padding-top: 9px;
    }

    .story-card__category {
        font-size: 8px;
    }

    .post-meta {
        font-size: 9px;
    }
}

@media (max-width: 360px) {
    .sn-container {
        width: min(calc(100% - 18px), var(--sn-container));
    }

    .spherenexus-front-page .category-ribbon,
    .category-ribbon.category-ribbon--v16 {
        gap: 7px !important;
        padding: 7px !important;
    }

    .spherenexus-front-page .category-ribbon__item,
    .category-ribbon--v16 .category-ribbon__item {
        padding-inline: 6px !important;
    }
}
