:root {
    --catalog-color-primary: #3E5D57;
    --catalog-color-primary-hover: #1B242A;
    --catalog-color-accent: var(--catalog-color-primary);
    --catalog-color-accent-hover: var(--catalog-color-primary-hover);
    --catalog-color-focus: var(--catalog-color-primary);
    --catalog-color-focus-on-dark: #FFFFFF;
    --catalog-color-success: var(--catalog-text-primary);
    --catalog-color-success-bg: var(--catalog-surface-canvas);
    --catalog-color-success-border: var(--catalog-border);
    --catalog-color-error: var(--catalog-text-primary);
    --catalog-color-error-bg: var(--catalog-surface-canvas);
    --catalog-color-error-border: var(--catalog-border);
    --catalog-color-warning: var(--catalog-text-primary);
    --catalog-color-warning-bg: var(--catalog-surface-canvas);

    --catalog-text-primary: #1B242A;
    --catalog-text-secondary: var(--catalog-text-primary);
    --catalog-text-muted: var(--catalog-text-primary);
    --catalog-text-placeholder: var(--catalog-text-primary);
    --catalog-text-on-dark: #FFFFFF;

    --catalog-surface-canvas: #FFFFFF;
    --catalog-surface-soft: var(--catalog-surface-canvas);
    --catalog-surface-card: var(--catalog-surface-canvas);
    --catalog-surface-field-focus: #eff4f3;
    --catalog-select-arrow-width: 10px;
    --catalog-select-arrow-height: 7px;
    --catalog-select-arrow-inset: 12px;
    --catalog-select-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='m1 1 5 5 5-5' fill='none' stroke='%233E5D57' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    --catalog-surface-muted: #D1D4D3;
    --catalog-surface-dark: #1B242A;
    --catalog-surface-placeholder: var(--catalog-surface-muted);

    --catalog-border: var(--catalog-color-primary);
    --catalog-border-soft: var(--catalog-surface-muted);

    --catalog-overlay-category-start: rgb(27 36 42 / 0.02);
    --catalog-overlay-category-end: rgb(27 36 42 / 0.62);
    --catalog-overlay-dim: rgb(27 36 42 / 0.45);
    --catalog-overlay-nav-hover: var(--catalog-color-primary);

    --catalog-container-max-width: 1392px;
    --catalog-radius: 3px;
    --catalog-radius-sm: var(--catalog-radius);
    --catalog-radius-md: var(--catalog-radius);
    --catalog-radius-lg: var(--catalog-radius);
    --catalog-radius-xl: var(--catalog-radius);
    --catalog-radius-full: var(--catalog-radius);

    --catalog-space-xxs: 4px;
    --catalog-space-xs: 6px;
    --catalog-space-sm: 8px;
    --catalog-space-md: 12px;
    --catalog-space-lg: 16px;
    --catalog-space-xl: 24px;
    --catalog-space-2xl: 32px;
    --catalog-space-section: 56px;

    --catalog-z-mega-backdrop: 91;
    --catalog-z-mega-panel: 92;
    --catalog-z-mega-header: 93;
    --catalog-mega-motion: 140ms;
    --catalog-mega-title-size: 1.25rem;
    --catalog-mega-category-size: 1.0625rem;
    --catalog-mega-link-size: 0.875rem;
    --catalog-mega-line-height: 1.5;
    --catalog-mega-rule-width: 0.0625rem;
    --catalog-mega-top: 0rem;
    --catalog-mega-available: 100dvh;
    --catalog-mega-scroll-top: 0rem;

    --catalog-font-family: "Raleway", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --catalog-font-heading: var(--catalog-font-family);
    --catalog-brand-width: 192px;
    --catalog-brand-mobile-width: 80px;
    --catalog-brand-auth-width: 128px;
    --catalog-control-height: 44px;
    --catalog-auth-width: 550px;
    --catalog-auth-field-min-width: 12rem;
    --catalog-search-height: 48px;
    --catalog-category-card-height: 270px;
    --catalog-product-card-image-height: 270px;
    --catalog-product-card-border: #e9e9ea;
    --catalog-product-card-code-color: #979da5;
    --catalog-product-card-text-size: 14px;
    --catalog-product-card-price-size: 16px;
    --catalog-product-card-control-inset: 10px;
    --catalog-product-card-control-size: 32px;
    --catalog-product-card-dot-target: 24px;
    --catalog-product-card-dot-size: 6px;
    --catalog-product-card-motion: 180ms;
    --catalog-product-card-hover-shadow: 0 3px 12px rgb(27 36 42 / 0.08);

    --catalog-shadow-card: 0 1px 2px rgb(27 36 42 / 0.04);
    --catalog-shadow-hover: 0 16px 34px rgb(27 36 42 / 0.10);
    --catalog-shadow-drawer: -12px 0 30px rgb(27 36 42 / 0.16);
    --catalog-shadow-focus: 0 0 0 3px var(--catalog-color-focus);
    --catalog-shadow-focus-sm: 0 0 0 2px var(--catalog-color-focus);
    --catalog-shadow-image-text: 0 2px 16px rgb(27 36 42 / 0.6);
}

[data-catalog-app] :where(button, input, select, textarea, img, video, iframe, .catalog-product-card-image-wrap, .catalog-category-card-image, .catalog-product-gallery-placeholder, .catalog-universal-slider__viewport, [data-mobile-menu], .swiper-pagination-bullet) {
    border-radius: var(--catalog-radius);
}

[data-catalog-app] :where(input[type="checkbox"], input[type="radio"]) {
    appearance: none;
    background-color: var(--catalog-surface-canvas);
    border: 1px solid var(--catalog-border);
    flex-shrink: 0;
}

[data-catalog-app] :where(input[type="checkbox"], input[type="radio"]):checked {
    background-color: var(--catalog-color-primary);
    background-position: center;
    background-repeat: no-repeat;
}

[data-catalog-app] input[type="checkbox"]:checked {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m3 8 3 3 7-7' fill='none' stroke='white' stroke-width='2'/%3E%3C/svg%3E");
}

[data-catalog-app] input[type="radio"]:checked {
    background-image: radial-gradient(var(--catalog-text-on-dark) 30%, transparent 35%);
}

html {
    scroll-behavior: smooth;
}

button:not(:disabled):not([aria-disabled="true"]) {
    cursor: pointer;
}

button:disabled,
button[aria-disabled="true"] {
    cursor: not-allowed;
}

[data-catalog-app] :where(input, textarea)::placeholder {
    color: var(--catalog-text-placeholder);
    opacity: 1;
}

:where(a, button, input, select, textarea, summary, [tabindex]:not([tabindex="-1"])):focus-visible {
    outline: 3px solid var(--catalog-color-focus) !important;
    outline-offset: 3px !important;
}

.catalog-horizontal-nav :focus-visible,
.catalog-skip-link:focus-visible {
    outline-color: var(--catalog-color-focus-on-dark) !important;
}

.catalog-skip-link {
    background: var(--catalog-surface-dark);
    border-radius: var(--catalog-radius);
    color: var(--catalog-text-on-dark);
    font-size: 0.875rem;
    font-weight: 700;
    left: 0;
    padding: 0.75rem 1rem;
    position: fixed;
    top: 0;
    transform: translateY(-150%);
    transition: transform 0.15s ease;
    z-index: 100;
}

.catalog-skip-link:focus-visible {
    transform: translateY(0);
}

[data-catalog-app] h2.font-extrabold,
[data-catalog-app] h3.font-extrabold {
    font-weight: 700;
}

body {
    background: var(--catalog-surface-soft);
    color: var(--catalog-text-primary);
    font-family: var(--catalog-font-family);
}

[data-catalog-app] {
    background: var(--catalog-surface-soft);
    color: var(--catalog-text-primary);
}

[data-catalog-app] .bg-white {
    background-color: var(--catalog-surface-canvas);
}

[data-catalog-app] .bg-stone-50,
[data-catalog-app] .bg-stone-100 {
    background-color: var(--catalog-surface-card);
}

[data-catalog-app] .bg-emerald-50 {
    background-color: var(--catalog-color-success-bg);
}

[data-catalog-app] .bg-red-50 {
    background-color: var(--catalog-color-error-bg);
}

[data-catalog-app] .bg-red-700 {
    background-color: var(--catalog-color-accent);
}

[data-catalog-app] .bg-amber-50 {
    background-color: var(--catalog-color-warning-bg);
}

[data-catalog-app] .bg-emerald-700,
[data-catalog-app] .bg-emerald-800,
[data-catalog-app] .bg-zinc-950 {
    background-color: var(--catalog-color-primary);
}

@media (hover: hover) {
    [data-catalog-app] .hover\:bg-emerald-800:hover,
    [data-catalog-app] .hover\:bg-emerald-900:hover,
    [data-catalog-app] .hover\:bg-zinc-800:hover {
        background-color: var(--catalog-color-primary-hover);
    }

    [data-catalog-app] .hover\:bg-red-800:hover {
        background-color: var(--catalog-color-accent-hover);
    }
}

[data-catalog-app] .text-zinc-950,
[data-catalog-app] .text-zinc-900,
[data-catalog-app] .text-zinc-800,
[data-catalog-app] .text-zinc-700 {
    color: var(--catalog-text-primary);
}

[data-catalog-app] .text-stone-700,
[data-catalog-app] .text-stone-600,
[data-catalog-app] .text-stone-500 {
    color: var(--catalog-text-secondary);
}

[data-catalog-app] .text-stone-400 {
    color: var(--catalog-text-muted);
}

[data-catalog-app] .text-red-700,
[data-catalog-app] .text-red-900 {
    color: var(--catalog-color-error);
}

[data-catalog-app] .text-amber-700,
[data-catalog-app] .text-amber-900 {
    color: var(--catalog-color-warning);
}

[data-catalog-app] .text-emerald-900 {
    color: var(--catalog-color-success);
}

[data-catalog-app] .text-emerald-700,
[data-catalog-app] .text-emerald-800 {
    color: var(--catalog-color-primary);
}

@media (hover: hover) {
    [data-catalog-app] .hover\:text-emerald-800:hover,
    [data-catalog-app] .hover\:text-emerald-900:hover {
        color: var(--catalog-color-primary);
    }
}

[data-catalog-app] .text-white,
[data-catalog-app] .text-emerald-50,
[data-catalog-app] .text-emerald-100 {
    color: var(--catalog-text-on-dark);
}

[data-catalog-app] .border-stone-200 {
    border-color: var(--catalog-border-soft);
}

[data-catalog-app] .border-emerald-300,
[data-catalog-app] .border-emerald-600,
[data-catalog-app] .border-emerald-700,
[data-catalog-app] .border-stone-300 {
    border-color: var(--catalog-border);
}

[data-catalog-app] .border-red-200 {
    border-color: var(--catalog-color-error-border);
}

[data-catalog-app] .border-amber-200 {
    border-color: var(--catalog-color-warning-bg);
}

[data-catalog-app] .border-emerald-200 {
    border-color: var(--catalog-color-success-border);
}

[data-catalog-app] .focus\:border-emerald-600:focus {
    border-color: var(--catalog-color-focus);
}

[data-catalog-app] .focus\:ring-emerald-100:focus,
[data-catalog-app] .focus\:ring-emerald-600:focus {
    box-shadow: var(--catalog-shadow-focus-sm);
}

[data-catalog-app] .rounded,
[data-catalog-app] .rounded-md {
    border-radius: var(--catalog-radius);
}

.catalog-site-header {
    background: var(--catalog-surface-canvas);
    border-bottom: 1px solid var(--catalog-border-soft);
}

.catalog-brand {
    align-items: center;
    color: var(--catalog-text-primary);
    display: inline-flex;
    flex-shrink: 1;
    inline-size: var(--catalog-brand-width);
    min-block-size: var(--catalog-control-height);
    min-inline-size: 0;
    text-decoration: none;
}

.catalog-brand-logo {
    display: block;
    height: auto;
    width: 100%;
}

.catalog-brand--auth {
    inline-size: var(--catalog-brand-auth-width);
    min-block-size: 1.75rem;
}

@media (max-width: 639px) {
    .catalog-brand { inline-size: var(--catalog-brand-mobile-width); }
}

.catalog-settlement-selector {
    flex: 0 1 auto;
    min-width: 0;
}

.catalog-settlement-trigger {
    align-items: center;
    background: var(--catalog-surface-canvas);
    border: 1px solid var(--catalog-border);
    border-radius: var(--catalog-radius);
    color: var(--catalog-text-primary);
    cursor: pointer;
    display: inline-flex;
    gap: 0.5rem;
    min-height: var(--catalog-control-height);
    max-width: 12.5rem;
    padding: 0.4rem 0.75rem;
    text-align: left;
    transition: background-color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}

.catalog-settlement-trigger:hover {
    background: var(--catalog-surface-card);
    border-color: var(--catalog-color-primary);
}

.catalog-settlement-trigger:focus-visible,
.catalog-settlement-close:focus-visible,
.catalog-settlement-item:focus-visible,
.catalog-settlement-state-error button:focus-visible {
    outline: 0;
    box-shadow: var(--catalog-shadow-focus);
}

.catalog-settlement-trigger > svg {
    flex: 0 0 auto;
    height: 1.25rem;
    width: 1.25rem;
}

.catalog-settlement-trigger-copy {
    display: grid;
    min-width: 0;
}

.catalog-settlement-trigger-copy > span {
    color: var(--catalog-text-muted);
    font-size: 0.6875rem;
    font-weight: 700;
    line-height: 1.1;
}

