/* Native Hempie Custom Filters Styling */

/* Cart Sync Logic */
.nh-cart-lock {
    cursor: wait !important;
    position: relative;
    pointer-events: none !important;
}

.nh-cart-lock::after {
    content: 'UPDATING...';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: rgba(0,0,0,0.8);
    color: #fff;
    padding: 10px 20px;
    border-radius: 4px;
    z-index: 999;
    font-size: 14px;
    letter-spacing: 2px;
    border: 1px solid #FF0000;
}

/* Desktop/Tablet Sidebar Styling */
/* Desktop/Tablet Sidebar Styling (LEFT SIDE) */
@media (min-width: 769px) {
    #secondary.widget-area {
        background: #000;
        color: #fff;
        padding: 30px 20px;
        border-right: 2px solid #FF0000;
        /* Sidebar on LEFT has right border */
        font-family: 'Montserrat', sans-serif;
        min-width: 250px;
        z-index: 100;
        border-radius: 0;
    }

    /* Force Astra Layout to Left Sidebar */
    .ast-left-sidebar #secondary {
        float: left;
        margin-right: 3%;
        width: 25%;
    }

    .ast-left-sidebar #primary {
        float: right;
        width: 72%;
    }

    /* Home Page Section Alignment */
    /* Remove global content flex to allow full-width top elements (Welcome/Marquee) */
    .home .site-content .ast-container {
        display: block !important;
        max-width: 100% !important;
        padding: 0;
    }

    /* Target the specific Elementor container where we inject the sidebar */
    .home .elementor-element-ecbeff0 {
        display: flex !important;
        flex-direction: row !important;
        /* Sidebar left, Products right */
        align-items: flex-start;
        max-width: 1200px;
        /* Match site width */
        margin: 0 auto;
        padding: 0 20px;
    }

    .home #secondary.widget-area.nh-home-sidebar {
        width: 300px;
        min-width: 300px;
        margin-right: 30px;
        position: sticky;
        top: 120px;
        border-right: 2px solid #FF0000;
        border-left: none;
        background: #000;
    }

    .home .elementor-widget-ucaddon_woocommerce_product_grid {
        flex-grow: 1;
    }

    #secondary.widget-area .widget-title {
        color: #FF0000;
        font-family: "Montserrat", sans-serif;
        font-weight: 800;
        text-transform: uppercase;
        border-bottom: 2px solid #FF0000;
        padding-bottom: 10px;
        margin-bottom: 20px;
    }

    #secondary.widget-area a {
        color: #FFFFFF;
        text-decoration: none;
        transition: color 0.3s;
    }

    #secondary.widget-area a:hover {
        color: #FF0000;
    }

    #secondary.widget-area ul {
        list-style: none;
        padding: 0;
    }

    #secondary.widget-area li {
        margin-bottom: 10px;
    }

    /* Hide mobile dock on desktop */
    .nh-mobile-filter-dock {
        display: none;
    }
}

/* Mobile Sidebar/Dock Styling */
@media (max-width: 768px) {

    /* Hide theme default sidebar */
    #secondary.widget-area {
        display: none;
    }

    /* Mobile Filter Dock - FIXED TO VIEWPORT */
    .nh-mobile-filter-dock {
        position: fixed;
        bottom: 0;
        left: 0;
        width: 100%;
        background: #000;
        padding: 10px 0;
        z-index: 9999;
        /* Ensure it's above footer and everything else */
        display: flex;
        justify-content: center;
        box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.5);
        border-top: 2px solid #FF0000;
    }

    .nh-filter-toggle {
        background-color: #000000;
        color: #FFFFFF;
        border: 2px solid #FF0000;
        padding: 12px 20px;
        font-family: "Montserrat", sans-serif;
        font-weight: 800;
        font-size: 14px;
        letter-spacing: 1px;
        cursor: pointer;
        width: 100%;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 8px;
        box-shadow: 0 4px 15px rgba(0, 0, 0, 0.5);
    }

    .nh-filter-icon::before {
        content: '☰';
        font-size: 18px;
    }

    /* Overlay */
    .nh-filter-overlay {
        position: fixed;
        top: 0;
        left: -100%;
        width: 100%;
        height: 100%;
        background-color: rgba(0, 0, 0, 0.8);
        z-index: 2000;
        transition: left 0.3s ease-in-out;
    }

    .nh-filter-overlay.active {
        left: 0;
    }

    .nh-filter-overlay-content {
        background-color: #000000;
        width: 80%;
        height: 100%;
        padding: 20px;
        overflow-y: auto;
        color: #FFFFFF;
        box-shadow: 5px 0 15px rgba(0, 0, 0, 0.5);
    }

    .nh-filter-overlay-header {
        display: flex;
        justify-content: space-between;
        align-items: center;
        margin-bottom: 30px;
        border-bottom: 1px solid #333;
        padding-bottom: 15px;
    }

    .nh-filter-overlay-header h2 {
        margin: 0;
        color: #FF0000;
        font-family: "Montserrat", sans-serif;
        font-size: 24px;
    }

    .nh-filter-close {
        background: none;
        border: none;
        color: #FFFFFF;
        font-size: 32px;
        cursor: pointer;
    }

    .nh-filter-overlay-body {
        margin-top: 20px;
    }

    .nh-filter-overlay-body .widget-title {
        color: #FF0000;
        font-size: 18px;
        text-transform: uppercase;
        margin-bottom: 15px;
    }
}

