/**
 * Kinetic Matrix — Dark Theme Design System
 * New Day Budgeting (newdaybudgeting.com)
 * Overrides Astra + Elementor to enforce a dark, circuit-board aesthetic.
 */

/* ============================================================
   CSS Custom Properties
   ============================================================ */
:root {
    /* NDB Kinetic Matrix tokens */
    --ndb-surface: #0e0e0e;
    --ndb-surface-low: #131313;
    --ndb-surface-mid: #1a1919;
    --ndb-surface-high: #262626;
    --ndb-primary: #a0ffc3;
    --ndb-primary-container: #00fc9b;
    --ndb-secondary: #39ff14;
    --ndb-on-surface: #e0e0e0;
    --ndb-on-surface-variant: #adaaaa;
    --ndb-ghost-border: rgba(160, 255, 195, 0.15);
    --ndb-glow: rgba(160, 255, 195, 0.1);
    --ndb-error: #ff4444;

    /* Override ALL Astra light-colored CSS variables */
    --ast-code-block-background: #1a1919 !important;
    --ast-comment-inputs-background: #131313 !important;
    --ast-bg-style-guide: #131313 !important;
    --ast-global-dark-bg-style: #0e0e0e !important;
    --ast-global-dark-lfs: #131313 !important;
    --ast-widget-bg-color: #131313 !important;
    --ast-wc-container-head-bg-color: #1a1919 !important;
    --ast-title-layout-bg: #1a1919 !important;
    --ast-search-border-color: rgba(160, 255, 195, 0.15) !important;
    --ast-lifter-hover-bg: #262626 !important;
    --ast-gallery-block-color: #e0e0e0 !important;
    --ast-border-color: rgba(160, 255, 195, 0.15) !important;
}

/* ============================================================
   Override Elementor-injected style block (from _elementor_data)
   These rules have !important so we need body-prefixed selectors
   ============================================================ */

