/* Frontend refinements kept separate from the legacy theme bundle. */
.mobile-header-search {
    width: 100%;
    position: relative;
    z-index: 1040;
    padding: 0;
    background: #fff;
    box-shadow: none !important;
}

.mobile-header-search > .container {
    width: 100%;
    max-width: none;
    padding-right: 0;
    padding-left: 0;
}

.mobile-header-search .input-group {
    border-radius: 0;
    box-shadow: none;
}

.mobile-header-search .form-control {
    min-height: 54px;
    padding-left: 2.8rem;
    border-top: 0;
    border-right: 0;
    border-left: 0;
    border-radius: 0 !important;
    font-size: 16px;
}

.mobile-header-search .btn {
    min-width: 4.1rem;
    border-top: 0;
    border-right: 0;
    border-radius: 0 !important;
}

.mobile-header-search__leading {
    z-index: 5;
    pointer-events: none;
}

.mobile-search-suggest {
    display: block;
    position: absolute;
    z-index: 1042;
    top: 100%;
    right: 0;
    left: 0;
    height: var(--mobile-search-suggest-height, calc(100dvh - 54px));
    max-height: none;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    border: 0;
    border-top: 1px solid #e3dfd5;
    border-radius: 0;
    background: #fff;
    box-shadow: 0 .75rem 2rem rgba(0, 0, 0, .12);
}

.mobile-search-suggest .list-group-item {
    width: 100%;
    min-width: 0;
    flex: none;
    overflow: hidden;
}

.mobile-search-suggest .search-suggest__row,
.mobile-search-suggest .search-suggest__content {
    min-width: 0;
}

.mobile-search-suggest .search-suggest__row {
    gap: .75rem !important;
}

.mobile-search-suggest .search-suggest__title {
    overflow-wrap: anywhere;
    line-height: 1.35;
}

.mobile-search-suggest .search-suggest__meta {
    flex: 0 0 auto;
    white-space: nowrap;
}

.mobile-search-suggest .mobile-search-suggest__all {
    position: sticky;
    z-index: 2;
    bottom: 0;
    border-top: 1px solid #e3dfd5;
}

.mobile-main-navigation.offcanvas {
    --bs-offcanvas-width: 100vw;
    --cz-offcanvas-width: 100vw;
    right: 0;
    width: 100% !important;
    max-width: 100vw !important;
    height: 100dvh;
    border: 0;
    background: #fbfaf7;
    box-shadow: none !important;
}

.mobile-main-navigation + .offcanvas-backdrop {
    display: none;
}

.mobile-main-navigation__header {
    min-height: 6rem;
    padding: .55rem 1rem;
    background-color: #2d2224;
    background-image: url('/media/img/footer-vintage-bg.jpg');
    background-repeat: repeat;
}

.mobile-main-navigation__header img {
    display: block;
    width: 116px;
    height: 82px;
    object-fit: contain;
}

.mobile-main-navigation__close {
    display: inline-flex;
    width: 2.75rem;
    height: 2.75rem;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(231, 186, 102, .45);
    border-radius: 50%;
    background: rgba(0, 0, 0, .14);
    color: #f5e7cc;
    font-size: 1.25rem;
}

.mobile-main-navigation__list {
    margin: 0;
    padding: .45rem 1rem 2rem;
    list-style: none;
}

.mobile-main-navigation__list > li {
    margin: 0;
    border-bottom: 1px solid #e8e0d3;
}

.mobile-main-navigation details,
.mobile-main-navigation summary {
    margin: 0;
}

.mobile-main-navigation summary {
    list-style: none;
}

.mobile-main-navigation summary::-webkit-details-marker {
    display: none;
}

.mobile-main-navigation__row {
    display: grid;
    width: 100%;
    min-height: 3.65rem;
    grid-template-columns: 1.65rem minmax(0, 1fr) auto;
    align-items: center;
    gap: .75rem;
    padding: .75rem .2rem;
    border: 0;
    background: transparent;
    color: #352c2e;
    font-size: 1rem;
    font-weight: 600;
    text-align: left;
    text-decoration: none;
}

.mobile-main-navigation__row > i:first-child {
    color: #aa772d;
    text-align: center;
}

.mobile-main-navigation__row > i:last-child {
    color: #9a9087;
    font-size: .75rem;
}

