/* Explain: App-specific layout utilities for page structure. - */
.page-shell {
    width: min(100% - 2rem, 1180px);
    margin-inline: auto;
}

.narrow-shell {
    width: min(100% - 2rem, 860px);
    margin-inline: auto;
}

.section-spacing {
    padding-block: clamp(3.8rem, 7vw, 6.5rem);
}

.featured-layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem;
}

.content-with-sidebar {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem;
    align-items: start;
}

.masonry-grid {
    column-count: 1;
    column-gap: 1.35rem;
}

.masonry-item {
    break-inside: avoid;
    margin-bottom: 1.35rem;
}

.article-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem;
}

.footer-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem;
}

@media (min-width: 768px) {
    .featured-layout {
        grid-template-columns: minmax(0, 1.08fr) minmax(280px, 0.92fr);
        gap: 2rem;
    }

    .masonry-grid {
        column-count: 2;
    }

    .footer-grid {
        grid-template-columns: minmax(0, 1.1fr) minmax(300px, 0.9fr);
    }
}

@media (min-width: 1024px) {
    .content-with-sidebar {
        grid-template-columns: minmax(0, 1fr) 320px;
        gap: 3rem;
    }

    .article-grid {
        grid-template-columns: minmax(0, 1fr) 300px;
        gap: 3rem;
    }
}