/* Reserve the final mobile card footprint before asynchronous content arrives. */
@media (max-width: 767px) {
    body.unified-page #infoCardsSection #mobileInfoPrimary > :is(
        #newsCard,
        #stockCard,
        #bidWorkCard
    ) {
        flex: 0 0 auto !important;
    }

    body.unified-page #infoCardsSection #newsContent.info-card-body {
        min-height: 133px !important;
    }

    body.unified-page #infoCardsSection #stockContent.info-card-body {
        min-height: 93px !important;
    }

    body.unified-page #infoCardsSection #bidWorkContent.info-card-body {
        min-height: 140px !important;
    }

    body.unified-page #infoCardsSection #bidWorkContent .bid-work-row {
        min-height: 44px !important;
        box-sizing: border-box;
    }

    body.unified-page #infoCardsSection .info-card-loading {
        display: grid;
        align-content: center;
        gap: 7px;
        min-height: inherit;
        padding: 8px 2px;
        box-sizing: border-box;
    }

    body.unified-page #infoCardsSection .info-card-loading-label {
        color: #64748b;
        font-size: 0.7rem;
        font-weight: 600;
        line-height: 1.2;
    }

    body.unified-page #infoCardsSection .info-card-loading-lines {
        display: grid;
        gap: 6px;
    }

    body.unified-page #infoCardsSection .info-card-loading-lines > span {
        display: block;
        width: 100%;
        height: 16px;
        border-radius: 6px;
        background: linear-gradient(90deg, #eef2f7 0%, #f8fafc 48%, #eef2f7 100%);
        animation: info-card-loading-pulse 1.1s ease-in-out infinite alternate;
    }

    body.unified-page #infoCardsSection .info-card-loading-lines > span:nth-child(2) {
        width: 86%;
    }

    body.unified-page #infoCardsSection .info-card-loading-lines > span:nth-child(3) {
        width: 93%;
    }

    body.unified-page #infoCardsSection .info-card-loading--stock .info-card-loading-lines {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 5px;
    }

    body.unified-page #infoCardsSection .info-card-loading--stock .info-card-loading-lines > span {
        width: 100%;
        height: 24px;
    }

    @keyframes info-card-loading-pulse {
        from { opacity: 0.52; }
        to { opacity: 1; }
    }
}

@media (max-width: 767px) and (prefers-reduced-motion: reduce) {
    body.unified-page #infoCardsSection .info-card-loading-lines > span {
        animation: none;
    }
}
