/*
 * AED WP Main CSS
 * Zero bloat, highly optimized minimal framework
 */

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

body,
h1,
h2,
h3,
h4,
p,
figure,
blockquote,
dl,
dd {
    margin: 0;
}

ul,
ol {
    padding: 0;
    list-style: none;
    margin: 0;
}

a {
    color: inherit;
    text-decoration: none;
}

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

button {
    font: inherit;
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
}

/* 2. Variables & Typography (Clamp fluid typography) */
:root {
    --container-max: 1280px;
    --container-padding: 1.5rem;
    --font-sans: 'Inter', system-ui, -apple-system, sans-serif;

    /* Fluid spacing */
    --space-sm: clamp(1rem, 2vw, 1.5rem);
    --space-md: clamp(2rem, 4vw, 3rem);
    --space-lg: clamp(4rem, 8vw, 6rem);
}

body {
    font-family: var(--font-sans);
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
    background-color: var(--color-bg);
    color: var(--color-text);
}

h1,
h2,
h3,
h4 {
    line-height: 1.2;
    font-weight: 700;
}

h1 {
    font-size: clamp(2.5rem, 5vw, 4rem);
}

h2 {
    font-size: clamp(2rem, 4vw, 3rem);
}

h3 {
    font-size: clamp(1.5rem, 3vw, 2.25rem);
}

/* 3. Layouts & Containers */
.container {
    width: 100%;
    max-width: var(--container-max);
    margin-inline: auto;
    padding-inline: var(--container-padding);
}

.grid {
    display: grid;
    gap: var(--space-md);
}

/* 4. Top Progress Bar */
#aed-wp-progress-bar {
    position: fixed;
    top: 0;
    left: 0;
    width: 0%;
    height: 3px;
    background-color: var(--color-primary);
    z-index: 9999;
    transition: width 0.1s ease-out, opacity 0.3s ease;
    opacity: 0;
    pointer-events: none;
}

/* 5. Header */
.site-header {
    background-color: color-mix(in srgb, var(--color-bg) 85%, transparent);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    padding-block: 0.75rem;
    position: sticky;
    top: 0;
    z-index: 50;
    box-shadow: 0 4px 20px -4px rgba(0, 0, 0, 0.3);
}

.site-header-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1.5rem;
}

/* Brand / Logo */
.site-branding {
    display: flex;
    align-items: center;
    flex-shrink: 0;
}

.site-brand-link {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--color-primary);
    transition: all 0.2s ease;
}

.site-brand-link:hover {
    filter: drop-shadow(0 0 12px color-mix(in srgb, var(--color-primary) 40%, transparent));
}

.site-brand-name {
    font-size: clamp(1rem, 2vw, 1.25rem);
    font-weight: 800;
    letter-spacing: -0.03em;
    color: var(--color-primary);
}

.site-icon-img {
    border-radius: 8px;
}

/* Desktop Navigation */
.main-navigation {
    display: flex;
    align-items: center;
    flex: 1;
    justify-content: center;
}

.nav-menu {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.85rem;
    font-weight: 600;
}

.nav-menu li {
    position: relative;
    list-style: none;
}

.nav-menu > li > a {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.5rem 0.75rem;
    border-radius: 10px;
    color: color-mix(in srgb, var(--color-text) 80%, transparent);
    transition: all 0.25s ease;
    border: 1px solid transparent;
}

.nav-menu > li > a:hover,
.nav-menu > li:hover > a {
    color: var(--color-primary);
    background-color: color-mix(in srgb, var(--color-primary) 8%, transparent);
    border-color: color-mix(in srgb, var(--color-primary) 20%, transparent);
    box-shadow: 0 0 15px color-mix(in srgb, var(--color-primary) 15%, transparent);
}

/* Dropdown indicator arrow for items with sub-menus */
.nav-menu > li.menu-item-has-children > a::after {
    content: '';
    width: 0;
    height: 0;
    border-left: 4px solid transparent;
    border-right: 4px solid transparent;
    border-top: 4px solid currentColor;
    margin-left: 0.25rem;
    opacity: 0.6;
    transition: transform 0.2s;
}

.nav-menu > li.menu-item-has-children:hover > a::after {
    transform: rotate(180deg);
}

/* Sub-menus (Dropdowns) */
.nav-menu .sub-menu {
    position: absolute;
    top: calc(100% + 0.5rem);
    left: 50%;
    transform: translateX(-50%) translateY(8px);
    min-width: 14rem;
    background-color: color-mix(in srgb, var(--color-bg) 98%, transparent);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 14px;
    padding: 0.5rem;
    box-shadow: 0 12px 40px -8px rgba(0, 0, 0, 0.4), 0 0 20px color-mix(in srgb, var(--color-primary) 8%, transparent);
    opacity: 0;
    visibility: hidden;
    transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
    z-index: 60;
    display: flex;
    flex-direction: column;
    gap: 0.125rem;
}

.nav-menu li:hover > .sub-menu {
    opacity: 1;
    visibility: visible;
    transform: translateX(-50%) translateY(0);
}

.nav-menu .sub-menu a {
    display: block;
    padding: 0.5rem 0.75rem;
    font-size: 0.8rem;
    font-weight: 500;
    border-radius: 8px;
    color: color-mix(in srgb, var(--color-text) 70%, transparent);
    transition: all 0.2s ease;
}

.nav-menu .sub-menu a:hover {
    background-color: color-mix(in srgb, var(--color-primary) 12%, transparent);
    color: var(--color-primary);
}

/* Header Action Icons */
.header-actions {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-shrink: 0;
}

/* ===== Expanding Inline Search Bar ===== */
/* Bar is always in DOM; it grows from 0 to 1fr when the toggle is clicked */
.header-expanding-search {
    /* Hidden by default: zero width, invisible, non-interactive */
    flex: 0;
    min-width: 0;
    width: 0;
    overflow: hidden;
    opacity: 0;
    pointer-events: none;
    position: relative;
    transition: flex 0.35s cubic-bezier(0.16, 1, 0.3, 1),
                opacity 0.25s ease,
                width 0.35s cubic-bezier(0.16, 1, 0.3, 1);
    padding-inline: 0;
}

/* Open state: expands smoothly without hiding the nav */
body.header-search-open .header-expanding-search {
    flex: 1;
    width: auto;
    opacity: 1;
    pointer-events: auto;
    padding-inline: 0.5rem;
    overflow: visible;
}

/* The search toggle icon spins/transforms on open */
body.header-search-open .header-search-toggle-btn {
    color: var(--color-primary);
    border-color: color-mix(in srgb, var(--color-primary) 30%, transparent);
}

/* Search form pill — matches reference: bg-surface-solid border accent/40 rounded-xl */
.header-expanding-search-form {
    position: relative;
    width: 100%;
    display: flex;
    align-items: center;
    background-color: var(--color-bg-alt, color-mix(in srgb, var(--color-bg) 95%, white));
    border: 1px solid color-mix(in srgb, var(--color-primary) 40%, transparent);
    border-radius: 12px;
    padding: 0.375rem 0.75rem;
    box-shadow: 0 0 15px color-mix(in srgb, var(--color-primary) 15%, transparent);
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.header-expanding-search-form:focus-within {
    border-color: var(--color-primary);
    box-shadow: 0 0 25px color-mix(in srgb, var(--color-primary) 25%, transparent);
}

/* Search icon inside the form pill */
.header-expanding-search-icon {
    color: var(--color-primary);
    flex-shrink: 0;
    margin-right: 0.5rem;
    width: 16px;
    height: 16px;
}

/* Search input */
.header-expanding-search-input {
    width: 100%;
    background: transparent;
    border: none;
    color: var(--color-text);
    font-size: 0.875rem;
    outline: none;
    padding: 0;
    margin: 0;
    min-width: 0;
}

.header-expanding-search-input::placeholder {
    color: color-mix(in srgb, var(--color-text) 40%, transparent);
}

/* Clear (reset) button */
.header-expanding-search-reset {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.25rem;
    color: color-mix(in srgb, var(--color-text) 40%, transparent);
    cursor: pointer;
    transition: color 0.2s;
    background: none;
    border: none;
    margin-left: 0.25rem;
    flex-shrink: 0;
}

.header-expanding-search-reset:hover {
    color: var(--color-primary);
}

.header-expanding-search-reset.hidden {
    display: none;
}

/* Close (X) button with divider */
.header-expanding-search-close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.25rem;
    padding-left: 0.5rem;
    margin-left: 0.5rem;
    color: color-mix(in srgb, var(--color-text) 40%, transparent);
    cursor: pointer;
    transition: color 0.2s;
    background: none;
    border: none;
    border-left: 1px solid color-mix(in srgb, var(--color-text) 15%, transparent);
    flex-shrink: 0;
}

.header-expanding-search-close:hover {
    color: var(--color-primary);
}

/* ===== Live Results Dropdown ===== */
/* Appears below the search form as an absolute positioned panel */
.header-expanding-search-results {
    position: absolute;
    top: calc(100% + 0.5rem);
    left: 0;
    right: 0;
    background-color: var(--color-bg-solid, color-mix(in srgb, var(--color-bg) 99%, white));
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border: 1px solid color-mix(in srgb, var(--color-text) 12%, transparent);
    border-radius: 16px;
    box-shadow: 0 8px 32px -4px rgba(0, 0, 0, 0.4),
                0 0 20px color-mix(in srgb, var(--color-primary) 8%, transparent);
    max-height: 70vh;
    overflow-y: auto;
    padding: 0.5rem;
    z-index: 200;
    display: flex;
    flex-direction: column;
}

.header-expanding-search-results.hidden {
    display: none;
}

/* ===== Search Result Rows (list layout matching reference) ===== */
.search-result-row {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.5rem 0.625rem;
    border-radius: 10px;
    text-decoration: none;
    color: var(--color-text);
    border: 1px solid transparent;
    transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.search-result-row:hover {
    background-color: color-mix(in srgb, var(--color-primary) 10%, transparent);
    border-color: color-mix(in srgb, var(--color-primary) 20%, transparent);
}

/* Small square thumbnail */
.search-result-thumb {
    width: 40px;
    height: 40px;
    object-fit: contain;
    border-radius: 8px;
    background-color: color-mix(in srgb, var(--color-bg) 60%, white);
    border: 1px solid color-mix(in srgb, var(--color-text) 10%, transparent);
    flex-shrink: 0;
}

/* Info column (name + meta) */
.search-result-info {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-width: 0;
}

/* Product name */
.search-result-name {
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--color-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    transition: color 0.15s ease;
}

.search-result-row:hover .search-result-name {
    color: var(--color-primary);
}

/* Category + SKU badges row */
.search-result-meta {
    display: flex;
    align-items: center;
    gap: 0.375rem;
    margin-top: 0.125rem;
    flex-wrap: wrap;
}

.search-result-category {
    font-size: 0.625rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: color-mix(in srgb, var(--color-text) 55%, transparent);
}

.search-result-sku {
    font-size: 0.625rem;
    font-weight: 600;
    padding: 0.125rem 0.375rem;
    border-radius: 5px;
    background-color: color-mix(in srgb, var(--color-bg) 50%, transparent);
    border: 1px solid color-mix(in srgb, var(--color-text) 15%, transparent);
    color: color-mix(in srgb, var(--color-text) 55%, transparent);
}

/* Price — right-aligned */
.search-result-price {
    font-size: 0.875rem;
    font-weight: 900;
    color: var(--color-text);
    flex-shrink: 0;
    padding-left: 0.5rem;
    text-align: right;
    white-space: nowrap;
}

.search-result-price del {
    font-weight: 400;
    color: color-mix(in srgb, var(--color-text) 45%, transparent);
    font-size: 0.75rem;
    margin-right: 0.25rem;
}

/* Loading spinner */
.search-results-loading {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 1.25rem 1rem;
    color: color-mix(in srgb, var(--color-text) 55%, transparent);
    font-size: 0.8rem;
}

/* Empty state */
.search-results-empty {
    padding: 1rem;
    text-align: center;
    color: color-mix(in srgb, var(--color-text) 50%, transparent);
    font-size: 0.8rem;
}

/* Mobile: search bar takes full width below the header icons row */
@media (max-width: 1024px) {
    body.header-search-open .header-expanding-search {
        /* On mobile the search bar takes the full container row */
        padding-inline: 0.25rem;
    }
}



.header-action-btn {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 50%;
    color: color-mix(in srgb, var(--color-text) 80%, transparent);
    border: 1px solid transparent;
    transition: all 0.25s ease;
    cursor: pointer;
}

.header-action-btn:hover {
    color: var(--color-primary);
    border-color: color-mix(in srgb, var(--color-primary) 30%, transparent);
    background-color: color-mix(in srgb, var(--color-primary) 8%, transparent);
    box-shadow: 0 0 15px color-mix(in srgb, var(--color-primary) 20%, transparent);
}

/* Cart Link & Badge */
.header-cart-link {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 50%;
    color: color-mix(in srgb, var(--color-text) 80%, transparent);
    border: 1px solid transparent;
    transition: all 0.25s ease;
}

.header-cart-link:hover {
    color: var(--color-primary);
    border-color: color-mix(in srgb, var(--color-primary) 30%, transparent);
    background-color: color-mix(in srgb, var(--color-primary) 8%, transparent);
    box-shadow: 0 0 15px color-mix(in srgb, var(--color-primary) 20%, transparent);
}

.header-cart-badge {
    position: absolute;
    top: -2px;
    right: -2px;
    width: 1rem;
    height: 1rem;
    border-radius: 50%;
    background-color: var(--color-primary);
    color: var(--color-bg);
    font-size: 0.625rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}

.header-cart-badge.hidden {
    display: none;
}

/* Sign In Link (Desktop only) */
.header-signin-link {
    font-size: 0.85rem;
    font-weight: 600;
    color: color-mix(in srgb, var(--color-text) 90%, transparent);
    transition: all 0.25s ease;
    white-space: nowrap;
    padding: 0.375rem 0.75rem;
    border-radius: 8px;
}

.header-signin-link:hover {
    color: var(--color-primary);
    filter: drop-shadow(0 0 8px color-mix(in srgb, var(--color-primary) 40%, transparent));
}

/* Mobile hamburger - hidden on desktop */
.mobile-drawer-toggle {
    display: none;
}

/* Hidden utility */
.hidden {
    display: none !important;
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border-width: 0;
}

/* ===================== */
/* Mobile Off-Canvas Drawer */
/* ===================== */
.mobile-drawer-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.6);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    z-index: 90;
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s ease;
}

