/*!
 * CrystalMeanings Widgets Unified Styles
 * Harmonized design system for all crystal-related widgets
 * Version: 2.0.0
 */

/* =============================================================================
   DESIGN SYSTEM VARIABLES
   ============================================================================= */

:root {
    /* Color Palette - Crystal Inspired */
    --crystal-primary: #6366f1;          /* Indigo - Primary brand */
    --crystal-secondary: #8b5cf6;        /* Purple - Secondary brand */
    --crystal-accent: #06b6d4;           /* Cyan - Accent color */
    --crystal-success: #10b981;          /* Emerald - Success/healing */
    --crystal-warning: #f59e0b;          /* Amber - Energy/fire */
    --crystal-danger: #ef4444;           /* Red - Passion/energy */
    
    /* Neutral Colors */
    --crystal-white: #ffffff;
    --crystal-gray-50: #f8fafc;
    --crystal-gray-100: #f1f5f9;
    --crystal-gray-200: #e2e8f0;
    --crystal-gray-300: #cbd5e1;
    --crystal-gray-400: #94a3b8;
    --crystal-gray-500: #64748b;
    --crystal-gray-600: #475569;
    --crystal-gray-700: #334155;
    --crystal-gray-800: #1e293b;
    --crystal-gray-900: #0f172a;
    
    /* Gradients */
    --crystal-gradient-primary: linear-gradient(135deg, var(--crystal-primary) 0%, var(--crystal-secondary) 100%);
    --crystal-gradient-accent: linear-gradient(135deg, var(--crystal-accent) 0%, var(--crystal-success) 100%);
    --crystal-gradient-warm: linear-gradient(135deg, var(--crystal-warning) 0%, var(--crystal-danger) 100%);
    --crystal-gradient-soft: linear-gradient(135deg, var(--crystal-gray-50) 0%, var(--crystal-gray-100) 100%);
    
    /* Shadows */
    --crystal-shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
    --crystal-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
    --crystal-shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
    --crystal-shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
    --crystal-shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
    
    /* Typography */
    --crystal-font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
    --crystal-font-size-xs: 0.75rem;
    --crystal-font-size-sm: 0.875rem;
    --crystal-font-size-base: 1rem;
    --crystal-font-size-lg: 1.125rem;
    --crystal-font-size-xl: 1.25rem;
    --crystal-font-size-2xl: 1.5rem;
    --crystal-font-size-3xl: 1.875rem;
    
    /* Spacing */
    --crystal-space-1: 0.25rem;
    --crystal-space-2: 0.5rem;
    --crystal-space-3: 0.75rem;
    --crystal-space-4: 1rem;
    --crystal-space-5: 1.25rem;
    --crystal-space-6: 1.5rem;
    --crystal-space-8: 2rem;
    --crystal-space-10: 2.5rem;
    --crystal-space-12: 3rem;
    
    /* Border Radius */
    --crystal-radius-sm: 0.375rem;
    --crystal-radius: 0.5rem;
    --crystal-radius-md: 0.75rem;
    --crystal-radius-lg: 1rem;
    --crystal-radius-xl: 1.5rem;
    --crystal-radius-full: 9999px;
    
    /* Transitions */
    --crystal-transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    --crystal-transition-fast: all 0.15s cubic-bezier(0.4, 0, 0.2, 1);
}

/* =============================================================================
   GLOBAL WIDGET STYLES
   ============================================================================= */

/* Base container for all widgets */
.zodiac-widget-container,
.element-widget-container,
.color-widget-container,
.chakra-widget-container,
.property-widget-container,
.planet-widget-container {
    font-family: var(--crystal-font-family);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    max-width: 100%;
    margin: 0 auto var(--crystal-space-6);
    padding: var(--crystal-space-6);
    background: var(--crystal-white);
    border-radius: var(--crystal-radius-xl);
    box-shadow: var(--crystal-shadow-lg);
    border: 1px solid var(--crystal-gray-200);
    position: relative;
    overflow: hidden;
}

/* Widget container background patterns */
.zodiac-widget-container::before,
.element-widget-container::before,
.color-widget-container::before,
.chakra-widget-container::before,
.property-widget-container::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: var(--crystal-gradient-primary);
    z-index: 1;
}