.mobile-main-navigation__row:hover,
.mobile-main-navigation__row:focus-visible {
    color: #2d2224;
    background: #f4eee4;
}

.mobile-main-navigation__row.is-active {
    background: #f4eee4;
    color: #8a5a1f;
}

.mobile-main-navigation__chevron {
    transition: transform .2s ease;
}

.mobile-main-navigation details[open] > summary .mobile-main-navigation__chevron {
    transform: rotate(180deg);
}

.mobile-main-navigation__panel {
    margin: 0 -.2rem .7rem;
    padding: .4rem .8rem .7rem 3rem;
    border-left: 2px solid #d7aa56;
    background: #f6f1e8;
}

.mobile-main-navigation__all {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: .7rem .2rem;
    color: #7c5119;
    font-size: .83rem;
    font-weight: 700;
    letter-spacing: .035em;
    text-decoration: none;
    text-transform: uppercase;
}

.mobile-main-navigation__submenu,
.mobile-main-navigation__subpanel ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.mobile-main-navigation__submenu > li {
    border-top: 1px solid rgba(116, 91, 59, .16);
}

.mobile-main-navigation__submenu > li > a,
.mobile-main-navigation__subsection > summary {
    display: flex;
    min-height: 3rem;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: .65rem .2rem;
    color: #3c3330;
    font-size: .96rem;
    font-weight: 600;
    text-decoration: none;
}

.mobile-main-navigation__submenu i {
    color: #a18768;
    font-size: .68rem;
}

.mobile-main-navigation__subpanel {
    margin-bottom: .55rem;
    padding: .2rem .65rem .55rem;
    border-radius: .25rem;
    background: rgba(255, 255, 255, .68);
}

.mobile-main-navigation__category-all {
    display: block;
    padding: .55rem .3rem;
    color: #9a6824;
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .025em;
    text-transform: uppercase;
}

.mobile-main-navigation__subpanel li + li {
    border-top: 1px dashed rgba(116, 91, 59, .18);
}

.mobile-main-navigation__subpanel li a {
    display: flex;
    min-height: 2.7rem;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: .55rem .3rem;
    color: #4d4440;
    font-size: .9rem;
    text-decoration: none;
}

.mobile-main-navigation__all.is-active,
.mobile-main-navigation__submenu a.is-active,
.mobile-main-navigation__subsection > summary.is-active,
.mobile-main-navigation__subpanel a.is-active {
    color: #8a5a1f;
    font-weight: 700;
}

@media (min-width: 500px) and (max-width: 991.98px) {
    header .navbar-brand.d-sm-block img {
        width: 125px;
        height: 88px;
    }
}

@media (max-width: 991.98px) {
    #desktop-search-overlay {
        z-index: 1035 !important;
    }

    #shop-sidebar.offcanvas {
        z-index: 1080;
    }
}

.catalog-heading {
    position: relative;
    border-top: 1px solid rgba(177, 131, 62, .18);
    border-bottom: 1px solid rgba(177, 131, 62, .2);
}

.catalog-heading::after {
    position: absolute;
    bottom: -1px;
    left: 50%;
    width: min(74px, 18vw);
    height: 2px;
    background: #c69545;
    content: '';
    transform: translateX(-50%);
}

.catalog-heading__inner {
    padding-top: 1.7rem;
    padding-bottom: 1.9rem;
}

.catalog-heading__breadcrumb {
    margin-bottom: .8rem;
}

.catalog-heading__breadcrumb .breadcrumb {
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-start;
    font-size: .78rem;
}

.catalog-heading__breadcrumb .breadcrumb-item,
.catalog-heading__breadcrumb .breadcrumb-item.active {
    color: #756b64;
}

.catalog-heading__breadcrumb a {
    display: inline-flex;
    align-items: center;
    gap: .38rem;
    color: #8d6024;
    font-weight: 600;
}

.catalog-heading__breadcrumb .breadcrumb-item + .breadcrumb-item::before {
    color: #ad987a;
}

.catalog-heading__copy {
    max-width: 980px;
}

.catalog-heading__title {
    margin: 0;
    color: #2f2727;
    font-size: clamp(1.8rem, 2.8vw, 2.45rem);
    font-weight: 600;
    line-height: 1.15;
}

