/* Belvio Theme - Main Stylesheet
   Inspired by WoodMart - Clean, Modern, Fast
   ========================================== */

/* CSS Custom Properties */
:root {
    --belvio-primary: #c65f86;
    --belvio-primary-dark: #7c405a;
    --belvio-primary-light: #f0a8c2;
    --belvio-secondary: #7c405a;
    --belvio-accent: #d8a15f;
    --belvio-text: #333333;
    --belvio-text-light: #666666;
    --belvio-text-lighter: #999999;
    --belvio-bg: #ffffff;
    --belvio-bg-light: #fff7f9;
    --belvio-bg-dark: #24141c;
    --belvio-border: #ead8df;
    --belvio-border-light: #f5e8ed;
    --belvio-success: #c65f86;
    --belvio-warning: #ffc107;
    --belvio-error: #dc3545;
    --belvio-info: #17a2b8;
    --belvio-font: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    --belvio-font-heading: 'Poppins', 'Inter', sans-serif;
    --belvio-radius-sm: 4px;
    --belvio-radius: 8px;
    --belvio-radius-lg: 12px;
    --belvio-shadow-sm: 0 1px 3px rgba(0,0,0,0.08);
    --belvio-shadow: 0 4px 12px rgba(0,0,0,0.1);
    --belvio-shadow-lg: 0 8px 30px rgba(0,0,0,0.12);
    --belvio-shadow-hover: 0 8px 25px rgba(0,0,0,0.15);
    --belvio-ease-out: cubic-bezier(0.23, 1, 0.32, 1);
    --belvio-ease-in-out: cubic-bezier(0.77, 0, 0.175, 1);
    --belvio-ease-drawer: cubic-bezier(0.32, 0.72, 0, 1);
    --belvio-transition: 0.25s var(--belvio-ease-out);
    --belvio-transition-fast: 0.15s var(--belvio-ease-out);
    /* Press feedback acknowledges a tap before a network wait, so it is short
       and kept even under reduced motion — it scales in place, it does not travel. */
    --belvio-transition-press: 160ms var(--belvio-ease-out);
    /* Skeletons are slowed under reduced motion, never stopped: a placeholder
       that has stopped shimmering reads as content that failed to load. */
    --belvio-duration-skeleton: 1.5s;
    --belvio-duration-skeleton-reduced: 3s;
    --belvio-header-h: 80px;
    --belvio-topbar-h: 40px;
    --belvio-container: 1200px;
    --belvio-bottom-nav-h: 60px;
}

html[dir="rtl"],
html[lang^="ar"] {
    --belvio-font: 'Cairo', 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --belvio-font-heading: 'Cairo', 'Poppins', 'Inter', sans-serif;
}

html[dir="rtl"] body,
html[lang^="ar"] body {
    direction: rtl;
    text-align: right;
}

/* Reset & Base */
*, *::before, *::after {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
    -webkit-text-size-adjust: 100%;
}

body {
    margin: 0;
    font-family: var(--belvio-font);
    font-size: 16px;
    line-height: 1.6;
    color: var(--belvio-text);
    background: var(--belvio-bg);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    overflow-x: hidden;
}

#page {
    width: 100%;
    max-width: 100vw;
    overflow-x: hidden;
}

/* Container */
.container {
    max-width: var(--belvio-container);
    margin: 0 auto;
    padding: 0 20px;
}

.container-fluid {
    max-width: 100%;
    padding: 0 30px;
}

/* Typography */
h1, h2, h3, h4, h5, h6 {
    font-family: var(--belvio-font-heading);
    font-weight: 600;
    line-height: 1.3;
    margin: 0 0 16px;
    color: var(--belvio-text);
}

h1 { font-size: 2rem; }
h2 { font-size: 1.5rem; }
h3 { font-size: 1.25rem; }
h4 { font-size: 1.125rem; }

p { margin: 0 0 16px; }

a {
    color: var(--belvio-primary);
    text-decoration: none;
    transition: color var(--belvio-transition-fast);
}

a:hover {
    color: var(--belvio-primary-dark);
}

img {
    max-width: 100%;
    height: auto;
    display: block;
}

/* Buttons */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 12px 24px;
    border: 2px solid transparent;
    border-radius: var(--belvio-radius);
    font-family: var(--belvio-font);
    font-size: 14px;
    font-weight: 600;
    line-height: 1;
    cursor: pointer;
    transition: background-color var(--belvio-transition-fast),
        border-color var(--belvio-transition-fast),
        color var(--belvio-transition-fast),
        box-shadow var(--belvio-transition-fast),
        transform var(--belvio-transition-fast);
    text-decoration: none;
    white-space: nowrap;
}

.btn:active {
    transform: scale(0.97);
}

.btn-primary {
    background: var(--belvio-primary);
    color: #fff;
    border-color: var(--belvio-primary);
}

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

.btn-secondary {
    background: transparent;
    color: var(--belvio-text);
    border-color: var(--belvio-border);
}

.btn-secondary:hover {
    border-color: var(--belvio-primary);
    color: var(--belvio-primary);
}

.btn-outline {
    background: transparent;
    color: var(--belvio-primary);
    border-color: var(--belvio-primary);
}

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

.btn-sm {
    padding: 8px 16px;
    font-size: 13px;
}

.btn-lg {
    padding: 16px 32px;
    font-size: 16px;
}

/* ========== TOP BAR ========== */
.top-bar {
    background: linear-gradient(90deg, #24141c, #7c405a 58%, #c65f86);
    color: rgba(255,255,255,0.82);
    font-size: 13px;
    height: var(--belvio-topbar-h);
}

.top-bar-content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: var(--belvio-topbar-h);
}

.top-bar-text {
    display: flex;
    align-items: center;
    gap: 6px;
}

.top-bar-menu-list {
    display: flex;
    align-items: center;
    gap: 16px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.top-bar-menu-list a {
    color: rgba(255,255,255,0.82);
    font-size: 13px;
    transition: color var(--belvio-transition-fast);
}

.top-bar-menu-list a:hover {
    color: #fff;
}

/* ========== HEADER ========== */
.site-header {
    background: rgba(255,255,255,0.96);
    border-bottom: 1px solid var(--belvio-border-light);
    box-shadow: 0 12px 32px rgba(124,64,90,0.06);
    position: relative;
}

.site-header.header-sticky {
    position: sticky;
    top: 0;
    z-index: 1000;
}

.header-main {
    padding: 0;
}

.header-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: var(--belvio-header-h);
    gap: 20px;
}

.header-left,
.header-right {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-shrink: 0;
}

.header-center {
    flex: 1;
    display: flex;
    justify-content: center;
}

/* Branding */
.site-branding {
    display: flex;
    align-items: center;
}

.site-title {
    margin: 0;
    font-size: 1.5rem;
    font-weight: 700;
    font-family: var(--belvio-font-heading);
}

.site-title a {
    color: var(--belvio-primary-dark);
}

.custom-logo {
    max-height: 50px;
    width: auto;
}

/* Mobile Menu Toggle */
.mobile-menu-toggle {
    display: none;
    background: none;
    border: none;
    cursor: pointer;
    padding: 8px;
    flex-direction: column;
    gap: 5px;
}

.mobile-menu-toggle span {
    display: block;
    width: 24px;
    height: 2px;
    background: var(--belvio-text);
    border-radius: 2px;
    transition: background-color var(--belvio-transition-fast), transform var(--belvio-transition-fast), width var(--belvio-transition-fast);
}

