/* ==========================================================================
   Plugin-Styles: My Calendar und My Tickets (Joe Dolson)
   Die Plugins bringen eigene CSS-Dateien mit – hier werden nur Farben, Abstände,
   Kontraste und Fokus an das Theme angepasst. Selektoren bewusst weit gefasst;
   bitte nach dem Einspielen mit den echten Kalender-/Ticket-Seiten abgleichen.
   ========================================================================== */

/* ---------- My Calendar ---------------------------------------------------- */
.mc-main, .my-calendar-header, .my-calendar-footer, .mc-main .mc-time, .mc-main .mc_bottomnav { font-family: var(--font); color: var(--c-ink); }
.mc-main { margin: 1.5rem 0; max-width: 100%; }

/* Navigation (Monat zurück/vor, Ansicht, Filter) */
.my-calendar-header, .my-calendar-footer { display: flex; flex-wrap: wrap; align-items: center; gap: 0.6rem 1rem; margin: 0 0 1rem; }
.my-calendar-nav ul, .mc-main .mc-nav, .my-calendar-nav { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.5rem; }
.my-calendar-nav li { margin: 0; }
.my-calendar-nav a, .mc-main .mc-nav a, .mc-main .my-calendar-next a, .mc-main .my-calendar-prev a,
.mc-main button, .mc-main input[type="submit"], .mc-main .mc-button, #mc_head_controls a, .mc-print a {
	display: inline-block; padding: 0.55rem 1rem; font-family: var(--font); font-weight: 600; font-size: 0.95rem; text-decoration: none; cursor: pointer;
	color: var(--c-burgundy); background: #fff; border: 2px solid var(--c-burgundy); border-radius: var(--radius); transition: background 0.2s, color 0.2s;
}
.my-calendar-nav a:hover, .mc-main .mc-nav a:hover, .mc-main button:hover, .mc-main input[type="submit"]:hover, #mc_head_controls a:hover { background: var(--c-burgundy); color: #fff; }
.my-calendar-nav .current-view a, .my-calendar-nav [aria-current], .mc-main .current a, .mc-main button[aria-pressed="true"] { background: var(--c-burgundy); color: #fff; }
.my-calendar-date-switcher select, .mc-main select { width: auto; min-width: 8rem; display: inline-block; }
.my-calendar-date-switcher label, .mc-main .mc-filters label { display: inline-block; margin-right: 0.3rem; }

.mc-main .calendar-heading, .mc-main .my-calendar-month, .my-calendar-header h2 { font-size: clamp(1.3rem, 1.1rem + 1vw, 1.8rem); margin: 0; color: var(--c-burgundy-dark); }

/* Monatsraster */
.my-calendar-table, table.my-calendar-table { width: 100%; table-layout: fixed; border-collapse: collapse; background: #fff; font-size: 0.95rem; }
.my-calendar-table th { background: var(--c-bar); color: #fff; border-color: var(--c-bar); text-align: center; padding: 0.6rem 0.2rem; font-weight: 600; }
.my-calendar-table th abbr { text-decoration: none; }
.my-calendar-table td { height: 6.2rem; padding: 0.3rem 0.35rem; border: 1px solid var(--c-line); vertical-align: top; overflow-wrap: anywhere; }
.my-calendar-table td.no-events { background: #faf6ea; }
.my-calendar-table td.current-day, .my-calendar-table .current-day { outline: 3px solid var(--c-gold); outline-offset: -3px; background: #fff7e0; }
.my-calendar-table .mc-date, .my-calendar-table .mc-date.no-events { display: block; font-weight: 700; color: var(--c-ink); margin-bottom: 0.25rem; }
.my-calendar-table .event-title, .my-calendar-table .mc-event .summary, .my-calendar-table .calendar-event .event-title { font-size: 0.9rem; line-height: 1.3; }
.my-calendar-table a { color: var(--c-burgundy); font-weight: 600; }
.my-calendar-table .mc_bottomnav { display: none; }

/* Kalender-Kategorien: Text bleibt lesbar */
.mc-main .calendar-event, .mc-main .mc-event-list li { padding: 0.15rem 0.3rem; border-left: 4px solid var(--c-gold); margin-bottom: 0.3rem; border-radius: 2px; background: #fbf4e0; }

/* Termin-Detail (aufgeklappte Karte / Popup) */
.mc-main .details, .mc-main .calendar-event .details, .mc-main .mc-details {
	background: #fff; color: var(--c-ink); border: 2px solid var(--c-gold); border-radius: var(--radius); padding: 1rem 1.2rem; box-shadow: 0 8px 22px rgb(0 0 0 / 25%);
}
.mc-main .mc-time, .mc-main time { color: var(--c-gold-text); font-weight: 600; }
.mc-main .close, .mc-main .mc-close { color: var(--c-burgundy); }

/* Listenansicht & „Kommende Termine“ (Widget, Shortcode) */
.mc-list, ul.upcoming, ul#upcoming-events, ul[id^="upcoming-events"], .mc-main .list-event { list-style: none; margin: 0 0 1.5rem; padding: 0; }
ul.upcoming li, ul[id^="upcoming-events"] li, .mc-list li { margin: 0 0 1rem; padding: 0.9rem 1.1rem; background: #fff; border-left: 5px solid var(--c-gold); border-radius: 0 var(--radius) var(--radius) 0; box-shadow: 0 1px 6px rgb(0 0 0 / 12%); }
.mc-list .event-title, ul.upcoming .event-title, .list-event .event-title { font-size: 1.2rem; font-weight: 700; color: var(--c-burgundy-dark); margin: 0 0 0.3rem; }
.mc-list .mc-date, .upcoming .mc-date, .list-event .list-date { font-weight: 700; color: var(--c-gold-text); }
.upcoming-event { margin-bottom: 40px; display: flex; flex-wrap: wrap; gap: 1rem; }
ul[id^="upcoming-events"] { margin-left: 0; }
.mc-main .mc-description, .mc-main .longdesc, .mc-main .shortdesc { margin-top: 0.5rem; }
.mc-main .mc-image, .mc-main img.mc-image { border-radius: 3px; margin: 0.4rem 0; }

/* Mini-Kalender */
.mc-main.mini .my-calendar-table td { height: 2.6rem; text-align: center; padding: 0.2rem; }
.mc-main.mini .my-calendar-table .mc-date { margin: 0; }

/* Einzeltermin (single-mc-events.php) */
.single-mc-events .mc-main, .single-mc-events .mc-event-details { margin-top: 1.5rem; }
.single-mc-events .entry-title, .mc-single .event-title { margin-bottom: 0.3em; }
.mc-event-details, .mc_general .mc-details { background: var(--c-cream); border-left: 5px solid var(--c-gold); padding: 1rem 1.3rem; border-radius: 0 var(--radius) var(--radius) 0; margin: 1.2rem 0; }

/* Mobil: Monatsraster wird zur Liste */
@media (max-width: 40em) {
	.my-calendar-table, .my-calendar-table tbody, .my-calendar-table tr, .my-calendar-table td { display: block; width: 100%; }
	.my-calendar-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
	.my-calendar-table td { height: auto; border-width: 0 0 1px; }
	.my-calendar-table td.no-events, .my-calendar-table td.day-with-date.no-events { display: none; }
	.mc-main.mini .my-calendar-table, .mc-main.mini .my-calendar-table tbody, .mc-main.mini .my-calendar-table tr { display: revert; }
	.mc-main.mini .my-calendar-table td { display: table-cell; width: auto; }
	.mc-main.mini .my-calendar-table thead { position: static; width: auto; height: auto; clip-path: none; }
}

/* ---------- My Tickets ------------------------------------------------------ */
/* Ticket-Auswahl am Termin, Warenkorb, Kasse, Bestellübersicht */
.mt-tickets, .mt_tickets, .mt-ticket-form, #mt_cart_order, .mt-cart, .mt_cart, #mt-cart, .mt-order, .mt-payment, .mt-ticket-wrapper {
	font-family: var(--font); color: var(--c-ink); margin: 1.5rem 0; padding: 1.2rem 1.4rem;
	background: var(--c-cream); border-left: 5px solid var(--c-gold); border-radius: 0 var(--radius) var(--radius) 0;
}
.mt-tickets h2, .mt-tickets h3, .mt_cart h2, #mt_cart_order h2, .mt-order h2 { margin-top: 0; }

.mt-tickets table, .mt_cart table, #mt_cart_order table, .mt-order table, table.mt-ticket-table, table.mt-cart-table { background: #fff; }
.mt-tickets th, .mt_cart th, #mt_cart_order th, .mt-order th { background: var(--c-bar); color: #fff; border-color: var(--c-bar); }
/* Links auf dem dunkelroten Zellengrund (Veranstaltungsname im Warenkorb: th > .mt-title-content > a) */
.mt-title-content a, tr[class^="mt_row_"] th a, .mt_cart th a, #mt_cart_order th a, .mt-tickets th a, .mt-order th a {
	color: #fff; text-decoration-color: rgb(255 255 255 / 70%);
}
.mt-title-content a:hover, .mt-title-content a:focus-visible, tr[class^="mt_row_"] th a:hover, tr[class^="mt_row_"] th a:focus-visible,
.mt_cart th a:hover, #mt_cart_order th a:hover, .mt-tickets th a:hover, .mt-order th a:hover {
	color: #fff; text-decoration-color: #fff; text-decoration-thickness: 0.14em;
}
.mt-title-content a:focus-visible, tr[class^="mt_row_"] th a:focus-visible { outline-color: #fff; }
.mt-tickets td, .mt_cart td, #mt_cart_order td, .mt-order td { vertical-align: middle; }
.mt-tickets input[type="number"], .mt_cart input[type="number"], #mt_cart_order input[type="number"], .mt-ticket-form input[type="number"] { width: 5.5rem; display: inline-block; text-align: center; }
.mt-tickets .mt-price, .mt_cart .mt-price, .mt-order .mt-price, .mt-total, .mt-cart-total { font-weight: 700; color: var(--c-burgundy-dark); white-space: nowrap; }

/* Formulare (Kasse) */
#mt_cart_order .mt-form-row, .mt-ticket-form p, .mt-cart-form p, #mt_cart_order p { margin-bottom: 1rem; }
#mt_cart_order fieldset, .mt-ticket-form fieldset, .mt-payment fieldset { border: 2px solid var(--c-line); border-radius: var(--radius); padding: 1rem 1.2rem; margin: 0 0 1.2rem; background: #fff; }
#mt_cart_order legend, .mt-ticket-form legend, .mt-payment legend { padding: 0 0.5rem; font-weight: 700; color: var(--c-burgundy-dark); }
#mt_cart_order .required, .mt-required { color: #8a0000; font-weight: 700; }
#mt_cart_order input[type="submit"], .mt-tickets input[type="submit"], .mt-ticket-form input[type="submit"], .mt-tickets .button, .mt-order .button { width: auto; }

/* Hinweise, Fehler, Erfolg – Kontraste ≥ 7:1 */
.mt-response p, .mt-response, .mt-message, .mt_message { background: #e6f5d6; color: #123300; border: 2px solid #2d6a04; border-radius: var(--radius); padding: 0.8rem 1rem; }
.mt-response a { font-weight: 700; color: #0e2a00; }
.mt-error, .mt_error, .mt-cart .error, #mt_cart_order .error, .mt-notice-error { background: #fde8e8; color: #5a0000; border: 2px solid #8a0000; border-radius: var(--radius); padding: 0.8rem 1rem; }
.mt-notice, .mt-sold-out, .mt-sold-out-message { background: #fff6d6; color: #3d2d00; border: 2px solid #7a5a1e; border-radius: var(--radius); padding: 0.8rem 1rem; }

/* Tickets / QR-Code */
.mt-ticket, .mt-ticket-display { background: #fff; border: 2px dashed var(--c-gold); padding: 1rem; border-radius: var(--radius); }
.mt-ticket img, .mt-qrcode img { max-width: 12rem; }

/* Sandbox-Modus-Hinweis ausgeblendet (wie bisher) */
.mt_sandbox_enabled { display: none !important; }

@media (max-width: 40em) {
	.mt-tickets table, .mt_cart table, #mt_cart_order table, .mt-order table { display: block; overflow-x: auto; }
}

/* Kontaktformular 7 (falls genutzt) */
span.wpcf7-list-item { margin: 0 !important; }
.wpcf7 form .wpcf7-response-output { border-width: 2px; border-radius: var(--radius); padding: 0.8rem 1rem; }
