/* Storefront-only finishing layer. Loaded on WooCommerce and homepage contexts. */

/* Shop */
.shop-header {
    padding: 20px 0 10px;
}

.shop-content-wrapper {
    display: block;
}

.shop-toolbar {
    margin-bottom: 22px;
    padding: 14px 18px;
    background: #fff;
    border: 1px solid var(--belvio-border);
    border-radius: var(--belvio-radius);
}

.belvio-result-count {
    margin: 0;
    color: var(--belvio-text-light);
    font-size: 13px;
    font-weight: 700;
}

body.woocommerce ul.products {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 22px !important;
    margin: 0 !important;
    padding: 0 !important;
}

body.woocommerce ul.products::before,
body.woocommerce ul.products::after {
    display: none !important;
}

body.woocommerce ul.products li.product {
    width: auto !important;
    margin: 0 !important;
    float: none !important;
}

body.woocommerce .woocommerce-ordering select {
    min-height: 38px;
    border: 1px solid var(--belvio-border);
    border-radius: 8px;
    padding: 0 12px;
    background: #fff;
}

/* Responsive */
@media (max-width: 1180px) {
    .belvio-hero-grid {
        grid-template-columns: 230px 1fr;
    }

    .belvio-hero-grid.no-departments {
        grid-template-columns: 1fr;
    }

    .belvio-hero-promos {
        grid-column: 1 / -1;
        grid-template-columns: repeat(2, 1fr);
    }

    .belvio-home-products-grid,
    body.woocommerce ul.products {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }

    .belvio-category-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 900px) {
    .top-bar-welcome,
    .category-bar-sale,
    .header-account,
    .header-wishlist,
    .header-center,
    .header-categories-nav,
    .belvio-departments,
    .belvio-hero-visual {
        display: none !important;
    }

    .mobile-menu-toggle {
        display: flex;
    }

    .header-row {
        height: 66px;
    }

    .belvio-hero-grid,
    .belvio-hero-main,
    .belvio-lookbook-grid {
        grid-template-columns: 1fr;
    }

    .belvio-hero-copy,
    .belvio-lookbook-copy {
        padding: 32px 24px;
    }

    .belvio-service-grid,
    .belvio-home-products-grid,
    body.woocommerce ul.products {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 560px) {
    .container {
        padding-inline: 14px;
    }

    .top-bar {
        display: none;
    }

    .site-title {
        font-size: 23px;
    }

    .brand-mark {
        width: 34px;
        height: 34px;
    }

    .belvio-hero-wrap {
        padding-top: 14px;
    }

    .belvio-hero-copy h1 {
        font-size: 34px;
    }

    .belvio-hero-promos {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 12px;
    }

    .belvio-hero-promos .belvio-promo-tile,
    .belvio-hero-promos .belvio-promo-wrap {
        min-height: 150px;
    }

    .belvio-hero-promos .belvio-promo-tile {
        padding: 16px;
    }

    .belvio-service-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .belvio-service-grid div {
        padding: 16px 14px;
    }

    .belvio-category-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 12px;
    }

    .belvio-home-products-grid,
    body.woocommerce ul.products {
        gap: 12px !important;
    }

    .belvio-home-product-body,
    body.woocommerce ul.products li.product .product-card-content {
        padding: 12px;
    }

    .belvio-home-product-footer,
    body.woocommerce ul.products li.product .product-footer {
        align-items: flex-start;
        flex-direction: column;
    }

    .belvio-home-product-footer .button,
    body.woocommerce ul.products li.product .add_to_cart_button {
        width: 100%;
    }

    .belvio-home-actions,
    body.woocommerce ul.products li.product .product-actions {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: translate(-50%, -50%);
    }
}

/* RTL storefront polish */
html[dir="rtl"] .menu-toggle-icon,
html[lang^="ar"] .menu-toggle-icon {
    margin-right: 4px;
    margin-left: 0;
}

html[dir="rtl"] .sub-menu.mega-sub-menu,
html[lang^="ar"] .sub-menu.mega-sub-menu {
    right: 0;
    left: auto;
    text-align: right;
}

html[dir="rtl"] .sub-menu .sub-menu,
html[lang^="ar"] .sub-menu .sub-menu {
    right: 100%;
    left: auto;
}

html[dir="rtl"] .sub-menu .menu-item a:hover,
html[lang^="ar"] .sub-menu .menu-item a:hover {
    padding-right: 24px;
    padding-left: 20px;
}

html[dir="rtl"] .all-departments span:nth-child(2),
html[dir="rtl"] .all-departments span:nth-child(3),
html[lang^="ar"] .all-departments span:nth-child(2),
html[lang^="ar"] .all-departments span:nth-child(3) {
    margin-right: -28px;
    margin-left: 0;
}

html[dir="rtl"] .search-form-container,
html[lang^="ar"] .search-form-container {
    right: auto;
    left: 0;
    text-align: right;
}

html[dir="rtl"] .cart-count,
html[lang^="ar"] .cart-count {
    right: auto;
    left: -4px;
}

html[dir="rtl"] .mobile-menu-panel,
html[lang^="ar"] .mobile-menu-panel {
    right: 0;
    left: auto;
    transform: translateX(100%);
}

html[dir="rtl"] .mobile-menu-panel.active,
html[lang^="ar"] .mobile-menu-panel.active {
    transform: translateX(0);
}

html[dir="rtl"] .product-card .onsale,
html[dir="rtl"] li.product .onsale,
html[dir="rtl"] .belvio-product-badge,
html[lang^="ar"] .product-card .onsale,
html[lang^="ar"] li.product .onsale,
html[lang^="ar"] .belvio-product-badge {
    right: 12px;
    left: auto;
}

html[dir="rtl"] .belvio-service-grid div,
html[lang^="ar"] .belvio-service-grid div {
    border-left: 1px solid var(--belvio-border);
    border-right: 0;
}

html[dir="rtl"] .belvio-service-grid div:last-child,
html[lang^="ar"] .belvio-service-grid div:last-child {
    border-left: 0;
}

html[dir="rtl"] .belvio-edit-pen,
html[lang^="ar"] .belvio-edit-pen {
    right: auto;
    left: 10px;
}

html[dir="rtl"] .top-bar > .belvio-edit-pen,
html[dir="rtl"] .site-header > .belvio-edit-pen,
html[lang^="ar"] .top-bar > .belvio-edit-pen,
html[lang^="ar"] .site-header > .belvio-edit-pen {
    right: auto;
    left: 12px;
}

/* Product overlay safety: actions are children of product images only. */
.belvio-home-product,
body.woocommerce ul.products li.product.product-card {
    position: relative;
}

.belvio-home-product-image,
body.woocommerce ul.products li.product .product-image-wrapper {
    position: relative !important;
    overflow: hidden !important;
    isolation: isolate;
}

.belvio-home-actions,
body.woocommerce ul.products li.product .product-actions {
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    right: auto !important;
    bottom: auto !important;
    width: calc(100% - 28px) !important;
    max-width: 260px !important;
    padding: 0 !important;
    background: transparent !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: translate(-50%, -44%) !important;
    z-index: 8 !important;
}

@media (hover: hover) and (pointer: fine) {
    .belvio-home-product:hover .belvio-home-actions,
    body.woocommerce ul.products li.product:hover .product-actions,
    body.woocommerce ul.products li.product.product-card:hover .product-actions {
        opacity: 0 !important;
        visibility: hidden !important;
        pointer-events: none !important;
        transform: translate(-50%, -44%) !important;
    }
}

/* Keyboard reveal is never gated: a focus ring can land here on any device. */
.belvio-home-product-image:focus-within > .belvio-home-actions,
body.woocommerce ul.products li.product .product-image-wrapper:focus-within > .product-actions {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: translate(-50%, -50%) !important;
}

@media (hover: hover) and (pointer: fine) {
    .belvio-home-product-image:hover > .belvio-home-actions,
    body.woocommerce ul.products li.product .product-image-wrapper:hover > .product-actions {
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;
        transform: translate(-50%, -50%) !important;
    }
}

.belvio-hero-wrap .belvio-home-actions,
.belvio-hero-wrap .product-actions {
    display: none !important;
}

@media (hover: none) and (pointer: coarse) {
    .belvio-home-product-image > .belvio-home-actions,
    body.woocommerce ul.products li.product .product-image-wrapper > .product-actions {
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;
        transform: translate(-50%, -50%) !important;
    }
}

/* Sticky purchase CTA: make the request and confirmation states explicit. */
.belvio-mobile-sticky-cart-button {
    transition: background-color var(--belvio-transition-press),
        opacity var(--belvio-transition-press),
        transform 120ms var(--belvio-ease-out);
}

.belvio-mobile-sticky-cart-button:active {
    transform: scale(.97);
}

.belvio-mobile-sticky-cart-button.loading {
    cursor: wait;
    opacity: .72;
    pointer-events: none;
}

.belvio-mobile-sticky-cart-button.added {
    background: var(--belvio-primary-dark) !important;
}

/* Featured Products: overlay buttons must live on the image, never in the card footer. */
#belvio-products .belvio-home-product .belvio-home-product-image {
    position: relative !important;
    overflow: hidden !important;
    isolation: isolate;
}

#belvio-products .belvio-home-product .belvio-home-product-image > .belvio-home-actions {
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    right: auto !important;
    bottom: auto !important;
    width: min(260px, calc(100% - 28px)) !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    background: transparent !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: translate(-50%, -44%) scale(.98) !important;
    z-index: 20 !important;
}

@media (hover: hover) and (pointer: fine) {
    #belvio-products .belvio-home-product:hover .belvio-home-actions {
        opacity: 0 !important;
        visibility: hidden !important;
        pointer-events: none !important;
        transform: translate(-50%, -44%) scale(.98) !important;
    }
}