/* ========== PRIMARY NAVIGATION ========== */
.main-navigation .primary-menu {
    display: flex;
    align-items: center;
    gap: 0;
    margin: 0;
    padding: 0;
    list-style: none;
}

.main-navigation .primary-menu > li {
    position: relative;
}

.main-navigation .primary-menu > li > a {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 28px 16px;
    font-size: 14px;
    font-weight: 500;
    color: var(--belvio-text);
    text-decoration: none;
    transition: color var(--belvio-transition-fast);
    position: relative;
}

.main-navigation .primary-menu > li > a::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 16px;
    right: 16px;
    height: 3px;
    background: var(--belvio-primary);
    transform: scaleX(0);
    transition: transform var(--belvio-transition);
}

.main-navigation .primary-menu > li:hover > a,
.main-navigation .primary-menu > li.current-menu-item > a {
    color: var(--belvio-primary);
}

/* The current-item underline is a state indicator, not hover motion — it must
   stay ungated so touch users can still see where they are. */
.main-navigation .primary-menu > li.current-menu-item > a::after {
    transform: scaleX(1);
}

/* Hover motion is gated: on touch it fires on tap and sticks after the finger
   lifts, leaving a stale underline under an item the visitor has left. */
@media (hover: hover) and (pointer: fine) {
    .main-navigation .primary-menu > li:hover > a::after {
        transform: scaleX(1);
    }
}

.menu-toggle-icon {
    display: inline-flex;
    align-items: center;
    margin-left: 4px;
    transition: transform var(--belvio-transition-fast);
}

/* :focus-within stays ungated — it is how the chevron flips for keyboard users
   and, below 1024px, for touch (navigation.js preventDefaults the click, so the
   link keeps focus). */
.main-navigation .primary-menu > li:focus-within > a .menu-toggle-icon {
    transform: rotate(180deg);
}

@media (hover: hover) and (pointer: fine) {
    .main-navigation .primary-menu > li:hover > a .menu-toggle-icon {
        transform: rotate(180deg);
    }
}

/* Mega Menu Dropdown */
.sub-menu.mega-sub-menu {
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 220px;
    background: var(--belvio-bg);
    border: 1px solid var(--belvio-border-light);
    border-radius: 0 0 var(--belvio-radius) var(--belvio-radius);
    box-shadow: var(--belvio-shadow-lg);
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px);
    transition: opacity var(--belvio-transition), transform var(--belvio-transition), visibility 0s linear 250ms;
    z-index: 999;
    padding: 8px 0;
    margin: 0;
    list-style: none;
}

/* :focus-within is the touch path and is deliberately ungated: navigation.js
   preventDefaults the parent link below 1024px, so the link holds focus and the
   submenu opens. Gating this half too would leave touch with no way in. */
.main-navigation .menu-item:focus-within > .sub-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    transition-delay: 0s;
}

@media (hover: hover) and (pointer: fine) {
    .main-navigation .menu-item:hover > .sub-menu {
        opacity: 1;
        visibility: visible;
        transform: translateY(0);
        transition-delay: 0s;
    }
}

.sub-menu .menu-item a {
    display: block;
    padding: 10px 20px;
    font-size: 14px;
    color: var(--belvio-text-light);
    transition: color var(--belvio-transition-fast), background-color var(--belvio-transition-fast), padding-left var(--belvio-transition-fast), padding-right var(--belvio-transition-fast);
}

.sub-menu .menu-item a:hover {
    color: var(--belvio-primary);
    background: var(--belvio-bg-light);
    padding-left: 24px;
}

/* Sub-menu: secondary menus open from the logical start side. */
.sub-menu .sub-menu {
    top: 0;
    left: 100%;
    right: auto;
    inset-inline-start: 100%;
    inset-inline-end: auto;
    border-radius: var(--belvio-radius);
}

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

/* Categories Nav */
.header-categories-nav {
    background: var(--belvio-bg-light);
    border-bottom: 1px solid var(--belvio-border-light);
}

.categories-menu {
    display: flex;
    align-items: center;
    gap: 0;
    margin: 0;
    padding: 0;
    list-style: none;
    overflow-x: auto;
}

.categories-menu > li > a {
    display: block;
    padding: 10px 16px;
    font-size: 13px;
    font-weight: 500;
    color: var(--belvio-text-light);
    white-space: nowrap;
    transition: color var(--belvio-transition-fast);
}

.categories-menu > li > a:hover {
    color: var(--belvio-primary);
}

/* ========== HEADER RIGHT ========== */
.header-search {
    position: relative;
}

.search-toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    background: none;
    border: none;
    cursor: pointer;
    color: var(--belvio-text);
    border-radius: 50%;
    transition: background var(--belvio-transition-fast);
}

.search-toggle:hover {
    background: var(--belvio-bg-light);
}

.search-form-container {
    position: absolute;
    top: 100%;
    right: 0;
    width: 340px;
    background: var(--belvio-bg);
    border: 1px solid var(--belvio-border);
    border-radius: var(--belvio-radius);
    box-shadow: var(--belvio-shadow-lg);
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px);
    transition: opacity var(--belvio-transition), transform var(--belvio-transition), visibility 0s linear 250ms;
    z-index: 999;
    padding: 16px;
}

.search-form-container.active {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    transition-delay: 0s;
}

.belvio-search-form {
    display: flex;
    gap: 8px;
}

.search-input {
    flex: 1;
    padding: 10px 14px;
    border: 1px solid var(--belvio-border);
    border-radius: var(--belvio-radius-sm);
    font-family: var(--belvio-font);
    font-size: 14px;
    outline: none;
    transition: border-color var(--belvio-transition-fast);
}

.search-input:focus {
    border-color: var(--belvio-primary);
}

.search-submit {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    background: var(--belvio-primary);
    border: none;
    border-radius: var(--belvio-radius-sm);
    cursor: pointer;
    color: #fff;
    transition: background var(--belvio-transition-fast);
}

.search-submit:hover {
    background: var(--belvio-primary-dark);
}

.search-results-dropdown {
    margin-top: 12px;
    max-height: 360px;
    overflow-y: auto;
}

.search-results-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 0 2px 8px;
    color: var(--belvio-text-light);
    font-size: 12px;
    font-weight: 800;
}

.search-results-head a {
    color: var(--belvio-primary);
    font-size: 12px;
}

.search-result-item {
    display: flex;
    gap: 12px;
    padding: 10px;
    border-radius: var(--belvio-radius-sm);
    transition: background var(--belvio-transition-fast);
}

.search-result-item:hover {
    background: var(--belvio-bg-light);
}

.search-result-image {
    width: 50px;
    height: 50px;
    flex-shrink: 0;
    border-radius: var(--belvio-radius-sm);
    overflow: hidden;
}

.search-result-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.search-result-info {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

.search-result-title {
    font-size: 14px;
    font-weight: 800;
    color: var(--belvio-text);
    line-height: 1.35;
}

.search-result-price {
    font-size: 13px;
    color: var(--belvio-primary);
    font-weight: 600;
}

.search-result-meta {
    display: flex;
    align-items: center;
    gap: 5px;
    flex-wrap: wrap;
    color: var(--belvio-text-lighter);
    font-size: 11px;
}

.search-result-badge,
.belvio-offer-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 22px;
    padding: 3px 8px;
    color: #fff;
    background: var(--belvio-accent);
    border-radius: var(--belvio-radius-sm);
    font-size: 11px;
    font-weight: 900;
    line-height: 1;
}