/* Hide mobile filter elements on desktop */
@media (min-width: 922px) {

    #nh-mobile-filter-dock,
    #nh-filter-overlay {
        display: none !important;
    }
}

.nh-custom-filters-container .widget-title {
    font-size: 1.2rem;
    margin-bottom: 15px !important;
    color: #FF0000 !important;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.nh-category-list {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 0 30px 0 !important;
}

.nh-category-list li {
    margin-bottom: 12px !important;
}

.nh-category-list a {
    color: #fff !important;
    text-decoration: none !important;
    font-size: 0.95rem;
    transition: color 0.3s;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.nh-category-list a:hover,
.nh-category-list a.active {
    color: #FF0000 !important;
}

.nh-category-list .count {
    font-size: 0.8rem;
    color: #666;
}

/* Price Filter Styling */
.nh-price-filter form {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.nh-price-fields {
    display: flex;
    align-items: center;
    gap: 10px;
}

.nh-price-filter input[type="number"] {
    background: #111 !important;
    border: 1px solid #333 !important;
    color: #fff !important;
    padding: 8px !important;
    width: 100%;
    font-family: "Montserrat", sans-serif;
    font-size: 0.9rem;
}

.nh-price-filter span {
    color: #666;
}

.nh-price-submit {
    background: #FF0000 !important;
    color: #fff !important;
    border: none !important;
    padding: 10px !important;
    cursor: pointer;
    font-weight: 800;
    text-transform: uppercase;
    transition: background 0.3s;
    width: 100%;
}

.nh-price-submit:hover {
    background: #cc0000 !important;
}

/* AJAX Loading State */
.nh-loading {
    position: relative;
    pointer-events: none;
}

.nh-loading::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 40px;
    height: 40px;
    margin: -20px 0 0 -20px;
    border: 3px solid rgba(255, 0, 0, 0.3);
    border-top-color: #FF0000;
    border-radius: 50%;
    animation: nh-spin 0.8s linear infinite;
    z-index: 1000;
}

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

/* Header Font Override - Script Style */
h1.tophead a {
    font-family: 'Petit Formal Script', cursive !important;
    font-weight: 400 !important;
    letter-spacing: 0px !important;
    text-transform: none !important;
    font-size: 0.9em;
}

/* Header Button Hover Enhancements - PREMIUM REDESIGN */
.elementor-button-link {
    background-color: rgba(0, 0, 0, 0.85) !important;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 0, 0, 0.4) !important;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.5);
    transition: all 0.4s cubic-bezier(0.165, 0.84, 0.44, 1.3) !important;
    overflow: hidden;
}

.elementor-button-link:hover {
    background-color: rgba(20, 0, 0, 0.9) !important;
    border-color: #FF0000 !important;
    box-shadow: 0 0 15px rgba(255, 0, 0, 0.3);
    transform: translateY(-2px) scale(1.02);
}

.elementor-button-link .elementor-button-text {
    position: relative;
    padding-right: 0;
    transition: padding-right 0.3s ease;
    color: #FFFFFF !important;
    font-weight: 700 !important;
    letter-spacing: 2px !important;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);
}

.elementor-button-link:hover .elementor-button-text {
    padding-right: 25px;
}

.elementor-button-link .elementor-button-text::after {
    content: '→';
    position: absolute;
    right: -15px;
    opacity: 0;
    font-weight: 900;
    color: #FF0000;
    transition: all 0.3s ease;
}

.elementor-button-link:hover .elementor-button-text::after {
    opacity: 1;
    right: 0;
}

/* About Us Page Premium Styling */
.nh-about-page {
    background-color: #000;
    color: #fff;
    font-family: 'Montserrat', sans-serif;
    margin: -50px -20px;
    /* Counter Astra Container Padding */
}

