/**
 * Speaker Card Styles - Optimized, Responsive & RWD Ready
 */

:root {
    --speaker-card-bg: var(--speakers-info-bg, #222);
    --speaker-text-color: var(--speakers-info-text-color, #ffffff);
    --speaker-radius: 40px;
    --speaker-radius-mobile: 25px;
    --speaker-gap-between-boxes: 30px;
}

.speaker-grid-container {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--speaker-gap-between-boxes);
    width: 100%;
    margin: 0 auto;
    box-sizing: border-box;
    padding-bottom: 20px;
    font-family: var(--font-primary);
}

/* Card Wrapper */
.speaker-card {
    grid-column: span 2;
    text-decoration: none;
    display: block;
    transition: transform 0.3s ease;
    height: 100%;
}

/* Base Layout (Row 1, 3, 5... -> Image Right, Text Left) */
.speaker-card__content {
    display: flex;
    flex-direction: row;
    background-color: var(--speaker-card-bg);
    border-radius: var(--speaker-radius);
    overflow: hidden;
    min-height: 450px;
    height: 100%;
    position: relative;
}

/* Info Section */
.speaker-card__info {
    flex: 1;
    padding: 40px 30px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    z-index: 2;
}

.speaker-card__name {
    color: var(--speaker-text-color);
    font-size: var(--speaker-title-font-size, 24px);
    font-weight: var(--h3-font-weight, 700);
    margin: 0 0 15px 0;
    line-height: 1.2;
}

.speaker-card__position,
.speaker-card__company {
    color: var(--speaker-text-color);
    font-size: var(--speaker-company-font-size, 16px);
    margin: 5px 0;
    opacity: 0.9;
}

.speaker-card__company {
    font-weight: var(--h3-font-weight);
}

/* Image Section */
.speaker-card__image-box {
    flex: 1;
    position: relative;
    min-height: 100%;
}

.speaker-card__image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
    filter: grayscale(100%);
    transition: filter 0.3s ease, transform 0.3s ease;
}

/* Hover States */
.speaker-card:hover {
    transform: translateY(-5px);
}

.speaker-card:hover .speaker-card__image {
    filter: grayscale(0%);
}

/* ==========================================================================
   Media Queries - RWD 
   ========================================================================== */

/* Desktop layout rules - Alternate rows logic 
 * Formula: 4n+3 (targets 3rd, 7th...) & 4n (targets 4th, 8th...) elements
 * Result: Row 2, Row 4, Row 6... will be Reversed (Image Left, Text Right) 
 */
@media (min-width: 1025px) {
    .speaker-card:nth-child(4n+3) .speaker-card__content,
    .speaker-card:nth-child(4n) .speaker-card__content {
        flex-direction: row-reverse;
    }
}

/* Tablet Layout: 1 card per row (horizontal internal layout) */
@media (max-width: 1024px) and (min-width: 769px) {
    .speaker-grid-container {
        grid-template-columns: 1fr;
    }
    
    .speaker-card {
        grid-column: span 1;
    }

    /* Alternate every element since there is only 1 per row */
    .speaker-card:nth-child(even) .speaker-card__content {
        flex-direction: row-reverse;
    }
}

/* Mobile Layout: Stacked vertically (Text Top, Image Bottom) */
@media (max-width: 768px) {
    .speaker-grid-container {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .speaker-card {
        grid-column: span 1;
    }

    .speaker-card__content {
        flex-direction: column; /* Clean override without !important */
        min-height: auto;
        border-radius: var(--speaker-radius-mobile);
    }

    .speaker-card__info {
        padding: 30px 20px;
        order: 1;
    }

    .speaker-card__image-box {
        order: 2;
        width: 100%;
        height: 350px;
        min-height: 350px;
    }

    .speaker-card__image {
        position: relative;
        height: 350px;
    }

    .is-hidden-mobile {
        display: none;
    }
}