@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Playfair+Display:wght@400;600;700;800&display=swap');

/* ============================================================
   BELLUMA — Design tokens
   Dual palette: roz-soft (damă) & navy (bărbați)
   ============================================================ */

:root {
    /* Brand */
    --bl-rose:        #F4D0D6;   /* accent damă */
    --bl-rose-strong: #D98AA0;   /* rose-hover / buttons */
    --bl-rose-soft:   #FBEBEE;   /* backgrounds */

    --bl-navy:        #1A2438;   /* accent bărbați / text principal */
    --bl-navy-strong: #0E1524;
    --bl-navy-soft:   #E7E9EF;

    --bl-gold:        #C9A961;   /* accent unisex (aur cald / champagne) */
    --bl-gold-strong: #A5883F;
    --bl-gold-soft:   #F7F0DF;

    /* Neutre */
    --bl-black:       #0F0F0F;
    --bl-white:       #FFFFFF;
    --bl-grey-50:     #F8F8F8;
    --bl-grey-100:    #F1F1F1;
    --bl-grey-200:    #E6E6E6;
    --bl-grey-400:    #9A9A9A;
    --bl-grey-600:    #5A5A5A;

    /* Accent neutru default (unisex) */
    --bl-accent:        var(--bl-navy);
    --bl-accent-strong: var(--bl-navy-strong);
    --bl-accent-soft:   var(--bl-grey-100);

    /* Typography */
    --bl-font-display: 'Playfair Display', 'Georgia', serif;
    --bl-font-body:    'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

    /* Spacing scale */
    --bl-gap-xs: 0.5rem;
    --bl-gap-sm: 1rem;
    --bl-gap-md: 2rem;
    --bl-gap-lg: 4rem;
    --bl-gap-xl: 6rem;

    /* Radius */
    --bl-radius-sm: 4px;
    --bl-radius-md: 12px;
    --bl-radius-lg: 24px;

    /* Shadow */
    --bl-shadow-sm: 0 2px 8px rgba(15, 15, 15, 0.06);
    --bl-shadow-md: 0 8px 24px rgba(15, 15, 15, 0.08);
    --bl-shadow-lg: 0 20px 48px rgba(15, 15, 15, 0.12);
}

/* Dual-color scheme switches via body class */
body.belluma-audience-women {
    --bl-accent:        var(--bl-rose-strong);
    --bl-accent-strong: #B46B82;
    --bl-accent-soft:   var(--bl-rose-soft);
}

body.belluma-audience-men {
    --bl-accent:        var(--bl-navy);
    --bl-accent-strong: var(--bl-navy-strong);
    --bl-accent-soft:   var(--bl-navy-soft);
}

body.belluma-audience-unisex {
    --bl-accent:        var(--bl-gold);
    --bl-accent-strong: var(--bl-gold-strong);
    --bl-accent-soft:   var(--bl-gold-soft);
}

/* ============================================================
   Base typography  (Google Fonts imported at top of file)
   ============================================================ */
body {
    font-family: var(--bl-font-body);
    color: var(--bl-black);
    background: var(--bl-white);
    font-feature-settings: "ss01", "ss02";
    -webkit-font-smoothing: antialiased;
}

h1, h2, h3, .belluma-wordmark {
    font-family: var(--bl-font-display);
    font-weight: 700;
    letter-spacing: -0.01em;
}

h1 { font-size: clamp(2rem, 5vw, 3.5rem); line-height: 1.1; }
h2 { font-size: clamp(1.5rem, 3.5vw, 2.5rem); line-height: 1.2; }
h3 { font-size: clamp(1.25rem, 2.5vw, 1.75rem); line-height: 1.3; }

/* Wordmark (logo text placeholder) */
.belluma-wordmark,
.site-title,
.site-title a {
    font-family: var(--bl-font-display) !important;
    font-weight: 800 !important;
    font-size: 1.85rem !important;
    letter-spacing: 0.22em !important;
    color: var(--bl-black) !important;
    text-decoration: none !important;
    transition: color 0.2s ease;
}
.belluma-wordmark:hover,
.site-title a:hover { color: var(--bl-accent-strong) !important; }

.site-description {
    font-family: var(--bl-font-body) !important;
    font-size: 0.75rem !important;
    letter-spacing: 0.15em !important;
    text-transform: uppercase;
    color: var(--bl-grey-400) !important;
}

/* ============================================================
   Buttons
   ============================================================ */
.wp-block-button__link,
button.single_add_to_cart_button,
.button,
.woocommerce a.button,
.woocommerce button.button {
    background: var(--bl-black) !important;
    color: var(--bl-white) !important;
    border: none !important;
    border-radius: var(--bl-radius-sm) !important;
    padding: 0.9rem 1.75rem !important;
    font-weight: 600 !important;
    letter-spacing: 0.02em !important;
    text-transform: none !important;
    transition: all 0.2s ease !important;
    box-shadow: none !important;
}

.wp-block-button__link:hover,
button.single_add_to_cart_button:hover,
.button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover {
    background: var(--bl-black) !important;
    transform: translateY(-1px);
    box-shadow: var(--bl-shadow-md);
}

/* Secondary outline button */
.button.secondary,
.belluma-btn-outline {
    background: transparent !important;
    color: var(--bl-black) !important;
    border: 1.5px solid var(--bl-black) !important;
}
.button.secondary:hover,
.belluma-btn-outline:hover {
    background: var(--bl-black) !important;
    color: var(--bl-white) !important;
}

/* ============================================================
   Announcement bar (very top)
   ============================================================ */
.belluma-announce {
    background: var(--bl-black);
    color: var(--bl-white);
    font-size: 0.78rem;
    letter-spacing: 0.04em;
    line-height: 1.4;
    position: relative;
    z-index: 101;
}
.belluma-announce__inner {
    max-width: 1440px;
    margin: 0 auto;
    padding: 0.6rem 1.5rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    flex-wrap: nowrap;
}
.belluma-announce__messages {
    position: relative;
    min-height: 1.2em;
    flex: 1 1 auto;
    overflow: hidden;
}
.belluma-announce__msg {
    position: absolute;
    inset: 0;
    opacity: 0;
    transform: translateY(6px);
    transition: opacity 0.5s ease, transform 0.5s ease;
    white-space: nowrap;
}
.belluma-announce__msg.is-active {
    opacity: 1;
    transform: translateY(0);
}
.belluma-announce__meta {
    display: flex;
    gap: 0.5rem;
    align-items: center;
    flex-shrink: 0;
}
.belluma-announce__meta a {
    color: rgba(255, 255, 255, 0.85);
    text-decoration: none;
    transition: color 0.2s ease;
}
.belluma-announce__meta a:hover { color: var(--bl-rose); }
.belluma-announce__sep { opacity: 0.4; }
@media (max-width: 640px) {
    .belluma-announce__meta { display: none; }
    .belluma-announce__inner { justify-content: center; }
}

/* ============================================================
   Header icon cluster (search/wishlist/account/cart)
   — lives inside Kadence's `site-header-main-section-right` as a
     regular flex sibling AFTER the navigation, never overlapping it.
   ============================================================ */
.site-header-main-section-right {
    display: flex !important;
    align-items: center !important;
    gap: 0.5rem;
    flex-wrap: nowrap !important;
}
.belluma-header-icons {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    flex-shrink: 0;
    margin-left: 1rem;
}
.belluma-header-icon,
button.belluma-header-icon,
a.belluma-header-icon {
    position: relative !important;
    width: 44px !important;
    height: 44px !important;
    padding: 0 !important;
    margin: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: var(--bl-black) !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 50% !important;
    cursor: pointer;
    text-decoration: none !important;
    box-shadow: none !important;
    line-height: 1 !important;
    transition: transform 0.2s ease, background-color 0.2s ease, color 0.2s ease !important;
    min-height: 0 !important;
    min-width: 0 !important;
}
.belluma-header-icon:hover {
    transform: translateY(-1px);
    background: var(--bl-grey-100) !important;
    color: var(--bl-accent-strong) !important;
}
.belluma-header-icon svg {
    width: 22px !important;
    height: 22px !important;
    stroke-width: 1.8 !important;
    display: block !important;
    flex-shrink: 0 !important;
    transition: stroke-width 0.2s ease;
}
.belluma-header-icon:hover svg {
    stroke-width: 2.1;
}
.belluma-header-icon__badge {
    position: absolute;
    top: 2px;
    right: 2px;
    min-width: 18px;
    height: 18px;
    padding: 0 4px;
    border-radius: 99px;
    background: var(--bl-accent-strong);
    color: var(--bl-white);
    font-size: 0.65rem;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    border: 2px solid var(--bl-white);
}

/* ============================================================
   Search overlay (full-screen)
   ============================================================ */
.belluma-search-overlay {
    position: fixed;
    inset: 0;
    background: rgba(15, 15, 15, 0.55);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 6rem 1.5rem 0;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    z-index: 9999;
    transition: opacity 0.25s ease, visibility 0.25s;
}
.belluma-search-overlay.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}
.belluma-search-overlay__inner {
    background: var(--bl-white);
    width: 100%;
    max-width: 720px;
    border-radius: var(--bl-radius-lg);
    padding: 2.25rem 2rem 1.75rem;
    box-shadow: 0 30px 80px rgba(15, 15, 15, 0.35);
    transform: translateY(-12px) scale(0.98);
    transition: transform 0.3s cubic-bezier(.34,1.56,.64,1);
}
.belluma-search-overlay.is-open .belluma-search-overlay__inner {
    transform: translateY(0) scale(1);
}
.belluma-search-form {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    border-bottom: 2px solid var(--bl-grey-200);
    padding-bottom: 0.75rem;
    margin: 0;
}
.belluma-search-form__icon {
    width: 22px;
    height: 22px;
    color: var(--bl-grey-400);
    flex-shrink: 0;
}
.belluma-search-form input[type="search"] {
    flex: 1;
    border: 0;
    outline: 0;
    font-size: 1.25rem;
    font-family: var(--bl-font-body);
    color: var(--bl-black);
    background: transparent;
    padding: 0.5rem 0;
}
.belluma-search-form input[type="search"]::placeholder {
    color: var(--bl-grey-400);
    font-weight: 400;
}
.belluma-search-form__close {
    background: transparent;
    border: 0;
    cursor: pointer;
    font-size: 1.5rem;
    color: var(--bl-grey-600);
    width: 32px;
    height: 32px;
    border-radius: 50%;
    transition: background 0.2s ease;
}
.belluma-search-form__close:hover {
    background: var(--bl-grey-100);
    color: var(--bl-black);
}
.belluma-search-overlay__hints {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
    margin-top: 1.5rem;
}
.belluma-search-overlay__hint-label {
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--bl-grey-400);
    margin-right: 0.25rem;
}
.belluma-search-overlay__hints a {
    padding: 0.4rem 0.9rem;
    border: 1px solid var(--bl-grey-200);
    border-radius: 99px;
    font-size: 0.85rem;
    color: var(--bl-grey-600);
    text-decoration: none;
    transition: all 0.2s ease;
}
.belluma-search-overlay__hints a:hover {
    border-color: var(--bl-accent-strong);
    color: var(--bl-accent-strong);
    background: var(--bl-accent-soft);
}

/* ============================================================
   Sticky shrink on scroll
   ============================================================ */
body.belluma-header-compact .site-header {
    box-shadow: 0 2px 12px rgba(15, 15, 15, 0.08);
}
body.belluma-header-compact .belluma-wordmark,
body.belluma-header-compact .site-title,
body.belluma-header-compact .site-title a {
    font-size: 1.5rem !important;
    transition: font-size 0.25s ease;
}
body.belluma-header-compact .site-header-main-inner-wrap {
    padding-top: 0.25rem !important;
    padding-bottom: 0.25rem !important;
    transition: padding 0.25s ease;
}

/* Tight the header row + kill any extra spacing between header and hero */
.site-header-main-inner-wrap,
.site-header-main .site-header-row-container-inner,
.site-main-header-wrap {
    padding-top: 0.25rem !important;
    padding-bottom: 0.25rem !important;
}
.site-content,
.content-wrap,
.content-area,
article.type-page > .entry-content,
article.type-page {
    margin-top: 0 !important;
    padding-top: 0 !important;
}
.single-page-content article,
body.home .site-content > .content-wrap {
    padding-top: 0 !important;
}
/* Some Kadence layouts wrap pages in a container with top spacing */
body.home.single-page-layout-fullwidth .content-wrap,
body.home .content-wrap {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}
.wp-site-blocks { padding-top: 0 !important; }

/* Kadence ships a default 5rem top margin + 2rem wrapper padding + card
   shadow on .content-area/.entry-content-wrap. That's why the homepage
   had a large gap between the header and the hero photo. Strip those
   on the front page only. */
body.home .content-area,
body.home.page .content-area {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}
body.home .entry-content-wrap,
body.home article.entry {
    padding: 0 !important;
    box-shadow: none !important;
}
body.home .entry-content {
    margin-top: 0 !important;
}
.site-header,
.site-title,
.site-title a,
.belluma-wordmark,
.site-header-main-inner-wrap {
    transition: all 0.25s ease;
}

/* ============================================================
   Header + main navigation
   ============================================================ */
.site-branding .belluma-wordmark {
    display: inline-block;
    padding: 0.25rem 0;
}

.site-header {
    border-bottom: 1px solid var(--bl-grey-200);
    position: relative;
    z-index: 100;
}

/* Prevent overflow cuts so the megamenu can bleed full-width below */
#masthead, .site-header, .site-header-main {
    overflow: visible !important;
}
#masthead .site-header-row-container,
#masthead .site-header-row,
.main-navigation,
.main-navigation ul.menu {
    overflow: visible !important;
}

/* Primary menu links — larger target, premium spacing */
#primary-menu > li > a,
.main-navigation ul.menu > li > a {
    font-family: var(--bl-font-body) !important;
    font-size: 0.86rem !important;
    font-weight: 600 !important;
    letter-spacing: 0.09em !important;
    text-transform: uppercase !important;
    color: var(--bl-black) !important;
    padding: 1.25rem 1rem !important;
    position: relative;
    transition: color 0.2s ease !important;
}
#primary-menu > li > a::after,
.main-navigation ul.menu > li > a::after {
    content: '';
    position: absolute;
    left: 1rem;
    right: 1rem;
    bottom: 0.75rem;
    height: 1.5px;
    background: var(--bl-accent-strong);
    transform: scaleX(0);
    transform-origin: center;
    transition: transform 0.25s ease;
}
#primary-menu > li:hover > a::after,
.main-navigation ul.menu > li:hover > a::after {
    transform: scaleX(1);
}
#primary-menu > li:hover > a,
.main-navigation ul.menu > li:hover > a {
    color: var(--bl-accent-strong) !important;
}

/* Chevron indicator on items with mega menu */
.belluma-menu-with-drop::after {
    content: '▾';
    display: inline-block;
    margin-left: 0.3rem;
    font-size: 0.7em;
    opacity: 0.5;
    transition: transform 0.2s ease, opacity 0.2s ease;
}
#primary-menu > li:hover .belluma-menu-with-drop::after,
.main-navigation ul.menu > li:hover .belluma-menu-with-drop::after {
    opacity: 1;
    transform: rotate(180deg);
}

/* Mega menu panel */
#primary-menu > li.has-megamenu,
.main-navigation ul.menu > li.has-megamenu {
    position: static;
}
.belluma-megamenu {
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    background: var(--bl-white);
    border-top: 1px solid var(--bl-grey-200);
    box-shadow: 0 24px 48px -12px rgba(15, 15, 15, 0.18);
    /* Pull the panel up by 8px and pad by 8px so there's a seamless hover
       bridge between the nav link and the panel — mouse never leaves the
       :hover region while traversing. */
    margin-top: -8px;
    padding: calc(2.5rem + 8px) 0 3rem;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.2s ease, visibility 0.2s;
    z-index: 99;
    pointer-events: none;
}
li.has-megamenu:hover > .belluma-megamenu,
li.has-megamenu:focus-within > .belluma-megamenu {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    /* Small delay before closing so micro-movements don't kill hover */
    transition: opacity 0.2s ease, visibility 0.2s;
}
/* Invisible "bridge" covers the small vertical gap between the nav link
   and the panel — keeps the mouse inside the hover boundary. */
li.has-megamenu::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    height: 12px;
    z-index: 98;
    pointer-events: none;
}
li.has-megamenu:hover::after {
    pointer-events: auto;
}
.belluma-megamenu__inner {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 2rem;
    display: grid;
    grid-template-columns: 1fr 280px;
    gap: 3rem;
    align-items: stretch;
}
.belluma-megamenu__cols {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 2rem;
}
.belluma-megamenu__col {
    min-width: 0;
}
.belluma-megamenu__head {
    display: block;
    font-family: var(--bl-font-display);
    font-size: 1rem;
    font-weight: 700;
    color: var(--bl-black);
    text-decoration: none;
    margin-bottom: 0.85rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid var(--bl-grey-200);
    letter-spacing: -0.005em;
    transition: color 0.2s ease;
}
.belluma-megamenu__head:hover {
    color: var(--bl-accent-strong);
}
.belluma-megamenu__sub {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}
.belluma-megamenu__sub li a {
    display: block;
    padding: 0.2rem 0;
    font-size: 0.85rem;
    font-weight: 400;
    color: var(--bl-grey-600);
    text-decoration: none;
    letter-spacing: 0;
    text-transform: none;
    transition: color 0.15s ease, transform 0.15s ease;
}
.belluma-megamenu__sub li a:hover {
    color: var(--bl-accent-strong);
    transform: translateX(2px);
}
.belluma-megamenu__promo {
    background: linear-gradient(135deg, var(--bl-accent-soft) 0%, var(--bl-grey-50) 100%);
    border-radius: var(--bl-radius-md);
    padding: 1.75rem 1.5rem;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}
.belluma-megamenu__promo-kicker {
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--bl-accent-strong);
    margin-bottom: 0.75rem;
}
.belluma-megamenu__promo h4 {
    font-family: var(--bl-font-display);
    font-size: 1.25rem;
    color: var(--bl-black);
    margin: 0 0 0.75rem 0;
}
.belluma-megamenu__promo p {
    font-size: 0.85rem;
    color: var(--bl-grey-600);
    line-height: 1.5;
    margin: 0 0 1.25rem 0;
}
.belluma-megamenu__promo-cta {
    display: inline-block;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--bl-black);
    text-decoration: none;
    padding: 0.55rem 1rem;
    background: var(--bl-white);
    border: 1.5px solid var(--bl-black);
    border-radius: var(--bl-radius-sm);
    text-align: center;
    transition: background 0.2s ease, color 0.2s ease;
    align-self: flex-start;
}
.belluma-megamenu__promo-cta:hover {
    background: var(--bl-black);
    color: var(--bl-white);
}

