/*
 * Template stream321 – Optik wie das fruehere gk_cuttingedge (Joomla 1.5), neu geschrieben.
 * Werte (Schriftgroessen, Abstaende) sind an der Live-Seite gemessen (gerenderte Werte, nicht die alten CSS-Prozente).
 * Desktop ab 1000px mit den Original-Grafiken, darunter fluides Layout ohne die festen 981px-Rahmengrafiken.
 */

/* ---------- Grundlagen ---------- */
html, body, div, span, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, em, strong, ol, ul, li, dl, dt, dd, fieldset, form, label, legend, figure {
	margin: 0;
	padding: 0;
	border: 0;
	vertical-align: baseline;
}
html {
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
}
body {
	background: #45494d url('../images/bg_page.png') repeat-x 0 0;
	font: 400 12px/16px Arial, Verdana, sans-serif;
	color: #7d7f8b;
}
a, a:link, a:visited, a:active {
	color: #304c84;
	text-decoration: none;
}
a:hover {
	text-decoration: underline;
}
a:focus-visible, button:focus-visible, summary:focus-visible {
	outline: 2px solid #3d6fe0;
	outline-offset: 2px;
}
img {
	border: 0;
}
table {
	border-collapse: separate;
	border-spacing: 0;
}
th, td {
	font-weight: normal;
	text-align: left;
}
th {
	padding: 4px;
}
td {
	padding: 1px;
}
ul {
	list-style: none;
	padding: 0 0 0 2px;
	margin: 0 0 0 1px;
}
ul li {
	background: url('../images/arrow-li.png') no-repeat 0 5px;
	padding-left: 16px;
	line-height: 160%;
}
ol {
	margin: 0 0 0 2.2em;
}
ol li {
	line-height: 170%;
}
h1, h2, h3, h4, h5, h6 {
	font-weight: bold;
}
h2 {
	font-size: 25px;
	font-weight: normal;
	margin: 2px 0 15px;
}
h3 {
	font-size: 15px;
}
hr {
	border: 0;
	border-top: 1px solid #f9f9f9;
	height: 1px;
}
.visually-hidden {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}
.skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 100;
	background: #fff;
	color: #304c84;
	padding: 8px 12px;
}
.skip-link:focus {
	left: 8px;
}

/* ---------- Rahmen ---------- */
#page {
	background: url('../images/bg_top.jpg') no-repeat 50% 0;
	min-height: 100vh;
}
#wrap-1 {
	width: 981px;
	margin: 0 auto;
}
#top {
	height: 105px;
	width: 960px;
	margin: 0 auto;
}
#logo {
	display: block;
	float: left;
	width: 250px;
	height: 105px;
}
#logo img {
	display: block;
	width: 250px;
	height: 105px;
}
#wrap-2 {
	clear: both;
	background: url('../images/p_middle.png') repeat-y 0 0;
}
#wrap-3 {
	background: url('../images/p_top.jpg') no-repeat 50% 0;
}
#wrap-4 {
	margin: 0 25px;
	padding-top: 12px;
	position: relative;
}
#bottom {
	background: url('../images/p_bottom.png') no-repeat 50% 100%;
	height: 36px;
}