/* Zodiac: cosmic multi-color gradient */
.zodiac-widget-container::before {
    background: linear-gradient(90deg, #dc2626, #f59e0b, #059669, #3b82f6, #7c3aed, #ec4899);
}

.element-widget-container::before {
    background: var(--crystal-gradient-accent);
}

.color-widget-container::before {
    background: var(--crystal-gradient-warm);
}

.chakra-widget-container::before {
    background: var(--crystal-gradient-primary);
}

.property-widget-container::before {
    background: var(--crystal-gradient-accent);
}

/* Common widget title styles */
.widget-title,
.zodiac-widget-container .widget-title,
.element-widget-container .widget-title,
.color-widget-container .widget-title,
.chakra-widget-container .widget-title,
.property-widget-container .widget-title,
.planet-widget-container .widget-title {
    font-size: var(--crystal-font-size-2xl);
    font-weight: 700;
    color: var(--crystal-gray-900);
    margin: 0 0 var(--crystal-space-6) 0;
    padding: 0;
    text-align: center;
    line-height: 1.2;
    border: none;
    background: none;
    position: relative;
    z-index: 2;
}


/* =============================================================================
   ZODIAC WIDGET STYLES
   ============================================================================= */

.zodiac-widget-container {
    width: 100%;
    max-width: 420px;
    background: var(--crystal-white);
    border-radius: var(--crystal-radius-xl);
    box-shadow: var(--crystal-shadow-lg);
    padding: var(--crystal-space-6);
    margin: 0 auto;
    border: 1px solid var(--crystal-gray-200);
}

/* Zodiac item row */
.zodiac-item {
    display: flex;
    align-items: center;
    background: var(--crystal-gray-50);
    margin: 0 0 var(--crystal-space-2) 0;
    padding: var(--crystal-space-3) var(--crystal-space-4);
    border-radius: var(--crystal-radius-md);
    transition: var(--crystal-transition);
    text-decoration: none !important;
    color: inherit;
    border: 1px solid transparent;
}

.zodiac-item:last-child {
    margin-bottom: 0;
}

.zodiac-item:hover {
    text-decoration: none !important;
    color: inherit;
    transform: translateY(-2px);
    box-shadow: var(--crystal-shadow-md);
    background: var(--crystal-white);
    border-color: var(--crystal-gray-200);
}

/* Zodiac icon circle */
.zodiac-icon {
    width: 44px;
    height: 44px;
    min-width: 44px;
    border-radius: 12px;
    display: flex;
    justify-content: center;
    align-items: center;
    color: var(--crystal-white);
    font-size: 18px;
    margin-right: var(--crystal-space-4);
    flex-shrink: 0;
    transition: var(--crystal-transition);
    box-shadow: 0 3px 10px rgba(0, 0, 0, 0.15);
    /* Default gradient - overridden per zodiac */
    background: var(--crystal-gradient-primary);
}

.zodiac-item:hover .zodiac-icon {
    transform: scale(1.08);
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
}

/* ===== Per-Zodiac Icon Gradients ===== */
/* Fire Signs - Warm, powerful tones */
.zodiac-item[data-zodiac="aries"] .zodiac-icon {
    background: linear-gradient(135deg, #dc2626 0%, #f97316 100%);
}
.zodiac-item[data-zodiac="leo"] .zodiac-icon {
    background: linear-gradient(135deg, #f59e0b 0%, #ef4444 100%);
}
.zodiac-item[data-zodiac="sagittarius"] .zodiac-icon {
    background: linear-gradient(135deg, #d946ef 0%, #f43f5e 100%);
}

/* Earth Signs - Rich, grounded tones */
.zodiac-item[data-zodiac="taurus"] .zodiac-icon {
    background: linear-gradient(135deg, #059669 0%, #34d399 100%);
}
.zodiac-item[data-zodiac="virgo"] .zodiac-icon {
    background: linear-gradient(135deg, #65a30d 0%, #a3e635 100%);
}
.zodiac-item[data-zodiac="capricorn"] .zodiac-icon {
    background: linear-gradient(135deg, #78716c 0%, #a8a29e 100%);
}

/* Air Signs - Cool, intellectual tones */
.zodiac-item[data-zodiac="gemini"] .zodiac-icon {
    background: linear-gradient(135deg, #06b6d4 0%, #67e8f9 100%);
}
.zodiac-item[data-zodiac="libra"] .zodiac-icon {
    background: linear-gradient(135deg, #ec4899 0%, #f9a8d4 100%);
}
.zodiac-item[data-zodiac="aquarius"] .zodiac-icon {
    background: linear-gradient(135deg, #3b82f6 0%, #93c5fd 100%);
}

/* Water Signs - Deep, mystical tones */
.zodiac-item[data-zodiac="cancer"] .zodiac-icon {
    background: linear-gradient(135deg, #7c3aed 0%, #c4b5fd 100%);
}
.zodiac-item[data-zodiac="scorpio"] .zodiac-icon {
    background: linear-gradient(135deg, #1e1b4b 0%, #6366f1 100%);
}
.zodiac-item[data-zodiac="pisces"] .zodiac-icon {
    background: linear-gradient(135deg, #0e7490 0%, #22d3ee 100%);
}

/* Zodiac info text */
.zodiac-info {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.zodiac-name {
    font-family: var(--crystal-font-family);
    font-size: var(--crystal-font-size-base);
    font-weight: 600;
    color: var(--crystal-gray-900);
    margin-bottom: 0;
    line-height: 1.3;
    transition: var(--crystal-transition-fast);
}

.zodiac-item:hover .zodiac-name {
    color: var(--crystal-gray-900);
}

.zodiac-date {
    font-family: var(--crystal-font-family);
    font-size: var(--crystal-font-size-xs);
    color: var(--crystal-gray-500);
    line-height: 1.4;
    letter-spacing: 0.01em;
}

/* =============================================================================
   ELEMENT WIDGET STYLES
   ============================================================================= */

.element-widget-container {
    width: 100%;
    max-width: 400px;
    background: #ffffff;
    border-radius: 20px;
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
    padding: 20px;
    margin: 0 auto;
}

.element-item {
    display: flex;
    align-items: center;
    background: #f9f9f9;
    margin: 10px 0;
    padding: 15px 20px;
    border-radius: 15px;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    text-decoration: none;
    color: inherit;
}

.element-item:hover {
    transform: translateY(-5px);
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
}

.element-icon {
    width: 50px;
    height: 50px;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    color: #fff;
    font-size: 24px;
    margin-right: 15px;
    flex-shrink: 0;
    /* Dynamic background color will be applied via inline styles */
}

.element-info {
    flex: 1;
    min-width: 0;
}

.element-name {
    font-size: 18px;
    font-weight: bold;
    color: #333;
    margin-bottom: 2px;
    line-height: 1.3;
}

.element-description {
    font-size: 14px;
    color: #777;
    line-height: 1.4;
}

/* =============================================================================
   COLOR WIDGET STYLES
   ============================================================================= */

.color-widget-container {
    width: 100%;
    max-width: 400px;
    background: #ffffff;
    border-radius: 20px;
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
    padding: 20px;
    margin: 0 auto;
}

.color-widget-container[data-columns="1"] .color-grid {
    grid-template-columns: 1fr;
}

.color-widget-container[data-columns="2"] .color-grid {
    grid-template-columns: repeat(2, 1fr);
}

.color-widget-container[data-columns="3"] .color-grid {
    grid-template-columns: repeat(3, 1fr);
}

.color-widget-container[data-columns="4"] .color-grid {
    grid-template-columns: repeat(4, 1fr);
}

.color-grid {
    display: grid;
    gap: 15px;
    grid-template-columns: repeat(3, 1fr);
    align-items: start;
}

.color-item {
    background: #f9f9f9;
    border-radius: 15px;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    overflow: hidden;
}

.color-link {
    display: block;
    text-decoration: none;
    color: inherit;
    width: 100%;
    padding: 15px;
}

.color-item:hover {
    transform: translateY(-5px);
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
}

.color-block {
    width: 100%;
    height: 60px;
    border-radius: 10px;
    margin-bottom: 10px;
    border: 2px solid #fff;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.color-name {
    font-size: 14px;
    font-weight: bold;
    color: #333;
    text-align: center;
    line-height: 1.3;
}

/* =============================================================================
   CHAKRA WIDGET STYLES
   ============================================================================= */

.chakra-widget-container {
    width: 100%;
    max-width: 400px;
    background: #ffffff;
    border-radius: 20px;
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
    padding: 20px;
    margin: 0 auto;
}

.chakra-item {
    display: flex;
    align-items: center;
    background: #f9f9f9;
    margin: 10px 0;
    padding: 15px 20px;
    border-radius: 15px;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    text-decoration: none;
    color: inherit;
}

.chakra-item:hover {
    transform: translateY(-5px);
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
}

.chakra-icon {
    width: 50px;
    height: 50px;
    background: linear-gradient(45deg, #ff6f61, #ff9671);
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    color: #fff;
    font-size: 24px;
    margin-right: 15px;
    flex-shrink: 0;
}

.chakra-info {
    flex: 1;
    min-width: 0;
}

.chakra-name {
    font-size: 18px;
    font-weight: bold;
    color: #333;
    margin-bottom: 2px;
    line-height: 1.3;
}

.chakra-description {
    font-size: 14px;
    color: #777;
    line-height: 1.4;
}

/* =============================================================================
   PROPERTY WIDGET STYLES
   ============================================================================= */

.property-widget-container {
    width: 100%;
    max-width: 420px;
    background: var(--crystal-white);
    border-radius: var(--crystal-radius-xl);
    box-shadow: var(--crystal-shadow-lg);
    padding: var(--crystal-space-6);
    margin: 0 auto;
    border: 1px solid var(--crystal-gray-200);
}

/* Empty state */
.property-widget-empty {
    text-align: center;
    padding: var(--crystal-space-8) var(--crystal-space-4);
    color: var(--crystal-gray-400);
}

.property-widget-empty i {
    font-size: 2.5rem;
    margin-bottom: var(--crystal-space-3);
    display: block;
    opacity: 0.5;
}

.property-widget-empty p {
    font-size: var(--crystal-font-size-sm);
    margin: 0;
}

/* Grid layout */
.property-grid {
    display: grid;
    gap: 10px;
    grid-template-columns: 1fr;
}

.property-widget-container[data-columns="1"] .property-grid {
    grid-template-columns: 1fr;
}

.property-widget-container[data-columns="2"] .property-grid {
    grid-template-columns: repeat(2, 1fr);
}

.property-widget-container[data-columns="3"] .property-grid {
    grid-template-columns: repeat(3, 1fr);
}

.property-widget-container[data-columns="4"] .property-grid {
    grid-template-columns: repeat(4, 1fr);
}

/* Property item card */
.property-item {
    background: var(--crystal-gray-50);
    border-radius: var(--crystal-radius-md);
    transition: var(--crystal-transition);
    overflow: hidden;
    border: 1px solid transparent;
}

.property-item:hover {
    transform: translateY(-2px);
    box-shadow: var(--crystal-shadow-md);
    border-color: var(--crystal-gray-200);
    background: var(--crystal-white);
}

/* Property link */
.property-link {
    display: flex;
    align-items: center;
    text-decoration: none !important;
    color: inherit;
    padding: 12px 14px;
    gap: 12px;
    width: 100%;
    box-sizing: border-box;
}

.property-link:hover {
    text-decoration: none !important;
    color: inherit;
}

/* Icon wrapper - circular gradient container */
.property-icon-wrapper {
    width: 38px;
    height: 38px;
    min-width: 38px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: var(--crystal-transition);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
}

.property-icon-wrapper i {
    font-size: 16px;
    line-height: 1;
    transition: var(--crystal-transition-fast);
}

.property-item:hover .property-icon-wrapper {
    transform: scale(1.08);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.18);
}

/* Property name text */
.property-name {
    font-size: var(--crystal-font-size-sm);
    font-weight: 600;
    color: var(--crystal-gray-800);
    line-height: 1.3;
    padding: 0;
    position: relative;
    transition: var(--crystal-transition-fast);
    word-break: break-word;
}

/* ===== Force remove ALL old ::before pseudo-element icons ===== */
/* Use very high specificity to override any cached or legacy rules */
.property-widget-container .property-grid .property-item .property-link .property-name::before,
.property-widget-container .property-item .property-name::before,
.property-item .property-link .property-name::before,
.property-item .property-name::before,
.property-name::before,
a[href] .property-name::before,
a[href*="calm"] .property-name::before,
a[href*="love"] .property-name::before,
a[href*="confidence"] .property-name::before,
a[href*="healing"] .property-name::before,
a[href*="joy"] .property-name::before,
a[href*="creativity"] .property-name::before,
a[href*="focus"] .property-name::before,
a[href*="sleep"] .property-name::before,
a[href*="grief"] .property-name::before,
a[href*="anger"] .property-name::before,
a[href*="anxiety"] .property-name::before,
a[href*="inner-peace"] .property-name::before,
a[href*="motivation"] .property-name::before,
a[href*="security"] .property-name::before,
a[href*="acceptance"] .property-name::before,
a[href*="self-growth"] .property-name::before,
a[href*="balance"] .property-name::before,
a[href*="intuition"] .property-name::before,
a[href*="clarity"] .property-name::before,
a[href*="decision"] .property-name::before,
a[href*="grounding"] .property-name::before,
a[href*="protection"] .property-name::before,
a[href*="strength"] .property-name::before,
a[href*="willpower"] .property-name::before,
a[href*="abundance"] .property-name::before,
a[href*="prosperity"] .property-name::before,
a[href*="communication"] .property-name::before,
a[href*="empathy"] .property-name::before,
a[href*="patience"] .property-name::before,
a[href*="wisdom"] .property-name::before,
a[href*="transformation"] .property-name::before,
a[href*="energy"] .property-name::before,
a[href*="purification"] .property-name::before,
a[href*="harmony"] .property-name::before {
    display: none !important;
    content: none !important;
    width: 0 !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    font-size: 0 !important;
    visibility: hidden !important;
    position: absolute !important;
    overflow: hidden !important;
}

.property-item:hover .property-name {
    color: var(--crystal-gray-900);
}

/* =============================================================================
   RESPONSIVE DESIGN
   ============================================================================= */

/* Tablet styles */
@media (max-width: 768px) {
    .zodiac-widget-container,
    .element-widget-container,
    .color-widget-container,
    .chakra-widget-container,
    .property-widget-container {
        padding: var(--crystal-space-4);
        margin-bottom: var(--crystal-space-4);
    }
    
    .widget-title {
        font-size: var(--crystal-font-size-xl);
        margin-bottom: var(--crystal-space-4);
    }
    
    /* Color widget responsive */
    .color-widget-container[data-columns="3"] .color-grid,
    .color-widget-container[data-columns="4"] .color-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    
    .color-block {
        height: 35px;
    }
    
    /* Property widget responsive - tablet */
    .property-widget-container {
        max-width: 100%;
        padding: var(--crystal-space-4);
    }
    
    .property-widget-container[data-columns="3"] .property-grid,
    .property-widget-container[data-columns="4"] .property-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    
    .property-grid {
        gap: 8px;
    }
    
    .property-link {
        padding: 10px 12px;
        gap: 10px;
    }
    
    .property-icon-wrapper {
        width: 34px;
        height: 34px;
        min-width: 34px;
        border-radius: 8px;
    }
    
    .property-icon-wrapper i {
        font-size: 14px;
    }
    
    .zodiac-icon,
    .element-icon,
    .chakra-icon {
        width: 40px;
        height: 40px;
        font-size: var(--crystal-font-size-lg);
    }
    
    .zodiac-name,
    .element-name,
    .chakra-name {
        font-size: var(--crystal-font-size-base);
    }
    
    .property-name {
        font-size: var(--crystal-font-size-sm);
    }
}

/* Mobile styles */
@media (max-width: 480px) {
    .zodiac-widget-container,
    .element-widget-container,
    .color-widget-container,
    .chakra-widget-container,
    .property-widget-container {
        padding: var(--crystal-space-3);
        margin-bottom: var(--crystal-space-3);
        border-radius: var(--crystal-radius-lg);
    }
    
    .widget-title {
        font-size: var(--crystal-font-size-lg);
        margin-bottom: var(--crystal-space-3);
    }
    
    /* Color grid becomes single column on mobile */
    .color-grid {
        grid-template-columns: 1fr !important;
    }
    
    .color-block {
        height: 30px;
    }
    
    /* Property widget mobile - always single column for best readability */
    .property-widget-container {
        max-width: 100%;
        padding: var(--crystal-space-3) var(--crystal-space-3);
    }
    
    .property-grid {
        grid-template-columns: 1fr !important;
        gap: 6px;
    }
    
    .property-link {
        padding: 10px 12px;
        gap: 10px;
    }
    
    .property-icon-wrapper {
        width: 32px;
        height: 32px;
        min-width: 32px;
        border-radius: 8px;
    }
    
    .property-icon-wrapper i {
        font-size: 13px;
    }
    
    .property-name {
        font-size: var(--crystal-font-size-sm);
    }
    
    .property-item:hover {
        transform: none;
    }
    
    /* Active state for touch devices */
    .property-item:active {
        background: var(--crystal-white);
        border-color: var(--crystal-gray-200);
    }
    
    .property-item:active .property-icon-wrapper {
        transform: scale(1.05);
    }
    
    .zodiac-item,
    .element-item,
    .chakra-item {
        padding: var(--crystal-space-3);
        margin-bottom: var(--crystal-space-2);
    }
    
    .zodiac-icon,
    .element-icon,
    .chakra-icon {
        width: 36px;
        height: 36px;
        font-size: var(--crystal-font-size-base);
        margin-right: var(--crystal-space-3);
    }
    
    .zodiac-name,
    .element-name,
    .chakra-name {
        font-size: var(--crystal-font-size-sm);
    }
    
    .zodiac-date,
    .element-description,
    .chakra-description {
        font-size: var(--crystal-font-size-xs);
    }
}

/* =============================================================================
   BETTERDOCS INTEGRATION
   ============================================================================= */

/* Ensure compatibility with BetterDocs theme */
.betterdocs-wrapper .zodiac-widget-container,
.betterdocs-wrapper .element-widget-container,
.betterdocs-wrapper .color-widget-container,
.betterdocs-wrapper .chakra-widget-container,
.betterdocs-wrapper .property-widget-container {
    background: var(--crystal-white) !important;
    border: 1px solid var(--crystal-gray-200) !important;
}

/* =============================================================================
   ELEMENTOR INTEGRATION
   ============================================================================= */

/* Elementor editor compatibility */
.elementor-editor-active .zodiac-widget-container,
.elementor-editor-active .element-widget-container,
.elementor-editor-active .color-widget-container,
.elementor-editor-active .chakra-widget-container,
.elementor-editor-active .property-widget-container {
    position: relative;
    z-index: 1;
}

/* Elementor alignment classes */
.elementor-align-left .zodiac-widget-container,
.elementor-align-left .element-widget-container,
.elementor-align-left .color-widget-container,
.elementor-align-left .chakra-widget-container,
.elementor-align-left .property-widget-container {
    margin-left: 0;
    margin-right: auto;
}

.elementor-align-right .zodiac-widget-container,
.elementor-align-right .element-widget-container,
.elementor-align-right .color-widget-container,
.elementor-align-right .chakra-widget-container,
.elementor-align-right .property-widget-container {
    margin-left: auto;
    margin-right: 0;
}

.elementor-align-center .zodiac-widget-container,
.elementor-align-center .element-widget-container,
.elementor-align-center .color-widget-container,
.elementor-align-center .chakra-widget-container,
.elementor-align-center .property-widget-container {
    margin-left: auto;
    margin-right: auto;
}

/* =============================================================================
   ACCESSIBILITY
   ============================================================================= */

/* Focus styles for keyboard navigation */
.zodiac-item:focus,
.element-item:focus,
.color-item:focus,
.chakra-item:focus,
.property-link:focus {
    outline: 2px solid var(--crystal-primary);
    outline-offset: 2px;
}

/* High contrast mode support */
@media (prefers-contrast: high) {
    .zodiac-widget-container,
    .element-widget-container,
    .color-widget-container,
    .chakra-widget-container,
    .property-widget-container {
        border: 2px solid var(--crystal-gray-900);
    }
    
    .zodiac-item,
    .element-item,
    .color-item,
    .chakra-item,
    .property-item {
        border: 1px solid var(--crystal-gray-900);
    }
}

/* Reduced motion support */
@media (prefers-reduced-motion: reduce) {
    .zodiac-item,
    .element-item,
    .color-item,
    .chakra-item,
    .property-item,
    .crystal-item,
    .zodiac-icon,
    .element-icon,
    .chakra-icon,
    .color-block,
    .crystal-item-image img,
    .crystal-item-title,
    .property-icon-wrapper,
    .property-name,
    .property-item::before,
    .zodiac-item::before,
    .element-item::before,
    .color-item::before,
    .chakra-item::before {
        transition: none !important;
        transform: none !important;
    }
    
    .crystal-item:hover {
        transform: none !important;
    }
    
    .crystal-item:hover .crystal-item-image img {
        transform: none !important;
    }
    
    .crystal-item.loading .crystal-item-image {
        animation: none !important;
    }
}

/* =============================================================================
   RELATED CRYSTALS WIDGET
   ============================================================================= */

/* Container */
.related-crystals-container {
    width: 100%;
    margin: 0 auto;
    padding: var(--crystal-space-6) 0;
}

/* Section Title */
.related-crystals-title {
    font-family: var(--crystal-font-family);
    font-size: var(--crystal-font-size-xl);
    font-weight: 700;
    color: var(--crystal-gray-900);
    margin: 0 0 var(--crystal-space-5) 0;
    padding-bottom: var(--crystal-space-3);
    text-align: left;
    line-height: 1.3;
    position: relative;
    border-bottom: 2px solid var(--crystal-gray-200);
}

/* Grid Layout */
.related-crystals-grid {
    display: grid;
    gap: var(--crystal-space-5);
    width: 100%;
}

/* Responsive Grid Columns */
.related-crystals-columns-1 .related-crystals-grid {
    grid-template-columns: 1fr;
}

.related-crystals-columns-2 .related-crystals-grid {
    grid-template-columns: repeat(2, 1fr);
}

.related-crystals-columns-3 .related-crystals-grid {
    grid-template-columns: repeat(3, 1fr);
}

.related-crystals-columns-4 .related-crystals-grid {
    grid-template-columns: repeat(4, 1fr);
}

/* Tablet responsive */
@media (max-width: 1024px) {
    .related-crystals-columns-tablet-1 .related-crystals-grid {
        grid-template-columns: 1fr !important;
    }
    
    .related-crystals-columns-tablet-2 .related-crystals-grid {
        grid-template-columns: repeat(2, 1fr) !important;
    }
    
    .related-crystals-columns-tablet-3 .related-crystals-grid {
        grid-template-columns: repeat(3, 1fr) !important;
    }
    
    .related-crystals-columns-tablet-4 .related-crystals-grid {
        grid-template-columns: repeat(4, 1fr) !important;
    }
}

/* Mobile responsive */
@media (max-width: 767px) {
    .related-crystals-columns-mobile-1 .related-crystals-grid {
        grid-template-columns: 1fr !important;
    }
    
    .related-crystals-columns-mobile-2 .related-crystals-grid {
        grid-template-columns: repeat(2, 1fr) !important;
    }
    
    .related-crystals-columns-mobile-3 .related-crystals-grid {
        grid-template-columns: repeat(3, 1fr) !important;
    }
    
    .related-crystals-columns-mobile-4 .related-crystals-grid {
        grid-template-columns: repeat(4, 1fr) !important;
    }
}

/* ===== Crystal Item Card ===== */
.crystal-item {
    background: var(--crystal-white);
    border-radius: var(--crystal-radius-lg);
    overflow: hidden;
    transition: var(--crystal-transition);
    border: 1px solid var(--crystal-gray-200);
    box-shadow: var(--crystal-shadow-sm);
    position: relative;
}

.crystal-item-link {
    display: flex;
    flex-direction: column;
    text-decoration: none !important;
    color: inherit;
    width: 100%;
    height: 100%;
}

.crystal-item-link:hover {
    text-decoration: none !important;
    color: inherit;
}

/* ===== Crystal Image ===== */
.crystal-item-image {
    width: 100%;
    aspect-ratio: 1/1;
    overflow: hidden;
    position: relative;
    background: var(--crystal-gray-100);
}

.crystal-item-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.45s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

/* Placeholder for missing images */
.crystal-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    background: var(--crystal-gradient-soft);
    color: var(--crystal-gray-400);
    font-size: 2.5rem;
}

/* ===== Crystal Title ===== */
.crystal-item-title {
    font-family: var(--crystal-font-family);
    font-size: var(--crystal-font-size-sm);
    font-weight: 600;
    color: var(--crystal-gray-800) !important;
    background: var(--crystal-white) !important;
    margin: 0;
    padding: var(--crystal-space-3) var(--crystal-space-3);
    text-align: center;
    line-height: 1.4;
    transition: var(--crystal-transition-fast);
    border-top: 1px solid var(--crystal-gray-100);
    flex-shrink: 0;
}

/* ===== Hover Effects ===== */
.crystal-item:hover {
    transform: translateY(-4px);
    box-shadow: var(--crystal-shadow-xl);
    border-color: var(--crystal-primary);
}

.crystal-item:hover .crystal-item-image img {
    transform: scale(1.08);
}

.crystal-item:hover .crystal-item-title {
    color: var(--crystal-primary) !important;
    background: var(--crystal-gray-50) !important;
}

/* Hover Transform Variations */
.crystal-hover-scale-up .crystal-item:hover {
    transform: scale(1.03);
}

.crystal-hover-scale-down .crystal-item:hover {
    transform: scale(0.97);
}

.crystal-hover-translate-up .crystal-item:hover {
    transform: translateY(-6px);
}

/* Loading State */
.crystal-item.loading {
    opacity: 0.6;
}

.crystal-item.loading .crystal-item-image {
    background: var(--crystal-gray-100);
    animation: crystalPulse 1.5s ease-in-out infinite;
}

@keyframes crystalPulse {
    0%, 100% {
        opacity: 1;
    }
    50% {
        opacity: 0.5;
    }
}

/* Accessibility */
.crystal-item:focus-within {
    outline: 2px solid var(--crystal-primary);
    outline-offset: 2px;
}

.crystal-item-link:focus {
    outline: none;
}

/* ===== Responsive adjustments for related crystals ===== */
@media (max-width: 1200px) {
    .related-crystals-columns-4 .related-crystals-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 768px) {
    .related-crystals-container {
        padding: var(--crystal-space-4) 0;
    }
    
    .related-crystals-columns-4 .related-crystals-grid {
        grid-template-columns: repeat(3, 1fr);
    }
    
    .related-crystals-grid {
        gap: var(--crystal-space-3);
    }
    
    .related-crystals-title {
        font-size: var(--crystal-font-size-lg);
        margin-bottom: var(--crystal-space-4);
    }
    
    .crystal-item-title {
        font-size: var(--crystal-font-size-xs);
        padding: var(--crystal-space-2) var(--crystal-space-2);
    }
    
    .crystal-item:hover {
        transform: translateY(-2px);
    }
}

@media (max-width: 480px) {
    .related-crystals-container {
        padding: var(--crystal-space-3) 0;
    }
    
    .related-crystals-columns-3 .related-crystals-grid,
    .related-crystals-columns-4 .related-crystals-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    
    .related-crystals-columns-2 .related-crystals-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    
    .related-crystals-grid {
        gap: var(--crystal-space-2);
    }
    
    .crystal-item {
        border-radius: var(--crystal-radius-md);
    }
    
    .crystal-item-image {
        aspect-ratio: 1/1;
    }
    
    .crystal-item-title {
        font-size: var(--crystal-font-size-xs);
        padding: var(--crystal-space-2);
    }
    
    .crystal-item:hover {
        transform: none;
    }
    
    .crystal-item:active {
        border-color: var(--crystal-primary);
        box-shadow: var(--crystal-shadow-md);
    }
}

/* Dark Mode Support for Related Crystals */
@media (prefers-color-scheme: dark) {
    .crystal-item {
        background: var(--crystal-gray-800);
        border-color: var(--crystal-gray-700);
    }
    
    .crystal-item-title {
        color: var(--crystal-gray-200) !important;
        background: var(--crystal-gray-800) !important;
        border-top-color: var(--crystal-gray-700);
    }
    
    .crystal-item:hover .crystal-item-title {
        color: var(--crystal-accent) !important;
        background: var(--crystal-gray-700) !important;
    }
    
    .related-crystals-title {
        color: var(--crystal-gray-100);
        border-bottom-color: var(--crystal-gray-700);
    }
    
    .crystal-placeholder {
        background: var(--crystal-gradient-accent);
        color: var(--crystal-white);
    }
}

/* High Contrast Mode for Related Crystals */
@media (prefers-contrast: high) {
    .crystal-item {
        border: 2px solid var(--crystal-gray-900);
    }
    
    .crystal-item:hover {
        border-color: var(--crystal-primary);
    }
    
    .crystal-item-title {
        font-weight: 700;
    }
}

/* =============================================================================
   PRINT STYLES
   ============================================================================= */

@media print {
    .zodiac-widget-container,
    .element-widget-container,
    .color-widget-container,
    .chakra-widget-container,
    .property-widget-container,
    .related-crystals-container {
        box-shadow: none !important;
        border: 1px solid var(--crystal-gray-300) !important;
        background: var(--crystal-white) !important;
        page-break-inside: avoid;
    }
    
    .zodiac-item,
    .element-item,
    .color-item,
    .chakra-item,
    .property-item,
    .crystal-item {
        box-shadow: none !important;
        border: 1px solid var(--crystal-gray-300) !important;
    }
    
    .related-crystals-grid {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

/* =============================================================================
   PLANET WIDGET STYLES
   ============================================================================= */

.planet-widget-container {
    background: var(--crystal-white);
    border-radius: var(--crystal-radius-xl);
    padding: var(--crystal-space-6);
    box-shadow: var(--crystal-shadow-lg);
    border: 1px solid var(--crystal-gray-200);
    margin-bottom: var(--crystal-space-6);
}

.planet-list {
    display: flex;
    flex-direction: column;
    gap: var(--crystal-space-3);
    margin-top: var(--crystal-space-4);
}

.planet-list.all-planets {
    border-top: 1px solid var(--crystal-gray-200);
    padding-top: var(--crystal-space-4);
    margin-top: var(--crystal-space-6);
}

.planet-note {
    width: 100%;
    margin: 0 0 var(--crystal-space-3) 0;
    font-size: var(--crystal-font-size-sm);
    color: var(--crystal-gray-600);
    font-style: italic;
    text-align: center;
}

.planet-item {
    display: flex;
    align-items: center;
    background: var(--crystal-gray-50);
    margin: 0;
    padding: var(--crystal-space-4) var(--crystal-space-5);
    border-radius: var(--crystal-radius-lg);
    transition: var(--crystal-transition);
    text-decoration: none;
    color: inherit;
    border: 1px solid var(--crystal-gray-200);
}

.planet-item:hover {
    transform: translateY(-2px);
    box-shadow: var(--crystal-shadow-md);
    border-color: var(--crystal-primary);
    text-decoration: none;
    color: inherit;
}

.planet-icon {
    width: 50px;
    height: 50px;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    color: var(--crystal-white);
    font-size: 24px;
    margin-right: var(--crystal-space-4);
    flex-shrink: 0;
    background: var(--crystal-gradient-primary);
}

.planet-info {
    flex: 1;
}

.planet-name {
    font-size: var(--crystal-font-size-base);
    font-weight: 600;
    color: var(--crystal-gray-900);
    text-transform: capitalize;
}

/* Planet-specific icon colors */
.planet-item[data-planet*="mercury"] .planet-icon { 
    background: linear-gradient(135deg, #8e9aaf 0%, #cbc0d3 100%); 
}
.planet-item[data-planet*="venus"] .planet-icon { 
    background: linear-gradient(135deg, #ffc837 0%, #ff8008 100%); 
}
.planet-item[data-planet*="earth"] .planet-icon { 
    background: linear-gradient(135deg, #56ab2f 0%, #a8edea 100%); 
}
.planet-item[data-planet*="mars"] .planet-icon { 
    background: linear-gradient(135deg, #cb2d3e 0%, #ef473a 100%); 
}
.planet-item[data-planet*="jupiter"] .planet-icon { 
    background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%); 
}
.planet-item[data-planet*="saturn"] .planet-icon { 
    background: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%); 
}
.planet-item[data-planet*="uranus"] .planet-icon { 
    background: linear-gradient(135deg, #43e97b 0%, #38f9d7 100%); 
}
.planet-item[data-planet*="neptune"] .planet-icon { 
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); 
}
.planet-item[data-planet*="pluto"] .planet-icon { 
    background: linear-gradient(135deg, #2c3e50 0%, #4a6741 100%); 
}
.planet-item[data-planet*="sun"] .planet-icon { 
    background: linear-gradient(135deg, #f7b733 0%, #fc4a1a 100%); 
}
.planet-item[data-planet*="moon"] .planet-icon { 
    background: linear-gradient(135deg, #bdc3c7 0%, #2c3e50 100%); 
}

.no-planets {
    color: var(--crystal-gray-600);
    font-style: italic;
    text-align: center;
    padding: var(--crystal-space-5);
    background: var(--crystal-gray-50);
    border-radius: var(--crystal-radius);
    margin-top: var(--crystal-space-4);
    border: 1px solid var(--crystal-gray-200);
}

/* Responsive design for planet widget */
@media (max-width: 768px) {
    .planet-widget-container {
        padding: var(--crystal-space-4);
    }
    
    .planet-item {
        padding: var(--crystal-space-3);
    }
    
    .planet-icon {
        width: 40px;
        height: 40px;
        font-size: 20px;
        margin-right: var(--crystal-space-3);
    }
    
    .planet-name {
        font-size: var(--crystal-font-size-sm);
    }
}

@media (max-width: 480px) {
    .planet-list {
        gap: var(--crystal-space-2);
    }
    
    .planet-item {
        padding: var(--crystal-space-3);
    }
    
    .planet-icon {
        width: 36px;
        height: 36px;
        font-size: 18px;
        margin-right: var(--crystal-space-3);
    }
    
    .planet-name {
        font-size: var(--crystal-font-size-sm);
    }
}

/* Focus states for accessibility */
.planet-item:focus {
    outline: 2px solid var(--crystal-primary);
    outline-offset: 2px;
}

/* High contrast mode support */
@media (prefers-contrast: high) {
    .planet-widget-container {
        border: 2px solid var(--crystal-gray-900);
    }
    
    .planet-item {
        border: 1px solid var(--crystal-gray-900);
    }
}

/* Reduced motion support */
@media (prefers-reduced-motion: reduce) {
    .planet-item,
    .planet-icon {
        transition: none !important;
        transform: none !important;
    }
    
    .planet-item:hover {
        transform: none !important;
    }
}

/* Print styles */
@media print {
    .planet-widget-container {
        box-shadow: none !important;
        border: 1px solid var(--crystal-gray-300) !important;
    }
    
    .planet-item {
        box-shadow: none !important;
        border: 1px solid var(--crystal-gray-300) !important;
    }
}

/* =============================================================================
   EBOOK CTA AND STORE
   ============================================================================= */

.crystal-ebook-cta,
.cm-ebook-store {
    font-family: var(--crystal-font-family);
    color: var(--crystal-gray-900);
}

.crystal-ebook-cta {
    display: grid;
    grid-template-columns: minmax(112px, 156px) minmax(0, 1fr);
    gap: var(--crystal-space-5);
    align-items: center;
    margin: var(--crystal-space-8) 0;
    padding: var(--crystal-space-5);
    background: #ffffff;
    border: 1px solid var(--crystal-gray-200);
    border-radius: 8px;
    box-shadow: var(--crystal-shadow-md);
}

.crystal-ebook-cta--compact {
    grid-template-columns: minmax(92px, 120px) minmax(0, 1fr);
    gap: var(--crystal-space-4);
    padding: var(--crystal-space-4);
}

.crystal-ebook-cta--end {
    border-top: 4px solid var(--crystal-accent);
}

.crystal-ebook-cta__media {
    display: block;
    aspect-ratio: 4 / 5;
    overflow: hidden;
    border-radius: 8px;
    background: var(--crystal-gray-100);
    border: 1px solid var(--crystal-gray-200);
}

.crystal-ebook-cta__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.crystal-ebook-cta__body {
    min-width: 0;
}

.crystal-ebook-cta__eyebrow {
    margin: 0 0 var(--crystal-space-2);
    font-size: var(--crystal-font-size-xs);
    font-weight: 700;
    letter-spacing: 0;
    text-transform: uppercase;
    color: var(--crystal-primary);
}

.crystal-ebook-cta__title {
    margin: 0 0 var(--crystal-space-3);
    font-size: clamp(1.25rem, 1.8rem, 1.8rem);
    line-height: 1.2;
    color: var(--crystal-gray-900);
}

.crystal-ebook-cta__description {
    margin: 0 0 var(--crystal-space-4);
    font-size: var(--crystal-font-size-base);
    line-height: 1.6;
    color: var(--crystal-gray-700);
}

.crystal-ebook-cta__meta {
    display: flex;
    flex-wrap: wrap;
    gap: var(--crystal-space-2);
    margin: 0 0 var(--crystal-space-4);
}

.crystal-ebook-cta__meta span {
    display: inline-flex;
    align-items: center;
    min-height: 32px;
    padding: 0 var(--crystal-space-3);
    border-radius: 8px;
    background: var(--crystal-gray-50);
    border: 1px solid var(--crystal-gray-200);
    color: var(--crystal-gray-700);
    font-size: var(--crystal-font-size-sm);
    font-weight: 600;
}

.crystal-ebook-cta__actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--crystal-space-3);
    align-items: center;
}

.crystal-ebook-cta__button,
.crystal-ebook-cta .edd-add-to-cart,
.cm-ebook-store .edd-add-to-cart {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 0 var(--crystal-space-5) !important;
    border-radius: 8px !important;
    border: 1px solid transparent !important;
    font-size: var(--crystal-font-size-sm) !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    text-decoration: none !important;
    white-space: normal;
    box-shadow: none !important;
    transition: var(--crystal-transition-fast);
}

.crystal-ebook-cta .edd-add-to-cart.edd-no-js,
.cm-ebook-store .edd-add-to-cart.edd-no-js {
    display: none !important;
}

.crystal-ebook-cta .edd-add-to-cart[style*="display:none"],
.crystal-ebook-cta .edd-add-to-cart[style*="display: none"],
.crystal-ebook-cta .edd_go_to_checkout[style*="display:none"],
.crystal-ebook-cta .edd_go_to_checkout[style*="display: none"],
.cm-ebook-store .edd-add-to-cart[style*="display:none"],
.cm-ebook-store .edd-add-to-cart[style*="display: none"],
.cm-ebook-store .edd_go_to_checkout[style*="display:none"],
.cm-ebook-store .edd_go_to_checkout[style*="display: none"] {
    display: none !important;
}

.crystal-ebook-cta .edd-add-to-cart.edd-has-js::before,
.cm-ebook-store .edd-add-to-cart.edd-has-js::before {
    content: "\f07a";
    display: inline-block;
    margin-right: var(--crystal-space-2);
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    line-height: 1;
}

.crystal-ebook-cta__button--primary {
    color: #ffffff !important;
    background: var(--crystal-gray-900) !important;
}

.crystal-ebook-cta__button--secondary,
.crystal-ebook-cta .edd-add-to-cart,
.cm-ebook-store .edd-add-to-cart {
    color: var(--crystal-gray-900) !important;
    background: var(--crystal-white) !important;
    border-color: var(--crystal-gray-300) !important;
}

.crystal-ebook-cta__button:hover,
.crystal-ebook-cta .edd-add-to-cart:hover,
.cm-ebook-store .edd-add-to-cart:hover {
    transform: translateY(-1px);
    box-shadow: var(--crystal-shadow) !important;
}

.cm-ebook-store {
    max-width: 1120px;
    margin: 0 auto;
    padding: var(--crystal-space-4) 0 var(--crystal-space-8);
}

.cm-ebook-store__hero {
    margin: 0 0 var(--crystal-space-8);
    padding: var(--crystal-space-8);
    border: 1px solid #d9e5dd;
    border-radius: 8px;
    background: linear-gradient(135deg, #f7fbf8 0%, #ffffff 58%, #f8fafc 100%);
    box-shadow: var(--crystal-shadow);
}

.cm-ebook-store__eyebrow,
.cm-ebook-store__product-eyebrow {
    margin: 0 0 var(--crystal-space-2);
    color: #2f6b46;
    font-size: var(--crystal-font-size-xs);
    font-weight: 800;
    letter-spacing: 0;
    text-transform: uppercase;
}

.cm-ebook-store__title {
    max-width: 820px;
    margin: 0 0 var(--crystal-space-4);
    color: var(--crystal-gray-900);
    font-size: 2.35rem;
    line-height: 1.08;
}

.cm-ebook-store__intro {
    max-width: 780px;
    margin: 0;
    color: var(--crystal-gray-700);
    font-size: var(--crystal-font-size-lg);
    line-height: 1.65;
}

.cm-ebook-store__trust {
    display: flex;
    flex-wrap: wrap;
    gap: var(--crystal-space-3);
    margin-top: var(--crystal-space-5);
}

.cm-ebook-store__trust span,
.cm-ebook-store__meta span {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 0 var(--crystal-space-3);
    border: 1px solid var(--crystal-gray-200);
    border-radius: 8px;
    background: #ffffff;
    color: var(--crystal-gray-700);
    font-size: var(--crystal-font-size-sm);
    font-weight: 700;
}

.cm-ebook-store__trust i {
    margin-right: var(--crystal-space-2);
    color: #2f6b46;
}

.cm-ebook-store__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--crystal-space-6);
    margin: 0;
}

.cm-ebook-store__product {
    display: grid;
    grid-template-rows: auto 1fr;
    overflow: hidden;
    min-height: 100%;
    padding: 0;
    border: 1px solid var(--crystal-gray-200);
    border-radius: 8px;
    background: #ffffff;
    box-shadow: var(--crystal-shadow-md);
}

.cm-ebook-store__media {
    display: block;
    padding: var(--crystal-space-5) var(--crystal-space-5) 0;
    background: linear-gradient(180deg, var(--crystal-gray-50), #ffffff);
}

.cm-ebook-store__cover {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    display: block;
    margin: 0;
    border-radius: 8px;
    border: 1px solid var(--crystal-gray-200);
    background: var(--crystal-gray-100);
}

.cm-ebook-store__product-body {
    display: flex;
    flex-direction: column;
    gap: var(--crystal-space-4);
    padding: var(--crystal-space-5);
}

.cm-ebook-store__product-head {
    min-width: 0;
}

.cm-ebook-store__product h2 {
    margin: 0 0 var(--crystal-space-3);
    color: var(--crystal-gray-900);
    font-size: var(--crystal-font-size-2xl);
    line-height: 1.18;
}

.cm-ebook-store__summary {
    margin: 0;
    color: var(--crystal-gray-900);
    font-size: var(--crystal-font-size-base);
    line-height: 1.6;
}

.cm-ebook-store__product p,
.cm-ebook-store__product li,
.cm-ebook-store__notice {
    color: var(--crystal-gray-700);
    line-height: 1.6;
}

.cm-ebook-store__meta {
    display: flex;
    flex-wrap: wrap;
    gap: var(--crystal-space-2);
}

.cm-ebook-store__features {
    display: grid;
    gap: var(--crystal-space-2);
    margin: 0;
    padding: 0;
    list-style: none;
}

.cm-ebook-store__features li {
    position: relative;
    padding-left: var(--crystal-space-6);
    color: var(--crystal-gray-700);
    line-height: 1.55;
}

.cm-ebook-store__features li::before {
    content: "\f00c";
    position: absolute;
    left: 0;
    top: 0.1em;
    color: #2f6b46;
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
}

.cm-ebook-store__best-for {
    margin: 0;
    padding: var(--crystal-space-3);
    border-left: 3px solid #2f6b46;
    border-radius: 0 8px 8px 0;
    background: #f7fbf8;
    font-size: var(--crystal-font-size-sm);
}

.cm-ebook-store__purchase {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: var(--crystal-space-4);
    align-items: center;
    margin-top: auto;
    padding-top: var(--crystal-space-4);
    border-top: 1px solid var(--crystal-gray-200);
}

.cm-ebook-store__price {
    margin: 0;
    color: var(--crystal-gray-900) !important;
    font-size: var(--crystal-font-size-2xl);
    font-weight: 900;
    line-height: 1;
}

.cm-ebook-store__notice {
    margin: 0;
    font-size: var(--crystal-font-size-sm);
}

.cm-ebook-store__aftercare {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(280px, 1.1fr);
    gap: var(--crystal-space-5);
    margin-top: var(--crystal-space-6);
    padding: var(--crystal-space-5);
    border: 1px solid var(--crystal-gray-200);
    border-radius: 8px;
    background: var(--crystal-gray-50);
}

.cm-ebook-store__aftercare h2 {
    margin: 0 0 var(--crystal-space-2);
    color: var(--crystal-gray-900);
    font-size: var(--crystal-font-size-xl);
}

.cm-ebook-store__aftercare p {
    margin: 0;
    color: var(--crystal-gray-700);
    line-height: 1.6;
}

@media (max-width: 700px) {
    .crystal-ebook-cta {
        grid-template-columns: 1fr;
        padding: var(--crystal-space-4);
    }

    .crystal-ebook-cta__media {
        max-width: 220px;
    }

    .crystal-ebook-cta__actions {
        align-items: stretch;
    }

    .crystal-ebook-cta__button,
    .crystal-ebook-cta .edd-add-to-cart,
    .cm-ebook-store .edd-add-to-cart {
        width: 100%;
    }

    .cm-ebook-store__grid {
        grid-template-columns: 1fr;
    }

    .cm-ebook-store__hero {
        padding: var(--crystal-space-5);
    }

    .cm-ebook-store__title {
        font-size: 1.85rem;
    }

    .cm-ebook-store__purchase,
    .cm-ebook-store__aftercare {
        grid-template-columns: 1fr;
    }

    .cm-ebook-store__price {
        font-size: var(--crystal-font-size-xl);
    }
}

@media (prefers-reduced-motion: reduce) {
    .crystal-ebook-cta__button,
    .crystal-ebook-cta .edd-add-to-cart,
    .cm-ebook-store .edd-add-to-cart {
        transition: none !important;
        transform: none !important;
    }
}

/* =============================================================================
   EBOOK PURCHASE FLOW
   ============================================================================= */

.page-id-1413 #content,
.page-id-1414 #content,
.page-id-1417 #content {
    max-width: 1180px;
    margin: 0 auto;
    padding: var(--crystal-space-10) var(--crystal-space-4) var(--crystal-space-12);
    font-family: var(--crystal-font-family);
    color: var(--crystal-gray-900);
}

.page-id-1413,
.page-id-1414,
.page-id-1417 {
    background: #f7faf8;
}

.page-id-1413 .entry-title,
.page-id-1414 .entry-title,
.page-id-1417 .entry-title {
    max-width: 760px;
    margin: 0 0 var(--crystal-space-3);
    font-size: clamp(2rem, 4vw, 3.25rem);
    line-height: 1.15;
    color: var(--crystal-gray-900);
}

.page-id-1413 .entry-title::after {
    content: "Secure payment, instant digital delivery, and download links on your receipt.";
    display: block;
    max-width: 680px;
    margin-top: var(--crystal-space-3);
    color: var(--crystal-gray-600);
    font-size: var(--crystal-font-size-lg);
    font-weight: 500;
    line-height: 1.55;
}

.page-id-1413 .wp-block-edd-checkout,
.page-id-1414 .wp-block-edd-receipt,
.page-id-1417 .wp-block-edd-confirmation {
    position: relative;
    margin: 0 auto;
}

.page-id-1413 .wp-block-edd-checkout::before,
.page-id-1414 .wp-block-edd-receipt::before,
.page-id-1417 .wp-block-edd-confirmation::before {
    display: block;
    margin: var(--crystal-space-6) 0 var(--crystal-space-5);
    padding: var(--crystal-space-4) var(--crystal-space-5);
    border: 1px solid #cfe0d4;
    border-radius: 8px;
    background: #ffffff;
    color: #214d36;
    font-size: var(--crystal-font-size-sm);
    font-weight: 700;
    line-height: 1.5;
    box-shadow: var(--crystal-shadow-sm);
}

.page-id-1413 .wp-block-edd-checkout::before {
    content: "Secure checkout: review your cart, enter your email, then pay by card. Your download links appear immediately after payment.";
    grid-column: 1 / -1;
}

.page-id-1414 .wp-block-edd-receipt::before {
    content: "Purchase complete: download links are below and a receipt email has been sent.";
}

.page-id-1417 .wp-block-edd-confirmation::before {
    content: "Thank you. Your digital files will be available on the receipt page.";
}

.page-id-1413 .edd-blocks__checkout {
    display: grid;
    grid-template-columns: minmax(320px, 0.78fr) minmax(460px, 1.22fr);
    gap: var(--crystal-space-8);
    align-items: start;
}

.page-id-1413 .edd-blocks__cart,
.page-id-1413 .edd-blocks__purchase-form,
.page-id-1414 .wp-block-edd-receipt > *,
.page-id-1417 .wp-block-edd-confirmation > * {
    border: 1px solid var(--crystal-gray-200);
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 18px 46px rgba(15, 23, 42, 0.08);
}

.page-id-1413 .edd-blocks__cart {
    grid-column: 2;
    grid-row: 2;
    position: sticky;
    top: var(--crystal-space-6);
    padding: var(--crystal-space-6);
    overflow: hidden;
}

.page-id-1413 .edd-blocks__cart::after {
    content: "Digital download";
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    margin-top: var(--crystal-space-4);
    padding: 0 var(--crystal-space-3);
    border: 1px solid #cfe0d4;
    border-radius: 8px;
    background: #f6fbf8;
    color: #214d36;
    font-size: var(--crystal-font-size-xs);
    font-weight: 800;
    text-transform: uppercase;
}

.page-id-1413 .edd-blocks__purchase-form {
    grid-column: 1;
    grid-row: 2;
    padding: var(--crystal-space-8);
}

.page-id-1413 .edd-blocks__cart::before,
.page-id-1413 .edd-blocks__purchase-form::before {
    display: block;
    margin: 0 0 var(--crystal-space-4);
    color: var(--crystal-gray-900);
    font-size: var(--crystal-font-size-xl);
    font-weight: 800;
    line-height: 1.25;
}

.page-id-1413 .edd-blocks__cart::before {
    content: "Order Summary";
}

.page-id-1413 .edd-blocks__purchase-form::before {
    content: "Payment Details";
}

.page-id-1413 #edd_checkout_cart,
.page-id-1414 .edd-blocks-receipt__items,
.page-id-1414 .edd-blocks__receipt {
    width: 100%;
}

.page-id-1413 #edd_checkout_cart,
.page-id-1413 #edd_checkout_cart * {
    box-sizing: border-box;
}

.page-id-1413 #edd_checkout_cart .edd_cart_header_row,
.page-id-1413 #edd_checkout_cart .edd_cart_item,
.page-id-1413 #edd_checkout_cart .edd_cart_footer_row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: var(--crystal-space-4);
    align-items: center;
    padding: var(--crystal-space-3) 0;
    border-bottom: 1px solid var(--crystal-gray-200);
}

.page-id-1413 #edd_checkout_cart .edd_cart_item {
    padding: var(--crystal-space-4) 0;
}

.page-id-1413 #edd_checkout_cart .edd_cart_header_row {
    padding-top: 0;
    color: var(--crystal-gray-500);
    font-size: var(--crystal-font-size-xs);
    font-weight: 800;
    letter-spacing: 0;
    text-transform: uppercase;
}

.page-id-1413 #edd_checkout_cart .edd_cart_item_name {
    min-width: 0;
    color: var(--crystal-gray-900);
    font-weight: 800;
    line-height: 1.35;
}

.page-id-1413 #edd_checkout_cart .edd_cart_item_price,
.page-id-1413 #edd_checkout_cart .edd_cart_total {
    color: var(--crystal-gray-900);
    font-weight: 800;
    white-space: nowrap;
}

.page-id-1413 #edd_checkout_cart .edd_cart_remove_item_btn,
.page-id-1413 #edd_checkout_cart .edd_cart_remove_item {
    color: var(--crystal-gray-500);
    font-size: var(--crystal-font-size-sm);
    text-decoration: none;
}

.page-id-1413 #edd_checkout_cart .edd_cart_remove_item_btn:hover,
.page-id-1413 #edd_checkout_cart .edd_cart_remove_item:hover {
    color: var(--crystal-danger);
}

.page-id-1413 #edd_checkout_cart .edd_cart_footer_row {
    margin-top: var(--crystal-space-2);
    padding-top: var(--crystal-space-4);
    border-bottom: 0;
    font-size: var(--crystal-font-size-lg);
}

.page-id-1413 #edd_purchase_form fieldset {
    margin: 0 0 var(--crystal-space-6);
    padding: var(--crystal-space-5);
    border: 1px solid var(--crystal-gray-200);
    border-radius: 8px;
    background: #fbfdfc;
}

.page-id-1413 #edd_purchase_form legend {
    width: 100%;
    margin: 0 0 var(--crystal-space-5);
    padding: 0 0 var(--crystal-space-3);
    border-bottom: 1px solid var(--crystal-gray-200);
    color: var(--crystal-gray-900);
    font-size: var(--crystal-font-size-xl);
    font-weight: 800;
    line-height: 1.25;
}

.page-id-1413 #edd_purchase_form p,
.page-id-1413 #edd_purchase_form .edd-blocks-form__group {
    margin: 0 0 var(--crystal-space-4);
}

.page-id-1413 #edd_purchase_form label {
    display: block;
    margin: 0 0 var(--crystal-space-2);
    color: var(--crystal-gray-800);
    font-size: var(--crystal-font-size-sm);
    font-weight: 800;
    line-height: 1.35;
}

.page-id-1413 #edd_purchase_form .edd-description {
    margin-top: var(--crystal-space-2);
    color: var(--crystal-gray-500);
    font-size: var(--crystal-font-size-sm);
    line-height: 1.45;
}

.page-id-1413 #edd_purchase_form input[type="text"],
.page-id-1413 #edd_purchase_form input[type="email"],
.page-id-1413 #edd_purchase_form input[type="tel"],
.page-id-1413 #edd_purchase_form input[type="password"],
.page-id-1413 #edd_purchase_form .card-name,
.page-id-1413 #edd_purchase_form .StripeElement {
    width: 100%;
    min-height: 52px;
    padding: 0 var(--crystal-space-4);
    border: 1px solid #cbd7cf;
    border-radius: 8px;
    background: #ffffff;
    color: var(--crystal-gray-900);
    font-size: var(--crystal-font-size-base);
    box-shadow: none;
    transition: border-color 160ms ease, box-shadow 160ms ease;
}

.page-id-1413 #edd_purchase_form input:focus,
.page-id-1413 #edd_purchase_form .StripeElement--focus {
    outline: none;
    border-color: #315d46;
    box-shadow: 0 0 0 4px rgba(49, 93, 70, 0.14);
}

.page-id-1413 #edd_cc_fields {
    margin-top: var(--crystal-space-6);
    padding-top: var(--crystal-space-2);
}

