.storefront-categories {
    display: flex;
    gap: 1.5rem;
    overflow-x: auto;
    padding: .5rem 0 1rem;
}
.storefront-category {
    flex: 0 0 140px;
    text-align: center;
    font-size: 1rem;
}
.storefront-category-image {
    display: flex;
    height: 120px;
    margin-bottom: .75rem;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}
.storefront-category-image > * { zoom: .42; }
.storefront-category.is-active > span:last-child { color: var(--bs-primary); font-weight: 700; }
.storefront-rail {
    display: flex;
    gap: 1.25rem;
    overflow-x: auto;
    padding: .25rem .25rem 1rem;
    scroll-snap-type: x proximity;
}
.storefront-card {
    flex: 0 0 300px;
    overflow: hidden;
    border: 1px solid var(--store-line);
    background: #fff;
    scroll-snap-align: start;
    scroll-margin-top: 100px;
}
.storefront-product-link {
    display: flex;
    width: 100%;
    height: 100%;
    flex-direction: column;
    padding: 0;
    border: 0;
    background: #fff;
    text-align: left;
    font: inherit;
}
.storefront-product-image {
    position: relative;
    display: flex;
    width: 100%;
    height: 320px;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    overflow: hidden;
    background: #fafafa;
}
.storefront-product-info { display: block; padding: 1.25rem; font-size: 1rem; }
.storefront-badge { width: 220px; aspect-ratio: 1; }
.storefront-badge > svg { display: block; }
.storefront-product-image .store-product-certificate { width: 184px; transform: none; }
.storefront-product-image .store-product-mini-certificate-phoenix { width: 164px; }
.storefront-certificate-phoenix-subtle { background-image: url('/images/certificate-phoenix-frame-subtle-portrait.svg'); }
.storefront-certificate-classic {
    position: relative;
    background-image: none;
}
.storefront-certificate-classic::before,
.storefront-certificate-classic::after {
    content: "";
    position: absolute;
    pointer-events: none;
}
/* Match the print layout: inner frame at 12mm, outer frame 3.1mm beyond it. */
.storefront-certificate-classic::before {
    inset: 4.04% 5.71%;
    border: .6px solid #aa986a;
}
.storefront-certificate-classic::after {
    inset: 3% 4.24%;
    border: .4px solid #d6cdb4;
}
.store-product-mini-certificate-phoenix.storefront-certificate-classic::before {
    inset: 5.71% 8.08%;
}
.store-product-mini-certificate-phoenix.storefront-certificate-classic::after {
    inset: 4.24% 5.99%;
}
.storefront-rail:focus-visible,
.storefront-product-link:focus-visible,
.storefront-category:focus-visible { outline: 3px solid var(--bs-primary); outline-offset: 2px; }
@media (max-width: 575.98px) {
    .storefront-categories { gap: .75rem; }
    .storefront-category { flex-basis: 112px; }
    .storefront-card { flex-basis: min(280px, 82vw); }
    .storefront-product-image { height: 300px; }
}

.storefront-product-photo { display: block; width: 100%; height: 100%; object-fit: contain; }
.storefront-category-image > .storefront-product-photo { zoom: 1; }
