@font-face {
    font-family: "Alex Brush";
    src: local("Alex Brush"),
         url("/wp-content/themes/apphomepage/fonts/alex_brush.ttf") format("truetype"); /* Pfad anpassen */
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}


:root {
    --maingrey: #f1f1f1;
    --headergrey: #ccc;
    --accent: #cc0000;
    --maincolor: #cc0000;
	--lighttext: #999999;
    --facebook: #3b5998;
    --instagram: #3b5998;
    --youtube: #cc0000;
    --maintext: #444;
	
    --tourismuscolor: #258725;
    --gemeindecolor: #cc0000;
    --lebencolor: #2da1ec;
	/*
    --tourismuscolor: #cc0000;
    --gemeindecolor: #cc0000;
    --lebencolor: #cc0000;
	*/
}

* {
    margin: 0;
    padding: 0;
}
html {
	scroll-behavior: smooth;
}
  
html, body {
    height: 100%;
}
  
body {
    background-color: white;
    font-size: 14px;
    font-family:'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    hyphens: auto;    
}

/* Helper */
.pt-1 {padding-top: 1rem}
.pt-2 {padding-top: 2rem}
.pt-3 {padding-top: 3rem}
.pt-4 {padding-top: 4rem}
.pt-5 {padding-top: 5rem}
.mt-1 {margin-top: 1rem}
.mt-2 {margin-top: 2rem}
.mt-3 {margin-top: 3rem}
.mt-4 {margin-top: 4rem}
.mt-5 {margin-top: 5rem}
.pb-1 {padding-bottom: 1rem}
.pb-2 {padding-bottom: 2rem}
.pb-3 {padding-bottom: 3rem}
.w-25 {width: 25.00%}
.w-33 {width: 33.33%}
.w-66 {width: 66.66%}
.w-75 {width: 75.00%}
.disflex {display: flex; position: relative}
.gap-20 {gap: 20px}
.gap-30 {gap: 30px}
.hidden {display: none}
.visible {display: block}
.tourismus-forecolor {color: var(--tourismuscolor) !important}
.leben-forecolor {color: var(--lebencolor) !important}
.gemeinde-forecolor {color: var(--gemeindecolor) !important}


