/* Belvio Layout Fix
   Final organized ecommerce layer loaded after all theme styles. */

:root {
    --belvio-primary: #c65f86;
    --belvio-primary-dark: #7c405a;
    --belvio-secondary: #7c405a;
    --belvio-accent: #d8a15f;
    --belvio-text: #242424;
    --belvio-muted: #777;
    --belvio-soft: #fff7f9;
    --belvio-border: #f2dbe4;
    --belvio-radius: 12px;
    --belvio-radius-lg: 18px;
    --belvio-container: 1280px;
    --belvio-shadow-card: 0 8px 22px rgba(0, 0, 0, 0.055);
    --belvio-shadow-hover: 0 18px 38px rgba(0, 0, 0, 0.105);
}

body {
    background: #fff;
    color: var(--belvio-text);
}

.container {
    max-width: var(--belvio-container);
    padding-inline: 22px;
}

/* Header */
.top-bar {
    height: 34px;
    background: linear-gradient(90deg, #24141c, #7c405a 58%, #c65f86);
    color: rgba(255,255,255,.82);
    font-size: 12px;
    position: relative;
}

.top-bar-content {
    height: 34px;
    display: flex;
    justify-content: center;
    gap: 22px;
}

.top-bar-welcome {
    color: rgba(255,255,255,.58);
}

.top-bar-offer {
    color: #fff;
    font-weight: 700;
}

.site-header {
    background: #fff;
    border-bottom: 1px solid rgba(198,95,134,.14);
    box-shadow: 0 8px 24px rgba(124,64,90,.06);
}

.header-row {
    height: 76px;
    gap: 22px;
}

.header-left {
    min-width: 190px;
}

.site-title {
    font-size: 28px;
    margin: 0;
}

.site-title a {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--belvio-primary-dark);
    letter-spacing: -.04em;
}

.brand-mark {
    width: 38px;
    height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    background: var(--belvio-primary);
    color: #fff;
    font-size: 18px;
    font-weight: 800;
}

.header-center {
    justify-content: flex-start;
}

.main-navigation .primary-menu {
    gap: 2px;
}

.main-navigation .primary-menu > li > a {
    padding: 28px 12px;
    font-size: 14px;
    font-weight: 700;
    color: #333;
}

.main-navigation .primary-menu > li > a::after {
    height: 2px;
    left: 12px;
    right: 12px;
}

.header-right {
    gap: 8px;
}

.header-account a,
.header-wishlist a,
.cart-link,
.search-toggle {
    width: 38px;
    height: 38px;
    border: 1px solid transparent;
}

.header-account a:hover,
.header-wishlist a:hover,
.cart-link:hover,
.search-toggle:hover {
    border-color: var(--belvio-border);
    background: var(--belvio-soft);
}

.header-categories-nav {
    background: #242424;
    border: 0;
}

.belvio-category-bar {
    min-height: 48px;
    display: flex;
    align-items: center;
    gap: 18px;
    position: relative;
}

.all-departments {
    min-width: 230px;
    height: 48px;
    padding: 0 18px;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: var(--belvio-primary);
    color: #fff;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
}

.all-departments:hover {
    background: var(--belvio-primary-dark);
    color: #fff;
}

.all-departments span {
    display: block;
    width: 18px;
    height: 2px;
    background: currentColor;
}

.all-departments span:nth-child(2),
.all-departments span:nth-child(3) {
    margin-left: -28px;
}

.all-departments span:nth-child(2) {
    transform: translateY(-6px);
}

.all-departments span:nth-child(3) {
    transform: translateY(6px);
}

.categories-menu {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 2px;
    overflow-x: auto;
}

.categories-menu > li > a {
    color: rgba(255,255,255,.78);
    padding: 14px 12px;
    font-weight: 700;
}

.categories-menu > li > a:hover {
    color: #fff;
}

.category-bar-sale {
    flex: 0 0 auto;
    color: #fff;
    font-size: 12px;
    font-weight: 800;
    border: 1px solid rgba(255,255,255,.2);
    border-radius: 999px;
    padding: 6px 12px;
    text-transform: uppercase;
}

/* Homepage */
.belvio-front-page.site-main {
    padding: 0;
    background: #fff;
}

.belvio-hero-wrap {
    padding: 26px 0 0;
    background: #f7f3ec;
}

.belvio-hero-grid {
    display: grid;
    grid-template-columns: 250px 1fr 245px;
    gap: 18px;
    align-items: stretch;
}

.belvio-hero-grid.no-departments {
    grid-template-columns: minmax(0, 1fr) 260px;
}

