.neshat-catalog {
    width: min(100% - 2rem, 76rem);
    margin-inline: auto;
    padding-block: clamp(1rem, 4vw, 2.5rem) 4rem;
    color: var(--neshat-ink);
    text-align: start;
}
.neshat-catalog :is(h1, h2, p) { margin: 0; }
.neshat-catalog :is(h1, h2) { color: var(--neshat-ink); line-height: 1.55; }
.neshat-catalog h1 { font-size: clamp(1.55rem, 4vw, 2.6rem); }
.neshat-catalog h2 { font-size: clamp(1.06rem, 2.4vw, 1.5rem); }
.neshat-catalog p { color: var(--neshat-muted); line-height: 1.8; }
.neshat-catalog :is(a, input, select):focus-visible { outline: 3px solid var(--neshat-gold); outline-offset: 3px; }
.neshat-catalog__hero {
    display: grid;
    gap: .35rem;
    margin-bottom: 1rem;
    padding: clamp(1rem, 3.5vw, 2rem);
    border-inline-start: 4px solid var(--neshat-gold-light);
    border-radius: 1rem;
    background: var(--neshat-accent);
}
.neshat-catalog__hero :is(h1, p) { color: var(--neshat-warm); }
.neshat-catalog__hero .neshat-catalog__eyebrow { color: var(--neshat-gold-light); font-size: .86rem; font-weight: 700; }
.neshat-catalog__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr));
    gap: clamp(.6rem, 2vw, 1.15rem);
}
.neshat-catalog__card, .neshat-catalog__panel {
    min-width: 0;
    border: 1px solid var(--neshat-line);
    border-radius: .95rem;
    background: #fff;
}
.neshat-catalog__card { overflow: hidden; }
.neshat-catalog__card-link { display: grid; grid-template-rows: auto 1fr; height: 100%; color: inherit; }
.neshat-catalog__card-link:focus-visible { outline-offset: -4px; }
.neshat-catalog__media { aspect-ratio: 1; background: var(--neshat-warm); }
.neshat-catalog__media img { display: block; width: 100%; height: 100%; object-fit: contain; }
.neshat-catalog__missing-image { display: none; }
.neshat-catalog__media.is-missing { display: grid; place-items: center; }
.neshat-catalog__media.is-missing img { display: none; }
.neshat-catalog__media.is-missing .neshat-catalog__missing-image {
    display: block;
    padding: .65rem;
    color: var(--neshat-muted);
    font-size: .85rem;
    text-align: center;
}
.neshat-catalog__card-body { display: flex; flex-direction: column; gap: .45rem; padding: clamp(.65rem, 1.5vw, 1rem); overflow-wrap: anywhere; }
.neshat-catalog__card h2 { font-size: clamp(.9rem, 1.65vw, 1.12rem); }
.neshat-catalog .neshat-catalog__tag { font-size: .78rem; color: var(--neshat-gold); }
.neshat-catalog__facts { display: grid; gap: .2rem; margin: 0; font-size: .82rem; line-height: 1.65; }
.neshat-catalog__facts > div { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0 .4rem; }
.neshat-catalog__facts dt { color: var(--neshat-muted); font-weight: 500; }
.neshat-catalog__facts dd { margin: 0; }
.neshat-catalog__price dd { color: var(--neshat-accent); font-weight: 700; }
.neshat-catalog__more, .neshat-catalog__jump {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .35rem;
    min-height: 44px;
    padding: .45rem .6rem;
    border-radius: .55rem;
    background: var(--neshat-cool);
    color: var(--neshat-accent);
    font-size: .84rem;
    font-weight: 700;
}
.neshat-catalog__more { margin-top: auto; }
.neshat-catalog__card-link:hover .neshat-catalog__more, .neshat-catalog__jump:hover { text-decoration: underline; }
.neshat-catalog .neshat-catalog__empty { padding: 1rem; border-radius: .7rem; background: var(--neshat-cool); }
.neshat-catalog .neshat-catalog__pagination { flex-wrap: wrap; justify-content: center; gap: .4rem; margin-top: 1.25rem; }
.neshat-catalog .neshat-catalog__pagination a {
    display: grid;
    place-items: center;
    min-width: 44px;
    min-height: 44px;
    border: 1px solid var(--neshat-line);
    border-radius: .55rem;
    background: var(--neshat-warm);
    color: var(--neshat-accent);
}
.neshat-catalog .neshat-catalog__pagination a:is(.active, :hover) { background: var(--neshat-accent); color: var(--neshat-warm); }

