/* BesD-kalendar v24 – Frontend-Layout (Basis) */

.besd-kalendar-wrapper {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto 2rem;
    box-sizing: border-box;
    font-family: "Roboto Condensed","Roboto Flex","Roboto Slab","Roboto",
                 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    color: #fff;
    background: #2b0000;
    border-radius:var(--besd-radius2);
    padding: 0.75rem 0.75rem 1rem;
}

/* Timeline-Wrapper */
.besd-kalendar-timeline-wrapper {
    width: 100%;
    max-width: 1200px;
    margin: 0;
    box-sizing: border-box;
    font-family: "Roboto Condensed","Roboto Flex","Roboto Slab","Roboto",
                 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    color: #fff;
	
	
	
	
	
}

.besd-kalendar-nav {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1.5rem;
    font-size: 0.9rem;
    background: #cc1d1d;
    color: #fff;
    border-radius: var(--besd-radius2) var(--besd-radius2) 0 0;
    padding: 0.35rem 0.75rem;
}

.besd-kalendar-nav a {
    text-decoration: none;
    font-weight: 700;
    color: #fff;
 text-shadow:var(--shadowkalendartext);
}

.besd-kalendar-nav-current {
    font-weight: 700;
   text-shadow:var(--shadowkalendartext);
}

.besd-kalendar-calendar {
    width: 100%;
    border-collapse: collapse;
    border-spacing: 0;
    table-layout: fixed;
    font-size: 0.8rem;
    background: #3b0404;
    color: #fff;
    border-radius: 0 0 0 0;
    overflow: hidden;
}

.besd-kalendar-calendar th,
.besd-kalendar-calendar td {
    border: none;
    padding: 0;
    vertical-align: top;
}

.besd-kalendar-empty {
    background: #280404;
}

.besd-kalendar-empty2 {
    width: 100%;
    height: 100%;
}

.besd-kalendar-day {
    position: relative;
    height: auto;
    background: #5a1010;
    color: #fff;
    overflow: hidden;
}

.besd-kalendar-day-inner {
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 0.3rem 0.3rem 0.4rem;
    box-sizing: border-box;
}

.besd-kalendar-day-number {
    font-weight: 700;
    margin-bottom: 0.2rem;
    font-size: 0.95rem;
 text-shadow:var(--shadowkalendartext);
}

.besd-kalendar-day-events {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    gap: 0;
}

.besd-kalendar-day-event {
    flex: 1 1 0;
    display: flex;
    align-items: flex-start;
    padding: 0.15rem 0.2rem 0.25rem;
    box-sizing: border-box;
    min-height: 3.2em;
    overflow: hidden;
}

.besd-kalendar-day-event a {
    display: block;
    width: 100%;
    text-decoration: none;
    color: #fff;
 text-shadow:var(--shadowkalendartext);
}

.besd-kalendar-day-event-time {
    font-weight: 700;
    margin-right: 0.25rem;
    white-space: nowrap;
}

.besd-kalendar-day-event-title {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Subscribe bar als Fußleiste unter dem Kalender */
.besd-kalendar-subscribe-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 0.4rem;
    margin-top: 0.35rem;
    padding-top: 0.35rem;
    border-top: 1px solid rgba(255,255,255,0.25);
    font-size: 0.75rem;
}

.besd-kalendar-subscribe-label {
    margin-right: 0.25rem;
    opacity: 0.9;
}

.besd-kalendar-subscribe-link {
    display: inline-flex;
    align-items: center;
    padding: 0.15rem 0.5rem;
    border-radius: 999px;
    border: 1px solid rgba(255,255,255,0.6);
    text-decoration: none;
    font-size: 0.75rem;
    font-weight: 500;
    color: #fff;
 text-shadow:var(--shadowkalendartext);
}

.besd-kalendar-subscribe-link:hover {
    background: rgba(255,255,255,0.1);
}

/* Timeline */

