/* shortcode_styles.css */
/* ========================================================================== */
/* Helper-Plugin Styles (strukturierte Fassung)                                */
/* ========================================================================== */

/* ==========================================================================
   1) Basis / Resets (Vorsicht: global! Nur lassen, wenn gewollt)
   ========================================================================== */
*,
*::before,
*::after {
    box-sizing: border-box;
}

/* ==========================================================================
   2) LEHRER – Liste & Formular
   ========================================================================== */

/* Wrapper / Layout */
.lehrer-list-wrapper hr {
    margin: 1rem 0;
    border: none;
    border-top: 1px solid #DDD;
}

.lehrer-tabelle {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 0.5rem;
}

.lehrer-list-eintrag {
    cursor: pointer;
}

.lehrer-list-eintrag:hover .lehrer-arrow {
    transform: translateX(10px);
}

.lehrer-tabelle,
.lehrer-tabelle tr,
.lehrer-tabelle th,
.lehrer-tabelle td {
    background: transparent !important;
    border: none;
}

/* Falls ein Hover-Hintergrund vom Theme kommt */
.lehrer-tabelle tr:hover,
.lehrer-tabelle tr:nth-child(even),
.lehrer-tabelle tr:nth-child(odd) {
    background: transparent !important;
}

.lehrer-tabelle td {
    font-family: 'Manrope', sans-serif;
    font-size: 18px;
    color: var(--schwarzes-brett-text) !important;
    /* #5B321D */
}

/* Spalten */
.lt-lehrer-name {
    font-weight: 600;
    width: 60%;
}

.lt-lehrer-status {
    font-weight: 400;
    width: 35%;
}

.lt-lehrer-arrow {
    width: 5%;
    text-align: right;
    vertical-align: middle;
}

/* Pfeil */
.lehrer-arrow {
    width: 24px;
    transition: transform 0.2s ease;
}

/* Trenner */
.lt-lehrer-divider {
    border: none;
    border-top: 1px solid var(--schwarzes-brett-text) !important;
    height: 0;
    margin: 0.5rem 0;
}

/* Leerer Zustand */
.lt-lehrer-empty {
    font-family: 'Manrope', sans-serif;
    font-size: 20px;
    color: var(--schwarzes-brett-text);
    font-weight: 600;
}

/* Formular (66% Breite, zwei Felder pro Zeile) */
.lehrer-filter-form {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    margin-bottom: 1.5rem;
    max-width: 66%;
    width: 100%;
    margin-left: 15px;
    /* wie gehabt */
}

/* 2 Labels + 2 Controls in einer Row */
.lehrer-filter-form .row {
    display: grid !important;
    /* Bootstrap .row überstimmen */
    grid-template-columns: 12% 1fr 12% 1fr;
    /* Label|Feld | Label|Feld */
    align-items: center;
    gap: 0.5rem 1rem;
    margin: 0 !important;
    /* Bootstrap-Gutter raus */
    overflow: visible;
    /* Unterlängen-Fix */
}

/* Row mit nur einem Feld (Suche) = 2 Spalten */
.lehrer-filter-form .row.full-width {
    grid-template-columns: 12% 1fr;
}

/* Button-Row: Label-Spalte leer lassen */
.lehrer-filter-form .row.button-row {
    display: grid !important;
    grid-template-columns: 12% 1fr;
    align-items: center;
}

/* Buttons nebeneinander */
.lehrer-filter-form .filter-buttons {
    display: flex;
    gap: 1.5rem;
}

/* Labels */
.lehrer-filter-form label {
    display: inline-block;
    font-family: 'Manrope', sans-serif;
    font-size: 20px;
    color: var(--schwarzes-brett-text);
    font-weight: 600;
    margin-bottom: 0.4rem;
    box-sizing: border-box;
    min-width: 0;
    overflow: hidden;
}

/* Inputs/Selects – inkl. Bootstrap .form-control neutralisieren */
.lehrer-filter-form select,
.lehrer-filter-form input,
.lehrer-filter-form .form-control {
    max-width: 100%;
    width: 100%;
    box-sizing: border-box;
    padding: 0.6rem 0.8rem;
    border: 1px solid var(--schwarzes-brett-text);
    font-size: 16px;
    background: #fff;
    color: var(--schwarzes-brett-text);
    appearance: none;
    line-height: normal;
    border-radius: 0;
    /* Bootstrap-Kanten raus */
    box-shadow: none;
    /* Bootstrap-Shadow raus */
}

/* Select-/Such-Icons */
.lehrer-filter-form select {
    -webkit-appearance: none;
    -moz-appearance: none;
    background-image: url('/wp-content/plugins/helper-plugin/kurse-filter/assets/icons/dropdown.svg');
    background-repeat: no-repeat;
    background-position: right 0.8rem center;
    background-size: 1.2rem;
    padding-right: 2.2rem;
}

