

ul.ce-uploads {
	margin-bottom: 30px;
    list-style: none;
    margin-left: 0;
    padding-left: 0;
    position: relative;

	li {
		a {
			border-bottom: 1px solid #C4C4C4;
			display: block;


            padding: 10px 10px 10px 40px;


			font-size: 16px;
			line-height: 25px;
			text-decoration: none;
			color: #3D98D4;
			background-color: #ffffff;
			transition: color 0.3s ease-in-out, background-color 0.3s ease-in-out;

            background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="33.875" height="33.875" viewBox="0 0 33.875 33.875"><g transform="translate(0.938 0.938)"><path d="M7.452,32.935H3.106A2.153,2.153,0,0,1,.932,30.8V3.068A2.153,2.153,0,0,1,3.106.935H18.5a2.193,2.193,0,0,1,1.537.625l8.506,8.35a2.114,2.114,0,0,1,.636,1.509V18" transform="translate(-0.932 -0.935)" fill="none" stroke="%233d98d4" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.875"></path><path d="M25.308,10.31h-7.5a1.875,1.875,0,0,1-1.875-1.875V.935" transform="translate(2.942 -0.935)" fill="none" stroke="%233d98d4" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.875"></path><path d="M10.308,29.06V19.685" transform="translate(0.359 2.94)" fill="none" stroke="%233d98d4" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.875"></path><path d="M10.308,19.685h.942a2.813,2.813,0,0,1,0,5.625h-.937" transform="translate(0.558 2.94)" fill="none" stroke="%233d98d4" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.875"></path><path d="M17.808,29.06a3.75,3.75,0,0,0,3.75-3.75V23.435a3.75,3.75,0,0,0-3.75-3.75Z" transform="translate(1.75 2.94)" fill="none" stroke="%233d98d4" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.875"></path><path d="M25.308,29.06v-7.5a1.875,1.875,0,0,1,1.875-1.875h1.875" transform="translate(2.942 2.94)" fill="none" stroke="%233d98d4" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.875"></path><path d="M25.308,25.31H28.12" transform="translate(2.942 2.94)" fill="none" stroke="%233d98d4" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.875"></path></g></svg>');
            background-repeat: no-repeat;
            background-position: 0 10px;
            background-size: 23px;


            &:after{
                position: absolute;
                opacity: 0;
                right: 17px;
                content: '';
                margin-top: 5px;
                background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="29.624" viewBox="0 0 24 29.624"><g transform="translate(0.75 0.75)"><path class="hvicon" d="M15,.939v18.75" transform="translate(-3.75 -0.939)" fill="none" stroke="%233d98d4" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path class="hvicon" d="M9.377,14.064,15,19.689l5.625-5.625" transform="translate(-3.75 -0.939)" fill="none" stroke="%233d98d4" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="M19.69,5.625H22.5a3.75,3.75,0,0,1,3.75,3.75V25.313a3.75,3.75,0,0,1-3.75,3.75H7.5a3.75,3.75,0,0,1-3.75-3.75V9.375A3.75,3.75,0,0,1,7.5,5.625h2.812" transform="translate(-3.75 -0.939)" fill="none" stroke="%233d98d4" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path></g></svg>');
                width: 24px;
                height: 100%;
                background-size: contain;
                background-repeat: no-repeat;
            }

			&:hover {
				color: #12537E;
				background-color: #e4f1f9;
				svg {
					path {
						stroke: #12537E;
					}
				}
				.gallsvg {
					path {
						fill: #12537E;
					}
				}
				.hvicon {
					stroke-width: 2;
				}
			}
		}






	}
}
@media only screen and (min-width: 576px) {
	ul.ce-uploads {
		margin-bottom: 100px;
		li {
			a {
                min-height: 69px;
				padding: 17px 17px 17px 85px;
				font-size: 18px;
				line-height: 25px;
                background-position: 17px 18px;
                background-size: auto;


                &:after{
                    opacity: 1;

                }

			}

		}
	}
}
@media only screen and (min-width: 992px) {
	ul.ce-uploads {
		li {
			a {
				font-size: 20px;
				line-height: 38px;
			}
		}
	}
}


.cardholder{


	/*
	&:has(  + .cardholder)
	{
		positon: relative;

		&:after{
			content: '';
			display: block;
			width: 100%;
			height: 24px;
			background-image: url('data:image/svg+xml,<svg viewBox="-0.5 -0.5 24 24" xmlns="http://www.w3.org/2000/svg" id="Arrow-Down--Streamline-Ultimate.svg"><desc>Arrow Down Streamline Icon: https://streamlinehq.com</desc><path d="m11.5 0.71875 0 21.5625" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"></path><path d="M1.4375 12.21875 11.5 22.28125l10.0625 -10.0625" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"></path></svg>');
			background-position: center center;
			background-repeat: no-repeat;
			background-size: 24px;
			margin-top: -2px;
			margin-bottom: -16px;
		}


	}
	*/

	&:has(.card:hover){

		
	}


	.card{

		position: relative;
		border: 1px solid #12537E;
		border-radius: 20px;
		cursor: pointer;
		transition: all .3s ease;
		will-change: transform, box-shadow;



		

		&:after{
			content: '';
			position: absolute;
			bottom: 32px;
			right: 32px;
			width: 40px;
			height: 14px;
			background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="42.128" height="16.204" viewBox="0 0 42.128 16.204"><g id="streamline-icon-keyboard-arrow-right_30x30" data-name="streamline-icon-keyboard-arrow-right@30x30" transform="translate(1 -9.52)"><path id="Path_95" data-name="Path 95" d="M41.065,15.621H.938" transform="translate(-0.938 2)" fill="none" stroke="%2312537e" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/><path id="Path_96" data-name="Path 96" d="M24.375,24.31l6.688-6.688-6.688-6.688" transform="translate(9.065)" fill="none" stroke="%2312537e" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/></g></svg>');
			background-repeat: no-repeat;
			background-size: cover;
			opacity: .3;
		}

		&:hover{
			background-color: #f2f8fc;
			transform: scale(1.02);
			box-shadow: 0px 0px 5px 0px rgba(0,0,0,0.3);
			will-change: transform, box-shadow;


			&:after{
				opacity: 1;

			}

		}

		text-decoration: none;
		color: #3D98D4 !important;
		text-align: center;

		p{
			color: #3D98D4 !important;
			b, strong{
				font-weight: 500;

			}
			&:last-child{
				margin-bottom: 0 !important;
			}

		}

		.counter{
			width: 36px;
			height: 36px;
			display: flex;
			justify-content: center;
			align-items: center;
			background: #12537E;
			border-radius: 50%;
			color: #fff;
			position: absolute;
			top: 32px;
			left: 32px;
		}




	}

}







/* forms 2024 */

header:has(+ form),
div:has(+ form) {




	@media only screen and (min-width: 992px){

		margin-bottom: 96px;

		h1{
			font-size: 48px;
			margin-bottom: 48px;
		
			
		}

	}

	@media only screen and (max-width: 576px){
		h1{
			br{
				display: none;

			}

		}
	}	

}

/* Progress Bar */
.progress-title {
	display: block;
	font-size: 24px;
	color: #12537E;
	font-weight: 500;
}

.form-progress {
	position: relative;
	height: 32px;
	background-color: #e0e0e0;
	border-radius: 16px;
	overflow: hidden;
	margin-top: 20px;
	margin-bottom: 20px;
}

.form-progress .form-progress-bar {
	position: absolute;
	height: 100%;
	background-color: #12537E;
	border-radius: 16px;
	color: #fff;
	font-weight: 500;
	text-align: center;
}

.form-progress .form-progress-bar .progress-value {
	font-weight: 500;
	color: #fff;
	text-align: center;
	display: flex;
	justify-content: center;
	line-height: 32px;
	min-width: 100px;
}

.progress-motivation p {
	color: #646464;
	font-size: 16px;
}

@media only screen and (min-width: 576px) {
	.progress-motivation p {
		font-size: 18px;
	}
}

@media only screen and (min-width: 992px) {
	.progress-motivation p {
		font-size: 20px;
	}
}

form {
	font-size: 18px;
}

@media only screen and (max-width: 992px) {
	form {
		margin-bottom: 60px;
	}
}

form a {
	color: #3D98D4;
	text-decoration: none;
	transition: color 0.3s ease-in-out;
}

form a:hover {
	color: #222222;
}

form > h2 {
	margin-top: 0;
	margin-bottom: 48px;
}

	fieldset{


		legend{
			color:#12537E;
			font-weight: 500;

			font-size: 24px;
			margin-bottom: 21px;		
			
			@media only screen and (min-width: 992px) {
				font-size: 36px;
				margin-bottom: 32px;
			}



		}
		fieldset{
			legend{
				font-size: 24px;
				color:#12537E;
				font-weight: 500;

				font-size: 20px;
				margin-bottom: 12px;		
				
				@media only screen and (min-width: 992px) {
					font-size: 24px;
					margin-bottom: 21px;
				}



			}

		}
	}
	form .row{
		@media only screen and (min-width: 992px){
			margin-bottom: 48px;
		}

	}

	.form-group{



		margin-bottom: 20px;

		label{
			display: block;
			margin-bottom: 10px;
			font-weight: 500;
			span{
				font-weight: normal;
				storng, b{
					font-weight: 500 !important;
				}
			}
		}

		.form-control{
			border: 1px solid #12537E;
			border-radius: 5px;
			font-size: 18px;
			height: 50px;
			transition: all .3s ease;

			&:focus{
				border-color: #3D98D4;
				box-shadow: 0px 0px 10px rgba(18,83,126,0.5);
			}

			&:is(textarea){
				height: 150px;
			}
		}

		.form-check-input {
			background-color: #fff;
			border-color: #707070;
			&:checked {
				background-color: #12537E;
				border-color: #12537E;
				&[type=radio]{
					/* background-image: none */

				}

			}






		}


		input[type="file"] {
			opacity: 1 !important;
			height: auto !important;
			z-index: 1;
		}

		input, select, textarea{

			&:user-valid{
				border-color: #28a745;
				background-color: #28a74515;

			}
			&:user-invalid{
				border-color: #dc3545;
				background-color: #dc354515;

			}

		}


		.error.form-text{
			color: #dc3545;
			background: #dc354515;
			border-radius: 5px;
			padding: 15px;
			
		}


		&.has-error1{
			background: #dc354515;
			border-radius: 5px;
			padding: 15px;

		}
	}


	.btn{
		

		&.btn-primary {
			width: auto !important;
			background-color: #12537E;
			color: #ffffff;
			border-color: #12537E;
			font-size: 20px;
			line-height: 20px;
			height: 50px;
			padding-left: 50px;
			padding-right: 50px;
			border-radius: 5px !important;
			margin-right: 15px;
			transition: background-color .3s ease-in-out, color .3s ease-in-out;
		
			@media only screen and (min-width: 768px) {
				margin-top: 40px;
			}
		
			&:hover {
				border-color: #12537E;
				background-color: #ffffff;
				color: #12537E;
			}
			
			&:focus {
				outline: none;
				border: 1px solid #12537E;
			}
		
		}

		&.btn-cancel {
			width: auto !important;
			background-color: #f2f8fc;
			border-color: #12537E;
			font-size: 20px;
			line-height: 20px;
			height: 50px;
			padding-left: 50px;
			padding-right: 50px;
			border-radius: 5px !important;
			margin-right: 15px;
			transition: background-color .3s ease-in-out, color .3s ease-in-out;
		
			@media only screen and (min-width: 768px) {
				margin-top: 40px;
			}
		
			&:hover {
				border-color: #12537E;
				background-color: #ffffff;
				color: #12537E;
			}
			
			&:focus {
				outline: none;
				border: 1px solid #12537E;
			}
		
		}







	}



	/*  darstellung select */
	select.form-control {
		background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="10" height="7" viewBox="0 0 10 7"><path id="Polygon_3" data-name="Polygon 3" d="M5,0l5,7H0Z" transform="translate(10 7) rotate(180)" fill="%2312537e"/></svg>');
		background-repeat: no-repeat;
		background-position: right 14px top 50%;
		background-size: 10px;
	}

	/*  layout-anpassung für 2-spaltiges layout bei radios mit mehreren zeilen (siehe js)  */
	@media only screen and (min-width: 992px) {
		.form-group:has( label span b ) {
			display: flex;
			flex-wrap: wrap;
			justify-content: space-between;

			.form-check {
				width: calc(50% - 10px); 
				margin-bottom: 20px;
			}
		}
	}


	/* bootstrap layout-anpassung für 5-spaltiges layout */
	@media only screen and (min-width: 1200px) {
		.row:has( .col-6.col-sm-5.col-md-4.col-lg-3.col-xl-2.col-xxl-1){
			.col-6.col-sm-5.col-md-4.col-lg-3.col-xl-2.col-xxl-1{
				display: block;
				width: 20%;	
			}
	
		}
	}

	/* spez. ausgabe ol innerhalb form */

	ol{
		margin-bottom: 48px;
		list-style: none;
		list-style-type: none;

		margin-left: 0;
		margin-right: 0;
		padding-left: 0;
		padding-right: 0;
		
		li{
			counter-increment: listnumber;
			display: block;
			margin: 0;
			padding: 20px 0 20px 65px;

			&:before{
				position: absolute;

				content:  counter(listnumber);
				border-radius: 50%;
				
				height: 32px;
				width: 32px;
				background-color: #12537E;
				
				font-size: 20px;
				color: #ffffff;
				font-weight: normal;
				line-height: 32px;
				text-align: center;
				


				margin-left: -48px;

			}

			border-bottom: 1px solid #C4C4C4;
			&:first-of-type{
				border-top: 1px solid #C4C4C4;
			}

		}
	}
	


	.btn-group{


		@media only screen and (max-width: 576px){
			display: block;
			width: 100%;
			.btn{
				width: 100% !important;
				margin-bottom: 15px;

			}
		}
	
	}


}


.icon-container{
	cursor: pointer;
	margin-top: -5px;
	margin-left: 12px;
	position: absolute;
	z-index: 50 !important;
	


}
.tooltip-text{

	position: absolute;
	visibility: hidden;


	background: #12537E;
	border-radius: 5px;
	padding: 10px 15px;
	color: white;
	font-size: 14px;
	font-weight: normal;
	z-index: 10;
	width: 350px; 
	max-width: 350px;
	word-wrap: break-word;
	white-space: normal;
	display: inline-block;
	hyphens: none;
	bottom: 100%; /* Position above the icon-container */
	left: 50%;
	transform: translateX(-50%) translateY(-10px); /* Center horizontally and adjust vertically */
	box-shadow: 0px 0px 10px rgba(0,0,0,0.5);
	
	a{
		color: white;
		text-decoration: underline !important;
		transition: all .3s ease;
		&:hover{
			color: white !important;
			opacity: 0.8;
		}
	}

	.tooltip-arrow {
		position: absolute;
		width: 16px;
		height: 16px;
		&:after {
			content: '';
			position: absolute;
			width: 16px;
			height: 16px;
			background: #12537E;
			transform: rotate(45deg); /* Rotates the element by 45 degrees */
			top: 50%;
			left: 50%;
			transform: translate(-50%, -50%) rotate(45deg); /* Centers the element and rotates it */
			z-index: -1; /* Ensures it is behind the icon-container */
		}
	}







}

/* Tooltip on the LEFT of the trigger */
.tooltip-text[data-popper-placement="left"] .tooltip-arrow::after {
    top: 50%;
    right: -324px !important;
    left: unset;
    transform: translateY(-50%) rotate(45deg);
}






	tbody{
		border-bottom-width: 0 !important;
	}



label[for=anmeldung_definitiv-822-textarea-2]{
	display: none !important;
}

/* === Search Page UI/UX Refinement === */
.search-page-container {
    max-width: 1000px;
    margin: 0 auto;
}

.search-form-card {
    border-radius: 16px !important;
    background-color: #f7fafc !important;
    border: 1px solid #e2e8f0 !important;
    padding: 24px 30px !important;
}

.search-input-wrapper input {
    border: 1px solid #cbd5e1 !important;
    font-family: inherit;
}

.search-input-wrapper input:focus {
    border-color: #3D98D4 !important;
    box-shadow: 0 0 0 4px rgba(61, 152, 212, 0.15) !important;
}

.search-result-item {
    border-radius: 12px !important;
    border: 1px solid #e2e8f0 !important;
    background-color: #ffffff !important;
    padding: 24px !important;
    margin-bottom: 20px !important;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05) !important;
    transition: all 0.25s ease-in-out !important;
}