.fc-weekday {color: #777}
.fc-saturday {color: #9f9f9f}
.fc-sunday, .fc-holiday {color: #cc0000}
.gemeinde-bg {background-color: var(--gemeindecolor);}
.tourismus-bg {background-color: var(--tourismuscolor);}
.leben-bg {background-color: var(--lebencolor);}

/* WordPress Helper */
img.alignright {float:right; margin:0 0 1em 1em}
img.alignleft {float:left; margin:0 1em 1em 0}
img.aligncenter {display: block; margin: 35px auto; text-align: center;}
a img.alignright {float:right; margin:0 0 1em 1em}
a img.alignleft {float:left; margin:0 1em 1em 0}
a img.aligncenter {display: block; margin-left: auto; margin-right: auto}

.button {
	padding: 8px 12px;
	color: #fff;
	background-color: var(--maincolor);
	border-radius: 10px;
	cursor: pointer;
	font-weight: 500;
}

a.button {
	text-decoration: none;
}

.wrapper {
    margin: 0 auto; 
    min-height: 100vh;   
    display: grid;
    grid-template-rows: auto 1fr auto; 
    grid-template-columns: 1fr;
    grid-template-areas: 
      "header"
      "main"
      "footer";
}

.container {
    max-width: 1400px;  
    margin: 0 auto;     
    padding: 0 1rem; 
    position: relative;  
}

header {
    grid-area: header;
    background-color: #fff;
	position: sticky;
	top: 0;
	z-index: 99;
}

.toparea {
    background-color: #ccc;
    min-height: 30px;
}

.claimarea {
    background-color: #fff;
    min-height: 100px;
}

.claim {
    color: #444;
    font-size: 1.6rem;
    font-weight: 700;
}

.claim span{
    color: var(--gemeindecolor);
    font-family: "Alex Brush", serif;
    font-weight: 700;       
    font-synthesis: weight; 
    font-size: 2.4rem;
}

#logo {
    position: absolute;
    display: flex;
    align-items: center;
    top: -20px;
    left: 15px;
    z-index: 99;
	cursor: pointer;
}

#logo img {
    width: 130px;
    height: auto;
    margin-right: 25px;
}

.socials-header {
    position: absolute;
    right: 15px;
    top: -20px;
    display: flex;
}

.socials-header div {
    height: 40px;
    width: 40px;
    background-color: #fff;
    border-radius: 50px;
    border: solid 1px #f0f0f0;
    margin-left: 8px;
    transition: transform 0.5s;
}

.socials-header div:hover {
    cursor:pointer;
    transform: translateY(5px);
}

.socials-header div svg {
    fill: var(--maingrey);
    width: 26px;
    height: 26px;
    padding: 7px;
}

.socials-header .social-fb svg {
    fill: var(--facebook);
}

.socials-header .social-yt svg {
    fill: var(--youtube);
}

/*** Navigation ***/
.navarea {
    width: 100%;
    background-color: var(--accent);
    z-index: 1;
    position: relative;
    min-height: 60px;
}

.navarea.shadow {
    box-shadow: 0 5px 10px 0 rgba(0,0,0,0.4);
}

.navarea .navcontainer {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    position: relative; 
    height: 100%; 
}

.navarea nav>ul {
    display: flex;
    list-style: none;
}

.navarea nav>ul>li {
    position: relative;
}

.navarea nav>ul>li>a {
    font-size: 1.2rem;
    font-weight: 700;
    line-height: 3.8rem;
    padding: 5px 25px;
    color: #fff;
    text-decoration: none;
    text-transform: uppercase;
    position: relative;
}

.navarea nav>ul>li.active>a:before {
    position: absolute;
    content: "";
    height: 1px;
    width: 70px;
    background-color: #fff;
    bottom: 0;
    left: 27px;
}

.navarea nav>ul>li>ul {
    visibility: hidden;
    list-style: none;
    position: absolute;
    top: 100%;
    left: 20px;
    background-color: #555;
    transition: opacity 0.3s;
    opacity: 0;
    box-shadow: 0 5px 10px 0 rgba(0,0,0,0.4);
}

.navarea nav>ul>li:hover>ul {
    width: 100%;
    min-width: 250px; 
    opacity: 1;
    visibility: visible;
}

.navarea nav>ul>li>ul>li>a {
    display: block;
    height: 100%;
    background-color: rgba(255,255,255,1);
    color: #555;
    text-decoration: none;
    padding: 8px 9px;
    font-size: 1rem;
    font-weight: 500;
    border-bottom: solid 1px #e0e0e0;
    transition: color 0.3s;
}

.navarea nav>ul>li>ul>li>a:hover {
    color: var(--accent);
    background-color: #f0f0f0;
}

.navarea nav>ul>li>ul>li>a::before {

}

.navarea nav>ul>li>ul>li>a i.fa-square-caret-right {
	color: #d6d6d6;
	margin-right: 7px;
}

.navarea nav>ul>li>ul>li>a i.fa-circle-arrow-right {
	color: #d0d0d0;
	margin-right: 7px;
}



.navarea nav>ul>li.gemeinde>ul>li>a:before, .navarea nav>ul>li.gemeinde>ul>li>a {
    color: var(--gemeindecolor);
}

.navarea nav>ul>li.leben>ul>li>a:before, .navarea nav>ul>li.leben>ul>li>a {
    color: var(--lebencolor);
}

.navarea nav>ul>li.tourismus>ul>li>a:before, .navarea nav>ul>li.tourismus>ul>li>a {
    color: var(--tourismuscolor);
}

.navarea nav>ul>li>ul>li:first-child  {
    border-top: solid 1px #999;
}
.navarea .searcharea {
    margin-left: 60px;
    line-height: 3.8rem;
}




.searcharea input {
    padding: 8px 20px;
    border: 0;
    border-radius: 15px;
    font-size: 1rem;
}

.searcharea input:focus {
    outline: none;
}

.searcharea button {
	border-radius: 15px;
	padding: 8px 10px;
	color: var(--accent);
	background-color: #fff;
	border: none;
	font-weight: bold;
	font-size: 1rem;
	cursor: pointer;
}

.searcharea button:hover {
	background-color: #f0f0f0;
}

.hamburger-button  {
    display: none;
    width: 1.8rem;
}

.hamburger-button svg {
    fill: #ffffff;
}

span.arrow, nav div.subinfos  {
    display: none;
}

.pic-header {
    z-index: 0;
    position: relative;
}

.pic-header img {
    width: 100%;
    aspect-ratio: 19 / 7;
    background-color: var(--accent);
}

.svg-header {
    position: absolute;
    bottom: -5px;
    left: 0;
    width: 100%;
}

.svg-header svg {
    fill: var(--accent);
    width: 100%;
    border-bottom: solid 3px var(--accent);
}

.bottom-header {
    width: 100%;
    background-color: var(--accent);
    padding: 0;
    margin: 0;
    height: 20px;
}

@media (max-width: 1200px) { 
    .navarea nav>ul>li>a {
        font-size: 1.0rem;
    }
    .navarea nav>ul>li>ul>li>a, .searcharea input {
        font-size: 0.8rem;
    }
}

@media (max-width: 992px) { 
    .toparea, .claim {
        display: none;
    }
    .claimarea {
        min-height: auto;
    }
    #logo {
        top: 5px;
    }
    #logo img {
        width: 60px;
    }
    .navarea {
        position: sticky;
    }
    .navarea .searcharea {
        margin-right: 40px;
    }
    .hamburger-button  {
        display: block;
    }
    nav#main-navi  {
        position: fixed;
        top:63px;
        right: -100%;
        height: 100vh;
        width: min(20em, 100%);
        z-index:10;
        transition: right 400ms ease-out;
    } 
    nav#main-navi.show {
        right: 0;
    }
    .navarea nav {
        /*background-color: rgba(70,70,70,0.9); */
        background-color: transparent;
    }
    .navarea nav>ul {
        width: 100%;
        flex-direction: column;
        box-shadow: 0 5px 10px 0 rgba(0,0,0,0.4);
    }
    .navarea nav ul>li {
        display: block;
    } 
    .navarea nav ul>li>a {
        display: block;
        padding: 0px 25px;
        border-bottom: solid 1px #fff;
    }

    .navarea nav>ul>li>a span.arrow {
        color: white;
        display: inline-block;
        transform: rotate(90deg);
        position: absolute; 
        right: 0px;
        padding: 6px 27px;
        width: 3px;
        top: -6px;
        font-size: 1.2rem;
    }

    .navarea nav>ul>li>a span.arrow.rotated {
        transform: rotate(-90deg);
    }

    nav#main-navi > ul > li > ul.open {
        display: block;     
    }
    .navarea nav ul>li.gemeinde>a {background-color: var(--gemeindecolor);}
    .navarea nav ul>li.leben>a {background-color: var(--gemeindecolor);}
    .navarea nav ul>li.tourismus>a {background-color: var(--gemeindecolor);}
    
    /*** 2. Ebene ***/  

    .navarea nav>ul>li>ul {
        position: static;     
        top: auto;
        left: auto;
        width: auto;           
        visibility: visible;   
        opacity: 1;           
        display: none;       
        background-color: transparent; 
        box-shadow: none;     
        margin-left: 0;       
    }   

    .navarea nav>ul>li>ul>li {
        display: block;
    } 
    .navarea nav>ul>li>ul>li>a {
        padding-left: 20px;
        line-height: 2.0rem;
    }
    .navarea nav>ul>li>ul>li>a:before {
        content: ""; /* oder gar entfernen */
    }

    nav div.subinfos {
        display: block;
        background-color: white;
        padding: 15px 5px;
        color: var(--maintext);
        font-size: 0.8rem;
        border: solid 1px #ccc;
        box-shadow: 0 5px 10px 0 rgba(0,0,0,0.4);
    }

    nav div.subinfos ul li a {
        color: #444;
        font-size: 0.8rem;
        text-decoration: none;
        padding: 5px 20px;
    }

    nav div.subinfos ul li a svg {
        fill: var(--maincolor);
        margin-right: 0.5rem;
        padding-top: 2px;
        height: 13px;
        width: 13px;
    }

    nav div.subinfos div.socials-header {
        position: relative;
        display: flex;
        justify-content: center;
        right: auto;
        top: auto;
        margin-top: 20px;
    }
}

