/**
 * Mobility Trailblazers - Candidate Grid Styles
 * Version: 1.0.0
 * Created: 2025-08-17
 * 
 * Description: All candidate grid and card-related styles
 * Dependencies: mt-variables.css
 * 
 * This file contains:
 * - Main grid container styles
 * - Candidate card styles
 * - Grid responsive layouts
 * - Clickable card functionality
 * - Hover effects and animations
 */

/* ===================================
   MAIN GRID CONTAINER
   =================================== */

/* Main Grid Container */
.mt-candidates-grid {
    display: grid !important;
    width: 100% !important;
    max-width: 1400px !important;
    margin: 30px auto !important;
    padding: 20px 0 !important;
    gap: 20px !important;
}

/* Grid Column Layouts - Dynamic Options */
.mt-candidates-grid.columns-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

.mt-candidates-grid.columns-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

.mt-candidates-grid.columns-5 {
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
}

/* Default auto-fill layout */
.mt-candidates-grid:not(.columns-3, .columns-4, .columns-5) {
    grid-template-columns: repeat(auto-fill, minmax(280px,1fr)) !important;
}

/* ===================================
   CANDIDATE CARDS
   =================================== */

/* Individual Grid Items - Enhanced Card Styles */
.mt-candidate-card,
.mt-candidate-grid-item {
    position: relative !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    height: 100% !important;
    min-height: 320px !important;
    padding: 20px !important;
    overflow: hidden;
    text-align: center !important;
    background: var(--mt-bg-base, #FFF) !important;
    border: 2px solid var(--mt-blue-accent, #E5E7EB) !important;
    border-radius: 12px !important;
    box-shadow: var(--mt-shadow-sm, 0 1px 3px rgb(0 0 0 / 10%)) !important;
    transition: var(--mt-transition, all 0.3s ease) !important;
    cursor: pointer !important;
    box-sizing: border-box !important;
}

.mt-candidate-card:hover,
.mt-candidate-grid-item:hover {
    border-color: var(--mt-secondary, #084452) !important;
    box-shadow: var(--mt-shadow-lg, 0 10px 30px rgb(0 0 0 / 15%)) !important;
    transform: translateY(-5px) !important;
}

/* ===================================
   CANDIDATE IMAGE
   =================================== */

/* Candidate Image Container - Fixed Size */
.mt-candidate-image {
    position: relative !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    flex-shrink: 0 !important;
    width: 150px !important;
    height: 150px !important;
    margin: 0 auto 15px !important;
    overflow: hidden !important;
    background: #F5F5F5 !important;
    border-radius: 8px !important;
}

/* Image Styling - Ensure proper fit */
.mt-candidate-photo,
.mt-candidate-image img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
}

/* Image hover effect */
.mt-candidate-grid-item:hover .mt-candidate-image {
    transition: transform 0.3s ease !important;
    transform: scale(1.05) !important;
}

/* ===================================
   CANDIDATE HEADER (for numbered cards)
   =================================== */

/* Candidate Header for numbered cards */
.mt-candidate-header {
    margin: -20px -20px 15px; /* Negative margin to fill card edges */
    padding: 15px;
    text-align: center;
    background: #f8f9fa;
    border-bottom: 3px solid var(--mt-accent, #0072BC);
}

.mt-candidate-number {
    margin: 0;
    font-size: 28px;
    font-weight: 700;
    color: var(--mt-accent, #0072BC);
}

/* ===================================
   CANDIDATE INFO
   =================================== */

/* Candidate Info Section */
.mt-candidate-body,
.mt-candidate-info {
    display: flex !important;
    flex: 1 !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
    width: 100% !important;
    padding: 0 5px !important;
    text-align: center;
}

/* Name Styling - Consistent Height */
.mt-candidate-name,
.mt-candidate-info h3 {
    display: flex !important;
    display: -webkit-box !important;
    justify-content: center !important;
    align-items: center !important;
    min-height: 44px !important;
    margin: 0 0 10px !important;
    overflow: hidden !important;
    font-size: 17px !important;
    font-weight: 600 !important;
    line-height: 1.3 !important;
    color: var(--mt-primary, #00694E) !important;
    text-overflow: ellipsis !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
}

.mt-candidate-grid-item:hover h3 {
    color: var(--mt-accent, #0072BC) !important;
}

/* Meta Information - Consistent Layout */
.mt-candidate-meta {
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
    align-items: center !important;
    min-height: 50px !important;
    overflow: hidden !important;
    font-size: 13px !important;
    line-height: 1.4 !important;
    color: var(--mt-body-text, #666) !important;
}

.mt-candidate-meta .mt-position {
    display: block !important;
    font-weight: 500 !important;
    color: var(--mt-secondary, #084452) !important;
}

.mt-candidate-meta .mt-separator {
    display: inline-block !important;
    margin: 0 !important;
    color: #999 !important;
}

.mt-candidate-meta .mt-organization {
    display: block !important;
    display: -webkit-box !important;
    margin-top: 2px !important;
    overflow: hidden !important;
    color: #666 !important;
    text-overflow: ellipsis !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
}

/* ===================================
   CATEGORY TAGS
   =================================== */

/* Category Tags */
.mt-candidate-categories {
    margin-top: 10px !important;
}

.mt-category-tag {
    display: inline-block !important;
    margin: 2px !important;
    padding: 4px 12px !important;
    font-size: 11px !important;
    font-weight: 500 !important;
    color: var(--mt-primary, #00694E) !important;
    background: var(--mt-blue-accent, #009879) !important;
    border-radius: 15px !important;
}

/* ===================================
   VIEW CANDIDATE BUTTON
   =================================== */

.mt-view-candidate {
    display: inline-block;
    margin-top: 15px;
    padding: 8px 20px;
    font-weight: 500;
    color: white;
    background: var(--mt-accent, #0072BC);
    border-radius: 25px;
    transition: all 0.3s ease;
}

.mt-view-candidate:hover {
    text-decoration: none;
    color: white;
    background: var(--mt-kupfer-bold, #0072BC);
    transform: scale(1.05);
}

/* ===================================
   CLICKABLE CARDS
   =================================== */

/* Make the entire card clickable */
.mt-candidate-link {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    width: 100% !important;
    height: 100% !important;
    text-decoration: none !important;
    color: inherit !important;
    cursor: pointer !important;
}

.mt-candidate-link:hover {
    text-decoration: none !important;
}

/* Ensure text colors remain consistent */
.mt-candidate-link h3,
.mt-candidate-link .mt-position,
.mt-candidate-link .mt-organization,
.mt-candidate-link .mt-candidate-meta {
    text-decoration: none !important;
    color: inherit !important;
}

/* View Profile overlay button */
.mt-view-profile-overlay {
    position: absolute !important;
    bottom: 20px !important;
    left: 50% !important;
    z-index: 10 !important;
    padding: 8px 20px !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    color: white !important;
    background: var(--mt-accent, #0072BC) !important;
    border-radius: 20px !important;
    opacity: 0 !important;
    transition: opacity 0.3s ease !important;
    transform: translateX(-50%) !important;
    pointer-events: none !important;
}

.mt-candidate-grid-item:hover .mt-view-profile-overlay {
    opacity: 1 !important;
}

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

@media (width <= 1400px) {
    .mt-candidates-grid.columns-5 {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    }
}

@media (width <= 1200px) {
    .mt-candidates-grid.columns-5,
    .mt-candidates-grid.columns-4 {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
    
    .mt-candidates-grid:not(.columns-3, .columns-4, .columns-5) {
        grid-template-columns: repeat(auto-fill, minmax(250px,1fr)) !important;
    }
}

@media (width <= 992px) {
    .mt-candidates-grid.columns-5,
    .mt-candidates-grid.columns-4,
    .mt-candidates-grid.columns-3 {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
    
    .mt-candidates-grid:not(.columns-3, .columns-4, .columns-5) {
        grid-template-columns: repeat(auto-fill, minmax(200px,1fr)) !important;
    }
    
    .mt-candidate-grid-item,
    .mt-candidate-card {
        min-height: 280px !important;
    }
}

@media (width <= 768px) {
    .mt-candidates-grid.columns-5,
    .mt-candidates-grid.columns-4,
    .mt-candidates-grid.columns-3 {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
    
    .mt-candidates-grid:not(.columns-3, .columns-4, .columns-5) {
        grid-template-columns: repeat(2, 1fr) !important;
    }
    
    .mt-candidates-grid {
        gap: 15px !important;
    }
    
    .mt-candidate-grid-item,
    .mt-candidate-card {
        min-height: 260px !important;
        padding: 15px !important;
    }
    
    .mt-candidate-image {
        width: 120px !important;
        height: 120px !important;
    }
    
    .mt-candidate-info h3 {
        min-height: 38px !important;
        font-size: 15px !important;
    }
    
    .mt-candidate-meta {
        min-height: 44px !important;
        font-size: 12px !important;
    }
}

@media (width <= 480px) {
    .mt-candidates-grid.columns-5,
    .mt-candidates-grid.columns-4,
    .mt-candidates-grid.columns-3,
    .mt-candidates-grid {
        grid-template-columns: 1fr !important;
    }
    
    .mt-candidate-grid-item,
    .mt-candidate-card {
        min-height: auto !important;
        padding: 15px !important;
    }
}

/* ===================================
   THEME CONFLICT OVERRIDES
   =================================== */

/* Override any theme conflicts */
body .mt-candidates-grid * {
    box-sizing: border-box !important;
}

body .mt-candidates-grid img {
    max-width: 100% !important;
    height: auto !important;
}

/* Ensure proper spacing for the specific voting page */
body.page .mt-candidates-grid {
    max-width: 1400px !important;
    margin: 30px auto !important;
}

/* Fix any potential flexbox issues */
.mt-candidates-grid > * {
    min-width: 0 !important; /* Prevent flex items from overflowing */
}

/* Fixes for Elementor/Theme CSS Conflicts on Jury Dashboard */
body .mt-jury-dashboard .mt-candidates-list {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(250px,1fr)) !important;
    gap: 20px !important;
}

/* Fix for numbered candidate cards with dark backgrounds */
.elementor-widget-container [style*='background: linear-gradient'],
.elementor-widget-container [style*='background-color: #00694E'],
.elementor-widget-container [style*='background-color: #084452'],
div[style*='background: linear-gradient'] {
    background: #f8f9fa \!important;
    border: 2px solid #dee2e6 \!important;
}

.elementor-widget-container [style*='color: white'] h1,
.elementor-widget-container [style*='color: white'] h2,
.elementor-widget-container [style*='color: white'] h3,
.elementor-widget-container [style*='color: white'] h4,
.elementor-widget-container [style*='color: white'] strong,
div[style*='color: white'] {
    color: #212529 \!important;
}

.elementor-widget-container [style*='color: white'] p,
.elementor-widget-container [style*='color: white'] span {
    color: #495057 \!important;
}