.search-result-item:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.05), 0 4px 6px -2px rgba(0, 0, 0, 0.05) !important;
    border-color: #cbd5e1 !important;
    background-color: #fcfdfe !important;
}

.search-result-title-text a {
    color: #12537E !important;
    font-size: 20px;
    font-weight: 500 !important;
    text-decoration: none !important;
    transition: color 0.2s ease-in-out;
}

.search-result-title-text a:hover {
    color: #3D98D4 !important;
    text-decoration: underline !important;
}

.search-result-description {
    font-size: 15px !important;
    line-height: 1.6 !important;
    color: #475569 !important;
}

.search-result-meta {
    font-size: 16px !important;
    color: #64748b !important;
}

.search-result-meta .meta-item {
    background-color: #f1f5f9;
    padding: 8px 16px;
    border-radius: 8px;
    font-weight: 400 !important;
}

.search-result-meta .meta-item svg {
    color: #64748b;
    position: relative;
    top: -1px;
    width: 18px !important;
    height: 18px !important;
}

.search-path-breadcrumb a {
    color: #64748b !important;
    text-decoration: none !important;
}

.search-path-breadcrumb a:hover {
    color: #3D98D4 !important;
    text-decoration: underline !important;
}

.tx-indexedsearch-browsebox:has(+ .search-result-item) {
    text-align: left !important;
}
.tx-indexedsearch-browsebox:has(+ .search-result-item) .tx-indexedsearch-browsebox {
    display: none !important;
}

.search-pagination .tx-indexedsearch-browsebox {
    margin-top: 30px;
}

.tx-indexedsearch-browsebox ul {
    padding-left: 0;
    display: flex;
    flex-wrap: wrap;
    list-style: none;
    gap: 6px;
    justify-content: start;
}

.tx-indexedsearch-browsebox li a,
.tx-indexedsearch-browsebox li span {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    height: 50px !important;
    font-size: 20px !important;
    line-height: 20px !important;
    border-radius: 5px !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
    border: 1px solid #cbd5e1 !important;
    color: #12537E !important;
    font-weight: 400 !important;
    transition: all 0.2s ease;
    background-color: #ffffff;
    text-decoration: none !important;
}

.tx-indexedsearch-browsebox li a:hover {
    background-color: #12537E !important;
    color: #ffffff !important;
    border-color: #12537E !important;
}

/* Active page button: dunkelblau (#12537E) */
.tx-indexedsearch-browsebox li strong a,
.tx-indexedsearch-browsebox li a[aria-current="page"] {
    background-color: #12537E !important;
    border-color: #12537E !important;
    color: #ffffff !important;
    font-weight: 400 !important;
}
.tx-indexedsearch-browsebox li strong a:hover,
.tx-indexedsearch-browsebox li a[aria-current="page"]:hover {
    background: black !important;
}

.tx-indexedsearch-browsebox li strong {
    font-weight: 400 !important;
}

/* Prev (Zurück) and Next (Weiter) buttons: hellblau (#3D98D4) */
.tx-indexedsearch-browsebox li.tx-indexedsearch-browselist-prev a,
.tx-indexedsearch-browsebox li.tx-indexedsearch-browselist-next a {
    background-color: #3D98D4 !important;
    border-color: #3D98D4 !important;
    color: #ffffff !important;
    font-weight: 400 !important;
}

.tx-indexedsearch-browsebox li.tx-indexedsearch-browselist-prev a:hover,
.tx-indexedsearch-browsebox li.tx-indexedsearch-browselist-next a:hover {
    background-color: #12537E !important;
    border-color: #12537E !important;
    color: #ffffff !important;
}

/* Enforce font-weight max 500 globally in search page */
.search-page-container h2,
.search-page-container h3,
.search-page-container h4,
.search-page-container h5,
.search-page-container a,
.search-page-container span,
.search-page-container legend,
.search-page-container label,
.search-page-container button,
.search-page-container input,
.search-page-container select,
.search-page-container .badge {
    font-weight: 500 !important;
}

/* Specific override for meta items and icons inside pills to have font-weight 400 */
.search-page-container .search-result-meta .meta-item,
.search-page-container .search-result-meta .meta-item span,
.search-page-container .search-result-meta .meta-item a {
    font-weight: 400 !important;
}

/* Button alignment and search toggle links */
#tx_indexedsearch #tx-indexedsearch-searchbox-button-submit,
#tx-indexedsearch-searchbox-button-submit {
    margin-top: 0 !important;
    width: 100% !important;
    height: 50px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    font-size: 20px !important;
}

#tx-indexedsearch-searchbox-sword {
    height: 50px !important;
    border: 1px solid #12537E !important;
    border-radius: 5px !important;
    font-size: 18px !important;
}

#tx-indexedsearch-searchbox-sword:focus {
    border-color: #3D98D4 !important;
    box-shadow: 0px 0px 10px rgba(18,83,126,0.5) !important;
}

.search-toggle-link {
    color: #12537E !important;
    font-size: 16px !important;
    font-weight: 500 !important;
    transition: color 0.2s ease !important;
}

.search-toggle-link:hover {
    color: #3D98D4 !important;
}

.search-toggle-link svg {
    color: #12537E !important;
    stroke: #12537E !important;
    transition: stroke 0.2s ease, color 0.2s ease !important;
}

.search-toggle-link:hover svg {
    color: #3D98D4 !important;
    stroke: #3D98D4 !important;
}

/* Title alignment and formatting override */
.search-result-title,
.search-result-title a,
.search-result-title-text,
.search-result-title-text a,
.tx-indexedsearch-title,
.tx-indexedsearch-title a {
    text-align: left !important;
    display: inline-block !important;
    color: #12537E !important;
    text-decoration: none !important;
    font-weight: 500 !important;
}

.search-result-title a:hover,
.search-result-title-text a:hover,
.tx-indexedsearch-title a:hover {
    color: #3D98D4 !important;
    text-decoration: underline !important;
}

/* Icons inside pills size */
.search-result-meta .meta-item svg {
    width: 22px !important;
    height: 22px !important;
    margin-right: 8px !important;
}

/* More spacing after h1 on search page */
.search-page-container h1, 
.coonts h1 {
    margin-bottom: 40px !important;
}

/* Custom styling for the search term badge in the summary alert */
.search-page-container .search-summary-text .badge {
    background-color: #3D98D4 !important;
    color: #ffffff !important;
    font-weight: 400 !important;
    font-size: 15px !important;
    padding: 6px 12px !important;
    border-radius: 6px !important;
}

/* Fix search box padding symmetry and form margin */
.search-form-card {
    padding: 30px !important;
}

.search-form-card form,
.search-form-card .search-form {
    margin: 0 !important;
    padding: 0 !important;
}

/* Style the core search term text to look like a highlighted badge/pill */
.tx-indexedsearch-info-sword-word,
.search-page-container .tx-indexedsearch-info-sword-word {
    background-color: #3D98D4 !important;
    color: #ffffff !important;
    font-weight: 500 !important;
    padding: 4px 12px !important;
    border-radius: 6px !important;
    display: inline-block !important;
    margin-left: 6px !important;
}

.tx-indexedsearch-info-sword {
    margin-bottom: 25px !important;
    font-size: 16px !important;
    color: #475569 !important;
}

/* Force pagination text and buttons onto separate lines and center them */
.tx-indexedsearch-browsebox {
    margin-top: 35px !important;
    margin-bottom: 35px !important;
    text-align: center !important;
    display: block !important;
}

.tx-indexedsearch-browsebox p {
    display: block !important;
    width: 100% !important;
    margin-bottom: 15px !important;
    text-align: center !important;
    float: none !important;
}

.tx-indexedsearch-browsebox ul {
    display: flex !important;
    list-style-type: none !important;
    padding-left: 0 !important;
    margin: 15px auto 0 auto !important;
    gap: 6px !important;
    justify-content: start !important;
}

.tx-indexedsearch-browsebox li {
    display: inline-block !important;
    margin: 0 3px !important;
}

/* Force vertical center alignment for row items inside search form card */
@media (min-width: 768px) {
    .search-form-card .row {
        align-items: center !important;
    }
    .search-form-card .row > div {
        align-self: center !important;
        margin-top: 0 !important;
        margin-bottom: 0 !important;
        padding-top: 0 !important;
        padding-bottom: 0 !important;
    }
}

/* Adjust result description text color and size */
.search-result-description {
    font-size: 17px !important;
    color: #222222 !important;
}

/* Custom Footer Styling */
.footer_btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background-color: #3D98D4 !important; /* light blue */
    color: #ffffff !important;
    height: 50px !important;
    font-size: 20px !important;
    line-height: 20px !important;
    font-weight: 400 !important;
    padding-left: 24px !important;
    padding-right: 24px !important;
    border-radius: 5px !important;
    text-decoration: none !important;
    transition: all 0.3s ease-in-out !important;
    border: none !important;
    margin-top: 10px !important;
    margin-bottom: 15px !important;
}

.footer_btn:hover {
    background-color: #ffffff !important;
    color: #12537E !important;
}

.footer_social a {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: auto !important;
    height: auto !important;
    background-color: transparent !important;
    color: #ffffff !important;
    transition: color 0.2s ease-in-out !important;
    padding: 0 !important;
}

.footer_social a:hover {
    background-color: transparent !important;
    color: #3D98D4 !important;
}

.footer_social a svg {
    width: 28.8px !important;
    height: 28.8px !important;
    fill: currentColor !important;
}

/* Disable the hover line-under effect for buttons and social icons */
.footer_btn:after,
.footer_social a:after {
    content: none !important;
    display: none !important;
}

.footer_nav_list li a {
    font-size: 16px !important;
    color: #ffffff !important;
    text-decoration: none !important;
}

@media only screen and (min-width: 992px) {
    .footer_nav_list li a {
        font-size: 20px !important;
    }
}

/* Footer bottom inline layout */
.footer .footer_bottom .footer_bottom_content {
    font-size: 16px !important;
    color: rgba(255, 255, 255, 0.7) !important;
    font-weight: 300 !important;
}

.footer .footer_bottom .footer_bottom_content .copyright {
    margin-top: 0 !important;
    padding-top: 0 !important;
    font-size: 16px !important;
    color: rgba(255, 255, 255, 0.7) !important;
    font-weight: 300 !important;
    display: block !important;
    padding-right: 0;
    width: 100%;
}
@media only screen and (min-width: 576px) {
	.footer .footer_bottom .footer_bottom_content .copyright {
		display: inline-block;
		padding-right: 1.5rem;
		width: auto !important;
	}
}


.footer .footer_bottom .footer_bottom_content a {
    font-size: 16px !important;
    color: rgba(255, 255, 255, 0.7) !important;
    font-weight: 300 !important;
    text-decoration: none !important;
    display: inline-block !important;
    line-height: 1.5 !important;
    margin-right: 24px !important;
    margin-top: 0 !important;
    padding-top: 0 !important;
    padding-right: 0 !important;
}

.footer .footer_bottom .footer_bottom_content a:after {
    content: none !important;
    display: none !important;
}

.footer .footer_bottom .footer_bottom_content a:hover {
    color: #ffffff !important;
}

/* Header Top Meta-Navigation Bar */
.header_meta_bar {
    background-color: #3D98D4 !important; /* Lighter blue */
    height: 2.5rem !important; /* Exactly 2.5rem height */
    align-items: center !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    width: 100% !important;
}

.header_meta_nav {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    list-style: none !important;
    padding-left: 0 !important;
    margin: 0 !important;
    gap: 2.5rem !important; /* 2.5rem spacing between menu items */
}

.header_meta_nav li {
    margin-left: 0 !important;
    padding: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
}

.header_meta_nav li a {
    font-size: 16px !important;
    font-weight: 300 !important;
    color: rgba(255, 255, 255, 0.8) !important; /* 80% white for clear contrast on light blue */
    text-decoration: none !important;
    transition: color 0.2s ease-in-out, text-shadow 0.2s ease-in-out !important;
    display: inline-block !important;
    line-height: 1.5 !important;
}

.header_meta_nav li a:hover {
    color: #ffffff !important;
    text-shadow: 0 0 1px #ffffff !important; /* Soft glow/bolding effect without layout shift */
}

/* Disable hover underlines for top meta bar links */
.header_meta_nav li a:after {
    content: none !important;
    display: none !important;
}

/* Replace header shadow with a 1px light blue bottom border and white background */
.header {
    background-color: #fff !important;
    border-bottom: 1px solid #e0e0e0 !important;
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.1) !important;
}