/* Keyboard reveal is never gated: a focus ring can land here on any device. */
#belvio-products .belvio-home-product .belvio-home-product-image:focus-within > .belvio-home-actions {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: translate(-50%, -50%) scale(1) !important;
}

@media (hover: hover) and (pointer: fine) {
    #belvio-products .belvio-home-product .belvio-home-product-image:hover > .belvio-home-actions {
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;
        transform: translate(-50%, -50%) scale(1) !important;
    }
}

#belvio-products .belvio-home-product .belvio-home-action {
    min-height: 38px !important;
    padding: 0 14px !important;
    flex: 1 1 0 !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: rgba(255, 255, 255, .96) !important;
    color: var(--belvio-text) !important;
    box-shadow: 0 10px 24px rgba(0, 0, 0, .16) !important;
    font-size: 12px !important;
    font-weight: 800 !important;
    text-align: center !important;
}

#belvio-products .belvio-home-product .belvio-home-action:hover {
    background: var(--belvio-primary) !important;
    color: #fff !important;
}

#belvio-products .belvio-home-product-body > .belvio-home-actions,
#belvio-products .belvio-home-product-footer > .belvio-home-actions {
    display: none !important;
}

/* Home featured products: fresh image-only overlay, isolated from old action styles. */
#belvio-products .belvio-home-product-image {
    position: relative !important;
    overflow: hidden !important;
}

#belvio-products .belvio-image-actions {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 10px !important;
    padding: 18px !important;
    background: rgba(36, 36, 36, .18) !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: none !important;
    z-index: 30 !important;
    transition: opacity .2s ease, visibility .2s ease !important;
}

/* No transform here, but the same latch: on touch these fire on tap and stick,
   and the card-hover rule out-specifies the coarse-pointer block below, so a
   tap on the card body used to hide quick-view for the rest of the visit. */
@media (hover: hover) and (pointer: fine) {
    #belvio-products .belvio-home-product:hover .belvio-image-actions {
        opacity: 0 !important;
        visibility: hidden !important;
        pointer-events: none !important;
    }
}

/* Keyboard reveal is never gated: a focus ring can land here on any device. */
#belvio-products .belvio-home-product-image:focus-within > .belvio-image-actions {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
}

@media (hover: hover) and (pointer: fine) {
    #belvio-products .belvio-home-product-image:hover > .belvio-image-actions {
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;
    }
}

#belvio-products .belvio-image-action {
    min-height: 40px !important;
    min-width: 104px !important;
    max-width: 130px !important;
    padding: 0 16px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: rgba(255, 255, 255, .96) !important;
    color: var(--belvio-text) !important;
    box-shadow: 0 12px 26px rgba(0, 0, 0, .18) !important;
    font-size: 12px !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    text-align: center !important;
    cursor: pointer !important;
}

#belvio-products .belvio-image-action:hover {
    background: var(--belvio-primary) !important;
    color: #fff !important;
}

#belvio-products .belvio-home-product-body .belvio-image-actions,
#belvio-products .belvio-home-product-footer .belvio-image-actions {
    display: none !important;
}

#belvio-products .belvio-home-product-body .belvio-home-actions,
#belvio-products .belvio-home-product-footer .belvio-home-actions,
#belvio-products .belvio-home-product > .belvio-home-actions,
#belvio-products .belvio-home-product > .belvio-image-actions {
    display: none !important;
}

@media (hover: none) and (pointer: coarse) {
    #belvio-products .belvio-home-product-image > .belvio-image-actions {
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;
    }
}

/* Belvio Beauty conversion layer. */
.belvio-hero-main {
    border: 1px solid rgba(198,95,134,.18) !important;
    box-shadow: 0 26px 70px rgba(124,64,90,.14) !important;
}

.belvio-hero-copy h1 {
    text-wrap: balance;
}