@media (max-width: 480px) { 
    .searcharea input {
        width: 130px;
        margin-top: 10px;
    }
    .hamburger-button {
        margin-top: 10px;
    }
}

/*** Breadcrumb ***/
nav.breadcrumb {
	font-size: 1rem;
	color: #444;
}

nav.breadcrumb a {
	text-decoration: none;
	color: var(--accent);
}
 
/*** Main Content ***/
main {
    padding: 30px 0;
    grid-area: main;
    background-color: var(--maingrey);
}

.content {
    overflow: hidden;
    margin: 40px 0;
}

.content ul:not(.downloadlist ul), ol {
	margin: 10px 35px;
}

.content h1 { 
  color: var(--accent);
  transition: color .2s ease;
}

.partholder {
    display: flex;
    flex-wrap: wrap; 
    gap: 30px;
    min-width: 0;  
  }

/* Allgemeine Card-Stile */
.contentpart {
    padding: 20px;
    background-color: #fff;
    min-height: 120px;
	height: 100%;
}

.contentpart h1 i {
	margin-right: 1rem;
}

.contentpart a:not(a.fastlinkbox, .downloadlist ul li a ) {
	text-decoration: none;
	color: var(--maincolor);
}

.contentpart.leftpart a {
	color: var(--maincolor); 
}

.leftpart {
    flex: 1 1 auto; 
    min-width: 0;  
    max-width: calc(100% - 520px);
}

.leftpart.fullwidth {
	max-width: 100%;
}
  
.rightpart {
    flex: 0 0 380px; 
    min-width: 380px; 
}


@media (max-width: 1200px) {
    .leftpart {
        max-width: calc(100% - 420px);
    }
    .rightpart {
        flex: 0 0 300px;
        min-width: 300px;
    }
}
  
