/* Winter's Spells - ULTRADARK Force Theme v6 */
:root {
    --ws-bg: #050508;
    --ws-text: #FFFFFF !important;
    --ws-grayCard: #101018;
    --ws-border: #2D2D3D;
    --ws-accent: #A855F7;
    --ws-gold: #FACC15;
    --ws-text-dim: #CBD5E1;
}

/* Force Dark Mode on everything */
html,
body,
.page-content,
.holder,
main,
section,
.has-loader-bg,
.page-footer,
.footer-top,
.footer-bottom,
.modal-content,
.dropdn-content,
.header-side-panel,
.minicart-drop-content-inside,
.mobilemenu-content,
.nav-wrapper,
.nav-toggle,
.mobilemenu-scroll,
.account-drop,
.minicart-drop,
.sidebar-block {
    background-color: var(--ws-bg) !important;
    color: var(--ws-text) !important;
}


/* Global Typography - Careful with !important to allow sub-elements to override */
h1,
h2,
h3,
h4,
h5,
h6,
.h1-style,
.h2-style,
.prd-title a,
.title,
p,
li,
span,
dt,
dd,
label,
td,
th,
div {
    color: var(--ws-text);
}


h1,
h2,
h3,
.h1-style,
.h2-style {
    color: var(--ws-gold) !important;
    font-family: 'Montserrat', sans-serif !important;
    text-shadow: 0 0 15px rgba(250, 204, 21, 0.2);
}

/* SUBTLE MENU HOVER - Less Invasive */
.mmenu>li>a {
    color: var(--ws-text) !important;
    font-weight: 600 !important;
    padding-bottom: 25px !important;
    /* Increased padding to bridge gap to logic areas */
    transition: all 0.3s ease !important;
}


.mmenu>li>a:after {
    display: none !important;
    /* Hide original arrows if they look messy */
}

.mmenu>li>a:hover {
    color: var(--ws-accent) !important;
    text-shadow: none !important;
}

/* Simple underline effect for menu */
.mmenu>li {
    position: relative;
}

.mmenu>li:after {
    content: '';
    position: absolute;
    bottom: 5px;
    left: 50%;
    width: 0;
    height: 2px;
    background: var(--ws-accent);
    transition: all 0.3s ease;
    transform: translateX(-50%);
}

.mmenu>li:hover:after {
    width: 100%;
    /* Wider underline for better feedback */
}

/* Enhanced Menu Hover */
.mmenu>li>a:hover {
    color: var(--ws-gold) !important;
    text-shadow: 0 0 10px rgba(250, 204, 21, 0.4) !important;
}

.mmenu>li.active>a {
    color: var(--ws-gold) !important;
}

.all-categories-menu-toggle:hover span,
.all-categories-menu-toggle:hover i {
    color: var(--ws-accent) !important;
}


/* Header & Logo */
.hdr-wrap,
.hdr-content,
.hdr-content-sticky,
.hdr,
.hdr-topline {
    background: rgba(5, 5, 8, 0.96) !important;
    backdrop-filter: blur(25px) !important;
    -webkit-backdrop-filter: blur(25px) !important;
    border-bottom: 1px solid var(--ws-border) !important;
}

/* Header Icons Visibility */
.hdr-links-wrap [class*="icon-"],
.hdr-links-wrap .dropdn-link i {
    color: #FFFFFF !important;
    filter: drop-shadow(0 0 5px rgba(168, 85, 247, 0.5)) !important;
    opacity: 1 !important;
    font-size: 20px !important;
}

.hdr-links-wrap .dropdn-link:hover i {
    color: var(--ws-gold) !important;
    transform: scale(1.1);
}

.mobilemenu-toggle i {
    color: #FFFFFF !important;
}


.logo img {
    max-height: 65px !important;
    filter: drop-shadow(0 0 10px rgba(255, 255, 255, 0.2)) !important;
}

/* CLEANER FOOTER LINKS */
.footer-block ul li a {
    color: #CBD5E1 !important;
    font-size: 15px !important;
    padding: 6px 0 !important;
    transition: all 0.3s ease !important;
    opacity: 0.8;
    text-decoration: none;
}

.footer-block ul li a:hover {
    color: var(--ws-gold) !important;
    opacity: 1;
    text-shadow: 0 0 8px rgba(250, 204, 21, 0.3);
}

/* Footer Payment Icons Visibility - Enhanced */
.payment-link li i,
.payment-link li [class*="icon-"] {
    color: #FFFFFF !important;
    opacity: 1 !important;
    filter: brightness(1.5) grayscale(0.5) !important;
    transition: filter 0.3s ease;
}

.payment-link li:hover i,
.payment-link li:hover [class*="icon-"] {
    filter: brightness(2) grayscale(0) !important;
}



/* PREMIUM COVER / BANNER */
.bnslider-slide {
    position: relative;
    overflow: hidden;
}

/* Gradient overlay to make text pop and images look premium */
.bnslider-text-wrap:after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(180deg, rgba(5, 5, 8, 0.2) 0%, rgba(5, 5, 8, 0.6) 100%);
    pointer-events: none;
}

