.o2b-main {
    padding-block: var(--layout-section-pad-y-tight);
    --o2b-hero-film-opacity: 0.28;
    --o2b-hero-filter: saturate(0.95) brightness(0.93);
}

.o2b-media-frame {
    width: 100%;
    aspect-ratio: var(--o2b-media-aspect, 16 / 10);
    border: 1px solid var(--border-subtle);
    background:
        linear-gradient(140deg, rgba(255, 255, 255, 0.07), rgba(255, 255, 255, 0.01)),
        radial-gradient(circle at top left, rgba(255, 255, 255, 0.08), transparent 60%);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.02);
    background-size: var(--o2b-media-fit, cover);
    background-position: var(--o2b-media-position, center);
    background-repeat: no-repeat !important;
    background-color: var(--surface-section);
    position: relative;
    overflow: hidden;
    background-clip: padding-box;
    --o2b-media-fit: cover;
    --o2b-media-position: center;
    --o2b-media-film-opacity: 0;
}

.o2b-media-frame__img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: var(--o2b-media-fit, cover);
    object-position: var(--o2b-media-position, center);
}

.o2b-media-frame--hero {
    aspect-ratio: auto;
    height: 100%;
    border: 0;
    filter: var(--o2b-hero-filter, none);
}

.o2b-media-frame--hero::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at center, transparent 0%, rgba(0, 0, 0, 0.42) 100%),
        linear-gradient(to bottom, rgba(0, 0, 0, 0.18), rgba(0, 0, 0, 0.55));
    opacity: var(--o2b-hero-film-opacity, 0.28);
    pointer-events: none;
}

.o2b-media-frame--pillar {
    --o2b-media-aspect: 4 / 5;
}

/* Frame sizing rules: tweak here globally */
.o2b-media-frame--wide,
.o2b-media-frame--hero,
.o2b-media-frame--closing {
    --o2b-media-fit: cover;
    --o2b-media-film-opacity: 0;
}

.o2b-media-frame--portrait,
.o2b-media-frame--square,
.o2b-media-frame--pillar,
.o2b-media-frame--detail,
.o2b-media-frame--thumb {
    --o2b-media-fit: contain;
    --o2b-media-film-opacity: 0.32;
}

/* Subtle film for contain frames to avoid color banding/lines */
.o2b-media-frame--portrait::after,
.o2b-media-frame--square::after,
.o2b-media-frame--pillar::after,
.o2b-media-frame--detail::after,
.o2b-media-frame--thumb::after {
    content: "";
    position: absolute;
    inset: -1px;
    background: linear-gradient(to bottom, rgba(0, 0, 0, 0.18), rgba(0, 0, 0, 0.32));
    pointer-events: none;
    opacity: var(--o2b-media-film-opacity, 0.32);
    border-radius: inherit;
}


.o2b-page-hero {
    margin-bottom: var(--layout-panel-gap);
    padding: var(--layout-card-padding);
    background: var(--surface-section);
    border: 1px solid var(--border-strong);
    border-radius: var(--radius-none);
    box-shadow: var(--shadow-sm);
}

.o2b-page-hero__copy,
.o2b-entry-content > * + * {
    margin-top: var(--layout-stack-gap);
}

.o2b-article,
.o2b-card {
    padding: var(--layout-card-padding);
    background: var(--surface-section);
    border: 1px solid var(--border-strong);
    border-radius: var(--radius-none);
    transition: transform var(--transition-base), border-color var(--transition-base), box-shadow var(--transition-base);
}

.o2b-card:hover {
    transform: translateY(-2px);
    border-color: var(--border-strong);
    box-shadow: var(--shadow-md);
}

.o2b-article {
    min-width: 0;
}

.o2b-card--journal + .o2b-card--journal {
    margin-top: var(--layout-content-gap);
}

.o2b-card__meta {
    margin-bottom: var(--space-sm);
    color: var(--metal);
    font-family: var(--font-family-ui);
    font-size: 0.82rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.o2b-entry-content img {
    border-radius: var(--radius-none);
    border: 1px solid var(--border-subtle);
}

.o2b-article a,
.o2b-card a,
.o2b-commerce-shell__content a:not(.button):not(.added_to_cart) {
    color: var(--link-content);
}

.o2b-article a:hover,
.o2b-card a:hover,
.o2b-commerce-shell__content a:not(.button):not(.added_to_cart):hover {
    color: var(--link-content-hover);
}

.o2b-journal-shell,
.o2b-commerce-shell {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--layout-panel-gap);
}