@media (max-width: 992px) {
    .leftpart {
        max-width: 100%;
    }
    .leftpart,
    .rightpart {
        flex: unset;
        width: 100%;
        min-width: auto;
    }
	
	.contentpart {
		width: 90%;
	}
}



/*News Overview */
.newsoverview {
    margin-top: 0px;
    padding: 10px;
    display: flex;
    gap: 12px;
    overflow: hidden;
    flex-wrap: wrap;

}

.newsitem {
    width: 20%;
    text-decoration: none;
    color: var(--maintext);
    padding: 0px 10px 30px 10px;
    position: relative;
    transition: 0.5s;
    border: solid 1px transparent;
    margin-bottom: 10px;
	background-color: #fafafa;
	border: solid 1px #f0f0f0;
}

.newsitem h3 {
    color: var(--maincolor);
    font-size: 1.0rem;
    line-height: 1.2rem;
    font-weight: 600;
	word-wrap: break-word;
}

.newsitem p {
	color: var(--maintext); 
}

.newsitem img  {
    margin: 10px 0;
    width: 100%;
    aspect-ratio: 16/11;
}

.newsitem svg, .newsitem i {
    position: absolute;
    right: 15px;
    bottom: 8px;
    width: 15px;
    height: 15px;
    fill: var(--maincolor);
    transition: 0.3s;
}

.newsitem:hover svg, .newsitem:hover i {
    transform: translateX(5px);
}


.newscard {
	background-color: #fff;
	padding: 25px 40px;
	margin-top: 15px; 
	display: flex;
	gap: 40px;
	transition: all 0.2s ease-out;
}

.newscard:hover {
	cursor: pointer;
	background-color: #f9f9f9;
}

.newscardpic {
	width: 25%;
}

.news-imageholder {
	margin-bottom: 30px;
}

.newscardpic img, .news-imageholder img {
	width: 100%;
	aspect-ratio: 16 / 11;
	object-fit: cover;
}

.newscardcontent {
	width: 75%;
	display: flex;
	flex-direction: column;
}

.newsdetails .newscard h3 span {
	display: block;
}

.newsdetails .newscard h3 span.title {
	font-weight: 400;
	font-size: 1.5rem;
	color: var(--maincolor);
	transition: text-decoration 0.3s;
}

.newsdetails .newscard:hover .newslink a {

}

.newsdetails .newscard .newsdate, .newsmeta .newsdate {
	color: var(--lighttext);
}

.newsdetails .newscard h3 span.subtitle {
	font-weight: 400;
	font-size: 1.1rem;
	color: #444;
}

.newsdetails .newscard p:first-of-type {
	margin-top: 5px;
}

.newsdetails .newslink {
	text-align: right;
	margin-top: auto;
}


.newsdetails .newslink a {
	color: var(--maincolor);
	text-decoration: none;
	font-size: 1.2rem;
	transition: 0.3s;
}

.newsdetails .newslink a:hover {

}

/*News Detailseite */
.newsdetails h1 {
	font-size: 1.6rem;
	line-height: 2.25rem;
	color: var(--accent);
	font-weight: 500;
}

.newsdetails h3 {
	font-size: 1rem;
	color: #444;
	font-weight: 500;
}

.rightpart.newsdetails h3 {
	font-weight: bold;
	color: #444;
}

.newsdetails .news-imageholder {
	margin: 20px 0;
	overflow: hidden;
}

.rightpart.newsdetails .news-imageholder {
	margin: 0 0 20px 0;
}

.rightpart.newsdetails img {
    width: 100%;
    background-color: var(--maincolor);
	background-size: cover;
}

.newsdetails p:first-of-type {
	margin-top: 20px;
}

.newsdetails p, .newsdetails ul {
	color: #777;
	font-size: 1.2rem;
	line-height: 1.8rem;
	margin-bottom: 20px;
	word-wrap: break-word;
	overflow:hidden;
}

.newsdetails ul {
	list-style-type: none;
	list-style-position: outside
}

.newsdetails .fa-ul li {
	padding-bottom: 10px;
}

.newsdetails  .fa-ul i.fa-solid {
	color: var(--accent);
	margin-right: 5px;
}

.newsgallery {
	margin: 10px 0 20px 0;
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 20px;
}

.newsgallery .gallerypic {
	width: 47%;
	cursor: pointer;
}
.newsgallery .gallerypic img {
	aspect-ratio: 16/11;
	object-fit: cover;
}


@media (max-width: 1200px) {
    .newsoverview {
		gap: 18px; 
    }
}

@media (max-width: 992px) {
    .newsoverview {
        margin-right: 25px;
    }
}