.page-id-1413 #edd-card-wrap {
    margin-top: var(--crystal-space-3);
}

.page-id-1413 #edd_purchase_submit {
    margin: var(--crystal-space-6) 0 0;
}

.page-id-1413 #edd-purchase-button,
.page-id-1413 .edd-submit,
.page-id-1413 .edd-apply-discount {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    min-height: 54px;
    padding: 0 var(--crystal-space-6) !important;
    border: 1px solid #173f2c !important;
    border-radius: 8px !important;
    background: #173f2c !important;
    color: #ffffff !important;
    font-size: var(--crystal-font-size-base) !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
    text-decoration: none !important;
    box-shadow: none !important;
    cursor: pointer;
}

.page-id-1413 #edd-purchase-button {
    width: 100%;
}

.page-id-1413 #edd-purchase-button:hover,
.page-id-1413 .edd-submit:hover {
    transform: translateY(-1px);
    background: #0f3021 !important;
    box-shadow: 0 10px 22px rgba(15, 48, 33, 0.22) !important;
}

.page-id-1413 #edd_purchase_submit::after {
    content: "Encrypted payment by Stripe. Digital products are delivered immediately after successful payment.";
    display: block;
    margin-top: var(--crystal-space-3);
    color: var(--crystal-gray-500);
    font-size: var(--crystal-font-size-sm);
    line-height: 1.45;
    text-align: center;
}