/* Only the header main navigation/logo container gets the vertical padding, not the top meta bar wrapper */
.header > .header-container {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

@media only screen and (min-width: 992px) {
	.header > .header-container {
		padding-top: 1.5rem !important;
		padding-bottom: 1.5rem !important;
	}
}

/* Ensure the logo and its surrounding A tag have no margins or paddings */
.header_logo {
    padding: 0 !important;
    margin: 0 !important;
}

.header_logo img,
.header_logo svg {
    padding: 0 !important;
    margin: 0 !important;
}

@media only screen and (min-width: 992px) {
    .header_nav ul {
        flex-direction: row !important;
        align-items: center !important;
    }
    
    .header_nav ul li a {
        padding-top: 12px !important;
        padding-bottom: 12px !important;
        color: #000000 !important; /* Normal main nav links color: black */
    }
    
    .header_nav ul li a:hover {
        color: #3D98D4 !important; /* Hover state color: medium blue */
        font-weight: 400 !important; /* No bold on rollover for normal items */
    }
    
    .header .header_nav_active a,
    .header .header_nav_active a:hover {
        color: #3D98D4 !important; /* Active state color: medium blue */
        font-weight: 500 !important; /* Bold only on active state, stays bold on hover */
    }
    
    /* Underlines (height 3px, word width, rounded top corners, touching header bottom line exactly) */
    .header_nav ul li a:after {
        background: #3D98D4 !important; /* Underline color: medium blue */
        bottom: -1.5rem !important; /* Touch header bottom border exactly (matches header padding-bottom) */
        height: 3px !important;
        width: 0 !important;
        left: 50% !important;
        transform: translateX(-50%) !important;
        transition: width 0.3s ease-in-out !important;
        border-top-left-radius: 3px !important;
        border-top-right-radius: 3px !important;
        border-bottom-left-radius: 0 !important;
        border-bottom-right-radius: 0 !important;
    }
    
    .header_nav ul li a:hover:after,
    .header .header_nav_active a:after {
        background: #3D98D4 !important; /* Active underline color: medium blue */
        bottom: -1.5rem !important;
        height: 3px !important;
        width: 100% !important;
        left: 50% !important;
        transform: translateX(-50%) !important;
    }
}

/* Offset the entire content container from the fixed header */
main {
    margin-top: 175px !important;
}

@media only screen and (min-width: 992px) {
    main {
        margin-top: 240px !important;
    }
}

@media only screen and (min-width: 1200px) {
    main {
        margin-top: 260px !important;
    }
}

/* Mobile Navigation Layout Customizations */
@media only screen and (max-width: 991px) {
    /* Align container, container-fluid, and header-container to 30px padding on mobile */
    .container,
    .container-fluid,
    .header-container {
        padding-left: 30px !important;
        padding-right: 30px !important;
    }

    /* Right-align the logo on mobile and override parent width constraints */
    .header_logo {
        display: flex !important;
        justify-content: flex-end !important;
        margin-left: auto !important;
        width: auto !important;
        flex-grow: 0 !important;
    }

    .header_bloko {
        position: absolute !important;
        top: 100% !important;
        left: 0 !important;
        width: 100% !important;
        height: calc(100vh - 100%) !important;
        min-height: calc(100vh - 100%) !important;
        overflow-y: auto !important;
        z-index: 99999 !important;
        padding-top: 30px !important;
        padding-bottom: 30px !important;
        padding-left: 30px !important;
        padding-right: 30px !important;
        background-color: #ffffff !important;
    }
    
    .header_nav ul {
        display: flex !important;
        flex-direction: column !important;
    }
    
    .header_nav ul li {
        border-bottom: none !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        margin-bottom: 20px !important;
        background-color: transparent !important;
        width: 100% !important;
    }
    
    .header_nav ul li a {
        font-size: 24px !important;
        color: #1E293B !important; /* Slate color */
        font-weight: 400 !important;
        padding-top: 0 !important;
        padding-bottom: 0 !important;
        display: inline-block !important;
        transition: color 0.2s ease !important;
    }
    
    .header_nav ul li a:hover {
        color: #3D98D4 !important;
    }
    
    /* Active main mobile menu item (vertical blue line on the left) */
    .header_nav ul li.header_nav_active {
        border-left: 3px solid #3D98D4 !important;
        padding-left: 15px !important;
        background-color: transparent !important;
    }
    
    .header_nav ul li.header_nav_active a {
        color: #3D98D4 !important;
        font-weight: 500 !important;
    }
    

    
    .mobile_search svg {
        color: #94A3B8 !important;
    }
    
    /* Meta-Navigation block */
    .mobile_meta_nav {
        border-top: 1px solid #F1F5F9 !important;
        padding-top: 25px !important;
        margin-top: 10px !important;
        width: 100% !important;
    }
    
    .mobile_meta_nav ul li {
        margin-bottom: 15px !important;
    }
    
    .mobile_meta_nav ul li a {
        font-size: 18px !important;
        color: #64748B !important; /* Soft grey/blue */
        font-weight: 400 !important;
        text-decoration: none !important;
        display: block !important;
    }
    
    /* CTA button */
    .mobile_cta_btn {
        margin-top: 30px !important;
        width: 100% !important;
    }
    
    .mobile_cta_btn .btn-primary {
        background-color: #3D98D4 !important;
        border-color: #3D98D4 !important;
        font-size: 20px !important;
        font-weight: 500 !important;
        height: 50px !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        border-radius: 5px !important;
        width: 100% !important;
        color: #ffffff !important;
        padding: 0 !important;
        transition: background-color 0.2s ease, border-color 0.2s ease !important;
    }

    .mobile_cta_btn .btn-primary:hover {
        background-color: #12537E !important;
        border-color: #12537E !important;
        color: #ffffff !important;
    }
}

/* Spacing from page title h1 to jumpernav (desktop >= 992px) */
@media only screen and (min-width: 992px) {
    .jumpernav {
        margin-top: 35px !important;
        /* top: 275px !important;  Adjusted sticky offset to match */
    }
}

@media only screen and (min-width: 992px) {
    .jumpernav {
        top: 263px !important;
    }
}

/* Desktop Search Field Animation & Right-Alignment */
/* Global focus reset to completely remove visual focus outlines on input elements */
input:focus,
textarea:focus,
select:focus,
button:focus {
    outline: none !important;
    outline: 0 !important;
    box-shadow: none !important;
}

/* Desktop Search Field (placed in logo column, expands to the left) */


/* Adjust Logo height to match the button height (50px) on all screens, and allow scaling on small screens */
.header_logo img,
.header_logo svg {
    height: 40px !important;
    max-height: 40px !important;
    width: auto !important;
    max-width: 100% !important;
    display: block !important;
}

@media only screen and (min-width: 992px) {
	.header_logo img,
	.header_logo svg {
		height: 50px !important;
		max-height: 50px !important;
	}
}


.header_logo {
    min-width: 0 !important;
}

/* Desktop Anmeldung CTA Button */
.header_desktop_cta {
    background-color: #3D98D4 !important;
    border-color: #3D98D4 !important;
    color: #ffffff !important;
    font-size: 20px !important; /* aligned to other standard CTA buttons (20px)! */
    font-weight: 400 !important;
    height: 50px !important; /* aligned to search box and logo height! */
    padding: 0 25px !important;
    border-radius: 5px !important; /* border-radius 5px like standard buttons */
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-decoration: none !important;
    transition: background-color 0.2s ease, border-color 0.2s ease !important;
    white-space: nowrap !important;
}

.header_desktop_cta:hover {
    background-color: #12537E !important; /* dark blue hover */
    border-color: #12537E !important;
    color: #ffffff !important;
}

/* Prevent header columns from wrapping on desktop and adjust spacing for smaller desktops */
@media only screen and (min-width: 992px) {
    .header .row {
        flex-wrap: nowrap !important;
    }
}



/* Restrict hero video section to container layout styling, aspect ratio 16:9, and no border-radius */
.hero-video-section {
    border-radius: 0 !important;
    overflow: hidden !important;
    height: auto !important;
    min-height: 0 !important;
    aspect-ratio: 16 / 9 !important;
}

/* Ensure background video matches parent container size exactly and fits without distortion */
.hero-video-section .hero-video-bg {
    width: 100% !important;
    height: 100% !important;
    top: 0 !important;
    left: 0 !important;
    transform: none !important;
    object-fit: cover !important;
}

/* Align content inside the hero video section with the CTA element */
.hero-video-section .hero-video-row {
    margin-left: 0 !important;
    margin-right: 0 !important;
}

.hero-video-section .hero-video-content {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

.hero-video-section .hero-video-container {
    padding: 40px !important;
    width: 100% !important;
}



.hero-video-section .hero-video-bubble {
    right: 60px !important;
    width: 200px !important;
    height: 200px !important;
}

/* Remove focus outlines on clicked images, linked images, and their wrappers */
a:focus img,
a:active img,
img:focus,
img:active,
figure:focus,
.swiper-slide:focus img {
    outline: none !important;
    outline: 0 !important;
    box-shadow: none !important;
}

/* Force header background to white when mobile menu is active */
.header:has(.hamburger.is-active) {
    background-color: #ffffff !important;
}

/* Taller, more spaced hamburger icon on mobile */
.hamburger-box {
    height: 24px !important;
}
.hamburger-inner::before {
    top: -10px !important;
}
.hamburger-inner::after {
    bottom: -10px !important;
}
/* Resets for the active (X) state of the taller hamburger */
.hamburger.is-active .hamburger-inner::before {
    top: 0 !important;
}
.hamburger.is-active .hamburger-inner::after {
    bottom: 0 !important;
}

/* Unify H2 headings in USP-block, CTA-block, and Video-Hero */
.usp-block-box h2,
.cta-section .cta-box .cta-title,
.hero-video-section .hero-video-title {
    font-size: 32px !important;
    line-height: 40px !important;
    font-weight: 500 !important;
    margin-top: 0 !important;
    margin-bottom: 10px !important;
}

@media (max-width: 576px) {
    .usp-block-box h2,
    .cta-section .cta-box .cta-title,
    .hero-video-section .hero-video-title {
        font-size: 26px !important;
        line-height: 32px !important;
    }
}

/* Unify buttons height and font-size */
.btn-cta,
.footer_btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    height: 50px !important;
    font-size: 18px !important;
    line-height: 1 !important;
    font-weight: 400 !important;
    padding-left: 24px !important;
    padding-right: 24px !important;
    box-sizing: border-box !important;
    border-radius: 5px !important;
    transition: all 0.3s ease-in-out !important;
}

/* Footer menu rollover spacing and thickness for all text links */
.footer a:after {
    height: 2px !important;
    bottom: 0px !important;
}

/* Ensure bottom footer menu links show the underline too */
.footer .footer_bottom .footer_bottom_content a:after {
    content: "" !important;
    display: block !important;
}

/* Disable underline rollover for non-text links (logo, buttons, social icons) */
.footer_logo:after,
.footer_btn:after,
.footer_social a:after,
.footer_bottom_social a:after {
    content: none !important;
    display: none !important;
}

.hero-video-section .hero-video-bubble .bubble-inner {
    font-size: 23px !important;
    line-height: 28px !important;
    transform: translateY(10px) !important;
}

/* Prevent text and icon overlap across all breakpoints for all accordions */
.acc_block_header {
    position: relative !important;
}

.acc_block_header h3 {
    position: relative !important;
    padding-right: 3.5rem !important;
    font-weight: 500 !important;
}

.acc_block_header h3 span {
    position: absolute !important;
    right: 1rem !important;
    top: 50% !important;
    margin-right: 0 !important;
    float: none !important;
    transform: translateY(-50%) rotate(0deg) !important;
    transition: transform 0.3s ease-in-out !important;
}

.acc_block.active .acc_block_header h3 span {
    transform: translateY(-50%) rotate(90deg) !important;
}

.acc_block.active .acc_block_header h3 span svg line:first-of-type {
    opacity: 0 !important;
}

.teaser-accordion .acc_block_header h3 {
    padding-top: 14px !important;
    padding-bottom: 14px !important;
    font-size: 1rem !important;
    line-height: 1.5 !important;
}

/* Accordion body text inside Teaser element matching compact title style */
.teaser-accordion .acc_block_content_inner,
.teaser-accordion .acc_block_content_inner p {
    font-size: 0.9375rem !important;
    line-height: 1.5 !important;
}

/* Accordion margin adjustments */
.acc {
    margin-bottom: 35px !important;
}

.accordeon-element {
    margin-bottom: 90px !important;
}

/* Testimonials Section matching CTA-Element padding and title */
.testimonials-section {
    margin-bottom: 60px !important;
}

.testimonials-section .testimonials-box {
    border-radius: 6px;
    padding: 40px;
    display: flex;
    flex-direction: column;
}
@media (min-width: 768px) {
    .testimonials-section .testimonials-box {
        padding: 50px 60px;
    }
}

.testimonials-section .testimonials-box.has-indicators {
    padding-bottom: 25px !important;
}

.testimonials-section .testimonials-box.bg-dunkelblau {
    background-color: #12537E;
    color: #ffffff;
}
.testimonials-section .testimonials-box.bg-hellblau {
    background-color: #F2F8FC;
    color: #12537E;
}
.testimonials-section .testimonials-box.bg-weiss,
.testimonials-section .testimonials-box.bg-none,
.testimonials-box.bg-weiss,
.testimonials-box.bg-none {
    background-color: transparent !important;
    border: none !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

.testimonials-section .testimonials-header > *:first-child,
.testimonials-section .testimonials-title {
    margin-top: 0 !important;
}

.testimonials-section .testimonials-title {
    font-size: 32px;
    line-height: 40px;
    margin-bottom: 20px;
    color: inherit;
}

.testimonials-section .testimonials-text {
    margin-bottom: 25px;
    font-size: 1rem;
    line-height: 1.5;
}
.testimonials-section .testimonials-box.bg-dunkelblau .testimonials-text,
.testimonials-section .testimonials-box.bg-dunkelblau .testimonials-text p,
.testimonials-section .testimonials-box.bg-dunkelblau .testimonials-text * {
    color: #ffffff !important;
}
.testimonials-section .testimonials-box.bg-hellblau .testimonials-text,
.testimonials-section .testimonials-box.bg-weiss .testimonials-text,
.testimonials-section .testimonials-box.bg-none .testimonials-text {
    color: #4a5568;
}

/* Testimonial Cards: No border, shadow instead */
.testimonial-card {
    border-radius: 6px !important;
    border: none !important;
    padding: 1.5rem !important; /* immer p-4 */
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    height: 100%;
}

.testimonials-box.bg-dunkelblau .testimonial-card {
    background-color: rgba(255, 255, 255, 0.15) !important;
    backdrop-filter: blur(4px);
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.35) !important;
    color: #ffffff !important;
}
.testimonials-box.bg-hellblau .testimonial-card {
    background-color: rgba(255, 255, 255, 0.85) !important;
    backdrop-filter: blur(4px);
    box-shadow: 0 8px 24px rgba(18, 83, 126, 0.15) !important;
    color: #1a202c !important;
}
.testimonials-box.bg-weiss .testimonial-card,
.testimonials-box.bg-none .testimonial-card {
    background-color: rgba(0, 0, 0, 0.025) !important;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12) !important;
    color: #1a202c !important;
}

/* Quote text: non-italic, font size 15px, opacity .8, no top margin on 1st element */
.testimonial-quote,
.testimonial-quote p,
.testimonial-quote div {
    font-style: normal !important;
    font-size: 15px !important;
    line-height: 1.5 !important;
    opacity: 0.8 !important;
}
.testimonials-box.bg-dunkelblau .testimonial-quote,
.testimonials-box.bg-dunkelblau .testimonial-quote p,
.testimonials-box.bg-dunkelblau .testimonial-quote div,
.testimonials-box.bg-dunkelblau .testimonial-quote span,
.testimonials-box.bg-dunkelblau .testimonial-quote * {
    color: #ffffff !important;
    opacity: 0.8 !important;
}
.testimonial-quote {
    margin-bottom: 1.25rem !important;
}
.testimonial-quote p,
.testimonial-quote div,
.testimonial-quote *:first-child {
    margin-top: 0 !important;
}
.testimonial-quote p:last-child {
    margin-bottom: 0 !important;
}
.testimonial-quote p:first-child::before {
    content: "«";
}
.testimonial-quote p:last-child::after {
    content: "»";
}

/* Author info: no top border line */
.testimonial-author {
    border-top: none !important;
    padding-top: 0 !important;
}
.testimonial-avatar img {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    object-fit: cover;
}
.testimonial-meta strong {
    font-size: 0.9375rem;
    display: block;
}
.testimonial-meta small {
    font-size: 0.8125rem;
    opacity: 0.8;
    display: block;
}

/* Carousel Indicators analog hero-teaser (genau gleich) */
.testimonial-carousel {
    position: relative;
    overflow: hidden !important;
    width: calc(100% + 50px) !important;
    margin-left: -25px !important;
    margin-right: -25px !important;
    margin-bottom: -25px !important;
}