@media (max-width: 480px) { 
    .newsitem {
        width: 100%;
    }
    .pic-header img {
        aspect-ratio: 19 / 9;
    }
	
	.newscard {
		flex-direction: column;
		padding: 15px;
		margin-top: 20px;
	}
    .newscardpic, .newscardcontent {
        width: 100%;
    }
	

	
	.newsdetails .newscard h3 span.subtitle {
		font-size: 1rem;
	}
	
	.newsdetails .newslink a {
		font-size: 1.1rem;
	}
	
	.newsdetails .newscard h3 span.title {
		font-size: 1.8rem;
		font-weight: 500;
		overflow-wrap: break-word;
		word-wrap: break-word; 
		word-break: break-word;
		line-height: 1.3;
		hyphens: auto; 
	}  
	
	.newsgallery .gallerypic {
		width: 45%;
	}
}


/* Sidebar rechts Kacheln */
.fastlinks {
    margin: 10px 0;
    display: flex;
    gap: 20px;
    overflow: hidden;
    flex-wrap: wrap;
    justify-content: center;

}

.fastlinkbox {
    min-width: 172px;
    font-size: 1rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    min-height: 100px;
    color: #fff;
    font-weight: 500;
    text-decoration: none;
    gap: 8px; 
    transition: transform 0.3s;
}

.fastlinkbox:hover {
    transform: translateY(-4px);
}

a.fastlinkbox svg {
    fill: #fff;
    font-size: normal;
    width: 25px;
    height: 25px;
}

a.fastlinkbox i {
	color: #fff;
    font-size: normal;
    width: 25px;
    height: 25px;	
}

.fastlinkbox.gemeinde {background-color: var(--gemeindecolor);}
.fastlinkbox.tourismus {background-color: var(--tourismuscolor);}
.fastlinkbox.leben {background-color: var(--lebencolor);}

/* Sidebar Downloads */

.downloadlist ul {
    list-style-type: none;
    margin-bottom: 20px;
}

.downloadlist ul li a {
    text-decoration: none;
    background-color: #f0f0f0;
    padding: 10px 17px;
    color: #888 !important;
    margin: 10px 0;
    display: block;
    font-size: 1.05rem;
    position: relative;
    transition: padding 0.3s;
}

.downloadlist ul li a:hover {
    color: #555;
    padding-left: 22px;
    background-color: #e6e6e6;
}

.downloadlist ul li a:after {
    position: absolute;
    content : " ";
    width: 1rem; /* Größe des Icons */
    height: 1rem;
    right: 10px;
    top: 12px;
    background-image: url('../images/icons/fa_arrow_right.svg');
    background-repeat: no-repeat;
    background-size: contain;
}

.downloadlist ul li a:after svg {
    color: #bbbbbb;
}

.downloadlist ul.accent li a, .downloadlist a.downloadimage.accent {
    border-left: solid 5px var(--accent);
}

.downloadlist ul.gemeinde li a, .downloadlist a.downloadimage.gemeinde {
    border-left: solid 5px rgba(204,0,0,1);
}

.downloadlist ul.gemeinde li a:hover, .downloadlist a.downloadimage.gemeinde:hover {
    border-left: solid 5px rgba(204,0,0,85);
}

.downloadlist ul.leben li a, .downloadlist a.downloadimage.leben {
    border-left: solid 5px rgba(9,144,234,1);
}

.downloadlist ul.leben li a:hover, .downloadlist a.downloadimage.leben:hover {
    border-left: solid 5px rgba(9,144,234,0.85);
}

.downloadlist ul.tourist li a, .downloadlist a.downloadimage.tourist {
    
	border-left: solid 5px rgba(37,134,37,1);
}

.downloadlist ul.tourist li a:hover, .downloadlist a.downloadimage.tourist:hover {
	border-left: solid 5px rgba(37,134,37,0.85);
}

.downloadlist a.downloadimage  {
    display: block;
    margin: 10px 10px 20px 10px;
    padding: 10px;
    border-left: solid 5px rgba(204,0,0,0.7);
    background-color: #f0f0f0;
}

.downloadlist a.downloadimage img {
    max-width: 100%;
}

.downloadlist a.downloadimage.sgbsb {
    border-left: #fff;
    background-color: #fff;
    padding: 25px 15px;
}

.video-container {
    position: relative;
    padding-bottom: 56.25%;
    padding-top: 0;
    height: 0;
    overflow: hidden;
}

.video-container iframe,
.video-container object,
.video-container embed {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

@media (max-width: 1200px) {
    .fastlinkbox {
        min-width: 130px;
        font-size: 0.9rem;
        min-height: 90px;
    }
}

@media (max-width: 992px) {
    .fastlinkbox {
        min-width: 130px;
        font-size: 0.9rem;
        min-height: 90px;
    }
}

@media (max-width: 480px) { 
    .fastlinks {
        gap: 10px;
        justify-content: space-around;
        width: 100%;
    }
}

/*** PreLoader ***/
#preloader-dates {
	width: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
}