.page-id-1413 .edd_empty_cart {
    display: block;
    max-width: 640px;
    margin: var(--crystal-space-8) auto;
    padding: var(--crystal-space-6);
    border: 1px solid var(--crystal-gray-200);
    border-radius: 8px;
    background: #ffffff;
    color: var(--crystal-gray-700);
    text-align: center;
    box-shadow: var(--crystal-shadow);
}

.page-id-1414 .wp-block-edd-receipt {
    display: grid;
    gap: var(--crystal-space-5);
}

.page-id-1414 .wp-block-edd-receipt > * {
    padding: var(--crystal-space-5);
}

.page-id-1414 .edd-blocks__receipt {
    padding: var(--crystal-space-5);
}

.page-id-1414 .edd-blocks__receipt::before {
    content: "Order details";
    display: block;
    margin: 0 0 var(--crystal-space-4);
    color: var(--crystal-gray-900);
    font-size: var(--crystal-font-size-xl);
    font-weight: 800;
}

.page-id-1414 .edd-blocks-receipt__items::before,
.page-id-1414 h2,
.page-id-1414 h3 {
    color: var(--crystal-gray-900);
    font-size: var(--crystal-font-size-xl);
    font-weight: 800;
    line-height: 1.25;
}

.page-id-1414 table,
.page-id-1414 .edd-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    overflow: hidden;
    border: 1px solid var(--crystal-gray-200);
    border-radius: 8px;
    background: #ffffff;
}

