/* Überschrift auf allen Seiten */
.main-title {
	color: var(--c-prominent);
	display: block;
	font-size: var(--f-size-3xl);	
	font-weight: var(--f-weight-xb);
	letter-spacing: -.015em;
	line-height: 1.15;
	margin-bottom: .25lh;
	text-wrap: balance;
	word-break: break-word;
}

.heading,
.subheading {
	color: var(--c-prominent);
	font-size: var(--f-size-xl);
	font-weight: var(--f-weight-xb);
	line-height: 1.2;
	margin-block: .75lh .375lh;
	text-wrap: balance;
}

.subheading {
	font-size: var(--f-size-l);
	margin-block: .5lh .25lh;
}

/* === SVG Icons === */
.site__icons {
	display: none;
}
.icon {
	aspect-ratio: 1;
	fill: none;
	height: 1.25rem;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.25;
	width: auto;
}
.icon.icon-menu {
	height: 1.75rem;
}
.icon.icon-search {
	height: 1.3rem;
	stroke-width: 1.7;
}
.icon.icon-chevron {
	stroke: transparent;
	stroke-width: 2;
	transition: stroke var(--motion-duration-normal) ease-in-out;
}

/* === Default Inline Links === */
.link {
	color: var(--c-accent);
	hyphens: none;
	text-decoration: underline;
	text-decoration-thickness: from-font;
	text-underline-offset: .18em;
	transition: text-underline-offset var(--motion-duration-fast) ease-in-out;
}
.link:hover {
	text-underline-offset: .25em;
}

/* ===== HEADER COMPONENT ===== */
.site__header {
	align-items: center;
	background-color: var(--c-canvas);
	display: flex;
	flex-wrap: wrap;
	position: sticky;
	top: 0;
	z-index: 9;
	transition: transform var(--motion-duration-normal) ease-in-out;
 	transform: translateY(0);
 	padding: max(.6rem, 1.25vw) 3vw;
}
.site__header--hidden {
	transform: translateY(-100%);	
}
.site__homelink {
	align-items: center;
	display: flex;
	gap: var(--gap-s);
}
.site__title {
	letter-spacing: -0.01em;
}
.site__logo {
	aspect-ratio: 297 / 178;
	height: 1.2rem;
}
.site-submenu__toggle, .site__search, .site__menu {
	cursor: pointer;
	display: inline-flex;
}
.site-submenu__toogle .icon {
	stroke: transparent;
	/*transition: stroke var(--motion-duration-normal) ease-in-out;*/
}
.site-submenu__toggle:focus-visible .icon {
	stroke: var(--c-secondary);
}
.site__search {
	font-size: var(--f-size-s);
	margin-left: auto;
	margin-right: var(--gap-s);
}
.site__search .search-button-label {
	display: none;
}
.site__navigation {
	display: none;
}
/* nicht auf der Startseite, sonst 3vi Abstand zum Content */
body:not(.home) > .site__header {
  margin-bottom: clamp(1rem, 2.462vw + 0.385rem, 3rem); 
}
/* ab 1024px Breite immer 3vi Abstand zum Content, auch auf der Startseite */
@media (min-width: 1024px) {
	.site__header {
		margin-bottom: clamp(1rem, 2.462vw + 0.385rem, 3rem);
	}
}
@media (min-width: 1300px) {
	.site__header {
		justify-content: center;
		letter-spacing: -.005em;
	}
	.site__homelink {
		border-right: 1px solid var(--c-canvas-medium);
		padding-right: var(--gap-m);
		margin-right: var(--gap-xs);
	}
	.site__title {
		font-weight: var(--f-weight-bd);
		letter-spacing: unset;
	}
	.site__search .search-button-label {
		display: inline;
	}
	.site__search .icon-search {
		display: none;
	}
	.site__menu {
		display: none;
	}
	.site__navigation, .site-menu, .site-menu__item, .site-submenu__toggle {
		align-items: center;
		display: flex;
		font-size: var(--f-size-s);
	}
	.site-submenu[hidden] {
		display: none;
	}
	.site-menu__link, .site__search {
		padding-inline: var(--gap-xs);
		margin-left: var(--gap-s);
		transition: background-color var(--motion-duration-fast) ease-in-out;
	}
	.site-menu__link:hover, .site__search:hover, .site-submenu__link:hover {
		background: var(--c-canvas-subtle);
	}
	.is-amtliches, .is-politik, .is-kontakt {
		margin-left: calc( var(--gap-xs) / 2 );
	}
	.site-submenu__toggle {
		width: var(--gap-s);
	}
	.site-submenu__toggle:focus-visible .icon-chevron {
		stroke: var(--c-secondary);
	}
	.site-menu__item.has-submenu {
		position: relative;
	}
	.site-submenu {
	  display: none;
	  padding: var(--gap-s) 0 0 0;
	  position: absolute;
	  top: 100%;
	  left: 0;
	  background: var(--c-canvas); 
	  white-space: nowrap;
	  z-index: 10;
	}
	.site-menu__item.has-submenu:hover .site-submenu {
	  display: flex;
	  flex-direction: column;
	}
	.site-submenu__link {
		border-top: 1px solid var(--c-canvas-subtle);
		display: block;
		padding: var(--gap-xs) var(--gap-m) var(--gap-xs) calc( var(--gap-s) + var(--gap-xs) );
	}
}

