/* ==========================================================================
   Alice's Looks — вітрина. Тепло-мінімальна тема.
   Порядок: токени → база → міст до Bootstrap → компоненти → адаптив.
   Кольори брати лише зі змінних нижче, hex у компонентах не хардкодити.
   ========================================================================== */

:root {
    /* Палітра. Основа — логотип: темно-синій бант на теплому жовтому. */
    --shop-primary: #2e4666;
    --shop-primary-deep: #223550;
    --shop-secondary: #fccf71;
    --shop-secondary-soft: #fdecc9;
    --shop-accent: #b4553f;

    --shop-ink: #231f1b;
    --shop-ink-soft: #6f665d;
    --shop-ink-faint: #9c9289;

    --shop-page: #fbf8f3;
    --shop-card: #ffffff;
    --shop-surface: #f4eee5;
    --shop-media: #f1eae0;
    --shop-line: #e8dfd2;
    --shop-line-soft: #f1eadf;

    /* Шкала відступів */
    --sp-1: .25rem;
    --sp-2: .5rem;
    --sp-3: .75rem;
    --sp-4: 1rem;
    --sp-5: 1.5rem;
    --sp-6: 2rem;
    --sp-7: 3rem;
    --sp-8: 4.5rem;

    /* Радіуси */
    --r-sm: .5rem;
    --r-md: .75rem;
    --r-lg: 1.25rem;
    --r-pill: 999px;

    /* Тіні — теплі й дуже стримані */
    --shadow-sm: 0 1px 2px rgba(35, 31, 27, .05);
    --shadow-md: 0 14px 34px -18px rgba(35, 31, 27, .28);

    /* Типографіка */
    --font-sans: 'Manrope', system-ui, -apple-system, 'Segoe UI', sans-serif;
    --fs-eyebrow: .6875rem;
    --fs-xs: .75rem;
    --fs-sm: .8125rem;
    --fs-base: .9375rem;
    --fs-md: 1.0625rem;
    --fs-lg: 1.25rem;
    --fs-xl: 1.625rem;
    --fs-display: clamp(1.9rem, 1.2rem + 2.6vw, 3.1rem);
    --tracking-wide: .09em;

    --ease-out: cubic-bezier(.2, .6, .2, 1);
}

/* ---------- База ---------------------------------------------------------- */