.catalog-heading__description {
    max-width: 880px;
    margin: .65rem 0 0;
    color: #625955;
    font-size: 1rem;
    line-height: 1.55;
}

.footer-benefits {
    border-top: 1px solid rgba(177, 131, 62, .18);
    border-bottom: 1px solid rgba(177, 131, 62, .2);
}

.footer-benefits__grid > div {
    display: flex;
}

.footer-benefit {
    display: grid;
    width: 100%;
    min-height: 8rem;
    grid-template-columns: 3.15rem minmax(0, 1fr);
    align-items: center;
    gap: 1rem;
    padding: 1.35rem 1.1rem;
}

.footer-benefits__grid > div + div .footer-benefit {
    border-left: 1px solid rgba(128, 101, 63, .15);
}

.footer-benefit__icon {
    display: inline-flex;
    width: 3.15rem;
    height: 3.15rem;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(181, 128, 46, .28);
    border-radius: 50%;
    background: rgba(255, 255, 255, .58);
    color: #aa7429;
    font-size: 1.55rem;
}

.footer-benefit__title {
    margin: 0 0 .2rem;
    color: #342c2c;
    font-size: .98rem;
    font-weight: 700;
    line-height: 1.25;
}

.footer-benefit__text {
    margin: 0;
    color: #746a65;
    font-size: .82rem;
    line-height: 1.35;
}

@media (max-width: 991.98px) {
    .footer-benefits__grid > div:nth-child(3) .footer-benefit {
        border-left: 0;
    }

    .footer-benefits__grid > div:nth-child(n + 3) .footer-benefit {
        border-top: 1px solid rgba(128, 101, 63, .15);
    }
}

@media (max-width: 499.98px) {
    .catalog-heading__inner {
        padding-top: 1.25rem;
        padding-bottom: 1.45rem;
    }

    .catalog-heading__breadcrumb {
        margin-bottom: .65rem;
    }

    .catalog-heading__title {
        font-size: 1.7rem;
    }

    .catalog-heading__description {
        font-size: .94rem;
        line-height: 1.48;
    }

    .footer-benefit {
        min-height: 9rem;
        grid-template-columns: 1fr;
        align-content: center;
        justify-items: center;
        gap: .65rem;
        padding: 1.15rem .55rem;
        text-align: center;
    }

    .footer-benefits__grid > div:nth-child(odd) .footer-benefit {
        border-left: 0;
    }
}

.widget-touch-carousel .tns-inner {
    touch-action: pan-y;
}

.widget-custom-hero-carousel {
    overflow: hidden;
    background-image: url('/media/img/vintage-bg.jpg');
    background-repeat: repeat;
}

.widget-custom-hero__slide {
    min-height: 390px;
}

.widget-custom-hero__copy {
    max-width: 550px;
}

.widget-custom-hero__media {
    display: block;
    width: min(420px, 100%);
    margin: 0 auto;
}

.widget-custom-hero__media img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 1 / 1;
    border-radius: .65rem;
    object-fit: cover;
}

.widget-simple-card {
    height: 100%;
    overflow: hidden;
    background-image: url('/media/img/vintage-bg.jpg');
    background-repeat: repeat;
    box-shadow: 0 .35rem 1.25rem rgba(45, 34, 36, .08);
}

.widget-simple-card__copy {
    min-width: 0;
    flex: 1 1 55%;
}

.widget-simple-card__media {
    display: block;
    flex: 1 1 45%;
    align-self: stretch;
}

.widget-simple-card__media img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 250px;
    object-fit: cover;
}

.reviews-widget {
    background-image: url('/media/img/vintage-bg.jpg');
    background-repeat: repeat;
}

.reviews-widget__carousel .tns-inner {
    padding: .2rem .05rem .5rem;
}

.reviews-widget__slide,
.reviews-widget__card {
    height: 100%;
}

.reviews-widget__card {
    display: flex;
    min-height: 330px;
    padding: 1.4rem;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid #e8e1d6;
    border-radius: .75rem;
    background: #fff;
    box-shadow: 0 .5rem 1.5rem rgba(45, 34, 36, .08);
}

.reviews-widget__main {
    display: flex;
    min-width: 0;
    flex: 1 1 auto;
    align-items: flex-start;
    gap: 1rem;
}

