/* ── Theme Catalogue ─────────────────────────────────────────────────────────*/

:root {
    --cat-card-bg:     #ffffff;
    --cat-border:      #e2e8f0;
    --cat-text:        #2c3e50;
    --cat-muted:       #5a6a7a;
    --cat-input-bg:    #ffffff;
    --cat-ghost-bg:    #edf2f7;
    --cat-ghost-hover: #e2e8f0;
}

[data-theme="dark"] {
    --cat-card-bg:     #1e2533;
    --cat-border:      #2f3a4d;
    --cat-text:        #e2e8f0;
    --cat-muted:       #a0aec0;
    --cat-input-bg:    #161c27;
    --cat-ghost-bg:    #2a3446;
    --cat-ghost-hover: #34405a;
}

.catalog-hero { margin-bottom: 2rem; }

.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}

.catalog-back {
    display: inline-block;
    margin-bottom: 1.25rem;
    font-weight: 600;
    color: var(--secondary-blue);
    text-decoration: none;
}
.catalog-back:hover { text-decoration: underline; }

.catalog-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    margin-bottom: 1.5rem;
}

.catalog-search { flex: 1; max-width: 420px; }

.catalog-search input {
    width: 100%;
    padding: .7rem 1rem;
    font: inherit;
    font-size: 1rem;
    color: var(--cat-text);
    background: var(--cat-input-bg);
    border: 2px solid var(--cat-border);
    border-radius: 10px;
}
.catalog-search input:focus-visible {
    outline: none;
    border-color: var(--secondary-blue);
    box-shadow: 0 0 0 3px rgba(58, 123, 211, .25);
}

.catalog-count { color: var(--cat-muted); font-size: .92rem; margin: 0; }

.catalog-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
    gap: 1.5rem;
    margin-bottom: 3rem;
}

.catalog-card {
    display: flex;
    flex-direction: column;
    background: var(--cat-card-bg);
    border: 2px solid var(--cat-border);
    border-radius: 14px;
    overflow: hidden;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.catalog-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 28px rgba(44, 62, 80, .14);
    border-color: #90cdf4;
}

.catalog-card-link {
    display: flex;
    flex-direction: column;
    flex: 1;
    color: inherit;
    text-decoration: none;
}
.catalog-card-link:focus-visible {
    outline: 3px solid var(--secondary-blue);
    outline-offset: -3px;
}

.catalog-swatch {
    position: relative;
    height: 140px;
}

.catalog-popular {
    position: absolute;
    top: .7rem;
    left: .7rem;
    padding: .2rem .6rem;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: #2c3e50;
    background: var(--primary-orange);
    border-radius: 20px;
}

.catalog-card-body { padding: 1rem 1.1rem .5rem; flex: 1; }

.catalog-card-title {
    margin: 0 0 .25rem;
    font-size: 1.15rem;
    color: var(--cat-text);
}

.catalog-card-desc {
    margin: 0 0 .6rem;
    font-size: .92rem;
    color: var(--cat-muted);
}

.catalog-card-best {
    margin: 0;
    font-size: .85rem;
    color: var(--cat-text);
    line-height: 1.45;
}
.catalog-card-best span {
    display: block;
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--cat-muted);
}

.catalog-card-actions {
    display: flex;
    gap: .5rem;
    padding: .75rem 1.1rem 1.1rem;
}

.catalog-btn {
    flex: 1;
    padding: .6rem .75rem;
    font: inherit;
    font-size: .88rem;
    font-weight: 600;
    text-align: center;
    text-decoration: none;
    border: none;
    border-radius: 8px;
    cursor: pointer;
    transition: background .15s;
}
.catalog-btn:focus-visible { outline: 3px solid #90cdf4; outline-offset: 2px; }

.catalog-btn--ghost { background: var(--cat-ghost-bg); color: var(--cat-text); }
.catalog-btn--ghost:hover { background: var(--cat-ghost-hover); }

.catalog-btn--primary { background: #2c5282; color: #fff; }
.catalog-btn--primary:hover { background: #1a365d; }

.catalog-empty {
    text-align: center;
    color: var(--cat-muted);
    margin: -1.5rem 0 3rem;
}

.catalog-custom {
    text-align: center;
    padding: 2.5rem 1.5rem;
    margin-bottom: 3rem;
    background: var(--cat-card-bg);
    border: 2px dashed var(--cat-border);
    border-radius: 16px;
}
.catalog-custom h2 { margin: 0 0 .5rem; color: var(--cat-text); }
.catalog-custom p  { margin: 0 auto 1.25rem; max-width: 520px; color: var(--cat-muted); }

@media (prefers-reduced-motion: reduce) {
    .catalog-card, .catalog-card:hover { transition: none; transform: none; }
}