.belvio-ritual-card span {
    position: relative;
    z-index: 1;
    color: var(--belvio-primary);
    font-size: 12px;
    font-weight: 950;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.belvio-ritual-section {
    padding: 10px 0 42px;
    background:
        radial-gradient(circle at 12% 0%, rgba(216,161,95,.14), transparent 22rem),
        linear-gradient(180deg, #fff, #fff7f9);
}

.belvio-ritual-head {
    max-width: 760px;
    margin-inline: auto;
}

.belvio-ritual-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.belvio-ritual-card {
    min-height: 190px;
    padding: 24px;
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    color: #3c2630;
    background: linear-gradient(145deg, #fff, #fff0f5);
    border: 1px solid rgba(198,95,134,.16);
    border-radius: 28px;
    box-shadow: 0 18px 42px rgba(124,64,90,.09);
}

.belvio-ritual-card::before {
    content: '';
    position: absolute;
    width: 150px;
    height: 150px;
    top: -42px;
    inset-inline-start: -28px;
    border-radius: 48px 48px 60px 60px;
    background: linear-gradient(145deg, rgba(198,95,134,.2), rgba(216,161,95,.22));
    transform: rotate(-10deg);
}

.belvio-ritual-card::after {
    content: '↗';
    position: absolute;
    top: 18px;
    inset-inline-end: 18px;
    width: 36px;
    height: 36px;
    display: grid;
    place-items: center;
    color: #fff;
    background: var(--belvio-primary-dark);
    border-radius: 50%;
    font-weight: 900;
}

.belvio-ritual-card:hover {
    color: #3c2630;
    box-shadow: 0 26px 58px rgba(124,64,90,.15);
}

@media (hover: hover) and (pointer: fine) {
    .belvio-ritual-card:hover {
        transform: translateY(-5px);
    }
}

/* Whole-card link, so the press is the tap target. */
.belvio-ritual-card:active {
    transform: scale(.97);
    transition: transform var(--belvio-transition-press);
}

.belvio-ritual-card strong,
.belvio-ritual-card small {
    position: relative;
    z-index: 1;
    display: block;
}

.belvio-ritual-card strong {
    margin: 8px 0 8px;
    font-size: 26px;
    line-height: 1.05;
    font-weight: 950;
}

.belvio-ritual-card small {
    max-width: 260px;
    color: #745765;
    font-size: 13px;
    line-height: 1.65;
}

.belvio-product-trustline {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 0 0 10px;
}

.belvio-product-trustline span {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 4px 8px;
    color: var(--belvio-primary-dark);
    background: #fff0f5;
    border: 1px solid rgba(198,95,134,.16);
    border-radius: 999px;
    font-size: 11px;
    font-weight: 900;
}

.belvio-product-microcopy {
    margin: 10px 0 0;
    color: #8a6675;
    font-size: 12px;
    line-height: 1.5;
}

.product-card .belvio-product-microcopy {
    margin-top: 8px;
}

@media (max-width: 980px) {
    .belvio-ritual-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .belvio-product-trustline {
        gap: 6px;
    }

    .belvio-ritual-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
    }

    .belvio-ritual-card {
        border-radius: 20px;
        min-height: 150px;
        padding: 54px 16px 18px;
    }

    .belvio-ritual-card::after {
        top: 14px;
    }

    .belvio-ritual-card strong {
        font-size: 20px;
    }
}

/* Mobile storefront stability: prevent sideways scroll and card jump. */
html,
body {
    max-width: 100%;
}

html,
body {
    overflow-x: clip;
}

.mobile-menu-panel {
    visibility: hidden;
    pointer-events: none;
    max-width: min(85vw, 320px);
    contain: paint;
}

.mobile-menu-panel.active {
    visibility: visible;
    pointer-events: auto;
}

.screen-reader-text {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: -1px !important;
    padding: 0 !important;
    border: 0 !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
    inset: auto !important;
}

.screen-reader-text:focus {
    width: auto !important;
    height: auto !important;
    clip: auto !important;
    clip-path: none !important;
    overflow: visible !important;
    white-space: normal !important;
    inset-inline-start: 8px !important;
    top: 8px !important;
    z-index: 100000 !important;
}

.container,
.site,
.site-content,
.content-area,
.shop-content,
.single-product-wrapper,
.belvio-home-products-grid,
body.woocommerce ul.products {
    min-width: 0;
    max-width: 100%;
}

.product-card,
.belvio-home-product,
body.woocommerce ul.products li.product {
    min-width: 0;
}

.product-card *,
.belvio-home-product *,
body.woocommerce ul.products li.product * {
    min-width: 0;
}

.product-image-wrapper,
.belvio-home-product-image,
body.woocommerce ul.products li.product .product-image-wrapper {
    contain: layout paint;
}

.product-card .onsale,
body.woocommerce ul.products li.product .onsale,
.product-image-wrapper .belvio-offer-badge-card,
.belvio-product-badge,
.search-result-badge,
.belvio-card-offer {
    max-width: calc(100% - 24px);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.product-title a,
.belvio-home-product-body h3 a {
    overflow-wrap: anywhere;
}

@media (max-width: 640px) {
    .container {
        width: 100%;
        max-width: 100%;
    }

    .shop-toolbar,
    .toolbar-left,
    .toolbar-right {
        min-width: 0;
        max-width: 100%;
    }

    .toolbar-left,
    .toolbar-right {
        flex-wrap: wrap;
    }

    .belvio-home-products-grid,
    body.woocommerce ul.products {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 10px !important;
    }

    .belvio-home-product-body,
    body.woocommerce ul.products li.product .product-card-content {
        display: flex;
        min-height: 188px;
        padding: 10px;
        flex-direction: column;
    }

    .belvio-home-product-body h3,
    body.woocommerce ul.products li.product .product-title {
        min-height: 44px;
        margin-bottom: 8px;
        font-size: 13px;
        line-height: 1.35;
    }

    .belvio-product-trustline {
        min-height: 54px;
        align-content: flex-start;
        gap: 5px;
    }

    .belvio-product-trustline span {
        max-width: 100%;
        font-size: 10px;
        line-height: 1.2;
    }

    .belvio-product-microcopy {
        min-height: 36px;
        margin-top: 8px;
        font-size: 11px;
        line-height: 1.45;
    }

    .belvio-home-product-footer,
    body.woocommerce ul.products li.product .product-footer {
        margin-top: auto;
        gap: 8px;
    }

    .belvio-home-product-footer .price,
    body.woocommerce ul.products li.product .price {
        min-height: 22px;
        line-height: 1.35;
    }

    .belvio-home-product-footer .button,
    body.woocommerce ul.products li.product .add_to_cart_button,
    .product-add-to-cart .add_to_cart_button {
        width: 100%;
        min-height: 40px;
        padding-inline: 8px;
        white-space: normal;
        text-align: center;
        line-height: 1.2;
    }

    .belvio-home-actions,
    body.woocommerce ul.products li.product .product-actions {
        width: calc(100% - 18px) !important;
        max-width: none !important;
    }

    .belvio-mobile-sticky-cart {
        max-width: 100vw;
        box-sizing: border-box;
    }

    .belvio-mobile-sticky-cart-button {
        flex: 0 0 min(48%, 190px);
        white-space: normal;
        text-align: center;
        line-height: 1.2;
    }

    .belvio-floating-support {
        right: auto !important;
        left: 14px !important;
        inset-inline-start: auto !important;
    }

    body.single-product .belvio-floating-support {
        bottom: 94px !important;
    }

    body.woocommerce-shop .belvio-floating-support,
    body.archive.woocommerce .belvio-floating-support {
        display: none !important;
    }

    body.single-product #quorlyx-root .quorlyx-floating-button-container,
    body.single-product #quorlyx-root .quorlyx-floating-button,
    body.single-product #quorlyx-root .quorlyx-launcher,
    body.single-product .quorlyx-fab-wrap {
        bottom: 94px !important;
    }

    body.woocommerce-shop #quorlyx-root .quorlyx-floating-button-container,
    body.woocommerce-shop #quorlyx-root .quorlyx-floating-button,
    body.woocommerce-shop #quorlyx-root .quorlyx-launcher,
    body.woocommerce-shop .quorlyx-fab-wrap,
    body.archive.woocommerce #quorlyx-root .quorlyx-floating-button-container,
    body.archive.woocommerce #quorlyx-root .quorlyx-floating-button,
    body.archive.woocommerce #quorlyx-root .quorlyx-launcher,
    body.archive.woocommerce .quorlyx-fab-wrap {
        bottom: 78px !important;
    }

    /* Clear the fixed bottom nav: push the floating WhatsApp CTA and the
       Quorlyx assistant launcher above it wherever the bar is shown. The
       bar is not rendered on checkout/single-product, so those existing
       rules above are untouched. */
    body.has-belvio-bottom-nav .belvio-floating-support {
        bottom: calc(18px + var(--belvio-bottom-nav-h)) !important;
    }

    body.has-belvio-bottom-nav.woocommerce-shop #quorlyx-root .quorlyx-floating-button-container,
    body.has-belvio-bottom-nav.woocommerce-shop #quorlyx-root .quorlyx-floating-button,
    body.has-belvio-bottom-nav.woocommerce-shop #quorlyx-root .quorlyx-launcher,
    body.has-belvio-bottom-nav.woocommerce-shop .quorlyx-fab-wrap,
    body.has-belvio-bottom-nav.archive.woocommerce #quorlyx-root .quorlyx-floating-button-container,
    body.has-belvio-bottom-nav.archive.woocommerce #quorlyx-root .quorlyx-floating-button,
    body.has-belvio-bottom-nav.archive.woocommerce #quorlyx-root .quorlyx-launcher,
    body.has-belvio-bottom-nav.archive.woocommerce .quorlyx-fab-wrap {
        bottom: calc(78px + var(--belvio-bottom-nav-h)) !important;
    }

    body.has-belvio-bottom-nav:not(.woocommerce-shop):not(.archive.woocommerce) #quorlyx-root .quorlyx-floating-button-container,
    body.has-belvio-bottom-nav:not(.woocommerce-shop):not(.archive.woocommerce) #quorlyx-root .quorlyx-floating-button,
    body.has-belvio-bottom-nav:not(.woocommerce-shop):not(.archive.woocommerce) #quorlyx-root .quorlyx-launcher,
    body.has-belvio-bottom-nav:not(.woocommerce-shop):not(.archive.woocommerce) .quorlyx-fab-wrap {
        bottom: calc(20px + var(--belvio-bottom-nav-h)) !important;
    }
}

@supports not (overflow: clip) {
    html,
    body {
        overflow-x: hidden;
    }
}

/* Checkout must keep its form and submit path unobstructed. Support remains
   available through the footer and order confirmation, but fixed launchers
   are hidden while a customer is entering payment and delivery details. */
body.woocommerce-checkout:not(.woocommerce-order-received) .belvio-floating-support,
body.woocommerce-checkout:not(.woocommerce-order-received) #quorlyx-root,
body.woocommerce-checkout:not(.woocommerce-order-received) #quorlyx-root .quorlyx-floating-button-container,
body.woocommerce-checkout:not(.woocommerce-order-received) #quorlyx-root .quorlyx-floating-button,
body.woocommerce-checkout:not(.woocommerce-order-received) #quorlyx-root .quorlyx-launcher,
body.woocommerce-checkout:not(.woocommerce-order-received) .quorlyx-fab-wrap {
    display: none !important;
}

@media (max-width: 600px) {
    .belvio-mobile-sticky-cart {
        padding-bottom: calc(10px + env(safe-area-inset-bottom, 0px));
    }

    body.single-product {
        padding-bottom: calc(86px + env(safe-area-inset-bottom, 0px));
    }

    body.single-product .belvio-floating-support,
    body.single-product #quorlyx-root .quorlyx-floating-button-container,
    body.single-product #quorlyx-root .quorlyx-floating-button,
    body.single-product #quorlyx-root .quorlyx-launcher,
    body.single-product .quorlyx-fab-wrap {
        bottom: calc(96px + env(safe-area-inset-bottom, 0px)) !important;
    }
}

/* ===== Shop filters sidebar (Sprint 1) ===== */
.shop-content-wrapper.has-sidebar {
    display: grid;
    grid-template-columns: 260px minmax(0, 1fr);
    gap: 26px;
    align-items: start;
}

.shop-sidebar {
    position: sticky;
    top: 100px;
}

.belvio-shop-filters {
    background: #fff;
    border: 1px solid var(--belvio-border);
    border-radius: var(--belvio-radius);
    padding: 16px 16px 18px;
}

.belvio-shop-filters-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 14px;
}

.belvio-shop-filters-title {
    font-size: 15px;
    font-weight: 800;
    color: var(--belvio-text);
}

.belvio-shop-filters-close {
    display: none;
    background: none;
    border: 0;
    font-size: 26px;
    line-height: 1;
    cursor: pointer;
    color: var(--belvio-text-light);
}

.belvio-filter-group {
    margin-top: 18px;
}

.belvio-filter-group:first-of-type {
    margin-top: 0;
}

.belvio-filter-group-title {
    margin: 0 0 10px;
    font-size: 13px;
    font-weight: 800;
    color: var(--belvio-text);
}

.belvio-filter-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.belvio-filter-pill {
    display: inline-flex;
    min-height: 32px;
    align-items: center;
    padding: 5px 12px;
    border: 1px solid var(--belvio-border-light);
    border-radius: 999px;
    background: var(--belvio-bg);
    color: var(--belvio-text);
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
}

.belvio-filter-pill.is-active,
.belvio-filter-pill:hover {
    border-color: var(--belvio-primary);
    background: var(--belvio-primary);
    color: #fff;
}

.belvio-filter-cats {
    list-style: none;
    margin: 0;
    padding: 0;
}

.belvio-filter-cats a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 8px 10px;
    border-radius: 8px;
    color: var(--belvio-text);
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
}

.belvio-filter-cats a:hover {
    background: var(--belvio-bg);
}

.belvio-filter-cats a.is-active {
    background: rgba(var(--belvio-primary-rgb), 0.1);
    color: var(--belvio-primary);
    font-weight: 800;
}

.belvio-filter-cats small {
    min-width: 22px;
    text-align: center;
    padding: 1px 6px;
    border-radius: 999px;
    background: var(--belvio-bg);
    color: var(--belvio-text-light);
    font-size: 12px;
    font-weight: 700;
}

.belvio-filter-price-inputs {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    margin-bottom: 10px;
}

.belvio-filter-price label {
    display: grid;
    gap: 4px;
}

.belvio-filter-price span {
    color: var(--belvio-text-light);
    font-size: 12px;
    font-weight: 800;
}

.belvio-filter-price input {
    width: 100%;
    min-height: 38px;
    border: 1px solid var(--belvio-border-light);
    border-radius: 6px;
    padding: 7px 10px;
    font-family: var(--belvio-font);
}

.belvio-filter-price button {
    width: 100%;
    min-height: 40px;
    border: 0;
    border-radius: 8px;
    background: var(--belvio-primary);
    color: #fff;
    font-family: var(--belvio-font);
    font-weight: 800;
    cursor: pointer;
}

.belvio-filter-active {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    margin-bottom: 16px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--belvio-border-light);
}

.belvio-filter-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    border-radius: 999px;
    background: rgba(var(--belvio-primary-rgb), 0.12);
    color: var(--belvio-primary);
    font-size: 12px;
    font-weight: 700;
    text-decoration: none;
}

.belvio-filter-chip span {
    font-size: 14px;
}

.belvio-filter-clear {
    color: var(--belvio-text-light);
    font-size: 12px;
    font-weight: 800;
    text-decoration: underline;
}

/* Desktop hides the drawer toggle; mobile turns the sidebar into a drawer. */
.btn-filter-toggle {
    display: none;
}