.reviews-widget__cover {
    display: block;
    width: 76px;
    height: 106px;
    padding: .3rem;
    flex: 0 0 76px;
    overflow: hidden;
    border: 1px solid #eee8df;
    border-radius: .4rem;
    background: #faf8f4;
}

.reviews-widget__cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.reviews-widget__copy {
    min-width: 0;
}

.reviews-widget__rating {
    margin-bottom: .65rem;
}

.reviews-widget__title {
    display: block;
    margin-bottom: .35rem;
    color: #2d2224;
}

.reviews-widget__text {
    display: -webkit-box;
    overflow: hidden;
    margin: 0;
    color: #6a6060;
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 1rem;
    line-height: 1.55;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 6;
}

.reviews-widget__footer {
    display: flex;
    margin-top: 1rem;
    padding-top: .9rem;
    flex-direction: column;
    gap: .5rem;
    border-top: 1px solid #eee8df;
}

.reviews-widget__author,
.reviews-widget__product {
    display: inline-flex;
    min-width: 0;
    align-items: center;
    gap: .35rem;
}

.reviews-widget__author small {
    color: #71844f;
}

.reviews-widget__product {
    color: #74696a;
    font-size: .82rem;
}

.reviews-widget__product span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.newsletter-signup {
    padding: 2.6rem 0;
    border-top: 1px solid #dfd5c4;
    border-bottom: 1px solid #dfd5c4;
    background-image: url('/media/img/vintage-bg.jpg');
    background-repeat: repeat;
}

.newsletter-signup__shell {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
    align-items: center;
    gap: 2.5rem;
}

.newsletter-signup__intro {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
}

.newsletter-signup__icon {
    display: inline-flex;
    width: 3.5rem;
    height: 3.5rem;
    flex: 0 0 3.5rem;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: #2d2224;
    color: #e7ba66;
    font-size: 1.45rem;
}

.newsletter-signup__eyebrow {
    margin-bottom: .25rem;
    color: #9b6b26;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.newsletter-signup__honeypot {
    position: absolute;
    left: -10000px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

@media (max-width: 991.98px) {
    .newsletter-signup__shell {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }
}

@media (max-width: 575.98px) {
    .widget-custom-hero__slide {
        min-height: 0;
    }

    .widget-custom-hero__media {
        width: min(300px, 100%);
    }

    .widget-simple-card__copy {
        padding-bottom: 1rem !important;
    }

    .widget-simple-card__media img {
        min-height: 220px;
    }

    .reviews-widget__card {
        min-height: 310px;
        padding: 1.1rem;
    }

    .newsletter-signup {
        padding: 2rem 0;
    }

    .newsletter-signup__intro {
        display: block;
        text-align: center;
    }

    .newsletter-signup__icon {
        margin: 0 auto .85rem;
    }

    .newsletter-signup .input-group {
        display: grid;
        grid-template-columns: auto 1fr;
    }

    .newsletter-signup .input-group .form-control {
        width: 100%;
        min-width: 0;
        border-radius: 0 .35rem .35rem 0 !important;
    }

    .newsletter-signup .input-group .input-group-text {
        border-radius: .35rem 0 0 .35rem !important;
    }

    .newsletter-signup .input-group .btn {
        grid-column: 1 / -1;
        margin-top: .55rem;
        border-radius: .35rem !important;
    }
}

/* Catalog filters, toolbar and product grid */
#filter-app > .row {
    align-items: flex-start;
    gap: 1.5rem;
    flex-wrap: nowrap;
}

.catalog-filter-column {
    width: 340px;
    padding-right: 0;
    padding-left: 0;
    flex: 0 0 340px;
}

.catalog-filter-panel {
    display: flex;
    width: 100%;
    max-width: none !important;
    max-height: calc(100vh - 2rem);
    flex-direction: column;
    overflow: hidden;
    border: 1px solid #e7ded1;
    border-radius: .45rem;
    background: #fff;
    box-shadow: none !important;
}

.catalog-filter-header {
    display: flex;
    min-height: 4.25rem;
    flex: 0 0 auto;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.15rem;
    background-color: #2d2224;
    background-image: url('/media/img/footer-vintage-bg.jpg');
    background-repeat: repeat;
    color: #fff;
}