.mobile-drawer-backdrop[aria-hidden="false"] {
    opacity: 1;
    visibility: visible;
}

.mobile-drawer {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    width: min(85vw, 380px);
    background-color: var(--color-bg);
    border-left: 1px solid rgba(255, 255, 255, 0.1);
    z-index: 100;
    display: flex;
    flex-direction: column;
    transform: translateX(100%);
    transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
    box-shadow: -8px 0 30px rgba(0, 0, 0, 0.3);
    overflow-y: auto;
}

.mobile-drawer[aria-hidden="false"] {
    transform: translateX(0);
}

.mobile-drawer-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 1.25rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.mobile-drawer-nav {
    flex: 1;
    padding: 0.75rem 0;
    overflow-y: auto;
}

.mobile-nav-menu {
    display: flex;
    flex-direction: column;
}

.mobile-nav-menu li {
    list-style: none;
}

.mobile-nav-menu > li > a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.875rem 1.25rem;
    font-size: 0.95rem;
    font-weight: 600;
    color: color-mix(in srgb, var(--color-text) 90%, transparent);
    border-bottom: 1px solid rgba(255, 255, 255, 0.05);
    transition: all 0.2s ease;
}

.mobile-nav-menu > li > a:hover {
    color: var(--color-primary);
    background-color: color-mix(in srgb, var(--color-primary) 6%, transparent);
}

/* Mobile sub-menu accordion */
.mobile-nav-menu .sub-menu {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease;
    background-color: color-mix(in srgb, var(--color-bg) 95%, white);
}

.mobile-nav-menu li.sub-menu-open > .sub-menu {
    max-height: 500px;
}

.mobile-nav-menu .sub-menu a {
    display: block;
    padding: 0.625rem 1.25rem 0.625rem 2rem;
    font-size: 0.85rem;
    font-weight: 500;
    color: color-mix(in srgb, var(--color-text) 70%, transparent);
    border-bottom: 1px solid rgba(255, 255, 255, 0.03);
    transition: all 0.2s ease;
}

.mobile-nav-menu .sub-menu a:hover {
    color: var(--color-primary);
    padding-left: 2.5rem;
}

/* Chevron for parent items with sub-menus */
.mobile-nav-menu > li.menu-item-has-children > a::after {
    content: '';
    width: 0;
    height: 0;
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    border-top: 5px solid currentColor;
    opacity: 0.5;
    transition: transform 0.25s ease;
    flex-shrink: 0;
}

.mobile-nav-menu > li.menu-item-has-children.sub-menu-open > a::after {
    transform: rotate(180deg);
}

.mobile-drawer-footer {
    padding: 1rem 1.25rem;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    background-color: color-mix(in srgb, var(--color-bg) 90%, white);
}

.mobile-drawer-signin-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    width: 100%;
    padding: 0.75rem 1rem;
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--color-primary);
    border: 1px solid color-mix(in srgb, var(--color-primary) 30%, transparent);
    border-radius: 12px;
    background-color: color-mix(in srgb, var(--color-primary) 8%, transparent);
    transition: all 0.25s ease;
    text-align: center;
}

.mobile-drawer-signin-btn:hover {
    background-color: color-mix(in srgb, var(--color-primary) 15%, transparent);
    box-shadow: 0 0 20px color-mix(in srgb, var(--color-primary) 20%, transparent);
}

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

/* ===================== */
/* Mobile Header Responsive */
/* ===================== */
@media (max-width: 1024px) {
    .main-navigation {
        display: none;
    }

    .header-signin-link {
        display: none;
    }

    .mobile-drawer-toggle {
        display: inline-flex;
    }
}

/* 6. Footer */
.site-footer {
    padding-block: var(--space-md);
    background-color: var(--color-bg);
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    text-align: center;
    color: var(--color-text);
    opacity: 0.8;
}

/* 7. Components: Hero */
.block-hero {
    min-height: 100dvh;
    display: flex;
    align-items: center;
    background-color: var(--color-bg);
    color: var(--color-text);
    padding-block: var(--space-lg);
}

.block-hero-content {
    max-width: 800px;
}

.hero-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: color-mix(in srgb, var(--color-primary) 10%, transparent);
    border: 1px solid color-mix(in srgb, var(--color-primary) 30%, transparent);
    color: var(--color-primary);
    padding: 0.75rem 1.5rem;
    border-radius: 999px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    margin-top: var(--space-sm);
    transition: all 0.2s ease;
}

.hero-btn:hover {
    background: color-mix(in srgb, var(--color-primary) 20%, transparent);
    border-color: color-mix(in srgb, var(--color-primary) 50%, transparent);
    color: var(--color-primary);
    transform: translateY(-1px);
}

/* 8. Components: Grids & Cards */
.block-section {
    padding-block: var(--space-lg);
}

.grid-cols-2 {
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
}

.grid-cols-4 {
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
}

.product-card {
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 8px;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.05);
    display: flex;
    flex-direction: column;
    height: 100%;
}

.product-card-img-wrap {
    aspect-ratio: 1 / 1;
    background: rgba(0, 0, 0, 0.2);
    overflow: hidden;
}

.product-card-img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.product-card-body {
    padding: 1.5rem;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
}

.product-card-title {
    font-size: 1.125rem;
    margin-bottom: 0.5rem;
}

.product-card-meta {
    display: flex;
    gap: 0.5rem;
    margin-bottom: 1rem;
    font-size: 0.75rem;
    font-weight: 600;
}

.badge {
    padding: 0.25rem 0.5rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.1);
    color: var(--color-text);
}

.badge-stock {
    background: #dcfce7;
    color: #166534;
}

.badge-coa {
    background: #dbeafe;
    color: #1e40af;
}

.badge-primary {
    background: color-mix(in srgb, var(--color-primary) 15%, transparent);
    color: var(--color-primary);
    border: 1px solid color-mix(in srgb, var(--color-primary) 30%, transparent);
}

.product-card-price {
    margin-top: auto;
    font-size: 1.25rem;
    font-weight: 700;
}

/* 9. Full-Page Search Overlay */
.search-overlay {
    position: fixed;
    top: 64px; /* Approximate header height */
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 110;
    background-color: color-mix(in srgb, var(--color-bg) 98%, transparent);
    backdrop-filter: blur(30px);
    -webkit-backdrop-filter: blur(30px);
    display: flex;
    flex-direction: column;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s ease;
    overflow-y: auto;
}

.search-overlay[aria-hidden="false"] {
    opacity: 1;
    pointer-events: auto;
}

/* Search Overlay Header */
.search-overlay-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 1.5rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    max-width: 64rem;
    width: 100%;
    margin-inline: auto;
    flex-shrink: 0;
}

.search-overlay-header-actions {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.search-overlay-badge {
    display: none;
    padding: 0.25rem 0.75rem;
    font-size: 0.7rem;
    font-family: monospace;
    color: var(--color-primary);
    background-color: color-mix(in srgb, var(--color-primary) 10%, transparent);
    border: 1px solid color-mix(in srgb, var(--color-primary) 20%, transparent);
    border-radius: 999px;
}

@media (min-width: 640px) {
    .search-overlay-badge {
        display: inline-block;
    }
}

.search-overlay-close-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 0.75rem;
    font-size: 0.85rem;
    font-weight: 600;
    color: color-mix(in srgb, var(--color-text) 80%, transparent);
    border: 1px solid transparent;
    border-radius: 999px;
    background: transparent;
    cursor: pointer;
    transition: all 0.25s ease;
}

.search-overlay-close-btn:hover {
    color: var(--color-primary);
    border-color: color-mix(in srgb, var(--color-primary) 30%, transparent);
    background-color: color-mix(in srgb, var(--color-primary) 8%, transparent);
    box-shadow: 0 0 15px color-mix(in srgb, var(--color-primary) 15%, transparent);
}

.search-close-text {
    display: none;
}

.search-close-kbd {
    display: none;
    padding: 0.125rem 0.375rem;
    font-size: 0.625rem;
    font-family: monospace;
    color: color-mix(in srgb, var(--color-text) 50%, transparent);
    background-color: color-mix(in srgb, var(--color-bg) 80%, white);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 4px;
}

@media (min-width: 640px) {
    .search-close-text,
    .search-close-kbd {
        display: inline-block;
    }
}

/* Search Body */
.search-overlay-body {
    flex: 1;
    overflow-y: auto;
    padding: 2rem 1.5rem;
    max-width: 56rem;
    width: 100%;
    margin-inline: auto;
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

.search-overlay-hero {
    text-align: center;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.search-overlay-title {
    font-size: clamp(1.5rem, 3vw, 2.5rem);
    font-weight: 800;
    color: var(--color-text);
    letter-spacing: -0.02em;
}

.search-overlay-subtitle {
    font-size: clamp(0.85rem, 1.5vw, 1rem);
    color: color-mix(in srgb, var(--color-text) 60%, transparent);
    max-width: 36rem;
    margin-inline: auto;
}

/* Search Form */
.search-overlay-form {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.search-input-wrapper {
    position: relative;
    display: flex;
    align-items: center;
    background-color: color-mix(in srgb, var(--color-bg) 80%, white);
    border: 1px solid color-mix(in srgb, var(--color-primary) 30%, transparent);
    border-radius: 16px;
    padding: 0.75rem 1rem;
    box-shadow: 0 0 20px color-mix(in srgb, var(--color-primary) 12%, transparent);
    transition: all 0.3s ease;
}

.search-input-wrapper:focus-within {
    border-color: var(--color-primary);
    box-shadow: 0 0 30px color-mix(in srgb, var(--color-primary) 25%, transparent);
}

.search-input-icon {
    color: var(--color-primary);
    flex-shrink: 0;
    margin-right: 0.75rem;
}

.search-overlay-input {
    width: 100%;
    background: transparent;
    border: none;
    color: var(--color-text);
    font-size: 1rem;
    outline: none;
    margin-bottom: 0;
    padding: 0;
}

.search-overlay-input::placeholder {
    color: color-mix(in srgb, var(--color-text) 40%, transparent);
}

.search-clear-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.25rem;
    color: color-mix(in srgb, var(--color-text) 40%, transparent);
    cursor: pointer;
    transition: color 0.2s;
    background: none;
    border: none;
    margin-left: 0.5rem;
}

.search-clear-btn:hover {
    color: var(--color-primary);
}

/* Category Chips */
.search-category-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    justify-content: center;
}

.search-chip {
    display: inline-flex;
    align-items: center;
    padding: 0.375rem 0.875rem;
    font-size: 0.75rem;
    font-weight: 600;
    color: color-mix(in srgb, var(--color-text) 70%, transparent);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 999px;
    background-color: color-mix(in srgb, var(--color-bg) 90%, white);
    transition: all 0.2s ease;
    white-space: nowrap;
}

.search-chip:hover {
    color: var(--color-primary);
    border-color: color-mix(in srgb, var(--color-primary) 30%, transparent);
    background-color: color-mix(in srgb, var(--color-primary) 8%, transparent);
    box-shadow: 0 0 10px color-mix(in srgb, var(--color-primary) 10%, transparent);
}

/* Search Results */
.search-results-container {
    min-height: 100px;
}

.search-results-loading {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    padding: 2rem;
    color: color-mix(in srgb, var(--color-text) 60%, transparent);
    font-size: 0.875rem;
}

.search-loading-spinner {
    width: 1.25rem;
    height: 1.25rem;
    border: 2px solid rgba(255, 255, 255, 0.1);
    border-top-color: var(--color-primary);
    border-radius: 50%;
    animation: spin 0.6s linear infinite;
}

@keyframes spin {
    to { transform: rotate(360deg); }
}

.search-results-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 1rem;
}

/* Search Result Card */
.search-result-card {
    display: flex;
    flex-direction: column;
    background-color: color-mix(in srgb, var(--color-bg) 90%, white);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 12px;
    overflow: hidden;
    transition: all 0.25s ease;
}

.search-result-card:hover {
    border-color: color-mix(in srgb, var(--color-primary) 30%, transparent);
    box-shadow: 0 4px 20px color-mix(in srgb, var(--color-primary) 10%, transparent);
    transform: translateY(-2px);
}

.search-result-card img {
    width: 100%;
    aspect-ratio: 1;
    object-fit: cover;
    background-color: rgba(255, 255, 255, 0.05);
}

.search-result-info {
    padding: 0.75rem;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.search-result-title {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--color-text);
    line-height: 1.3;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.search-result-price {
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--color-primary);
}

.search-results-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
    padding: 3rem 1rem;
    text-align: center;
    color: color-mix(in srgb, var(--color-text) 50%, transparent);
    font-size: 0.9rem;
}

/* 10. Forms & Inputs */
input[type="text"],
input[type="email"],
input[type="password"],
input[type="search"],
input[type="tel"],
input[type="url"],
input[type="number"],
textarea,
select {
    width: 100%;
    padding: 0.75rem 1rem;
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 6px;
    background-color: rgba(0, 0, 0, 0.2);
    color: var(--color-text);
    font-family: inherit;
    font-size: 1rem;
    transition: border-color 0.2s, box-shadow 0.2s;
    margin-bottom: 1rem;
}

input:focus,
textarea:focus,
select:focus {
    outline: none;
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px rgba(15, 23, 42, 0.1);
}

label {
    display: block;
    margin-bottom: 0.5rem;
    font-weight: 600;
    color: var(--color-text);
}

button[type="submit"],
.button,
.woocommerce-Button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    background: color-mix(in srgb, var(--color-primary) 10%, transparent);
    border: 1px solid color-mix(in srgb, var(--color-primary) 30%, transparent);
    color: var(--color-primary);
    padding: 0.75rem 1.5rem;
    border-radius: 999px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    text-align: center;
    cursor: pointer;
    transition: all 0.2s ease;
}

button[type="submit"]:hover,
.button:hover,
.woocommerce-Button:hover {
    background: color-mix(in srgb, var(--color-primary) 20%, transparent);
    border-color: color-mix(in srgb, var(--color-primary) 50%, transparent);
    color: var(--color-primary);
    transform: translateY(-1px);
}

/* 11. WooCommerce Layouts */
:not(body).woocommerce {
    width: 100%;
    max-width: var(--container-max);
    margin: 0 auto;
    padding: var(--space-md) var(--container-padding);
}

/* 2-column layout for Login / Register */
.u-columns.col2-set {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-md);
}

@media (min-width: 768px) {
    .u-columns.col2-set {
        grid-template-columns: 1fr 1fr;
    }
}