.ajax-search-empty {
    display: grid;
    gap: 8px;
    padding: 14px;
    color: var(--belvio-text-light);
    background: var(--belvio-bg-light);
    border: 1px solid var(--belvio-border-light);
    border-radius: var(--belvio-radius);
    font-size: 13px;
}

.ajax-search-empty strong {
    color: var(--belvio-text);
    font-size: 14px;
}

.ajax-search-suggestions {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.ajax-search-suggestions a {
    padding: 5px 9px;
    color: var(--belvio-primary-dark);
    background: var(--belvio-bg);
    border: 1px solid var(--belvio-border);
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
}

.no-results {
    padding: 16px;
    text-align: center;
    color: var(--belvio-text-lighter);
}

.header-account a,
.header-wishlist a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    color: var(--belvio-text);
    border-radius: 50%;
    transition: color var(--belvio-transition-fast), background-color var(--belvio-transition-fast);
}

.header-account a:hover,
.header-wishlist a:hover {
    color: var(--belvio-primary);
    background: var(--belvio-bg-light);
}

/* Header Cart */
.header-cart {
    position: relative;
}

.cart-link {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    color: var(--belvio-text);
    border-radius: 50%;
    transition: color var(--belvio-transition-fast), background-color var(--belvio-transition-fast);
}

.cart-link:hover {
    color: var(--belvio-primary);
    background: var(--belvio-bg-light);
}

.cart-count {
    position: absolute;
    top: -2px;
    right: -4px;
    min-width: 20px;
    height: 20px;
    padding: 0 6px;
    background: var(--belvio-accent);
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    line-height: 20px;
    text-align: center;
    border-radius: 10px;
}

/* ========== MOBILE MENU ========== */
.mobile-menu-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.5);
    z-index: 9998;
    opacity: 0;
    visibility: hidden;
    transition: opacity 220ms var(--belvio-ease-drawer), visibility 0s linear 220ms;
}

.mobile-menu-overlay.active {
    opacity: 1;
    visibility: visible;
    transition-delay: 0s;
}

/* Mobile Menu Panel - RTL: slide from right (start side) */
.mobile-menu-panel {
    position: fixed;
    top: 0;
    inset-inline-start: 0;
    inset-inline-end: auto;
    bottom: 0;
    width: 320px;
    max-width: 85vw;
    background: var(--belvio-bg);
    z-index: 9999;
    transform: translateX(-100%);
    transition: transform 250ms var(--belvio-ease-drawer);
    overflow-y: auto;
    box-shadow: var(--belvio-shadow-lg);
}

html[dir="rtl"] .mobile-menu-panel {
    transform: translateX(100%);
}

.mobile-menu-panel.active {
    transform: translateX(0);
}
.mobile-menu-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 20px;
    border-bottom: 1px solid var(--belvio-border-light);
}

.mobile-menu-close {
    background: none;
    border: none;
    font-size: 28px;
    cursor: pointer;
    color: var(--belvio-text);
    padding: 0;
    line-height: 1;
}

.mobile-menu {
    list-style: none;
    margin: 0;
    padding: 0;
}

.mobile-menu a {
    display: block;
    padding: 14px 20px;
    font-size: 15px;
    color: var(--belvio-text);
    border-bottom: 1px solid var(--belvio-border-light);
    transition: color var(--belvio-transition-fast);
}

.mobile-menu a:hover {
    color: var(--belvio-primary);
}

/* ========== MAIN CONTENT ========== */
.site-main {
    min-height: 50vh;
    padding: 40px 0;
}

.page-header {
    margin-bottom: 32px;
}

.page-title {
    margin: 0;
    font-size: 1.75rem;
    font-weight: 700;
}

.archive-description {
    margin-top: 8px;
    color: var(--belvio-text-light);
}

/* Content Grid */
.content-grid {
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: 40px;
}

/* ========== POSTS ========== */
.posts-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 30px;
}

.post-card {
    background: var(--belvio-bg);
    border: 1px solid var(--belvio-border-light);
    border-radius: var(--belvio-radius);
    overflow: hidden;
    transition: box-shadow var(--belvio-transition);
}

.post-card:hover {
    box-shadow: var(--belvio-shadow);
}

.post-thumbnail {
    overflow: hidden;
}

.post-thumbnail img {
    width: 100%;
    transition: transform var(--belvio-transition);
}

@media (hover: hover) and (pointer: fine) {
    .post-card:hover .post-thumbnail img {
        transform: scale(1.05);
    }
}

.post-card-content {
    padding: 24px;
}

.entry-meta {
    font-size: 13px;
    color: var(--belvio-text-lighter);
    margin-bottom: 8px;
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

.entry-title {
    font-size: 1.25rem;
    margin-bottom: 12px;
}

.entry-title a {
    color: var(--belvio-text);
}

.entry-title a:hover {
    color: var(--belvio-primary);
}

.entry-summary {
    color: var(--belvio-text-light);
    font-size: 15px;
    margin-bottom: 16px;
}

.read-more {
    font-weight: 600;
    font-size: 14px;
}

/* Single Post */
.single-post .entry-header {
    margin-bottom: 24px;
}

.single-post .post-thumbnail {
    margin-bottom: 24px;
    border-radius: var(--belvio-radius);
    overflow: hidden;
}

.entry-content {
    line-height: 1.8;
    font-size: 16px;
}

.entry-content p {
    margin-bottom: 20px;
}

.entry-footer {
    margin-top: 32px;
    padding-top: 20px;
    border-top: 1px solid var(--belvio-border-light);
}

.post-tags {
    font-size: 14px;
    color: var(--belvio-text-light);
}

.post-tags a {
    display: inline-block;
    padding: 4px 12px;
    background: var(--belvio-bg-light);
    border-radius: var(--belvio-radius-sm);
    font-size: 13px;
    margin: 2px;
}

.post-navigation {
    display: flex;
    justify-content: space-between;
    margin-top: 32px;
    padding-top: 20px;
    border-top: 1px solid var(--belvio-border-light);
}

/* ========== SIDEBAR ========== */
.widget-area {
    position: sticky;
    top: 100px;
    align-self: start;
}

.widget {
    margin-bottom: 30px;
    padding: 24px;
    background: var(--belvio-bg-light);
    border-radius: var(--belvio-radius);
}

.widget-title {
    font-size: 1rem;
    font-weight: 600;
    margin-bottom: 16px;
    padding-bottom: 12px;
    border-bottom: 2px solid var(--belvio-primary);
}

.widget ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

.widget ul li {
    padding: 8px 0;
    border-bottom: 1px solid var(--belvio-border-light);
}

.widget ul li:last-child {
    border-bottom: none;
}

.widget ul li a {
    color: var(--belvio-text-light);
    font-size: 14px;
}

.widget ul li a:hover {
    color: var(--belvio-primary);
}

/* ========== 404 PAGE ========== */
.error-404 {
    text-align: center;
    padding: 60px 20px;
}

.error-404 .page-title {
    font-size: 3rem;
    margin-bottom: 16px;
}

.error-404 .page-content p {
    font-size: 18px;
    color: var(--belvio-text-light);
    margin-bottom: 32px;
}

.\34 04-actions {
    display: flex;
    justify-content: center;
    gap: 16px;
    margin-bottom: 32px;
}

/* ========== PAGINATION ========== */
.pagination,
.woocommerce-pagination {
    margin-top: 40px;
}

.pagination .nav-links,
.woocommerce-pagination .page-numbers {
    display: flex;
    gap: 8px;
    justify-content: center;
}

.page-numbers {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    height: 40px;
    padding: 0 12px;
    background: var(--belvio-bg);
    border: 1px solid var(--belvio-border);
    border-radius: var(--belvio-radius-sm);
    font-size: 14px;
    color: var(--belvio-text);
    transition: background-color var(--belvio-transition-fast), border-color var(--belvio-transition-fast), color var(--belvio-transition-fast);
}

.page-numbers:hover,
.page-numbers.current {
    background: var(--belvio-primary);
    border-color: var(--belvio-primary);
    color: #fff;
}

/* ========== FOOTER ========== */
.site-footer {
    background: var(--belvio-bg-dark);
    color: #ccc;
    margin-top: 60px;
}

.footer-widgets {
    padding: 60px 0 40px;
}

.footer-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 30px;
}