/* ===== FOOTER COMPONENT ===== */
.site__footer {
	border-top: 1px solid var(--c-canvas-subtle);
	display: grid;
	font-size: var(--f-size-s);
	gap: var(--gap-m);
	margin-block: var(--gap-m);
	margin-inline: auto;
 	padding: var(--gap-m) 3vw;
}

.site__footer-item {
	text-align: center;
}

.site__footer .medium {
	align-items: center;
	display: flex;
	gap: var(--gap-xs);
	justify-content: center;
}
		
.site__footer .impressum {
	text-wrap: balance;
}

.site__footer .icon {
	height: 1rem;
}

@media (min-width: 640px) {

	.site__footer {
		grid-template-columns: repeat(2, 1fr);
	}

	.site__footer-item {
		text-align: left;
	}

	.site__footer .medium {
		justify-content: left;
	}

	.site__footer .impressum {
		text-wrap: unset;
	}

}

@media (min-width: 1200px) {

	.site__footer {
		gap: var(--gap-m);
		grid-template-columns: repeat(4, minmax(250px, auto));
		max-width: 1500px;
	}

}

@media (min-width: 1500px) {

	.site__footer {
		gap: var(--gap-l);
	}

}

/* ===== UTILITY COMPONENTS ===== */
.figcaption {
	color: var(--c-secondary);
	line-height: 1.3;
	margin-block-start: 0.3em;
}

/* ===== TEASER COMPONENTS ===== */
.teaser {
	display: flex;
	flex-direction: column;
	padding: var(--gap-m) 0;
	position: relative;
	border-top: 1px solid var(--c-canvas-subtle);
}
.teaser:first-of-type {
	border-top: none;
}
.teaser__topic {
	display: block;
	color: var(--c-secondary);
	font-size: var(--f-size-s);
	font-variant-caps: all-small-caps;
	font-weight: var(--f-weight);
	letter-spacing: 0.01em;
	margin-bottom: .25lh;
}
.teaser__title {
	font-size: var(--f-size-l);
	font-weight: var(--f-weight-bd);
	line-height: 1.2;
	margin-bottom: .5lh;
	text-wrap: balance;
}
/* BREAKING NEWS */
.breaking .teaser__title {
	background: var(--c-warning);
	color: var(--c-dark);
	padding: var(--gap-xs);
}
.breaking .teaser__topic {
	color: var(--c-dark);
}
.teaser__figure {
	order: 2;
}
.teaser__image {
	aspect-ratio: 2;
	border-radius: var(--radius-sm);
	object-fit: cover;
	width: 100%;
}
.teaser__text {
	display: contents;
}
.teaser__paragraph {
	hyphens: auto;
	hyphenate-limit-chars: 10 4 4;
	line-height: 1.45;
	order: 3;
	text-wrap: pretty;
}
.teaser__date {
	color: var(--c-secondary);
	border-right: 1px solid var(--c-canvas-medium);
	padding-right: .2rem;
	margin-right: .4rem;
}
.teaser__link {
	display: block;
}
.teaser__link::after {
	content: '';
	inset: 0;
	position: absolute;
}
@media (min-width: 768px) {
	.teaser {
		flex-direction: row;
		gap: var(--gap-m);
	}
	.teaser__text {
		display: block;
		flex: 0 1 60%;
		order: 2;
	}
	.teaser__text:only-child {
		flex-basis: 100%;
	}
	.teaser__figure {
		flex: 1 1 30%;
		order: 1;
	}
	.teaser__image {
		aspect-ratio: 1.5;
	}
}
@media (min-width: 1024px) {
	.teaser {
		border: unset;
		flex-direction: column;
		gap: unset;
		padding: unset;
	}
	.teaser__image {
		aspect-ratio: 2;
	}
}