.catalog-settlement-trigger-copy > strong {
    font-size: 0.8125rem;
    line-height: 1.25;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.catalog-settlement-chevron {
    color: var(--catalog-text-muted);
    flex: 0 0 auto;
}

.catalog-settlement-modal[hidden] {
    display: none;
}

.catalog-settlement-modal {
    align-items: center;
    background: var(--catalog-overlay-dim);
    display: flex;
    inset: 0;
    justify-content: center;
    padding: 1rem;
    position: fixed;
    z-index: 80;
}

.catalog-settlement-dialog {
    background: var(--catalog-surface-canvas);
    border: 1px solid var(--catalog-border-soft);
    border-radius: var(--catalog-radius);
    box-shadow: 0 24px 70px rgb(27 36 42 / 0.24);
    max-height: min(42rem, calc(100vh - 2rem));
    max-width: 34rem;
    overflow: hidden;
    padding: 1.5rem;
    width: 100%;
}

.catalog-settlement-dialog-header {
    align-items: flex-start;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
}

.catalog-settlement-kicker {
    color: var(--catalog-text-muted);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.catalog-settlement-dialog h2 {
    font-family: var(--catalog-font-heading);
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.25;
    margin-top: 0.25rem;
}

.catalog-settlement-close {
    align-items: center;
    background: var(--catalog-surface-card);
    border: 0;
    border-radius: var(--catalog-radius);
    color: var(--catalog-text-primary);
    cursor: pointer;
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 1.5rem;
    height: 2.5rem;
    justify-content: center;
    line-height: 1;
    width: 2.5rem;
}

.catalog-settlement-search-label {
    color: var(--catalog-text-secondary);
    display: block;
    font-size: 0.75rem;
    font-weight: 600;
    margin-top: 1.25rem;
}

.catalog-settlement-search {
    background: var(--catalog-surface-card);
    border: 1px solid var(--catalog-border);
    border-radius: var(--catalog-radius);
    color: var(--catalog-text-primary);
    margin-top: 0.4rem;
    min-height: var(--catalog-control-height);
    outline: 0;
    padding: 0 0.875rem;
    width: 100%;
}

.catalog-settlement-search:focus {
    background: var(--catalog-surface-canvas);
    border-color: var(--catalog-color-focus);
    box-shadow: var(--catalog-shadow-focus);
}

.catalog-settlement-state {
    align-items: center;
    color: var(--catalog-text-secondary);
    display: flex;
    gap: 0.75rem;
    justify-content: center;
    min-height: 10rem;
    text-align: center;
}

.catalog-settlement-state[hidden],
.catalog-settlement-list[hidden] {
    display: none;
}

.catalog-settlement-state-error {
    flex-direction: column;
}

[data-settlement-select-error] {
    background: var(--catalog-color-error-bg);
    border: 1px solid var(--catalog-color-error-border);
    border-radius: var(--catalog-radius);
    color: var(--catalog-color-error);
    margin-top: 1rem;
    min-height: auto;
    padding: 0.75rem;
}

.catalog-settlement-state-error button {
    background: var(--catalog-color-primary);
    border: 0;
    border-radius: var(--catalog-radius);
    color: var(--catalog-text-on-dark);
    cursor: pointer;
    font-weight: 700;
    min-height: 2.5rem;
    padding: 0 1rem;
}

.catalog-settlement-spinner {
    animation: catalogSettlementSpin 0.8s linear infinite;
    border: 2px solid var(--catalog-border);
    border-radius: var(--catalog-radius);
    border-top-color: var(--catalog-color-primary);
    height: 1.25rem;
    width: 1.25rem;
}

.catalog-settlement-list {
    display: grid;
    gap: 0.5rem;
    margin-top: 1rem;
    max-height: min(23rem, calc(100vh - 15rem));
    overflow-y: auto;
    overscroll-behavior: contain;
    padding-right: 0.25rem;
}

.catalog-settlement-item {
    align-items: center;
    background: var(--catalog-surface-canvas);
    border: 1px solid var(--catalog-border-soft);
    border-radius: var(--catalog-radius);
    color: var(--catalog-text-primary);
    cursor: pointer;
    display: grid;
    gap: 0.2rem 1rem;
    grid-template-columns: minmax(0, 1fr) auto;
    padding: 0.8rem 0.9rem;
    text-align: left;
    width: 100%;
}

.catalog-settlement-item:hover {
    border-color: var(--catalog-color-primary);
}

.catalog-settlement-item.is-current {
    background: var(--catalog-surface-card);
    border-color: var(--catalog-color-primary);
}

.catalog-settlement-item.is-selecting {
    cursor: wait;
    opacity: 0.7;
}

.catalog-settlement-item strong,
.catalog-settlement-item > span:not(.catalog-settlement-item-marker) {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.catalog-settlement-item strong {
    font-size: 0.9375rem;
    grid-column: 1;
}

.catalog-settlement-item > span:not(.catalog-settlement-item-marker) {
    color: var(--catalog-text-muted);
    font-size: 0.75rem;
    grid-column: 1;
}

.catalog-settlement-item-marker {
    color: var(--catalog-text-secondary);
    font-size: 0.75rem;
    font-weight: 600;
    grid-column: 2;
    grid-row: 1 / span 2;
}

.catalog-settlement-item.is-current .catalog-settlement-item-marker {
    color: var(--catalog-color-primary);
}

.catalog-settlement-modal-open {
    overflow: hidden;
}

.catalog-header-mobile-icon {
    height: 1.25rem;
    width: 1.25rem;
}

/*
 * Structural display defaults belong below Tailwind utilities in the cascade.
 * This lets hidden/responsive utilities remain the visibility contract while
 * keeping the existing component layout after those utilities are removed.
 */
@layer components {
    .catalog-header-cart,
    .catalog-header-cart-count,
    .catalog-icon-button,
    .catalog-mobile-utility-count,
    .catalog-primary-button,
    .catalog-secondary-button,
    .catalog-detail-button,
    .catalog-pagination-button {
        display: inline-flex;
    }

    .catalog-products-slider-controls {
        display: flex;
    }

    .catalog-categories-slider .catalog-products-slider-controls {
        display: grid;
    }
}

.catalog-search-wrap {
    position: relative;
}

.catalog-search-input {
    background: var(--catalog-surface-card);
    border: 1px solid var(--catalog-border);
    border-radius: var(--catalog-radius);
    color: var(--catalog-text-primary);
    min-height: var(--catalog-search-height);
    outline: none;
    padding: 0 var(--catalog-space-xl);
    transition: background-color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
    width: 100%;
}

.catalog-search-input.has-button {
    padding-right: 7rem;
}

.catalog-search-input::placeholder {
    color: var(--catalog-text-muted);
    opacity: 1;
}

.catalog-search-input:focus,
.catalog-field-control:focus,
.catalog-toolbar-select:focus {
    background: var(--catalog-surface-canvas);
    border-color: var(--catalog-color-focus);
    box-shadow: var(--catalog-shadow-focus);
}

.catalog-search-button {
    align-items: center;
    background: var(--catalog-color-primary);
    border: 0;
    border-radius: var(--catalog-radius);
    color: var(--catalog-text-on-dark);
    cursor: pointer;
    display: inline-flex;
    font-size: 0.875rem;
    font-weight: 700;
    height: calc(var(--catalog-search-height) - 10px);
    justify-content: center;
    padding: 0 var(--catalog-space-lg);
    position: absolute;
    right: 5px;
    top: 5px;
    transition: background-color 0.15s ease;
}

.catalog-search-button:hover {
    background: var(--catalog-color-primary-hover);
}

.catalog-page-card {
    background: var(--catalog-surface-canvas);
    border: 1px solid var(--catalog-border-soft);
    border-radius: var(--catalog-radius);
    box-shadow: var(--catalog-shadow-card);
}

.catalog-state-block {
    background: var(--catalog-surface-canvas);
    border: 1px solid var(--catalog-border-soft);
    border-radius: var(--catalog-radius);
    box-shadow: var(--catalog-shadow-card);
    color: var(--catalog-text-primary);
    padding: 2rem;
    text-align: center;
}

.catalog-state-block--loading {
    align-items: center;
    display: flex;
    gap: 0.75rem;
    padding: 1rem;
    text-align: left;
}

.catalog-state-block--empty {
    border-style: dashed;
}

.catalog-state-block--error {
    background: var(--catalog-color-error-bg);
    border-color: var(--catalog-color-error-border);
    color: var(--catalog-color-error);
}

.catalog-form-message {
    border: 1px solid;
    border-radius: var(--catalog-radius);
    font-size: 0.875rem;
    line-height: 1.5;
    padding: 0.75rem 1rem;
}

.catalog-form-message--error {
    background: var(--catalog-color-error-bg);
    border-color: var(--catalog-color-error-border);
    color: var(--catalog-color-error);
}

.catalog-form-message--success {
    background: var(--catalog-color-success-bg);
    border-color: var(--catalog-color-success-border);
    color: var(--catalog-color-success);
}

.catalog-field-error {
    color: var(--catalog-color-error);
    font-size: 0.8125rem;
    line-height: 1.45;
    margin-top: 0.5rem;
}

.catalog-field-control[aria-invalid="true"] {
    border-color: var(--catalog-color-error);
    box-shadow: var(--catalog-shadow-focus);
}

.catalog-auth-link {
    color: var(--catalog-color-primary);
    font-weight: 700;
    text-decoration-line: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 0.2em;
}

.catalog-auth-link:hover {
    color: var(--catalog-color-accent);
}

.catalog-horizontal-nav {
    background: var(--catalog-surface-dark);
    border-bottom: 1px solid var(--catalog-surface-dark);
    color: var(--catalog-text-on-dark);
}

.catalog-horizontal-nav > div {
    min-height: var(--catalog-control-height);
}

.catalog-horizontal-nav-link {
    align-items: center;
    border-radius: var(--catalog-radius);
    color: var(--catalog-text-on-dark);
    display: inline-flex;
    font-size: 0.875rem;
    font-weight: 700;
    min-height: 36px;
    padding: 0 var(--catalog-space-lg);
    text-decoration: none;
    transition: background-color 0.15s ease;
}

.catalog-horizontal-nav-link:hover {
    background: var(--catalog-overlay-nav-hover);
}

.catalog-horizontal-nav-link[aria-expanded="true"] {
    background: var(--catalog-overlay-nav-hover);
}

.catalog-mobile-catalog-toggle {
    flex-shrink: 0;
    text-align: start;
}

.catalog-navigation-open [data-catalog-navigation-shell] {
    position: fixed;
    inset: 0 0 auto;
    z-index: var(--catalog-z-mega-header);
}

.catalog-mega-menu-open {
    position: fixed;
    inset-block-start: var(--catalog-mega-scroll-top);
    inline-size: 100%;
    overflow: hidden;
}

.catalog-mega-backdrop {
    position: fixed;
    inset: var(--catalog-mega-top) 0 0;
    background: var(--catalog-overlay-dim);
    z-index: var(--catalog-z-mega-backdrop);
}

.catalog-mega-menu {
    position: fixed;
    inset: var(--catalog-mega-top) 0 auto;
    display: flex;
    max-block-size: var(--catalog-mega-available);
    background: var(--catalog-surface-canvas);
    color: var(--catalog-text-primary);
    z-index: var(--catalog-z-mega-panel);
    border-block-end: var(--catalog-mega-rule-width) solid var(--catalog-border-soft);
}

.catalog-mega-menu[hidden],
.catalog-mega-backdrop[hidden],
.catalog-mega-status[hidden],
[data-catalog-menu-retry][hidden] {
    display: none;
}

.catalog-mega-inner {
    display: flex;
    flex-direction: column;
    inline-size: 100%;
    max-inline-size: var(--catalog-container-max-width);
    max-block-size: var(--catalog-mega-available);
    margin-inline: auto;
    padding-inline: var(--catalog-space-lg);
}

.catalog-mega-heading {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    flex-shrink: 0;
    flex-wrap: wrap;
    gap: 0 var(--catalog-space-lg);
    padding-block: var(--catalog-space-md);
    border-block-end: var(--catalog-mega-rule-width) solid var(--catalog-border-soft);
}

.catalog-mega-heading h2 {
    font-size: var(--catalog-mega-title-size);
    font-weight: 700;
    line-height: var(--catalog-mega-line-height);
}

.catalog-mega-all {
    display: inline-flex;
    align-items: center;
    min-block-size: var(--catalog-control-height);
    font-size: var(--catalog-mega-link-size);
    font-weight: 600;
    color: var(--catalog-color-primary);
    text-decoration: underline;
    text-underline-offset: 0.2em;
    grid-column: 1;
    justify-self: start;
}

.catalog-mega-close {
    margin-inline-start: auto;
    flex-shrink: 0;
    grid-column: 2;
    grid-row: 1 / span 2;
}

.catalog-mega-close svg {
    inline-size: var(--catalog-space-xl);
    block-size: var(--catalog-space-xl);
}

.catalog-mega-scroll {
    overflow-y: auto;
    overscroll-behavior: contain;
    min-block-size: 0;
    scrollbar-gutter: stable;
    padding-inline: var(--catalog-space-xs);
    margin-inline: calc(-1 * var(--catalog-space-xs));
}

.catalog-mega-columns {
    --catalog-mega-columns: 1;
    display: grid;
    align-items: start;
    gap: var(--catalog-space-2xl);
    padding-block: var(--catalog-space-xl) var(--catalog-space-2xl);
}

.catalog-mega-column {
    display: flex;
    flex-direction: column;
    gap: var(--catalog-space-2xl);
    min-inline-size: 0;
}

.catalog-mega-category {
    min-inline-size: 0;
    overflow-wrap: anywhere;
}

.catalog-mega-category h3 {
    color: var(--catalog-color-primary);
    font-size: var(--catalog-mega-category-size);
    font-weight: 700;
    line-height: var(--catalog-mega-line-height);
}

.catalog-mega-category ul {
    margin-block-start: var(--catalog-space-sm);
}

.catalog-mega-category li + li {
    margin-block-start: var(--catalog-space-xs);
}

.catalog-mega-category a {
    display: inline-block;
    min-block-size: var(--catalog-control-height);
    padding-block: var(--catalog-space-sm);
    font-size: var(--catalog-mega-link-size);
    line-height: var(--catalog-mega-line-height);
}

.catalog-mega-category h3 a {
    font-size: inherit;
}

.catalog-mega-category a:hover,
.catalog-mega-all:hover {
    color: var(--catalog-color-primary);
    text-decoration: underline;
    text-underline-offset: 0.2em;
}

.catalog-mega-category a:focus-visible,
.catalog-mega-all:focus-visible,
.catalog-mega-close:focus-visible {
    outline: var(--catalog-mega-rule-width) solid var(--catalog-color-focus);
    outline-offset: var(--catalog-mega-rule-width);
}

.catalog-mega-status {
    padding-block: var(--catalog-space-2xl);
    line-height: var(--catalog-mega-line-height);
}

.catalog-mega-status button {
    margin-block-start: var(--catalog-space-lg);
}

.catalog-navigation-open .catalog-mega-menu {
    animation: catalog-mega-enter var(--catalog-mega-motion) ease-out;
}

@keyframes catalog-mega-enter {
    from { opacity: 0; transform: translateY(calc(-1 * var(--catalog-space-xs))); }
    to { opacity: 1; transform: translateY(0); }
}

@media (min-width: 48rem) {
    .catalog-mega-columns { --catalog-mega-columns: 2; }
    .catalog-mega-inner { padding-inline: var(--catalog-space-xl); }
    .catalog-mega-category a { min-block-size: var(--catalog-space-xl); padding-block: 0; }
    .catalog-mega-heading { display: flex; gap: var(--catalog-space-xl); }
}

@media (min-width: 68.75rem) {
    .catalog-mega-columns { --catalog-mega-columns: 3; }
    .catalog-mega-inner { padding-inline: var(--catalog-space-2xl); }
}

@media (min-width: 90rem) {
    .catalog-mega-columns { --catalog-mega-columns: 4; }
}

@media (prefers-reduced-motion: reduce) {
    .catalog-navigation-open .catalog-mega-menu { animation: none; }
}

.catalog-horizontal-nav-link.is-active {
    background: var(--catalog-overlay-nav-hover);
    box-shadow: inset 0 -2px var(--catalog-text-on-dark);
}

.catalog-header-link {
    border-radius: var(--catalog-radius);
    color: var(--catalog-text-secondary);
    font-weight: 700;
    padding: 0.625rem 0.75rem;
    transition: background-color 0.15s ease, color 0.15s ease;
}

.catalog-header-link:hover {
    background: var(--catalog-surface-card);
    color: var(--catalog-color-primary);
}

.catalog-header-link.is-active {
    background: var(--catalog-surface-card);
    box-shadow: inset 0 -2px var(--catalog-color-primary);
    color: var(--catalog-color-primary);
}

.catalog-header-link-accent {
    background: var(--catalog-surface-card);
    color: var(--catalog-color-primary);
}

.catalog-header-cart {
    align-items: center;
    border: 1px solid var(--catalog-border);
    border-radius: var(--catalog-radius);
    color: var(--catalog-text-primary);
    font-weight: 700;
    gap: 0.5rem;
    min-height: var(--catalog-control-height);
    padding: 0.5rem 0.75rem;
    transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.catalog-header-cart:hover,
.catalog-header-cart.has-items,
.catalog-header-cart.is-active {
    background: var(--catalog-surface-card);
    border-color: var(--catalog-color-primary);
    color: var(--catalog-color-primary);
}

.catalog-header-cart.is-active {
    box-shadow: inset 0 -2px var(--catalog-color-primary);
}

.catalog-header-cart-count {
    align-items: center;
    background: var(--catalog-color-accent);
    border-radius: var(--catalog-radius);
    color: var(--catalog-text-on-dark);
    font-size: 0.75rem;
    font-weight: 700;
    height: 1.25rem;
    justify-content: center;
    min-width: 1.25rem;
    padding: 0 0.375rem;
}

.catalog-header-cart-mobile {
    margin-left: auto;
}

.catalog-header-cart-mobile + .catalog-header-cart-mobile {
    margin-left: 0;
}

.catalog-icon-button {
    align-items: center;
    border: 1px solid var(--catalog-border);
    background: var(--catalog-surface-canvas);
    border-radius: var(--catalog-radius);
    color: var(--catalog-text-primary);
    flex-direction: column;
    height: 2.75rem;
    justify-content: center;
    width: 2.75rem;
}

.catalog-burger-line {
    background: currentColor;
    display: block;
    height: 2px;
    margin: 3px 0;
    width: 18px;
}

.catalog-mobile-link {
    border-bottom: 1px solid var(--catalog-border-soft);
    color: var(--catalog-text-primary);
    font-weight: 700;
    padding: 0.875rem 0;
}

.catalog-mobile-link:hover {
    color: var(--catalog-color-primary);
}

.catalog-mobile-link.is-active {
    background: var(--catalog-surface-card);
    border-radius: var(--catalog-radius);
    box-shadow: inset 3px 0 var(--catalog-color-primary);
    padding-left: 0.75rem;
    padding-right: 0.75rem;
}

.catalog-mobile-menu-label {
    color: var(--catalog-text-secondary);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.catalog-mobile-utility-link {
    align-items: center;
    display: flex;
    justify-content: space-between;
}

.catalog-mobile-utility-count {
    align-items: center;
    background: var(--catalog-color-primary);
    border-radius: var(--catalog-radius);
    color: var(--catalog-text-on-dark);
    font-size: 0.75rem;
    justify-content: center;
    min-height: 1.5rem;
    min-width: 1.5rem;
    padding-inline: 0.4rem;
}

.catalog-mobile-account-link {
    background: var(--catalog-surface-card);
    border: 1px solid transparent;
    border-radius: var(--catalog-radius);
    color: var(--catalog-text-primary);
    padding: 0.625rem 0.75rem;
}

.catalog-mobile-account-link.is-active {
    border-color: var(--catalog-color-primary);
    color: var(--catalog-color-primary);
}

.catalog-mobile-menu-open {
    overflow: hidden;
}

[data-mobile-menu] {
    pointer-events: none;
    transform: translateX(100%);
    visibility: hidden;
}

[data-mobile-menu].is-open {
    pointer-events: auto;
    transform: translateX(0);
    visibility: visible;
}

[data-mobile-menu-overlay].is-open {
    display: block;
}

.catalog-footer-link {
    color: var(--catalog-text-secondary);
    transition: color 0.15s ease;
}

.catalog-footer-link:hover {
    color: var(--catalog-color-primary);
}

.catalog-loader-dot {
    animation: catalogPulse 1s ease-in-out infinite;
    background: var(--catalog-color-primary);
    border-radius: var(--catalog-radius);
    display: inline-block;
    height: 0.75rem;
    width: 0.75rem;
}

.catalog-placeholder-card {
    background: var(--catalog-surface-canvas);
    border: 1px solid var(--catalog-border-soft);
    border-radius: var(--catalog-radius);
    padding: 1.25rem;
}

.catalog-placeholder-icon {
    background: var(--catalog-surface-card);
    border-radius: var(--catalog-radius);
    height: 3rem;
    width: 3rem;
}

.catalog-category-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(1, minmax(0, 1fr));
}

.catalog-category-section {
    margin-bottom: 1.5rem;
    min-width: 0;
}

.catalog-category-section.hidden {
    display: none;
}

.catalog-category-card {
    background: var(--catalog-surface-canvas);
    border: 1px solid var(--catalog-border-soft);
    border-radius: var(--catalog-radius);
    min-width: 0;
    overflow: hidden;
}

.catalog-category-card-link {
    color: inherit;
    display: grid;
    height: 100%;
    text-decoration: none;
}

.catalog-category-card-link:hover h3 {
    color: var(--catalog-color-primary);
}

.catalog-category-card-image {
    align-items: center;
    aspect-ratio: 4 / 3;
    background: var(--catalog-surface-card);
    color: var(--catalog-color-primary);
    display: flex;
    font-family: var(--catalog-font-heading);
    font-size: 2rem;
    font-weight: 900;
    justify-content: center;
    min-width: 0;
    overflow: hidden;
}

.catalog-category-card-image img {
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.catalog-category-card-body {
    display: grid;
    gap: 0.5rem;
    min-width: 0;
    padding: 1rem;
}

.catalog-category-card h3 {
    color: var(--catalog-text-primary);
    font-family: var(--catalog-font-heading);
    font-size: 1.125rem;
    font-weight: 900;
    line-height: 1.35;
    overflow-wrap: normal;
    word-break: normal;
    transition: color 0.15s ease;
}

.catalog-category-card p[data-category-description] {
    color: var(--catalog-text-secondary);
    font-size: 0.875rem;
    line-height: 1.5;
    overflow-wrap: break-word;
}

.catalog-toolbar {
    align-items: center;
    background: var(--catalog-surface-canvas);
    border: 1px solid var(--catalog-border-soft);
    border-radius: var(--catalog-radius);
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    justify-content: space-between;
    padding: 1rem;
}

.catalog-toolbar-summary,
.catalog-toolbar-controls {
    align-items: center;
    display: flex;
    gap: 0.75rem;
    min-width: 0;
}

.catalog-toolbar-summary {
    justify-content: space-between;
}

.catalog-toolbar-controls {
    flex-wrap: wrap;
}

.catalog-toolbar-field {
    align-items: center;
    color: var(--catalog-text-secondary);
    display: flex;
    font-size: 0.875rem;
    font-weight: 600;
    gap: 0.5rem;
    min-width: 0;
}

.catalog-toolbar-select,
.catalog-field-control {
    background: var(--catalog-surface-card);
    border: 1px solid var(--catalog-border);
    border-radius: var(--catalog-radius);
    color: var(--catalog-text-primary);
    min-height: var(--catalog-control-height);
    outline: none;
    padding: 0.5rem 0.75rem;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.catalog-field-control {
    width: 100%;
}

.catalog-field-label {
    color: var(--catalog-text-secondary);
    display: block;
    font-size: 0.8125rem;
    font-weight: 700;
    margin-bottom: 0.375rem;
}

.catalog-primary-button,
.catalog-secondary-button,
.catalog-detail-button,
.catalog-pagination-button {
    align-items: center;
    border-radius: var(--catalog-radius);
    font-size: 0.875rem;
    font-weight: 700;
    gap: 0.5rem;
    justify-content: center;
    min-height: var(--catalog-control-height);
    padding: 0.5rem 0.875rem;
    text-decoration: none;
    transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.catalog-primary-button {
    background: var(--catalog-color-primary);
    border: 1px solid transparent;
    color: var(--catalog-text-on-dark);
}

.catalog-primary-button:hover {
    background: var(--catalog-color-primary-hover);
}

.catalog-primary-button.is-loading,
.catalog-secondary-button.is-loading,
.catalog-icon-action.is-loading {
    cursor: wait;
}

.catalog-primary-button.is-added {
    background: var(--catalog-color-primary-hover);
}

.catalog-secondary-button,
.catalog-detail-button,
.catalog-pagination-button {
    background: var(--catalog-surface-canvas);
    border: 1px solid var(--catalog-border);
    color: var(--catalog-text-primary);
}

.catalog-secondary-button:hover,
.catalog-detail-button:hover,
.catalog-pagination-button:hover {
    border-color: var(--catalog-color-primary);
    color: var(--catalog-color-primary);
}

.catalog-secondary-button.is-active,
.catalog-secondary-button.is-added {
    background: var(--catalog-surface-dark);
    border-color: var(--catalog-surface-dark);
    color: var(--catalog-text-on-dark);
}

.catalog-secondary-button.is-error {
    background: var(--catalog-color-error-bg);
    border-color: var(--catalog-color-error-border);
    color: var(--catalog-color-error);
}

.catalog-detail-button.is-disabled {
    cursor: not-allowed;
    opacity: 0.55;
    pointer-events: none;
}

.catalog-danger-button:hover {
    border-color: var(--catalog-color-accent);
    color: var(--catalog-color-error);
}

.catalog-text-danger {
    align-items: center;
    border-radius: var(--catalog-radius);
    color: var(--catalog-color-error);
    display: inline-flex;
    font-size: 0.875rem;
    font-weight: 650;
    min-height: var(--catalog-control-height);
    padding: 0.5rem 0.75rem;
    text-decoration-line: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 0.2em;
    transition: background-color 0.15s ease, color 0.15s ease, transform 0.15s ease;
}

.catalog-text-danger:hover {
    background: var(--catalog-color-error-bg);
}

.catalog-text-danger:active:not(:disabled) {
    transform: translateY(1px);
}

.catalog-text-danger:disabled {
    cursor: not-allowed;
    opacity: 0.55;
}

.catalog-primary-button:disabled,
.catalog-secondary-button:disabled,
.catalog-detail-button:disabled,
.catalog-pagination-button:disabled {
    cursor: not-allowed;
    opacity: 0.55;
}

.catalog-product-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(1, minmax(0, 1fr));
}

.catalog-product-grid.hidden,
.catalog-pagination.hidden,
.catalog-product-card-placeholder.hidden {
    display: none;
}

.catalog-product-card {
    background: var(--catalog-surface-canvas);
    border: 1px solid var(--catalog-product-card-border);
    border-radius: var(--catalog-radius);
    display: flex;
    flex-direction: column;
    min-width: 0;
    transition: box-shadow var(--catalog-product-card-motion) ease;
}

.catalog-product-card:hover {
    box-shadow: var(--catalog-product-card-hover-shadow);
}

.catalog-product-card-image-wrap {
    background: var(--catalog-surface-card);
    border-radius: var(--catalog-radius);
    height: var(--catalog-product-card-image-height);
    position: relative;
    flex-shrink: 0;
}

.catalog-product-card-image-wrap.swiper-no-swiping {
    touch-action: pan-y pinch-zoom;
}

.catalog-product-card-image-link {
    display: block;
    height: 100%;
    border-radius: var(--catalog-radius);
    overflow: hidden;
}

.catalog-product-card-image {
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.catalog-product-card-image.hidden,
.catalog-product-card-navigation.hidden,
.catalog-product-card-code.hidden {
    display: none;
}

.catalog-product-card-placeholder {
    align-items: center;
    background: var(--catalog-surface-placeholder);
    color: var(--catalog-color-primary);
    display: flex;
    font-family: var(--catalog-font-heading);
    font-size: 2rem;
    font-weight: 800;
    height: 100%;
    justify-content: center;
    width: 100%;
}

.catalog-product-card-favorite,
.catalog-product-card-arrow {
    align-items: center;
    border: 0;
    color: var(--catalog-color-primary);
    cursor: pointer;
    display: flex;
    height: var(--catalog-product-card-control-size);
    justify-content: center;
    padding: var(--catalog-space-xs);
    position: absolute;
    width: var(--catalog-product-card-control-size);
    z-index: 2;
}

.catalog-product-card-favorite {
    background: transparent;
    right: var(--catalog-product-card-control-inset);
    top: var(--catalog-product-card-control-inset);
}

.catalog-product-card-favorite svg,
.catalog-product-card-arrow svg {
    width: 100%;
    height: 100%;
}

.catalog-product-card-favorite.is-active svg {
    fill: currentColor;
}

.catalog-product-card-favorite:disabled {
    cursor: wait;
    opacity: 0.6;
}

.catalog-product-card-arrow {
    background: var(--catalog-surface-canvas);
    top: 50%;
    transform: translateY(-50%);
    opacity: 0;
    pointer-events: none;
    transition: opacity var(--catalog-product-card-motion) ease;
}

.catalog-product-card-arrow--prev { left: var(--catalog-product-card-control-inset); }
.catalog-product-card-arrow--next { right: var(--catalog-product-card-control-inset); }

@media (hover: hover) and (pointer: fine) {
    .catalog-product-card-image-wrap:hover .catalog-product-card-arrow {
        opacity: 1;
        pointer-events: auto;
    }
}

.catalog-product-card-navigation:has(:focus-visible) .catalog-product-card-arrow {
    opacity: 1;
    pointer-events: auto;
}

.catalog-product-card-dots {
    bottom: var(--catalog-space-xs);
    display: flex;
    flex-wrap: wrap;
    gap: var(--catalog-space-xxs);
    justify-content: center;
    left: var(--catalog-product-card-control-inset);
    right: var(--catalog-product-card-control-inset);
    position: absolute;
    z-index: 1;
}

.catalog-product-card-dot {
    align-items: center;
    background: transparent;
    border: 0;
    cursor: pointer;
    display: flex;
    height: var(--catalog-product-card-dot-target);
    justify-content: center;
    width: var(--catalog-product-card-dot-target);
}

.catalog-product-card-dot::before {
    background: var(--catalog-surface-canvas);
    border: 1px solid var(--catalog-color-primary);
    border-radius: var(--catalog-radius);
    content: '';
    height: var(--catalog-product-card-dot-size);
    width: var(--catalog-product-card-dot-size);
}

.catalog-product-card-dot[aria-pressed="true"]::before {
    background: var(--catalog-color-primary);
    box-shadow: 0 0 0 1px var(--catalog-surface-canvas);
}

.catalog-product-card :is(button, a):focus-visible {
    outline: 2px solid var(--catalog-color-focus);
    outline-offset: 2px;
}

.catalog-product-card-body {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-width: 0;
    padding: var(--catalog-space-lg);
}

.catalog-product-card-title {
    color: var(--catalog-text-primary);
    font-family: var(--catalog-font-heading);
    font-size: var(--catalog-product-card-text-size);
    font-weight: 400;
    line-height: 1.2;
    min-height: 2.4em;
    overflow-wrap: anywhere;
}

.catalog-product-card-title a {
    color: inherit;
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.catalog-product-card-purchase {
    margin-top: auto;
    padding-top: var(--catalog-space-sm);
}

.catalog-product-card-purchase [data-product-price] {
    font-size: var(--catalog-product-card-price-size);
    font-weight: 750;
    line-height: 1.2;
}

.catalog-product-card-status-row {
    align-items: center;
    display: flex;
    gap: var(--catalog-space-sm);
    justify-content: space-between;
    margin-bottom: var(--catalog-space-sm);
    min-width: 0;
}

.catalog-product-card-status-row [data-product-stock] {
    flex: 0 0 auto;
    font-size: var(--catalog-product-card-text-size);
    font-weight: 400;
    padding: 0;
    white-space: nowrap;
}

.catalog-product-card-code {
    color: var(--catalog-product-card-code-color);
    display: -webkit-box;
    flex: 0 1 auto;
    font-size: var(--catalog-product-card-text-size);
    margin-left: auto;
    min-width: 0;
    overflow-wrap: anywhere;
    text-align: right;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
}

@media (prefers-reduced-motion: reduce) {
    .catalog-product-card,
    .catalog-product-card-arrow {
        transition: none !important;
    }
}

.catalog-products-slider {
    margin-left: calc(var(--catalog-space-xs) * -1);
    margin-right: calc(var(--catalog-space-xs) * -1);
    padding: var(--catalog-space-xs);
}

.catalog-products-slider.hidden {
    display: none;
}

.catalog-products-slider .swiper-slide {
    display: flex;
    height: auto;
}

.catalog-products-slider .catalog-product-card {
    height: 100%;
    width: 100%;
}

.catalog-categories-slider .swiper-slide {
    display: flex;
    height: auto;
    min-height: var(--catalog-category-card-height);
    width: min(82vw, 20rem);
}

.catalog-categories-slider .catalog-category-card {
    flex: 1 1 auto;
    height: var(--catalog-category-card-height);
    min-height: var(--catalog-category-card-height);
    width: 100%;
}

.catalog-categories-slider .catalog-category-card-body h3 {
    display: -webkit-box;
    min-height: 3.05rem;
    overflow: hidden;
    overflow-wrap: normal;
    text-wrap: pretty;
    word-break: normal;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.catalog-home-categories-slider {
    min-width: 0;
}

.catalog-home-categories-slider.swiper-initialized {
    margin-left: calc(var(--catalog-space-xs) * -1);
    margin-right: calc(var(--catalog-space-xs) * -1);
    overflow: hidden;
    padding: var(--catalog-space-xs);
}

.catalog-home-categories-slider.swiper-initialized .catalog-category-grid {
    display: flex;
    gap: 0;
}

.catalog-home-categories-slider.swiper-initialized .catalog-category-card {
    flex: 0 0 auto;
    width: 100%;
}

.catalog-category-fallback {
    display: grid;
    gap: 0.5rem;
    list-style: none;
    padding: 0;
}

.catalog-category-fallback a {
    background: var(--catalog-surface-canvas);
    border: 1px solid var(--catalog-border-soft);
    border-radius: var(--catalog-radius);
    color: var(--catalog-text-primary);
    display: block;
    font-weight: 650;
    padding: 0.875rem 1rem;
    text-decoration: none;
}

.catalog-products-slider-controls {
    align-items: center;
    gap: var(--catalog-space-md);
    justify-content: center;
    margin-top: var(--catalog-space-xl);
}

.catalog-products-slider-controls .catalog-slider-button {
    flex: 0 0 2.75rem;
}

.catalog-products-slider-pagination {
    min-width: 0;
    overflow: hidden;
}

.catalog-slider-button {
    align-items: center;
    background: var(--catalog-surface-canvas);
    border: 1px solid var(--catalog-border-soft);
    border-radius: var(--catalog-radius);
    color: var(--catalog-text-primary);
    cursor: pointer;
    display: inline-flex;
    font-size: 1.5rem;
    font-weight: 800;
    height: var(--catalog-control-height);
    justify-content: center;
    line-height: 1;
    transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease, opacity 0.15s ease;
    width: var(--catalog-control-height);
}

.catalog-slider-button:hover,
.catalog-slider-button:focus {
    background: var(--catalog-color-primary);
    border-color: var(--catalog-color-primary);
    color: var(--catalog-text-on-dark);
    outline: none;
}

.catalog-slider-button:disabled,
.catalog-slider-button.swiper-button-disabled {
    cursor: not-allowed;
    opacity: 0.45;
}

.catalog-products-slider-pagination {
    align-items: center;
    display: flex;
    gap: var(--catalog-space-xs);
    justify-content: center;
    min-height: var(--catalog-space-lg);
    width: auto;
}

.catalog-products-slider-pagination .swiper-pagination-bullet {
    background: var(--catalog-text-muted);
    margin: 0;
    opacity: 0.35;
}

.catalog-products-slider-pagination .swiper-pagination-bullet-active {
    background: var(--catalog-color-primary);
    opacity: 1;
}

.catalog-universal-slider {
    min-width: 0;
}

.catalog-universal-slider--align-left {
    margin-left: 0;
    margin-right: auto;
}

.catalog-universal-slider--align-center {
    margin-left: auto;
    margin-right: auto;
}

.catalog-universal-slider--align-right {
    margin-left: auto;
    margin-right: 0;
}

.catalog-universal-slider[hidden] {
    display: none;
}

.catalog-universal-slider__viewport {
    max-width: 100%;
    min-width: 0;
    overflow: hidden;
}

.catalog-universal-slider__slide,
.catalog-universal-slider__link,
.catalog-universal-slider__image {
    width: 100%;
}

.catalog-universal-slider__link,
.catalog-universal-slider__image {
    display: block;
}

.catalog-universal-slider__image {
    height: auto;
}

.catalog-universal-slider__controls {
    align-items: center;
    display: flex;
    gap: var(--catalog-space-md);
    justify-content: center;
    margin-top: var(--catalog-space-md);
}

.catalog-universal-slider__pagination {
    flex: 0 1 auto;
}

.catalog-universal-slider__arrow {
    flex: 0 0 var(--catalog-control-height);
}

.catalog-home-slider-shell {
    display: flow-root;
}

.catalog-home-slider-shell > [data-slider-placement="home_top"] {
    margin-top: 25px;
}

.catalog-carousel-stage {
    overflow: visible;
    position: relative;
}

.catalog-carousel-stage > .catalog-carousel-prev,
.catalog-carousel-stage > .catalog-carousel-next {
    position: absolute;
    top: 50%;
    z-index: 2;
}

.catalog-carousel-prev {
    left: 0;
    transform: translate(-50%, -50%);
}

.catalog-carousel-next {
    right: 0;
    transform: translate(50%, -50%);
}

@media (max-width: 767px) {
    .catalog-carousel-stage > .catalog-carousel-prev,
    .catalog-carousel-stage > .catalog-carousel-next {
        height: calc(2 * var(--catalog-space-lg));
        width: calc(2 * var(--catalog-space-lg));
    }

    .catalog-universal-slider--hidden-mobile {
        display: none;
    }
}

.catalog-carousel-viewport {
    overflow: hidden;
}

.catalog-carousel:has(> .catalog-products-slider-controls.hidden) .catalog-carousel-stage > button {
    display: none;
}

@layer components {
    .catalog-categories-slider.catalog-carousel > .catalog-products-slider-controls {
        display: flex;
    }
}

@media (min-width: 768px) and (max-width: 1023px) {
    .catalog-universal-slider--hidden-tablet {
        display: none;
    }
}

@media (min-width: 1024px) {
    .catalog-universal-slider--hidden-desktop {
        display: none;
    }
}

.catalog-stock-badge {
    background: var(--catalog-color-warning-bg);
    border-radius: var(--catalog-radius);
    color: var(--catalog-color-warning);
    flex-shrink: 0;
    font-size: 0.75rem;
    font-weight: 700;
    padding: 0.375rem 0.625rem;
    white-space: nowrap;
}

.catalog-stock-badge.is-available {
    background: var(--catalog-color-success-bg);
    color: var(--catalog-color-success);
}

.catalog-stock-badge.is-unavailable {
    background: var(--catalog-color-error-bg);
    color: var(--catalog-color-error);
}

.catalog-icon-action {
    align-items: center;
    background: var(--catalog-surface-card);
    border: 1px solid var(--catalog-border-soft);
    border-radius: var(--catalog-radius);
    color: var(--catalog-text-muted);
    display: inline-flex;
    font-size: 1.125rem;
    font-weight: 800;
    height: var(--catalog-control-height);
    justify-content: center;
    width: var(--catalog-control-height);
}

.catalog-icon-action:hover,
.catalog-icon-action.is-added,
.catalog-icon-action.is-active {
    background: var(--catalog-surface-dark);
    border-color: var(--catalog-surface-dark);
    color: var(--catalog-text-on-dark);
}

.catalog-icon-action.is-error {
    background: var(--catalog-color-error-bg);
    border-color: var(--catalog-color-error-border);
    color: var(--catalog-color-error);
}

.catalog-icon-action:disabled {
    cursor: not-allowed;
    opacity: 0.55;
}

.catalog-primary-button.is-loading,
.catalog-icon-action.is-loading {
    opacity: 0.78;
}

.catalog-primary-button,
.catalog-secondary-button,
.catalog-detail-button,
.catalog-icon-action,
.catalog-product-gallery-thumb,
.catalog-quantity-button {
    transition-duration: 0.15s;
    transition-property: background-color, border-color, box-shadow, color, opacity, transform;
    transition-timing-function: ease;
}

.catalog-primary-button:active:not(:disabled),
.catalog-secondary-button:active:not(:disabled),
.catalog-detail-button:active,
.catalog-icon-action:active:not(:disabled),
.catalog-product-gallery-thumb:active:not(:disabled),
.catalog-quantity-button:active:not(:disabled) {
    transform: translateY(1px) scale(0.985);
}

.catalog-product-summary,
.catalog-product-gallery,
.catalog-attributes {
    min-width: 0;
}

.catalog-product-summary {
    background: var(--catalog-surface-canvas);
    border: 1px solid var(--catalog-border-soft);
    border-radius: var(--catalog-radius);
    padding: 1.25rem;
    overflow-wrap: anywhere;
}

.catalog-product-left {
    display: contents;
}

.catalog-product-left > .catalog-product-gallery {
    order: 1;
}

.catalog-product-summary-column {
    min-width: 0;
    order: 2;
}

main:has([data-product-page]) [data-breadcrumb-list] > li,
main:has([data-product-page]) [data-breadcrumb-list] > li > :last-child {
    min-width: 0;
    max-width: 100%;
    overflow-wrap: anywhere;
}

.catalog-product-details {
    display: grid;
    gap: var(--catalog-space-2xl);
    min-width: 0;
    order: 3;
    overflow-wrap: anywhere;
}

.catalog-product-details:has(> :not(.hidden)) {
    margin-top: var(--catalog-space-sm);
}

.catalog-product-details .catalog-attribute-row > * {
    min-width: 0;
    overflow-wrap: anywhere;
}

@media (min-width: 1024px) {
    .catalog-product-layout {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        align-items: stretch;
    }

    .catalog-product-left {
        display: block;
        min-width: 0;
    }

    .catalog-product-details:has(> :not(.hidden)) {
        margin-top: var(--catalog-space-2xl);
    }

    .catalog-product-summary.is-sticky {
        position: sticky;
        top: var(--catalog-product-sticky-top, var(--catalog-space-lg));
    }
}

.catalog-product-gallery-main {
    align-items: center;
    aspect-ratio: 1 / 1;
    background: var(--catalog-surface-card);
    border: 1px solid var(--catalog-border-soft);
    border-radius: var(--catalog-radius);
    display: flex;
    justify-content: center;
    overflow: hidden;
    position: relative;
}

.catalog-product-gallery-open {
    position: absolute;
    inset: 0;
    cursor: zoom-in;
    z-index: 1;
}

.catalog-product-gallery-open:focus-visible {
    outline-offset: -4px !important;
}

.catalog-product-gallery-open[hidden] {
    display: none;
}

.catalog-product-gallery-image {
    height: 100%;
    object-fit: contain;
    width: 100%;
}

.catalog-product-gallery-image.hidden,
.catalog-product-gallery-placeholder.hidden {
    display: none;
}

.catalog-product-gallery-placeholder {
    align-items: center;
    background: var(--catalog-surface-placeholder);
    color: var(--catalog-color-primary);
    display: flex;
    font-family: var(--catalog-font-heading);
    font-size: 3rem;
    font-weight: 800;
    height: 100%;
    justify-content: center;
    width: 100%;
}

.catalog-product-gallery-strip {
    --catalog-gallery-thumb-size: calc((100% - 3 * var(--catalog-space-md)) / 4);
    align-items: center;
    display: grid;
    gap: var(--catalog-space-sm);
    grid-template-columns: minmax(0, 1fr);
    margin-top: 0.75rem;
}

.catalog-product-gallery-strip.has-overflow {
    grid-template-columns: var(--catalog-control-height) minmax(0, 1fr) var(--catalog-control-height);
}

.catalog-product-gallery-strip > .catalog-carousel-stage {
    margin-inline: calc(-1 * var(--catalog-space-xs));
    min-width: 0;
}

.catalog-product-gallery-strip.has-overflow > .catalog-carousel-stage {
    grid-column: 2;
}

.catalog-product-gallery-strip[hidden],
.catalog-product-gallery-strip [hidden] {
    display: none;
}

.catalog-product-gallery-thumbs {
    display: flex;
    flex-wrap: nowrap;
    gap: var(--catalog-space-md);
    min-width: 0;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    padding: var(--catalog-space-xs);
    margin: 0;
    scrollbar-width: none;
}

.catalog-product-gallery-thumbs::-webkit-scrollbar {
    display: none;
}

.catalog-product-gallery-thumb {
    aspect-ratio: 1 / 1;
    background: var(--catalog-surface-canvas);
    border: 1px solid var(--catalog-border-soft);
    border-radius: var(--catalog-radius);
    flex: 0 0 var(--catalog-gallery-thumb-size);
    overflow: hidden;
    padding: 0.25rem;
    width: var(--catalog-gallery-thumb-size);
}

.catalog-product-gallery-thumb.is-active {
    border-color: var(--catalog-color-primary);
    box-shadow: var(--catalog-shadow-focus-sm);
}

.catalog-product-gallery-thumb img {
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.catalog-product-chip {
    background: var(--catalog-surface-card);
    border: 1px solid var(--catalog-border-soft);
    border-radius: var(--catalog-radius);
    color: var(--catalog-text-secondary);
    display: inline-flex;
    padding: 0.375rem 0.625rem;
}

.catalog-product-chip-main {
    background: var(--catalog-surface-dark);
    border-color: var(--catalog-surface-dark);
    color: var(--catalog-text-on-dark);
}

.catalog-product-description {
    background: var(--catalog-surface-canvas);
    border: 1px solid var(--catalog-border-soft);
    border-radius: var(--catalog-radius);
    color: var(--catalog-text-secondary);
    line-height: 1.75;
    padding: 1.25rem;
    white-space: pre-line;
    overflow-wrap: anywhere;
}

.catalog-product-lightbox-open {
    overflow: hidden;
}

.catalog-product-lightbox {
    --catalog-lightbox-control-gap: var(--catalog-space-sm);
    --catalog-lightbox-edge: var(--catalog-space-md);
    --catalog-lightbox-control-inset: calc(var(--catalog-lightbox-edge) + var(--catalog-control-height) + var(--catalog-space-sm));
    background: var(--catalog-surface-dark);
    color: var(--catalog-text-on-dark);
    border: 0;
    margin: 0;
    padding: var(--catalog-lightbox-edge);
    width: 100%;
    max-width: none;
    height: 100dvh;
    max-height: none;
    overflow: hidden;
}

.catalog-product-lightbox:not([open]),
.catalog-product-lightbox [hidden] {
    display: none;
}

.catalog-product-lightbox::backdrop {
    background: var(--catalog-overlay-dim);
}

.catalog-product-lightbox-toolbar {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: var(--catalog-lightbox-control-gap);
    min-height: var(--catalog-control-height);
}

[data-product-lightbox-counter] {
    margin-right: auto;
    font-variant-numeric: tabular-nums;
}

.catalog-product-lightbox-control {
    min-height: var(--catalog-control-height);
    min-width: var(--catalog-control-height);
    padding-inline: var(--catalog-space-md);
    background: var(--catalog-surface-canvas);
    color: var(--catalog-text-primary);
    border: 1px solid var(--catalog-border);
    border-radius: var(--catalog-radius);
    font-weight: 700;
}

.catalog-product-lightbox-control:hover:not(:disabled) {
    background: var(--catalog-surface-muted);
}

.catalog-product-lightbox-control:focus-visible,
.catalog-product-lightbox-viewport:focus-visible {
    outline-color: var(--catalog-color-focus-on-dark) !important;
}

.catalog-product-lightbox-control:disabled {
    cursor: default;
}

.catalog-product-lightbox-viewport {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    height: calc(100% - var(--catalog-control-height) - var(--catalog-space-md));
    margin-top: var(--catalog-space-md);
    margin-inline: var(--catalog-lightbox-control-inset);
    min-width: 0;
    overflow: auto;
    overscroll-behavior: contain;
    touch-action: pan-y pinch-zoom;
}

.catalog-product-lightbox-image {
    display: block;
    max-width: 100%;
    max-height: 100%;
    flex: 0 0 auto;
    object-fit: contain;
}

.catalog-product-lightbox-viewport.is-zoomed {
    display: block;
    touch-action: auto;
}

.catalog-product-lightbox-viewport.is-zoomed .catalog-product-lightbox-image {
    max-width: none;
    max-height: none;
    margin: auto;
}

.catalog-product-lightbox-message {
    position: absolute;
    text-align: center;
}

.catalog-product-lightbox-message [data-product-lightbox-retry] {
    margin-top: var(--catalog-space-md);
}

.catalog-product-lightbox-prev,
.catalog-product-lightbox-next {
    position: absolute;
    top: 50%;
}

.catalog-product-lightbox-prev {
    left: var(--catalog-lightbox-edge);
}

.catalog-product-lightbox-next {
    right: var(--catalog-lightbox-edge);
}

@media (max-width: 639px) {
    .catalog-product-lightbox-viewport {
        margin-inline: 0;
        height: calc(100% - 2 * var(--catalog-control-height) - 2 * var(--catalog-space-md));
    }

    .catalog-product-lightbox-prev,
    .catalog-product-lightbox-next {
        top: auto;
        bottom: var(--catalog-lightbox-edge);
    }
}

.catalog-quantity-row {
    display: grid;
    grid-template-columns: 2.75rem minmax(0, 1fr) 2.75rem;
    max-width: 18rem;
}

.catalog-quantity-compact .catalog-quantity-row {
    max-width: 12rem;
}

.catalog-quantity-button,
.catalog-quantity-input {
    border: 1px solid var(--catalog-border);
    min-height: 2.75rem;
}

.catalog-quantity-button {
    align-items: center;
    background: var(--catalog-surface-canvas);
    color: var(--catalog-text-primary);
    display: inline-flex;
    font-size: 1.25rem;
    font-weight: 800;
    justify-content: center;
}

.catalog-quantity-button:first-child {
    border-radius: var(--catalog-radius);
}

.catalog-quantity-button:last-child {
    border-radius: var(--catalog-radius);
}

.catalog-quantity-input {
    border-left: 0;
    border-right: 0;
    text-align: center;
    width: 100%;
}

.catalog-unit-conversion {
    background: var(--catalog-surface-card);
    border: 1px solid var(--catalog-border-soft);
    border-radius: var(--catalog-radius);
    color: var(--catalog-text-secondary);
    font-size: 0.8125rem;
    font-weight: 700;
    line-height: 1.45;
    margin-top: 0.5rem;
    max-width: 24rem;
    padding: 0.625rem 0.75rem;
}

.catalog-unit-conversion.hidden {
    display: none;
}

.catalog-unit-conversion p + p {
    color: var(--catalog-text-primary);
    margin-top: 0.25rem;
}

.catalog-cart-item,
.catalog-cart-summary {
    background: var(--catalog-surface-canvas);
    border: 1px solid var(--catalog-border-soft);
    border-radius: var(--catalog-radius);
    box-shadow: var(--catalog-shadow-card);
}

.catalog-cart-item {
    display: grid;
    gap: 1rem;
    grid-template-columns: 7rem minmax(0, 1fr);
    min-width: 0;
    padding: 1rem;
}

.catalog-cart-item-image {
    align-items: center;
    aspect-ratio: 1 / 1;
    background: var(--catalog-surface-card);
    border: 1px solid var(--catalog-border-soft);
    border-radius: var(--catalog-radius);
    color: var(--catalog-color-primary);
    display: flex;
    font-family: var(--catalog-font-heading);
    font-size: 2rem;
    font-weight: 900;
    justify-content: center;
    min-width: 0;
    overflow: hidden;
}

.catalog-cart-item-image img {
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.catalog-cart-item-main {
    display: grid;
    gap: 1rem;
    min-width: 0;
}

.catalog-cart-item-title {
    color: var(--catalog-text-primary);
    display: inline-block;
    font-family: var(--catalog-font-heading);
    font-size: 1.125rem;
    font-weight: 900;
    line-height: 1.35;
    overflow-wrap: break-word;
    word-break: normal;
}

.catalog-cart-item-title:hover {
    color: var(--catalog-color-primary);
}

.catalog-cart-item-controls {
    align-items: end;
    display: grid;
    gap: 1rem;
    grid-template-columns: minmax(7rem, 0.7fr) minmax(10rem, 0.8fr) minmax(7rem, 0.7fr);
    min-width: 0;
}

.catalog-cart-item-value {
    font-variant-numeric: tabular-nums;
    min-height: 1.75rem;
}

.catalog-cart-item-footer {
    align-items: center;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    min-width: 0;
}

.catalog-cart-warning {
    background: var(--catalog-surface-card);
    border: 1px solid var(--catalog-border-soft);
    border-radius: var(--catalog-radius);
    color: var(--catalog-text-secondary);
    display: inline-flex;
    font-size: 0.75rem;
    font-weight: 600;
    line-height: 1.2;
    padding: 0.375rem 0.625rem;
}

.catalog-cart-remove {
    align-items: center;
    background: transparent;
    border: 0;
    border-radius: var(--catalog-radius);
    color: var(--catalog-color-error);
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 0.8125rem;
    font-weight: 650;
    gap: 0.375rem;
    min-height: 2.75rem;
    padding: 0.5rem 0.625rem;
    transition: background-color 0.15s ease, transform 0.15s ease;
}

.catalog-cart-remove:hover {
    background: var(--catalog-color-error-bg);
    color: var(--catalog-color-error);
}

.catalog-cart-remove:active:not(:disabled) {
    transform: translateY(1px);
}

.catalog-cart-remove:disabled {
    cursor: not-allowed;
    opacity: 0.55;
}

.catalog-cart-item[aria-busy="true"] {
    opacity: 0.72;
}

.catalog-cart-summary {
    min-width: 0;
    padding: 1.25rem;
    position: sticky;
    top: 1rem;
}

.catalog-cart-summary .catalog-field-control {
    max-width: 100%;
    min-width: 0;
}

[data-cart-checkout-warnings] p + p {
    margin-top: 0.5rem;
}

.catalog-order-card,
.catalog-order-panel,
.catalog-order-item,
.catalog-order-history-item {
    background: var(--catalog-surface-canvas);
    border: 1px solid var(--catalog-border-soft);
    border-radius: var(--catalog-radius);
    box-shadow: var(--catalog-shadow-card);
    min-width: 0;
}

.catalog-order-card {
    display: grid;
    gap: 1.25rem;
    grid-template-columns: minmax(0, 1fr) auto;
    padding: 1.25rem;
}

.catalog-order-card .catalog-secondary-button {
    align-self: start;
}

.catalog-order-panel {
    padding: 1.25rem;
}

.catalog-order-meta-label {
    color: var(--catalog-text-secondary);
    font-size: 0.8125rem;
    font-weight: 600;
}

.catalog-order-meta-value {
    color: var(--catalog-text-primary);
    font-size: 0.9375rem;
    font-weight: 700;
    margin-top: 0.25rem;
    overflow-wrap: anywhere;
}

.catalog-order-status {
    background: var(--catalog-color-success-bg);
    border: 1px solid var(--catalog-color-success-border);
    border-radius: var(--catalog-radius);
    color: var(--catalog-color-success);
    display: inline-flex;
    font-size: 0.8125rem;
    font-weight: 700;
    line-height: 1.2;
    padding: 0.45rem 0.75rem;
}

.catalog-order-status[data-status="cancelled"],
.catalog-order-status[data-status="rejected"] {
    background: var(--catalog-color-error-bg);
    border-color: var(--catalog-color-error-border);
    color: var(--catalog-color-error);
}

.catalog-order-status[data-status="done"],
.catalog-order-status[data-status="completed"] {
    background: var(--catalog-color-success-bg);
    border-color: var(--catalog-color-success-border);
    color: var(--catalog-color-success);
}

.catalog-order-items {
    display: grid;
    gap: 1rem;
}

.catalog-order-item {
    display: grid;
    gap: 1rem;
    padding: 1rem;
}

.catalog-order-item-grid {
    display: grid;
    gap: 0.875rem;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.catalog-order-item-grid dt {
    color: var(--catalog-text-secondary);
    font-size: 0.75rem;
    font-weight: 600;
}

.catalog-order-item-grid dd {
    color: var(--catalog-text-primary);
    font-size: 0.875rem;
    font-weight: 700;
    margin-top: 0.25rem;
    overflow-wrap: anywhere;
}

.catalog-order-history-item {
    display: grid;
    gap: 0.5rem;
    overflow-wrap: anywhere;
    padding: 1rem 1rem 1rem 2.75rem;
    position: relative;
}

.catalog-order-history-item [data-order-history-comment] {
    hyphens: auto;
    overflow-wrap: anywhere;
}

.catalog-order-history-item::before {
    background: var(--catalog-surface-muted);
    border: 2px solid var(--catalog-color-success-border);
    border-radius: var(--catalog-radius);
    content: "";
    height: 0.75rem;
    left: 1rem;
    position: absolute;
    top: 1.25rem;
    width: 0.75rem;
}

.catalog-order-history-item.is-current {
    border-color: var(--catalog-color-success-border);
}

.catalog-order-history-item.is-current::before {
    background: var(--catalog-color-success);
}

.catalog-attribute-row {
    display: grid;
    gap: 0.5rem;
    grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
    padding: 0.875rem 1rem;
}

.catalog-attribute-row dt {
    color: var(--catalog-text-secondary);
    font-size: 0.875rem;
    font-weight: 600;
}

.catalog-attribute-row dd {
    color: var(--catalog-text-primary);
    font-size: 0.875rem;
    min-width: 0;
    overflow-wrap: anywhere;
}

.catalog-filter-panel {
    --catalog-filter-font: var(--catalog-font-family);
    --catalog-filter-ink: var(--catalog-text-primary);
    --catalog-filter-action: var(--catalog-color-primary);
    --catalog-filter-border: var(--catalog-border-soft);
    --catalog-filter-list-height: 400px;
    --catalog-filter-row-height: 32px;
    background: var(--catalog-surface-canvas);
    border: 1px solid var(--catalog-border-soft);
    border-radius: var(--catalog-radius);
    font-family: var(--catalog-filter-font);
}

.catalog-filter-panel .font-heading {
    font-family: var(--catalog-filter-font);
}

.catalog-facet-values {
    padding: var(--catalog-space-xs);
    margin-inline: calc(-1 * var(--catalog-space-xs));
}

.catalog-facet-values.is-expanded {
    max-height: var(--catalog-filter-list-height);
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
}

.catalog-facet-value {
    position: relative;
    display: flex;
    align-items: center;
    gap: var(--catalog-space-sm);
    min-height: var(--catalog-filter-row-height);
    padding-block: var(--catalog-space-xs);
    color: var(--catalog-filter-ink);
    cursor: pointer;
    font-size: 0.875rem;
    line-height: 1;
}

.catalog-facet-value[hidden],
.catalog-filter-preview[hidden],
.catalog-filter-panel button[hidden] {
    display: none;
}

.catalog-facet-value input {
    flex-shrink: 0;
    width: 1rem;
    height: 1rem;
    accent-color: var(--catalog-filter-action);
}

.catalog-facet-value-text {
    min-width: 0;
    overflow-wrap: anywhere;
    line-height: 1;
}

.catalog-facet-value-count {
    align-self: flex-start;
    margin-block-start: var(--catalog-space-xs);
    color: var(--catalog-text-secondary);
    font-variant-numeric: tabular-nums;
    line-height: 1;
}

.catalog-facet-values.is-collapsed .catalog-facet-value:nth-child(5)::after {
    content: "";
    position: absolute;
    inset-block: 0;
    inset-inline: var(--catalog-space-xl) 0;
    background: linear-gradient(to bottom, transparent, var(--catalog-surface-canvas));
    pointer-events: none;
}

.catalog-facet-values.is-collapsed .catalog-facet-value:nth-child(5):is(:focus-within, :hover)::after {
    opacity: 0;
}

.catalog-facet-values-toggle {
    display: inline-flex;
    align-items: center;
    min-height: var(--catalog-filter-row-height);
    color: var(--catalog-filter-action);
    font-size: 0.875rem;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 0.2em;
}

.catalog-facet-values-toggle:is(:hover, :active) {
    color: var(--catalog-filter-ink);
}

.catalog-filter-preview {
    position: relative;
    display: grid;
    gap: var(--catalog-space-sm);
    padding: var(--catalog-space-md);
    border: 1px solid var(--catalog-filter-border);
    border-radius: var(--catalog-radius);
    background: var(--catalog-surface-canvas);
    box-shadow: var(--catalog-shadow-hover);
    overflow-wrap: anywhere;
}

/* Overlay products without changing the catalog columns or their gap. */
@media (min-width: 1024px) {
    [data-catalog-filters] {
        position: relative;
        z-index: 5;
        overflow: visible;
    }

    [data-filter-variant="desktop"] {
        overflow: visible;
    }

    [data-filter-variant="desktop"] [data-catalog-filter-body] {
        position: relative;
    }

    [data-filter-variant="desktop"] .catalog-filter-preview {
        position: absolute;
        width: 8rem;
        margin: 0;
        padding: 0;
        border: 0;
        visibility: hidden;
        pointer-events: none;
        z-index: 10;
    }

    [data-filter-variant="desktop"] .catalog-filter-preview.is-positioned {
        visibility: visible;
        pointer-events: auto;
    }

    [data-filter-variant="desktop"] .catalog-filter-preview .catalog-primary-button {
        padding-inline: var(--catalog-space-sm);
    }
}

.catalog-filter-preview-status {
    color: var(--catalog-filter-ink);
    font-size: 0.875rem;
}

.catalog-filter-preview .catalog-primary-button,
.catalog-filter-panel [data-catalog-filter-apply] {
    background: var(--catalog-filter-action);
    color: var(--catalog-text-on-dark);
}

.catalog-filter-preview .catalog-primary-button:is(:hover, :active),
.catalog-filter-panel [data-catalog-filter-apply]:is(:hover, :active) {
    background: var(--catalog-filter-ink);
}

.catalog-filter-panel [aria-busy="true"] .catalog-primary-button,
.catalog-filter-panel .catalog-primary-button[aria-busy="true"] {
    opacity: 1;
}

.catalog-filter-drawer {
    border-radius: var(--catalog-radius);
    background: var(--catalog-surface-canvas);
    bottom: 0;
    box-shadow: var(--catalog-shadow-drawer);
    max-width: 24rem;
    max-height: 100dvh;
    overflow: hidden;
    position: fixed;
    right: 0;
    top: 0;
    transform: translateX(100%);
    transition: transform 0.2s ease;
    width: min(100%, 24rem);
    z-index: 60;
}

.catalog-filter-drawer .catalog-filter-panel {
    border: 0;
    border-radius: var(--catalog-radius);
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
}

.catalog-filter-drawer .catalog-filter-body {
    flex: 1 1 auto;
    min-height: 0;
    overscroll-behavior: contain;
    overflow-y: auto;
}

.catalog-filter-drawer .catalog-filter-actions {
    background: var(--catalog-surface-canvas);
    bottom: -1rem;
    padding-bottom: 0.25rem;
    padding-top: 0.75rem;
    position: sticky;
    z-index: 1;
}

.catalog-filter-drawer.is-open {
    transform: translateX(0);
}

.catalog-filter-overlay {
    background: var(--catalog-overlay-dim);
    display: none;
    inset: 0;
    position: fixed;
    z-index: 50;
}

.catalog-filter-overlay.is-open {
    display: block;
}

.catalog-filter-close {
    align-items: center;
    border: 1px solid var(--catalog-border);
    border-radius: var(--catalog-radius);
    display: inline-flex;
    font-size: 1.5rem;
    height: 2.25rem;
    justify-content: center;
    line-height: 1;
    width: 2.25rem;
}

.catalog-filter-open {
    overflow: hidden;
}

.catalog-pagination {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    justify-content: center;
}

.catalog-pagination-pages {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    justify-content: center;
}

.catalog-pagination-button.is-active {
    background: var(--catalog-color-primary);
    border-color: var(--catalog-color-primary);
    color: var(--catalog-text-on-dark);
}

@media (max-width: 639px) {
    .catalog-pagination,
    .catalog-pagination-pages {
        flex-wrap: nowrap;
        gap: var(--catalog-space-xxs);
    }

    .catalog-pagination-button {
        min-width: var(--catalog-space-xl);
        padding-inline: var(--catalog-space-xs);
    }
}

.catalog-category-grid,
.catalog-home-benefits,
.catalog-home-metrics {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(1, minmax(0, 1fr));
}

.catalog-category-grid.hidden,
.catalog-home-benefits.hidden {
    display: none;
}

.catalog-category-card {
    height: var(--catalog-category-card-height);
    min-width: 0;
}

.catalog-category-card-link {
    background: var(--catalog-surface-card);
    border: 1px solid var(--catalog-border-soft);
    border-radius: var(--catalog-radius);
    display: block;
    height: 100%;
    min-width: 0;
    overflow: hidden;
    position: relative;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.catalog-category-card-link::after {
    background: linear-gradient(180deg, var(--catalog-overlay-category-start) 20%, var(--catalog-overlay-category-end) 100%);
    content: "";
    inset: 0;
    pointer-events: none;
    position: absolute;
    z-index: 1;
}

.catalog-category-card-link:hover {
    border-color: var(--catalog-border);
    box-shadow: var(--catalog-shadow-hover);
    transform: translateY(-2px);
}

.catalog-category-card-link:focus-visible {
    border-color: var(--catalog-color-focus);
    box-shadow: var(--catalog-shadow-focus);
}

.catalog-category-card-link:active {
    transform: translateY(1px) scale(0.99);
}

.catalog-category-card-link:hover h3 {
    color: var(--catalog-text-on-dark);
}

.catalog-category-card-image {
    align-items: center;
    background: var(--catalog-surface-placeholder);
    color: var(--catalog-color-primary);
    display: flex;
    inset: 0;
    justify-content: center;
    min-width: 0;
    overflow: hidden;
    position: absolute;
    z-index: 0;
}

.catalog-category-card-image img {
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.catalog-category-card-image img.hidden,
.catalog-category-card-image span.hidden {
    display: none;
}

.catalog-category-card-image span {
    font-family: var(--catalog-font-heading);
    font-size: 3rem;
    font-weight: 900;
}

.catalog-category-card-body {
    bottom: 0;
    min-width: 0;
    padding: 1.25rem;
    position: absolute;
    text-align: center;
    width: 100%;
    z-index: 2;
}

.catalog-category-card-body [data-category-meta] {
    display: none;
}

.catalog-category-card-body h3 {
    color: var(--catalog-text-on-dark);
    font-family: var(--catalog-font-heading);
    font-size: 1.125rem;
    font-weight: 900;
    line-height: 1.35;
    margin: 0 auto;
    overflow-wrap: normal;
    text-shadow: var(--catalog-shadow-image-text);
    text-wrap: pretty;
    word-break: normal;
}

.catalog-category-card-body p[data-category-description] {
    display: none;
}

.catalog-home-benefits article,
.catalog-home-metrics > div {
    min-width: 0;
    padding: var(--catalog-space-lg);
}

.catalog-home-benefits h2 {
    color: var(--catalog-text-primary);
    font-family: var(--catalog-font-heading);
    font-size: 1rem;
    font-weight: 900;
    line-height: 1.35;
}

.catalog-home-benefits p,
.catalog-home-metrics dd {
    color: var(--catalog-text-secondary);
    font-size: 0.875rem;
    line-height: 1.6;
    margin-top: var(--catalog-space-sm);
    overflow-wrap: anywhere;
}

.catalog-home-metrics dt {
    color: var(--catalog-color-primary);
    font-family: var(--catalog-font-heading);
    font-size: 2.25rem;
    font-variant-numeric: tabular-nums;
    font-weight: 800;
    line-height: 1.2;
}

.line-clamp-2 {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
}

@media (min-width: 640px) {
    .catalog-product-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .catalog-category-grid,
    .catalog-home-benefits,
    .catalog-home-metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 639px) {
    .catalog-home-categories-slider.swiper-initialized .swiper-slide,
    .catalog-home-categories-slider.swiper-initialized .catalog-category-card {
        height: 230px;
        min-height: 230px;
    }

    .catalog-home-categories-slider.swiper-initialized .catalog-category-card-body h3 {
        display: -webkit-box;
        min-height: 2.6rem;
        overflow: hidden;
        overflow-wrap: normal;
        word-break: normal;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
    }

    .catalog-toolbar {
        display: grid;
        gap: 0.75rem;
        padding: 0.75rem;
    }

    .catalog-toolbar-summary {
        width: 100%;
    }

    .catalog-toolbar-summary [data-catalog-total] {
        font-size: 1.125rem;
    }

    .catalog-toolbar-controls {
        display: grid;
        gap: 0.75rem;
        grid-template-columns: minmax(6.75rem, 0.75fr) minmax(0, 1.45fr);
        width: 100%;
    }

    .catalog-toolbar-field {
        align-items: stretch;
        display: grid;
        gap: 0.375rem;
    }

    .catalog-toolbar-field > span {
        font-size: 0.75rem;
        line-height: 1.25;
    }

    .catalog-toolbar-select {
        max-width: 100%;
        min-width: 0;
        text-overflow: ellipsis;
        width: 100%;
    }

    [data-catalog-page][data-page-mode="root"] .catalog-category-grid {
        gap: 0.75rem;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    [data-catalog-page][data-page-mode="root"] .catalog-category-card {
        height: 210px;
        min-height: 210px;
    }

    [data-catalog-page][data-page-mode="root"] .catalog-category-card-body {
        padding: 0.75rem;
    }

    [data-catalog-page][data-page-mode="root"] .catalog-category-card-body h3 {
        font-size: 0.9375rem;
        line-height: 1.35;
        overflow-wrap: break-word;
        word-break: normal;
    }

    .catalog-settlement-trigger {
        max-width: 8.5rem;
        padding-inline: 0.625rem;
    }

    .catalog-settlement-trigger-copy > span,
    .catalog-settlement-chevron {
        display: none;
    }

    .catalog-header-cart-mobile {
        height: 2.75rem;
        justify-content: center;
        min-height: 2.75rem;
        padding: 0.5rem;
        width: 2.75rem;
    }

    .catalog-settlement-modal {
        align-items: flex-end;
        padding: 0;
    }

    .catalog-settlement-dialog {
        max-height: calc(100dvh - 1rem);
        max-width: none;
        padding: 1.25rem 1rem;
    }

    .catalog-settlement-list {
        max-height: calc(100dvh - 14rem);
    }

    .catalog-product-summary {
        padding: 0.875rem;
    }

    [data-product-page] {
        padding-bottom: 1.5rem;
        padding-top: 0.5rem;
    }

    main:has([data-product-page]) [data-catalog-breadcrumbs] {
        font-size: 0.75rem;
        line-height: 1.4;
        padding-bottom: 0.5rem;
        padding-top: 0.75rem;
    }

    main:has([data-product-page]) [data-breadcrumb-list] {
        gap: 0.375rem;
    }

    .catalog-product-layout {
        gap: 0.875rem;
    }

    .catalog-product-gallery-main {
        aspect-ratio: auto;
        height: clamp(300px, 80vw, 320px);
    }

    .catalog-product-gallery-strip {
        margin-top: 0.5rem;
    }

    .catalog-product-gallery-thumbs {
        gap: 0.5rem;
    }

    .catalog-product-gallery-thumb {
        height: 64px;
        width: 64px;
    }

    [data-product-page] .catalog-product-title {
        font-size: 1.5rem;
        line-height: 1.16;
        margin-top: 0.375rem;
        overflow-wrap: break-word;
        text-wrap: pretty;
        word-break: normal;
    }

    .catalog-product-categories,
    .catalog-product-short-description {
        margin-top: 0.75rem;
    }

    .catalog-product-purchase-panel {
        margin-top: 1rem;
        padding: 0.875rem;
    }

    .catalog-product-purchase-panel > div:first-child {
        align-items: center;
        flex-direction: row;
        gap: 0.75rem;
        justify-content: space-between;
    }

    .catalog-product-specs {
        gap: 0.625rem;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        margin-top: 0.875rem;
    }

    .catalog-product-variant,
    .catalog-product-quantity,
    .catalog-product-actions {
        margin-top: 1rem;
    }

    .catalog-product-actions {
        gap: 0.625rem;
    }

    .catalog-attribute-row {
        grid-template-columns: 1fr;
    }

    .catalog-cart-item {
        gap: 0.75rem;
        grid-template-columns: 5.25rem minmax(0, 1fr);
        padding: 0.875rem;
    }

    .catalog-cart-item-controls {
        align-items: stretch;
        gap: 0.75rem;
        grid-template-columns: 1fr;
    }

    .catalog-cart-item-footer {
        align-items: flex-start;
        flex-wrap: wrap;
    }

    .catalog-cart-summary {
        padding: 1rem;
        position: static;
    }

    .catalog-cart-page-actions {
        align-items: center;
        justify-content: space-between;
        width: 100%;
    }

    .catalog-order-card {
        grid-template-columns: 1fr;
        padding: 1rem;
    }

    .catalog-order-panel {
        padding: 1rem;
    }

    .catalog-order-item-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .catalog-state-block {
        padding: 1.25rem;
    }

    .catalog-state-block--loading {
        padding: 1rem;
    }

    .catalog-category-card-body {
        padding: 0.875rem;
    }
}

.catalog-page-search {
    max-width: 40rem;
    position: relative;
}

[data-catalog-page].is-catalog-landing .catalog-content-layout {
    grid-template-columns: minmax(0, 1fr);
}

[data-catalog-page].is-catalog-landing [data-catalog-filters] {
    display: none;
}

@media (min-width: 1024px) {
    .catalog-product-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .catalog-product-grid--catalog {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .catalog-category-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .catalog-home-benefits,
    .catalog-home-metrics {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

/* 1392 - 64px padding - 320px sidebar - 24px gap = 984px: four 234px cards. */
@media (min-width: 1392px) {
    .catalog-product-grid--catalog {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@keyframes catalogPulse {
    0%,
    100% {
        opacity: 0.35;
        transform: scale(0.9);
    }

    50% {
        opacity: 1;
        transform: scale(1);
    }
}

@keyframes catalogSettlementSpin {
    to {
        transform: rotate(360deg);
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
    }

    .catalog-primary-button:active:not(:disabled),
    .catalog-secondary-button:active:not(:disabled),
    .catalog-detail-button:active,
    .catalog-icon-action:active:not(:disabled),
    .catalog-product-gallery-thumb:active:not(:disabled),
    .catalog-quantity-button:active:not(:disabled) {
        transform: none;
    }

    .catalog-category-card-link:hover,
    .catalog-category-card-link:active,
    .catalog-text-danger:active:not(:disabled),
    .catalog-cart-remove:active:not(:disabled) {
        transform: none;
    }
}

/* Public content */
.catalog-content-hero {
    background: var(--catalog-surface-canvas);
    border-bottom: 1px solid var(--catalog-border-soft);
}

.catalog-content-kicker {
    color: var(--catalog-color-primary);
    font-size: 0.75rem;
    font-weight: 750;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.catalog-content-grid {
    display: grid;
    gap: 2rem 1.25rem;
    grid-template-columns: minmax(0, 1fr);
}

.catalog-content-card {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.catalog-content-card-media {
    aspect-ratio: 16 / 10;
    background: var(--catalog-border-soft);
    border-radius: var(--catalog-radius);
    display: block;
    overflow: hidden;
}

.catalog-content-card-media img {
    height: 100%;
    object-fit: cover;
    transition: transform 240ms ease;
    width: 100%;
}

.catalog-content-card:hover .catalog-content-card-media img {
    transform: scale(1.025);
}

.catalog-content-placeholder {
    align-items: center;
    background: var(--catalog-surface-dark);
    color: var(--catalog-surface-canvas);
    display: flex;
    font-family: var(--catalog-font-heading);
    font-size: clamp(2.5rem, 8vw, 5rem);
    font-weight: 800;
    height: 100%;
    justify-content: center;
    width: 100%;
}

.catalog-content-card-body {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding-top: 1.15rem;
}

.catalog-content-card time,
.catalog-content-article-header time {
    color: var(--catalog-text-secondary);
    font-size: 0.8125rem;
    font-variant-numeric: tabular-nums;
    font-weight: 650;
}

.catalog-content-card h2,
.catalog-home-content-card h3 {
    overflow-wrap: anywhere;
    color: var(--catalog-text-primary);
    font-family: var(--catalog-font-heading);
    font-size: 1.35rem;
    font-weight: 720;
    letter-spacing: -0.02em;
    line-height: 1.2;
    margin-top: 0.6rem;
    text-wrap: balance;
}

.catalog-content-card h2 a:hover,
.catalog-home-content-card:hover h3 {
    color: var(--catalog-color-primary);
}

.catalog-content-card-body > p {
    color: var(--catalog-text-secondary);
    display: -webkit-box;
    font-size: 0.9375rem;
    line-height: 1.65;
    margin-top: 0.8rem;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.catalog-content-carousel .swiper-slide {
    display: flex;
    height: auto;
}

.catalog-home-content-card {
    height: 100%;
    width: 100%;
}

.catalog-home-content-card h3 {
    display: -webkit-box;
    overflow: hidden;
    overflow-wrap: anywhere;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.catalog-home-content-card .catalog-content-card-body > p {
    overflow-wrap: anywhere;
}

.catalog-home-content-card:focus-visible {
    outline-offset: calc(-1 * var(--catalog-space-xs));
}

[data-home-content-carousel] button[hidden] {
    display: none;
}

.catalog-content-card-link,
.catalog-content-back a {
    align-self: flex-start;
    color: var(--catalog-color-primary);
    font-size: 0.875rem;
    font-weight: 720;
    margin-top: auto;
    padding-top: 1.15rem;
    text-decoration: underline;
    text-decoration-color: transparent;
    text-underline-offset: 0.25rem;
}

.catalog-content-card-link:hover,
.catalog-content-back a:hover {
    text-decoration-color: currentColor;
}

.catalog-content-pagination {
    align-items: center;
    color: var(--catalog-text-secondary);
    display: flex;
    flex-wrap: wrap;
    font-size: 0.875rem;
    gap: 1rem;
    justify-content: center;
    margin-top: 3rem;
}

.catalog-content-pagination a {
    background: var(--catalog-surface-canvas);
    border: 1px solid var(--catalog-border);
    border-radius: var(--catalog-radius);
    color: var(--catalog-text-primary);
    font-weight: 700;
    padding: 0.65rem 1rem;
}

.catalog-content-pagination a:hover {
    border-color: var(--catalog-color-primary);
    color: var(--catalog-color-primary);
}

.catalog-content-article {
    margin: 0 auto;
    max-width: var(--catalog-container-max-width);
    padding: 2.5rem 1rem 5rem;
}

.catalog-content-article-header,
.catalog-content-body,
.catalog-content-back {
    margin-left: auto;
    margin-right: auto;
    max-width: 46rem;
}

.catalog-content-article-header time {
    display: block;
    margin-top: 1.25rem;
}

.catalog-content-lead {
    color: var(--catalog-text-primary);
    font-size: clamp(1.125rem, 2vw, 1.35rem);
    line-height: 1.65;
    margin-top: 1.5rem;
    text-wrap: pretty;
}

.catalog-content-cover {
    margin: 2.5rem auto 0;
    max-width: 64rem;
}

.catalog-content-cover img {
    aspect-ratio: 16 / 9;
    border-radius: var(--catalog-radius);
    height: auto;
    object-fit: cover;
    width: 100%;
}

.catalog-content-body {
    color: var(--catalog-text-primary);
    font-size: 1.0625rem;
    line-height: 1.8;
    margin-top: 2.75rem;
    overflow-wrap: anywhere;
}

.catalog-content-body > * + * {
    margin-top: 1.5rem;
}

.catalog-content-body h2,
.catalog-content-body h3,
.catalog-content-body h4 {
    color: var(--catalog-text-primary);
    font-family: var(--catalog-font-heading);
    font-weight: 750;
    letter-spacing: -0.025em;
    line-height: 1.2;
    margin-top: 2.5rem;
    text-wrap: balance;
}

.catalog-content-body h2 { font-size: clamp(1.75rem, 4vw, 2.35rem); }
.catalog-content-body h3 { font-size: clamp(1.4rem, 3vw, 1.8rem); }
.catalog-content-body h4 { font-size: 1.25rem; }

.catalog-content-body a:not([class]) {
    color: var(--catalog-color-primary);
    text-decoration: underline;
    text-decoration-thickness: 0.08em;
    text-underline-offset: 0.2em;
}

.catalog-content-body ul,
.catalog-content-body ol {
    padding-left: 1.5rem;
}

.catalog-content-body ul { list-style: disc; }
.catalog-content-body ol { list-style: decimal; }
.catalog-content-body li + li { margin-top: 0.45rem; }

.catalog-content-body blockquote {
    border-left: 0.25rem solid var(--catalog-color-primary);
    color: var(--catalog-text-primary);
    font-size: 1.15rem;
    margin-bottom: 2rem;
    margin-top: 2rem;
    padding: 0.3rem 0 0.3rem 1.25rem;
}

.catalog-content-body blockquote cite {
    color: var(--catalog-text-secondary);
    display: block;
    font-size: 0.875rem;
    font-style: normal;
    margin-top: 0.7rem;
}

.catalog-content-delimiter {
    border: 0;
    border-top: 1px solid var(--catalog-border);
    margin: 2.75rem 0;
}

.catalog-content-figure,
.catalog-content-video {
    margin-bottom: 2.25rem;
    margin-top: 2.25rem;
}

.catalog-content-figure img,
.catalog-content-gallery-item img {
    border-radius: var(--catalog-radius);
    height: auto;
    max-width: 100%;
    object-fit: cover;
    width: 100%;
}

.catalog-content-figure figcaption,
.catalog-content-gallery-item figcaption,
.catalog-content-video figcaption {
    color: var(--catalog-text-secondary);
    font-size: 0.8125rem;
    line-height: 1.5;
    margin-top: 0.55rem;
}

.catalog-content-gallery {
    display: grid;
    gap: 1rem;
    grid-template-columns: minmax(0, 1fr);
    margin-bottom: 2.25rem;
    margin-top: 2.25rem;
}

.catalog-content-gallery-item {
    min-width: 0;
}

.catalog-content-gallery-item img {
    aspect-ratio: 4 / 3;
}

.catalog-content-video-frame {
    aspect-ratio: 16 / 9;
    background: var(--catalog-surface-dark);
    border-radius: var(--catalog-radius);
    overflow: hidden;
}

/* A local placeholder reserves the same box as the selected external player. */
.catalog-content-video-frame {
    position: relative;
    color: var(--catalog-text-on-dark);
}

.catalog-content-video-placeholder {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--catalog-space-sm);
    padding: var(--catalog-space-md);
    text-align: center;
    line-height: 1.35;
    font-size: 0.875rem;
}

.catalog-content-video-placeholder p {
    margin: 0;
}

.catalog-content-video-load {
    padding: var(--catalog-space-sm) var(--catalog-space-lg);
    color: var(--catalog-text-on-dark);
    background: var(--catalog-color-primary);
    border: 1px solid var(--catalog-text-on-dark);
    border-radius: var(--catalog-radius);
    font-weight: 600;
}

.catalog-content-video-load:hover {
    background: var(--catalog-color-primary-hover);
}

.catalog-content-video-load:focus-visible {
    outline: 2px solid var(--catalog-color-focus-on-dark);
    outline-offset: 3px;
}

.catalog-content-video iframe {
    display: block;
    border: 0;
    height: 100%;
    width: 100%;
}

.catalog-content-cta {
    margin: 2rem 0;
}

.catalog-content-cta-primary,
.catalog-content-cta-secondary {
    border: 1px solid var(--catalog-color-primary);
    border-radius: var(--catalog-radius);
    display: inline-flex;
    font-size: 0.9375rem;
    font-weight: 720;
    justify-content: center;
    line-height: 1.2;
    padding: 0.8rem 1.1rem;
    text-decoration: none;
    transition: background-color 180ms ease, color 180ms ease, transform 180ms ease;
}

.catalog-content-cta-primary {
    background: var(--catalog-color-primary);
    color: var(--catalog-surface-canvas);
}

.catalog-content-cta-primary:hover { background: var(--catalog-color-primary-hover); }
.catalog-content-cta-secondary { color: var(--catalog-color-primary); }
.catalog-content-cta-secondary:hover { background: var(--catalog-surface-muted); }
.catalog-content-cta-primary:active,
.catalog-content-cta-secondary:active { transform: translateY(1px); }

.catalog-content-back {
    border-top: 1px solid var(--catalog-border-soft);
    margin-top: 3rem;
    padding-top: 1.25rem;
}

@media (min-width: 640px) {
    .catalog-content-grid,
    .catalog-content-gallery {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .catalog-content-article {
        padding-left: 1.5rem;
        padding-right: 1.5rem;
    }
}

@media (min-width: 1024px) {
    .catalog-content-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (prefers-reduced-motion: reduce) {
    .catalog-content-card:hover .catalog-content-card-media img,
    .catalog-content-cta-primary:active,
    .catalog-content-cta-secondary:active {
        transform: none;
    }
}

[data-catalog-app] .bg-zinc-950\/40 {
    background-color: var(--catalog-overlay-dim);
}

[data-catalog-app] .divide-stone-200 > :not(:last-child) {
    border-color: var(--catalog-border-soft);
}

@media (hover: hover) {
    [data-catalog-app] .hover\:bg-emerald-50:hover {
        background-color: var(--catalog-surface-muted);
    }
}

[data-catalog-app] :is(button, input, select, textarea):disabled {
    background-color: var(--catalog-surface-muted);
    color: var(--catalog-text-primary);
    opacity: 1;
}

/* Общий auth dialog использует ту же форму и фирменные токены, что прямые URL. */
.catalog-auth-dialog {
    background: var(--catalog-surface-canvas);
    border: 1px solid var(--catalog-border-soft);
    border-radius: var(--catalog-radius);
    box-shadow: var(--catalog-shadow-hover);
    color: var(--catalog-text-primary);
    margin: auto;
    max-block-size: calc(100dvh - 2 * var(--catalog-space-lg));
    max-inline-size: var(--catalog-auth-width);
    overflow: auto;
    overscroll-behavior: contain;
    padding: 0;
    inline-size: calc(100% - 2 * var(--catalog-space-lg));
}
.catalog-auth-dialog::backdrop { background: var(--catalog-overlay-dim); }
.catalog-auth-dialog [hidden] { display: none !important; }
.catalog-auth-dialog-body { padding-block-start: var(--catalog-control-height); }
.catalog-auth-dialog .catalog-page-card { border: 0; box-shadow: none; }
.catalog-auth-close {
    position: absolute;
    inset-block-start: var(--catalog-space-xs);
    inset-inline-end: var(--catalog-space-xs);
}
.catalog-auth-modal-open { overflow: hidden; }

.catalog-auth-field-row {
    align-items: start;
    display: grid;
    gap: var(--catalog-space-lg);
    grid-template-columns: minmax(0, 1fr);
}
.catalog-auth-dialog .catalog-auth-field-row {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--catalog-auth-field-min-width)), 1fr));
}
.catalog-auth-field-row > div,
.catalog-auth-field-row .catalog-field-control { min-inline-size: 0; }
.catalog-auth-field-row .catalog-field-error { overflow-wrap: anywhere; }

/* Поля выделяются мягким фоном; кольца кнопок, ссылок и флажков сохраняются. */
[data-catalog-app] :where(input:not([type="checkbox"], [type="radio"], [type="range"], [type="button"], [type="submit"], [type="reset"]), select, textarea):focus {
    background: var(--catalog-surface-field-focus);
    box-shadow: none !important;
    outline: none !important;
}

@media (forced-colors: active) {
    [data-catalog-app] :where(input:not([type="checkbox"], [type="radio"], [type="range"], [type="button"], [type="submit"], [type="reset"]), select, textarea):focus-visible {
        outline: 1px solid Highlight !important;
        outline-offset: 2px !important;
    }
}

/* Обычные native select: одна общая стрелка, отдельно от фонового focus state. */
[data-catalog-app] select:not([multiple]):not([size]),
[data-catalog-app] select:not([multiple])[size="0"],
[data-catalog-app] select:not([multiple])[size="1"] {
    appearance: none;
    -webkit-appearance: none;
    background-image: var(--catalog-select-arrow);
    background-repeat: no-repeat;
    background-position: right var(--catalog-select-arrow-inset) center;
    background-size: var(--catalog-select-arrow-width) var(--catalog-select-arrow-height);
    padding-inline-end: calc(var(--catalog-select-arrow-inset) + var(--catalog-select-arrow-width) + var(--catalog-space-xs));
    text-overflow: ellipsis;
}

/* Только подкатегории: равные стрелки и естественная ширина блока точек. */
.catalog-categories-slider .catalog-products-slider-controls {
    grid-template-columns: var(--catalog-control-height) minmax(0, max-content) var(--catalog-control-height);
}
.catalog-categories-slider [data-catalog-categories-pagination] {
    position: static;
    inset: auto;
    width: auto;
    flex-wrap: wrap;
    overflow: visible;
}
.catalog-categories-slider [data-catalog-categories-pagination] .swiper-pagination-bullet {
    flex: 0 0 auto;
    height: var(--catalog-space-sm);
    width: var(--catalog-space-sm);
    margin: 0;
}

@media (forced-colors: active) {
    [data-catalog-app] select:not([multiple]):not([size]),
    [data-catalog-app] select:not([multiple])[size="0"],
    [data-catalog-app] select:not([multiple])[size="1"] {
        appearance: auto;
        -webkit-appearance: auto;
        background-image: none;
        padding-inline-end: var(--catalog-space-md);
    }
}

.catalog-facet-value.is-unavailable {
    opacity: .5;
    cursor: not-allowed;
}

/* Единое согласие: отдельный scoped слой ниже mobile menu и native dialog. */
:root {
    --catalog-z-consent: 70;
    --catalog-consent-height: 0px;
    scroll-padding-bottom: var(--catalog-consent-height);
}
.catalog-cookie-clearance { height: var(--catalog-consent-height); }
.catalog-cookie-settings { font: inherit; text-decoration: underline; text-underline-offset: 0.2em; }
.catalog-cookie-consent {
    position: fixed;
    inset-inline: 0;
    bottom: var(--catalog-consent-keyboard-offset, 0px);
    z-index: var(--catalog-z-consent);
    max-width: var(--container-7xl);
    max-height: calc(var(--catalog-consent-viewport-height, 100dvh) - var(--catalog-space-xl));
    margin-inline: auto;
    padding: var(--catalog-space-xl);
    padding-bottom: calc(var(--catalog-space-xl) + env(safe-area-inset-bottom, 0px));
    overflow-y: auto;
    overscroll-behavior: contain;
    border: 1px solid var(--catalog-border-soft);
    border-bottom: 0;
    border-radius: var(--catalog-radius) var(--catalog-radius) 0 0;
    background: var(--catalog-surface-card);
    color: var(--catalog-text-primary);
    display: grid;
    gap: var(--catalog-space-lg);
    transform: translateY(100%);
    visibility: hidden;
    transition: transform 280ms ease-out, visibility 280ms;
}
.catalog-cookie-consent[hidden] { display: none; }
.catalog-cookie-consent.is-open { transform: translateY(0); visibility: visible; }
.catalog-cookie-consent h2 { margin: 0 0 var(--catalog-space-sm); font-size: 1rem; font-weight: 700; }
.catalog-cookie-consent p, .catalog-cookie-consent a { font-size: 0.875rem; line-height: 1.5; }
.catalog-cookie-consent-copy { min-width: 0; overflow-wrap: anywhere; }
.catalog-cookie-consent-status, .catalog-cookie-consent-storage { margin-top: var(--catalog-space-sm); }
.catalog-cookie-consent-status { color: var(--catalog-text-secondary); }
.catalog-cookie-consent-actions { display: flex; gap: var(--catalog-space-md); align-self: end; }
.catalog-cookie-consent-actions button { flex: 1; white-space: nowrap; }
@media (min-width: 768px) {
    .catalog-cookie-consent { grid-template-columns: minmax(0, 1fr) auto; }
}
@media (max-width: 639px) {
    .catalog-cookie-consent { padding: var(--catalog-space-lg); padding-bottom: calc(var(--catalog-space-lg) + env(safe-area-inset-bottom, 0px)); }
}
@media (prefers-reduced-motion: reduce) {
    .catalog-cookie-consent { transition: none; }
}