.footer-column .widget {
    background: none;
    padding: 0;
}

.footer-column .widget-title {
    color: #fff;
    border-bottom-color: var(--belvio-primary);
    margin-bottom: 20px;
}

.footer-column p {
    font-size: 14px;
    line-height: 1.7;
    color: #999;
}

.footer-column ul li {
    border-bottom-color: rgba(255,255,255,0.1);
}

.footer-column ul li a {
    color: #999;
}

.footer-column ul li a:hover {
    color: var(--belvio-primary-light);
}

.footer-bottom {
    padding: 20px 0;
    border-top: 1px solid rgba(255,255,255,0.1);
}

.footer-bottom-content {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.footer-copyright {
    font-size: 13px;
    color: #999;
}

.footer-payments {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 13px;
    color: #999;
}

.footer-payments img {
    height: 24px;
    width: auto;
}

/* ========== QUICK VIEW MODAL ========== */
.quick-view-modal {
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    transition: opacity var(--belvio-transition), visibility var(--belvio-transition);
}

.quick-view-modal.active {
    opacity: 1;
    visibility: visible;
}

.quick-view-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.6);
}

.quick-view-content {
    position: relative;
    width: 90%;
    max-width: 900px;
    max-height: 85vh;
    background: var(--belvio-bg);
    border-radius: var(--belvio-radius-lg);
    box-shadow: var(--belvio-shadow-lg);
    overflow-y: auto;
    transform: translateY(16px) scale(0.98);
    transition: transform var(--belvio-transition);
}

.quick-view-modal.active .quick-view-content {
    transform: translateY(0) scale(1);
}

.quick-view-close {
    position: absolute;
    top: 16px;
    right: 16px;
    width: 36px;
    height: 36px;
    background: var(--belvio-bg-light);
    border: none;
    border-radius: 50%;
    font-size: 22px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1;
    transition: background var(--belvio-transition-fast);
}

.quick-view-close:hover {
    background: var(--belvio-error);
    color: #fff;
}

.quick-view-body {
    padding: 32px;
}