/* Kill ALL rogue button styles from Elementor */
body .elementor-section .elementor-button,
body .elementor .elementor-section .elementor-button,
body .elementor .sticky .elementor-section .elementor-button,
body.elementor-page .elementor-section .elementor-button {
    background: linear-gradient(135deg, #a0ffc3, #39ff14) !important;
    background-color: transparent !important;
    color: #0e0e0e !important;
    border: none !important;
    border-color: transparent !important;
}
body .elementor-section .elementor-button:hover,
body .elementor .elementor-section .elementor-button:hover,
body .elementor .sticky .elementor-section .elementor-button:hover,
body.elementor-page .elementor-section .elementor-button:hover {
    background: linear-gradient(135deg, #00fc9b, #a0ffc3) !important;
    background-color: transparent !important;
    color: #0e0e0e !important;
    border: none !important;
    border-color: transparent !important;
    box-shadow: 0 0 20px rgba(160, 255, 195, 0.3) !important;
}

/* Kill mobile menu BLACK text — must be light on dark */
@media (max-width: 1024px) {
    body .sticky .elementskit-navbar-nav-default.elementskit-menu-offcanvas-elements .elementskit-navbar-nav > li > a,
    body .sticky .elementskit-navbar-nav-default.elementskit-menu-offcanvas-elements .elementskit-navbar-nav > li ul li a,
    body .sticky .elementskit-navbar-nav-default.elementskit-menu-offcanvas-elements .elementskit-navbar-nav > li > a:hover,
    body .elementskit-navbar-nav-default.elementskit-menu-offcanvas-elements .elementskit-navbar-nav > li > a,
    body .elementskit-navbar-nav-default.elementskit-menu-offcanvas-elements .elementskit-navbar-nav > li ul li a {
        color: #e0e0e0 !important;
    }
    body .elementskit-navbar-nav-default.elementskit-menu-offcanvas-elements {
        background: #131313 !important;
    }
    body .elementor .sticky .elementskit-menu-hamburger > .ekit-menu-icon {
        color: #a0ffc3 !important;
    }
}

/* ============================================================
   Selection / Highlight
   ============================================================ */
::selection {
    background: var(--ndb-primary);
    color: var(--ndb-surface);
}
::-moz-selection {
    background: var(--ndb-primary);
    color: var(--ndb-surface);
}

/* ============================================================
   Scrollbar
   ============================================================ */
::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}
::-webkit-scrollbar-track {
    background: var(--ndb-surface-low);
}
::-webkit-scrollbar-thumb {
    background: var(--ndb-surface-high);
    border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
    background: var(--ndb-primary);
}
/* Firefox */
* {
    scrollbar-width: thin;
    scrollbar-color: var(--ndb-surface-high) var(--ndb-surface-low);
}

/* ============================================================
   Body & HTML — Global Foundation
   ============================================================ */
html,
body,
body.flavor-flavor {
    background-color: var(--ndb-surface) !important;
    color: var(--ndb-on-surface-variant) !important;
    font-family: 'Manrope', sans-serif !important;
}
/* Override Astra's body font-family rule */
body, body button, body input, body select, body textarea,
body .ast-button, body .ast-custom-button {
    font-family: 'Manrope', sans-serif !important;
    color: var(--ndb-on-surface-variant) !important;
}

/* ============================================================
   All Headings — override Astra's Merriweather
   ============================================================ */
h1, h2, h3, h4, h5, h6,
.entry-title, .entry-title a,
.page-title,
.widget-title, .widget .wp-block-heading,
.elementor-heading-title,
.ast-archive-title,
.entry-content h1, .entry-content h2, .entry-content h3,
.entry-content h4, .entry-content h5, .entry-content h6,
.entry-content :where(h1,h2,h3,h4,h5,h6),
.entry-content :where(h1,h2,h3,h4,h5,h6) a,
.site-title, .site-title a {
    font-family: 'Space Grotesk', sans-serif !important;
    color: var(--ndb-on-surface) !important;
    font-weight: 700 !important;
}

/* ============================================================
   Links
   ============================================================ */
a {
    color: var(--ndb-primary);
    transition: color 0.2s ease;
}
a:hover,
a:focus {
    color: var(--ndb-primary-container);
}

/* ============================================================
   Paragraphs & Generic Text
   ============================================================ */
p,
li,
td,
th,
span,
div,
label,
.entry-content,
.ast-single-post-order {
    color: var(--ndb-on-surface-variant);
}

/* ============================================================
   Astra Header (#masthead)
   ============================================================ */
#masthead,
.ast-primary-header-bar,
.main-header-bar,
.ast-header-break-point .main-header-bar,
.main-header-bar-wrap,
.ast-header-break-point .ast-mobile-header-wrap .ast-primary-header-bar,
.ast-primary-header-bar .ast-builder-layout-element,
.ast-above-header-bar,
.ast-below-header-bar,
header.site-header {
    background-color: var(--ndb-surface) !important;
    border-bottom: 1px solid var(--ndb-ghost-border) !important;
}

/* Header nav links */
.main-header-menu a,
.main-navigation a,
.ast-header-break-point .main-navigation ul li a,
.main-header-menu .menu-item > a,
.ast-builder-menu .menu-item > a,
.ast-header-sections-navigation a,
.ast-builder-layout-element a,
.ast-header-account-wrap a,
.main-header-bar .ast-masthead-custom-menu-items a,
.ast-header-break-point .main-header-bar .ast-masthead-custom-menu-items a {
    color: var(--ndb-on-surface) !important;
}
.main-header-menu a:hover,
.main-navigation a:hover,
.main-header-menu .menu-item > a:hover,
.ast-builder-menu .menu-item > a:hover,
.main-header-menu .current-menu-item > a,
.main-header-menu .current-menu-ancestor > a,
.ast-builder-menu .current-menu-item > a {
    color: var(--ndb-primary) !important;
}

/* Sub menus / dropdown */
.main-header-menu .sub-menu,
.ast-builder-menu .sub-menu,
.main-navigation .sub-menu,
.ast-desktop-header-content .sub-menu {
    background-color: var(--ndb-surface-low) !important;
    border: 1px solid var(--ndb-ghost-border) !important;
}
.main-header-menu .sub-menu a,
.ast-builder-menu .sub-menu a {
    color: var(--ndb-on-surface-variant) !important;
}
.main-header-menu .sub-menu a:hover,
.ast-builder-menu .sub-menu a:hover {
    color: var(--ndb-primary) !important;
    background-color: var(--ndb-surface-high) !important;
}

/* ElementsKit header is hidden — replaced by custom ndb-header in functions.php */

/* Mobile hamburger menu */
.ast-header-break-point .ast-mobile-menu-buttons-minimal .menu-toggle,
.ast-mobile-menu-trigger-minimal,
.ast-button-wrap .menu-toggle,
.ast-header-break-point .menu-toggle {
    color: var(--ndb-primary) !important;
}
.ast-header-break-point .menu-toggle .ast-mobile-svg {
    fill: var(--ndb-primary) !important;
}

/* Mobile menu panel */
.ast-mobile-popup-drawer .ast-mobile-popup-inner,
.ast-mobile-header-content,
.ast-mobile-popup-content,
.ast-header-break-point .main-header-bar-navigation,
.ast-header-break-point .main-navigation ul {
    background-color: var(--ndb-surface-low) !important;
}
.ast-header-break-point .main-navigation ul li a,
.ast-mobile-popup-content a,
.ast-mobile-header-content a {
    color: var(--ndb-on-surface) !important;
    border-bottom-color: var(--ndb-ghost-border) !important;
}
.ast-header-break-point .main-navigation ul li a:hover,
.ast-mobile-popup-content a:hover {
    color: var(--ndb-primary) !important;
}

/* ============================================================
   Site Content Area
   ============================================================ */
#content,
.site-content,
.ast-container,
.ast-separate-container .ast-article-post,
.ast-separate-container .ast-article-single,
.ast-separate-container .ast-comment-list li,
.ast-separate-container .comment-respond,
.ast-separate-container .ast-woocommerce-container,
.ast-plain-container,
#primary,
#secondary,
.site-main,
article.post,
article.page {
    background-color: var(--ndb-surface) !important;
}

/* Astra separate-container box style (if enabled) */
.ast-separate-container .ast-article-single:not(.ast-related-post),
.ast-separate-container .comments-area {
    background-color: var(--ndb-surface-low) !important;
    border: 1px solid var(--ndb-ghost-border) !important;
}

/* ============================================================
   Elementor Sections
   ============================================================ */
.elementor-section,
.elementor-section-wrap > .elementor-section,
.elementor-top-section,
.elementor-inner-section,
.elementor-section.elementor-section-boxed > .elementor-container,
.e-con,
.e-con-inner {
    background-color: var(--ndb-surface) !important;
}

/* Override Elementor sections that explicitly set light backgrounds */
.elementor-section[data-settings],
section.elementor-section {
    background-color: var(--ndb-surface) !important;
}
.elementor-section-wrap > .elementor-section:nth-child(even) {
    background-color: var(--ndb-surface-low) !important;
}

/* Elementor column/widget wrappers — only override white backgrounds */
.elementor-widget-wrap,
.elementor-column-wrap,
.elementor-element {
    background-color: transparent !important;
}

/* ============================================================
   Elementor Widget Text
   ============================================================ */
.elementor-widget-text-editor,
.elementor-text-editor,
.elementor-text-editor p,
.elementor-widget-text-editor p,
.elementor-widget .elementor-text-editor {
    color: var(--ndb-on-surface-variant) !important;
}

.elementor-heading-title {
    color: var(--ndb-on-surface) !important;
    font-family: 'Space Grotesk', sans-serif !important;
}

/* ============================================================
   Elementor Icon Boxes
   ============================================================ */
.elementor-icon-box-wrapper .elementor-icon,
.elementor-icon-box-wrapper .elementor-icon i,
.elementor-icon-box-wrapper .elementor-icon svg {
    color: var(--ndb-primary) !important;
    fill: var(--ndb-primary) !important;
}
.elementor-icon-box-wrapper .elementor-icon-box-title,
.elementor-icon-box-wrapper .elementor-icon-box-title a {
    color: var(--ndb-on-surface) !important;
}
.elementor-icon-box-wrapper .elementor-icon-box-description {
    color: var(--ndb-on-surface-variant) !important;
}

/* ============================================================
   Elementor Image Boxes
   ============================================================ */
.elementor-image-box-wrapper .elementor-image-box-title {
    color: var(--ndb-on-surface) !important;
    font-family: 'Space Grotesk', sans-serif !important;
}
.elementor-image-box-wrapper .elementor-image-box-description {
    color: var(--ndb-on-surface-variant) !important;
}

/* ============================================================
   Elementor Counter / Progress / Testimonial
   ============================================================ */
.elementor-counter-number-wrapper,
.elementor-counter-title {
    color: var(--ndb-primary) !important;
    font-family: 'Space Grotesk', sans-serif !important;
}
.elementor-progress-wrapper {
    background-color: var(--ndb-surface-high) !important;
}
.elementor-progress-bar {
    background: linear-gradient(135deg, var(--ndb-primary), var(--ndb-secondary)) !important;
}
.elementor-testimonial-content,
.elementor-testimonial-name {
    color: var(--ndb-on-surface) !important;
}
.elementor-testimonial-job {
    color: var(--ndb-on-surface-variant) !important;
}

/* ============================================================
   Elementor Tabs / Accordion / Toggle
   ============================================================ */
.elementor-tab-title,
.elementor-toggle-title {
    color: var(--ndb-on-surface) !important;
    font-family: 'Space Grotesk', sans-serif !important;
}
.elementor-tab-title.elementor-active,
.elementor-toggle-title.elementor-active {
    color: var(--ndb-primary) !important;
}
.elementor-tab-content,
.elementor-toggle-content {
    background-color: var(--ndb-surface-low) !important;
    color: var(--ndb-on-surface-variant) !important;
    border-color: var(--ndb-ghost-border) !important;
}
.elementor-tabs-wrapper,
.elementor-tab-title {
    border-color: var(--ndb-ghost-border) !important;
}

/* ============================================================
   Buttons — All Types
   ============================================================ */
.elementor-button,
.ast-button,
.button,
.wp-block-button__link,
button[type="submit"],
input[type="submit"],
.ast-custom-button,
.menu-toggle,
.ast-menu-toggle,
.elementor-button-wrapper .elementor-button,
.ast-header-break-point .ast-mobile-menu-buttons-fill .menu-toggle {
    background: linear-gradient(135deg, var(--ndb-primary), var(--ndb-secondary)) !important;
    color: #0e0e0e !important;
    border: none !important;
    border-radius: 0.375rem !important;
    font-family: 'Space Grotesk', sans-serif !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.05em !important;
    transition: all 0.3s ease !important;
}
.elementor-button:hover,
.ast-button:hover,
.button:hover,
.wp-block-button__link:hover,
button[type="submit"]:hover,
input[type="submit"]:hover,
.ast-custom-button:hover,
.elementor-button-wrapper .elementor-button:hover {
    box-shadow: 0 0 20px rgba(160, 255, 195, 0.3) !important;
    transform: translateY(-2px) !important;
    color: #0e0e0e !important;
}

/* Override rogue Elementor-embedded button styles (FFB100/2C5F2D from _elementor_data) */
body .elementor-section .elementor-button,
body .elementor .elementor-section .elementor-button,
body .elementor .sticky .elementor-section .elementor-button,
body .elementor-section .elementor-button:hover,
body .elementor .elementor-section .elementor-button:hover,
body .elementor .sticky .elementor-section .elementor-button:hover {
    background: linear-gradient(135deg, var(--ndb-primary), var(--ndb-secondary)) !important;
    background-color: transparent !important;
    color: #0e0e0e !important;
    border: none !important;
    border-color: transparent !important;
    border-radius: 0.375rem !important;
    font-family: 'Space Grotesk', sans-serif !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.05em !important;
}
body .elementor-section .elementor-button:hover,
body .elementor .elementor-section .elementor-button:hover,
body .elementor .sticky .elementor-section .elementor-button:hover {
    box-shadow: 0 0 20px rgba(160, 255, 195, 0.3) !important;
    transform: translateY(-2px) !important;
}

/* Button text color (Elementor inner span) */
body .elementor-button .elementor-button-text,
body .elementor-button .elementor-button-icon,
body .elementor-button .elementor-button-content-wrapper {
    color: #0e0e0e !important;
}
body .elementor-button .elementor-button-icon svg {
    fill: #0e0e0e !important;
}

/* ============================================================
   Pricing Tables
   ============================================================ */
.elementor-price-table,
.elementor-widget-price-table .elementor-price-table {
    background-color: var(--ndb-surface-high) !important;
    border: 1px solid var(--ndb-ghost-border) !important;
    border-radius: 0.75rem !important;
}
.elementor-price-table__heading,
.elementor-price-table__subheading {
    color: var(--ndb-on-surface) !important;
    font-family: 'Space Grotesk', sans-serif !important;
}
.elementor-price-table__price,
.elementor-price-table__integer-part,
.elementor-price-table__currency,
.elementor-price-table__fractional-part {
    color: var(--ndb-primary) !important;
    font-family: 'Space Grotesk', sans-serif !important;
}
.elementor-price-table__period {
    color: var(--ndb-on-surface-variant) !important;
}
.elementor-price-table__features-list,
.elementor-price-table__feature-inner {
    color: var(--ndb-on-surface-variant) !important;
}
.elementor-price-table__features-list li {
    border-bottom-color: var(--ndb-ghost-border) !important;
}
.elementor-price-table__header {
    background-color: var(--ndb-surface-mid) !important;
    border-bottom: 1px solid var(--ndb-ghost-border) !important;
}
.elementor-price-table__ribbon {
    background: linear-gradient(135deg, var(--ndb-primary), var(--ndb-secondary)) !important;
    color: var(--ndb-surface) !important;
}

/* ============================================================
   Footer
   ============================================================ */
#colophon,
.site-footer,
.ast-footer-overlay,
footer.site-footer,
.ast-footer,
.ast-small-footer,
.ast-small-footer .ast-container,
.ast-footer-copyright,
.ast-builder-footer-grid-columns,
.site-below-footer-wrap,
.site-above-footer-wrap,
.ast-above-footer,
.ast-below-footer,
.ast-footer-row-inline,
.ast-footer-row-stack,
footer .ast-builder-layout-element {
    background-color: var(--ndb-surface-low) !important;
    color: var(--ndb-on-surface-variant) !important;
    border-top: 1px solid var(--ndb-ghost-border) !important;
}
.site-footer .widget-title,
.ast-footer .widget-title,
footer h1, footer h2, footer h3, footer h4, footer h5, footer h6 {
    color: var(--ndb-primary) !important;
    font-family: 'Space Grotesk', sans-serif !important;
}
.site-footer a,
footer a,
.ast-footer a,
.ast-small-footer a,
.site-below-footer-wrap a,
.ast-footer-copyright a {
    color: var(--ndb-on-surface-variant) !important;
}
.site-footer a:hover,
footer a:hover,
.ast-footer a:hover,
.ast-small-footer a:hover {
    color: var(--ndb-primary) !important;
}

/* Footer copyright text */
.ast-footer-copyright p,
.ast-small-footer p,
.site-below-footer-wrap p {
    color: var(--ndb-on-surface-variant) !important;
}

/* ============================================================
   Widgets
   ============================================================ */
.widget,
.widget-area {
    background: transparent !important;
    color: var(--ndb-on-surface-variant) !important;
}
.widget-title,
.widgettitle {
    color: var(--ndb-primary) !important;
    font-family: 'Space Grotesk', sans-serif !important;
}

/* ============================================================
   Sidebar
   ============================================================ */
.ast-separate-container #secondary {
    background-color: var(--ndb-surface) !important;
}
.ast-separate-container #secondary .widget {
    background-color: var(--ndb-surface-low) !important;
    border: 1px solid var(--ndb-ghost-border) !important;
    border-radius: 0.5rem;
}