.nh-about-hero {
    height: 60vh;
    background: linear-gradient(rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.8)),
        url('../images/about-hero.png') center/cover no-repeat;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    position: relative;
    border-bottom: 2px solid #FF0000;
}

.nh-luxury-title {
    font-size: 5rem;
    font-weight: 900;
    letter-spacing: 12px;
    margin: 0;
    color: #fff !important;
    text-shadow: 0 0 30px rgba(255, 255, 255, 0.3);
}

.nh-luxury-subtitle {
    color: #FF0000 !important;
    letter-spacing: 8px;
    font-size: 1.2rem;
    font-weight: 800;
    margin-top: 10px;
}

.nh-about-section {
    padding: 100px 20px;
    display: flex;
    justify-content: center;
    background: #000;
}

.nh-about-glass-card {
    background: rgba(15, 15, 15, 0.7);
    backdrop-filter: blur(25px);
    -webkit-backdrop-filter: blur(25px);
    border: 1px solid rgba(255, 0, 0, 0.3);
    padding: 80px 60px;
    max-width: 1000px;
    border-radius: 4px;
    box-shadow: 0 30px 60px rgba(0, 0, 0, 0.8);
    text-align: center;
}

.nh-card-title {
    color: #FF0000 !important;
    font-size: 1.8rem;
    font-weight: 800;
    letter-spacing: 4px;
    margin-bottom: 40px;
    border-bottom: 1px solid rgba(255, 0, 0, 0.2);
    display: inline-block;
    padding-bottom: 15px;
}

.nh-philosophical-text {
    font-size: 1.6rem;
    line-height: 2;
    font-weight: 400;
    color: #fff;
    font-style: italic;
    margin: 0;
}

.nh-about-features {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 40px;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px 120px;
}

.nh-feature-card {
    background: rgba(255, 255, 255, 0.02);
    border: 1px solid rgba(255, 255, 255, 0.05);
    padding: 50px 30px;
    text-align: center;
    transition: all 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
}

.nh-feature-card:hover {
    background: rgba(255, 0, 0, 0.08);
    border-color: rgba(255, 0, 0, 0.4);
    transform: translateY(-15px);
    box-shadow: 0 20px 40px rgba(255, 0, 0, 0.1);
}

.nh-feature-icon {
    font-size: 3.5rem;
    margin-bottom: 25px;
}

.nh-feature-card h3 {
    color: #fff !important;
    font-size: 1.4rem !important;
    font-weight: 800 !important;
    letter-spacing: 2px !important;
    margin-bottom: 20px !important;
}

.nh-feature-card p {
    color: #aaa !important;
    font-size: 1rem !important;
    line-height: 1.8 !important;
}

@media (max-width: 768px) {
    .nh-luxury-title {
        font-size: 3rem;
        letter-spacing: 6px;
    }

    .nh-about-features {
        grid-template-columns: 1fr;
    }

    .nh-about-glass-card {
        padding: 40px 20px;
    }

    .nh-philosophical-text {
        font-size: 1.2rem;
    }

    .nh-about-hero {
        height: 40vh;
    }
}

/* Fix for Fixed Header Overlap - Balanced for Admin and Guest views */
.home:not(.admin-bar) .site-content {
    padding-top: 25px !important;
    /* Theme adds 75px, total 100px. Header is 94px. */
}

.home.admin-bar .site-content {
    padding-top: 15px !important;
    /* Admin bar adds its own space, we just need a tiny offset */
}

/* Ensure marquee clears the header correctly and has breathing room */
.deensimc-text-wrapper {
    position: relative;
    z-index: 1000;
    padding-top: 4px !important; /* Add a bit of space so letters don't touch the teal header above it */
}

@media (max-width: 921px) {
    .home .site-content {
        padding-top: 100px !important;
    }
}

/* Fix for Fixed Header Overlap on ALL non-home pages (COA, Sitemap, etc.) */
body:not(.home):not(.admin-bar) .site-content {
    padding-top: 100px !important;
}

body:not(.home).admin-bar .site-content {
    padding-top: 70px !important;
}

@media (max-width: 921px) {
    body:not(.home):not(.admin-bar) .site-content {
        padding-top: 110px !important;
    }

    body:not(.home).admin-bar .site-content {
        padding-top: 80px !important;
    }
}


/* Account Gateway Page Styling */
.nh-gateway-page {
    min-height: auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 30px 20px 40px;
    background: #0a0a0a;
    color: #fff;
    font-family: 'Inter', sans-serif;
}