/* ========== RESPONSIVE ========== */
@media (max-width: 1024px) {
    .footer-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {
    .mobile-menu-toggle {
        display: flex;
    }

    .header-center {
        display: none;
    }

    .header-categories-nav {
        display: none;
    }

    .header-search .search-form-container {
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        width: 100%;
        border-radius: 0;
        border: none;
        box-shadow: var(--belvio-shadow-lg);
        padding: 12px 16px;
    }

    .header-account,
    .header-wishlist {
        display: none;
    }

    .content-grid {
        grid-template-columns: 1fr;
    }

    .widget-area {
        position: static;
    }

    .footer-grid {
        grid-template-columns: 1fr;
    }

    .footer-bottom-content {
        flex-direction: column;
        gap: 12px;
        text-align: center;
    }

    .container {
        padding: 0 15px;
    }

    h1 { font-size: 1.5rem; }
    h2 { font-size: 1.25rem; }

    .quick-view-content {
        width: 95%;
        max-height: 90vh;
    }

    .quick-view-body {
        padding: 20px;
    }
}

@media (max-width: 480px) {
    .header-row {
        gap: 8px;
    }

    .header-right {
        gap: 8px;
    }

    .search-form-container {
        width: 300px;
    }
}

/* ========== ACCESSIBILITY ========== */
*:focus-visible {
    outline: 3px solid var(--belvio-primary);
    outline-offset: 2px;
    border-radius: 2px;
}

/* Keyboard-only focus (not mouse clicks) */
button:focus:not(:focus-visible),
a:focus:not(:focus-visible),
select:focus:not(:focus-visible),
input:focus:not(:focus-visible) {
    outline: none;
}

/* ========== UTILITY ========== */
.screen-reader-text {
    border: 0;
    clip: rect(1px, 1px, 1px, 1px);
    clip-path: inset(50%);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    word-wrap: normal !important;
}

.img-fluid {
    max-width: 100%;
    height: auto;
}

.text-center { text-align: center; }
.text-left { text-align: left; }
.text-right { text-align: right; }

/* ========== SEARCH FORM ========== */
.search-form {
    display: flex;
    gap: 8px;
}

.search-form label {
    flex: 1;
}

.search-form .search-field {
    width: 100%;
    padding: 12px 16px;
    border: 1px solid var(--belvio-border);
    border-radius: var(--belvio-radius-sm);
    font-family: var(--belvio-font);
    font-size: 14px;
    outline: none;
}

.search-form .search-field:focus {
    border-color: var(--belvio-primary);
}

.search-form .search-submit {
    padding: 12px 24px;
    background: var(--belvio-primary);
    border: none;
    border-radius: var(--belvio-radius-sm);
    color: #fff;
    font-family: var(--belvio-font);
    font-weight: 600;
    cursor: pointer;
    font-size: 14px;
}

/* ========== BREADCRUMBS ========== */
.woocommerce-breadcrumb {
    font-size: 13px;
    color: var(--belvio-text-lighter);
    margin-bottom: 20px;
    padding: 12px 0;
}

.woocommerce-breadcrumb a {
    color: var(--belvio-text-light);
}

.woocommerce-breadcrumb a:hover {
    color: var(--belvio-primary);
}

/* ========== SCROLLBAR ========== */
::-webkit-scrollbar {
    width: 6px;
}

::-webkit-scrollbar-track {
    background: var(--belvio-bg-light);
}

::-webkit-scrollbar-thumb {
    background: var(--belvio-border);
    border-radius: 3px;
}

::-webkit-scrollbar-thumb:hover {
    background: var(--belvio-text-lighter);
}

/* ========== ANIMATIONS ========== */
@keyframes fadeIn {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes fadeInDown {
    from { opacity: 0; transform: translateY(-10px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes slideIn {
    from { transform: translateX(-100%); }
    to { transform: translateX(0); }
}

.fade-in {
    animation: fadeIn 0.3s var(--belvio-ease-out) forwards;
}

/* ========== BELVIO PREMIUM FRONT PAGE ========== */
.belvio-front-page.site-main {
    padding: 0;
    background: linear-gradient(180deg, #fff7f9 0%, #fff 44%, #fff4ec 100%);
}

.belvio-hero-wrap {
    padding: 28px 0 36px;
    background:
        radial-gradient(circle at 18% 8%, rgba(198,95,134,0.22), transparent 28%),
        radial-gradient(circle at 92% 18%, rgba(216,161,95,0.18), transparent 24%),
        linear-gradient(180deg, #fff7f9 0%, #f7e6ed 100%);
}

.belvio-hero-grid {
    display: grid;
    grid-template-columns: 270px minmax(0, 1fr) 260px;
    gap: 20px;
    align-items: stretch;
}

.belvio-departments,
.belvio-hero-main,
.belvio-promo-tile {
    border-radius: var(--belvio-radius-lg);
    box-shadow: 0 18px 45px rgba(124,64,90,0.10);
}

.belvio-departments {
    background: var(--belvio-bg);
    overflow: hidden;
    border: 1px solid rgba(198,95,134,0.14);
}

.belvio-departments-title {
    min-height: 58px;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 0 20px;
    background: linear-gradient(135deg, var(--belvio-primary-dark), var(--belvio-primary));
    color: #fff;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .02em;
}

.belvio-departments-title span {
    width: 20px;
    height: 14px;
    border-top: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    position: relative;
}

.belvio-departments-title span::before {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    top: 5px;
    border-top: 2px solid currentColor;
}

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

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

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

.belvio-departments strong {
    color: var(--belvio-text-lighter);
    font-size: 12px;
}

.belvio-hero-main {
    min-height: 460px;
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(circle at 82% 12%, rgba(255,255,255,0.72) 0 13%, transparent 14%),
        linear-gradient(135deg, #fff0f5 0%, #fffaf5 46%, #f4d9e4 100%);
    border: 1px solid rgba(198,95,134,0.16);
    display: grid;
    grid-template-columns: minmax(0, 1fr) 48%;
}

.belvio-hero-main::before,
.belvio-hero-main::after {
    content: '';
    position: absolute;
    border-radius: 50%;
    background: rgba(255,255,255,0.5);
}

.belvio-hero-main::before {
    width: 360px;
    height: 360px;
    right: -110px;
    top: -120px;
}

.belvio-hero-main::after {
    width: 220px;
    height: 220px;
    right: 190px;
    bottom: -86px;
    background: rgba(216,161,95,0.18);
}

.belvio-hero-copy {
    position: relative;
    z-index: 2;
    padding: 62px 54px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

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

.belvio-hero-copy h1 {
    max-width: 560px;
    margin: 12px 0 18px;
    font-size: clamp(2.2rem, 4vw, 4.7rem);
    line-height: .98;
    color: var(--belvio-primary-dark);
    letter-spacing: -0.03em;
}

.belvio-hero-copy p {
    max-width: 520px;
    color: #6f5962;
    font-size: 17px;
}

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

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

.belvio-hero-card {
    position: absolute;
    border-radius: 28px;
    border: 1px solid rgba(255,255,255,0.72);
    box-shadow: 0 30px 60px rgba(124,64,90,0.16);
}

.belvio-hero-card-one {
    width: 210px;
    height: 330px;
    right: 92px;
    top: 62px;
    border-radius: 34px 34px 44px 44px;
    background: linear-gradient(145deg, rgba(255,255,255,0.92), #f5b8cc 46%, #c65f86);
    transform: rotate(-5deg);
}

.belvio-hero-card-one::before {
    content: '';
    position: absolute;
    left: 64px;
    right: 64px;
    top: -28px;
    bottom: auto;
    height: 48px;
    border-radius: 18px 18px 8px 8px;
    background: linear-gradient(145deg, #7c405a, #c65f86);
}

.belvio-hero-card-one::after {
    content: '';
    position: absolute;
    left: 34px;
    right: 34px;
    bottom: 54px;
    height: 88px;
    border-radius: 24px;
    background: linear-gradient(180deg, rgba(255,255,255,0.88), rgba(255,247,249,0.58));
    border: 1px solid rgba(124,64,90,0.14);
}

.belvio-hero-card-two {
    width: 188px;
    height: 188px;
    right: 24px;
    bottom: 46px;
    border-radius: 44px 44px 54px 54px;
    background: linear-gradient(150deg, #fff9f4, #f2d4bc);
}

.belvio-hero-card-two::before,
.belvio-hero-card-two::after {
    content: '';
    position: absolute;
}

.belvio-hero-card-two::before {
    left: 24px;
    right: 24px;
    top: -24px;
    height: 42px;
    border-radius: 28px 28px 12px 12px;
    background: linear-gradient(135deg, #f4c8d7, #fff7f9);
    border: 1px solid rgba(124,64,90,0.12);
}

.belvio-hero-card-two::after {
    left: 34px;
    right: 34px;
    bottom: 52px;
    height: 44px;
    border-radius: 999px;
    background: rgba(124,64,90,0.14);
}

.belvio-price-tag {
    position: absolute;
    top: 50px;
    right: 20px;
    z-index: 4;
    width: 92px;
    height: 92px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--belvio-primary-dark), var(--belvio-primary));
    color: #fff;
    font-weight: 900;
    box-shadow: 0 16px 36px rgba(198,95,134,0.26);
}

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

.belvio-promo-tile {
    min-height: 220px;
    padding: 28px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    overflow: hidden;
    position: relative;
}

.belvio-promo-tile::before {
    content: '';
    position: absolute;
    width: 160px;
    height: 160px;
    border-radius: 50%;
    top: -45px;
    right: -35px;
    background: rgba(255,255,255,0.22);
}

.belvio-promo-tile::after {
    content: '';
    position: absolute;
    left: 24px;
    bottom: 24px;
    width: 54px;
    height: 112px;
    border-radius: 24px 24px 14px 14px;
    background: rgba(255,255,255,0.24);
    border: 1px solid rgba(255,255,255,0.26);
}

.belvio-promo-tile span {
    position: relative;
    z-index: 1;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.belvio-promo-tile strong {
    position: relative;
    z-index: 1;
    max-width: 170px;
    margin-top: 8px;
    font-size: 28px;
    line-height: 1.05;
    letter-spacing: -0.04em;
}

.belvio-promo-dark {
    background: linear-gradient(135deg, #24141c, #7c405a);
    color: #fff;
}

.belvio-promo-light {
    background: linear-gradient(135deg, #fff, #f8dce7);
    color: var(--belvio-text);
}

.belvio-promo-green {
    background: linear-gradient(135deg, #7c405a, #c65f86);
    color: #fff;
}

.belvio-promo-gold {
    background: linear-gradient(135deg, #fff8ef, #d8a15f);
    color: #3c2630;
}

.belvio-service-strip {
    padding: 18px 0 0;
    transform: translateY(-28px);
}

.belvio-service-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1px;
    background: rgba(198,95,134,0.12);
    border-radius: var(--belvio-radius-lg);
    overflow: hidden;
    box-shadow: 0 18px 45px rgba(124,64,90,0.10);
}

.belvio-service-grid div {
    background: linear-gradient(180deg, #fff, #fff8fa);
    padding: 22px;
}

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

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

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

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

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

.belvio-section-head h2 {
    margin: 0;
    font-size: clamp(1.9rem, 3vw, 3rem);
    letter-spacing: -0.05em;
}

.belvio-section-head p {
    grid-column: 1 / -1;
    max-width: 640px;
    margin: 0 auto;
    color: var(--belvio-text-light);
}

.belvio-section-head > a {
    font-weight: 800;
    color: var(--belvio-text);
}

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

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

.belvio-category-card {
    min-height: 210px;
    padding: 18px;
    background: linear-gradient(180deg, #fff, #fff8fa);
    border: 1px solid rgba(198,95,134,0.12);
    border-radius: var(--belvio-radius-lg);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    color: var(--belvio-text);
    box-shadow: 0 12px 30px rgba(124,64,90,0.06);
}

/* Colour and shadow stay ungated — they are the only feedback a tap gets. */
.belvio-category-card:hover {
    color: var(--belvio-primary-dark);
    box-shadow: 0 18px 45px rgba(124,64,90,0.12);
}

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

.belvio-category-image {
    width: 96px;
    height: 96px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 14px;
    background: linear-gradient(135deg, #ffe9f0, #fff4e4);
    overflow: hidden;
}

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

.belvio-category-placeholder {
    width: 56px;
    height: 56px;
    border-radius: 18px;
    background: linear-gradient(135deg, var(--belvio-primary), var(--belvio-accent));
}

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

.belvio-category-card small {
    color: var(--belvio-text-lighter);
}

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

.belvio-product-tabs button {
    min-width: 110px;
    height: 42px;
    padding: 0 18px;
    border: 1px solid rgba(198,95,134,0.14);
    background: var(--belvio-bg);
    border-radius: 999px;
    cursor: pointer;
    font-weight: 800;
    color: var(--belvio-text-light);
}

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

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

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

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

.belvio-home-product {
    background: var(--belvio-bg);
    border: 1px solid rgba(198,95,134,0.12);
    border-radius: var(--belvio-radius-lg);
    overflow: hidden;
    box-shadow: 0 12px 30px rgba(124,64,90,0.055);
    transition: transform var(--belvio-transition), box-shadow var(--belvio-transition);
}

.belvio-home-product:hover {
    box-shadow: 0 24px 56px rgba(124,64,90,0.13);
}

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

.belvio-home-product-image {
    position: relative;
    aspect-ratio: 1 / 1.08;
    overflow: hidden;
    background: linear-gradient(135deg, #fff7f9, #f6e4cf);
}

.belvio-home-product-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--belvio-transition);
}

@media (hover: hover) and (pointer: fine) {
    .belvio-home-product:hover img {
        transform: scale(1.06);
    }
}

.belvio-product-badge {
    position: absolute;
    top: 14px;
    left: 14px;
    z-index: 3;
    padding: 5px 10px;
    border-radius: 999px;
    background: var(--belvio-accent);
    color: #fff;
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
}

.belvio-home-actions,
.belvio-image-actions {
    position: absolute;
    inset: auto 14px 14px;
    display: flex;
    gap: 8px;
    opacity: 0;
    transform: translateY(10px);
    transition: opacity var(--belvio-transition), transform var(--belvio-transition);
}

@media (hover: hover) and (pointer: fine) {
    .belvio-home-product:hover .belvio-home-actions,
    .belvio-home-product:hover .belvio-image-actions {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Gating the reveal above would leave these buttons invisible on touch, so on a
   coarse pointer they are simply always shown — the same treatment the 600px
   breakpoint below already applies, extended to touch tablets. Kept at low
   specificity so layout-fix.css's #belvio-products rules still win. */
@media (hover: none), (pointer: coarse) {
    .belvio-home-product .belvio-home-actions,
    .belvio-home-product .belvio-image-actions {
        opacity: 1;
        transform: none;
    }
}

.belvio-home-action,
.belvio-image-action {
    flex: 1;
    min-height: 38px;
    border: 0;
    border-radius: 999px;
    background: var(--belvio-bg);
    color: var(--belvio-text);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 800;
    cursor: pointer;
    box-shadow: 0 10px 20px rgba(124,64,90,0.14);
}

.belvio-home-action:hover,
.belvio-image-action:hover {
    background: var(--belvio-primary);
    color: #fff;
}

.belvio-home-product-body {
    padding: 18px;
}

.belvio-home-product-body h3 {
    min-height: 44px;
    margin: 0 0 10px;
    font-size: 15px;
    line-height: 1.45;
}

.belvio-home-product-body h3 a {
    color: var(--belvio-text);
}

.belvio-home-product-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 12px;
}

.belvio-home-product-footer .price {
    color: var(--belvio-primary-dark);
    font-weight: 900;
}

.belvio-home-product-footer .button {
    min-height: 36px;
    padding: 0 13px;
    border-radius: 999px;
    background: var(--belvio-primary-dark);
    color: #fff;
    font-size: 12px;
    font-weight: 800;
}

.belvio-home-product-footer .button:hover {
    background: var(--belvio-primary);
    color: #fff;
}

.belvio-lookbook {
    padding: 48px 0 80px;
}

.belvio-lookbook-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    min-height: 420px;
    overflow: hidden;
    border-radius: 28px;
    background: linear-gradient(135deg, #24141c, #7c405a);
    box-shadow: 0 28px 70px rgba(124,64,90,0.18);
}

.belvio-lookbook-copy {
    padding: 64px;
    color: #fff;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.belvio-lookbook-copy h2 {
    color: #fff;
    font-size: clamp(2rem, 3.5vw, 4rem);
    line-height: 1;
    letter-spacing: -0.06em;
}

.belvio-lookbook-copy p {
    color: rgba(255,255,255,0.72);
    max-width: 520px;
}

.belvio-lookbook-copy .btn {
    width: fit-content;
    margin-top: 16px;
}

.belvio-lookbook-image {
    background:
        radial-gradient(circle at 28% 34%, rgba(255,255,255,0.36), transparent 0 18%, transparent 19%),
        linear-gradient(135deg, #f7c9d8, #d8a15f);
    position: relative;
}

.belvio-lookbook-image::before {
    content: '';
    position: absolute;
    width: 138px;
    height: 300px;
    border-radius: 34px 34px 48px 48px;
    left: 54%;
    top: 50%;
    transform: translate(-50%, -50%) rotate(6deg);
    background: linear-gradient(180deg, rgba(255,255,255,0.9), rgba(198,95,134,0.52));
    border: 1px solid rgba(255,255,255,0.54);
    box-shadow: 0 28px 60px rgba(124,64,90,0.18);
}

.belvio-lookbook-image::after {
    content: '';
    position: absolute;
    width: 170px;
    height: 170px;
    left: 28%;
    top: 54%;
    transform: translate(-50%, -50%) rotate(-8deg);
    border-radius: 42px 42px 54px 54px;
    background: linear-gradient(145deg, #fffaf5, #f1c1d1);
    border: 1px solid rgba(255,255,255,0.58);
    box-shadow: 0 24px 52px rgba(124,64,90,0.16);
}

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

    .belvio-hero-promos {
        grid-column: 1 / -1;
        grid-template-columns: 1fr 1fr;
    }

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

@media (max-width: 900px) {
    .top-bar-welcome,
    .category-bar-sale {
        display: none;
    }

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

    .belvio-departments,
    .belvio-hero-visual {
        display: none;
    }

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

    .belvio-service-grid,
    .belvio-home-products-grid {
        grid-template-columns: repeat(2, 1fr);
    }

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

@media (max-width: 600px) {
    .belvio-hero-wrap {
        padding-top: 14px;
    }

    .belvio-hero-main,
    .belvio-promo-tile,
    .belvio-category-card,
    .belvio-home-product,
    .belvio-lookbook-grid {
        border-radius: 18px;
    }

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

    .belvio-service-grid,
    .belvio-category-grid,
    .belvio-home-products-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .belvio-category-grid {
        gap: 12px;
    }

    .belvio-category-card {
        min-height: 165px;
    }

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

    .belvio-product-tabs {
        overflow-x: auto;
        justify-content: flex-start;
        padding-bottom: 4px;
    }

    .belvio-home-actions,
    .belvio-image-actions {
        opacity: 1;
        transform: none;
    }
}

/* ========== BETTER MOBILE TOUCH TARGETS ========== */
@media (max-width: 768px) {
    .btn,
    .button,
    .cart_item .product-quantity .quantity button,
    .woocommerce-checkout .quantity button {
        min-height: 44px;
    }

    .search-submit {
        width: 44px;
        height: 44px;
    }

    .search-toggle,
    .cart-link,
    .header-account a,
    .header-wishlist a {
        width: 44px;
        height: 44px;
    }

    .view-mode button {
        width: 40px;
        height: 40px;
    }

    .page-numbers {
        min-width: 44px;
        height: 44px;
    }

    .mobile-menu a {
        padding: 16px 20px;
        min-height: 44px;
    }

    /* Better mobile product grid */
    .belvio-home-products-grid {
        gap: 16px;
    }

    .belvio-home-product-body {
        padding: 14px;
    }

    .belvio-home-product-body h3 {
        font-size: 14px;
        min-height: 40px;
    }

    /* Better mobile hero */
    .belvio-hero-copy {
        padding: 32px 20px;
    }

    .belvio-hero-copy h1 {
        font-size: 2rem;
    }

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

    /* Better mobile categories */
    .belvio-category-card {
        min-height: 160px;
        padding: 14px;
    }

    .belvio-category-image {
        width: 72px;
        height: 72px;
    }

    .belvio-category-placeholder {
        width: 40px;
        height: 40px;
        border-radius: 12px;
    }
}

/* ========== IMPROVED PRINT STYLES ========== */
@media print {
    .top-bar,
    .site-header,
    .mobile-menu-overlay,
    .mobile-menu-panel,
    .shop-toolbar,
    .site-footer,
    .belvio-bottom-bar,
    .bulk-bar {
        display: none !important;
    }

    .container {
        max-width: 100%;
        padding: 0;
    }

    body {
        font-size: 12pt;
        color: #000;
        background: #fff;
    }
}

/* ========== LOADING/SKELETON STATES ========== */
.belvio-skeleton-card {
    background: linear-gradient(90deg, var(--belvio-bg-light) 25%, var(--belvio-border-light) 50%, var(--belvio-bg-light) 75%);
    background-size: 200% 100%;
    animation: belvioSkeleton var(--belvio-duration-skeleton) ease-in-out infinite;
    border-radius: var(--belvio-radius-lg);
    min-height: 200px;
}

.belvio-skeleton-text {
    background: linear-gradient(90deg, var(--belvio-bg-light) 25%, var(--belvio-border-light) 50%, var(--belvio-bg-light) 75%);
    background-size: 200% 100%;
    animation: belvioSkeleton var(--belvio-duration-skeleton) ease-in-out infinite;
    border-radius: var(--belvio-radius-sm);
    height: 16px;
    margin: 8px 0;
}

@keyframes belvioSkeleton {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

.belvio-search-skeleton-row {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
}

.belvio-search-skeleton-thumb.belvio-skeleton-card {
    width: 40px;
    height: 40px;
    min-height: 0;
    flex-shrink: 0;
}

.belvio-search-skeleton-lines {
    flex: 1;
}

.belvio-search-skeleton-lines .belvio-skeleton-text {
    height: 12px;
}

.belvio-search-skeleton-lines .belvio-skeleton-text:last-child {
    width: 60%;
    margin-bottom: 0;
}

.belvio-quickview-skeleton {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    padding: 20px;
}

@media (max-width: 640px) {
    .belvio-quickview-skeleton {
        grid-template-columns: 1fr;
    }
}

.belvio-quickview-skeleton-image.belvio-skeleton-card {
    min-height: 320px;
}

.belvio-quickview-skeleton-info .belvio-skeleton-text:nth-child(1) {
    width: 80%;
    height: 22px;
}

.belvio-quickview-skeleton-info .belvio-skeleton-text:nth-child(2) {
    width: 40%;
    height: 18px;
}

.belvio-quickview-skeleton-info .belvio-skeleton-text:nth-child(4) {
    width: 90%;
}

.belvio-quickview-skeleton-info .belvio-skeleton-text:nth-child(5) {
    width: 50%;
    height: 40px;
    margin-top: 12px;
}

/* ========== TRACKING PAGE ========== */
.belvio-tracking-wrapper,
.belvio-tracking-result {
    margin: 40px auto;
    padding: 24px;
    background: var(--belvio-bg);
    border-radius: 12px;
    box-shadow: var(--belvio-shadow);
    color: var(--belvio-text);
}

.belvio-tracking-wrapper {
    max-width: 500px;
}

.belvio-tracking-result {
    max-width: 600px;
    margin: 30px auto;
}

.belvio-tracking-invalid {
    text-align: center;
    color: #d63638;
}

.belvio-tracking-form-title {
    text-align: center;
    margin-bottom: 24px;
    font-size: 22px;
}

.belvio-tracking-form {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.belvio-tracking-label {
    display: block;
    font-weight: 600;
    margin-bottom: 6px;
}

.belvio-tracking-input {
    width: 100%;
    padding: 10px 14px;
    border: 1px solid var(--belvio-border);
    border-radius: 8px;
    font-size: 16px;
    direction: ltr;
    text-align: left;
    background: var(--belvio-bg);
    color: var(--belvio-text);
}

.belvio-tracking-submit {
    padding: 12px;
    background: #83b735;
    color: #fff;
    border: none;
    border-radius: 999px;
    font-size: 16px;
    font-weight: 800;
    cursor: pointer;
}

.belvio-tracking-error {
    color: #d63638;
    text-align: center;
    padding: 8px;
    background: #fcf0f1;
    border-radius: 8px;
}

.belvio-tracking-result-header {
    text-align: center;
    margin-bottom: 24px;
}

.belvio-tracking-result-title {
    margin: 0;
    font-size: 24px;
}

.belvio-tracking-status-badge {
    display: inline-block;
    margin-top: 8px;
    padding: 4px 16px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 700;
    background: #e8f5e9;
    color: #2e7d32;
}

.belvio-tracking-progress {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    margin-bottom: 24px;
    padding: 16px 0;
    position: relative;
}

.belvio-tracking-progress-line {
    position: absolute;
    top: 34px;
    width: 80%;
    height: 3px;
    background: var(--belvio-border);
    border-radius: 2px;
    z-index: 0;
}

/* `width` is a layout property and should be a transform: scaleX(). It is left
   as width deliberately, because the fill is sized by an inline style written
   server-side — inc/class-belvio-order-manager.php line 2375 emits
   style="width:N%" — so converting the CSS alone would leave the bar stuck at
   its full width with nothing driving the scale. Converting needs that PHP to
   emit a custom property instead (e.g. style="--fill:N%"), plus
   transform-origin: left with a [dir=rtl] override to right, since
   transform-origin has no logical keyword and this page is served in Arabic.
   The width today is rendered once and never changes after paint, so the
   transition never actually fires; it is kept, in budget, in case JS ever
   updates the value. */
.belvio-tracking-progress-fill {
    height: 100%;
    background: #83b735;
    border-radius: 2px;
    transition: width var(--belvio-transition);
}

.belvio-tracking-step {
    text-align: center;
    flex: 1;
    position: relative;
    z-index: 1;
}

.belvio-tracking-step-icon {
    width: 36px;
    height: 36px;
    margin: 0 auto 8px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 14px;
}

.belvio-tracking-step-icon.is-done {
    background: #83b735;
    color: #fff;
}

.belvio-tracking-step-icon.is-pending {
    background: var(--belvio-border-light);
    color: var(--belvio-text-lighter);
    border: 2px solid var(--belvio-border);
}

.belvio-tracking-step-label {
    font-size: 11px;
    color: var(--belvio-text-light);
    line-height: 1.3;
    max-width: 70px;
    margin: 0 auto;
}

.belvio-tracking-info-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-bottom: 20px;
}

.belvio-tracking-info-card {
    padding: 12px;
    background: var(--belvio-bg-light);
    border-radius: 8px;
}

.belvio-tracking-info-card.is-success {
    background: #e8f5e9;
}

.belvio-tracking-info-card.is-info {
    background: #e3f2fd;
}

.belvio-tracking-info-card.is-note {
    background: #fff8e1;
    margin-bottom: 20px;
}

.belvio-tracking-info-label {
    font-size: 12px;
    color: var(--belvio-text-lighter);
}

.belvio-tracking-info-value {
    font-weight: 700;
}

.belvio-tracking-info-value.is-success {
    color: #2e7d32;
}

.belvio-tracking-info-value.is-info {
    color: #1565c0;
}

.belvio-tracking-products-title {
    font-size: 16px;
    margin: 0 0 12px;
}

.belvio-tracking-table {
    width: 100%;
    border-collapse: collapse;
}

.belvio-tracking-table thead tr {
    background: var(--belvio-bg-light);
}

.belvio-tracking-table th {
    padding: 8px 12px;
    font-size: 13px;
}

.belvio-tracking-table th:nth-child(1) { text-align: right; }
.belvio-tracking-table th:nth-child(2) { text-align: center; }
.belvio-tracking-table th:nth-child(3) { text-align: left; }

.belvio-tracking-table tbody tr {
    border-bottom: 1px solid var(--belvio-border-light);
}

.belvio-tracking-table td {
    padding: 8px 12px;
}

.belvio-tracking-table td:nth-child(2) { text-align: center; }
.belvio-tracking-table td:nth-child(3) { text-align: left; }

.belvio-tracking-footer {
    text-align: center;
    margin-top: 24px;
    padding-top: 20px;
    border-top: 1px solid var(--belvio-border-light);
}

.belvio-tracking-whatsapp-btn {
    display: inline-block;
    padding: 10px 24px;
    background: #25D366;
    color: #fff;
    border-radius: 8px;
    text-decoration: none;
    font-weight: 700;
    font-size: 14px;
    margin-bottom: 12px;
}

.belvio-tracking-copyright {
    color: var(--belvio-text-lighter);
    font-size: 13px;
}

/* ========== MOBILE BOTTOM NAV ========== */
.belvio-bottom-nav {
    display: none;
}

@media (max-width: 768px) {
    .belvio-bottom-nav {
        display: flex;
        position: fixed;
        inset-inline: 0;
        bottom: 0;
        z-index: 850;
        height: var(--belvio-bottom-nav-h);
        background: var(--belvio-bg);
        border-top: 1px solid var(--belvio-border-light);
        box-shadow: 0 -4px 16px rgba(0, 0, 0, 0.08);
        padding-bottom: env(safe-area-inset-bottom);
    }

    body.has-belvio-bottom-nav {
        padding-bottom: calc(var(--belvio-bottom-nav-h) + env(safe-area-inset-bottom));
    }
}

.belvio-bottom-nav-item {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    min-height: 44px;
    padding: 8px 4px;
    color: var(--belvio-text-light);
    text-decoration: none;
    font-size: 11px;
    font-weight: 600;
    transition: color var(--belvio-transition-fast);
}

.belvio-bottom-nav-item.is-active {
    color: var(--belvio-primary);
}

.belvio-bottom-nav-item:focus-visible {
    outline: 3px solid var(--belvio-primary);
    outline-offset: -2px;
}

.belvio-bottom-nav-icon {
    position: relative;
    display: inline-flex;
}

.belvio-bottom-nav-badge.cart-count {
    top: -6px;
    right: -8px;
    z-index: 1;
}

/* ========== BACK TO TOP ========== */
.belvio-back-to-top {
    display: none;
}

@media (min-width: 769px) {
    .belvio-back-to-top {
        display: flex;
        align-items: center;
        justify-content: center;
        position: fixed;
        inset-inline-end: 18px;
        bottom: 18px;
        z-index: 850;
        width: 44px;
        height: 44px;
        padding: 0;
        background: var(--belvio-bg);
        color: var(--belvio-text);
        border: 1px solid var(--belvio-border);
        border-radius: 50%;
        box-shadow: var(--belvio-shadow);
        cursor: pointer;
        opacity: 0;
        visibility: hidden;
        transform: translateY(8px);
        transition: opacity var(--belvio-transition-fast), visibility var(--belvio-transition-fast), transform var(--belvio-transition-fast), color var(--belvio-transition-fast);
    }

    .belvio-back-to-top.is-visible {
        opacity: 1;
        visibility: visible;
        transform: translateY(0);
    }

    .belvio-back-to-top:hover {
        color: var(--belvio-primary);
    }

    .belvio-back-to-top:focus-visible {
        outline: 3px solid var(--belvio-primary);
        outline-offset: 2px;
    }
}

/* ========== INTERACTION POLISH ========== */
/* Press feedback: instant response on pointer down */
.view-mode button:active,
.btn-filter-toggle:active,
.mobile-menu-close:active,
.quick-view-close:active {
    transform: scale(0.95);
}

/* Reduced motion: fewer and gentler animations, never zero.
   This replaces a blanket `*{animation-duration:.01ms;transition-duration:.01ms}`
   kill switch, which froze the belvioSkeleton shimmer — a placeholder that has
   stopped shimmering reads as content that failed to load — and stripped the
   acknowledgement from every :active press rule in the theme. */
@media (prefers-reduced-motion: reduce) {
    /* An allow-list, not a kill switch: properties that change appearance in
       place may still transition, so a state change stays legible.
       `transform` is on the list because press feedback scales in place rather
       than travelling, and it is the only acknowledgement a tap gets before a
       network round-trip. `visibility` is on it because the header dropdowns
       delay visibility to stay in step with their opacity fade, and dropping
       it would make them vanish mid-fade. Everything absent from the list —
       inset, width, height, padding — applies without animating. */
    *,
    *::before,
    *::after {
        transition-property: opacity, color, background-color, border-color,
            box-shadow, outline-color, transform, visibility !important;
    }

    /* Large travel is still dropped. The drawer crosses most of a phone
       viewport, so here it appears alongside the overlay fade rather than
       sliding the full width of the screen. */
    .mobile-menu-panel {
        transition-property: opacity !important;
    }

    /* Indicators are slowed, not stopped. `.belvio-skeleton` is woocommerce.css's
       shimmer surface, covered here so the same contract reaches all three. */
    .belvio-skeleton-card,
    .belvio-skeleton-text,
    .belvio-skeleton {
        animation-duration: var(--belvio-duration-skeleton-reduced) !important;
    }

    html {
        scroll-behavior: auto !important;
    }
}