@media (max-width: 1024px) {
    .belluma-megamenu__inner { grid-template-columns: 1fr; gap: 1.5rem; }
    .belluma-megamenu__promo { display: none; }
}

/* Primary nav */
#site-navigation ul#primary-menu {
    display: flex;
    gap: 2.5rem;
    list-style: none;
    margin: 0;
    padding: 0;
    align-items: center;
}
#site-navigation ul#primary-menu li.menu-item a {
    font-family: var(--bl-font-body);
    font-size: 0.95rem;
    font-weight: 500;
    letter-spacing: 0.02em;
    color: var(--bl-black);
    text-decoration: none;
    padding: 0.5rem 0;
    position: relative;
    transition: color 0.2s ease;
}
#site-navigation ul#primary-menu li.menu-item a::after {
    content: '';
    position: absolute;
    left: 0; right: 0; bottom: -4px;
    height: 2px;
    background: var(--bl-accent-strong);
    transform: scaleX(0);
    transform-origin: center;
    transition: transform 0.25s ease;
}
#site-navigation ul#primary-menu li.menu-item a:hover {
    color: var(--bl-accent-strong);
}
#site-navigation ul#primary-menu li.menu-item a:hover::after {
    transform: scaleX(1);
}

/* Current page highlight */
#site-navigation ul#primary-menu li.current-menu-item a,
#site-navigation ul#primary-menu li.current_page_item a {
    color: var(--bl-accent-strong);
    font-weight: 600;
}
#site-navigation ul#primary-menu li.current-menu-item a::after,
#site-navigation ul#primary-menu li.current_page_item a::after {
    transform: scaleX(1);
}

/* Mobile menu */
@media (max-width: 768px) {
    #site-navigation ul#primary-menu { gap: 1.5rem; }
    #mobile-site-navigation ul#mobile-menu {
        list-style: none;
        padding: 2rem;
    }
    #mobile-site-navigation ul#mobile-menu li a {
        display: block;
        padding: 1rem 0;
        font-size: 1.1rem;
        font-weight: 500;
        border-bottom: 1px solid var(--bl-grey-200);
        color: var(--bl-black);
        text-decoration: none;
    }
}

/* ============================================================
   Product grid (shop + category pages)
   ============================================================ */
.woocommerce ul.products li.product {
    text-align: center;
    margin-bottom: 3rem !important;
    position: relative;
    display: flex !important;
    flex-direction: column !important;
    padding: 0.75rem 0.5rem 1.25rem !important;
    padding-bottom: 1.25rem !important;
}
.woocommerce ul.products li.product > a.woocommerce-loop-product__link {
    display: flex;
    flex-direction: column;
    flex: 1;
    gap: 0.25rem;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
    flex: 1 1 auto;
    display: flex;
    align-items: flex-start;
    justify-content: center;
}
.woocommerce ul.products li.product .price {
    margin-top: auto;
}

/* Kadence wraps product cards in .product-details + .product-action-wrap
   which can implicitly become positioning contexts and trap the wishlist
   heart at the bottom of the card. Force every inner wrapper to static
   so the absolute heart climbs up to li.product as its reference. */
.woocommerce ul.products li.product,
ul.products li.product {
    position: relative !important;
}
.woocommerce ul.products li.product .product-details,
.woocommerce ul.products li.product .entry-content-wrap,
.woocommerce ul.products li.product .product-action-wrap,
.woocommerce ul.products li.product .product-excerpt {
    position: static !important;
}

/* Wishlist heart — pin it to the TOP-LEFT of the card, above the image. */
ul.products li.product > .tinv-wraper,
ul.products li.product > .tinvwl-after-add-to-cart,
ul.products li.product .tinv-wraper.belluma-heart-relocated,
ul.products li.product .yith-wcwl-add-to-wishlist {
    position: absolute !important;
    top: 0.65rem !important;
    right: 0.65rem !important;
    left: auto !important;
    bottom: auto !important;
    z-index: 10 !important;
    margin: 0 !important;
    padding: 0 !important;
    background: rgba(255, 255, 255, 0.96) !important;
    border-radius: 99px !important;
    box-shadow: 0 2px 10px rgba(15, 15, 15, 0.12) !important;
    width: 36px !important;
    height: 36px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: transform 0.15s ease, background 0.2s ease !important;
    order: unset !important;
}
ul.products li.product .tinv-wraper:hover {
    transform: scale(1.08);
}
ul.products li.product .tinv-wraper a,
ul.products li.product .tinvwl_add_to_wishlist_button {
    color: var(--bl-accent-strong) !important;
    font-size: 1rem !important;
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
    border: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    height: 100% !important;
}
/* Hide the clear div + wishlist text */
ul.products li.product .tinv-wishlist-clear { display: none !important; }
ul.products li.product .tinvwl_add_to_wishlist-text { display: none !important; }

/* Sale badge goes to the TOP-LEFT (wishlist moved to top-right) */
ul.products li.product .onsale {
    position: absolute !important;
    top: 0.6rem !important;
    left: 0.6rem !important;
    right: auto !important;
    z-index: 3 !important;
    margin: 0 !important;
    background: var(--bl-accent-strong) !important;
    color: var(--bl-white) !important;
    border-radius: 99px !important;
    font-weight: 600 !important;
    font-size: 0.75rem !important;
    letter-spacing: 0.04em !important;
    padding: 0.35rem 0.75rem !important;
    min-height: auto !important;
    min-width: auto !important;
    line-height: 1 !important;
}

/* CTA button sits at the bottom of the card in normal flex flow so it
   never overlaps the image when the title is short, and is always
   aligned across the grid because the title/price area flexes. */
.woocommerce ul.products li.product .product-action-wrap {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    width: 100% !important;
    text-align: center !important;
}
body.woocommerce ul.products li.product > .button,
body.woocommerce ul.products li.product > .added_to_cart,
body.woocommerce ul.products li.product a.button.add_to_cart_button,
body.woocommerce ul.products li.product a.button.product_type_variable,
body.woocommerce ul.products li.product a.button.product_type_simple,
body.woocommerce ul.products li.product .product-action-wrap > a.button,
body.woocommerce ul.products li.product .product-action-wrap a.button {
    position: static !important;
    display: block !important;
    margin: 0.75rem auto 0 !important;
    padding: 0.6rem 0.5rem !important;
    font-size: 0.75rem !important;
    line-height: 1.2 !important;
    letter-spacing: 0 !important;
    white-space: nowrap !important;
    width: auto !important;
    max-width: calc(100% - 0.5rem) !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    overflow: visible !important;
    text-overflow: clip !important;
    text-align: center !important;
    align-self: center !important;
    float: none !important;
    order: 10;
}
.woocommerce ul.products li.product a.button:hover {
    transform: translateY(-2px) !important;
}


.woocommerce ul.products li.product .woocommerce-loop-product__link {
    display: block;
    transition: transform 0.3s ease;
}

.woocommerce ul.products li.product img {
    border-radius: var(--bl-radius-md);
    background: var(--bl-grey-50);
    transition: box-shadow 0.3s ease;
}

.woocommerce ul.products li.product:hover img {
    box-shadow: var(--bl-shadow-md);
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
    font-family: var(--bl-font-body) !important;
    font-size: 0.95rem !important;
    font-weight: 500 !important;
    line-height: 1.4;
    color: var(--bl-black);
    padding: 1rem 0 0.5rem !important;
    min-height: 3rem;
}

.woocommerce ul.products li.product .price {
    color: var(--bl-accent-strong) !important;
    font-weight: 700 !important;
    font-size: 1.05rem !important;
}

.woocommerce ul.products li.product .price del {
    color: var(--bl-grey-400) !important;
    font-weight: 400 !important;
    margin-right: 0.5rem;
}

.belluma-price-from {
    color: var(--bl-grey-600);
    font-weight: 400;
    font-size: 0.85em;
    margin-right: 0.3rem;
    letter-spacing: 0.02em;
}

/* Shade chips on archive cards (Notino-style) — single row, 4 max + "+N" pill */
.belluma-shade-row {
    display: flex;
    gap: 0.3rem;
    justify-content: center;
    flex-wrap: nowrap;
    margin: 0.6rem 0 0.4rem;
    align-items: center;
    padding: 0 0.5rem;
    position: relative;
    z-index: 1;
    overflow: hidden;
}
.belluma-shade-chip {
    display: block;
    width: 24px;
    height: 24px;
    flex: 0 0 24px;
    border-radius: 50%;
    background-size: cover;
    background-position: center;
    background-color: var(--bl-grey-100);
    border: 1.5px solid var(--bl-white);
    box-shadow: 0 0 0 1px var(--bl-grey-200);
    cursor: pointer;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.belluma-shade-chip:hover {
    transform: scale(1.15);
    box-shadow: 0 0 0 2px var(--bl-accent-strong);
}
.belluma-shade-more {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.7rem;
    font-weight: 600;
    color: var(--bl-grey-700);
    background: var(--bl-grey-100);
    border: 1px solid var(--bl-grey-200);
    height: 24px;
    min-width: 28px;
    padding: 0 0.4rem;
    border-radius: 99px;
    letter-spacing: 0.02em;
    flex: 0 0 auto;
    white-space: nowrap;
}
.sr-only {
    position: absolute;
    width: 1px; height: 1px;
    padding: 0; margin: -1px;
    overflow: hidden;
    clip: rect(0,0,0,0);
    border: 0;
}

/* ============================================================
   Legal / info / contact pages — readable editorial typography
   ============================================================ */
.belluma-legal {
    max-width: 820px;
    margin: 3rem auto 4rem;
    padding: 0 2rem;
    color: var(--bl-black);
    font-size: 1rem;
    line-height: 1.7;
}
.belluma-legal-meta {
    color: var(--bl-grey-400);
    font-size: 0.82rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    margin-bottom: 2rem;
}
.belluma-legal-note {
    background: var(--bl-accent-soft);
    border-left: 3px solid var(--bl-accent-strong);
    padding: 1rem 1.25rem;
    border-radius: 6px;
    font-size: 0.92rem;
    color: var(--bl-grey-600);
    margin: 1.5rem 0 2.5rem;
}
.belluma-legal h2 {
    font-family: var(--bl-font-display);
    font-size: clamp(1.35rem, 2.5vw, 1.8rem);
    color: var(--bl-black);
    margin: 3rem 0 1rem 0;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid var(--bl-grey-200);
    letter-spacing: -0.005em;
}
.belluma-legal h3 {
    font-family: var(--bl-font-display);
    font-size: 1.15rem;
    color: var(--bl-black);
    margin: 1.5rem 0 0.5rem 0;
    font-weight: 700;
}
.belluma-legal p { color: var(--bl-grey-600); margin: 0 0 1rem 0; }
.belluma-legal ul, .belluma-legal ol { color: var(--bl-grey-600); padding-left: 1.5rem; margin: 0 0 1.5rem 0; }
.belluma-legal ul li, .belluma-legal ol li { margin-bottom: 0.5rem; line-height: 1.7; }
.belluma-legal a {
    color: var(--bl-accent-strong);
    text-decoration: underline;
    text-decoration-color: rgba(217, 138, 160, 0.35);
    text-underline-offset: 3px;
    transition: text-decoration-color 0.2s ease;
}
.belluma-legal a:hover { text-decoration-color: currentColor; }
.belluma-legal code {
    background: var(--bl-grey-100);
    border-radius: 3px;
    padding: 1px 6px;
    font-size: 0.85em;
    color: var(--bl-accent-strong);
}

/* About page */
.belluma-about-lede {
    font-family: var(--bl-font-display);
    font-size: clamp(1.35rem, 2.5vw, 1.8rem);
    line-height: 1.4;
    color: var(--bl-black);
    font-weight: 400;
    margin: 0 0 2.5rem 0;
    font-style: italic;
}

/* Contact grid */
.belluma-contact-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 1.5rem;
    margin: 2rem 0 3rem;
}
.belluma-contact-block {
    background: var(--bl-grey-50);
    border: 1px solid var(--bl-grey-200);
    border-radius: var(--bl-radius-md);
    padding: 1.75rem 1.5rem;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.belluma-contact-block:hover {
    transform: translateY(-3px);
    box-shadow: var(--bl-shadow-md);
    border-color: var(--bl-accent-strong);
}
.belluma-contact-block h3 {
    font-family: var(--bl-font-display);
    font-size: 1rem;
    font-weight: 700;
    color: var(--bl-black);
    margin: 0 0 0.5rem 0;
    border: 0;
    padding: 0;
}
.belluma-contact-block p {
    font-size: 1.1rem;
    color: var(--bl-black);
    margin: 0 0 0.35rem 0;
    font-weight: 500;
}
.belluma-contact-block small {
    color: var(--bl-grey-400);
    font-size: 0.78rem;
    letter-spacing: 0.02em;
}

/* FAQ details */
.belluma-legal--faq details {
    border-bottom: 1px solid var(--bl-grey-200);
    padding: 1.1rem 0;
}
.belluma-legal--faq summary {
    cursor: pointer;
    list-style: none;
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-weight: 600;
    color: var(--bl-black);
    font-size: 1.02rem;
    transition: color 0.2s ease;
}
.belluma-legal--faq summary::marker,
.belluma-legal--faq summary::-webkit-details-marker { display: none; }
.belluma-legal--faq summary::after {
    content: '+';
    font-size: 1.4rem;
    color: var(--bl-accent-strong);
    font-weight: 300;
    transition: transform 0.3s ease;
}
.belluma-legal--faq details[open] summary::after {
    transform: rotate(45deg);
}
.belluma-legal--faq summary:hover {
    color: var(--bl-accent-strong);
}
.belluma-legal--faq details p {
    margin: 0.75rem 0 0 0;
    padding-left: 0;
    color: var(--bl-grey-600);
}

/* ============================================================
   My Account — premium dashboard styling
   ============================================================ */
.woocommerce-account .woocommerce {
    max-width: 1280px;
    margin: 3rem auto 4rem;
    padding: 0 2rem;
}
.woocommerce-account .woocommerce-MyAccount-navigation {
    background: var(--bl-grey-50);
    border-radius: var(--bl-radius-md);
    padding: 1.5rem 1rem;
    border: 1px solid var(--bl-grey-200);
}
.woocommerce-account .woocommerce-MyAccount-navigation ul {
    list-style: none;
    padding: 0;
    margin: 0;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li {
    border-bottom: 1px solid var(--bl-grey-200);
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li:last-child { border-bottom: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation ul li a {
    display: block;
    padding: 0.85rem 1rem;
    color: var(--bl-grey-600);
    text-decoration: none;
    font-weight: 500;
    font-size: 0.92rem;
    transition: color 0.2s ease, padding-left 0.25s ease;
    border-radius: 4px;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li a:hover {
    color: var(--bl-accent-strong);
    padding-left: 1.3rem;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a {
    background: var(--bl-white);
    color: var(--bl-black);
    font-weight: 700;
    box-shadow: 0 1px 3px rgba(15,15,15,0.06);
}
.woocommerce-account .woocommerce-MyAccount-content {
    background: var(--bl-white);
}
.woocommerce-account .woocommerce-MyAccount-content h2,
.woocommerce-account .woocommerce-MyAccount-content h3 {
    font-family: var(--bl-font-display);
    color: var(--bl-black);
}

/* Orders table */
.woocommerce-account .woocommerce-orders-table {
    border-collapse: separate;
    border-spacing: 0;
    width: 100%;
}
.woocommerce-account .woocommerce-orders-table thead th {
    background: var(--bl-grey-50);
    padding: 1rem;
    font-size: 0.75rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--bl-grey-600);
    border-bottom: 2px solid var(--bl-grey-200);
    text-align: left;
}
.woocommerce-account .woocommerce-orders-table tbody td {
    padding: 1rem;
    border-bottom: 1px solid var(--bl-grey-200);
    color: var(--bl-black);
}
.woocommerce-account .woocommerce-orders-table .button,
.woocommerce-account .woocommerce-MyAccount-content .button {
    background: var(--bl-black) !important;
    color: var(--bl-white) !important;
    padding: 0.55rem 1.15rem !important;
    font-size: 0.85rem !important;
    border-radius: var(--bl-radius-sm) !important;
    font-weight: 600 !important;
}
.woocommerce-account .woocommerce-orders-table .button:hover,
.woocommerce-account .woocommerce-MyAccount-content .button:hover {
    background: var(--bl-accent-strong) !important;
}

/* Order status pills */
.woocommerce-account .woocommerce-orders-table .order-status {
    padding: 0.3rem 0.75rem;
    border-radius: 99px;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    display: inline-block;
    background: var(--bl-grey-100);
    color: var(--bl-grey-600);
}
.woocommerce-account .woocommerce-orders-table .status-completed {
    background: #D1FAE5; color: #059669;
}
.woocommerce-account .woocommerce-orders-table .status-processing {
    background: #FEF3C7; color: #D97706;
}
.woocommerce-account .woocommerce-orders-table .status-cancelled {
    background: #FEE2E2; color: #DC2626;
}

/* Login + register forms */
.woocommerce-form-login,
.woocommerce-form-register,
.edit-account {
    max-width: 520px;
    margin: 2rem auto;
    padding: 2.5rem 2rem;
    background: var(--bl-white);
    border: 1px solid var(--bl-grey-200);
    border-radius: var(--bl-radius-md);
    box-shadow: 0 2px 12px rgba(15, 15, 15, 0.04);
}
.woocommerce-form-login h2,
.woocommerce-form-register h2 {
    font-family: var(--bl-font-display);
    text-align: center;
    font-size: 1.5rem;
    margin-bottom: 1.5rem;
}
.woocommerce-form-login-submit,
.woocommerce-form-register-submit {
    width: 100%;
    padding: 0.9rem !important;
    font-size: 1rem !important;
    font-weight: 700 !important;
    background: var(--bl-black) !important;
    color: var(--bl-white) !important;
    border-radius: var(--bl-radius-sm) !important;
    border: 0 !important;
    transition: all 0.2s ease !important;
}
.woocommerce-form-login-submit:hover,
.woocommerce-form-register-submit:hover {
    background: var(--bl-accent-strong) !important;
    transform: translateY(-1px);
}

/* Inputs inside account pages */
.woocommerce-account input[type="text"],
.woocommerce-account input[type="email"],
.woocommerce-account input[type="password"],
.woocommerce-account input[type="tel"],
.woocommerce-account select,
.woocommerce-account textarea {
    width: 100%;
    padding: 0.8rem 1rem !important;
    border: 1.5px solid var(--bl-grey-200) !important;
    border-radius: var(--bl-radius-sm) !important;
    font-family: var(--bl-font-body) !important;
    font-size: 0.95rem !important;
    transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
    background: var(--bl-white);
}
.woocommerce-account input:focus,
.woocommerce-account select:focus,
.woocommerce-account textarea:focus {
    outline: 0 !important;
    border-color: var(--bl-accent-strong) !important;
    box-shadow: 0 0 0 3px rgba(217, 138, 160, 0.15) !important;
}
.woocommerce-account label {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--bl-black);
    margin-bottom: 0.4rem;
    display: block;
}

/* ============================================================
   Cart + Checkout — editorial hero + reassurance row + block styling
   ============================================================ */
.belluma-checkout-hero {
    background: linear-gradient(180deg, var(--bl-rose-soft) 0%, var(--bl-white) 100%);
    padding: 3.5rem 0 2.5rem;
    text-align: center;
    margin-bottom: 2rem;
}
.belluma-checkout-hero__kicker {
    display: inline-block;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--bl-accent-strong);
    margin-bottom: 0.85rem;
}
.belluma-checkout-hero__title {
    font-family: var(--bl-font-display);
    font-size: clamp(1.75rem, 4vw, 2.75rem);
    line-height: 1.15;
    color: var(--bl-black);
    margin: 0 0 0.9rem 0;
    letter-spacing: -0.01em;
}
.belluma-checkout-hero__lede {
    color: var(--bl-grey-600);
    font-size: 1rem;
    max-width: 580px;
    margin: 0 auto 1.75rem;
    line-height: 1.6;
}
.belluma-checkout-hero__progress {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    font-size: 0.85rem;
    color: var(--bl-grey-400);
    font-weight: 500;
    padding: 0.6rem 1.5rem;
    background: var(--bl-white);
    border: 1px solid var(--bl-grey-200);
    border-radius: 99px;
    flex-wrap: wrap;
    justify-content: center;
}
.belluma-checkout-hero__step.is-active {
    color: var(--bl-black);
    font-weight: 700;
}
.belluma-checkout-hero__sep { opacity: 0.35; }

/* Reassurance row below the cart/checkout block */
.belluma-checkout-trust {
    padding: 3rem 0 4rem;
    background: var(--bl-white);
    border-top: 1px solid var(--bl-grey-200);
    margin-top: 2rem;
}
.belluma-checkout-trust__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 1.5rem;
}
.belluma-checkout-trust__grid > div {
    padding: 1.25rem 1rem;
    text-align: center;
}
.belluma-checkout-trust__grid strong {
    display: block;
    color: var(--bl-black);
    font-size: 1rem;
    margin-bottom: 0.25rem;
    font-weight: 600;
}
.belluma-checkout-trust__grid span {
    color: var(--bl-grey-600);
    font-size: 0.82rem;
    line-height: 1.5;
}

/* Cart / Checkout block — tighten layout, premium typography */
.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 2rem;
}
.wc-block-cart__main,
.wc-block-checkout__main {
    padding-right: 1.5rem;
}
.wc-block-cart__sidebar,
.wc-block-checkout__sidebar {
    background: var(--bl-grey-50);
    border-radius: var(--bl-radius-md);
    padding: 2rem 1.75rem !important;
    border: 1px solid var(--bl-grey-200);
    position: sticky;
    top: 100px;
}

/* Titles */
.wp-block-woocommerce-cart h1,
.wp-block-woocommerce-checkout h1,
.wc-block-cart-items__header,
.wc-block-components-title {
    font-family: var(--bl-font-display) !important;
    color: var(--bl-black) !important;
    letter-spacing: -0.01em !important;
}

/* Cart item rows */
.wc-block-cart-items tr.wc-block-cart-items__row {
    border-top: 1px solid var(--bl-grey-200) !important;
}
.wc-block-cart-items .wc-block-cart-items__row td {
    padding: 1.25rem 0.5rem !important;
    vertical-align: top !important;
}
.wc-block-cart-item__image img,
.wc-block-components-product-image img {
    border-radius: var(--bl-radius-sm) !important;
    background: var(--bl-grey-50);
    max-width: 90px !important;
}
.wc-block-cart-items__row .wc-block-components-product-name,
.wc-block-cart-item__product a {
    font-weight: 600 !important;
    color: var(--bl-black) !important;
    text-decoration: none !important;
    line-height: 1.35 !important;
    font-size: 0.95rem !important;
}
.wc-block-cart-items__row .wc-block-components-product-name:hover {
    color: var(--bl-accent-strong) !important;
}
.wc-block-cart-item__remove-link {
    color: var(--bl-grey-400) !important;
    font-size: 0.8rem !important;
    text-decoration: underline !important;
    text-underline-offset: 3px !important;
}
.wc-block-cart-item__remove-link:hover {
    color: var(--bl-accent-strong) !important;
}

/* Quantity selector */
.wc-block-components-quantity-selector {
    border: 1.5px solid var(--bl-grey-200) !important;
    border-radius: var(--bl-radius-sm) !important;
    overflow: hidden;
    display: inline-flex !important;
    background: var(--bl-white);
}
.wc-block-components-quantity-selector input {
    font-weight: 600 !important;
    color: var(--bl-black) !important;
    min-width: 44px !important;
    border: 0 !important;
    background: transparent !important;
}
.wc-block-components-quantity-selector__button {
    width: 36px !important;
    height: 100%;
    background: transparent !important;
    color: var(--bl-black) !important;
    font-size: 1.1rem !important;
    cursor: pointer;
    transition: background 0.2s ease;
    border: 0 !important;
}
.wc-block-components-quantity-selector__button:hover {
    background: var(--bl-grey-100) !important;
    color: var(--bl-accent-strong) !important;
}

/* Prices */
.wc-block-components-formatted-money-amount,
.wc-block-cart-items__row .wc-block-components-product-price {
    font-weight: 600 !important;
    color: var(--bl-black) !important;
}
.wc-block-cart-item__total .wc-block-components-formatted-money-amount {
    font-size: 1.05rem !important;
}

/* Totals section */
.wc-block-components-totals-wrapper {
    border-top: 1px solid var(--bl-grey-200) !important;
    padding: 1rem 0 !important;
}
.wc-block-components-totals-item {
    display: flex !important;
    justify-content: space-between !important;
    padding: 0.5rem 0 !important;
    color: var(--bl-grey-600) !important;
    font-size: 0.9rem !important;
}
.wc-block-components-totals-footer-item {
    border-top: 2px solid var(--bl-black) !important;
    padding-top: 1rem !important;
    margin-top: 0.75rem !important;
}
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
    font-family: var(--bl-font-display) !important;
    font-weight: 700 !important;
    font-size: 1.1rem !important;
    color: var(--bl-black) !important;
}
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
    font-family: var(--bl-font-display) !important;
    font-weight: 700 !important;
    font-size: 1.5rem !important;
    color: var(--bl-accent-strong) !important;
}