.testimonial-carousel .carousel-inner {
    overflow: hidden !important;
    padding: 15px 25px 30px 25px !important;
    transition: height 0.4s ease-in-out !important;
}
.testimonial-carousel .carousel-indicators {
    position: relative !important;
    bottom: auto !important;
    left: auto !important;
    right: auto !important;
    margin-top: 0px !important;
    margin-bottom: 25px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.testimonial-carousel .carousel-indicators [data-bs-target] {
    width: 10px !important;
    height: 10px !important;
    border-radius: 50% !important;
    margin: 0 4px !important;
    background-color: #cbd5e1 !important;
    opacity: 0.6 !important;
    border: 0 !important;
    transition: all 0.3s ease !important;
}

.testimonials-box.bg-dunkelblau .testimonial-carousel .carousel-indicators [data-bs-target] {
    background-color: #ffffff !important;
    opacity: 0.5 !important;
}

.testimonial-carousel .carousel-indicators .active {
    background-color: #3D98D4 !important;
    opacity: 1 !important;
    width: 24px !important;
    border-radius: 6px !important;
}

.hero-video-section .hero-video-bubble {
    padding-left: 32px !important;
    padding-right: 32px !important;
}

/* Enable controlled language-aware hyphenation inside the video hero bubble */
.hero-video-section .hero-video-bubble .bubble-inner {
    word-break: normal !important;
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
    hyphens: auto !important;
    
    /* Safari / iOS / WebKit longhand overrides */
    -webkit-hyphenate-limit-before: 4 !important;
    -webkit-hyphenate-limit-after: 4 !important;
    
    /* Standard properties */
    hyphenate-limit-chars: 8 4 4 !important;
}

/* Jumper Navigation Overrides: disable hyphenation and fix multiline indentation */
.jumpernav ul li a {
    display: inline-block !important;
    hyphens: none !important;
    -webkit-hyphens: none !important;
    word-break: normal !important;
}

/* Align active/hover indicator bar with the first line of text */
.jumpernav ul li a::before {
    top: 4px !important;
    transform: scaleX(0) !important;
}
.jumpernav ul li a:hover::before,
.jumpernav ul li a.active::before {
    transform: scaleX(1) !important;
}
@media only screen and (min-width: 992px) {
    .jumpernav ul li a::before {
        top: 6px !important;
    }
}

/* Hide upper page selector buttons (only when inside search-results-summary) */
.search-results-summary .tx-indexedsearch-browsebox {
    display: none !important;
}

/* Lower pagination container & list display */
.search-pagination {
    display: flex !important;
    justify-content: flex-start !important;
    text-align: left !important;
}
.search-pagination .tx-indexedsearch-browsebox,
.search-pagination ul.tx-indexedsearch-browsebox {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
    justify-content: flex-start !important;
    text-align: left !important;
    list-style: none !important;
    padding-left: 0 !important;
    margin: 0 !important;
}
.search-pagination .tx-indexedsearch-browsebox li {
    display: inline-block !important;
    margin-right: 5px !important;
}

/* Mobile-only pagination browsebox button adjustments (< 992px) */
@media (max-width: 991.98px) {
    .search-pagination,
    .search-pagination .tx-indexedsearch-browsebox,
    .search-pagination ul.tx-indexedsearch-browsebox,
    .tx-indexedsearch-browsebox,
    ul.tx-indexedsearch-browsebox {
        display: flex !important;
        flex-wrap: wrap !important;
        flex-direction: row !important;
        width: 100% !important;
        max-width: 100% !important;
        gap: 10px 8px !important;
        justify-content: flex-start !important;
        align-items: center !important;
        box-sizing: border-box !important;
    }
    .search-pagination .tx-indexedsearch-browsebox li,
    .tx-indexedsearch-browsebox li {
        display: inline-block !important;
        flex-shrink: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
    }
    .search-pagination .tx-indexedsearch-browsebox li a,
    .search-pagination .tx-indexedsearch-browsebox li span,
    .tx-indexedsearch-browsebox li a,
    .tx-indexedsearch-browsebox li span {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        white-space: nowrap !important;
        font-size: 16px !important;
        line-height: 1.35 !important;
        height: auto !important;
        min-height: 42px !important;
        padding: 8px 16px !important;
        border-radius: 6px !important;
        box-sizing: border-box !important;
    }
}

/* Search results summary styling */
.search-results-summary {
    margin-top: 15px !important;
    margin-bottom: 25px !important;
}
.search-results-summary .search-results-count {
    display: block !important;
    text-align: left !important;
    font-size: 15px !important;
}



/* Header Meta Bar background color */
.header_meta_bar {
    background-color: #12537E !important;
}
.header_meta_bar .header_meta_nav a {
    color: #ffffff !important;
}
.header_meta_bar .header_meta_nav a:hover {
    color: #3d98d4 !important;
    text-shadow: none !important;
}

/* Reduce spacing between main navigation items by 20% */
@media only screen and (min-width: 992px) {
    .header_nav ul li {
        padding-right: 50px !important;
    }
}

@media only screen and (min-width: 1450px) {
    .header_nav ul li {
        padding-right: 60px !important;
    }
}


.header_nav ul li:last-of-type {
    padding-right: 0 !important;
    margin-bottom: 0 !important;
}

/* Search path link styling: no underline, dark blue #12537E on hover including SVG icon */
a.search-path-link {
    text-decoration: none !important;
    color: inherit !important;
    transition: color 0.2s ease-in-out !important;
}
a.search-path-link .search-path-breadcrumb {
    color: #6c757d !important;
    transition: color 0.2s ease-in-out !important;
}
a.search-path-link .search-path-breadcrumb svg {
    stroke: currentColor !important;
    transition: stroke 0.2s ease-in-out !important;
}
a.search-path-link:hover .search-path-breadcrumb {
    color: #12537E !important;
    text-decoration: none !important;
}

/* Disable lift/height displacement effect on search result items on hover */
.search-result-item,
.search-result-item:hover {
    transform: none !important;
}

/* Sidebar (.sphm): Make entire column sticky so h1 title and jumpernav scroll/stay together */
.sphm h1 {
    display: none;
}

@media only screen and (min-width: 992px) {
    .sphm {
        position: sticky !important;
        top: 160px !important;
        align-self: flex-start !important;
    }
    .sphm h1 {
        position: static !important;
        top: auto !important;
        margin-bottom: 20px !important;
        display: block;
    }
    .jumpernav {
        position: static !important;
        top: auto !important;
        margin-bottom: 40px !important;
    }
}
@media only screen and (min-width: 1200px) {
    .sphm {
        top: 180px !important;
    }
}





	@media only screen and (max-width: 768px){

			[class*="btn"]{
				width: 100% !important;
			}

	}

.opacity-50 {
    opacity: 0.5 !important;
}

/* Hero-Video Enhancements: 1904px max width breakout, top navigation flush when first element, controls, mobile layout */
.hero-video-wrapper {
    width: 100dvw !important;
    max-width: 1904px !important;
    position: relative !important;
    left: 50% !important;
    right: auto !important;
    transform: translateX(-50%) !important;
    margin-left: 0px !important;
    margin-right: 0px !important;
    margin-top: 0 !important;
}

.hero-video-section {
    width: 100% !important;
    max-width: 1904px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    position: relative !important;
    border-radius: 6px !important;
    overflow: hidden !important;
}

.hero-video-section .hero-video-bg {
    border-radius: 6px !important;
}

/* Flush top alignment when Hero Video or Hero Teaser is the first content element */
@media (max-width: 991.98px) {
    .hero-video-wrapper:first-child,
    .hero-video-wrapper:first-of-type,
    .hero-teaser-wrapper:first-child,
    .hero-teaser-wrapper:first-of-type,
    .hero-teaser-element:first-child,
    .hero-teaser-element:first-of-type,
    .coont > .content-element:first-child .hero-video-wrapper,
    .coont > .hero-video-wrapper:first-child,
    .coont > .content-element:first-child .hero-teaser-wrapper,
    .coont > .hero-teaser-wrapper:first-child,
    .coont > .content-element:first-child .hero-teaser-element,
    .coont > .hero-teaser-element:first-child,
    .coont > [id^="c"]:first-child .hero-teaser-wrapper,
    .coont > [id^="c"]:first-child .hero-video-wrapper,
    .coont > [id^="c"]:first-child .hero-teaser-element {
        margin-top: -115px !important;
        padding-top: 0 !important;
    }
}

@media (min-width: 992px) {
    .hero-video-wrapper:first-child,
    .hero-video-wrapper:first-of-type,
    .hero-teaser-wrapper:first-child,
    .hero-teaser-wrapper:first-of-type,
    .hero-teaser-element:first-child,
    .hero-teaser-element:first-of-type,
    .coont > .content-element:first-child .hero-video-wrapper,
    .coont > .hero-video-wrapper:first-child,
    .coont > .content-element:first-child .hero-teaser-wrapper,
    .coont > .hero-teaser-wrapper:first-child,
    .coont > .content-element:first-child .hero-teaser-element,
    .coont > .hero-teaser-element:first-child,
    .coont > [id^="c"]:first-child .hero-teaser-wrapper,
    .coont > [id^="c"]:first-child .hero-video-wrapper,
    .coont > [id^="c"]:first-child .hero-teaser-element {
        margin-top: -120px !important;
        padding-top: 0 !important;
    }
}

/* Reset overflow and margin-top on .coont container when hero element is first child */
.coont:has(.hero-video-wrapper:first-child),
.coont:has(.hero-teaser-wrapper:first-child),
.coont:has(.hero-teaser-element:first-child),
.coont:has(.content-element:first-child .hero-video-wrapper),
.coont:has(.content-element:first-child .hero-teaser-wrapper),
.coont:has(.content-element:first-child .hero-teaser-element),
.coont:has([id^="c"]:first-child .hero-video-wrapper),
.coont:has([id^="c"]:first-child .hero-teaser-wrapper),
.coont:has([id^="c"]:first-child .hero-teaser-element),
[class*="coont"]:has([class*="hero-teaser"]),
[class*="coont"]:has([class*="hero-video"]) {
    overflow: visible !important;
    margin-top: 0 !important;
    padding-top: 0 !important;
}

/* Hide .sph spacing header when Hero Video or Hero Teaser is the first content element */
.sph:has(+ .coont .hero-video-wrapper),
.sph:has(+ .coont .hero-teaser-wrapper),
.sph:has(+ .coont .hero-teaser-element),
.sph:has(+ .coont > [id^="c"]:first-child .hero-teaser-wrapper),
.sph:has(+ .coont > [id^="c"]:first-child .hero-video-wrapper),
.sph:has(+ .coont > [id^="c"]:first-child .hero-teaser-element),
.sph:has(+ [class*="coont"] .hero-video-wrapper),
.sph:has(+ [class*="coont"] .hero-teaser-wrapper),
.sph:has(+ [class*="coont"] .hero-teaser-element),
.sph:has(+ [class*="coont"] > [id^="c"]:first-child .hero-teaser-wrapper),
.sph:has(+ [class*="coont"] > [id^="c"]:first-child .hero-video-wrapper),
.sph:has(+ [class*="coont"] > [id^="c"]:first-child .hero-teaser-element),
.sph:has(+ .sphm + .coont .hero-video-wrapper),
.sph:has(+ .sphm + .coont .hero-teaser-wrapper),
.sph:has(+ .sphm + .coont .hero-teaser-element),
.sph:has(+ .sphm + [class*="coont"] .hero-video-wrapper),
.sph:has(+ .sphm + [class*="coont"] .hero-teaser-wrapper),
.sph:has(+ .sphm + [class*="coont"] .hero-teaser-element),
.row:has(.hero-video-wrapper:first-child) > .sph,
.row:has(.hero-teaser-wrapper:first-child) > .sph,
.row:has(.hero-teaser-element:first-child) > .sph,
.row:has([id^="c"]:first-child .hero-video-wrapper) > .sph,
.row:has([id^="c"]:first-child .hero-teaser-wrapper) > .sph,
.row:has([id^="c"]:first-child .hero-teaser-element) > .sph,
main:has(.hero-video-wrapper:first-child) .sph,
main:has(.hero-teaser-wrapper:first-child) .sph,
main:has(.hero-teaser-element:first-child) .sph,
main:has([id^="c"]:first-child .hero-video-wrapper) .sph,
main:has([id^="c"]:first-child .hero-teaser-wrapper) .sph,
main:has([id^="c"]:first-child .hero-teaser-element) .sph {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
    height: 0 !important;
    min-height: 0 !important;
    display: none !important;
}

.hero-video-controls {
    position: absolute !important;
    top: 50% !important;
    left: 0 !important;
    right: 0 !important;
    transform: translateY(-50%) !important;
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    padding: 0 40px !important;
    z-index: 8 !important;
    pointer-events: none !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

@media (max-width: 991.98px) {
    .hero-video-controls {
        padding: 0 20px !important;
    }
}

.hero-video-controls .hero-video-nav {
    pointer-events: auto !important;
    width: 60px !important;
    height: 60px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    transition: all 0.3s ease-in-out !important;
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
    position: relative !important;
    top: auto !important;
    bottom: auto !important;
    left: auto !important;
    right: auto !important;
}

.hero-video-controls .hero-video-prev,
.hero-video-controls .hero-video-next {
    margin: 0 !important;
    margin-top: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
}

.hero-video-controls .hero-video-nav span {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.hero-video-controls .hero-video-nav svg {
    width: 40px !important;
    height: 40px !important;
    left: 0 !important;
    margin: 0 !important;
    position: relative !important;
}

.hero-video-controls .hero-video-prev svg {
    transform: rotate(-45deg) !important; /* Points LEFT ← */
}

.hero-video-controls .hero-video-next svg {
    transform: rotate(135deg) !important; /* Points RIGHT → */
}

.hero-video-controls .hero-video-nav svg path,
.hero-video-controls .hero-video-nav svg line,
.hero-video-controls .hero-video-nav svg polyline {
    stroke: #ffffff !important;
    transition: stroke 0.3s ease-in-out !important;
}

.hero-video-controls .hero-video-nav:hover svg path,
.hero-video-controls .hero-video-nav:hover svg line,
.hero-video-controls .hero-video-nav:hover svg polyline {
    stroke: #3D98D4 !important;
}

.hero-video-section .hero-video-lead {
    font-size: 1.2rem !important;
    line-height: 1.5 !important;
    margin-bottom: 20px !important;
    font-weight: 400 !important;
}

/* Mobile Hero Video styling (< 768px) */
@media (max-width: 1199.98px) {
    .hero-video-section {
        aspect-ratio: auto !important;
        height: auto !important;
        background-color: #ffffff !important;
    }
    .hero-video-section .hero-video-bg {
        position: relative !important;
        object-fit: cover !important;
        display: block !important;
        width: 100% !important;
    }
}

@media (max-width: 1199.98px) {
    .hero-video-section .hero-video-container {
        position: relative !important;
        padding: 0px !important;
        background-color: #ffffff !important;
        color: #1a1a1a !important;
        margin-top: -4px !important;
    }
}

@media (max-width: 767.98px) {
    .hero-video-section .hero-video-title {
        color: #1a1a1a !important;
        font-size: 1.75rem !important;
    }
    .hero-video-section .hero-video-lead {
        color: #333333 !important;
        font-size: 1rem !important;
    }
    .hero-video-section .hero-video-buttons .btn-outline {
        color: #12537E !important;
        border-color: #12537E !important;
    }
    .hero-video-section .hero-video-buttons .btn-outline:hover {
        background-color: #12537E !important;
        color: #ffffff !important;
    }
    .hero-video-controls {
        top: 200px !important;
    }
}

/* teammv (Schulleitung & Ansprechpersonen) styling fixes */
.teammv .teammv_person_text h3.teammv-title,
.teammv .teammv_person_text h3 {
    margin-bottom: .25rem !important;
    font-weight: 500 !important;
}

/* Desktop H3 Font-Size */
@media (min-width: 768px) {
    h3,
    .content-element h3,
    .teammv .teammv_person_text h3,
    .teammv .teammv_person_text h3.teammv-title,
    .cardlist_block h3 {
        font-size: 22px !important;
        line-height: 1.35 !important;
    }
}

.teammv .teammv_person_text p.teammv-position,
.teammv .teammv_person_text p:first-of-type {
    margin-top: 0 !important;
    margin-bottom: 10px !important;
    font-size: 1.05rem !important;
    color: #333333 !important;
    line-height: 1.3 !important;
}

.teammv-contact {
    margin-bottom: 10px !important;
}

.teammv-contact-line {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    margin-bottom: 4px !important;
}

.teammv-contact-line .contact-icon {
    flex-shrink: 0 !important;
    width: 18px !important;
    height: 18px !important;
    stroke: #3D98D4 !important;
}

.teammv-contact-line a {
    color: #3D98D4 !important;
    font-size: 1.05rem !important;
    text-decoration: none !important;
    transition: color 0.2s ease-in-out !important;
}

.teammv-contact-line a:hover {
    color: #12537E !important;
}

.teammv-verant {
    margin-top: 8px !important;
}

.teammv-verant ul,
.teammv ul {
    padding-left: 20px !important;
    margin-top: 4px !important;
    margin-bottom: 0 !important;
}

.teammv-verant ul li,
.teammv ul li,
.teammv .small ul li {
    font-size: 0.95rem !important;
    line-height: 1.55 !important;
    margin-bottom: 4px !important;
    color: #222222 !important;
}

/* cardlist_block (Lehrpersonen) styling fixes */





.cardlist_block h3 {
    font-size: 1.15rem !important;
    line-height: 1.35 !important;
    margin-bottom: 10px !important;
}

.cardlist-contact-line {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    margin-bottom: 6px !important;
}

.cardlist-contact-line .contact-icon {
    flex-shrink: 0 !important;
    width: 16px !important;
    height: 16px !important;
    stroke: #3D98D4 !important;
}

.cardlist-contact-line a {
    font-size: 1rem !important;
    line-height: 1.4 !important;
    color: #3D98D4 !important;
    text-decoration: none !important;
    display: inline-block !important;
}

.cardlist-contact-line a:hover {
    color: #12537E !important;
}

/* Table responsive & figure.table spacing & horizontal scrolling */
figure.table,
.table-responsive {
    margin-top: 0 !important;
    margin-bottom: 60px !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
    width: 100% !important;
}

figure.table table,
.table-responsive table {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    width: 100% !important;
    border-collapse: collapse;
}

/* First cell (column) nowrap across all screen sizes */
figure.table table th:first-child,
figure.table table td:first-child,
.table-responsive table th:first-child,
.table-responsive table td:first-child {
    white-space: nowrap !important;
}

/* Remove bottom margin ONLY if figure.table / .table-responsive is the absolute last element of the column/page section */
.csmt > *:last-child figure.table:last-child,
.csmt > figure.table:last-child,
.csmt > .table-responsive:last-child,
.csmt > *:last-child > .table-responsive:last-child,
.csmt > *:last-child > figure.table:last-child {
    margin-bottom: 0 !important;
}

/* Mobile responsive horizontal scrolling tables (< 768px) */
@media (max-width: 767.98px) {
    figure.table,
    .table-responsive {
        margin-bottom: 30px !important;
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch;
        display: block !important;
        width: 100% !important;
    }

    figure.table table,
    .table-responsive table {
        display: table !important;
        width: max-content !important;
        min-width: 100% !important;
    }

    figure.table table thead,
    .table-responsive table thead {
        display: table-header-group !important;
    }

    figure.table table tbody,
    .table-responsive table tbody {
        display: table-row-group !important;
    }

    figure.table table tr,
    .table-responsive table tr {
        display: table-row !important;
        margin-bottom: 0 !important;
        padding-bottom: 0 !important;
        border-bottom: 1px solid #e0e0e0 !important;
    }

    figure.table table th,
    figure.table table td,
    .table-responsive table th,
    .table-responsive table td {
        display: table-cell !important;
        width: auto !important;
        padding: 8px 12px !important;
        box-sizing: border-box !important;
    }

    figure.table table td:first-child,
    figure.table table th:first-child,
    .table-responsive table td:first-child,
    .table-responsive table th:first-child {
        white-space: nowrap !important;
        font-weight: 500 !important;
    }
}

/* Footer margin-bottom fix */
.footer {
    margin-bottom: 0 !important;
}

/* Hero Teaser Element: 1904px width breakout matching Hero Video & Project Dark Blue #12537E */
.hero-teaser-wrapper {
    width: calc(100vw - 32px) !important;
    max-width: 1904px !important;
    position: relative !important;
    left: 50% !important;
    right: auto !important;
    transform: translateX(-50%) !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    margin-bottom: 60px !important;
}

.hero-teaser-element .hero-teaser-bg {
    background-color: #12537E !important;
    border-radius: 6px !important;
}

.hero-teaser-element .hero-teaser-text-col > *:first-child,
.hero-teaser-element .hero-teaser-text-col h1:first-child,
.hero-teaser-element .hero-teaser-text-col h2:first-child,
.hero-teaser-element .hero-teaser-text-col h3:first-child,
.hero-teaser-element .hero-teaser-text-col h4:first-child,
.hero-teaser-element .hero-teaser-text-col h5:first-child,
.hero-teaser-element .hero-teaser-text-col p:first-child {
    margin-top: 0 !important;
}



.hero-teaser-element .hero-teaser-lead {
    color: white !important;
}

.hero-teaser-element .hero-teaser-lead p {
    color: white !important;
    margin-bottom: 0 !important;
}

.hero-teaser-element .hero-teaser-buttons .btn-filled {
    background-color: #3D98D4 !important;
    border-color: #3D98D4 !important;
    color: #ffffff !important;
}

.hero-teaser-element .hero-teaser-buttons .btn-filled:hover {
    background-color: #0d3e5e !important;
    border-color: #0d3e5e !important;
    color: #ffffff !important;
}

.hero-teaser-element .hero-teaser-buttons .btn-outline {
    background-color: transparent !important;
    border-color: rgba(255, 255, 255, 0.6) !important;
    color: #ffffff !important;
}

.hero-teaser-element .hero-teaser-buttons .btn-outline:hover {
    background-color: #ffffff !important;
    border-color: #ffffff !important;
    color: #12537E !important;
}

.hero-teaser-element .carousel-item img,
.hero-teaser-element .ratio img {
    object-fit: cover !important;
    width: 100% !important;
    height: 100% !important;
    border-radius: 6px !important;
}

/* Hero Teaser Carousel Controls: identical to Hero Video arrows */
.hero-teaser-element .carousel-control-prev,
.hero-teaser-element .carousel-control-next {
    width: 50px !important;
    height: 50px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    opacity: 0.9 !important;
    transition: opacity 0.3s ease-in-out !important;
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
    z-index: 5 !important;
}

.hero-teaser-element .carousel-control-prev {
    left: 1.5rem !important;
}

.hero-teaser-element .carousel-control-next {
    right: 1.5rem !important;
}

.hero-teaser-element .carousel-control-prev:hover,
.hero-teaser-element .carousel-control-next:hover {
    opacity: 1 !important;
}

.hero-teaser-element .carousel-control-prev svg,
.hero-teaser-element .carousel-control-next svg {
    width: 36px !important;
    height: 36px !important;
}

.hero-teaser-element .carousel-control-prev svg {
    transform: rotate(-45deg) !important;
}

.hero-teaser-element .carousel-control-next svg {
    transform: rotate(135deg) !important;
}

.hero-teaser-element .carousel-control-prev svg path,
.hero-teaser-element .carousel-control-prev svg line,
.hero-teaser-element .carousel-control-prev svg polyline,
.hero-teaser-element .carousel-control-next svg path,
.hero-teaser-element .carousel-control-next svg line,
.hero-teaser-element .carousel-control-next svg polyline {
    stroke: #ffffff !important;
    transition: stroke 0.3s ease-in-out !important;
}

.hero-teaser-element .carousel-control-prev:hover svg path,
.hero-teaser-element .carousel-control-prev:hover svg line,
.hero-teaser-element .carousel-control-prev:hover svg polyline,
.hero-teaser-element .carousel-control-next:hover svg path,
.hero-teaser-element .carousel-control-next:hover svg line,
.hero-teaser-element .carousel-control-next:hover svg polyline {
    stroke: #3D98D4 !important;
}



.hero-teaser-element .carousel-indicators [data-bs-target] {
    width: 10px !important;
    height: 10px !important;
    border-radius: 50% !important;
    margin: 0 4px !important;
    background-color: #ffffff !important;
    opacity: 0.5 !important;
    border: 0 !important;
}

.hero-teaser-element .carousel-indicators .active {
    background-color: #3D98D4 !important;
    opacity: 1 !important;
    width: 24px !important;
    border-radius: 6px !important;
}

@media (max-width: 991.98px) {
    .hero-teaser-element .hero-teaser-title {
        font-size: 1.75rem !important;
    }
}

/* Teaser Element: Alternating layout, 4:3 image, white background with grey border #e0e0e0, border-radius 6px */
.teaser-element {
    margin-bottom: 60px !important;
}

.teaser-element .teaser-box {
    background-color: #ffffff !important;
    border: 1px solid #e0e0e0 !important;
    border-radius: 6px !important;
}

/* Video Teaser Color Themes */
.video-teaser-box.theme-white {
    background-color: #ffffff !important;
    border: 1px solid #e0e0e0 !important;
    color: #111827 !important;
}

.video-teaser-box.theme-lightblue {
    background-color: #eaf4fb !important;
    border: 0 !important;
    color: #111827 !important;
}

.video-teaser-box.theme-darkblue {
    background-color: #12537E !important;
    border: 1px solid #12537E !important;
    color: #ffffff !important;
}

.video-teaser-box.theme-darkblue .teaser-title,
.video-teaser-box.theme-darkblue .teaser-text,
.video-teaser-box.theme-darkblue .teaser-text p,
.video-teaser-box.theme-darkblue .acc_block_header h3 {
    color: #ffffff !important;
}

.video-teaser-box.theme-lightgrey {
    background-color: #f3f4f6 !important;
    border: 0 !important;
    color: #111827 !important;
}

/* Video Teaser Switcher Buttons - exact copy of Blog Category Filter Buttons */
.video-teaser-box .video-switch-btn {
    border: 1px solid #CACCCD !important;
    border-radius: 0.5rem !important;
    font-size: 1rem !important;
    font-weight: 400 !important;
    background: transparent !important;
    color: #3D98D4 !important;
    padding: 0 1rem !important;
    line-height: 2 !important;
    transition: all 0.2s ease-in-out !important;
    cursor: pointer !important;
    outline: none !important;
    box-shadow: none !important;
    text-decoration: none !important;
    display: inline-block !important;
}

.video-teaser-box .video-switch-btn:hover:not(.active) {
    background: #f2f8fc !important;
    border-color: #3D98D4 !important;
    color: #3D98D4 !important;
}

.video-teaser-box .video-switch-btn.active {
    background: #12537E !important;
    border-color: #12537E !important;
    color: #ffffff !important;
}

.video-teaser-box.theme-darkblue .video-switch-btn {
    border-color: rgba(255, 255, 255, 0.4) !important;
    color: #ffffff !important;
    background: transparent !important;
}

.video-teaser-box.theme-darkblue .video-switch-btn:hover:not(.active) {
    background: rgba(255, 255, 255, 0.15) !important;
    border-color: #ffffff !important;
    color: #ffffff !important;
}

.video-teaser-box.theme-darkblue .video-switch-btn.active {
    background: #ffffff !important;
    border-color: #ffffff !important;
    color: #12537E !important;
}

.video-teaser-player-container .plyr {
    width: 100% !important;
    height: 100% !important;
}

.video-teaser-player-container .plyr video {
    object-fit: cover !important;
    width: 100% !important;
    height: 100% !important;
}

@media (min-width: 992px) {
    .content-element.teaser-element.pos-auto:nth-of-type(even) .row {
        flex-direction: row-reverse !important;
    }
}

.teaser-element .teaser-image-col .ratio {
    aspect-ratio: 4 / 3 !important;
    border-radius: 6px !important;
}

.teaser-element .teaser-image-col img {
    aspect-ratio: 4 / 3 !important;
    object-fit: cover !important;
    border-radius: 6px !important;
}

.teaser-element .teaser-text-col > *:first-child,
.teaser-element .teaser-text-col h1:first-child,
.teaser-element .teaser-text-col h2:first-child,
.teaser-element .teaser-text-col h3:first-child,
.teaser-element .teaser-text-col h4:first-child,
.teaser-element .teaser-text-col h5:first-child,
.teaser-element .teaser-text-col p:first-child {
    margin-top: 0 !important;
}

.teaser-element .teaser-accordion .accordion-button {
    background-color: transparent !important;
    color: #16395b !important;
    box-shadow: none !important;
    font-size: 1rem !important;
}

.teaser-element .teaser-accordion .accordion-button:not(.collapsed) {
    color: #3D98D4 !important;
    background-color: transparent !important;
}

/* Termine & Agenda Accordion Styling & Font Size (20px) */
.home-events-col .event-item,
.home-events-col .event-date,
.home-events-col .event-title {
    font-size: 20px !important;
    line-height: 1.4 !important;
}

.home-events-col .event-date {
    font-weight: 400 !important;
    font-size: 20px !important;
}

.home-events-col .event-title,
.home-events-col .event-title a {
    color: #3D98D4 !important;
    font-weight: 500 !important;
    font-size: 20px !important;
    text-decoration: none !important;
}

.home-events-col .event-title a:hover {
    color: #12537E !important;
}

.home-events-col .event-header-toggle .chevron-svg,
.agenda-toggle-badge .chevron-svg {
    transition: transform 0.3s ease !important;
}

.home-events-col .event-header-toggle:not(.collapsed) .chevron-svg,
tr[aria-expanded="true"] .agenda-toggle-badge .chevron-svg {
    transform: rotate(180deg) !important;
}

.agenda-toggle-badge {
    cursor: pointer !important;
    font-weight: 500 !important;
    transition: all 0.2s ease !important;
}
.agenda-toggle-badge:hover {
    background-color: #3D98D4 !important;
    color: #ffffff !important;
    border-color: #3D98D4 !important;
}

/* Past Events Opacity */
.event-item.opacity-50, tr.opacity-50, tr.opacity-50 > td, tr.opacity-50 > td *, .table-responsive table tr.opacity-50, .table-responsive table tr.opacity-50 td, .table-responsive table tr.opacity-50 td * {
    opacity: 0.65 !important;
    /* filter: opacity(50%) !important; */
}

/* ==========================================
   COUNTER BOXEN COMPONENT
   ========================================== */
.counter-section {
    margin-bottom: 60px !important;
}

.counter-section .counter-box {
    border-radius: 6px;
    padding: 40px;
    display: flex;
    flex-direction: column;
}
@media (min-width: 768px) {
    .counter-section .counter-box {
        padding: 50px 60px;
    }
}

.counter-section .counter-box.bg-dunkelblau {
    background-color: #12537E;
    color: #ffffff;
}
.counter-section .counter-box.bg-hellblau {
    background-color: #F2F8FC;
    color: #12537E;
}
.counter-section .counter-box.bg-weiss {
    background-color: #ffffff;
    color: #12537E;
    border: 1px solid #e2e8f0;
}

.counter-section .counter-box-title {
    font-size: 32px;
    line-height: 40px;
    margin-top: 0 !important;
    margin-bottom: 20px;
    color: inherit;
}

.counter-section .counter-box-text {
    font-size: 1rem;
    line-height: 1.5;
}
.counter-section .counter-box-text p:last-child,
.counter-section .counter-box-text *:last-child {
    margin-bottom: 0 !important;
}
.counter-section .counter-box.bg-dunkelblau .counter-box-text,
.counter-section .counter-box.bg-dunkelblau .counter-box-text p,
.counter-section .counter-box.bg-dunkelblau .counter-box-text * {
    color: #ffffff !important;
}
.counter-section .counter-box.bg-hellblau .counter-box-text,
.counter-section .counter-box.bg-weiss .counter-box-text {
    color: #4a5568;
}

/* Eigene Klasse für den Text-Link am Ende der Counter-Box */
.counter-footer-link,
a.counter-footer-link {
    font-size: 18px !important;
    line-height: 1.4 !important;
    text-decoration: none !important;
    transition: color 0.2s ease-in-out !important;
    display: inline-block;
}
@media (min-width: 992px) {
    .counter-footer-link,
    a.counter-footer-link {
        font-size: 20px !important;
    }
}

/* Farben für bg-none, bg-weiss, bg-hellblau und bg-grau */
.counter-box.bg-none .counter-footer-link,
.counter-box.bg-weiss .counter-footer-link,
.counter-box.bg-hellblau .counter-footer-link,
.counter-box.bg-grau .counter-footer-link,
.counter-section.bg-none .counter-footer-link,
.counter-section.bg-weiss .counter-footer-link,
.counter-section.bg-hellblau .counter-footer-link,
.counter-section.bg-grau .counter-footer-link,
.counter-box.bg-none a.counter-footer-link,
.counter-box.bg-weiss a.counter-footer-link,
.counter-box.bg-hellblau a.counter-footer-link,
.counter-box.bg-grau a.counter-footer-link,
.counter-section.bg-none a.counter-footer-link,
.counter-section.bg-weiss a.counter-footer-link,
.counter-section.bg-hellblau a.counter-footer-link,
.counter-section.bg-grau a.counter-footer-link {
    color: #3D98D4 !important;
    text-decoration: none !important;
}
.counter-box.bg-none .counter-footer-link:hover,
.counter-box.bg-weiss .counter-footer-link:hover,
.counter-box.bg-hellblau .counter-footer-link:hover,
.counter-box.bg-grau .counter-footer-link:hover,
.counter-section.bg-none .counter-footer-link:hover,
.counter-section.bg-weiss .counter-footer-link:hover,
.counter-section.bg-hellblau .counter-footer-link:hover,
.counter-section.bg-grau .counter-footer-link:hover,
.counter-box.bg-none a.counter-footer-link:hover,
.counter-box.bg-weiss a.counter-footer-link:hover,
.counter-box.bg-hellblau a.counter-footer-link:hover,
.counter-box.bg-grau a.counter-footer-link:hover,
.counter-section.bg-none a.counter-footer-link:hover,
.counter-section.bg-weiss a.counter-footer-link:hover,
.counter-section.bg-hellblau a.counter-footer-link:hover,
.counter-section.bg-grau a.counter-footer-link:hover {
    color: #12537E !important;
    text-decoration: none !important;
}

/* Farben für bg-dunkelblau */
.counter-box.bg-dunkelblau .counter-footer-link,
.counter-section.bg-dunkelblau .counter-footer-link,
.counter-box.bg-dunkelblau a.counter-footer-link,
.counter-section.bg-dunkelblau a.counter-footer-link {
    color: #ffffff !important;
    text-decoration: none !important;
}
.counter-box.bg-dunkelblau .counter-footer-link:hover,
.counter-section.bg-dunkelblau .counter-footer-link:hover,
.counter-box.bg-dunkelblau a.counter-footer-link:hover,
.counter-section.bg-dunkelblau a.counter-footer-link:hover {
    color: #3D98D4 !important;
    text-decoration: none !important;
}

.counter-card {
    border-radius: 6px !important;
    border: none !important;
    padding: 1.75rem 1.5rem !important;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    height: 100%;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.counter-card:hover {
    transform: translateY(-4px);
}

.counter-box.bg-dunkelblau .counter-card,
.usp-block-box.bg-dunkelblau .usp-card,
.bg-dunkelblau .counter-card,
.bg-dunkelblau .usp-card {
    background-color: rgba(255, 255, 255, 0.15) !important;
    backdrop-filter: blur(4px);
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.35) !important;
    color: #ffffff !important;
}

.counter-box.bg-hellblau .counter-card,
.counter-box.bg-grau .counter-card,
.usp-block-box.bg-hellblau .usp-card,
.usp-block-box.bg-grau .usp-card,
.bg-hellblau .counter-card,
.bg-grau .counter-card,
.bg-hellblau .usp-card,
.bg-grau .usp-card {
    background-color: rgba(255, 255, 255, 0.85) !important;
    backdrop-filter: blur(4px);
    box-shadow: 0 8px 24px rgba(18, 83, 126, 0.15) !important;
    color: #1a202c !important;
}

.counter-box.bg-weiss .counter-card,
.counter-box.bg-none .counter-card,
.usp-block-box.bg-weiss .usp-card,
.usp-block-box.bg-none .usp-card,
.bg-weiss .counter-card,
.bg-none .counter-card,
.bg-weiss .usp-card,
.bg-none .usp-card {
    background-color: rgba(0, 0, 0, 0.025) !important;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12) !important;
    color: #1a202c !important;
}

.counter-value {
    font-size: 2.75rem;
    font-weight: 500 !important;
    line-height: 1.1;
    margin-bottom: 0.5rem;
    color: #1a1a1a !important;
}
.counter-box.bg-dunkelblau .counter-value {
    color: #ffffff !important;
}

.counter-title {
    font-size: 0.95rem;
    font-weight: 400 !important;
    line-height: 1.35;
    opacity: 0.85;
}

.counter-icon-wrap {
    display: block;
}
.counter-icon-wrap img,
.counter-icon-wrap svg,
.counter-icon-svg {
    height: 54px !important;
    width: 54px !important;
    max-width: 54px !important;
    max-height: 54px !important;
    display: block;
    object-fit: contain;
    transition: filter 0.2s ease;
}

/* ==========================================================================
   USP & COUNTER ICON STYLING (Inline SVG Vector Control)
   ========================================================================== */

/* 1. Global Reset of Filters for all USP & Counter Icons */
.counter-icon-wrap img,
.counter-icon-wrap svg,
.usp-icon-wrapper img,
.usp-icon-wrapper svg,
.counter-icon-svg,
.counter-icon-svg * {
    filter: none !important;
}

/* 2. CARD-DARSTELLUNG (USP Cards / Counter Cards):
      - Max-Grösse: 54px
      - Strichstärke: 1.2px
      - Keinerlei Hintergrund, Rahmen oder Kreis um die Icons! */
.counter-card .counter-icon-wrap,
.counter-card .usp-icon-wrapper,
.usp-card .counter-icon-wrap,
.usp-card .usp-icon-wrapper,
.usp-inner.usp-card .usp-icon-wrapper,
.has-cards .counter-icon-wrap,
.has-cards .usp-icon-wrapper,
.counter-box.has-cards .counter-icon-wrap,
.usp-block-box.has-cards .usp-icon-wrapper {
    width: auto !important;
    height: auto !important;
    background: transparent !important;
    background-color: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    padding: 0 !important;
    box-shadow: none !important;
    display: block !important;
    margin-bottom: 15px !important;
}

.counter-card .counter-icon-wrap svg,
.counter-card .counter-icon-wrap img,
.counter-card .usp-icon-wrapper svg,
.counter-card .usp-icon-wrapper img,
.usp-card .counter-icon-wrap svg,
.usp-card .counter-icon-wrap img,
.usp-card .usp-icon-wrapper svg,
.usp-card .usp-icon-wrapper img,
.has-cards .counter-icon-wrap svg,
.has-cards .counter-icon-wrap img,
.has-cards .usp-icon-wrapper svg,
.has-cards .usp-icon-wrapper img {
    width: 54px !important;
    height: 54px !important;
    max-width: 54px !important;
    max-height: 54px !important;
    display: block !important;
    object-fit: contain;
}
/* Strichstärke 1.6px für KLEINE Icons (36px / Reguläre Darstellung) */
.usp-grid:not(.has-cards) svg [stroke]:not(.usp-card *):not(.counter-card *),
.usp-grid:not(.has-cards) svg [fill="none"]:not(.usp-card *):not(.counter-card *),
.usp-grid:not(.has-cards) svg .a:not(.usp-card *):not(.counter-card *),
.usp-grid:not(.has-cards) svg line:not(.usp-card *):not(.counter-card *),
.usp-grid:not(.has-cards) svg polyline:not(.usp-card *):not(.counter-card *),
.usp-block-box:not(.has-cards) svg [stroke]:not(.usp-card *):not(.counter-card *),
.usp-block-box:not(.has-cards) svg [fill="none"]:not(.usp-card *):not(.counter-card *),
.usp-block-box:not(.has-cards) svg .a:not(.usp-card *):not(.counter-card *),
.usp-block-box:not(.has-cards) svg line:not(.usp-card *):not(.counter-card *),
.usp-block-box:not(.has-cards) svg polyline:not(.usp-card *):not(.counter-card *),
.usp-icon-wrapper:not(.usp-card *):not(.counter-card *) svg [stroke],
.usp-icon-wrapper:not(.usp-card *):not(.counter-card *) svg [fill="none"],
.counter-icon-wrap:not(.usp-card *):not(.counter-card *) svg [stroke],
.counter-icon-wrap:not(.usp-card *):not(.counter-card *) svg [fill="none"] {
    stroke-width: 1.6px !important;
}

/* Strichstärke 1.25px für GROSSE Icons (54px / Card-Darstellung) - Höchste Priorität für Cards */
.counter-card svg [stroke],
.counter-card svg [fill="none"],
.counter-card svg .a,
.counter-card svg line,
.counter-card svg polyline,
.usp-card svg [stroke],
.usp-card svg [fill="none"],
.usp-card svg .a,
.usp-card svg line,
.usp-card svg polyline,
.usp-inner.usp-card svg [stroke],
.usp-inner.usp-card svg [fill="none"],
.usp-inner.usp-card svg .a,
.usp-inner.usp-card svg line,
.usp-inner.usp-card svg polyline,
.has-cards svg [stroke],
.has-cards svg [fill="none"],
.has-cards svg .a,
.has-cards svg line,
.has-cards svg polyline {
    stroke-width: 1.25px !important;
}

/* 3. REGULÄRE DARSTELLUNG (Standard-Liste / Non-Cards):
      - Kreisförmiger Hintergrund (72px) & Rahmen
      - Max-Grösse Icon: 36px */
.usp-grid:not(.has-cards) .usp-item:not(.has-cards) .usp-icon-wrapper:not(.usp-card *),
.usp-block-box:not(.has-cards) .usp-icon-wrapper:not(.counter-card *):not(.usp-card *),
.counter-box:not(.has-cards) .counter-icon-wrap:not(.counter-card *):not(.usp-card *) {
    width: 72px !important;
    height: 72px !important;
    border-radius: 50% !important;
    overflow: hidden !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-shrink: 0 !important;
    margin-bottom: 15px !important;
}

/* Hintergrund & Rahmen für kreisförmige Regulär-Icons:
   - Hellblau (bg-hellblau): EXAKT 50% weisser Hintergrund (rgba(255, 255, 255, 0.5))
   - Weiss / None (bg-weiss / bg-none): Hintergrund #f1f8fc
   - Grau (bg-grau): Weisser Hintergrund #ffffff
   - Dunkelblau (bg-dunkelblau): 15% Weisser Hintergrund (rgba(255, 255, 255, 0.15)) */

.usp-block-box:not(.has-cards).bg-hellblau .usp-icon-wrapper:not(.usp-card *):not(.counter-card *),
.counter-box:not(.has-cards).bg-hellblau .counter-icon-wrap:not(.usp-card *):not(.counter-card *),
.counter-box:not(.has-cards).bg-hellblau .usp-icon-wrapper:not(.usp-card *):not(.counter-card *),
.bg-hellblau:not(.has-cards) .usp-icon-wrapper:not(.usp-card *):not(.counter-card *),
.bg-hellblau:not(.has-cards) .counter-icon-wrap:not(.usp-card *):not(.counter-card *) {
    background-color: rgba(255, 255, 255, 0.5) !important;
    border: 2px solid #a8cde3 !important;
}

.usp-block-box:not(.has-cards).bg-weiss .usp-icon-wrapper:not(.usp-card *):not(.counter-card *),
.usp-block-box:not(.has-cards).bg-none .usp-icon-wrapper:not(.usp-card *):not(.counter-card *),
.counter-box:not(.has-cards).bg-weiss .counter-icon-wrap:not(.usp-card *):not(.counter-card *),
.counter-box:not(.has-cards).bg-none .counter-icon-wrap:not(.usp-card *):not(.counter-card *),
.bg-weiss:not(.has-cards) .usp-icon-wrapper:not(.usp-card *):not(.counter-card *),
.bg-none:not(.has-cards) .usp-icon-wrapper:not(.usp-card *):not(.counter-card *) {
    background-color: #f1f8fc !important;
    border: 2px solid #a8cde3 !important;
}

.usp-block-box:not(.has-cards).bg-grau .usp-icon-wrapper:not(.usp-card *):not(.counter-card *),
.counter-box:not(.has-cards).bg-grau .counter-icon-wrap:not(.usp-card *):not(.counter-card *),
.bg-grau:not(.has-cards) .usp-icon-wrapper:not(.usp-card *):not(.counter-card *),
.bg-grau:not(.has-cards) .counter-icon-wrap:not(.usp-card *):not(.counter-card *) {
    background-color: rgba(255, 255, 255, 0.5) !important;
    border: 1px solid #ced4da !important;
}

.usp-block-box:not(.has-cards).bg-dunkelblau .usp-icon-wrapper:not(.usp-card *):not(.counter-card *),
.counter-box:not(.has-cards).bg-dunkelblau .counter-icon-wrap:not(.usp-card *):not(.counter-card *),
.bg-dunkelblau:not(.has-cards) .usp-icon-wrapper:not(.usp-card *):not(.counter-card *),
.bg-dunkelblau:not(.has-cards) .counter-icon-wrap:not(.usp-card *):not(.counter-card *) {
    background-color: rgba(255, 255, 255, 0.15) !important;
    border: 1px solid rgba(255, 255, 255, 0.4) !important;
}

/* Garantiert KEIN Border oder Background auf Icon-Wrappers in Card-Darstellung */
.usp-card .usp-icon-wrapper,
.usp-card .counter-icon-wrap,
.counter-card .counter-icon-wrap,
.counter-card .usp-icon-wrapper,
.usp-inner .usp-icon-wrapper {
    border: none !important;
    background: transparent !important;
    background-color: transparent !important;
    box-shadow: none !important;
}

.usp-grid:not(.has-cards) .usp-item .usp-icon-wrapper svg,
.usp-grid:not(.has-cards) .usp-item .usp-icon-wrapper img,
.usp-block-box:not(.has-cards) .usp-icon-wrapper:not(.counter-card *) svg,
.usp-block-box:not(.has-cards) .usp-icon-wrapper:not(.counter-card *) img {
    width: 36px !important;
    height: 36px !important;
    max-width: 36px !important;
    max-height: 36px !important;
    display: block !important;
    object-fit: contain;
}

/* 4. VEKTOR-FARBEN: EXAKTE MATRIX FÜR CARD- UND REGULÄR-DARSTELLUNG */

/* A. DUNKELBLAUER HINTERGRUND (bg-dunkelblau) -> ICONS AUSNAHMSLOS REIN WEISS (#ffffff) */
.bg-dunkelblau svg [fill="none"],
.bg-dunkelblau svg [stroke],
.bg-dunkelblau svg .a,
.bg-dunkelblau svg path,
.bg-dunkelblau svg circle,
.bg-dunkelblau svg line,
.bg-dunkelblau svg polyline,
.bg-dunkelblau svg rect,
.bg-dunkelblau .counter-card svg [fill="none"],
.bg-dunkelblau .counter-card svg [stroke],
.bg-dunkelblau .counter-card svg .a,
.bg-dunkelblau .counter-card svg path,
.bg-dunkelblau .counter-card svg line,
.bg-dunkelblau .counter-card svg polyline,
.bg-dunkelblau .counter-card svg circle,
.bg-dunkelblau .counter-card svg rect,
.bg-dunkelblau .counter-icon-wrap svg path,
.bg-dunkelblau .counter-icon-wrap svg [stroke],
.bg-dunkelblau .usp-icon-wrapper svg path,
.bg-dunkelblau .usp-icon-wrapper svg [stroke] {
    stroke: #ffffff !important;
    fill: none !important;
}

.bg-dunkelblau svg path:not([fill="none"]):not([stroke]),
.bg-dunkelblau .counter-card svg path:not([fill="none"]):not([stroke]),
.bg-dunkelblau .counter-icon-wrap svg path:not([fill="none"]):not([stroke]),
.bg-dunkelblau .usp-icon-wrapper svg path:not([fill="none"]):not([stroke]) {
    fill: #ffffff !important;
    stroke: none !important;
    stroke-width: 0 !important;
}

/* B. WEISS & NONE HINTERGRUND (bg-weiss, bg-none) -> ICONS SCHWARZ (#000000) & KEIN BORDER */
.bg-weiss .counter-card svg [fill="none"],
.bg-weiss .counter-card svg [stroke],
.bg-weiss .counter-card svg .a,
.bg-weiss .counter-card svg line,
.bg-weiss .counter-card svg polyline,
.bg-weiss .counter-card svg circle,
.bg-weiss .counter-card svg rect,
.bg-none .counter-card svg [fill="none"],
.bg-none .counter-card svg [stroke],
.bg-none .counter-card svg .a,
.bg-none .counter-card svg line,
.bg-none .counter-card svg polyline,
.bg-none .counter-card svg circle,
.bg-none .counter-card svg rect,
.counter-box.bg-weiss svg [stroke],
.counter-box.bg-weiss svg [fill="none"],
.counter-box.bg-none svg [stroke],
.counter-box.bg-none svg [fill="none"] {
    stroke: #000000 !important;
    fill: none !important;
}

.bg-weiss .counter-card svg path:not([fill="none"]):not([stroke]),
.bg-none .counter-card svg path:not([fill="none"]):not([stroke]),
.counter-box.bg-weiss svg path:not([fill="none"]):not([stroke]),
.counter-box.bg-none svg path:not([fill="none"]):not([stroke]) {
    fill: #000000 !important;
    stroke: none !important;
    stroke-width: 0 !important;
}

/* C. HELLE / GRAUE / HELLBLAUE HINTERGRÜNDE (bg-hellblau, bg-grau) -> ICONS DUNKELBLAU (#12537E) */
.bg-hellblau .counter-card svg [fill="none"],
.bg-hellblau .counter-card svg [stroke],
.bg-hellblau .counter-card svg .a,
.bg-grau .counter-card svg [fill="none"],
.bg-grau .counter-card svg [stroke],
.bg-grau .counter-card svg .a,
.usp-block-box:not(.bg-dunkelblau) svg [fill="none"],
.usp-block-box:not(.bg-dunkelblau) svg [stroke],
.usp-block-box:not(.bg-dunkelblau) svg .a,
.counter-box.bg-hellblau svg [stroke],
.counter-box.bg-grau svg [stroke] {
    stroke: #12537E !important;
    fill: none !important;
}

.bg-hellblau .counter-card svg path:not([fill="none"]):not([stroke]),
.bg-grau .counter-card svg path:not([fill="none"]):not([stroke]),
.usp-block-box:not(.bg-dunkelblau) svg path:not([fill="none"]):not([stroke]),
.counter-box.bg-hellblau svg path:not([fill="none"]):not([stroke]),
.counter-box.bg-grau svg path:not([fill="none"]):not([stroke]) {
    fill: #12537E !important;
    stroke: none !important;
    stroke-width: 0 !important;
}

/* White and None background variants have no left/right padding and NO border */
.usp-block-box.bg-weiss,
.usp-block-box.bg-none,
.counter-box.bg-weiss,
.counter-box.bg-none {
    padding-left: 0 !important;
    padding-right: 0 !important;
    border: none !important;
    background-color: transparent !important;
}

/* Ensure text areas and their last elements have margin-bottom 0 */
.usp-lead,
.usp-lead > *:last-child,
.counter-box-text,
.counter-box-text > *:last-child,
.counter-card-body > *:last-child,
.usp-desc,
.usp-desc > *:last-child,
.usp-addtext,
.usp-addtext > *:last-child,
.usp-content > *:last-child,
.textinhalt-text,
.textinhalt-text > *:last-child {
    margin-bottom: 0 !important;
}

/* CTA Element text area bottom spacing before buttons */
.cta-text {
    margin-bottom: 20px !important;
}

/* Hero Video Element Enhancements (Mobile & Bottom-Left Card Box Styles) */
.hero-video-section {
    position: relative;
    width: 100%;
    overflow: hidden;
}
.hero-video-media-wrap {
    position: relative;
    width: 100%;
    overflow: hidden;
}

.hero-video-card-box {
    width: 100%;
    transition: all 0.3s ease;
}

@media (max-width: 1199.98px) {
    .hero-video-section {
        display: flex !important;
        flex-direction: column !important;
        height: auto !important;
        min-height: 0 !important;
        width: 100% !important;
    }
    .hero-video-media-wrap {
        position: relative !important;
        width: 100% !important;
        aspect-ratio: 16 / 9 !important;
        top: auto !important;
        left: auto !important;
        overflow: hidden !important;
    }
    .hero-video-section .hero-video-bg {
        position: absolute !important;
        top: 0 !important;
        left: 0 !important;
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
    }

@media (max-width: 767.98px) {
    .hero-video-media-wrap {
        height: 550px !important;
        aspect-ratio: auto !important;
    }
}
    .hero-video-text-section {
        position: relative !important;
        top: auto !important;
        bottom: auto !important;
        left: auto !important;
        width: 100% !important;
        display: block !important;
        padding: 0 !important;
        margin: 0 !important;
        background: transparent !important;
    }
    .hero-video-container {
        width: 100% !important;
        max-width: 100% !important;
        padding: 0 !important;
        margin: 0 !important;
    }
    .hero-video-container .row {
        margin: 0 !important;
    }
    .hero-video-container .row > [class*="col-"] {
        width: 100% !important;
        max-width: 100% !important;
        flex: 0 0 100% !important;
        padding: 0 !important;
    }
    .hero-video-card-box {
        width: 100% !important;
        max-width: 100% !important;
        padding: 25px 28px !important;
        border-radius: 0 !important;
        box-shadow: none !important;
    }
}

@media (min-width: 1200px) {
    .hero-video-section {
        width: 100% !important;
        height: auto !important;
        aspect-ratio: 16 / 9 !important;
        position: relative !important;
        display: flex !important;
        align-items: flex-end !important;
        min-height: 0 !important;
    }
    .hero-video-media-wrap {
        position: absolute !important;
        top: 0 !important;
        left: 0 !important;
        width: 100% !important;
        height: 100% !important;
        aspect-ratio: 16 / 9 !important;
        overflow: hidden !important;
    }
    .hero-video-section .hero-video-bg {
        position: absolute !important;
        top: 0 !important;
        left: 0 !important;
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
        transform: none !important;
    }
    .hero-video-text-section {
        position: absolute !important;
        bottom: 0px !important;
        left: 0 !important;
        width: 100% !important;
        z-index: 5 !important;
        padding: 0 !important;
        background: transparent !important;
        pointer-events: none;
    }
    .hero-video-card-box {
        pointer-events: auto;
        width: 100% !important;
        padding: 35px 40px;
        border-radius: 6px;
        box-shadow: 0 12px 36px rgba(0, 0, 0, 0.25);
    }
}

/* Background Color Variations for Hero Video Card Box */
.hero-video-card-box.bg-dunkelblau {
    background-color: #1f5b84 !important;
    color: #ffffff !important;
}
.hero-video-card-box.bg-dunkelblau .hero-video-title,
.hero-video-card-box.bg-dunkelblau .hero-video-lead {
    color: #ffffff !important;
}
.hero-video-card-box.bg-dunkelblau .btn-filled {
    background-color: #3C97D3 !important;
    border-color: #3C97D3 !important;
    color: #ffffff !important;
}
.hero-video-card-box.bg-dunkelblau .btn-filled:hover {
    background-color: #ffffff !important;
    border-color: #ffffff !important;
    color: #1f5b84 !important;
}
.hero-video-card-box.bg-dunkelblau .btn-outline {
    background-color: transparent !important;
    border-color: #ffffff !important;
    color: #ffffff !important;
}
.hero-video-card-box.bg-dunkelblau .btn-outline:hover {
    background-color: #ffffff !important;
    color: #1f5b84 !important;
}

.hero-video-card-box.bg-hellblau,
.hero-video-section.bg-hellblau,
.hero-video-wrapper.bg-hellblau,
.hero-video-container.bg-hellblau,
.hero-video-bubble.bg-hellblau,
.video-teaser.bg-hellblau {
    background-color: #F2F8FC !important;
    color: #12537E !important;
    border: none !important;
}
.hero-video-card-box.bg-hellblau .hero-video-title,
.hero-video-card-box.bg-hellblau .hero-video-lead {
    color: #12537E !important;
}
.hero-video-card-box.bg-hellblau .btn-filled {
    background-color: #12537E !important;
    border-color: #12537E !important;
    color: #ffffff !important;
}
.hero-video-card-box.bg-hellblau .btn-outline {
    background-color: transparent !important;
    border-color: #12537E !important;
    color: #12537E !important;
}

.hero-video-card-box.bg-weiss {
    background-color: #ffffff !important;
    color: #1a202c !important;
}
.hero-video-card-box.bg-weiss .hero-video-title,
.hero-video-card-box.bg-weiss .hero-video-lead {
    color: #1a202c !important;
}
.hero-video-card-box.bg-weiss .btn-filled {
    background-color: #12537E !important;
    border-color: #12537E !important;
    color: #ffffff !important;
}
.hero-video-card-box.bg-weiss .btn-outline {
    background-color: transparent !important;
    border-color: #12537E !important;
    color: #12537E !important;
}

.hero-video-card-box.bg-grau {
    background-color: #e9ecef !important;
    color: #1a202c !important;
}
.hero-video-card-box.bg-grau .hero-video-title,
.hero-video-card-box.bg-grau .hero-video-lead {
    color: #1a202c !important;
}
.hero-video-card-box.bg-grau .btn-filled {
    background-color: #12537E !important;
    border-color: #12537E !important;
    color: #ffffff !important;
}
.hero-video-card-box.bg-grau .btn-outline {
    background-color: transparent !important;
    border-color: #12537E !important;
    color: #12537E !important;
}

.hero-video-card-box.bg-none {
    background-color: transparent !important;
    box-shadow: none !important;
    padding: 0 !important;
}
.hero-video-card-box.bg-none .hero-video-title,
.hero-video-card-box.bg-none .hero-video-lead {
    color: #ffffff !important;
}

/* Dark Blue Second Bubble & Precise Overlay Styling */
.hero-video-section .hero-video-bubble-overlay {
    position: absolute;
    top: -20px;
    right: 30px;
    z-index: 10;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
}

@media (max-width: 1400px) {
    .hero-video-section .hero-video-bubble-overlay {
        top: -40px !important;
        right: 50px !important;
        scale: .9 !important;
    }
}

@media (max-width: 1200px) {
    .hero-video-section .hero-video-bubble-overlay {
        top: -45px !important;
        right: 50px !important;
        scale: .8 !important;
    }
}


.hero-video-section .hero-video-bubble.bubble-1 {
    width: 240px !important;
    height: 240px !important;
    background-color: #3C97D3 !important;
    border: 6px solid #ffffff !important;
    color: #ffffff !important;
    transform: rotate(-15deg) !important;
    margin-right: 40px !important;
    position: relative;
    z-index: 10;
}

.hero-video-section .hero-video-bubble.bubble-2.bubble-dunkelblau {
    width: 185px !important;
    height: 185px !important;
    background-color: #12537E !important;
    border: 5px solid #ffffff !important;
    color: #ffffff !important;
    position: relative;
    z-index: 12;
    margin-top: -80px !important;
    margin-right: -40px !important;
    transform: rotate(-15deg) !important;
}



@media (max-width: 767.98px) {
    .hero-video-section .hero-video-bubble-overlay {
        top: 153px !important;
        right: -10px !important;
        scale: .6 !important;
    }
    .hero-video-section .hero-video-bubble.bubble-2.bubble-dunkelblau {
        margin-top: -181px !important;
        margin-right: -100px !important;
    }
}

.hero-video-section .hero-video-bubble.bubble-2.bubble-dunkelblau .bubble-inner {
    font-size: 19px !important;
    line-height: 23px !important;
}

.hero-video-section .hero-video-bubble.bubble-1:hover {
    background-color: #ffffff !important;
    border-color: #3C97D3 !important;
    color: #3C97D3 !important;
}
.hero-video-section .hero-video-bubble.bubble-1:hover .bubble-inner {
    color: #3C97D3 !important;
}
.hero-video-section .hero-video-bubble.bubble-1:hover .bubble-inner .bubble-arrow svg line,
.hero-video-section .hero-video-bubble.bubble-1:hover .bubble-inner .bubble-arrow svg polyline {
    stroke: #3C97D3 !important;
}

.hero-video-section .hero-video-bubble.bubble-dunkelblau:hover {
    background-color: #ffffff !important;
    border-color: #12537E !important;
    color: #12537E !important;
}
.hero-video-section .hero-video-bubble.bubble-dunkelblau:hover .bubble-inner {
    color: #12537E !important;
}
.hero-video-section .hero-video-bubble.bubble-dunkelblau:hover .bubble-inner .bubble-arrow svg line,
.hero-video-section .hero-video-bubble.bubble-dunkelblau:hover .bubble-inner .bubble-arrow svg polyline {
    stroke: #12537E !important;
}



/* Gallery Grid Alternative Margin Top Reset */
.gallery-grid-alternative {
    margin-top: 0 !important;
}



.linksw a svg,
.linksw .primarybtn svg,
.linksw a span svg {
    width: 20px !important;
    height: 20px !important;
    max-width: 20px !important;
    max-height: 20px !important;
}

/* Termine-Liste Accordion & Link Styling */
.termine-acc-row {
    cursor: pointer;
}

.termine-acc-row .acc-icon,
.event-header-toggle .acc-icon {
    display: inline-block;
    position: relative;
    top: -1px;
    margin-left: 15px;
    flex-shrink: 0;
    transform: rotate(0deg);
    transition: transform 0.3s ease-in-out;
}

.termine-acc-row .acc-icon svg line,
.event-header-toggle .acc-icon svg line {
    stroke: #3D98D4;
    transition: stroke 0.3s ease-in-out;
}

.termine-acc-row:hover .acc-icon,
.event-header-toggle:hover .acc-icon {
    transform: rotate(45deg);
}

.termine-acc-row:hover .acc-icon svg line,
.event-header-toggle:hover .acc-icon svg line {
    stroke: #12537E;
}

.termine-acc-row.active .acc-icon,
.termine-acc-row[aria-expanded="true"] .acc-icon,
.event-header-toggle[aria-expanded="true"] .acc-icon {
    transform: rotate(90deg) !important;
}

.termine-acc-row.active .acc-icon svg line,
.termine-acc-row[aria-expanded="true"] .acc-icon svg line,
.event-header-toggle[aria-expanded="true"] .acc-icon svg line {
    stroke: #12537E !important;
}

.termine-acc-row.active .acc-icon svg line:first-of-type,
.termine-acc-row[aria-expanded="true"] .acc-icon svg line:first-of-type,
.event-header-toggle[aria-expanded="true"] .acc-icon svg line:first-of-type {
    stroke: transparent !important;
}

.agenda-detail-row td {
    padding: 0 !important;
    border: none !important;
    background-color: transparent !important;
}

.termine-detail-box {
    padding: 0 !important;
    margin: 0 !important;
    border: none !important;
    overflow: hidden !important;
    background-color: transparent !important;
}

.termine-detail-content {
    background-color: #ffffff !important;
    border-radius: 6px;
    margin-top: 1rem;
    margin-bottom: 0.5rem;
    font-size: 0.9375rem !important;
}

.termine-detail-content,
.termine-detail-content p,
.termine-detail-content div,
.termine-detail-content span,
.termine-detail-content li {
    font-size: 0.9375rem !important;
}

.event-description > :first-child {
    margin-top: 0 !important;
}

.event-description > :last-child {
    margin-bottom: 0 !important;
}

/* Smooth Easing & Discrete Transitions for Accordion/Collapse Elements (Open & Close) */
.collapsing,
.agenda-detail-row.collapse,
.event-details-box.collapse {
    transition: height 0.25s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.25s cubic-bezier(0.4, 0, 0.2, 1), display 0.25s allow-discrete !important;
    transition-behavior: allow-discrete !important;
}

.acc_block_content {
    transition: none !important;
}

.agenda-detail-row.collapse:not(.show):not(.collapsing),
.event-details-box.collapse:not(.show):not(.collapsing) {
    opacity: 0;
}

.agenda-detail-row.collapse.show,
.event-details-box.collapse.show,
.collapsing {
    opacity: 1;
}

@starting-style {
    .collapsing,
    .agenda-detail-row.collapse.show,
    .event-details-box.collapse.show {
        opacity: 0;
    }
}

/* Termine Link & File Icon Styling */
a.termine-liste-link,
.table-responsive table td a {
    color: #3D98D4 !important;
    text-decoration: none !important;
    font-weight: 400 !important;
    transition: color 0.2s ease-in-out;
}

a.termine-liste-link:hover,
.table-responsive table td a:hover {
    color: #12537E !important;
    text-decoration: none !important;
}

.event-file-icon-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 2px;
}

.event-file-icon-link svg {
    stroke: #3D98D4;
    transition: stroke 0.2s ease-in-out, transform 0.2s ease-in-out;
}

.event-file-icon-link:hover svg {
    stroke: #12537E !important;
    transform: scale(1.15);
}

/* Bildslider Legend Width & Position Fixes */
.swiper-slide .legend,
.swiper-slide.medium .legend,
.swiper-slide.small .legend {
    max-width: 100% !important;
    box-sizing: border-box !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
    font-size: 14px !important;
    line-height: 1.42 !important;
    margin-top: .75em !important;
    margin-bottom: 0 !important;
}

.swiper-slide.swiper-slide-active .legend {
    opacity: 1 !important;
}

/* Fix Swiper navigation arrows positioning so translateY never pulls them into legend text */
.swiper-button-prev,
.swiper-button-next {
    transform: none !important;
    position: relative !important;
    top: auto !important;
    bottom: auto !important;
    right: auto !important;
    margin-top: 10px !important;
}

.image p {
    font-size: 14px !important;
    line-height: 1.42 !important;
    color: #888888 !important;
    margin-top: .75em !important;
    margin-bottom: 0px !important;
}

.swiper-slide video,
.swiper-slide img {
    display: block !important;
}

/* Mobile Footer Adjustments (max-width: 991.98px) */
@media (max-width: 991.98px) {
    .footer {
        margin-top: 60px !important;
    }
    .footer_top {
        padding-top: 50px !important;
        padding-bottom: 50px !important;
    }
    .footer .footer_bottom,
    .footer .footer_bottom .footer_bottom_content,
    .footer .footer_bottom .footer_bottom_content .copyright,
    .footer .footer_bottom .footer_bottom_content a,
    .footer_bottom a,
    .footer_bottom .copyright {
        font-size: 14px !important;
        line-height: 1.75 !important;
    }

    main .sphm {
        z-index: 99 !important;
        position: fixed !important;
        top: 84px !important;
        left: 0 !important;
        right: 0 !important;
        background-color: white !important;
        padding-left: 30px !important;
        padding-right: 30px !important;
        padding-bottom: 10px !important;
        box-shadow: 0px 5px 10px 0px rgba(0, 0, 0, 0.05) !important;
    }
}

@media (min-width: 992px) {
    main .sphm {
        box-shadow: none !important;
    }
}

.snclicker {
    margin-top: 20px !important;
    margin-bottom: 10px !important;
}

/* Mobile Typography & Table Adjustments (max-width: 991.98px) */
@media (max-width: 991.98px) {
    .sph:empty,
    main .sph:empty {
        display: none !important;
        padding: 0 !important;
        margin: 0 !important;
    }
    .coont > h1.mobile-moved-h1,
    .coont > h1:first-child {
        display: block !important;
        position: static !important;
        top: auto !important;
        margin-top: 0 !important;
        margin-bottom: 0.75em !important;
        font-size: 32px !important;
        line-height: 1.25 !important;
        font-weight: 500 !important;
        color: #222222 !important;
    }
    .coont > h1.mobile-moved-h1:has(+ h2),
    .coont > h1.mobile-moved-h1:has(+ .h2),
    .coont > h1.mobile-moved-h1:has(+ div h2),
    .coont > h1.mobile-moved-h1:has(+ .content-element h2),
    .coont > h1:first-child:has(+ h2),
    .coont > h1:first-child:has(+ .h2),
    .coont > h1:first-child:has(+ div h2),
    .coont > h1:first-child:has(+ .content-element h2) {
        margin-bottom: -0.25em !important;
    }
    h2, .h2 {
        font-size: 24px !important;
        line-height: 1.2 !important;
    }
    h3, .h3 {
        font-size: 18px !important;
        line-height: 1.3 !important;
    }
    table, .table {
        font-size: 14px !important;
    }
    .search-result-meta,
    .search-path-link,
    .search-path-breadcrumb {
        display: none !important;
    }

    /* Mobile Form & Button Adjustments */
    label, .form-label, .tx-powermail label {
        margin-bottom: 4px !important;
        font-size: 16px !important;
    }
    .form-control, input.form-control, select.form-control, textarea.form-control {
        font-size: 16px !important;
    }
    legend:not(.img-legend):not(.vid-legend),
    fieldset legend,
    form legend,
    .tx-powermail legend {
        font-size: 20px !important;
        line-height: 1.2 !important;
    }
    .btn, .btn-primary, button.btn, input[type="submit"] {
        font-size: 18px !important;
        padding-left: 24px !important;
        padding-right: 24px !important;
    }
}

/* Reset margin-top for .coont.coonts across all breakpoints */
.coont.coonts {
    margin-top: unset !important;
}

/* ==========================================================================
   GLOBAL RESET: Remove border-radius & box-shadow across the site
   EXCEPTIONS: Header, Buttons, Blog Cards & Section, Form Elements, Icon-Wrappers, Bubbles, Rounded-Circle
   ========================================================================== */

/* Universal Reset for elements except Header, Buttons, Footer, Blog Cards/Section, Form Elements, Icon Wrappers, Bubbles, Rounded Circles, Cardholder & Cards, Browsebox Pagination */
*:not(.header):not(.header *):not(.footer):not(.footer *):not([class*="footer"]):not([class*="footer"] *):not(.btn):not(.btn *):not([class*="btn-"]):not(button):not(button *):not(input):not(select):not(textarea):not(.form-control):not(.form-select):not(.form-check-input):not(.tx-powermail input):not(.tx-powermail select):not(.tx-powermail textarea):not(.blog-card):not(.blog-card *):not(.blog-post-card):not(.blog-post-card *):not(.blog-item):not(.blog-item *):not(.blog-section):not(.blog-section *):not([class*="blog-"]):not([class*="blog-"] *):not(.post):not(.post *):not(.post-inner):not(.post-inner *):not(.post-image):not(.post-image *):not(.post-detail):not(.post-detail *):not(.postteaser):not(.postteaser *):not([class*="post"]):not([class*="post"] *):not(.event-item):not(.event-item *):not(.home-events-blog-grid *):not(.related-posts *):not(.tx-blog *):not(.hero-video-bubble):not(.hero-video-bubble *):not([class*="bubble"]):not([class*="bubble"] *):not(.icon-wrapper):not(.icon-wrapper *):not([class*="icon-wrapper"]):not([class*="icon-wrapper"] *):not([class*="icon-container"]):not([class*="icon-container"] *):not(.rounded-circle):not(.rounded-circle *):not(.cardholder):not(.cardholder *):not(.card):not(.card *):not(.tx-indexedsearch-browsebox):not(.tx-indexedsearch-browsebox *):not([class*="browsebox"]):not([class*="browsebox"] *):not(.pagebrowser):not(.pagebrowser *):not(.pagination):not(.pagination *) {
    border-radius: 0 !important;
    box-shadow: none !important;
}

/* Explicit element resets */
.teaser-box,
.video-teaser-box,
.hero-video-container,
.usp-block-box,
.usp-card,
.counter-box,
.cta-box,
.zitat-box,
.quote-box,
.acc_block,
.acc,
.ratio,
.rounded,
.rounded-1,
.rounded-2,
.rounded-3,
.rounded-4,
.rounded-5,
.rounded-pill,
.shadow,
.shadow-sm,
.shadow-lg,
.shadow-xs {
    border-radius: 0 !important;
    box-shadow: none !important;
}

/* Ensure Exceptions explicitly preserve their shadows and border-radius */

/* 1. Header */
.header {
    background-color: #fff !important;
    border-bottom: 1px solid #e0e0e0 !important;
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.1) !important;
}