body.shop-page {
    background: var(--shop-page);
    color: var(--shop-ink);
    font-family: var(--font-sans);
    font-size: var(--fs-base);
    font-weight: 450;
    line-height: 1.6;
    letter-spacing: -.005em;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.shop-page h1,
.shop-page h2,
.shop-page h3,
.shop-page h4 {
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: -.02em;
}

.shop-page ::selection {
    background: var(--shop-secondary);
    color: var(--shop-primary-deep);
}

.shop-page :focus-visible {
    outline: 2px solid var(--shop-primary);
    outline-offset: 2px;
    border-radius: var(--r-sm);
}

/* Дрібний капслок-надпис над заголовком секції */
.shop-eyebrow {
    margin-bottom: var(--sp-2);
    color: var(--shop-ink-faint);
    font-size: var(--fs-eyebrow);
    font-weight: 700;
    letter-spacing: var(--tracking-wide);
    text-transform: uppercase;
}

.shop-section-title {
    margin: 0;
    font-size: var(--fs-xl);
}

/* ---------- Міст до Bootstrap -------------------------------------------- */

.shop-page {
    --bs-body-font-family: var(--font-sans);
    --bs-body-color: var(--shop-ink);
    --bs-body-bg: var(--shop-page);
    --bs-emphasis-color: var(--shop-ink);
    --bs-secondary-color: var(--shop-ink-soft);
    --bs-border-color: var(--shop-line);
    --bs-border-radius: var(--r-sm);
    --bs-link-color: var(--shop-primary);
    --bs-link-hover-color: var(--shop-primary-deep);
    --bs-focus-ring-color: rgba(46, 70, 102, .2);
}

.shop-page .btn {
    --bs-btn-font-family: var(--font-sans);
    --bs-btn-font-size: var(--fs-sm);
    --bs-btn-font-weight: 600;
    --bs-btn-border-radius: var(--r-pill);
}

.shop-page .btn-primary,
.shop-page .btn-dark {
    --bs-btn-bg: var(--shop-primary);
    --bs-btn-border-color: var(--shop-primary);
    --bs-btn-hover-bg: var(--shop-primary-deep);
    --bs-btn-hover-border-color: var(--shop-primary-deep);
    --bs-btn-active-bg: var(--shop-primary-deep);
    --bs-btn-active-border-color: var(--shop-primary-deep);
}

.shop-page .form-check-input {
    border-color: var(--shop-line);
}

.shop-page .form-check-input:checked {
    background-color: var(--shop-primary);
    border-color: var(--shop-primary);
}

.shop-page .form-check-input:focus {
    border-color: var(--shop-primary);
    box-shadow: 0 0 0 .2rem rgba(46, 70, 102, .16);
}

.shop-page .form-control:focus,
.shop-page .form-select:focus {
    border-color: var(--shop-primary);
    box-shadow: 0 0 0 .2rem rgba(46, 70, 102, .12);
}

/* ---------- Шапка --------------------------------------------------------- */

.shop-navbar {
    min-height: 78px;
    padding-block: var(--sp-3);
    background: var(--shop-page);
    border-bottom: 1px solid var(--shop-line);
}

.shop-logo {
    width: 150px;
    max-height: 46px;
    object-fit: contain;
}

.shop-header-actions {
    display: flex;
    align-items: center;
    gap: var(--sp-1);
}

.shop-icon-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.75rem;
    height: 2.75rem;
    padding: 0;
    color: var(--shop-primary);
    background: transparent;
    border: 0;
    border-radius: var(--r-pill);
    line-height: 1;
    transition: background-color .18s var(--ease-out), color .18s var(--ease-out);
}

.shop-icon-button .bi {
    font-size: 1.15rem;
    line-height: 1;
}

.shop-icon-button:hover,
.shop-icon-button:focus {
    color: var(--shop-primary-deep);
    background: var(--shop-surface);
}

/* ---------- Герой --------------------------------------------------------- */

.shop-hero {
    position: relative;
    overflow: hidden;
    padding-block: var(--sp-7);
    background: var(--shop-page);
}

.shop-hero-inner {
    display: grid;
    grid-template-columns: 1.05fr .95fr;
    align-items: center;
    gap: var(--sp-6);
}

.shop-hero-copy {
    position: relative;
    z-index: 1;
}

.shop-hero-title {
    max-width: 14ch;
    margin-bottom: var(--sp-4);
    font-size: var(--fs-display);
    font-weight: 700;
    letter-spacing: -.03em;
}

.shop-hero-text {
    max-width: 42ch;
    margin-bottom: var(--sp-5);
    color: var(--shop-ink-soft);
    font-size: var(--fs-md);
}

/* Жовте коло вже є в самому зображенні маскота — додатковий ореол у CSS не потрібен */
.shop-hero-figure {
    display: flex;
    justify-content: center;
}

.shop-hero-mascot {
    width: 340px;
    max-width: 100%;
    height: auto;
}

.shop-hero-cta {
    display: inline-flex;
    align-items: center;
    gap: var(--sp-2);
    padding: .75rem 1.75rem;
    color: #fff;
    background: var(--shop-primary);
    border-radius: var(--r-pill);
    font-size: var(--fs-sm);
    font-weight: 600;
    letter-spacing: .01em;
    text-decoration: none;
    transition: background-color .18s var(--ease-out), transform .18s var(--ease-out);
}

.shop-hero-cta:hover,
.shop-hero-cta:focus {
    color: #fff;
    background: var(--shop-primary-deep);
    transform: translateY(-1px);
}

/* ---------- Смуга категорій ---------------------------------------------- */

.category-strip {
    background: transparent;
    border-bottom: 1px solid var(--shop-line-soft);
}

.category-stories {
    display: flex;
    align-items: flex-start;
    gap: var(--sp-4);
    overflow-x: auto;
    padding-block: var(--sp-3) var(--sp-4);
    scrollbar-width: none;
}