/* ============================================================
   RevSlider Overrides
   ============================================================ */
.rev_slider_wrapper,
.rev_slider,
rs-module-wrap,
rs-module {
    background-color: var(--ndb-surface) !important;
}

/* ============================================================
   Forms (MetForm, Contact Form, etc.)
   ============================================================ */
input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="number"],
input[type="tel"],
input[type="date"],
input[type="month"],
input[type="week"],
input[type="time"],
input[type="datetime"],
input[type="datetime-local"],
input[type="color"],
textarea,
select,
.mf-input,
.mf-textarea,
.metform-input,
.elementor-field-textual,
.elementor-field-type-text input,
.elementor-field-type-email input,
.elementor-field-type-textarea textarea {
    background-color: var(--ndb-surface) !important;
    border: 1px solid var(--ndb-ghost-border) !important;
    color: var(--ndb-on-surface) !important;
    border-radius: 0.375rem !important;
    font-family: 'Manrope', sans-serif !important;
    transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
}
input[type="text"]:focus,
input[type="email"]:focus,
input[type="url"]:focus,
input[type="password"]:focus,
input[type="search"]:focus,
input[type="number"]:focus,
input[type="tel"]:focus,
textarea:focus,
select:focus,
.mf-input:focus,
.mf-textarea:focus,
.elementor-field-textual:focus {
    border-color: var(--ndb-primary) !important;
    box-shadow: 0 0 8px var(--ndb-glow) !important;
    outline: none !important;
}
label,
.elementor-field-label,
.mf-label {
    color: var(--ndb-on-surface-variant) !important;
}