/* ==== PAGINATION ==== */

.pagination-wrapper {
	display: flex;
	grid-column: 1 / -1;
	justify-content: center;
}

.pagination, .search ul.page-numbers {
	display: flex;
}

.pagination .page-item, .search ul.page-numbers li {
	margin-inline: var(--gap-xs);
}

.pagination .page-numbers, .search li .page-numbers {
	border-radius: var(--radius-sm);
	background: var(--c-canvas-accent);
	display: block;
	padding-inline: var(--gap-s);
	text-align: center;
}

.pagination .page-numbers.current, .pagination .page-numbers.dots, .search li .page-numbers.current, .search li .page-numbers.dots {
	background: var(--c-canvas-subtle);
}

/* ===== SUCHFELD COMPONENT ===== */
.search-container {
	width: 100%;
	max-height: 0;
	overflow: hidden;
	opacity: 0;
	transform: translateY(-8px);
	transition: 
		max-height var(--motion-duration-normal) ease-in-out,
		opacity var(--motion-duration-normal) ease-in-out,
		transform var(--motion-duration-normal) ease-in-out;
	position: relative;
}
.search-container.search-active {
	max-height: 150px; 
	opacity: 1;
	transform: translateY(0);
	transition: 
		max-height var(--motion-duration-normal) ease-in-out,
		opacity var(--motion-duration-normal) ease-in-out,
		transform var(--motion-duration-normal) ease-in-out,
		overflow 0ms var(--motion-duration-normal);
	overflow: visible;
}
.search-wrapper {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: var(--gap-s);
	padding: var(--gap-m) 0 var(--gap-s) 0;
	flex-wrap: wrap;
}
.search-input {
	width: 100%;
	max-width: 400px;
	padding: var(--gap-xs);
	border-bottom: 1px solid var(--c-canvas-medium);
	color: var(--c-primary);
	transition: border-color var(--motion-duration-normal) ease-in-out;
	min-height: 44px;
}
.search-input::placeholder {
	color: var(--c-secondary);
	opacity: 0.8;
}
.search-button {
	background-color: var(--c-canvas-accent);
	color: var(--c-prominent);
	cursor: pointer;
	min-height: 44px;
	min-width: 44px;
	padding: var(--gap-xs) var(--gap-s);
	text-align: center;
	transition: background-color var(--motion-duration-normal) ease-in-out;
	white-space: nowrap;
}
.search-button:hover {
	background-color: oklch(from var(--c-accent) calc(l - 0.1) c h);
}
.search-button:active {
	transform: scale(0.98);
}
.ajax-search-results {
	position: absolute;
	background: var(--c-canvas);
	border: 1px solid var(--c-canvas-medium);
	max-height: 400px;
	overflow-y: auto;
	z-index: 1000;
	display: none;
	margin: 0;
	padding: 0;
}
.ajax-search-results.show {
	display: block;
}
.ajax-search-results .loading {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: var(--gap-m);
	color: var(--c-secondary);
	gap: var(--gap-xs);
}
.ajax-search-results .loading-spinner {
	width: 16px;
	height: 16px;
	border: 2px solid var(--c-canvas-medium);
	border-top: 2px solid var(--c-accent);
	border-radius: 50%;
	animation: spin 1s linear infinite;
}
@keyframes spin {
	0% { transform: rotate(0deg); }
	100% { transform: rotate(360deg); }
}
.ajax-search-results .result-item {
	border-bottom: 1px solid var(--c-canvas-subtle);
	padding: var(--gap-s);
	transition: background-color var(--motion-duration-fast) ease-in-out;
}
.ajax-search-results .result-item:last-child {
	border-bottom: none;
}
.ajax-search-results .result-item h4 {
	font-size: var(--f-size-m);
	font-weight: var(--f-weight-bd);
	margin-bottom: 0.25rem;
	line-height: 1.3;
}
.ajax-search-results .result-item h4 a {
	color: var(--c-primary);
	text-decoration: none;
	display: block;
	padding: 0.25rem 0;
}
.ajax-search-results .result-item h4 a:focus {
	background-color: var(--c-canvas-accent);
}
.ajax-search-results .result-item p {
	font-size: var(--f-size-s);
	color: var(--c-secondary);
	line-height: 1.4;
	margin: 0;
}
.ajax-search-results .result-item mark {
	background-color: var(--c-canvas-accent);
	color: var(--c-prominent);
	font-weight: var(--f-weight-bd);
}
.ajax-search-results .no-results,
.ajax-search-results .error {
	padding: var(--gap-s);
	text-align: center;
	color: var(--c-secondary);
}
.ajax-search-results .error {
	color: var(--c-prominent);
	background-color: var(--c-alert);
	margin: var(--gap-xs);
}
@media (max-width: 550px) {
	.search-wrapper {
		flex-direction: column;
		gap: var(--gap-s);
	}
	.search-input {
		max-width: none;
		order: 1;
	}
	.search-button {
		width: 100%;
		order: 2;
	}
}
@media (min-width: 768px) {
	.ajax-search-results {
		left: 50%;
		right: auto;
		transform: translateX(-50%);
		width: 80%;
		max-width: 600px;
	}
}
@media (max-width: 768px) {
	.search-input,
	.search-button {
		min-height: 48px;
	}
}