.catalog-filter-header h2 {
    display: flex;
    align-items: center;
    gap: .7rem;
    margin: 0;
    color: inherit;
    font-size: 1.2rem;
    font-weight: 700;
}

.catalog-filter-header h2 i {
    color: #e1b45f;
}

.catalog-filter-close {
    display: inline-flex;
    width: 2.4rem;
    height: 2.4rem;
    flex: 0 0 2.4rem;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: #fff;
    font-size: 1.25rem;
}

.catalog-filter-close:hover,
.catalog-filter-close:focus-visible {
    background: rgba(255, 255, 255, .1);
}

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

.catalog-filter-section + .catalog-filter-section {
    border-top: .6rem solid #f6f2eb;
}

.catalog-filter-section__toggle {
    display: flex;
    width: 100%;
    min-height: 4.25rem;
    align-items: center;
    justify-content: space-between;
    gap: .8rem;
    padding: 1rem 1.15rem;
    border: 0;
    background: #fff;
    color: #342d2d;
    text-align: left;
}

.catalog-filter-section__toggle > span:first-child {
    display: inline-flex;
    min-width: 0;
    align-items: center;
    gap: .7rem;
    font-weight: 700;
}

.catalog-filter-section__toggle > span:first-child i {
    width: 1.15rem;
    color: #b77f2d;
    text-align: center;
}

.catalog-filter-section__toggle > i,
.catalog-filter-section__end > i {
    color: #8c8175;
    font-size: .78rem;
    transition: transform .2s ease;
}

.catalog-filter-section__toggle i.is-open,
.catalog-filter-section__end i.is-open {
    transform: rotate(180deg);
}

.catalog-filter-section__end {
    display: inline-flex;
    align-items: center;
    gap: .6rem;
}

.catalog-filter-section__content {
    padding: 0 1.15rem 1rem;
}

.catalog-filter-options {
    margin: 0;
    padding: 0;
    list-style: none;
}

.catalog-filter-options li + li {
    border-top: 1px solid #eee8df;
}

.catalog-filter-category,
.catalog-filter-check {
    display: grid;
    min-height: 2.85rem;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: .65rem;
    padding: .58rem 0;
    color: #413838;
    font-size: .9rem;
    line-height: 1.3;
    text-decoration: none;
}

.catalog-filter-category:hover,
.catalog-filter-category.is-active {
    color: #9a6723;
}

.catalog-filter-category.is-active {
    font-weight: 700;
}

.catalog-filter-check {
    grid-template-columns: auto minmax(0, 1fr) auto;
    cursor: pointer;
}

.catalog-filter-check .form-check-input {
    width: 1.05rem;
    height: 1.05rem;
    margin: 0;
}

.catalog-filter-count {
    display: inline-flex;
    min-width: 2rem;
    min-height: 1.45rem;
    align-items: center;
    justify-content: center;
    padding: .12rem .38rem;
    border-radius: .3rem;
    background: #f4efe7;
    color: #6e6258;
    font-size: .72rem;
    font-weight: 700;
}

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

.catalog-filter-years label {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 2rem;
}

.catalog-filter-years .form-control {
    min-width: 0;
    height: 2.45rem;
    border-color: #d9ab60;
    border-radius: .3rem 0 0 .3rem;
}

.catalog-filter-years small {
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #d9ab60;
    border-left: 0;
    border-radius: 0 .3rem .3rem 0;
    color: #544941;
}

.catalog-filter-facet + .catalog-filter-facet {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid #e9e1d6;
}

