/**
 * TVK Basketball – SportsPress
 * Nur Darstellung der tatsächlich genutzten Termin-/Listen-/Kalenderansichten.
 * SportsPress bleibt für Markup und Funktion verantwortlich.
 */

.sp-template {
    margin-bottom: 0.75rem;
}

/* Phase 7.5.2: Tabellenüberschrift an den ruhigen Inhaltsseiten-Stil angleichen. */
.sp-table-caption,
h3.sp-table-caption,
h4.sp-table-caption {
    margin: 0 0 0.75rem;
    padding: 0;
    caption-side: top;
    background: transparent;
    color: var(--tvk-dark);
    border: 0;
    font-weight: 700;
}

.sp-table-caption a,
.sp-table-caption .card-title {
    color: var(--tvk-dark);
}

.sp-data-table thead th,
.sp-data-table thead th a {
    color: var(--tvk-white);
}

.sp-table-caption small {
    font-size: 0.65em;
    font-weight: 400;
    color: var(--tvk-brown);
}

.sp-data-table thead th {
    background-color: var(--tvk-dark);
}

.sp-data-table .data-name {
    text-align: left;
}

.sp-view-all-link {
    color: var(--tvk-brown);
}

.sp-view-all-link:hover,
.sp-view-all-link:focus {
    color: var(--tvk-orange);
}

/* Event-Kalender */
.sp-template-event-calendar tbody td {
    position: relative;
}

.sp-template-event-calendar tbody td a::before {
    content: "•";
    position: absolute;
    top: 0;
    right: 0;
    width: 1em;
    line-height: 1;
}

.widget .sp-template-event-calendar tbody td a::before {
    font-size: 1em;
}

.sp-template-event-calendar a,
.sp-template-event-calendar #prev a,
.sp-template-event-calendar #next a {
    color: var(--tvk-dark);
}

.sp-template-event-calendar #prev a:hover,
.sp-template-event-calendar #next a:hover,
.sp-template-event-calendar #prev a:focus,
.sp-template-event-calendar #next a:focus {
    color: var(--tvk-orange);
}

.sp-template-event-calendar #today,
.sp-highlight {
    background-color: var(--tvk-beige);
}

/* Event-Listen / Blocks */
.sp-template-event-blocks .event-title {
    color: var(--tvk-black);
    background-color: var(--tvk-white);
    border: 1px solid var(--tvk-beige);
}

.sp-template-event-blocks .event-title a {
    color: var(--tvk-black);
}

.sp-template-event-blocks .event-results,
.sp-template-event-blocks .event-time {
    text-transform: none;
}

.sp-template-event-blocks .sp-event-date a,
.sp-template-event-blocks .sp-event-results a {
    color: var(--tvk-white);
}

.sp-table-wrapper .dataTables_paginate {
    background-color: var(--tvk-white);
    color: var(--tvk-brown);
    border: 1px solid var(--tvk-beige);
}

/* SportsPress Pro League Menu wird auf der gesamten Website nicht verwendet. */
.sp-league-menu {
  display: none;
}