.besd-kalendar-upcoming-list {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.besd-kalendar-event-card {
    border-radius: var(--besd-radius2);
    overflow: hidden;
    border: 2px solid #5c1414;
    background: #5a1010;
    color: #fff;
      box-shadow: var(--boyshadow1);
    display: flex;
    flex-direction: column;
}

.besd-kalendar-event-card a {
    color: inherit;
}

.besd-kalendar-event-image {
    position: relative;
    display: block;
    padding-top: 40%;
    background-size: cover;
    background-position: center;
    text-decoration: none;
    color: #fff;
}

.besd-kalendar-event-overlay-top,
.besd-kalendar-event-overlay-bottom {
    position: absolute;
    left: 0.6rem;
    right: 0.6rem;
    color: #fff;
 text-shadow:var(--shadowkalendartext);
}

.besd-kalendar-event-overlay-top {
    top: 0.5rem;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    font-size: 0.85rem;
}

.besd-kalendar-event-line {
    line-height: 1.25;
}

.besd-kalendar-event-overlay-bottom {
    bottom: 0.5rem;
}

.besd-kalendar-event-title-on-image {
    font-weight: 700;
    font-size: 1rem;
}

.besd-kalendar-event-content {
    padding: 0.6rem 0.85rem 0.5rem 0.85rem;
    font-size: 0.9rem;
    color: #fff;
}

/* Button: Termin zum Kalender hinzufügen */
.besd-kalendar-event-add-to-calendar {
    padding: 0 0.85rem 0.75rem 0.85rem;
}

.besd-kalendar-add-to-calendar-button {
    display: inline-flex;
    align-items: center;
    padding: 0.3rem 0.9rem;
    border-radius: 999px;
    border: 1px solid rgba(255,255,255,0.8);
    background: rgba(0,0,0,0.15);
    font-size: 0.8rem;
    font-weight: 500;
    text-decoration: none;
    color: #fff;
 text-shadow:var(--shadowkalendartext);
	
	
	
	
	
}

.besd-kalendar-add-to-calendar-button:hover {
    background: rgba(255,255,255,0.1);
}

.besd-kalendar-load-more-wrap {
    text-align: center;
    margin-top: 1rem;
}

.besd-kalendar-load-more {
    display: inline-block;
    padding: 0.45rem 1.1rem;
    border-radius: 999px;
font-style: italic;
    background:  var(--gradientbutton);
 
    cursor: pointer;
    
	margin: var (--gap) 0 0 0;
    display: block;
    padding: 10px 18px;
    border-radius: var(--besd-radius2);


    cursor: pointer;

    text-decoration: none;
    width: 100%;
    font-family: "Roboto Flex", sans-serif;
    font-size: 24px;
    font-weight: 600;
    text-align: center;
    color: var(--fontw);
    text-shadow: var(--textshadow1);
    box-shadow: var(--boyshadow1);
}


	
@media (max-width: 767px) {.besd-kalendar-load-more {    font-size: 4vw;}}
@media (max-width: 520px) {.besd-kalendar-load-more {    font-size: 5vw;}}


.besd-kalendar-load-more:hover {
    opacity: 0.9;
}

@media (max-width: 900px) {
    .besd-kalendar-calendar {
        font-size: 0.75rem;
    }
}

.besd-kalendar-event-image{padding-top:300px;}

/* =========================================================
   BESD Kalendar – merged from besd-kalendar-v25.css + besd-kalendar-custom-v25.css
   ========================================================= */

.besd-kalendar-event-add-to-calendar .besd-kalendar-add-to-calendar-button, .besd-kalendar-subscribe-link besd-kalendar-subscribe-link-ics, .besd-kalendar-subscribe-link, .besd-kalendar-subscribe-label { box-shadow:none;background:none; border:none; padding:0; box-shadow:none; font-size: 15px; font-weight: 500; line-height: 20px; font-family: "Roboto Flex", sans-serif; text-shadow:none; color:#fff; font-style:italic; }
.besd-kalendar-event-add-to-calendar .besd-kalendar-add-to-calendar-button, .besd-kalendar-subscribe-link besd-kalendar-subscribe-link-ics, .besd-kalendar-subscribe-link { text-decoration:underline; }
.besd-kalendar-subscribe-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 2vw; padding-bottom: 10px; background-color:#ee0940; margin:0; }

/*
 * BesD-kalendar Custom-Overrides – v15 (übernommen)
 * Hier kannst du gezielt Texte / Titel / Uhrzeiten / Datumsangaben überschreiben.
 */

/* Monatsansicht */
.besd-kalendar-wrapper, .besd-kalendar-day-inner{padding:0;}
.besd-kalendar-nav-next, .besd-kalendar-nav-prev{ font-family: "Roboto Flex", sans-serif; font-size: 45px; font-weight: 400; line-height: 0px; margin-top:-3px; background:none; border-collapse: collapse; color:#eee; text-decoration:none !important;}
.besd-kalendar-nav { height: 64px; width:100%; left:0; border-left:1px solid #fff;  border-right:1px solid #fff;  border-bottom:1px solid #fff;  background:var(--gradient3b); display:flex; align-items:center; justify-content:center;}
.besd-kalendar-wrapper {background:none; margin:0 0 0.1vw 0; border-radius: 0 28px 28px 28px; overflow: hidden;  }
.besd-kalendar-nav-current{ font-family: "Roboto Slab", sans-serif; font-size: 27px; font-weight: 600; line-height: 29px; letter-spacing:1px; }
.besd-kalendar-day { background-color:#e01940 ; border-collapse: collapse;}
.besd-kalendar-calendar{background:none;}
.besd-kalendar-calendar td{ }
.besd-kalendar-calendar th{ font-family: "Roboto Flex", sans-serif; font-size:29px; font-weight: 100; line-height: 29px; letter-spacing:2px; }
.besd-kalendar-day-inner{ background-color: #ee1050}
.besd-kalendar-empty{ background-color: #f00960; border-bottom: 0.1vw solid #fff; border-collapse: collapse; }
.besd-kalendar-day{ border-collapse: collapse; font-family: "Roboto Condensed", sans-serif; font-size: 14px; font-weight: 400; line-height: 17px; letter-spacing: -0.7px; text-align: left; color: var(--fontw); }
.besd-kalendar-calendar td{ border-collapse: collapse; width:auto; border-left: 0.1vw solid #fff; border-right: 0.1vw solid #fff; border-bottom: 0.1vw solid #fff; }
.besd-kalendar-empty2 { background-color: #ff3344; }
.besd-kalendar-day-number { border-collapse: collapse; font-family: "Roboto mono", sans-serif; font-size:19px; font-weight: 300; line-height: 19px; color:var(--fontw); margin:0; padding-left:0.3vw; padding-bottom:5px; padding-top:6px; background-color: #ff1940; border-bottom: 0.1vw solid #fff; }
.besd-kalendar-day-event-time{ font-family: "Roboto mono", sans-serif; font-size:19px; font-weight: 300; line-height: 20px; color:var(--fontw); }
.besd-kalendar-day-event-title { margin-top: 4px; }

@media (max-width: 600px){
.besd-kalendar-day-number { font-size:14px;}
.besd-kalendar-day-event-time{ font-size:14px;}
}

.besd-kalendar-day-event{border-collapse: collapse; align-items: top; padding-left:0.3vw; padding-top:0.2vw; padding-bottom:0.2vw;}
.besd-kalendar-day-events { gap:0.10vw; background: #fff; min-height:88px;}
.besd-kalendar-day-event { background: #fff; min-height:117px; }
.besd-kalendar-day{ min-height:92px;}

.besd-kalendar-event-card a { box-shadow: var(--cardshadow);}



.besd-kalendar-day-inner { border-bottom: 0.1vw solid #fff; min-height: 149px; }

/* #################################### Timeline-Overlay ##################################################*/
.besd-kalendar-event-card{box-shadow: var(--boyshadow1); border-radius: 20px;}

.besd-kalendar-event-content p{ color: var(--fontw);}
.besd-kalendar-event-line { }
.besd-kalendar-event-line-date { font-family: "Roboto Condensed", sans-serif; font-size: 39px; font-weight: 700; line-height: 37px; letter-spacing: -1px; text-align: left; color: var(--fontw); text-shadow:var(--shadowcardtext); }
.besd-kalendar-event-line-time { font-family: "Roboto slab", sans-serif; font-size: 60px; font-weight: 400; line-height: 62px; margin-bottom: 4px; text-shadow: 0 0 8px rgba(0, 0, 0, 1.0); }
.besd-kalendar-event-line-duration{ font-family: "Roboto Condensed", sans-serif; font-size: 29px; font-weight: 600; font-style:italic; line-height: 29px; letter-spacing: 0.0px; text-align: left; color: var(--fontw); text-shadow:var(--shadowcardtext); }
.besd-kalendar-event-line-category { font-family: "Roboto Condensed", sans-serif; font-size: 29px; font-weight: 600; line-height: 29px; letter-spacing: 0.0px; text-align: left; color: var(--fontw); text-shadow:var(--shadowcardtext); }
.besd-kalendar-event-title-on-image { font-family: "Roboto Condensed", sans-serif; font-size: 25px; font-weight: 600; line-height: 27px; letter-spacing: 0-2px; text-align: left; color: var(--fontw); text-shadow:var(--shadowcardtext);}

.besd-kalendar-event-content {border-collapse: collapse;}
.besd-kalendar-day { height:auto;border-collapse: collapse; }

/*  Tageshöhe abhängig von Terminanzahl (1x, 2x, 3x Mindesthöhe) */

.besd-kalendar-day.besd-kalendar-events-1 { min-height: 7rem; }
.besd-kalendar-day.besd-kalendar-events-2 { min-height: 14rem; }
.besd-kalendar-day.besd-kalendar-events-3 { min-height: 21rem; }


/* Heutiger Tag im Monatskalender fett hervorgehoben */
.besd-kalendar-day-number-today {
    font-weight: 900;
}



.besd-kalendar-subscribe-label{display:none;border-collapse: collapse;}
.besd-kalendar-day-event-title {  -webkit-line-clamp: 4;  margin-top: 3px;border-collapse: collapse; }

.besd-kalendar-day {
    font-size: 16px;
    font-weight: 400;
    line-height: 20px;
    letter-spacing: 0px;
	 text-align:left;

}

.besd-kalendar-day-event {
padding-left:1.1vw;
	padding-right:0.4vw;
}


.besd-kalendar-day-event-title {
hyphens:auto;
}


@media (max-width: 600px){
.besd-kalendar-day-event-title {  -webkit-line-clamp: 4;  margin-top: 1px; }

.besd-kalendar-day-inner {  min-height: 111px;}	
.besd-kalendar-day-event {   min-height: 79px;}
.besd-kalendar-day-events {  min-height: 79px;}


.besd-kalendar-day {
    font-size: 12px;
    font-weight: 400;
    line-height: 13.13px;
    letter-spacing: -0px;
	 text-align:left;
}
	.besd-kalendar-day-number{padding-left:0.6vw;}
	.besd-kalendar-day-number, .besd-kalendar-day-event-time{ font-size: 14px;  font-weight: 300;}

}



.besd-kalendar-day-number{padding-left:0.6vw;border-collapse: collapse;}



.besd-kalendar-day-event {
padding-left:0.6vw;
	padding-right:0.3vw;  border-collapse: collapse;

}
.besd-kalendar-subscribe-bar {border-collapse: collapse;
	justify-content: space-between;
padding-left:2vw;
	padding-right:2vw;
 border-right: 0.1vw solid #fff;
 border-left: 0.1vw solid #fff;
}

.besd-kalendar-subscribe-next-label, .besd-kalendar-subscribe-prev-label{display:none;}










/* Responsive 3-2-1-Spaltenlayout für die kommende Terminliste */
.besd-kalendar-upcoming-list {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--gap);
}

@media (min-width: 900px) {
    .besd-kalendar-upcoming-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 1024px) {
    .besd-kalendar-upcoming-list {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}


/* Timeline-Karten: Button immer am unteren Rand des Feldes */
.besd-kalendar-event-card {
    display: flex;
    flex-direction: column;
    height: 100%;
}

.besd-kalendar-event-content {
    flex-grow: 1;
}

.besd-kalendar-event-add-to-calendar {
    margin-top: auto;
}


.besd-kalendar-subscribe-link-ics{margin-right:2vw;}















/* =========================================================
   BESD Kalendar – Timeline EINZELMODUS
   aktiv bei: [besd-timeline einzel="ja"]
   (Selector: per_page=1 + rows=0 + rows_load=0)
   ========================================================= */

.besd-kalendar-timeline-wrapper[data-per-page="1"][data-rows="0"][data-rows-load="0"]{
  /* Karte zentrieren + etwas Luft */
	margin: 0;
}

.besd-kalendar-timeline-wrapper[data-per-page="1"][data-rows="0"][data-rows-load="0"] > .besd-kalendar-upcoming-list{	display:block;}


.besd-kalendar-timeline-wrapper[data-per-page="1"][data-rows="0"][data-rows-load="0"] .besd-kalendar-event-image {   }

/* Karte: wie ein "Hero" */
.besd-kalendar-timeline-wrapper[data-per-page="1"][data-rows="0"][data-rows-load="0"]
.besd-kalendar-event-card{
  max-width: 980px;
  margin: 0 auto;
  border-width: 2px;
  position: relative; /* für Badge */
}

.besd-kalendar-timeline-wrapper[data-per-page="1"][data-rows="0"][data-rows-load="0"]
.besd-kalendar-event-image{

}


/* Overlay/Typo: etwas größer */
.besd-kalendar-timeline-wrapper[data-per-page="1"][data-rows="0"][data-rows-load="0"]
.besd-kalendar-event-line-date{
  font-size: 18px;
  line-height: 1.15;
}

.besd-kalendar-timeline-wrapper[data-per-page="1"][data-rows="0"][data-rows-load="0"]
.besd-kalendar-event-title-on-image{
  font-size: 26px;
  line-height: 1.1;
}

/* Excerpt: etwas luftiger */
.besd-kalendar-timeline-wrapper[data-per-page="1"][data-rows="0"][data-rows-load="0"]
.besd-kalendar-event-content{
  padding-top: 14px;
  padding-bottom: 14px;
}



/* Safety: falls irgendwo doch ein Button gerendert würde, im Einzelmodus ausblenden */
.besd-kalendar-timeline-wrapper[data-per-page="1"][data-rows="0"][data-rows-load="0"]
.besd-kalendar-load-more-wrap{
  display: none !important;
}





.besd-kalendar-event-overlay-bottom{
	    bottom: 0;
    background: var(--shadowunten);
    width: 100%;
    margin: 0;
    padding: 0 0 8px 12px;
    left: 0;
}

.besd-kalendar-event-overlay-top{  
	top: 0;
    background: var(--shadowoben);
    padding: 5px 0 0 0; background: 
		var(--shadowoben);
			}