.lehrer-filter-form #search_text {
    -webkit-appearance: none;
    -moz-appearance: none;
    background-image: url('/wp-content/plugins/helper-plugin/kurse-filter/assets/icons/magnifier.svg');
    background-repeat: no-repeat;
    background-position: right 0.8rem center;
    background-size: 1.2rem;
    padding-right: 2.2rem;
}

/* Focus-States */
.lehrer-filter-form input:focus,
.lehrer-filter-form select:focus,
.lehrer-filter-form .form-control:focus {
    outline: none;
    border-color: #e30613;
    box-shadow: none;
}

/* Buttons – Bootstrap .btn anpassen */
.lehrer-filter-form .btn {
    border-radius: 999px;
    font-weight: 600;
    padding: 0.5rem 1.5rem;
    line-height: 1.2;
    box-shadow: none;
}

.lehrer-filter-form .btn-primary {
    background: transparent;
    color: #FF4B38;
    border: 1px solid #FF4B38;
}

.lehrer-filter-form .btn-primary:hover {
    background: #FF4B38;
    color: #fff;
}

.lehrer-filter-form .btn-secondary {
    background: transparent;
    color: #FF4B38;
    border: none;
    padding: 0.5rem 0.5rem;
}

/* Responsive: unter 720px ein Feld pro Zeile */
@media (max-width: 720px) {
    .lehrer-filter-form .row {
        grid-template-columns: 1fr;
    }

    .lehrer-filter-form .row.full-width {
        grid-template-columns: 1fr;
    }

    .lehrer-filter-form .row.button-row {
        grid-template-columns: 1fr;
    }
}

/* ==========================================================================
   3) KURSE – Liste & Formular
   ========================================================================== */

/* Header-Pfeil-Spalte (4. Spalte im Thead) */
.kt-kurse-list-header-arrow {
    width: 3%;
    text-align: right;
    vertical-align: middle;
}

/* Icons – korrekt: .kt-kurs-icon-zeit */
.kt-kurs-icon-datum,
.kt-kurs-icon-zeit {
    margin-right: 5px;
    display: inline-block;
    vertical-align: text-bottom;
}

.kurse-list-wrapper hr {
    margin: 1rem 0;
    border: none;
    border-top: 1px solid #DDD;
}

.kt-kurse-list-header-title,
.kt-kurse-list-header-zeitort {
    font-size: 20px;
    font-weight: 600;
    padding-bottom: 10px;
}

.kurs-tabelle {
    width: 100%;
    border: none;
    border-collapse: collapse;
    margin-bottom: 0.5rem;
}

.kurs-tabelle,
.kurs-tabelle tr,
.kurs-tabelle th,
.kurs-tabelle td {
    background: transparent !important;
}

/* Falls ein Hover-Hintergrund vom Theme kommt */
.kurs-tabelle tr:hover,
.kurs-tabelle tr:nth-child(even),
.kurs-tabelle tr:nth-child(odd) {
    background: transparent !important;
}

.kurs-list-eintrag {
    cursor: pointer;
}

.kurs-list-eintrag:hover .kurs-arrow {
    transform: translateX(10px);
}

.kurs-tabelle td {
    border: none;
    background-color: #fff;
    font-family: 'Manrope', sans-serif;
    font-size: 18px;
    color: var(--schwarzes-brett-text) !important;
}

/* Spaltenbreiten */
.kt-kurs-art-titel {
    font-weight: 600;
    width: 33%;
}

.kt-spacer {
    width: 29%;
}

.kt-kurs-datum-zeit {
    font-weight: 600;
    width: 35%;
}

.kt-kurs-arrow {
    width: 3%;
    text-align: right;
    vertical-align: middle;
}

/* Pfeil */
.kurs-arrow {
    display: inline-block;
    width: 24px;
    transition: transform 0.2s ease;
}

/* Divider – wirkt mit border-collapse nur auf TD */
tr.kt-kurs-divider>td {
    border-top: 1px solid var(--schwarzes-brett-text);
    height: 0;
    padding: 0;
    line-height: 0;
}

/* Autor/Ort-Zellen (align-items ist für Flex; hier Tabellenzellen) */
.kt-kurs-autor,
.kt-kurs-ort {
    text-align: left;
    padding-top: 35px;
    padding-bottom: 15px;
    vertical-align: bottom;
}

/* Statusmeldungen */
.loading,
.error {
    font-family: 'Manrope', sans-serif;
    font-size: 20px;
    color: var(--schwarzes-brett-text);
    font-weight: 600;
    margin-bottom: 0.4rem;
}

/* ACF Datum */
.acf_date {
    font-weight: normal !important;
    font-size: 20px;
}