#preloader-dates div{
	background-color: #fff;
	padding: 50px;
	text-align: center;
	color: #ccc;
	font-size: 2rem;
}
#preloader-dates div i {
	color: rgba(200,0,0,0.8);
}

/*** Button Auswahl Zeitraum ***/
#datenavi {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 10px;
	font-size: 1.8rem;
}
#monthyear {
	padding: 4px 5px 8px 5px;
	font-size: 1.5rem;
	background-color: #fff;
	color: #777;
	font-weight: 500;
	min-width: 200px;
	text-align: center;
}

.prevbutton, .nextbutton, .downbutton {
	padding: 7px 13px;
	color: var(--maincolor);
	background-color: #fff;
	cursor: pointer;
} 

.hide-element {
    display: none !important;
}


.fastnavi {
	margin: 6px auto 30px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
}

.downbutton {
	font-size: 1.8rem;
	padding: 7px 11px;
}

.monthholder {
    display: flex;
    flex-wrap: wrap; 
    justify-content: space-between; 
}
.entry {
    width: calc(33.33% - 10px); 
    margin-bottom: 10px; 
    box-sizing: border-box;
    border: 1px solid #000; 
    padding: 5px; 
}
.sel-month {
    width: 33.3%;
	background-color: #fff;
    color: var(--maincolor);
    border: solid 1px #e6e6e6;
    padding: 5px 7px;
    font-weight: bold;
    border-radius: 10px;
    width: calc(33.33% - 10px); 
    margin-bottom: 10px; 
    box-sizing: border-box; 
    text-align: center;
	cursor: pointer;
}

.passive {
    color: #e0e0e0;
}

/*** Kalender ***/
.dayholder {
	display: flex;
	gap: 40px;
	color: #777;
	margin-bottom: 15px;
}

.termindetails {}
.termindetails .daycard {
	width: 90px;
	height: 90px;
	background-color: #fff;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;	
	gap: 0;
}

.termindetails .daycard .weekday {}
.termindetails .daycard .day {
	font-size: 2rem;
	line-height: 2rem;
	font-weight: 700;
}
.termindetails .daycard .month {}
.termindetails .daycard .dayinfo {}


.termindetails .eventcard {
	background-color: #fff;
	width: 100%;
}

.termindetails .eventcard:has(div > div.ferientag-info) {
	border-right: solid 10px rgba(200,0,0,0.7);
}

.termindetails .eventwrapper {
  display: flex;
  align-items: center;   
  padding: 10px 15px;
  background-color: #fff;
}
.termindetails .eventcard .eventitem {
	border-bottom: solid 1px #f0f0f0;
}
.termindetails .eventcard .eventitem:last-child {
	border-bottom: none;
}
.termindetails .eventcard .eventitem .eventicon {
	height: 50px;
	width: 50px;
	margin-right: 30px;
}
.termindetails .eventcard .eventicon img {
	width: 100%;
}

.termindetails .eventcard .eventtext {}
.termindetails .eventcard .eventtext .groupname {
	font-weight: 500;
	color: #9f9f9f;
}
.termindetails .eventcard .eventtext .eventname {
	font-weight: 500;
	font-size: 1.2rem;
	color: var(--lebencolor);
}
.termindetails .eventcard .eventtext .eventtime {
	color: #9f9f9f;
	font-weight: 500;
}

.termindetails .eventtext .eventtime { 
  display: flex; 
  flex-wrap: wrap; 
  align-items: center; 
  gap: .5rem; 
  color: var(--maingrey); 
  font-size: 0.95rem;
}
.termindetails .eventtime i { margin-right: .35rem; }
.termindetails .eventtime .dot { opacity: .6; }
.termindetails .event-meta-place { white-space: nowrap; }


.termindetails .holiday-wrapper {
	display: flex;
	justify-content: flex-end;
}

.termindetails .holiday-wrapper .feiertag-info {
	margin-right: 15px;
	color: #cc0000;
}
.termindetails .holiday-wrapper .ferientag-info {
	margin-right: 10px;
}

.eventtoggle {
	margin-left: auto;  
	cursor: pointer;
	font-size: 2.5rem;
	color: #e0e0e0;
}


.eventtoggle i {
	transition: transform 0.3s ease;
}


.eventtoggle i.rotated {
	transform: rotate(180deg);
}

.event-details {
	max-height: 0;
	overflow: hidden;
	transition: max-height 0.3s ease;
	background-color: #fff;
	border-top: 0;
	padding: 0 15px;
	display: flex;
	justify-content: center;
	font-size: 1.04rem;
	gap: 80px;
}
.event-details.open {
	border-top: solid 1px #e6e6e6;
	padding: 20px;
}

.eventinfos{
	width: 60%;
}

.eventinfos p {
	line-height: 1.5rem;
}
.eventinfos a {
	color: var(--maincolor);
	text-decoration: none;
}