.u-column1,
.u-column2 {
    background: rgba(255, 255, 255, 0.05);
    padding: var(--space-md);
    border-radius: 8px;
    border: 1px solid rgba(255, 255, 255, 0.1);
}

.u-column1 h2,
.u-column2 h2 {
    margin-bottom: var(--space-sm);
    font-size: 1.5rem;
}

/* My Account logged in view */
.woocommerce-MyAccount-navigation {
    margin-bottom: var(--space-md);
}

.myaccount-menu-toggle {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1rem;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 6px;
    font-weight: 500;
    color: var(--color-text);
    cursor: pointer;
    width: 100%;
    margin-bottom: 0.5rem;
}

.woocommerce-MyAccount-navigation ul {
    display: none;
    flex-direction: column;
    gap: 0.5rem;
}

.woocommerce-MyAccount-navigation ul.is-open {
    display: flex;
}

.woocommerce-MyAccount-navigation li {
    list-style: none;
}

.woocommerce-MyAccount-navigation li a {
    display: block;
    padding: 0.5rem 1rem;
    background: rgba(255, 255, 255, 0.05);
    border-radius: 6px;
    font-weight: 500;
    color: var(--color-text);
    transition: background-color 0.2s;
}

.woocommerce-MyAccount-navigation li.is-active a,
.woocommerce-MyAccount-navigation li a:hover {
    background: var(--color-primary);
    color: var(--color-bg);
}

@media (min-width: 768px) {
    .woocommerce-account .woocommerce {
        display: grid;
        grid-template-columns: 250px 1fr;
        gap: var(--space-lg);
    }

    .myaccount-menu-toggle {
        display: none;
    }

    .woocommerce-MyAccount-navigation ul {
        display: flex !important;
        flex-direction: column;
    }
}

/* WooCommerce Notices */
.woocommerce-message,
.woocommerce-error,
.woocommerce-info {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 1rem;
    padding: 1rem 1.5rem;
    border-radius: 6px;
    margin-bottom: var(--space-md);
    font-weight: 500;
}

.woocommerce-message .button,
.woocommerce-error .button,
.woocommerce-info .button {
    margin: 0;
    margin-left: auto;
    order: 2;
    white-space: nowrap;
}

.woocommerce-message {
    background: #dcfce7;
    color: #166534;
    border-left: 4px solid #166534;
}

.woocommerce-error {
    background: #fee2e2;
    color: #991b1b;
    border-left: 4px solid #991b1b;
}

.woocommerce-info {
    background: #dbeafe;
    color: #1e40af;
    border-left: 4px solid #1e40af;
}

.woocommerce-error li {
    margin-left: 1rem;
    list-style-type: disc;
}

/* My Account Form Constraints */
.woocommerce-MyAccount-content form {
    max-width: 600px;
}

/* 12. Contact Page Layout */
.contact-page-wrapper {
    overflow-x: hidden;
    padding-bottom: var(--space-lg);
}

/* Contact Hero */
.contact-hero {
    position: relative;
    padding-top: calc(var(--space-lg) * 1.5);
    padding-bottom: var(--space-md);
    z-index: 1;
}

.contact-hero-glow {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: min(600px, 90vw);
    height: 350px;
    background: color-mix(in srgb, var(--color-primary) 20%, transparent);
    filter: blur(120px);
    border-radius: 50%;
    pointer-events: none;
    z-index: -1;
}

.contact-hero-content {
    max-width: 900px;
    margin-inline: auto;
    text-align: center;
}

.hero-label-wrap {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.375rem 1rem;
    border-radius: 999px;
    background: color-mix(in srgb, var(--color-primary) 10%, transparent);
    border: 1px solid color-mix(in srgb, var(--color-primary) 30%, transparent);
    color: var(--color-primary);
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    margin-bottom: 1.5rem;
}

.hero-label-wrap.glass-badge {
    background-color: rgba(255, 255, 255, 0.40);
    border-color: rgba(255, 255, 255, 1);
    color: #fff;
    font-size: 0.875rem;
    padding: 0.5rem 1.25rem;
    filter: drop-shadow(0 4px 10px rgba(0, 0, 0, 0.05));
    margin-bottom: 0;
}

.hero-label-wrap.title-badge {
    font-size: clamp(1.25rem, 3vw, 1.75rem);
    padding: 0.75rem 2.5rem;
    filter: drop-shadow(0 0 15px color-mix(in srgb, var(--color-primary) 30%, transparent));
}

.hero-title {
    font-size: clamp(2.5rem, 6vw, 4.5rem);
    font-weight: 900;
    letter-spacing: -0.02em;
    margin-bottom: 1.5rem;
    filter: drop-shadow(0 0 20px color-mix(in srgb, var(--color-text) 20%, transparent));
}

.hero-desc {
    font-size: clamp(1.125rem, 2vw, 1.25rem);
    color: color-mix(in srgb, var(--color-text) 70%, transparent);
    max-width: 48rem;
    margin-inline: auto;
}

/* Category Card Animations */
.category-card {
    text-align: center;
    display: block;
    text-decoration: none;
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    outline: none;
}

.category-card:hover,
.category-card:focus-visible {
    transform: translateY(-8px);
}

.category-image-wrap {
    aspect-ratio: 1;
    border-radius: 999px;
    overflow: hidden;
    margin-bottom: 1rem;
    background: #f1f5f9;
    transition: box-shadow 0.3s ease;
}

.category-card:hover .category-image-wrap,
.category-card:focus-visible .category-image-wrap {
    box-shadow: 0 15px 30px color-mix(in srgb, var(--color-primary) 15%, transparent);
}

.category-image-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

.category-card:hover img,
.category-card:focus-visible img {
    transform: scale(1.08);
}

.category-card .glass-badge {
    transition: all 0.3s ease;
}

.category-card:hover .glass-badge,
.category-card:focus-visible .glass-badge {
    background-color: rgba(255, 255, 255, 0.85);
    color: var(--color-primary);
    transform: translateY(-2px);
    box-shadow: 0 8px 20px color-mix(in srgb, var(--color-primary) 15%, transparent);
}

/* Layout Grid System */
.layout-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-md);
    align-items: start;
}

@media (min-width: 1024px) {
    .layout-grid.grid-cols-2 {
        grid-template-columns: 1fr 1fr;
        gap: 2rem;
    }

    .layout-grid.grid-cols-2-5-7 {
        grid-template-columns: 5fr 7fr;
        gap: 2rem;
    }

    .layout-grid.grid-cols-3 {
        grid-template-columns: 1fr 1fr 1fr;
        gap: 2rem;
    }
}

/* Contact Info Card (Sidebar) and Form Container */
.contact-info-card,
.contact-form-container {
    background: color-mix(in srgb, var(--color-bg) 60%, transparent);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border: 1px solid color-mix(in srgb, var(--color-primary) 30%, transparent);
    border-radius: 24px;
    padding: clamp(1.5rem, 3vw, 2.5rem);
    transition: border-color 0.3s;
}

.contact-info-card {
    position: relative;
    overflow: hidden;
}

.contact-info-card:hover,
.contact-form-container:hover {
    border-color: color-mix(in srgb, var(--color-primary) 40%, transparent);
}


.info-title {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    font-size: 1.5rem;
    margin-bottom: 1.5rem;
}

.info-icon {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 12px;
    background: color-mix(in srgb, var(--color-primary) 15%, transparent);
    border: 1px solid color-mix(in srgb, var(--color-primary) 30%, transparent);
    color: var(--color-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.info-desc {
    color: color-mix(in srgb, var(--color-text) 70%, transparent);
    margin-bottom: 2rem;
}

.info-channels {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.channel-item {
    border-left: 2px solid color-mix(in srgb, var(--color-primary) 30%, transparent);
    padding-left: 1rem;
    transition: border-color 0.2s;
}

.channel-item:hover {
    border-color: var(--color-primary);
}

.channel-title {
    font-size: 1rem;
    margin-bottom: 0.25rem;
    color: var(--color-text);
}

.channel-text {
    font-size: 0.875rem;
    color: color-mix(in srgb, var(--color-text) 70%, transparent);
}

.channel-text a {
    color: var(--color-primary);
    font-weight: 600;
}

.channel-text a:hover {
    text-decoration: underline;
}

/* 13. Gravity Forms Styling for Zero-Bloat Theme */
.contact-form-container {
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}

/* Force Gravity Forms variables for dark mode */
.contact-form-container .gform_wrapper.gform-theme {
    --gf-color-primary: var(--color-primary) !important;
    --gf-color-in-ctrl-primary: var(--color-primary) !important;
    --gf-color-secondary: var(--color-bg) !important;
    --gf-color-in-ctrl: rgba(0, 0, 0, 0.3) !important;
    --gf-color-in-ctrl-contrast: var(--color-text) !important;
    --gf-ctrl-border-color: rgba(255, 255, 255, 0.2) !important;
    --gf-ctrl-label-color-primary: var(--color-text) !important;
    --gf-ctrl-btn-bg-color: var(--color-primary) !important;
    --gf-ctrl-btn-color: var(--color-bg) !important;
}

.contact-form-container .gform_wrapper.gform-theme form {
    margin: 0;
}

.contact-form-container .gform_wrapper.gform-theme .gform_fields {
    row-gap: 1rem !important;
    gap: 1rem !important;
}

.contact-form-container .gform_wrapper.gform-theme .gfield {
    margin-bottom: 1rem !important;
}

.contact-form-container .gform_wrapper.gform-theme .gfield_label {
    font-weight: 600 !important;
    color: var(--color-text) !important;
    margin-bottom: 0.5rem !important;
    display: block !important;
}

.contact-form-container .gform_wrapper.gform-theme input[type="text"],
.contact-form-container .gform_wrapper.gform-theme input[type="email"],
.contact-form-container .gform_wrapper.gform-theme input[type="tel"],
.contact-form-container .gform_wrapper.gform-theme input[type="url"],
.contact-form-container .gform_wrapper.gform-theme input[type="number"],
.contact-form-container .gform_wrapper.gform-theme input:not([type="radio"]):not([type="checkbox"]):not([type="submit"]):not([type="button"]):not([type="image"]):not([type="file"]),
.contact-form-container .gform_wrapper.gform-theme textarea,
.contact-form-container .gform_wrapper.gform-theme select {
    width: 100% !important;
    padding: 0.875rem 1.25rem !important;
    border: 1px solid color-mix(in srgb, var(--color-primary) 40%, transparent) !important;
    border-radius: 12px !important;
    background: rgba(0, 0, 0, 0.2) !important;
    color: var(--color-text) !important;
    font-family: var(--font-sans) !important;
    font-size: 1rem !important;
    transition: all 0.2s ease !important;
    box-shadow: inset 0 0 15px color-mix(in srgb, var(--color-primary) 20%, transparent), 0 0 10px color-mix(in srgb, var(--color-primary) 10%, transparent) !important;
}

.contact-form-container .gform_wrapper.gform-theme input[type="text"]:focus,
.contact-form-container .gform_wrapper.gform-theme input[type="email"]:focus,
.contact-form-container .gform_wrapper.gform-theme input[type="tel"]:focus,
.contact-form-container .gform_wrapper.gform-theme input[type="url"]:focus,
.contact-form-container .gform_wrapper.gform-theme input[type="number"]:focus,
.contact-form-container .gform_wrapper.gform-theme input:not([type="radio"]):not([type="checkbox"]):not([type="submit"]):not([type="button"]):not([type="image"]):not([type="file"]):focus,
.contact-form-container .gform_wrapper.gform-theme textarea:focus,
.contact-form-container .gform_wrapper.gform-theme select:focus {
    outline: none !important;
    border-color: var(--color-primary) !important;
    background: color-mix(in srgb, var(--color-primary) 15%, rgba(0, 0, 0, 0.2)) !important;
    box-shadow: 0 0 25px color-mix(in srgb, var(--color-primary) 80%, transparent), inset 0 0 15px color-mix(in srgb, var(--color-primary) 40%, transparent) !important;
}

.contact-form-container .gform_wrapper.gform-theme input[type="submit"],
.contact-form-container .gform_wrapper.gform-theme button.gform_button {
    background: color-mix(in srgb, var(--color-primary) 10%, transparent) !important;
    border: 1px solid color-mix(in srgb, var(--color-primary) 30%, transparent) !important;
    color: var(--color-primary) !important;
    padding: 1rem 2rem !important;
    border-radius: 999px !important;
    font-weight: 700 !important;
    font-size: 1rem !important;
    cursor: pointer !important;
    width: 100% !important;
    backdrop-filter: blur(8px) !important;
    -webkit-backdrop-filter: blur(8px) !important;
    transition: all 0.2s ease !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
}

.contact-form-container .gform_wrapper.gform-theme input[type="submit"]:hover,
.contact-form-container .gform_wrapper.gform-theme button.gform_button:hover {
    background: color-mix(in srgb, var(--color-primary) 20%, transparent) !important;
    border-color: color-mix(in srgb, var(--color-primary) 50%, transparent) !important;
    color: var(--color-primary) !important;
    transform: translateY(-1px) !important;
    box-shadow: none !important;
}

.contact-form-container .gform_wrapper.gform-theme .gfield_required,
.contact-form-container .gform_wrapper.gform-theme .gfield_required_text {
    color: var(--color-primary) !important;
    margin-left: 0.25rem;
}

/* Complex inputs like Name / Address that uses columns */
.contact-form-container .gform_wrapper.gform-theme .ginput_complex {
    display: grid !important;
    gap: 1rem !important;
}

@media (min-width: 640px) {
    .contact-form-container .gform_wrapper.gform-theme .ginput_complex.ginput_container_name {
        grid-template-columns: 1fr 1fr !important;
    }
}

.contact-form-container .gform_wrapper.gform-theme .ginput_complex span {
    display: flex !important;
    flex-direction: column !important;
}

.contact-form-container .gform_wrapper.gform-theme .ginput_complex label,
.contact-form-container .gform_wrapper.gform-theme .gform-field-label--type-sub {
    order: -1 !important;
    font-size: 0.875rem !important;
    color: color-mix(in srgb, var(--color-text) 80%, transparent) !important;
    margin-bottom: 0.25rem !important;
    font-weight: 500 !important;
    text-transform: uppercase !important;
}

/* 14. SVG Icon Animations */
@keyframes pulse-dot {
    0% {
        transform: scale(1);
        opacity: 0.8;
    }

    100% {
        transform: scale(2.5);
        opacity: 0;
    }
}

.pulsing-dot-anim {
    transform-origin: center;
    animation: pulse-dot 1.5s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

/* 15. Document Layout (TOC) */
.document-layout-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-md);
    align-items: start;
    margin-block: var(--space-md);
}

@media (min-width: 992px) {
    .document-layout-grid {
        grid-template-columns: 3fr 9fr;
        gap: var(--space-lg);
    }
}

.document-sidebar {
    position: sticky;
    top: calc(100px + var(--space-md));
    /* Accounting for sticky header */
    padding: 1.5rem;
    background: color-mix(in srgb, var(--color-bg) 60%, transparent);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 1rem;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
}

.document-sidebar-title {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.875rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-primary);
    margin-bottom: 1rem;
    font-weight: 700;
}

.document-toc-nav ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
}

