/*
Theme Name: The Broker's Table
Theme URI: https://thebrokerstable.com
Author: Ekot Group
Author URI: https://ekotgroup.com
Description: Custom premium podcast theme for The Broker's Table with WooCommerce integration, course sales, membership tiers, digital downloads, consultation booking, and full monetization suite. Built for faith-driven women building generational wealth.
Version: 10.1.0
Requires at least: 6.4
Tested up to: 6.7
Requires PHP: 8.0
License: Proprietary
Text Domain: brokerstable

Tags: podcast, woocommerce, custom-colors, custom-logo, featured-images, full-width-template, theme-options
*/

/* ==========================================================================
   CSS CUSTOM PROPERTIES
   ========================================================================== */
:root {
    --plum-900: #2E1A47;
    --plum-800: #432663;
    --plum-700: #5B3A82;
    --plum-600: #7350A0;
    --plum-500: #8B68B8;
    --plum-400: #A384CC;
    --plum-300: #BBA2DD;
    --plum-200: #D4C1EC;
    --plum-100: #EAE0F5;
    --plum-50: #F6F0FA;
    --gold-700: #8B6914;
    --gold-600: #A6801A;
    --gold-500: #C9A227;
    --gold-400: #D4B44E;
    --gold-300: #E0C87A;
    --gold-200: #EBD9A3;
    --gold-100: #F5ECCC;
    --gold-50: #FBF6EA;
    --ivory: #FFFDF8;
    --cream: #FFF9F0;
    --linen: #FDF5EC;
    --sand: #F0E6D6;
    --stone: #D4C9B8;
    --warm-gray: #8A7F72;
    --charcoal: #3A3228;
    --espresso: #2A2118;
    --success: #2D8B55;
    --error: #C0392B;
    --font-display: 'Cormorant Garamond', Georgia, serif;
    --font-body: 'DM Sans', -apple-system, BlinkMacSystemFont, sans-serif;
    --section-pad: clamp(60px, 8vw, 120px);
    --container-max: 1280px;
    --container-wide: 1440px;
}

/* ==========================================================================
   RESET & BASE
   ========================================================================== */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-font-smoothing: antialiased; scroll-padding-top: 80px; }
body { font-family: var(--font-body); color: var(--charcoal); background: var(--ivory); line-height: 1.7; overflow-x: hidden; }
img { max-width: 100%; height: auto; display: block; }
a { text-decoration: none; color: inherit; transition: all 0.3s ease; }
button { cursor: pointer; border: none; background: none; font-family: inherit; }

.container { max-width: var(--container-max); margin: 0 auto; padding: 0 clamp(20px, 4vw, 40px); }
.container-wide { max-width: var(--container-wide); margin: 0 auto; padding: 0 clamp(20px, 4vw, 40px); }

/* Typography */
h1, h2, h3, h4, h5 { font-family: var(--font-display); font-weight: 500; line-height: 1.15; }
h1 { font-size: clamp(2.8rem, 6vw, 5.5rem); letter-spacing: -0.02em; }
h2 { font-size: clamp(2rem, 4vw, 3.5rem); letter-spacing: -0.01em; }
h3 { font-size: clamp(1.5rem, 2.5vw, 2rem); }
h4 { font-size: clamp(1.2rem, 1.8vw, 1.5rem); }

.section-label {
    font-family: var(--font-body); font-size: 0.75rem; font-weight: 600;
    letter-spacing: 0.2em; text-transform: uppercase; color: var(--gold-500);
    display: flex; align-items: center; gap: 12px; margin-bottom: 16px;
}
.section-label::before { content: ''; width: 32px; height: 2px; background: var(--gold-500); }

/* Buttons */
.btn { display: inline-flex; align-items: center; gap: 8px; padding: 14px 32px; border-radius: 50px; font-family: var(--font-body); font-size: 0.9rem; font-weight: 600; letter-spacing: 0.03em; transition: all 0.4s cubic-bezier(0.25,0.46,0.45,0.94); }
/* Fix: All theme buttons exempt from WP link color override */
.btn, .btn-primary, .btn-plum, .btn-outline, .btn-gold, .nav-cta-btn { text-decoration: none !important; }
.btn-primary { background: linear-gradient(135deg, var(--gold-500), var(--gold-400)); color: white; text-shadow: 0 1px 2px rgba(0,0,0,0.15); box-shadow: 0 4px 20px rgba(201,162,39,0.3); }
.btn-primary:hover { transform: translateY(-2px); box-shadow: 0 8px 30px rgba(201,162,39,0.45); }
.btn-plum { background: linear-gradient(135deg, var(--plum-700), var(--plum-600)); color: white; box-shadow: 0 4px 20px rgba(91,58,130,0.3); }
.btn-plum:hover { transform: translateY(-2px); box-shadow: 0 8px 30px rgba(91,58,130,0.45); }
.btn-outline { border: 2px solid var(--plum-300); color: var(--plum-700); background: transparent; }
.btn-outline:hover { background: var(--plum-700); color: white; border-color: var(--plum-700); }

/* Scroll Reveal - Base (fade up) */
.reveal { opacity: 0; transform: translateY(30px); transition: opacity 0.8s ease-out, transform 0.8s ease-out; }
.reveal.visible { opacity: 1; transform: translateY(0); }

/* Scroll Reveal - Directional Variants */
.reveal-left { opacity: 0; transform: translateX(-40px); transition: opacity 0.8s ease-out, transform 0.8s ease-out; }
.reveal-left.visible { opacity: 1; transform: translateX(0); }
.reveal-right { opacity: 0; transform: translateX(40px); transition: opacity 0.8s ease-out, transform 0.8s ease-out; }
.reveal-right.visible { opacity: 1; transform: translateX(0); }
.reveal-scale { opacity: 0; transform: scale(0.92); transition: opacity 0.8s ease-out, transform 0.8s ease-out; }
.reveal-scale.visible { opacity: 1; transform: scale(1); }

/* Gold shimmer for dividers (site-wide) */
.bt-divider-shimmer { background: linear-gradient(90deg, var(--gold-400), var(--gold-200), var(--gold-400)); background-size: 200% 100%; animation: bt-divider-shimmer 3s ease-in-out infinite; }
@keyframes bt-divider-shimmer { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }

/* WooCommerce Overrides */
.woocommerce .button, .woocommerce a.button { background: var(--plum-700) !important; color: white !important; border-radius: 50px !important; padding: 12px 28px !important; font-family: var(--font-body) !important; font-weight: 600 !important; }
.woocommerce .button:hover, .woocommerce a.button:hover { background: var(--plum-600) !important; }
.woocommerce ul.products li.product .price { color: var(--gold-600); font-family: var(--font-display); font-size: 1.3rem; font-weight: 600; }
.woocommerce ul.products li.product h2 { font-family: var(--font-display); color: var(--plum-800); }

/* ==========================================================================
   ANNOUNCEMENT BAR
   ========================================================================== */
.announcement-bar {
    background: var(--plum-900); color: var(--plum-200); font-size: 0.78rem;
    padding: 10px 20px; text-align: center; letter-spacing: 0.03em;
    display: flex; align-items: center; justify-content: center; gap: 8px;
}
.announcement-bar a { color: var(--gold-400); font-weight: 600; }
.announcement-bar a:hover { color: var(--gold-300); }

/* ==========================================================================
   NAVIGATION
   ========================================================================== */
.site-header {
    position: sticky; top: 0; z-index: 100; background: rgba(255,253,248,0.92);
    backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
    border-bottom: 1px solid rgba(91,58,130,0.06); transition: all 0.3s;
}
.site-header .container { display: flex; align-items: center; justify-content: space-between; height: 76px; }
.site-logo { display: flex; align-items: center; gap: 12px; text-decoration: none; }
.site-logo-icon { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; box-shadow: 0 2px 8px rgba(46,26,71,0.12); transition: transform 0.3s ease; }
.site-logo:hover .site-logo-icon { transform: scale(1.05); }
.site-logo-text { font-family: var(--font-display); font-size: 1.3rem; font-weight: 600; color: var(--plum-900); letter-spacing: 0.01em; line-height: 1.2; }
.site-logo-apostrophe { color: var(--gold-500); }
.site-nav { display: flex; align-items: center; gap: 28px; }
.site-nav ul { display: flex; align-items: center; gap: 28px; list-style: none; margin: 0; padding: 0; }
.site-nav li { list-style: none; }
.site-nav a { font-size: 0.85rem; font-weight: 500; color: var(--charcoal); position: relative; padding: 6px 0; letter-spacing: 0.02em; transition: color 0.25s ease; }
.site-nav a:hover { color: var(--plum-700); }
.site-nav a::after { content: ''; position: absolute; bottom: -2px; left: 0; width: 0; height: 2px; background: var(--gold-500); transition: width 0.3s; }
.site-nav a:hover::after { width: 100%; }
.mobile-toggle { display: none; width: 44px; height: 44px; align-items: center; justify-content: center; }
.mobile-toggle span { display: block; width: 24px; height: 2px; background: var(--plum-700); position: relative; transition: all 0.3s; }
.mobile-toggle span::before, .mobile-toggle span::after {
    content: ''; position: absolute; width: 24px; height: 2px; background: var(--plum-700); transition: all 0.3s;
}
.mobile-toggle span::before { top: -7px; }
.mobile-toggle span::after { top: 7px; }
.mobile-toggle.active span { background: transparent; }
.mobile-toggle.active span::before { top: 0; transform: rotate(45deg); }
.mobile-toggle.active span::after { top: 0; transform: rotate(-45deg); }

/* ==========================================================================
   HERO SECTION
   ========================================================================== */
.hero {
    position: relative; min-height: 85vh; display: flex; align-items: center;
    background: linear-gradient(160deg, var(--cream) 0%, var(--linen) 40%, var(--plum-50) 100%);
    overflow: hidden;
}
.hero-inner { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(40px,6vw,100px); align-items: center; padding-top: clamp(60px,8vw,100px); padding-bottom: clamp(60px,8vw,100px); }
.hero-badge {
    display: inline-flex; align-items: center; gap: 8px;
    background: rgba(91,58,130,0.08); border: 1px solid rgba(91,58,130,0.12);
    border-radius: 50px; padding: 8px 18px; margin-bottom: 24px;
    font-size: 0.78rem; font-weight: 600; color: var(--plum-700);
}
.hero-badge-dot { width: 8px; height: 8px; background: var(--success); border-radius: 50%; display: inline-block; animation: pulse 2s ease-in-out infinite; }
@keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.4; } }
.hero-tagline { font-family: var(--font-display); font-size: clamp(1rem,1.5vw,1.2rem); font-style: italic; color: var(--gold-600); margin-bottom: 12px; }
.hero-title { color: var(--plum-900); margin-bottom: 8px; }
.gold-gradient { background: linear-gradient(135deg, var(--gold-500), var(--gold-400)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }
.hero-desc { font-size: clamp(1rem,1.3vw,1.15rem); color: var(--warm-gray); max-width: 520px; margin-bottom: 32px; line-height: 1.8; }
.hero-ctas { display: flex; gap: 16px; flex-wrap: wrap; margin-bottom: 24px; }
.hero-platforms { display: flex; align-items: center; gap: 20px; }
.hero-platforms-label { font-size: 0.75rem; color: var(--warm-gray); text-transform: uppercase; letter-spacing: 0.1em; font-weight: 500; }
.hero-platforms-icons { display: flex; gap: 12px; }
.platform-icon {
    width: 36px; height: 36px; border-radius: 8px; background: white;
    display: flex; align-items: center; justify-content: center;
    box-shadow: 0 2px 8px rgba(0,0,0,0.06); font-size: 0.7rem; font-weight: 700;
    transition: transform 0.3s, box-shadow 0.3s;
}
.platform-icon:hover { transform: translateY(-3px); box-shadow: 0 6px 16px rgba(0,0,0,0.12); }

/* Hero Visual */
.hero-visual { position: relative; }
.hero-image-wrap {
    border-radius: 24px; overflow: hidden;
    box-shadow: 0 40px 80px rgba(46,26,71,0.15);
}
.hero-image-wrap img { width: 100%; aspect-ratio: 4/5; object-fit: cover; }
.hero-image-placeholder {
    width: 100%; aspect-ratio: 4/5;
    background: linear-gradient(135deg, var(--plum-700), var(--plum-500));
    display: flex; align-items: center; justify-content: center;
    color: white; font-family: var(--font-display); font-size: 1.5rem;
}

/* Floating Stat Cards */
.float-stat {
    position: absolute; background: white; border-radius: 14px; padding: 14px 20px;
    box-shadow: 0 12px 40px rgba(46,26,71,0.12); text-align: center;
    animation: float 4s ease-in-out infinite; z-index: 2;
}
.float-stat-top { top: 10%; right: -20px; }
.float-stat-bottom { bottom: 15%; left: -20px; animation-delay: -2s; }
.float-stat-number { font-family: var(--font-display); font-size: 1.6rem; font-weight: 700; color: var(--plum-800); line-height: 1; }
.float-stat-label { font-size: 0.68rem; font-weight: 600; color: var(--warm-gray); text-transform: uppercase; letter-spacing: 0.08em; margin-top: 2px; }
@keyframes float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }

/* ==========================================================================
   TRUST BAR
   ========================================================================== */
.trust-bar { padding: 32px 0; background: white; border-bottom: 1px solid var(--sand); }
.trust-bar .container { display: flex; justify-content: center; gap: clamp(24px,4vw,48px); flex-wrap: wrap; }
.trust-item { text-align: center; min-width: 120px; }
.trust-number { font-family: var(--font-display); font-size: 1.6rem; font-weight: 700; color: var(--plum-800); }
.trust-label { font-size: 0.72rem; color: var(--warm-gray); text-transform: uppercase; letter-spacing: 0.08em; font-weight: 500; }

/* ==========================================================================
   ABOUT SECTION
   ========================================================================== */
.about-grid { display: grid; grid-template-columns: 1fr 1.2fr; gap: clamp(40px,6vw,80px); align-items: center; }
.about-credentials { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 28px; }

/* ==========================================================================
   EPISODES
   ========================================================================== */
.episodes-header { display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: 32px; }
.episode-grid, .episodes-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.episode-card {
    background: white; border-radius: 16px; overflow: hidden;
    border: 1px solid var(--sand); transition: transform 0.4s, box-shadow 0.4s;
}
.episode-card:hover { transform: translateY(-4px); box-shadow: 0 16px 40px rgba(46,26,71,0.08); }

/* ==========================================================================
   BLOG GRID
   ========================================================================== */
.blog-header { display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: 32px; }
.blog-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.blog-card:hover { transform: translateY(-4px); box-shadow: 0 16px 40px rgba(46,26,71,0.08); }

/* ==========================================================================
   EVENTS
   ========================================================================== */
.events-header { display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: 32px; }
.event-grid, .events-grid { display: grid; gap: 16px; }
.event-card:hover { transform: translateX(4px); box-shadow: 0 8px 24px rgba(46,26,71,0.06); }

/* ==========================================================================
   TESTIMONIALS
   ========================================================================== */
.testimonials-header { text-align: center; margin-bottom: 32px; }
.testimonial-grid, .testimonials-track { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.testimonial-card:hover { transform: translateY(-4px); box-shadow: 0 16px 40px rgba(46,26,71,0.08); }

/* ==========================================================================
   BOOK SECTION
   ========================================================================== */
.book-grid { display: grid; grid-template-columns: 1fr 1.4fr; gap: clamp(40px,6vw,80px); align-items: center; }
.book-3d { perspective: 800px; display: inline-block; }
.book-3d > div { transition: transform 0.5s; }
.book-3d:hover > div { transform: rotateY(-2deg) scale(1.02); }

/* ==========================================================================
   LEAD MAGNET
   ========================================================================== */
.lead-magnet-form { display: flex; gap: 12px; max-width: 440px; }
.lead-magnet-form input[type="email"] {
    flex: 1; padding: 14px 20px; border: 2px solid var(--sand); border-radius: 50px;
    font-family: var(--font-body); font-size: 0.9rem; background: white;
    transition: border-color 0.3s;
}
.lead-magnet-form input[type="email"]:focus { outline: none; border-color: var(--gold-500); }

/* ==========================================================================
   NEWSLETTER CTA
   ========================================================================== */
.newsletter-cta {
    padding: 60px 0; background: linear-gradient(135deg, var(--plum-800), var(--plum-900));
    color: white; text-align: center;
}
.newsletter-cta h2 { color: white; margin-bottom: 12px; }
.newsletter-cta p { color: var(--plum-200); max-width: 520px; margin: 0 auto 24px; }
.newsletter-form { display: flex; gap: 12px; max-width: 440px; margin: 0 auto; }
.newsletter-form input[type="email"] {
    flex: 1; padding: 14px 20px; border: 2px solid rgba(255,255,255,0.15); border-radius: 50px;
    font-family: var(--font-body); font-size: 0.9rem; background: rgba(255,255,255,0.08);
    color: white; transition: border-color 0.3s;
}
.newsletter-form input[type="email"]::placeholder { color: var(--plum-300); }
.newsletter-form input[type="email"]:focus { outline: none; border-color: var(--gold-500); }

/* ==========================================================================
   FOOTER
   ========================================================================== */
.site-footer { padding: 60px 0 24px; background: var(--espresso); color: var(--stone); }
.footer-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 40px; margin-bottom: 40px; }
.footer-brand-name { font-family: var(--font-display); font-size: 1.4rem; font-weight: 600; color: white; margin-bottom: 4px; }
.footer-brand-tagline { font-family: var(--font-display); font-style: italic; font-size: 0.9rem; color: var(--gold-400); margin-bottom: 12px; }
.footer-brand-desc { font-size: 0.85rem; line-height: 1.7; color: var(--stone); margin-bottom: 16px; }
.footer-social { display: flex; gap: 10px; }
.footer-social a {
    width: 36px; height: 36px; border-radius: 8px;
    background: rgba(255,255,255,0.08); display: flex; align-items: center; justify-content: center;
    font-size: 0.7rem; font-weight: 700; color: var(--stone); transition: all 0.3s;
}
.footer-social a:hover { background: var(--gold-500); color: white; text-shadow: 0 1px 2px rgba(0,0,0,0.15); }
.footer-col-title { font-family: var(--font-display); font-size: 1.1rem; font-weight: 600; color: white; margin-bottom: 16px; }
.footer-links { list-style: none; }
.footer-links li { margin-bottom: 8px; }
.footer-links a { font-size: 0.85rem; color: var(--stone); }
.footer-links a:hover { color: var(--gold-400); }
.footer-bottom {
    display: flex; justify-content: space-between; align-items: center;
    padding-top: 24px; border-top: 1px solid rgba(255,255,255,0.08);
    font-size: 0.78rem; color: rgba(255,255,255,0.4);
}
.footer-bottom a { color: rgba(255,255,255,0.4); }
.footer-bottom a:hover { color: var(--gold-400); }

/* ==========================================================================
   STICKY AUDIO PLAYER
   ========================================================================== */
