﻿/* Spartan BioLabs Rebrand - #ceab59 Gold */

:root {
    --spartan-gold: #ceab59;
    --spartan-gold-dark: #b99a4b;
    --spartan-gold-light: #d4b96a;
    --spartan-black: #1a1a1a;
    --spartan-dark: #0d0d0d;
    --spartan-white: #ffffff;
}

/* === HEADER: overlap offset without breaking WoodMart sticky (.whb-sticked) === */
/* WoodMart applies fixed positioning when .whb-sticked is on .whb-header; a blanket
   position:relative !important prevents the header from sticking (see headerBuilder.js). */
body.wd-header-overlap .whb-header:not(.whb-sticked),
body.wd-header-overlap .whb-main-header:not(.whb-sticked),
.wd-header-overlap .whb-header:not(.whb-sticked) {
    position: relative !important;
    background-color: #fff !important;
}

body.wd-header-overlap .whb-general-header,
.wd-header-overlap .whb-general-header {
    background-color: #fff !important;
}

body.wd-header-overlap .main-page-wrapper,
.wd-header-overlap .main-page-wrapper {
    padding-top: 0 !important;
    margin-top: 0 !important;
}

body.wd-header-overlap .wd-content-layout {
    margin-top: 0 !important;
}

/* Default (non-stuck): keep header in flow */
.whb-header:not(.whb-sticked) {
    position: relative !important;
    background-color: #fff !important;
}

.whb-general-header {
    background-color: #fff !important;
}

/*
 * WHB "flex equal sides" uses three equal-width columns; the main nav only occupies the middle
 * third, so links look bunched right of the logo. Let the center column flex to fill space and
 * center the menu in the gap between logo and utilities.
 */
@media (min-width: 1025px) {
    .whb-general-header.whb-flex-equal-sides .whb-general-header-inner {
        justify-content: space-between !important;
        align-items: center !important;
        column-gap: 1rem;
    }

    .whb-general-header.whb-flex-equal-sides .whb-col-left,
    .whb-general-header.whb-flex-equal-sides .whb-col-center,
    .whb-general-header.whb-flex-equal-sides .whb-col-right {
        align-self: center !important;
        padding-top: 0 !important;
        padding-bottom: 0 !important;
    }

    .whb-general-header.whb-flex-equal-sides .whb-col-left {
        flex: 0 0 auto !important;
        width: auto !important;
        max-width: none !important;
        display: flex !important;
        align-items: center !important;
    }

    .whb-general-header.whb-flex-equal-sides .whb-col-center {
        flex: 1 1 auto !important;
        width: auto !important;
        max-width: none !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        min-width: 0 !important;
    }

    .whb-general-header.whb-flex-equal-sides .whb-col-center .wd-header-nav {
        width: auto !important;
        max-width: 100% !important;
        margin-top: 0 !important;
        margin-bottom: 0 !important;
        padding-top: 0 !important;
        padding-bottom: 0 !important;
    }

    .whb-general-header.whb-flex-equal-sides .whb-col-center .wd-nav.wd-nav-main {
        align-items: center !important;
    }

    .whb-general-header.whb-flex-equal-sides .whb-col-right {
        flex: 0 0 auto !important;
        width: auto !important;
        max-width: none !important;
        display: flex !important;
        align-items: center !important;
        flex-wrap: nowrap !important;
    }

    /* Elementor / custom CSS often adds asymmetric logo margins - breaks vertical rhythm with nav. */
    .whb-general-header .site-logo,
    .whb-general-header .wd-logo {
        display: flex !important;
        align-items: center !important;
        line-height: 0 !important;
    }

    .whb-general-header .wd-logo img {
        margin: 0 !important;
        padding-top: 0 !important;
        padding-bottom: 0 !important;
        vertical-align: middle !important;
    }
}

/* Top bar + theme header banner: black bar, explicit white copy (WoodMart "light" text scheme + headings) */
.whb-top-bar,
.whb-top-bar .wd-header-text,
.whb-top-bar .whb-text,
.whb-top-bar a,
.header-banner,
.header-banner.wd-entry-content,
.header-banner .wd-entry-content,
.header-banner .wd-entry-content h1,
.header-banner .wd-entry-content h2,
.header-banner .wd-entry-content h3,
.header-banner .wd-entry-content h4,
.header-banner .wd-entry-content h5,
.header-banner .wd-entry-content h6,
.header-banner .wd-entry-content p {
    color: #ffffff !important;
    /* WoodMart body / Elementor stack uses Barlow Condensed on this install */
    font-family: 'Barlow Condensed', Helvetica, Arial, sans-serif !important;
}