/* Coupon accordion */
.wc-block-components-panel__button,
.wc-block-components-totals-coupon__button {
    color: var(--bl-black) !important;
    font-weight: 600 !important;
    font-size: 0.88rem !important;
}
.wc-block-components-panel__button:hover {
    color: var(--bl-accent-strong) !important;
}

/* Checkout primary CTA */
.wc-block-components-checkout-place-order-button,
.wc-block-cart__submit-button,
.wc-block-components-main a.wc-block-components-main,
.wp-block-button .wc-block-cart__submit-container a {
    background: var(--bl-black) !important;
    color: var(--bl-white) !important;
    border: 0 !important;
    border-radius: var(--bl-radius-sm) !important;
    padding: 1.1rem 2rem !important;
    font-size: 1rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.03em !important;
    text-transform: none !important;
    transition: all 0.25s ease !important;
    width: 100% !important;
    min-height: 52px !important;
}
.wc-block-components-checkout-place-order-button:hover,
.wc-block-cart__submit-button:hover {
    background: var(--bl-accent-strong) !important;
    transform: translateY(-2px);
    box-shadow: var(--bl-shadow-md);
}

/* Empty cart state */
.wc-block-cart__empty-cart__title,
.wc-block-checkout-empty__title {
    font-family: var(--bl-font-display) !important;
    color: var(--bl-black) !important;
}
.with-empty-cart-icon svg {
    fill: var(--bl-accent-strong) !important;
    opacity: 0.6;
}

/* Form fields on checkout */
.wc-block-components-text-input input,
.wc-block-components-text-input textarea,
.wc-block-components-combobox input,
.wc-block-components-select select {
    border: 1.5px solid var(--bl-grey-200) !important;
    border-radius: var(--bl-radius-sm) !important;
    font-family: var(--bl-font-body) !important;
    transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
}
.wc-block-components-text-input input:focus,
.wc-block-components-text-input textarea:focus,
.wc-block-components-select select:focus {
    border-color: var(--bl-accent-strong) !important;
    box-shadow: 0 0 0 3px rgba(217, 138, 160, 0.15) !important;
    outline: 0 !important;
}

/* Responsive */
@media (max-width: 960px) {
    .wc-block-cart__sidebar,
    .wc-block-checkout__sidebar {
        position: static;
    }
    .wc-block-cart__main,
    .wc-block-checkout__main {
        padding-right: 0;
    }
}

/* ============================================================
   Archive hero banner — editorial, full-bleed with decorative orbs
   ============================================================ */
.belluma-archive-hero {
    position: relative;
    padding: clamp(3rem, 7vw, 5.5rem) 1.5rem clamp(2.5rem, 5vw, 4rem);
    background:
        radial-gradient(120% 60% at 50% 0%, var(--bl-accent-soft) 0%, var(--bl-white) 70%);
    overflow: hidden;
    text-align: center;
    isolation: isolate;
}
.belluma-archive-hero__orb {
    position: absolute;
    border-radius: 50%;
    filter: blur(60px);
    opacity: 0.55;
    pointer-events: none;
    z-index: 0;
}
.belluma-archive-hero__orb--a {
    width: 420px; height: 420px;
    top: -120px; left: -100px;
    background: radial-gradient(circle, rgba(217, 138, 160, 0.45) 0%, transparent 70%);
}
.belluma-archive-hero__orb--b {
    width: 360px; height: 360px;
    top: -60px; right: -80px;
    background: radial-gradient(circle, rgba(201, 169, 97, 0.35) 0%, transparent 70%);
}
.belluma-archive-hero__orb--c {
    width: 280px; height: 280px;
    bottom: -120px; left: 30%;
    background: radial-gradient(circle, rgba(26, 36, 56, 0.18) 0%, transparent 70%);
}
.belluma-archive-hero .belluma-container { position: relative; z-index: 1; }

.belluma-archive-hero__crumbs {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.78rem;
    color: var(--bl-grey-600);
    letter-spacing: 0.04em;
    margin-bottom: 1.5rem;
    flex-wrap: wrap;
    justify-content: center;
}
.belluma-archive-hero__crumbs a {
    color: var(--bl-grey-600);
    text-decoration: none;
    transition: color 0.15s ease;
}
.belluma-archive-hero__crumbs a:hover { color: var(--bl-black); }
.belluma-archive-hero__crumbs span[aria-current] {
    color: var(--bl-black);
    font-weight: 600;
}
.belluma-archive-hero__crumb-sep { opacity: 0.5; }

.belluma-archive-hero__kicker {
    display: inline-block;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: var(--bl-accent-strong);
    margin-bottom: 0.8rem;
}
.belluma-archive-hero__title {
    font-family: var(--bl-font-display);
    font-size: clamp(2.2rem, 6vw, 4.2rem);
    font-weight: 700;
    color: var(--bl-black);
    margin: 0 0 1.1rem 0;
    letter-spacing: -0.02em;
    line-height: 1.05;
}
.belluma-archive-hero__lede {
    color: var(--bl-grey-700);
    font-size: clamp(0.98rem, 1.4vw, 1.1rem);
    line-height: 1.65;
    max-width: 680px;
    margin: 0 auto 1.75rem;
}

.belluma-archive-hero__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    justify-content: center;
    margin: 0 auto 2rem;
    max-width: 920px;
}
.belluma-archive-hero__chip {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.55rem 1rem;
    background: rgba(255, 255, 255, 0.85);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border: 1px solid var(--bl-grey-200);
    border-radius: 99px;
    font-size: 0.85rem;
    font-weight: 500;
    color: var(--bl-black);
    text-decoration: none;
    transition: all 0.2s ease;
}
.belluma-archive-hero__chip span {
    font-size: 0.72rem;
    color: var(--bl-grey-600);
    background: var(--bl-grey-50);
    padding: 0.1rem 0.45rem;
    border-radius: 99px;
    font-weight: 600;
}
.belluma-archive-hero__chip:hover {
    background: var(--bl-black);
    color: var(--bl-white);
    border-color: var(--bl-black);
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(0,0,0,0.12);
}
.belluma-archive-hero__chip:hover span { background: rgba(255,255,255,0.18); color: var(--bl-white); }

.belluma-archive-hero__stats {
    display: inline-flex;
    gap: clamp(1.5rem, 4vw, 3rem);
    padding-top: 1.5rem;
    border-top: 1px solid var(--bl-grey-200);
    flex-wrap: wrap;
    justify-content: center;
}
.belluma-archive-hero__stats > div {
    display: flex; flex-direction: column; gap: 0.25rem;
    min-width: 80px;
}
.belluma-archive-hero__stats strong {
    font-family: var(--bl-font-display);
    font-size: clamp(1.4rem, 2.2vw, 1.85rem);
    font-weight: 700;
    color: var(--bl-black);
    line-height: 1;
}
.belluma-archive-hero__stats span {
    font-size: 0.7rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--bl-grey-600);
}
body.belluma-audience-men .belluma-archive-hero {
    background: radial-gradient(120% 60% at 50% 0%, var(--bl-navy-soft) 0%, var(--bl-white) 70%);
}
body.belluma-audience-men .belluma-archive-hero__orb--a {
    background: radial-gradient(circle, rgba(26, 36, 56, 0.35) 0%, transparent 70%);
}
body.belluma-audience-women .belluma-archive-hero {
    background: radial-gradient(120% 60% at 50% 0%, var(--bl-rose-soft) 0%, var(--bl-white) 70%);
}

/* Hide WC's default top toolbar — we render our own. The bottom one
   (after the loop) is fine to keep. */
.woocommerce .products-header,
.woocommerce-products-header__title,
.woocommerce > .woocommerce-result-count,
.woocommerce > .woocommerce-ordering,
.woocommerce-page > .woocommerce-result-count,
.woocommerce-page > .woocommerce-ordering,
.woocommerce-notices-wrapper + .woocommerce-result-count,
.woocommerce-notices-wrapper + .woocommerce-ordering,
.products-header + .woocommerce-result-count,
.products-header + .woocommerce-ordering,
.belluma-archive-main > .woocommerce-result-count,
.belluma-archive-main > .woocommerce-ordering,
form.woocommerce-ordering:not([data-sort-form]):not(.belluma-archive-toolbar__sort) {
    display: none !important;
}

/* ============================================================
   Sticky archive toolbar — count + sort + mobile filter trigger
   ============================================================ */
.belluma-archive-toolbar {
    position: sticky;
    top: 0;
    z-index: 50;
    background: rgba(255, 255, 255, 0.92);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border-bottom: 1px solid transparent;
    transition: border-color 0.25s ease, box-shadow 0.25s ease;
}
.belluma-archive-toolbar.is-stuck {
    border-bottom-color: var(--bl-grey-200);
    box-shadow: 0 6px 24px rgba(0,0,0,0.04);
}
.belluma-archive-toolbar__inner {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 0.85rem 1.5rem;
    max-width: 1440px;
    margin: 0 auto;
}
.belluma-archive-toolbar__left {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex: 1;
}
.belluma-archive-toolbar__count {
    font-size: 0.88rem;
    color: var(--bl-grey-700);
    letter-spacing: 0.01em;
}
.belluma-archive-toolbar__count strong {
    color: var(--bl-black);
    font-weight: 700;
}
.belluma-filters-trigger {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.55rem 1rem;
    background: var(--bl-white);
    border: 1.5px solid var(--bl-grey-200);
    border-radius: 99px;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--bl-black);
    cursor: pointer;
    transition: all 0.2s ease;
}
.belluma-filters-trigger:hover {
    border-color: var(--bl-black);
    background: var(--bl-black);
    color: var(--bl-white);
}
.belluma-filters-trigger em {
    font-style: normal;
    font-size: 0.7rem;
    background: var(--bl-accent-strong);
    color: var(--bl-white);
    padding: 0.05rem 0.45rem;
    border-radius: 99px;
    margin-left: 0.15rem;
}
.belluma-filters-trigger:hover em { background: var(--bl-white); color: var(--bl-black); }

.belluma-archive-toolbar__sort {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}
.belluma-archive-toolbar__sort label {
    font-size: 0.78rem;
    color: var(--bl-grey-600);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    font-weight: 600;
}
.belluma-archive-toolbar__sort select {
    appearance: none;
    -webkit-appearance: none;
    background: var(--bl-white);
    border: 1.5px solid var(--bl-grey-200);
    border-radius: 99px;
    padding: 0.5rem 2.25rem 0.5rem 1rem;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--bl-black);
    cursor: pointer;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3e%3cpath d='M1 1l4 4 4-4' stroke='%230F0F0F' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right 0.85rem center;
    transition: border-color 0.15s ease;
}
.belluma-archive-toolbar__sort select:hover { border-color: var(--bl-black); }
.belluma-archive-toolbar__sort select:focus {
    outline: 0;
    border-color: var(--bl-black);
    box-shadow: 0 0 0 3px rgba(15,15,15,0.08);
}

