/* Reference-style home product rows. Rules are confined to this component. */
.jf-store .jf-reference-catalog { min-width: 0; padding: 24px; margin: 0; }
.jf-store .jf-reference-catalog .jf-reference-catalog-title {
    margin: 8px 0 24px;
    font-family: 'JStonePrata', Georgia, 'Times New Roman', serif;
    font-size: 30px;
    font-weight: 400;
    line-height: 1.2;
    text-transform: uppercase;
}
.jf-store .jf-reference-catalog-viewport {
    width: 100%;
    min-width: 0;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: none;
    scroll-snap-type: x mandatory;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-x pan-y;
}
.jf-store .jf-reference-catalog-viewport::-webkit-scrollbar { display: none; }
.jf-store .jf-reference-catalog-viewport:focus-visible { outline: 2px solid var(--jf-purple, #542355); outline-offset: 3px; }
.jf-store ul.jf-reference-catalog-track {
    display: flex;
    flex-flow: row nowrap;
    gap: 0;
    width: 100%;
    list-style: none;
    margin: 0;
    padding: 0;
}
.jf-store .jf-reference-catalog-slide {
    display: block;
    flex: 0 0 25%;
    width: 25%;
    min-width: 0;
    margin: 0;
    padding: 0 20px 0 0;
    scroll-snap-align: start;
    scroll-snap-stop: normal;
}
.jf-store .jf-reference-product-card { min-width: 0; width: 100%; margin: 0; padding: 0; border: 0; background: #fff; }
.jf-store .jf-reference-product-photo {
    position: relative;
    width: 100%;
    aspect-ratio: 1;
    padding: 24px;
    background: #f6f6f6;
}
.jf-store .jf-reference-product-photo-link { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; -webkit-user-drag: none; }
.jf-store img.jf-reference-product-image {
    display: block;
    width: 100%;
    height: 100%;
    max-width: 240px;
    max-height: 240px;
    margin: 0;
    object-fit: contain;
    mix-blend-mode: multiply;
    -webkit-user-drag: none;
}
.jf-store img.jf-reference-product-image[hidden] { display: none; }
.jf-store .jf-reference-product-photo-controls { position: absolute; bottom: 4px; left: 50%; display: flex; gap: 4px; transform: translateX(-50%); }
.jf-store button.jf-reference-product-photo-control {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 20px;
    min-height: 0;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}
.jf-store button.jf-reference-product-photo-control::before { content: ''; position: absolute; bottom: 0; display: block; width: 24px; height: 2px; background: #bcbcbc; }
.jf-store button.jf-reference-product-photo-control.is-active::before { background: #000; }
.jf-store .jf-reference-product-brand { margin: 16px 0 0; font-size: 12px; font-weight: 400; line-height: 1.4; text-transform: uppercase; }
.jf-store .jf-reference-product-name { margin: 4px 0 8px; font-size: 18px; font-weight: 400; line-height: 1.4; }
.jf-store .jf-reference-product-specification { margin: 0 0 8px; font-size: 14px; line-height: 1.4; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.jf-store .jf-reference-product-gender { display: inline-block; margin: 0 0 8px; padding: 3px 8px; background: #868686; color: #fff; font-size: 12px; line-height: 1.3; text-transform: lowercase; }
.jf-store .jf-reference-product-price { margin: 0; font-size: 18px; font-weight: 400; line-height: 1.4; }
.jf-store .jf-reference-product-price del { color: #777; font-size: 14px; }
.jf-store .jf-reference-product-price ins { background: transparent; text-decoration: none; }
.jf-store .jf-reference-catalog-navigation { display: flex; align-items: center; justify-content: flex-end; gap: 16px; margin-top: 16px; }
.jf-store button.jf-reference-catalog-arrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 47.328px;
    height: 44.17px;
    min-height: 0;
    padding: 0;
    margin: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: #000;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 44px;
    font-weight: 400;
    line-height: 1;
    box-shadow: none;
}
.jf-store button.jf-reference-catalog-arrow:disabled { color: #aaa; opacity: 1; cursor: default; }
.jf-store .jf-reference-catalog:not(.is-enhanced) .jf-reference-catalog-navigation { display: none; }
.jf-store .jf-reference-catalog-viewport.is-dragging,
.jf-store .jf-reference-catalog-viewport.is-dragging a { cursor: grabbing; user-select: none; }
@media (min-width: 601px) and (max-width: 1023px) {
    .jf-store .jf-reference-catalog-slide { flex-basis: calc(100% / 3); width: calc(100% / 3); }
}
@media (max-width: 600px) {
    .jf-store .jf-reference-catalog { padding: 16px 0; }
    .jf-store .jf-reference-catalog .jf-reference-catalog-title { margin-bottom: 16px; font-size: 24px; }
    .jf-store .jf-reference-catalog-slide { flex-basis: 50%; width: 50%; }
}
