.ptx-product-filter {
    display: flex;
    flex-direction: column;
    gap: var(--cf-space-s, 1rem);
    min-width: 0;
    color: var(--cf-text-primary, #1a1a1a);
    font-family: var(--cf-font-body, "Inter", sans-serif);
}

.ptx-product-filter__screen-reader-text {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
}

.ptx-product-filter__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--cf-space-xs, 0.75rem);
    min-width: 0;
}

.ptx-product-filter__title {
    margin: 0;
    color: var(--cf-text-primary, #1a1a1a);
    font-family: var(--cf-font-heading, "Playfair Display", serif);
    font-size: var(--cf-text-l, 1.1rem);
    line-height: 1.2;
}

.ptx-product-filter__groups {
    display: flex;
    flex-direction: column;
    gap: var(--cf-space-s, 1rem);
}

.ptx-product-filter__group {
    min-width: 0;
    min-inline-size: 0;
    margin: 0;
    padding: 0 0 var(--cf-space-s, 1rem);
    border: 0;
    border-bottom: var(--cf-footer-border-width, 1px) solid var(--cf-neutral-border, #ebebeb);
    border-radius: 0;
    background: transparent;
}

.ptx-product-filter__legend {
    display: block;
    width: 100%;
    margin: 0 0 var(--cf-space-xs, 0.75rem);
    padding: 0;
    color: var(--cf-text-primary, #1a1a1a);
    font-size: var(--cf-text-xs, 0.78rem);
    font-weight: 700;
    letter-spacing: 0.12em;
    line-height: 1.25;
    text-transform: uppercase;
}

.ptx-product-filter__options,
.ptx-product-filter__swatches {
    display: flex;
    flex-direction: column;
    gap: var(--cf-space-2xs, 0.5rem);
    min-width: 0;
}

.ptx-product-filter__swatches {
    flex-direction: row;
    align-items: flex-start;
    align-content: flex-start;
    flex-wrap: wrap;
    gap: var(--cf-space-2xs, 0.5rem);
}

.ptx-product-filter__term {
    min-width: 0;
}

.ptx-product-filter__children {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    margin-top: 0.45rem;
    margin-left: 1.35rem;
    padding-left: var(--cf-space-xs, 0.75rem);
    border-left: var(--cf-footer-border-width, 1px) solid var(--cf-neutral-border, #ebebeb);
}

.ptx-product-filter__option,
.ptx-product-filter__swatch-option {
    position: relative;
    display: flex;
    align-items: center;
    gap: var(--cf-space-2xs, 0.5rem);
    min-width: 0;
    color: var(--cf-text-primary, #1a1a1a);
    font-size: var(--cf-text-s, 0.9rem);
    line-height: 1.35;
    cursor: pointer;
    user-select: none;
    transition:
        background var(--cf-transition-fast, 160ms ease),
        border-color var(--cf-transition-fast, 160ms ease),
        color var(--cf-transition-fast, 160ms ease);
}

.ptx-product-filter__option {
    padding: var(--cf-space-2xs, 0.5rem);
    border-radius: var(--cf-radius-xs, 4px);
}

.ptx-product-filter__option:hover {
    background: var(--cf-background-section, #f8f7f4);
}

.ptx-product-filter__option.is-selected .ptx-product-filter__name,
.ptx-product-filter__swatch-option.is-selected .ptx-product-filter__name {
    color: var(--cf-brand-primary, #c8864a);
    font-weight: 600;
}

.ptx-product-filter__option input,
.ptx-product-filter__swatch-option input {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
}

.ptx-product-filter__box {
    width: var(--cf-header-icon-size, 20px);
    height: var(--cf-header-icon-size, 20px);
    flex: 0 0 var(--cf-header-icon-size, 20px);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: var(--cf-footer-border-width, 1px) solid var(--cf-neutral-border, #ebebeb);
    border-radius: var(--cf-radius-xs, 4px);
    background: var(--cf-background-page, #ffffff);
    transition:
        border-color var(--cf-transition-fast, 160ms ease),
        background var(--cf-transition-fast, 160ms ease);
}

.ptx-product-filter__box::after {
    content: "";
    width: 8px;
    height: 5px;
    border-left: 2px solid var(--cf-text-inverse, #ffffff);
    border-bottom: 2px solid var(--cf-text-inverse, #ffffff);
    opacity: 0;
    transform: rotate(-45deg) translateY(-1px);
}

.ptx-product-filter__option input:checked + .ptx-product-filter__box {
    border-color: var(--cf-brand-primary, #c8864a);
    background: var(--cf-brand-primary, #c8864a);
}

.ptx-product-filter__option input:checked + .ptx-product-filter__box::after {
    opacity: 1;
}

.ptx-product-filter__option input:focus-visible + .ptx-product-filter__box,
.ptx-product-filter__swatch-option input:focus-visible + .ptx-product-filter__swatch {
    outline: 2px solid var(--cf-brand-primary, #c8864a);
    outline-offset: 3px;
}

.ptx-product-filter__swatch-option {
    width: calc(50% - 0.25rem);
    min-height: 36px;
    padding: 0.35rem 0.45rem;
    border: var(--cf-footer-border-width, 1px) solid var(--cf-neutral-border, #ebebeb);
    border-radius: var(--cf-radius-full, 999rem);
    background: var(--cf-background-page, #ffffff);
}

.ptx-product-filter__swatch-option:hover,
.ptx-product-filter__swatch-option.is-selected {
    border-color: var(--cf-brand-primary, #c8864a);
    color: var(--cf-brand-primary, #c8864a);
    background: var(--cf-brand-subtle, #f5e6d8);
}

.ptx-product-filter__swatch {
    --ptx-pf-swatch-color: transparent;
    width: 22px;
    height: 22px;
    flex: 0 0 22px;
    border: var(--cf-footer-border-width, 1px) solid var(--cf-neutral-border, #ebebeb);
    border-radius: var(--cf-radius-full, 999rem);
    background: var(--ptx-pf-swatch-color);
    box-shadow: inset 0 0 0 2px var(--cf-background-page, #ffffff);
}

.ptx-product-filter__swatch--empty {
    background:
        linear-gradient(135deg, transparent 0 44%, var(--cf-neutral-border, #ebebeb) 45% 55%, transparent 56% 100%),
        var(--cf-background-section, #f8f7f4);
}

.ptx-product-filter__group--swatches-labels-hidden .ptx-product-filter__swatch-option {
    justify-content: center;
}

.ptx-product-filter__group--swatches-labels-hidden:not(.ptx-product-filter__group--swatches-compact) .ptx-product-filter__swatch-option {
    width: 100%;
}

.ptx-product-filter__group--swatches-compact .ptx-product-filter__swatches {
    gap: var(--cf-space-2xs, 0.5rem);
    line-height: 0;
}

.ptx-product-filter__group--swatches-compact .ptx-product-filter__swatch-option {
    width: auto;
    flex: 0 0 auto;
    min-width: 0;
    min-height: 0;
    padding: 2px;
    border-color: transparent;
    background: transparent;
    line-height: 0;
}

.ptx-product-filter__group--swatches-compact .ptx-product-filter__swatch-option:hover,
.ptx-product-filter__group--swatches-compact .ptx-product-filter__swatch-option.is-selected {
    border-color: transparent;
    background: transparent;
}

.ptx-product-filter__swatch-option--icon-only .ptx-product-filter__swatch {
    width: 28px;
    height: 28px;
    flex-basis: 28px;
}

.ptx-product-filter__swatch-option--icon-only:hover .ptx-product-filter__swatch,
.ptx-product-filter__swatch-option--icon-only.is-selected .ptx-product-filter__swatch {
    border-color: var(--cf-brand-primary, #c8864a);
    box-shadow:
        inset 0 0 0 2px var(--cf-background-page, #ffffff),
        0 0 0 2px var(--cf-brand-subtle, #f5e6d8);
}

.ptx-product-filter__name {
    min-width: 0;
    overflow-wrap: anywhere;
}

.ptx-product-filter__count {
    margin-left: auto;
    color: var(--cf-text-secondary, #6b6b6b);
    font-size: var(--cf-text-xs, 0.78rem);
    font-weight: 600;
    line-height: 1;
}

.ptx-product-filter__reset {
    align-self: flex-start;
    color: var(--cf-text-secondary, #6b6b6b);
    font-size: var(--cf-text-s, 0.9rem);
    line-height: 1.2;
    text-decoration: underline;
    transition: color var(--cf-transition-fast, 160ms ease);
}

.ptx-product-filter__reset:hover {
    color: var(--cf-status-sale, #b85c38);
}

.ptx-product-filter__actions {
    display: flex;
}

.ptx-product-filter--auto-ready .ptx-product-filter__actions {
    display: none;
}

.ptx-product-filter-active {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--cf-space-2xs, 0.5rem);
    margin-bottom: var(--cf-space-m, 1.5rem);
}

.ptx-product-filter-active__chip {
    display: inline-flex;
    align-items: center;
    gap: var(--cf-space-2xs, 0.5rem);
    padding: var(--cf-space-2xs, 0.5rem) var(--cf-space-xs, 0.75rem);
    border-radius: var(--cf-radius-full, 999rem);
    background: var(--cf-brand-subtle, #f5e6d8);
    color: var(--cf-brand-primary, #c8864a);
    font-size: var(--cf-text-xs, 0.78rem);
    font-weight: 600;
    line-height: 1.2;
    text-decoration: none;
}

.ptx-product-filter-active__remove-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.ptx-product-filter-active__remove-icon svg {
    width: var(--cf-search-close-size, 12px);
    height: var(--cf-search-close-size, 12px);
}

.ptx-product-filter-active__chip:hover {
    opacity: 0.78;
}

.ptx-product-filter-active__clear {
    color: var(--cf-text-secondary, #6b6b6b);
    font-size: var(--cf-text-xs, 0.78rem);
    line-height: 1.2;
    text-decoration: underline;
    transition: color var(--cf-transition-fast, 160ms ease);
}

.ptx-product-filter-active__clear:hover {
    color: var(--cf-status-sale, #b85c38);
}

.ptx-product-archive__main {
    transition: opacity var(--cf-transition-fast, 160ms ease);
}

.ptx-product-archive__main.is-loading {
    opacity: 0.58;
}

.ptx-product-filter.is-loading {
    opacity: 0.72;
    pointer-events: none;
}

.ptx-product-filter__submit {
    width: 100%;
    min-height: var(--cf-header-icon-button-size, 40px);
    padding: 0.75rem 1rem;
    border: var(--cf-footer-border-width, 1px) solid var(--cf-background-inverse, #1a1a1a);
    border-radius: var(--cf-radius-xs, 4px);
    background: var(--cf-background-inverse, #1a1a1a);
    color: var(--cf-text-inverse, #ffffff);
    font-family: var(--cf-font-body, "Inter", sans-serif);
    font-size: var(--cf-text-s, 0.9rem);
    font-weight: 700;
    line-height: 1.2;
    cursor: pointer;
    transition:
        border-color var(--cf-transition-fast, 160ms ease),
        background var(--cf-transition-fast, 160ms ease);
}

.ptx-product-filter__submit:hover,
.ptx-product-filter__submit:focus-visible {
    border-color: var(--cf-background-inverse-hover, #2e2e2e);
    background: var(--cf-background-inverse-hover, #2e2e2e);
}

@media (max-width: 900px) {
    .ptx-product-filter__group--swatches .ptx-product-filter__swatch-option {
        width: calc(50% - 0.25rem);
    }

    .ptx-product-filter__group--swatches-compact .ptx-product-filter__swatch-option {
        width: auto;
    }
}

@media (max-width: 420px) {
    .ptx-product-filter__group--swatches:not(.ptx-product-filter__group--swatches-compact) .ptx-product-filter__swatch-option {
        width: 100%;
    }
}