.bnslider-text {
    color: #FFFFFF !important;
    text-shadow: 2px 2px 10px rgba(0, 0, 0, 0.5) !important;
}

/* FORMS - White Typing */
input,
textarea,
select,
.form-control {
    background-color: #12121A !important;
    border: 1px solid var(--ws-border) !important;
    color: #FFFFFF !important;
    border-radius: 8px !important;
}

select option {
    background-color: #12121A !important;
    color: #FFFFFF !important;
}


/* Global Link Respect */
a {
    color: var(--ws-accent);
    transition: all 0.2s ease;
}

.top_custom_nav,
.hdr-topline a {
    color: var(--ws-gold) !important;
    /* Gold for better link distinction */
    opacity: 0.9;
    font-size: 13px !important;
    font-weight: 500;
    text-shadow: 0 0 5px rgba(250, 204, 21, 0.2);
}

.top_custom_nav:hover {
    color: var(--ws-text) !important;
    opacity: 1;
    text-shadow: 0 0 10px rgba(255, 255, 255, 0.5);
}


/* PRODUCT CARDS - ULTRADARK Fix */
.prd,
.prd-inside {
    background-color: var(--ws-grayCard) !important;
    border: 1px solid var(--ws-border) !important;
    border-radius: 12px !important;
    transition: transform 0.3s ease, box-shadow 0.3s ease !important;
}

.prd:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5) !important;
    border-color: var(--ws-accent) !important;
}

.prd-info {
    background-color: transparent !important;
    padding: 15px !important;
}

.prd-title a {
    color: var(--ws-gold) !important;
    font-weight: 700 !important;
}

.prd-price {
    color: var(--ws-text) !important;
}

.prd-tag {
    color: var(--ws-accent) !important;
    text-transform: uppercase;
    font-size: 10px;
    letter-spacing: 1px;
}

/* Buttons - Forcing Theme Colors */
.btn,
.btn-primary,
.btn-checkout,
.btn-check-out,
.btn-enter,
.btn-submit {
    background-color: var(--ws-accent) !important;
    border: none !important;
    color: white !important;
    border-radius: 50px !important;
    font-weight: 700 !important;
    text-transform: uppercase;
    letter-spacing: 1px;
    transition: all 0.3s ease !important;
}

.btn:hover,
.btn-primary:hover {
    background-color: var(--ws-gold) !important;
    color: var(--ws-bg) !important;
    box-shadow: 0 0 15px rgba(168, 85, 247, 0.4) !important;
}


/* Fix for white background flashes/containers */
.prd-grid-wrap,
.prd-grid,
.prd-block_main-image,
.prd-block_main-image-holder,
.product-previews-wrapper,
.checkout-section,
.order-summary,
.category-page,
.cart-table,
.cart-table-prd,
#shippingAddress,
#billingAddress,
.login-form-card {
    background: transparent !important;
}

.prd-img,
.prd-img img,
.elzoom,
.image-container {
    background-color: var(--ws-grayCard) !important;
    border-radius: 8px !important;
}


/* Labels & Badges */
.label-new,
.label-sale,
.label-hot,
.prd-big-squared-labels>div {
    background-color: var(--ws-accent) !important;
    color: white !important;
    border-radius: 4px !important;
    font-weight: 600 !important;
    padding: 2px 8px !important;
}

.label-new span,
.label-sale span,
.label-hot span {
    color: white !important;
}

/* PRODUCT DETAIL PAGE FIXES */
.prd-block_title {
    color: var(--ws-gold) !important;
    font-size: 2.2rem !important;
    font-weight: 800 !important;
    margin-bottom: 20px !important;
}

.prd-block_price--actual {
    color: var(--ws-text) !important;
    font-size: 1.8rem !important;
    font-weight: 700 !important;
}

/* Quantity Selector */
.qty-changer,
.qty-changer .qty-input,
.qty-changer .decrease,
.qty-changer .increase {
    box-sizing: border-box !important;
}

.qty-changer {
    background: var(--ws-grayCard) !important;
    border: 1px solid var(--ws-border) !important;
    border-radius: 50px !important;
    padding: 2px 10px !important;
    display: inline-flex !important;
    align-items: center !important;
}

.qty-changer input.qty-input {
    background: transparent !important;
    border: none !important;
    color: var(--ws-text) !important;
    width: 45px !important;
    height: 34px !important;
    text-align: center !important;
    font-weight: 700 !important;
    margin: 0 !important;
}

.qty-changer .increase,
.qty-changer .decrease {
    background: transparent !important;
    border: none !important;
    color: var(--ws-accent) !important;
    font-size: 18px !important;
    width: 30px !important;
    height: 34px !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
}

.qty-changer .increase:hover,
.qty-changer .decrease:hover {
    color: var(--ws-gold) !important;
    transform: scale(1.2);
}