@media (max-width: 991px) {
    .shop-content-wrapper.has-sidebar {
        display: block;
    }

    .btn-filter-toggle {
        display: inline-flex;
        align-items: center;
        min-height: 38px;
        padding: 8px 16px;
        border: 1px solid var(--belvio-border);
        border-radius: 8px;
        background: #fff;
        color: var(--belvio-text);
        font-family: var(--belvio-font);
        font-size: 14px;
        font-weight: 800;
        cursor: pointer;
    }

    .shop-sidebar {
        position: fixed;
        top: 0;
        inset-inline-start: 0;
        width: min(320px, 88vw);
        height: 100%;
        z-index: 1050;
        margin: 0;
        background: #fff;
        overflow-y: auto;
        transform: translateX(-105%);
        transition: transform 250ms var(--belvio-ease-drawer);
        box-shadow: 0 0 40px rgba(0, 0, 0, 0.15);
    }

    html[dir="rtl"] .shop-sidebar {
        transform: translateX(105%);
    }

    .shop-sidebar.shop-sidebar-active {
        transform: translateX(0);
    }

    .belvio-shop-filters {
        border: 0;
        border-radius: 0;
        min-height: 100%;
    }

    .belvio-shop-filters-close {
        display: block;
    }

    body.shop-filter-open {
        overflow: hidden;
    }

    body.shop-filter-open::after {
        content: "";
        position: fixed;
        inset: 0;
        z-index: 1040;
        background: rgba(0, 0, 0, 0.5);
    }
}

/* ===== Free-shipping progress (Sprint 1) ===== */
.belvio-free-ship {
    margin: 0 0 18px;
    padding: 12px 14px;
    border: 1px solid var(--belvio-border-light);
    border-radius: var(--belvio-radius, 12px);
    background: var(--belvio-bg, #faf6f8);
}

.belvio-free-ship.is-reached {
    border-color: var(--belvio-primary);
    background: rgba(var(--belvio-primary-rgb), 0.08);
}

.belvio-free-ship-msg {
    margin: 0 0 8px;
    font-size: 13px;
    font-weight: 700;
    color: var(--belvio-text);
}

.belvio-free-ship-bar {
    height: 8px;
    border-radius: 999px;
    background: var(--belvio-border-light);
    overflow: hidden;
}

.belvio-free-ship-bar span {
    display: block;
    height: 100%;
    border-radius: 999px;
    background: var(--belvio-primary);
    transition: width 0.4s ease;
}

.widget_shopping_cart .belvio-free-ship {
    margin-bottom: 12px;
}

/* ===== Product-page conversion features (Phase 3a) ===== */
.belvio-buy-now {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    margin-top: 10px;
    padding: 10px 22px;
    border: 2px solid var(--belvio-primary);
    border-radius: 10px;
    background: #fff;
    color: var(--belvio-primary);
    font-family: var(--belvio-font);
    font-size: 15px;
    font-weight: 800;
    cursor: pointer;
}

.belvio-buy-now:hover {
    background: var(--belvio-primary);
    color: #fff;
}

.belvio-wa-order {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 46px;
    margin-top: 10px;
    padding: 10px 22px;
    border: 0;
    border-radius: 10px;
    background: #25d366;
    color: #fff;
    font-family: var(--belvio-font);
    font-size: 15px;
    font-weight: 800;
    text-decoration: none;
}

.belvio-wa-order:hover {
    background: #1da851;
    color: #fff;
}

.belvio-wa-order svg {
    flex: 0 0 auto;
}

/* Stack the CTAs full-width on their own lines under Add to cart. */
.single-product form.cart .belvio-buy-now,
.single-product form.cart .belvio-wa-order {
    width: 100%;
}

.belvio-stock-urgency {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin: 0 0 12px;
    padding: 6px 12px;
    border-radius: 8px;
    background: rgba(198, 40, 40, 0.08);
    color: #c62828;
    font-size: 13px;
    font-weight: 800;
}

/* ==========================================================================
   Product images: show the whole photo, never crop or zoom it
   (homepage featured grid + shop / category / related loops)
   ========================================================================== */
.belvio-home-product-image img,
.product-image-wrapper img,
body.woocommerce ul.products li.product .product-image-wrapper img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    object-position: center !important;
    padding: 10px;
    box-sizing: border-box;
    transform: none !important;
    transition: none !important;
}

/* No hover zoom — it enlarged the photo and clipped it against the card. */
.belvio-home-product:hover .belvio-home-product-image img,
.belvio-home-product:hover img,
.product-card:hover .product-image-wrapper img,
body.woocommerce ul.products li.product:hover .product-image-wrapper img {
    transform: none !important;
}

/* Neutral, flat backdrop behind letterboxed (non-square) photos. */
.belvio-home-product-image,
.product-image-wrapper,
body.woocommerce ul.products li.product .product-image-wrapper {
    background: #fff !important;
}

@media (max-width: 640px) {
    .belvio-home-product-image img,
    .product-image-wrapper img,
    body.woocommerce ul.products li.product .product-image-wrapper img {
        padding: 6px;
    }
}

/* Mobile UX follow-up: keep card actions simple and below the product image. */
html[dir="rtl"] .shop-sidebar.shop-sidebar-active {
    transform: translateX(0);
}

@media (max-width: 991px) {
    .btn-filter-toggle {
        min-height: 44px;
    }

    .belvio-shop-filters-close {
        min-width: 44px;
        min-height: 44px;
    }
}

@media (max-width: 900px) {
    .mobile-menu-toggle,
    .search-toggle,
    .cart-link {
        min-width: 44px !important;
        min-height: 44px !important;
    }

    .mobile-account-link {
        margin: 20px 0 0;
        padding: 16px 0 0;
        border-top: 1px solid var(--belvio-border-light);
        list-style: none;
    }

    .mobile-account-link a {
        display: flex;
        min-height: 44px;
        align-items: center;
        padding: 0 12px;
        border-radius: 10px;
        color: var(--belvio-text);
        font-weight: 800;
    }
}

@media (max-width: 640px) {
    .belvio-hero-promos {
        grid-template-columns: 1fr !important;
        gap: 12px !important;
    }

    .belvio-ritual-grid {
        grid-template-columns: 1fr !important;
        gap: 12px !important;
    }

    .shop-toolbar {
        display: grid !important;
        grid-template-columns: auto minmax(0, 1fr) !important;
        align-items: center;
        gap: 10px !important;
    }

    .shop-toolbar .toolbar-left {
        grid-column: 1;
        grid-row: 1;
        width: auto !important;
    }

    .shop-toolbar .toolbar-right {
        grid-column: 1 / -1;
        grid-row: 2;
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: center;
        gap: 8px;
        width: 100% !important;
    }

    .shop-toolbar .woocommerce-ordering {
        min-width: 0;
        margin: 0 !important;
        order: 1;
    }

    .shop-toolbar .view-mode {
        display: flex;
        gap: 4px;
        order: 2;
    }

    .shop-toolbar .orderby {
        width: 100% !important;
        min-height: 44px;
    }

    .shop-toolbar .belvio-result-count {
        grid-column: 2;
        grid-row: 1;
        justify-self: end;
        margin: 0;
        white-space: nowrap;
    }

    .shop-toolbar .view-grid,
    .shop-toolbar .view-list {
        width: 44px;
        height: 44px;
    }

    .product-image-wrapper,
    .belvio-home-product-image,
    body.woocommerce ul.products li.product .product-image-wrapper {
        contain: layout !important;
        overflow: visible !important;
        margin-bottom: 54px !important;
    }

    #belvio-products .belvio-home-product-image > .belvio-image-actions,
    body.woocommerce ul.products li.product .product-image-wrapper > .product-actions {
        position: absolute !important;
        inset: auto 0 auto 0 !important;
        top: calc(100% + 8px) !important;
        bottom: auto !important;
        width: 100% !important;
        height: 44px !important;
        display: flex !important;
        align-items: stretch !important;
        justify-content: stretch !important;
        gap: 0 !important;
        padding: 0 !important;
        background: transparent !important;
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;
        transform: none !important;
        box-shadow: none !important;
        z-index: 40 !important;
    }

    .belvio-image-actions .belvio-image-action,
    .product-actions .btn-quick-view {
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
        min-height: 44px !important;
        padding: 0 12px !important;
        border: 1px solid var(--belvio-border) !important;
        border-radius: 10px !important;
        background: var(--belvio-bg, #fff) !important;
        color: var(--belvio-text) !important;
        box-shadow: none !important;
        font-size: 13px !important;
    }

    #belvio-products .belvio-image-actions .belvio-image-action {
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
        min-height: 44px !important;
        border: 1px solid var(--belvio-border) !important;
        border-radius: 10px !important;
        background: var(--belvio-bg, #fff) !important;
        color: var(--belvio-text) !important;
        box-shadow: none !important;
        font-size: 13px !important;
        position: relative !important;
        z-index: 41 !important;
    }

    /* The earlier featured-grid rule is more specific; override its centered overlay. */
    #belvio-products .belvio-home-product .belvio-home-product-image > .belvio-image-actions {
        inset: auto 0 auto 0 !important;
        top: calc(100% + 8px) !important;
        bottom: auto !important;
        z-index: 40 !important;
    }

    #belvio-products .belvio-home-product .belvio-home-product-image {
        overflow: visible !important;
        contain: layout !important;
    }

    body.woocommerce ul.products li.product.product-card .product-image-wrapper {
        overflow: visible !important;
        contain: layout !important;
    }

    body.woocommerce ul.products li.product.product-card .product-image-wrapper > .product-actions {
        inset: auto 0 auto 0 !important;
        top: calc(100% + 8px) !important;
        bottom: auto !important;
        z-index: 40 !important;
    }

    .belvio-home-product-body,
    body.woocommerce ul.products li.product .product-card-content {
        min-height: 0 !important;
        height: auto !important;
    }

    .belvio-home-product-body h3,
    body.woocommerce ul.products li.product .product-title {
        min-height: 0 !important;
        margin-bottom: 6px !important;
    }

    .belvio-home-product-footer,
    body.woocommerce ul.products li.product .product-footer {
        margin-top: 8px !important;
    }

    .belvio-home-product-footer .add_to_cart_button,
    body.woocommerce ul.products li.product .product-add-to-cart .add_to_cart_button {
        min-height: 44px !important;
    }

    .btn-view-product {
        display: none !important;
    }

    .product-add-to-cart .add_to_cart_button,
    .quantity-minus,
    .quantity-plus,
    .cart_totals .button,
    .coupon .button,
    .cart-continue-shopping,
    .remove {
        min-height: 44px !important;
    }

    .quantity-minus,
    .quantity-plus,
    .remove {
        min-width: 44px !important;
    }

    body.single-product {
        padding-bottom: calc(106px + env(safe-area-inset-bottom, 0px));
        scroll-padding-bottom: calc(106px + env(safe-area-inset-bottom, 0px));
    }

    .woocommerce-product-gallery .flex-control-thumbs {
        display: flex !important;
        flex-wrap: nowrap !important;
        gap: 8px;
        max-width: 100%;
        overflow-x: auto;
        padding: 4px 0 6px;
        scrollbar-width: thin;
    }

    .woocommerce-product-gallery .flex-control-thumbs li {
        flex: 0 0 60px !important;
        width: 60px !important;
    }

    .checkout-summary-shortcut {
        display: flex;
        min-height: 44px;
        align-items: center;
        justify-content: space-between;
        margin: 12px 0 0;
        padding: 0 14px;
        border: 1px solid var(--belvio-border);
        border-radius: 10px;
        color: var(--belvio-text);
        font-weight: 800;
    }
}