.sticky-player {
    position: fixed; bottom: 0; left: 0; right: 0; z-index: 200;
    background: var(--plum-900); color: white;
    box-shadow: 0 -4px 30px rgba(0,0,0,0.15);
    transform: translateY(100%); transition: transform 0.4s cubic-bezier(0.25,0.46,0.45,0.94);
    padding: 12px 0;
}
.sticky-player.visible { transform: translateY(0); }
.sticky-player-inner {
    display: flex; align-items: center; gap: 16px;
}
.sticky-player-play {
    width: 40px; height: 40px; border-radius: 50%;
    background: var(--gold-500); color: white; text-shadow: 0 1px 2px rgba(0,0,0,0.15);
    display: flex; align-items: center; justify-content: center;
    font-size: 0.9rem; flex-shrink: 0; transition: transform 0.2s;
}
.sticky-player-play:hover { transform: scale(1.08); }
.sticky-player-info { flex-shrink: 0; min-width: 0; max-width: 200px; }
.sticky-player-title { font-size: 0.82rem; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sticky-player-episode { font-size: 0.7rem; color: var(--plum-300); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sticky-player-progress { flex: 1; min-width: 0; }
.sticky-player-bar { height: 4px; background: rgba(255,255,255,0.15); border-radius: 4px; overflow: hidden; cursor: pointer; }
.sticky-player-fill { height: 100%; background: var(--gold-500); border-radius: 4px; transition: width 0.1s linear; }
.sticky-player-time { display: flex; justify-content: space-between; font-size: 0.68rem; color: var(--plum-300); margin-top: 4px; }
.sticky-player-close {
    width: 32px; height: 32px; display: flex; align-items: center; justify-content: center;
    color: var(--plum-300); font-size: 1.3rem; flex-shrink: 0; border-radius: 50%;
    transition: all 0.2s;
}
.sticky-player-close:hover { color: white; background: rgba(255,255,255,0.1); }

/* ==========================================================================
   BACK TO TOP
   ========================================================================== */
.back-to-top {
    position: fixed; bottom: 80px; right: 24px; z-index: 150;
    width: 44px; height: 44px; border-radius: 50%;
    background: var(--plum-700); color: white;
    display: flex; align-items: center; justify-content: center;
    font-size: 1.2rem; cursor: pointer;
    opacity: 0; transform: translateY(20px); transition: all 0.3s;
    box-shadow: 0 4px 16px rgba(46,26,71,0.2);
}
.back-to-top.visible { opacity: 1; transform: translateY(0); }
.back-to-top:hover { background: var(--plum-600); transform: translateY(-2px); }

/* ==========================================================================
   FAQ
   ========================================================================== */
.faq-answer.open { max-height: 300px !important; }

/* ==========================================================================
   RESPONSIVE: TABLET (max-width: 1024px)
   ========================================================================== */

/* Premium dropdown animation */
.nav-menu .sub-menu { opacity: 0; visibility: hidden; transform: translateX(-50%) translateY(8px); transition: opacity 0.25s ease, transform 0.25s ease, visibility 0.25s; display: block !important; pointer-events: none; }
.nav-menu .menu-item-has-children:hover > .sub-menu { opacity: 1; visibility: visible; transform: translateX(-50%) translateY(0); pointer-events: auto; }
.nav-menu .sub-menu { background: #fff; border-radius: 12px; box-shadow: 0 12px 40px rgba(46,26,71,0.1), 0 0 0 1px rgba(91,58,130,0.04); padding: 8px 0; min-width: 200px; }
.nav-menu .sub-menu a { padding: 10px 20px !important; font-size: 0.84rem !important; color: var(--charcoal) !important; border-bottom: none !important; border-radius: 0; display: block; }
.nav-menu .sub-menu a:hover { background: var(--plum-50) !important; color: var(--plum-700) !important; }
.nav-menu .sub-menu a::after { display: none !important; }
/* nav-dropdown-reveal */
@media (max-width: 1024px) {
    /* Hero */
    .hero { min-height: auto; }
    .hero-inner { grid-template-columns: 1fr 1fr; gap: 40px; padding-top: 80px; padding-bottom: 60px; }
    .float-stat-top { right: -10px; }
    .float-stat-bottom { left: -10px; }

    /* About */
    .about-grid { grid-template-columns: 1fr 1fr; gap: 40px; }

    /* Book */
    .book-grid { grid-template-columns: 1fr 1fr; gap: 40px; }

    /* Episode & Blog grids */
    .episode-grid, .episodes-grid { grid-template-columns: repeat(2, 1fr); }
    .blog-grid { grid-template-columns: repeat(2, 1fr); }
    .testimonial-grid, .testimonials-track { grid-template-columns: repeat(2, 1fr); }

    /* Footer */
    .footer-grid { grid-template-columns: 1fr 1fr; gap: 32px; }

    /* Retreat */
    .retreat .container > div { gap: 40px !important; }
}

/* ==========================================================================
   RESPONSIVE: MOBILE (max-width: 768px)
   ========================================================================== */
@media (max-width: 768px) {
    /* Global */
    :root { --section-pad: clamp(40px, 8vw, 80px); }

    /* Navigation */
    .site-nav {
        display: none; position: fixed; top: 0; left: 0; right: 0; bottom: 0;
        background: rgba(255,253,248,0.98); backdrop-filter: blur(20px);
        flex-direction: column; align-items: center; justify-content: center;
        gap: 0; z-index: 99; padding: 80px 24px;
    }
    .site-nav.open { display: flex; }
    .site-nav ul { flex-direction: column; gap: 0; width: 100%; }
    .site-nav li { width: 100%; }
    .site-nav a { font-size: 1.3rem; padding: 16px 0; width: 100%; text-align: center; border-bottom: 1px solid var(--sand); display: block; }
    .site-nav .btn { margin-top: 20px; border-bottom: none; }
    .mobile-toggle { display: flex; z-index: 101; }

    /* Hero */
    .hero { min-height: auto; padding-top: 0; }
    .hero-inner { grid-template-columns: 1fr; gap: 32px; padding-top: 40px; padding-bottom: 40px; text-align: center; }
    .hero-content { order: 1; }
    .hero-visual { order: 0; max-width: 320px; margin: 0 auto; }
    .hero-badge { justify-content: center; }
    .hero-desc { margin-left: auto; margin-right: auto; }
    .hero-ctas { justify-content: center; }
    .hero-platforms { justify-content: center; flex-wrap: wrap; gap: 12px; }
    .hero-platforms-label { width: 100%; text-align: center; }
    .hero-platforms-icons { justify-content: center; }
    .float-stat { display: none; }

    /* Trust Bar */
    .trust-bar .container { gap: 16px; }
    .trust-item { min-width: 80px; }
    .trust-number { font-size: 1.3rem; }
    .trust-label { font-size: 0.65rem; }

    /* About */
    .about-grid { grid-template-columns: 1fr !important; gap: 32px; }
    .about-credentials { grid-template-columns: 1fr !important; }
    .about .section-label { justify-content: center; }
    .about > .container > .about-grid > div:last-child { text-align: center; }
    .about > .container > .about-grid > div:last-child .btn { display: inline-flex; }

    /* Section headers */
    .episodes-header, .blog-header, .events-header {
        flex-direction: column; align-items: flex-start; gap: 12px;
    }

    /* Grids to single column */
    .episode-grid, .episodes-grid { grid-template-columns: 1fr; gap: 16px; }
    .blog-grid { grid-template-columns: 1fr; gap: 16px; }
    .testimonial-grid, .testimonials-track { grid-template-columns: 1fr; gap: 16px; }

    /* Book */
    .book-grid { grid-template-columns: 1fr !important; gap: 32px; text-align: center; }
    .book-grid > div:first-child { order: 0; }
    .book-grid > div:last-child { text-align: center; }

    /* Retreat */
    .retreat .container > div {
        grid-template-columns: 1fr !important; gap: 32px !important;
    }

    /* Booking */
    .booking .container > div { grid-template-columns: 1fr !important; }

    /* Downloads */
    .downloads .container > div:last-child { grid-template-columns: 1fr 1fr; }

    /* Membership */
    .membership .container > div:last-child { grid-template-columns: 1fr !important; max-width: 100% !important; }

    /* Courses */
    .courses .container > div:last-child { grid-template-columns: 1fr !important; }

    /* Merch */
    .merch .container > div:last-child { grid-template-columns: 1fr 1fr !important; }

    /* Forms */
    .newsletter-form { flex-direction: column; }
    .newsletter-form input[type="email"] { width: 100%; }
    .lead-magnet-form { flex-direction: column; }

    /* Footer */
    .footer-grid { grid-template-columns: 1fr !important; gap: 32px; text-align: center; }
    .footer-social { justify-content: center; }
    .footer-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 16px; }
    .footer-links li { margin-bottom: 0; }
    .footer-bottom { flex-direction: column; gap: 8px; text-align: center; }

    /* Sticky Player Mobile */
    .sticky-player-inner { gap: 10px; flex-wrap: wrap; }
    .sticky-player-info { max-width: 140px; }
    .sticky-player-progress { flex-basis: 100%; order: 5; }
    .sticky-player-time { display: none; }

    /* Buttons */
    .btn { padding: 12px 24px; font-size: 0.85rem; width: 100%; justify-content: center; }
    .hero-ctas .btn { width: auto; }

    /* Back to top */
    .back-to-top { bottom: 90px; right: 16px; width: 40px; height: 40px; }

    /* FAQ */
    .faq-question { font-size: 1rem !important; }

    /* About decorative border */
    .about-grid > div:first-child > div:last-child { display: none; }

    /* Lead magnet inline form override */
    .lead-magnet-form { flex-direction: column !important; max-width: 100% !important; }
    .lead-magnet-form input[type="email"] { width: 100% !important; }

    /* Sponsorship tiers */
    .sponsorship .container > div:nth-child(4) { gap: 12px !important; }
    .sponsorship .container > div:nth-child(4) > div { min-width: calc(50% - 12px) !important; flex: 1 1 calc(50% - 12px) !important; }

    /* Guest apply responsive */
    .guest-apply .container { padding-left: 24px !important; padding-right: 24px !important; }

    /* As-seen-on logos */
    .as-seen-on .container > div:last-child { gap: 20px !important; }
    .as-seen-on .container > div:last-child > span { font-size: 0.95rem !important; }
}

/* ==========================================================================
   RESPONSIVE: SMALL MOBILE (max-width: 480px)
   ========================================================================== */
@media (max-width: 480px) {
    h1 { font-size: clamp(2.2rem, 8vw, 3rem); }
    h2 { font-size: clamp(1.6rem, 5vw, 2.2rem); }

    /* Downloads 1-column */
    .downloads .container > div:last-child { grid-template-columns: 1fr !important; }

    /* Merch 1-column */
    .merch .container > div:last-child { grid-template-columns: 1fr !important; }

    /* Trust bar scroll */
    .trust-bar .container { flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; padding-bottom: 8px; }
    .trust-bar .container::-webkit-scrollbar { display: none; }
    .trust-item { flex-shrink: 0; }

    /* Sticky player simplify */
    .sticky-player-info { display: none; }
    .sticky-player-progress { flex-basis: auto; flex: 1; order: 0; }

    /* Announcement bar */
    .announcement-bar { font-size: 0.7rem; padding: 8px 16px; }
}

/* ==========================================================================
   UX: TOUCH TARGETS & ACCESSIBILITY
   ========================================================================== */
@media (pointer: coarse) {
    .btn { min-height: 48px; }
    .site-nav a { min-height: 48px; display: flex; align-items: center; }
    .faq-question { min-height: 56px; }
    .platform-icon { width: 44px; height: 44px; }
    .footer-links a { display: inline-block; padding: 6px 0; min-height: 44px; line-height: 32px; }
    .event-card .btn { min-height: 44px; }
}

/* Focus styles for keyboard navigation */
a:focus-visible, button:focus-visible, input:focus-visible {
    outline: 2px solid var(--gold-500); outline-offset: 2px; border-radius: 4px;
}

/* Reduce motion for accessibility */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
    .reveal { opacity: 1; transform: none; }
    .float-stat { animation: none; }
}

/* ==========================================================================
   PAGE CONTENT STYLING (Block Editor Integration)
   Makes wp:heading, wp:paragraph, wp:buttons, etc. match theme design
   ========================================================================== */

/* Page wrapper */
.bt-page-content { padding: var(--section-pad) 0; background: var(--ivory); }
.bt-page-content .container { max-width: 860px; }
.bt-page-content.bt-page-wide .container { max-width: var(--container-max); }

/* Block editor content within pages */
.page-content,
.entry-content,
.bt-page-content .container {
    font-size: 1.05rem;
    line-height: 1.85;
    color: var(--charcoal);
}

/* Headings inside page content */
.page-content h1, .entry-content h1 { font-family: var(--font-display); font-size: clamp(2.4rem, 5vw, 4rem); color: var(--plum-900); margin-bottom: 16px; font-weight: 500; line-height: 1.15; }
.page-content h2, .entry-content h2 { font-family: var(--font-display); font-size: clamp(1.8rem, 3.5vw, 3rem); color: var(--plum-900); margin-top: 48px; margin-bottom: 16px; font-weight: 500; line-height: 1.2; }
.page-content h3, .entry-content h3 { font-family: var(--font-display); font-size: clamp(1.4rem, 2.2vw, 1.8rem); color: var(--plum-800); margin-top: 36px; margin-bottom: 12px; font-weight: 500; }
.page-content h4, .entry-content h4 { font-family: var(--font-display); font-size: clamp(1.1rem, 1.6vw, 1.4rem); color: var(--plum-700); margin-top: 28px; margin-bottom: 10px; font-weight: 600; }

/* Paragraphs */
.page-content p, .entry-content p { margin-bottom: 20px; color: var(--charcoal); line-height: 1.85; }
.page-content p:last-child, .entry-content p:last-child { margin-bottom: 0; }

/* Links in content */
.page-content a, .entry-content a { color: var(--plum-700); font-weight: 500; border-bottom: 1px solid var(--plum-200); transition: all 0.3s; }
.page-content a:hover, .entry-content a:hover { color: var(--gold-600); border-bottom-color: var(--gold-400); }

/* Lists */
.page-content ul, .entry-content ul { margin: 16px 0 24px 20px; }
.page-content ol, .entry-content ol { margin: 16px 0 24px 20px; }
.page-content li, .entry-content li { margin-bottom: 8px; line-height: 1.7; }
.page-content li::marker { color: var(--gold-500); }

/* Blockquotes */
.page-content blockquote, .entry-content blockquote {
    font-family: var(--font-display); font-size: 1.2rem; font-style: italic;
    color: var(--plum-700); border-left: 3px solid var(--gold-500);
    padding: 20px 28px; margin: 32px 0; background: var(--plum-50);
    border-radius: 0 16px 16px 0;
}

/* Images */
.page-content img, .entry-content img { border-radius: 16px; box-shadow: 0 8px 32px rgba(46,26,71,0.08); }
.page-content figure, .entry-content figure { margin: 32px 0; }
.page-content figcaption, .entry-content figcaption { text-align: center; font-size: 0.85rem; color: var(--warm-gray); margin-top: 12px; }

/* WordPress Buttons */
.page-content .wp-block-button .wp-block-button__link,
.entry-content .wp-block-button .wp-block-button__link {
    font-family: var(--font-body); font-weight: 600; font-size: 0.9rem;
    letter-spacing: 0.03em; padding: 14px 32px; border-radius: 50px;
    transition: all 0.4s cubic-bezier(0.25,0.46,0.45,0.94);
}
.page-content .wp-block-button:not(.is-style-outline) .wp-block-button__link,
.entry-content .wp-block-button:not(.is-style-outline) .wp-block-button__link {
    background: linear-gradient(135deg, var(--plum-700), var(--plum-600));
    color: white; box-shadow: 0 4px 20px rgba(91,58,130,0.3);
}
.page-content .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover,
.entry-content .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover {
    transform: translateY(-2px); box-shadow: 0 8px 30px rgba(91,58,130,0.45);
}
.page-content .wp-block-button.is-style-outline .wp-block-button__link,
.entry-content .wp-block-button.is-style-outline .wp-block-button__link {
    border: 2px solid var(--plum-300); color: var(--plum-700); background: transparent;
}
.page-content .wp-block-button.is-style-outline .wp-block-button__link:hover,
.entry-content .wp-block-button.is-style-outline .wp-block-button__link:hover {
    background: var(--plum-700); color: white; border-color: var(--plum-700);
}

/* Gold button variant */
.page-content .wp-block-button.has-gold-500-background-color .wp-block-button__link,
.entry-content .wp-block-button.has-gold-500-background-color .wp-block-button__link,
.wp-block-button.bt-btn-gold .wp-block-button__link {
    background: linear-gradient(135deg, var(--gold-500), var(--gold-400)) !important;
    color: white !important; text-shadow: 0 1px 2px rgba(0,0,0,0.15); box-shadow: 0 4px 20px rgba(201,162,39,0.3);
}

/* Button group spacing */
.page-content .wp-block-buttons, .entry-content .wp-block-buttons { margin: 28px 0; gap: 12px; }

/* Separators */
.page-content hr, .entry-content hr,
.page-content .wp-block-separator, .entry-content .wp-block-separator {
    border: none; height: 1px; background: var(--sand);
    margin: 40px auto; max-width: 200px;
}
.wp-block-separator.is-style-wide { max-width: 100%; }
.wp-block-separator.is-style-dots { background: none; text-align: center; }
.wp-block-separator.is-style-dots::before { content: '◆ ◆ ◆'; color: var(--gold-500); font-size: 0.7rem; letter-spacing: 8px; }

/* Columns */
.page-content .wp-block-columns, .entry-content .wp-block-columns { gap: 32px; margin: 36px 0; }

/* Groups with backgrounds */
.page-content .wp-block-group, .entry-content .wp-block-group { border-radius: 20px; }
.wp-block-group.has-plum-900-background-color { background: var(--plum-900) !important; }
.wp-block-group.has-plum-800-background-color { background: var(--plum-800) !important; }
.wp-block-group.has-plum-700-background-color { background: var(--plum-700) !important; }
.wp-block-group.has-plum-50-background-color { background: var(--plum-50) !important; }
.wp-block-group.has-cream-background-color { background: var(--cream) !important; }
.wp-block-group.has-gold-50-background-color { background: var(--gold-50) !important; }
.wp-block-group.has-ivory-background-color { background: var(--ivory) !important; }
.wp-block-group.has-white-background-color { background: white !important; }

/* Cover blocks */
.page-content .wp-block-cover, .entry-content .wp-block-cover { border-radius: 20px; overflow: hidden; min-height: 400px; }

/* Tables */
.page-content table, .entry-content table { width: 100%; border-collapse: collapse; border-radius: 12px; overflow: hidden; margin: 28px 0; }
.page-content th, .entry-content th { background: var(--plum-800); color: white; font-family: var(--font-body); font-weight: 600; font-size: 0.85rem; padding: 14px 20px; text-align: left; }
.page-content td, .entry-content td { padding: 14px 20px; border-bottom: 1px solid var(--sand); font-size: 0.95rem; }
.page-content tr:last-child td, .entry-content tr:last-child td { border-bottom: none; }

/* Gallery */
.wp-block-gallery { gap: 12px !important; margin: 32px 0; }
.wp-block-gallery .wp-block-image img { border-radius: 12px; }

/* Video */
.page-content .wp-block-video, .entry-content .wp-block-video,
.page-content .wp-block-embed, .entry-content .wp-block-embed {
    margin: 32px 0; border-radius: 16px; overflow: hidden;
}

/* ==========================================================================
   BT SECTION CLASSES (for plugin-generated content)
   Reusable section wrappers with built-in styling
   ========================================================================== */
.bt-section { padding: var(--section-pad) 0; }
.bt-section-ivory { background: var(--ivory); }
.bt-section-cream { background: var(--cream); }
.bt-section-plum { background: var(--plum-900); color: white; }
.bt-section-plum h2, .bt-section-plum h3 { color: white; }
.bt-section-plum p { color: var(--plum-200); }
.bt-section-plum-mid { background: var(--plum-800); color: white; }
.bt-section-plum-mid h2, .bt-section-plum-mid h3 { color: white; }
.bt-section-plum-mid p { color: var(--plum-200); }
.bt-section-gradient { background: linear-gradient(160deg, var(--cream) 0%, var(--linen) 40%, var(--plum-50) 100%); }
.bt-section-gold { background: linear-gradient(135deg, var(--gold-50), var(--cream), var(--plum-50)); }
.bt-section-white { background: white; }

.bt-section-label {
    font-family: var(--font-body); font-size: 0.75rem; font-weight: 600;
    letter-spacing: 0.2em; text-transform: uppercase; color: var(--gold-500);
    display: flex; align-items: center; gap: 12px; margin-bottom: 16px;
}
.bt-section-label::before { content: ''; width: 32px; height: 2px; background: var(--gold-500); }
.bt-section-label-center { justify-content: center; }
.bt-section-plum .bt-section-label,
.bt-section-plum-mid .bt-section-label { color: var(--gold-400); }
.bt-section-plum .bt-section-label::before,
.bt-section-plum-mid .bt-section-label::before { background: var(--gold-400); }

/* Premium Card Components */
.bt-card {
    background: white; border-radius: 20px; padding: 32px; border: 1px solid var(--sand);
    transition: transform 0.4s cubic-bezier(0.25,0.46,0.45,0.94), box-shadow 0.4s;
}
.bt-card:hover { transform: translateY(-4px); box-shadow: 0 16px 48px rgba(46,26,71,0.08); }
.bt-card-plum { background: rgba(255,255,255,0.06); border-color: rgba(255,255,255,0.1); }
.bt-card-plum:hover { border-color: var(--gold-500); }
.bt-card-featured { border-color: var(--gold-500); transform: scale(1.02); box-shadow: 0 8px 32px rgba(201,162,39,0.15); }

/* Premium Badge */
.bt-badge {
    display: inline-flex; align-items: center; gap: 8px;
    background: rgba(91,58,130,0.08); border: 1px solid rgba(91,58,130,0.12);
    border-radius: 50px; padding: 8px 18px;
    font-size: 0.78rem; font-weight: 600; color: var(--plum-700);
}
.bt-badge-gold { background: var(--gold-500); color: white; text-shadow: 0 1px 2px rgba(0,0,0,0.12); border-color: var(--gold-400); }

/* Credential/Feature Grid */
.bt-credential-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 24px 0; }
.bt-credential-item {
    display: flex; align-items: flex-start; gap: 10px; padding: 12px 16px;
    background: var(--plum-50); border-radius: 12px; border-left: 3px solid var(--gold-400);
    font-size: 0.85rem; font-weight: 500; color: var(--plum-800); line-height: 1.4;
}
.bt-credential-item .icon { font-size: 1.1rem; flex-shrink: 0; }

/* Pricing Card */
.bt-pricing-card { text-align: center; }
.bt-pricing-amount { font-family: var(--font-display); font-size: 2.2rem; font-weight: 600; color: var(--gold-500); }
.bt-pricing-period { font-size: 0.78rem; color: var(--warm-gray); }
.bt-pricing-features { text-align: left; font-size: 0.85rem; line-height: 2; }
.bt-pricing-features div::before { content: '✓ '; color: var(--gold-500); font-weight: 700; }

/* CTA Banner */
.bt-cta-banner {
    padding: 40px; background: linear-gradient(135deg, var(--plum-800), var(--plum-700));
    border-radius: 20px; text-align: center; color: white; margin: 48px 0;
}
.bt-cta-banner h3 { color: white; margin-bottom: 8px; }
.bt-cta-banner p { color: var(--plum-200); margin-bottom: 20px; }

/* ==========================================================================
   SINGLE BLOG POST
   ========================================================================== */
.single-post-header { padding: var(--section-pad) 0 32px; background: var(--ivory); text-align: center; }
.single-post-meta {
    display: flex; align-items: center; justify-content: center; gap: 20px;
    color: var(--warm-gray); font-size: 0.88rem; flex-wrap: wrap; margin-top: 16px;
}
.single-post-body { padding: 0 0 var(--section-pad); background: var(--ivory); }
.single-post-body .container { max-width: 760px; }
.single-post-nav {
    display: flex; justify-content: space-between; padding-top: 32px;
    border-top: 1px solid var(--sand); margin-top: 48px;
}
.single-post-nav a { color: var(--plum-700); font-weight: 600; font-size: 0.9rem; }
.single-post-nav a:hover { color: var(--gold-600); }

/* ==========================================================================
   404 & SEARCH PAGES
   ========================================================================== */
.error-404, .search-results { padding: var(--section-pad) 0; background: var(--ivory); text-align: center; min-height: 60vh; display: flex; align-items: center; }
.search-form { display: flex; gap: 12px; max-width: 500px; margin: 24px auto 0; }
.search-form input[type="search"] {
    flex: 1; padding: 14px 24px; border: 2px solid var(--sand); border-radius: 50px;
    font-family: var(--font-body); font-size: 0.95rem; background: white;
    transition: border-color 0.3s;
}
.search-form input[type="search"]:focus { outline: none; border-color: var(--gold-500); }
.search-form button { padding: 14px 28px; }