/* Placeholder text */
::placeholder {
    color: var(--ndb-on-surface-variant) !important;
    opacity: 0.6 !important;
}

/* ============================================================
   WordPress Blocks (Gutenberg)
   ============================================================ */
.wp-block-group,
.wp-block-column,
.wp-block-cover,
.wp-block-media-text {
    background-color: var(--ndb-surface) !important;
}
.wp-block-separator,
.wp-block-spacer {
    border-color: var(--ndb-ghost-border) !important;
}
.wp-block-quote,
blockquote {
    border-left-color: var(--ndb-primary) !important;
    background-color: var(--ndb-surface-low) !important;
    color: var(--ndb-on-surface-variant) !important;
    padding: 1rem 1.5rem !important;
    border-radius: 0 0.5rem 0.5rem 0 !important;
}
.wp-block-quote cite,
blockquote cite {
    color: var(--ndb-on-surface-variant) !important;
}
.wp-block-table table {
    border-color: var(--ndb-ghost-border) !important;
}
.wp-block-table th {
    background-color: var(--ndb-surface-high) !important;
    color: var(--ndb-on-surface) !important;
    border-color: var(--ndb-ghost-border) !important;
}
.wp-block-table td {
    border-color: var(--ndb-ghost-border) !important;
    color: var(--ndb-on-surface-variant) !important;
}
.wp-block-code,
code,
pre {
    background-color: var(--ndb-surface-high) !important;
    color: var(--ndb-primary) !important;
    border: 1px solid var(--ndb-ghost-border) !important;
    border-radius: 0.375rem !important;
}
.wp-block-pullquote {
    border-color: var(--ndb-primary) !important;
}
.wp-block-pullquote blockquote p {
    color: var(--ndb-on-surface) !important;
}