@media (max-width: 340px) {
    .belvio-home-products-grid,
    body.woocommerce ul.products {
        grid-template-columns: 1fr !important;
    }
}

.checkout-summary-shortcut {
    display: none;
}

@media (max-width: 640px) {
    .checkout-summary-shortcut {
        display: flex;
    }
}

/* Product-card cart CTA polish: stronger hierarchy, compact sizing, and
   visible feedback while WooCommerce processes an add-to-cart request. */
.belvio-home-product-footer .add_to_cart_button,
body.woocommerce ul.products li.product .product-add-to-cart .add_to_cart_button {
    position: relative;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-height: 44px !important;
    padding: 0 14px !important;
    border: 1px solid rgba(255, 255, 255, .16) !important;
    border-radius: 12px !important;
    background: linear-gradient(135deg, var(--belvio-primary), var(--belvio-primary-dark)) !important;
    color: #fff !important;
    box-shadow: 0 6px 14px rgba(36, 36, 36, .14);
    font-size: 13px;
    font-weight: 800;
    line-height: 1.15;
    text-decoration: none;
    white-space: nowrap !important;
    transition: transform 180ms ease, box-shadow 180ms ease, filter 180ms ease;
}

.belvio-home-product-footer .add_to_cart_button::before,
body.woocommerce ul.products li.product .product-add-to-cart .add_to_cart_button::before {
    content: '+';
    display: inline-flex;
    flex: 0 0 18px;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .2);
    color: #fff;
    font-size: 16px;
    font-weight: 500;
    line-height: 1;
}

.belvio-home-product-footer .add_to_cart_button:hover,
body.woocommerce ul.products li.product .product-add-to-cart .add_to_cart_button:hover {
    background: linear-gradient(135deg, var(--belvio-primary-dark), var(--belvio-primary)) !important;
    color: #fff !important;
    box-shadow: 0 9px 18px rgba(36, 36, 36, .2);
    filter: saturate(1.08);
}

@media (hover: hover) and (pointer: fine) {
    .belvio-home-product-footer .add_to_cart_button:hover,
    body.woocommerce ul.products li.product .product-add-to-cart .add_to_cart_button:hover {
        transform: translateY(-1px);
    }
}

/* The press precedes an AJAX add-to-cart, so it has to be acknowledged. The
   old `translateY(0)` only cancelled the hover lift, which meant no feedback
   at all on touch — where this button is pressed most. */
.belvio-home-product-footer .add_to_cart_button:active,
body.woocommerce ul.products li.product .product-add-to-cart .add_to_cart_button:active {
    box-shadow: 0 4px 10px rgba(36, 36, 36, .14);
    transform: scale(.97);
    transition: transform var(--belvio-transition-press), box-shadow 180ms ease, filter 180ms ease;
}

.belvio-home-product-footer .add_to_cart_button:focus-visible,
body.woocommerce ul.products li.product .product-add-to-cart .add_to_cart_button:focus-visible {
    outline: 3px solid rgba(196, 138, 74, .4);
    outline-offset: 2px;
}

.belvio-home-product-footer .add_to_cart_button.loading,
body.woocommerce ul.products li.product .product-add-to-cart .add_to_cart_button.loading {
    cursor: wait;
    filter: saturate(.7);
    opacity: .82;
    pointer-events: none;
}

.belvio-home-product-footer .add_to_cart_button.added::before,
body.woocommerce ul.products li.product .product-add-to-cart .add_to_cart_button.added::before {
    content: '✓';
    font-size: 12px;
}

@media (max-width: 767px) {
    .belvio-home-product-footer .add_to_cart_button,
    body.woocommerce ul.products li.product .product-add-to-cart .add_to_cart_button {
        width: 100%;
        min-height: 44px !important;
        padding-inline: 10px !important;
        font-size: 12.5px;
    }

    body.woocommerce ul.products li.product .product-add-to-cart {
        width: 100%;
    }
}

/* Keep the mobile lookbook artwork below its copy so it cannot cover the CTA. */
@media (max-width: 900px) {
    .belvio-lookbook-grid {
        display: flex;
        flex-direction: column;
        min-height: 0;
    }

    .belvio-lookbook-copy {
        position: relative;
        z-index: 2;
        order: 1;
        flex: 0 0 auto;
    }

    .belvio-lookbook-copy .btn {
        position: relative;
        z-index: 3;
        pointer-events: auto;
    }

    .belvio-lookbook-image {
        position: relative;
        z-index: 1;
        order: 2;
        min-height: 220px;
    }
}

/* Interaction polish: keep motion intentional, touch-safe, and interruptible. */
.site-header.header-sticky {
    transition: transform 220ms var(--belvio-ease-out);
}

.search-form-container {
    transition: opacity 180ms var(--belvio-ease-out),
        transform 180ms var(--belvio-ease-out),
        visibility 0s linear 180ms;
}

.search-form-container.active {
    transition-delay: 0s;
}

.belvio-product-tabs button {
    transition: background-color var(--belvio-transition-fast),
        border-color var(--belvio-transition-fast),
        color var(--belvio-transition-fast),
        transform 120ms var(--belvio-ease-out);
}

.belvio-product-tabs button:active {
    transform: scale(.97);
}

@media (hover: hover) and (pointer: fine) {
    .belvio-category-card,
    .belvio-home-product,
    body.woocommerce ul.products li.product {
        transition: transform 180ms var(--belvio-ease-out),
            box-shadow 180ms var(--belvio-ease-out),
            border-color 180ms var(--belvio-ease-out);
    }
}

@media (hover: none), (pointer: coarse) {
    .belvio-category-card:hover,
    .belvio-home-product:hover,
    body.woocommerce ul.products li.product:hover {
        transform: none;
        box-shadow: var(--belvio-shadow-card);
    }

    .belvio-home-product:hover img,
    body.woocommerce ul.products li.product:hover .product-image-wrapper img {
        transform: none !important;
    }
}

@media (hover: none) and (pointer: coarse) {
    /* Keep touch actions discoverable without covering the whole product image. */
    #belvio-products .belvio-home-product-image > .belvio-image-actions {
        inset: auto 8px 8px !important;
        width: calc(100% - 16px) !important;
        height: auto !important;
        min-height: 52px;
        align-items: stretch !important;
        gap: 6px !important;
        padding: 6px !important;
        border-radius: 14px;
        background: rgba(36, 36, 36, .72) !important;
        -webkit-backdrop-filter: blur(10px);
        backdrop-filter: blur(10px);
    }

    #belvio-products .belvio-image-action {
        flex: 1 1 0;
        min-width: 0 !important;
        max-width: none !important;
        min-height: 40px !important;
        padding-inline: 8px !important;
        font-size: 11px !important;
    }
}

/* Zoom and narrow-viewport reflow
   Browser zoom reduces the effective CSS viewport. Keep the storefront on the
   same responsive path as a narrow screen instead of allowing fixed-width
   header, card, and CTA content to collide or be clipped. */
@media (max-width: 1100px) {
    .header-row {
        min-width: 0;
        gap: 12px;
    }

    .header-left {
        min-width: 0;
        flex: 1 1 auto;
    }

    .site-branding,
    .site-title,
    .site-title a {
        min-width: 0;
    }

    .header-center,
    .header-categories-nav {
        display: none !important;
    }

    .mobile-menu-toggle {
        display: flex;
    }

    .header-right {
        flex: 0 0 auto;
        gap: 8px;
    }
}

@media (max-width: 760px) {
    .belvio-home-product,
    body.woocommerce ul.products li.product,
    .belvio-category-card,
    .belvio-ritual-card,
    .belvio-promo-tile {
        min-width: 0;
        max-width: 100%;
        box-sizing: border-box;
    }

    .belvio-home-product-footer,
    body.woocommerce ul.products li.product .product-footer,
    .product-add-to-cart {
        min-width: 0;
        max-width: 100%;
    }
}

