/**
 * Seminar Kalender Frontend Styles
 * Clean 3-column table layout matching the target design
 */

/* ===================================
   Reset & Base - Override Elementor
   =================================== */

.sk-calendar-wrapper,
.sk-calendar-wrapper *,
.sk-seminar-dates,
.sk-seminar-dates * {
    box-sizing: border-box !important;
}

/* Prevent Elementor from overriding display properties */
.elementor-widget-container .sk-calendar-wrapper,
.elementor-widget-container .sk-calendar,
.elementor-widget-container .sk-month-group,
.elementor-widget-container .sk-month-header,
.elementor-widget-container .sk-row,
.elementor .sk-calendar-wrapper,
.elementor .sk-calendar,
.elementor .sk-month-group,
.elementor .sk-month-header,
.elementor .sk-row {
    max-width: 100% !important;
}

/* ===================================
   Calendar Wrapper
   =================================== */

.sk-calendar-wrapper {
    font-family: inherit !important;
    font-size: 16px !important;
    line-height: 1.6 !important;
    width: 100% !important;
    color: #1d1d1d !important;
}

/* ===================================
   Filters
   =================================== */

.sk-filters {
    display: flex !important;
    gap: 15px !important;
    flex-wrap: wrap !important;
    margin-bottom: 40px !important;
}

.sk-filter {
    padding: 10px 15px !important;
    border: 1px solid #ddd !important;
    border-radius: 4px !important;
    font-size: 14px !important;
    min-width: 180px !important;
    background: #fff !important;
    cursor: pointer !important;
    color: #1d1d1d !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    appearance: none !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M6 8L1 3h10z' fill='%23666'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right 12px center !important;
    padding-right: 35px !important;
}

.sk-filter:focus {
    outline: none !important;
    border-color: #c75b39 !important;
}

/* ===================================
   Calendar Container
   =================================== */

.sk-calendar {
    background: #fff !important;
    width: 100% !important;
}

/* ===================================
   Month Group
   =================================== */

.sk-month-group {
    margin-bottom: 50px !important;
    width: 100% !important;
}

.sk-month-group:last-child {
    margin-bottom: 0 !important;
}

/* ===================================
   Month Header (3-column grid)
   =================================== */

.sk-month-header {
    display: grid !important;
    grid-template-columns: 1fr 2fr 1.5fr !important;
    gap: 30px !important;
    padding: 0 0 12px 0 !important;
    border-bottom: 3px solid #1d1d1d !important;
    margin-bottom: 0 !important;
    width: 100% !important;
    align-items: end !important;
}

.sk-month-name {
    font-size: 26px !important;
    font-weight: 700 !important;
    color: #1d1d1d !important;
    line-height: 1.2 !important;
    margin: 0 !important;
    padding: 0 !important;
}