.nh-gateway-hero {
    text-align: center;
    margin-bottom: 30px;
}

.nh-luxury-title {
    font-family: 'Montserrat', sans-serif;
    font-size: 2.5rem;
    color: #fff;
    letter-spacing: 12px;
    width: 100%;
}

.nh-gateway-container {
    display: flex;
    gap: 40px;
    max-width: 1000px;
    width: 100%;
}

.nh-gateway-card {
    flex: 1;
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(10px);
    padding: 30px 30px 25px;
    border-radius: 4px;
    text-align: center;
    transition: all 0.4s ease;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.nh-gateway-card:hover {
    background: rgba(255, 255, 255, 0.05);
    border-color: #FF0000;
    transform: translateY(-5px);
}

.nh-card-icon {
    font-size: 2.5rem;
    margin-bottom: 12px;
    filter: drop-shadow(0 0 10px rgba(255, 0, 0, 0.3));
}

.nh-gateway-card h2 {
    font-size: 1.3rem;
    letter-spacing: 3px;
    color: #fff;
    margin-bottom: 10px;
}

.nh-gateway-card p {
    font-size: 0.9rem;
    line-height: 1.5;
    color: rgba(255, 255, 255, 0.7);
    margin-bottom: 20px;
}

.nh-gateway-btn {
    width: 100%;
    padding: 12px 20px;
    background: #FF0000;
    color: #fff !important;
    text-decoration: none !important;
    font-weight: bold;
    letter-spacing: 2px;
    font-size: 0.85rem;
    transition: all 0.3s ease;
    border: 1px solid #FF0000;
    display: block;
    text-align: center;
}

.nh-gateway-btn:hover {
    background: #cc0000;
    border-color: #cc0000;
    color: white !important;
}

.nh-gateway-btn.outline {
    background: transparent;
    border-color: rgba(255, 255, 255, 0.3);
    margin-top: 15px;
}

.nh-gateway-btn.outline:hover {
    border-color: #FF0000;
    color: #FF0000 !important;
}

/* Retail card button: white background, red text */
.retail-card .nh-gateway-btn {
    background: #fff;
    color: #FF0000 !important;
    border-color: #fff;
}

.retail-card .nh-gateway-btn:hover {
    background: #FF0000;
    color: #fff !important;
    border-color: #FF0000;
}

.nh-btn-row {
    width: 100%;
}

@media (max-width: 768px) {
    .nh-gateway-container {
        flex-direction: column;
    }

    .nh-gateway-card {
        padding: 40px 20px;
    }
}

/* =========================================================================
   GLOBAL PREMIUM AESTHETIC (Luxury B2B Style)
   Requested via User - Applied globally excluding Header/Footer
   ========================================================================= */

/* Main Site Content Background */
body,
.site-content {
    background-color: #050505 !important;
    color: #e0e0e0 !important;
    font-family: 'Inter', sans-serif;
}

/* Global Typography */
h1,
h2,
h3,
h4,
h5,
h6,
.woocommerce h1,
.woocommerce h2,
.woocommerce h3,
.woocommerce h4,
.woocommerce h5,
.woocommerce h6 {
    color: #ffffff !important;
    font-family: 'Montserrat', sans-serif;
    letter-spacing: 1px;
}

/* Links — brand red for content links only, explicitly exclude buttons & admin */
.site-content a:not(.elementor-button-link):not(.nh-category-link):not(.nh-gateway-btn):not(.button):not(.wp-block-button__link):not(.woocommerce-Button):not(.checkout-button):not(.wc-block-components-button) {
    color: #FF0000;
    transition: all 0.3s ease;
}

.site-content a:not(.elementor-button-link):not(.nh-category-link):not(.nh-gateway-btn):not(.button):not(.wp-block-button__link):not(.woocommerce-Button):not(.checkout-button):not(.wc-block-components-button):hover {
    color: #cc0000;
}

/* WordPress admin bar — restore WP's own default colors */
#wpadminbar a,
#wpadminbar a:hover,
#wpadminbar .ab-item,
#wpadminbar .ab-item:hover,
#wpadminbar .ab-label,
#wpadminbar>#wp-toolbar span.ab-label {
    color: #ebebeb !important;
    transition: none !important;
}

#wpadminbar a:hover,
#wpadminbar li:hover>.ab-item {
    color: #ffffff !important;
}

/* WooCommerce buttons — keep their own color scheme */
.wc-proceed-to-checkout .checkout-button,
.wc-proceed-to-checkout a,
a.checkout-button,
.woocommerce a.button,
.woocommerce a.button.alt,
.woocommerce button.button,
.woocommerce input.button,
.wc-block-components-button {
    color: #fff !important;
}