.page-id-1414 table th,
.page-id-1414 table td,
.page-id-1414 .edd-table th,
.page-id-1414 .edd-table td {
    padding: var(--crystal-space-3) var(--crystal-space-4);
    border-bottom: 1px solid var(--crystal-gray-200);
    color: var(--crystal-gray-800);
    line-height: 1.45;
    vertical-align: top;
}

.page-id-1414 table tr:last-child th,
.page-id-1414 table tr:last-child td,
.page-id-1414 .edd-table tr:last-child th,
.page-id-1414 .edd-table tr:last-child td {
    border-bottom: 0;
}

.page-id-1414 .edd_purchase_receipt_product_name,
.page-id-1414 .edd-blocks-receipt__item-title {
    color: var(--crystal-gray-900);
    font-weight: 800;
}

.page-id-1414 .edd_purchase_receipt_product_notes,
.page-id-1414 .edd-blocks-receipt__item-notes {
    margin-top: var(--crystal-space-2);
    color: var(--crystal-gray-600);
    font-size: var(--crystal-font-size-sm);
    line-height: 1.55;
}

.page-id-1414 .edd_purchase_receipt_files,
.page-id-1414 .edd-blocks-receipt__files {
    display: grid;
    gap: var(--crystal-space-2);
    margin: var(--crystal-space-3) 0 0;
    padding: 0;
    list-style: none;
}

