@import url('https://fonts.googleapis.com/css2?family=Archivo+Narrow:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500&family=Bebas+Neue&display=swap');

/* ==========================================================================
   BASE / RECONSTRUCTED PRIMITIVES
   The supplied style.css is the OpenCms "Mercury" *override* layer. These are
   the underlying template primitives it builds on (grid, header, accordion,
   teaser, footer). theme.css then applies the original overrides verbatim.
   ========================================================================== */

*, *::before, *::after { box-sizing: border-box; }

html, body { margin: 0; padding: 0; }

body {
	font-family: 'Archivo Narrow', sans-serif;
	font-weight: 400;
	line-height: 1.45;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

img { max-width: 100%; height: auto; display: block; border: 0; }

a { text-decoration: none; color: inherit; }
a:hover { text-decoration: underline; }

h1, h2, h3, h4, h5, h6 { margin: 0 0 .5em; font-weight: 700; line-height: 1.1; }
p { margin: 0 0 1em; }
ul, ol { margin: 0; padding-left: 1.2em; }

button { font-family: inherit; }

.skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	background: var(--main-color);
	color: #000;
	padding: 10px 16px;
	z-index: 100000;
}
.skip-link:focus { left: 0; }

/* ---- Grid (Bootstrap-compatible subset used by Mercury) ---- */
.container {
	width: 100%;
	margin-left: auto;
	margin-right: auto;
	padding-left: 15px;
	padding-right: 15px;
}
.row {
	display: flex;
	flex-wrap: wrap;
	margin-left: -15px;
	margin-right: -15px;
}
.row > [class*="col-"] { padding-left: 15px; padding-right: 15px; width: 100%; }

.col-12, .col-md-12 { flex: 0 0 100%; max-width: 100%; }
@media (min-width: 768px) {
	.col-md-6 { flex: 0 0 50%; max-width: 50%; }
	.col-md-4 { flex: 0 0 33.3333%; max-width: 33.3333%; }
	.col-md-8 { flex: 0 0 66.6667%; max-width: 66.6667%; }
}
@media (max-width: 767px) {
	.col-md-6, .col-md-4, .col-md-8 { flex: 0 0 100%; max-width: 100%; }
}

/* ---- Content element wrappers ---- */
.element, .visual { margin-bottom: 1.5rem; }
.element .body { }
.visual { position: relative; }
.visual img { width: 100%; }

/* ---- Header / template chrome ---- */
.area-header { position: relative; }
.header-group { position: relative; width: 100%; }
.head { width: 100%; }
.col-head-logo a { display: block; }
.col-head-logo img { width: 100%; }
.col-head-info { display: flex; align-items: center; }

/* ---- Off-canvas navigation base ---- */
.nav-main-container { }
.nav-main-group { }
.nav-main-items { display: flex; list-style: none; margin: 0; padding: 0; }
.nav-main-items li { list-style: none; }
.nav-main-items a { display: block; }

/* ---- Accordion ---- */
.accordion { position: relative; }
.acco-header { position: relative; margin: 0; }
.acco-toggle {
	display: block;
	width: 100%;
	text-align: left;
	cursor: pointer;
	border: none;
	background: transparent;
	font: inherit;
	position: relative;
	margin: 0;
	appearance: none;
}
.acco-toggle::after {
	content: "\25BE"; /* ▾ */
	position: absolute;
	left: 40px;
	top: 0;
	bottom: 0;
	height: 1em;
	margin: auto 0;
	display: flex;
	align-items: center;
	line-height: 1;
	transition: transform .3s ease;
}
.acco-body { overflow: hidden; }
.accordion:not(.is-open) > .acco-body { display: none; }

/* ---- Teaser / list ---- */
.list-entries { list-style: none; margin: 0; padding: 0; }
.teaser { margin-bottom: 1.5rem; }
.teaser .visual img { width: 100%; }
.teaser .body { padding: 1rem 0; }

/* ---- Footer ---- */
.area-foot { width: 100%; }

