.catalog-listing-page{
    --catalog-primary:var(--sf-primary,#2563eb);
    --catalog-secondary:var(--sf-secondary,#0f172a);
    --catalog-surface:var(--sf-card-bg,#fff);
    --catalog-text:var(--sf-text,#0f172a);
    --catalog-muted:var(--sf-muted,#64748b);
    --catalog-border:var(--sf-border,#e5e7eb);
    --catalog-soft:var(--sf-soft,#f8fafc);
    padding:18px 0 54px;
    color:var(--catalog-text);
}

.catalog-title-row{
    margin:0 0 12px;
    padding:0 2px;
}

.catalog-title-row h1{
    margin:0;
    color:var(--catalog-secondary);
    font-family:var(--sf-heading-font,inherit);
    font-size:clamp(28px,3vw,38px);
    line-height:1.12;
    letter-spacing:-.04em;
}

.catalog-layout{
    display:grid;
    grid-template-columns:260px minmax(0,1fr);
    gap:20px;
    align-items:start;
}

.catalog-sidebar{
    position:sticky;
    top:94px;
    overflow:hidden;
    background:var(--catalog-surface);
    border:1px solid var(--catalog-border);
    border-radius:17px;
    box-shadow:0 7px 22px rgba(15,23,42,.04);
}

.catalog-sidebar__head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    padding:17px 18px;
    border-bottom:1px solid var(--catalog-border);
}

.catalog-sidebar__head strong{
    color:var(--catalog-secondary);
    font-size:16px;
    font-weight:850;
}

.catalog-sidebar__head a{
    color:var(--catalog-primary);
    font-size:12px;
    font-weight:800;
}

.catalog-filter-panel{display:block}
.catalog-filter-form{padding:17px}

.catalog-field{
    display:grid;
    gap:7px;
    margin-bottom:15px;
}

.catalog-field__label{
    color:var(--catalog-secondary);
    font-size:12px;
    font-weight:800;
}

.catalog-field input[type="text"],
.catalog-field input[type="number"],
.catalog-field select,
.catalog-sort select{
    width:100%;
    min-height:44px;
    padding:10px 12px;
    color:var(--catalog-text);
    background:var(--catalog-surface);
    border:1px solid var(--catalog-border);
    border-radius:10px;
    outline:none;
    font-size:13px;
    font-weight:650;
    transition:border-color .16s ease,box-shadow .16s ease;
}

.catalog-field input:focus,
.catalog-field select:focus,
.catalog-sort select:focus{
    border-color:var(--catalog-primary);
    box-shadow:0 0 0 3px color-mix(in srgb,var(--catalog-primary) 12%,transparent);
}

.catalog-price-fields{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
}

.catalog-check{
    display:flex;
    align-items:center;
    gap:9px;
    min-height:42px;
    padding:9px 10px;
    color:var(--catalog-text);
    background:var(--catalog-soft);
    border:1px solid var(--catalog-border);
    border-radius:10px;
    font-size:13px;
    font-weight:700;
    cursor:pointer;
}

.catalog-check + .catalog-check{margin-top:7px}

.catalog-check input{
    width:17px;
    height:17px;
    margin:0;
    accent-color:var(--catalog-primary);
}

.catalog-filter-actions{
    display:grid;
    grid-template-columns:1fr auto;
    gap:8px;
    margin-top:17px;
}

.catalog-submit,
.catalog-reset{
    min-height:43px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:10px;
    font-size:13px;
    font-weight:800;
}

.catalog-submit{
    border:1px solid var(--catalog-primary);
    color:#fff;
    background:var(--catalog-primary);
}

.catalog-reset{
    padding:0 12px;
    color:var(--catalog-secondary);
    background:var(--catalog-soft);
    border:1px solid var(--catalog-border);
}

.catalog-main{min-width:0}

.catalog-desktop-toolbar,
.catalog-mobile-toolbar{
    align-items:center;
    justify-content:space-between;
    gap:12px;
    min-height:62px;
    padding:10px 12px 10px 16px;
    background:var(--catalog-surface);
    border:1px solid var(--catalog-border);
    border-radius:15px;
    box-shadow:0 7px 22px rgba(15,23,42,.035);
}

.catalog-desktop-toolbar{
    display:flex;
    margin-bottom:14px;
}

.catalog-mobile-toolbar{
    display:none;
    margin-bottom:14px;
}

.catalog-result-summary strong{
    display:block;
    color:var(--catalog-secondary);
    font-size:15px;
    font-weight:850;
}

.catalog-result-summary span{
    display:block;
    margin-top:2px;
    color:var(--catalog-muted);
    font-size:12px;
    font-weight:650;
}

.catalog-sort{
    display:flex;
    align-items:center;
    gap:8px;
}

.catalog-sort label{
    color:var(--catalog-muted);
    font-size:12px;
    font-weight:750;
    white-space:nowrap;
}

.catalog-sort select{min-width:180px}

.catalog-filter-toggle{
    min-height:44px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    padding:9px 12px;
    color:var(--catalog-secondary);
    background:var(--catalog-soft);
    border:1px solid var(--catalog-border);
    border-radius:10px;
    font-size:13px;
    font-weight:800;
}

.catalog-filter-toggle svg{
    width:18px;
    height:18px;
}

.catalog-filter-count{
    min-width:20px;
    height:20px;
    display:inline-grid;
    place-items:center;
    padding:0 5px;
    color:#fff;
    background:var(--catalog-primary);
    border-radius:999px;
    font-size:10px;
    line-height:1;
}

.catalog-product-grid{
    align-items:stretch;
}

/* Catalog-page grid only. Product card styling remains global and unchanged. */
.catalog-listing-page .catalog-main .catalog-product-grid{
    grid-template-columns:repeat(4,minmax(0,1fr));
}

.catalog-infinite-loader{
    position:relative;
    min-height:92px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    padding:24px 12px 10px;
    color:var(--catalog-muted);
    font-size:13px;
    font-weight:700;
    text-align:center;
}

.catalog-loader-spinner{
    width:21px;
    height:21px;
    flex:0 0 21px;
    border:2px solid var(--catalog-border);
    border-top-color:var(--catalog-primary);
    border-radius:50%;
    animation:catalog-spin .7s linear infinite;
}

.catalog-scroll-sentinel{
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    height:1px;
}

.catalog-load-more{
    min-height:40px;
    padding:8px 14px;
    color:#fff;
    background:var(--catalog-primary);
    border:0;
    border-radius:10px;
    font-size:12px;
    font-weight:800;
}

.catalog-empty{
    min-height:240px;
    display:grid;
    place-items:center;
    align-content:center;
    gap:7px;
    padding:36px 20px;
    text-align:center;
    background:var(--catalog-surface);
    border:1px dashed var(--catalog-border);
    border-radius:16px;
}

.catalog-empty strong{
    color:var(--catalog-secondary);
    font-size:18px;
    font-weight:850;
}

.catalog-empty span{
    color:var(--catalog-muted);
    font-size:13px;
}

.catalog-noscript-pagination{margin-top:20px}

@keyframes catalog-spin{to{transform:rotate(360deg)}}

@media(max-width:1180px){
    .catalog-layout{grid-template-columns:240px minmax(0,1fr)}
    .catalog-listing-page .catalog-main .catalog-product-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}

@media(max-width:920px){
    .catalog-listing-page{padding-top:14px}
    .catalog-mobile-toolbar{display:flex}
    .catalog-desktop-toolbar{display:none}
    .catalog-layout{grid-template-columns:1fr;gap:14px}
    .catalog-sidebar{position:static;box-shadow:none}
    .catalog-sidebar__head{display:none}
    .catalog-filter-panel{display:none}
    .catalog-filter-panel.is-open{display:block}
    .catalog-filter-form{
        display:grid;
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:14px;
    }
    .catalog-field{margin:0}
    .catalog-filter-actions{grid-column:1/-1;margin-top:2px}
    .catalog-sort{min-width:0;flex:1}
    .catalog-sort select{min-width:0;width:100%}
}

@media(max-width:760px){
    .catalog-listing-page .catalog-main .catalog-product-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:12px;
    }
}

@media(max-width:620px){
    .catalog-listing-page{padding:10px 0 44px}
    .catalog-title-row{margin-bottom:8px}
    .catalog-title-row h1{font-size:28px;line-height:1.08}
    .catalog-mobile-toolbar{margin-bottom:10px;padding:10px;border-radius:13px}
    .catalog-filter-toggle{flex:0 0 auto}
    .catalog-filter-form{grid-template-columns:1fr;padding:14px}
    .catalog-filter-actions{grid-column:auto}
    .catalog-sort label{display:none}
    .catalog-infinite-loader{min-height:82px;padding-top:20px;font-size:12px}
}

@media(max-width:390px){
    .catalog-listing-page .catalog-main .catalog-product-grid{gap:9px}
    .catalog-mobile-toolbar{gap:8px}
    .catalog-filter-toggle{padding:9px 10px}
}

@media(prefers-reduced-motion:reduce){
    .catalog-loader-spinner{animation-duration:1.4s}
}