.belvio-departments,
.belvio-hero-main,
.belvio-promo-tile,
.belvio-service-grid,
.belvio-category-card,
.belvio-home-product,
.belvio-lookbook-grid {
    border-radius: var(--belvio-radius-lg);
}

.belvio-departments {
    background: #fff;
    border: 1px solid var(--belvio-border);
    overflow: hidden;
    box-shadow: var(--belvio-shadow-card);
}

.belvio-departments-title {
    min-height: 52px;
    padding: 0 18px;
    background: var(--belvio-primary);
    color: #fff;
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
}

.belvio-departments ul {
    margin: 0;
    padding: 8px 0;
    list-style: none;
}

.belvio-departments a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 42px;
    padding: 0 18px;
    color: var(--belvio-text);
    font-size: 14px;
    font-weight: 600;
    border-bottom: 1px solid rgba(0,0,0,.055);
}

.belvio-departments li:last-child a {
    border-bottom: 0;
}

.belvio-departments a:hover {
    color: var(--belvio-primary-dark);
    background: #f8f5ef;
}

.belvio-hero-main {
    min-height: 430px;
    display: grid;
    grid-template-columns: 1fr 330px;
    overflow: hidden;
    background: linear-gradient(135deg, #efe0c6 0%, #fbf7ee 58%, #e4efd6 100%);
    box-shadow: var(--belvio-shadow-card);
    background-size: cover;
    background-position: center;
}

.belvio-hero-main.has-custom-cover .belvio-hero-copy,
.belvio-promo-tile.has-custom-cover,
.belvio-lookbook-image.has-custom-cover {
    color: #fff;
    text-shadow: 0 1px 18px rgba(0,0,0,.22);
}

.belvio-hero-main.has-custom-cover .belvio-hero-copy p,
.belvio-hero-main.has-custom-cover .belvio-hero-kicker {
    color: rgba(255,255,255,.9);
}

.belvio-hero-copy {
    padding: 54px 48px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.belvio-hero-kicker,
.belvio-section-head span,
.belvio-lookbook-copy span {
    color: var(--belvio-primary-dark);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.belvio-hero-copy h1 {
    max-width: 570px;
    margin: 12px 0 16px;
    font-size: clamp(36px, 4vw, 58px);
    line-height: 1.04;
    letter-spacing: -.055em;
}

.belvio-hero-copy p {
    max-width: 500px;
    color: #645c53;
    font-size: 16px;
}

.belvio-hero-actions {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 18px;
}

.belvio-hero-visual {
    position: relative;
    min-height: 100%;
}

.belvio-hero-card,
.belvio-price-tag {
    position: absolute;
}

.belvio-hero-card-one {
    width: 210px;
    height: 260px;
    right: 72px;
    top: 70px;
    border-radius: 24px;
    background: linear-gradient(145deg, #b9814f, #ecd4b3);
    box-shadow: 0 22px 40px rgba(0,0,0,.14);
    transform: rotate(-3deg);
}

.belvio-hero-card-two {
    width: 145px;
    height: 180px;
    right: 28px;
    bottom: 52px;
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 18px 36px rgba(0,0,0,.1);
}

.belvio-price-tag {
    right: 28px;
    top: 34px;
    width: 92px;
    height: 92px;
    padding: 10px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    line-height: 1.15;
    white-space: normal;
    word-break: keep-all;
    background: var(--belvio-accent);
    color: #fff;
    font-weight: 900;
    font-size: 12px;
    z-index: 4;
}

.belvio-price-tag--pill {
    width: auto;
    min-width: 150px;
    height: auto;
    min-height: 52px;
    border-radius: 999px;
    padding: 10px 18px;
}

.belvio-price-tag--rounded {
    width: 104px;
    height: 82px;
    border-radius: 22px;
}

.belvio-hero-style-dark {
    background: linear-gradient(135deg, #20201f 0%, #3b332a 55%, #161616 100%);
    color: #fff;
}

.belvio-hero-style-dark h1,
.belvio-hero-style-dark .belvio-hero-copy p,
.belvio-hero-style-dark .belvio-hero-kicker {
    color: #fff;
}

.belvio-hero-style-green {
    background: linear-gradient(135deg, #fff0f5 0%, #fffaf5 54%, #f4d9e4 100%);
}

.belvio-hero-style-minimal {
    background: #fff;
    border: 1px solid var(--belvio-border);
}

.belvio-hero-text-center {
    grid-template-columns: 1fr;
}

.belvio-hero-text-center .belvio-hero-copy {
    align-items: center;
    text-align: center;
}

.belvio-hero-text-center .belvio-hero-copy h1,
.belvio-hero-text-center .belvio-hero-copy p {
    margin-right: auto;
    margin-left: auto;
}

.belvio-hero-text-center .belvio-hero-actions {
    justify-content: center;
}

.belvio-hero-text-center .belvio-hero-visual {
    display: none;
}

.belvio-hero-text-end .belvio-hero-copy {
    align-items: flex-end;
    text-align: end;
}

.belvio-hero-shape-none {
    grid-template-columns: 1fr;
}

.belvio-hero-shape-none .belvio-hero-visual {
    display: none;
}

.belvio-hero-shape-circles .belvio-hero-card-one,
.belvio-hero-shape-circles .belvio-hero-card-two {
    border-radius: 50%;
}

.belvio-hero-shape-circles .belvio-hero-card-one {
    width: 235px;
    height: 235px;
    top: 82px;
}

.belvio-hero-shape-circles .belvio-hero-card-two {
    width: 150px;
    height: 150px;
}

.belvio-hero-shape-arch .belvio-hero-card-one {
    border-radius: 120px 120px 28px 28px;
}

.belvio-hero-shape-arch .belvio-hero-card-two {
    border-radius: 80px 80px 18px 18px;
}

.belvio-hero-promos {
    display: grid;
    gap: 18px;
}

.belvio-promo-tile {
    min-height: 206px;
    padding: 26px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    box-shadow: var(--belvio-shadow-card);
    background-size: cover;
    background-position: center;
}

.belvio-promo-wrap {
    position: relative;
    min-height: 206px;
}

.belvio-promo-wrap .belvio-promo-tile {
    height: 100%;
}

.belvio-promo-dark {
    background: #242424;
    color: #fff;
}

.belvio-promo-light {
    background: #fff;
    color: var(--belvio-text);
    border: 1px solid var(--belvio-border);
}

.belvio-promo-green {
    background: linear-gradient(135deg, var(--belvio-primary), var(--belvio-primary-dark));
    color: #fff;
}

.belvio-promo-gold {
    background: linear-gradient(135deg, #c79553, #f4dfb8);
    color: #242424;
}

.belvio-promos-layout-compact .belvio-promo-tile,
.belvio-promos-layout-compact .belvio-promo-wrap {
    min-height: 160px;
}

.belvio-promos-layout-featured .belvio-promo-wrap:first-child,
.belvio-promos-layout-featured .belvio-promo-wrap:first-child .belvio-promo-tile {
    min-height: 250px;
}

.belvio-promo-tile span {
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .1em;
}

.belvio-promo-tile strong {
    max-width: 180px;
    margin-top: 8px;
    font-size: 27px;
    line-height: 1.07;
}

.belvio-service-strip {
    padding: 18px 0 0;
    transform: none;
    background: #f7f3ec;
}

.belvio-service-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    background: #fff;
    border: 1px solid var(--belvio-border);
    box-shadow: var(--belvio-shadow-card);
    overflow: hidden;
}

.belvio-service-grid div {
    padding: 20px 22px;
    border-right: 1px solid var(--belvio-border);
    position: relative;
}

.belvio-service-grid div:last-child {
    border-right: 0;
}

.belvio-service-icon {
    width: 46px;
    height: 46px;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    margin: 0 0 12px !important;
    border-radius: 14px;
    background: var(--belvio-soft);
    overflow: hidden;
}

.belvio-service-icon img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.belvio-service-style-tinted .belvio-service-grid {
    background: #fbf7ee;
}

.belvio-service-style-tinted .belvio-service-grid div {
    background: linear-gradient(180deg, rgba(255,255,255,.72), rgba(255,255,255,.36));
}

.belvio-service-style-dark {
    background: #242424;
}

.belvio-service-style-dark .belvio-service-grid {
    background: #1f1f1f;
    border-color: rgba(255,255,255,.12);
}

.belvio-service-style-dark .belvio-service-grid div {
    border-color: rgba(255,255,255,.12);
}

.belvio-service-style-dark .belvio-service-grid strong {
    color: #fff;
}

.belvio-service-style-dark .belvio-service-grid span:not(.belvio-service-icon) {
    color: rgba(255,255,255,.72);
}

.belvio-service-grid strong,
.belvio-service-grid span {
    display: block;
}

.belvio-service-grid strong {
    font-size: 15px;
}

.belvio-service-grid span {
    margin-top: 4px;
    color: var(--belvio-muted);
    font-size: 13px;
}

.belvio-section {
    padding: 54px 0;
}

.belvio-categories-section.has-custom-cover,
.belvio-products-section.has-custom-cover {
    background-size: cover;
    background-position: center;
}

.belvio-section-head {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: end;
    gap: 8px 20px;
    margin-bottom: 24px;
    position: relative;
}

.belvio-section-head.centered {
    display: block;
    text-align: center;
}

.belvio-section-head h2 {
    margin: 0;
    font-size: clamp(30px, 3vw, 42px);
    line-height: 1.05;
    letter-spacing: -.045em;
}

.belvio-section-head p {
    max-width: 620px;
    margin: 8px auto 0;
    color: var(--belvio-muted);
}

.belvio-category-grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 16px;
}

.belvio-category-card-wrap {
    position: relative;
    min-height: 172px;
}

.belvio-category-card-wrap .belvio-category-card {
    height: 100%;
}

.belvio-category-card {
    min-height: 172px;
    padding: 18px 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    text-align: center;
    background: #fff;
    border: 1px solid var(--belvio-border);
    color: var(--belvio-text);
    box-shadow: var(--belvio-shadow-card);
}

/* Colour and shadow stay ungated — they are the only feedback a tap gets. */
.belvio-category-card:hover {
    color: var(--belvio-primary-dark);
    box-shadow: var(--belvio-shadow-hover);
}

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

.belvio-category-image {
    width: 78px;
    height: 78px;
    margin-bottom: 12px;
    border-radius: 50%;
    overflow: hidden;
    background: var(--belvio-soft);
}

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

.belvio-category-card strong {
    font-size: 15px;
}

.belvio-category-card small {
    margin-top: 3px;
    color: var(--belvio-muted);
}

.belvio-category-style-minimal .belvio-category-card {
    background: transparent;
    border-color: transparent;
    box-shadow: none;
}

.belvio-category-style-minimal .belvio-category-card:hover {
    background: #fff;
}

.belvio-category-style-round .belvio-category-card {
    border-radius: 28px;
}

.belvio-category-style-round .belvio-category-image {
    width: 104px;
    height: 104px;
}

.belvio-product-tabs {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin: 24px 0 26px;
}

.belvio-product-tabs button {
    height: 40px;
    padding: 0 18px;
    border: 1px solid var(--belvio-border);
    border-radius: 999px;
    background: #fff;
    color: #555;
    font-weight: 800;
    cursor: pointer;
}

.belvio-product-tabs button.active,
.belvio-product-tabs button:hover {
    background: var(--belvio-primary);
    border-color: var(--belvio-primary);
    color: #fff;
}

.belvio-tab-panel {
    display: none !important;
}

.belvio-tab-panel.active {
    display: block !important;
}

.belvio-home-products-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 22px;
}

.belvio-products-view-all {
    display: flex;
    justify-content: center;
    margin-top: 32px;
}

.belvio-home-product,
body.woocommerce ul.products li.product,
body.woocommerce ul.products li.product.product-card {
    background: #fff;
    border: 1px solid var(--belvio-border);
    border-radius: var(--belvio-radius-lg);
    overflow: hidden;
    box-shadow: var(--belvio-shadow-card);
    transform: none;
}

.belvio-home-product:hover,
body.woocommerce ul.products li.product:hover {
    box-shadow: var(--belvio-shadow-hover);
}

@media (hover: hover) and (pointer: fine) {
    .belvio-home-product:hover,
    body.woocommerce ul.products li.product:hover {
        transform: translateY(-3px);
    }
}

.belvio-home-product-image,
body.woocommerce ul.products li.product .product-image-wrapper {
    aspect-ratio: 1 / 1;
    background: #f7f4ee;
    position: relative;
    overflow: hidden;
}

.belvio-home-product-image img,
body.woocommerce ul.products li.product .product-image-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

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

.belvio-home-product-body h3,
body.woocommerce ul.products li.product .product-title {
    min-height: 42px;
    margin: 0 0 10px;
    padding: 0;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.4;
}

.belvio-home-product-body h3 a,
body.woocommerce ul.products li.product .product-title a {
    color: var(--belvio-text);
}

.belvio-home-product-footer,
body.woocommerce ul.products li.product .product-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-top: 12px;
    padding: 0;
}

.belvio-home-product-footer .price,
body.woocommerce ul.products li.product .price {
    color: var(--belvio-primary-dark);
    font-weight: 900;
    font-size: 15px;
}

.belvio-home-product-footer .button,
body.woocommerce ul.products li.product .add_to_cart_button {
    min-height: 36px;
    padding: 0 13px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: var(--belvio-text);
    color: #fff;
    font-size: 12px;
    font-weight: 800;
    white-space: nowrap;
}

.belvio-home-product-footer .button:hover,
body.woocommerce ul.products li.product .add_to_cart_button:hover {
    background: var(--belvio-primary);
    color: #fff;
}

.belvio-products-style-minimal .belvio-home-product {
    border-color: transparent;
    box-shadow: none;
}

.belvio-products-style-minimal .belvio-home-product:hover {
    box-shadow: var(--belvio-shadow-card);
}

.belvio-products-style-bold .belvio-home-product {
    border: 0;
    box-shadow: 0 16px 42px rgba(36, 36, 36, .12);
}

.belvio-products-style-bold .belvio-home-product-body h3 {
    font-size: 16px;
    font-weight: 900;
}

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

/* Hover-reveal overlay: gated whole, because the reveal and its slide are one
   behaviour. On touch a tap latches :hover and the panel stays put; the
   `(hover: none) and (pointer: coarse)` block further down is what shows these
   on touch instead. */
@media (hover: hover) and (pointer: fine) {
    .belvio-home-product:hover .belvio-home-actions,
    body.woocommerce ul.products li.product:hover .product-actions {
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transform: translate(-50%, -44%);
    }

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

.belvio-home-action,
.btn-view-product,
.btn-quick-view {
    min-height: 36px;
    border-radius: 999px;
    background: rgba(255,255,255,.96);
    color: var(--belvio-text);
    box-shadow: 0 8px 18px rgba(0,0,0,.1);
    font-size: 12px;
    font-weight: 800;
}

.belvio-lookbook {
    padding: 54px 0 70px;
}

.belvio-lookbook-grid {
    min-height: 330px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    overflow: hidden;
    background: #242424;
    box-shadow: var(--belvio-shadow-hover);
    position: relative;
}

.belvio-lookbook-style-green {
    background: linear-gradient(135deg, var(--belvio-primary-dark), #24141c);
}

.belvio-lookbook-style-warm {
    background: linear-gradient(135deg, #7a5432, #c79553);
}

.belvio-lookbook-style-light {
    background: #f7f3ec;
}

.belvio-lookbook-style-light .belvio-lookbook-copy,
.belvio-lookbook-style-light .belvio-lookbook-copy h2 {
    color: var(--belvio-text);
}

.belvio-lookbook-style-light .belvio-lookbook-copy p {
    color: var(--belvio-muted);
}

/* Admin edit pencils */
.belvio-edit-pen {
    position: absolute;
    top: 10px;
    right: 10px;
    width: 30px;
    height: 30px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: #fff;
    color: #242424;
    border: 1px solid rgba(0,0,0,.12);
    box-shadow: 0 8px 20px rgba(0,0,0,.14);
    z-index: 80;
    opacity: .9;
}

.belvio-edit-pen:hover {
    background: var(--belvio-primary);
    color: #fff;
    opacity: 1;
}

.top-bar > .belvio-edit-pen,
.site-header > .belvio-edit-pen {
    top: 6px;
    right: 12px;
}

.belvio-category-bar > .belvio-edit-pen {
    top: 9px;
    right: 0;
}

.belvio-departments,
.belvio-hero-main,
.belvio-home-product {
    position: relative;
}

.belvio-section-head .belvio-edit-pen {
    top: -4px;
    right: 0;
}

.belvio-home-product .belvio-edit-pen {
    top: 8px;
    right: 8px;
}

.belvio-category-card-wrap .belvio-edit-pen,
.belvio-promo-wrap .belvio-edit-pen {
    top: 8px;
    right: 8px;
}

.belvio-lookbook-copy {
    padding: 48px;
    color: #fff;
}

.belvio-lookbook-copy h2 {
    color: #fff;
    font-size: clamp(32px, 4vw, 52px);
    line-height: 1.02;
    letter-spacing: -.05em;
}

.belvio-lookbook-copy p {
    color: rgba(255,255,255,.74);
}

.belvio-lookbook-image {
    background: linear-gradient(135deg, #f7c9d8, #d8a15f);
    background-size: cover;
    background-position: center;
}

/* 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,
    .belvio-hero-promos,
    .belvio-service-grid,
    .belvio-category-grid,
    .belvio-ritual-grid,
    .belvio-home-products-grid,
    body.woocommerce ul.products {
        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;
    }
}
