:root {
  --zap-black: #080808;
  --zap-charcoal: #0e0e0e;
  --zap-line: #1c1c1c;
  --zap-gold: #d4a843;
  --zap-gold-pale: #e4be68;
  --zap-white: #f8f4ef;
  --zap-muted: #8b8a87;
}

/* GLOBAL RESET & TYPOGRAPHY */
body, html {
    background-color: var(--zap-black) !important;
    color: var(--zap-white) !important;
    font-family: 'Outfit', -apple-system, BlinkMacSystemFont, sans-serif !important;
}

h1, h2, h3, h4, h5, h6, 
.elementor-heading-title, 
.pmpro_level-title,
.pmpro_checkout-fields legend,
.pmpro_invoice-h3 {
    font-family: 'Playfair Display', serif !important;
    color: var(--zap-white) !important;
}

a {
    color: var(--zap-gold);
    text-decoration: none;
    transition: color 0.3s ease;
}

a:hover {
    color: var(--zap-gold-pale);
}

/* OVERRIDE ELEMENTOR DEFAULT BACKGROUNDS */
.elementor-page, .elementor-section-wrap, .elementor-section {
    background-color: transparent !important;
}

/* OVERRIDE ASTRA HEADER/FOOTER */
.ast-primary-header-bar, .site-header, .site-footer, .ast-footer-wrapper {
    background-color: var(--zap-black) !important;
    border-color: var(--zap-line) !important;
}

/* BUTTONS */
.elementor-button, .pmpro_btn, .pmpro_btn-submit, input[type="submit"] {
    background-color: var(--zap-gold) !important;
    color: var(--zap-black) !important;
    font-family: 'Outfit', sans-serif !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 2px !important;
    font-size: 11px !important;
    padding: 15px 40px !important;
    border: none !important;
    border-radius: 4px !important;
    transition: all 0.3s ease !important;
}

.elementor-button:hover, .pmpro_btn:hover, input[type="submit"]:hover {
    background-color: var(--zap-gold-pale) !important;
    transform: translateY(-1px) !important;
}

/* PAID MEMBERSHIPS PRO (PMPRO) REDESIGN */

/* PMPro Cards / Containers */
#pmpro_levels, .pmpro_checkout, #pmpro_account {
    max-width: 1000px;
    margin: 0 auto;
    padding: 40px 0;
}

/* PMPro Membership Levels */
.pmpro_level {
    background: var(--zap-charcoal) !important;
    border: 1px solid var(--zap-line) !important;
    padding: 40px !important;
    margin-bottom: 24px !important;
    transition: border-color 0.3s ease !important;
    border-radius: 8px !important;
}
.pmpro_level:hover {
    border-color: var(--zap-gold) !important;
}

.pmpro_level-price {
    font-family: 'Playfair Display', serif !important;
    font-size: 32px !important;
    color: var(--zap-gold) !important;
    margin: 20px 0 !important;
}

/* PMPro Checkout Forms */
.pmpro_checkout-fields {
    background: var(--zap-charcoal) !important;
    border: 1px solid var(--zap-line) !important;
    padding: 30px !important;
    border-radius: 8px !important;
    margin-bottom: 24px !important;
}

/* Form Inputs */
.pmpro_checkout-fields input[type="text"],
.pmpro_checkout-fields input[type="password"],
.pmpro_checkout-fields input[type="email"],
.pmpro_checkout-fields select {
    background: rgba(255, 255, 255, 0.04) !important;
    border: 1px solid var(--zap-line) !important;
    color: var(--zap-white) !important;
    padding: 14px 18px !important;
    font-family: 'Outfit', sans-serif !important;
    border-radius: 4px !important;
    width: 100% !important;
    margin-bottom: 12px !important;
}

.pmpro_checkout-fields input:focus,
.pmpro_checkout-fields select:focus {
    border-color: var(--zap-gold) !important;
    outline: none !important;
}

/* Tables (Invoices, Account) */
.pmpro_table {
    width: 100% !important;
    border-collapse: collapse !important;
    margin-top: 24px !important;
}

.pmpro_table th {
    text-align: left !important;
    padding: 16px !important;
    background: var(--zap-charcoal) !important;
    color: var(--zap-gold) !important;
    font-family: 'Outfit', sans-serif !important;
    text-transform: uppercase !important;
    letter-spacing: 2px !important;
    font-size: 11px !important;
    border-bottom: 1px solid var(--zap-line) !important;
}

.pmpro_table td {
    padding: 16px !important;
    border-bottom: 1px solid var(--zap-line) !important;
    color: var(--zap-muted) !important;
    font-size: 14px !important;
}