.catalog-filter-facet h3 {
    margin-bottom: .3rem;
    color: #725020;
    font-size: .8rem;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.catalog-filter-options--scroll {
    max-height: 14rem;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
}

.catalog-filter-search {
    position: relative;
    display: block;
    margin-bottom: .5rem;
}

.catalog-filter-search .form-control {
    height: 2.45rem;
    padding-right: 2.5rem;
    border-color: #d9ab60;
    font-size: .86rem;
}

.catalog-filter-search > i {
    position: absolute;
    top: 50%;
    right: .85rem;
    color: #514842;
    transform: translateY(-50%);
    pointer-events: none;
}

.catalog-filter-actions {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: .7rem;
    padding: .85rem 1rem;
    flex: 0 0 auto;
    border-top: 1px solid #e8e0d6;
    background: #fff;
}

.catalog-filter-clear {
    border: 1px solid #ded7ce;
    background: #fff;
    color: #6b6058;
}

.catalog-filter-clear:disabled {
    color: #b4aca3;
    opacity: 1;
}

.catalog-filter-apply {
    min-height: 2.8rem;
}

.catalog-products-section {
    min-width: 0;
    padding-right: 0;
    padding-left: 0;
    flex: 1 1 0;
}

.catalog-toolbar {
    display: flex;
    min-height: 4rem;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid #e7e0d7;
}

.catalog-toolbar__controls {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: .65rem;
}

.catalog-toolbar__filter,
.catalog-toolbar__view button {
    position: relative;
    display: inline-flex;
    width: 2.85rem;
    height: 2.85rem;
    flex: 0 0 2.85rem;
    align-items: center;
    justify-content: center;
    border: 1px solid #d9dfe5;
    background: #fff;
    color: #403638;
    font-size: 1.05rem;
}

.catalog-toolbar__filter:hover,
.catalog-toolbar__filter:focus-visible,
.catalog-toolbar__view button:hover,
.catalog-toolbar__view button:focus-visible,
.catalog-toolbar__view button.is-active {
    border-color: #2d2224;
    background: #2d2224;
    color: #e7ba66;
}

.catalog-toolbar__filter-count {
    position: absolute;
    top: -.38rem;
    right: -.38rem;
    display: inline-flex;
    min-width: 1.25rem;
    height: 1.25rem;
    align-items: center;
    justify-content: center;
    border: 2px solid #fff;
    border-radius: 50%;
    background: #d7aa56;
    color: #2d2224;
    font-size: .62rem;
    font-weight: 800;
}

.catalog-toolbar__sort {
    width: min(265px, 48vw);
}

.catalog-toolbar__sort .form-select {
    height: 2.85rem;
    border-color: #d9dfe5;
    background-color: #fff;
}

.catalog-toolbar__view {
    display: flex;
}

.catalog-toolbar__view button + button {
    margin-left: -1px;
}

.catalog-toolbar__total {
    margin: 0;
    color: #403737;
    font-size: .9rem;
    font-weight: 700;
}

.catalog-products-grid {
    --bs-gutter-x: 1rem;
    --bs-gutter-y: 1rem;
    --cz-gutter-x: 1rem;
    --cz-gutter-y: 1rem;
    margin-bottom: .5rem;
}

.catalog-product-col {
    width: 25%;
    flex: 0 0 25%;
    margin-top: var(--bs-gutter-y);
}

.catalog-product-card {
    width: 100%;
    min-width: 0;
    overflow: hidden;
    border: 1px solid #eee8df;
    box-shadow: 0 .35rem 1.2rem rgba(45, 34, 36, .065) !important;
}

.catalog-product-card .card-img-top {
    display: flex !important;
    height: 265px;
    align-items: center;
    justify-content: center;
    padding: .8rem .8rem 0;
}

.catalog-product-card .card-img-top img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.catalog-product-card .card-body {
    min-width: 0;
}

.catalog-product-card .product-title {
    overflow-wrap: anywhere;
}

.catalog-products-loading {
    display: flex;
    min-height: 14rem;
    align-items: center;
    justify-content: center;
    color: #a36e24;
}

.catalog-products-loading .spinner-border {
    width: 2.5rem;
    height: 2.5rem;
}

.catalog-empty-state {
    max-width: 600px;
    margin: 2rem auto;
    padding: 2.5rem 1.5rem;
    border: 1px solid #e8e0d5;
    border-radius: .5rem;
    background: #fff;
    text-align: center;
}

.catalog-empty-state > i {
    margin-bottom: 1rem;
    color: #b17a2b;
    font-size: 2.4rem;
}

.catalog-empty-state h2 {
    font-size: 1.35rem;
}

.catalog-empty-state p {
    margin-bottom: 0;
}

.catalog-pagination-wrap {
    margin: 1.4rem 0 .5rem;
    text-align: center;
}

.catalog-pagination .pagination {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .38rem;
    margin: 0;
}

.catalog-pagination .page-item {
    margin: 0 !important;
}

.catalog-pagination .page-link {
    display: inline-flex;
    min-width: 2.75rem;
    min-height: 2.75rem;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    padding: .5rem .7rem;
    border: 1px solid #ded7ce;
    border-radius: .35rem !important;
    background: #fff;
    color: #4a4040;
    box-shadow: none !important;
}

.catalog-pagination .page-item.active .page-link {
    border-color: #2d2224;
    background: #2d2224;
    color: #f3dfb9;
}

.catalog-pagination .page-item.disabled .page-link {
    background: #f8f5f0;
    color: #a49a90;
}

.catalog-pagination .pagination-mobile-summary .page-link {
    min-width: 5.5rem;
    color: #4a4040;
    font-weight: 700;
}

.catalog-pagination-summary {
    margin: .85rem 0 0;
    color: #756b64;
    font-size: .85rem;
}

@media (min-width: 992px) {
    .catalog-filter-panel.offcanvas-collapse {
        position: sticky;
        top: 1rem;
        height: auto;
        transform: none !important;
        visibility: visible !important;
    }

    .catalog-filter-close {
        display: none;
    }
}

@media (max-width: 991.98px) {
    #filter-app {
        margin-top: 1rem !important;
    }

    #filter-app > .row {
        display: block;
        margin-right: 0;
        margin-left: 0;
    }

    .catalog-filter-column {
        width: 0;
        height: 0;
        padding: 0;
        flex: 0 0 0;
    }

    #shop-sidebar.catalog-filter-panel {
        position: fixed;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        width: 100vw !important;
        max-width: 100vw !important;
        height: 100dvh;
        max-height: 100dvh;
        border: 0;
        border-radius: 0;
        transform: translateX(-100%);
        z-index: 1090;
    }

    #shop-sidebar.catalog-filter-panel.show {
        transform: none;
    }

    .catalog-filter-header {
        min-height: 4.5rem;
        padding-right: 1.1rem;
        padding-left: 1.1rem;
    }

    .catalog-filter-actions {
        padding-bottom: max(.85rem, env(safe-area-inset-bottom));
    }

    .catalog-products-section {
        width: 100%;
        padding: 0;
    }

    .catalog-toolbar {
        min-height: auto;
        margin-bottom: .8rem;
        padding: 0 0 .8rem;
    }

    .catalog-product-col {
        transition: width .2s ease, flex-basis .2s ease;
    }

    .catalog-products-grid--mobile-1 > .catalog-product-col {
        width: 100%;
        flex-basis: 100%;
    }

    .catalog-products-grid--mobile-2 > .catalog-product-col {
        width: 50%;
        flex-basis: 50%;
    }

    .catalog-products-grid--mobile-1 .catalog-product-card .card-img-top {
        height: min(52vh, 390px);
    }

    .catalog-products-grid--mobile-2 .catalog-product-card .card-img-top {
        height: 250px;
        padding: .55rem .45rem 0;
    }
}