/* ============================================================
   Circuit Board Decorative Borders
   ============================================================ */
.elementor-section.elementor-section-boxed > .elementor-container,
.ndb-pseo-article {
    position: relative;
}

.site-main > article::after,
.ndb-archive-header::after {
    content: '';
    display: block;
    height: 2px;
    background: linear-gradient(90deg, transparent, var(--ndb-primary), var(--ndb-primary-container), var(--ndb-primary), transparent);
    margin: 2rem 0;
    opacity: 0.5;
}

/* ============================================================
   Scroll to Top
   ============================================================ */
.wpfront-scroll-top,
.ast-scroll-to-top-right,
.ast-scroll-to-top-left,
#ast-scroll-top {
    background-color: var(--ndb-primary) !important;
    color: var(--ndb-surface) !important;
    border: none !important;
}
#ast-scroll-top svg {
    fill: var(--ndb-surface) !important;
}

/* ============================================================
   Comments Area
   ============================================================ */
.comments-area,
.comment-body,
.comment-respond {
    background-color: var(--ndb-surface-low) !important;
    color: var(--ndb-on-surface-variant) !important;
}
.comment-author .fn,
.comment-author .fn a {
    color: var(--ndb-on-surface) !important;
}
.comment-metadata a {
    color: var(--ndb-on-surface-variant) !important;
}