.belluma-archive-toolbar__pills {
    border-top: 1px solid var(--bl-grey-100);
    padding: 0.65rem 0;
}
.belluma-archive-toolbar__pills .belluma-container {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    padding: 0 1.5rem;
    max-width: 1440px;
}
.belluma-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.35rem 0.85rem;
    background: var(--bl-grey-50);
    border: 1px solid var(--bl-grey-200);
    border-radius: 99px;
    font-size: 0.78rem;
    color: var(--bl-grey-700);
    text-decoration: none;
    transition: all 0.15s ease;
}
.belluma-pill span { color: var(--bl-grey-600); }
.belluma-pill strong { color: var(--bl-black); font-weight: 600; }
.belluma-pill em {
    font-style: normal;
    font-size: 1rem;
    line-height: 1;
    color: var(--bl-grey-600);
    margin-left: 0.15rem;
    transition: color 0.15s ease;
}
.belluma-pill:hover {
    background: var(--bl-black);
    border-color: var(--bl-black);
    color: var(--bl-white);
}
.belluma-pill:hover span,
.belluma-pill:hover strong,
.belluma-pill:hover em { color: var(--bl-white); }
.belluma-pill--clear {
    background: transparent;
    border-color: transparent;
    color: var(--bl-accent-strong);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-size: 0.72rem;
}
.belluma-pill--clear:hover {
    background: transparent;
    color: var(--bl-black);
    border-color: transparent;
}

@media (max-width: 768px) {
    .belluma-archive-toolbar__sort label { display: none; }
    .belluma-archive-toolbar__inner { padding: 0.7rem 1rem; gap: 0.6rem; }
    .belluma-archive-toolbar__sort select { padding: 0.45rem 2rem 0.45rem 0.85rem; }
    .belluma-archive-hero__chips { padding: 0 0.5rem; }
    .belluma-archive-hero__chip { font-size: 0.78rem; padding: 0.45rem 0.85rem; }
}

/* ============================================================
   Toolbar + pagination + empty state premium
   ============================================================ */
.woocommerce .woocommerce-result-count,
.woocommerce-page .woocommerce-result-count {
    font-size: 0.85rem !important;
    color: var(--bl-grey-600) !important;
    letter-spacing: 0.02em !important;
    margin: 0 !important;
    display: inline-flex;
    align-items: center;
    height: 44px;
}
.woocommerce .woocommerce-ordering,
.woocommerce-page .woocommerce-ordering {
    margin: 0 0 0 auto !important;
}
.woocommerce .woocommerce-ordering select,
.woocommerce-page .woocommerce-ordering select {
    background: var(--bl-white);
    border: 1.5px solid var(--bl-grey-200) !important;
    border-radius: var(--bl-radius-sm);
    padding: 0.6rem 2.5rem 0.6rem 1rem !important;
    font-size: 0.88rem !important;
    font-family: var(--bl-font-body);
    font-weight: 500;
    color: var(--bl-black);
    cursor: pointer;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
    min-width: 210px;
    appearance: none;
    -webkit-appearance: none;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3e%3cpath d='M1 1l5 5 5-5' stroke='%230F0F0F' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right 1rem center;
}
.woocommerce .woocommerce-ordering select:focus {
    outline: 0;
    border-color: var(--bl-accent-strong) !important;
    box-shadow: 0 0 0 3px rgba(217, 138, 160, 0.15);
}

/* Wrap result-count + ordering into a clean row */
.woocommerce-notices-wrapper + .woocommerce-result-count,
.woocommerce .woocommerce-products-header + .woocommerce-result-count {
    float: none !important;
}

/* Pagination — numbered, animated, premium */
.woocommerce nav.woocommerce-pagination,
.woocommerce-page nav.woocommerce-pagination {
    margin: 3rem 0 1rem !important;
    border: 0 !important;
}
.woocommerce nav.woocommerce-pagination ul,
.woocommerce-page nav.woocommerce-pagination ul {
    border: 0 !important;
    display: inline-flex !important;
    gap: 0.35rem;
    background: transparent;
}
.woocommerce nav.woocommerce-pagination ul li,
.woocommerce-page nav.woocommerce-pagination ul li {
    border: 0 !important;
    margin: 0;
}
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span,
.woocommerce-page nav.woocommerce-pagination ul li a,
.woocommerce-page nav.woocommerce-pagination ul li span {
    min-width: 42px !important;
    height: 42px !important;
    padding: 0 0.75rem !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    border: 1.5px solid var(--bl-grey-200) !important;
    border-radius: var(--bl-radius-sm) !important;
    background: var(--bl-white) !important;
    color: var(--bl-black) !important;
    font-weight: 600;
    font-size: 0.88rem;
    text-decoration: none;
    transition: all 0.25s cubic-bezier(.22,.68,.36,1) !important;
}
.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce-page nav.woocommerce-pagination ul li a:hover {
    border-color: var(--bl-black) !important;
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(15, 15, 15, 0.08);
    color: var(--bl-accent-strong) !important;
    background: var(--bl-white) !important;
}
.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce-page nav.woocommerce-pagination ul li span.current {
    background: var(--bl-black) !important;
    border-color: var(--bl-black) !important;
    color: var(--bl-white) !important;
}

/* "No products" state */
.woocommerce-info.woocommerce-no-products-found {
    background: var(--bl-grey-50) !important;
    border: 1px dashed var(--bl-grey-200) !important;
    border-left: 4px solid var(--bl-accent-strong) !important;
    border-radius: var(--bl-radius-md) !important;
    padding: 2.5rem 2rem !important;
    color: var(--bl-grey-600) !important;
    text-align: center;
    font-size: 1rem;
}

/* Archive layout: sidebar + products */
.belluma-archive-wrap {
    display: grid;
    grid-template-columns: 260px 1fr;
    gap: 3rem;
    max-width: 1440px;
    margin: 0 auto;
    padding: 2rem 1.5rem 3rem;
}
.belluma-archive-main { min-width: 0; }

.belluma-filters {
    position: sticky;
    top: 5rem;
    align-self: start;
    background: var(--bl-white);
    border-radius: var(--bl-radius-md);
    padding: 1.5rem;
    border: 1px solid var(--bl-grey-100);
    max-height: calc(100vh - 6rem);
    overflow-y: auto;
}
.belluma-filters__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1.25rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--bl-grey-200);
}
.belluma-filters__header h3 {
    font-family: var(--bl-font-display);
    font-size: 1.2rem;
    margin: 0;
    letter-spacing: -0.01em;
}
.belluma-filters__close {
    display: none;
    background: transparent;
    border: 0;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    font-size: 1.5rem;
    line-height: 1;
    color: var(--bl-grey-600);
    cursor: pointer;
    align-items: center;
    justify-content: center;
}
.belluma-filters__close:hover { background: var(--bl-grey-100); color: var(--bl-black); }
.belluma-filters__body { display: contents; }
.belluma-filters__foot { display: none; }
.belluma-filters__clear {
    font-size: 0.78rem;
    color: var(--bl-accent-strong);
    text-decoration: none;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    font-weight: 600;
}
.belluma-filters__apply {
    display: none;
    flex: 1;
    background: var(--bl-black);
    color: var(--bl-white);
    border: 0;
    padding: 0.85rem;
    border-radius: var(--bl-radius-sm);
    font-weight: 600;
    font-size: 0.9rem;
    cursor: pointer;
    transition: background 0.15s ease;
}
.belluma-filters__apply:hover { background: var(--bl-accent-strong); }

.belluma-filter-group { margin-bottom: 1.5rem; }
.belluma-filter-group:last-child { margin-bottom: 0; }
.belluma-filter-group__title {
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--bl-black);
    margin: 0 0 0.65rem 0;
}
.belluma-filter-list { list-style: none; padding: 0; margin: 0; max-height: 240px; overflow-y: auto; }
.belluma-filter-list li { padding: 0.25rem 0; }
.belluma-filter-list label {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    cursor: pointer;
    font-size: 0.88rem;
    color: var(--bl-grey-700);
    transition: color 0.15s ease;
}
.belluma-filter-list label:hover { color: var(--bl-black); }
.belluma-filter-list input[type="checkbox"] {
    accent-color: var(--bl-black);
    width: 1rem;
    height: 1rem;
    cursor: pointer;
    flex-shrink: 0;
}
.belluma-filter-list input[type="checkbox"]:checked + span { color: var(--bl-black); font-weight: 600; }

/* Mobile drawer */
.belluma-filters-overlay {
    position: fixed;
    inset: 0;
    background: rgba(15, 15, 15, 0.55);
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.25s ease, visibility 0.25s ease;
    z-index: 200;
}
body.belluma-filters-open .belluma-filters-overlay { opacity: 1; visibility: visible; }

@media (min-width: 901px) {
    .belluma-filters-trigger { display: none; }
}

@media (max-width: 900px) {
    .belluma-archive-wrap {
        grid-template-columns: 1fr;
        gap: 1.5rem;
        padding: 1rem 1rem 2.5rem;
    }
    .belluma-filters {
        position: fixed;
        top: 0;
        right: 0;
        bottom: 0;
        width: min(420px, 92vw);
        max-height: 100vh;
        z-index: 210;
        border-radius: 0;
        border: 0;
        padding: 0;
        transform: translateX(100%);
        transition: transform 0.3s cubic-bezier(0.22, 0.68, 0.36, 1);
        display: flex;
        flex-direction: column;
        box-shadow: -10px 0 40px rgba(0,0,0,0.18);
    }
    body.belluma-filters-open .belluma-filters { transform: translateX(0); }
    .belluma-filters__header {
        padding: 1.25rem 1.5rem;
        margin: 0;
        border-bottom: 1px solid var(--bl-grey-200);
    }
    .belluma-filters__close { display: inline-flex; }
    .belluma-filters__body {
        display: block;
        flex: 1;
        overflow-y: auto;
        padding: 1.25rem 1.5rem;
    }
    .belluma-filters__foot {
        display: flex;
        align-items: center;
        gap: 1rem;
        padding: 1rem 1.5rem;
        border-top: 1px solid var(--bl-grey-200);
        background: var(--bl-white);
    }
    .belluma-filters__apply { display: inline-flex; align-items: center; justify-content: center; }
}

/* Category header (on product_cat archive) */
.woocommerce .woocommerce-products-header__title {
    font-family: var(--bl-font-display);
    font-size: clamp(2rem, 4vw, 3rem);
    text-align: center;
    margin: 3rem 0 1rem;
}

body.belluma-audience-women .woocommerce-products-header {
    background: linear-gradient(180deg, var(--bl-rose-soft) 0%, transparent 100%);
    padding: 4rem 0 2rem;
    margin-bottom: 2rem;
    text-align: center;
}

body.belluma-audience-men .woocommerce-products-header {
    background: linear-gradient(180deg, var(--bl-navy-soft) 0%, transparent 100%);
    padding: 4rem 0 2rem;
    margin-bottom: 2rem;
    text-align: center;
}

/* ============================================================
   Single product page — Belluma premium layout
   ============================================================ */