/* 2. Buttons */
.btn,
[class*="btn-"],
.btn-cta,
.btn-filled,
.btn-outline,
.btn-primary,
.btn-secondary,
.video-switch-btn,
button,
input[type="submit"],
input[type="button"] {
    /* Retains button border-radius & box-shadow */
}

/* 3. Blog Section, Cards & Event Cards */
.blog-section,
.blog-section *,
[class*="blog-"],
[class*="blog-"] *,
.blog-card,
.blog-post-card,
.blog-item,
.event-item,
.home-events-blog-grid .card,
.related-posts .card,
.tx-blog .card,
.post,
.post-inner,
.postteaser__post {
    /* Excluded from global reset, retains original border-radius */
}

/* 4. Form Elements */
.form-control,
.form-select,
.form-check-input,
input,
textarea,
select {
    /* Retains form element border-radius & box-shadow */
}

/* 5. Icon-Wrapper & Bubbles */
.hero-video-bubble,
.hero-video-bubble *,
[class*="bubble"],
[class*="bubble"] *,
.icon-wrapper,
.icon-wrapper *,
[class*="icon-wrapper"],
[class*="icon-wrapper"] *,
[class*="icon-container"],
[class*="icon-container"] *,
.usp-icon,
.usp-icon * {
    /* Retains icon-wrapper & bubble border-radius & box-shadow */
}

