/* resources_grid shortcode: paginated grid using the same .sj-card markup/style as
   resources_slider and resources_explorer (base card CSS lives in the global
   "rss-slider-styles-refined" <style> block, reused here via the .rss-slider class). */

.sj-resources-grid {
    --sj-grid-purple: #83185A;
    --sj-grid-brown: #5B3814;
    --sj-grid-border: #d6c9a8;
    --sj-grid-columns: 4;
    margin: 24px 0;
    padding: 24px max(24px, calc((100vw - 1400px) / 2));
    box-sizing: border-box;
}

.sj-resources-grid .sj-resources-grid__grid {
    display: grid;
    grid-template-columns: repeat(var(--sj-grid-columns, 4), minmax(0, 1fr));
    justify-content: flex-start;
    gap: 32px;
    overflow: visible;
    width: 100%;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

.sj-resources-grid .sj-resources-grid__grid .sj-card {
    width: 100%;
    min-width: 0;
    max-width: none;
    height: 378px;
}

.sj-resources-grid .sj-resources-grid__grid:empty {
    display: none;
}

.sj-resources-grid__empty {
    color: var(--sj-grid-brown);
    font-family: 'Bogue Regular', "Times New Roman", serif;
    font-size: 20px;
    margin: 0 0 24px;
}

.sj-resources-grid.is-loading .sj-resources-grid__grid {
    opacity: 0.5;
    pointer-events: none;
    transition: opacity 0.15s ease;
}

.sj-resources-grid__debug {
    margin-top: 16px;
    padding: 10px 14px;
    background: #fff8e6;
    border: 1px dashed var(--sj-grid-border);
    border-radius: 8px;
    font-size: 13px;
    color: var(--sj-grid-brown);
}

/* Pagination */

.sj-resources-grid__pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    margin-top: 40px;
}

.sj-resources-grid__pagination.is-hidden {
    display: none;
}

.sj-resources-grid__pages {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
    justify-content: center;
}

.sj-resources-grid__nav {
    width: 40px;
    height: 40px;
    padding: 0;
    background: #fff;
    color: var(--sj-grid-purple);
    border: 1px solid var(--sj-grid-border);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: box-shadow 0.15s ease, transform 0.15s ease;
}

.sj-resources-grid__nav:hover:not(:disabled) {
    box-shadow: 0 4px 14px 0 rgba(0, 0, 0, 0.15);
}

.sj-resources-grid__nav:active:not(:disabled) {
    transform: scale(0.95);
}

.sj-resources-grid__nav:focus-visible {
    outline: 3px solid var(--sj-grid-brown);
    outline-offset: 2px;
}

.sj-resources-grid__nav:disabled {
    opacity: 0.3;
    cursor: default;
}

.sj-resources-grid__nav svg {
    width: 18px;
    height: 18px;
}

.sj-resources-grid__page {
    min-width: 40px;
    height: 40px;
    padding: 0 8px;
    background: #fff;
    color: var(--sj-grid-brown);
    border: 1px solid var(--sj-grid-border);
    border-radius: 50%;
    font-family: 'Bogue Regular', "Times New Roman", serif;
    font-size: 16px;
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.sj-resources-grid__page:hover {
    border-color: var(--sj-grid-purple);
    color: var(--sj-grid-purple);
}

.sj-resources-grid__page:focus-visible {
    outline: 3px solid var(--sj-grid-brown);
    outline-offset: 2px;
}

.sj-resources-grid__page.is-active {
    background: var(--sj-grid-purple);
    border-color: var(--sj-grid-purple);
    color: #fff;
    cursor: default;
}

.sj-resources-grid__ellipsis {
    color: var(--sj-grid-brown);
    padding: 0 4px;
}

@media (max-width: 980px) {
    .sj-resources-grid .sj-resources-grid__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 16px;
    }

    .sj-resources-grid .sj-resources-grid__grid .sj-card {
        height: 378px;
    }
}

@media (max-width: 600px) {
    .sj-resources-grid {
        padding: 16px;
    }

    .sj-resources-grid .sj-resources-grid__grid {
        grid-template-columns: 1fr;
    }

    .sj-resources-grid__pagination {
        gap: 8px;
    }
}