/* ============================================================
   WooCommerce (if used)
   ============================================================ */
.woocommerce .product,
.woocommerce-page .product,
.woocommerce ul.products li.product {
    background-color: var(--ndb-surface-low) !important;
    border: 1px solid var(--ndb-ghost-border) !important;
}
.woocommerce ul.products li.product .price,
.woocommerce div.product p.price,
.woocommerce div.product span.price {
    color: var(--ndb-primary) !important;
}

/* ============================================================
   Search Results
   ============================================================ */
.search-results .ast-article-post,
.search-results article {
    background-color: var(--ndb-surface-low) !important;
    border: 1px solid var(--ndb-ghost-border) !important;
    border-radius: 0.5rem;
    margin-bottom: 1rem;
    padding: 1.5rem;
}

/* ============================================================
   404 Page
   ============================================================ */
.error-404 {
    color: var(--ndb-on-surface-variant) !important;
}

/* ============================================================
   Blog / Archive Lists
   ============================================================ */
.ast-separate-container .ast-article-post {
    background-color: var(--ndb-surface-low) !important;
    border: 1px solid var(--ndb-ghost-border) !important;
}
.ast-separate-container .ast-article-post:hover {
    border-color: var(--ndb-primary) !important;
}
.entry-meta,
.entry-meta a,
.entry-meta span,
.post-date,
.cat-links a,
.tags-links a,
.comments-link a,
.posted-on a,
.byline a {
    color: var(--ndb-on-surface-variant) !important;
}
.entry-meta a:hover,
.cat-links a:hover,
.tags-links a:hover {
    color: var(--ndb-primary) !important;
}
.ast-blog-single-element.ast-taxonomy-container a {
    color: var(--ndb-primary) !important;
    border: 1px solid var(--ndb-ghost-border) !important;
    background-color: var(--ndb-surface-high) !important;
}