.category-stories::-webkit-scrollbar {
    display: none;
}

.category-story {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--sp-3);
    width: 7.5rem;
    min-width: 7.5rem;
    padding-bottom: var(--sp-2);
    color: var(--shop-ink);
    text-align: center;
    outline: 0;
}

.category-image {
    position: relative;
    display: block;
    width: 7.25rem;
    height: 7.25rem;
    overflow: hidden;
    border-radius: 50%;
    background: var(--shop-media);
    box-shadow: 0 0 0 1px var(--shop-line-soft);
    transition: transform .25s var(--ease-out), box-shadow .25s var(--ease-out);
}

.category-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.category-image-all {
    display: grid;
    place-items: center;
    background: var(--shop-surface);
    color: var(--shop-primary);
}

.category-all-mark {
    display: grid;
    place-items: center;
    color: inherit;
    font-size: var(--fs-xl);
    font-weight: 700;
    letter-spacing: var(--tracking-wide);
    text-transform: uppercase;
}

.category-story:hover .category-image,
.category-story:focus .category-image {
    transform: translateY(-2px);
    box-shadow: 0 0 0 1px var(--shop-line), var(--shadow-sm);
}

.category-title {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    min-height: 2.7em;
    color: var(--shop-primary-deep);
    font-size: var(--fs-base);
    font-weight: 600;
    line-height: 1.35;
    transition: color .18s var(--ease-out);
}

.category-story::after {
    width: var(--sp-7);
    height: var(--sp-1);
    background: transparent;
    border-radius: var(--r-pill);
    content: "";
    transition: background-color .18s var(--ease-out);
}

.category-story:hover,
.category-story:focus {
    color: var(--shop-ink);
}

.category-story:hover .category-title {
    color: var(--shop-primary);
}

.category-story.active::after {
    background: var(--shop-secondary);
}

.category-story.active .category-image-all {
    color: var(--shop-secondary);
    background: var(--shop-primary);
    box-shadow: none;
}

.category-story.active .category-title {
    color: var(--shop-primary);
    font-weight: 700;
}

/* ---------- Секція товарів ------------------------------------------------ */

.products-section {
    background: transparent;
}

/* Панель керування: фільтри, вигляд, сортування */
.shop-control,
.shop-page .shop-control {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--sp-2);
    min-height: 2.6rem;
    padding: 0 1.1rem;
    color: var(--shop-ink);
    background: var(--shop-card);
    border: 1px solid var(--shop-line);
    border-radius: var(--r-pill);
    font-size: var(--fs-sm);
    font-weight: 600;
    line-height: 1;
    transition: border-color .18s var(--ease-out), background-color .18s var(--ease-out), color .18s var(--ease-out);
}

.shop-page .shop-control:hover,
.shop-page .shop-control:focus {
    border-color: var(--shop-primary);
    color: var(--shop-primary);
    background: var(--shop-card);
}

.shop-page .shop-control.active,
.shop-page .shop-control:active {
    color: #fff;
    background: var(--shop-primary);
    border-color: var(--shop-primary);
}

.shop-control-group {
    display: inline-flex;
    padding: .2rem;
    background: var(--shop-surface);
    border-radius: var(--r-pill);
}

.shop-page .shop-control-group .shop-control {
    min-width: 2.6rem;
    padding: 0 .85rem;
    background: transparent;
    border-color: transparent;
}

.shop-page .shop-control-group .shop-control.active {
    background: var(--shop-card);
    border-color: transparent;
    color: var(--shop-primary);
    box-shadow: var(--shadow-sm);
}

.shop-page #openFilterButton.has-active-filters {
    color: #fff;
    background: var(--shop-primary);
    border-color: var(--shop-primary);
}

.shop-filter-count {
    display: inline-grid;
    place-items: center;
    min-width: 1.25rem;
    height: 1.25rem;
    padding: 0 .35rem;
    background: var(--shop-secondary);
    border-radius: var(--r-pill);
    color: var(--shop-primary-deep);
    font-size: var(--fs-eyebrow);
    font-weight: 700;
}