.o2b-journal-shell__content {
    min-width: 0;
}

.o2b-journal-sidebar {
    display: grid;
    gap: clamp(0.95rem, 1.6vw, 1.35rem);
    --o2b-shell-accent: var(--text-secondary);
    --o2b-shell-accent-hover: var(--text-primary);
}

.o2b-sidebar-card {
    padding: clamp(1rem, 1.6vw, 1.4rem);
    background: var(--surface-section) !important;
    border: 1px solid var(--border-subtle) !important;
    border-radius: var(--radius-sm);
    box-shadow: var(--shadow-sm);
}

.o2b-sidebar-card__eyebrow {
    margin-bottom: 0.45rem;
    color: var(--text-muted);
    font-family: var(--font-family-ui);
    font-size: 0.72rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.o2b-sidebar-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: var(--space-sm);
}

.o2b-sidebar-list__link {
    display: grid;
    gap: 0.15rem;
    padding: 0.6rem 0.75rem;
    border-radius: var(--radius-sm);
    color: var(--text-secondary);
    background-image: none;
    border: 0;
    border: 1px solid transparent;
    transition: color var(--transition-base), border-color var(--transition-base), background-color var(--transition-base), transform var(--transition-fast), box-shadow var(--transition-fast);
}

.o2b-sidebar-list__link:hover {
    background: var(--surface-control);
    border-color: var(--border-subtle);
}

.o2b-sidebar-list__link:focus-visible,
.o2b-sidebar-list__link:active,
.o2b-sidebar-list__link.is-current,
.o2b-sidebar-list__link[aria-current="page"] {
    color: var(--text-primary);
    background: var(--selection-bg-link);
    border-color: var(--border-strong);
    box-shadow: inset 2px 0 0 0 var(--text-primary);
}

.o2b-sidebar-list__meta {
    color: var(--text-muted);
    font-size: 0.83rem;
    transition: color var(--transition-base);
}

.o2b-sidebar-list__link.is-current .o2b-sidebar-list__meta,
.o2b-sidebar-list__link[aria-current="page"] .o2b-sidebar-list__meta,
.o2b-sidebar-list__link:focus-visible .o2b-sidebar-list__meta {
    color: var(--text-secondary);
}

.o2b-commerce-shell {
    align-items: start;
}

.o2b-commerce-shell__content {
    min-width: 0;
}

.o2b-archive-sidebar {
    display: grid;
    gap: clamp(1rem, 1.6vw, 1.25rem);
    min-width: 0;
    padding: clamp(1rem, 1.8vw, 1.5rem);
    background: var(--surface-section) !important;
    border: 1px solid var(--border-subtle) !important;
    border-radius: var(--radius-sm);
    box-shadow: var(--shadow-sm);
    --o2b-shell-accent: var(--text-secondary);
    --o2b-shell-accent-hover: var(--text-primary);
}

.o2b-archive-sidebar__header {
    display: flex;
    align-items: start;
    justify-content: space-between;
    gap: var(--space-sm);
}

.o2b-archive-sidebar__context {
    min-width: 0;
    display: grid;
    align-content: start;
    gap: 0.25rem;
}