/* ============================================================
   Breadcrumbs (Astra / Yoast / Rank Math)
   ============================================================ */
.ast-breadcrumbs-wrapper,
.ast-breadcrumbs,
.breadcrumb,
.rank-math-breadcrumb,
#breadcrumbs {
    background-color: transparent !important;
    color: var(--ndb-on-surface-variant) !important;
}
.ast-breadcrumbs-wrapper a,
.breadcrumb a,
.rank-math-breadcrumb a,
#breadcrumbs a {
    color: var(--ndb-primary) !important;
}

/* ============================================================
   Pagination (WordPress default)
   ============================================================ */
.nav-links a,
.page-numbers,
.ast-pagination a {
    color: var(--ndb-on-surface) !important;
    border: 1px solid var(--ndb-ghost-border) !important;
    background-color: var(--ndb-surface) !important;
}
.nav-links a:hover,
.ast-pagination a:hover {
    border-color: var(--ndb-primary) !important;
    color: var(--ndb-primary) !important;
}
.page-numbers.current,
.ast-pagination .current {
    background-color: var(--ndb-primary) !important;
    border-color: var(--ndb-primary) !important;
    color: var(--ndb-surface) !important;
}

/* ============================================================
   Elementor Social Icons
   ============================================================ */
.elementor-social-icon {
    background-color: var(--ndb-surface-high) !important;
    color: var(--ndb-primary) !important;
}
.elementor-social-icon:hover {
    background-color: var(--ndb-primary) !important;
    color: var(--ndb-surface) !important;
}
.elementor-social-icon i {
    color: inherit !important;
}

/* ============================================================
   Elementor Divider
   ============================================================ */
.elementor-divider-separator {
    border-color: var(--ndb-ghost-border) !important;
}

/* ============================================================
   Elementor Alert
   ============================================================ */
.elementor-alert {
    background-color: var(--ndb-surface-high) !important;
    border-color: var(--ndb-ghost-border) !important;
    color: var(--ndb-on-surface) !important;
}

/* ============================================================
   Astra Specific: Override Elementor Inline Backgrounds
   We catch inline-styled sections with broad selectors.
   ============================================================ */
/* Override Elementor inline light backgrounds */
body .elementor-section[style*="background-color"],
body .elementor-column[style*="background-color"],
body .e-con[style*="background-color"] {
    background-color: var(--ndb-surface) !important;
}
/* Keep intentional dark backgrounds but override white/light */
body .elementor-section[style*="background-color: #fff"],
body .elementor-section[style*="background-color: #FFF"],
body .elementor-section[style*="background-color:#fff"],
body .elementor-section[style*="background-color:#FFF"],
body .elementor-section[style*="background-color: rgb(255"],
body .elementor-section[style*="background-color: #f"],
body .elementor-section[style*="background-color:#f"],
body .elementor-section[style*="background-color: #e"],
body .elementor-section[style*="background-color:#e"],
body .elementor-section[style*="background-color: #d"],
body .elementor-section[style*="background-color:#d"],
body .e-con[style*="background-color: #fff"],
body .e-con[style*="background-color:#fff"],
body .e-con[style*="background-color: #FFF"],
body .e-con[style*="background-color:#FFF"] {
    background-color: var(--ndb-surface) !important;
}
/* Elementor widget/column text forced to light on dark */
body .elementor-section[style*="background-color"] .elementor-widget-text-editor,
body .elementor-section[style*="background-color"] .elementor-text-editor p,
body .elementor-section[style*="background-color"] .elementor-heading-title,
body .e-con[style*="background-color"] .elementor-widget-text-editor,
body .e-con[style*="background-color"] .elementor-text-editor p,
body .e-con[style*="background-color"] .elementor-heading-title {
    color: var(--ndb-on-surface) !important;
}