.eventpic{
	max-width: 160px;
}

.eventpic img {
	width: 100%;
}

.eventdownload{
	margin-left: auto;
}

.eventdownload a.button {
	font-size: 0.9rem;
}

@media (max-width: 1200px) {
	.event-details {
		gap: 20px;
	}
	
	.eventinfos {
		width: 60%;
	}
	
}

@media (max-width: 992px) {
	.event-details {
		flex-direction: column;
	}
	
	.eventinfos {
		width: 100%;
	}
	
	.eventpic {
		max-width: 300px;
		text-align: center;
		margin: 15px auto;
	}
	
	.eventdownload {
		text-align: center;
		margin: 15px auto;
	}
	
}

@media (max-width: 480px) { 
    .fastlinks {
        gap: 10px;
        justify-content: space-around;
        width: 100%;
    }
	
	.dayholder {
		gap: 10px;
	}
	
	.termindetails .daycard {
		width: 50px;
		height: 50px;
	}
	
	.termindetails .daycard .weekday {
		font-size: 0.8rem;
	}
	
	.termindetails .daycard .day {
		font-size: 1rem;
	}
	
	.termindetails .daycard .month {
		display: none;
	}

	.ferientag-info {
		font-size: 0.7rem;
	}

	.eventtoggle {
		font-size: 1rem;
	}
	
	.termindetails .eventwrapper {
		align-items: flex-start;
		padding: 10px 5px;
	}	

	.termindetails .eventcard .eventtext .eventname {
		font-size: 1rem;
	}
	.termindetails .eventcard .eventitem .eventicon {
		margin-right: 20px;
		min-width: 50px;
	}
	
}



/* Vereine Übersicht */
.clubcontainer {
	display: flex;
    flex-wrap: wrap;
    gap: 20px;
    align-items: stretch; /* sorgt dafür, dass alle Kinder gleich hoch werden */
}

.clubcard {
	background-color: #fff;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	transition: all 0.2s ease-out;
	width: 220px;
	padding: 10px 10px 0 10px;
	text-decoration: none;
}

.clubcard:hover {
	cursor: pointer;
	transform: scale(1.02);
}

.clubcard div.groupicon-wrapper {
	max-width: 120px;
	height: 90px;
}

.clubcard div.groupicon-wrapper.touri-wrapper {
	max-width: 200px;
	max-height: 150px; 
}

.clubcard img {
	width: 100%;
	max-height: 125px;
}

.clubname {
	color: var(--maincolor);
	text-align: center;
	margin-top: 10px;
	background-color: var(--lebencolor);
	color: #fff;
	font-weight: 500; 
	width: 220px;
	min-height: 40px;
	margin-top: 60px;
	padding: 5px 10px 5px 10px;	
}

.tourismusname {
	background-color: var(--tourismuscolor);
}

@media (max-width: 480px) { 
	.clubcard, .clubname {
		width: 100%;
	}
}


/*** Vereine Detailseite ***/

.leftpart.club {
	padding: 0;
	width: 100%;
	padding: 20px;
}

.infocard {
	transition: none;
	background-color: #fff;
	padding: 0;
	font-size: 1.1rem;
	margin-bottom: 60px;
}

.infocard.firstcard {
	margin-top: 60px;
}

.infocard:hover {
	transform: none;
}

.infocard .cardheader {
	background-color: var(--lebencolor);
	padding: 10px 20px;
	color: #fff;
	font-weight: 500;
	text-align: left;
	overflow: hidden;

}

.infocard.tourismus .cardheader {
	background-color: var(--tourismuscolor);
}

.cardheader i, .carddetails i {
	margin-right: 1rem;
}

.infocard.tourismus .carddetails i {
	color: var(--tourismuscolor);
}

.infocard .carddetails {
	text-align: left;
	color: #777;
	margin: 15px 0 15px 20px;
}

.infocard .carddetails p {
	color: #777;
	margin-bottom: 0;
	margin-top: 0;	
}

.infocard .carddetails .contactdetails {
	margin-bottom: 15px;
}

.infocard .carddetails .contacthead {
	display: block;
	margin: 0;
	font-weight: bold;
}

.detailstable {
    width: 100%;
    border-collapse: collapse;
    margin-top: 1rem;
    font-size: 1rem;
}

.detailstable td {
    padding: 10px;
    vertical-align: top;
}

.detailstable tr:nth-child(even) {
    background-color: #ffffff; 
}

.detailstable tr:nth-child(odd) {
    background-color: #f7f7f7; 
}

.detailstable i {
    width: 20px;
    display: inline-block;
    text-align: center;
}



/*** Footer ***/

footer {
    grid-area: footer;
    min-height: 100px;
    background-color: #fff;
    padding: 30px 90px;
    color: var(--maintext);
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    justify-content: space-between;
    position: relative;
}