.document-toc-nav li.toc-level-h2 {
    margin-top: 0.25rem;
}

.document-toc-nav li.toc-level-h3 {
    padding-left: 1rem;
}

.document-toc-nav li.toc-level-h4 {
    padding-left: 2rem;
}

.toc-link {
    display: block;
    font-size: 0.875rem;
    color: color-mix(in srgb, var(--color-text) 70%, transparent);
    text-decoration: none;
    transition: all 0.2s;
    line-height: 1.4;
}

.toc-link:hover,
.toc-link.active {
    color: var(--color-primary);
}

.document-content {
    background: color-mix(in srgb, var(--color-bg) 60%, transparent);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 1.5rem;
    padding: clamp(1.5rem, 4vw, 3rem);
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.25);
}

/* Ensure headings have some top margin for anchor jumping */
.document-content h2,
.document-content h3,
.document-content h4 {
    scroll-margin-top: 120px;
}
/* ==========================================================================
   12. Custom Shop Redesign (Glassmorphism & Neon Accent Glows)
   ========================================================================== */

/* Glassmorphism primitives */
.bg-surface-glass {
    background: rgba(255, 255, 255, 0.03);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
}

.border-border-glass {
    border-color: rgba(255, 255, 255, 0.08);
}

.bg-bg-glass {
    background: rgba(10, 10, 18, 0.9);
}

/* Category badging & buttons */
.shop-cat-badge {
    color: rgba(226, 232, 240, 0.8);
    background: transparent;
    border: 1px solid transparent;
    text-align: left;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.5rem 0.75rem;
    border-radius: 0.5rem;
    font-size: 0.875rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s ease;
}

.shop-cat-badge:hover {
    background: rgba(255, 255, 255, 0.05);
    color: #ffffff;
    border-color: color-mix(in srgb, var(--color-primary) 30%, transparent);
}

.shop-cat-badge.active {
    background: color-mix(in srgb, var(--color-primary) 12%, transparent);
    color: var(--color-primary);
    border-color: color-mix(in srgb, var(--color-primary) 50%, transparent);
    box-shadow: 0 0 15px color-mix(in srgb, var(--color-primary) 15%, transparent);
}

.shop-cat-count {
    opacity: 0.5;
    font-family: monospace;
    font-size: 0.75rem;
}

/* Real-time search element styles */
#shop-realtime-search-input {
    outline: none;
    box-shadow: none;
}

#shop-realtime-search-reset:hover {
    color: var(--color-primary);
}

/* Product Tile Styling */
.product-card-link-overlay {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 5;
}

.product-tile {
    background: rgba(255, 255, 255, 0.03);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 1rem;
    overflow: hidden;
    padding: 1.25rem;
    display: flex;
    flex-direction: column;
    min-height: 360px;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
}

.product-tile:hover {
    border-color: color-mix(in srgb, var(--color-primary) 70%, transparent);
    box-shadow: 0 0 25px color-mix(in srgb, var(--color-primary) 25%, transparent);
    transform: translateY(-3px);
}

/* Image wrapper and glow effect */
.product-card-img-wrap {
    width: 100%;
    aspect-ratio: 1 / 1;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(10, 10, 18, 0.8);
    border: 1px solid rgba(255, 255, 255, 0.03);
    border-radius: 0.75rem;
    margin-bottom: 1rem;
    position: relative;
    z-index: 10;
    overflow: hidden;
    pointer-events: none;
}

.product-tile:hover .product-card-img-wrap {
    border-color: color-mix(in srgb, var(--color-primary) 40%, transparent);
}

/* Gradient overlay on image container */
.product-card-img-wrap::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, color-mix(in srgb, var(--color-primary) 5%, transparent), transparent);
    z-index: 1;
    pointer-events: none;
}

.product-card-img-wrap img {
    width: 75%;
    height: 75%;
    object-fit: contain;
    transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    z-index: 10;
}

.product-tile:hover .product-card-img-wrap img {
    transform: scale(1.05);
}

/* Neon glow behind image (shop cards) */
.product-card-img-wrap .neon-glow-bg {
    position: absolute;
    width: 60%;
    height: 60%;
    border-radius: 50%;
    background: color-mix(in srgb, var(--color-primary) 20%, transparent);
    filter: blur(50px);
    z-index: 0;
    pointer-events: none;
    transition: background 0.3s ease;
}

.product-tile:hover .product-card-img-wrap .neon-glow-bg {
    background: color-mix(in srgb, var(--color-primary) 30%, transparent);
}

/* Stock pills (shop cards) */
.product-card-img-wrap .badge-stock-pill {
    position: absolute;
    top: 0.5rem;
    right: 0.5rem;
    z-index: 20;
    font-size: 0.5rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    background: rgba(6, 78, 59, 0.9);
    color: #34d399;
    border: 1px solid rgba(16, 185, 129, 0.6);
    padding: 0.25rem 0.625rem;
    border-radius: 9999px;
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    white-space: nowrap;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5);
}

.product-card-img-wrap .badge-stock-dot {
    width: 0.375rem;
    height: 0.375rem;
    border-radius: 50%;
    background-color: #34d399;
    box-shadow: 0 0 8px #34d399;
}

.product-card-img-wrap .badge-stock-pill.out-of-stock {
    background: rgba(127, 29, 29, 0.9);
    color: #f87171;
    border-color: rgba(248, 113, 113, 0.4);
}

/* Card content */
.product-card-body {
    display: flex;
    flex-direction: column;
    flex: 1;
    position: relative;
    z-index: 10;
    pointer-events: none;
}

.product-card-category {
    font-size: 0.625rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 0.25rem;
    display: inline-block;
    align-self: flex-start;
}

.product-card-title {
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--color-text);
    line-height: 1.4;
    margin: 0.25rem 0 0.5rem 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    transition: color 0.2s ease;
}

.product-tile:hover .product-card-title {
    color: var(--color-primary);
}

/* Prices & add to cart footer */
.product-card-footer {
    margin-top: auto;
    padding-top: 1rem;
    border-top: 1px solid rgba(255, 255, 255, 0.03);
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    pointer-events: auto;
}

.product-card-price {
    font-size: 0.875rem;
    font-weight: 800;
    color: var(--color-text);
}

.product-card-price .woocommerce-Price-amount.amount {
    float: right;
}

.product-card-price del {
    font-size: 0.75rem;
    color: #64748b;
    margin-right: 0.35rem;
}

.product-card-price ins {
    text-decoration: none;
}

.btn-add-to-cart {
    width: 100%;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.25rem;
    background: var(--color-primary);
    color: #ffffff;
    font-size: 0.75rem;
    font-weight: 800;
    padding: 0.5rem 0.875rem;
    border-radius: 0.5rem;
    transition: all 0.25s ease;
    border: 1px solid transparent;
    cursor: pointer;
    position: relative;
    z-index: 20;
    line-height: 1;
}

.btn-add-to-cart:hover {
    background: color-mix(in srgb, var(--color-primary) 80%, transparent);
    box-shadow: 0 0 15px color-mix(in srgb, var(--color-primary) 40%, transparent);
}

/* Placeholder for missing images */
.product-card-placeholder {
    color: #475569;
}

/* ==========================================================================
   13. Custom Single Product Page Styling
   ========================================================================== */

/* ---- Layout & Container ---- */
.product-main-container {
    max-width: 1400px;
    margin-inline: auto;
    padding: 2rem 1rem;
    color: var(--color-text);
}

@media (min-width: 768px) {
    .product-main-container {
        padding: 2rem 3rem;
    }
}

/* ---- Breadcrumbs ---- */
.pbl-breadcrumb-nav {
    margin-bottom: 1.5rem;
}

.pbl-breadcrumb-wrap {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.375rem;
    padding: 0.5rem 1rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.02);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1px solid rgba(255, 255, 255, 0.08);
    font-size: 0.8rem;
    font-weight: 500;
    max-width: fit-content;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}

.pbl-breadcrumb-nav a {
    color: color-mix(in srgb, var(--color-text) 60%, transparent);
    transition: color 0.2s ease;
}

.pbl-breadcrumb-nav a:hover {
    color: var(--color-primary);
}

.pbl-breadcrumb-separator {
    color: color-mix(in srgb, var(--color-primary) 60%, transparent);
    margin-inline: 0.25rem;
    font-weight: 700;
}

.pbl-breadcrumb-current {
    color: rgba(148, 163, 184, 1);
}

/* ---- Product Grid (3-row structure) ---- */
.product-grid-layout {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

@media (min-width: 1024px) {
    .product-grid-layout {
        display: grid;
        grid-template-columns: 2fr 1fr;
        grid-template-rows: auto auto;
        gap: 3rem;
        align-items: start;
    }
}

/* ---- Left Column: Image Only ---- */
.product-col-image {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

/* Main product image */
.product-image-main {
    aspect-ratio: 4 / 3;
    background: rgba(255, 255, 255, 0.02);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 0.75rem;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    position: relative;
    cursor: pointer;
}

.product-image-main.has-3d-effect {
    perspective: 1000px;
    background: radial-gradient(circle, #2a313d 0%, #171b22 100%),
                url('https://www.transparenttextures.com/patterns/brushed-alum-dark.png');
    background-blend-mode: overlay;
}

.product-image-main:hover .product-image-main-img {
    transform: scale(1.05);
}

.product-image-main.has-3d-effect:hover .product-image-main-img {
    transform: rotateX(10deg) rotateY(-5deg) rotateZ(2deg) translateY(-5px);
    filter: drop-shadow(16px 24px 14px rgba(0, 0, 0, 0.75));
}

.product-image-main-img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    position: relative;
    z-index: 10;
    transition: transform 0.3s ease, filter 0.3s ease, width 0.3s ease, height 0.3s ease;
}

.product-image-main.has-3d-effect .product-image-main-img {
    width: 65%;
    height: 65%;
    transform: rotateX(20deg) rotateY(-15deg) rotateZ(5deg);
    filter: drop-shadow(12px 18px 10px rgba(0, 0, 0, 0.65));
}

/* Stock badge on image */
.badge-stock-pill {
    position: absolute;
    top: 0.75rem;
    right: 0.75rem;
    z-index: 20;
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    padding: 0.375rem 0.75rem;
    border-radius: 999px;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    background: rgba(16, 185, 129, 0.1);
    color: #34d399;
    border: 1px solid rgba(16, 185, 129, 0.25);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}

.badge-stock-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #34d399;
    box-shadow: 0 0 6px #10b981;
    animation: pulse-dot 2s ease-in-out infinite;
}

.badge-stock-oos {
    background: rgba(239, 68, 68, 0.1);
    color: #f87171;
    border-color: rgba(239, 68, 68, 0.25);
}

@keyframes pulse-dot {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.4; }
}

/* Neon glow effect */
.neon-glow-bg {
    position: absolute;
    width: 60%;
    height: 60%;
    border-radius: 50%;
    background: color-mix(in srgb, var(--color-primary) 15%, transparent);
    filter: blur(40px);
    z-index: 1;
    pointer-events: none;
    transition: background 0.3s ease;
}

/* ---- Thumbnail Gallery ---- */
.product-thumbs-row {
    display: flex;
    gap: 1rem;
    overflow-x: auto;
    padding-bottom: 0.5rem;
    scrollbar-width: thin;
    scrollbar-color: color-mix(in srgb, var(--color-primary) 30%, transparent) transparent;
}

.product-thumbs-row::-webkit-scrollbar {
    height: 4px;
}

.product-thumbs-row::-webkit-scrollbar-thumb {
    background-color: color-mix(in srgb, var(--color-primary) 30%, transparent);
    border-radius: 10px;
}

.product-thumb {
    width: 6rem;
    height: 6rem;
    flex-shrink: 0;
    padding: 0.5rem;
    background: rgba(255, 255, 255, 0.02);
    border: 2px solid transparent;
    border-radius: 0.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    cursor: pointer;
    transition: all 0.2s ease;
}

.product-thumb[data-index="0"] {
    background: radial-gradient(circle, #2a313d 0%, #171b22 100%),
                url('https://www.transparenttextures.com/patterns/brushed-alum-dark.png');
    background-blend-mode: overlay;
}

.product-thumb:hover,
.product-thumb-active {
    border-color: var(--color-primary);
}

.product-thumb-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    pointer-events: none;
}

.product-thumb-coa {
    background: color-mix(in srgb, var(--color-primary) 10%, transparent);
    border: 1px solid color-mix(in srgb, var(--color-primary) 40%, transparent);
    flex-direction: column;
    gap: 0.25rem;
    box-shadow: 0 0 10px color-mix(in srgb, var(--color-primary) 20%, transparent);
}

.product-thumb-coa:hover {
    border-color: var(--color-primary);
    background: color-mix(in srgb, var(--color-primary) 20%, transparent);
}

.product-thumb-coa-icon {
    width: 1.75rem;
    height: 1.75rem;
    color: var(--color-primary);
    pointer-events: none;
    transition: transform 0.2s ease;
}

.product-thumb-coa:hover .product-thumb-coa-icon {
    transform: scale(1.1);
}

.product-thumb-coa-label {
    font-size: 0.625rem;
    font-weight: 800;
    color: var(--color-primary);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    pointer-events: none;
}

/* ---- Right Column: Purchase Rail ---- */
.product-col-purchase {
    width: 100%;
}

@media (min-width: 1024px) {
    .product-col-purchase {
        position: sticky;
        top: 6rem;
        align-self: start;
    }
}

.purchase-rail {
    background: rgba(255, 255, 255, 0.02);
    /* NOTE: backdrop-filter intentionally omitted here — it creates a CSS containing block
       that breaks position: fixed on any descendant (mobile sticky cart bar).
       It is re-applied at desktop breakpoint below where fixed children are not needed. */
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: 1.5rem;
    padding: 1.75rem;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3);
}

@media (min-width: 1024px) {
    .purchase-rail {
        backdrop-filter: blur(16px);
        -webkit-backdrop-filter: blur(16px);
    }
}