.page-id-1414 .edd_download_file,
.page-id-1414 .edd-blocks-receipt__file {
    margin: 0;
}

.page-id-1414 .edd_download_file_link,
.page-id-1414 .edd-blocks-receipt__file a {
    display: inline-flex;
    align-items: center;
    min-height: 40px;
    padding: 0 var(--crystal-space-4);
    border: 1px solid var(--crystal-gray-300);
    border-radius: 8px;
    background: var(--crystal-gray-50);
    color: var(--crystal-gray-900);
    font-size: var(--crystal-font-size-sm);
    font-weight: 800;
    text-decoration: none;
}

.page-id-1414 .edd_download_file_link::before,
.page-id-1414 .edd-blocks-receipt__file a::before {
    content: "\f019";
    margin-right: var(--crystal-space-2);
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
}

.page-id-1414 .edd_download_file_link:hover,
.page-id-1414 .edd-blocks-receipt__file a:hover {
    border-color: var(--crystal-gray-900);
    background: #ffffff;
    box-shadow: var(--crystal-shadow);
}

@media (max-width: 900px) {
    .page-id-1413 .edd-blocks__checkout {
        grid-template-columns: 1fr;
    }

    .page-id-1413 .wp-block-edd-checkout::before,
    .page-id-1413 .edd-blocks__cart,
    .page-id-1413 .edd-blocks__purchase-form {
        grid-column: 1;
        grid-row: auto;
    }

    .page-id-1413 .edd-blocks__cart {
        position: static;
    }
}

