/* Terminliste Layout */
:root {
    --icon-calendar: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xml:space='preserve' viewBox='0 0 512 512' fill='%23555'%3E%3Cpath d='M472 60h-8V44c0-13.234-10.766-24-24-24s-24 10.766-24 24v16H96V44c0-13.234-10.766-24-24-24S48 30.766 48 44v16h-8C17.944 60 0 77.944 0 100v352c0 22.056 17.944 40 40 40h432c22.056 0 40-17.944 40-40V100c0-22.056-17.944-40-40-40zm-40-16c0-4.411 3.589-8 8-8s8 3.589 8 8v23.981c0 .007-.001.013-.001.019s.001.013.001.019V92c0 4.411-3.589 8-8 8s-8-3.589-8-8V44zM72 36c4.411 0 8 3.589 8 8v48c0 4.411-3.589 8-8 8s-8-3.589-8-8V44c0-4.411 3.589-8 8-8zm400 440H40c-13.234 0-24-10.766-24-24V148h384c4.418 0 8-3.582 8-8s-3.582-8-8-8H16v-32c0-13.234 10.766-24 24-24h8v16c0 13.234 10.766 24 24 24s24-10.766 24-24V76h320v16c0 13.234 10.766 24 24 24s24-10.766 24-24V76h8c13.234 0 24 10.766 24 24v32h-16c-4.418 0-8 3.582-8 8s3.582 8 8 8h16v304c0 13.234-10.766 24-24 24z'/%3E%3Cpath d='M448 132h-16c-4.418 0-8 3.582-8 8s3.582 8 8 8h16c4.418 0 8-3.582 8-8s-3.582-8-8-8z'/%3E%3Cg stroke='null'%3E%3Crect width='30' height='15' x='206' y='222' rx='8'/%3E%3Crect width='30' height='15' x='277' y='222' rx='8'/%3E%3Crect width='30' height='15' x='346' y='222' rx='8'/%3E%3Crect width='30' height='15' x='416' y='222' rx='8'/%3E%3Crect width='30' height='15' x='66' y='302' rx='8'/%3E%3Crect width='30' height='15' x='136' y='302' rx='8'/%3E%3Crect width='30' height='15' x='206' y='302' rx='8'/%3E%3Crect width='30' height='15' x='276' y='302' rx='8'/%3E%3Crect width='30' height='15' x='346' y='302' rx='8'/%3E%3Crect width='30' height='15' x='416' y='302' rx='8'/%3E%3Crect width='30' height='15' x='66' y='392' rx='8'/%3E%3Crect width='30' height='15' x='136' y='392' rx='8'/%3E%3Crect width='30' height='15' x='206' y='392' rx='8'/%3E%3Crect width='30' height='15' x='276' y='392' rx='8'/%3E%3Crect width='30' height='15' x='346' y='392' rx='8'/%3E%3C/g%3E%3C/svg%3E");
    --icon-calendar-empty: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xml:space='preserve' viewBox='0 0 512 512' fill='%23b09b96'%3E%3Cg stroke='null'%3E%3Cpath d='M472 47.37289h-8V30.42374c0-14.01907-10.766-25.42373-24-25.42373s-24 11.40466-24 25.42373v16.94915H96V30.42374C96 16.40467 85.234 5.00001 72 5.00001S48 16.40467 48 30.42374v16.94915h-8c-22.056 0-40 19.00847-40 42.37288v372.88136c0 23.36441 17.944 42.37288 40 42.37288h432c22.056 0 40-19.00847 40-42.37288V89.74577c0-23.36441-17.944-42.37288-40-42.37288zm-40-16.94915c0-4.67267 3.589-8.47458 8-8.47458s8 3.80191 8 8.47458v25.4036c0 .00742-.001.01377-.001.02013s.001.01377.001.02013v25.4036c0 4.67267-3.589 8.47458-8 8.47458s-8-3.80191-8-8.47458V30.42374zM72 21.94916c4.411 0 8 3.80191 8 8.47458V81.2712c0 4.67267-3.589 8.47458-8 8.47458s-8-3.80191-8-8.47458V30.42374c0-4.67267 3.589-8.47458 8-8.47458zm400 466.10169H40c-13.234 0-24-11.40466-24-25.42373v-322.0339h384c4.418 0 8-3.79449 8-8.47458s-3.582-8.47458-8-8.47458H16V89.74575c0-14.01907 10.766-25.42373 24-25.42373h8v16.94915c0 14.01907 10.766 25.42373 24 25.42373s24-11.40466 24-25.42373V64.32202h320v16.94915c0 14.01907 10.766 25.42373 24 25.42373s24-11.40466 24-25.42373V64.32202h8c13.234 0 24 11.40466 24 25.42373v33.89831h-16c-4.418 0-8 3.79449-8 8.47458s3.582 8.47458 8 8.47458h16v322.0339c0 14.01907-10.766 25.42373-24 25.42373z'/%3E%3Cpath d='M448 123.64407h-16c-4.418 0-8 3.79449-8 8.47458s3.582 8.47458 8 8.47458h16c4.418 0 8-3.79449 8-8.47458s-3.582-8.47458-8-8.47458z'/%3E%3C/g%3E%3C/svg%3E");
    --icon-clock: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xml:space='preserve' viewBox='0 0 60 60' fill='%2355'%3E%3Cpath d='M30 0C13.458 0 0 13.458 0 30s13.458 30 30 30 30-13.458 30-30S46.542 0 30 0zm0 58C14.561 58 2 45.439 2 30S14.561 2 30 2s28 12.561 28 28-12.561 28-28 28z'/%3E%3Cpath d='M31 26.021V15.879c0-.553-.448-1-1-1s-1 .447-1 1v10.142c-1.399.364-2.494 1.459-2.858 2.858H19c-.552 0-1 .447-1 1s.448 1 1 1h7.142c.447 1.72 2 3 3.858 3 2.206 0 4-1.794 4-4 0-1.859-1.28-3.411-3-3.858zm-1 5.858c-1.103 0-2-.897-2-2s.897-2 2-2 2 .897 2 2-.897 2-2 2zM30 9.879c.552 0 1-.447 1-1v-1c0-.553-.448-1-1-1s-1 .447-1 1v1c0 .553.448 1 1 1zM30 49.879c-.552 0-1 .447-1 1v1c0 .553.448 1 1 1s1-.447 1-1v-1c0-.553-.448-1-1-1zM52 28.879h-1c-.552 0-1 .447-1 1s.448 1 1 1h1c.552 0 1-.447 1-1s-.448-1-1-1zM9 28.879H8c-.552 0-1 .447-1 1s.448 1 1 1h1c.552 0 1-.447 1-1s-.448-1-1-1zM44.849 13.615l-.707.707c-.391.391-.391 1.023 0 1.414.195.195.451.293.707.293s.512-.098.707-.293l.707-.707c.391-.391.391-1.023 0-1.414s-1.023-.39-1.414 0zM14.444 44.021l-.707.707c-.391.391-.391 1.023 0 1.414.195.195.451.293.707.293s.512-.098.707-.293l.707-.707c.391-.391.391-1.023 0-1.414s-1.024-.39-1.414 0zM45.556 44.021c-.391-.391-1.023-.391-1.414 0s-.391 1.023 0 1.414l.707.707c.195.195.451.293.707.293s.512-.098.707-.293c.391-.391.391-1.023 0-1.414l-.707-.707zM15.151 13.615c-.391-.391-1.023-.391-1.414 0s-.391 1.023 0 1.414l.707.707c.195.195.451.293.707.293s.512-.098.707-.293c.391-.391.391-1.023 0-1.414l-.707-.707z'/%3E%3C/svg%3E");
}