.purchase-rail-title-row {
    margin-bottom: 1rem;
}

.purchase-rail-title {
    font-size: clamp(1.25rem, 2.5vw, 1.5rem);
    font-weight: 700;
    font-family: var(--font-sans);
    line-height: 1.3;
}

.purchase-rail-price {
    font-size: 2.25rem;
    font-weight: 900;
    margin-bottom: 0.5rem;
}

.purchase-rail-price del {
    font-size: 1.25rem;
    opacity: 0.5;
    font-weight: 500;
}

.purchase-rail-price ins {
    text-decoration: none;
}

.purchase-rail-stock {
    font-size: 0.875rem;
    font-weight: 500;
    margin-bottom: 1.5rem;
}

.purchase-rail-stock.in-stock {
    color: #34d399;
}

.purchase-rail-stock.out-of-stock {
    color: #f87171;
}

/* ---- Add to Cart (inline form — static on all viewports) ---- */
.product-purchase-action-container {
    margin-bottom: 1.5rem;
}

.product-purchase-action-container form.cart {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    /* Static on all screen sizes. Mobile Add to Cart UX is handled by the
       .sp-sticky-cart fixed bottom bar overlay (see below). */
    position: static;
    background: transparent;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    padding: 0;
    margin-inline: 0;
    width: 100%;
    border-top: none;
    box-shadow: none;
    border-radius: 0;
}

/* ====================================================
   Mobile Sticky Add to Cart Bar (.sp-sticky-cart)
   Fixed bottom overlay — visible only on mobile (<1024px)
   Appears after JS init on single product pages
   ==================================================== */
.sp-sticky-cart {
    display: none; /* JS adds .sp-sticky-cart--visible on mobile */
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 9900;
    flex-direction: column;
    gap: 0.5rem;
    background: rgba(13, 17, 28, 0.97);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border-top: 1px solid color-mix(in srgb, var(--color-primary) 30%, transparent);
    box-shadow: 0 -6px 28px rgba(0, 0, 0, 0.55), 0 -1px 0 color-mix(in srgb, var(--color-primary) 15%, transparent);
    padding: 0.75rem 1rem;
    padding-bottom: calc(0.75rem + env(safe-area-inset-bottom, 0px));
}

.sp-sticky-cart--visible {
    display: flex;
}

@media (min-width: 1024px) {
    .sp-sticky-cart {
        display: none !important;
    }
}

/* Product summary row inside sticky bar */
.sp-sticky-cart__summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.07);
    margin-bottom: 0.25rem;
}

.sp-sticky-cart__title {
    font-size: 0.8125rem;
    font-weight: 600;
    color: rgba(226, 232, 240, 0.9);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 55%;
}

.sp-sticky-cart__price {
    font-size: 0.9375rem;
    font-weight: 800;
    color: var(--color-primary);
    white-space: nowrap;
}

/* Quantity + Add button row */
.sp-sticky-cart__actions {
    display: flex;
    gap: 0.625rem;
    align-items: center;
}

/* Quantity control inside sticky bar */
.sp-sticky-cart__qty {
    display: flex;
    align-items: center;
    gap: 0;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 0.625rem;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.05);
    flex-shrink: 0;
}

.sp-sticky-cart__qty-btn {
    background: transparent;
    border: none;
    color: rgba(226, 232, 240, 0.8);
    font-size: 1.125rem;
    font-weight: 700;
    width: 2.25rem;
    height: 2.625rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.15s, color 0.15s;
    -webkit-tap-highlight-color: transparent;
}

.sp-sticky-cart__qty-btn:hover,
.sp-sticky-cart__qty-btn:active {
    background: rgba(255, 255, 255, 0.1);
    color: #fff;
}

.sp-sticky-cart__qty-input {
    width: 2.25rem;
    height: 2.625rem;
    text-align: center;
    background: transparent;
    border: none;
    border-left: 1px solid rgba(255, 255, 255, 0.1);
    border-right: 1px solid rgba(255, 255, 255, 0.1);
    color: #fff;
    font-size: 0.9375rem;
    font-weight: 700;
    -moz-appearance: textfield;
    appearance: textfield;
}

.sp-sticky-cart__qty-input::-webkit-outer-spin-button,
.sp-sticky-cart__qty-input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* Add to Cart button in sticky bar */
.sp-sticky-cart__add-btn {
    flex: 1;
    background: var(--color-primary);
    color: #fff;
    border: none;
    border-radius: 0.625rem;
    font-size: 0.9rem;
    font-weight: 800;
    padding: 0 1rem;
    height: 2.625rem;
    cursor: pointer;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    transition: background 0.2s, box-shadow 0.2s, transform 0.15s;
    box-shadow: 0 4px 14px color-mix(in srgb, var(--color-primary) 30%, transparent);
    -webkit-tap-highlight-color: transparent;
    position: relative;
    overflow: hidden;
}

.sp-sticky-cart__add-btn::after {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(255, 255, 255, 0);
    transition: background 0.15s;
}

.sp-sticky-cart__add-btn:active::after {
    background: rgba(255, 255, 255, 0.15);
}