/* ---------- Hauptmenue (Desktop) ---------- */
#menu {
	clear: both;
	background: url('../images/menu_bg.jpg') no-repeat 50% 0;
	height: 39px;
	margin-top: 47px;
	position: relative;
	z-index: 49;
}
#menu .menu-toggle {
	display: none;
}
/* wie live (.nav float:left, 39px hoch): die zweite Menuezeile ragt heraus, ohne die Inhaltsbox nach unten zu schieben */
#menu .menu-panel {
	float: left;
	width: 100%;
	height: 39px;
}
#menu ul {
	list-style: none;
	margin: 0;
	padding: 0;
}
#menu li {
	background: none;
	padding: 0;
	margin: 0;
	line-height: 1;
}
#menu > .menu-panel > ul > li {
	float: left;
	position: relative;
}
#menu a,
#menu .mod-menu__heading,
#menu .mod-menu__separator {
	display: block;
	height: 39px;
	line-height: 39px;
	padding: 0 14px;
	font-size: 13.125px; /* live: Text im span mit 101% */
	color: #969ca4;
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
}
#menu li:hover > a,
#menu li:hover > .mod-menu__heading,
#menu li:focus-within > a,
#menu li:focus-within > .mod-menu__heading,
#menu a:hover {
	color: #fff;
}
#menu .sub-toggle {
	display: none;
}
/* Untermenues: 177px breit, #0c0c0d, Eintraege 30px */
#menu li ul {
	position: absolute;
	left: -999em;
	top: 39px;
	width: 177px;
	background: #0c0c0d;
	z-index: 10;
	opacity: 0;
	transition: opacity .25s;
}
#menu li:hover > ul,
#menu li:focus-within > ul,
#menu li.is-open > ul {
	left: 0;
	opacity: 1;
}
#menu li li {
	position: relative;
	width: 177px;
	border-bottom: 1px solid #101012;
}
#menu li li a,
#menu li li .mod-menu__heading {
	height: 30px;
	line-height: 30px;
	white-space: normal;
}
#menu li li:hover > a,
#menu li li > a:hover {
	background: #0f1011;
	color: #fff;
}
#menu li li:hover > ul,
#menu li li:focus-within > ul,
#menu li li.is-open > ul {
	left: 177px;
	top: 0;
}
@media (prefers-reduced-motion: reduce) {
	#menu li ul {
		transition: none;
	}
}

/* ---------- Inhaltsbox ---------- */
#cont-1 {
	clear: both;
	width: 931px;
	background: url('../images/bg_content-top.png') no-repeat 50% 0;
	padding-top: 8px;
	margin-top: 39px;
}
#cont-2 {
	background: #fff url('../images/bg_content-bottom.png') no-repeat 50% 100%;
	padding: 15px;
	position: relative;
	margin-bottom: 20px;
}
#cont-2::after,
.clearfix::after {
	content: "";
	display: block;
	clear: both;
}

/* Breadcrumb-Leiste */
#patmenu-wrap1 {
	position: relative;
	top: -11px;
	background: #eee url('../images/bg_patmenu-left.png') no-repeat 0 0;
}
#patmenu-wrap2 {
	min-height: 18px;
	padding: 0 12px;
	background: url('../images/bg_patmenu-right.png') no-repeat 100% 0;
}
#patmenu-wrap2::after {
	content: "";
	display: block;
	clear: both;
}
#pathway {
	float: left;
	font: 400 11px/18px Tahoma, Arial, Helvetica, sans-serif;
	color: #2c3039;
	background: url('../images/icon_pathway.png') no-repeat 0 50%;
	padding-left: 20px;
}
#pathway ol {
	display: inline;
	margin: 0;
	padding: 0;
}
#pathway li {
	display: inline;
	background: none;
	padding: 0;
	line-height: 18px;
}
#pathway li + li::before {
	content: "";
	display: inline-block;
	width: 9px;
	height: 9px;
	margin: 0 4px;
	background: url('../images/arrow.png') no-repeat 0 0;
}
#pathway a {
	font-size: 11.2px;
	color: #304c84;
}

/* Spalten */
#l_w-1 {
	float: left;
	width: 655px;
	margin-right: 10px;
}
#r_w {
	float: right;
	width: 236px;
}