/*
 * WHB "top bar" is often an empty placeholder row while the real promo is WoodMart's
 * `.header-banner` (absolute, top of viewport). Painting the top bar black covers the
 * banner copy - keep it transparent when the theme banner is on.
 */
body:not(.header-banner-enabled) .whb-top-bar {
    background-color: #000 !important;
}

body.header-banner-enabled .whb-top-bar {
    background: transparent !important;
    background-color: transparent !important;
}

.header-banner {
    background-color: #000 !important;
}

/*
 * WoodMart: .header-banner stays opacity:0 until JS adds .header-banner-display; a stale
 * cookie or script order can leave an empty black bar. Respect only an explicit dismiss
 * (.header-banner-hide). Raise z-index so copy is not painted under .wd-page-wrapper.
 */
/*
 * Promo strip is `.header-banner` (margin on .wd-page-wrapper). Collapse WHB top row height
 * when the banner is on so we do not stack a second empty band (gap above the white header).
 */
body.header-banner-enabled:not(.header-banner-hide) {
    /* Promo strip height (+30% vs previous 30px) */
    --wd-header-banner-h: 39px !important;
    --wd-header-banner-mt: var(--wd-header-banner-h) !important;
    --wd-top-bar-h: 0.00001px !important;
    --wd-top-bar-sm-h: 0.00001px !important;
    --wd-top-bar-sticky-h: 0.00001px !important;
}

body.header-banner-enabled:not(.header-banner-hide) .header-banner {
    opacity: 1 !important;
    z-index: 120 !important;
}

/* Ensure promo line is readable (some stacks zero out nested heading size). */
.header-banner h5 {
    font-size: calc(12px * 1.3) !important;
    font-weight: 400 !important;
    line-height: 1.25 !important;
    margin: 0 !important;
    opacity: 1 !important;
    visibility: visible !important;
    letter-spacing: 0.02em !important;
}

/* Theme promo banner is injected inside the WHB row; opt-header-banner.css loads in-body and can win the cascade. */
body.header-banner-enabled .whb-top-bar .header-banner,
body.header-banner-enabled .whb-top-bar .header-banner.header-banner-container,
body.header-banner-enabled .whb-top-bar .header-banner .header-banner-container,
body.header-banner-enabled .whb-top-bar .header-banner .wd-entry-content,
body.header-banner-enabled .whb-top-bar .header-banner h5 {
    color: #ffffff !important;
    font-family: 'Barlow Condensed', Helvetica, Arial, sans-serif !important;
}

/*
 * Hero / homepage width: WoodMart uses .wd-page-wrapper > .container wrapping header + main.
 * Nested <main> also has .container - both must be de-boxed on the homepage or stretch leaves a gutter.
 */
