.microshop-catalog {
    padding-block: var(--microshop-section-space, 32px);
}

.microshop-catalog__surface {
    background: var(--microshop-surface, #fff);
    border: 1px solid var(--microshop-border, #dedede);
    border-radius: var(--microshop-radius-lg, 16px);
    box-shadow: var(--microshop-shadow-card, 0 3px 12px rgba(24, 35, 48, .14));
    padding: clamp(20px, 3vw, 36px);
}

.microshop-catalog__header {
    display: grid;
    gap: 12px;
    margin-bottom: 24px;
}

.microshop-catalog__header h1 {
    color: var(--microshop-text, #252b32);
    font-size: clamp(28px, 4vw, 44px);
    line-height: 1.1;
    margin: 0;
}

.microshop-catalog__description {
    color: var(--microshop-muted, #6d6d6d);
    max-width: 75ch;
}

.microshop-catalog__description > :first-child {
    margin-top: 0;
}

.microshop-catalog__description > :last-child {
    margin-bottom: 0;
}

.microshop-catalog-breadcrumbs {
	margin-bottom: 16px;
}

.microshop-catalog-categories {
    margin-bottom: 24px;
}

.microshop-catalog-categories ul {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.microshop-catalog-categories a {
    align-items: center;
    background: var(--microshop-surface-alt, #f3f5f6);
    border: 1px solid var(--microshop-border, #dedede);
    border-radius: var(--microshop-radius-md, 10px);
    color: var(--microshop-text, #252b32);
    display: inline-flex;
    min-height: 44px;
    padding: 8px 14px;
    text-decoration: none;
}

.microshop-catalog-categories a:hover,
.microshop-catalog-categories a:focus-visible {
    border-color: var(--microshop-primary, #007f99);
    color: var(--microshop-link-hover, #004f60);
}

.microshop-catalog__tools {
    align-items: center;
    display: flex;
    justify-content: flex-end;
    margin-bottom: 20px;
}

.microshop-product-sort {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.microshop-product-sort label {
    color: var(--microshop-muted, #6d6d6d);
    font-weight: 600;
}

.microshop-product-sort select {
    background: var(--microshop-surface-alt, #f3f5f6);
    border: 1px solid var(--microshop-border, #dedede);
    border-radius: var(--microshop-radius-sm, 6px);
    color: var(--microshop-text, #252b32);
    font: inherit;
    min-height: 44px;
    padding: 8px 36px 8px 12px;
}

.microshop-product-sort select:focus-visible,
.microshop-catalog a:focus-visible {
    outline: 3px solid var(--microshop-focus, #006f86);
    outline-offset: 2px;
}

.microshop-catalog-grid {
    display: grid;
    gap: var(--microshop-grid-gap, 16px);
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.microshop-catalog-grid > .microshop-product-card {
    box-sizing: border-box;
    float: none;
    margin: 0;
    max-width: none;
    min-width: 0;
    width: auto;
}

.microshop-catalog-grid .microshop-product-card__inner {
    background: var(--microshop-surface, #fff);
    border: 1px solid var(--microshop-border, #dedede);
    border-radius: var(--microshop-card-radius, 10px);
    overflow: hidden;
}

.microshop-catalog-grid .microshop-product-card__body {
    border-top: 1px solid var(--microshop-border, #dedede);
    padding: 15px;
}

.microshop-catalog-empty {
    background: var(--microshop-surface-alt, #f3f5f6);
    border: 1px solid var(--microshop-border, #dedede);
    border-radius: var(--microshop-radius-md, 10px);
    color: var(--microshop-muted, #6d6d6d);
    padding: 24px;
}

.microshop-catalog-empty p {
    margin: 0;
}

.microshop-catalog-pagination {
    margin-top: 28px;
}

.microshop-catalog-pagination ul {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: center;
    list-style: none;
    margin: 0;
    padding: 0;
}

.microshop-catalog-pagination .page-numbers {
    align-items: center;
    border: 1px solid var(--microshop-border, #dedede);
    border-radius: var(--microshop-radius-sm, 6px);
    color: var(--microshop-link, #006b80);
    display: inline-flex;
    justify-content: center;
    min-height: 44px;
    min-width: 44px;
    padding: 8px 12px;
    text-decoration: none;
}

.microshop-catalog-pagination .page-numbers.current {
    background: var(--microshop-primary, #007f99);
    border-color: var(--microshop-primary, #007f99);
    color: var(--microshop-primary-contrast, #fff);
}

.microshop-home-products .microshop-catalog-grid {
    margin-top: 20px;
}

@media (min-width: 1600px) {
    .microshop-catalog-grid {
        grid-template-columns: repeat(6, minmax(0, 1fr));
    }
}

@media (max-width: 1279px) {
    .microshop-catalog-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    .microshop-catalog-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 700px) {
    .microshop-catalog-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .microshop-catalog__tools {
        justify-content: stretch;
    }

    .microshop-product-sort,
    .microshop-product-sort select,
    .microshop-product-sort button {
        width: 100%;
    }
}

@media (max-width: 430px) {
    .microshop-catalog-grid {
        grid-template-columns: 1fr;
    }

    .microshop-catalog__surface {
        padding: 18px;
    }
}