/* =========================================================================
   WOOCOMMERCE PREMIUM OVERRIDES
   ========================================================================= */

/* Product Grid Cards */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
    background: rgba(255, 255, 255, 0.03) !important;
    border: 1px solid rgba(255, 255, 255, 0.05) !important;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border-radius: 4px;
    padding: 20px !important;
    text-align: center;
    transition: all 0.4s ease !important;
}

.woocommerce ul.products li.product:hover,
.woocommerce-page ul.products li.product:hover {
    background: rgba(255, 255, 255, 0.05) !important;
    border-color: #FF0000 !important;
    transform: translateY(-5px);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
    color: #fff !important;
    font-size: 1.15rem !important;
    letter-spacing: 2px !important;
    margin-top: 20px !important;
    margin-bottom: 10px !important;
    font-weight: 700 !important;
}

/* Product name link — keep white, not site-content red */
.woocommerce ul.products li.product a .woocommerce-loop-product__title,
.woocommerce ul.products li.product a:hover .woocommerce-loop-product__title {
    color: #fff !important;
}

/* Elementor Ultimate product grid — title links are plain <a> inside .uc_title */
.uc_post_grid_style_one .uc_title a {
    color: #ffffff !important;
    text-decoration: none;
    transition: color 0.25s ease;
}

.uc_post_grid_style_one .uc_title a:hover {
    color: #FF0000 !important;
}

.woocommerce ul.products li.product .price {
    color: #FF0000 !important;
    font-weight: 800 !important;
    font-size: 1.2rem !important;
}

/* WooCommerce Buttons (Add to Cart, Checkout, etc.) */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce-page a.button,
.woocommerce-page button.button,
.woocommerce-page input.button {
    background: transparent !important;
    border: 1px solid rgba(255, 255, 255, 0.3) !important;
    color: #fff !important;
    font-weight: bold !important;
    letter-spacing: 2px !important;
    text-transform: uppercase !important;
    border-radius: 2px !important;
    padding: 12px 20px !important;
    transition: all 0.3s ease !important;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover {
    background: transparent !important;
    border-color: #FF0000 !important;
    color: #FF0000 !important;
}

.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce #respond input#submit.alt,
.woocommerce a.checkout-button {
    background: #FF0000 !important;
    color: #fff !important;
    border: 1px solid #FF0000 !important;
}

.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover,
.woocommerce #respond input#submit.alt:hover,
.woocommerce a.checkout-button:hover {
    background: #cc0000 !important;
    border-color: #cc0000 !important;
    color: #fff !important;
}

/* Single Product Page */
.woocommerce div.product .product_title {
    color: #fff !important;
    font-family: 'Montserrat', sans-serif;
    letter-spacing: 3px;
    font-weight: 900 !important;
    font-size: 2.5rem !important;
    margin-bottom: 20px !important;
}

.woocommerce div.product p.price,
.woocommerce div.product span.price {
    color: #FF0000 !important;
    font-size: 2rem !important;
    font-weight: 800 !important;
}

.woocommerce div.product .woocommerce-product-details__short-description {
    color: #ccc !important;
    font-size: 1.1rem;
    line-height: 1.8;
}

/* Product Tabs Container */
.woocommerce div.product .woocommerce-tabs {
    background: rgba(255, 255, 255, 0.02);
    border: 1px solid rgba(255, 255, 255, 0.05);
    padding: 40px;
    border-radius: 4px;
    margin-top: 50px;
}

.woocommerce div.product .woocommerce-tabs ul.tabs {
    border-bottom: 2px solid rgba(255, 255, 255, 0.1) !important;
    padding: 0 !important;
}

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

.woocommerce div.product .woocommerce-tabs ul.tabs li.active {
    background: transparent !important;
    border-bottom: 3px solid #FF0000 !important;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
    color: #aaa !important;
    font-weight: bold !important;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
    color: #fff !important;
}

/* Checkout and Cart Tables */
.woocommerce table.shop_table {
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
    border-radius: 4px;
    background: rgba(255, 255, 255, 0.02) !important;
}

.woocommerce table.shop_table th {
    background: rgba(0, 0, 0, 0.5) !important;
    color: #fff !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1) !important;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.woocommerce table.shop_table td {
    background: transparent !important;
    color: #e0e0e0 !important;
    border-top: 1px solid rgba(255, 255, 255, 0.05) !important;
}

.woocommerce-cart .cart-collaterals .cart_totals {
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.1);
    padding: 30px;
    border-radius: 4px;
}