.o2b-archive-sidebar__context-title {
    margin: 0;
    color: var(--text-primary);
    font-family: var(--font-family-ui);
    font-size: 0.9rem;
    font-weight: var(--font-weight-ui);
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.o2b-archive-sidebar__context-helper {
    margin: 0;
    color: var(--text-body);
    font-size: 0.84rem;
    line-height: 1.35;
}

.o2b-filter-form,
.o2b-filter-form__sections {
    display: flex;
    flex-direction: column;
    gap: clamp(0.9rem, 1.4vw, 1.1rem);
}

.o2b-filter-form__sections {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    overscroll-behavior: auto;
    padding-right: 0.15rem;
}

@media (max-width: 959px) {
    .o2b-filter-form__sections {
        overscroll-behavior: contain;
    }
}

.o2b-filter-block {
    padding-top: clamp(0.9rem, 1.4vw, 1.1rem);
    border-top: 1px solid var(--border-subtle);
}

.o2b-filter-block__title {
    margin: 0 0 0.55rem;
    color: var(--text-muted);
    font-family: var(--font-family-ui);
    font-size: 0.78rem;
    font-weight: var(--font-weight-body);
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.o2b-filter-block__body {
    display: grid;
    gap: 0.45rem;
}

.o2b-filter-category,
.o2b-filter-category__sublist {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.35rem;
}

.o2b-filter-category__sublist {
    margin-top: 0.35rem;
    padding-left: 0.9rem;
    gap: 0.28rem;
}

.o2b-filter-category__link,
.o2b-filter-category__sublink {
    color: var(--link-utility);
    display: inline-flex;
    align-items: center;
    min-height: 1.9rem;
    font-family: var(--font-family-ui);
    font-size: 0.92rem;
    letter-spacing: 0.02em;
    text-transform: none;
    transition: color var(--transition-fast), opacity var(--transition-fast);
}

.o2b-filter-category__link:hover,
.o2b-filter-category__sublink:hover,
.o2b-filter-category__link:focus-visible,
.o2b-filter-category__sublink:focus-visible {
    color: var(--link-utility-hover);
}

.o2b-filter-category__link.is-current,
.o2b-filter-category__sublink.is-current,
.o2b-filter-category__link[aria-current="page"],
.o2b-filter-category__sublink[aria-current="page"] {
    color: var(--text-primary);
}

.o2b-filter-price-slider {
    --o2b-price-min: 0%;
    --o2b-price-max: 100%;
    display: grid;
    gap: 0.5rem;
    padding: 0;
    background: transparent;
    border: 0;
}

.o2b-filter-price-slider__meta {
    margin: 0;
}

.o2b-filter-price-slider__value {
    color: var(--text-primary);
    font-family: var(--font-family-ui);
    font-size: 0.92rem;
    letter-spacing: 0.02em;
}

.o2b-filter-price-slider__ranges {
    position: relative;
    height: 1.4rem;
    border-radius: 999px;
    background: linear-gradient(to right,
        var(--border-subtle) 0 var(--o2b-price-min),
        var(--text-muted) var(--o2b-price-min) var(--o2b-price-max),
        var(--border-subtle) var(--o2b-price-max) 100%);
}

.o2b-filter-price-slider__ranges input[type="range"] {
    position: absolute;
    inset: 0;
    width: 100%;
    margin: 0;
    background: transparent;
    pointer-events: auto;
    -webkit-appearance: none;
    appearance: none;
}

.o2b-filter-price-slider__ranges input[type="range"][data-o2b-price-range="min"] {
    z-index: 2;
}

.o2b-filter-price-slider__ranges input[type="range"][data-o2b-price-range="max"] {
    z-index: 3;
}

.o2b-filter-price-slider__ranges input[type="range"]::-webkit-slider-runnable-track {
    height: 1.4rem;
    background: transparent;
    border-radius: 999px;
}

.o2b-filter-price-slider__ranges input[type="range"]::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 0.9rem;
    height: 0.9rem;
    margin-top: 0.25rem;
    border-radius: 999px;
    background: var(--surface-panel);
    border: 1px solid var(--text-muted);
}

.o2b-filter-price-slider__ranges input[type="range"]:focus-visible::-webkit-slider-thumb {
    border-color: var(--text-primary);
}

.o2b-filter-price-slider__ranges input[type="range"]::-moz-range-track {
    height: 1.4rem;
    background: transparent;
    border: 0;
}

.o2b-filter-price-slider__ranges input[type="range"]::-moz-range-thumb {
    width: 0.9rem;
    height: 0.9rem;
    border-radius: 999px;
    background: var(--surface-panel);
    border: 1px solid var(--text-muted);
}

.o2b-filter-search-wrap {
    margin-bottom: 0.65rem;
}

.o2b-filter-search {
    width: 100%;
    min-height: 2.2rem;
    padding: 0 0.2rem 0.25rem;
    margin: 0;
    color: var(--text-primary);
    background: transparent;
    border: 0;
    border-bottom: 1px solid var(--border-subtle);
    border-radius: var(--radius-none);
    font-family: var(--font-family-ui);
    font-size: 0.86rem;
    line-height: 1.4;
    transition: border-color var(--transition-base), box-shadow var(--transition-base);
    appearance: none;
    -webkit-appearance: none;
}

.o2b-filter-search::placeholder {
    color: var(--text-muted);
}

.o2b-filter-search:focus-visible {
    outline: none;
    border-color: var(--text-primary);
    box-shadow: 0 1px 0 0 var(--text-primary);
}

.o2b-filter-option.is-hidden-by-default,
.o2b-filter-option[hidden] {
    display: none !important;
}

.o2b-filter-options {
    display: grid;
    gap: 0.35rem;
}

.o2b-filter-accordion {
    padding: clamp(0.75rem, 1.3vw, 1rem);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-sm);
    background: var(--surface-panel);
    transition: border-color var(--transition-base), box-shadow var(--transition-base), background-color var(--transition-base);
}

