
.tslh-directory { margin:1.5rem 0; }
.tslh-section { margin:0 0 2.25rem; }
.tslh-section__heading {
    margin:0 0 1rem;
    padding-bottom:.45rem;
    border-bottom:3px solid var(--wp--preset--color--yellow,#ffd400);
}
.tslh-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:1.1rem;
}
.tslh-link-card {
    display:flex;
    flex-direction:column;
    min-width:0;
    overflow:hidden;
    border:1px solid rgba(0,0,0,.18);
    border-radius:10px;
    background:#111;
    color:#fff;
    box-shadow:0 3px 12px rgba(0,0,0,.06);
}
.tslh-link-card.has-priority {
    border:2px solid var(--wp--preset--color--yellow,#ffd400);
    box-shadow:0 5px 18px rgba(0,0,0,.12);
}
.tslh-link-card__image {
    aspect-ratio:16/9;
    overflow:hidden;
    background:#e9e9e9;
}
.tslh-link-card__image img {
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
}
.tslh-link-card__body {
    display:flex;
    flex:1;
    flex-direction:column;
    padding:1rem;
}
.tslh-badge {
    align-self:flex-start;
    margin:0 0 .65rem;
    padding:.3rem .55rem;
    border-radius:999px;
    background:var(--wp--preset--color--yellow,#ffd400);
    color:#111;
    font-size:.75rem;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.055em;
}
.tslh-link-card__title {
    margin:.05rem 0 .5rem;
    line-height:1.18;
    color:#fff;
}
.tslh-link-card__note {
    margin:.05rem 0 .55rem;
    font-weight:750;
    color:#ffd400;
}
.tslh-link-card__description {
    margin:.05rem 0 .85rem;
    color:#f2f2f2;
}
.tslh-link-card__affiliate {
    margin:auto 0 .6rem;
    font-size:.8rem;
    font-weight:700;
    color:#d7d7d7;
    opacity:.9;
}
.tslh-link-card__action { margin:auto 0 0; }
.tslh-link-card__action a {
    display:inline-block;
    padding:.65rem .9rem;
    border-radius:5px;
    background:#ffd400;
    color:#111 !important;
    font-weight:800;
    text-decoration:none !important;
}
.tslh-link-card__action a:hover,
.tslh-link-card__action a:focus {
    background:#fff;
    color:#111 !important;
}
.tslh-filter {
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:.6rem .8rem;
    margin:0 0 1.15rem;
    padding:.8rem 1rem;
    border-left:4px solid var(--wp--preset--color--yellow,#ffd400);
    background:rgba(127,127,127,.08);
}
.tslh-filter__select { min-width:min(320px,100%); }
.tslh-filter__note { font-size:.9rem; opacity:.75; }
.tslh-category-group { margin:0 0 1.5rem; }
.tslh-category-group__heading { margin:0 0 .8rem; }
.tslh-affiliate-disclosure {
    margin:-.6rem 0 2rem;
    padding:.8rem 1rem;
    border-left:4px solid var(--wp--preset--color--yellow,#ffd400);
    background:rgba(127,127,127,.08);
}
.tslh-empty { padding:1rem; border-left:4px solid #ffd400; background:#f6f7f7; }
@media (max-width:960px) {
    .tslh-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:620px) {
    .tslh-grid { grid-template-columns:1fr; }
    .tslh-filter { align-items:stretch; flex-direction:column; }
    .tslh-filter__select { width:100%; min-width:0; }
}


.tslh-filter__group {
    display:flex;
    align-items:center;
    gap:.55rem;
}
.tslh-pagination {
    display:flex;
    align-items:center;
    justify-content:center;
    flex-wrap:wrap;
    gap:.45rem;
    margin:1.25rem 0 0;
}
.tslh-pagination[hidden] {
    display:none !important;
}
.tslh-pagination__pages {
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:.35rem;
}
.tslh-pagination__button {
    min-width:2.4rem;
    min-height:2.4rem;
    padding:.45rem .7rem;
    border:1px solid #111;
    border-radius:5px;
    background:#111;
    color:#ffd400;
    font:inherit;
    font-weight:800;
    cursor:pointer;
}
.tslh-pagination__button:hover,
.tslh-pagination__button:focus,
.tslh-pagination__button.is-current {
    background:#ffd400;
    color:#111;
}
.tslh-pagination__button:disabled {
    opacity:.4;
    cursor:not-allowed;
}
@media (max-width:620px) {
    .tslh-filter__group {
        width:100%;
        flex-direction:column;
        align-items:stretch;
    }
    .tslh-pagination {
        justify-content:flex-start;
    }
}


/*
 * Pagination visibility safeguard.
 * The Links cards are flex containers, so explicitly enforce the HTML
 * hidden attribute after all card/view display declarations.
 */
.tslh-view[hidden],
.tslh-link-card[hidden],
.tslh-category-group[hidden] {
    display:none !important;
}
