
    /* ---- SEARCH BAR ---- */
    .sprott-search-bar {
        display: flex;
        align-items: center;
        gap: 0.5rem;
        margin-bottom: 1.5rem;
        max-width: 420px;
    }
    .sprott-search-input {
        flex: 1;
        font-size: 0.85rem;
        padding: 0.5rem 0.9rem;
        border: 1.5px solid #ddd;
        border-radius: 50px;
        outline: none;
        transition: border-color 0.15s ease;
    }
    .sprott-search-input:focus {
        border-color: #EF395B;
    }
    .sprott-search-btn {
        background: #EF395B;
        border: none;
        color: #fff;
        width: 36px;
        height: 36px;
        border-radius: 50%;
        display: flex;
        align-items: center;
        justify-content: center;
        cursor: pointer;
        flex-shrink: 0;
        transition: opacity 0.15s ease;
    }
    .sprott-search-btn:hover { opacity: 0.85; }
    .sprott-search-clear {
        background: transparent;
        border: none;
        font-size: 0.78rem;
        font-weight: 600;
        color: #888;
        cursor: pointer;
        text-decoration: underline;
        flex-shrink: 0;
    }
    .sprott-search-clear:hover { color: #EF395B; }
    .sprott-search-results-hdr {
        font-size: 0.85rem;
        color: #555;
        margin-bottom: 1rem;
        font-weight: 500;
    }

    /* ---- CATEGORY TAB BAR ---- */
    .sprott-cat-tabs {
        display: flex;
        flex-wrap: wrap;
        gap: 0.5rem;
        margin-bottom: 2rem;
    }
    .sprott-cat-tab {
        background: transparent;
        border: 1.5px solid #ccc;
        border-radius: 50px;
        padding: 0.4rem 1.1rem;
        font-size: 0.72rem;
        font-weight: 700;
        letter-spacing: 0.06em;
        text-transform: uppercase;
        cursor: pointer;
        transition: all 0.15s ease;
        color: #888;
        white-space: nowrap;
    }
    .sprott-cat-tab:hover {
        border-color: #EF395B;
        color: #EF395B;
    }
    .sprott-cat-tab.active {
        background: #EF395B;
        border-color: #EF395B;
        color: #fff;
    }

    /* ---- CATEGORY SECTIONS ---- */
    .sprott-category-sections {
        display: flex;
        flex-direction: column;
        gap: 3rem;
    }
    .sprott-category-section {
        display: flex;
        flex-direction: column;
        gap: 1.5rem;
    }
    .sprott-category-title {
        font-size: 1.1rem;
        font-weight: 700;
        letter-spacing: 0.08em;
        text-transform: uppercase;
        color: #ef435b;
        margin: 0;
    }
    .sprott-category-divider {
        height: 1.5px;
        background: #ef435b;
        margin-top: -0.75rem;
        margin-bottom: 0.25rem;
        opacity: 0.3;
    }

    /* ---- TYPE SECTIONS ---- */
    .sprott-type-section {
        display: flex;
        flex-direction: column;
        gap: 1rem;
    }
    .sprott-sections {
        display: flex;
        flex-direction: column;
        gap: 2rem;
    }
    .sprott-section {
        display: flex;
        flex-direction: column;
        gap: 1rem;
    }
    .sprott-type-hdr {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding-bottom: 0.5rem;
        border-bottom: 1.5px solid #eee;
    }
    .sprott-type-hdr-left {
        display: flex;
        align-items: center;
        gap: 0.5rem;
    }
    .sprott-type-icon { display: flex; align-items: center; }
    .sprott-svg-icon { display: flex; align-items: center; }
    .sprott-svg-icon svg {
        width: 20px;
        height: 20px;
        fill: #555;
    }
    .sprott-type-title-label {
        font-size: 1rem;
        font-weight: 600;
        color: #1a1a2e;
    }
    .sprott-access-badge {
        font-size: 0.7rem;
        font-weight: 600;
        padding: 0.2rem 0.6rem;
        border-radius: 20px;
        text-transform: uppercase;
        letter-spacing: 0.04em;
    }
    .sprott-access-subscribers { background: #EEEDFE; color: #3C3489; }
    .sprott-access-free        { background: #E1F5EE; color: #085041; }
    .sprott-access-premium     { background: #FAEEDA; color: #633806; }

    /* ---- GRID ---- */
    .sprott-resource-grid {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 1.25rem;
    }
    @media (max-width: 900px) {
        .sprott-resource-grid:not([data-columns="1"]) { grid-template-columns: repeat(2, 1fr); }
    }
    @media (max-width: 600px) {
        .sprott-resource-grid { grid-template-columns: 1fr !important; }
    }

    /* ---- CARD ---- */
    .sprott-resource-card {
        display: flex;
        flex-direction: column;
        background: #fff;
        border-radius: 6px;
        overflow: hidden;
        box-shadow: 0 1px 4px rgba(0,0,0,0.08);
        transition: box-shadow 0.2s ease, transform 0.2s ease;
    }
    .sprott-resource-card:hover {
        box-shadow: 0 4px 16px rgba(0,0,0,0.12);
        transform: translateY(-2px);
    }

    /* ---- THUMBNAIL ---- */
    .sprott-card-thumb {
        position: relative;
        width: 100%;
        background: #f0f0f0;
        overflow: hidden;
    }
    .sprott-card-thumb img {
        width: 100%;
        aspect-ratio: 16 / 9;
        object-fit: cover;
        display: block;
    }
    .sprott-card-thumb-placeholder {
        width: 100%;
        aspect-ratio: 16 / 9;
        background: #e8e8e8;
    }
    .sprott-video-wrap {
        position: relative;
        width: 100%;
        padding-bottom: 56.25%;
        height: 0;
        overflow: hidden;
    }
    .sprott-video-wrap iframe,
    .sprott-video-wrap object,
    .sprott-video-wrap embed,
    .sprott-video-wrap > div {
        position: absolute !important;
        top: 0 !important; left: 0 !important;
        width: 100% !important; height: 100% !important;
        border: 0;
    }

    /* ---- TYPE BADGE ---- */
    .sprott-type-badge {
        position: absolute;
        top: 0.5rem; left: 0.5rem;
        font-size: 0.7rem;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: 0.05em;
        padding: 0.2rem 0.5rem;
        border-radius: 3px;
        color: #fff;
        z-index: 1;
    }
    .sprott-type-video    { background: #1a1a2e; }
    .sprott-type-article  { background: #2563eb; }
    .sprott-type-template { background: #059669; }
    .sprott-type-ebook    { background: #d97706; }
    .sprott-type-module   { background: #7c3aed; }

    /* ---- CARD BODY ---- */
    .sprott-card-body {
        padding: 1rem;
        display: flex;
        flex-direction: column;
        gap: 0.5rem;
        flex: 1;
    }
    .sprott-card-title {
        font-size: 0.95rem;
        font-weight: 600;
        margin: 0;
        line-height: 1.4;
    }
    .sprott-card-title a { text-decoration: none; color: inherit; }
    .sprott-card-title a:hover { text-decoration: underline; }

    /* ---- LEARN MORE ---- */
    .sprott-learn-more {
        font-size: 0.8rem;
        font-weight: 600;
        text-decoration: underline;
        cursor: pointer;
        color: inherit;
        align-self: flex-start;
    }
    .sprott-learn-more:hover { opacity: 0.7; }
    .sprott-card-desc {
        font-size: 0.85rem;
        color: #555;
        line-height: 1.5;
    }
    .sprott-card-desc p { margin: 0 0 0.5rem; }

    /* ---- CARD FOOTER ---- */
    .sprott-card-footer {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: space-between;
        gap: 0.5rem;
        margin-top: auto;
        padding-top: 0.75rem;
        border-top: 1px solid #f0f0f0;
    }
    .sprott-card-cats {
        display: flex;
        flex-wrap: wrap;
        gap: 0.3rem;
    }
    .sprott-cat-tag {
        font-size: 0.7rem;
        font-weight: 600;
        color: #555;
        border: 1px solid #ccc;
        border-radius: 3px;
        padding: 0.15rem 0.5rem;
    }
    .sprott-card-cta {
        font-size: 0.8rem;
        color: #555;
        margin: 0;
        width: 100%;
    }
    .sprott-card-cta a { font-weight: 600; }
    .sprott-card-btn {
        display: inline-block;
        font-size: 0.8rem;
        font-weight: 600;
        padding: 0.4rem 0.9rem;
        border-radius: 4px;
        background: #ef435b;
        color: #fff !important;
        text-decoration: none;
        white-space: nowrap;
        flex-shrink: 0;
        transition: opacity 0.15s ease;
    }
    .sprott-card-btn:hover { opacity: 0.85; color: #fff !important; }
    .sprott-btn-contact { background: #1a1a2e; }
    .sprott-btn-learn   { background: #ef435b; }

    /* ---- MODULE CARD ---- */
    .sprott-module-card {
        padding: 1rem;
        border: 1px solid #e8e8e8;
    }
    .sprott-module-level {
        font-size: 0.7rem;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: 0.06em;
        color: #7c3aed;
        margin-bottom: 0.25rem;
    }
    .sprott-module-topics {
        font-size: 0.82rem;
        color: #555;
        line-height: 1.5;
    }
    .sprott-module-topics p { margin: 0; }
    .sprott-module-delivery {
        display: flex;
        flex-wrap: wrap;
        gap: 0.4rem;
        margin-top: 0.5rem;
    }
    .sprott-delivery-tag {
        font-size: 0.72rem;
        font-weight: 500;
        padding: 0.2rem 0.6rem;
        border-radius: 3px;
    }
    .sprott-delivery-live { background: #E1F5EE; color: #085041; }
    .sprott-delivery-soon { background: #F1EFE8; color: #5F5E5A; }
    .sprott-delivery-icon {
        display: inline-flex;
        align-items: center;
        vertical-align: middle;
        margin-right: 4px;
    }
    .sprott-delivery-icon svg {
        width: 14px;
        height: 14px;
    }
    .sprott-delivery-live .sprott-delivery-icon svg { fill: #085041; }
    .sprott-delivery-soon .sprott-delivery-icon svg { fill: #5F5E5A; }
    .sprott-module-btns {
        display: flex;
        flex-wrap: wrap;
        gap: 0.4rem;
        flex-shrink: 0;
    }

    /* ---- SECTIONS WRAP (AJAX container) ---- */
    .sprott-sections-wrap {
        transition: opacity 0.2s ease;
        min-height: 200px;
    }

    /* ---- MISC ---- */
    .sprott-no-resources { color: #888; font-style: italic; }