.o2b-filter-accordion + .o2b-filter-accordion {
    margin-top: 0.6rem;
}

.o2b-filter-accordion__summary {
    list-style: none;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-sm);
    cursor: pointer;
    user-select: none;
    padding: 0.3rem 0.35rem;
}

.o2b-filter-accordion__summary::-webkit-details-marker {
    display: none;
}

.o2b-filter-accordion__summary:hover .o2b-filter-accordion__title,
.o2b-filter-accordion__summary:focus-visible .o2b-filter-accordion__title {
    color: var(--text-primary);
}

.o2b-filter-accordion__title {
    margin: 0;
    color: var(--text-secondary);
    font-family: var(--font-family-ui);
    font-size: 0.82rem;
    font-weight: var(--font-weight-body);
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.o2b-filter-accordion__chevron {
    color: var(--text-muted);
    transition: transform var(--transition-base), color var(--transition-base);
}

.o2b-filter-accordion[open] .o2b-filter-accordion__chevron {
    color: var(--text-primary);
    transform: rotate(180deg);
}

.o2b-filter-accordion__body {
    margin-top: 0.55rem;
    padding-top: 0.2rem;
    display: grid;
    gap: 0.45rem;
}

.o2b-filter-accordion[open] {
    border-color: var(--border-strong);
    box-shadow: var(--shadow-sm);
    background: var(--surface-section);
}

.o2b-filter-option {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    min-height: 2.1rem;
    cursor: pointer;
    color: var(--link-utility);
    font-family: var(--font-family-ui);
    font-size: 0.92rem;
    letter-spacing: 0.02em;
    transition: color var(--transition-fast), opacity var(--transition-fast), transform var(--transition-fast);
}

.o2b-filter-option:hover,
.o2b-filter-option:focus-within {
    color: var(--link-utility-hover);
}

.o2b-filter-option input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.o2b-filter-option__label {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
}

.o2b-filter-option__label::before {
    content: '';
    width: 0.55rem;
    height: 0.55rem;
    border-radius: 999px;
    border: 1px solid var(--border-subtle);
    background: transparent;
    flex: 0 0 0.55rem;
}

.o2b-filter-option input:checked + .o2b-filter-option__label {
    color: var(--text-primary);
    font-weight: var(--font-weight-strong);
}

.o2b-filter-option input:checked + .o2b-filter-option__label::before {
    background: var(--text-primary);
    border-color: var(--text-primary);
}

.o2b-filter-form__actions {
    padding-top: 0.85rem;
    border-top: 1px solid var(--border-subtle);
}

.o2b-filter-clear {
    color: var(--text-muted);
    display: inline-flex;
    align-items: center;
    min-height: 2.2rem;
    font-family: var(--font-family-ui);
    font-size: 0.82rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    transition: color var(--transition-fast), opacity var(--transition-fast);
}

.o2b-filter-clear:hover,
.o2b-filter-clear:focus-visible {
    color: var(--link-utility-hover);
}

.o2b-shop-toolbar {
    display: grid;
    gap: var(--layout-content-gap);
    margin-bottom: var(--layout-panel-gap);
    padding: var(--layout-card-padding);
    background: var(--surface-panel);
    border: 1px solid var(--border-strong);
    border-radius: var(--radius-none);
}

.o2b-shop-toolbar__primary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-md);
}

.o2b-shop-toolbar__meta {
    display: flex;
    align-items: center;
    gap: var(--space-md);
    flex-wrap: wrap;
}

.o2b-shop-toolbar__meta .woocommerce-ordering {
    margin: 0;
    flex: 0 0 auto;
    min-width: min(16rem, 100%);
}