/* Availability badge */
.belluma-stock {
    display: inline-flex !important;
    align-items: center;
    gap: 0.4rem;
    padding: 0.35rem 0.8rem !important;
    border-radius: 99px !important;
    font-size: 0.85rem !important;
    font-weight: 600 !important;
    margin: 0.5rem 0 !important;
}
.belluma-stock::before {
    content: '';
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: currentColor;
}
.belluma-stock--in  { color: #059669 !important; background: #D1FAE5 !important; }
.belluma-stock--low { color: #D97706 !important; background: #FEF3C7 !important; }
.belluma-stock--out { color: #DC2626 !important; background: #FEE2E2 !important; }

/* 100% Original badge */
.belluma-original-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.82rem;
    font-weight: 600;
    color: #065F46;
    background: linear-gradient(90deg, #D1FAE5, #ECFDF5);
    padding: 0.4rem 0.75rem;
    border-radius: 99px;
    margin: 0.5rem 0 0.25rem;
    width: fit-content;
}

.belluma-price-per-unit {
    font-size: 0.85rem;
    color: var(--bl-grey-600);
    margin: 0 0 0.5rem;
    font-weight: 500;
}

/* Single product — Add-to-Cart row layout (quantity + button + wishlist side-by-side).
   Using CSS Grid with a fixed row height = 56px guarantees all children
   render at the exact same height regardless of borders, padding, or
   plugin styles. align-items: stretch fills the row.

   On simple products the form.cart itself is the row container.
   On variable products form.cart is <form class="variations_form cart"> and
   wraps the swatches table + single_variation_wrap; the qty/button row lives
   inside .woocommerce-variation-add-to-cart, so we target that instead — and
   exclude variations_form from the grid so its children flow normally. */
.single-product form.cart:not(.variations_form),
.single-product .woocommerce-variation-add-to-cart {
    display: grid !important;
    grid-auto-flow: column !important;
    grid-auto-columns: max-content max-content auto !important;
    grid-template-rows: 56px !important;
    column-gap: 0.75rem !important;
    align-items: stretch !important;
    justify-content: start !important;
    margin-top: 1rem !important;
}
@media (max-width: 600px) {
    .single-product form.cart:not(.variations_form),
    .single-product .woocommerce-variation-add-to-cart {
        grid-auto-flow: row !important;
        grid-template-rows: 56px 56px !important;
        grid-template-columns: max-content 1fr !important;
        row-gap: 0.75rem !important;
    }
}
.single-product form.cart:not(.variations_form) .quantity,
.single-product .woocommerce-variation-add-to-cart .quantity {
    flex: 0 0 auto !important;
    margin: 0 !important;
}
.single-product form.cart:not(.variations_form) .quantity input.qty,
.single-product .woocommerce-variation-add-to-cart .quantity input.qty {
    width: 56px !important;
    height: 44px !important;
    min-height: 44px !important;
    font-size: 0.95rem !important;
    text-align: center !important;
    border: 1.5px solid var(--bl-grey-200) !important;
    border-radius: var(--bl-radius-sm) !important;
    background: var(--bl-white) !important;
    padding: 0 !important;
}
.single-product form.cart:not(.variations_form) button.single_add_to_cart_button,
.single-product .woocommerce-variation-add-to-cart button.single_add_to_cart_button {
    flex: 1 1 200px !important;
    height: 44px !important;
    min-height: 44px !important;
    font-size: 0.95rem !important;
    white-space: nowrap !important;
    padding: 0 1.5rem !important;
}

/* Wishlist on single product page — JS moves the heart into the row container
   (form.cart on simple, .woocommerce-variation-add-to-cart on variable) so it
   becomes a grid sibling alongside qty + ATC. */
.single-product form.cart:not(.variations_form) .belluma-wish-btn,
.single-product .woocommerce-variation-add-to-cart .belluma-wish-btn {
    height: 100% !important;
    margin: 0 !important;
    padding: 0 1.5rem !important;
    box-sizing: border-box !important;
    background: var(--bl-white) !important;
    color: var(--bl-black) !important;
    border: 1.5px solid var(--bl-grey-200) !important;
    border-radius: var(--bl-radius-sm, 8px) !important;
    font-family: inherit;
    font-size: 0.95rem !important;
    font-weight: 600 !important;
    line-height: 1 !important;
    letter-spacing: 0.005em !important;
    cursor: pointer;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0.6rem !important;
    white-space: nowrap;
    transition: all 0.2s ease;
}
.single-product form.cart:not(.variations_form) .belluma-wish-btn:hover,
.single-product .woocommerce-variation-add-to-cart .belluma-wish-btn:hover {
    border-color: var(--bl-accent-strong) !important;
    color: var(--bl-accent-strong) !important;
    transform: translateY(-1px);
    box-shadow: 0 6px 16px rgba(217, 138, 160, 0.15);
}
.single-product form.cart:not(.variations_form) .belluma-wish-btn__icon,
.single-product .woocommerce-variation-add-to-cart .belluma-wish-btn__icon {
    flex-shrink: 0;
    transition: fill 0.2s ease, transform 0.2s ease;
}
.single-product form.cart:not(.variations_form) .belluma-wish-btn:hover .belluma-wish-btn__icon,
.single-product .woocommerce-variation-add-to-cart .belluma-wish-btn:hover .belluma-wish-btn__icon {
    transform: scale(1.1);
}
.single-product form.cart:not(.variations_form) .belluma-wish-btn.is-active,
.single-product .woocommerce-variation-add-to-cart .belluma-wish-btn.is-active {
    background: var(--bl-accent-soft) !important;
    border-color: var(--bl-accent-strong) !important;
    color: var(--bl-accent-strong) !important;
}
.single-product form.cart:not(.variations_form) .belluma-wish-btn.is-active .belluma-wish-btn__icon,
.single-product .woocommerce-variation-add-to-cart .belluma-wish-btn.is-active .belluma-wish-btn__icon {
    fill: currentColor;
}
/* All three children stretch to the grid row height (56px) — no need for
   explicit height values that fight each other. */
.single-product form.cart:not(.variations_form) button.single_add_to_cart_button,
.single-product .woocommerce-variation-add-to-cart button.single_add_to_cart_button {
    height: 100% !important;
    margin: 0 !important;
    box-sizing: border-box !important;
    border: 1.5px solid var(--bl-black) !important;
    line-height: 1 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}
.single-product form.cart:not(.variations_form) .quantity,
.single-product .woocommerce-variation-add-to-cart .quantity {
    height: 100% !important;
    margin: 0 !important;
    display: inline-flex !important;
    align-items: stretch !important;
}
.single-product form.cart:not(.variations_form) .quantity input.qty,
.single-product .woocommerce-variation-add-to-cart .quantity input.qty {
    height: 100% !important;
    margin: 0 !important;
    box-sizing: border-box !important;
    line-height: 1 !important;
}
.single-product .tinv-wraper.belluma-wish-inline a.tinvwl_add_to_wishlist_button {
    height: 100% !important;
    margin: 0 !important;
    box-sizing: border-box !important;
}
.single-product .tinv-wraper .tinvwl_add_to_wishlist_button:hover {
    color: var(--bl-accent-strong) !important;
    transform: none !important;
    box-shadow: none !important;
}
@media (max-width: 600px) {
    .single-product .tinv-wraper.belluma-wish-inline {
        flex: 1 1 100% !important;
        margin: 0.75rem 0 0 !important;
        justify-content: flex-start !important;
    }
    .single-product .tinv-wraper .tinvwl_add_to_wishlist_button { padding: 0 !important; }
}

/* Delivery estimator */
.belluma-delivery {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    padding: 1rem 1.15rem;
    margin: 1rem 0;
    background: var(--bl-grey-50);
    border-radius: var(--bl-radius-md);
    border: 1px solid var(--bl-grey-200);
}
.belluma-delivery__icon {
    font-size: 1.75rem;
    line-height: 1;
    flex-shrink: 0;
}
.belluma-delivery__text {
    font-size: 0.95rem;
    color: var(--bl-black);
    line-height: 1.5;
}
.belluma-delivery__text strong {
    font-weight: 600;
}
.belluma-delivery__sub {
    font-size: 0.8rem;
    color: var(--bl-grey-600);
}

/* Trust row */
.belluma-trust {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0.75rem;
    margin: 1.5rem 0 1rem;
    padding: 1rem 0;
    border-top: 1px solid var(--bl-grey-200);
    border-bottom: 1px solid var(--bl-grey-200);
}
@media (min-width: 600px) {
    .belluma-trust { grid-template-columns: repeat(4, 1fr); }
}
.belluma-trust__item {
    display: flex;
    align-items: center;
    gap: 0.6rem;
}
.belluma-trust__icon {
    width: 34px;
    height: 34px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--bl-accent-soft);
    color: var(--bl-accent-strong);
    border-radius: 50%;
    font-weight: 700;
    flex-shrink: 0;
    font-size: 1rem;
}
.belluma-trust__text {
    display: flex;
    flex-direction: column;
    line-height: 1.3;
}
.belluma-trust__text strong {
    font-size: 0.82rem;
    color: var(--bl-black);
    font-weight: 600;
}
.belluma-trust__text span {
    font-size: 0.72rem;
    color: var(--bl-grey-600);
}

/* Payment methods */
.belluma-payments {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin: 0.5rem 0 1rem;
}
.belluma-payments__label {
    font-size: 0.8rem;
    color: var(--bl-grey-600);
    margin-right: 0.25rem;
}
.belluma-pay {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 46px;
    height: 28px;
    border: 1px solid var(--bl-grey-200);
    border-radius: 6px;
    font-size: 0.7rem;
    font-weight: 700;
    color: var(--bl-grey-600);
    background: var(--bl-white);
    padding: 0 0.5rem;
    letter-spacing: 0.04em;
}
.belluma-pay--visa   { color: #1A1F71; border-color: #1A1F71; }
.belluma-pay--mc     { color: #EB001B; border-color: #EB001B; }
.belluma-pay--paypal { color: #003087; border-color: #003087; }
.belluma-pay--cash   { color: #047857; border-color: #047857; }

/* Sticky cart bar (mobile + small desktops) */
.belluma-sticky-cart {
    position: fixed;
    left: 0; right: 0; bottom: 0;
    z-index: 999;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem 1rem;
    background: var(--bl-white);
    border-top: 1px solid var(--bl-grey-200);
    box-shadow: 0 -6px 20px rgba(15, 15, 15, 0.08);
    transform: translateY(100%);
    transition: transform 0.25s ease;
}
.belluma-sticky-cart.is-visible { transform: translateY(0); }
.belluma-sticky-cart__img {
    width: 44px;
    height: 44px;
    object-fit: contain;
    border-radius: 6px;
    background: var(--bl-grey-50);
}
.belluma-sticky-cart__info {
    flex: 1;
    min-width: 0;
}
.belluma-sticky-cart__title {
    font-size: 0.8rem;
    color: var(--bl-black);
    font-weight: 500;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.belluma-sticky-cart__price {
    font-size: 0.95rem;
    color: var(--bl-accent-strong);
    font-weight: 700;
}
.belluma-sticky-cart__price .amount { color: inherit !important; }
.belluma-sticky-cart__btn {
    background: var(--bl-black);
    color: var(--bl-white);
    border: none;
    padding: 0.8rem 1.25rem;
    border-radius: var(--bl-radius-sm);
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
    transition: background 0.2s ease;
}
.belluma-sticky-cart__btn:hover { background: var(--bl-accent-strong); }
@media (min-width: 1024px) { .belluma-sticky-cart { display: none; } }

/* Single-product gallery — constrain so the bottle doesn't dwarf the page,
   but leave enough presence to feel editorial (not postage-stamp). */
.single-product div.product .woocommerce-product-gallery,
.single-product div.product .kadence-column-gallery {
    max-width: 540px !important;
    flex: 0 0 540px !important;
}
.single-product div.product .woocommerce-product-gallery__image img,
.single-product div.product .wp-post-image {
    max-width: 100% !important;
    max-height: 560px !important;
    object-fit: contain !important;
    background: var(--bl-grey-50);
    border-radius: var(--bl-radius-md);
    padding: 1.75rem;
}
.single-product div.product .summary,
.single-product div.product .entry-summary {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    padding-left: 0.5rem;
}

/* Tighter, more rhythmic vertical spacing inside the summary column */
.single-product div.product .summary > *,
.single-product div.product .entry-summary > * {
    margin-top: 0 !important;
    margin-bottom: 0.85rem !important;
}
.single-product div.product .product_title {
    font-size: clamp(1.35rem, 2.2vw, 1.9rem) !important;
    line-height: 1.2 !important;
    margin-bottom: 0.5rem !important;
    letter-spacing: -0.01em !important;
}
.single-product div.product p.price,
.single-product div.product .summary .price {
    font-size: 1.75rem !important;
    font-weight: 700 !important;
    margin: 0.25rem 0 0.5rem !important;
    display: flex !important;
    align-items: baseline !important;
    gap: 0.4rem !important;
    flex-wrap: wrap !important;
}
.single-product .belluma-price-from {
    font-size: 0.85rem !important;
    font-weight: 500 !important;
    color: var(--bl-grey-600) !important;
}
.single-product div.product .woocommerce-product-details__short-description {
    color: var(--bl-grey-600);
    font-size: 0.95rem;
    line-height: 1.55;
}

@media (max-width: 767px) {
    .single-product div.product .woocommerce-product-gallery,
    .single-product div.product .kadence-column-gallery {
        max-width: 100% !important;
        flex: 1 1 100% !important;
    }
    .single-product div.product .woocommerce-product-gallery__image img,
    .single-product div.product .wp-post-image {
        max-height: 400px !important;
    }
}

/* ============================================================
   Single product page (classic tabs / title)
   ============================================================ */
.single-product div.product .product_title {
    font-family: var(--bl-font-display);
    font-size: clamp(1.75rem, 3vw, 2.5rem);
    margin-bottom: 1rem;
}

.single-product div.product .price {
    font-size: 1.75rem !important;
    font-weight: 700;
    color: var(--bl-black) !important;
}

.single-product div.product .woocommerce-tabs {
    border-top: 1px solid var(--bl-grey-200);
    padding-top: 3rem;
    margin-top: 4rem;
}

.single-product div.product .woocommerce-tabs ul.tabs {
    border: none !important;
    padding: 0 !important;
    display: flex;
    gap: 2rem;
}

.single-product div.product .woocommerce-tabs ul.tabs li {
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    padding: 0 !important;
}

.single-product div.product .woocommerce-tabs ul.tabs li a {
    font-family: var(--bl-font-body);
    font-weight: 600;
    padding: 0.5rem 0 !important;
    color: var(--bl-grey-400);
    text-transform: none !important;
}

.single-product div.product .woocommerce-tabs ul.tabs li.active a {
    color: var(--bl-black);
    border-bottom: 2px solid var(--bl-accent) !important;
}

/* ============================================================
   Homepage layout primitives
   ============================================================ */
.belluma-container {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 2rem;
}
.belluma-btn {
    display: inline-block;
    padding: 0.9rem 1.75rem;
    border-radius: var(--bl-radius-sm);
    font-weight: 600;
    letter-spacing: 0.02em;
    text-decoration: none;
    transition: all 0.2s ease;
    border: 1.5px solid transparent;
    cursor: pointer;
}
.belluma-btn-primary {
    background: var(--bl-black);
    color: var(--bl-white);
}
.belluma-btn-primary:hover {
    background: var(--bl-accent-strong);
    transform: translateY(-1px);
    box-shadow: var(--bl-shadow-md);
    color: var(--bl-white);
}
.belluma-btn-outline {
    background: transparent;
    color: var(--bl-black);
    border-color: var(--bl-black);
}
.belluma-btn-outline:hover {
    background: var(--bl-black);
    color: var(--bl-white);
}

/* Hide the page title on the front page — the hero replaces it */
body.home .entry-header,
body.home .page-title-wrap,
body.home h1.entry-title,
body.home .entry-hero-container-inner {
    display: none !important;
}
body.home .site-main,
body.home .content-wrap {
    padding-top: 0 !important;
    margin-top: 0 !important;
}
body.home .content-container {
    max-width: 100% !important;
    padding: 0 !important;
}
body.home .entry-content {
    margin: 0 !important;
}

/* ============================================================
   Hero — two modes: legacy (rose gradient) + editorial (full-bleed photo)
   ============================================================ */
.belluma-hero {
    min-height: 80vh;
    display: flex;
    align-items: center;
    background: var(--bl-rose-soft);
    background-image:
        radial-gradient(circle at 20% 30%, rgba(244, 208, 214, 0.8) 0%, transparent 50%),
        radial-gradient(circle at 80% 70%, rgba(26, 36, 56, 0.05) 0%, transparent 50%);
    padding: 4rem 0;
    position: relative;
    overflow: hidden;
}

.belluma-hero--editorial {
    min-height: min(86vh, 780px);
    color: var(--bl-white);
    background: var(--bl-black);
    padding: 6rem 0 5rem;
}
.belluma-hero--editorial .belluma-hero__bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    z-index: 0;
}
.belluma-hero--editorial .belluma-hero__bg::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(15, 15, 15, 0.72) 0%, rgba(15, 15, 15, 0.35) 55%, rgba(15, 15, 15, 0.05) 100%);
}
.belluma-hero--editorial .belluma-container {
    position: relative;
    z-index: 1;
}
.belluma-hero--editorial .belluma-hero__grid {
    display: block;
}
.belluma-hero--editorial .belluma-hero__text {
    max-width: 640px;
    color: var(--bl-white);
}
.belluma-hero--editorial .belluma-hero__eyebrow {
    color: rgba(255, 255, 255, 0.92);
    letter-spacing: 0.22em;
}
.belluma-hero--editorial .belluma-hero__title {
    color: var(--bl-white);
    font-size: clamp(2.5rem, 6vw, 4.5rem);
    margin-bottom: 1.25rem;
}
.belluma-hero--editorial .belluma-hero__title em {
    color: var(--bl-rose);
    font-style: italic;
}
.belluma-hero--editorial .belluma-hero__subtitle {
    color: rgba(255, 255, 255, 0.88);
    max-width: 560px;
    font-size: 1.05rem;
}
.belluma-hero--editorial .belluma-btn-primary {
    background: var(--bl-white);
    color: var(--bl-black);
}
.belluma-hero--editorial .belluma-btn-primary:hover {
    background: var(--bl-rose);
    color: var(--bl-black);
}
.belluma-hero--editorial .belluma-btn--light {
    color: var(--bl-white);
    border-color: var(--bl-white);
}
.belluma-hero--editorial .belluma-btn--light:hover {
    background: var(--bl-white);
    color: var(--bl-black);
}
.belluma-hero__grid {
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    align-items: center;
    gap: 3rem;
}
.belluma-hero__title {
    font-size: clamp(2.5rem, 7vw, 5rem);
    font-weight: 700;
    line-height: 1.05;
    margin: 0 0 1.5rem 0;
    font-family: var(--bl-font-display);
}
.belluma-hero__title em { font-style: italic; color: var(--bl-accent-strong); }
.belluma-hero__subtitle {
    font-size: clamp(1rem, 1.5vw, 1.25rem);
    color: var(--bl-grey-600);
    max-width: 560px;
    margin: 0 0 2.5rem 0;
    line-height: 1.6;
}
.belluma-hero__cta {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
}
.belluma-hero__visual {
    text-align: center;
}
.belluma-hero__visual span {
    display: inline-block;
    font-size: clamp(6rem, 14vw, 12rem);
    line-height: 1;
    filter: drop-shadow(0 10px 30px rgba(217, 138, 160, 0.4));
}

.belluma-section { padding: 5rem 0; }
.belluma-section--tight { padding: 3.5rem 0; }
.belluma-section--grey { background: var(--bl-grey-50); }

/* Section heads — editorial, with kicker + inline link */
.belluma-section__head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 2rem;
    margin-bottom: 2.5rem;
    flex-wrap: wrap;
}
.belluma-section__head--center {
    flex-direction: column;
    align-items: center;
    text-align: center;
}
.belluma-section__kicker {
    display: block;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--bl-accent-strong);
    margin-bottom: 0.5rem;
}
.belluma-section__head .belluma-section__title {
    text-align: left;
    margin: 0 0 0.25rem 0;
    font-size: clamp(1.75rem, 3vw, 2.5rem);
    max-width: 720px;
}
.belluma-section__head--center .belluma-section__title {
    text-align: center;
}
.belluma-section__head .belluma-section__subtitle {
    margin: 0;
    max-width: 640px;
}
.belluma-section__link {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--bl-black);
    text-decoration: none;
    white-space: nowrap;
    padding-bottom: 2px;
    border-bottom: 1.5px solid var(--bl-black);
    transition: border-color 0.2s ease, color 0.2s ease;
}
.belluma-section__link:hover {
    color: var(--bl-accent-strong);
    border-color: var(--bl-accent-strong);
}

/* Brand spotlight — alternating editorial blocks */
.belluma-spotlight {
    padding: 5rem 0;
    background: var(--bl-white);
}
.belluma-spotlight--grey {
    background: var(--bl-grey-50);
}
.belluma-spotlight__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4rem;
    align-items: center;
}
.belluma-spotlight__visual {
    aspect-ratio: 4 / 5;
    background-size: cover;
    background-position: center;
    border-radius: var(--bl-radius-md);
    box-shadow: var(--bl-shadow-md);
    min-height: 420px;
}
.belluma-spotlight__eyebrow {
    display: block;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--bl-accent-strong);
    margin-bottom: 1rem;
}
.belluma-spotlight__text h2 {
    font-family: var(--bl-font-display);
    font-size: clamp(1.75rem, 3.5vw, 2.75rem);
    line-height: 1.15;
    margin: 0 0 1.25rem 0;
    letter-spacing: -0.01em;
}
.belluma-spotlight__text p {
    color: var(--bl-grey-600);
    font-size: 1.05rem;
    line-height: 1.6;
    margin: 0 0 2rem 0;
    max-width: 540px;
}
@media (max-width: 900px) {
    .belluma-spotlight__grid { grid-template-columns: 1fr; gap: 2rem; }
    .belluma-spotlight--right .belluma-spotlight__text { order: 1; }
    .belluma-spotlight--right .belluma-spotlight__visual { order: 2; }
    .belluma-spotlight__visual { min-height: 320px; }
}

/* Journal — editorial blog cards */
.belluma-journal {
    padding: 5rem 0;
    background: var(--bl-grey-50);
}
.belluma-journal__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 2rem;
}
.belluma-journal__card {
    background: var(--bl-white);
    border-radius: var(--bl-radius-md);
    overflow: hidden;
    transition: transform 0.35s ease, box-shadow 0.35s ease;
    display: flex;
    flex-direction: column;
    cursor: pointer;
}
.belluma-journal__card:hover {
    transform: translateY(-6px);
    box-shadow: var(--bl-shadow-lg);
}
.belluma-journal__img {
    aspect-ratio: 16 / 10;
    background-size: cover;
    background-position: center;
    background-color: var(--bl-grey-100);
    transition: transform 0.5s ease;
}
.belluma-journal__card:hover .belluma-journal__img {
    transform: scale(1.04);
}
.belluma-journal__body {
    padding: 1.5rem 1.75rem 1.75rem;
}
.belluma-journal__tag {
    display: inline-block;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--bl-accent-strong);
    margin-bottom: 0.75rem;
}
.belluma-journal__body h3 {
    font-family: var(--bl-font-display);
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.3;
    color: var(--bl-black);
    margin: 0 0 0.75rem 0;
}
.belluma-journal__body p {
    color: var(--bl-grey-600);
    font-size: 0.95rem;
    line-height: 1.55;
    margin: 0;
}
.belluma-section__title {
    font-family: var(--bl-font-display);
    font-size: clamp(2rem, 4vw, 3rem);
    text-align: center;
    margin-bottom: 0.5rem;
}
.belluma-section__subtitle {
    text-align: center;
    color: var(--bl-grey-600);
    margin-bottom: 3rem;
    font-size: 1.05rem;
}

/* Category cards (homepage) */
.belluma-cat-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 1.5rem;
}
.belluma-cat-card {
    position: relative;
    aspect-ratio: 4 / 5;
    border-radius: var(--bl-radius-md);
    overflow: hidden;
    background-color: var(--bl-grey-100);
    background-size: cover;
    background-position: center;
    display: flex;
    align-items: flex-end;
    padding: 2rem;
    text-decoration: none;
    color: var(--bl-white);
    transition: transform 0.35s ease, box-shadow 0.35s ease;
}
.belluma-cat-card::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(15,15,15,0.05) 0%, rgba(15,15,15,0.25) 50%, rgba(15,15,15,0.75) 100%);
    z-index: 1;
    transition: opacity 0.3s ease;
}
.belluma-cat-card > * { position: relative; z-index: 2; }
.belluma-cat-card:hover {
    transform: translateY(-6px);
    box-shadow: var(--bl-shadow-lg);
}
.belluma-cat-card:hover::before {
    background: linear-gradient(180deg, rgba(15,15,15,0.1) 0%, rgba(15,15,15,0.4) 40%, rgba(15,15,15,0.85) 100%);
}
.belluma-cat-card__title {
    font-family: var(--bl-font-display);
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--bl-white);
    margin: 0;
    text-shadow: 0 2px 12px rgba(0, 0, 0, 0.4);
}
.belluma-cat-card__count {
    font-size: 0.875rem;
    opacity: 0.92;
    margin-top: 0.5rem;
    display: block;
    text-shadow: 0 1px 8px rgba(0, 0, 0, 0.5);
}

/* Women/men tint — subtle color overlay on top of the photo */
.belluma-cat-card--women::before {
    background: linear-gradient(180deg, rgba(244, 208, 214, 0.15) 0%, rgba(217, 138, 160, 0.35) 55%, rgba(15, 15, 15, 0.8) 100%);
}
.belluma-cat-card--men::before {
    background: linear-gradient(180deg, rgba(26, 36, 56, 0.15) 0%, rgba(26, 36, 56, 0.45) 55%, rgba(14, 21, 36, 0.9) 100%);
}