.sp-sticky-cart__add-btn:hover {
    background: color-mix(in srgb, var(--color-primary) 85%, #fff);
    box-shadow: 0 0 22px color-mix(in srgb, var(--color-primary) 45%, transparent);
}

.sp-sticky-cart__add-btn--loading {
    opacity: 0.7;
    cursor: wait;
}

/* View Cart button — hidden until item added */
.sp-sticky-cart__view-cart-btn {
    display: none;
    width: 100%;
    background: transparent;
    border: 1.5px solid var(--color-primary);
    border-radius: 0.625rem;
    color: var(--color-primary);
    font-size: 0.875rem;
    font-weight: 700;
    padding: 0.625rem 1rem;
    cursor: pointer;
    letter-spacing: 0.03em;
    text-align: center;
    text-decoration: none;
    transition: background 0.2s, color 0.2s;
    -webkit-tap-highlight-color: transparent;
}

.sp-sticky-cart__view-cart-btn:hover {
    background: color-mix(in srgb, var(--color-primary) 12%, transparent);
    color: var(--color-primary);
}

.sp-sticky-cart__view-cart-btn--visible {
    display: block;
}

/* Body padding to prevent content being hidden behind sticky bar */
@media (max-width: 1023px) {
    body.single-product {
        padding-bottom: 5rem;
    }
}

.product-purchase-action-container form.cart .quantity {
    align-self: center;
}

.product-purchase-action-container form.cart button.single_add_to_cart_button {
    width: 100%;
    background-color: var(--color-primary);
    color: #ffffff;
    font-weight: 800;
    font-size: 0.95rem;
    padding: 0.875rem 1.5rem;
    border-radius: 0.75rem;
    border: 1px solid transparent;
    transition: all 0.25s ease;
    cursor: pointer;
    box-shadow: 0 4px 15px color-mix(in srgb, var(--color-primary) 20%, transparent);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.product-purchase-action-container form.cart button.single_add_to_cart_button:hover {
    background-color: color-mix(in srgb, var(--color-primary) 85%, #fff);
    box-shadow: 0 0 20px color-mix(in srgb, var(--color-primary) 45%, transparent);
    transform: translateY(-1px);
}

/* ---- COA / Purity Section (conditional) ---- */
.purchase-rail-coa-section {
    margin-top: 1rem;
    padding: 0.875rem;
    border-radius: 0.75rem;
    background: rgba(15, 15, 25, 0.4);
    border: 1px solid rgba(255, 255, 255, 0.06);
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.purchase-rail-coa-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 0.75rem;
}

.purchase-rail-coa-label {
    color: rgba(148, 163, 184, 1);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
}

.purchase-rail-coa-value {
    font-weight: 800;
    color: var(--color-primary);
    background: color-mix(in srgb, var(--color-primary) 10%, transparent);
    padding: 0.125rem 0.5rem;
    border-radius: 0.25rem;
    border: 1px solid color-mix(in srgb, var(--color-primary) 20%, transparent);
}

.pbl-coa-trigger {
    margin-top: 0.25rem;
    width: 100%;
    padding: 0.625rem 1rem;
    border-radius: 0.5rem;
    background: color-mix(in srgb, var(--color-primary) 10%, transparent);
    border: 1px solid color-mix(in srgb, var(--color-primary) 30%, transparent);
    color: var(--color-primary);
    font-size: 0.75rem;
    font-weight: 800;
    transition: all 0.2s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    cursor: pointer;
}

.pbl-coa-trigger:hover {
    background: color-mix(in srgb, var(--color-primary) 20%, transparent);
    border-color: color-mix(in srgb, var(--color-primary) 60%, transparent);
}

.coa-trigger-icon {
    width: 1rem;
    height: 1rem;
}

.purchase-rail-coa-verify-link {
    margin-top: 0.25rem;
    width: 100%;
    padding: 0.625rem 1rem;
    border-radius: 0.5rem;
    background: rgba(255, 255, 255, 0.02);
    border: 1px solid rgba(255, 255, 255, 0.08);
    color: var(--color-text);
    font-size: 0.75rem;
    font-weight: 700;
    transition: all 0.2s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    cursor: pointer;
    text-align: center;
}

.purchase-rail-coa-verify-link:hover {
    background: color-mix(in srgb, var(--color-primary) 10%, transparent);
    border-color: color-mix(in srgb, var(--color-primary) 40%, transparent);
    color: var(--color-primary);
}

/* ---- Quality & Shipping Assurance ---- */
.purchase-rail-assurance {
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    padding-top: 1.25rem;
    margin-top: 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 0.875rem;
}

.purchase-rail-assurance-title {
    font-size: 0.7rem;
    font-weight: 700;
    color: rgba(148, 163, 184, 1);
    text-transform: uppercase;
    letter-spacing: 0.1em;
}

.purchase-rail-assurance-list {
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
}

.purchase-rail-assurance-item {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 0.625rem;
    border-radius: 0.5rem;
    background: rgba(255, 255, 255, 0.02);
    border: 1px solid rgba(255, 255, 255, 0.04);
}

.assurance-icon-wrap {
    width: 2rem;
    height: 2rem;
    border-radius: 0.375rem;
    background: color-mix(in srgb, var(--color-primary) 10%, transparent);
    border: 1px solid color-mix(in srgb, var(--color-primary) 30%, transparent);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-primary);
    flex-shrink: 0;
}

.assurance-icon {
    width: 1rem;
    height: 1rem;
}

.assurance-item-title {
    font-size: 0.75rem;
    font-weight: 800;
}

.assurance-item-desc {
    font-size: 0.6875rem;
    color: rgba(148, 163, 184, 1);
}

/* ---- Quality Guarantee Badge ---- */
.purchase-rail-guarantee {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    margin-top: 1rem;
    font-size: 0.75rem;
    color: rgba(148, 163, 184, 0.7);
}

/* ---- "About This Item" Full-Width Card ---- */
.product-col-about {
    width: 100%;
}

@media (min-width: 1024px) {
    .product-col-about {
        grid-column: 1 / 2;
        grid-row: 2 / 3;
    }
}

.product-about-card {
    background: rgba(255, 255, 255, 0.015);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border: 1px solid rgba(255, 255, 255, 0.07);
    border-radius: 1rem;
    padding: 1.5rem;
}

@media (min-width: 768px) {
    .product-about-card {
        padding: 2rem;
    }
}

.product-about-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.75rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    padding-bottom: 1rem;
    margin-bottom: 1.5rem;
}

.product-about-title {
    font-size: clamp(1.25rem, 2.5vw, 1.5rem);
    font-weight: 700;
    font-family: var(--font-sans);
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.product-about-dot {
    width: 0.625rem;
    height: 0.625rem;
    border-radius: 50%;
    background: var(--color-primary);
    box-shadow: 0 0 10px var(--color-primary);
    animation: pulse-dot 2s ease-in-out infinite;
}

.product-about-badges {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.product-about-badge {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-weight: 800;
    padding: 0.25rem 0.75rem;
    border-radius: 999px;
    background: color-mix(in srgb, var(--color-primary) 10%, transparent);
    border: 1px solid color-mix(in srgb, var(--color-primary) 25%, transparent);
    color: var(--color-primary);
}

.product-about-badge-stock {
    font-size: 0.625rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    padding: 0.25rem 0.75rem;
    border-radius: 999px;
    background: rgba(16, 185, 129, 0.1);
    color: #34d399;
    border: 1px solid rgba(16, 185, 129, 0.35);
    box-shadow: 0 0 12px rgba(16, 185, 129, 0.35);
    display: flex;
    align-items: center;
    gap: 0.375rem;
}

.product-about-badge-stock-dot {
    width: 0.375rem;
    height: 0.375rem;
    border-radius: 50%;
    background: #34d399;
    box-shadow: 0 0 6px #10b981;
    animation: pulse-dot 2s ease-in-out infinite;
}

/* ---- Product Spec Grid ---- */
.product-spec-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
    margin-bottom: 2rem;
}

@media (min-width: 640px) {
    .product-spec-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 768px) {
    .product-spec-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

.product-spec-card {
    background: rgba(255, 255, 255, 0.02);
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: 0.75rem;
    padding: 1rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.product-spec-label {
    font-size: 0.6875rem;
    font-weight: 700;
    color: rgba(148, 163, 184, 1);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    margin-bottom: 0.25rem;
}

.product-spec-value {
    font-size: 0.875rem;
    font-weight: 800;
    color: var(--color-primary);
}

/* ---- Product Description ---- */
.product-about-description {
    color: rgba(148, 163, 184, 1);
    font-size: 0.875rem;
    line-height: 1.7;
    border-top: 1px solid rgba(255, 255, 255, 0.04);
    padding-top: 1.5rem;
}

.product-about-description p {
    margin-bottom: 1rem;
}

.product-about-description p:last-child {
    margin-bottom: 0;
}

.product-about-description strong {
    color: var(--color-text);
}

/* ---- Lightbox ---- */
.pbl-lightbox-overlay {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: none;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.9);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    opacity: 0;
    transition: opacity 0.3s ease;
}

.pbl-lightbox-overlay.flex {
    display: flex;
}

.pbl-lightbox-close {
    position: absolute;
    top: 1.5rem;
    right: 1.5rem;
    z-index: 100;
    color: rgba(255, 255, 255, 0.7);
    padding: 0.5rem;
    transition: color 0.2s ease;
    cursor: pointer;
}

.pbl-lightbox-close:hover {
    color: #fff;
}

.pbl-lightbox-close-icon {
    width: 2rem;
    height: 2rem;
}

.pbl-lightbox-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 100;
    color: rgba(255, 255, 255, 0.7);
    padding: 0.75rem;
    background: rgba(255, 255, 255, 0.05);
    border-radius: 50%;
    transition: all 0.2s ease;
    cursor: pointer;
}

.pbl-lightbox-nav:hover {
    color: #fff;
    background: rgba(255, 255, 255, 0.1);
}

.pbl-lightbox-nav-icon {
    width: 1.5rem;
    height: 1.5rem;
}

.pbl-lightbox-prev-btn {
    left: 1.5rem;
}

.pbl-lightbox-next-btn {
    right: 1.5rem;
}

.pbl-lightbox-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    max-width: 90vw;
    max-height: 85vh;
    gap: 1rem;
}

.pbl-lightbox-img {
    max-width: 100%;
    max-height: 75vh;
    object-fit: contain;
    border-radius: 0.5rem;
    border: 1px solid rgba(255, 255, 255, 0.1);
    box-shadow: 0 25px 50px rgba(0, 0, 0, 0.5);
    transition: transform 0.3s ease, filter 0.3s ease;
}

.pbl-lightbox-content.has-3d-effect {
    perspective: 1000px;
    background: radial-gradient(circle, #2a313d 0%, #171b22 100%),
                url('https://www.transparenttextures.com/patterns/brushed-alum-dark.png');
    background-blend-mode: overlay;
    border-radius: 1rem;
    padding: 2rem;
    border: 1px solid rgba(255, 255, 255, 0.1);
}

.pbl-lightbox-content.has-3d-effect .pbl-lightbox-img {
    transform: rotateX(20deg) rotateY(-15deg) rotateZ(5deg);
    filter: drop-shadow(12px 18px 10px rgba(0, 0, 0, 0.65));
    border: none;
    box-shadow: none;
}

.pbl-lightbox-content.has-3d-effect:hover .pbl-lightbox-img {
    transform: rotateX(10deg) rotateY(-5deg) rotateZ(2deg) translateY(-5px) scale(1.05);
    filter: drop-shadow(16px 24px 14px rgba(0, 0, 0, 0.75));
}


.pbl-lightbox-caption {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 0.375rem;
}

.pbl-lightbox-title {
    color: #fff;
    font-weight: 600;
    font-size: 1rem;
}

.pbl-lightbox-portal-link {
    color: var(--color-primary);
    font-size: 0.75rem;
    font-weight: 700;
}

.pbl-lightbox-portal-link:hover {
    text-decoration: underline;
}

.hidden {
    display: none !important;
}



/* Fix for giant search & clear SVGs */
#shop-realtime-search-input ~ button svg,
.focus-within\:border-accent svg,
svg.w-4 {
    width: 16px !important;
    height: 16px !important;
}


/* Breadcrumb Styling */
.woocommerce-breadcrumb,
.shop-breadcrumbs {
    font-size: 0.75rem;
    color: #64748b;
    margin-bottom: 0.5rem;
}
.woocommerce-breadcrumb a,
.shop-breadcrumbs a {
    color: #94a3b8;
    text-decoration: none;
    transition: color 0.2s ease;
}
.woocommerce-breadcrumb a:hover,
.shop-breadcrumbs a:hover {
    color: var(--color-primary);
}


/* ==========================================================================
   13. Shop Semantic Grid & Sidebar Layout
   ========================================================================== */

/* Outer wrappers & alignment */
.shop-header-container {
    max-width: 1600px;
    margin-inline: auto;
    padding-inline: clamp(1rem, 4vw, 3rem);
    padding-top: 1.5rem;
}

.shop-title {
    font-size: clamp(1.5rem, 3vw, 2rem);
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #ffffff;
    margin: 0.5rem 0 1rem 0;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.shop-title::before {
    content: '';
    display: inline-block;
    width: 0.625rem;
    height: 0.625rem;
    border-radius: 50%;
    background: var(--color-primary);
    box-shadow: 0 0 10px var(--color-primary);
    animation: pulse-dot 2s ease-in-out infinite;
    flex-shrink: 0;
}

.shop-main-container {
    max-width: 1600px;
    margin-inline: auto;
    padding-inline: clamp(1rem, 4vw, 3rem);
    padding-bottom: 2rem;
    display: flex;
    flex-direction: column;
    gap: 2rem;
    align-items: stretch;
}

/* Sidebar layout (desktop sticky, mobile hidden) */
.shop-sidebar {
    display: none;
    width: 16rem;
    flex-shrink: 0;
}

@media (min-width: 1024px) {
    .shop-main-container {
        flex-direction: row;
        align-items: start;
        padding-top: 1rem;
    }
    
    .shop-sidebar {
        display: block;
        position: sticky;
        top: 90px;
        z-index: 20;
    }
}

.shop-sidebar-inner {
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 1rem;
    padding: 1.25rem;
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
}

.shop-sidebar-title {
    font-size: 0.75rem;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: #94a3b8;
    margin-bottom: 1rem;
}

.shop-sidebar-list {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

/* Results container */
.shop-results-section {
    flex: 1;
    min-width: 0;
    width: 100%;
}

/* Filter Rail & Elements */
.shop-filter-rail {
    position: sticky;
    top: 56px;
    z-index: 30;
    background: rgba(10, 10, 18, 0.95);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    padding-block: 0.375rem 0.5rem;
    margin-bottom: 1rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.04);
    transition: all 0.3s ease;
}

@media (min-width: 768px) {
    .shop-filter-rail {
        top: 72px;
    }
}

.shop-filter-rail-inner {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}

/* Mobile Category select (hidden >= lg) */
.shop-mobile-filter-wrap {
    flex: 1;
    min-width: 130px;
}

@media (min-width: 1024px) {
    .shop-mobile-filter-wrap {
        display: none;
    }
}

.shop-mobile-select {
    width: 100%;
    appearance: none;
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.08);
    color: rgba(255, 255, 255, 0.8);
    font-size: 0.75rem;
    font-weight: 700;
    border-radius: 0.5rem;
    padding: 0.5rem 2rem 0.5rem 0.75rem;
    cursor: pointer;
    background-image: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%231b8b8a%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%2F%3E%3C%2Fsvg%3E");
    background-repeat: no-repeat;
    background-position: right 0.75rem center;
    background-size: 0.75rem;
}

/* Sidebar Sort Dropdown */
.shop-sidebar-sort {
    margin-bottom: 1rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}

.shop-sort-select {
    width: 100%;
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.08);
    color: #ffffff;
    font-size: 0.875rem;
    font-weight: 500;
    border-radius: 0.75rem;
    padding: 0.625rem 2rem 0.625rem 1rem;
    cursor: pointer;
    appearance: none;
    background-image: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%231b8b8a%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%2F%3E%3C%2Fsvg%3E");
    background-repeat: no-repeat;
    background-position: right 0.75rem center;
    background-size: 1rem;
    transition: all 0.2s ease;
}

.shop-sort-select:hover,
.shop-sort-select:focus {
    background-color: rgba(255, 255, 255, 0.06);
    border-color: var(--color-primary);
    outline: none;
    box-shadow: 0 0 10px color-mix(in srgb, var(--color-primary) 20%, transparent);
}

select option {
    background-color: #1a1e23; /* Dark background to match site */
    color: #ffffff;
    padding: 0.5rem;
}

/* Product Grid Layout */
.shop-product-grid-layout {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.5rem;
}

@media (min-width: 768px) {
    .shop-product-grid-layout {
        grid-template-columns: repeat(3, 1fr);
        gap: 1.5rem;
    }
}

@media (min-width: 1280px) {
    .shop-product-grid-layout {
        grid-template-columns: repeat(4, 1fr);
    }
}

/* Info indicators & state displays */
.shop-search-count {
    font-size: 0.75rem;
    color: #94a3b8;
    margin-bottom: 1rem;
}

.shop-search-count.hidden {
    display: none;
}

.shop-no-results {
    padding: 3rem;
    text-align: center;
    color: #94a3b8;
    font-size: 0.875rem;
}

.shop-no-results.hidden {
    display: none;
}

/* ============================================================ */
/* 15. WooCommerce Cart & Checkout Blocks                        */
/* ============================================================ */

/* --- Keyframe Animations --- */
@keyframes cart-item-enter {
    from {
        opacity: 0;
        transform: translateY(12px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes checkout-pulse {
    0%, 100% {
        box-shadow: 0 0 20px color-mix(in srgb, var(--color-primary) 25%, transparent);
    }
    50% {
        box-shadow: 0 0 35px color-mix(in srgb, var(--color-primary) 45%, transparent),
                    0 0 60px color-mix(in srgb, var(--color-primary) 15%, transparent);
    }
}

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

/* --- Page-level container overrides --- */
.woocommerce-cart .site-main {
    padding-block: 0 var(--space-md);
}

.woocommerce-checkout .site-main {
    padding-block: var(--space-md);
}

.woocommerce-cart .wp-block-woocommerce-cart,
.woocommerce-checkout .wp-block-woocommerce-checkout,
.aed-hero-header-wrapper {
    max-width: var(--container-max);
    margin-inline: auto;
    padding-inline: var(--container-padding);
}

/* --- Reusable Hero Header --- */
.aed-hero-header {
    display: block;
    font-size: clamp(1.75rem, 3.5vw, 2.5rem);
    font-weight: 800;
    color: var(--color-text);
    letter-spacing: -0.02em;
    padding-block: var(--space-md);
    padding-bottom: 1.5rem;
    margin-bottom: 0.5rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
    background-image: linear-gradient(135deg, var(--color-primary) 0%, transparent 15%, transparent 85%, var(--color-primary-dark) 100%);
    background-size: 200% 200%;
    background-position: center;
    -webkit-background-clip: text;
    background-clip: text;
    margin-inline: calc(-1 * var(--container-padding));
    padding-inline: var(--container-padding);
}

/* --- Filled Cart Layout (two-column) --- */
.wp-block-woocommerce-filled-cart-block {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem;
    padding-top: 1rem;
}

@media (min-width: 768px) {
    .wp-block-woocommerce-filled-cart-block {
        grid-template-columns: 1fr 400px;
        gap: 2.5rem;
    }
}

/* --- Cart Items Column --- */
.wp-block-woocommerce-cart-items-block {
    min-width: 0;
}

/* --- Cart Totals / Sidebar Column --- */
.wp-block-woocommerce-cart-totals-block {
    position: sticky;
    top: 5rem;
    align-self: start;
}

/* --- Cart Table --- */
.wc-block-cart-items,
.wc-block-cart-items table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
}

.wc-block-cart-items thead {
    display: none;
}

/* --- Cart Line Item Rows --- */
.wc-block-cart-items .wc-block-cart-items__row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1.25rem;
    padding: 1.25rem;
    margin-bottom: 1rem;
    background: linear-gradient(
        135deg,
        rgba(255, 255, 255, 0.04) 0%,
        rgba(255, 255, 255, 0.02) 100%
    );
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 18px;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    transition: border-color 0.3s ease, box-shadow 0.3s ease, transform 0.3s ease;
    animation: cart-item-enter 0.4s ease both;
}

.wc-block-cart-items .wc-block-cart-items__row:nth-child(2) { animation-delay: 0.06s; }
.wc-block-cart-items .wc-block-cart-items__row:nth-child(3) { animation-delay: 0.12s; }
.wc-block-cart-items .wc-block-cart-items__row:nth-child(4) { animation-delay: 0.18s; }
.wc-block-cart-items .wc-block-cart-items__row:nth-child(5) { animation-delay: 0.24s; }

.wc-block-cart-items .wc-block-cart-items__row:hover {
    border-color: color-mix(in srgb, var(--color-primary) 35%, transparent);
    box-shadow: 0 4px 24px color-mix(in srgb, var(--color-primary) 10%, transparent),
                inset 0 0 0 1px color-mix(in srgb, var(--color-primary) 8%, transparent);
    transform: translateY(-1px);
}

.wc-block-cart-items .wc-block-cart-items__row td {
    padding: 0;
    border: none;
    background: transparent;
    vertical-align: middle;
}

/* --- Product Image Cell (larger for sticker shop) --- */
.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__image {
    width: 100px;
    flex-shrink: 0;
}

.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__image img {
    width: 100px;
    height: 100px;
    object-fit: cover;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.05);
    border: 2px solid rgba(255, 255, 255, 0.06);
    transition: border-color 0.3s ease, transform 0.3s ease;
}

.wc-block-cart-items .wc-block-cart-items__row:hover .wc-block-cart-item__image img {
    border-color: color-mix(in srgb, var(--color-primary) 25%, transparent);
    transform: scale(1.03);
}

/* --- Product Info Cell --- */
.wc-block-cart-item__product {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

/* Product name */
.wc-block-components-product-name {
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--color-text);
    text-decoration: none;
    transition: color 0.2s ease;
    display: block;
    line-height: 1.35;
}

.wc-block-components-product-name:hover {
    color: var(--color-primary);
}

/* Product metadata (variations/attributes) */
.wc-block-components-product-metadata {
    font-size: 0.75rem;
    color: color-mix(in srgb, var(--color-text) 50%, transparent);
    margin-top: 0;
}

.wc-block-components-product-metadata__description p {
    margin: 0;
}

/* Remove link */
.wc-block-cart-item__remove-link {
    font-size: 0.75rem;
    color: color-mix(in srgb, var(--color-text) 40%, transparent);
    cursor: pointer;
    transition: color 0.2s ease, transform 0.15s ease;
    background: none;
    border: none;
    padding: 0.25rem 0;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    width: fit-content;
}

.wc-block-cart-item__remove-link:hover {
    color: #ef4444;
    transform: translateX(1px);
}

/* --- Premium Quantity Selector --- */
.wc-block-components-quantity-selector {
    display: inline-flex;
    align-items: center;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 12px;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.04);
    transition: border-color 0.25s ease, box-shadow 0.25s ease;
}

.wc-block-components-quantity-selector:hover {
    border-color: color-mix(in srgb, var(--color-primary) 30%, transparent);
}

.wc-block-components-quantity-selector:focus-within {
    border-color: var(--color-primary);
    box-shadow: 0 0 12px color-mix(in srgb, var(--color-primary) 15%, transparent);
}

.wc-block-components-quantity-selector .wc-block-components-quantity-selector__button {
    background: transparent;
    border: none;
    color: color-mix(in srgb, var(--color-text) 70%, transparent);
    width: 2.25rem;
    height: 2.25rem;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-size: 1.1rem;
    transition: all 0.2s ease;
    padding: 0;
}

.wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:hover {
    color: var(--color-primary);
    background: color-mix(in srgb, var(--color-primary) 12%, transparent);
}

.wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:active {
    transform: scale(0.9);
}

.wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:disabled {
    opacity: 0.3;
    cursor: not-allowed;
}

.wc-block-components-quantity-selector .wc-block-components-quantity-selector__input {
    width: 2.75rem;
    text-align: center;
    border: none;
    border-left: 1px solid rgba(255, 255, 255, 0.08);
    border-right: 1px solid rgba(255, 255, 255, 0.08);
    background: transparent;
    color: var(--color-text);
    font-size: 0.875rem;
    font-weight: 700;
    padding: 0;
    margin: 0;
    -moz-appearance: textfield;
    appearance: textfield;
    outline: none;
    transition: color 0.2s ease;
}

.wc-block-components-quantity-selector .wc-block-components-quantity-selector__input::-webkit-inner-spin-button,
.wc-block-components-quantity-selector .wc-block-components-quantity-selector__input::-webkit-outer-spin-button {
    -webkit-appearance: none;
    appearance: none;
    margin: 0;
}

/* --- Product Price in Cart --- */
.wc-block-cart-item__total .wc-block-components-product-price,
.wc-block-cart-item__total .wc-block-formatted-money-amount {
    font-size: 1rem;
    font-weight: 700;
    color: var(--color-primary);
    letter-spacing: -0.01em;
}

/* --- Order Summary / Sidebar Card --- */
.wc-block-cart__totals-title,
.wp-block-woocommerce-cart-order-summary-heading-block .wc-block-components-totals-wrapper:first-child {
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--color-text);
    padding-bottom: 1rem;
    margin-bottom: 0;
    letter-spacing: -0.01em;
}

/* Sidebar panels wrapper — elevated premium card */
.wp-block-woocommerce-cart-totals-block {
    width: 100%;
    background: linear-gradient(
        160deg,
        rgba(255, 255, 255, 0.05) 0%,
        rgba(255, 255, 255, 0.02) 100%
    );
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-top: 2px solid var(--color-primary);
    border-radius: 20px;
    padding: 1.75rem;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    box-shadow: 0 8px 40px rgba(0, 0, 0, 0.15),
                0 0 0 1px rgba(255, 255, 255, 0.03) inset;
}

/* Checkout sidebar inherits from shared rule below */
.wp-block-woocommerce-checkout-totals-block {
    width: 100%;
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 16px;
    padding: 1.5rem;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}

/* --- Totals Rows (Subtotal, Shipping, Tax, Total) --- */
.wc-block-components-totals-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-block: 0.875rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.wc-block-components-totals-item:last-child {
    border-bottom: none;
}

.wc-block-components-totals-item__label {
    font-size: 0.85rem;
    color: color-mix(in srgb, var(--color-text) 65%, transparent);
    font-weight: 500;
}

.wc-block-components-totals-item__value {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--color-text);
}

/* Total row emphasis — stand-out design */
.wc-block-components-totals-footer-item {
    margin-top: 0.5rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--color-text);
}

.wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
    font-size: 1.25rem;
    font-weight: 800;
    color: var(--color-primary);
    text-shadow: 0 0 20px color-mix(in srgb, var(--color-primary) 30%, transparent);
}

/* --- Totals Wrappers (add spacing) --- */
.wc-block-components-totals-wrapper {
    padding: 0;
    margin: 0;
    border: none;
}

/* --- Coupon Form --- */
.wc-block-components-totals-coupon__form {
    display: flex;
    gap: 0.5rem;
    margin-top: 0.75rem;
}

.wc-block-components-totals-coupon__form .wc-block-components-totals-coupon__input {
    flex: 1;
}

.wc-block-components-totals-coupon__form .wc-block-components-totals-coupon__input input {
    width: 100%;
    padding: 0.7rem 0.9rem;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 12px;
    color: var(--color-text);
    font-size: 0.85rem;
    outline: none;
    transition: border-color 0.25s ease, box-shadow 0.25s ease;
}

.wc-block-components-totals-coupon__form .wc-block-components-totals-coupon__input input:focus {
    border-color: var(--color-primary);
    box-shadow: 0 0 15px color-mix(in srgb, var(--color-primary) 20%, transparent);
}

.wc-block-components-totals-coupon__form .wc-block-components-totals-coupon__input input::placeholder {
    color: color-mix(in srgb, var(--color-text) 35%, transparent);
}

.wc-block-components-totals-coupon__button {
    padding: 0.7rem 1.15rem;
    background: color-mix(in srgb, var(--color-primary) 12%, transparent);
    border: 1px solid color-mix(in srgb, var(--color-primary) 30%, transparent);
    border-radius: 12px;
    color: var(--color-primary);
    font-size: 0.8rem;
    font-weight: 700;
    cursor: pointer;
    white-space: nowrap;
    transition: all 0.25s ease;
}

.wc-block-components-totals-coupon__button:hover {
    background: color-mix(in srgb, var(--color-primary) 20%, transparent);
    box-shadow: 0 0 15px color-mix(in srgb, var(--color-primary) 15%, transparent);
    transform: translateY(-1px);
}

.wc-block-components-totals-coupon__button:active {
    transform: translateY(0);
}

/* Coupon toggle link */
.wc-block-components-totals-coupon-link {
    font-size: 0.8rem;
    color: var(--color-primary);
    cursor: pointer;
    transition: opacity 0.2s, color 0.2s;
}

.wc-block-components-totals-coupon-link:hover {
    opacity: 0.8;
}

/* --- Proceed to Checkout Button — animated CTA --- */
.wc-block-cart__submit-button,
.wp-block-woocommerce-proceed-to-checkout-block .wc-block-cart__submit-button {
    display: block;
    width: 100%;
    padding: 1rem 1.5rem;
    background: linear-gradient(
        135deg,
        var(--color-primary),
        color-mix(in srgb, var(--color-primary) 80%, #38BDF8)
    );
    color: var(--color-bg);
    border: none;
    border-radius: 14px;
    font-size: 1rem;
    font-weight: 700;
    cursor: pointer;
    text-align: center;
    text-decoration: none;
    transition: all 0.3s ease;
    box-shadow: 0 0 20px color-mix(in srgb, var(--color-primary) 25%, transparent);
    margin-top: 1.25rem;
    animation: checkout-pulse 3s ease-in-out infinite;
    letter-spacing: 0.01em;
    position: relative;
    overflow: hidden;
}

/* Shimmer overlay on checkout button */
.wc-block-cart__submit-button::after,
.wp-block-woocommerce-proceed-to-checkout-block .wc-block-cart__submit-button::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(
        90deg,
        transparent 0%,
        rgba(255, 255, 255, 0.15) 50%,
        transparent 100%
    );
    background-size: 200% 100%;
    animation: shimmer-slide 4s ease-in-out infinite;
    pointer-events: none;
}

.wc-block-cart__submit-button:hover,
.wp-block-woocommerce-proceed-to-checkout-block .wc-block-cart__submit-button:hover {
    filter: brightness(1.12);
    box-shadow: 0 0 35px color-mix(in srgb, var(--color-primary) 45%, transparent);
    transform: translateY(-2px);
    animation: none;
}

.wc-block-cart__submit-button:active,
.wp-block-woocommerce-proceed-to-checkout-block .wc-block-cart__submit-button:active {
    transform: translateY(0);
    animation: none;
}

/* Place order button (checkout page — no pulse) */
.wc-block-components-checkout-place-order-button {
    display: block;
    width: 100%;
    padding: 1rem 1.5rem;
    background: var(--color-primary);
    color: var(--color-bg);
    border: none;
    border-radius: 14px;
    font-size: 0.95rem;
    font-weight: 700;
    cursor: pointer;
    text-align: center;
    text-decoration: none;
    transition: all 0.3s ease;
    box-shadow: 0 0 20px color-mix(in srgb, var(--color-primary) 25%, transparent);
    margin-top: 1rem;
}

.wc-block-components-checkout-place-order-button:hover {
    filter: brightness(1.1);
    box-shadow: 0 0 30px color-mix(in srgb, var(--color-primary) 40%, transparent);
    transform: translateY(-1px);
}

.wc-block-components-checkout-place-order-button:active {
    transform: translateY(0);
}

/* --- Accepted Payment Methods --- */
.wp-block-woocommerce-cart-accepted-payment-methods-block {
    margin-top: 1.25rem;
    text-align: center;
    padding-top: 1rem;
    border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.wc-block-components-payment-method-icons {
    display: flex;
    justify-content: center;
    gap: 0.625rem;
    flex-wrap: wrap;
    opacity: 0.5;
    transition: opacity 0.3s;
}

.wc-block-components-payment-method-icons:hover {
    opacity: 0.75;
}

.wc-block-components-payment-method-icons .wc-block-components-payment-method-icon {
    height: 26px;
    filter: grayscale(1) brightness(2);
    transition: filter 0.3s, transform 0.3s;
}

.wc-block-components-payment-method-icons .wc-block-components-payment-method-icon:hover {
    filter: grayscale(0) brightness(1);
    transform: scale(1.1);
}

/* --- Empty Cart State (polished) --- */
.wp-block-woocommerce-empty-cart-block {
    padding: clamp(3rem, 6vw, 5rem) 1.5rem;
    text-align: center;
    position: relative;
}

/* Decorative gradient blob behind empty cart */
.wp-block-woocommerce-empty-cart-block::before {
    content: "";
    position: absolute;
    top: 10%;
    left: 50%;
    transform: translateX(-50%);
    width: 320px;
    height: 320px;
    background: radial-gradient(
        circle,
        color-mix(in srgb, var(--color-primary) 8%, transparent) 0%,
        transparent 70%
    );
    border-radius: 50%;
    pointer-events: none;
    z-index: 0;
}

.wp-block-woocommerce-empty-cart-block > * {
    position: relative;
    z-index: 1;
}

.wc-block-cart__empty-cart__title {
    font-size: clamp(1.75rem, 3.5vw, 2.5rem);
    font-weight: 800;
    color: var(--color-text);
    margin-bottom: 0.75rem;
    letter-spacing: -0.02em;
}

.wc-block-cart__empty-cart__title::before {
    filter: invert(1) brightness(1.5);
}

.wp-block-woocommerce-empty-cart-block p {
    color: color-mix(in srgb, var(--color-text) 60%, transparent);
    font-size: 0.95rem;
    max-width: 480px;
    margin-inline: auto;
    line-height: 1.6;
}

/* Continue Shopping button in empty cart */
.wp-block-woocommerce-empty-cart-block .wp-block-button .wp-block-button__link {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.875rem 1.75rem;
    background: var(--color-primary);
    color: var(--color-bg);
    border: none;
    border-radius: 14px;
    font-size: 0.9rem;
    font-weight: 700;
    cursor: pointer;
    text-decoration: none;
    transition: all 0.3s ease;
    box-shadow: 0 0 20px color-mix(in srgb, var(--color-primary) 25%, transparent);
}

.wp-block-woocommerce-empty-cart-block .wp-block-button .wp-block-button__link:hover {
    transform: translateY(-2px);
    box-shadow: 0 0 35px color-mix(in srgb, var(--color-primary) 40%, transparent);
    filter: brightness(1.1);
}

.wp-block-woocommerce-empty-cart-block .wp-block-separator {
    border-color: rgba(255, 255, 255, 0.08);
    margin-block: 2.5rem;
}

.wp-block-woocommerce-empty-cart-block .wp-block-separator.is-style-dots::before {
    color: color-mix(in srgb, var(--color-text) 25%, transparent);
}

.wp-block-woocommerce-empty-cart-block .wp-block-heading {
    color: var(--color-text);
    font-size: 1.1rem;
    font-weight: 700;
    margin-bottom: 1rem;
}

/* Empty cart suggested products grid */
/* Override WooCommerce .wc-block-grid defaults — must beat specificity of
   .wc-block-grid.has-4-columns:not(.alignwide):not(.alignfull) .wc-block-grid__product */
.wp-block-woocommerce-empty-cart-block .wc-block-grid.has-4-columns {
    font-size: 1rem;
    text-align: left;
}

.wp-block-woocommerce-empty-cart-block .wc-block-grid .wc-block-grid__products {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 1.25rem;
    padding: 0;
    margin: 1.5rem 0 0;
}

.wp-block-woocommerce-empty-cart-block .wc-block-grid.has-4-columns:not(.alignwide):not(.alignfull) .wc-block-grid__product {
    list-style: none;
    background: linear-gradient(
        135deg,
        rgba(255, 255, 255, 0.04) 0%,
        rgba(255, 255, 255, 0.02) 100%
    );
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 16px;
    overflow: hidden;
    transition: all 0.3s ease;
    /* Override WooCommerce .has-4-columns flex constraints (0-7-0 beats WC's 0-6-0) */
    max-width: none;
    flex: unset;
    width: auto;
    border-bottom: none;
    padding: 0;
    font-size: 1rem;
}

.wp-block-woocommerce-empty-cart-block .wc-block-grid__product:hover {
    border-color: color-mix(in srgb, var(--color-primary) 30%, transparent);
    box-shadow: 0 8px 30px color-mix(in srgb, var(--color-primary) 12%, transparent);
    transform: translateY(-3px);
}

.wp-block-woocommerce-empty-cart-block .wc-block-grid__product-image img {
    width: 100%;
    aspect-ratio: 1;
    object-fit: cover;
    border-radius: 0;
    background: rgba(255, 255, 255, 0.04);
    transition: transform 0.4s ease;
}

.wp-block-woocommerce-empty-cart-block .wc-block-grid__product:hover .wc-block-grid__product-image img {
    transform: scale(1.05);
}

.wp-block-woocommerce-empty-cart-block .wc-block-grid__product-title {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--color-text);
    padding: 0.875rem 0.875rem 0.25rem;
    line-height: 1.35;
}

.wp-block-woocommerce-empty-cart-block .wc-block-grid__product-price {
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--color-primary);
    padding: 0 0.875rem 0.625rem;
}

.wp-block-woocommerce-empty-cart-block .wc-block-grid__product-add-to-cart .wp-block-button__link {
    display: block;
    width: calc(100% - 1.75rem);
    margin: 0 0.875rem 0.875rem;
    padding: 0.6rem;
    font-size: 0.78rem;
    font-weight: 700;
    text-align: center;
    background: color-mix(in srgb, var(--color-primary) 10%, transparent);
    border: 1px solid color-mix(in srgb, var(--color-primary) 25%, transparent);
    border-radius: 10px;
    color: var(--color-primary);
    cursor: pointer;
    transition: all 0.25s ease;
    text-decoration: none;
}