body.home .wd-page-wrapper.website-wrapper > .container {
    max-width: none !important;
    width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

body.home #main-content.wd-content-layout.container {
    max-width: none !important;
    width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* Elementor root on the homepage can still impose horizontal inset. */
body.home .wd-content-layout .elementor {
    max-width: none !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* Kill leftover horizontal ΓÇ£hairlineΓÇ¥ gutters (scrollbar / boxed ancestors). */
html {
    overflow-x: clip;
}

/*
 * Full-bleed hero: production home uses b25b6db; staging clone uses 35dee12 ΓÇö target both.
 */
body.home .elementor .elementor-element.elementor-element-b25b6db.wd-section-stretch,
body.home .elementor .elementor-element.elementor-element-35dee12.wd-section-stretch {
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    position: relative;
    left: 0;
    right: 0;
}

/*
 * Inner Elementor pages (About, FAQ): same full-bleed pattern as the homepage video hero
 * (outer .container + main + .main-page-wrapper de-boxed, then 100vw stretch on hero IDs).
 * Without .main-page-wrapper padding reset, wrapper-custom can leave a left “sliver” even
 * when #main-content is full width.
 */
body.page.elementor-page:not(.home) .wd-page-wrapper.website-wrapper > .container {
    max-width: none !important;
    width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

body.page.elementor-page:not(.home) #main-content.wd-content-layout.container,
body.page.elementor-page:not(.home) #main-content.content-layout-wrapper {
    max-width: none !important;
    width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

body.page.elementor-page:not(.home) .wd-page-content.main-page-wrapper {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

body.page.elementor-page:not(.home) .wd-content-layout .elementor {
    max-width: none !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* Staging: About c03ea33; FAQ af9db45; Contact f3d03d8 — same full-bleed as homepage hero */
body.page.elementor-page:not(.home) .elementor .elementor-element.elementor-element-c03ea33.wd-section-stretch,
body.page.elementor-page:not(.home) .elementor .elementor-element.elementor-element-af9db45.wd-section-stretch,
body.page.elementor-page:not(.home) .elementor .elementor-element.elementor-element-f3d03d8.wd-section-stretch {
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    position: relative;
    left: 0;
    right: 0;
}

/* FAQ: extra full-bleed bands (same IDs as footer template rows when reused on page) */
body.page.elementor-page:not(.home) .elementor .elementor-element.elementor-element-f426342.wd-section-stretch.e-parent,
body.page.elementor-page:not(.home) .elementor .elementor-element.elementor-element-5de50d1.wd-section-stretch.e-parent {
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    position: relative;
    left: 0;
    right: 0;
}

/*
 * Homepage "Premium Research..." band (Elementor post 27: eb68881).
 * Moderate vertical margin between feature cards, this band, and the Facts block (not the
 * large % gutters Elementor defaults to). Inner padding keeps content spaced inside #F5F5F5.
 */
body.home .elementor-27 .elementor-element.elementor-element-d10bf4a {
    --margin-bottom: clamp(20px, 2.5vw, 40px) !important;
}

body.home .elementor-27 .elementor-element.elementor-element-eb68881 {
    --margin-top: 0 !important;
    --margin-bottom: clamp(20px, 2.5vw, 40px) !important;
    --padding-top: clamp(32px, 4.5vw, 72px) !important;
    --padding-bottom: clamp(32px, 4.5vw, 72px) !important;
}

/* Facts split (48e3ec8): top padding after the banner margin gap */
body.home .elementor-27 .elementor-element.elementor-element-48e3ec8 {
    --padding-top: clamp(20px, 2.5vw, 40px) !important;
}

@media (max-width: 1024px) {
    /* Feature cards row: keep cards off the viewport edges on phones/tablets */
    body.home .elementor-27 .elementor-element.elementor-element-d10bf4a {
        --padding-left: clamp(16px, 4vw, 24px) !important;
        --padding-right: clamp(16px, 4vw, 24px) !important;
        --margin-bottom: clamp(16px, 3vw, 28px) !important;
    }

    body.home .elementor-27 .elementor-element.elementor-element-eb68881 {
        --padding-top: clamp(24px, 5vw, 44px) !important;
        --padding-bottom: clamp(24px, 5vw, 44px) !important;
        --margin-bottom: clamp(16px, 3vw, 28px) !important;
    }

    body.home .elementor-27 .elementor-element.elementor-element-48e3ec8 {
        --padding-top: clamp(16px, 3vw, 32px) !important;
    }
}

/* === NAVIGATION === */
/* ALL CAPS */
.wd-nav > li > a,
.main-nav .menu-item > a,
.woodmart-navigation .menu > li > a,
.wd-nav-main > li > a,
nav.main-nav ul > li > a {
    text-transform: uppercase !important;
    letter-spacing: 1px;
}

/* Nav hover - gold */
.wd-nav > li > a:hover,
.main-nav .menu-item > a:hover,
.wd-nav-main > li > a:hover {
    color: var(--spartan-gold) !important;
}

/* === BUTTONS === */
.btn-color-primary,
.button.alt,
.woocommerce .button.alt,
.woocommerce a.button.alt,
.wd-btn-color-primary,
a.btn-color-primary {
    background-color: var(--spartan-gold) !important;
    border-color: var(--spartan-gold) !important;
    color: var(--spartan-white) !important;
}

.btn-color-primary:hover,
.button.alt:hover,
.woocommerce .button.alt:hover,
.woocommerce a.button.alt:hover {
    background-color: var(--spartan-gold-dark) !important;
    border-color: var(--spartan-gold-dark) !important;
}

/* === ACCENT COLORS === */
a:hover,
.color-primary,
.wd-entities-title a:hover {
    color: var(--spartan-gold) !important;
}

/* Sale badge */
.onsale,
.product-label.onsale {
    background-color: #c62828 !important;
}

/* === ELEMENTOR PROMO POPUP (library 29417) === */
/* Elementor sets .dialog-message to 360px wide on mobile — nearly edge-to-edge; cap for side breathing room */
@media (max-width: 768px) {
    #elementor-popup-modal-29417 .dialog-message {
        width: auto !important;
        max-width: min(300px, calc(100vw - 40px)) !important;
    }
}

/* === FOOTER === */
/* Solid black: strip WoodMart dark-scheme texture/pattern (gradients, data-URI noise, pseudo-layers). */
.wd-footer.footer-container,
.wd-footer.footer-container.color-scheme-dark,
.footer-container,
.woodmart-footer,
footer.footer-container {
    background-color: #000000 !important;
    background-image: none !important;
    --wd-brd-color: rgba(255, 255, 255, 0.08) !important;
    color: var(--spartan-white) !important;
}

.wd-footer.footer-container::before,
.wd-footer.footer-container::after,
.footer-container::before,
.footer-container::after {
    display: none !important;
    content: none !important;
    background: none !important;
    background-image: none !important;
}

.footer-container a,
.woodmart-footer a,
.wd-footer a {
    color: rgba(255, 255, 255, 0.7) !important;
}

.footer-container a:hover,
.woodmart-footer a:hover,
.wd-footer a:hover {
    color: var(--spartan-gold) !important;
}

.copyrights-wrapper,
.woodmart-copyrights,
.wd-copyrights {
    background-color: #000000 !important;
    background-image: none !important;
    color: rgba(255, 255, 255, 0.5) !important;
}

/*
 * Footer CMS block is Elementor template .elementor-308 (HTML block post 308).
 * Pattern comes from ::before overlays + pattern-02-new.avif in uploads/elementor/css/post-308.css — not the WoodMart footer wrapper alone.
 */
.elementor-308 .elementor-element.elementor-element-f426342:not(.elementor-motion-effects-element-type-background),
.elementor-308 .elementor-element.elementor-element-f426342 > .elementor-motion-effects-container > .elementor-motion-effects-layer {
    background-color: #000000 !important;
    background-image: none !important;
}

.elementor-308 .elementor-element.elementor-element-f426342::before,
.elementor-308 .elementor-element.elementor-element-f426342 > .elementor-background-video-container::before,
.elementor-308 .elementor-element.elementor-element-f426342 > .e-con-inner > .elementor-background-video-container::before,
.elementor-308 .elementor-element.elementor-element-f426342 > .elementor-background-slideshow::before,
.elementor-308 .elementor-element.elementor-element-f426342 > .e-con-inner > .elementor-background-slideshow::before,
.elementor-308 .elementor-element.elementor-element-f426342 > .elementor-motion-effects-container > .elementor-motion-effects-layer::before {
    display: none !important;
    content: none !important;
    background-image: none !important;
    background-color: transparent !important;
    opacity: 0 !important;
}

.elementor-308 .elementor-element.elementor-element-5de50d1:not(.elementor-motion-effects-element-type-background),
.elementor-308 .elementor-element.elementor-element-5de50d1 > .elementor-motion-effects-container > .elementor-motion-effects-layer {
    background-color: #000000 !important;
    background-image: none !important;
}

.elementor-308 .elementor-element.elementor-element-5de50d1::before,
.elementor-308 .elementor-element.elementor-element-5de50d1 > .elementor-background-video-container::before,
.elementor-308 .elementor-element.elementor-element-5de50d1 > .e-con-inner > .elementor-background-video-container::before,
.elementor-308 .elementor-element.elementor-element-5de50d1 > .elementor-background-slideshow::before,
.elementor-308 .elementor-element.elementor-element-5de50d1 > .e-con-inner > .elementor-background-slideshow::before,
.elementor-308 .elementor-element.elementor-element-5de50d1 > .elementor-motion-effects-container > .elementor-motion-effects-layer::before {
    display: none !important;
    content: none !important;
    background-image: none !important;
    background-color: transparent !important;
    opacity: 0 !important;
}

/* Footer logo column: prevent top clip (overflow / tight row) + sensible sizing */
.elementor-308 .elementor-element.elementor-element-92c7ea2 {
    overflow: visible !important;
    padding-top: clamp(8px, 1.5vw, 20px) !important;
}

.elementor-308 .elementor-element.elementor-element-f1c5b4a {
    overflow: visible !important;
}

.elementor-308 .elementor-element.elementor-element-f1c5b4a .elementor-widget-container {
    overflow: visible !important;
}

.elementor-308 .elementor-element.elementor-element-f1c5b4a img {
    width: min(240px, 90%) !important;
    max-width: 100% !important;
    height: auto !important;
    object-fit: contain !important;
    display: block !important;
    margin-top: 0 !important;
}

/* === HEADER PROMO BANNER (WoodMart) === */
/* Close control is non-functional on staging; hide it and reclaim link inset */
.close-header-banner,
.close-header-banner.wd-style-icon {
    display: none !important;
}

.close-header-banner + .header-banner-link {
    inset-inline-end: 0 !important;
}

/* Mobile: cap header logo (desktop caps are only in functions.php @ 1025px+). */
@media (max-width: 1024px) {
    header.whb-header .whb-general-header .wd-logo img,
    header.whb-header .whb-general-header .site-logo img,
    .whb-clone.whb-main-header .whb-general-header .wd-logo img,
    .whb-mobile-header .wd-logo img,
    .whb-mobile-header .site-logo img {
        max-height: calc(42px * 1.3) !important;
        max-width: min(260px, 78vw) !important;
        width: auto !important;
        height: auto !important;
        object-fit: contain !important;
        margin: 0 !important;
    }
}

/* Mobile: hero copy section (Elementor eb68881) - restore inset where full-bleed rules zero padding. */
@media (max-width: 1024px) {
    body.home .elementor-element.elementor-element-eb68881 > .e-con-inner {
        padding-left: clamp(16px, 4vw, 24px) !important;
        padding-right: clamp(16px, 4vw, 24px) !important;
        box-sizing: border-box !important;
    }
}

/* Footer payment cards row (cms_block / Elementor post 308) — Variant A from spartan-cards-mockup */
.elementor-308 .footer-cards-row {
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    padding: 22px 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    flex-wrap: wrap;
}

.elementor-308 .footer-cards-row .label {
    color: #9ca3af;
    font-size: 11px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    margin-right: 4px;
}

.elementor-308 .footer-cards-row .card-logo {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 28px;
    width: 44px;
    border-radius: 4px;
    background: #ffffff;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
}

.elementor-308 .footer-cards-row .card-logo svg {
    width: 100%;
    height: 100%;
    display: block;
}

/* === Checkout: card row under Place Order (MU-plugin spartan-checkout-cards) — Variant A, 3 brands === */
.woocommerce-checkout .checkout-cards-row {
    margin-top: 18px;
    padding-top: 18px;
    border-top: 1px dashed #e5e7eb;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    flex-wrap: wrap;
    clear: both;
}

.woocommerce-checkout .checkout-cards-row .label {
    color: #6b7280;
    font-size: 11px;
    letter-spacing: 1px;
    text-transform: uppercase;
}

.woocommerce-checkout .checkout-cards-row .card-logo {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 28px;
    width: 44px;
    border-radius: 4px;
    background: #ffffff;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
    border: 1px solid #e5e7eb;
    overflow: hidden;
}

.woocommerce-checkout .checkout-cards-row .card-logo svg {
    width: 100%;
    height: 100%;
    display: block;
}

/* === Phase 8: Shop archive sidebar (Nox-aligned hooks around WoodMart filters) === */
.spartan-wc-product-filters.wc-product-filters {
    width: 100%;
}

.spartan-wc-product-filters .woodmart-woocommerce-layered-nav,
.spartan-wc-product-filters .wd-product-filters,
.spartan-wc-product-filters .widget {
    margin-bottom: 1.25rem;
}

.spartan-wc-product-filters .wc-product-categories-checklist,
.spartan-wc-product-filters .wd-scroll-content {
    list-style: none;
    padding: 0;
    margin: 0;
}

.spartan-wc-product-filters .filter-group-search input[type="search"],
.spartan-wc-product-filters .wd-search-form input {
    width: 100%;
    border-radius: 8px;
}

.spartan-wc-product-filters .price_slider_wrapper,
.spartan-wc-product-filters .wd-price-slider {
    margin-top: 0.5rem;
}

.post-type-archive-product .wd-loop-header .woocommerce-ordering,
.post-type-archive-product .woocommerce-ordering.orderby {
    max-width: 100%;
}

/* Spartan: remove scrollbar from Shop sidebar Category widget */
.wd-product-category-filter .wd-scroll,
.wd-product-category-filter .wd-scroll-content {
    max-height: none !important;
    overflow: visible !important;
}

/* === Option 3B: premium product purchase treatment === */
:root {
    --spartan-option-cream: #f8f5ee;
    --spartan-option-cream-deep: #f3ead8;
    --spartan-option-border: #e8dfd0;
    --spartan-option-text: #111111;
    --spartan-option-muted: #6f6658;
}

body.header-banner-enabled:not(.header-banner-hide) .header-banner {
    min-height: 39px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

body.header-banner-enabled:not(.header-banner-hide) .header-banner .wd-entry-content {
    line-height: 1.2 !important;
}

@media (max-width: 1024px) {
    header.whb-header .whb-general-header .wd-logo img,
    header.whb-header .whb-general-header .site-logo img,
    .whb-clone.whb-main-header .whb-general-header .wd-logo img,
    .whb-mobile-header .wd-logo img,
    .whb-mobile-header .site-logo img {
        max-height: 58px !important;
        max-width: min(300px, 82vw) !important;
    }
}

body.single-product {
    background: #ffffff !important;
}

body.single-product .main-page-wrapper,
body.single-product .wd-content-layout,
body.single-product .elementor-776 {
    background: transparent !important;
}

body.single-product .wd-page-wrapper.website-wrapper > .container,
body.single-product #main-content.wd-content-layout.container,
body.single-product #main-content.content-layout-wrapper {
    max-width: none !important;
    width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

body.single-product .elementor-776 .elementor-element-f667d26 {
    background: transparent !important;
    padding-top: clamp(16px, 2.5vw, 28px) !important;
    padding-bottom: 0 !important;
}

body.single-product .elementor-776 .elementor-element-f667d26 > .e-con-inner {
    max-width: 1180px !important;
}

body.single-product .wd-single-nav,
body.single-product .wd-products-nav,
body.single-product .woocommerce-product-gallery .wd-nav-arrows,
body.single-product .wd-gallery-images .wd-nav-arrows {
    display: none !important;
}

body.single-product .elementor-776 .elementor-element-460b6e4 {
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    background: linear-gradient(135deg, #ffffff 0%, #ffffff 58%, var(--spartan-option-cream-deep) 100%) !important;
    border-bottom: 1px solid var(--spartan-option-border) !important;
    padding: clamp(28px, 4vw, 54px) 0 clamp(36px, 5vw, 72px) !important;
}

body.single-product .elementor-776 .elementor-element-460b6e4 > .e-con-inner {
    display: grid !important;
    grid-template-columns: minmax(300px, 0.95fr) minmax(360px, 1fr) !important;
    gap: clamp(32px, 5vw, 72px) !important;
    align-items: center !important;
    max-width: 1180px !important;
    width: min(1180px, calc(100% - 40px)) !important;
}

body.single-product .elementor-776 .elementor-element-5da0c27,
body.single-product .elementor-776 .elementor-element-aebb676 {
    width: 100% !important;
    max-width: none !important;
}

body.single-product .woocommerce-product-gallery {
    padding: clamp(18px, 3vw, 34px) !important;
    border: 1px solid rgba(232, 223, 208, 0.92) !important;
    border-radius: 30px !important;
    background: rgba(255, 255, 255, 0.72) !important;
    box-shadow: 0 24px 80px rgba(28, 22, 12, 0.10) !important;
}

body.single-product .woocommerce-product-gallery img {
    filter: drop-shadow(0 24px 30px rgba(0, 0, 0, 0.08)) !important;
}

body.single-product .wd-single-title .product_title,
body.single-product h1.product_title {
    margin-bottom: 10px !important;
    color: var(--spartan-option-text) !important;
    font-size: clamp(34px, 4.2vw, 52px) !important;
    font-weight: 600 !important;
    letter-spacing: -0.045em !important;
    line-height: 1.02 !important;
}

body.single-product .wd-single-price .price {
    margin-bottom: 18px !important;
    color: var(--spartan-gold) !important;
    font-size: clamp(23px, 2vw, 28px) !important;
    font-weight: 800 !important;
}

body.single-product .woocommerce-product-details__short-description {
    max-width: 610px !important;
    color: #292929 !important;
    font-size: 16px !important;
    line-height: 1.72 !important;
}

body.single-product .elementor-776 .elementor-element-aebb676 {
    gap: 16px !important;
}

body.single-product table.variations {
    margin-bottom: 16px !important;
}

body.single-product table.variations th,
body.single-product table.variations td {
    padding-top: 6px !important;
    padding-bottom: 6px !important;
}

body.single-product .woocommerce-variation-add-to-cart,
body.single-product form.cart:not(.variations_form) {
    display: grid !important;
    grid-template-columns: auto minmax(150px, 1fr) minmax(150px, 1fr) !important;
    gap: 12px !important;
    align-items: center !important;
    max-width: 580px !important;
}

body.single-product .quantity {
    display: inline-grid !important;
    grid-template-columns: 38px 42px 38px !important;
    align-items: center !important;
    justify-content: center !important;
    justify-self: start !important;
    min-width: 118px !important;
    height: 48px !important;
    border: 1px solid var(--spartan-option-border) !important;
    border-radius: 999px !important;
    background: #ffffff !important;
    overflow: hidden !important;
}

body.single-product .quantity input[type="button"],
body.single-product .quantity input[type="number"] {
    display: grid !important;
    place-items: center !important;
    width: 100% !important;
    height: 46px !important;
    border: 0 !important;
    background: transparent !important;
    color: var(--spartan-option-text) !important;
    line-height: 46px !important;
    text-align: center !important;
    margin: 0 !important;
    padding: 0 !important;
}

body.single-product .single_add_to_cart_button.button.alt,
body.single-product .single_add_to_cart_button.button.alt.disabled,
body.single-product .single_add_to_cart_button.button.alt.wc-variation-selection-needed {
    min-height: 50px !important;
    padding: 0 28px !important;
    border: 2px solid var(--spartan-gold) !important;
    border-radius: 999px !important;
    background: #ffffff !important;
    color: #000000 !important;
    box-shadow: none !important;
    font-size: 13px !important;
    font-weight: 800 !important;
    letter-spacing: 0.01em !important;
    text-transform: capitalize !important;
}

body.single-product .single_add_to_cart_button.button.alt:hover,
body.single-product .single_add_to_cart_button.button.alt:focus-visible {
    background: var(--spartan-option-cream) !important;
    border-color: var(--spartan-gold) !important;
    color: #000000 !important;
}

body.single-product .wd-buy-now-btn.button.alt,
html body.single-product .wd-buy-now-btn {
    min-height: 50px !important;
    padding: 0 28px !important;
    border: 2px solid #000000 !important;
    border-radius: 999px !important;
    background: #000000 !important;
    color: #ffffff !important;
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.20) !important;
    font-size: 13px !important;
    font-weight: 800 !important;
    letter-spacing: 0.01em !important;
    text-transform: capitalize !important;
}

body.single-product .wd-buy-now-btn.button.alt:hover,
body.single-product .wd-buy-now-btn.button.alt:focus-visible,
html body.single-product .wd-buy-now-btn:hover {
    background: #171717 !important;
    border-color: #171717 !important;
    color: #ffffff !important;
}

body.single-product .elementor-776 .elementor-element-cb0a7d9 {
    display: none !important;
}

body.single-product .elementor-776 .elementor-element-cb0a7d9 .title-wrapper,
body.single-product .elementor-776 .elementor-element-cb0a7d9 .liner-continer {
    margin: 0 !important;
    padding: 0 !important;
}

body.single-product .elementor-776 .elementor-element-cb0a7d9 .woodmart-title-container {
    display: none !important;
}

body.single-product .elementor-776 .elementor-element-97cfd6a {
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    border-top: 0 !important;
    padding-top: clamp(24px, 3vw, 42px) !important;
    padding-bottom: clamp(40px, 5vw, 74px) !important;
    background: #ffffff !important;
}

body.single-product .related-and-upsells,
body.single-product .wd-products-element.with-title {
    margin-top: 0 !important;
}

body.single-product .wd-products-element .wd-el-title,
body.single-product .wd-products-element .slider-title {
    margin-bottom: 22px !important;
}

.spartan-option3b-badges {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 10px !important;
    margin-top: 24px !important;
}

.spartan-option3b-badge {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 38px !important;
    padding: 0 16px !important;
    border: 1px solid rgba(206, 171, 89, 0.45) !important;
    border-radius: 999px !important;
    background: rgba(206, 171, 89, 0.08) !important;
    color: #6f5927 !important;
    font-size: 12px !important;
    font-weight: 800 !important;
    letter-spacing: 0.04em !important;
    line-height: 1 !important;
    text-transform: uppercase !important;
    white-space: nowrap !important;
}

body.home .wd-products .wd-product .product-wrapper,
body.post-type-archive-product .wd-products .wd-product .product-wrapper,
body.tax-product_cat .wd-products .wd-product .product-wrapper,
body.single-product .related-and-upsells .wd-product .product-wrapper,
body.single-product .wd-products-element .wd-product .product-wrapper {
    border-color: rgba(232, 223, 208, 0.9) !important;
    border-radius: 22px !important;
    background: #fffdf8 !important;
    box-shadow: 0 14px 44px rgba(28, 22, 12, 0.07) !important;
    overflow: hidden !important;
}

body.home .wd-products .wd-product .product-element-top,
body.post-type-archive-product .wd-products .wd-product .product-element-top,
body.tax-product_cat .wd-products .wd-product .product-element-top,
body.single-product .wd-products-element .wd-product .product-element-top {
    background: linear-gradient(135deg, #ffffff 0%, #fbf7ee 100%) !important;
}

body.home .wd-products .wd-product .wd-add-btn a.button,
body.post-type-archive-product .wd-products .wd-product .wd-add-btn a.button,
body.tax-product_cat .wd-products .wd-product .wd-add-btn a.button,
body.single-product .wd-products-element .wd-product .wd-add-btn a.button {
    min-height: 42px !important;
    padding: 0 20px !important;
    border: 1.5px solid var(--spartan-gold) !important;
    border-radius: 999px !important;
    background: #ffffff !important;
    color: #000000 !important;
    box-shadow: none !important;
    font-size: 12px !important;
    font-weight: 800 !important;
    letter-spacing: 0.01em !important;
    text-transform: capitalize !important;
}

body.home .wd-products .wd-product .wd-add-btn a.button:hover,
body.home .wd-products .wd-product .wd-add-btn a.button:focus-visible,
body.post-type-archive-product .wd-products .wd-product .wd-add-btn a.button:hover,
body.post-type-archive-product .wd-products .wd-product .wd-add-btn a.button:focus-visible,
body.tax-product_cat .wd-products .wd-product .wd-add-btn a.button:hover,
body.tax-product_cat .wd-products .wd-product .wd-add-btn a.button:focus-visible,
body.single-product .wd-products-element .wd-product .wd-add-btn a.button:hover,
body.single-product .wd-products-element .wd-product .wd-add-btn a.button:focus-visible {
    background: #000000 !important;
    border-color: #000000 !important;
    color: #ffffff !important;
}

@media (max-width: 1024px) {
    body.single-product .elementor-776 .elementor-element-460b6e4 {
        padding-top: 24px !important;
    }

    body.single-product .elementor-776 .elementor-element-460b6e4 > .e-con-inner {
        grid-template-columns: 1fr !important;
        gap: 28px !important;
        width: min(calc(100% - 28px), 680px) !important;
    }

    body.single-product .woocommerce-product-gallery {
        padding: 18px !important;
        border-radius: 24px !important;
    }

    body.single-product .woocommerce-variation-add-to-cart,
    body.single-product form.cart:not(.variations_form) {
        grid-template-columns: 1fr !important;
        max-width: none !important;
    }

    body.single-product .quantity {
        justify-self: start !important;
    }
}

@media (max-width: 480px) {
    body.single-product .elementor-776 .elementor-element-f667d26 > .e-con-inner,
    body.single-product .elementor-776 .elementor-element-460b6e4 > .e-con-inner,
    body.single-product .elementor-776 .elementor-element-97cfd6a > .e-con-inner {
        width: min(calc(100% - 24px), 100%) !important;
    }

    body.single-product .single_add_to_cart_button.button.alt,
    body.single-product .wd-buy-now-btn.button.alt,
    html body.single-product .wd-buy-now-btn {
        width: 100% !important;
    }
}

/* My Account management center: black panel and one desktop row after Downloads is removed. */
body.woocommerce-account .elementor-element.elementor-element-f909ec4 {
    background-color: #000 !important;
    background-image: none !important;
}

@media (min-width: 1025px) {
    body.woocommerce-account .elementor-element.elementor-element-7b0353f nav[aria-label="Account pages"] ul {
        --wd-col-lg: 8 !important;
        display: grid !important;
        grid-template-columns: repeat(8, minmax(0, 1fr)) !important;
    }
}

body.woocommerce-account .elementor-element.elementor-element-7b0353f nav[aria-label="Account pages"] a:hover {
    background-color: #f4e8cf !important;
    border-color: #f4e8cf !important;
    color: var(--spartan-gold) !important;
}

body.woocommerce-account .elementor-element.elementor-element-7b0353f nav[aria-label="Account pages"] a:hover :is(svg, i, .wd-nav-img, .wd-icon) {
    color: var(--spartan-gold) !important;
    fill: var(--spartan-gold) !important;
    stroke: var(--spartan-gold) !important;
}

body.woocommerce-account .elementor-element.elementor-element-7b0353f nav[aria-label="Account pages"] li.is-active > a:not(:hover),
body.woocommerce-account .elementor-element.elementor-element-7b0353f nav[aria-label="Account pages"] a[aria-current="page"]:not(:hover) {
    background-color: #f5f5f5 !important;
    border-color: #f5f5f5 !important;
    color: #242424 !important;
}

body.woocommerce-account .elementor-element.elementor-element-7b0353f nav[aria-label="Account pages"] li.is-active > a:not(:hover) :is(svg, i, .wd-nav-img, .wd-icon),
body.woocommerce-account .elementor-element.elementor-element-7b0353f nav[aria-label="Account pages"] a[aria-current="page"]:not(:hover) :is(svg, i, .wd-nav-img, .wd-icon) {
    color: #242424 !important;
    fill: #242424 !important;
    stroke: #242424 !important;
}