/* Brands grid */
.belluma-brands {
    background: var(--bl-grey-50);
    padding: 5rem 0;
}
.belluma-brand-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: 0.5rem;
}
.belluma-brand {
    aspect-ratio: 3 / 2;
    background: var(--bl-white);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    border-radius: var(--bl-radius-sm);
    font-family: var(--bl-font-display);
    font-weight: 600;
    font-size: 0.95rem;
    color: var(--bl-black);
    text-decoration: none;
    transition: all 0.2s ease;
    text-align: center;
    line-height: 1.2;
}
.belluma-brand:hover {
    color: var(--bl-accent-strong);
    box-shadow: var(--bl-shadow-sm);
    transform: translateY(-2px);
}

/* Brand authority ticker — replaces the old USP row with an editorial
   scrolling strip of real brand names from the catalog. */
.belluma-brand-ticker {
    background: var(--bl-black);
    color: var(--bl-white);
    padding: 1.25rem 0;
    overflow: hidden;
    position: relative;
    border-top: 1px solid var(--bl-black);
    border-bottom: 1px solid var(--bl-black);
}
.belluma-brand-ticker::before,
.belluma-brand-ticker::after {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    width: 120px;
    z-index: 2;
    pointer-events: none;
}
.belluma-brand-ticker::before {
    left: 0;
    background: linear-gradient(to right, var(--bl-black), transparent);
}
.belluma-brand-ticker::after {
    right: 0;
    background: linear-gradient(to left, var(--bl-black), transparent);
}
.belluma-brand-ticker__inner {
    display: flex;
    overflow: hidden;
    width: 100%;
}
.belluma-brand-ticker__track {
    display: flex;
    align-items: center;
    gap: 2.5rem;
    white-space: nowrap;
    flex-shrink: 0;
    animation: belluma-ticker 60s linear infinite;
    will-change: transform;
}
.belluma-brand-ticker:hover .belluma-brand-ticker__track {
    animation-play-state: paused;
}
.belluma-brand-ticker__item {
    font-family: var(--bl-font-display);
    font-size: 1rem;
    font-weight: 500;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.9);
    flex-shrink: 0;
    transition: color 0.2s ease;
}
.belluma-brand-ticker__item:hover {
    color: var(--bl-rose);
}
.belluma-brand-ticker__dot {
    font-size: 0.5rem;
    color: rgba(255, 255, 255, 0.4);
    flex-shrink: 0;
}
@keyframes belluma-ticker {
    from { transform: translateX(0); }
    to   { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
    .belluma-brand-ticker__track { animation: none; }
}

/* USPs / trust bar */
.belluma-usps {
    border-top: 1px solid var(--bl-grey-200);
    border-bottom: 1px solid var(--bl-grey-200);
    padding: 2.5rem 0;
    background: var(--bl-white);
}
.belluma-usp-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 2rem;
    text-align: center;
}
.belluma-usp {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
}
.belluma-usp__icon {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: var(--bl-accent-soft);
    color: var(--bl-accent-strong);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 1.1rem;
    margin-bottom: 0.25rem;
}
.belluma-usp strong { display: block; font-weight: 600; font-size: 0.95rem; }
.belluma-usp span   { color: var(--bl-grey-600); font-size: 0.85rem; line-height: 1.4; }

/* Hero stats row */
.belluma-hero__eyebrow {
    display: inline-block;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--bl-accent-strong);
    margin-bottom: 1rem;
}
.belluma-hero__stats {
    display: flex;
    gap: 2.5rem;
    margin-top: 2.5rem;
    padding-top: 2rem;
    border-top: 1px solid rgba(15, 15, 15, 0.12);
    flex-wrap: wrap;
}
.belluma-hero__stats > div {
    display: flex;
    flex-direction: column;
}
.belluma-hero__stats strong {
    font-family: var(--bl-font-display);
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--bl-black);
    line-height: 1;
}
.belluma-hero__stats span {
    font-size: 0.8rem;
    color: var(--bl-grey-600);
    margin-top: 0.25rem;
}

/* Category cards — extend with CTA */
.belluma-cat-card__cta {
    display: block;
    font-size: 0.85rem;
    font-weight: 600;
    margin-top: 0.75rem;
    color: var(--bl-white);
    opacity: 0.9;
    letter-spacing: 0.03em;
}

/* Why Belluma section */
.belluma-why {
    padding: 5rem 0;
    background: linear-gradient(180deg, var(--bl-white) 0%, var(--bl-grey-50) 100%);
}
.belluma-why-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 2rem;
    margin-top: 3rem;
}
.belluma-why-card {
    background: var(--bl-white);
    padding: 2rem 1.75rem;
    border-radius: var(--bl-radius-md);
    border: 1px solid var(--bl-grey-200);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.belluma-why-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--bl-shadow-lg);
    border-color: var(--bl-accent-strong);
}
.belluma-why-card__num {
    font-family: var(--bl-font-display);
    font-size: 2.5rem;
    font-weight: 700;
    color: var(--bl-accent-strong);
    line-height: 1;
    margin-bottom: 1rem;
    opacity: 0.85;
}
.belluma-why-card h3 {
    font-family: var(--bl-font-display);
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--bl-black);
    margin: 0 0 0.75rem 0;
}
.belluma-why-card p {
    color: var(--bl-grey-600);
    font-size: 0.95rem;
    line-height: 1.6;
    margin: 0;
}

/* ============================================================
   Signature scent mini-quiz — the editorial moment
   ============================================================ */
.belluma-signature {
    position: relative;
    padding: 6rem 0;
    background: linear-gradient(180deg, #0F0F0F 0%, #1A1428 50%, #0F0F0F 100%);
    color: var(--bl-white);
    overflow: hidden;
    isolation: isolate;
}
.belluma-signature .belluma-container {
    position: relative;
    z-index: 2;
}
.belluma-signature__bg {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
}
.belluma-signature__orb {
    position: absolute;
    border-radius: 50%;
    filter: blur(60px);
    opacity: 0.55;
    mix-blend-mode: screen;
    animation: belluma-orb 18s ease-in-out infinite;
}
.belluma-signature__orb--a { width: 520px; height: 520px; background: radial-gradient(circle, #D98AA0 0%, transparent 70%); top: -120px; left: -80px; }
.belluma-signature__orb--b { width: 420px; height: 420px; background: radial-gradient(circle, #C9A961 0%, transparent 70%); top: 40%; right: -100px; animation-delay: -6s; }
.belluma-signature__orb--c { width: 360px; height: 360px; background: radial-gradient(circle, #7E5BAF 0%, transparent 70%); bottom: -80px; left: 30%; animation-delay: -12s; }
@keyframes belluma-orb {
    0%,   100% { transform: translate(0, 0) scale(1); }
    33%        { transform: translate(20px, -30px) scale(1.06); }
    66%        { transform: translate(-25px, 25px) scale(0.94); }
}
@media (prefers-reduced-motion: reduce) {
    .belluma-signature__orb { animation: none; }
}

.belluma-signature__intro {
    text-align: center;
    max-width: 640px;
    margin: 0 auto 3rem;
}
.belluma-signature__intro .belluma-section__kicker {
    color: var(--bl-rose);
}
.belluma-signature__intro .belluma-section__title {
    color: var(--bl-white);
    font-size: clamp(2rem, 4vw, 3rem);
}
.belluma-signature__lede {
    color: rgba(255, 255, 255, 0.78);
    font-size: 1.05rem;
    line-height: 1.6;
    margin: 0;
}

.belluma-signature__stage {
    max-width: 720px;
    margin: 0 auto;
    position: relative;
    min-height: 420px;
}
.belluma-signature__card {
    position: absolute;
    inset: 0;
    background: rgba(255, 255, 255, 0.04);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: var(--bl-radius-lg);
    padding: 3rem 2.5rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.35s ease, transform 0.45s cubic-bezier(.34,1.56,.64,1);
}
.belluma-signature__card.is-visible {
    opacity: 1;
    transform: translateY(0);
}
.belluma-signature__stepnum {
    display: inline-block;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.55);
    margin-bottom: 1rem;
}
.belluma-signature__card h3 {
    font-family: var(--bl-font-display);
    font-size: clamp(1.4rem, 2.5vw, 1.9rem);
    color: var(--bl-white);
    margin: 0 0 2rem 0;
    font-weight: 600;
    line-height: 1.25;
}
.belluma-signature__opts {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
    width: 100%;
}
.belluma-signature__opt {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.35rem;
    padding: 1.5rem 1rem;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: var(--bl-radius-md);
    color: var(--bl-white);
    cursor: pointer;
    transition: all 0.25s ease;
    text-align: center;
    font-family: var(--bl-font-body);
}
.belluma-signature__opt:hover {
    background: rgba(255, 255, 255, 0.1);
    border-color: rgba(217, 138, 160, 0.7);
    transform: translateY(-2px);
}
.belluma-signature__opt.is-selected {
    background: var(--bl-rose);
    color: var(--bl-black);
    border-color: var(--bl-rose);
    transform: scale(1.04);
}
.belluma-signature__opt-icon {
    font-size: 1.75rem;
    line-height: 1;
    margin-bottom: 0.25rem;
    color: var(--bl-rose);
    transition: color 0.2s ease;
}
.belluma-signature__opt.is-selected .belluma-signature__opt-icon { color: var(--bl-black); }
.belluma-signature__opt strong {
    font-size: 1rem;
    font-weight: 600;
    letter-spacing: 0.01em;
}
.belluma-signature__opt em {
    font-size: 0.78rem;
    font-style: normal;
    color: rgba(255, 255, 255, 0.6);
    line-height: 1.4;
}
.belluma-signature__opt.is-selected em { color: rgba(15, 15, 15, 0.65); }

.belluma-signature__card--result .belluma-signature__verdict {
    font-family: var(--bl-font-display);
    font-size: clamp(1.8rem, 3.5vw, 2.6rem);
    color: var(--bl-rose);
    margin-bottom: 1rem;
    letter-spacing: -0.01em;
}
.belluma-signature__poem {
    font-size: 1.05rem;
    line-height: 1.65;
    color: rgba(255, 255, 255, 0.88);
    max-width: 520px;
    margin: 0 auto 2rem;
    font-style: italic;
}
.belluma-signature__notes {
    margin-bottom: 2rem;
}
.belluma-signature__notes-label {
    display: block;
    font-size: 0.8rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.6);
    margin-bottom: 0.75rem;
}
.belluma-signature__notes-chips {
    display: flex;
    gap: 0.5rem;
    justify-content: center;
    flex-wrap: wrap;
}
.belluma-signature__notes-chips span {
    padding: 0.4rem 0.9rem;
    border: 1px solid rgba(201, 169, 97, 0.5);
    border-radius: 99px;
    font-size: 0.85rem;
    color: var(--bl-gold);
    letter-spacing: 0.02em;
}
.belluma-signature__cta {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
    justify-content: center;
}
.belluma-signature__card--result [data-restart] {
    color: var(--bl-white);
    border-color: rgba(255, 255, 255, 0.4);
    background: transparent;
}
.belluma-signature__card--result [data-restart]:hover {
    background: rgba(255, 255, 255, 0.1);
    border-color: rgba(255, 255, 255, 0.7);
}
.belluma-signature__hint {
    display: block;
    margin-top: 1rem;
    font-size: 0.8rem;
    color: rgba(255, 255, 255, 0.55);
    letter-spacing: 0.05em;
}

@media (max-width: 640px) {
    .belluma-signature { padding: 4rem 0; }
    .belluma-signature__stage { min-height: 520px; }
    .belluma-signature__card { padding: 2rem 1.25rem; }
    .belluma-signature__opts { grid-template-columns: 1fr; }
}

/* ============================================================
   Scroll-reveal animations (fade + rise once in view)
   ============================================================ */
.belluma-reveal {
    opacity: 0;
    transform: translateY(28px);
    transition: opacity 0.7s ease, transform 0.7s cubic-bezier(.22,.68,.36,1);
    will-change: opacity, transform;
}
.belluma-reveal.is-revealed {
    opacity: 1;
    transform: translateY(0);
}
@media (prefers-reduced-motion: reduce) {
    .belluma-reveal { opacity: 1 !important; transform: none !important; }
}

/* Newsletter */
.belluma-newsletter {
    padding: 5rem 0;
    background: var(--bl-rose-soft);
    background-image: radial-gradient(circle at 80% 20%, rgba(201, 169, 97, 0.15) 0%, transparent 50%);
}
body.belluma-audience-men .belluma-newsletter {
    background: var(--bl-navy-soft);
}
.belluma-newsletter__box {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 3rem;
    align-items: center;
    background: var(--bl-white);
    padding: 3rem;
    border-radius: var(--bl-radius-lg);
    box-shadow: var(--bl-shadow-md);
}
.belluma-newsletter__text h2 {
    font-family: var(--bl-font-display);
    font-size: clamp(1.5rem, 2.5vw, 2rem);
    margin: 0 0 0.75rem 0;
    color: var(--bl-black);
}
.belluma-newsletter__text p {
    color: var(--bl-grey-600);
    margin: 0;
    font-size: 0.95rem;
    max-width: 460px;
}
.belluma-newsletter__form {
    display: flex;
    gap: 0.75rem;
    align-items: stretch;
}
.belluma-newsletter__form input {
    padding: 0.85rem 1.25rem;
    border: 1.5px solid var(--bl-grey-200);
    border-radius: var(--bl-radius-sm);
    font-size: 0.95rem;
    min-width: 280px;
    background: var(--bl-white);
    color: var(--bl-black);
}
.belluma-newsletter__form input:focus {
    outline: none;
    border-color: var(--bl-accent-strong);
}
@media (max-width: 900px) {
    .belluma-newsletter__box {
        grid-template-columns: 1fr;
        padding: 2rem;
    }
    .belluma-newsletter__form {
        flex-direction: column;
    }
    .belluma-newsletter__form input { min-width: 0; width: 100%; }
}

/* SEO content block */
.belluma-seo-content {
    padding: 4rem 0;
    background: var(--bl-white);
    border-top: 1px solid var(--bl-grey-200);
}
.belluma-seo-content .belluma-container {
    max-width: 900px;
}
.belluma-seo-content h2 {
    font-family: var(--bl-font-display);
    font-size: clamp(1.5rem, 3vw, 2.25rem);
    color: var(--bl-black);
    margin: 0 0 1.25rem 0;
    line-height: 1.25;
}
.belluma-seo-content h3 {
    font-family: var(--bl-font-display);
    font-size: 1.25rem;
    color: var(--bl-black);
    margin: 2rem 0 0.75rem 0;
    font-weight: 700;
}
.belluma-seo-content p {
    color: var(--bl-grey-600);
    line-height: 1.7;
    font-size: 0.975rem;
    margin: 0 0 1rem 0;
}
.belluma-seo-content a {
    color: var(--bl-accent-strong);
    text-decoration: underline;
    text-decoration-color: rgba(217, 138, 160, 0.35);
    text-underline-offset: 3px;
    transition: text-decoration-color 0.2s ease;
}
.belluma-seo-content a:hover { text-decoration-color: currentColor; }

/* ============================================================
   Premium editorial footer
   ============================================================ */
.belluma-footer {
    background: #0A0A0A;
    color: rgba(255, 255, 255, 0.75);
    margin-top: 0;
    position: relative;
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.8s ease, transform 0.9s cubic-bezier(.22,.68,.36,1);
}
.belluma-footer.is-in-view {
    opacity: 1;
    transform: translateY(0);
}

/* Commitments strip — the first visible row on entering the footer */
.belluma-footer__commitments {
    background: linear-gradient(180deg, #111111 0%, #0A0A0A 100%);
    padding: 2.5rem 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}
.belluma-footer__commitments-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 2rem;
}
.belluma-footer-commit {
    display: flex;
    align-items: center;
    gap: 0.9rem;
}
.belluma-footer-commit__icon {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
    background: rgba(201, 169, 97, 0.15);
    color: var(--bl-gold);
    flex-shrink: 0;
    transition: transform 0.3s ease, background 0.3s ease;
}
.belluma-footer-commit:hover .belluma-footer-commit__icon {
    transform: rotate(-8deg) scale(1.1);
    background: rgba(201, 169, 97, 0.3);
}
.belluma-footer-commit strong {
    display: block;
    font-weight: 600;
    color: var(--bl-white);
    font-size: 0.95rem;
    margin-bottom: 0.15rem;
}
.belluma-footer-commit span {
    font-size: 0.8rem;
    color: rgba(255, 255, 255, 0.55);
    line-height: 1.4;
}

/* Main footer grid */
.belluma-footer__main {
    padding: 4.5rem 0 3rem;
}
.belluma-footer__grid {
    display: grid;
    grid-template-columns: 1.8fr 1fr 1fr 1fr 1.5fr;
    gap: 3rem;
}
@media (max-width: 1024px) {
    .belluma-footer__grid {
        grid-template-columns: 1fr 1fr;
    }
    .belluma-footer__brand, .belluma-footer__newsletter {
        grid-column: 1 / -1;
    }
}
@media (max-width: 640px) {
    .belluma-footer__grid { grid-template-columns: 1fr; gap: 2rem; }
    .belluma-footer__main { padding: 3rem 0 2rem; }
}

/* Brand column */
.belluma-footer__wordmark {
    display: inline-block;
    font-family: var(--bl-font-display);
    font-size: 2rem;
    font-weight: 800;
    letter-spacing: 0.22em;
    color: var(--bl-white);
    text-decoration: none;
    margin-bottom: 1rem;
    transition: letter-spacing 0.3s ease, color 0.3s ease;
}
.belluma-footer__wordmark:hover {
    letter-spacing: 0.28em;
    color: var(--bl-rose);
}
.belluma-footer__tagline {
    color: rgba(255, 255, 255, 0.6);
    line-height: 1.65;
    font-size: 0.92rem;
    margin: 0 0 1.5rem 0;
    max-width: 420px;
}
.belluma-footer__social {
    display: flex;
    gap: 0.6rem;
    margin-bottom: 1.5rem;
}
.belluma-footer__social-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.06);
    color: rgba(255, 255, 255, 0.7);
    text-decoration: none;
    transition: all 0.25s ease;
}
.belluma-footer__social-link svg {
    width: 18px;
    height: 18px;
}
.belluma-footer__social-link:hover {
    background: var(--bl-rose);
    color: var(--bl-black);
    transform: translateY(-3px) scale(1.05);
}
.belluma-footer__contact {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}
.belluma-footer__contact-line {
    color: rgba(255, 255, 255, 0.7);
    text-decoration: none;
    font-size: 0.88rem;
    transition: color 0.2s ease, transform 0.2s ease;
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
}
.belluma-footer__contact-line span {
    color: var(--bl-gold);
    font-size: 0.9em;
}
a.belluma-footer__contact-line:hover {
    color: var(--bl-white);
    transform: translateX(3px);
}

/* Link columns */
.belluma-footer__col h4 {
    color: var(--bl-white);
    font-family: var(--bl-font-body);
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    margin: 0 0 1.25rem 0;
}
.belluma-footer__col ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}
.belluma-footer__col ul a {
    color: rgba(255, 255, 255, 0.6);
    text-decoration: none;
    font-size: 0.88rem;
    transition: color 0.2s ease, transform 0.2s ease, padding-left 0.25s ease;
    display: inline-block;
}
.belluma-footer__col ul a::before {
    content: '→';
    display: inline-block;
    margin-right: 0;
    opacity: 0;
    width: 0;
    color: var(--bl-rose);
    transition: opacity 0.2s ease, width 0.25s ease, margin-right 0.25s ease;
}
.belluma-footer__col ul a:hover {
    color: var(--bl-white);
}
.belluma-footer__col ul a:hover::before {
    opacity: 1;
    width: 14px;
    margin-right: 6px;
}

/* Newsletter column */
.belluma-footer__newsletter h4 {
    color: var(--bl-white);
    font-family: var(--bl-font-display);
    font-size: 1.1rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-transform: none;
    margin: 0 0 0.75rem 0;
}
.belluma-footer__newsletter p {
    color: rgba(255, 255, 255, 0.6);
    font-size: 0.9rem;
    line-height: 1.6;
    margin: 0 0 1.25rem 0;
}
.belluma-footer__form {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    margin-bottom: 1.25rem;
}
.belluma-footer__form-group {
    display: flex;
    gap: 0.5rem;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: var(--bl-radius-sm);
    padding: 4px;
    transition: border-color 0.2s ease, box-shadow 0.25s ease;
}
.belluma-footer__form-group:focus-within {
    border-color: var(--bl-rose);
    box-shadow: 0 0 0 3px rgba(217, 138, 160, 0.25);
}
.belluma-footer__form-group input {
    flex: 1;
    background: transparent;
    border: 0;
    outline: 0;
    color: var(--bl-white);
    font-size: 0.88rem;
    padding: 0.6rem 0.85rem;
    font-family: var(--bl-font-body);
}
.belluma-footer__form-group input::placeholder { color: rgba(255, 255, 255, 0.4); }
.belluma-footer__form-group button {
    width: 40px;
    height: 40px;
    border-radius: var(--bl-radius-sm);
    background: var(--bl-rose);
    color: var(--bl-black);
    border: 0;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s ease, transform 0.2s ease;
    flex-shrink: 0;
}
.belluma-footer__form-group button:hover {
    background: var(--bl-rose-strong);
    transform: translateX(2px);
}
.belluma-footer__form-group button svg { width: 18px; height: 18px; }
.belluma-footer__form-consent {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    font-size: 0.75rem;
    color: rgba(255, 255, 255, 0.5);
    line-height: 1.5;
    cursor: pointer;
}
.belluma-footer__form-consent input {
    margin-top: 2px;
    accent-color: var(--bl-rose);
}
.belluma-footer__form-consent a {
    color: rgba(255, 255, 255, 0.75);
    text-decoration: underline;
}
.belluma-footer__form-consent a:hover { color: var(--bl-rose); }

/* Compliance badges */
.belluma-footer__compliance {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}
.belluma-footer__badge {
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    padding: 0.35rem 0.7rem;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 4px;
    color: rgba(255, 255, 255, 0.7);
}

/* Bottom bar */
.belluma-footer__bottom {
    background: #040404;
    padding: 1.5rem 0;
    border-top: 1px solid rgba(255, 255, 255, 0.06);
}
.belluma-footer__bottom-grid {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 1.5rem;
}
.belluma-footer__copy {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    font-size: 0.78rem;
    color: rgba(255, 255, 255, 0.5);
}
.belluma-footer__firm {
    font-size: 0.72rem;
    color: rgba(255, 255, 255, 0.35);
}
.belluma-footer__pay {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}
.belluma-footer__pay-label {
    font-size: 0.75rem;
    color: rgba(255, 255, 255, 0.5);
    margin-right: 0.25rem;
}
.belluma-footer__pay-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 46px;
    height: 28px;
    padding: 0 0.5rem;
    background: rgba(255, 255, 255, 0.06);
    color: rgba(255, 255, 255, 0.8);
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    border-radius: 4px;
    border: 1px solid rgba(255, 255, 255, 0.08);
    transition: background 0.2s ease;
}
.belluma-footer__pay-icon:hover {
    background: rgba(255, 255, 255, 0.12);
}

@media (max-width: 640px) {
    .belluma-footer__bottom-grid {
        flex-direction: column;
        align-items: flex-start;
        text-align: left;
    }
}

/* ============================================================
   Mobile tweaks
   ============================================================ */
@media (max-width: 768px) {
    .belluma-section { padding: 3rem 0; }
    .belluma-hero { min-height: 60vh; padding: 3rem 0; }
    .belluma-cat-card { padding: 1.25rem; aspect-ratio: 1 / 1.2; }
    .belluma-cat-card__title { font-size: 1.35rem; }
    .woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 0.9rem !important; }
}