.wp-block-woocommerce-empty-cart-block .wc-block-grid__product-add-to-cart .wp-block-button__link:hover {
    background: color-mix(in srgb, var(--color-primary) 20%, transparent);
    box-shadow: 0 0 15px color-mix(in srgb, var(--color-primary) 15%, transparent);
    transform: translateY(-1px);
}

/* ============================================================ */
/* 16. WooCommerce Checkout Blocks                               */
/* ============================================================ */

/* --- Checkout Two-Column Layout --- */
.wp-block-woocommerce-checkout .wc-block-checkout {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem;
}

@media (min-width: 768px) {
    .wp-block-woocommerce-checkout .wc-block-checkout {
        grid-template-columns: 1fr 380px;
    }
}

/* --- Checkout Main Column --- */
.wc-block-checkout__main {
    min-width: 0;
}

/* --- Checkout Sidebar --- */
.wc-block-checkout__sidebar {
    position: sticky;
    top: 5rem;
    align-self: start;
}

.wc-block-checkout__sidebar .wp-block-woocommerce-checkout-totals-block {
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 16px;
    padding: 1.5rem;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}

/* --- Checkout Form Fields --- */
.wc-block-components-text-input,
.wc-block-components-country-input,
.wc-block-components-state-input {
    margin-bottom: 1rem;
}

.wc-block-components-text-input input,
.wc-block-components-text-input textarea,
.wc-block-components-country-input .wc-block-components-combobox .components-combobox-control input,
select.wc-block-components-state-input {
    width: 100%;
    padding: 0.75rem 0.875rem;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 10px;
    color: var(--color-text);
    font-size: 0.875rem;
    font-family: var(--font-sans);
    outline: none;
    transition: border-color 0.25s ease, box-shadow 0.25s ease;
}

.wc-block-components-text-input input:focus,
.wc-block-components-text-input textarea:focus {
    border-color: var(--color-primary);
    box-shadow: 0 0 15px color-mix(in srgb, var(--color-primary) 20%, transparent);
}

.wc-block-components-text-input input::placeholder,
.wc-block-components-text-input textarea::placeholder {
    color: color-mix(in srgb, var(--color-text) 35%, transparent);
}

/* Floating labels */
.wc-block-components-text-input label {
    color: color-mix(in srgb, var(--color-text) 50%, transparent);
    font-size: 0.8rem;
}

.wc-block-components-text-input.is-active label {
    color: var(--color-primary);
}

/* --- Select / Combobox Inputs --- */
.wc-block-components-combobox .components-combobox-control__input,
.wc-block-components-form .wc-block-components-combobox .components-form-token-field__input-container {
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 10px;
    color: var(--color-text);
    min-height: 2.75rem;
}

.wc-block-components-combobox .components-form-token-field__suggestions-list {
    background: var(--color-bg);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 10px;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.3);
    max-height: 200px;
    overflow-y: auto;
}

.wc-block-components-combobox .components-form-token-field__suggestion {
    padding: 0.5rem 0.75rem;
    font-size: 0.85rem;
    color: color-mix(in srgb, var(--color-text) 80%, transparent);
    cursor: pointer;
}

.wc-block-components-combobox .components-form-token-field__suggestion.is-selected,
.wc-block-components-combobox .components-form-token-field__suggestion:hover {
    background: color-mix(in srgb, var(--color-primary) 10%, transparent);
    color: var(--color-primary);
}

/* --- Radio Controls (Shipping Methods, Payment) --- */
.wc-block-components-radio-control .wc-block-components-radio-control__option {
    padding: 1rem;
    margin-bottom: 0.5rem;
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 12px;
    transition: all 0.25s ease;
    cursor: pointer;
}

.wc-block-components-radio-control .wc-block-components-radio-control__option:hover {
    border-color: color-mix(in srgb, var(--color-primary) 30%, transparent);
}

.wc-block-components-radio-control .wc-block-components-radio-control__option.wc-block-components-radio-control__option-checked,
.wc-block-components-radio-control .wc-block-components-radio-control__option--checked {
    border-color: color-mix(in srgb, var(--color-primary) 40%, transparent);
    background: color-mix(in srgb, var(--color-primary) 6%, transparent);
    box-shadow: 0 0 15px color-mix(in srgb, var(--color-primary) 10%, transparent);
}

.wc-block-components-radio-control__input {
    accent-color: var(--color-primary);
}

.wc-block-components-radio-control__label {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--color-text);
}

.wc-block-components-radio-control__description {
    font-size: 0.75rem;
    color: color-mix(in srgb, var(--color-text) 50%, transparent);
}

.wc-block-components-radio-control__secondary-label {
    font-weight: 700;
    color: var(--color-primary);
}

/* --- Checkout Section Headings --- */
.wc-block-components-checkout-step__heading {
    font-size: 1rem;
    font-weight: 700;
    color: var(--color-text);
    margin-bottom: 0.75rem;
}

.wc-block-components-checkout-step__title {
    font-size: 1rem;
    font-weight: 700;
    color: var(--color-text);
}

.wc-block-components-checkout-step__description {
    font-size: 0.8rem;
    color: color-mix(in srgb, var(--color-text) 50%, transparent);
}

/* Step container borders */
.wc-block-components-checkout-step {
    padding-bottom: 1.5rem;
    margin-bottom: 1.5rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.wc-block-components-checkout-step:last-child {
    border-bottom: none;
}

/* --- Checkout Order Summary (Sidebar) --- */
.wc-block-components-order-summary .wc-block-components-order-summary-item {
    display: flex;
    gap: 0.75rem;
    padding-block: 0.75rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.wc-block-components-order-summary .wc-block-components-order-summary-item:last-child {
    border-bottom: none;
}

.wc-block-components-order-summary-item__image {
    width: 56px;
    height: 56px;
    flex-shrink: 0;
    border-radius: 10px;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.04);
}

.wc-block-components-order-summary-item__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.wc-block-components-order-summary-item__description {
    flex: 1;
    min-width: 0;
}

.wc-block-components-order-summary-item__description .wc-block-components-product-name {
    font-size: 0.8rem;
    font-weight: 600;
    line-height: 1.3;
}

.wc-block-components-order-summary-item__total-price {
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--color-primary);
}

.wc-block-components-order-summary-item__individual-price {
    font-size: 0.7rem;
    color: color-mix(in srgb, var(--color-text) 40%, transparent);
}

/* Order summary quantity badge */
.wc-block-components-order-summary-item__quantity {
    background: var(--color-primary);
    color: var(--color-bg);
    font-size: 0.65rem;
    font-weight: 700;
    width: 1.25rem;
    height: 1.25rem;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    top: -4px;
    right: -4px;
}

/* --- Notices / Banners --- */
.wc-block-components-notice-banner {
    padding: 0.875rem 1rem;
    border-radius: 12px;
    font-size: 0.85rem;
    margin-bottom: 1rem;
    border: 1px solid;
}

.wc-block-components-notice-banner.is-success {
    background: color-mix(in srgb, #22c55e 10%, transparent);
    border-color: color-mix(in srgb, #22c55e 30%, transparent);
    color: #4ade80;
}

.wc-block-components-notice-banner.is-error {
    background: color-mix(in srgb, #ef4444 10%, transparent);
    border-color: color-mix(in srgb, #ef4444 30%, transparent);
    color: #f87171;
}

.wc-block-components-notice-banner.is-info,
.wc-block-components-notice-banner.is-warning {
    background: color-mix(in srgb, #f59e0b 10%, transparent);
    border-color: color-mix(in srgb, #f59e0b 30%, transparent);
    color: #fbbf24;
}

.wc-block-components-notice-banner .wc-block-components-notice-banner__content {
    color: inherit;
}

.wc-block-components-notice-banner svg {
    fill: currentColor;
}

/* --- Checkbox Controls --- */
.wc-block-components-checkbox .wc-block-components-checkbox__input {
    accent-color: var(--color-primary);
}

.wc-block-components-checkbox .wc-block-components-checkbox__label {
    font-size: 0.8rem;
    color: color-mix(in srgb, var(--color-text) 80%, transparent);
}

/* --- Express Payment Block --- */
.wp-block-woocommerce-cart-express-payment-block,
.wp-block-woocommerce-checkout-express-payment-block {
    margin-block: 1rem;
}

.wc-block-components-express-payment__title {
    font-size: 0.75rem;
    color: color-mix(in srgb, var(--color-text) 40%, transparent);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

/* --- Shipping Options in Checkout --- */
.wc-block-components-shipping-rates-control {
    margin-top: 0.5rem;
}

/* --- Payment Method Radio / Tabs --- */
.wc-block-components-payment-method-label {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--color-text);
}

.wc-block-components-payment-method-icons--align-right {
    opacity: 0.5;
}

/* --- Place Order Action Area --- */
.wc-block-checkout__actions {
    margin-top: 1.5rem;
}

.wc-block-checkout__actions .wc-block-components-checkout-return-to-cart-button {
    font-size: 0.8rem;
    color: color-mix(in srgb, var(--color-text) 60%, transparent);
    background: none;
    border: none;
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 2px;
    transition: color 0.2s;
    padding: 0;
    margin-top: 0.75rem;
}

.wc-block-checkout__actions .wc-block-components-checkout-return-to-cart-button:hover {
    color: var(--color-primary);
}

/* --- Privacy / Terms notice --- */
.wc-block-checkout__terms {
    font-size: 0.75rem;
    color: color-mix(in srgb, var(--color-text) 40%, transparent);
    margin-top: 1rem;
}

.wc-block-checkout__terms a {
    color: var(--color-primary);
    text-decoration: underline;
    text-underline-offset: 2px;
}

/* --- Shipping Calculator --- */
.wc-block-components-shipping-calculator {
    margin-top: 0.75rem;
}

.wc-block-components-shipping-calculator-address input,
.wc-block-components-shipping-calculator-address select {
    width: 100%;
    padding: 0.625rem 0.875rem;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 10px;
    color: var(--color-text);
    font-size: 0.85rem;
    outline: none;
    transition: border-color 0.25s ease;
}

.wc-block-components-shipping-calculator-address input:focus,
.wc-block-components-shipping-calculator-address select:focus {
    border-color: var(--color-primary);
    box-shadow: 0 0 15px color-mix(in srgb, var(--color-primary) 20%, transparent);
}

.wc-block-components-shipping-calculator .wc-block-components-button {
    padding: 0.5rem 1rem;
    background: color-mix(in srgb, var(--color-primary) 12%, transparent);
    border: 1px solid color-mix(in srgb, var(--color-primary) 30%, transparent);
    border-radius: 10px;
    color: var(--color-primary);
    font-size: 0.8rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.25s ease;
    margin-top: 0.5rem;
}

.wc-block-components-shipping-calculator .wc-block-components-button:hover {
    background: color-mix(in srgb, var(--color-primary) 20%, transparent);
}

/* --- Loading / Skeleton States --- */
.wc-block-cart.is-loading .wc-block-components-loading-mask,
.wc-block-checkout.is-loading .wc-block-components-loading-mask {
    background: rgba(255, 255, 255, 0.02);
    border-radius: 12px;
}

/* Spinner */
.wc-block-components-spinner::after {
    border-color: rgba(255, 255, 255, 0.1);
    border-top-color: var(--color-primary);
}

/* --- Validation Error Messages --- */
.wc-block-components-validation-error {
    font-size: 0.75rem;
    color: #f87171;
    margin-top: 0.25rem;
}

/* --- Mobile Responsive for Cart/Checkout --- */
@media (max-width: 767px) {
    .wp-block-woocommerce-filled-cart-block,
    .wp-block-woocommerce-checkout .wc-block-checkout {
        grid-template-columns: 1fr;
    }

    .wp-block-woocommerce-cart-totals-block,
    .wc-block-checkout__sidebar {
        position: static;
    }

    /* Cart hero header mobile adjustment */
    .woocommerce-cart .wp-block-woocommerce-cart::before {
        font-size: 1.5rem;
        padding-block: 1.25rem;
        padding-bottom: 1rem;
    }

    /* Cart item cards mobile */
    .wc-block-cart-items .wc-block-cart-items__row {
        padding: 1rem;
        gap: 1rem;
        border-radius: 14px;
    }

    .wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__image {
        width: 80px;
    }

    .wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__image img {
        width: 80px;
        height: 80px;
        border-radius: 12px;
    }

    /* Product name on mobile */
    .wc-block-components-product-name {
        font-size: 0.875rem;
    }

    /* Remove link — ensure tappable size */
    .wc-block-cart-item__remove-link {
        padding: 0.375rem 0;
        font-size: 0.8rem;
    }

    /* Sidebar totals mobile */
    .wp-block-woocommerce-cart-totals-block {
        border-radius: 16px;
        padding: 1.25rem;
        border-top-width: 2px;
    }

    /* Checkout CTA mobile — ensure full tappable area */
    .wc-block-cart__submit-button,
    .wp-block-woocommerce-proceed-to-checkout-block .wc-block-cart__submit-button {
        padding: 1rem 1.25rem;
        font-size: 0.95rem;
        border-radius: 12px;
    }

    /* Empty cart responsive */
    .wp-block-woocommerce-empty-cart-block .wc-block-grid__products {
        grid-template-columns: repeat(2, 1fr);
        gap: 0.75rem;
    }

    .wp-block-woocommerce-empty-cart-block .wc-block-grid__product {
        border-radius: 12px;
    }

    .wp-block-woocommerce-empty-cart-block .wc-block-grid__product-title {
        font-size: 0.78rem;
        padding: 0.625rem 0.625rem 0.125rem;
    }

    .wp-block-woocommerce-empty-cart-block .wc-block-grid__product-price {
        font-size: 0.82rem;
        padding: 0 0.625rem 0.375rem;
    }

    .wp-block-woocommerce-empty-cart-block .wc-block-grid__product-add-to-cart .wp-block-button__link {
        width: calc(100% - 1.25rem);
        margin: 0 0.625rem 0.625rem;
        padding: 0.5rem;
        font-size: 0.72rem;
        border-radius: 8px;
    }
}


/* Coupon accordion button styling */
.wp-block-woocommerce-cart-totals-block .wc-block-components-panel__button,
.wp-block-woocommerce-checkout-totals-block .wc-block-components-panel__button {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    padding-block: 0.5rem;
}

.wp-block-woocommerce-cart-totals-block .wc-block-components-panel__button-icon,
.wp-block-woocommerce-checkout-totals-block .wc-block-components-panel__button-icon {
    order: 2;
}