.o2b-shop-toolbar__meta .woocommerce-ordering select {
    width: 100%;
    min-height: 2.7rem;
    padding: 0 2rem 0 0.85rem;
    background: var(--surface-control);
    border: 1px solid var(--border-strong);
    border-radius: var(--radius-none);
    color: var(--text-primary);
    font-family: var(--font-family-ui);
    font-size: 0.88rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.o2b-shop-toolbar__meta .woocommerce-ordering select:focus-visible {
    outline: 2px solid transparent;
    box-shadow: var(--shadow-focus);
}

.o2b-filter-chips {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-xs);
}

.o2b-shop-toolbar + .products,
.o2b-shop-toolbar + .woocommerce-notices-wrapper + .products {
    margin-top: 0;
}

.o2b-search-page__summary {
    display: grid;
    gap: var(--space-sm);
}

.o2b-search-page__count {
    margin: 0;
    color: var(--text-secondary);
    font-family: var(--font-family-ui);
    font-size: 0.82rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.o2b-search-page__secondary {
    margin-top: var(--layout-panel-gap);
    display: grid;
    gap: var(--layout-content-gap);
}

.o2b-search-page__section-title {
    margin: 0;
    color: var(--text-primary);
    font-size: clamp(1.15rem, 1rem + 0.6vw, 1.45rem);
    text-transform: none;
}

.o2b-search-page__secondary-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(var(--layout-auto-fit-min), 100%), 1fr));
    gap: var(--layout-grid-gap);
}

.o2b-search-page__pagination {
    margin-top: var(--layout-panel-gap);
}

.o2b-search-page__empty {
    padding: var(--layout-card-padding);
    background: var(--surface-panel);
    border: 1px solid var(--border-strong);
    border-radius: var(--radius-none);
    box-shadow: var(--shadow-sm);
}

.o2b-commerce-shell .woocommerce-result-count,
.o2b-commerce-shell .woocommerce-ordering {
    margin: 0;
}

.o2b-commerce-shell .woocommerce ul.products,
.o2b-commerce-shell .woocommerce-page ul.products {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(14rem, 100%), 1fr));
    gap: var(--layout-grid-gap);
}

.o2b-commerce-shell .woocommerce ul.products::before,
.o2b-commerce-shell .woocommerce ul.products::after {
    display: none;
}

.o2b-commerce-shell .woocommerce ul.products li.product {
    width: auto;
    float: none;
    margin: 0;
    padding: 0;
    background: var(--surface-panel);
    border: 1px solid var(--border-strong);
    border-radius: var(--radius-none);
    transition: border-color var(--transition-base), transform var(--transition-base), box-shadow var(--transition-base);
}

.o2b-commerce-shell .woocommerce ul.products li.product:hover {
    border-color: var(--border-strong);
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}

.o2b-commerce-shell .woocommerce ul.products li.product .button {
    width: 100%;
}

.o2b-commerce-shell--single .o2b-commerce-shell__content {
    padding: 0;
    background: transparent;
    border: 0;
    border-radius: var(--radius-none);
    width: 100%;
    max-width: none;
}

.o2b-commerce-shell--single {
    grid-template-columns: minmax(0, 1fr);
}

@media (min-width: 960px) {
    .o2b-journal-shell {
        grid-template-columns: var(--layout-sidebar-width) var(--layout-main-min);
        align-items: start;
    }

    .o2b-journal-sidebar {
        position: static;
    }

    .o2b-commerce-shell {
        grid-template-columns: var(--layout-main-min) var(--layout-sidebar-width);
    }

    .o2b-journal-shell__content {
        grid-column: 2;
    }

    .o2b-journal-sidebar {
        grid-column: 1;
    }

    .o2b-commerce-shell__content {
        grid-column: 1;
    }

    .o2b-archive-sidebar {
        grid-column: 2;
        position: sticky;
        top: calc(5.75rem + var(--space-md));
        align-self: start;
        max-height: calc(100vh - 7.25rem);
        overflow: auto;
        overscroll-behavior: contain;
        scrollbar-gutter: stable;
    }

    .o2b-archive-sidebar__header .o2b-icon-button {
        display: none;
    }

    .o2b-shop-toolbar__filter-button {
        display: none;
    }

    .o2b-filter-form__submit {
        display: none;
    }
}

@media (min-width: 1100px) {
    .o2b-journal-sidebar {
        position: sticky;
        top: calc(5.75rem + var(--space-md));
    }
}