/* ============================================================
   PHASE 2 — premium category page
   ============================================================ */

/* Hero entrance choreography. The hero animates orbs in, then the
   kicker / title / lede / chips / stats stagger in. Triggered by JS
   adding .is-revealed once the page is mounted. */
@media (prefers-reduced-motion: no-preference) {
    .belluma-archive-hero__orb { opacity: 0; transition: opacity 1.4s ease-out; }
    .belluma-archive-hero.is-revealed .belluma-archive-hero__orb { opacity: 0.55; }
    .belluma-archive-hero__crumbs,
    .belluma-archive-hero__kicker,
    .belluma-archive-hero__title,
    .belluma-archive-hero__lede,
    .belluma-archive-hero__chips,
    .belluma-archive-hero__stats {
        opacity: 0;
        transform: translateY(14px);
        transition: opacity 0.7s cubic-bezier(.22,.68,.36,1), transform 0.7s cubic-bezier(.22,.68,.36,1);
    }
    .belluma-archive-hero.is-revealed .belluma-archive-hero__crumbs { transition-delay: 0.1s; }
    .belluma-archive-hero.is-revealed .belluma-archive-hero__kicker  { transition-delay: 0.2s; }
    .belluma-archive-hero.is-revealed .belluma-archive-hero__title   { transition-delay: 0.3s; }
    .belluma-archive-hero.is-revealed .belluma-archive-hero__lede    { transition-delay: 0.45s; }
    .belluma-archive-hero.is-revealed .belluma-archive-hero__chips   { transition-delay: 0.6s; }
    .belluma-archive-hero.is-revealed .belluma-archive-hero__stats   { transition-delay: 0.75s; }
    .belluma-archive-hero.is-revealed .belluma-archive-hero__crumbs,
    .belluma-archive-hero.is-revealed .belluma-archive-hero__kicker,
    .belluma-archive-hero.is-revealed .belluma-archive-hero__title,
    .belluma-archive-hero.is-revealed .belluma-archive-hero__lede,
    .belluma-archive-hero.is-revealed .belluma-archive-hero__chips,
    .belluma-archive-hero.is-revealed .belluma-archive-hero__stats {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Scroll-reveal for product cards — fade up + slight scale, staggered
   by JS via the --reveal-delay custom property. */
@media (prefers-reduced-motion: no-preference) {
    .woocommerce ul.products li.product.belluma-reveal {
        opacity: 0;
        transform: translateY(20px) scale(0.985);
        transition: opacity 0.55s ease-out var(--reveal-delay, 0ms),
                    transform 0.55s cubic-bezier(.22,.68,.36,1) var(--reveal-delay, 0ms);
    }
    .woocommerce ul.products li.product.belluma-reveal.is-revealed {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

/* 3D tilt on cards adds a subtle perspective lift. JS writes the
   transform on mousemove. We add a transform-style and fallback transition
   so the lift looks smooth and reverts on mouseleave. */
.woocommerce ul.products li.product {
    transform-style: preserve-3d;
    transition: transform 0.3s cubic-bezier(.22,.68,.36,1), box-shadow 0.3s ease;
    will-change: transform;
}
.woocommerce ul.products li.product:hover {
    box-shadow: 0 18px 40px rgba(15, 15, 15, 0.08);
    z-index: 2;
}

/* Quick-view trigger — appears on card image hover. Sits top-left to
   stay clear of the wishlist heart at top-right. */
.belluma-qv-trigger {
    position: absolute;
    top: 0.65rem;
    left: 0.65rem;
    z-index: 8;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    color: var(--bl-black);
    border: 1px solid var(--bl-grey-200);
    border-radius: 99px;
    padding: 0.45rem 0.85rem;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    cursor: pointer;
    opacity: 0;
    transform: translateY(-6px);
    transition: opacity 0.2s ease, transform 0.2s ease, background 0.2s ease, color 0.2s ease;
    box-shadow: 0 4px 14px rgba(0,0,0,0.08);
}
.belluma-qv-trigger:hover {
    background: var(--bl-black);
    color: var(--bl-white);
    border-color: var(--bl-black);
}
.woocommerce ul.products li.product:hover .belluma-qv-trigger {
    opacity: 1;
    transform: translateY(0);
}
@media (hover: none) {
    .belluma-qv-trigger { opacity: 1; transform: none; }
}
@media (max-width: 768px) {
    .belluma-qv-trigger span { display: none; }
    .belluma-qv-trigger { padding: 0.5rem; }
}

/* Quick-view modal — full premium overlay with glass panel */
.belluma-qv {
    position: fixed;
    inset: 0;
    z-index: 1000;
    visibility: hidden;
    opacity: 0;
    transition: opacity 0.25s ease, visibility 0.25s ease;
}
.belluma-qv.is-open { visibility: visible; opacity: 1; }
.belluma-qv__backdrop {
    position: absolute; inset: 0;
    background: rgba(15, 15, 15, 0.55);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
}
.belluma-qv__panel {
    position: relative;
    background: var(--bl-white);
    width: min(960px, calc(100vw - 2rem));
    max-height: calc(100vh - 4rem);
    margin: 2rem auto;
    border-radius: var(--bl-radius-lg, 16px);
    overflow: hidden;
    transform: translateY(20px) scale(0.98);
    transition: transform 0.3s cubic-bezier(.22,.68,.36,1);
    box-shadow: 0 30px 80px rgba(0,0,0,0.25);
    top: 50%;
    transform-origin: center;
}
.belluma-qv.is-open .belluma-qv__panel { transform: translateY(-50%) scale(1); }
.belluma-qv__close {
    position: absolute;
    top: 1rem;
    right: 1rem;
    z-index: 5;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: rgba(255,255,255,0.95);
    border: 1px solid var(--bl-grey-200);
    font-size: 1.5rem;
    line-height: 1;
    cursor: pointer;
    color: var(--bl-grey-700);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: all 0.15s ease;
}
.belluma-qv__close:hover { background: var(--bl-black); color: var(--bl-white); border-color: var(--bl-black); }
.belluma-qv__inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    min-height: 480px;
    max-height: calc(100vh - 4rem);
    overflow-y: auto;
}
.belluma-qv__media {
    background: var(--bl-grey-50);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem;
    position: relative;
}
.belluma-qv__media::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 30% 30%, rgba(217,138,160,0.08) 0%, transparent 60%);
    pointer-events: none;
}
.belluma-qv__media img {
    max-width: 100%;
    max-height: 420px;
    object-fit: contain;
    position: relative;
    z-index: 1;
}
.belluma-qv__info {
    padding: 3rem 2.5rem 2rem;
    display: flex;
    flex-direction: column;
}
.belluma-qv__kicker {
    font-size: 0.7rem;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--bl-accent-strong);
    font-weight: 700;
    margin-bottom: 0.75rem;
}
.belluma-qv__title {
    font-family: var(--bl-font-display);
    font-size: clamp(1.35rem, 2.4vw, 1.85rem);
    font-weight: 700;
    line-height: 1.2;
    margin: 0 0 1rem 0;
    letter-spacing: -0.01em;
}
.belluma-qv__price {
    font-size: 1.4rem;
    font-weight: 700;
    color: var(--bl-accent-strong);
    margin-bottom: 1.25rem;
    font-family: var(--bl-font-display);
}
.belluma-qv__price del { color: var(--bl-grey-600); font-weight: 400; font-size: 1rem; margin-right: 0.5rem; }
.belluma-qv__excerpt {
    color: var(--bl-grey-700);
    font-size: 0.95rem;
    line-height: 1.6;
    margin-bottom: 1.5rem;
}
.belluma-qv__inner .belluma-shade-row {
    margin: 0 0 1.75rem;
    justify-content: flex-start;
    overflow-x: auto;
    padding: 0;
}
.belluma-qv__inner .belluma-shade-chip {
    width: 36px; height: 36px;
    flex: 0 0 36px;
}
.belluma-qv__actions {
    margin-top: auto;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    padding-top: 1rem;
    border-top: 1px solid var(--bl-grey-100);
}
.belluma-qv__cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--bl-black);
    color: var(--bl-white) !important;
    padding: 0.95rem 1.5rem;
    border-radius: var(--bl-radius-sm);
    font-weight: 600;
    text-decoration: none;
    transition: all 0.2s ease;
}
.belluma-qv__cta:hover {
    background: var(--bl-accent-strong);
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(0,0,0,0.15);
}
.belluma-qv__link {
    text-align: center;
    color: var(--bl-grey-700);
    font-size: 0.85rem;
    text-decoration: underline;
    text-underline-offset: 4px;
}
.belluma-qv__link:hover { color: var(--bl-black); }

@media (max-width: 768px) {
    .belluma-qv__panel { width: calc(100vw - 1rem); margin: 0.5rem auto; max-height: calc(100vh - 1rem); }
    .belluma-qv__inner { grid-template-columns: 1fr; min-height: auto; }
    .belluma-qv__media { padding: 1.25rem; }
    .belluma-qv__media img { max-height: 280px; }
    .belluma-qv__info { padding: 1.75rem 1.5rem 1.5rem; }
}

/* Empty state — illustrated card with reset CTA */
.belluma-empty {
    grid-column: 1 / -1;
    text-align: center;
    padding: 4rem 2rem;
    max-width: 560px;
    margin: 2rem auto;
    border-radius: var(--bl-radius-lg, 16px);
    background: var(--bl-grey-50);
    position: relative;
    overflow: hidden;
}
.belluma-empty__art {
    position: relative;
    width: 120px;
    height: 120px;
    margin: 0 auto 1.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--bl-grey-600);
}
.belluma-empty__circle {
    position: absolute;
    border-radius: 50%;
    pointer-events: none;
    opacity: 0.6;
}
.belluma-empty__circle:nth-child(1) {
    width: 120px; height: 120px;
    background: var(--bl-accent-soft);
    animation: belluma-pulse 3s ease-in-out infinite;
}
.belluma-empty__circle:nth-child(2) {
    width: 80px; height: 80px;
    background: rgba(201,169,97,0.18);
    animation: belluma-pulse 3s ease-in-out infinite 1s;
}
.belluma-empty__circle:nth-child(3) {
    width: 50px; height: 50px;
    background: rgba(26,36,56,0.1);
    animation: belluma-pulse 3s ease-in-out infinite 2s;
}
.belluma-empty__art svg { position: relative; z-index: 1; }
@keyframes belluma-pulse {
    0%, 100% { transform: scale(1); opacity: 0.6; }
    50%      { transform: scale(1.1); opacity: 0.9; }
}
.belluma-empty__title {
    font-family: var(--bl-font-display);
    font-size: clamp(1.5rem, 3vw, 2rem);
    margin: 0 0 0.75rem 0;
    color: var(--bl-black);
    letter-spacing: -0.01em;
}
.belluma-empty__lede {
    color: var(--bl-grey-700);
    font-size: 1rem;
    line-height: 1.6;
    margin: 0 0 1.75rem 0;
}
.belluma-empty__actions {
    display: inline-flex;
    gap: 0.75rem;
    flex-wrap: wrap;
    justify-content: center;
}
.belluma-empty__btn {
    padding: 0.85rem 1.5rem;
    border-radius: 99px;
    background: var(--bl-white);
    border: 1.5px solid var(--bl-grey-200);
    color: var(--bl-black);
    font-weight: 600;
    text-decoration: none;
    transition: all 0.2s ease;
}
.belluma-empty__btn:hover {
    border-color: var(--bl-black);
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(0,0,0,0.08);
}
.belluma-empty__btn--primary {
    background: var(--bl-black);
    color: var(--bl-white);
    border-color: var(--bl-black);
}
.belluma-empty__btn--primary:hover {
    background: var(--bl-accent-strong);
    border-color: var(--bl-accent-strong);
    color: var(--bl-white);
}