footer div.footitem {
    padding: 30px 0px 30px 20px;;
    flex: 1 1 22%;  
    min-width: 200px; 

}

footer div h3 {
    font-weight: 500;
    font-size: 1.2rem;
    margin-bottom: 8px;
    padding-bottom: 5px;
    border-bottom: solid 1px var(--maingrey);
    display: inline-block;
}

footer div p {
    line-height: 1.65rem;
    font-size: 1rem;
    max-width: 300px;
}

footer ul {
    list-style: none;
}

footer ul li a, footer a {
    line-height: 1.65rem;
    font-size: 1rem;
    text-decoration: none;
    color: var(--maintext);
}

footer ul li a:hover, footer a:hover {
    color: var(--maincolor);
}

footer ul li a::before,
footer a::before {
  content: "\00BB\00A0"; 
  color: var(--maincolor);
}


footer div.touristinfo {
    width: 50px;
    height: 50px;
    margin-top: 20px;
}

#footerlogo {
    position: absolute;
    left: 50%;
    top: -25px;
    transform: translateX(-50%);
    padding: 3px;
    height: 70px;
    width: 70px;
    background-color: #fff;
}

#footerlogo img {
    width: 100%;
}

@media (max-width: 480px) { 

    footer {
        padding: 30px 10px;
    }
}

@media (max-width: 1280px) { 

}

/* Scroll To Top */ 

.scrolltop {
    position: fixed;     
    bottom: 40px;          
    right: 40px;           
    width: 45px;
    height: 45px;
    border-radius: 50%;    
    background-color: #888; 
    color: 	var(--maincolor);
    display: flex; 
    align-items: center; 
    justify-content: center;
    font-size: 1.2rem; 
    cursor: pointer;
    z-index: 9999;         
    box-shadow: 0 2px 5px rgba(0,0,0,0.2);
    transition: opacity 0.3s ease, visibility 0.3s ease;
}

.scrolltop:hover {
    background-color: #666;
}

.scrolltop i {
    pointer-events: none;  
}

.scrolltop.hidden {
    opacity: 0;            
    visibility: hidden;    
}

.lb-image:hover {
    cursor: pointer;
}

/* Loader */

.content-loader {
    position: fixed;
    top: 0; 
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(255, 255, 255, 0.7); 
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 9999; 
    transition: opacity 0.3s ease;
    opacity: 0;
    pointer-events: none;
}

.content-loader.active {
    opacity: 1;
    pointer-events: all; 
}

.content-loader i {
    font-size: 2rem;  
    color: var(--maincolor);
    animation: spinner 1s linear infinite;
}

@keyframes spinner {
    0%   { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

.hidden {
    display: none !important;
}



/* Lightbox-Container (bestehende Regeln bleiben) */
#lightbox {
    position: fixed;
    z-index: 1000;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0,0,0,.8);
    visibility: hidden;
    opacity: 0;
    transition: opacity 0.5s ease, visibility 0s 0.5s;
    display: flex;
    justify-content: center;
    align-items: center;
}
#lightbox.active {
    visibility: visible;
    opacity: 1;
    transition: opacity 0.5s ease, visibility 0s;
}

/* Bild in der Lightbox */
#lightbox img {
    max-width: 90%;
    max-height: 90%;
    padding: 6px;
    background-color: #fff;
}

/* Close-Button */
#lightbox .lb-close {
    position: absolute;
    top: 10px;
    right: 10px;
    cursor: pointer;
    z-index: 1100;
    font-size: 24px;
    color: #e0e0e0;
    padding: 10px 20px;
    background-color: rgba(0,0,0,0.3);
    border-radius: 50%;
}

/* Navigationspfeile */
#lightbox .lb-prev, 
#lightbox .lb-next {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    cursor: pointer;
    font-size: 24px;
    color: #e0e0e0;
    z-index: 1100;
    user-select: none;
    padding: 10px 20px;
    background-color: rgba(0,0,0,0.3);
    border-radius: 50%;
}


#lightbox .lb-prev {
    left: 10px;
}


#lightbox .lb-next {
    right: 10px;
}

.embed-wrapper {
    position: relative;
}
.embed-box {
    border: 1px solid #ccc;
    padding: 1rem;
    background: #fff;

    text-align: center;
}
.btn-embed {
    padding: .6rem 1rem;
    border: 0;
    cursor: pointer;
}
.embed-loader[hidden] {
    display: none !important;
}
.embed-loader {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .6rem;
    background: rgba(255, 255, 255, 0.85);
    backdrop-filter: blur(2px);
    border-radius: .5rem;
    text-align: center;
    font-size: 1rem;
	color: var(--tourismuscolor);
}
.embed-loader i {
    font-size: 1.25rem;
}
#dest1-embed iframe {
    width: 100%;
    display: block;
    border: 0;
    height: 80vh;     
    min-height: 600px; 
}