/* ===== SCREEN READER & UTILITY ===== */
.screen-reader-only,
.search-label,
.search-help,
.search-status {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* ===== DESKTOP SUBMENU KEYBOARD NAVIGATION ===== */
.site-menu__item.submenu-open .site-submenu {
	display: flex !important;
	flex-direction: column;
}
.site-submenu__toggle:focus-visible,
.site-submenu__link:focus-visible {
	outline: 2px solid var(--c-focus);
	outline-offset: 2px;
}
.site-submenu__link:focus-visible {
	background-color: var(--c-canvas-subtle);
}
.site-submenu__toggle .icon {
	transform: rotate(0deg);
	transition:
		stroke var(--motion-duration-normal) ease-in-out,
		transform var(--motion-duration-normal) ease-in-out;
}
.site-menu__item.submenu-open .site-submenu__toggle .icon {
	transform: rotate(180deg);
}

/* ===== MOBILE NAVIGATION ===== */

/* Overlay & Container */
.mobile-nav-overlay {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0, 0, 0, 0.5);
	z-index: 9999;
	opacity: 0;
	transition: 
        opacity var(--motion-duration-normal) ease-in-out,
        backdrop-filter var(--motion-duration-normal) ease-in-out;
}
.mobile-nav-overlay.mobile-nav-active {
	opacity: 1;
}
.mobile-nav-container {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: var(--c-canvas);
	display: flex;
	flex-direction: column;
	overflow-y: auto;
	transform: translateX(100%);
    transition: transform var(--motion-duration-normal) ease-in-out;
    will-change: transform;
    backface-visibility: hidden;
}
.mobile-nav-overlay.mobile-nav-active .mobile-nav-container {
	transform: translateX(0);
}

/* Header */
.mobile-nav-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 1rem;
	border-bottom: 1px solid var(--c-canvas-medium);
	background-color: var(--c-canvas);
	position: sticky;
	top: 0;
	z-index: 10;
}
.mobile-nav-title {
	font-size: 1.25rem;
	font-weight: var(--f-weight-bd);
	margin: 0;
	color: var(--c-primary);
}
.mobile-nav-close {
	background: none;
	border: none;
	padding: 0.5rem;
	cursor: pointer;
	color: var(--c-primary);
	min-width: 44px;
	min-height: 44px;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background-color var(--motion-duration-fast) ease-in-out;
}
.mobile-nav-close:hover {
	background-color: var(--c-canvas-subtle);
}
.mobile-nav-close:focus-visible {
	outline: 2px solid var(--c-focus);
	outline-offset: 2px;
}
.mobile-nav-close .icon {
	width: 1.5rem;
	height: 1.5rem;
}

/* Content & Menu Structure */
.mobile-nav-content {
	flex: 1;
	padding: 1rem;
}
.mobile-site-navigation {
	display: block !important;
}
.mobile-site-navigation .site-menu {
	flex-direction: column;
	gap: 0;
}
.mobile-site-navigation .site-menu__item {
	width: 100%;
	border-bottom: 1px solid var(--c-canvas-subtle);
}
.mobile-site-navigation .site-menu__link {
	display: block;
	padding: 1rem;
	font-size: 1.1rem;
	color: var(--c-primary);
	text-decoration: none;
	transition: background-color var(--motion-duration-fast) ease-in-out;
	margin: 0;
}
.mobile-site-navigation .site-menu__link:hover,
.mobile-site-navigation .site-menu__link:focus-visible {
	background-color: var(--c-canvas-subtle);
	outline: none;
}