@media (max-width: 480px) {
    .container {
        padding-inline: 12px;
    }

    .header-row {
        gap: 6px;
    }

    .header-left,
    .header-right {
        gap: 6px;
    }

    .site-title {
        font-size: clamp(18px, 6vw, 23px);
    }

    .site-title a {
        gap: 6px;
    }

    .custom-logo-link,
    .custom-logo-link img {
        display: block;
        width: auto;
        max-width: 112px;
        max-height: 34px;
    }

    .mobile-menu-toggle,
    .search-toggle,
    .cart-link {
        width: 40px !important;
        min-width: 40px !important;
        height: 40px !important;
        min-height: 40px !important;
    }

    .belvio-hero-actions {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .belvio-hero-actions {
        display: grid;
        gap: 10px;
    }

    .belvio-hero-actions .btn,
    .belvio-home-product-footer .button,
    body.woocommerce ul.products li.product .add_to_cart_button,
    .product-add-to-cart .add_to_cart_button,
    .belvio-buy-now,
    .belvio-wa-order,
    .woocommerce-button,
    .checkout-button {
        width: 100%;
        min-width: 0;
        max-width: 100%;
        white-space: normal !important;
        overflow-wrap: anywhere;
        box-sizing: border-box;
    }

    .belvio-section-head:not(.centered) {
        grid-template-columns: minmax(0, 1fr);
        align-items: start;
    }

    .belvio-section-head:not(.centered) > a {
        grid-column: 1;
        justify-self: start;
    }

    .belvio-product-tabs {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 6px;
    }

    .belvio-product-tabs button,
    .belvio-filter-pill {
        min-width: 0;
        max-width: 100%;
        white-space: normal;
        overflow-wrap: anywhere;
    }
}

/* Keep the price and CTA on separate rows. The CTA owns the bottom row, so it
   cannot collide with the price or leave the card at browser zoom levels. */
.belvio-home-product-footer,
body.woocommerce ul.products li.product .product-footer {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr);
    align-items: stretch !important;
    gap: 8px !important;
    margin-top: auto !important;
    min-width: 0;
}

.belvio-home-product-footer .price,
body.woocommerce ul.products li.product .product-footer .price {
    display: block;
    grid-column: 1;
    grid-row: 1;
    width: 100%;
    min-width: 0;
    text-align: right;
    white-space: nowrap;
    box-sizing: border-box;
}

body.woocommerce ul.products li.product .product-add-to-cart {
    display: block;
    grid-column: 1;
    grid-row: 2;
    width: 100%;
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
}

.belvio-home-product-footer .add_to_cart_button,
body.woocommerce ul.products li.product .product-add-to-cart .add_to_cart_button {
    display: inline-flex !important;
    grid-column: 1;
    grid-row: 2;
    gap: 5px !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    min-height: 38px !important;
    padding-inline: 8px !important;
    border-radius: 10px !important;
    font-size: 11px !important;
    white-space: nowrap !important;
    box-sizing: border-box;
}

.belvio-home-product-footer .add_to_cart_button::before,
body.woocommerce ul.products li.product .product-add-to-cart .add_to_cart_button::before {
    flex-basis: 16px;
    width: 16px;
    height: 16px;
    font-size: 14px;
}

/* Shop toolbar: the ordering select and view controls are one aligned row. */
.shop-toolbar .toolbar-right,
.shop-toolbar .view-mode,
.shop-toolbar .woocommerce-ordering {
    align-items: center;
}

.shop-toolbar .woocommerce-ordering {
    display: flex;
    margin: 0 !important;
}

.shop-toolbar .woocommerce-ordering .orderby,
.shop-toolbar .view-mode button {
    box-sizing: border-box;
    height: 44px !important;
    min-height: 44px !important;
    margin: 0 !important;
}

/* The view-mode script toggles `list-view` on WooCommerce's `ul.products`.
   Apply the list layout to that real element, not only to the optional
   `.products-grid` wrapper. */
body.woocommerce ul.products.list-view {
    grid-template-columns: minmax(0, 1fr) !important;
}

body.woocommerce ul.products.list-view li.product {
    display: flex;
    flex-direction: row;
    align-items: stretch;
}

body.woocommerce ul.products.list-view li.product .product-image-wrapper {
    width: 280px;
    min-height: 280px;
    flex: 0 0 280px;
    aspect-ratio: auto;
}

body.woocommerce ul.products.list-view li.product .product-card-content {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-width: 0;
    padding: 20px;
}

body.woocommerce ul.products.list-view li.product .product-footer {
    margin-top: auto;
}

@media (max-width: 768px) {
    body.woocommerce ul.products.list-view li.product {
        flex-direction: column;
    }

    body.woocommerce ul.products.list-view li.product .product-image-wrapper {
        width: 100%;
        min-height: 200px;
        flex-basis: auto;
    }
}

/* Mobile storefront: compact discovery, readable cards, quiet controls. */
@media (max-width: 640px) {
    .belvio-front-page .belvio-section,
    .belvio-ritual-section {
        padding-block: 28px;
    }

    .belvio-hero-main { min-height: 0; }
    .belvio-hero-copy { padding: 28px 22px; }
    .belvio-hero-copy h1 { font-size: 32px; line-height: 1.2; }
    .belvio-hero-copy p { font-size: 14px; line-height: 1.7; }
    .belvio-hero-actions { margin-top: 12px; }

    .belvio-hero-promos {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 10px !important;
    }
    .belvio-hero-promos .belvio-promo-wrap,
    .belvio-hero-promos .belvio-promo-tile { min-height: 112px; }
    .belvio-hero-promos .belvio-promo-tile { padding: 14px; }
    .belvio-promo-tile strong { font-size: 19px; line-height: 1.35; }
    .belvio-promo-tile span { font-size: 11px; letter-spacing: 0; }

    .belvio-service-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        box-shadow: none;
    }
    .belvio-service-grid div { padding: 12px; }
    .belvio-service-grid strong { font-size: 12px; }
    .belvio-service-grid span:not(.belvio-service-icon) { font-size: 11px; }
    .belvio-service-grid div { border-inline: 0; }
    .belvio-service-grid div:nth-child(odd) { border-inline-end: 1px solid var(--belvio-border); }
    .belvio-service-grid div:nth-child(-n+2) { border-bottom: 1px solid var(--belvio-border); }

    .belvio-categories-section .belvio-section-head {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 4px 12px;
        margin-bottom: 16px;
    }
    .belvio-categories-section .belvio-section-head > span { grid-column: 1 / -1; }
    .belvio-categories-section .belvio-section-head > h2 { grid-column: 1; font-size: 23px; }
    .belvio-categories-section .belvio-section-head > a {
        grid-column: 2;
        grid-row: 2;
        min-height: 44px;
        display: inline-flex;
        align-items: center;
        justify-self: end;
    }
    .belvio-category-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 8px;
    }
    .belvio-category-card-wrap { min-height: 0; }
    .belvio-category-card {
        min-height: 120px;
        padding: 12px 6px;
        border: 0;
        border-radius: 12px;
        background: var(--belvio-soft);
        box-shadow: none;
    }
    .belvio-category-image { width: 52px; height: 52px; margin-bottom: 8px; }
    .belvio-category-card strong { font-size: 12px; line-height: 1.45; }
    .belvio-category-card small { font-size: 10px; }

    .belvio-ritual-head { margin-bottom: 14px; }
    .belvio-ritual-grid { gap: 8px !important; }
    .belvio-ritual-card {
        min-height: 0;
        padding: 14px 16px;
        padding-inline-end: 52px;
        border-radius: 12px;
        box-shadow: none;
    }
    .belvio-ritual-card::before { display: none; }
    .belvio-ritual-card::after { width: 28px; height: 28px; top: 16px; inset-inline-end: 14px; }
    .belvio-ritual-card strong { font-size: 18px; margin-block: 4px; line-height: 1.4; }
    .belvio-ritual-card small { max-width: none; font-size: 12px; }

    .belvio-home-product-body { min-height: 152px; padding: 10px; }
    .belvio-home-product-body h3 { font-size: 13px; line-height: 1.5; overflow-wrap: anywhere; }
    .belvio-home-product,
    body.woocommerce ul.products li.product { border-radius: 12px; box-shadow: none; }
    .belvio-home-product-footer .add_to_cart_button,
    body.woocommerce ul.products li.product .product-add-to-cart .add_to_cart_button {
        min-height: 44px !important;
        border: 0 !important;
        border-radius: 8px !important;
        background: var(--belvio-primary-dark) !important;
        box-shadow: none;
        font-size: 12px !important;
        white-space: normal !important;
    }
    .belvio-image-actions .belvio-image-action,
    #belvio-products .belvio-image-actions .belvio-image-action,
    .product-actions .btn-quick-view {
        border: 0 !important;
        border-radius: 8px !important;
        background: var(--belvio-soft) !important;
    }
    .btn { min-height: 44px; border-width: 1px; border-radius: 8px; }
    .btn-primary { border-color: transparent; background: var(--belvio-primary-dark); }
    .btn-secondary { background: rgba(255,255,255,.65); border-color: rgba(124,64,90,.15); }
    .belvio-product-tabs button { border-radius: 8px; box-shadow: none; min-height: 44px; }
    .belvio-lookbook-copy { padding: 28px 22px; }
    .belvio-lookbook-image:not(.has-custom-cover) { display: none; }
    .mobile-menu-toggle,
    .search-toggle,
    .cart-link { width: 44px !important; height: 44px !important; min-width: 44px !important; min-height: 44px !important; }
}

/* Keep keyboard focus distinct from the normal button border. */
:where(a, button, input, select, textarea):focus-visible {
    outline: 2px solid var(--belvio-primary-dark);
    outline-offset: 3px;
}

@media (max-width: 640px) {
    .belvio-section-head h2,
    .belvio-ritual-head h2 { font-size: 24px; line-height: 1.4; }
    .belvio-section-head p,
    .belvio-ritual-head p { font-size: 14px; line-height: 1.7; }
    .shop-header { padding-block: 12px 8px; }
    .shop-toolbar { padding: 10px; }
}

