/*
Theme Name: Astra Child - Green Bodhi
Theme URI: https://greenbodhi.com
Description: Custom Astra child for Green Bodhi - dark theme matching gbgenetics.com
Author: Green Bodhi
Author URI: https://greenbodhi.com
Template: astra
Version: 1.0.0
Text Domain: astra-child
*/

/* =========================================================================
   GB DESIGN TOKENS
   ========================================================================= */
:root {
    --gb-bg-dark: #0a0a0a;
    --gb-bg-elev: #1a1a1a;
    --gb-bg-overlay: rgba(0, 0, 0, 0.78);
    --gb-red: #c93b3b;
    --gb-red-dark: #a92e2e;
    --gb-gold: #d4a73c;
    --gb-text: #e8eaee;
    --gb-text-muted: #c9ccd2;
    --gb-text-dim: #8b94a3;
    --gb-border: rgba(255, 255, 255, 0.1);
    --gb-border-strong: rgba(255, 255, 255, 0.2);
}

/* =========================================================================
   RESET top whitespace
   ========================================================================= */
html, body {
    margin: 0 !important;
    padding: 0 !important;
}
.site, #page { padding-top: 0 !important; margin-top: 0 !important; }

/* Simple Banner plugin -> red brand strip, no whitespace */
.simple-banner,
#simple-banner-id,
div.simple-banner {
    background: var(--gb-red) !important;
    color: #ffffff !important;
    text-align: center;
    padding: 8px 15px !important;
    margin: 0 !important;
    font-size: 13px !important;
    letter-spacing: 0.03em;
    border: none !important;
    position: relative !important;
    top: 0 !important;
}
.simple-banner-text,
.simple-banner p,
.simple-banner span { color: #ffffff !important; font-weight: 500; }
.simple-banner a { color: #ffffff !important; text-decoration: underline; }

/* If admin bar pushes content down, account for it */
body.admin-bar { padding-top: 0 !important; }

/* =========================================================================
   SITE-WIDE DARK THEME
   ========================================================================= */
body {
    background-color: var(--gb-bg-dark) !important;
    color: var(--gb-text);
}

a { color: var(--gb-gold); }
a:hover, a:focus { color: var(--gb-red); }

/* Typography */
body, .ast-container, .entry-content,
input, button, select, textarea {
    font-family: 'Inter', -apple-system, sans-serif !important;
    color: var(--gb-text);
}
h1, h2, h3, h4, h5, h6,
.entry-title, .site-title,
.product_title, .woocommerce-loop-product__title,
.woocommerce-loop-category__title,
.widget-title {
    font-family: 'Cardo', Georgia, serif !important;
    color: #ffffff !important;
    font-weight: 400 !important;
    letter-spacing: -0.01em;
}

/* =========================================================================
   HEADER (full site)
   ========================================================================= */
.ast-above-header-wrap,
.ast-primary-header-wrap,
.site-header {
    background: #000000 !important;
    border-bottom: 1px solid rgba(255,255,255,0.05);
}

/* Above header (Simple Banner area) - red strip */
.ast-above-header-wrap {
    background: var(--gb-red) !important;
    color: #ffffff !important;
    text-align: center;
    font-size: 12.5px;
    padding: 6px 0;
    letter-spacing: 0.04em;
}
.ast-above-header-wrap a { color: #ffffff !important; text-decoration: underline; }

/* Logo area */
.ast-site-identity .site-logo-img img,
.custom-logo-link img { max-height: 80px; width: auto; }

/* Primary navigation - centered, generously spaced (matches reference) */
.main-header-menu .menu-item > a,
.ast-primary-header .menu-item > a,
.ast-builder-menu-1 .menu-item > a,
nav.main-navigation .menu-item > a {
    color: #ffffff !important;
    font-family: 'Inter', -apple-system, sans-serif !important;
    font-weight: 500 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.12em !important;
    font-size: 13px !important;
    padding: 12px 22px !important;
}
.main-header-menu .menu-item,
.ast-builder-menu-1 .menu-item { margin: 0 6px !important; }
/* (removed: underline-on-hover ::after — was interfering with dropdown hover) */

/* Center primary nav via absolute positioning (dropdowns still work — see sub-menu rules below) */
.ast-primary-header-bar { position: relative !important; }
.ast-primary-header-bar .site-primary-header-wrap { position: relative; }
.ast-primary-header-bar .ast-builder-menu-1 {
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    transform: translate(-50%, -50%) !important;
    margin: 0 !important;
    z-index: 5 !important;
}
.ast-primary-header-bar .ast-builder-menu-1 .main-header-menu,
.ast-primary-header-bar .ast-builder-menu-1 .main-navigation {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
}
.ast-primary-header-bar .site-header-primary-section-left .ast-builder-menu-1 {
    /* override the broken flex centering below */
    margin: 0 !important;
}
@media (max-width: 1000px) {
    .ast-primary-header-bar .ast-builder-menu-1 {
        position: static !important;
        transform: none !important;
    }
}

/* Sub-menu (Collections dropdown) - solid black, no gap, smooth hover bridge */
.ast-builder-menu-1 .main-header-menu .menu-item-has-children { position: relative; }

/* Invisible hover bridge centered under the menu item so dropdown stays open when cursor moves down */
.ast-builder-menu-1 .main-header-menu .menu-item-has-children::after {
    content: '';
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    width: 280px;
    height: 14px;
    background: transparent;
    pointer-events: none;
}
.ast-builder-menu-1 .main-header-menu .menu-item-has-children:hover::after { pointer-events: auto; }

.ast-builder-menu-1 .main-header-menu .sub-menu,
.ast-builder-menu-1 .main-header-menu ul.sub-menu {
    position: absolute !important;
    top: 100% !important;
    left: 50% !important;
    right: auto !important;
    transform: translateX(-50%) translateY(0) !important;
    background: #000000 !important;
    min-width: 260px;
    padding: 12px 0 !important;
    margin: 0 !important;
    border: 1px solid rgba(255,255,255,0.1);
    border-radius: 2px;
    box-shadow: 0 12px 36px rgba(0,0,0,0.7);
    z-index: 9999 !important;
    list-style: none !important;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.2s ease, visibility 0.2s ease;
}
.ast-builder-menu-1 .main-header-menu .menu-item-has-children:hover > .sub-menu,
.ast-builder-menu-1 .main-header-menu .menu-item-has-children:focus-within > .sub-menu {
    opacity: 1;
    visibility: visible;
}
.ast-builder-menu-1 .main-header-menu .sub-menu li {
    margin: 0 !important;
    list-style: none !important;
}
.ast-builder-menu-1 .main-header-menu .sub-menu li > a,
.ast-builder-menu-1 .main-header-menu .sub-menu li.menu-item > a {
    display: block !important;
    padding: 12px 22px !important;
    font-size: 12px !important;
    font-family: 'Inter', sans-serif !important;
    text-transform: uppercase !important;
    letter-spacing: 0.08em !important;
    white-space: nowrap !important;
    color: #ffffff !important;
    border: none !important;
    background: transparent !important;
    transition: background 0.15s ease, color 0.15s ease, padding-left 0.15s ease;
}
.ast-builder-menu-1 .main-header-menu .sub-menu li > a:hover,
.ast-builder-menu-1 .main-header-menu .sub-menu li > a:focus {
    background: rgba(212,167,60,0.12) !important;
    color: var(--gb-gold) !important;
    padding-left: 28px !important;
}
/* Dropdowns should not have the underline-on-hover effect (only top-level menu items) */
.ast-builder-menu-1 .main-header-menu .sub-menu li > a::after { display: none !important; }
.main-header-menu .menu-item > a:hover,
.ast-primary-header .menu-item > a:hover,
.ast-builder-menu-1 .menu-item > a:hover,
nav.main-navigation .menu-item > a:hover { color: var(--gb-gold) !important; }

/* Header icons (search/cart/account) */
.ast-header-account-wrap .ahfb-svg-iconset,
.ast-cart-menu-wrap .ahfb-svg-iconset,
.ast-search-icon .ahfb-svg-iconset { color: #ffffff !important; fill: #ffffff !important; }

.cart-count,
.ast-cart-menu-wrap .count { background: var(--gb-red) !important; color: #ffffff !important; }

/* =========================================================================
   PAGE CONTENT (inner pages keep dark)
   ========================================================================= */
#page, #content, .site-content, .site-main, .ast-container { background: transparent; }

.entry-title, .ast-page-header-section, .post-thumb-img-content { color: #ffffff; }

/* All inner pages get a subtle bud bg + dark overlay (matches reference) */
body:not(.home) {
    background-color: #0a0a0a !important;
    background-image: url('/greenbodhi/wp-content/uploads/2026/05/89-x-Runtz-Full-Cola-scaled-1-jpg.webp') !important;
    background-repeat: no-repeat !important;
    background-position: center top !important;
    background-size: cover !important;
    background-attachment: fixed !important;
}
body:not(.home)::before {
    content: '';
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.85);
    z-index: 0;
    pointer-events: none;
}
body:not(.home) #page,
body:not(.home) #content,
body:not(.home) .ast-container,
body:not(.home) .site-content,
body:not(.home) .site-main,
body:not(.home) .entry-content,
body:not(.home) article,
body:not(.home) .ast-article-single,
body:not(.home) .ast-separate-container .ast-article-single {
    position: relative;
    z-index: 1;
    background: transparent !important;
    background-color: transparent !important;
    box-shadow: none !important;
    color: var(--gb-text);
}
body:not(.home) .ast-separate-container { background: transparent !important; }

/* Inner page hero - replaces white WP page header with a dark hero showing the title */
body:not(.home) .entry-header,
body:not(.home) .ast-page-header-section {
    display: block !important;
    background-color: rgba(0,0,0,0.55) !important;
    background-image: url('/greenbodhi/wp-content/uploads/2026/05/AffieOG-1-jpg.webp') !important;
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
    padding: 100px 20px !important;
    margin: 0 0 50px !important;
    text-align: center;
    position: relative;
    overflow: hidden;
}
body:not(.home) .entry-header::before {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.6);
    z-index: 0;
}
body:not(.home) .entry-header > * { position: relative; z-index: 1; }
body:not(.home) .entry-header h1.entry-title {
    color: #ffffff !important;
    font-size: 64px !important;
    font-family: 'Cardo', Georgia, serif !important;
    font-weight: 400 !important;
    margin: 0 !important;
    text-shadow: 0 4px 20px rgba(0,0,0,0.6);
    letter-spacing: -0.01em;
    text-align: center;
}
@media (max-width: 768px) {
    body:not(.home) .entry-header { padding: 60px 20px !important; }
    body:not(.home) .entry-header h1.entry-title { font-size: 38px !important; }
}

/* Hide the WC shop title header on /shop/ since shop page has its own */
.woocommerce-shop .entry-header,
.woocommerce-shop .ast-page-header-section { display: none !important; }

/* Cart / Checkout / My Account - shorter hero banner (about half height of other pages) */
body.woocommerce-cart .entry-header,
body.woocommerce-checkout .entry-header,
body.woocommerce-account .entry-header,
body.woocommerce-cart .ast-page-header-section,
body.woocommerce-checkout .ast-page-header-section,
body.woocommerce-account .ast-page-header-section {
    padding: 50px 20px !important;
    margin: 0 0 30px !important;
    min-height: 0 !important;
}
body.woocommerce-cart .entry-header h1.entry-title,
body.woocommerce-checkout .entry-header h1.entry-title,
body.woocommerce-account .entry-header h1.entry-title {
    font-size: 44px !important;
}
@media (max-width: 768px) {
    body.woocommerce-cart .entry-header,
    body.woocommerce-checkout .entry-header,
    body.woocommerce-account .entry-header {
        padding: 30px 20px !important;
    }
    body.woocommerce-cart .entry-header h1.entry-title,
    body.woocommerce-checkout .entry-header h1.entry-title,
    body.woocommerce-account .entry-header h1.entry-title {
        font-size: 28px !important;
    }
}

/* WC archive (category) page hero matches inner page */
.woocommerce.archive .ast-archive-description { display: none; }
.woocommerce.archive .woocommerce-products-header__title { display: none; }

.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce-loop-category__title,
.product_title.entry-title { color: #ffffff !important; }

.woocommerce ul.products li.product .price,
.woocommerce ul.products li.product .price .amount,
.woocommerce-Price-amount.amount,
.summary .price { color: var(--gb-text) !important; }

.woocommerce span.onsale,
.woocommerce ul.products li.product .onsale {
    background: var(--gb-red) !important;
    color: #fff !important;
    border-radius: 2px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-size: 10px !important;
    padding: 5px 10px !important;
    box-shadow: none;
}

/* WooCommerce + Elementor + Gutenberg buttons - all brand red */
.woocommerce .button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
button.single_add_to_cart_button,
.elementor-button,
.elementor-button-link,
.elementor-widget-button .elementor-button,
.wp-block-button__link,
.wp-block-button .wp-block-button__link,
input[type="submit"],
button[type="submit"] {
    background: var(--gb-red) !important;
    background-color: var(--gb-red) !important;
    color: #ffffff !important;
    border: none !important;
    border-radius: 2px !important;
    font-family: 'Inter', sans-serif !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.06em !important;
    padding: 12px 28px !important;
    box-shadow: none !important;
}
.woocommerce .button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
button.single_add_to_cart_button:hover,
.elementor-button:hover,
.elementor-button-link:hover,
.elementor-widget-button .elementor-button:hover,
.wp-block-button__link:hover,
.wp-block-button .wp-block-button__link:hover,
input[type="submit"]:hover,
button[type="submit"]:hover {
    background: var(--gb-red-dark) !important;
    background-color: var(--gb-red-dark) !important;
    color: #ffffff !important;
}

/* Elementor button text inside */
.elementor-button .elementor-button-text,
.elementor-button-content-wrapper { color: #ffffff !important; }

/* Outline / secondary buttons */
.elementor-button.elementor-size-sm,
.wp-block-button.is-style-outline .wp-block-button__link {
    background: transparent !important;
    border: 1px solid var(--gb-red) !important;
    color: var(--gb-red) !important;
}
.elementor-button.elementor-size-sm:hover,
.wp-block-button.is-style-outline .wp-block-button__link:hover {
    background: var(--gb-red) !important;
    color: #ffffff !important;
}

/* Inputs on inner pages */
.woocommerce-page input[type="text"],
.woocommerce-page input[type="email"],
.woocommerce-page input[type="tel"],
.woocommerce-page input[type="password"],
.woocommerce-page select,
.woocommerce-page textarea {
    background: rgba(255,255,255,0.05) !important;
    border: 1px solid var(--gb-border-strong) !important;
    color: #ffffff !important;
    border-radius: 2px;
}

/* ============================================================
   SINGLE PRODUCT PAGE - Pack Size, variation dropdown, quantity
   ============================================================ */
.single-product .product .summary { color: var(--gb-text); }
.single-product .product_title { color: #ffffff !important; font-family: 'Cardo', serif !important; }
.single-product .price,
.single-product .price .amount,
.single-product .woocommerce-Price-amount { color: #ffffff !important; font-family: 'Cardo', serif !important; }

/* Variation form labels (Pack Size) */
.single-product .variations th.label,
.single-product .variations th.label label,
.single-product .variations .label label {
    color: #ffffff !important;
    font-family: 'Cardo', serif !important;
    font-size: 18px !important;
    font-weight: 700 !important;
}

/* Variation pill / swatch (the "11 seeds" white box) - dark on light when value picked */
.single-product .variations select,
.single-product .variations .value select,
.single-product table.variations select {
    background: #ffffff !important;
    color: #112337 !important;
    border: 1px solid #e0e0e0 !important;
    border-radius: 3px !important;
    padding: 10px 14px !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 14px !important;
}

/* The fancy variation pill (some plugins like Variation Swatches render this) */
.single-product .variations-form .reset_variations,
.single-product .variations a.reset_variations,
.single-product .reset_variations {
    color: #c93b3b !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 12px !important;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    text-decoration: none !important;
    margin-top: 8px;
    display: inline-block;
}

/* Variation Price Display plugin pills (if present) */
.single-product .vpd-variations-buttons label,
.single-product .vpd-variation-button,
.single-product .variation-button,
.single-product ul.variable-items-wrapper li,
.single-product li.variable-item {
    background: rgba(255,255,255,0.06) !important;
    border: 1px solid rgba(255,255,255,0.2) !important;
    color: #ffffff !important;
    padding: 10px 18px !important;
    border-radius: 3px !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 13px !important;
}
.single-product ul.variable-items-wrapper li.selected,
.single-product li.variable-item.selected,
.single-product .vpd-variation-button.selected {
    background: var(--gb-red) !important;
    border-color: var(--gb-red) !important;
    color: #ffffff !important;
}

/* CFVSW (Variation Swatches for WooCommerce) plugin - the actual swatch on this site */
.cfvsw-swatches-container,
.cfvsw-swatches-container * { box-sizing: border-box; }

.cfvsw-swatches-option,
.cfvsw-label-option,
div.cfvsw-swatches-option,
div.cfvsw-label-option {
    background: rgba(255,255,255,0.08) !important;
    background-color: rgba(255,255,255,0.08) !important;
    border: 1px solid rgba(255,255,255,0.25) !important;
    color: #ffffff !important;
    padding: 10px 22px !important;
    border-radius: 3px !important;
    min-width: auto !important;
    min-height: auto !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    cursor: pointer;
    transition: background 0.2s ease, border-color 0.2s ease;
}
.cfvsw-swatches-option:hover,
.cfvsw-label-option:hover {
    background: rgba(212,167,60,0.15) !important;
    background-color: rgba(212,167,60,0.15) !important;
    border-color: var(--gb-gold) !important;
}

.cfvsw-selected-swatch,
.cfvsw-swatches-option.cfvsw-selected-swatch,
div.cfvsw-selected-swatch {
    background: var(--gb-red) !important;
    background-color: var(--gb-red) !important;
    border-color: var(--gb-red) !important;
    color: #ffffff !important;
    --cfvsw-swatches-border-color: var(--gb-red) !important;
}

.cfvsw-swatch-inner,
div.cfvsw-swatch-inner,
.cfvsw-swatches-option .cfvsw-swatch-inner,
.cfvsw-selected-swatch .cfvsw-swatch-inner {
    color: #ffffff !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    text-transform: none !important;
    line-height: 1.4 !important;
    background: transparent !important;
}

/* Disabled / unavailable variations */
.cfvsw-disabled-swatch,
.cfvsw-swatches-option.cfvsw-disabled-swatch {
    opacity: 0.4 !important;
    cursor: not-allowed !important;
    text-decoration: line-through;
}

/* "Clear" reset link next to the swatches */
.cfvsw-swatches-container + .reset_variations,
.reset_variations {
    color: var(--gb-red) !important;
    font-family: 'Inter', sans-serif !important;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-size: 12px !important;
    text-decoration: none !important;
    margin-top: 10px;
    display: inline-block;
}

/* Generic fix: any element inside .variations / .pack-size with white bg gets dark text */
.single-product .variations select option { color: #112337 !important; background: #ffffff !important; }

/* The clear/reset button area */
.single-product .single_variation_wrap .woocommerce-variation { color: var(--gb-text); }
.single-product .stock.out-of-stock { color: #ff6b6b !important; font-weight: 600; }
.single-product .stock.in-stock { color: #4fcc25 !important; font-weight: 600; }

/* Quantity input */
.single-product .quantity input.qty {
    background: #ffffff !important;
    color: #112337 !important;
    border: 1px solid #e0e0e0 !important;
    width: 70px;
    padding: 12px 10px !important;
    text-align: center;
    border-radius: 3px;
    font-weight: 600;
}

/* Variation pricing displayed below selector */
.single-product .woocommerce-variation-price .price { color: #ffffff !important; font-size: 22px; }

/* Product description tabs */
.single-product .woocommerce-tabs .tabs li,
.single-product .wc-tabs li { background: transparent; border: none; }
.single-product .woocommerce-tabs .tabs li a,
.single-product .wc-tabs li a {
    color: #c9ccd2 !important;
    font-family: 'Inter', sans-serif !important;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-size: 13px;
}
.single-product .woocommerce-tabs .tabs li.active a,
.single-product .wc-tabs li.active a { color: var(--gb-gold) !important; border-bottom: 2px solid var(--gb-gold); }

/* Product description text (dark theme) */
.single-product .woocommerce-product-details__short-description,
.single-product .woocommerce-Tabs-panel,
.single-product .woocommerce-product-details__short-description p,
.single-product .woocommerce-Tabs-panel p { color: var(--gb-text-muted) !important; }
.single-product .woocommerce-Tabs-panel h2 { color: #ffffff !important; font-family: 'Cardo', serif !important; }

/* Tables in description (Additional info) */
.single-product .woocommerce-Tabs-panel table.shop_attributes,
.single-product table.shop_attributes {
    background: rgba(255,255,255,0.04) !important;
    border: 1px solid var(--gb-border) !important;
}
.single-product table.shop_attributes th { color: #ffffff !important; padding: 12px !important; }
.single-product table.shop_attributes td { color: var(--gb-text-muted) !important; padding: 12px !important; }

/* =========================================================================
   FOOTER
   ========================================================================= */
.site-footer,
.site-footer-wrap,
.site-primary-footer-wrap,
.site-below-footer-wrap {
    background: #000000 !important;
    color: var(--gb-text-muted) !important;
}
.site-footer h2,
.site-footer h3,
.site-footer h4,
.site-footer .widget-title {
    color: #ffffff !important;
    font-family: 'Cardo', serif !important;
    font-size: 18px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    border-bottom: 1px solid var(--gb-border);
    padding-bottom: 12px;
    margin-bottom: 16px;
}
.site-footer a { color: var(--gb-text-muted) !important; transition: color 0.2s ease; }
.site-footer a:hover { color: var(--gb-gold) !important; }
.site-footer p,
.site-footer li { color: var(--gb-text-muted); font-size: 13px; line-height: 1.7; }

/* Social icons */
.ast-builder-social-element {
    color: #ffffff !important;
    background: transparent !important;
    border: 1px solid var(--gb-border-strong);
    border-radius: 50%;
    width: 36px;
    height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-right: 8px;
    transition: border-color 0.2s ease, color 0.2s ease;
}
.ast-builder-social-element:hover { border-color: var(--gb-gold); color: var(--gb-gold) !important; }

/* Footer disclaimer text small */
.site-footer p:last-child,
.site-footer .ast-footer-copyright p { font-size: 11px; line-height: 1.6; color: var(--gb-text-dim); }

/* Reference footer matching - tighten everything below the GB sitemap, all centered */
.site-footer #footer-widgets,
.site-footer .ast-builder-footer-grid-columns { margin: 0 !important; padding: 0 !important; }

/* Override Astra's 2-column grid in the primary footer wrap so social icons center */
.site-primary-footer-wrap.ast-builder-grid-row-container,
.site-primary-footer-wrap[data-section="section-primary-footer-builder"] {
    display: block !important;
    grid-template-columns: none !important;
}
.site-primary-footer-wrap .ast-builder-grid-row-container-inner {
    width: 100% !important;
    display: block !important;
}
.site-primary-footer-wrap .ast-builder-grid-row,
.site-primary-footer-wrap .site-primary-footer-inner-wrap,
.site-primary-footer-wrap .ast-builder-grid-row-2-equal,
.site-primary-footer-wrap .ast-builder-grid-row-tablet-2-equal {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    grid-template-columns: none !important;
    gap: 4px !important;
    width: 100% !important;
}
.site-primary-footer-wrap .site-footer-primary-section-1,
.site-primary-footer-wrap .site-footer-primary-section-2 {
    width: 100% !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: center !important;
    text-align: center !important;
}
.site-primary-footer-wrap .ast-footer-social-1-wrap,
.site-primary-footer-wrap .ast-footer-social-wrap,
.site-primary-footer-wrap .footer-social-inner-wrap {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    width: 100% !important;
}

/* Remove max-width:1200px constraint on Astra footer rows so they go full width */
.site-primary-footer-wrap[data-section="section-primary-footer-builder"] .ast-builder-grid-row,
.site-below-footer-wrap[data-section="section-below-footer-builder"] .ast-builder-grid-row,
.site-primary-footer-wrap .ast-builder-grid-row,
.site-below-footer-wrap .ast-builder-grid-row {
    max-width: none !important;
    width: 100% !important;
}

/* Force ALL footer text centered */
.site-footer,
.site-footer .ast-footer-copyright,
.site-footer .ast-footer-copyright p,
.site-below-footer-wrap,
.site-below-footer-wrap *,
.site-below-footer-wrap p,
.site-primary-footer-wrap,
.site-primary-footer-wrap p,
.site-primary-footer-wrap .ast-footer-copyright {
    text-align: center !important;
}
.site-below-footer-wrap .footer-widget-area-inner,
.site-below-footer-wrap .widget_block,
.site-below-footer-wrap .widget_text {
    margin-left: auto !important;
    margin-right: auto !important;
    max-width: 1100px;
}

/* Hide Astra's empty Above Footer area (causing 150px+ of empty space between Quick Links and social icons) */
.site-above-footer-wrap,
.site-above-footer-wrap[data-section="section-above-footer-builder"],
.site-footer .site-above-footer-wrap {
    display: none !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    border: none !important;
    background: transparent !important;
    height: 0 !important;
    overflow: hidden !important;
}
.site-footer .site-above-footer-inner-wrap,
.site-above-footer-inner-wrap { display: none !important; }

.site-primary-footer-wrap {
    padding: 8px 20px !important;
    margin: 0 !important;
}
.site-primary-footer-wrap .ast-builder-grid-row-container-inner,
.site-primary-footer-wrap .ast-builder-grid-row { padding: 0 !important; margin: 0 !important; }
.site-primary-footer-wrap .site-primary-footer-inner-wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 0 !important;
    margin: 0 !important;
}
.site-primary-footer-wrap .ast-footer-social-1-wrap {
    margin: 0 0 6px !important;
    padding: 0 !important;
}
.site-primary-footer-wrap .ast-footer-social-1-wrap .ast-footer-social-wrap {
    padding: 0 !important;
    margin: 0 !important;
}
.site-primary-footer-wrap .ast-builder-layout-element { padding: 0 !important; }
.site-footer .ast-footer-copyright {
    font-family: 'Inter', sans-serif;
    font-size: 11px;
    color: var(--gb-text-dim);
    text-align: center;
}
.site-below-footer-wrap {
    background: #000000 !important;
    padding: 24px 20px !important;
}
.site-below-footer-wrap .widget_block,
.site-below-footer-wrap .widget_text {
    text-align: center;
    max-width: 1100px;
    margin: 0 auto;
}
.site-below-footer-wrap p {
    font-size: 11px !important;
    line-height: 1.7 !important;
    color: var(--gb-text-dim) !important;
    margin: 0 0 12px;
}

/* Hide duplicate Astra footer widgets (replaced by gb-footer-sitemap) */
.site-footer #nav_menu-1,
.site-footer #nav_menu-4,
.site-footer .ast-builder-footer-grid-columns .widget_nav_menu,
.site-footer-above-section-1,
.site-footer-above-section-2,
.site-primary-footer-wrap .footer-widget-area-inner section.widget_nav_menu {
    display: none !important;
}

/* Keep social icons + copyright + disclaimer text visible (those are NOT in nav_menu widgets) */
.site-primary-footer-wrap .ast-footer-social-1-wrap,
.site-primary-footer-wrap .ast-footer-copyright,
.site-below-footer-wrap { display: block !important; }
.site-below-footer-wrap .widget_nav_menu { display: none !important; }
/* but keep the disclaimer text widget areas */
.site-below-footer-wrap .widget_block,
.site-below-footer-wrap .widget_text { display: block !important; }

/* ================================================
   SIDE CART / MINI CART DRAWER (WooCommerce + Astra)
   ================================================ */
.ast-site-header-cart-data,
.ast-site-header-cart-data .widget_shopping_cart_content,
.woocommerce.widget_shopping_cart,
.widget_shopping_cart_content,
.woocommerce-mini-cart,
.cart_list,
.product_list_widget,
.ast-cart-drawer,
.ast-cart-drawer-content,
.astra-cart-drawer,
.astra-cart-drawer-content,
.ast-mini-cart-drawer,
#ast-site-header-cart .widget_shopping_cart_content,
.astra-cart-drawer-overlay + .astra-cart-drawer,
div.ast-desktop-cart-flyout,
.ast-desktop-cart-flyout-inner,
.ast-mobile-cart-flyout,
.ast-cart-flyout,
.astra-cart-drawer .astra-cart-drawer-content {
    background: #0a0a0a !important;
    background-color: #0a0a0a !important;
    color: #ffffff !important;
}

/* Drawer header */
.ast-cart-drawer-title,
.astra-cart-drawer-title,
.ast-cart-drawer-header,
.astra-cart-drawer-header,
.ast-site-header-cart-data .ast-cart-menu-wrap,
.ast-cart-drawer .ast-cart-drawer-title,
.astra-cart-drawer .astra-cart-drawer-title,
.ast-mini-cart-title {
    color: #ffffff !important;
    background: #000000 !important;
    border-bottom: 1px solid rgba(255,255,255,0.1) !important;
}

/* Close button */
.ast-cart-drawer-close,
.astra-cart-drawer-close,
.ast-cart-drawer .close-cart,
.astra-cart-drawer .close-cart,
.ast-mini-cart-close,
button.ast-cart-drawer-close,
button.astra-cart-drawer-close {
    color: #ffffff !important;
    background: transparent !important;
}
.ast-cart-drawer-close svg,
.astra-cart-drawer-close svg,
.ast-mini-cart-close svg,
.ast-cart-drawer-close path,
.astra-cart-drawer-close path { fill: #ffffff !important; stroke: #ffffff !important; }

/* Cart items list */
.woocommerce.widget_shopping_cart .cart_list li,
.widget_shopping_cart_content .cart_list li,
.woocommerce-mini-cart__item,
.woocommerce-mini-cart .mini_cart_item,
ul.cart_list li,
ul.product_list_widget li {
    background: transparent !important;
    background-color: transparent !important;
    color: #ffffff !important;
    border-bottom: 1px solid rgba(255,255,255,0.08) !important;
    padding: 14px 16px !important;
}

/* Product names + links */
.widget_shopping_cart_content .cart_list a,
.woocommerce-mini-cart a,
.woocommerce-mini-cart__item a,
.cart_list .mini_cart_item a,
.cart_list a:not(.remove),
.woocommerce.widget_shopping_cart a,
ul.cart_list li a,
ul.product_list_widget li a {
    color: #ffffff !important;
    text-decoration: none !important;
}
.widget_shopping_cart_content .cart_list a:hover,
.woocommerce-mini-cart a:hover { color: var(--gb-gold) !important; }

/* Quantity / price text - force ALL nested text white incl. <bdi>, currency symbol */
.widget_shopping_cart_content .quantity,
.woocommerce-mini-cart .quantity,
.woocommerce-mini-cart__item .quantity,
.cart_list .quantity,
ul.cart_list li .quantity,
ul.product_list_widget li .quantity,
.widget_shopping_cart_content .quantity *,
.woocommerce-mini-cart .quantity *,
.cart_list .quantity *,
.widget_shopping_cart_content .amount,
.woocommerce-mini-cart .amount,
.woocommerce-mini-cart__item .amount,
.cart_list .amount,
.woocommerce-Price-amount,
.woocommerce-Price-amount *,
.widget_shopping_cart_content bdi,
.woocommerce-mini-cart bdi,
.cart_list bdi,
.widget_shopping_cart_content .woocommerce-Price-currencySymbol,
.woocommerce-mini-cart .woocommerce-Price-currencySymbol,
.cart_list .woocommerce-Price-currencySymbol,
.ast-cart-drawer .quantity,
.ast-cart-drawer .quantity *,
.ast-cart-drawer .amount,
.ast-cart-drawer bdi,
.astra-cart-drawer .quantity,
.astra-cart-drawer .quantity *,
.astra-cart-drawer .amount,
.astra-cart-drawer bdi {
    color: #ffffff !important;
    font-size: 13px !important;
    display: inline !important;
}
.widget_shopping_cart_content .quantity,
.woocommerce-mini-cart .quantity,
.cart_list .quantity {
    display: block !important;
    margin-top: 6px !important;
    font-size: 13px !important;
    line-height: 1.5 !important;
}
/* Make sure ANY remaining text inside cart items is light */
.widget_shopping_cart_content .cart_list li,
.widget_shopping_cart_content .cart_list li *,
.woocommerce-mini-cart li,
.woocommerce-mini-cart li *,
.ast-cart-drawer .cart_list li *,
.astra-cart-drawer .cart_list li * {
    color: #ffffff !important;
}
/* Re-allow remove (×) red on hover to override the blanket white above */
.widget_shopping_cart_content .cart_list li a.remove:hover,
.woocommerce-mini-cart a.remove:hover { background: var(--gb-red) !important; color: #ffffff !important; }

/* ----- Side cart item layout: image | (title + qty/price) with remove × in line ----- */
.woocommerce-mini-cart .mini_cart_item,
.widget_shopping_cart_content ul.cart_list li,
.ast-cart-drawer ul.cart_list li,
.astra-cart-drawer ul.cart_list li {
    position: relative !important;
    display: grid !important;
    grid-template-columns: 70px 1fr 30px !important;
    grid-template-rows: auto auto !important;
    column-gap: 14px !important;
    row-gap: 4px !important;
    align-items: start !important;
    padding: 16px 18px !important;
    overflow: visible !important;
}
/* Item image */
.woocommerce-mini-cart .mini_cart_item img,
.widget_shopping_cart_content ul.cart_list li img,
.ast-cart-drawer ul.cart_list li img,
.astra-cart-drawer ul.cart_list li img {
    grid-column: 1 !important;
    grid-row: 1 / span 2 !important;
    width: 70px !important;
    height: 70px !important;
    margin: 0 !important;
    float: none !important;
    object-fit: cover !important;
    border: 1px solid rgba(255,255,255,0.1) !important;
}
/* Product title link */
.woocommerce-mini-cart .mini_cart_item > a:not(.remove),
.widget_shopping_cart_content ul.cart_list li > a:not(.remove),
.ast-cart-drawer ul.cart_list li > a:not(.remove),
.astra-cart-drawer ul.cart_list li > a:not(.remove) {
    grid-column: 2 !important;
    grid-row: 1 !important;
    color: #ffffff !important;
    font-size: 14px !important;
    line-height: 1.4 !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
    text-overflow: clip !important;
    white-space: normal !important;
    word-break: break-word !important;
}
/* Quantity row (1 × $60.00) */
.woocommerce-mini-cart .mini_cart_item .quantity,
.widget_shopping_cart_content ul.cart_list li .quantity,
.ast-cart-drawer ul.cart_list li .quantity,
.astra-cart-drawer ul.cart_list li .quantity {
    grid-column: 2 !important;
    grid-row: 2 !important;
    display: block !important;
    color: #c9ccd2 !important;
    font-size: 13px !important;
    line-height: 1.4 !important;
    margin: 0 !important;
    padding: 0 !important;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    width: auto !important;
    max-width: none !important;
}
/* Remove × button - place in 3rd column */
.woocommerce-mini-cart .mini_cart_item a.remove,
.widget_shopping_cart_content ul.cart_list li a.remove,
.ast-cart-drawer ul.cart_list li a.remove,
.astra-cart-drawer ul.cart_list li a.remove {
    position: static !important;
    grid-column: 3 !important;
    grid-row: 1 !important;
    width: 22px !important;
    height: 22px !important;
    line-height: 22px !important;
    font-size: 16px !important;
    text-align: center !important;
    border-radius: 50% !important;
    background: rgba(255,255,255,0.12) !important;
    color: #ffffff !important;
    text-decoration: none !important;
    margin: 0 !important;
    align-self: start !important;
    justify-self: end !important;
    visibility: visible !important;
    opacity: 1 !important;
    display: inline-block !important;
}
.woocommerce-mini-cart .mini_cart_item a.remove:hover,
.widget_shopping_cart_content ul.cart_list li a.remove:hover {
    background: var(--gb-red) !important;
    color: #ffffff !important;
}

/* Reset any prior `display:inline` rule conflicts on .quantity that broke layout */
.woocommerce-mini-cart .mini_cart_item .quantity,
.widget_shopping_cart_content ul.cart_list li .quantity { display: block !important; }

/* Strip border / outline / pill-radius from item link wrapper (Astra adds a rounded border) */
.woocommerce-mini-cart .mini_cart_item > a,
.widget_shopping_cart_content ul.cart_list li > a,
.ast-cart-drawer ul.cart_list li > a,
.astra-cart-drawer ul.cart_list li > a,
.woocommerce-mini-cart .mini_cart_item a:not(.remove),
.widget_shopping_cart_content ul.cart_list li a:not(.remove) {
    border: none !important;
    outline: none !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    background: transparent !important;
}
.woocommerce-mini-cart .mini_cart_item > a:focus,
.widget_shopping_cart_content ul.cart_list li > a:focus {
    outline: none !important;
    box-shadow: none !important;
}

/* Astra/Woo adds a circle/oval ring via a.remove::before — kill it */
.woocommerce-js a.remove:before,
.woocommerce-js a.remove::before,
.woocommerce a.remove:before,
.woocommerce a.remove::before,
a.remove:before,
a.remove::before,
.woocommerce-mini-cart a.remove:before,
.woocommerce-mini-cart a.remove::before,
.widget_shopping_cart_content a.remove:before,
.widget_shopping_cart_content a.remove::before {
    border: none !important;
    background: none !important;
    box-shadow: none !important;
    content: none !important;
    display: none !important;
}

/* Subtotal row */
.woocommerce.widget_shopping_cart .total,
.widget_shopping_cart_content .total,
.woocommerce-mini-cart__total,
p.woocommerce-mini-cart__total,
.woocommerce-mini-cart__buttons + .total,
.cart_list + .total {
    background: #000000 !important;
    color: #ffffff !important;
    padding: 16px !important;
    border-top: 1px solid rgba(255,255,255,0.12) !important;
    border-bottom: none !important;
    font-size: 14px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.08em !important;
}
.woocommerce.widget_shopping_cart .total strong,
.widget_shopping_cart_content .total strong,
.woocommerce-mini-cart__total strong { color: #ffffff !important; }

/* Remove (×) button on items */
.woocommerce-mini-cart .remove,
.widget_shopping_cart_content .remove,
a.remove,
li .remove_from_cart_button,
.cart_list a.remove {
    color: #ffffff !important;
    background: rgba(255,255,255,0.1) !important;
    border-radius: 50% !important;
    width: 20px !important;
    height: 20px !important;
    line-height: 20px !important;
    text-align: center !important;
    font-size: 14px !important;
}
.woocommerce-mini-cart .remove:hover,
a.remove:hover { background: var(--gb-red) !important; color: #ffffff !important; }

/* Empty cart message */
.woocommerce-mini-cart__empty-message,
.widget_shopping_cart_content p.woocommerce-mini-cart__empty-message {
    color: #c9ccd2 !important;
    text-align: center !important;
    padding: 40px 20px !important;
}

/* View Cart / Checkout buttons inside drawer */
.woocommerce-mini-cart__buttons,
.widget_shopping_cart_content .buttons,
.woocommerce.widget_shopping_cart .buttons {
    padding: 16px !important;
    background: #000000 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
}
.woocommerce-mini-cart__buttons .button,
.widget_shopping_cart_content .buttons .button,
.woocommerce-mini-cart__buttons a.button {
    background: var(--gb-red) !important;
    background-color: var(--gb-red) !important;
    color: #ffffff !important;
    border: none !important;
    padding: 14px 20px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
    font-weight: 600 !important;
    font-size: 13px !important;
    border-radius: 2px !important;
    text-align: center !important;
    margin: 0 !important;
    width: 100% !important;
    display: block !important;
}
.woocommerce-mini-cart__buttons .button:hover,
.widget_shopping_cart_content .buttons .button:hover {
    background: #b03030 !important;
    color: #ffffff !important;
}
.woocommerce-mini-cart__buttons .checkout,
.widget_shopping_cart_content .buttons .checkout {
    background: var(--gb-red) !important;
    color: #ffffff !important;
}

/* Astra cart drawer body wrapper */
.ast-cart-drawer-content,
.astra-cart-drawer-content,
.ast-cart-drawer-content-top,
.ast-cart-drawer-content-middle,
.ast-cart-drawer-content-bottom,
.astra-cart-drawer-content-top,
.astra-cart-drawer-content-middle,
.astra-cart-drawer-content-bottom {
    background: #0a0a0a !important;
    color: #ffffff !important;
}

/* Drawer overlay (dim background) */
.ast-cart-drawer-overlay,
.astra-cart-drawer-overlay {
    background: rgba(0,0,0,0.7) !important;
}

/* Product thumbnail wrapper */
.woocommerce-mini-cart__item img,
ul.cart_list li img,
ul.product_list_widget li img {
    border: 1px solid rgba(255,255,255,0.1) !important;
    background: #ffffff !important;
}