@media (min-width: 768px) and (max-width: 1099px) {
    .o2b-journal-sidebar {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: var(--space-md);
    }
}

@media (max-width: 959px) {
    body.woocommerce.archive {
        overflow-x: hidden;
    }

    .o2b-archive-sidebar {
        position: fixed;
        top: 0;
        right: 0;
        bottom: 0;
        width: min(90vw, 24rem);
        z-index: 2000; /* High enough to be above everything */
        display: flex !important;
        flex-direction: column !important;
        overflow: hidden;
        overscroll-behavior: contain;
        background: var(--surface-panel) !important;
        border-left: 1px solid var(--border-subtle);
        transform: translateX(101%);
        transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
        box-shadow: -10px 0 30px rgba(0,0,0,0.3);
        padding: 0 !important;
    }

    .o2b-archive-sidebar__header {
        flex: 0 0 auto;
        display: flex !important;
        align-items: center;
        justify-content: space-between;
        padding: var(--space-md);
        background: var(--surface-section);
        border-bottom: 1px solid var(--border-subtle);
    }

    .o2b-archive-sidebar__header .o2b-icon-button {
        display: flex !important;
        width: 2.75rem;
        height: 2.75rem;
        background: var(--surface-raised);
        border: 1px solid var(--border-strong);
        border-radius: var(--radius-none);
        color: var(--text-primary);
        justify-content: center;
        align-items: center;
    }

    .o2b-archive-sidebar .o2b-filter-form {
        flex: 1 1 auto;
        display: flex;
        flex-direction: column;
        min-height: 0;
        padding: 0;
    }

    .o2b-filter-form__sections {
        flex: 1 1 auto;
        overflow-y: auto !important;
        overflow-x: hidden;
        padding: var(--space-md);
        display: block !important; /* Block is safer for overflow children */
        -webkit-overflow-scrolling: touch;
    }

    .o2b-filter-block,
    .o2b-filter-accordion {
        margin-bottom: var(--space-lg);
        display: block !important;
    }

    .o2b-archive-sidebar.is-open {
        transform: translateX(0);
    }
}

@media (max-width: 767px) {
    .o2b-archive-sidebar {
        width: 100vw;
    }
}

/* =========================================================
   404 / Empty states (GeneratePress defaults)
   ========================================================= */

body.error404 :is(.inside-article, .inside-page-header, .inside-content-header),
body.search-no-results :is(.inside-article, .inside-page-header, .inside-content-header) {
    background: var(--surface-section);
    border: 1px solid var(--border-strong);
    border-radius: var(--radius-none);
    padding: var(--layout-card-padding);
    box-shadow: var(--shadow-sm);
}

body.error404 :is(.entry-title, h1),
body.search-no-results :is(.entry-title, h1) {
    font-family: var(--font-family-heading);
    color: var(--text-primary);
    letter-spacing: 0.01em;
    text-transform: none;
}

body.error404 :is(.entry-content, .page-content),
body.search-no-results :is(.entry-content, .page-content) {
    margin-top: var(--layout-stack-gap);
    color: var(--text-body);
}

body.error404 :is(form.search-form, form.searchform),
body.search-no-results :is(form.search-form, form.searchform) {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: var(--space-sm);
    margin-top: var(--layout-content-gap);
    align-items: stretch;
}

body.error404 :is(.search-field, input[type="search"]),
body.search-no-results :is(.search-field, input[type="search"]) {
    min-height: 3.1rem;
    padding: 0 0.95rem;
    background: var(--field-bg);
    border: 1px solid var(--field-border);
    border-radius: var(--radius-none);
    color: var(--field-text);
}

body.error404 :is(.search-submit, input[type="submit"]),
body.search-no-results :is(.search-submit, input[type="submit"]) {
    min-height: 3.1rem;
    padding: 0 var(--space-lg);
    background: var(--btn-primary-bg);
    border: 1px solid var(--btn-primary-border);
    color: var(--btn-primary-text);
    border-radius: var(--radius-none);
    font-family: var(--font-family-ui);
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

body.error404 :is(.search-submit, input[type="submit"]):hover,
body.search-no-results :is(.search-submit, input[type="submit"]):hover {
    background: var(--btn-primary-hover-bg);
    border-color: var(--btn-primary-hover-border);
    color: var(--btn-primary-hover-text);
}