/* Alternative Divider (separat verwendbar) */
.kurs-divider {
    border: none;
    border-bottom: 1px solid #5C2D12;
}

/* Formular: Kurse */
.kurse-filter-form {
    display: flex;
    gap: 1.5rem;
    flex-direction: column;
    margin-bottom: 1.5rem;
    max-width: 100%;
    width: 100%;
    margin-left: 15px;
}

.kurse-filter-form .row {
    display: grid;
    grid-template-columns: 12% 1fr 10% 1fr;
    align-items: center;
    gap: 0.5rem 1rem;
}

.kurse-filter-form .row.full-width {
    grid-template-columns: 12% 1fr;
}

.kurse-filter-form .row.button-row {
    grid-template-columns: 12% 1fr;
    align-items: start;
}

/* Labels */
.kurse-filter-form label {
    font-family: 'Manrope', sans-serif;
    font-size: 20px;
    color: var(--schwarzes-brett-text);
    font-weight: 600;
    margin-bottom: 0.4rem;
    box-sizing: border-box;
    min-width: 0;
    overflow: hidden;
}

/* Inputs */
.kurse-filter-form .row>* {
    min-width: 0;
    overflow: hidden;
}

.kurse-filter-form select,
.kurse-filter-form input {
    max-width: 100% !important;
    width: 100% !important;
    box-sizing: border-box !important;
    padding: 0.6rem 0.8rem;
    border: 1px solid var(--schwarzes-brett-text);
    font-size: 1rem;
    background: #fff;
    color: var(--schwarzes-brett-text);
    appearance: none;
}

/* Select & Icons */
.kurse-filter-form select {
    -webkit-appearance: none;
    -moz-appearance: none;
    background-image: url('/wp-content/plugins/helper-plugin/kurse-filter/assets/icons/dropdown.svg');
    background-repeat: no-repeat;
    background-position: right 0.8rem center;
    background-size: 1.2rem;
    padding-right: 2.2rem;
}

/* Suche – gleiche ID ok (auch im Lehrer-Form) */
#search_text {
    -webkit-appearance: none;
    -moz-appearance: none;
    background-image: url('/wp-content/plugins/helper-plugin/kurse-filter/assets/icons/magnifier.svg');
    background-repeat: no-repeat;
    background-position: right 0.8rem center;
    background-size: 1.2rem;
    padding-right: 2.2rem;
}

/* Zeit-Icons */
#to_time,
#from_time {
    -webkit-appearance: none;
    -moz-appearance: none;
    background-image: url('/wp-content/plugins/helper-plugin/kurse-filter/assets/icons/clock.svg');
    background-repeat: no-repeat;
    background-position: right 0.8rem center;
    background-size: 1.2rem;
    padding-right: 2.2rem;
}

/* Datepicker (WebKit) */
#to_date,
#from_date {
    position: relative;
    padding-right: 2.2rem;
}

#to_date::-webkit-calendar-picker-indicator,
#from_date::-webkit-calendar-picker-indicator {
    opacity: 0;
    position: absolute;
    right: 0.8rem;
    top: 50%;
    transform: translateY(-50%);
    cursor: pointer;
    height: 1.2rem;
    width: 1.2rem;
}

.kurse-filter-form input:focus,
.kurse-filter-form select:focus {
    outline: none;
    border-color: #e30613;
}

.kurse-filter-form input::placeholder {
    color: #999;
}

/* Buttons */
.kurse-filter-form .filter-buttons {
    display: flex;
    gap: 1.5rem;
}

.kurse-filter-form button[type="submit"] {
    background: none;
    font-size: 17px;
    border: 1px solid #FF4B38;
    color: #FF4B38;
    font-weight: 600;
    padding: 0.5rem 1.5rem;
    cursor: pointer;
    border-radius: 999px;
    transition: all 0.2s ease;
}

.kurse-filter-form button[type="submit"]:hover {
    background-color: #FF4B38;
    color: #fff;
}

.kurse-filter-form button[type="reset"] {
    background: none;
    font-size: 17px;
    border: none;
    color: #FF4B38;
    font-weight: 600;
    cursor: pointer;
    padding: 0.5rem 0.5rem;
}

/* Datum/Uhrzeit Icons via Utility */
.icon-datepicker {
    width: 24px;
    height: 24px;
    background: url('/wp-content/plugins/helper-plugin/kurse-filter/assets/icons/datepicker.svg') no-repeat center center;
    background-size: contain;
}

.icon-clock {
    width: 24px;
    height: 24px;
    background: url('/wp-content/plugins/helper-plugin/kurse-filter/assets/icons/clock.svg') no-repeat center center;
    background-size: contain;
}

/* ==========================================================================
   4) KARTE / LEAFLET
   ========================================================================== */

.course-map {
    height: 400px;
    margin-bottom: 2rem;
}