.icofont-email,
.icofont-phone,
.icofont-web {
    color: #666;
}



#mek-calendar {
    width: fit-content;
    margin: 0 auto;
}

#mek-calendar h2 {
    text-align: center;
    border-top: 1px dotted var(--primary-color);
    border-bottom: 1px dotted var(--primary-color);
    padding: 3% 0 2% 0;
    margin-bottom: 7% !important;
    font-family: 'Great Vibes', cursive !important;
    font-size: 2rem !important;
    background: #f7e9e1 !important;
}

.mek-termin-row {
    display: flex;
    gap: 2rem;
    align-items: flex-start;
    margin-bottom: 2rem;
}

.mek-termin-date {
    min-width: 120px;
    text-align: right;
}

.mek-termin-date .mek-termin-tag {
    font-size: 1.2rem;
    font-weight: bold;
}

.mek-termin-date .mek-termin-uhrzeit {
    margin-top: 0.3rem;
}

.mek-termin-date .mek-termin-bis {
    margin-top: 0.3rem;
    color: #888;
    font-size: 0.95rem;
}

.mek-termin-info {
    flex: 1;
}

.mek-termin-info .mek-termin-title {
    font-size: 1.2rem;
    font-weight: bold;
    margin-bottom: 0.8rem;
}

.mek-termin-info .mek-termin-desc {
    margin-bottom: 1rem;
    border-bottom: 1px dotted var(--primary-color);
}

.mek-termin-info .mek-termin-leiter {
    margin-bottom: 10px;
    font-weight:bold;
}

.mek-termin-info .kal_icon {
    display: inline-block;
    font-size: 20px;
    line-height: 22px;
    width: 20px;
    height: 20px;
    margin-right: 10px;
    padding: 0;
    background-position: 0 0;
    background-repeat: no-repeat;
    background-size: 20px;
}

.mek-termin-info .kal_icon.icon_clock {
    background-image: var(--icon-clock);
}

.mek-termin-info .kal_icon.icon_cal {
    background-image: var(--icon-calendar);
}

.mek-pagination {
    margin-top: 2rem;
    text-align: center;
}

.mek-pagination button {
    background: #db7e48;
    color: #fff;
    border: none;
    padding: 5px 12px;
    margin: 0 5px;
    border-radius: 4px;
    cursor: pointer;
    font-size: 1rem;
}

.mek-pagination button:hover {
    background: #EB9C6B;
}