@media (max-width: 640px) {
    .page-id-1413 #content,
    .page-id-1414 #content,
    .page-id-1417 #content {
        padding: var(--crystal-space-5) var(--crystal-space-3) var(--crystal-space-8);
    }

    .page-id-1413 .edd-blocks__cart,
    .page-id-1413 .edd-blocks__purchase-form,
    .page-id-1414 .wp-block-edd-receipt > * {
        padding: var(--crystal-space-4);
    }

    .page-id-1413 #edd_checkout_cart .edd_cart_header_row {
        display: none;
    }

    .page-id-1413 #edd_checkout_cart .edd_cart_item,
    .page-id-1413 #edd_checkout_cart .edd_cart_footer_row {
        grid-template-columns: 1fr;
        gap: var(--crystal-space-2);
    }

    .page-id-1414 table,
    .page-id-1414 .edd-table,
    .page-id-1414 table tbody,
    .page-id-1414 table tr,
    .page-id-1414 table th,
    .page-id-1414 table td,
    .page-id-1414 .edd-table tbody,
    .page-id-1414 .edd-table tr,
    .page-id-1414 .edd-table th,
    .page-id-1414 .edd-table td {
        display: block;
        width: 100%;
    }
}

/* =============================================================================
   EDD DOWNLOAD ARCHIVE AND PRODUCT PAGES
   ============================================================================= */