/* Homepage surfaces and image actions share one quiet border system. */
.belvio-front-page {
    --belvio-card-line: rgba(124, 64, 90, .18);
}
.belvio-front-page .belvio-categories-section {
    background: linear-gradient(180deg, #fff, #fff8fb);
    border-block: 1px solid rgba(124, 64, 90, .08);
}
.belvio-front-page .belvio-ritual-section {
    background: #faf6f1;
    border-bottom: 1px solid rgba(124, 64, 90, .08);
}
.belvio-front-page .belvio-products-section {
    background: #fff;
    border-bottom: 1px solid rgba(124, 64, 90, .08);
}
.belvio-front-page .belvio-category-card,
.belvio-front-page .belvio-ritual-card,
.belvio-front-page .belvio-home-product,
.belvio-front-page .belvio-promo-tile {
    border: 1px solid var(--belvio-card-line);
    box-shadow: 0 3px 12px rgba(124, 64, 90, .035);
}
.belvio-front-page .belvio-category-card { background: #fff; }

/* Preview remains beneath the image as a quiet, borderless action. */
#belvio-products .belvio-home-product .belvio-home-product-image {
    margin-bottom: 0 !important;
    overflow: hidden !important;
    aspect-ratio: auto;
    border-radius: 11px 11px 0 0;
}
#belvio-products .belvio-home-product .belvio-home-product-image > a {
    display: block;
    aspect-ratio: 1 / 1;
    overflow: hidden;
}
#belvio-products .belvio-home-product .belvio-home-product-image > a img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
#belvio-products .belvio-home-product .belvio-home-product-image > .belvio-image-actions {
    position: static !important;
    inset: auto !important;
    width: 100% !important;
    height: auto !important;
    display: flex !important;
    padding: 8px 10px 0 !important;
    background: transparent !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    box-shadow: none !important;
    pointer-events: auto !important;
}
#belvio-products .belvio-home-product .belvio-image-actions .belvio-image-action {
    position: static !important;
    flex: 1 1 auto !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    min-height: 44px !important;
    padding: 0 14px !important;
    border: 0 !important;
    border-radius: 8px !important;
    background: #fff5f8 !important;
    color: var(--belvio-primary-dark) !important;
    box-shadow: none !important;
    font-size: 12px !important;
    font-weight: 700;
    line-height: 1.3;
    pointer-events: auto !important;
    transition: background-color 150ms ease, transform 120ms ease-out;
}
#belvio-products .belvio-home-product .belvio-image-actions .belvio-image-action:hover {
    background: #f8e8ee !important;
}
#belvio-products .belvio-home-product .belvio-image-actions .belvio-image-action:active {
    transform: scale(.98) !important;
}
#belvio-products .belvio-home-product .belvio-image-actions .belvio-image-action:focus-visible {
    outline: 2px solid var(--belvio-primary-dark);
    outline-offset: 2px;
}
.belvio-front-page .belvio-home-product-body { gap: 6px; }
@media (hover:hover) and (pointer:fine) {
    .belvio-front-page .belvio-category-card:hover,
    .belvio-front-page .belvio-ritual-card:hover,
    .belvio-front-page .belvio-home-product:hover {
        border-color: rgba(124,64,90,.35);
        box-shadow: 0 8px 20px rgba(124,64,90,.08);
    }
}
@media (prefers-reduced-motion: reduce) {
    #belvio-products .belvio-home-product .belvio-image-actions .belvio-image-action {
        transition: none;
    }
}





/* Clear homepage action hierarchy: text preview, solid cart action. */
#belvio-products .belvio-home-product .belvio-image-actions .belvio-image-action {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 6px;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    border-radius: 8px !important;
    min-height: 44px !important;
}
#belvio-products .belvio-home-product .belvio-image-actions .belvio-image-action:hover {
    background: #fff5f8 !important;
}
#belvio-products .belvio-image-action::before {
    content: '';
    display: inline-block;
    flex: 0 0 18px;
    width: 18px;
    height: 18px;
    background: currentColor;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7S2 12 2 12Z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7S2 12 2 12Z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center / contain no-repeat;
}
#belvio-products .belvio-home-product-footer .add_to_cart_button {
    background: #a7476d !important;
    border: 0 !important;
    box-shadow: none !important;
    border-radius: 8px !important;
    min-height: 44px !important;
    gap: 7px !important;
}
#belvio-products .belvio-home-product-footer .add_to_cart_button:hover {
    background: #8c3858 !important;
}
#belvio-products .belvio-home-product-footer .add_to_cart_button:not(.loading):not(.added)::before {
    content: '';
    display: inline-block;
    flex: 0 0 18px;
    width: 18px;
    height: 18px;
    border-radius: 0;
    background: currentColor;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 3h2l2.5 12h11L21 7H6'/%3E%3Ccircle cx='9' cy='20' r='1'/%3E%3Ccircle cx='18' cy='20' r='1'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 3h2l2.5 12h11L21 7H6'/%3E%3Ccircle cx='9' cy='20' r='1'/%3E%3Ccircle cx='18' cy='20' r='1'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Small, immediate movement feedback for homepage purchase actions. */
#belvio-products .belvio-home-product-footer .add_to_cart_button {
    transition: transform 140ms cubic-bezier(.22,1,.36,1), background-color 160ms ease, box-shadow 160ms ease;
}
#belvio-products .belvio-home-product-footer .add_to_cart_button:active {
    transform: translateY(1px) scale(.98);
}
@media (hover:hover) and (pointer:fine) {
    #belvio-products .belvio-home-product-footer .add_to_cart_button:hover {
        transform: translateY(-1px);
        box-shadow: 0 5px 12px rgba(140,56,88,.16) !important;
    }
}
@media (prefers-reduced-motion: reduce) {
    #belvio-products .belvio-home-product-footer .add_to_cart_button {
        transition: none;
    }
}

/* Keep price and cart CTA at a shared baseline without changing title length. */
#belvio-products .belvio-home-products-grid {
    align-items: stretch;
}
#belvio-products .belvio-home-products-grid > .belvio-home-product {
    display: flex !important;
    flex-direction: column !important;
    height: 100%;
}
#belvio-products .belvio-home-product > .belvio-home-product-body {
    display: flex !important;
    flex: 1 1 auto;
    flex-direction: column;
    min-height: 188px;
}
#belvio-products .belvio-home-product-footer {
    margin-top: auto !important;
}
body.woocommerce ul.products:not(.list-view) {
    align-items: stretch;
}
body.woocommerce ul.products:not(.list-view) li.product {
    display: flex !important;
    flex-direction: column !important;
    height: 100%;
}
body.woocommerce ul.products:not(.list-view) li.product .product-card-content {
    display: flex !important;
    flex: 1 1 auto;
    flex-direction: column;
}
body.woocommerce ul.products:not(.list-view) li.product .product-card-content .product-footer {
    margin-top: auto !important;
}