.woocommerce-cart .cart-collaterals .cart_totals h2 {
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    padding-bottom: 15px;
    margin-bottom: 20px;
}

/* Notices and Messages */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
    background: rgba(20, 20, 20, 0.9) !important;
    border-top: 3px solid #FF0000 !important;
    color: #fff !important;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5) !important;
}

.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before {
    color: #FF0000 !important;
}

/* Forms and Inputs */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.select2-container--default .select2-selection--single {
    background: rgba(0, 0, 0, 0.5) !important;
    border: 1px solid rgba(255, 255, 255, 0.2) !important;
    color: #fff !important;
    padding: 12px !important;
    border-radius: 2px !important;
    min-height: 45px;
}

.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus {
    border-color: #FF0000 !important;
    outline: none !important;
    box-shadow: 0 0 5px rgba(255, 0, 0, 0.3) !important;
}

.woocommerce form .form-row label {
    color: #ccc !important;
    text-transform: uppercase;
    font-size: 0.85rem;
    letter-spacing: 1px;
    margin-bottom: 8px;
}

/* Fix weird Astra white borders */
.ast-separate-container .ast-article-single,
.ast-separate-container .ast-article-post,
.ast-separate-container .ast-archive-description,
.ast-separate-container .ast-author-box,
.ast-separate-container .ast-404-layout-1,
.ast-plain-container .site-content {
    background-color: transparent !important;
    border: none !important;
}


/* Fix Astra/Elementor lingering white backgrounds */
.ast-container,
.ast-main-content-wrap,
#content,
#primary,
#main,
.site-main,
.elementor-section,
.elementor-container {
    background-color: transparent !important;
}

.ast-content-container,
.ast-separate-container .ast-article-single,
.ast-separate-container .ast-article-post,
.ast-separate-container .ast-archive-description {
    background-color: transparent !important;
}

/* WooCommerce Account Login/Register Buttons Override */
.woocommerce form.login .woocommerce-form-login__submit,
.woocommerce form.register .woocommerce-form-register__submit,
.woocommerce-account .woocommerce-MyAccount-content a.button {
    background: transparent !important;
    border: 1px solid #FF0000 !important;
    color: #FF0000 !important;
    font-weight: bold !important;
    letter-spacing: 2px !important;
    text-transform: uppercase !important;
    border-radius: 2px !important;
    padding: 12px 24px !important;
    transition: all 0.3s ease !important;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3) !important;
}

.woocommerce form.login .woocommerce-form-login__submit:hover,
.woocommerce form.register .woocommerce-form-register__submit:hover,
.woocommerce-account .woocommerce-MyAccount-content a.button:hover {
    background: #FF0000 !important;
    color: #fff !important;
    box-shadow: 0 0 15px rgba(255, 0, 0, 0.4) !important;
    transform: translateY(-2px);
}

/* Fix WooCommerce Account Links (Lost Password, etc) */
.woocommerce form.login a,
.woocommerce form.register a,
.woocommerce-account a {
    color: #FF0000 !important;
    transition: color 0.3s ease !important;
}


.woocommerce form.login a:hover,
.woocommerce form.register a:hover,
.woocommerce-account a:hover {
    color: #cc0000 !important;
    text-decoration: underline !important;
}

/* --- Product Disclaimers (Dark Theme) --- */
body.single-product .nh-product-disclaimers,
.nh-product-disclaimers {
    background-color: #0d0d0d !important;
    background: #0d0d0d !important;
    border: 1px solid #222 !important;
    padding: 30px !important;
    margin-top: 40px !important;
    border-radius: 12px !important;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5) !important;
}

.nh-disclaimers-container {
    display: flex;
    gap: 40px;
    flex-wrap: wrap;
}

.nh-disclaimer-column {
    flex: 1;
    min-width: 300px;
}

.nh-disclaimer-column h3 {
    color: #008080 !important;
    /* Teal accent */
    font-family: 'Inter', sans-serif !important;
    text-transform: uppercase !important;
    letter-spacing: 2px !important;
    font-size: 1.2em !important;
    border-bottom: 2px solid #008080 !important;
    padding-bottom: 8px !important;
    margin-bottom: 20px !important;
}

.nh-disclaimer-column p {
    color: #cecece !important;
    font-size: 14px !important;
    line-height: 1.6 !important;
}

.nh-disclaimer-column strong {
    color: #ffffff !important;
}

.nh-disclaimer-column a {
    color: #FF0000 !important;
    font-weight: 700 !important;
    text-decoration: none !important;
}