.shop-page .dropdown-menu {
    padding: var(--sp-2);
    border: 1px solid var(--shop-line);
    border-radius: var(--r-md);
    box-shadow: var(--shadow-md);
    font-size: var(--fs-sm);
}

.shop-page .dropdown-item {
    border-radius: var(--r-sm);
    font-weight: 500;
}

.shop-page .dropdown-item:hover,
.shop-page .dropdown-item:focus {
    background: var(--shop-surface);
}

.shop-page .dropdown-item.active,
.shop-page .dropdown-item:active {
    background: var(--shop-primary);
    color: #fff;
}

.shop-result-count {
    color: var(--shop-ink-soft);
    font-size: var(--fs-sm);
}

.shop-reset-link {
    color: var(--shop-ink-soft);
    font-size: var(--fs-sm);
    font-weight: 600;
    text-decoration: none;
    border-bottom: 1px solid var(--shop-line);
}

.shop-reset-link:hover {
    color: var(--shop-primary);
    border-bottom-color: var(--shop-primary);
}

/* ---------- Сітка і картка товару ---------------------------------------- */

.product-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: var(--sp-6) var(--sp-5);
}

.product-grid-list {
    grid-template-columns: 1fr;
    gap: var(--sp-5);
}

/* Картка без рамки: межі створює повітря, а не лінія */
.product-card {
    position: relative;
    display: grid;
    grid-template-rows: auto 1fr;
    background: transparent;
    border: 0;
}

.product-grid-list .product-card {
    grid-template-columns: minmax(180px, 260px) 1fr;
    grid-template-rows: auto;
    gap: var(--sp-5);
    padding-bottom: var(--sp-5);
    border-bottom: 1px solid var(--shop-line-soft);
}

.product-media {
    position: relative;
    overflow: hidden;
    aspect-ratio: 4 / 5;
    background: var(--shop-media);
    border-radius: var(--r-md);
}

.product-grid-list .product-media {
    height: 100%;
    min-height: 240px;
}

.product-image-link {
    display: block;
    height: 100%;
}

.product-image,
.quick-add-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.product-image {
    transition: transform .6s var(--ease-out);
}

.product-card:hover .product-image {
    transform: scale(1.04);
}

.product-body {
    display: flex;
    flex-direction: column;
    padding: var(--sp-3) var(--sp-1) 0;
}

.product-grid-list .product-body {
    padding: var(--sp-2) 0 0;
}

/* У сітці назва отримує всю ширину картки, наявність іде окремим рядком під нею.
   У режимі списку місця вистачає, тому там це один рядок. */
.product-head {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: .1rem;
    min-width: 0;
}

.product-grid-list .product-head {
    flex-direction: row;
    justify-content: space-between;
    gap: var(--sp-3);
}

.product-info {
    width: 100%;
    min-width: 0;
}

.product-title {
    margin-bottom: var(--sp-1);
    font-size: var(--fs-base);
    font-weight: 500;
    line-height: 1.4;
    letter-spacing: -.01em;
}

.product-title a {
    display: -webkit-box;
    min-height: 2.8em;
    overflow: hidden;
    color: var(--shop-ink);
    text-decoration: none;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.product-title a:hover {
    color: var(--shop-primary);
}

.product-description {
    display: -webkit-box;
    min-height: 3rem;
    overflow: hidden;
    color: var(--shop-ink-soft);
    font-size: var(--fs-sm);
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.product-price-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--sp-3);
    margin-top: var(--sp-1);
}

.product-price {
    font-size: var(--fs-md);
    font-weight: 700;
    letter-spacing: -.02em;
}

.product-price-sale {
    color: var(--shop-accent);
}

.product-price-old {
    color: var(--shop-ink-faint);
    font-size: var(--fs-xs);
    white-space: nowrap;
    text-decoration: line-through;
}

.product-quick-add-button {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 2.4rem;
    height: 2.4rem;
    padding: 0;
    color: var(--shop-primary);
    background: var(--shop-card);
    border: 1px solid var(--shop-line);
    border-radius: var(--r-pill);
    line-height: 1;
    transition: color .18s var(--ease-out), background-color .18s var(--ease-out),
    border-color .18s var(--ease-out), transform .18s var(--ease-out);
}