/* Mobile responsive for new components */
@media (max-width: 768px) {
    .bt-credential-grid { grid-template-columns: 1fr; }
    .bt-cta-banner { padding: 28px 20px; }
}

/* ==========================================================================
   SKIP TO CONTENT (Accessibility)
   ========================================================================== */
.skip-to-content {
    position: absolute; top: -100%; left: 50%; transform: translateX(-50%);
    background: var(--plum-700); color: white; padding: 12px 24px;
    border-radius: 0 0 12px 12px; font-weight: 600; z-index: 10000;
    transition: top 0.2s;
}
.skip-to-content:focus { top: 0; }

/* ==========================================================================
   NAVIGATION (fixes bare links, adds proper list styling)
   ========================================================================== */
.nav-menu { display: flex; align-items: center; gap: 4px; list-style: none; margin: 0; padding: 0; }
.nav-menu li a {
    font-family: var(--font-body); font-size: 0.88rem; font-weight: 500;
    color: var(--charcoal); padding: 8px 16px; border-radius: 8px;
    transition: all 0.3s; text-decoration: none; display: block;
}
.nav-menu li a:hover { color: var(--plum-700); background: var(--plum-50); }
.nav-menu li.current-menu-item a, .nav-menu li.current_page_item a { color: var(--plum-700); font-weight: 600; }
.nav-cta-btn { padding: 11px 26px !important; font-size: 0.82rem !important; margin-left: 12px; white-space: nowrap; background: linear-gradient(135deg, var(--plum-700), var(--plum-900)) !important; color: #fff !important; border-radius: 50px !important; font-weight: 600 !important; letter-spacing: 0.03em; border: none !important; box-shadow: 0 2px 12px rgba(46,26,71,0.15); transition: all 0.3s ease !important; }
.nav-cta-btn:hover { background: linear-gradient(135deg, var(--gold-500), var(--gold-400)) !important; color: var(--plum-900) !important; transform: translateY(-1px); box-shadow: 0 4px 16px rgba(201,162,39,0.25) !important; }
@media (max-width: 1024px) {
    .nav-menu { flex-direction: column; gap: 0; width: 100%; }
    .nav-menu li { width: 100%; }
    .nav-menu li a { padding: 12px 20px; }
    .nav-cta-btn { margin-left: 0; margin-top: 12px; width: 100%; text-align: center; display: block; }
}

/* ==========================================================================
   SOCIAL PROOF TOAST
   ========================================================================== */
.social-toast {
    position: fixed; bottom: 24px; left: 24px; background: white;
    border-radius: 16px; padding: 14px 20px; display: flex; align-items: center; gap: 12px;
    box-shadow: 0 8px 32px rgba(46,26,71,0.12); z-index: 900;
    transform: translateY(120%); opacity: 0; transition: all 0.5s cubic-bezier(0.25,0.46,0.45,0.94);
    border: 1px solid var(--sand); max-width: 300px;
}
.social-toast.visible { transform: translateY(0); opacity: 1; }
.social-toast-emoji { font-size: 1.3rem; }
.social-toast-text { font-size: 0.82rem; color: var(--charcoal); line-height: 1.4; }

/* ==========================================================================
   HERO SECTION
   ========================================================================== */
.hero-section { padding: clamp(80px,10vw,140px) 0 var(--section-pad); background: var(--ivory); overflow: hidden; }
.hero-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center; }
.hero-badge {
    display: inline-flex; align-items: center; gap: 8px;
    background: rgba(91,58,130,0.06); border: 1px solid rgba(91,58,130,0.1);
    border-radius: 50px; padding: 8px 18px; font-size: 0.78rem; font-weight: 600;
    color: var(--plum-700); margin-bottom: 20px;
}
.hero-badge-dot { width: 8px; height: 8px; background: var(--gold-500); border-radius: 50%; animation: pulse 2s infinite; }
@keyframes pulse { 0%,100% { opacity: 1; } 50% { opacity: 0.4; } }
.hero-title { font-size: clamp(2.8rem,6vw,5.5rem); color: var(--plum-900); letter-spacing: -0.02em; line-height: 1.05; margin-bottom: 20px; }
.hero-description { font-size: 1.1rem; color: var(--warm-gray); line-height: 1.7; margin-bottom: 28px; max-width: 520px; }
.hero-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 32px; }
.hero-streaming { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.hero-streaming-label { font-size: 0.75rem; font-weight: 600; color: var(--warm-gray); text-transform: uppercase; letter-spacing: 0.1em; }
.hero-stream-link { font-size: 0.82rem; font-weight: 600; color: var(--plum-700); transition: color 0.3s; }
.hero-stream-link:hover { color: var(--gold-600); }
.hero-image-wrap { position: relative; }
.hero-image { width: 100%; border-radius: 24px; box-shadow: 0 24px 60px rgba(46,26,71,0.12); }
.hero-image-placeholder { width: 100%; aspect-ratio: 4/5; background: linear-gradient(135deg,var(--plum-700),var(--plum-500)); border-radius: 24px; display: flex; align-items: center; justify-content: center; color: white; font-family: var(--font-display); font-size: 1.5rem; }
.hero-image-accent { position: absolute; bottom: -20px; right: -20px; width: 180px; height: 180px; border: 3px solid var(--gold-300); border-radius: 24px; z-index: -1; opacity: 0.4; }
@media (max-width: 1024px) {
    .hero-grid { grid-template-columns: 1fr; gap: 40px; }
    .hero-image-wrap { order: -1; max-width: 500px; margin: 0 auto; }
    .hero-content { text-align: center; }
    .hero-description { margin-left: auto; margin-right: auto; }
    .hero-actions, .hero-streaming { justify-content: center; }
}

/* ==========================================================================
   ABOUT SECTION
   ========================================================================== */
.about-grid { display: grid; grid-template-columns: 1fr 1.2fr; gap: 60px; align-items: center; }
.about-image-col { position: relative; }
.about-image-wrap { border-radius: 20px; overflow: hidden; box-shadow: 0 24px 60px rgba(46,26,71,0.1); }
.about-image { width: 100%; aspect-ratio: 3/4; object-fit: cover; display: block; }
.about-image-placeholder { width: 100%; aspect-ratio: 3/4; background: linear-gradient(135deg,var(--plum-700),var(--plum-500)); display: flex; align-items: center; justify-content: center; color: white; font-family: var(--font-display); font-size: 1.5rem; }
.about-image-accent { position: absolute; bottom: -20px; right: -20px; width: 200px; height: 200px; border: 3px solid var(--gold-300); border-radius: 20px; z-index: -1; opacity: 0.5; }
.about-heading { color: var(--plum-900); margin-bottom: 16px; }
.about-bio { font-size: 1.05rem; color: var(--charcoal); line-height: 1.85; margin-bottom: 16px; }
.about-bio:last-of-type { margin-bottom: 24px; }
@media (max-width: 1024px) {
    .about-grid { grid-template-columns: 1fr; gap: 40px; }
    .about-image-col { max-width: 400px; margin: 0 auto; }
}

/* ==========================================================================
   TRUST BAR
   ========================================================================== */
.trust-bar { background: var(--plum-900); padding: 40px 0; }
.trust-bar-grid { display: flex; justify-content: center; gap: 48px; flex-wrap: wrap; }
.trust-bar-item { text-align: center; }
.trust-bar-value { font-family: var(--font-display); font-size: 2.2rem; font-weight: 500; color: var(--gold-400); line-height: 1; }
.trust-bar-label { font-size: 0.75rem; font-weight: 600; color: var(--plum-300); text-transform: uppercase; letter-spacing: 0.1em; margin-top: 6px; }

/* ==========================================================================
   AS SEEN ON
   ========================================================================== */
.as-seen-on { background: var(--cream); padding: 32px 0; }
.as-seen-label { text-align: center; font-size: 0.72rem; font-weight: 600; color: var(--warm-gray); text-transform: uppercase; letter-spacing: 0.15em; margin-bottom: 16px; }
.as-seen-logos { display: flex; justify-content: center; gap: 40px; flex-wrap: wrap; align-items: center; }
.as-seen-logo { font-size: 0.85rem; font-weight: 600; color: var(--plum-300); letter-spacing: 0.05em; opacity: 0.6; }

/* ==========================================================================
   QUIZ SECTION
   ========================================================================== */
.quiz-section-inner { text-align: center; max-width: 640px; margin: 0 auto; }
.quiz-heading { color: var(--plum-900); margin-bottom: 12px; }
.quiz-description { font-size: 1.05rem; color: var(--charcoal); margin-bottom: 28px; }

/* ==========================================================================
   LEAD MAGNET
   ========================================================================== */
.lead-magnet-inner { text-align: center; max-width: 600px; margin: 0 auto; }
.lead-magnet-heading { color: white; margin-bottom: 12px; }
.lead-magnet-desc { color: var(--plum-200); margin-bottom: 28px; }
.lead-magnet-form { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
.lead-magnet-input { padding: 14px 24px; border: 2px solid rgba(255,255,255,0.15); border-radius: 50px; background: rgba(255,255,255,0.08); color: white; font-family: var(--font-body); font-size: 0.95rem; min-width: 280px; transition: border-color 0.3s; }
.lead-magnet-input::placeholder { color: var(--plum-300); }
.lead-magnet-input:focus { outline: none; border-color: var(--gold-400); }
.lead-magnet-privacy { font-size: 0.75rem; color: var(--plum-400); margin-top: 12px; }

/* Gold Button */
.btn-gold { background: linear-gradient(135deg, var(--gold-500), var(--gold-400)); color: white !important; text-shadow: 0 1px 2px rgba(0,0,0,0.15); box-shadow: 0 4px 20px rgba(201,162,39,0.3); }
.btn-gold:hover { transform: translateY(-2px); box-shadow: 0 8px 30px rgba(201,162,39,0.45); }

/* ==========================================================================
   BOOKING GRID
   ========================================================================== */
.booking-heading, .sponsor-heading { text-align: center; color: var(--plum-900); margin-bottom: 8px; }
.booking-description, .sponsor-description { text-align: center; color: var(--warm-gray); margin-bottom: 40px; }
.booking-grid, .sponsor-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.sponsor-cta { text-align: center; margin-top: 32px; }
@media (max-width: 768px) { .booking-grid, .sponsor-grid { grid-template-columns: 1fr; } }

/* ==========================================================================
   FAQ
   ========================================================================== */
.faq-container { max-width: 760px; margin: 0 auto; }
.faq-heading { text-align: center; color: var(--plum-900); margin-bottom: 32px; }
.faq-list { display: flex; flex-direction: column; gap: 8px; }
.faq-item { background: white; border: 1px solid var(--sand); border-radius: 16px; overflow: hidden; transition: border-color 0.3s; }
.faq-item.active, .faq-item:hover { border-color: var(--plum-200); }
.faq-question {
    display: flex; justify-content: space-between; align-items: center; width: 100%;
    padding: 20px 24px; background: none; border: none; cursor: pointer;
    font-family: var(--font-body); font-size: 0.95rem; font-weight: 600;
    color: var(--plum-800); text-align: left; gap: 16px;
}
.faq-icon { width: 20px; height: 20px; position: relative; flex-shrink: 0; }
.faq-icon::before, .faq-icon::after { content: ''; position: absolute; background: var(--plum-400); border-radius: 2px; transition: transform 0.3s; }
.faq-icon::before { width: 100%; height: 2px; top: 50%; transform: translateY(-50%); }
.faq-icon::after { width: 2px; height: 100%; left: 50%; transform: translateX(-50%); }
.faq-item.active .faq-icon::after { transform: translateX(-50%) scaleY(0); }
.faq-answer { padding: 0 24px 20px; }
.faq-answer p { font-size: 0.92rem; color: var(--charcoal); line-height: 1.7; }

/* ==========================================================================
   COURSE / DOWNLOAD / MERCH GRIDS
   ========================================================================== */
.courses-heading, .downloads-heading, .merch-heading { color: var(--plum-900); margin-bottom: 8px; }
.courses-description, .downloads-description, .merch-description { color: var(--warm-gray); margin-bottom: 32px; max-width: 600px; }
.courses-grid, .merch-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 24px; }
.downloads-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 24px; }
.courses-cta, .downloads-cta { margin-top: 32px; }
.courses-empty, .downloads-empty, .merch-empty { color: var(--warm-gray); font-style: italic; grid-column: 1/-1; text-align: center; padding: 40px; }

/* Course Card */
.course-card-image { border-radius: 16px 16px 0 0; overflow: hidden; margin: -32px -32px 20px; }
.course-card-image img { width: 100%; height: 200px; object-fit: cover; display: block; }
.course-card-body { display: flex; flex-direction: column; flex: 1; }
.course-card-title { font-family: var(--font-display); font-size: 1.2rem; color: var(--plum-900); margin-bottom: 8px; }
.course-card-excerpt { font-size: 0.88rem; color: var(--warm-gray); line-height: 1.6; margin-bottom: 16px; flex: 1; }
.course-card-price { font-family: var(--font-display); font-size: 1.3rem; color: var(--gold-600); font-weight: 600; margin-bottom: 16px; }

/* Download Card */
.download-card-image { border-radius: 12px; overflow: hidden; margin-bottom: 16px; }
.download-card-image img { width: 100%; height: 160px; object-fit: cover; display: block; }
.download-card-title { font-size: 1rem; font-weight: 600; color: var(--plum-900); margin-bottom: 8px; }
.download-card-excerpt { font-size: 0.82rem; color: var(--warm-gray); line-height: 1.5; margin-bottom: 16px; }
.download-card-footer { display: flex; justify-content: space-between; align-items: center; }
.download-card-price { font-weight: 600; color: var(--gold-600); }

/* Merch Card */
.merch-card-image { border-radius: 16px 16px 0 0; overflow: hidden; margin: -32px -32px 16px; }
.merch-card-image img { width: 100%; height: 240px; object-fit: cover; display: block; }
.merch-card-title { font-size: 0.95rem; margin-bottom: 8px; }
.merch-card-title a { color: var(--charcoal); font-weight: 600; }
.merch-card-title a:hover { color: var(--plum-700); }
.merch-card-price { font-weight: 600; color: var(--gold-600); font-size: 0.9rem; }

/* ==========================================================================
   BOOK SECTION
   ========================================================================== */
.book-grid { display: grid; grid-template-columns: 1fr 1.5fr; gap: 60px; align-items: center; }
.book-cover { width: 100%; border-radius: 12px; box-shadow: 0 16px 48px rgba(46,26,71,0.12); }
.book-cover-placeholder { width: 100%; aspect-ratio: 2/3; background: linear-gradient(135deg,var(--plum-700),var(--plum-500)); border-radius: 12px; display: flex; align-items: center; justify-content: center; color: white; font-family: var(--font-display); font-size: 1.2rem; }
.book-title { color: var(--plum-900); margin-bottom: 12px; }
.book-desc { font-size: 1.05rem; color: var(--charcoal); line-height: 1.85; margin-bottom: 20px; }
.book-features { margin-bottom: 24px; }
.book-feature { font-size: 0.9rem; color: var(--plum-800); padding: 8px 0; }
@media (max-width: 768px) { .book-grid { grid-template-columns: 1fr; } .book-image-col { max-width: 250px; margin: 0 auto; } }

/* ==========================================================================
   RETREAT SECTION
   ========================================================================== */
.retreat-content { text-align: center; max-width: 900px; margin: 0 auto; }
.retreat-heading { color: white; margin-bottom: 12px; }
.retreat-description { color: var(--plum-200); margin-bottom: 36px; max-width: 640px; margin-left: auto; margin-right: auto; }
.retreat-features { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; text-align: left; }
.retreat-pricing { text-align: center; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.retreat-limited { font-size: 0.82rem; color: var(--gold-300); margin-bottom: 16px; font-style: italic; }
@media (max-width: 768px) { .retreat-features { grid-template-columns: 1fr; } }

/* ==========================================================================
   GUEST APPLY
   ========================================================================== */
.guest-apply-inner { text-align: center; max-width: 640px; margin: 0 auto; }
.guest-heading { color: var(--plum-900); margin-bottom: 12px; }
.guest-description { color: var(--charcoal); margin-bottom: 28px; }

/* ==========================================================================
   MEMBERSHIP
   ========================================================================== */
.membership-heading { text-align: center; color: white; margin-bottom: 8px; }
.membership-description { text-align: center; color: var(--plum-200); margin-bottom: 40px; }
.membership-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
@media (max-width: 768px) { .membership-grid { grid-template-columns: 1fr; } }

/* ==========================================================================
   EPISODE CARD
   ========================================================================== */
.episode-card { display: flex; flex-direction: column; }
.episode-card-image { position: relative; border-radius: 16px 16px 0 0; overflow: hidden; margin: -32px -32px 16px; display: block; }
.episode-card-image img { width: 100%; height: 200px; object-fit: cover; display: block; }
.episode-duration { position: absolute; bottom: 8px; right: 8px; background: rgba(46,26,71,0.85); color: white; font-size: 0.72rem; font-weight: 600; padding: 4px 10px; border-radius: 20px; }
.episode-card-body { display: flex; flex-direction: column; flex: 1; }
.episode-card-meta { display: flex; gap: 12px; margin-bottom: 8px; }
.episode-number { font-size: 0.72rem; font-weight: 700; color: var(--gold-600); text-transform: uppercase; letter-spacing: 0.05em; }
.episode-date { font-size: 0.72rem; color: var(--warm-gray); }
.episode-card-title { font-family: var(--font-display); font-size: 1.15rem; margin-bottom: 6px; line-height: 1.3; }
.episode-card-title a { color: var(--plum-900); }
.episode-card-title a:hover { color: var(--gold-600); }
.episode-guest { font-size: 0.82rem; color: var(--plum-500); font-weight: 500; margin-bottom: 8px; }
.episode-card-excerpt { font-size: 0.88rem; color: var(--warm-gray); line-height: 1.6; margin-bottom: 12px; flex: 1; }
.episode-topics { display: flex; gap: 6px; margin-bottom: 16px; }
.episode-topic-tag { font-size: 0.7rem; font-weight: 600; color: var(--plum-600); background: var(--plum-50); padding: 4px 12px; border-radius: 20px; }
.episode-card-actions { display: flex; justify-content: space-between; align-items: center; margin-top: auto; }
.episode-play-btn {
    background: var(--plum-700); color: white; border: none; border-radius: 50px;
    padding: 8px 18px; font-size: 0.78rem; font-weight: 600; cursor: pointer;
    font-family: var(--font-body); transition: all 0.3s;
}
.episode-play-btn:hover { background: var(--plum-600); }
.episode-stream-links { display: flex; gap: 8px; }
.stream-link { font-size: 0.72rem; font-weight: 600; color: var(--plum-400); transition: color 0.3s; }
.stream-link:hover { color: var(--gold-600); }

/* ==========================================================================
   BLOG CARD
   ========================================================================== */
.blog-card { display: flex; flex-direction: column; }
.blog-card-image { border-radius: 16px 16px 0 0; overflow: hidden; margin: -32px -32px 16px; display: block; }
.blog-card-image img { width: 100%; height: 200px; object-fit: cover; display: block; }
.blog-card-body { display: flex; flex-direction: column; flex: 1; }
.blog-card-meta { display: flex; gap: 12px; margin-bottom: 8px; font-size: 0.72rem; }
.blog-card-category { font-weight: 700; color: var(--gold-600); text-transform: uppercase; letter-spacing: 0.05em; }
.blog-card-date, .blog-card-reading { color: var(--warm-gray); }
.blog-card-title { font-family: var(--font-display); font-size: 1.15rem; margin-bottom: 8px; line-height: 1.3; }
.blog-card-title a { color: var(--plum-900); }
.blog-card-title a:hover { color: var(--gold-600); }
.blog-card-excerpt { font-size: 0.88rem; color: var(--warm-gray); line-height: 1.6; margin-bottom: 16px; flex: 1; }
.blog-card-read-more { font-size: 0.82rem; font-weight: 600; color: var(--plum-700); }

/* ==========================================================================
   EVENT CARD
   ========================================================================== */
.event-card { display: flex; flex-direction: column; }
.event-card-header { display: flex; gap: 8px; align-items: center; margin-bottom: 12px; flex-wrap: wrap; }
.event-type-badge { font-size: 0.7rem; font-weight: 700; color: var(--plum-700); background: var(--plum-50); padding: 4px 12px; border-radius: 20px; text-transform: uppercase; letter-spacing: 0.05em; }
.event-live-badge { font-size: 0.65rem; font-weight: 700; color: white; background: #dc2626; padding: 3px 10px; border-radius: 20px; animation: pulse 2s infinite; }
.event-price { font-size: 0.82rem; font-weight: 600; color: var(--gold-600); margin-left: auto; }
.event-card-image { border-radius: 12px; overflow: hidden; margin-bottom: 12px; }
.event-card-image img { width: 100%; height: 160px; object-fit: cover; display: block; }
.event-card-title { font-family: var(--font-display); font-size: 1.1rem; color: var(--plum-900); margin-bottom: 8px; }
.event-card-meta { display: flex; gap: 12px; font-size: 0.82rem; color: var(--warm-gray); margin-bottom: 8px; }
.event-card-excerpt { font-size: 0.85rem; color: var(--warm-gray); line-height: 1.5; margin-bottom: 16px; flex: 1; }
.event-register-btn { font-size: 0.78rem; padding: 8px 18px; margin-top: auto; align-self: flex-start; }

/* ==========================================================================
   TESTIMONIAL CARD
   ========================================================================== */
.testimonial-card { display: flex; flex-direction: column; }
.testimonial-quote-mark { font-family: var(--font-display); font-size: 3rem; line-height: 1; color: var(--gold-400); }
.testimonial-stars { color: var(--gold-500); font-size: 0.9rem; letter-spacing: 2px; margin-bottom: 8px; }
.testimonial-text { font-family: var(--font-display); font-size: 1rem; font-style: italic; color: var(--plum-800); line-height: 1.6; margin-bottom: 16px; flex: 1; }
.testimonial-divider { height: 1px; background: var(--sand); margin-bottom: 16px; }
.testimonial-author { display: flex; align-items: center; gap: 12px; }
.testimonial-avatar { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; }
.testimonial-name { font-size: 0.88rem; font-weight: 600; color: var(--plum-800); }
.testimonial-role { font-size: 0.75rem; color: var(--warm-gray); }

/* Episodes / Events / Testimonials Grid containers */
.episodes-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 24px; }
.events-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 24px; }
.testimonials-track { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 24px; }

