.klyra-shop-categories,
.klyra-shop-categories * {
        box-sizing: border-box;
}

.klyra-shop-categories {
        position: relative;
        width: 100%;
        border-top: 2px solid #541417;
        background: #fdfbf8;
        color: inherit;
        font-family: inherit;
}

.klyra-shop-categories.is-full-bleed {
        width: 100vw;
        max-width: 100vw;
        margin-right: calc(50% - 50vw);
        margin-left: calc(50% - 50vw);
}

.klyra-category-inner {
        width: 100%;
        max-width: 1300px;
        margin-inline: auto;
        padding-top: max(60px, var(--klyra-category-space-top, 60px)) !important;
        padding-right: 0;
        padding-bottom: max(60px, var(--klyra-category-space-bottom, 60px)) !important;
        padding-left: 0;
}

.klyra-category-heading {
        margin: 0 0 19px;
        color: #421316;
        font: inherit;
        font-size: 20px;
        font-weight: 700;
        letter-spacing: 1.2px;
        line-height: 1.2;
        text-align: center;
        text-transform: uppercase;
}

.klyra-category-carousel {
        position: relative;
        padding-inline: 44px;
}

.klyra-category-viewport {
        width: 100%;
        overflow-x: auto;
        overflow-y: hidden;
        scroll-behavior: smooth;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
        touch-action: pan-x;
}

.klyra-category-viewport::-webkit-scrollbar {
        display: none;
}

.klyra-category-grid,
.klyra-category-track {
        --klyra-category-columns: 8;
        --klyra-category-gap: 28px;
        display: flex;
        width: 100%;
        min-width: 100%;
        align-items: flex-start;
        column-gap: var(--klyra-category-gap);
        row-gap: 22px;
}

.klyra-category-card {
        display: flex;
        min-width: 0;
        align-items: center;
        flex: 1 0 112px;
        flex-direction: column;
        scroll-snap-align: start;
        color: inherit;
        text-align: center;
        text-decoration: none;
}

.klyra-category-image {
        display: block;
        width: 112px;
        max-width: 100%;
        height: 112px;
        overflow: hidden;
        border-radius: 50%;
        background: #ede6dc;
}

.klyra-category-image img {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: var(--klyra-category-x, 50%) var(--klyra-category-y, 20%);
        transition: transform .25s ease;
}

.klyra-category-card:hover .klyra-category-image img,
.klyra-category-card:focus-visible .klyra-category-image img {
        transform: scale(var(--klyra-hover-scale, 1.04));
}

.klyra-category-card:focus-visible {
        outline: 2px solid currentColor;
        outline-offset: 5px;
}

.klyra-category-title {
        display: block;
        margin-top: 10px;
        color: #55191c;
        font: inherit;
        font-size: 14px;
        font-weight: 600;
        line-height: 1.25;
        transition: color .2s ease;
}

.klyra-category-meta {
        display: block;
        margin-top: 4px;
        color: inherit;
        font: inherit;
        font-size: 12px;
        line-height: 1.35;
        opacity: .72;
}

.klyra-category-arrow {
        position: absolute;
        top: 50%;
        z-index: 2;
        display: inline-flex;
        width: 38px;
        height: 38px;
        align-items: center;
        justify-content: center;
        padding: 0;
        transform: translateY(-50%);
        appearance: none;
        min-width: 0;
        border: 0 !important;
        border-radius: 50%;
        background: transparent !important;
        box-shadow: none !important;
        color: #6b2124;
        cursor: pointer;
        font: inherit;
        line-height: 1 !important;
        text-shadow: none;
        transition: color .2s ease, background-color .2s ease, opacity .2s ease;
}

.klyra-category-arrow:hover,
.klyra-category-arrow:focus-visible {
        background: #f2e9dd !important;
        color: #b27a2a;
}

.klyra-category-arrow:focus-visible {
        outline: 2px solid currentColor;
        outline-offset: 2px;
}

.klyra-category-arrow:disabled {
        cursor: default;
        opacity: .25;
}

.klyra-category-arrow svg {
        display: block;
        width: 26px;
        height: 26px;
        fill: none;
        stroke: currentColor;
        stroke-linecap: round;
        stroke-linejoin: round;
        stroke-width: 2;
}

.klyra-category-arrow-icon {
        display: block;
        width: 12px;
        height: 12px;
        border-right: 2px solid currentColor;
        border-bottom: 2px solid currentColor;
        transform: rotate(-45deg);
}

.klyra-category-arrow-icon-prev {
        transform: rotate(135deg);
}

.klyra-category-prev {
        left: 8px;
}

.klyra-category-next {
        right: 8px;
}

.klyra-category-arrow[hidden] {
        display: none !important;
}

.klyra-category-notice {
        padding: 18px;
        border: 1px dashed currentColor;
        text-align: center;
}

@media (max-width: 1024px) {
        .klyra-category-inner {
                padding: 20px 24px 24px;
        }

        .klyra-category-carousel {
                padding-inline: 38px;
        }

        .klyra-category-grid,
        .klyra-category-track {
                --klyra-category-gap: 24px;
        }

        .klyra-category-card {
                flex-basis: 100px;
        }

        .klyra-category-image {
                width: 100px;
                height: 100px;
        }
}

@media (max-width: 767px) {
        .klyra-category-inner {
                padding: 18px 18px 22px;
        }

        .klyra-category-carousel {
                padding-inline: 32px;
        }

        .klyra-category-grid,
        .klyra-category-track {
                --klyra-category-gap: 18px;
                row-gap: 18px;
        }

        .klyra-category-card {
                flex-basis: 100px;
        }

        .klyra-category-image {
                width: 100px;
                height: 100px;
        }

        .klyra-category-arrow {
                width: 30px;
                height: 30px;
        }

        .klyra-category-arrow svg {
                width: 22px;
                height: 22px;
        }
}

@media (prefers-reduced-motion: reduce) {
        .klyra-category-viewport {
                scroll-behavior: auto;
        }

        .klyra-category-image img {
                transition: none;
        }
}