/* ---------- Inhalt ---------- */
/* gemessene Live-Werte (Firefox): Zellen/Divs 13,52px, Absaetze 13,66px, Listen und Startseite 13,8px */
#mainbody {
	font-size: 13.52px;
	line-height: 16px;
}
#mainbody p {
	font-size: 13.66px;
}
#mainbody li,
#mainbody .blog-featured p,
#mainbody td p {
	font-size: 13.8px;
}
/* live wuchs jedes Inline-Element um 1% (Reset mit font-size:101%) */
#mainbody :is(a, span, strong, em, font, small, big, cite, code, del, ins, q, s, strike, sub, sup, tt, var, abbr, acronym, dfn, kbd, samp) {
	font-size: 101%;
}
#mainbody li {
	line-height: 22px;
}
#mainbody li p {
	font-size: inherit;
}
/* Bilder allein im Absatz: keine Grundlinien-Luecke (live standen sie in Tabellenzellen) */
#mainbody p > img {
	vertical-align: bottom;
}
#mainbody h2 {
	font: 700 16.9px/normal Arial, Helvetica, sans-serif;
	margin: 0;
	padding: 0;
}
#mainbody h3 {
	font-size: 16.9px;
}
#mainbody .contentheading,
#mainbody .contentheading a,
#mainbody .page-header h1,
#mainbody .page-header h2 {
	font: 400 18px/normal Arial, Helvetica, sans-serif;
	color: #050505;
	margin: 0;
	padding: 1px 1px 2px;
}
#mainbody .contentheading a:hover {
	color: #769bb7;
	text-decoration: none;
}
#mainbody .small,
#mainbody span.small {
	font: 400 11px Tahoma, Arial, Helvetica, sans-serif;
	color: #999;
}
#mainbody font[size="1"] {
	font-size: 10px;
}
.item-page,
.blog-item {
	margin-bottom: 16px;
}
/* live stand der Text in einer Tabelle, die mit breiten Bildern mitwuchs (z. B. 892px-Screenshot in "Erste Schritte") */
.item-page .com-content-article__body {
	display: table;
	width: 100%;
}
.item-page .article-body,
.blog-item .article-body {
	padding: 1px;
}
.blog-featured .items-leading {
	margin-bottom: 0;
}
.blog-featured .blog-items.columns-2,
.blog-featured .blog-items.masonry-2 {
	display: grid;
	grid-template-columns: 1fr 1fr;
	align-items: start;
}
.blog-featured .blog-items.columns-2 .blog-item {
	padding-right: 4px;
}
/* in Tabellenzellen wie im alten Almost-Standards-Modus keine Grundlinien-Luecke */
td img {
	vertical-align: bottom;
}
td > a > img,
td > img:only-child {
	vertical-align: middle;
}

/* ---------- Module rechts (Box mit vier Hintergrundgrafiken wie live) ---------- */
.module {
	margin: 0 0 10px;
	background: url('../images/box-right.png') no-repeat 100% 100%;
	font-size: 13.5px;
	line-height: 16px;
}
.module > div {
	background: url('../images/box-left.png') no-repeat 0 100%;
}
.module > div > div {
	background: url('../images/box-top.png') no-repeat 100% 0;
}
.module > div > div > div {
	background: url('../images/box-topleft.png') no-repeat 0 0;
	padding: 13px;
}
.module h3 {
	margin: 0 -14px;
	padding: 0 14px 8px;
	font: 700 11px/normal Arial, Helvetica, sans-serif;
	text-transform: uppercase;
	color: #050505;
}
.module img {
	max-width: 100%;
	height: auto;
	vertical-align: middle;
}

/* ---------- Footer ---------- */
#footer {
	clear: both;
	margin: 0 25px;
	font-size: 11px;
	line-height: 16px;
}
#footer::after {
	content: "";
	display: block;
	clear: both;
}
#footer a {
	color: #7d7f8b;
}
#footer-left {
	float: left;
}
#footer-left img {
	vertical-align: bottom;
}
#copyright {
	float: right;
	font-size: 11.1px;
}
#copyright ul {
	margin: 0;
	padding: 0;
}
#copyright li {
	display: inline;
	background: none;
	padding: 0;
	line-height: 16px;
}
#copyright li + li::before {
	content: " | ";
}

/* Fehlerseite */
.error-page h2 {
	margin-bottom: 10px;
}