.sk-column-header {
    font-size: 22px !important;
    font-weight: 700 !important;
    color: #1d1d1d !important;
    line-height: 1.2 !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* ===================================
   Calendar Row (3-column grid)
   =================================== */

.sk-row {
    display: grid !important;
    grid-template-columns: 1fr 2fr 1.5fr !important;
    gap: 30px !important;
    padding: 18px 0 !important;
    border-bottom: 1px solid #e5e5e5 !important;
    align-items: baseline !important;
    width: 100% !important;
}

.sk-row:last-child {
    border-bottom: none !important;
}

/* ===================================
   Date Column
   =================================== */

.sk-date {
    font-size: 16px !important;
    color: #333 !important;
    white-space: nowrap !important;
    line-height: 1.5 !important;
}

/* ===================================
   Seminar Column
   =================================== */

.sk-seminar {
    font-size: 16px !important;
    line-height: 1.5 !important;
}

.sk-seminar a {
    color: #c75b39 !important;
    text-decoration: none !important;
    transition: color 0.2s ease !important;
    font-weight: 500 !important;
}

.sk-seminar a:hover {
    color: #a04830 !important;
    text-decoration: underline !important;
}

/* Plain text seminar names (no link) */
.sk-seminar:not(:has(a)) {
    color: #c75b39 !important;
    font-weight: 500 !important;
}

/* ===================================
   Location Column
   =================================== */

.sk-location {
    font-size: 16px !important;
    color: #333 !important;
    line-height: 1.5 !important;
}

/* ===================================
   No Dates Message
   =================================== */

.sk-no-dates {
    padding: 40px 20px !important;
    text-align: center !important;
    color: #666 !important;
    font-style: italic !important;
    background: transparent !important;
}

/* ===================================
   Seminar Dates (Individual Page)
   =================================== */

.sk-seminar-dates {
    font-family: inherit !important;
    background: transparent !important;
    padding: 0 !important;
    max-width: 100% !important;
    line-height: 1.4 !important;
}

/* Override Elementor container backgrounds */
.elementor-widget-container:has(.sk-seminar-dates),
.elementor-widget:has(.sk-seminar-dates),
.elementor-element:has(.sk-seminar-dates) {
    background: transparent !important;
    padding: 0 !important;
}

/* Year Header */
.sk-year-header {
    font-size: 18px !important;
    font-weight: 700 !important;
    color: #1d1d1d !important;
    padding: 0 0 8px 0 !important;
    border-bottom: 2px solid #1d1d1d !important;
    margin-bottom: 12px !important;
    margin-top: 0 !important;
}

.sk-seminar-dates .sk-year-header:first-child {
    margin-top: 0 !important;
}

/* Cohort Header */
.sk-cohort-header {
    font-size: 18px !important;
    font-weight: 600 !important;
    color: #1d1d1d !important;
    padding: 10px 15px !important;
    background: #f8f8f8 !important;
    border-left: 3px solid #c75b39 !important;
    margin-bottom: 15px !important;
    margin-top: 25px !important;
}

.sk-seminar-dates .sk-cohort-header:first-child {
    margin-top: 0 !important;
}

/* Cohort Badge (in overall calendar) - hidden by default */
.sk-cohort-badge {
    display: none !important;
}

/* Date Row */
.sk-date-row {
    display: flex !important;
    gap: 20px !important;
    padding: 8px 0 !important;
    border-bottom: 1px solid #e0e0e0 !important;
    align-items: center !important;
    line-height: 1.4 !important;
}

.sk-date-row:last-child {
    border-bottom: none !important;
    padding-bottom: 0 !important;
}

.sk-date-row:first-child {
    padding-top: 0 !important;
}

/* Kurs Label */
.sk-kurs {
    font-size: 14px !important;
    font-weight: 500 !important;
    color: #333 !important;
    min-width: 50px !important;
    flex-shrink: 0 !important;
}

/* Date Range */
.sk-range {
    font-size: 14px !important;
    color: #333 !important;
    flex-grow: 1 !important;
    white-space: nowrap !important;
}

/* Location in Date Row */
.sk-date-row .sk-location {
    margin-left: auto !important;
    color: #666 !important;
    font-size: 14px !important;
    flex-shrink: 0 !important;
}

/* Table-style variant */
.sk-seminar-dates.sk-table-style .sk-date-row {
    display: grid !important;
    grid-template-columns: 120px 1fr auto !important;
    gap: 20px !important;
}

/* Compact style */
.sk-seminar-dates.sk-compact .sk-year-header {
    display: none !important;
}

/* Clean minimal style */
.sk-seminar-dates.sk-minimal .sk-date-row {
    padding: 12px 0 !important;
    gap: 15px !important;
}

.sk-seminar-dates.sk-minimal .sk-kurs {
    min-width: 80px !important;
    font-weight: 500 !important;
}

/* Card style */
.sk-seminar-dates.sk-card-style .sk-date-row {
    background: #fff !important;
    padding: 16px 20px !important;
    margin-bottom: 10px !important;
    border-radius: 6px !important;
    border: 1px solid #e5e5e5 !important;
    box-shadow: 0 1px 3px rgba(0,0,0,0.05) !important;
}

.sk-seminar-dates.sk-card-style .sk-date-row:last-child {
    margin-bottom: 0 !important;
}

/* ===================================
   Next Date (Inline)
   =================================== */

.sk-next-date {
    display: inline-flex !important;
    gap: 10px !important;
    align-items: center !important;
}

.sk-next-date .sk-date {
    font-weight: 500 !important;
}

.sk-next-date .sk-location {
    color: #666 !important;
    font-size: 0.9em !important;
}

.sk-next-date .sk-location::before {
    content: "\2022" !important;
    margin-right: 10px !important;
}

.sk-no-next-date {
    color: #999 !important;
    font-style: italic !important;
}

/* ===================================
   Error Messages
   =================================== */

.sk-error {
    padding: 15px 20px !important;
    background: #fef0f0 !important;
    border: 1px solid #f5c6cb !important;
    border-radius: 4px !important;
    color: #721c24 !important;
}

/* ===================================
   Responsive Design
   =================================== */

@media screen and (max-width: 768px) {
    .sk-filters {
        flex-direction: column !important;
    }

    .sk-filter {
        width: 100% !important;
    }

    .sk-month-header {
        grid-template-columns: 1fr !important;
        gap: 5px !important;
    }

    .sk-month-header .sk-column-header {
        display: none !important;
    }

    .sk-row {
        grid-template-columns: 1fr !important;
        gap: 8px !important;
        padding: 20px 0 !important;
    }

    .sk-date {
        font-weight: 600 !important;
    }

    .sk-seminar {
        font-size: 15px !important;
    }

    .sk-location {
        font-size: 14px !important;
        color: #666 !important;
    }

    /* Seminar Dates Mobile */
    .sk-seminar-dates {
        padding: 0 !important;
    }

    .sk-seminar-dates .sk-date-row {
        flex-direction: row !important;
        align-items: center !important;
        gap: 15px !important;
        padding: 8px 0 !important;
    }

    .sk-seminar-dates .sk-kurs {
        min-width: 45px !important;
        font-weight: 500 !important;
    }

    .sk-seminar-dates .sk-range {
        white-space: normal !important;
    }

    .sk-seminar-dates .sk-date-row .sk-location {
        margin-left: 0 !important;
        margin-top: 0 !important;
    }

    .sk-seminar-dates.sk-card-style .sk-date-row {
        padding: 10px 12px !important;
    }
}

/* ===================================
   Dark Theme Support
   =================================== */

@media (prefers-color-scheme: dark) {
    .sk-calendar-wrapper,
    .sk-seminar-dates {
        color: inherit !important;
    }
}

/* ===================================
   Elementor Compatibility
   =================================== */

/* Ensure full width in Elementor widgets */
.elementor-widget-seminar-kalender .sk-calendar-wrapper,
.elementor-widget-seminar-dates .sk-seminar-dates {
    width: 100% !important;
}

/* Prevent Elementor from collapsing grid */
.elementor-widget-container .sk-month-header,
.elementor-widget-container .sk-row {
    display: grid !important;
    grid-template-columns: 1fr 2fr 1.5fr !important;
}

/* Ensure Elementor doesn't add flex on wrapper */
.elementor-widget-container:has(.sk-calendar-wrapper) {
    display: block !important;
}

/* Filter Animation */
.sk-row.sk-hidden {
    display: none !important;
}

.sk-month-group.sk-hidden {
    display: none !important;
}