/* 6. Rounded-Circle Elements */
.rounded-circle,
img.rounded-circle {
    border-radius: 50% !important;
}

/* 7. Form Framework Header + Form Margin Adjustment */
.CType-form_formframework header:has(+form),
.CType-form_formframework .frame-header:has(+form),
.CType-form_formframework h2:has(+form),
.CType-form_formframework h3:has(+form) {
    margin-bottom: 0 !important;
}

/* ==========================================================================
   FORM & CONTENT ELEMENT BACKGROUND COLOR STYLES (Hellblau, Dunkelblau, Grau)
   ========================================================================== */

.content-element.bg-dunkelblau,
.tx-powermail.bg-dunkelblau,
.CType-form_formframework.bg-dunkelblau {
    background-color: var(--brand-blue, #12537E) !important;
    color: #ffffff !important;
}

.content-element.bg-hellblau,
.tx-powermail.bg-hellblau,
.CType-form_formframework.bg-hellblau {
    background-color: var(--brand-blue-ultralight, #f2f8fc) !important;
    color: #1a1a1a !important;
}

.content-element.bg-grau,
.tx-powermail.bg-grau,
.CType-form_formframework.bg-grau {
    background-color: #f4f6f8 !important;
    color: #1a1a1a !important;
}

/* Dunkelblau Form Element Typography & Input Contrasts */
.bg-dunkelblau h1,
.bg-dunkelblau h2,
.bg-dunkelblau h3,
.bg-dunkelblau h4,
.bg-dunkelblau h5,
.bg-dunkelblau h6,
.bg-dunkelblau label,
.bg-dunkelblau .form-label,
.bg-dunkelblau legend,
.bg-dunkelblau p,
.bg-dunkelblau span:not(.badge),
.bg-dunkelblau fieldset legend {
    color: #ffffff !important;
}

.bg-dunkelblau .form-control,
.bg-dunkelblau .form-select,
.bg-dunkelblau input[type="text"],
.bg-dunkelblau input[type="email"],
.bg-dunkelblau input[type="tel"],
.bg-dunkelblau input[type="number"],
.bg-dunkelblau input[type="date"],
.bg-dunkelblau textarea,
.bg-dunkelblau select {
    background-color: #ffffff !important;
    color: #333333 !important;
    border: 1px solid #ffffff !important;
}

/* 8. First Header / Title Top Margin Reset in Background Containers */
.content-element.bg-dunkelblau > header:first-child,
.content-element.bg-dunkelblau > .frame-header:first-child,
.content-element.bg-dunkelblau > h1:first-child,
.content-element.bg-dunkelblau > h2:first-child,
.content-element.bg-dunkelblau > h3:first-child,
.content-element.bg-dunkelblau > h4:first-child,
.content-element.bg-dunkelblau > h5:first-child,
.content-element.bg-dunkelblau > h6:first-child,
.content-element.bg-hellblau > header:first-child,
.content-element.bg-hellblau > .frame-header:first-child,
.content-element.bg-hellblau > h1:first-child,
.content-element.bg-hellblau > h2:first-child,
.content-element.bg-hellblau > h3:first-child,
.content-element.bg-hellblau > h4:first-child,
.content-element.bg-hellblau > h5:first-child,
.content-element.bg-hellblau > h6:first-child,
.content-element.bg-grau > header:first-child,
.content-element.bg-grau > .frame-header:first-child,
.content-element.bg-grau > h1:first-child,
.content-element.bg-grau > h2:first-child,
.content-element.bg-grau > h3:first-child,
.content-element.bg-grau > h4:first-child,
.content-element.bg-grau > h5:first-child,
.content-element.bg-grau > h6:first-child,
.bg-dunkelblau > header:first-child h1,
.bg-dunkelblau > header:first-child h2,
.bg-dunkelblau > header:first-child h3,
.bg-dunkelblau > .frame-header:first-child h1,
.bg-dunkelblau > .frame-header:first-child h2,
.bg-dunkelblau > .frame-header:first-child h3,
.bg-hellblau > header:first-child h1,
.bg-hellblau > header:first-child h2,
.bg-hellblau > header:first-child h3,
.bg-hellblau > .frame-header:first-child h1,
.bg-hellblau > .frame-header:first-child h2,
.bg-hellblau > .frame-header:first-child h3,
.bg-grau > header:first-child h1,
.bg-grau > header:first-child h2,
.bg-grau > header:first-child h3,
.bg-grau > .frame-header:first-child h1,
.bg-grau > .frame-header:first-child h2,
.bg-grau > .frame-header:first-child h3,
.form-element > header:first-child,
.form-element > .frame-header:first-child,
.form-element > h1:first-child,
.form-element > h2:first-child,
.form-element > h3:first-child,
.form-element header:first-child h1,
.form-element header:first-child h2,
.form-element header:first-child h3,
.tx-powermail > header:first-child,
.tx-powermail > .frame-header:first-child,
.tx-powermail header:first-child h1,
.tx-powermail header:first-child h2,
.tx-powermail header:first-child h3,
.CType-form_formframework > header:first-child,
.CType-form_formframework > .frame-header:first-child,
.CType-form_formframework header:first-child h1,
.CType-form_formframework header:first-child h2,
.CType-form_formframework header:first-child h3 {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

/* 9. Button Contrast Variations for Dunkelblau Background (.bg-dunkelblau) */
.bg-dunkelblau .btn-primary,
.bg-dunkelblau .btn-filled,
.bg-dunkelblau button[type="submit"],
.bg-dunkelblau input[type="submit"],
.bg-dunkelblau .powermail_submit {
    background-color: #3C97D3 !important;
    border-color: #3C97D3 !important;
    color: #ffffff !important;
}

.bg-dunkelblau .btn-primary:hover,
.bg-dunkelblau .btn-filled:hover,
.bg-dunkelblau button[type="submit"]:hover,
.bg-dunkelblau input[type="submit"]:hover,
.bg-dunkelblau .powermail_submit:hover {
    background-color: #ffffff !important;
    border-color: #ffffff !important;
    color: #12537E !important;
}

.bg-dunkelblau .btn-secondary,
.bg-dunkelblau .btn-outline,
.bg-dunkelblau button[type="button"],
.bg-dunkelblau .btn-light,
.bg-dunkelblau .amfstep {
    background-color: transparent !important;
    border: 1px solid #ffffff !important;
    color: #ffffff !important;
}

.bg-dunkelblau .btn-secondary:hover,
.bg-dunkelblau .btn-outline:hover,
.bg-dunkelblau button[type="button"]:hover,
.bg-dunkelblau .btn-light:hover,
.bg-dunkelblau .amfstep:hover,
.bg-dunkelblau .amfstep.active {
    background-color: #ffffff !important;
    border-color: #ffffff !important;
    color: #12537E !important;
}

.bg-dunkelblau .amfstep.active svg path {
    stroke: #12537E !important;
}

/* Header Desktop CTA Button */
.header_desktop_cta {
    background-color: #3D98D4 !important;
    border-color: #3D98D4 !important;
    color: #ffffff !important;
    font-size: 20px !important;
    font-weight: 400 !important;
    height: 50px !important;
    padding: 0 25px !important;
    border-radius: 5px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-decoration: none !important;
    transition: background-color 0.2s ease, border-color 0.2s ease !important;
    white-space: nowrap !important;
}

.header_desktop_cta:hover {
    background-color: #12537E !important;
    border-color: #12537E !important;
    color: #ffffff !important;
}

/* Header Search Field */
.header_search {
    display: flex !important;
    align-items: center !important;
    position: relative !important;
    width: 220px !important;
    height: 45px !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}

@media only screen and (max-width: 1249px) {
    .header_search {
        display: none !important;
    }
}

.header_search_form {
    display: flex !important;
    align-items: center !important;
    position: relative !important;
    width: 100% !important;
    height: 45px !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    outline: none !important;
    outline: 0 !important;
}

.header_search_form:focus,
.header_search_form:focus-within,
.header_search_form:active,
.header_search_form:hover {
    background: transparent !important;
    border: 0 !important;
    border-color: transparent !important;
    box-shadow: none !important;
    outline: none !important;
    outline: 0 !important;
}

.header_search_input,
.header_search_input_mobile {
    position: relative !important;
    width: 100% !important;
    height: 45px !important;
    background: #f3f3f3 !important;
    background-color: #f3f3f3 !important;
    border: 0 !important;
    border-radius: 25px !important;
    padding-left: 42px !important;
    padding-right: 16px !important;
    font-size: 1rem !important;
    color: #666666 !important;
    outline: none !important;
    outline: 0 !important;
    box-shadow: none !important;
    transition: none !important;
    z-index: 1 !important;
    appearance: none !important;
    -webkit-appearance: none !important;
}

.header_search_input::placeholder,
.header_search_input_mobile::placeholder {
    color: #666666 !important;
    opacity: 0.8 !important;
}

.header_search_input:focus,
.header_search_input:active,
.header_search_input:hover,
.header_search_input_mobile:focus,
.header_search_input_mobile:active,
.header_search_form.search-active .header_search_input {
    background: #f3f3f3 !important;
    background-color: #f3f3f3 !important;
    border: 0 !important;
    border-color: transparent !important;
    outline: none !important;
    outline: 0 !important;
    box-shadow: none !important;
    color: #666666 !important;
}

.header_search_button {
    position: absolute !important;
    left: 14px !important;
    right: auto !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    background: transparent !important;
    border: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    width: 18px !important;
    height: 18px !important;
    color: #666666 !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    outline: none !important;
    outline: 0 !important;
    box-shadow: none !important;
    z-index: 2 !important;
}

.header_search_button:focus,
.header_search_button:active,
.header_search_button:hover {
    background: transparent !important;
    border: 0 !important;
    outline: none !important;
    outline: 0 !important;
    box-shadow: none !important;
    color: #12537E !important;
}

/* Mobile Search Field */
.mobile_search {
    margin-bottom: 30px !important;
    width: 100% !important;
}

.mobile_search .header_search_form {
    width: 100% !important;
    height: 50px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
}

.header_search_input_mobile {
    height: 50px !important;
    background: #f3f3f3 !important;
    background-color: #f3f3f3 !important;
    border: 0 !important;
    border-radius: 25px !important;
    padding-left: 44px !important;
    padding-right: 16px !important;
    font-size: 1rem !important;
    color: #666666 !important;
    outline: none !important;
    outline: 0 !important;
    box-shadow: none !important;
    position: relative !important;
    z-index: 1 !important;
}

.header_search_input_mobile::placeholder {
    color: #666666 !important;
    opacity: 0.8 !important;
}

.header_search_input_mobile:focus,
.header_search_input_mobile:active {
    background: #f3f3f3 !important;
    background-color: #f3f3f3 !important;
    border: 0 !important;
    outline: none !important;
    box-shadow: none !important;
    color: #666666 !important;
}

.mobile_search .position-absolute {
    z-index: 2 !important;
    left: 16px !important;
    padding-left: 0 !important;
    padding-bottom: 3px;
}

.mobile_search .position-absolute svg,
.mobile_search .text-muted {
    color: #666666 !important;
}

/* Exclude Search Browsebox / Pagebrowser Pagination buttons from border-radius reset */
.tx-indexedsearch-browsebox li a,
.tx-indexedsearch-browsebox li span,
.tx-indexedsearch-browsebox li strong a,
.tx-indexedsearch-browsebox li strong span,
ul.browsebox li a,
ul.browsebox li span,
.search-pagination .tx-indexedsearch-browsebox li a,
.search-pagination .tx-indexedsearch-browsebox li span,
.tx-indexedsearch-browsebox a,
.tx-indexedsearch-browsebox span {
    border-radius: 5px !important;
}