.product-quick-add-button .bi {
    font-size: 1rem;
    line-height: 1;
}

.product-quick-add-button:hover,
.product-quick-add-button:focus {
    color: #fff;
    background: var(--shop-primary);
    border-color: var(--shop-primary);
    transform: translateY(-1px);
}

/* ---------- Мітки на картці ---------------------------------------------- */

.product-sale-badge {
    position: absolute;
    top: var(--sp-3);
    left: var(--sp-3);
    z-index: 1;
    padding: .3rem .65rem;
    background: var(--shop-accent);
    border-radius: var(--r-pill);
    color: #fff;
    font-size: var(--fs-eyebrow);
    font-weight: 700;
    letter-spacing: var(--tracking-wide);
    text-transform: uppercase;
}

/* Наявність — службова інформація, а не акцент: тихий мікротекст без плашки */
.product-stock-chip {
    flex: 0 0 auto;
    padding-top: .15rem;
    color: var(--shop-ink-faint);
    font-size: var(--fs-eyebrow);
    font-weight: 600;
    letter-spacing: .04em;
    white-space: nowrap;
}

.product-size-chip {
    padding: .15rem .5rem;
    color: var(--shop-ink-soft);
    border: 1px solid var(--shop-line);
    border-radius: var(--r-sm);
    font-size: var(--fs-eyebrow);
    font-weight: 600;
}

.product-swatch,
.quick-color-option,
.color-dot {
    display: inline-block;
    width: 1.1rem;
    height: 1.1rem;
    border: 1px solid rgba(35, 31, 27, .14);
    border-radius: 50%;
}

.product-swatch {
    width: .95rem;
    height: .95rem;
    padding: 0;
    appearance: none;
    cursor: pointer;
    transition: transform .15s var(--ease-out);
}

.product-swatch:hover {
    transform: scale(1.12);
}

.product-swatch:focus {
    outline: none;
}

.product-swatch.active,
.product-swatch.active:focus,
.product-swatch.active:focus-visible,
.btn-check:checked + .quick-color-option {
    outline: 1.5px solid var(--shop-primary);
    outline-offset: 2px;
}

.quick-color-option {
    cursor: pointer;
}

.quantity-input {
    max-width: 8rem;
}

/* ---------- Порожній стан ------------------------------------------------- */

.shop-empty {
    padding: var(--sp-7) var(--sp-5);
    background: var(--shop-surface);
    border-radius: var(--r-lg);
    text-align: center;
}

.shop-empty-mascot {
    width: 150px;
    height: auto;
    margin-bottom: var(--sp-3);
}

.shop-empty-title {
    margin-bottom: var(--sp-2);
    font-size: var(--fs-lg);
}

.shop-empty-text {
    margin: 0;
    color: var(--shop-ink-soft);
    font-size: var(--fs-sm);
}

/* ---------- Пагінація ----------------------------------------------------- */

.shop-page .pagination {
    --bs-pagination-font-size: var(--fs-sm);
    gap: var(--sp-1);
}

.shop-page .page-link {
    min-width: 2.4rem;
    padding: .5rem .75rem;
    color: var(--shop-ink);
    background: transparent;
    border: 1px solid transparent;
    border-radius: var(--r-pill);
    font-weight: 600;
    text-align: center;
}

.shop-page .page-link:hover {
    background: var(--shop-surface);
    color: var(--shop-primary);
}

.shop-page .active > .page-link,
.shop-page .page-link.active {
    color: #fff;
    background: var(--shop-primary);
    border-color: var(--shop-primary);
}

.shop-page .page-item.disabled .page-link {
    color: var(--shop-ink-faint);
    background: transparent;
}

/* ---------- Фільтри (offcanvas) ------------------------------------------ */

.shop-page .offcanvas,
.shop-page .modal-content {
    background: var(--shop-page);
    border: 0;
}

.shop-page .offcanvas-header,
.shop-page .modal-header {
    padding: var(--sp-5);
    border-bottom: 1px solid var(--shop-line-soft);
}

