/*
 * Elementor Overrides
 */

/* Force Elementor to respect theme colors on all sections */
.elementor-section { position: relative; }
.elementor-section.cm-dark-section { background-color: var(--cm-green-dark) !important; }
.elementor-section.cm-green-section { background-color: var(--cm-green) !important; }

/* Grid Layout Fallback overrides for custom theme compatibility */
.elementor-container {
    display: flex !important;
    flex-wrap: wrap !important;
    width: 100% !important;
}
.elementor-column {
    display: flex !important;
    flex-direction: column !important;
}
.elementor-col-100 { width: 100% !important; }
.elementor-col-50 { width: 50% !important; }
.elementor-col-33, .elementor-col-34 { width: 33.333% !important; }
.elementor-col-25 { width: 25% !important; }
.elementor-col-20 { width: 20% !important; }

@media (max-width: 768px) {
    .elementor-col-50, .elementor-col-33, .elementor-col-34, .elementor-col-25, .elementor-col-20 {
        width: 100% !important;
    }
}

/* Elementor widget typography overrides */
.elementor-widget-heading .elementor-heading-title { font-family: var(--cm-font-heading); color: var(--cm-white); }
.elementor-widget-text-editor { color: var(--cm-text); line-height: 1.8; }

/* Elementor button widget to match theme buttons */
.elementor-widget-button .elementor-button {
    background: linear-gradient(135deg, var(--cm-gold), var(--cm-gold-light));
    color: var(--cm-green-dark);
    font-family: var(--cm-font-body);
    font-weight: 700;
    letter-spacing: 0.5px;
    padding: 14px 36px;
    border-radius: 6px;
    border: none;
    transition: all 0.3s;
    box-shadow: 0 4px 20px rgba(179,122,33,0.3);
}
.elementor-widget-button .elementor-button:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 25px rgba(179,122,33,0.5);
    color: var(--cm-green-dark);
}
.elementor-widget-button .elementor-button.cm-outline {
    border: 2px solid var(--cm-gold);
    color: var(--cm-gold);
    background: transparent;
    box-shadow: none;
}
.elementor-widget-button .elementor-button.cm-outline:hover {
    background: var(--cm-gold);
    color: var(--cm-green-dark);
}

/* Elementor icon box widget styling */
.elementor-widget-icon-box .elementor-icon { color: var(--cm-gold); }
.elementor-widget-icon-box .elementor-icon-box-title { font-family: var(--cm-font-heading); color: var(--cm-white); }
.elementor-widget-icon-box .elementor-icon-box-description { color: var(--cm-text-muted); }
.elementor-widget-icon-box {
    background: var(--cm-glass);
    border: 1px solid var(--cm-border);
    border-radius: var(--cm-radius);
    padding: 30px;
    transition: var(--cm-transition);
}
.elementor-widget-icon-box:hover {
    border-color: var(--cm-gold);
    transform: translateY(-4px);
    box-shadow: var(--cm-shadow-gold);
}

/* Elementor tabs widget */
.elementor-tabs-wrapper { border-bottom: 1px solid var(--cm-border); }
.elementor-tab-title { color: var(--cm-white); padding: 16px 24px; cursor: pointer; transition: var(--cm-transition); }
.elementor-tab-title.elementor-active { color: var(--cm-gold); border-bottom: 2px solid var(--cm-gold); }
.elementor-tab-content { padding: 30px 0; color: var(--cm-text); }

/* Elementor accordion widget */
.elementor-accordion-item { border: 1px solid var(--cm-border); margin-bottom: 8px; border-radius: 8px; overflow: hidden; }
.elementor-accordion .elementor-tab-title { background: var(--cm-glass); color: var(--cm-white); padding: 20px; cursor: pointer; transition: var(--cm-transition); }
.elementor-accordion .elementor-tab-title.elementor-active { background: var(--cm-green); color: var(--cm-gold); }
.elementor-accordion .elementor-tab-content { background: rgba(2,31,20,0.5); padding: 20px; color: var(--cm-text-muted); }

/* Elementor counter widget */
.elementor-counter .elementor-counter-number-wrapper { font-family: var(--cm-font-mono); color: var(--cm-gold); font-size: 3rem; }
.elementor-counter .elementor-counter-title { text-transform: uppercase; letter-spacing: 2px; font-size: 0.8rem; color: var(--cm-text-muted); }

/* Elementor divider */
.elementor-divider { border-color: rgba(179,122,33,0.4); }

/* Elementor image widget */
.elementor-widget-image img { border-radius: var(--cm-radius); }

/* Elementor column inner card style */
.elementor-widget-wrap.cm-card-col {
    background: var(--cm-glass);
    border: 1px solid var(--cm-border);
    border-radius: var(--cm-radius);
    padding: 32px;
    transition: var(--cm-transition);
}
.elementor-widget-wrap.cm-card-col:hover {
    border-color: var(--cm-gold);
    transform: translateY(-4px);
    box-shadow: var(--cm-shadow-gold);
}

/* Table styles */
.elementor-widget-text-editor table { width: 100%; border-collapse: collapse; margin-bottom: 2rem; }
.elementor-widget-text-editor table th { background: var(--cm-green); color: var(--cm-gold); padding: 15px; text-align: left; border-bottom: 2px solid var(--cm-gold); }
.elementor-widget-text-editor table td { padding: 15px; border-bottom: 1px solid var(--cm-border); }
.elementor-widget-text-editor table tr:nth-child(even) { background: rgba(255,255,255,0.02); }

/* Price card special styling */
.cm-price-card {
    background: var(--cm-glass);
    border: 1px solid var(--cm-border);
    border-top: 4px solid var(--cm-gold);
    border-radius: var(--cm-radius);
    padding: 40px 30px;
    transition: var(--cm-transition);
}
.cm-price-card:hover { transform: translateY(-10px); box-shadow: var(--cm-shadow-gold); }
.cm-price-card.featured {
    background: rgba(5,56,39,0.8);
    border-color: var(--cm-gold);
    box-shadow: 0 10px 40px rgba(179,122,33,0.15);
}

/* Section title widget override */
.cm-section-header .elementor-heading-title { position: relative; display: inline-block; }
.cm-section-header .elementor-heading-title::after {
    content: ''; position: absolute; bottom: -10px; left: 50%; transform: translateX(-50%);
    height: 3px; background: linear-gradient(90deg, var(--cm-gold), var(--cm-gold-light));
    width: 0; transition: width 0.8s ease;
}
.cm-section-header.animated .elementor-heading-title::after { width: 60px; }

/* Progress bar */
.elementor-progress-bar { background: linear-gradient(90deg, var(--cm-gold), var(--cm-gold-light)) !important; }

/* List icon */
.elementor-icon-list-icon { color: var(--cm-gold) !important; }

/* Mobile responsive Elementor overrides */
@media (max-width: 768px) {
    .elementor-section.elementor-section-boxed > .elementor-container { padding: 0 20px; }
    .elementor-widget-heading .elementor-heading-title { font-size: clamp(2rem, 5vw, 3rem); }
}