.neshat-catalog__detail-grid { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: 1rem; align-items: start; margin-bottom: 1rem; }
.neshat-catalog__media--detail { aspect-ratio: 4 / 3; overflow: hidden; border: 1px solid var(--neshat-line); border-radius: .95rem; }
.neshat-catalog__panel { padding: clamp(.85rem, 2.5vw, 1.4rem); }
.neshat-catalog__description { display: grid; gap: .7rem; overflow-wrap: anywhere; }
.neshat-catalog .neshat-catalog__product-name { color: var(--neshat-accent); font-weight: 700; }
.neshat-catalog__jump { justify-self: start; }
.neshat-catalog__options { scroll-margin-top: 6rem; }
.neshat-catalog .product-filters { display: flex; flex-wrap: wrap; gap: .65rem; margin-block: .9rem; }
.neshat-catalog .product-filters label { flex: 1 1 8rem; min-width: 0; font-weight: 700; }
.neshat-catalog .product-filters select { width: 100%; min-height: 44px; border-color: #8b9b9f; }
.neshat-catalog #product-variants [hidden] { display: none !important; }
.neshat-catalog .product-variant-table { width: 100%; margin-top: .5rem; text-align: center; }
.neshat-catalog .product-variant-table th { background: var(--neshat-cool); color: var(--neshat-accent); }
.neshat-catalog .product-variant-table td { overflow-wrap: anywhere; vertical-align: middle; border-color: var(--neshat-line); }
.neshat-catalog .product-choice { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; cursor: pointer; }
.neshat-catalog #product-variants input.product-cert { display: inline-block !important; position: static; visibility: visible; opacity: 1; appearance: auto; width: 25px; height: 25px; margin: 0; accent-color: var(--neshat-accent); }
.neshat-catalog__purchase { margin-top: 1rem; padding: .75rem; border-radius: .75rem; background: var(--neshat-warm); }
.neshat-catalog__purchase .table { margin-bottom: .4rem; --bs-table-bg: transparent; --bs-table-color: var(--neshat-ink); }
.neshat-catalog__purchase #prctotal { font-weight: 700; color: var(--neshat-accent); overflow-wrap: anywhere; }
.neshat-catalog__actions { display: flex; justify-content: flex-end; margin-top: .5rem; }
.neshat-catalog__button { min-height: 46px; max-width: 100%; padding: .55rem 1rem; border: 1px solid var(--neshat-accent); border-radius: .6rem; background: var(--neshat-accent); color: var(--neshat-warm); font: inherit; font-weight: 700; white-space: normal; }
.neshat-catalog__button:disabled { background: var(--neshat-stone); border-color: var(--neshat-line); color: var(--neshat-muted); cursor: default; }

@media (max-width: 48rem) {
    .neshat-catalog__detail-grid { grid-template-columns: minmax(0, 1fr); }
    .neshat-catalog .product-variant-table thead { display: none; }
    .neshat-catalog .product-variant-table, .neshat-catalog .product-variant-table tbody { display: block; }
    .neshat-catalog .product-variant-table tr.product-variant { display: flex; flex-wrap: wrap; margin-bottom: .65rem; padding: .45rem; border: 1px solid var(--neshat-line); border-radius: .65rem; background: var(--neshat-warm); }
    .neshat-catalog .product-variant-table td { display: block; width: 50%; border: 0; text-align: start; }
    .neshat-catalog .product-variant-table td::before { content: attr(data-label) ' : '; font-weight: 700; }
    .neshat-catalog .product-variant-table td.product-choice-cell { width: 100%; padding-block: 0; }
    .neshat-catalog .product-variant-table td.product-choice-cell::before { content: none; }
    .neshat-catalog__button { width: 100%; }
}
@media (min-width: 22.5rem) and (max-width: 32.99rem) {
    .neshat-catalog__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