.shop-page .offcanvas-title,
.shop-page .modal-title {
    font-size: var(--fs-md);
    font-weight: 700;
}

.filter-accordion .accordion-item {
    background: transparent;
    border: 0;
    border-bottom: 1px solid var(--shop-line-soft);
}

.filter-accordion .accordion-button {
    padding-inline: 0;
    background: transparent;
    box-shadow: none;
    color: var(--shop-ink);
    font-size: var(--fs-sm);
    font-weight: 700;
    letter-spacing: var(--tracking-wide);
    text-transform: uppercase;
}

.filter-accordion .accordion-button:not(.collapsed) {
    color: var(--shop-primary);
}

.filter-accordion .accordion-button:focus {
    box-shadow: none;
}

.filter-accordion .accordion-body {
    padding-inline: 0;
}

.filter-accordion .form-check-label {
    width: 100%;
    color: var(--shop-ink-soft);
    font-size: var(--fs-sm);
}

.filter-accordion .form-check-input:checked ~ .form-check-label {
    color: var(--shop-ink);
    font-weight: 600;
}

/* ---------- Підвал -------------------------------------------------------- */

.shop-footer {
    margin-top: var(--sp-8);
    padding-block: var(--sp-7);
    background: var(--shop-surface);
}

.footer-logo {
    width: 172px;
    max-height: 60px;
    object-fit: contain;
}

.shop-footer .nav-link {
    color: var(--shop-ink-soft);
    font-size: var(--fs-sm);
    font-weight: 600;
}

.shop-footer .nav-link:hover {
    color: var(--shop-primary);
}

.shop-footer-legal {
    color: var(--shop-ink-faint);
    font-size: var(--fs-xs);
    letter-spacing: .01em;
}

/* ---------- Адаптив ------------------------------------------------------- */

@media (max-width: 767.98px) {
    .shop-navbar {
        min-height: 64px;
        padding-block: var(--sp-2);
    }

    .shop-logo {
        width: 126px;
    }

    .shop-icon-button {
        width: 2.4rem;
        height: 2.4rem;
    }

    .shop-hero {
        padding-block: var(--sp-6) 0;
    }

    /* На вузькому екрані — одна колонка: текст, під ним маскот */
    .shop-hero-inner {
        grid-template-columns: 1fr;
        gap: var(--sp-4);
        text-align: center;
    }

    .shop-hero-title,
    .shop-hero-text {
        max-width: none;
        margin-inline: auto;
    }

    .shop-hero-mascot {
        width: 180px;
    }

    .category-stories {
        gap: var(--sp-3);
        margin-right: calc(var(--bs-gutter-x) * -0.5);
        padding-block: var(--sp-3) var(--sp-4);
        padding-right: calc(var(--bs-gutter-x) * 0.5);
    }

    .category-story {
        gap: var(--sp-2);
        width: 5.25rem;
        min-width: 5.25rem;
    }

    .category-image {
        width: 4.75rem;
        height: 4.75rem;
    }

    .category-all-mark {
        font-size: var(--fs-base);
    }

    .category-title {
        min-height: 2.8em;
        font-size: var(--fs-xs);
    }

    .category-story::after {
        width: var(--sp-6);
    }

    .product-grid {
        grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
        gap: var(--sp-5) var(--sp-3);
    }

    /* Дві колонки на 375px — ціна, стара ціна і кнопка мають вміститись в один рядок */
    .product-price-row {
        gap: var(--sp-2);
    }

    .product-price {
        font-size: var(--fs-base);
    }

    .product-quick-add-button {
        width: 2.1rem;
        height: 2.1rem;
    }

    .product-quick-add-button .bi {
        font-size: .9rem;
    }

    .product-grid-list .product-card {
        grid-template-columns: 1fr;
        gap: var(--sp-3);
    }

    .product-grid-list .product-media {
        min-height: auto;
    }

    .product-title a {
        min-height: 2.8em;
    }
}

@media (prefers-reduced-motion: reduce) {
    .shop-page *,
    .shop-page *::before,
    .shop-page *::after {
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
    }

    .product-card:hover .product-image,
    .category-story:hover .category-image {
        transform: none;
    }
}