/* Custom Login Page Overrides (if applied) */
body.login {
    background-color: var(--zap-black) !important;
}
body.login #loginform {
    background-color: var(--zap-charcoal) !important;
    border: 1px solid var(--zap-line) !important;
    box-shadow: none !important;
    border-radius: 8px !important;
}
body.login #loginform label {
    color: var(--zap-muted) !important;
}
body.login #loginform input[type="text"],
body.login #loginform input[type="password"] {
    background: rgba(255, 255, 255, 0.04) !important;
    border: 1px solid var(--zap-line) !important;
    color: var(--zap-white) !important;
}
body.login #wp-submit {
    background-color: var(--zap-gold) !important;
    color: var(--zap-black) !important;
    border: none !important;
    text-shadow: none !important;
}
body.login a {
    color: var(--zap-muted) !important;
}
body.login a:hover {
    color: var(--zap-gold) !important;
}

/* NAVIGATION MENU STYLING */
.ast-primary-header-bar {
    padding: 24px 60px !important;
    border-bottom: 1px solid var(--zap-line) !important;
}

.site-title a {
    font-family: 'Playfair Display', serif !important;
    font-size: 24px !important;
    font-weight: 900 !important;
    color: var(--zap-white) !important;
    text-decoration: none !important;
    letter-spacing: -0.5px !important;
}

.main-header-menu a, .menu-link {
    font-family: 'Outfit', sans-serif !important;
    font-size: 11px !important;
    letter-spacing: 2px !important;
    text-transform: uppercase !important;
    color: var(--zap-white) !important;
    transition: color 0.3s ease !important;
    font-weight: 500 !important;
}

.main-header-menu a:hover, .menu-link:hover {
    color: var(--zap-gold) !important;
}

/* Nav Menu CTA Button (Last Item) */
.main-header-menu .menu-item:last-child a,
.main-header-menu .menu-item:last-child .menu-link {
    border: 1px solid var(--zap-gold) !important;
    color: var(--zap-gold) !important;
    padding: 10px 24px !important;
    border-radius: 4px !important;
    margin-left: 15px !important;
}

.main-header-menu .menu-item:last-child a:hover,
.main-header-menu .menu-item:last-child .menu-link:hover {
    background: var(--zap-gold) !important;
    color: var(--zap-black) !important;
}

/* Mobile Toggle */
.menu-toggle, .ast-mobile-svg {
    color: var(--zap-white) !important;
    fill: var(--zap-white) !important;
}

/* =========================================
   PHASE 2: GLASSMORPHISM & CUSTOM CURSOR
   ========================================= */

/* ERADICATE ALL WHITE BOXES GLOBALLY */
body, html, .site, .hfeed, .site-footer, .ast-builder-footer-grid-columns, .site-below-footer-wrap, .ast-footer-wrapper {
    background-color: var(--zap-black) !important;
    background: var(--zap-black) !important;
}

.elementor-column-wrap, .elementor-widget-wrap, .ast-container, .site-content, .ast-article-inner, .elementor-section-wrap, .page-content, .hentry, .elementor-background-overlay, .pmpro_levels {
    background-color: transparent !important;
    background: transparent !important;
}

/* OVERRIDE PAID MEMBERSHIPS PRO COLOR VARIABLES */
:root {
    --pmpro--color--base: transparent !important;
    --pmpro--color--contrast: #f8f4ef !important;
    --pmpro--color--accent: #d4a843 !important;
    --pmpro--color--accent--variation: #b58b2c !important;
    --pmpro--color--border--variation: rgba(255, 255, 255, 0.1) !important;
}

/* FROSTED GLASS PANELS FOR PMPRO AND ELEMENTOR */
.elementor-section, .elementor-container, .pmpro_checkout-fields, .pmpro_level, #pmpro_levels .pmpro_level {
    background: rgba(14, 14, 14, 0.45) !important;
    backdrop-filter: blur(16px) !important;
    -webkit-backdrop-filter: blur(16px) !important;
    border: 1px solid rgba(255, 255, 255, 0.05) !important;
    box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.3) !important;
    color: var(--zap-white) !important;
}

#pmpro_levels .pmpro_level h1, #pmpro_levels .pmpro_level h2, #pmpro_levels .pmpro_level h3, #pmpro_levels .pmpro_level p {
    color: var(--zap-white) !important;
}

/* CUSTOM INTERACTIVE CURSOR */
body {
    cursor: none; /* Hide default cursor */
}

#cursor {
    width: 6px;
    height: 6px;
    background: var(--zap-gold);
    border-radius: 50%;
    position: fixed;
    pointer-events: none;
    z-index: 999999;
    top: -3px;
    left: -3px;
}

#ring {
    width: 32px;
    height: 32px;
    border: 1px solid rgba(212, 168, 67, 0.5);
    border-radius: 50%;
    position: fixed;
    pointer-events: none;
    z-index: 999998;
    top: -16px;
    left: -16px;
    transition: transform 0.1s, border-color 0.3s;
}

/* Hide custom cursor on touch devices */
@media (max-width: 768px) {
    body { cursor: auto; }
    #cursor, #ring { display: none !important; }
}