@media (max-width: 499.98px) {
    #filter-app {
        padding-right: .5rem;
        padding-left: .5rem;
    }

    .catalog-toolbar {
        gap: .55rem;
    }

    .catalog-toolbar__controls {
        gap: .5rem;
        flex: 1 1 auto;
    }

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

    .catalog-toolbar__sort .form-select {
        min-width: 0;
        padding-right: 2.2rem;
    }

    .catalog-toolbar__filter,
    .catalog-toolbar__view button {
        width: 2.65rem;
        height: 2.65rem;
        flex-basis: 2.65rem;
    }

    .catalog-products-grid {
        --bs-gutter-x: .5rem;
        --bs-gutter-y: .75rem;
        --cz-gutter-x: .5rem;
        --cz-gutter-y: .75rem;
    }

    .catalog-products-grid--mobile-2 .catalog-product-card .card-img-top {
        height: 215px;
    }

    .catalog-product-card .card-body {
        padding-right: .65rem;
        padding-left: .65rem;
    }

    .catalog-product-card .product-title {
        font-size: .79rem !important;
        line-height: 1.25;
    }

    .catalog-product-card .product-price {
        font-size: .83rem;
    }

    .catalog-pagination .page-link {
        min-width: 2.75rem;
        padding-right: .55rem;
        padding-left: .55rem;
    }
}