.post-type-archive-download #content,
.single-download #content {
    max-width: 1120px;
    margin: 0 auto;
    padding: var(--crystal-space-8) var(--crystal-space-4) var(--crystal-space-10);
    font-family: var(--crystal-font-family);
    color: var(--crystal-gray-900);
}

.post-type-archive-download #content {
    display: block;
}

.post-type-archive-download .page-header {
    margin: 0 0 var(--crystal-space-6);
    padding: 0;
}

.post-type-archive-download .page-header .entry-title {
    max-width: 760px;
    margin: 0;
    color: var(--crystal-gray-900);
    font-size: 0;
    line-height: 1.08;
}

.post-type-archive-download .page-header .entry-title::before {
    content: "Crystal Printable Downloads";
    display: block;
    font-size: 2.45rem;
    font-weight: 900;
    line-height: 1.08;
}

.post-type-archive-download .page-header::after {
    content: "Printable crystal guides and card decks for offline reference, journaling, shop inserts, and study workflows.";
    display: block;
    max-width: 760px;
    margin-top: var(--crystal-space-3);
    color: var(--crystal-gray-700);
    font-size: var(--crystal-font-size-lg);
    line-height: 1.6;
}

.post-type-archive-download .page-content {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--crystal-space-6);
}

.post-type-archive-download article.post {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    min-height: 100%;
    border: 1px solid var(--crystal-gray-200);
    border-radius: 8px;
    background: #ffffff;
    box-shadow: var(--crystal-shadow-md);
}

.post-type-archive-download article.post > a {
    display: block;
    order: -1;
    padding: var(--crystal-space-5) var(--crystal-space-5) 0;
    background: linear-gradient(180deg, var(--crystal-gray-50), #ffffff);
}

.post-type-archive-download article.post .wp-post-image {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    height: auto;
    max-height: none;
    object-fit: cover;
    border: 1px solid var(--crystal-gray-200);
    border-radius: 8px;
    background: var(--crystal-gray-100);
}

.post-type-archive-download article.post .entry-title {
    margin: 0;
    padding: var(--crystal-space-5) var(--crystal-space-5) var(--crystal-space-2);
    color: var(--crystal-gray-900);
    font-size: var(--crystal-font-size-2xl);
    font-weight: 900;
    line-height: 1.18;
}

.post-type-archive-download article.post .entry-title a {
    color: inherit;
    text-decoration: none;
}

.post-type-archive-download article.post .entry-title a:hover {
    color: #2f6b46;
}

.post-type-archive-download article.post p {
    margin: 0;
    padding: 0 var(--crystal-space-5) var(--crystal-space-5);
    color: var(--crystal-gray-700);
    line-height: 1.6;
}

.post-type-archive-download article.post p::after {
    content: "View product";
    display: inline-flex;
    align-items: center;
    min-height: 40px;
    margin-top: var(--crystal-space-4);
    padding: 0 var(--crystal-space-4);
    border: 1px solid var(--crystal-gray-300);
    border-radius: 8px;
    color: var(--crystal-gray-900);
    font-size: var(--crystal-font-size-sm);
    font-weight: 800;
}

.single-download #content {
    position: relative;
}

.single-download .page-content {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(340px, 420px);
    gap: var(--crystal-space-6);
    align-items: start;
}

.single-download .cm-download-product__media {
    grid-column: 2;
    grid-row: 1 / span 10;
    margin: 0;
    padding: var(--crystal-space-4);
    border: 1px solid var(--crystal-gray-200);
    border-radius: 8px;
    background: #ffffff;
    box-shadow: var(--crystal-shadow-md);
}

.single-download .cm-download-product__media img {
    display: block;
    width: 100%;
    height: auto;
    max-height: 520px;
    object-fit: cover;
    border-radius: 8px;
}

.single-download .page-content > h2,
.single-download .page-content > p,
.single-download .page-content > h3,
.single-download .page-content > ul {
    grid-column: 1;
    min-width: 0;
}

.single-download .page-content > h2 {
    margin: 0 0 var(--crystal-space-3);
    color: var(--crystal-gray-900);
    font-size: 2.35rem;
    font-weight: 900;
    line-height: 1.08;
}

.single-download .page-content > h3 {
    margin: var(--crystal-space-4) 0 var(--crystal-space-2);
    color: var(--crystal-gray-900);
    font-size: var(--crystal-font-size-xl);
    font-weight: 900;
}

.single-download .page-content > p {
    margin: 0;
    color: var(--crystal-gray-700);
    font-size: var(--crystal-font-size-base);
    line-height: 1.7;
}

.single-download .page-content > ul {
    display: grid;
    gap: var(--crystal-space-2);
    margin: 0;
    padding: 0;
    list-style: none;
}

.single-download .page-content > ul li {
    position: relative;
    padding-left: var(--crystal-space-6);
    color: var(--crystal-gray-700);
    line-height: 1.6;
}

.single-download .page-content > ul li::before {
    content: "\f00c";
    position: absolute;
    left: 0;
    top: 0.1em;
    color: #2f6b46;
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
}

.single-download .edd_download_purchase_form {
    grid-column: 1;
    margin-top: var(--crystal-space-2);
    padding: var(--crystal-space-5);
    border: 1px solid #d9e5dd;
    border-radius: 8px;
    background: #f7fbf8;
    box-shadow: var(--crystal-shadow);
}

.single-download .edd_download_purchase_form::before {
    content: "Digital download";
    display: block;
    margin-bottom: var(--crystal-space-3);
    color: #29533a;
    font-size: var(--crystal-font-size-sm);
    font-weight: 900;
    text-transform: uppercase;
}

.single-download .edd_purchase_submit_wrapper {
    display: flex;
    flex-wrap: wrap;
    gap: var(--crystal-space-3);
    align-items: center;
}

.single-download .edd-add-to-cart,
.single-download .edd_go_to_checkout {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 0 var(--crystal-space-5) !important;
    border-radius: 8px !important;
    border: 1px solid var(--crystal-gray-900) !important;
    background: var(--crystal-gray-900) !important;
    color: #ffffff !important;
    font-size: var(--crystal-font-size-sm) !important;
    font-weight: 900 !important;
    line-height: 1.2 !important;
    text-decoration: none !important;
    box-shadow: none !important;
}

.single-download .edd-add-to-cart.edd-no-js,
.single-download .edd-add-to-cart[style*="display:none"],
.single-download .edd-add-to-cart[style*="display: none"],
.single-download .edd_go_to_checkout[style*="display:none"],
.single-download .edd_go_to_checkout[style*="display: none"] {
    display: none !important;
}

.single-download .edd-add-to-cart.edd-has-js::before {
    content: "\f07a";
    margin-right: var(--crystal-space-2);
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
}

.single-download .edd-add-to-cart:hover,
.single-download .edd_go_to_checkout:hover {
    transform: translateY(-1px);
    box-shadow: var(--crystal-shadow) !important;
}

.single-download .edd-cart-ajax-alert {
    color: #29533a;
    font-size: var(--crystal-font-size-sm);
    font-weight: 800;
}

@media (max-width: 860px) {
    .post-type-archive-download .page-content,
    .single-download .page-content {
        grid-template-columns: 1fr;
    }

    .single-download .cm-download-product__media {
        grid-column: 1;
        grid-row: auto;
    }
}

@media (max-width: 640px) {
    .post-type-archive-download .page-header,
    .post-type-archive-download #content,
    .single-download #content {
        padding-right: var(--crystal-space-3);
        padding-left: var(--crystal-space-3);
    }

    .post-type-archive-download .page-header .entry-title::before,
    .single-download .page-content > h2 {
        font-size: 1.9rem;
    }

    .single-download .edd-add-to-cart,
    .single-download .edd_go_to_checkout {
        width: 100%;
    }
}