/* Phase 7.5: Feinschliff für genutzte Tabellen, Terminlisten und Kalender. */
.sp-table-wrapper {
    margin-bottom: 1.5rem;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.sp-data-table {
    margin-bottom: 0;
    border-color: var(--tvk-beige);
    background-color: var(--tvk-white);
}

.sp-data-table th,
.sp-data-table td {
    padding: 0.7rem 0.75rem;
    vertical-align: middle;
    border-color: var(--tvk-beige);
}

.sp-data-table thead th {
    font-weight: 700;
    line-height: 1.25;
    white-space: nowrap;
}

.sp-data-table tbody tr:nth-child(even) > * {
    background-color: rgba(235, 205, 165, 0.16);
}

@media (hover: hover) and (pointer: fine) {
    .sp-data-table tbody tr:hover > * {
        background-color: rgba(235, 205, 165, 0.32);
    }
}

.sp-data-table tbody a,
.sp-template-event-list a {
    color: var(--tvk-dark);
    font-weight: 600;
    text-decoration: none;
}

.sp-data-table tbody a:hover,
.sp-data-table tbody a:focus,
.sp-template-event-list a:hover,
.sp-template-event-list a:focus {
    color: var(--tvk-orange);
    text-decoration: underline;
}

.sp-data-table .data-results,
.sp-data-table .data-time,
.sp-data-table .data-date {
    white-space: nowrap;
}

.sp-template-event-calendar table {
    border-color: var(--tvk-beige);
    background-color: var(--tvk-white);
}

.sp-template-event-calendar th,
.sp-template-event-calendar td {
    border-color: var(--tvk-beige);
    vertical-align: middle;
}

.sp-template-event-calendar thead th {
    background-color: var(--tvk-dark);
    color: var(--tvk-white);
    font-weight: 700;
}

.sp-template-event-calendar tbody td a {
    font-weight: 700;
    text-decoration: none;
}

.sp-template-event-calendar tbody td a:hover,
.sp-template-event-calendar tbody td a:focus {
    color: var(--tvk-orange);
    text-decoration: underline;
}

@media (max-width: 767.98px) {
    .sp-data-table th,
    .sp-data-table td {
        padding: 0.55rem 0.6rem;
        font-size: 0.92rem;
    }

    .sp-template-event-calendar th,
    .sp-template-event-calendar td {
        padding: 0.4rem 0.3rem;
        font-size: 0.9rem;
    }
}

/* Phase 7.5.1: klarer Außenrahmen für die genutzten SportsPress-Ausgaben. */
.sp-table-wrapper,
.sp-template-event-calendar {
    border: 1px solid var(--tvk-beige);
    border-radius: 0.35rem;
    background-color: var(--tvk-white);
}

.sp-table-wrapper .sp-data-table,
.sp-template-event-calendar table {
    border: 0;
}

.sp-template-event-calendar {
    overflow: hidden;
}

/* Phase 7.5.3: Tabellenüberschrift und Tabelle als zusammengehörigen Block darstellen. */
.sp-table-caption,
h3.sp-table-caption,
h4.sp-table-caption {
    margin: 0;
    padding: 0.7rem 0.85rem;
    background-color: var(--tvk-dark);
    color: var(--tvk-white);
    border: 1px solid var(--tvk-beige);
    border-bottom: 0;
    border-radius: 0.35rem 0.35rem 0 0;
    font-weight: 700;
    line-height: 1.3;
}

.sp-table-caption a,
.sp-table-caption .card-title,
.sp-table-caption small {
    color: var(--tvk-white);
}

.sp-table-caption small {
    font-size: 0.65em;
    font-weight: 400;
    opacity: 0.9;
}

.sp-table-caption + .sp-table-wrapper {
    margin-top: 0;
    border-radius: 0 0 0.35rem 0.35rem;
}

/* Phase 7.5.4: Zebra-Zeilen etwas kräftiger, weiterhin in TVK-Beige. */
.sp-data-table tbody tr:nth-child(even) > * {
    background-color: rgba(235, 205, 165, 0.32);
}

@media (hover: hover) and (pointer: fine) {
    .sp-data-table tbody tr:hover > * {
        background-color: rgba(235, 205, 165, 0.48);
    }
}

/* Auf der Seite Gesamtspielplan ist die gleichnamige H4-Caption redundant. */
.tvk-gesamtspielplan h4.sp-table-caption {
    display: none;
}

.tvk-gesamtspielplan h4.sp-table-caption + .sp-table-wrapper {
    border-radius: 0.35rem;
}

/* Phase 7.5.5: Redundante Überschriften direkt über Spielplan-/Event-Listen ausblenden. */
.sp-template-event-list > .sp-table-caption {
    display: none;
}

.sp-template-event-list > .sp-table-caption + .sp-table-wrapper {
    border-radius: 0.35rem;
}

/* Phase 7.5.5: Mobile Spielpläne – Begegnung priorisieren und lesbar halten. */
@media (max-width: 767.98px) {
    .sp-template-event-list .data-event {
        min-width: 12.5rem;
        white-space: normal;
        line-height: 1.3;
    }

    .sp-template-event-list .data-date {
        min-width: 6.5rem;
    }

    .sp-template-event-list .data-time,
    .sp-template-event-list .data-results {
        min-width: 5.5rem;
    }

    .sp-template-event-list .data-day {
        display: none;
    }
}

/* Phase 7.5.6: Teamdetails auf SportsPress-Teamseiten im TVK-Stil. */
.sp-template-team-details .sp-list-wrapper {
    margin-bottom: 1.5rem;
    overflow: hidden;
    border: 1px solid var(--tvk-beige);
    border-radius: 0.35rem;
    background-color: var(--tvk-white);
}

.sp-template-team-details .sp-team-details {
    display: grid;
    grid-template-columns: minmax(7rem, 0.35fr) minmax(0, 1fr);
    margin: 0;
}

.sp-template-team-details .sp-team-details dt,
.sp-template-team-details .sp-team-details dd {
    margin: 0;
    padding: 0.7rem 0.85rem;
    border-bottom: 1px solid var(--tvk-beige);
}

.sp-template-team-details .sp-team-details dt {
    background-color: rgba(235, 205, 165, 0.32);
    color: var(--tvk-dark);
    font-weight: 700;
}

.sp-template-team-details .sp-team-details dd {
    background-color: var(--tvk-white);
    color: var(--tvk-black);
}

.sp-template-team-details .sp-team-details dt:last-of-type,
.sp-template-team-details .sp-team-details dd:last-of-type {
    border-bottom: 0;
}

/* Team-Spielpläne: Heim/Auswärts sind die wichtigsten Textspalten. */
.sp-template-event-list .sp-event-list-format-homeaway .data-home,
.sp-template-event-list .sp-event-list-format-homeaway .data-away {
    white-space: normal;
    line-height: 1.3;
}

@media (max-width: 767.98px) {
    .sp-template-team-details .sp-team-details {
        grid-template-columns: minmax(6rem, 0.4fr) minmax(0, 1fr);
    }

    .sp-template-team-details .sp-team-details dt,
    .sp-template-team-details .sp-team-details dd {
        padding: 0.6rem 0.7rem;
    }

    .sp-template-event-list .sp-event-list-format-homeaway .data-home,
    .sp-template-event-list .sp-event-list-format-homeaway .data-away {
        min-width: 10.5rem;
    }

    .sp-template-event-list .sp-event-list-format-homeaway .data-date {
        min-width: 6.5rem;
    }

    .sp-template-event-list .sp-event-list-format-homeaway .data-results,
    .sp-template-event-list .sp-event-list-format-homeaway .data-time {
        min-width: 5rem;
    }
}

/* Phase 7.5.7: Mannschaftslogo auf SportsPress-Teamseiten kompakt darstellen. */
body.single-sp_team .entry-content > .wp-post-image,
body.single-sp_team main .wp-post-image {
    display: block;
    width: auto;
    max-width: min(240px, 100%);
    height: auto;
    margin-right: auto;
    margin-left: auto;
}

/* Phase 7.5.8: Kalender-Caption und Wochentagskopf bilden einen bündigen Rahmen. */
.sp-template-event-calendar > .sp-table-caption {
    width: 100%;
    margin: 0;
    border: 0;
    border-bottom: 1px solid var(--tvk-beige);
    border-radius: 0;
}

.sp-template-event-calendar > .sp-table-caption + table,
.sp-template-event-calendar > .sp-table-caption + .sp-table-wrapper {
    margin-top: 0;
}

.sp-template-event-calendar table {
    width: 100%;
    margin: 0;
    border-collapse: collapse;
}

.sp-template-event-calendar thead th {
    border-top: 0;
    border-right: 1px solid var(--tvk-beige);
    border-bottom: 1px solid var(--tvk-beige);
}

.sp-template-event-calendar thead th:last-child {
    border-right: 0;
}