.nh-disclaimer-column a:hover {
    color: #cc0000 !important;
    text-decoration: underline !important;
}

/* Sitemap Page Styling */
.nh-sitemap-content {
    max-width: 800px;
    margin: 40px auto;
    font-family: 'Inter', sans-serif;
    color: #fff;
}

.nh-sitemap-content h3 {
    margin-top: 30px;
    border-bottom: 2px solid #FF0000;
    padding-bottom: 10px;
    color: #FF0000 !important;
    text-transform: uppercase;
    letter-spacing: 2px;
}

.nh-sitemap-content ul {
    list-style: none;
    padding-left: 0;
}

.nh-sitemap-content ul li {
    padding: 12px 0;
    border-bottom: 1px solid #1a1a1a;
}

.nh-sitemap-content ul li a {
    color: #fff;
    text-decoration: none;
    font-weight: 500;
    transition: all 0.3s ease;
    display: block;
}

.nh-sitemap-content ul li a:hover {
    padding-left: 10px;
    color: #FF0000;
}

/* =========================================================================
   PREMIUM BUTTON MOTION EFFECTS
   Scoped away from .elementor-button — Elementor manages its own hover states
   via inline styles generated in the editor. We only target non-Elementor
   buttons to avoid any conflicts.
   ========================================================================= */

/* Base transition — applied to all non-Elementor buttons */
.woocommerce a.button,
.woocommerce a.button.alt,
.woocommerce button.button,
.woocommerce button.button.alt,
.woocommerce input.button,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
.wp-block-button__link:not(.elementor-button),
.nh-gateway-btn,
button[type="submit"]:not(.elementor-button):not(#searchsubmit) {
    transition: transform 0.22s cubic-bezier(0.34, 1.56, 0.64, 1),
        box-shadow 0.22s ease,
        background-color 0.2s ease,
        border-color 0.2s ease !important;
    will-change: transform;
}

/* Lift + glow on hover — WooCommerce primary buttons */
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
}

/* Subtle lift — secondary WooCommerce buttons */
.woocommerce a.button:not(.alt):hover,
.woocommerce button.button:not(.alt):hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.25);
}

/* Native Hempie gateway buttons — red glow lift */
.nh-gateway-btn:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 28px rgba(255, 0, 0, 0.35);
}

/* Retail card button on hover — same lift, white glow */
.retail-card .nh-gateway-btn:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 28px rgba(255, 255, 255, 0.15);
}

/* WP submit buttons (contact form, etc.) */
button[type="submit"]:not(.elementor-button):not(#searchsubmit):hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.3);
}

/* Press-down effect on click (active state) */
.woocommerce a.button:active,
.woocommerce button.button:active,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:active,
.nh-gateway-btn:active,
button[type="submit"]:not(.elementor-button):active {
    transform: translateY(0px) scale(0.98);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
    transition-duration: 0.08s !important;
}

/* -----------------------------------------------------------------------
   Proceed to Checkout — covers BOTH classic shortcode cart AND Block Cart.
   Classic cart: <a class="checkout-button button alt wc-forward">
   Block cart:   <button class="wc-block-cart__submit-button">
   ----------------------------------------------------------------------- */

/* Transition setup */
.wc-proceed-to-checkout a.checkout-button,
.woocommerce-cart .wc-proceed-to-checkout a,
a.checkout-button.button.alt,
.wc-block-cart__submit-container .wc-block-cart__submit-button,
.wc-block-cart__submit-button,
.wp-block-woocommerce-cart .wc-block-cart__submit-button {
    transition: transform 0.22s cubic-bezier(0.34, 1.56, 0.64, 1),
        box-shadow 0.22s ease,
        background-color 0.2s ease !important;
    will-change: transform;
}

/* Hover lift */
.wc-proceed-to-checkout a.checkout-button:hover,
.woocommerce-cart .wc-proceed-to-checkout a:hover,
a.checkout-button.button.alt:hover,
.wc-block-cart__submit-container .wc-block-cart__submit-button:hover,
.wc-block-cart__submit-button:hover,
.wp-block-woocommerce-cart .wc-block-cart__submit-button:hover {
    transform: translateY(-4px) !important;
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.4) !important;
}

/* Press down on click */
.wc-proceed-to-checkout a.checkout-button:active,
.woocommerce-cart .wc-proceed-to-checkout a:active,
a.checkout-button.button.alt:active,
.wc-block-cart__submit-button:active {
    transform: translateY(0) scale(0.97) !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2) !important;
    transition-duration: 0.08s !important;
}

