.ttl-terminliste {
    margin: 2rem 0;
}

.ttl-monatsgruppe {
    margin-bottom: 2.5rem;
}

.ttl-monatsgruppe-titel {
    margin: 0 0 1rem 0;
    padding-bottom: 0.4rem;
    border-bottom: 2px solid #e5e5e5;
    font-size: 1.35rem;
    font-weight: 700;
    line-height: 1.2;
}

.ttl-termin {
    padding: 1rem 1.1rem;
    margin-bottom: 1rem;
    border: 1px solid #dddddd;
    border-radius: 10px;
    background: #ffffff;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

.ttl-termin-titel {
    margin-bottom: 0.35rem;
    font-size: 0.82rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #777777;
}


.ttl-termin-ort {
    margin-bottom: 0.2rem;
    font-size: 1rem;
    font-weight: 600;
    color: #222222;
}

.ttl-termin-adresse {
    margin-bottom: 0.75rem;
    font-size: 0.9rem;
    font-weight: 400;
    line-height: 1.45;
    color: #777777;
}

.ttl-termin-links {
    margin-top: 0.75rem;
    padding-top: 0.75rem;
    border-top: 1px solid #eeeeee;
}

.ttl-termin-link + .ttl-termin-link {
    margin-top: 0.4rem;
}

.ttl-termin-link a {
    display: inline-block;
    font-weight: 600;
    font-size: 0.82rem;
    text-decoration: none;

    padding: 0.18rem 0.55rem;
    border: 1px solid #dddddd;
    border-radius: 6px;

    background: #fafafa;
    color: inherit;

    transition: background 0.15s ease, border-color 0.15s ease;
}

.ttl-termin-link a:hover,
.ttl-termin-link a:focus {
    background: #f0f0f0;
    border-color: #cccccc;
    text-decoration: none;
}

.ttl-termin-datum-uhrzeit {
    margin-bottom: 0.5rem;
    line-height: 1.2;
}

.ttl-termin-datum {
    font-size: 1.2rem;
    font-weight: 700;
    color: #111111;
}

.ttl-termin-uhrzeit {
    margin-top: 0.05rem;
    font-size: 0.82rem !important;
    font-weight: 400 !important;
    color: #777777 !important;
    letter-spacing: 0.01em;
}


/* === Drei-Spalten-Layout innerhalb einer Terminkachel === */

.ttl-termin-grid {
	display: grid;
	grid-template-columns: auto 1fr auto;
	gap: 1.25rem;
	margin-top: 0.75rem;
	align-items: start;
}

.ttl-termin-col-links {
	text-align: right;
}

.ttl-termin-col {
    min-width: 0;
}

/* Adresse braucht keinen unteren Abstand mehr,
   da sie jetzt am Spaltenende sitzt */
.ttl-termin-col-ort .ttl-termin-adresse {
    margin-bottom: 0;
}

/* Auf schmalen Bildschirmen (Handy) wieder untereinander */
@media (max-width: 600px) {
    .ttl-termin-grid {
        grid-template-columns: 1fr;
        gap: 0.5rem;
    }
}


Meine Terminliste.php so:

<?php

if (!defined('ABSPATH')) {
    exit;
}

if (empty($gruppen) || !is_array($gruppen)) {
    return;
}
?>

<div class="ttl-terminliste">
    <?php foreach ($gruppen as $gruppe) : ?>
        <?php
        $gruppen_label = isset($gruppe['label']) ? (string) $gruppe['label'] : '';
        $gruppen_termine = isset($gruppe['termine']) && is_array($gruppe['termine']) ? $gruppe['termine'] : array();

        if ($gruppen_label === '' || empty($gruppen_termine)) {
            continue;
        }
        ?>

        <div class="ttl-monatsgruppe">
            <h3 class="ttl-monatsgruppe-titel"><?php echo esc_html($gruppen_label); ?></h3>

            <?php foreach ($gruppen_termine as $termin) : ?>
                <div class="ttl-termin">

                    <?php if (!empty($termin['titel'])) : ?>
                        <div class="ttl-termin-titel">
                            <?php echo esc_html($termin['titel']); ?>
                        </div>
                    <?php endif; ?>

                    <div class="ttl-termin-grid">

                        <div class="ttl-termin-col ttl-termin-col-datum">
                            <?php if (!empty($termin['datum'])) : ?>
                                <div class="ttl-termin-datum">
                                    <?php echo esc_html($termin['datum']); ?>
                                </div>
                            <?php endif; ?>
                            <?php if (!empty($termin['uhrzeit'])) : ?>
                                <div class="ttl-termin-uhrzeit">
                                    <?php echo esc_html($termin['uhrzeit']); ?> Uhr
                                </div>
                            <?php endif; ?>
                        </div>

                        <div class="ttl-termin-col ttl-termin-col-ort">
                            <?php if (!empty($termin['ort'])) : ?>
                                <div class="ttl-termin-ort">
                                    <?php echo esc_html($termin['ort']); ?>
                                </div>
                            <?php endif; ?>
                            <?php if (!empty($termin['adresse'])) : ?>
                                <div class="ttl-termin-adresse">
                                    <?php echo esc_html($termin['adresse']); ?>
                                </div>
                            <?php endif; ?>
                        </div>

                        <div class="ttl-termin-col ttl-termin-col-links">
                            <?php if (!empty($termin['ticketlink'])) : ?>
                                <div class="ttl-termin-link">
                                    <a href="<?php echo esc_url($termin['ticketlink']); ?>" target="_blank" rel="noopener noreferrer">
                                        →Tickets
                                    </a>
                                </div>
                            <?php endif; ?>
                            <?php if (!empty($termin['externer_link'])) : ?>
                                <div class="ttl-termin-link">
                                    <?php if (filter_var($termin['externer_link'], FILTER_VALIDATE_URL)) : ?>
                                        <a href="<?php echo esc_url($termin['externer_link']); ?>" target="_blank" rel="noopener noreferrer">
                                            →mehr Infos
                                        </a>
                                    <?php else : ?>
                                        <span class="ttl-termin-text">
                                            →<?php echo esc_html($termin['externer_link']); ?>
                                        </span>
                                    <?php endif; ?>
                                </div>
                            <?php endif; ?>
                        </div>

                    </div>

                </div>
            <?php endforeach; ?>
        </div>
    <?php endforeach; ?>
</div>