/* ---- Scroll to top ---- */
#topcontrol {
	position: fixed;
	right: 20px;
	bottom: 20px;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	border-radius: 4px;
	z-index: 9000;
	opacity: 0;
	visibility: hidden;
	transition: opacity .3s ease, visibility .3s ease;
	font-size: 22px;
	line-height: 1;
}
#topcontrol.visible { opacity: 1; visibility: visible; }

/* utility used by Mercury content */
.only-heading, .only-text { width: 100%; }

/* ---- Supplemental: things Mercury's base template supplied ---- */
/* overlay body needs a positioned host */
.home-content-center .element { position: relative; }
.home-content-center .body { left: 0; }

/* off-canvas backdrop */
.head-overlay {
	position: fixed;
	inset: 0;
	background: rgba(0,0,0,.5);
	opacity: 0;
	visibility: hidden;
	transition: opacity .4s ease, visibility .4s ease;
	z-index: 150100;
}
html.active-nav .head-overlay { opacity: 1; visibility: visible; }

/* footer columns + social icons */
.area-foot .topfoot { display: block; }
.area-foot .topfoot .footer-cols {
	max-width: 1400px;
	margin: 0 auto;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 60px 80px;
	text-align: center;
}
.area-foot .topfoot .footer-cols > div { flex: 1 1 240px; }
.area-foot .social ul { gap: 14px; }
.area-foot .social a { display: inline-block; }
.area-foot .social img { width: 50px; height: 50px; }
.area-foot .topfoot .contact p { margin: 0 0 .4em; }
.area-foot .subfoot { padding: 22px 15px; font-size: 15px; }

/* header burger wrapper */
.nav-toggle { display: block; }

/* generic page section spacing */
.home-content-bottom { padding: 80px 0; }
.home-content-bottom .container { max-width: 1500px; }
.content-home-top { padding: 80px 0; }
.zwischenstueck { margin: 0; }
.zwischenstueck img { width: 100%; }

/* sub-header layered host needs height from the front image */
.sub-header-txt .img-0 { position: relative; }

/* detail + slider helpers */
.detail-page { max-width: 1400px; margin: 0 auto; padding: 40px 15px 80px; }
.slider-box .slides { display: flex; flex-wrap: wrap; gap: 15px; }
.slider-box .slides .slide { flex: 1 1 300px; }
.legal-page {
	max-width: 1000px;
	margin: 0 auto;
	padding: 160px 15px 80px;
	color: #fff;
}
.legal-page h1 { color: var(--main-color); font-family: 'Bebas Neue', sans-serif; font-size: 64px; letter-spacing: .5px; }
.legal-page h2 { color: var(--main-color); font-size: 26px; margin-top: 2em; text-transform: uppercase; }
.legal-page a { color: var(--main-color); }
.legal-page p { line-height: 1.7; }
.legal-page .todo { color: var(--main-color); }

/* image placeholders (assets not available at rebuild time) */
.img-placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	aspect-ratio: 4 / 3;
	background:
		repeating-linear-gradient(45deg, #141414 0 12px, #1c1c1c 12px 24px);
	color: #777;
	font-size: 15px;
	letter-spacing: .12em;
	text-transform: uppercase;
}
.slider-box .slide .img-placeholder { aspect-ratio: 3 / 2; }

/* detail page */
.detail-page .detail-meta { color: var(--main-color); text-transform: uppercase; letter-spacing: .06em; margin: 0 0 2em; }
.detail-page h1 { font-family: 'Bebas Neue', sans-serif; font-size: 72px; color: #fff; letter-spacing: .5px; }
.detail-page .detail-text { font-size: 18px; line-height: 1.7; margin-bottom: 40px; }

/* rebuild note banner */
.rebuild-note {
	border: 1px dashed var(--main-color);
	color: var(--main-color);
	background: rgba(254,234,29,.06);
	padding: 12px 16px;
	font-size: 14px;
	border-radius: 4px;
	margin-bottom: 36px;
}