/* ==========================================================================
   PAGE HEADER (used in page.php, search.php)
   ========================================================================== */
.bt-page-header { text-align: center; margin-bottom: 48px; padding-top: 20px; }
.bt-page-header .bt-section-label { justify-content: center; }
.bt-page-title { font-size: clamp(2rem, 4vw, 3.5rem); color: var(--plum-900); margin-bottom: 12px; }
.bt-page-subtitle { font-size: 1.1rem; color: var(--warm-gray); max-width: 640px; margin: 0 auto; }
.bt-page-featured-image { border-radius: 20px; overflow: hidden; margin-bottom: 48px; box-shadow: 0 12px 40px rgba(46,26,71,0.1); }
.bt-page-featured-image img { width: 100%; height: auto; display: block; }

/* Single Blog Post Header */
.single-post-category { font-size: 0.72rem; font-weight: 600; color: var(--gold-600); text-transform: uppercase; letter-spacing: 0.1em; margin-bottom: 12px; }
.single-post-title { font-size: clamp(2rem, 4vw, 3.2rem); color: var(--plum-900); }
.single-post-image-wrap { border-radius: 20px; overflow: hidden; box-shadow: 0 12px 40px rgba(46,26,71,0.1); margin-bottom: 32px; }
.single-post-image-wrap img { width: 100%; height: auto; display: block; }
.post-tags { margin-top: 40px; padding-top: 24px; border-top: 1px solid var(--sand); display: flex; gap: 8px; flex-wrap: wrap; }
.post-tag { display: inline-block; padding: 6px 16px; background: var(--plum-50); border-radius: 50px; font-size: 0.8rem; font-weight: 500; color: var(--plum-700); transition: all 0.3s; }
.post-tag:hover { background: var(--plum-100); }

/* Search Results */
.search-results-container { max-width: 860px; }
.search-query-highlight { color: var(--gold-600); }
.search-results-count { color: var(--warm-gray); margin-bottom: 40px; }
.search-results-list { text-align: left; }
.search-result-item { padding: 24px 0; border-bottom: 1px solid var(--sand); }
.search-result-item a { display: block; }
.search-result-type { font-size: 0.72rem; font-weight: 600; color: var(--gold-600); text-transform: uppercase; letter-spacing: 0.1em; margin-bottom: 4px; }
.search-result-title { font-size: 1.2rem; color: var(--plum-900); margin-bottom: 8px; }
.search-result-excerpt { font-size: 0.9rem; color: var(--warm-gray); line-height: 1.6; }
.search-pagination { margin-top: 40px; }
.search-no-results { font-size: 1.05rem; color: var(--charcoal); margin-bottom: 24px; }

/* ==========================================================================
   SINGLE EPISODE PAGE
   ========================================================================== */