/* Force icons inside buttons if they use pseudo-elements or specific icon fonts */
.qty-changer .increase:before,
.qty-changer .decrease:before,
.qty-changer .increase:after,
.qty-changer .decrease:after {
    color: var(--ws-accent) !important;
}


/* Add to Cart Button */
.btn--add-to-cart {
    height: 54px !important;
    padding: 0 40px !important;
    font-size: 16px !important;
    box-shadow: 0 4px 15px rgba(168, 85, 247, 0.3) !important;
}

.btn--add-to-cart:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(168, 85, 247, 0.5) !important;
}

/* Tabs Visibility */
.product-tab {
    border-bottom: 2px solid var(--ws-border) !important;
}

.product-tab .nav-link {
    color: var(--ws-text-dim) !important;
    font-weight: 600 !important;
    text-transform: uppercase;
    letter-spacing: 1px;
    border: none !important;
    padding: 15px 25px !important;
    opacity: 0.6;
}

.product-tab .nav-link.active {
    color: var(--ws-gold) !important;
    background: transparent !important;
    opacity: 1;
    border-bottom: 3px solid var(--ws-gold) !important;
}

.tab-content {
    padding: 30px 0 !important;
    color: var(--ws-text-dim) !important;
    line-height: 1.8 !important;
}

/* Breadcrumbs */
.breadcrumbs li,
.breadcrumbs li a {
    color: var(--ws-text-dim) !important;
    font-size: 14px !important;
    opacity: 0.7;
}

.breadcrumbs li:after {
    color: var(--ws-accent) !important;
}

/* Sticky Collision / Aside Fix */
.aside--sticky {
    background: transparent !important;
}

/* MINI CART & ACCOUNT DROPDOWN CLEANUP */
.dropdn-content {
    border: 1px solid var(--ws-border) !important;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.8) !important;
}

.minicart-drop-countdown,
.countdown-box-full {
    background: var(--ws-grayCard) !important;
    border: 1px solid var(--ws-accent) !important;
    color: var(--ws-text) !important;
}

.minicart-drop-total {
    border-top: 1px solid var(--ws-border) !important;
    padding-top: 15px !important;
}

.btn--grey {
    background-color: #1A1A24 !important;
    color: var(--ws-text) !important;
    border: 1px solid var(--ws-border) !important;
}

.btn--grey:hover {
    background-color: var(--ws-border) !important;
    color: var(--ws-gold) !important;
}

/* ACCOUNT SIDEBAR LINKS */
.account-drop ul li a,
.dropdn-content ul li a {
    color: #FFFFFF !important;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 0 !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}

.account-drop ul li a span {
    color: #FFFFFF !important;
}

.account-drop ul li a:hover span,
.account-drop ul li a:hover i {
    color: var(--ws-gold) !important;
}

/* CHECKOUT SPECIFICS */
.form-group label {
    color: var(--ws-gold) !important;
    font-weight: 600;
    margin-bottom: 8px;
}

.checkout-steps,
.panel-group {
    background: transparent !important;
}

.card,
.panel {
    background: var(--ws-grayCard) !important;
    border: 1px solid var(--ws-border) !important;
    margin-bottom: 20px !important;
}

.cart-table th {
    background: var(--ws-grayCard) !important;
    border-bottom: 2px solid var(--ws-border) !important;
    color: var(--ws-gold) !important;
}

/* Invisible text fixes */
.prd-shipping,
.ship-info,
.cart-delivery-time,
.delivery-info {
    color: var(--ws-accent) !important;
    font-weight: 600 !important;
}

.alternative-checkout-separator {
    color: var(--ws-text-dim) !important;
}

.alternative-checkout-separator:before,
.alternative-checkout-separator:after {
    background: var(--ws-border) !important;
}

/* MOBILE MENU FIXES */
.mobilemenu-content,
.nav-wrapper,
.mobilemenu-scroll {
    background-color: var(--ws-bg) !important;
    border-right: 1px solid var(--ws-border) !important;
}

.mobilemenu-toggle {
    color: #FFFFFF !important;
    background: transparent !important;
}

.nav-level-1 li a,
.nav-level-2 li a,
.nav-level-1 li span,
.nav-level-2 li span {
    color: #FFFFFF !important;
    font-weight: 600 !important;
}

.nav-level-2 li a {
    color: var(--ws-text-dim) !important;
    font-size: 0.9em !important;
}

.nav-level-1 li:hover>a,
.nav-level-2 li:hover>a {
    color: var(--ws-gold) !important;
}

.mobilemenu-search input {
    background-color: var(--ws-grayCard) !important;
    border-color: var(--ws-border) !important;
}

/* Fix for Category & Filter areas */
.simple-column,
.fixed-column,
.filter-block {
    background: transparent !important;
}

.category-description,
.category-title {
    color: var(--ws-gold) !important;
}

/* Remove white boxes in checkout and sub-areas */
.checkout-box,
.box-white,
.payment-options,
.shipping-options {
    background: var(--ws-grayCard) !important;
    border: 1px solid var(--ws-border) !important;
    color: var(--ws-text) !important;
}