/* Submenu Toggle & Icon */
.mobile-site-navigation .site-menu__item.has-submenu {
	position: relative;
	display: flex;
	flex-direction: column;
}
.mobile-site-navigation .site-menu__item.has-submenu > .site-menu__link {
	padding-right: 4rem;
}
.mobile-site-navigation .site-submenu__toggle {
	position: absolute;
	right: 1rem;
	top: 1rem;
	background: none;
	border: none;
	padding: 0.5rem;
	cursor: pointer;
	color: var(--c-secondary);
	min-width: 44px;
	min-height: 44px;
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 10;
	transition: background-color var(--motion-duration-normal) ease-in-out, transform var(--motion-duration-fast) ease-in-out;
}
.mobile-site-navigation .site-submenu__toggle:hover,
.mobile-site-navigation .site-submenu__toggle:focus {
	background-color: var(--c-canvas-subtle);
	transform: translateY(-1px);
}
.mobile-site-navigation .site-submenu__toggle:active {
    transform: translateY(0);
}
.mobile-site-navigation .site-submenu__toggle .icon-chevron {
	stroke: currentColor;
    transition: transform var(--motion-duration-fast) ease-in-out;
    transform-origin: center;
    will-change: transform;
    backface-visibility: hidden;
}
.mobile-site-navigation .site-menu__item.mobile-submenu-open .site-submenu__toggle .icon-chevron {
    transform: rotate(180deg);
}

/* Mobile Submenu Container & Links */
.mobile-site-navigation .site-submenu {
    display: flex;
    flex-direction: column;
    background-color: var(--c-canvas);
    margin: 0;
    padding: 0;
    border: none;
    box-shadow: none;
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    transform: translateY(-8px);
    transition: 
        max-height var(--motion-duration-normal) ease-in-out,
        opacity var(--motion-duration-normal) ease-in-out,
        transform var(--motion-duration-normal) ease-in-out;
    will-change: transform;
    backface-visibility: hidden;
}
.mobile-site-navigation .site-submenu[hidden] {
    display: none;
}
.mobile-site-navigation .site-menu__item.mobile-submenu-open .site-submenu {
    max-height: 600px;
    opacity: 1;
    transform: translateY(0);
    transition-delay: 0s, 0.1s, 0.05s;
}
.mobile-site-navigation .site-submenu__link {
    display: block;
	padding: 0.75rem 1rem 0.75rem 2.5rem;
	font-size: 1rem;
	color: var(--c-secondary);
	border-top: 1px solid var(--c-canvas-medium);
	text-decoration: none;
	background-color: var(--c-canvas);
    opacity: 0;
    transition: 
        background-color var(--motion-duration-normal) ease-in-out,
        opacity var(--motion-duration-normal) ease-in-out;
}
.mobile-site-navigation .site-submenu__link:first-child {
	border-top: none;
}
.mobile-site-navigation .site-submenu__link:hover,
.mobile-site-navigation .site-submenu__link:focus-visible {
	background-color: var(--c-canvas-subtle);
}

/* Staggered Animation for Submenu Links */
.mobile-site-navigation .site-menu__item.mobile-submenu-open .site-submenu__link {
    opacity: 1;
    transform: translateX(0);
}

/* Desktop: Mobile Navigation verstecken */
@media (min-width: 1300px) {
	.mobile-nav-overlay {
		display: none !important;
	}
}
@media (max-width: 320px) {
    .mobile-site-navigation .site-submenu { max-height: 300px; }
    .mobile-site-navigation .site-submenu .site-submenu__link { transform: translateX(-8px); }
}
@media (min-width: 480px) {
    .mobile-site-navigation .site-submenu { max-height: 500px; }
}

/* ===== ACCESSIBILITY & HIGH CONTRAST ===== */
@media (prefers-contrast: high) {
	.search-input,
	.search-button {
		border-width: 3px;
	}
	.site-submenu__toggle:focus-visible,
	.site-submenu__link:focus-visible {
		outline-width: 3px;
	}
}
@media (prefers-reduced-motion: reduce) {
    .search-container,
    .search-input,
    .search-button,
    .site-submenu__toggle .icon,
    .mobile-nav-overlay,
    .mobile-nav-container,
    .mobile-site-navigation .site-submenu,
    .mobile-site-navigation .site-submenu__toggle,
    .mobile-site-navigation .site-submenu__toggle .icon-chevron,
    .mobile-site-navigation .site-submenu__link {
        transition-duration: 0.01s !important;
        transition-delay: 0s !important;
        animation: none !important;
    }
    .search-button:active {
		transform: none;
	}
}