/* Ensure no white leaks through container backgrounds */
.ast-plain-container .site-content > .ast-container,
.ast-page-builder-template .site-content > .ast-container {
    background-color: var(--ndb-surface) !important;
}

/* ============================================================
   Elementor Popup
   ============================================================ */
.elementor-popup-modal .dialog-widget-content {
    background-color: var(--ndb-surface-mid) !important;
    border: 1px solid var(--ndb-ghost-border) !important;
    backdrop-filter: blur(24px) !important;
    -webkit-backdrop-filter: blur(24px) !important;
}
.elementor-popup-modal .dialog-close-button {
    color: var(--ndb-on-surface) !important;
}

/* ============================================================
   Glassmorphism Utility (for floating elements)
   ============================================================ */
.ndb-glass {
    background: rgba(26, 25, 25, 0.7) !important;
    backdrop-filter: blur(24px) !important;
    -webkit-backdrop-filter: blur(24px) !important;
    border: 1px solid var(--ndb-ghost-border) !important;
}

/* ============================================================
   Mobile Responsive — Dark Backgrounds Persist
   ============================================================ */
@media (max-width: 921px) {
    /* Astra mobile header */
    .ast-header-break-point .main-header-bar,
    .ast-header-break-point .ast-mobile-header-wrap,
    .ast-header-break-point .ast-mobile-header-stack {
        background-color: var(--ndb-surface) !important;
    }

    /* Mobile menu overlay */
    .ast-mobile-popup-drawer .ast-mobile-popup-overlay {
        background-color: rgba(14, 14, 14, 0.85) !important;
    }

    /* Ensure sections remain dark */
    .elementor-section {
        background-color: var(--ndb-surface) !important;
    }
}

@media (max-width: 544px) {
    /* Tiny screens — keep everything dark */
    body,
    #page,
    .site {
        background-color: var(--ndb-surface) !important;
    }
}

/* ============================================================
   Utility: Force Dark on Any Rogue White Backgrounds
   ============================================================ */
.site,
#page,
.ast-theme-transparent-header #masthead,
.ast-theme-transparent-header .main-header-bar {
    background-color: var(--ndb-surface) !important;
}

/* Catch Astra's inline background styles on body */
body.ast-separate-container,
body.ast-plain-container,
body.ast-page-builder-template {
    background-color: var(--ndb-surface) !important;
}

/* ============================================================
   HR / Horizontal Rules
   ============================================================ */
hr {
    border-color: var(--ndb-ghost-border) !important;
}

/* ============================================================
   Images — Add Subtle Glow on Hover
   ============================================================ */
.elementor-widget-image img:hover,
.wp-block-image img:hover {
    box-shadow: 0 0 20px var(--ndb-glow);
    transition: box-shadow 0.3s ease;
}

/* ============================================================
   Labels Utility
   ============================================================ */
.ndb-label {
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--ndb-on-surface-variant);
    font-family: 'Manrope', sans-serif;
}

/* ============================================================
   Neon Glow Card Utility
   ============================================================ */
.ndb-glow-card {
    background-color: var(--ndb-surface-high);
    border: 1px solid var(--ndb-ghost-border);
    border-radius: 0.75rem;
    transition: all 0.3s ease;
}
.ndb-glow-card:hover {
    box-shadow: 0 0 20px var(--ndb-glow);
    border-color: var(--ndb-primary);
}

/* ============================================================
   Override Any Remaining White Text on Dark Backgrounds
   ============================================================ */
.elementor-widget-heading .elementor-heading-title {
    color: var(--ndb-on-surface) !important;
}

/* Strong / bold text */
strong, b {
    color: var(--ndb-on-surface);
}

/* ============================================================
   Astra Transparent Header Override
   ============================================================ */
.ast-theme-transparent-header .main-header-bar,
.ast-theme-transparent-header #masthead {
    background-color: var(--ndb-surface) !important;
}

/* ============================================================
   Additional Elementor Container Overrides
   ============================================================ */
.e-con,
.e-con-inner,
.e-parent,
.e-child {
    --background-color: var(--ndb-surface) !important;
}