/* -----------------------------------------------------------------------
   Checkout order summary — sticky top offset to clear the fixed header.
   Block checkout uses .wc-block-checkout__sidebar,
   Classic checkout uses .woocommerce-checkout-review-order-table's parent.
   ----------------------------------------------------------------------- */
.wc-block-checkout__sidebar,
.wc-block-checkout__sidebar>*,
.woocommerce-checkout #order_review {
    top: clamp(80px, 10vh, 100px) !important;
}

/* Classic checkout column sticky */
@media (min-width: 768px) {

    .woocommerce-checkout .col2-set+div,
    .woocommerce-checkout #order_review_heading,
    .woocommerce-checkout-review-order {
        position: sticky;
        top: clamp(80px, 10vh, 100px);
    }
}

/* =========================================================================
   EASTER BUNDLE MARQUEE
   ========================================================================= */
.nh-easter-marquee-container {
    position: fixed;
    top: 0;
    left: 0;
    display: flex;
    align-items: center;
    width: 100%;
    background: linear-gradient(90deg, #9C27B0, #E91E63, #9C27B0);
    background-size: 200% 100%;
    animation: gradientShift 5s ease infinite;
    color: #fff;
    overflow: hidden;
    z-index: 9999999 !important; /* Force above all Astra/Elementor headers */
    padding: 10px 0;
    box-shadow: 0 4px 15px rgba(0,0,0,0.5);
    height: 40px;
    box-sizing: border-box;
}

/* Push the entire site wrapper down to create a dedicated slot for the banner */
/* #page { margin-top: 40px !important; } */

/* Force the fixed Astra header to sit BELOW the banner */
/* html body header#masthead, html body #masthead { top: 40px !important; } */

/* Sticky variant — keep offset when scrolling */
/* html body .ast-header-sticky-active, html body header#masthead.ast-header-sticky-active { top: 40px !important; } */

/* Counteract the negative margin-top on .site-branding. 
   Use flexbox to ensure it's vertically centered perfectly inside the teal bar. */
header#masthead .site-branding,
header#masthead .ast-site-identity {
    margin-top: 0 !important;
    display: flex !important;
    align-items: center !important;
    height: 100%;
}

/* The header z-index is 9999; our banner MUST be higher to draw on top */
.nh-easter-marquee-container {
    z-index: 99999 !important;
}

/* Hide banner while restricted by Age Gate */
html.age-gate-restricted .nh-easter-marquee-container,
body.age-gate-restricted .nh-easter-marquee-container {
    display: none !important;
}

/* Adjust Admin Bar: push banner below the 32px WP admin bar on desktop */
/*
body.admin-bar .nh-easter-marquee-container { top: 32px; }
body.admin-bar #page { margin-top: 72px !important; }
body.admin-bar .ast-header-sticky-active { top: 72px !important; }
*/

/* Restore site content padding logic since the header handles itself now */
body.home:not(.admin-bar) .site-content {
    padding-top: 25px !important; 
}
body.home.admin-bar .site-content {
    padding-top: 15px !important; 
}
body:not(.home):not(.admin-bar) .site-content {
    padding-top: 100px !important; 
}
body:not(.home).admin-bar .site-content {
    padding-top: 70px !important; 
}


.nh-easter-marquee-link {
    text-decoration: none;
    display: block;
    width: 100%;
}

.nh-easter-marquee-content {
    display: flex;
    white-space: nowrap;
    width: 100%;
    justify-content: center;
    /* Static by default on desktop */
    animation: none !important;
}

.nh-marquee-duplicate {
    display: none; /* Hide duplicate on desktop */
}

.nh-easter-marquee-content span {
    font-family: 'Montserrat', sans-serif;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 1px;
    padding: 0 20px;
    color: #fff !important;
    text-shadow: 0 2px 4px rgba(0,0,0,0.4);
}

.nh-easter-marquee-content span strong {
    color: #FFEB3B !important;
    text-decoration: underline;
}

@keyframes marqueeScroll {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); } 
}

@keyframes gradientShift {
    0% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}

@media (max-width: 768px) {
    .nh-easter-marquee-container {
        height: 35px;
        padding: 5px 0;
    }
    /*
    #page { margin-top: 35px !important; }
    .ast-header-sticky-active { top: 35px !important; }
    body.admin-bar .nh-easter-marquee-container { top: 46px; }
    body.admin-bar .ast-header-sticky-active { top: 81px !important; }
    */
    
    .nh-easter-marquee-content span {
        font-size: 12px;
        padding: 0 30px;
        line-height: 25px;
    }
}