.single-episode { padding: var(--section-pad) 0; background: var(--ivory); }
.single-episode-container { max-width: 860px; }
.episode-breadcrumb { margin-bottom: 24px; font-size: 0.82rem; color: var(--warm-gray); }
.episode-breadcrumb a { color: var(--plum-700); }
.episode-topic-label { font-size: 0.72rem; font-weight: 600; color: var(--gold-600); text-transform: uppercase; letter-spacing: 0.1em; margin-bottom: 8px; }
.episode-title { font-size: clamp(2rem,4vw,3rem); color: var(--plum-900); margin-bottom: 12px; }
.episode-meta { display: flex; align-items: center; gap: 20px; color: var(--warm-gray); font-size: 0.88rem; margin-bottom: 32px; flex-wrap: wrap; }
.episode-guest-name { color: var(--plum-700); }
.episode-hero-image { border-radius: 20px; overflow: hidden; margin-bottom: 32px; box-shadow: 0 12px 40px rgba(46,26,71,0.1); }
.episode-hero-image img { width: 100%; height: auto; display: block; }
.episode-video-player { aspect-ratio: 16/9; border-radius: 16px; overflow: hidden; margin-bottom: 32px; background: black; }
.episode-video-player iframe { width: 100%; height: 100%; }
.episode-audio-player { background: var(--plum-900); border-radius: 16px; padding: 24px; margin-bottom: 32px; }
.episode-audio-player iframe { border-radius: 12px; }
.episode-streaming-links { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 40px; }
.episode-stream-btn { display: inline-flex; align-items: center; gap: 6px; padding: 8px 16px; border-radius: 50px; background: white; border: 1px solid var(--sand); font-size: 0.82rem; font-weight: 600; transition: all 0.3s; }
.episode-stream-spotify { color: #1DB954; }
.episode-stream-apple { color: #D43157; }
.episode-stream-youtube { color: #FF0000; }
.episode-stream-amazon { color: #FF9900; }
.episode-stream-btn:hover { transform: translateY(-2px); box-shadow: 0 4px 12px rgba(0,0,0,0.08); }
.episode-show-notes { margin-top: 48px; padding-top: 40px; border-top: 1px solid var(--sand); }
.episode-show-notes h3 { color: var(--plum-900); margin-bottom: 20px; }
.episode-notes-content { color: var(--charcoal); line-height: 1.8; }
.episode-transcript { margin-top: 40px; }
.episode-transcript-toggle {
    background: var(--plum-50); color: var(--plum-700); padding: 12px 24px;
    border-radius: 50px; font-weight: 600; font-size: 0.88rem; cursor: pointer;
    border: 1px solid var(--plum-100); width: 100%; transition: all 0.3s;
    font-family: var(--font-body);
}
.episode-transcript-toggle:hover { background: var(--plum-100); }
.episode-transcript-content { margin-top: 20px; padding: 32px; background: var(--cream); border-radius: 16px; font-size: 0.95rem; line-height: 1.9; color: var(--charcoal); }

/* Print styles */
@media print {
    .site-header, .announcement-bar, .skip-to-content, .sticky-player,
    .back-to-top, .social-toast, .newsletter-cta, .mobile-toggle,
    .hero-actions .btn, .btn, .footer-social, .search-form { display: none !important; }
    body { font-size: 12pt; color: #000; background: #fff; }
    .container { max-width: 100%; padding: 0; }
    .site-footer { border-top: 1px solid #ccc; padding: 12pt 0; }
    a[href]::after { content: " (" attr(href) ")"; font-size: 9pt; color: #666; }
    .bt-section, section { page-break-inside: avoid; padding: 24pt 0; }
    h1, h2, h3 { page-break-after: avoid; color: #000; }
    img { max-width: 100% !important; }
}

/* ==========================================================================
   ACCESSIBILITY
   ========================================================================== */
/* Focus visible for keyboard navigation */
*:focus-visible {
    outline: 3px solid var(--gold-500);
    outline-offset: 2px;
    border-radius: 4px;
}
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
    outline: 3px solid var(--gold-500);
    outline-offset: 2px;
}
/* Remove focus outline for mouse users */
*:focus:not(:focus-visible) { outline: none; }

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
    .reveal { opacity: 1 !important; transform: none !important; }
    .hero-badge-dot { animation: none; }
    .social-toast { transition: none; }
}

/* Minimum touch targets (48px) */
@media (pointer: coarse) {
    .btn, button, .nav-menu li a, .footer-links a, .faq-question {
        min-height: 48px;
        display: inline-flex;
        align-items: center;
    }
    .episode-play-btn, .stream-link, .archive-filter-btn { min-height: 44px; }
}

/* ==========================================================================
   MISSING COMPONENT CLASSES
   ========================================================================== */
/* Pricing cards (shared by booking, membership, sponsorship) */
.pricing-title { font-family: var(--font-display); font-size: 1.3rem; color: var(--plum-900); margin-bottom: 8px; }
.pricing-desc { font-size: 0.88rem; color: var(--warm-gray); line-height: 1.6; margin-bottom: 20px; }

/* Sticky player play icon */
.play-icon { font-size: 1rem; line-height: 1; }

/* Event card meta */
.event-date { font-weight: 600; }
.event-time { color: var(--warm-gray); }

/* WordPress search field */
.search-field {
    width: 100%; padding: 14px 24px; border: 2px solid var(--sand);
    border-radius: 50px; font-family: var(--font-body); font-size: 1rem;
    transition: border-color 0.3s; background: white;
}
.search-field:focus { border-color: var(--plum-400); outline: none; }
.search-submit {
    margin-top: 12px; padding: 12px 32px; background: var(--plum-700);
    color: white; border: none; border-radius: 50px; font-family: var(--font-body);
    font-weight: 600; font-size: 0.9rem; cursor: pointer; transition: background 0.3s;
}
.search-submit:hover { background: var(--plum-600); }

/* WordPress widgets (sidebar / footer) */
.widget { margin-bottom: 32px; }
.widget-title { font-family: var(--font-display); font-size: 1.1rem; color: var(--plum-900); margin-bottom: 12px; }

/* Admin notices */
.notice { padding: 12px 16px; margin: 12px 0; border-left: 4px solid var(--gold-500); background: var(--cream); border-radius: 4px; }
.notice-warning { border-left-color: #f0ad4e; }
.notice-error { border-left-color: #dc2626; }

/* btn-plum variant */
.btn-plum {
    background: var(--plum-700); color: white !important; border: 2px solid var(--plum-700);
}
.btn-plum:hover { background: var(--plum-600); border-color: var(--plum-600); }

/* ==========================================================================
   DARK SECTION CONTEXT OVERRIDES
   
   CRITICAL: These rules fix text visibility for ALL elements inside
   bt-section-plum and bt-section-plum-mid backgrounds.
   
   Uses !important where needed to guarantee cascade wins over
   inherited color:white from the section parent.
   ========================================================================== */

/* --- Section-level text on dark backgrounds --- */
.bt-section-plum .bt-section-label,
.bt-section-plum-mid .bt-section-label { color: var(--gold-400) !important; }
.bt-section-plum .bt-section-label::before,
.bt-section-plum-mid .bt-section-label::before { background: linear-gradient(90deg, var(--gold-400), var(--gold-300)); }

.bt-section-plum h2, .bt-section-plum h3,
.bt-section-plum-mid h2, .bt-section-plum-mid h3 { color: white; }

.bt-section-plum > .container > p,
.bt-section-plum-mid > .container > p { color: var(--plum-200); }

.bt-section-plum a:not(.btn):not(.bt-badge), 
.bt-section-plum-mid a:not(.btn):not(.bt-badge) { color: var(--gold-400); }

/* --- Non-featured (transparent/dark) cards on dark backgrounds --- */
.bt-section-plum .bt-card-plum,
.bt-section-plum-mid .bt-card-plum { color: rgba(255,255,255,0.92); }

.bt-section-plum .bt-card-plum .pricing-title,
.bt-section-plum-mid .bt-card-plum .pricing-title { color: white !important; }

.bt-section-plum .bt-card-plum h3,
.bt-section-plum-mid .bt-card-plum h3 { color: white !important; }

.bt-section-plum .bt-card-plum h4,
.bt-section-plum-mid .bt-card-plum h4 { color: white !important; font-family: var(--font-display); }

.bt-section-plum .bt-card-plum .bt-pricing-amount,
.bt-section-plum-mid .bt-card-plum .bt-pricing-amount { color: var(--gold-400) !important; }

.bt-section-plum .bt-card-plum .bt-pricing-period,
.bt-section-plum-mid .bt-card-plum .bt-pricing-period { color: var(--plum-200) !important; }

.bt-section-plum .bt-card-plum .pricing-desc,
.bt-section-plum-mid .bt-card-plum .pricing-desc { color: var(--plum-200) !important; }

.bt-section-plum .bt-card-plum .bt-pricing-features,
.bt-section-plum-mid .bt-card-plum .bt-pricing-features { color: rgba(255,255,255,0.92) !important; }

.bt-section-plum .bt-card-plum .bt-pricing-features div,
.bt-section-plum-mid .bt-card-plum .bt-pricing-features div { color: rgba(255,255,255,0.92) !important; }

.bt-section-plum .bt-card-plum .retreat-limited,
.bt-section-plum-mid .bt-card-plum .retreat-limited { color: var(--gold-300); }

/* Outline buttons on dark cards: GOLD border + white text for high visibility */
.bt-section-plum .bt-card-plum .btn-outline,
.bt-section-plum-mid .bt-card-plum .btn-outline {
    color: white !important;
    border-color: var(--gold-400) !important;
    background: transparent;
}
.bt-section-plum .bt-card-plum .btn-outline:hover,
.bt-section-plum-mid .bt-card-plum .btn-outline:hover {
    background: var(--gold-400) !important;
    color: var(--plum-900) !important;
    border-color: var(--gold-400) !important;
}

/* Standalone outline buttons on dark sections (not inside cards) */
.bt-section-plum > .container .btn-outline,
.bt-section-plum-mid > .container .btn-outline {
    color: white !important;
    border-color: var(--gold-400) !important;
}
.bt-section-plum > .container .btn-outline:hover,
.bt-section-plum-mid > .container .btn-outline:hover {
    background: var(--gold-400) !important;
    color: var(--plum-900) !important;
    border-color: var(--gold-400) !important;
}

/* --- Featured (white background) card on dark backgrounds --- */
.bt-section-plum .bt-card-featured,
.bt-section-plum-mid .bt-card-featured {
    background: white !important;
    color: var(--charcoal) !important;
}

.bt-section-plum .bt-card-featured h3,
.bt-section-plum-mid .bt-card-featured h3,
.bt-section-plum .bt-card-featured .pricing-title,
.bt-section-plum-mid .bt-card-featured .pricing-title { color: var(--plum-900) !important; }

.bt-section-plum .bt-card-featured .bt-pricing-amount,
.bt-section-plum-mid .bt-card-featured .bt-pricing-amount { color: var(--plum-700) !important; }

.bt-section-plum .bt-card-featured .bt-pricing-period,
.bt-section-plum-mid .bt-card-featured .bt-pricing-period { color: var(--warm-gray) !important; }

.bt-section-plum .bt-card-featured .pricing-desc,
.bt-section-plum-mid .bt-card-featured .pricing-desc { color: var(--warm-gray) !important; }

/* CRITICAL: Feature list text inside featured (white) card MUST be dark */
.bt-section-plum .bt-card-featured .bt-pricing-features,
.bt-section-plum-mid .bt-card-featured .bt-pricing-features { color: var(--charcoal) !important; }

.bt-section-plum .bt-card-featured .bt-pricing-features div,
.bt-section-plum-mid .bt-card-featured .bt-pricing-features div { color: var(--charcoal) !important; }

.bt-section-plum .bt-card-featured .bt-pricing-features li,
.bt-section-plum-mid .bt-card-featured .bt-pricing-features li { color: var(--charcoal) !important; }

.bt-section-plum .bt-card-featured .bt-pricing-features div::before,
.bt-section-plum-mid .bt-card-featured .bt-pricing-features div::before { color: var(--gold-500) !important; }

/* All paragraph text inside featured card */
.bt-section-plum .bt-card-featured p,
.bt-section-plum-mid .bt-card-featured p { color: var(--charcoal) !important; }

.bt-section-plum .bt-card-featured li,
.bt-section-plum-mid .bt-card-featured li { color: var(--charcoal) !important; }

/* Badge on featured card stays dark text on gold */
.bt-section-plum .bt-card-featured .bt-badge-gold,
.bt-section-plum-mid .bt-card-featured .bt-badge-gold { color: white !important; text-shadow: 0 1px 2px rgba(0,0,0,0.12) !important; }

/* Primary button inside featured card (gold gradient, high-contrast on white card) */
.bt-section-plum .bt-card-featured .btn-primary,
.bt-section-plum-mid .bt-card-featured .btn-primary {
    background: linear-gradient(135deg, var(--gold-500), var(--gold-400)) !important;
    color: white !important; text-shadow: 0 1px 2px rgba(0,0,0,0.12) !important;
    border-color: transparent !important;
}
.bt-section-plum .bt-card-featured .btn-primary:hover,
.bt-section-plum-mid .bt-card-featured .btn-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 30px rgba(201,162,39,0.45);
}

/* Lists on dark backgrounds (outside featured cards) */
.bt-section-plum li, .bt-section-plum-mid li { color: var(--plum-200); }

/* Form inputs on dark backgrounds */
.bt-section-plum input, .bt-section-plum textarea,
.bt-section-plum-mid input, .bt-section-plum-mid textarea {
    background: rgba(255,255,255,0.08);
    border-color: rgba(255,255,255,0.15);
    color: white;
}
.bt-section-plum input::placeholder, .bt-section-plum-mid input::placeholder { color: var(--plum-300); }

/* --- Footer (also dark background) --- */
.site-footer .btn-outline { color: white; border-color: rgba(255,255,255,0.45); }
.site-footer .btn-outline:hover { background: var(--gold-400); color: var(--plum-900); border-color: var(--gold-400); }
.site-footer .btn-outline:focus-visible { outline: 2px solid var(--gold-400); outline-offset: 3px; }

/* --- Global UX safety nets --- */
.btn-primary { color: white !important; text-shadow: 0 1px 2px rgba(0,0,0,0.15) !important; }
.bt-badge-gold { color: white !important; font-weight: 700; text-shadow: 0 1px 2px rgba(0,0,0,0.12); }
.bt-card-plum:hover { background: rgba(255,255,255,0.1); }
.bt-card-featured:hover { box-shadow: 0 16px 48px rgba(201,162,39,0.25); }

/* Focus-visible on dark backgrounds */
.bt-section-plum .btn:focus-visible,
.bt-section-plum-mid .btn:focus-visible,
.site-footer .btn:focus-visible {
    outline: 2px solid var(--gold-400);
    outline-offset: 3px;
}

/* Ensure ALL text inside white featured cards is dark, regardless of parent */
.bt-card-featured,
.bt-card-featured * { color: var(--charcoal); }
.bt-card-featured .bt-pricing-amount { color: var(--gold-500); }
.bt-card-featured .bt-pricing-features div::before { color: var(--gold-500); }
.bt-card-featured .bt-badge-gold { background: var(--gold-500); color: white; text-shadow: 0 1px 2px rgba(0,0,0,0.12); }
.bt-card-featured .btn-primary {
    background: linear-gradient(135deg, var(--gold-500), var(--gold-400));
    color: white !important; text-shadow: 0 1px 2px rgba(0,0,0,0.12) !important;
}

/* Dark card text inherits from card-level color rule */

/* Minimum touch target for all interactive elements (48px, WCAG 2.5.5) */
.btn { min-height: 48px; }

/* Ensure links on dark backgrounds are always visible */
.bt-section-plum p a, .bt-section-plum-mid p a {
    color: var(--gold-300) !important;
    text-decoration: underline;
    text-underline-offset: 2px;
}
.bt-section-plum p a:hover, .bt-section-plum-mid p a:hover {
    color: var(--gold-200) !important;
}

/* ==========================================================================
   READING PROGRESS BAR
   ========================================================================== */
.reading-progress-bar {
    position: fixed; top: 0; left: 0; height: 3px; width: 0;
    background: linear-gradient(90deg, var(--gold-500), var(--plum-500));
    z-index: 9999; transition: width 0.1s linear;
    pointer-events: none;
}

/* ==========================================================================
   HEADER SHRINK + HIDE ON SCROLL
   ========================================================================== */
.site-header { transition: transform 0.35s cubic-bezier(0.25,0.46,0.45,0.94), box-shadow 0.3s, height 0.3s; }
.site-header.scrolled { box-shadow: 0 4px 24px rgba(46,26,71,0.08); background: rgba(255,253,248,0.96); }
.site-header.scrolled .container { height: 64px; }
.site-header.scrolled .site-logo-icon { width: 38px; height: 38px; }
.site-header.scrolled .site-logo-text { font-size: 1.15rem; }
.site-header.header-hidden { transform: translateY(-100%); }

/* ==========================================================================
   SHARE / COPY LINK BUTTON
   ========================================================================== */
.share-link-btn {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 8px 18px; border-radius: 50px; border: 1px solid var(--sand);
    background: white; font-size: 0.82rem; font-weight: 600;
    color: var(--plum-700); cursor: pointer; font-family: var(--font-body);
    transition: all 0.3s;
}
.share-link-btn:hover { background: var(--plum-50); border-color: var(--plum-200); }

/* ==========================================================================
   SCREEN READER TEXT
   ========================================================================== */
.screen-reader-text {
    clip: rect(1px,1px,1px,1px); clip-path: inset(50%);
    height: 1px; width: 1px; margin: -1px; overflow: hidden;
    padding: 0; position: absolute; word-wrap: normal;
}
.screen-reader-text:focus {
    clip: auto; clip-path: none; height: auto; width: auto;
    background: var(--plum-700); color: white; padding: 12px 24px;
    z-index: 10000; top: 5px; left: 5px;
}

/* ==========================================================================
   BREADCRUMBS
   ========================================================================== */
.bt-breadcrumb {
    margin-bottom: 24px; font-size: 0.82rem; color: var(--warm-gray);
}
.bt-breadcrumb a { color: var(--plum-700); text-decoration: none; }
.bt-breadcrumb a:hover { text-decoration: underline; }
.breadcrumb-sep { margin: 0 8px; color: var(--sand); }

/* ==========================================================================
   COMMENTS
   ========================================================================== */
.comments-section { margin-top: 48px; padding-top: 40px; border-top: 1px solid var(--sand); }
.comments-title {
    font-family: var(--font-display); font-size: 1.6rem;
    color: var(--plum-900); margin-bottom: 24px;
}
.comment-list { list-style: none; }
.bt-comment { margin-bottom: 24px; }
.bt-comment-body { padding: 20px; background: white; border: 1px solid var(--sand); border-radius: 16px; }
.bt-comment-meta { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.bt-comment-avatar img { width: 48px; height: 48px; border-radius: 50%; }
.bt-comment-author { font-weight: 600; color: var(--plum-800); font-size: 0.9rem; }
.bt-comment-author a { color: var(--plum-700); text-decoration: none; }
.bt-comment-date { font-size: 0.75rem; color: var(--warm-gray); }
.bt-comment-content { font-size: 0.92rem; line-height: 1.7; color: var(--charcoal); }
.bt-comment-content p { margin-bottom: 8px; }
.bt-comment-actions { margin-top: 8px; display: flex; gap: 16px; }
.bt-comment-actions a { font-size: 0.78rem; font-weight: 600; color: var(--plum-500); text-decoration: none; }
.bt-comment-actions a:hover { color: var(--plum-700); }
.bt-comment-moderation { font-size: 0.82rem; color: var(--gold-600); font-style: italic; margin-top: 8px; }
.comments-closed { color: var(--warm-gray); font-style: italic; }

/* Comment Form */
.comment-form { margin-top: 32px; }
.comment-form label { display: block; font-size: 0.82rem; font-weight: 600; color: var(--plum-800); margin-bottom: 6px; }
.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form input[type="url"],
.comment-form textarea {
    width: 100%; padding: 12px 18px; border: 2px solid var(--sand);
    border-radius: 12px; font-family: var(--font-body); font-size: 0.92rem;
    transition: border-color 0.3s; background: white;
}
.comment-form input:focus, .comment-form textarea:focus { border-color: var(--plum-400); outline: none; }
.comment-form p { margin-bottom: 16px; }
.comment-reply-title {
    font-family: var(--font-display); font-size: 1.4rem;
    color: var(--plum-900); margin-bottom: 20px;
}

/* ==========================================================================
   AUTHOR BIO CARD (archive-author)
   ========================================================================== */
.author-bio-card {
    display: flex; align-items: center; gap: 24px;
    margin-bottom: 40px; padding: 32px;
}
.author-bio-avatar img { width: 96px; height: 96px; border-radius: 50%; }
.author-bio-name {
    font-family: var(--font-display); font-size: 1.4rem;
    color: var(--plum-900); margin-bottom: 8px;
}
.author-bio-desc { font-size: 0.92rem; color: var(--warm-gray); line-height: 1.6; }

/* ==========================================================================
   WOOCOMMERCE OVERRIDES
   ========================================================================== */
/* Shop Controls */
.wc-shop-controls {
    display: flex; justify-content: space-between; align-items: center;
    margin-bottom: 32px; padding-bottom: 16px; border-bottom: 1px solid var(--sand);
}
.woocommerce-result-count { font-size: 0.82rem; color: var(--warm-gray); }
.woocommerce-ordering select {
    padding: 8px 16px; border: 1px solid var(--sand); border-radius: 8px;
    font-family: var(--font-body); font-size: 0.82rem; background: white;
}

/* Product Grid */
.woocommerce ul.products { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 24px; list-style: none; padding: 0; }
.wc-product-card { padding: 0; overflow: hidden; }
.wc-product-card-link { text-decoration: none; display: block; }
.wc-product-card-image { position: relative; overflow: hidden; }
.wc-product-card-image img { width: 100%; height: 240px; object-fit: cover; display: block; transition: transform 0.5s; }
.wc-product-card:hover .wc-product-card-image img { transform: scale(1.05); }
.wc-sale-badge { position: absolute; top: 12px; right: 12px; }
.wc-product-card-body { padding: 20px 24px 8px; }
.wc-product-card-category { font-size: 0.68rem; font-weight: 700; color: var(--gold-600); text-transform: uppercase; letter-spacing: 0.1em; margin-bottom: 4px; }
.wc-product-card-title { font-family: var(--font-display); font-size: 1.1rem; color: var(--plum-900); margin-bottom: 6px; font-weight: 500; }
.wc-product-card-price { font-weight: 600; color: var(--gold-600); font-size: 1rem; }
.wc-product-card-price del { color: var(--warm-gray); font-weight: 400; }
.wc-product-card-price ins { text-decoration: none; }
.wc-product-card-action { padding: 8px 24px 24px; }
.wc-product-card-action .button, .wc-product-card-action .add_to_cart_button {
    display: inline-flex; align-items: center; justify-content: center;
    width: 100%; padding: 10px 20px; border-radius: 50px;
    background: var(--plum-700); color: white; border: none;
    font-family: var(--font-body); font-size: 0.85rem; font-weight: 600;
    cursor: pointer; transition: all 0.3s; text-decoration: none; text-align: center;
}
.wc-product-card-action .button:hover { background: var(--plum-600); transform: translateY(-2px); }

/* Single Product */
.wc-breadcrumb { margin-bottom: 24px; font-size: 0.82rem; color: var(--warm-gray); }
.wc-breadcrumb a { color: var(--plum-700); text-decoration: none; }
.wc-single-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: start; }
.wc-single-gallery img { width: 100%; border-radius: 20px; }
.wc-single-gallery .woocommerce-product-gallery__image { border-radius: 20px; overflow: hidden; }
.wc-single-category { font-size: 0.72rem; font-weight: 700; color: var(--gold-600); text-transform: uppercase; letter-spacing: 0.1em; margin-bottom: 8px; }
.wc-single-title { font-family: var(--font-display); font-size: clamp(1.8rem, 3vw, 2.6rem); color: var(--plum-900); margin-bottom: 12px; font-weight: 500; }
.wc-single-price { margin-bottom: 16px; }
.wc-single-price .price { font-family: var(--font-display); font-size: 1.8rem; color: var(--plum-700); font-weight: 600; }
.wc-single-price del .amount { color: var(--warm-gray); font-size: 1.2rem; }
.wc-single-short-desc { font-size: 0.95rem; color: var(--charcoal); line-height: 1.8; margin-bottom: 24px; }
.wc-single-add-to-cart .single_add_to_cart_button {
    padding: 14px 36px; border-radius: 50px; background: var(--plum-700);
    color: white; border: none; font-family: var(--font-body); font-size: 0.95rem;
    font-weight: 600; cursor: pointer; transition: all 0.3s;
}
.wc-single-add-to-cart .single_add_to_cart_button:hover { background: var(--plum-600); transform: translateY(-2px); box-shadow: 0 8px 24px rgba(91,58,130,0.25); }
.wc-single-add-to-cart .quantity input {
    width: 80px; padding: 12px; border: 2px solid var(--sand); border-radius: 12px;
    font-family: var(--font-body); font-size: 1rem; text-align: center; margin-right: 12px;
}
.wc-single-meta { margin-top: 24px; font-size: 0.82rem; color: var(--warm-gray); }
.wc-single-meta a { color: var(--plum-700); }

/* Product Tabs */
.wc-single-tabs { margin-top: 48px; }
.woocommerce-tabs .tabs { display: flex; gap: 4px; list-style: none; margin-bottom: 24px; border-bottom: 2px solid var(--sand); padding: 0; }
.woocommerce-tabs .tabs li { margin: 0; }
.woocommerce-tabs .tabs li a {
    display: block; padding: 12px 24px; font-size: 0.88rem; font-weight: 600;
    color: var(--warm-gray); text-decoration: none; border-bottom: 2px solid transparent;
    margin-bottom: -2px; transition: all 0.3s;
}
.woocommerce-tabs .tabs li.active a { color: var(--plum-700); border-bottom-color: var(--plum-700); }
.woocommerce-tabs .panel { font-size: 0.95rem; line-height: 1.8; color: var(--charcoal); }
.wc-related-products { margin-top: 48px; }

/* WooCommerce Buttons (global overrides) */
.woocommerce .button, .woocommerce button.button, .woocommerce a.button {
    font-family: var(--font-body); border-radius: 50px; font-weight: 600;
    transition: all 0.3s;
}
.woocommerce .button.alt, .woocommerce button.button.alt {
    background: var(--plum-700); border-color: var(--plum-700);
}
.woocommerce .button.alt:hover { background: var(--plum-600); }

/* WooCommerce Messages */
.woocommerce-message, .woocommerce-info {
    border-top-color: var(--gold-500); background: var(--gold-50);
    border-radius: 12px; padding: 16px 20px; font-size: 0.88rem;
}
.woocommerce-error { border-top-color: #dc2626; }

@media (max-width: 768px) {
    .wc-single-grid { grid-template-columns: 1fr; }
    .author-bio-card { flex-direction: column; text-align: center; }
}
@media print {
    .site-header, .announcement-bar, .sticky-player, .back-to-top,
    .social-toast, .newsletter-cta, .skip-to-content, .mobile-toggle,
    .btn, .booking-calendly-wrap, .lead-magnet-form, .newsletter-form { display: none !important; }
    body { background: white; color: black; font-size: 12pt; }
    .container { max-width: 100%; padding: 0; }
    a { color: black; text-decoration: underline; }
    a[href]::after { content: " (" attr(href) ")"; font-size: 0.8em; color: #666; }
    .site-footer { border-top: 1px solid #ccc; padding-top: 12pt; }
    .bt-section, .single-episode, .single-post-header, .single-post-body,
    .archive-blog, .archive-episodes, .error-404-page, .search-results,
    .bt-page-content, .booking-page { padding: 12pt 0; background: white !important; }
    img { max-width: 100% !important; }
    h1, h2, h3 { page-break-after: avoid; color: black; }
}

/* ==========================================================================
   ACCESSIBILITY: Focus, Reduced Motion, Touch Targets
   ========================================================================== */
*:focus-visible {
    outline: 3px solid var(--gold-500);
    outline-offset: 3px;
    border-radius: 4px;
}
a:focus:not(:focus-visible), button:focus:not(:focus-visible) { outline: none; }

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
    .reveal { opacity: 1 !important; transform: none !important; }
    .hero-badge-dot { animation: none; }
}

/* Touch target minimum 44x44px */
.btn, .mobile-toggle, .faq-question, .back-to-top, .episode-play-btn,
.archive-filter-btn, .booking-option-card, .nav-cta-btn {
    min-height: 44px;
}
.footer-social a, .stream-link, .episode-stream-btn {
    min-width: 44px; min-height: 44px;
    display: inline-flex; align-items: center; justify-content: center;
}

/* ==========================================================================
   ARCHIVE PAGES (episodes, blog)
   ========================================================================== */
.archive-filter-bar { display: flex; gap: 8px; justify-content: center; flex-wrap: wrap; margin-bottom: 40px; }
.archive-filter-btn {
    padding: 8px 20px; border-radius: 50px; border: 1px solid var(--sand);
    background: white; font-family: var(--font-body); font-size: 0.82rem;
    font-weight: 600; color: var(--warm-gray); cursor: pointer; transition: all 0.3s;
}
.archive-filter-btn:hover { border-color: var(--plum-200); color: var(--plum-700); }
.archive-filter-btn.active { background: var(--plum-700); color: white; border-color: var(--plum-700); }
.archive-pagination { margin-top: 48px; text-align: center; }
.archive-pagination .nav-links { display: flex; gap: 8px; justify-content: center; align-items: center; }
.archive-pagination a, .archive-pagination span { padding: 10px 16px; border-radius: 10px; font-size: 0.88rem; font-weight: 500; }
.archive-pagination a { color: var(--plum-700); background: white; border: 1px solid var(--sand); transition: all 0.3s; }
.archive-pagination a:hover { background: var(--plum-50); border-color: var(--plum-200); }
.archive-pagination .current { background: var(--plum-700); color: white; }
.archive-empty { text-align: center; padding: 60px 20px; color: var(--warm-gray); font-size: 1.05rem; }
.blog-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 24px; }

/* Section Headers (split and centered variants) */
.section-split-header { display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: 32px; flex-wrap: wrap; gap: 16px; }
.section-split-header h2 { margin-bottom: 0; }
.section-center-header { text-align: center; margin-bottom: 32px; }
.section-center-header h2 { margin-bottom: 0; }

/* ==========================================================================
   404 PAGE
   ========================================================================== */
.error-404-container { text-align: center; max-width: 560px; margin: 0 auto; padding: 40px 0; }
.error-404-emoji { font-size: 4rem; margin-bottom: 16px; }
.error-404-title { font-size: clamp(2rem, 4vw, 3rem); color: var(--plum-900); margin-bottom: 12px; }
.error-404-desc { font-size: 1.05rem; color: var(--warm-gray); margin-bottom: 32px; line-height: 1.7; }
.error-404-actions { display: flex; gap: 12px; justify-content: center; margin-top: 24px; }

/* ==========================================================================
   BOOKING PAGE
   ========================================================================== */
.booking-page-container { max-width: 900px; }
.booking-options { display: flex; flex-direction: column; gap: 20px; margin-bottom: 48px; }
.booking-option-card {
    display: flex; align-items: center; gap: 16px; background: white;
    padding: 24px; border-radius: 16px; border: 1px solid var(--sand);
    transition: all 0.3s; cursor: pointer; width: 100%; text-align: left;
    font-family: var(--font-body);
}
.booking-option-card:hover { border-color: var(--plum-200); box-shadow: 0 8px 24px rgba(46,26,71,0.06); transform: translateY(-2px); }
.booking-option-icon { width: 52px; height: 52px; border-radius: 12px; background: var(--gold-50); display: flex; align-items: center; justify-content: center; font-size: 1.4rem; flex-shrink: 0; }
.booking-option-info { flex: 1; }
.booking-option-name { font-weight: 600; color: var(--plum-800); font-size: 1rem; }
.booking-option-detail { font-size: 0.82rem; color: var(--warm-gray); }
.booking-option-price { font-family: var(--font-display); font-size: 1.4rem; font-weight: 600; color: var(--gold-600); }
.booking-option-cta { color: var(--plum-700); font-weight: 600; font-size: 0.85rem; white-space: nowrap; }
.booking-calendly-wrap { min-height: 600px; border-radius: 20px; overflow: hidden; background: white; box-shadow: 0 4px 24px rgba(46,26,71,0.06); }
.booking-calendly-wrap .calendly-inline-widget { min-width: 320px; height: 630px; }
.booking-testimonial { margin-top: 48px; text-align: center; padding: 32px; background: var(--plum-50); border-radius: 20px; }
.booking-testimonial-text { font-family: var(--font-display); font-style: italic; font-size: 1.2rem; color: var(--plum-800); max-width: 500px; margin: 0 auto 12px; }
.booking-testimonial-author { font-size: 0.85rem; color: var(--gold-600); font-weight: 600; }
@media (max-width: 640px) {
    .booking-option-card { flex-wrap: wrap; }
    .booking-option-price { margin-left: auto; }
    .booking-option-cta { width: 100%; text-align: center; padding-top: 8px; border-top: 1px solid var(--sand); }
}

/* Single post wide container */
.single-post-wide-container { max-width: 1000px; }
@media print {
    .site-header, .announcement-bar, .sticky-player, .back-to-top, .newsletter-cta { display: none; }
    body { color: #000; background: #fff; }
}

/* ==========================================================================
   TIMELINE / HOW IT WORKS
   ========================================================================== */
.bt-timeline-grid { gap: 32px; counter-reset: step; }
.bt-timeline-step { text-align: center; position: relative; }
.bt-timeline-number {
    font-family: var(--font-display); font-size: 2.5rem; font-weight: 700;
    color: var(--gold-400); opacity: 0.5; line-height: 1; margin-bottom: 12px;
}
.bt-timeline-title {
    font-family: var(--font-display); font-size: 1.2rem;
    color: var(--plum-900); margin-bottom: 8px;
}
.bt-timeline-desc { font-size: 0.88rem; color: var(--warm-gray); line-height: 1.6; }
.bt-timeline-step::after {
    content: ''; position: absolute; top: 24px; right: -16px;
    width: 32px; height: 2px; background: var(--sand);
}
.bt-timeline-step:last-child::after { display: none; }
@media (max-width: 768px) { .bt-timeline-step::after { display: none; } }

/* ==========================================================================
   TEAM / SPEAKER GRID
   ========================================================================== */
.bt-team-grid { gap: 24px; }
.bt-team-member { text-align: center; }
.bt-team-avatar { margin-bottom: 12px; }
.bt-team-avatar img { width: 120px; height: 120px; border-radius: 50%; object-fit: cover; margin: 0 auto; display: block; border: 3px solid var(--gold-300); }
.bt-team-name { font-family: var(--font-display); font-size: 1.1rem; color: var(--plum-900); margin-bottom: 4px; }
.bt-team-role { font-size: 0.82rem; color: var(--warm-gray); }

/* ==========================================================================
   VIDEO EMBED SECTION
   ========================================================================== */
.bt-video-section .bt-video-embed { margin-top: 32px; }
.bt-video-embed .wp-block-embed__wrapper { border-radius: 20px; overflow: hidden; box-shadow: 0 16px 48px rgba(46,26,71,0.2); }
.bt-video-embed iframe { border-radius: 20px; }

/* ==========================================================================
   PODCAST PLAYER
   ========================================================================== */
.bt-podcast-player-wrap {
    background: var(--plum-900); border-radius: 20px; padding: 24px;
    margin: 24px 0; box-shadow: 0 8px 32px rgba(46,26,71,0.1);
}
.bt-podcast-player-wrap iframe { border-radius: 12px !important; }

/* ==========================================================================
   GALLERY
   ========================================================================== */
.bt-gallery .wp-block-image { border-radius: 16px; overflow: hidden; }
.bt-gallery .wp-block-image img { transition: transform 0.5s; }
.bt-gallery .wp-block-image:hover img { transform: scale(1.05); }
.bt-gallery figcaption { font-size: 0.82rem; color: var(--warm-gray); text-align: center; padding: 8px 0; }

/* ==========================================================================
   PASSWORD PROTECTED PAGES
   ========================================================================== */
.post-password-form { max-width: 480px; margin: 40px auto; text-align: center; }
.post-password-form label { font-weight: 600; color: var(--plum-800); display: block; margin-bottom: 12px; }
.post-password-form input[type="password"] {
    width: 100%; padding: 14px 20px; border: 2px solid var(--sand);
    border-radius: 50px; font-family: var(--font-body); font-size: 0.95rem;
    margin-bottom: 12px;
}
.post-password-form input[type="submit"] {
    padding: 12px 32px; background: var(--plum-700); color: white;
    border: none; border-radius: 50px; font-family: var(--font-body);
    font-weight: 600; cursor: pointer; transition: all 0.3s;
}
.post-password-form input[type="submit"]:hover { background: var(--plum-600); }

/* ==========================================================================
   COMMENTS
   ========================================================================== */
.bt-comments { margin-top: 48px; padding-top: 40px; border-top: 2px solid var(--sand); }
.comments-title {
    font-family: var(--font-display); font-size: 1.5rem; color: var(--plum-900);
    margin-bottom: 24px; font-weight: 500;
}
.comment-list { list-style: none; padding: 0; }
.comment-list .comment {
    padding: 24px 0; border-bottom: 1px solid var(--sand);
}
.comment-list .comment:last-child { border-bottom: none; }
.comment-list .children { margin-left: 48px; padding-left: 24px; border-left: 2px solid var(--plum-100); }
.comment-body { display: grid; grid-template-columns: 48px 1fr; gap: 16px; }
.comment-body .avatar { border-radius: 50%; width: 48px; height: 48px; }
.comment-author { font-weight: 600; color: var(--plum-800); font-size: 0.9rem; }
.comment-author a { color: var(--plum-700); text-decoration: none; }
.comment-metadata { font-size: 0.75rem; color: var(--warm-gray); margin-bottom: 8px; }
.comment-metadata a { color: var(--warm-gray); text-decoration: none; }
.comment-content { font-size: 0.9rem; color: var(--charcoal); line-height: 1.7; }
.comment-content p { margin-bottom: 8px; }
.reply a {
    font-size: 0.78rem; font-weight: 600; color: var(--plum-500);
    text-decoration: none; text-transform: uppercase; letter-spacing: 0.05em;
}
.reply a:hover { color: var(--plum-700); }
.comment-reply-title {
    font-family: var(--font-display); font-size: 1.3rem; color: var(--plum-900);
    margin-bottom: 16px; font-weight: 500;
}
.comment-notes { font-size: 0.82rem; color: var(--warm-gray); margin-bottom: 16px; }
.comment-notes .required { color: var(--gold-600); }
.comment-form label { display: block; font-size: 0.82rem; font-weight: 600; color: var(--plum-800); margin-bottom: 6px; }
.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form input[type="url"],
.comment-form textarea {
    width: 100%; padding: 12px 16px; border: 2px solid var(--sand);
    border-radius: 12px; font-family: var(--font-body); font-size: 0.9rem;
    transition: border-color 0.3s; background: white;
}
.comment-form input:focus, .comment-form textarea:focus {
    border-color: var(--plum-400); outline: none;
}
.comment-form textarea { min-height: 140px; resize: vertical; }
.comment-form p { margin-bottom: 16px; }
.comment-form .form-submit { margin-top: 8px; }
.comments-closed { font-size: 0.9rem; color: var(--warm-gray); font-style: italic; }
.comment-navigation {
    display: flex; justify-content: space-between; padding: 16px 0;
    font-size: 0.85rem;
}
.comment-navigation a { color: var(--plum-600); text-decoration: none; font-weight: 500; }

/* ==========================================================================
   WOOCOMMERCE OVERRIDES
   ========================================================================== */
.wc-archive .wc-shop-controls {
    display: flex; justify-content: space-between; align-items: center;
    margin-bottom: 32px; padding-bottom: 16px; border-bottom: 1px solid var(--sand);
}
.wc-archive .woocommerce-ordering select {
    padding: 10px 16px; border: 2px solid var(--sand); border-radius: 10px;
    font-family: var(--font-body); font-size: 0.85rem; background: white;
    color: var(--charcoal); cursor: pointer;
}
.wc-archive .woocommerce-result-count { font-size: 0.82rem; color: var(--warm-gray); }
.wc-archive ul.products {
    display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px;
    list-style: none; padding: 0; margin: 0;
}
/* Product card */
.wc-product-card {
    border: 1px solid var(--sand); border-radius: 20px; background: white;
    overflow: hidden; transition: all 0.4s cubic-bezier(0.25,0.46,0.45,0.94);
    display: flex; flex-direction: column;
}
.wc-product-card:hover {
    transform: translateY(-4px); box-shadow: 0 16px 48px rgba(46,26,71,0.08);
    border-color: var(--plum-100);
}
.wc-product-card-link { text-decoration: none; color: inherit; display: block; }
.wc-product-card-image {
    position: relative; overflow: hidden; aspect-ratio: 1;
    background: linear-gradient(135deg, var(--plum-50), var(--cream));
}
.wc-product-card-image img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s; }
.wc-product-card:hover .wc-product-card-image img { transform: scale(1.05); }
.wc-sale-badge {
    position: absolute; top: 12px; right: 12px; z-index: 2;
    padding: 4px 12px; font-size: 0.7rem; font-weight: 700;
    text-transform: uppercase; letter-spacing: 0.08em;
}
.bt-badge-gold { background: var(--gold-500); color: white; text-shadow: 0 1px 2px rgba(0,0,0,0.12); border-radius: 50px; }
.wc-product-card-body { padding: 20px 20px 16px; flex: 1; }
.wc-product-card-category {
    font-size: 0.7rem; font-weight: 600; color: var(--gold-600);
    text-transform: uppercase; letter-spacing: 0.1em; margin-bottom: 6px;
}
.wc-product-card-title {
    font-family: var(--font-display); font-size: 1.1rem; color: var(--plum-900);
    margin: 0 0 8px; font-weight: 500; line-height: 1.3;
}
.wc-product-card-price .price { font-weight: 700; color: var(--plum-700); font-size: 1rem; }
.wc-product-card-price del { color: var(--warm-gray); font-weight: 400; font-size: 0.85rem; }
.wc-product-card-price ins { text-decoration: none; color: var(--plum-700); }
.wc-product-card-action { padding: 0 20px 20px; }
.wc-product-card-action .button,
.wc-product-card-action .add_to_cart_button {
    display: block; width: 100%; padding: 12px; text-align: center;
    background: var(--plum-700); color: white; border: none; border-radius: 50px;
    font-family: var(--font-body); font-size: 0.85rem; font-weight: 600;
    cursor: pointer; transition: background 0.3s; text-decoration: none;
}
.wc-product-card-action .button:hover { background: var(--plum-600); }

/* Single product */
.wc-breadcrumb { font-size: 0.82rem; color: var(--warm-gray); margin-bottom: 32px; }
.wc-breadcrumb a { color: var(--plum-500); text-decoration: none; }
.wc-single-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: start; }
.wc-single-gallery { border-radius: 20px; overflow: hidden; }
.wc-single-gallery img { width: 100%; height: auto; display: block; }
.wc-single-gallery .flex-control-thumbs { display: flex; gap: 8px; margin-top: 12px; list-style: none; padding: 0; }
.wc-single-gallery .flex-control-thumbs li { width: 72px; height: 72px; border-radius: 10px; overflow: hidden; cursor: pointer; border: 2px solid transparent; }
.wc-single-gallery .flex-control-thumbs li img { width: 100%; height: 100%; object-fit: cover; }
.wc-single-category {
    font-size: 0.72rem; font-weight: 700; color: var(--gold-600);
    text-transform: uppercase; letter-spacing: 0.12em; margin-bottom: 8px;
}
.wc-single-title {
    font-family: var(--font-display); font-size: clamp(1.6rem, 3vw, 2.2rem);
    color: var(--plum-900); font-weight: 500; margin-bottom: 12px;
}
.wc-single-price .price { font-size: 1.5rem; font-weight: 700; color: var(--plum-700); }
.wc-single-price del { color: var(--warm-gray); font-size: 1.1rem; }
.wc-single-price ins { text-decoration: none; }
.wc-single-short-desc { font-size: 0.95rem; color: var(--charcoal); line-height: 1.75; margin: 16px 0 24px; }
.wc-single-add-to-cart .single_add_to_cart_button {
    padding: 14px 40px; background: var(--plum-700); color: white;
    border: none; border-radius: 50px; font-family: var(--font-body);
    font-size: 0.95rem; font-weight: 600; cursor: pointer; transition: all 0.3s;
}
.wc-single-add-to-cart .single_add_to_cart_button:hover {
    background: var(--plum-600); transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(91,58,130,0.25);
}
.wc-single-add-to-cart .quantity input {
    width: 60px; padding: 12px; border: 2px solid var(--sand); border-radius: 10px;
    text-align: center; font-family: var(--font-body); font-size: 1rem;
}
.wc-single-meta { margin-top: 24px; font-size: 0.82rem; color: var(--warm-gray); }
.wc-single-meta a { color: var(--plum-500); text-decoration: none; }

/* WooCommerce tabs */
.wc-single-tabs { margin-top: 48px; }
.wc-single-tabs .wc-tabs { display: flex; gap: 4px; list-style: none; padding: 0; border-bottom: 2px solid var(--sand); }
.wc-single-tabs .wc-tabs li a {
    display: block; padding: 12px 24px; font-size: 0.88rem; font-weight: 600;
    color: var(--warm-gray); text-decoration: none; border-bottom: 2px solid transparent;
    margin-bottom: -2px; transition: all 0.3s;
}
.wc-single-tabs .wc-tabs li.active a { color: var(--plum-700); border-bottom-color: var(--plum-700); }
.wc-single-tabs .woocommerce-Tabs-panel { padding: 24px 0; }
.wc-single-tabs .woocommerce-Tabs-panel h2 { font-family: var(--font-display); font-size: 1.3rem; color: var(--plum-900); margin-bottom: 12px; }

/* Related products */
.wc-related-products { margin-top: 48px; padding-top: 40px; border-top: 2px solid var(--sand); }
.wc-related-products h2 { font-family: var(--font-display); font-size: 1.5rem; color: var(--plum-900); margin-bottom: 24px; }
.wc-related-products ul.products { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; list-style: none; padding: 0; }

/* Cart & checkout WooCommerce pages */
.woocommerce-cart .woocommerce, .woocommerce-checkout .woocommerce { max-width: 1000px; margin: 0 auto; }
.woocommerce table.shop_table { width: 100%; border-collapse: collapse; }
.woocommerce table.shop_table th {
    font-size: 0.78rem; font-weight: 700; color: var(--plum-700);
    text-transform: uppercase; letter-spacing: 0.08em; padding: 12px 16px;
    border-bottom: 2px solid var(--sand); text-align: left;
}
.woocommerce table.shop_table td { padding: 16px; border-bottom: 1px solid var(--sand); font-size: 0.9rem; }
.woocommerce table.shop_table img { width: 64px; height: 64px; border-radius: 10px; object-fit: cover; }
.woocommerce .button, .woocommerce button.button {
    padding: 12px 28px; background: var(--plum-700); color: white;
    border: none; border-radius: 50px; font-family: var(--font-body);
    font-size: 0.88rem; font-weight: 600; cursor: pointer; transition: all 0.3s;
}
.woocommerce .button:hover { background: var(--plum-600); }
.woocommerce .button.alt { background: var(--gold-500); color: white; text-shadow: 0 1px 2px rgba(0,0,0,0.15); }
.woocommerce .button.alt:hover { background: var(--gold-400); }
.woocommerce .coupon input { padding: 12px 16px; border: 2px solid var(--sand); border-radius: 10px; font-family: var(--font-body); }
.woocommerce .quantity .qty { width: 60px; padding: 10px; border: 2px solid var(--sand); border-radius: 10px; text-align: center; }
.woocommerce-checkout h3 { font-family: var(--font-display); font-size: 1.3rem; color: var(--plum-900); margin-bottom: 16px; }
.woocommerce-checkout .form-row label { font-size: 0.82rem; font-weight: 600; color: var(--plum-800); margin-bottom: 4px; }
.woocommerce-checkout .form-row input,
.woocommerce-checkout .form-row select,
.woocommerce-checkout .form-row textarea {
    width: 100%; padding: 12px 16px; border: 2px solid var(--sand);
    border-radius: 12px; font-family: var(--font-body); font-size: 0.9rem;
}
.woocommerce-message, .woocommerce-info, .woocommerce-error {
    padding: 14px 20px; border-radius: 12px; margin-bottom: 20px;
    font-size: 0.88rem; border: none;
}
.woocommerce-message { background: #ecfdf5; color: #065f46; border-left: 4px solid #10b981; }
.woocommerce-info { background: var(--plum-50); color: var(--plum-800); border-left: 4px solid var(--plum-400); }
.woocommerce-error { background: #fef2f2; color: #991b1b; border-left: 4px solid #ef4444; }
.woocommerce-error li { list-style: none; }

/* ==========================================================================
   AUTHOR BIO CARD (archive.php)
   ========================================================================== */
.author-bio-card {
    display: flex; gap: 24px; align-items: center; padding: 28px;
    margin-bottom: 32px;
}
.author-bio-avatar img { width: 96px; height: 96px; border-radius: 50%; }
.author-bio-name { font-family: var(--font-display); font-size: 1.3rem; color: var(--plum-900); margin-bottom: 4px; }
.author-bio-desc { font-size: 0.88rem; color: var(--charcoal); line-height: 1.6; }

/* ==========================================================================
   SCREEN READER TEXT
   ========================================================================== */
.screen-reader-text, .sr-only {
    clip: rect(1px, 1px, 1px, 1px); position: absolute; height: 1px;
    width: 1px; overflow: hidden; word-wrap: normal;
}
.screen-reader-text:focus {
    clip: auto; display: block; width: auto; height: auto;
    padding: 12px 20px; background: var(--plum-700); color: white;
    font-size: 0.88rem; font-weight: 600; z-index: 10000; border-radius: 0 0 8px 0;
}

/* ==========================================================================
   GUTENBERG BLOCK OVERRIDES
   ========================================================================== */
.wp-block-table table { width: 100%; border-collapse: collapse; }
.wp-block-table th {
    font-size: 0.82rem; font-weight: 700; color: var(--plum-700);
    text-transform: uppercase; letter-spacing: 0.05em;
    padding: 12px 16px; border-bottom: 2px solid var(--plum-100); text-align: left;
}
.wp-block-table td { padding: 12px 16px; border-bottom: 1px solid var(--sand); font-size: 0.9rem; color: var(--charcoal); }
.wp-block-table tr:nth-child(even) { background: var(--cream); }

.wp-block-quote {
    border-left: 4px solid var(--gold-400); padding: 16px 24px; margin: 24px 0;
    background: var(--cream); border-radius: 0 12px 12px 0;
}
.wp-block-quote p { font-family: var(--font-display); font-size: 1.1rem; font-style: italic; color: var(--plum-800); line-height: 1.6; }
.wp-block-quote cite { font-family: var(--font-body); font-size: 0.82rem; color: var(--warm-gray); font-style: normal; }

.wp-block-pullquote {
    border: none; padding: 40px; text-align: center;
    background: linear-gradient(135deg, var(--plum-50), var(--cream));
    border-radius: 20px; margin: 32px 0;
}
.wp-block-pullquote blockquote p { font-family: var(--font-display); font-size: 1.4rem; color: var(--plum-900); }
.wp-block-pullquote cite { color: var(--gold-600); font-weight: 600; }

.wp-block-separator { border: none; border-top: 2px solid var(--sand); margin: 32px auto; max-width: 120px; }
.wp-block-separator.is-style-wide { max-width: 100%; }
.wp-block-separator.is-style-dots { border: none; text-align: center; }
.wp-block-separator.is-style-dots::before { content: '· · ·'; color: var(--gold-500); font-size: 1.5rem; letter-spacing: 1em; }

.wp-block-button__link {
    padding: 12px 28px; border-radius: 50px; font-family: var(--font-body);
    font-weight: 600; font-size: 0.88rem; transition: all 0.3s; text-decoration: none;
}
.wp-block-button__link:not(.has-background) { background: var(--plum-700); color: white; }
.wp-block-button__link:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgba(91,58,130,0.2); }
.is-style-outline .wp-block-button__link { background: transparent; border: 2px solid var(--plum-300); color: var(--plum-700); }

.wp-block-cover { border-radius: 20px; overflow: hidden; min-height: 400px; }
.wp-block-image img { border-radius: 16px; }
.wp-block-image figcaption { font-size: 0.82rem; color: var(--warm-gray); text-align: center; margin-top: 8px; }

.wp-block-columns { gap: 32px; }
.wp-block-group.has-background { border-radius: 20px; padding: 32px; }

/* Code blocks */
.wp-block-code, .wp-block-preformatted {
    background: var(--plum-900); color: var(--gold-200); padding: 24px;
    border-radius: 12px; font-size: 0.85rem; overflow-x: auto;
}


/* ==========================================================================
   SHARE TOOLBAR
   ========================================================================== */
.share-toolbar {
    display: flex; gap: 8px; align-items: center; margin: 24px 0;
    padding: 16px 0; border-top: 1px solid var(--sand); border-bottom: 1px solid var(--sand);
}
.share-toolbar-label { font-size: 0.78rem; font-weight: 600; color: var(--warm-gray); text-transform: uppercase; letter-spacing: 0.08em; margin-right: 8px; }
.share-btn {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 8px 16px; border-radius: 50px; font-size: 0.78rem; font-weight: 600;
    text-decoration: none; border: 1px solid var(--sand); color: var(--charcoal);
    background: white; cursor: pointer; transition: all 0.3s;
    font-family: var(--font-body);
}
.share-btn:hover { background: var(--plum-50); border-color: var(--plum-200); color: var(--plum-700); }
.share-btn-copied { background: #ecfdf5; border-color: #10b981; color: #065f46; }

/* ==========================================================================
   PLUGIN PAGE CONTENT: Full-Bleed Sections
   Allows bt-section elements inside the narrow page-content container
   to break out to full viewport width with colored backgrounds.
   ========================================================================== */
.bt-page-content { overflow-x: clip; }
.bt-page-content .container > .page-content > .wp-block-group.bt-section,
.bt-page-content .page-content > .wp-block-group.bt-section {
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(-50vw + 50%);
    margin-right: calc(-50vw + 50%);
    padding-left: 0;
    padding-right: 0;
    box-sizing: border-box;
}
.bt-page-content .bt-section > .container,
.bt-page-content .bt-section > .wp-block-group__inner-container {
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 0 clamp(20px, 4vw, 40px);
}
.container-narrow { max-width: 540px !important; }

/* ==========================================================================
   PLUGIN PAGE CONTENT: Checklist (gold checkmarks)
   ========================================================================== */
.bt-checklist { list-style: none; padding-left: 0; margin: 24px 0; }
.bt-checklist li {
    position: relative;
    padding-left: 32px;
    margin-bottom: 14px;
    line-height: 1.7;
    color: var(--charcoal);
}
.bt-checklist li::before {
    content: '✓';
    position: absolute;
    left: 0;
    top: 0;
    color: var(--gold-500);
    font-weight: 700;
    font-size: 1.1em;
    line-height: 1.7;
}
.bt-section-plum .bt-checklist li,
.bt-section-gradient .bt-checklist li { color: rgba(255,255,255,0.92); }
.bt-section-plum .bt-checklist li::before,
.bt-section-gradient .bt-checklist li::before { color: var(--gold-400); }
.bt-section-plum .bt-checklist li a,
.bt-section-gradient .bt-checklist li a { color: var(--gold-300) !important; text-decoration: underline; }

/* ==========================================================================
   PLUGIN PAGE CONTENT: Credential Grid (2x2 on desktop)
   ========================================================================== */
.credential-grid {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin: 32px 0;
}
.credential-grid .bt-credential-item,
.credential-grid .wp-block-column.bt-credential-item {
    flex-basis: auto !important;
    background: white;
    border: 1px solid var(--sand);
    border-radius: 16px;
    padding: 20px 24px;
    text-align: center;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.credential-grid .bt-credential-item:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(46,26,71,0.06);
}
.credential-grid .bt-credential-item p { margin: 0; font-size: 0.92rem; color: var(--charcoal); line-height: 1.5; }
.credential-grid .bt-credential-item strong { color: var(--plum-800); }

/* ==========================================================================
   PLUGIN PAGE CONTENT: Form/Embed Placeholders
   ========================================================================== */
.bt-form-placeholder {
    background: var(--cream) !important;
    border: 2px dashed var(--sand);
    border-radius: 20px;
    padding: 48px 32px !important;
    text-align: center;
    margin: 32px 0;
}
.bt-embed-label {
    font-family: var(--font-display);
    font-size: 1.2rem;
    font-weight: 600;
    color: var(--plum-700);
    margin-bottom: 8px !important;
}
.bt-embed-hint {
    font-size: 0.85rem;
    color: var(--warm-gray);
    line-height: 1.6;
    max-width: 480px;
    margin: 0 auto !important;
}
.bt-section-cream .bt-form-placeholder { background: white !important; }

/* ==========================================================================
   PLUGIN PAGE CONTENT: Helper Text
   ========================================================================== */
.bt-helper-text {
    font-size: 0.88rem;
    color: var(--warm-gray);
    font-style: italic;
    text-align: center;
    line-height: 1.6;
}
.bt-section-plum .bt-helper-text,
.bt-section-gradient .bt-helper-text { color: var(--plum-200); }

/* ==========================================================================
   PLUGIN PAGE CONTENT: Pull Quotes / Testimonials
   ========================================================================== */
.bt-pullquote {
    border: none !important;
    padding: 48px 40px !important;
    margin: 40px 0 !important;
    background: linear-gradient(135deg, var(--plum-50) 0%, rgba(201,162,39,0.06) 100%);
    border-radius: 24px;
    text-align: center;
    position: relative;
}
.bt-pullquote::before {
    content: '\201C';
    position: absolute;
    top: -8px;
    left: 32px;
    font-family: var(--font-display);
    font-size: 6rem;
    line-height: 1;
    color: var(--gold-300);
    opacity: 0.5;
}
.bt-pullquote blockquote {
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
}
.bt-pullquote blockquote p {
    font-family: var(--font-display);
    font-size: clamp(1.15rem, 2vw, 1.4rem);
    font-weight: 400;
    color: var(--plum-800);
    line-height: 1.6;
    font-style: italic;
    margin-bottom: 16px !important;
}
.bt-pullquote blockquote cite {
    font-family: var(--font-body);
    font-size: 0.88rem;
    font-style: normal;
    font-weight: 600;
    color: var(--gold-600);
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

/* ==========================================================================
   PLUGIN PAGE CONTENT: Platform Cards (Listen page)
   ========================================================================== */
.bt-platform-card {
    text-align: center;
    padding: 32px 24px !important;
    border-radius: 20px !important;
    border: 1px solid var(--sand) !important;
    background: white !important;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.bt-platform-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 32px rgba(46,26,71,0.08);
}
.bt-platform-card h3 { color: var(--plum-800) !important; margin-bottom: 8px; }
.bt-platform-card p { color: var(--warm-gray); font-size: 0.92rem; }

/* ==========================================================================
   PLUGIN PAGE CONTENT: Bio Links Page
   ========================================================================== */
.bt-links-page {
    max-width: 480px !important;
    margin: 40px auto !important;
    padding: 40px 24px !important;
    text-align: center;
}
.bt-links-page h2 {
    font-family: var(--font-display) !important;
    font-size: clamp(1.8rem, 4vw, 2.6rem);
    color: var(--plum-900);
    margin-bottom: 4px;
}
.bt-links-tagline {
    color: var(--warm-gray) !important;
    font-size: 0.95rem;
    margin-bottom: 28px !important;
    letter-spacing: 0.04em;
}
.bt-links-page .wp-block-buttons {
    margin: 0 0 10px 0 !important;
    gap: 0 !important;
}
.bt-links-page .wp-block-button { width: 100%; }
.bt-links-page .wp-block-button__link {
    width: 100%;
    padding: 14px 24px !important;
    border-radius: 12px !important;
    font-weight: 600 !important;
    font-size: 0.95rem;
    letter-spacing: 0.01em;
}

/* ==========================================================================
   PLUGIN PAGE CONTENT: Separator
   ========================================================================== */
.bt-separator {
    border-color: var(--sand) !important;
    opacity: 1 !important;
    margin: 40px auto !important;
    max-width: 120px !important;
}

/* ==========================================================================
   PLUGIN PAGE CONTENT: WP Block Columns Grid Override
   Forces grid layout so cards are equal height.
   ========================================================================== */
.booking-grid {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 24px !important;
}
.booking-grid > .wp-block-column { flex-basis: auto !important; width: auto !important; }

/* Trust bar grid in plum sections */
.trust-bar-grid {
    display: flex !important;
    justify-content: center !important;
    gap: clamp(32px, 5vw, 64px) !important;
    flex-wrap: wrap;
    padding: 12px 0;
}
.trust-bar-grid > .wp-block-column {
    flex: 0 0 auto !important;
    width: auto !important;
}

/* Timeline grid */
.bt-timeline-grid {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 32px !important;
}
.bt-timeline-grid > .wp-block-column { flex-basis: auto !important; width: auto !important; }
.bt-timeline-number {
    font-family: var(--font-display) !important;
    font-size: 2.4rem !important;
    font-weight: 500 !important;
    color: var(--gold-400) !important;
    line-height: 1 !important;
    margin-bottom: 8px !important;
}
.bt-timeline-step { text-align: center; position: relative; }
.bt-timeline-step h3 { font-size: 1.2rem; color: var(--plum-800); margin-bottom: 8px; }
.bt-timeline-desc { font-size: 0.88rem !important; color: var(--warm-gray) !important; line-height: 1.65 !important; }

/* Timeline connector dots */
.bt-timeline-step::after {
    content: '';
    position: absolute;
    top: 28px;
    right: -18px;
    width: 6px;
    height: 6px;
    background: var(--gold-400);
    border-radius: 50%;
}
.bt-timeline-step:last-child::after { display: none; }

/* ==========================================================================
   PLUGIN PAGE CONTENT: Pricing Card Enhancements
   Equal-height cards, proper spacing, polished details.
   ========================================================================== */
.booking-grid .bt-pricing-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 36px 28px;
    border-radius: 20px;
    border: 1px solid var(--sand);
    background: white;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.booking-grid .bt-pricing-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 16px 48px rgba(46,26,71,0.08);
}
.booking-grid .bt-card-featured {
    border: 2px solid var(--gold-400) !important;
    box-shadow: 0 12px 40px rgba(201,162,39,0.12);
    position: relative;
    z-index: 1;
}
.booking-grid .bt-pricing-card .wp-block-buttons {
    margin-top: auto !important;
    padding-top: 16px;
}
.booking-grid .bt-pricing-card .pricing-desc {
    flex: 1;
    font-size: 0.9rem;
    color: var(--warm-gray);
    line-height: 1.65;
}

/* ==========================================================================
   PLUGIN PAGE CONTENT: Mobile Responsive
   ========================================================================== */
@media (max-width: 768px) {
    .booking-grid { grid-template-columns: 1fr !important; }
    .credential-grid { grid-template-columns: 1fr !important; }
    .bt-timeline-grid { grid-template-columns: 1fr !important; }
    .trust-bar-grid { gap: 24px 40px !important; }
    .bt-timeline-step::after { display: none; }
    .bt-pullquote { padding: 32px 24px !important; }
    .bt-pullquote::before { font-size: 4rem; left: 16px; }
    .bt-form-placeholder { padding: 32px 20px !important; }
    .bt-page-content .bt-section { padding-left: 0; padding-right: 0; }
    .booking-grid .bt-pricing-card { max-width: 420px; margin: 0 auto; width: 100%; }
    .credential-grid .bt-credential-item { padding: 16px 20px; }
    .trust-bar-grid > .wp-block-column { min-width: 100px; }
}

@media (max-width: 480px) {
    .bt-pullquote { padding: 24px 16px !important; }
    .bt-pullquote::before { display: none; }
    .bt-form-placeholder { padding: 24px 16px !important; }
    .bt-links-page { padding: 24px 16px !important; }
    .bt-links-page .wp-block-button__link { padding: 12px 20px !important; font-size: 0.9rem; }
    .trust-bar-grid { gap: 20px 24px !important; justify-content: space-around !important; }
    .trust-bar-value { font-size: 1.6rem !important; }
    .trust-bar-label { font-size: 0.68rem !important; }
    .bt-timeline-number { font-size: 1.8rem !important; }
    .credential-grid .bt-credential-item { text-align: left; }
}

@media (pointer: coarse) {
    .booking-grid .wp-block-button__link,
    .bt-links-page .wp-block-button__link,
    .bt-platform-card .wp-block-button__link { min-height: 52px; display: inline-flex; align-items: center; justify-content: center; }
}

@media print {
    .bt-form-placeholder { border-style: solid; border-color: #ccc; }
    .bt-pullquote { background: #f9f9f9 !important; }
    .bt-links-page .wp-block-button.is-style-outline .wp-block-button__link { border-color: #333; color: #333; }
}

/* ==========================================================================
   RESPONSIVE WOOCOMMERCE
   ========================================================================== */
@media (max-width: 900px) {
    .wc-archive ul.products { grid-template-columns: repeat(2, 1fr); }
    .wc-single-grid { grid-template-columns: 1fr; gap: 32px; }
    .wc-related-products ul.products { grid-template-columns: repeat(2, 1fr); }
    .wc-archive .wc-shop-controls { flex-direction: column; gap: 12px; align-items: flex-start; }
}
@media (max-width: 540px) {
    .wc-archive ul.products { grid-template-columns: 1fr; }
    .wc-related-products ul.products { grid-template-columns: 1fr; }
    .comment-list .children { margin-left: 16px; padding-left: 16px; }
    .author-bio-card { flex-direction: column; text-align: center; }
}

/* ==========================================================================
   BT PREMIUM PAGE DESIGNER COMPATIBILITY
   Resets theme constraints for pages using the Premium Page Designer plugin.
   The bt-premium-page body class is added by the theme for any page using
   a BT Premium template (templates/page-premium-*.php).
   ========================================================================== */

/* Full-bleed wrapper (template: page-bt-premium.php) */
.bt-premium-wrapper {
    margin: 0;
    padding: 0;
}

/* Fallback: if premium content renders inside the standard page.php template,
   break out of the .container and suppress the page header/padding */
.bt-premium-page .bt-page-content {
    padding: 0;
    background: transparent;
}

.bt-premium-page .bt-page-content .container {
    max-width: 100%;
    padding: 0;
}

.bt-premium-page .bt-page-header {
    display: none;
}

.bt-premium-page .bt-page-featured-image {
    display: none;
}

/* Reset theme typography within premium sections so plugin styles win.
   These selectors target the theme's .page-content overrides and
   neutralize them inside any bt- prefixed component. */
.bt-premium-page .page-content h1,
.bt-premium-page .page-content h2,
.bt-premium-page .page-content h3,
.bt-premium-page .page-content h4 {
    font-family: inherit;
    font-size: inherit;
    color: inherit;
    margin: inherit;
    font-weight: inherit;
    line-height: inherit;
}

.bt-premium-page .page-content p {
    margin-bottom: inherit;
    color: inherit;
    line-height: inherit;
}

.bt-premium-page .page-content a {
    color: inherit;
    font-weight: inherit;
    border-bottom: none;
    transition: inherit;
}

.bt-premium-page .page-content a:hover {
    color: inherit;
    border-bottom-color: inherit;
}

.bt-premium-page .page-content blockquote {
    font-family: inherit;
    font-size: inherit;
    font-style: inherit;
    color: inherit;
    border-left: inherit;
    padding: inherit;
    margin: inherit;
    background: inherit;
    border-radius: inherit;
}

.bt-premium-page .page-content ul,
.bt-premium-page .page-content ol {
    margin: inherit;
}

.bt-premium-page .page-content li {
    margin-bottom: inherit;
    line-height: inherit;
}

.bt-premium-page .page-content li::marker {
    color: inherit;
}

/* Ensure the newsletter CTA in footer still displays normally */
.bt-premium-page .newsletter-cta {
    margin-top: 0;
}

/* Hide the theme newsletter CTA on premium pages (they have their own CTA footer).
   The newsletter-cta lives in footer.php outside <main>, but is still a child of <body>. */
body.bt-premium-page .newsletter-cta {
    display: none;
}

/* Reset theme image styling within premium components */
.bt-premium-page .page-content img,
.bt-premium-page .bt-premium-wrapper img {
    border-radius: inherit;
    box-shadow: none;
}

/* ═══════════════════════════════════════════════════════════════
   DROPDOWN / SUBMENU NAVIGATION
   ═══════════════════════════════════════════════════════════════ */

/* Parent items with children */
.nav-menu .menu-item-has-children { position: relative; }
.nav-menu .menu-item-has-children > a::after {
    content: '';
    display: inline-block;
    width: 6px; height: 6px;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: rotate(45deg);
    margin-left: 6px;
    margin-bottom: 2px;
    opacity: 0.5;
    transition: transform 0.2s;
}
.nav-menu .menu-item-has-children:hover > a::after { transform: rotate(-135deg); }

/* Dropdown panel */
.nav-menu .sub-menu {
    display: none;
    position: absolute;
    top: calc(100% + 8px);
    left: 50%;
    transform: translateX(-50%);
    min-width: 220px;
    background: rgba(255, 253, 248, 0.98);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border: 1px solid rgba(240, 230, 214, 0.6);
    border-radius: 12px;
    padding: 8px 0;
    box-shadow: 0 12px 40px rgba(30, 10, 46, 0.12);
    z-index: 200;
    list-style: none;
}
.nav-menu .menu-item-has-children:hover > .sub-menu { display: block; }

/* Dropdown items */
.nav-menu .sub-menu li { padding: 0; }
.nav-menu .sub-menu a {
    display: block;
    padding: 10px 20px;
    font-size: 0.88rem;
    color: var(--charcoal, #3A3228);
    text-decoration: none;
    transition: all 0.2s;
    white-space: nowrap;
}
.nav-menu .sub-menu a:hover {
    background: rgba(91, 58, 130, 0.04);
    color: var(--plum-700, #5B3A82);
    padding-left: 24px;
}
.nav-menu .sub-menu .current-menu-item > a {
    color: var(--gold-500, #C9A227);
    font-weight: 600;
}

/* Dropdown description (if using Walker with desc) */
.nav-menu .sub-menu .menu-item-description {
    display: block;
    font-size: 0.75rem;
    color: var(--warm-gray, #8A7F72);
    margin-top: 2px;
    line-height: 1.3;
}

/* Mobile: expand submenus in hamburger */
@media (max-width: 768px) {
    .nav-menu .sub-menu {
        position: static;
        transform: none;
        box-shadow: none;
        border: none;
        border-radius: 0;
        background: rgba(91, 58, 130, 0.03);
        padding: 0 0 0 16px;
        display: none;
    }
    .nav-menu .menu-item-has-children.open > .sub-menu { display: block; }
    .nav-menu .sub-menu a {
        padding: 8px 16px;
        font-size: 0.85rem;
    }
}

/* ==========================================================================
   CRITICAL: Override WP theme.json link colors for buttons
   This ensures buttons always show correct text color, not link color.
   ========================================================================== */
a.btn, a.btn:link, a.btn:visited, a.btn:active,
a.btn-primary, a.btn-primary:link, a.btn-primary:visited,
a.btn-plum, a.btn-plum:link, a.btn-plum:visited,
a.btn-gold, a.btn-gold:link, a.btn-gold:visited,
a.nav-cta-btn, a.nav-cta-btn:link, a.nav-cta-btn:visited,
a.btn-outline:visited {
    text-decoration: none !important;
}
a.btn-primary, a.btn-primary:link, a.btn-primary:visited,
a.btn-gold, a.btn-gold:link, a.btn-gold:visited,
a.nav-cta-btn, a.nav-cta-btn:link, a.nav-cta-btn:visited {
    color: white !important;
    text-shadow: 0 1px 2px rgba(0,0,0,0.15);
}
a.btn-primary:hover, a.btn-gold:hover, a.nav-cta-btn:hover {
    color: var(--plum-900) !important;
    text-shadow: none;
}
a.btn-plum, a.btn-plum:link, a.btn-plum:visited {
    color: white !important;
}
a.btn-outline, a.btn-outline:link, a.btn-outline:visited {
    color: var(--plum-700) !important;
}
a.btn-outline:hover {
    color: white !important;
}
/* Outline buttons on dark sections */
.hero-section a.btn-outline, .hero-section a.btn-outline:link, .hero-section a.btn-outline:visited,
.newsletter-cta a.btn-outline, .newsletter-cta a.btn-outline:link, .newsletter-cta a.btn-outline:visited,
.bt-section-gradient a.btn-outline, .bt-section-gradient a.btn-outline:link, .bt-section-gradient a.btn-outline:visited,
.site-footer a.btn-outline, .site-footer a.btn-outline:link, .site-footer a.btn-outline:visited {
    color: white !important;
    border-color: var(--gold-300) !important;
    background: rgba(255,255,255,0.08) !important;
}
.hero-section a.btn-outline:hover,
.newsletter-cta a.btn-outline:hover,
.bt-section-gradient a.btn-outline:hover {
    background: var(--gold-500) !important;
    color: white !important;
    border-color: var(--gold-500) !important;
}

/* Text on dark sections must be white */
.hero-section, .hero-section p, .hero-section span,
.newsletter-cta, .newsletter-cta p,
.bt-section-gradient, .bt-section-gradient p { color: rgba(255,255,255,0.9); }
.hero-section h1, .hero-section h2, .newsletter-cta h2,
.bt-section-gradient h2 { color: white !important; }
.hero-section a:not(.btn), .hero-section a:not(.btn):visited { color: var(--gold-300) !important; }

/* ==========================================================================
   VIDEO-STYLE BACKGROUND EFFECTS & ANIMATION UTILITIES
   CSS-only rich visual effects for premium sections.
   ========================================================================== */

/* ---------- Keyframes ---------- */
@keyframes bt-particle-drift {
    0%   { transform: translateY(0) translateX(0); }
    25%  { transform: translateY(-12px) translateX(6px); }
    50%  { transform: translateY(-6px) translateX(-4px); }
    75%  { transform: translateY(-18px) translateX(8px); }
    100% { transform: translateY(0) translateX(0); }
}
@keyframes bt-wave-shift {
    0%   { background-position: 0% 50%; }
    50%  { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}
@keyframes bt-glow-pulse {
    0%   { transform: translate(-50%,-50%) scale(0.4); opacity: 0.6; }
    100% { transform: translate(-50%,-50%) scale(1.6); opacity: 0; }
}
@keyframes bt-float-up {
    0%, 100% { transform: translateY(0); }
    50%      { transform: translateY(-10px); }
}
@keyframes bt-rotate-slow {
    from { transform: rotate(0deg); }
    to   { transform: rotate(360deg); }
}
@keyframes bt-host-gradient-shift {
    0%   { background-position: 0% 50%; }
    50%  { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}
@keyframes bt-mic-bob {
    0%, 100% { transform: translate(-50%,-50%) translateY(0); }
    50%      { transform: translate(-50%,-50%) translateY(-6px); }
}

/* 1. Particle / starfield effect */
.bt-bg-particles {
    position: relative;
    overflow: hidden;
}
.bt-bg-particles::before,
.bt-bg-particles::after {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 0;
}
.bt-bg-particles::before {
    background-image:
        radial-gradient(2px 2px at 10% 15%, rgba(201,162,39,0.35), transparent),
        radial-gradient(2px 2px at 25% 60%, rgba(201,162,39,0.25), transparent),
        radial-gradient(3px 3px at 40% 30%, rgba(217,184,77,0.30), transparent),
        radial-gradient(2px 2px at 55% 80%, rgba(201,162,39,0.20), transparent),
        radial-gradient(2px 2px at 70% 20%, rgba(217,184,77,0.25), transparent),
        radial-gradient(3px 3px at 85% 55%, rgba(201,162,39,0.30), transparent),
        radial-gradient(2px 2px at 95% 75%, rgba(217,184,77,0.20), transparent),
        radial-gradient(2px 2px at 15% 90%, rgba(201,162,39,0.25), transparent),
        radial-gradient(3px 3px at 50% 10%, rgba(201,162,39,0.30), transparent),
        radial-gradient(2px 2px at 80% 45%, rgba(217,184,77,0.25), transparent);
    background-size: 100% 100%;
    animation: bt-particle-drift 12s ease-in-out infinite;
}
.bt-bg-particles::after {
    background-image:
        radial-gradient(2px 2px at 5% 45%, rgba(201,162,39,0.20), transparent),
        radial-gradient(3px 3px at 30% 85%, rgba(217,184,77,0.25), transparent),
        radial-gradient(2px 2px at 60% 50%, rgba(201,162,39,0.30), transparent),
        radial-gradient(2px 2px at 75% 10%, rgba(217,184,77,0.20), transparent),
        radial-gradient(2px 2px at 90% 90%, rgba(201,162,39,0.25), transparent);
    background-size: 100% 100%;
    animation: bt-particle-drift 18s ease-in-out infinite reverse;
}
.bt-bg-particles > * { position: relative; z-index: 1; }

/* 2. Animated wave pattern (plum tones) */
.bt-bg-waves {
    position: relative;
    overflow: hidden;
}
.bt-bg-waves::before {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 0;
    background: linear-gradient(
        135deg,
        rgba(91,58,130,0.12) 0%,
        rgba(46,26,71,0.18) 20%,
        rgba(115,80,160,0.10) 40%,
        rgba(91,58,130,0.15) 60%,
        rgba(46,26,71,0.12) 80%,
        rgba(91,58,130,0.18) 100%
    );
    background-size: 300% 300%;
    animation: bt-wave-shift 10s ease-in-out infinite;
}
.bt-bg-waves > * { position: relative; z-index: 1; }

/* 3. Dot-grid texture */
.bt-bg-grid {
    background-image: repeating-radial-gradient(
        circle at center,
        rgba(91,58,130,0.08) 0px,
        rgba(91,58,130,0.08) 1px,
        transparent 1px,
        transparent 100%
    );
    background-size: 24px 24px;
}

/* 4. Diagonal stripe pattern */
.bt-bg-diagonal {
    background-image: repeating-linear-gradient(
        -45deg,
        transparent,
        transparent 8px,
        rgba(91,58,130,0.04) 8px,
        rgba(91,58,130,0.04) 9px
    );
}

/* 5. Pulsing glow ring */
.bt-glow-ring {
    position: relative;
    overflow: hidden;
}
.bt-glow-ring::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 120%;
    aspect-ratio: 1;
    border-radius: 50%;
    border: 2px solid rgba(201,162,39,0.35);
    transform: translate(-50%,-50%) scale(0.4);
    animation: bt-glow-pulse 2.5s ease-out infinite;
    pointer-events: none;
    z-index: 0;
}
.bt-glow-ring > * { position: relative; z-index: 1; }

/* 6. Float-up animation */
.bt-float-up {
    animation: bt-float-up 4s ease-in-out infinite;
}

/* 7. Slow rotation */
.bt-rotate-slow {
    animation: bt-rotate-slow 60s linear infinite;
}

/* ---------- Video placeholder (footer "Watch the Latest") ---------- */
.bt-video-placeholder {
    position: relative;
    display: block;
    width: 100%;
    max-width: 560px;
    margin: 0 auto;
    aspect-ratio: 16/9;
    border-radius: 16px;
    overflow: hidden;
    background: linear-gradient(135deg, #2E1A47 0%, #5B3A82 50%, #2E1A47 100%);
    text-decoration: none;
    box-shadow: 0 8px 32px rgba(46,26,71,0.25);
    transition: transform 0.35s ease, box-shadow 0.35s ease;
}
.bt-video-placeholder:hover {
    transform: translateY(-4px);
    box-shadow: 0 16px 48px rgba(46,26,71,0.35);
}
.bt-video-placeholder::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 40%, rgba(46,26,71,0.7) 100%);
    z-index: 1;
}
.bt-video-play-btn {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    z-index: 2;
    transition: transform 0.3s ease;
}
.bt-video-placeholder:hover .bt-video-play-btn {
    transform: translate(-50%,-50%) scale(1.1);
}
.bt-video-play-btn circle {
    transition: fill 0.3s ease, stroke 0.3s ease;
}
.bt-video-placeholder:hover .bt-video-play-btn circle {
    fill: rgba(201,162,39,0.25);
    stroke: #C9A227;
}
.bt-video-placeholder:hover .bt-video-play-btn polygon {
    fill: #C9A227;
}
.bt-video-label {
    position: absolute;
    bottom: 16px;
    left: 0;
    right: 0;
    text-align: center;
    z-index: 2;
    color: #FFFDF8;
    font-family: var(--font-display, 'Cormorant Garamond', Georgia, serif);
    font-size: clamp(1rem, 2vw, 1.3rem);
    font-weight: 600;
    letter-spacing: 0.02em;
}
.bt-video-section-title {
    text-align: center;
    color: #FFFDF8;
    font-family: var(--font-display, 'Cormorant Garamond', Georgia, serif);
    font-size: clamp(1.2rem, 2.5vw, 1.6rem);
    margin-bottom: 20px;
    font-weight: 600;
}

/* ---------- Host placeholder (enhanced) ---------- */
.hp-guide-photo .bt-host-placeholder {
    width: 100%;
    aspect-ratio: 3/4;
    border-radius: 20px;
    position: relative;
    overflow: hidden;
    background: linear-gradient(135deg, #5B3A82, #C9A227, #2E1A47, #D9B84D);
    background-size: 400% 400%;
    animation: bt-host-gradient-shift 8s ease-in-out infinite;
    border: 4px solid #C9A227;
    outline: 3px solid #5B3A82;
    outline-offset: 4px;
    box-shadow: 0 12px 40px rgba(46,26,71,0.18);
}
.hp-guide-photo .bt-host-placeholder .bt-host-mic {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    animation: bt-mic-bob 3s ease-in-out infinite;
    opacity: 0.7;
}
.hp-guide-photo .bt-host-label {
    display: block;
    text-align: center;
    margin-top: 12px;
    font-family: var(--font-display, 'Cormorant Garamond', Georgia, serif);
    font-size: 0.95rem;
    color: var(--plum-700, #5B3A82);
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
    .bt-bg-particles::before,
    .bt-bg-particles::after,
    .bt-bg-waves::before,
    .bt-glow-ring::before,
    .bt-float-up,
    .bt-rotate-slow,
    .hp-guide-photo .bt-host-placeholder,
    .hp-guide-photo .bt-host-placeholder .bt-host-mic,
    .bt-video-play-btn {
        animation: none !important;
    }
}

/* ---------- Mobile adjustments ---------- */
@media (max-width: 768px) {
    .bt-video-placeholder { max-width: 100%; border-radius: 12px; }
    .hp-guide-photo .bt-host-placeholder { outline-offset: 2px; }
}
/* ==========================================================================
   WOOCOMMERCE PRODUCT CARDS - BRANDED DESIGNS
   ========================================================================== */

/* ---------- Product Grid Layout ---------- */
.woocommerce ul.products {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 32px !important;
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

@media (max-width: 991px) {
    .woocommerce ul.products {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 24px !important;
    }
}

@media (max-width: 575px) {
    .woocommerce ul.products {
        grid-template-columns: 1fr !important;
        gap: 20px !important;
    }
}

/* ---------- Product Card ---------- */
.woocommerce ul.products li.product {
    background: var(--ivory, #FFFDF8) !important;
    border-radius: 16px !important;
    overflow: hidden !important;
    box-shadow: 0 4px 20px rgba(46, 26, 71, 0.08) !important;
    transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1),
                box-shadow 0.35s cubic-bezier(0.22, 1, 0.36, 1) !important;
    display: flex !important;
    flex-direction: column !important;
    position: relative !important;
    border: 1px solid rgba(91, 58, 130, 0.08) !important;
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    float: none !important;
}

.woocommerce ul.products li.product:hover {
    transform: translateY(-6px) !important;
    box-shadow: 0 12px 40px rgba(201, 162, 39, 0.2),
                0 4px 16px rgba(46, 26, 71, 0.1) !important;
}

/* ---------- Product Image / Placeholder Area ---------- */
.woocommerce ul.products li.product a img,
.woocommerce ul.products li.product .attachment-woocommerce_thumbnail,
.woocommerce ul.products li.product > a > img {
    display: none !important;
}

.woocommerce ul.products li.product > a:first-of-type {
    display: block !important;
    position: relative !important;
    min-height: 220px !important;
    overflow: hidden !important;
    text-decoration: none !important;
}

/* Default gradient placeholder (plum) */
.woocommerce ul.products li.product > a:first-of-type::before {
    content: '' !important;
    display: block !important;
    width: 100% !important;
    height: 220px !important;
    background: linear-gradient(135deg, #5B3A82 0%, #2E1A47 60%, #C9A227 100%) !important;
    background-size: 200% 200% !important;
    transition: background-position 0.6s ease !important;
}

.woocommerce ul.products li.product:hover > a:first-of-type::before {
    background-position: 100% 100% !important;
}

/* Category-specific icon overlays */
.woocommerce ul.products li.product > a:first-of-type::after {
    content: '\2728' !important;
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
    font-size: 3.5rem !important;
    opacity: 0.25 !important;
    transition: opacity 0.3s ease, transform 0.3s ease !important;
    filter: grayscale(100%) brightness(3) !important;
    z-index: 1 !important;
}

.woocommerce ul.products li.product:hover > a:first-of-type::after {
    opacity: 0.4 !important;
    transform: translate(-50%, -50%) scale(1.1) !important;
}

/* --- Category: Courses (plum gradient) --- */
.woocommerce ul.products li.product.product_cat-courses > a:first-of-type::before,
.woocommerce ul.products li.product.product_cat-course > a:first-of-type::before {
    background: linear-gradient(135deg, #5B3A82 0%, #7350A0 40%, #C9A227 100%) !important;
}
.woocommerce ul.products li.product.product_cat-courses > a:first-of-type::after,
.woocommerce ul.products li.product.product_cat-course > a:first-of-type::after {
    content: '\1F393' !important;
}

/* --- Category: Downloads (gold gradient) --- */
.woocommerce ul.products li.product.product_cat-downloads > a:first-of-type::before,
.woocommerce ul.products li.product.product_cat-download > a:first-of-type::before,
.woocommerce ul.products li.product.product_cat-digital-downloads > a:first-of-type::before {
    background: linear-gradient(135deg, #C9A227 0%, #D4B44E 40%, #8B6914 100%) !important;
}
.woocommerce ul.products li.product.product_cat-downloads > a:first-of-type::after,
.woocommerce ul.products li.product.product_cat-download > a:first-of-type::after,
.woocommerce ul.products li.product.product_cat-digital-downloads > a:first-of-type::after {
    content: '\1F4E5' !important;
}

/* --- Category: Memberships (deep plum gradient) --- */
.woocommerce ul.products li.product.product_cat-memberships > a:first-of-type::before,
.woocommerce ul.products li.product.product_cat-membership > a:first-of-type::before {
    background: linear-gradient(135deg, #2E1A47 0%, #432663 40%, #5B3A82 80%, #C9A227 100%) !important;
}
.woocommerce ul.products li.product.product_cat-memberships > a:first-of-type::after,
.woocommerce ul.products li.product.product_cat-membership > a:first-of-type::after {
    content: '\1F451' !important;
}

/* --- Category: Merch (warm gray gradient) --- */
.woocommerce ul.products li.product.product_cat-merch > a:first-of-type::before,
.woocommerce ul.products li.product.product_cat-merchandise > a:first-of-type::before {
    background: linear-gradient(135deg, #8A7F72 0%, #D4C9B8 40%, #C9A227 100%) !important;
}
.woocommerce ul.products li.product.product_cat-merch > a:first-of-type::after,
.woocommerce ul.products li.product.product_cat-merchandise > a:first-of-type::after {
    content: '\1F45C' !important;
}

/* --- Category: Consultations (deep plum-gold gradient) --- */
.woocommerce ul.products li.product.product_cat-consultations > a:first-of-type::before,
.woocommerce ul.products li.product.product_cat-consultation > a:first-of-type::before,
.woocommerce ul.products li.product.product_cat-booking > a:first-of-type::before {
    background: linear-gradient(135deg, #2E1A47 0%, #5B3A82 30%, #C9A227 70%, #D4B44E 100%) !important;
}
.woocommerce ul.products li.product.product_cat-consultations > a:first-of-type::after,
.woocommerce ul.products li.product.product_cat-consultation > a:first-of-type::after,
.woocommerce ul.products li.product.product_cat-booking > a:first-of-type::after {
    content: '\1F4AC' !important;
}

/* ---------- Category Pill Badge ---------- */
.woocommerce ul.products li.product .bt-product-cat-badge,
.woocommerce ul.products li.product [class*="product_cat-"]::before {
    display: inline-block;
    font-family: var(--font-body, 'DM Sans', sans-serif);
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    padding: 4px 14px;
    border-radius: 50px;
    background: rgba(46, 26, 71, 0.85);
    color: var(--gold-300, #E0C87A);
    position: absolute;
    top: 14px;
    left: 14px;
    z-index: 5;
    backdrop-filter: blur(6px);
}

/* ---------- Product Card Content Area ---------- */
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product h2 {
    font-family: var(--font-display, 'Cormorant Garamond', Georgia, serif) !important;
    font-size: clamp(1.1rem, 2vw, 1.35rem) !important;
    font-weight: 600 !important;
    color: var(--plum-800, #432663) !important;
    padding: 20px 20px 6px !important;
    margin: 0 !important;
    line-height: 1.3 !important;
    letter-spacing: -0.01em !important;
}

.woocommerce ul.products li.product .price {
    font-family: var(--font-display, 'Cormorant Garamond', Georgia, serif) !important;
    font-size: 1.5rem !important;
    font-weight: 700 !important;
    color: var(--gold-500, #C9A227) !important;
    padding: 4px 20px 8px !important;
    margin: 0 !important;
    display: block !important;
}

.woocommerce ul.products li.product .price del {
    opacity: 0.5 !important;
    font-size: 0.85em !important;
    color: var(--warm-gray, #8A7F72) !important;
}

.woocommerce ul.products li.product .price ins {
    text-decoration: none !important;
    color: var(--gold-500, #C9A227) !important;
    font-weight: 700 !important;
}

/* ---------- Add to Cart Button ---------- */
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product a.add_to_cart_button,
.woocommerce ul.products li.product a.product_type_simple,
.woocommerce ul.products li.product a.product_type_variable,
.woocommerce ul.products li.product a.product_type_grouped {
    display: block !important;
    width: calc(100% - 40px) !important;
    margin: auto 20px 20px !important;
    padding: 12px 24px !important;
    background: linear-gradient(135deg, var(--plum-700, #5B3A82), var(--plum-900, #2E1A47)) !important;
    color: var(--gold-300, #E0C87A) !important;
    border: none !important;
    border-radius: 50px !important;
    font-family: var(--font-body, 'DM Sans', sans-serif) !important;
    font-size: 0.9rem !important;
    font-weight: 600 !important;
    letter-spacing: 0.05em !important;
    text-transform: uppercase !important;
    text-align: center !important;
    text-decoration: none !important;
    cursor: pointer !important;
    transition: all 0.3s ease !important;
    margin-top: auto !important;
    box-sizing: border-box !important;
}

.woocommerce ul.products li.product .button:hover,
.woocommerce ul.products li.product a.add_to_cart_button:hover {
    background: linear-gradient(135deg, var(--gold-500, #C9A227), var(--gold-700, #8B6914)) !important;
    color: var(--ivory, #FFFDF8) !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 4px 16px rgba(201, 162, 39, 0.3) !important;
}

/* ---------- Sale Badge ---------- */
.woocommerce ul.products li.product .onsale,
.woocommerce span.onsale {
    position: absolute !important;
    top: 14px !important;
    right: 14px !important;
    left: auto !important;
    z-index: 5 !important;
    background: linear-gradient(135deg, var(--gold-500, #C9A227), var(--gold-700, #8B6914)) !important;
    color: var(--ivory, #FFFDF8) !important;
    font-family: var(--font-body, 'DM Sans', sans-serif) !important;
    font-size: 0.7rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
    padding: 6px 16px !important;
    border-radius: 50px !important;
    line-height: 1 !important;
    min-width: auto !important;
    min-height: auto !important;
    margin: 0 !important;
}

/* ---------- Star Ratings in Grid ---------- */
.woocommerce ul.products li.product .star-rating {
    padding: 0 20px !important;
    margin: 4px 0 0 !important;
    font-size: 0.85rem !important;
    color: var(--gold-500, #C9A227) !important;
}

/* ==========================================================================
   SINGLE PRODUCT PAGE - BRANDED DESIGN
   ========================================================================== */

/* ---------- Single Product Layout ---------- */
.single-product div.product {
    max-width: var(--container-max, 1280px) !important;
    margin: 0 auto !important;
    padding: 40px 20px !important;
}

/* ---------- Product Title ---------- */
.single-product div.product .product_title,
.single-product div.product h1 {
    font-family: var(--font-display, 'Cormorant Garamond', Georgia, serif) !important;
    font-size: clamp(2rem, 4vw, 3rem) !important;
    font-weight: 700 !important;
    color: var(--plum-800, #432663) !important;
    line-height: 1.2 !important;
    letter-spacing: -0.02em !important;
    margin-bottom: 12px !important;
}

/* Gold accent divider under title */
.single-product div.product .product_title::after,
.single-product div.product .summary > h1::after {
    content: '' !important;
    display: block !important;
    width: 80px !important;
    height: 3px !important;
    background: linear-gradient(90deg, var(--gold-500, #C9A227), var(--gold-300, #E0C87A)) !important;
    margin-top: 16px !important;
    border-radius: 2px !important;
}

/* ---------- Single Product Price ---------- */
.single-product div.product p.price,
.single-product div.product .summary .price {
    font-family: var(--font-display, 'Cormorant Garamond', Georgia, serif) !important;
    font-size: clamp(1.8rem, 3.5vw, 2.5rem) !important;
    font-weight: 700 !important;
    color: var(--gold-500, #C9A227) !important;
    margin: 16px 0 24px !important;
}

.single-product div.product p.price del {
    opacity: 0.45 !important;
    font-size: 0.75em !important;
    color: var(--warm-gray, #8A7F72) !important;
}

.single-product div.product p.price ins {
    text-decoration: none !important;
    color: var(--gold-500, #C9A227) !important;
}

/* ---------- Single Product Short Description ---------- */
.single-product div.product .woocommerce-product-details__short-description {
    font-family: var(--font-body, 'DM Sans', sans-serif) !important;
    font-size: 1.05rem !important;
    line-height: 1.7 !important;
    color: var(--charcoal, #3A3228) !important;
    margin-bottom: 24px !important;
}

/* ---------- Single Product Add to Cart ---------- */
.single-product div.product form.cart .single_add_to_cart_button,
.single-product div.product .summary .button.alt,
.single-product div.product .summary .single_add_to_cart_button {
    display: inline-block !important;
    padding: 16px 48px !important;
    background: linear-gradient(135deg, var(--gold-500, #C9A227), var(--gold-700, #8B6914)) !important;
    color: var(--ivory, #FFFDF8) !important;
    border: none !important;
    border-radius: 50px !important;
    font-family: var(--font-body, 'DM Sans', sans-serif) !important;
    font-size: 1rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.06em !important;
    text-transform: uppercase !important;
    cursor: pointer !important;
    transition: all 0.3s ease !important;
    box-shadow: 0 4px 16px rgba(201, 162, 39, 0.25) !important;
}

.single-product div.product form.cart .single_add_to_cart_button:hover {
    background: linear-gradient(135deg, var(--gold-600, #A6801A), var(--plum-700, #5B3A82)) !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 8px 28px rgba(201, 162, 39, 0.35) !important;
}

/* ---------- Quantity Input ---------- */
.single-product div.product .quantity .qty {
    border: 2px solid var(--plum-200, #D4C1EC) !important;
    border-radius: 12px !important;
    padding: 10px 14px !important;
    font-family: var(--font-body, 'DM Sans', sans-serif) !important;
    font-size: 1rem !important;
    color: var(--plum-800, #432663) !important;
    width: 80px !important;
    text-align: center !important;
    transition: border-color 0.3s ease !important;
}

.single-product div.product .quantity .qty:focus {
    border-color: var(--gold-500, #C9A227) !important;
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(201, 162, 39, 0.15) !important;
}

/* ---------- Product Gallery Placeholder ---------- */
.single-product div.product .woocommerce-product-gallery {
    border-radius: 20px !important;
    overflow: hidden !important;
}

.single-product div.product .woocommerce-product-gallery .woocommerce-product-gallery__image img,
.single-product div.product .woocommerce-product-gallery img {
    border-radius: 16px !important;
}

/* Single product placeholder gradient */
.single-product div.product .woocommerce-product-gallery__wrapper .wp-post-image[src*="placeholder"],
.single-product div.product .woocommerce-product-gallery__wrapper .wp-post-image[src*="woocommerce-placeholder"] {
    opacity: 0 !important;
    position: relative !important;
}

.single-product div.product .woocommerce-product-gallery__wrapper {
    position: relative !important;
    min-height: 400px !important;
    background: linear-gradient(135deg, #5B3A82 0%, #2E1A47 60%, #C9A227 100%) !important;
    background-size: 200% 200% !important;
    border-radius: 20px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.single-product div.product .woocommerce-product-gallery__wrapper::after {
    content: '\2728' !important;
    font-size: 5rem !important;
    opacity: 0.2 !important;
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
    filter: grayscale(100%) brightness(3) !important;
}

/* ---------- Product Tabs ---------- */
.single-product div.product .woocommerce-tabs {
    margin-top: 48px !important;
}

.single-product div.product .woocommerce-tabs ul.tabs {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 0 0 0 !important;
    display: flex !important;
    gap: 4px !important;
    border-bottom: 2px solid var(--plum-100, #EAE0F5) !important;
    overflow-x: auto !important;
}

.single-product div.product .woocommerce-tabs ul.tabs::before {
    display: none !important;
}

.single-product div.product .woocommerce-tabs ul.tabs li {
    background: none !important;
    border: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border-radius: 12px 12px 0 0 !important;
}

.single-product div.product .woocommerce-tabs ul.tabs li a {
    font-family: var(--font-body, 'DM Sans', sans-serif) !important;
    font-size: 0.9rem !important;
    font-weight: 600 !important;
    letter-spacing: 0.04em !important;
    text-transform: uppercase !important;
    color: var(--warm-gray, #8A7F72) !important;
    padding: 14px 24px !important;
    display: block !important;
    text-decoration: none !important;
    transition: color 0.3s ease, background 0.3s ease !important;
    border-radius: 12px 12px 0 0 !important;
    white-space: nowrap !important;
}

.single-product div.product .woocommerce-tabs ul.tabs li a:hover {
    color: var(--plum-700, #5B3A82) !important;
    background: var(--plum-50, #F6F0FA) !important;
}

.single-product div.product .woocommerce-tabs ul.tabs li.active a {
    color: var(--plum-800, #432663) !important;
    background: var(--plum-50, #F6F0FA) !important;
    border-bottom: 3px solid var(--gold-500, #C9A227) !important;
    margin-bottom: -2px !important;
}

.single-product div.product .woocommerce-tabs .woocommerce-Tabs-panel,
.single-product div.product .woocommerce-tabs .panel {
    background: var(--ivory, #FFFDF8) !important;
    border: 1px solid var(--plum-100, #EAE0F5) !important;
    border-top: none !important;
    border-radius: 0 0 16px 16px !important;
    padding: 32px !important;
    font-family: var(--font-body, 'DM Sans', sans-serif) !important;
    font-size: 1rem !important;
    line-height: 1.75 !important;
    color: var(--charcoal, #3A3228) !important;
}

.single-product div.product .woocommerce-tabs .panel h2 {
    font-family: var(--font-display, 'Cormorant Garamond', Georgia, serif) !important;
    font-size: 1.5rem !important;
    font-weight: 600 !important;
    color: var(--plum-800, #432663) !important;
    margin-bottom: 16px !important;
}

/* ---------- Related Products / Cross-Sells ---------- */
.single-product div.product .related.products,
.single-product div.product .cross-sells,
.single-product section.related.products,
.woocommerce .cross-sells {
    margin-top: 64px !important;
    padding-top: 48px !important;
    border-top: 2px solid var(--plum-100, #EAE0F5) !important;
    position: relative !important;
}

.single-product div.product .related.products::before,
.single-product div.product .cross-sells::before {
    content: '' !important;
    position: absolute !important;
    top: -2px !important;
    left: 0 !important;
    width: 120px !important;
    height: 3px !important;
    background: linear-gradient(90deg, var(--gold-500, #C9A227), transparent) !important;
}

.single-product div.product .related.products > h2,
.single-product div.product .cross-sells > h2 {
    font-family: var(--font-display, 'Cormorant Garamond', Georgia, serif) !important;
    font-size: clamp(1.5rem, 3vw, 2rem) !important;
    font-weight: 600 !important;
    color: var(--plum-800, #432663) !important;
    margin-bottom: 32px !important;
}

/* ---------- Shop Page Header ---------- */
.woocommerce-products-header {
    text-align: center !important;
    padding: 40px 20px 32px !important;
}

.woocommerce-products-header__title {
    font-family: var(--font-display, 'Cormorant Garamond', Georgia, serif) !important;
    font-size: clamp(2rem, 4vw, 3rem) !important;
    font-weight: 700 !important;
    color: var(--plum-800, #432663) !important;
}

.woocommerce-products-header__title::after {
    content: '' !important;
    display: block !important;
    width: 100px !important;
    height: 3px !important;
    background: linear-gradient(90deg, transparent, var(--gold-500, #C9A227), transparent) !important;
    margin: 16px auto 0 !important;
    border-radius: 2px !important;
}

/* ---------- Result Count & Ordering ---------- */
.woocommerce .woocommerce-result-count {
    font-family: var(--font-body, 'DM Sans', sans-serif) !important;
    font-size: 0.85rem !important;
    color: var(--warm-gray, #8A7F72) !important;
    letter-spacing: 0.02em !important;
}

.woocommerce .woocommerce-ordering select {
    font-family: var(--font-body, 'DM Sans', sans-serif) !important;
    border: 2px solid var(--plum-200, #D4C1EC) !important;
    border-radius: 12px !important;
    padding: 10px 16px !important;
    color: var(--plum-800, #432663) !important;
    background: var(--ivory, #FFFDF8) !important;
    transition: border-color 0.3s ease !important;
}

.woocommerce .woocommerce-ordering select:focus {
    border-color: var(--gold-500, #C9A227) !important;
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(201, 162, 39, 0.15) !important;
}

/* ---------- Pagination ---------- */
.woocommerce nav.woocommerce-pagination {
    margin-top: 48px !important;
    text-align: center !important;
}

.woocommerce nav.woocommerce-pagination ul {
    border: none !important;
    display: inline-flex !important;
    gap: 8px !important;
}

.woocommerce nav.woocommerce-pagination ul li {
    border: none !important;
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
    font-family: var(--font-body, 'DM Sans', sans-serif) !important;
    padding: 10px 18px !important;
    border-radius: 12px !important;
    border: 2px solid var(--plum-200, #D4C1EC) !important;
    color: var(--plum-700, #5B3A82) !important;
    background: var(--ivory, #FFFDF8) !important;
    transition: all 0.3s ease !important;
    font-weight: 600 !important;
    text-decoration: none !important;
}

.woocommerce nav.woocommerce-pagination ul li a:hover {
    background: var(--plum-50, #F6F0FA) !important;
    border-color: var(--gold-500, #C9A227) !important;
    color: var(--plum-800, #432663) !important;
}

.woocommerce nav.woocommerce-pagination ul li span.current {
    background: linear-gradient(135deg, var(--plum-700, #5B3A82), var(--plum-900, #2E1A47)) !important;
    color: var(--gold-300, #E0C87A) !important;
    border-color: var(--plum-700, #5B3A82) !important;
}

/* ---------- Single Product Sale Badge ---------- */
.single-product div.product .onsale {
    position: absolute !important;
    top: 20px !important;
    right: 20px !important;
    left: auto !important;
    z-index: 10 !important;
    background: linear-gradient(135deg, var(--gold-500, #C9A227), var(--gold-700, #8B6914)) !important;
    color: var(--ivory, #FFFDF8) !important;
    font-family: var(--font-body, 'DM Sans', sans-serif) !important;
    font-size: 0.8rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
    padding: 8px 20px !important;
    border-radius: 50px !important;
    line-height: 1 !important;
    min-width: auto !important;
    min-height: auto !important;
}

/* ---------- Single Product Meta ---------- */
.single-product div.product .product_meta {
    font-family: var(--font-body, 'DM Sans', sans-serif) !important;
    font-size: 0.85rem !important;
    color: var(--warm-gray, #8A7F72) !important;
    margin-top: 24px !important;
    padding-top: 20px !important;
    border-top: 1px solid var(--plum-100, #EAE0F5) !important;
}

.single-product div.product .product_meta > span {
    display: block !important;
    margin-bottom: 6px !important;
}

.single-product div.product .product_meta a {
    color: var(--plum-700, #5B3A82) !important;
    text-decoration: none !important;
    transition: color 0.3s ease !important;
}

.single-product div.product .product_meta a:hover {
    color: var(--gold-500, #C9A227) !important;
}

/* ---------- Product Card Gradient Animation ---------- */
@keyframes bt-product-gradient-shift {
    0% { background-position: 0% 0%; }
    50% { background-position: 100% 100%; }
    100% { background-position: 0% 0%; }
}

/* ---------- Reduced Motion for Product Cards ---------- */
@media (prefers-reduced-motion: reduce) {
    .woocommerce ul.products li.product,
    .woocommerce ul.products li.product .button,
    .single-product div.product form.cart .single_add_to_cart_button {
        transition: none !important;
    }
    .woocommerce ul.products li.product:hover {
        transform: none !important;
    }
}

/* ---------- Print Styles ---------- */
@media print {
    .woocommerce ul.products li.product > a:first-of-type::before,
    .woocommerce ul.products li.product > a:first-of-type::after {
        display: none !important;
    }
}