/* Refined product-card system for shop, category, related and upsell grids. */
body.woocommerce ul.products:not(.list-view) li.product,
.related ul.products:not(.list-view) li.product,
.upsells ul.products:not(.list-view) li.product,
.cross-sells ul.products:not(.list-view) li.product {
    display: flex !important; flex-direction: column !important; height: 100%; overflow: hidden;
    border: 1px solid rgba(124,64,90,.18) !important; border-radius: 12px !important;
    box-shadow: 0 3px 12px rgba(124,64,90,.035) !important;
    transition: transform 180ms cubic-bezier(.23,1,.32,1), box-shadow 180ms ease, border-color 180ms ease;
}
body.woocommerce ul.products:not(.list-view), .related ul.products:not(.list-view),
.upsells ul.products:not(.list-view), .cross-sells ul.products:not(.list-view) { align-items: stretch; }
body.woocommerce ul.products:not(.list-view) li.product .product-image-wrapper,
.related ul.products:not(.list-view) li.product .product-image-wrapper,
.upsells ul.products:not(.list-view) li.product .product-image-wrapper,
.cross-sells ul.products:not(.list-view) li.product .product-image-wrapper {
    display: flex !important; flex: 0 0 auto; flex-direction: column; aspect-ratio: auto !important;
    overflow: visible !important; border-radius: 11px 11px 0 0;
}
body.woocommerce ul.products:not(.list-view) li.product .product-image-wrapper > .product-image-link,
.related ul.products:not(.list-view) li.product .product-image-wrapper > .product-image-link,
.upsells ul.products:not(.list-view) li.product .product-image-wrapper > .product-image-link,
.cross-sells ul.products:not(.list-view) li.product .product-image-wrapper > .product-image-link {
    display: block; flex: 0 0 auto; aspect-ratio: 1 / 1; overflow: hidden;
}
body.woocommerce ul.products:not(.list-view) li.product .product-image-wrapper > .product-image-link img,
.related ul.products:not(.list-view) li.product .product-image-wrapper > .product-image-link img,
.upsells ul.products:not(.list-view) li.product .product-image-wrapper > .product-image-link img,
.cross-sells ul.products:not(.list-view) li.product .product-image-wrapper > .product-image-link img {
    display: block; width: 100%; height: 100%; object-fit: cover;
}
body.woocommerce ul.products:not(.list-view) li.product .product-image-wrapper > .product-actions,
.related ul.products:not(.list-view) li.product .product-image-wrapper > .product-actions,
.upsells ul.products:not(.list-view) li.product .product-image-wrapper > .product-actions,
.cross-sells ul.products:not(.list-view) li.product .product-image-wrapper > .product-actions {
    position: static !important; inset: auto !important; display: flex !important; width: 100% !important;
    height: auto !important; min-height: 0 !important; padding: 8px 10px 0 !important;
    background: transparent !important; opacity: 1 !important; visibility: visible !important;
    transform: none !important; box-shadow: none !important; -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
}
body.woocommerce ul.products:not(.list-view) li.product .product-actions .btn-quick-view,
.related ul.products:not(.list-view) li.product .product-actions .btn-quick-view,
.upsells ul.products:not(.list-view) li.product .product-actions .btn-quick-view,
.cross-sells ul.products:not(.list-view) li.product .product-actions .btn-quick-view {
    display: inline-flex !important; flex: 1 1 auto; align-items: center; justify-content: center; gap: 6px;
    width: 100% !important; min-height: 44px !important; border: 0 !important; border-radius: 8px !important;
    background: transparent !important; color: var(--belvio-primary-dark) !important; box-shadow: none !important;
    font-size: 12px !important; font-weight: 700;
}
body.woocommerce ul.products:not(.list-view) li.product .product-actions .btn-quick-view::before,
.related ul.products:not(.list-view) li.product .product-actions .btn-quick-view::before,
.upsells ul.products:not(.list-view) li.product .product-actions .btn-quick-view::before,
.cross-sells ul.products:not(.list-view) li.product .product-actions .btn-quick-view::before {
    content: ''; display: inline-block; flex: 0 0 18px; width: 18px; height: 18px; background: currentColor;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7S2 12 2 12Z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7S2 12 2 12Z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center / contain no-repeat;
}
body.woocommerce ul.products:not(.list-view) li.product .product-card-content,
.related ul.products:not(.list-view) li.product .product-card-content,
.upsells ul.products:not(.list-view) li.product .product-card-content,
.cross-sells ul.products:not(.list-view) li.product .product-card-content {
    display: flex !important; flex: 1 1 auto; flex-direction: column;
}
body.woocommerce ul.products:not(.list-view) li.product .product-card-content .product-footer,
.related ul.products:not(.list-view) li.product .product-card-content .product-footer,
.upsells ul.products:not(.list-view) li.product .product-card-content .product-footer,
.cross-sells ul.products:not(.list-view) li.product .product-card-content .product-footer { margin-top: auto !important; }
body.woocommerce ul.products:not(.list-view) li.product .product-footer .price,
.related ul.products:not(.list-view) li.product .product-footer .price,
.upsells ul.products:not(.list-view) li.product .product-footer .price,
.cross-sells ul.products:not(.list-view) li.product .product-footer .price { color: var(--belvio-primary-dark); font-weight: 900; }
body.woocommerce ul.products:not(.list-view) li.product .product-add-to-cart .add_to_cart_button,
.related ul.products:not(.list-view) li.product .product-add-to-cart .add_to_cart_button,
.upsells ul.products:not(.list-view) li.product .product-add-to-cart .add_to_cart_button,
.cross-sells ul.products:not(.list-view) li.product .product-add-to-cart .add_to_cart_button {
    min-height: 44px !important; border: 0 !important; border-radius: 8px !important;
    background: #a7476d !important; box-shadow: none !important;
    transition: transform 140ms cubic-bezier(.22,1,.36,1), background-color 160ms ease, box-shadow 160ms ease;
}
body.woocommerce ul.products:not(.list-view) li.product .product-add-to-cart .add_to_cart_button:hover,
.related ul.products:not(.list-view) li.product .product-add-to-cart .add_to_cart_button:hover,
.upsells ul.products:not(.list-view) li.product .product-add-to-cart .add_to_cart_button:hover,
.cross-sells ul.products:not(.list-view) li.product .product-add-to-cart .add_to_cart_button:hover { background: #8c3858 !important; }
body.woocommerce ul.products:not(.list-view) li.product .product-add-to-cart .add_to_cart_button:not(.loading):not(.added)::before,
.related ul.products:not(.list-view) li.product .product-add-to-cart .add_to_cart_button:not(.loading):not(.added)::before,
.upsells ul.products:not(.list-view) li.product .product-add-to-cart .add_to_cart_button:not(.loading):not(.added)::before,
.cross-sells ul.products:not(.list-view) li.product .product-add-to-cart .add_to_cart_button:not(.loading):not(.added)::before {
    content: ''; display: inline-block; flex: 0 0 18px; width: 18px; height: 18px; border-radius: 0;
    background: currentColor;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 3h2l2.5 12h11L21 7H6'/%3E%3Ccircle cx='9' cy='20' r='1'/%3E%3Ccircle cx='18' cy='20' r='1'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 3h2l2.5 12h11L21 7H6'/%3E%3Ccircle cx='9' cy='20' r='1'/%3E%3Ccircle cx='18' cy='20' r='1'/%3E%3C/svg%3E") center / contain no-repeat;
}
@media (hover:hover) and (pointer:fine) {
    body.woocommerce ul.products:not(.list-view) li.product:hover,
    .related ul.products:not(.list-view) li.product:hover,
    .upsells ul.products:not(.list-view) li.product:hover,
    .cross-sells ul.products:not(.list-view) li.product:hover { transform: translateY(-3px); border-color: rgba(124,64,90,.35) !important; box-shadow: 0 8px 20px rgba(124,64,90,.08) !important; }
    body.woocommerce ul.products:not(.list-view) li.product .product-add-to-cart .add_to_cart_button:hover,
    .related ul.products:not(.list-view) li.product .product-add-to-cart .add_to_cart_button:hover,
    .upsells ul.products:not(.list-view) li.product .product-add-to-cart .add_to_cart_button:hover,
    .cross-sells ul.products:not(.list-view) li.product .product-add-to-cart .add_to_cart_button:hover { transform: translateY(-1px); box-shadow: 0 5px 12px rgba(140,56,88,.16) !important; }
}
@media (prefers-reduced-motion: reduce) {
    body.woocommerce ul.products:not(.list-view) li.product,
    .related ul.products:not(.list-view) li.product,
    .upsells ul.products:not(.list-view) li.product,
    .cross-sells ul.products:not(.list-view) li.product,
    body.woocommerce ul.products:not(.list-view) li.product .product-add-to-cart .add_to_cart_button,
    .related ul.products:not(.list-view) li.product .product-add-to-cart .add_to_cart_button,
    .upsells ul.products:not(.list-view) li.product .product-add-to-cart .add_to_cart_button,
    .cross-sells ul.products:not(.list-view) li.product .product-add-to-cart .add_to_cart_button { transition: none !important; }
}

/* Clear, touch-sized shop pagination in the storefront's RTL direction. */
body.woocommerce nav.woocommerce-pagination {
    display: flex;
    justify-content: center;
    width: fit-content;
    max-width: 100%;
    margin: 28px auto 12px;
    padding: 8px;
    border: 1px solid rgba(124,64,90,.10);
    border-radius: 16px;
    background: #faf6f1;
}
body.woocommerce nav.woocommerce-pagination ul.page-numbers {
    display: flex !important;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 6px;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    direction: rtl;
    list-style: none;
}
body.woocommerce nav.woocommerce-pagination ul.page-numbers li {
    display: block;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
}
body.woocommerce nav.woocommerce-pagination .page-numbers {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    min-width: 44px;
    height: 44px;
    margin: 0 !important;
    padding: 0 10px;
    border: 1px solid rgba(124,64,90,.13) !important;
    border-radius: 12px !important;
    background: #fff !important;
    color: var(--belvio-primary-dark) !important;
    font-size: 14px;
    font-weight: 700;
    line-height: 1;
    text-decoration: none;
    box-shadow: none !important;
    transition: transform 150ms cubic-bezier(.23,1,.32,1), background-color 150ms ease, border-color 150ms ease, color 150ms ease;
}
body.woocommerce nav.woocommerce-pagination .page-numbers.current {
    border-color: transparent !important;
    background: var(--belvio-primary-dark) !important;
    color: #fff !important;
    box-shadow: 0 3px 8px rgba(124,64,90,.16) !important;
}
body.woocommerce nav.woocommerce-pagination a.page-numbers:hover {
    border-color: rgba(124,64,90,.24) !important;
    background: #fff5f8 !important;
}
body.woocommerce nav.woocommerce-pagination a.page-numbers:active {
    transform: scale(.96);
}
body.woocommerce nav.woocommerce-pagination a.page-numbers:focus-visible {
    outline: 2px solid var(--belvio-primary-dark);
    outline-offset: 2px;
    z-index: 1;
}
body.woocommerce nav.woocommerce-pagination a.prev,
body.woocommerce nav.woocommerce-pagination a.next {
    gap: 7px;
    min-width: 88px;
    padding-inline: 12px;
    font-size: 0;
}
body.woocommerce nav.woocommerce-pagination a.prev::before,
body.woocommerce nav.woocommerce-pagination a.next::before {
    font-size: 12px;
    font-weight: 700;
}
body.woocommerce nav.woocommerce-pagination a.prev::after,
body.woocommerce nav.woocommerce-pagination a.next::after {
    font-size: 15px;
    line-height: 1;
}
body.woocommerce nav.woocommerce-pagination a.next::before { content: "التالي"; }
body.woocommerce nav.woocommerce-pagination a.next::after { content: "←"; }
body.woocommerce nav.woocommerce-pagination a.prev::before { content: "السابق"; }
body.woocommerce nav.woocommerce-pagination a.prev::after { content: "→"; }
@media (max-width: 480px) {
    body.woocommerce nav.woocommerce-pagination { padding: 6px; border-radius: 14px; }
    body.woocommerce nav.woocommerce-pagination ul.page-numbers { gap: 4px; }
    body.woocommerce nav.woocommerce-pagination .page-numbers { min-width: 42px; height: 44px; padding-inline: 8px; }
    body.woocommerce nav.woocommerce-pagination a.prev,
    body.woocommerce nav.woocommerce-pagination a.next { min-width: 76px; padding-inline: 9px; gap: 5px; }
}
@media (prefers-reduced-motion: reduce) {
    body.woocommerce nav.woocommerce-pagination .page-numbers { transition: none; }
}

.belvio-products-empty {
    display: grid;
    justify-items: center;
    gap: 12px;
    padding: 32px 20px;
    border: 1px solid var(--belvio-border, #f2dbe4);
    border-radius: var(--belvio-radius-lg, 18px);
    background: var(--belvio-soft, #fff7f9);
    text-align: center;
}
.belvio-products-empty p { margin: 0; color: var(--belvio-muted, #777); }