/* ---------- Mobil / Tablet (unter 1000px) ---------- */
@media (max-width: 999px) {
	body {
		background-size: 1px 900px;
	}
	#page {
		background-size: 900px auto;
	}
	#wrap-1 {
		width: auto;
		margin: 0 8px;
	}
	#top {
		width: auto;
		height: auto;
	}
	#top::after {
		content: "";
		display: block;
		clear: both;
	}
	#logo,
	#logo img {
		width: 200px;
		height: 84px;
	}
	#wrap-2 {
		background: #050505;
		border-radius: 10px 10px 0 0;
		box-shadow: 0 0 6px rgba(0, 0, 0, .6);
	}
	#wrap-3 {
		background: linear-gradient(#111216, #050505 120px);
		border-radius: 10px 10px 0 0;
	}
	#wrap-4 {
		margin: 0 8px;
		padding-top: 8px;
	}
	#bottom {
		background: #050505;
		height: 12px;
		border-radius: 0 0 10px 10px;
		box-shadow: 0 4px 6px rgba(0, 0, 0, .6);
	}

	/* Menue als aufklappbare Liste */
	#menu {
		background: none;
		height: auto;
		margin-top: 0;
	}
	#menu .menu-toggle {
		display: flex;
		align-items: center;
		gap: 10px;
		width: 100%;
		min-height: 48px;
		padding: 0 12px;
		background: linear-gradient(#262a33, #121317);
		border: 1px solid #2b2e36;
		border-radius: 6px;
		color: #fff;
		font: 400 16px Arial, Verdana, sans-serif;
		cursor: pointer;
	}
	#menu .menu-toggle .bars,
	#menu .menu-toggle .bars::before,
	#menu .menu-toggle .bars::after {
		display: block;
		width: 22px;
		height: 2px;
		background: #fff;
		position: relative;
	}
	#menu .menu-toggle .bars::before,
	#menu .menu-toggle .bars::after {
		content: "";
		position: absolute;
		left: 0;
	}
	#menu .menu-toggle .bars::before {
		top: -7px;
	}
	#menu .menu-toggle .bars::after {
		top: 7px;
	}
	#menu .menu-panel {
		float: none;
		height: auto;
		display: none;
		margin-top: 6px;
		background: #0c0c0d;
		border-radius: 6px;
		overflow: hidden;
	}
	#menu.is-open .menu-panel,
	.no-js #menu .menu-panel {
		display: block;
	}
	.no-js #menu .menu-toggle {
		display: none;
	}
	.no-js #menu li ul {
		display: block;
	}
	#menu > .menu-panel > ul > li {
		float: none;
	}
	#menu li,
	#menu li li {
		position: relative;
		width: auto;
		border-bottom: 1px solid #1d1e22;
	}
	#menu li:last-child {
		border-bottom: 0;
	}
	#menu a,
	#menu .mod-menu__heading,
	#menu li li a,
	#menu li li .mod-menu__heading {
		height: auto;
		min-height: 48px;
		line-height: 22px;
		padding: 13px 56px 13px 14px;
		font-size: 16px;
		white-space: normal;
		box-sizing: border-box;
	}
	#menu li li a,
	#menu li li .mod-menu__heading {
		padding-left: 30px;
	}
	#menu li li li a {
		padding-left: 46px;
	}
	/* mobil die aktuelle Seite markieren (am Desktop wie live ohne Markierung) */
	#menu li.current > a {
		color: #fff;
		background: #1c1e24;
		box-shadow: inset 3px 0 0 #8fb0ff;
	}
	#menu li ul,
	#menu li:hover > ul,
	#menu li:focus-within > ul,
	#menu li li:hover > ul {
		position: static;
		display: none;
		width: auto;
		opacity: 1;
		transition: none;
		background: #141518;
	}
	#menu li.is-open > ul,
	#menu li li.is-open > ul {
		display: block;
	}
	#menu .sub-toggle {
		display: block;
		position: absolute;
		right: 0;
		top: 0;
		width: 52px;
		height: 48px;
		background: none;
		border: 0;
		border-left: 1px solid #1d1e22;
		color: #fff;
		cursor: pointer;
	}
	#menu .sub-toggle::before {
		content: "";
		display: block;
		width: 9px;
		height: 9px;
		margin: 0 auto;
		border-right: 2px solid #fff;
		border-bottom: 2px solid #fff;
		transform: rotate(45deg) translate(-2px, -2px);
		transition: transform .2s;
	}
	#menu li.is-open > .sub-toggle::before {
		transform: rotate(-135deg) translate(-2px, -2px);
	}

	/* Inhaltsbox */
	#cont-1 {
		width: auto;
		background: none;
		padding-top: 0;
		margin-top: 10px;
	}
	#cont-2 {
		background: #fff;
		border-radius: 8px;
		padding: 12px;
		margin-bottom: 12px;
	}
	#patmenu-wrap1 {
		top: 0;
		margin-bottom: 12px;
		background: #eee;
		border-radius: 9px;
	}
	#patmenu-wrap2 {
		background: none;
		padding: 4px 12px;
	}
	#pathway {
		float: none;
		background-position: 0 8px;
	}
	#l_w-1,
	#r_w {
		float: none;
		width: auto;
		margin: 0;
	}
	#r_w {
		margin-top: 16px;
		align-items: flex-start;
		display: flex;
		flex-wrap: wrap;
		gap: 10px;
		justify-content: center;
	}
	#r_w .module {
		flex: 0 1 236px;
		margin: 0;
		text-align: center;
	}

	/* Inhalt: lesbare Groesse, nichts breiter als der Bildschirm */
	.item-page .com-content-article__body {
		display: block;
	}
	#mainbody {
		font-size: 15px;
		line-height: 22px;
		overflow-wrap: anywhere;
	}
	#mainbody li,
	#mainbody p,
	.blog-featured p {
		font-size: inherit;
	}
	#mainbody li {
		line-height: 24px;
		background-position: 0 8px;
	}
	#mainbody .small,
	#mainbody span.small {
		font-size: 13px;
		line-height: 18px;
	}
	#mainbody img {
		max-width: 100%;
		height: auto;
	}
	#mainbody img[align],
	#mainbody img[style*="float"] {
		float: none !important;
		display: block;
		margin: 0 0 10px !important;
	}
	#mainbody textarea {
		width: 100% !important;
		box-sizing: border-box;
		font-size: 13px;
	}
	#mainbody iframe {
		max-width: 100%;
	}
	.blog-featured .blog-items.columns-2,
	.blog-featured .blog-items.masonry-2 {
		grid-template-columns: 1fr;
	}
	/* Datentabellen (mit Rahmen) scrollen in sich, mit Schatten als Hinweis */
	.table-scroll {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		max-width: 100%;
		background:
			linear-gradient(to right, #fff 30%, rgba(255, 255, 255, 0)) 0 0 / 30px 100% no-repeat local,
			linear-gradient(to left, #fff 30%, rgba(255, 255, 255, 0)) 100% 0 / 30px 100% no-repeat local,
			radial-gradient(farthest-side at 0 50%, rgba(0, 0, 0, .25), transparent) 0 0 / 10px 100% no-repeat scroll,
			radial-gradient(farthest-side at 100% 50%, rgba(0, 0, 0, .25), transparent) 100% 0 / 10px 100% no-repeat scroll;
	}
	.table-scroll table {
		width: auto !important;
		height: auto !important;
	}
	.table-scroll td,
	.table-scroll th {
		white-space: nowrap;
		padding: 2px 4px;
	}
	/* erste Spalte (Paketname) bleibt beim seitlichen Scrollen stehen */
	.table-scroll th:first-child,
	.table-scroll td:first-child {
		position: sticky;
		left: 0;
		background: #fff;
		box-shadow: 1px 0 0 #999;
	}
	/* Layout-Tabellen (ohne Rahmen) untereinander */
	table.table-stack,
	table.table-stack > tbody,
	table.table-stack > tbody > tr,
	table.table-stack > tbody > tr > td,
	table.table-stack > tr > td {
		display: block;
		width: auto !important;
		height: auto !important;
	}
	table.table-stack > tbody > tr > td {
		padding: 0 0 6px;
	}

	/* Footer */
	#footer {
		margin: 0 8px;
		padding: 6px 0;
		font-size: 14px;
		line-height: 22px;
		text-align: center;
	}
	#footer-left,
	#copyright {
		float: none;
	}
	#copyright {
		font-size: 14px;
		margin-top: 8px;
	}
	#copyright a {
		display: inline-block;
		padding: 10px 6px;
	}
}
@media (max-width: 480px) {
	#logo,
	#logo img {
		width: 160px;
		height: 67px;
	}
}

/* Druck */
@media print {
	body, #page, #wrap-2, #wrap-3, #cont-1, #cont-2, .module, .module div {
		background: #fff !important;
		color: #000;
	}
	#menu, #r_w, #bottom, #patmenu-wrap1 {
		display: none;
	}
	#wrap-1, #cont-1, #l_w-1 {
		width: auto;
	}
}