.course-map,
.course-map .leaflet-pane,
.course-map .leaflet-control-container,
.course-map .leaflet-top,
.course-map .leaflet-bottom {
    z-index: 1 !important;
}

.leaflet-control-home a.leaflet-control-home-button {
    display: block;
    width: 30px;
    height: 30px;
    line-height: 30px;
    text-align: center;
}

.leaflet-control-home svg {
    vertical-align: middle;
    pointer-events: none;
}

/* Firefox Date-Icon Workaround */
.date-wrapper {
    position: relative;
    display: inline-block;
    width: 100%;
}

.date-wrapper input.datepicker {
    width: 100%;
    padding-right: 2.2rem;
    border: 1px solid var(--schwarzes-brett-text);
    font-size: 1rem;
    background-color: #fff;
    color: var(--schwarzes-brett-text);
    font-family: 'Manrope', sans-serif;
    border-radius: 0;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
}

.date-wrapper::after {
    content: '';
    position: absolute;
    right: 0.8rem;
    top: 50%;
    transform: translateY(-50%);
    background-image: url('/wp-content/plugins/helper-plugin/kurse-filter/assets/icons/datepicker.svg');
    background-repeat: no-repeat;
    background-size: 1.2rem 1.2rem;
    width: 1.2rem;
    height: 1.2rem;
    pointer-events: none;
}

/* ==========================================================================
   5) SCHWARZES BRETT – Tiles
   ========================================================================== */

.group-title {
    display: block;
    font-family: 'Manrope', sans-serif !important;
    font-size: 25px !important;
    color: var(--schwarzes-brett-text) !important;
    font-weight: 600;
    margin: 1.5rem 0;
    padding: 0.5rem 0;
}

.schwarzes-brett {
    margin: 2rem 0 1rem;
    font-family: 'Manrope', sans-serif !important;
    color: var(--schwarzes-brett-text) !important;
    font-size: 20px !important;
}

/* Grid */
.tiles-row {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 17px;
    justify-content: left;
    width: 100%;
}

/* Tile Basis */
.tile {
    font-family: 'Manrope', sans-serif !important;
    color: var(--schwarzes-brett-text) !important;
    display: flex;
    flex-direction: column;
    padding: 1rem;
    border-radius: 0;
    box-shadow: none;
    overflow: hidden;
    min-height: 400px;
}

.tile-title {
    font-size: 20px !important;
    margin: 0 0 0.5rem;
    font-weight: 600;
}

.tile-excerpt {
    font-size: 15px !important;
    line-height: 20px !important;
    margin-bottom: 1rem;
    word-break: break-word;
    overflow-wrap: anywhere;
}

/* Hintergründe */
.tile-download {
    background-color: var(--schwarzes-brett-hellblau) !important;
}

.tile-ohne-foto,
.tile-foto {
    background-color: var(--schwarzes-brett-moosgruen) !important;
}

.tile-vernetzungstreffen {
    background-color: var(--schwarzes-brett-neongruen) !important;
}

/* Bildbereich */
.tile-image {
    background-color: #E6E6E6 !important;
    margin: -1rem -1rem 1rem;
    display: flex;
    justify-content: center;
    align-items: center;
}

.tile-image img {
    width: 80%;
    height: auto;
    display: block;
    padding: 1rem;
}

/* Buttons */
.tile a,
.tile-button {
    font-family: 'Manrope', sans-serif !important;
    font-size: 17px;
    font-weight: 600;
    display: inline-block !important;
    width: auto !important;
    max-width: fit-content !important;
    border: 1px solid var(--schwarzes-brett-text);
    background: transparent;
    color: var(--schwarzes-brett-text) !important;
    padding: 0.3rem 0.8rem;
    border-radius: 999px;
    text-decoration: none;
    white-space: nowrap;
    transition: background 0.2s ease, color 0.2s ease;
}

/* Hover nur bei Vernetzungstreffen */
.tile-vernetzungstreffen .tile-button:hover {
    background-color: var(--schwarzes-brett-text) !important;
    color: var(--schwarzes-brett-neongruen) !important;
}

/* Allgemeine Tile-Hover */
.tile-download a:hover {
    background: var(--schwarzes-brett-text) !important;
    color: var(--schwarzes-brett-hellblau) !important;
}

.tile-ohne-foto a:hover,
.tile-foto a:hover,
.tile-button:hover {
    background: var(--schwarzes-brett-text) !important;
    color: var(--schwarzes-brett-moosgruen) !important;
}

/* ==========================================================================
   7) RESPONSIVE – Schwarzes Brett Grid
   ========================================================================== */
@media (max-width: 960px) {
    .tiles-row {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 680px) {
    .tiles-row {
        grid-template-columns: 1fr;
    }
}