/* FAQ accordion */
.belluma-archive-faq {
    background: var(--bl-grey-50);
    padding: clamp(3rem, 6vw, 5rem) 1.5rem;
    margin-top: 3rem;
}
.belluma-archive-faq__head {
    text-align: center;
    margin-bottom: 2.5rem;
}
.belluma-archive-faq__kicker {
    display: inline-block;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: var(--bl-accent-strong);
    margin-bottom: 0.75rem;
}
.belluma-archive-faq__title {
    font-family: var(--bl-font-display);
    font-size: clamp(1.6rem, 3.5vw, 2.4rem);
    margin: 0;
    letter-spacing: -0.02em;
    color: var(--bl-black);
}
.belluma-archive-faq__list {
    max-width: 760px;
    margin: 0 auto;
}
.belluma-faq-item {
    background: var(--bl-white);
    border-radius: var(--bl-radius-md, 12px);
    border: 1px solid var(--bl-grey-100);
    margin-bottom: 0.75rem;
    overflow: hidden;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.belluma-faq-item[open] {
    border-color: var(--bl-black);
    box-shadow: 0 8px 24px rgba(0,0,0,0.06);
}
.belluma-faq-item summary {
    padding: 1.25rem 1.5rem;
    font-weight: 600;
    font-size: 1rem;
    color: var(--bl-black);
    cursor: pointer;
    list-style: none;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    transition: color 0.15s ease;
}
.belluma-faq-item summary::-webkit-details-marker { display: none; }
.belluma-faq-item summary:hover { color: var(--bl-accent-strong); }
.belluma-faq-item summary em {
    font-style: normal;
    font-size: 1.5rem;
    line-height: 1;
    color: var(--bl-grey-600);
    transition: transform 0.3s cubic-bezier(.22,.68,.36,1), color 0.15s ease;
    flex-shrink: 0;
}
.belluma-faq-item[open] summary em {
    transform: rotate(45deg);
    color: var(--bl-accent-strong);
}
.belluma-faq-item__body {
    padding: 0 1.5rem 1.25rem;
    color: var(--bl-grey-700);
    line-height: 1.65;
    font-size: 0.95rem;
}
.belluma-faq-item__body p { margin: 0; }

/* Body scroll lock when modal/drawer is open */
body.belluma-qv-open { overflow: hidden; }

/* ============================================================
   PHASE 3 — SINGLE PRODUCT page
   ============================================================ */

/* Kicker line above the product title (brand · category) */
.belluma-product-kicker {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.75rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    font-weight: 600;
    color: var(--bl-grey-600);
    margin-bottom: 0.5rem;
}
.belluma-product-kicker__brand {
    color: var(--bl-accent-strong);
    font-weight: 700;
    letter-spacing: 0.22em;
}
.belluma-product-kicker__sep { opacity: 0.5; }

/* Shipping options card */
.belluma-shipping {
    margin: 1.5rem 0 1.25rem;
    border: 1px solid var(--bl-grey-200);
    border-radius: var(--bl-radius-md, 12px);
    overflow: hidden;
    background: var(--bl-white);
    transition: box-shadow 0.25s ease;
}
.belluma-shipping:hover { box-shadow: 0 12px 30px rgba(0,0,0,0.06); }
.belluma-shipping__head {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.95rem 1.15rem;
    background: var(--bl-grey-50);
    border-bottom: 1px solid var(--bl-grey-200);
    color: var(--bl-black);
}
.belluma-shipping__head h3 {
    margin: 0;
    font-family: var(--bl-font-display);
    font-size: 0.95rem;
    font-weight: 700;
    letter-spacing: -0.01em;
}
.belluma-shipping__list {
    list-style: none;
    margin: 0;
    padding: 0;
}
.belluma-shipping__item {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 0.85rem;
    padding: 0.95rem 1.15rem;
    border-bottom: 1px solid var(--bl-grey-100);
    transition: background 0.15s ease;
}
.belluma-shipping__item:last-child { border-bottom: 0; }
.belluma-shipping__item:hover { background: var(--bl-grey-50); }
.belluma-shipping__icon {
    width: 38px; height: 38px;
    border-radius: 50%;
    background: var(--bl-grey-50);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--bl-accent-strong);
    flex-shrink: 0;
    transition: transform 0.2s ease;
}
.belluma-shipping__item:hover .belluma-shipping__icon { transform: scale(1.08); }
.belluma-shipping__info {
    display: flex;
    flex-direction: column;
    line-height: 1.25;
    min-width: 0;
}
.belluma-shipping__info strong {
    font-size: 0.92rem;
    color: var(--bl-black);
    font-weight: 600;
}
.belluma-shipping__eta {
    font-size: 0.75rem;
    color: var(--bl-grey-600);
    margin-top: 0.15rem;
}
.belluma-shipping__cost {
    font-weight: 700;
    color: var(--bl-black);
    font-size: 0.95rem;
    white-space: nowrap;
}
.belluma-shipping__cost em {
    font-style: normal;
    color: #15a45c;
    font-weight: 700;
    text-transform: uppercase;
    font-size: 0.78rem;
    letter-spacing: 0.06em;
    background: rgba(21, 164, 92, 0.1);
    padding: 0.25rem 0.55rem;
    border-radius: 99px;
}
.belluma-shipping__calc {
    font-size: 0.75rem;
    color: var(--bl-grey-600);
    font-weight: 500;
}
.belluma-shipping__note {
    margin: 0;
    padding: 0.7rem 1.15rem;
    background: linear-gradient(90deg, rgba(217,138,160,0.08), rgba(201,169,97,0.08));
    border-top: 1px dashed var(--bl-grey-200);
    font-size: 0.85rem;
    color: var(--bl-grey-700);
    text-align: center;
}
.belluma-shipping__note strong { color: var(--bl-accent-strong); }

/* Olfactive notes pyramid (perfumes) */
.belluma-notes {
    background: linear-gradient(180deg, var(--bl-white) 0%, var(--bl-grey-50) 100%);
    padding: clamp(2.5rem, 5vw, 4rem) 1.5rem;
    margin: 3rem 0;
    border-radius: var(--bl-radius-lg, 18px);
    position: relative;
    overflow: hidden;
}
.belluma-notes::before {
    content: '';
    position: absolute;
    top: -100px;
    left: -50px;
    width: 300px;
    height: 300px;
    background: radial-gradient(circle, rgba(217,138,160,0.18) 0%, transparent 70%);
    filter: blur(40px);
    pointer-events: none;
}
.belluma-notes::after {
    content: '';
    position: absolute;
    bottom: -120px;
    right: -50px;
    width: 320px;
    height: 320px;
    background: radial-gradient(circle, rgba(201,169,97,0.18) 0%, transparent 70%);
    filter: blur(40px);
    pointer-events: none;
}
.belluma-notes__head {
    text-align: center;
    max-width: 620px;
    margin: 0 auto 2.5rem;
    position: relative;
    z-index: 1;
}
.belluma-notes__kicker {
    display: inline-block;
    font-size: 0.72rem;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: var(--bl-accent-strong);
    font-weight: 700;
    margin-bottom: 0.75rem;
}
.belluma-notes__title {
    font-family: var(--bl-font-display);
    font-size: clamp(1.6rem, 3.4vw, 2.4rem);
    margin: 0 0 0.75rem 0;
    letter-spacing: -0.02em;
    color: var(--bl-black);
}
.belluma-notes__lede {
    color: var(--bl-grey-700);
    font-size: 1rem;
    line-height: 1.6;
    margin: 0;
}
.belluma-notes__pyramid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.25rem;
    max-width: 1100px;
    margin: 0 auto;
    position: relative;
    z-index: 1;
}
.belluma-notes__col {
    background: var(--bl-white);
    border-radius: var(--bl-radius-md, 12px);
    padding: 2rem 1.5rem;
    text-align: center;
    border-top: 4px solid transparent;
    box-shadow: 0 6px 24px rgba(0,0,0,0.04);
    transition: transform 0.3s cubic-bezier(.22,.68,.36,1), box-shadow 0.3s ease;
}
.belluma-notes__col:hover {
    transform: translateY(-6px);
    box-shadow: 0 16px 40px rgba(0,0,0,0.08);
}
.belluma-notes__col--top    { border-top-color: var(--bl-accent-strong); }
.belluma-notes__col--heart  { border-top-color: var(--bl-accent-soft); }
.belluma-notes__col--base   { border-top-color: var(--bl-grey-700); }
.belluma-notes__col-kicker {
    display: inline-block;
    font-size: 0.68rem;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--bl-grey-600);
    font-weight: 700;
    margin-bottom: 0.5rem;
}
.belluma-notes__col h3 {
    font-family: var(--bl-font-display);
    font-size: 1.25rem;
    margin: 0 0 1.25rem 0;
    letter-spacing: -0.01em;
    color: var(--bl-black);
}
.belluma-notes__col ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    justify-content: center;
}
.belluma-notes__col li {
    display: inline-flex;
    align-items: center;
    padding: 0.4rem 0.8rem;
    background: var(--bl-grey-50);
    border: 1px solid var(--bl-grey-100);
    border-radius: 99px;
    font-size: 0.82rem;
    color: var(--bl-grey-700);
    transition: all 0.15s ease;
}
.belluma-notes__col li:hover {
    background: var(--bl-black);
    color: var(--bl-white);
    border-color: var(--bl-black);
    transform: translateY(-2px);
}
@media (max-width: 768px) {
    .belluma-notes__pyramid { grid-template-columns: 1fr; }
}

/* Recently viewed strip */
.belluma-recently {
    margin: 4rem 0 2rem;
    padding: 0 1.5rem;
}
.belluma-recently__head {
    text-align: center;
    margin-bottom: 1.75rem;
}
.belluma-recently__kicker {
    display: inline-block;
    font-size: 0.72rem;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: var(--bl-accent-strong);
    font-weight: 700;
    margin-bottom: 0.5rem;
}
.belluma-recently__title {
    font-family: var(--bl-font-display);
    font-size: clamp(1.4rem, 2.8vw, 2rem);
    margin: 0;
    letter-spacing: -0.02em;
}
.belluma-recently__list {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 1rem;
    list-style: none;
    padding: 0;
    margin: 0 auto;
    max-width: 1280px;
}
.belluma-recently__list li a {
    display: block;
    text-decoration: none;
    color: inherit;
    background: var(--bl-white);
    border: 1px solid var(--bl-grey-100);
    border-radius: var(--bl-radius-md, 12px);
    padding: 1rem;
    transition: all 0.25s cubic-bezier(.22,.68,.36,1);
}
.belluma-recently__list li a:hover {
    transform: translateY(-4px);
    box-shadow: 0 16px 30px rgba(0,0,0,0.08);
    border-color: var(--bl-grey-200);
}
.belluma-recently__img {
    aspect-ratio: 1 / 1;
    margin-bottom: 0.75rem;
    background: var(--bl-grey-50);
    border-radius: var(--bl-radius-sm, 8px);
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
}
.belluma-recently__img img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    transition: transform 0.4s ease;
}
.belluma-recently__list li a:hover img { transform: scale(1.05); }
.belluma-recently__list strong {
    display: block;
    font-size: 0.78rem;
    line-height: 1.35;
    color: var(--bl-black);
    margin-bottom: 0.25rem;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}
.belluma-recently__list span {
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--bl-accent-strong);
    font-family: var(--bl-font-display);
}
@media (max-width: 1024px) {
    .belluma-recently__list { grid-template-columns: repeat(4, 1fr); }
}
@media (max-width: 640px) {
    .belluma-recently__list { grid-template-columns: repeat(2, 1fr); gap: 0.6rem; }
    .belluma-recently__list li a { padding: 0.6rem; }
}

/* Sticky add-to-cart bar (bottom on all devices) */
.belluma-stickybar {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 90;
    background: rgba(255,255,255,0.97);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border-top: 1px solid var(--bl-grey-200);
    box-shadow: 0 -10px 30px rgba(0,0,0,0.08);
    transform: translateY(100%);
    transition: transform 0.35s cubic-bezier(.22,.68,.36,1);
}
.belluma-stickybar.is-visible { transform: translateY(0); }
.belluma-stickybar__inner {
    display: flex;
    align-items: center;
    gap: 1.2rem;
    padding: 0.8rem 1.5rem;
    max-width: 1280px;
    margin: 0 auto;
}
.belluma-stickybar__img {
    width: 56px;
    height: 56px;
    border-radius: var(--bl-radius-sm, 8px);
    object-fit: contain;
    background: var(--bl-grey-50);
    border: 1px solid var(--bl-grey-100);
    flex-shrink: 0;
}
.belluma-stickybar__info {
    flex: 1;
    display: flex;
    flex-direction: column;
    line-height: 1.25;
    min-width: 0;
}
.belluma-stickybar__info strong {
    font-size: 0.92rem;
    color: var(--bl-black);
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.belluma-stickybar__price {
    font-weight: 700;
    color: var(--bl-accent-strong);
    font-size: 1rem;
    margin-top: 0.2rem;
    font-family: var(--bl-font-display);
}
.belluma-stickybar__price .woocommerce-Price-amount { color: inherit; }
.belluma-stickybar__price del { color: var(--bl-grey-600); font-weight: 400; margin-right: 0.4rem; font-size: 0.85rem; }
.belluma-stickybar__cta {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    background: var(--bl-black);
    color: var(--bl-white);
    border: 0;
    padding: 0.9rem 1.6rem;
    border-radius: 99px;
    font-weight: 600;
    font-size: 0.95rem;
    cursor: pointer;
    transition: all 0.2s ease;
    flex-shrink: 0;
    white-space: nowrap;
}
.belluma-stickybar__cta:hover {
    background: var(--bl-accent-strong);
    transform: translateY(-2px);
    box-shadow: 0 10px 24px rgba(217,138,160,0.4);
}
@media (max-width: 600px) {
    .belluma-stickybar__inner { padding: 0.6rem 1rem; gap: 0.7rem; }
    .belluma-stickybar__img { width: 46px; height: 46px; }
    .belluma-stickybar__info strong { font-size: 0.82rem; }
    .belluma-stickybar__price { font-size: 0.88rem; }
    .belluma-stickybar__cta { padding: 0.7rem 1rem; font-size: 0.85rem; }
    .belluma-stickybar__cta svg { display: none; }
}

/* Padding bottom on single product so sticky bar doesn't cover footer links.
   The bar is ~78px tall, plus we add breathing room. */
body.single-product { padding-bottom: 110px !important; }
@media (max-width: 600px) {
    body.single-product { padding-bottom: 95px !important; }
}

/* Breadcrumbs on single product (Kadence) — make them visible and editorial */
.single-product .product-title.product-above {
    padding-top: 1.75rem !important;
    margin-bottom: 2.5rem !important;
}
.single-product .product-title.product-above .kadence-breadcrumbs,
.single-product nav.kadence-breadcrumbs {
    margin: 0 0 2rem 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    font-size: 0.85rem !important;
    line-height: 1.5 !important;
    color: var(--bl-grey-700) !important;
    display: block !important;
}
.single-product .kadence-breadcrumb-container {
    color: var(--bl-grey-700) !important;
}
.single-product .kadence-breadcrumb-container a,
.single-product .kadence-breadcrumb-container a span {
    color: var(--bl-grey-600) !important;
    text-decoration: none !important;
    transition: color 0.15s ease;
    font-weight: 500 !important;
}
.single-product .kadence-breadcrumb-container a:hover,
.single-product .kadence-breadcrumb-container a:hover span {
    color: var(--bl-accent-strong) !important;
}
.single-product .kadence-breadcrumb-container .bc-delimiter {
    color: var(--bl-grey-300, #d4d4d4) !important;
    margin: 0 0.4rem !important;
    opacity: 0.7;
}
.single-product .kadence-breadcrumb-container .kadence-bread-current {
    color: var(--bl-black) !important;
    font-weight: 600 !important;
}

/* Pulse animation when sticky CTA scrolls back to main ATC */
@keyframes belluma-pulse-keys {
    0%   { box-shadow: 0 0 0 0 rgba(217, 138, 160, 0.55); }
    70%  { box-shadow: 0 0 0 18px rgba(217, 138, 160, 0); }
    100% { box-shadow: 0 0 0 0 rgba(217, 138, 160, 0); }
}
.belluma-pulse {
    animation: belluma-pulse-keys 1s cubic-bezier(.22,.68,.36,1);
}

/* Image zoom wrap on single product gallery */
.belluma-zoom-wrap {
    overflow: hidden !important;
    cursor: zoom-in;
}
.belluma-zoom-wrap img {
    transition: transform 0.3s cubic-bezier(.22,.68,.36,1);
}

/* Tab styling — premium pill underline morph */
.single-product .woocommerce-tabs ul.tabs {
    display: flex !important;
    gap: 0.5rem !important;
    padding: 0 !important;
    margin: 0 0 2rem 0 !important;
    border-bottom: 1px solid var(--bl-grey-200) !important;
    list-style: none !important;
    flex-wrap: wrap;
}
.single-product .woocommerce-tabs ul.tabs::before,
.single-product .woocommerce-tabs ul.tabs::after,
.single-product .woocommerce-tabs ul.tabs li::before,
.single-product .woocommerce-tabs ul.tabs li::after {
    display: none !important;
}
.single-product .woocommerce-tabs ul.tabs li {
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    position: relative;
}
.single-product .woocommerce-tabs ul.tabs li a {
    display: inline-flex;
    align-items: center;
    padding: 0.95rem 1.25rem !important;
    color: var(--bl-grey-600) !important;
    font-weight: 600;
    font-size: 0.92rem;
    letter-spacing: -0.005em;
    text-decoration: none !important;
    transition: color 0.2s ease;
    position: relative;
}
.single-product .woocommerce-tabs ul.tabs li a:hover { color: var(--bl-black) !important; }
.single-product .woocommerce-tabs ul.tabs li.active a { color: var(--bl-black) !important; }
.single-product .woocommerce-tabs ul.tabs li::after {
    content: '' !important;
    display: block !important;
    position: absolute;
    bottom: -1px;
    left: 1.25rem;
    right: 1.25rem;
    height: 2px;
    background: var(--bl-black);
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform 0.3s cubic-bezier(.22,.68,.36,1);
    border: 0 !important;
    border-radius: 0 !important;
    z-index: 1;
}
.single-product .woocommerce-tabs ul.tabs li.active::after { transform: scaleX(1); }
.single-product .woocommerce-tabs .panel {
    padding: 1.5rem 0 !important;
    border: 0 !important;
    background: transparent !important;
    color: var(--bl-grey-700);
    line-height: 1.7;
    font-size: 0.98rem;
}
.single-product .woocommerce-tabs .panel h2,
.single-product .woocommerce-tabs .panel h3 {
    font-family: var(--bl-font-display);
    color: var(--bl-black);
}

/* Shipping & Returns tab content */
.belluma-tab-shipping__cols {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2.5rem;
}
.belluma-tab-shipping h3 {
    font-size: 1.15rem;
    margin: 0 0 0.85rem 0;
    color: var(--bl-black);
}
.belluma-tab-shipping ul {
    list-style: none;
    padding: 0;
    margin: 1rem 0 0 0;
}
.belluma-tab-shipping li {
    padding: 0.55rem 0;
    border-bottom: 1px solid var(--bl-grey-100);
    color: var(--bl-grey-700);
}
.belluma-tab-shipping li:last-child { border-bottom: 0; }
.belluma-tab-shipping li strong { color: var(--bl-black); }
.belluma-tab-shipping__link {
    display: inline-block;
    margin-top: 1rem;
    color: var(--bl-accent-strong);
    text-decoration: none;
    font-weight: 600;
    border-bottom: 1px solid currentColor;
    padding-bottom: 2px;
}
.belluma-tab-shipping__link:hover { color: var(--bl-black); }
@media (max-width: 768px) {
    .belluma-tab-shipping__cols { grid-template-columns: 1fr; gap: 1.75rem; }
}