.mek-either-or-hint {
    padding: 0.5rem 0;
}

.mek-either-or-group-top th,
.mek-either-or-group-top td {
    border-top: 2px solid #db7e48;
    background: #f7fafd;
}

.mek-either-or-group-bottom th,
.mek-either-or-group-bottom td {
    border-bottom: 2px solid #1976d2;
    background: #f7fafd;
}

.mek-termin-eintrag {
    margin-bottom: 3rem;
    padding-bottom: 2rem;
    border-bottom: 1px dashed var(--primary-color);
    border-left: 1px solid var(--primary-color);
    padding-left: 5%;
}


.mek-termin-datum-uhrzeit {
    display: flex;
    gap: 2rem;
    align-items: center;
    margin-bottom: 1rem;
    flex-wrap: wrap;
}

.mek-termin-datum {
    font-weight: 500;
    color: #666;
}

.mek-termin-uhrzeit {
    display: flex;
    align-items: center;
    color: #666;
}

.mek-termin-tag-mobile {
    display: none;
    text-align: center;
    margin-bottom: 0.5rem;
}

.mek-termin-tag-icon {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 100%;
    max-width: 100px;
    aspect-ratio: 1/1;
    background-image: var(--icon-calendar-empty);
    background-size: cover;
    background-position: center;
    position: relative;
    vertical-align: middle;
    text-align: center;
}

.mek-termin-tag-zahl {
    display: block;
    font-size: 1.4rem;
    font-weight: bold;
    color: var(--primary-color);
    margin-top: 8px;
    line-height: 1;
}

.mek-termin-tag-monat {
    display: block;
    font-size: 1rem;
    color: #555;
    margin-top: 2px;
    line-height: 1;
}
.mek-termin-info .mek-termin-desc{
    border-bottom: 1px dotted #E89A69;
    width: fit-content;
    margin: 0;
    margin-bottom: 20px;
}

/* Kursdetails Button */
.mek-kursdetails-btn {
    background-color: #EB9C6B;
    color: var(--primary-color) !important;
    padding: 6px 10px !important;
    text-decoration: none !important;
    border-radius: 3px;
    display: inline-block;
    margin-top: 24px;
    font-size: 14px;
    box-shadow: 0px 0px 1px var(--primary-color);
    transition:  0.3s ease;
}

.mek-kursdetails-btn:hover {
    background-color: #db7e48;
    color: white !important;
    text-decoration: none;
}

/* Kursdetails Seite */
.mek-kursdetails-page {
    padding: 20px 0;
}

.mek-kursdetails-page .container {
    max-width: 800px;
    margin: 0 auto;
    padding: 0 20px;
}

.mek-kursdetails-content {
    margin: 30px 0;
    line-height: 1.6;
}

.mek-kursdetails-content  p{
    margin-bottom: 20px;
}

.mek-kursdetails-content h2 {
    color: var(--primary-color, #0073aa);
    border-bottom: 2px solid #eee;
    padding-bottom: 10px;
    margin-bottom: 20px;
}

.mek-navigation-buttons {
    margin-top: 40px;
    padding-top: 20px;
    border-top: 1px solid #eee;
}

.mek-back-btn {
    background-color: #666;
    color: white;
    padding: 12px 24px;
    text-decoration: none;
    border-radius: 3px;
    display: inline-block;
    transition: background-color 0.3s ease;
}

.mek-back-btn:hover {
    background-color: #555;
    color: white;
    text-decoration: none;
}

/* Titel-Zusatz Styling */
.mek-title-subtitle {
    font-weight: normal;
    color: var(--primary-color);
}

.mek-termin-title .mek-title-subtitle {
    font-size: 0.9em;
}

.stundenplan-titel .mek-title-subtitle {
    font-weight: normal;
    font-size: 0.9em;
}

/* Responsive Design */
@media (max-width: 768px) {
    .mek-termin-eintrag{
        margin-bottom: 0;;
    }
    .mek-kursdetails-page .container {
        padding: 0 15px;
    }

    .mek-termin-info {
        padding: 15px;
    }

    .mek-kursdetails-btn,
    .mek-back-btn {
        padding: 10px 20px;
        font-size: 16px;
    }
    .mek-termin-desc{
        margin: 0 auto !important;
        margin-bottom: 20px;
    }
    .mek-termin-info .mek-termin-desc{
        width: 100%;
    }

    .mek-title-subtitle {
        font-size: 0.9em;
    }
}

@media (max-width: 600px) {
    .mek-termin-row {
        margin-bottom: 0;
    }

    .mek-termin-datum-uhrzeit {
        flex-direction: row;
        gap: 0.2rem;
        align-items: flex-start;
        justify-content: space-evenly
    }

    .mek-termin-date {
        display: none;
    }
    .mek-termin-eintrag{
        border-left: none;
        text-align: center;
    }
    

    .mek-termin-tag-mobile {
        display: block;
        margin-bottom: 1.5rem;
    }

    .mek-termin-tag-icon {
        max-width: 80px;
        font-size: 1rem;
        margin: 0 auto;
    }
}