.download-element a{padding:3px 6px 3px 22px;background:url(../../assets/contao/images/iconPLAIN.svg) left center no-repeat}ul.enclosure{padding-left:0}li.download-element{list-style-type:none}.ext-xl a{background-image:url(../../assets/contao/images/iconXL.svg)}.ext-xls a{background-image:url(../../assets/contao/images/iconXLS.svg)}.ext-xlsx a{background-image:url(../../assets/contao/images/iconXLSX.svg)}.ext-hqx a{background-image:url(../../assets/contao/images/iconHQX.svg)}.ext-cpt a{background-image:url(../../assets/contao/images/iconCPT.svg)}.ext-bin a{background-image:url(../../assets/contao/images/iconBIN.svg)}.ext-doc a{background-image:url(../../assets/contao/images/iconDOC.svg)}.ext-docx a{background-image:url(../../assets/contao/images/iconDOCX.svg)}.ext-word a{background-image:url(../../assets/contao/images/iconWORD.svg)}.ext-cto a{background-image:url(../../assets/contao/images/iconCTO.svg)}.ext-dms a{background-image:url(../../assets/contao/images/iconDMS.svg)}.ext-lha a{background-image:url(../../assets/contao/images/iconLHA.svg)}.ext-lzh a{background-image:url(../../assets/contao/images/iconLZH.svg)}.ext-exe a{background-image:url(../../assets/contao/images/iconEXE.svg)}.ext-class a{background-image:url(../../assets/contao/images/iconCLASS.svg)}.ext-so a{background-image:url(../../assets/contao/images/iconSO.svg)}.ext-sea a{background-image:url(../../assets/contao/images/iconSEA.svg)}.ext-dll a{background-image:url(../../assets/contao/images/iconDLL.svg)}.ext-oda a{background-image:url(../../assets/contao/images/iconODA.svg)}.ext-pdf a{background-image:url(../../assets/contao/images/iconPDF.svg)}.ext-ai a{background-image:url(../../assets/contao/images/iconAI.svg)}.ext-eps a{background-image:url(../../assets/contao/images/iconEPS.svg)}.ext-ps a{background-image:url(../../assets/contao/images/iconPS.svg)}.ext-pps a{background-image:url(../../assets/contao/images/iconPPS.svg)}.ext-ppt a{background-image:url(../../assets/contao/images/iconPPT.svg)}.ext-pptx a{background-image:url(../../assets/contao/images/iconPPTX.svg)}.ext-smi a{background-image:url(../../assets/contao/images/iconSMI.svg)}.ext-smil a{background-image:url(../../assets/contao/images/iconSMIL.svg)}.ext-mif a{background-image:url(../../assets/contao/images/iconMIF.svg)}.ext-odc a{background-image:url(../../assets/contao/images/iconODC.svg)}.ext-odf a{background-image:url(../../assets/contao/images/iconODF.svg)}.ext-odg a{background-image:url(../../assets/contao/images/iconODG.svg)}.ext-odi a{background-image:url(../../assets/contao/images/iconODI.svg)}.ext-odp a{background-image:url(../../assets/contao/images/iconODP.svg)}.ext-ods a{background-image:url(../../assets/contao/images/iconODS.svg)}.ext-odt a{background-image:url(../../assets/contao/images/iconODT.svg)}.ext-wbxml a{background-image:url(../../assets/contao/images/iconWBXML.svg)}.ext-wmlc a{background-image:url(../../assets/contao/images/iconWMLC.svg)}.ext-dmg a{background-image:url(../../assets/contao/images/iconDMG.svg)}.ext-dcr a{background-image:url(../../assets/contao/images/iconDCR.svg)}.ext-dir a{background-image:url(../../assets/contao/images/iconDIR.svg)}.ext-dxr a{background-image:url(../../assets/contao/images/iconDXR.svg)}.ext-dvi a{background-image:url(../../assets/contao/images/iconDVI.svg)}.ext-gtar a{background-image:url(../../assets/contao/images/iconGTAR.svg)}.ext-inc a{background-image:url(../../assets/contao/images/iconINC.svg)}.ext-php a{background-image:url(../../assets/contao/images/iconPHP.svg)}.ext-php3 a{background-image:url(../../assets/contao/images/iconPHP3.svg)}.ext-php4 a{background-image:url(../../assets/contao/images/iconPHP4.svg)}.ext-php5 a{background-image:url(../../assets/contao/images/iconPHP5.svg)}.ext-phtml a{background-image:url(../../assets/contao/images/iconPHTML.svg)}.ext-phps a{background-image:url(../../assets/contao/images/iconPHPS.svg)}.ext-js a{background-image:url(../../assets/contao/images/iconJS.svg)}.ext-psd a{background-image:url(../../assets/contao/images/iconPSD.svg)}.ext-rar a{background-image:url(../../assets/contao/images/iconRAR.svg)}.ext-fla a{background-image:url(../../assets/contao/images/iconFLA.svg)}.ext-swf a{background-image:url(../../assets/contao/images/iconSWF.svg)}.ext-sit a{background-image:url(../../assets/contao/images/iconSIT.svg)}.ext-tar a{background-image:url(../../assets/contao/images/iconTAR.svg)}.ext-tgz a{background-image:url(../../assets/contao/images/iconTGZ.svg)}.ext-xhtml a{background-image:url(../../assets/contao/images/iconXHTML.svg)}.ext-xht a{background-image:url(../../assets/contao/images/iconXHT.svg)}.ext-zip a{background-image:url(../../assets/contao/images/iconZIP.svg)}.ext-m4a a{background-image:url(../../assets/contao/images/iconM4A.svg)}.ext-mp3 a{background-image:url(../../assets/contao/images/iconMP3.svg)}.ext-wma a{background-image:url(../../assets/contao/images/iconWMA.svg)}.ext-mpeg a{background-image:url(../../assets/contao/images/iconMPEG.svg)}.ext-wav a{background-image:url(../../assets/contao/images/iconWAV.svg)}.ext-ogg a{background-image:url(../../assets/contao/images/iconOGG.svg)}.ext-mid a{background-image:url(../../assets/contao/images/iconMID.svg)}.ext-midi a{background-image:url(../../assets/contao/images/iconMIDI.svg)}.ext-aif a{background-image:url(../../assets/contao/images/iconAIF.svg)}.ext-aiff a{background-image:url(../../assets/contao/images/iconAIFF.svg)}.ext-aifc a{background-image:url(../../assets/contao/images/iconAIFC.svg)}.ext-ram a{background-image:url(../../assets/contao/images/iconRAM.svg)}.ext-rm a{background-image:url(../../assets/contao/images/iconRM.svg)}.ext-rpm a{background-image:url(../../assets/contao/images/iconRPM.svg)}.ext-ra a{background-image:url(../../assets/contao/images/iconRA.svg)}.ext-bmp a{background-image:url(../../assets/contao/images/iconBMP.svg)}.ext-gif a{background-image:url(../../assets/contao/images/iconGIF.svg)}.ext-jpeg a{background-image:url(../../assets/contao/images/iconJPEG.svg)}.ext-jpg a{background-image:url(../../assets/contao/images/iconJPG.svg)}.ext-jpe a{background-image:url(../../assets/contao/images/iconJPE.svg)}.ext-png a{background-image:url(../../assets/contao/images/iconPNG.svg)}.ext-tiff a{background-image:url(../../assets/contao/images/iconTIFF.svg)}.ext-tif a{background-image:url(../../assets/contao/images/iconTIF.svg)}.ext-svg a{background-image:url(../../assets/contao/images/iconSVG.svg)}.ext-svgz a{background-image:url(../../assets/contao/images/iconSVGZ.svg)}.ext-webp a{background-image:url(../../assets/contao/images/iconWEBP.svg)}.ext-avif a{background-image:url(../../assets/contao/images/iconAVIF.svg)}.ext-heic a{background-image:url(../../assets/contao/images/iconHEIC.svg)}.ext-jxl a{background-image:url(../../assets/contao/images/iconJXL.svg)}.ext-eml a{background-image:url(../../assets/contao/images/iconEML.svg)}.ext-asp a{background-image:url(../../assets/contao/images/iconASP.svg)}.ext-css a{background-image:url(../../assets/contao/images/iconCSS.svg)}.ext-scss a{background-image:url(../../assets/contao/images/iconSCSS.svg)}.ext-less a{background-image:url(../../assets/contao/images/iconLESS.svg)}.ext-html a{background-image:url(../../assets/contao/images/iconHTML.svg)}.ext-htm a{background-image:url(../../assets/contao/images/iconHTM.svg)}.ext-md a{background-image:url(../../assets/contao/images/iconMD.svg)}.ext-shtml a{background-image:url(../../assets/contao/images/iconSHTML.svg)}.ext-txt a{background-image:url(../../assets/contao/images/iconTXT.svg)}.ext-text a{background-image:url(../../assets/contao/images/iconTEXT.svg)}.ext-log a{background-image:url(../../assets/contao/images/iconLOG.svg)}.ext-rtx a{background-image:url(../../assets/contao/images/iconRTX.svg)}.ext-rtf a{background-image:url(../../assets/contao/images/iconRTF.svg)}.ext-xml a{background-image:url(../../assets/contao/images/iconXML.svg)}.ext-xsl a{background-image:url(../../assets/contao/images/iconXSL.svg)}.ext-mp4 a{background-image:url(../../assets/contao/images/iconMP4.svg)}.ext-m4v a{background-image:url(../../assets/contao/images/iconM4V.svg)}.ext-mov a{background-image:url(../../assets/contao/images/iconMOV.svg)}.ext-wmv a{background-image:url(../../assets/contao/images/iconWMV.svg)}.ext-webm a{background-image:url(../../assets/contao/images/iconWEBM.svg)}.ext-qt a{background-image:url(../../assets/contao/images/iconQT.svg)}.ext-rv a{background-image:url(../../assets/contao/images/iconRV.svg)}.ext-avi a{background-image:url(../../assets/contao/images/iconAVI.svg)}.ext-ogv a{background-image:url(../../assets/contao/images/iconOGV.svg)}.ext-movie a{background-image:url(../../assets/contao/images/iconMOVIE.svg)}
.mod_visitors .invisible {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    float: left;
	width:0px;
	height:0px;
}
/* normalize.css 2012-03-11T12:53 UTC - http://github.com/necolas/normalize.css */
/* =============================================================================
 * HTML5 display definitions
 * ========================================================================== */
/* Corrects block display not defined in IE6/7/8/9 & FF3 */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
nav,
section,
summary {
	display: block;
}

/* Corrects inline-block display not defined in IE6/7/8/9 & FF3 */
audio,
canvas,
video {
	display: inline-block;
	*display: inline;
	*zoom: 1;
}

/* Prevents modern browsers from displaying 'audio' without controls
 * Remove excess height in iOS5 devices */
audio:not([controls]) {
	display: none;
	height: 0;
}

/* Addresses styling for 'hidden' attribute not present in IE7/8/9, FF3, S4
 * Known issue: no IE6 support */
[hidden] {
	display: none;
}

/* =============================================================================
 * Base
 * ========================================================================== */
/* 1. Corrects text resizing oddly in IE6/7 when body font-size is set using em units
 *    http://clagnut.com/blog/348/#c790
 * 2. Prevents iOS text size adjust after orientation change, without disabling user zoom
 *    www.456bereastreet.com/archive/201012/controlling_text_size_in_safari_for_ios_without_disabling_user_zoom/ */
html {
	font-size: 100%;
	/* 1 */
	-webkit-text-size-adjust: 100%;
	/* 2 */
	-ms-text-size-adjust: 100%;
	/* 2 */
	font-family: sans-serif;
}

/* Addresses font-family inconsistency between 'textarea' and other form elements. */
button,
input,
select,
textarea {
	font-family: sans-serif;
}

/* Addresses margins handled incorrectly in IE6/7 */
body {
	margin: 0;
}

/* =============================================================================
 * Links
 * ========================================================================== */
/* Addresses outline displayed oddly in Chrome */
a:focus {
	outline: thin dotted;
}
a:hover,
a:active {
	outline: 0;
}

/* Improves readability when focused and also mouse hovered in all browsers
 * people.opera.com/patrickl/experiments/keyboard/test */
/* =============================================================================
 * Typography
 * ========================================================================== */
/* Addresses font sizes and margins set differently in IE6/7
 * Addresses font sizes within 'section' and 'article' in FF4+, Chrome, S5 */
h1 {
	font-size: 2em;
	margin: 0.67em 0;
}

h2 {
	font-size: 1.5em;
	margin: 0.83em 0;
}

h3 {
	font-size: 1.17em;
	margin: 1em 0;
}

h4 {
	font-size: 1em;
	margin: 1.33em 0;
}

h5 {
	font-size: 0.83em;
	margin: 1.67em 0;
}

h6 {
	font-size: 0.75em;
	margin: 2.33em 0;
}

/* Addresses styling not present in IE7/8/9, S5, Chrome */
abbr[title] {
	border-bottom: 1px dotted;
}

/* Addresses style set to 'bolder' in FF3+, S4/5, Chrome */
b,
strong {
	font-weight: bold;
}

blockquote {
	margin: 1em 40px;
}

/* Addresses styling not present in S5, Chrome */
dfn {
	font-style: italic;
}

/* Addresses styling not present in IE6/7/8/9 */
mark {
	background: yellow;
	color: black;
}

/* Addresses margins set differently in IE6/7 */
p {
	margin: 1em 0;
}

pre {
	margin: 1em 0;
	font-family: monospace, serif;
	_font-family: "courier new", monospace;
	font-size: 1em;
}

/* Corrects font family set oddly in IE6, S4/5, Chrome
 * en.wikipedia.org/wiki/User:Davidgothberg/Test59 */
code,
kbd,
samp {
	font-family: monospace, serif;
	_font-family: "courier new", monospace;
	font-size: 1em;
}

/* Improves readability of pre-formatted text in all browsers */
pre {
	white-space: pre;
	white-space: pre-wrap;
	word-wrap: break-word;
}

/* 1. Addresses CSS quotes not supported in IE6/7
 * 2. Addresses quote property not supported in S4 */
/* 1 */
q {
	quotes: none;
}
q:before,
q:after {
	content: "";
	content: none;
}

/* 2 */
small {
	font-size: 75%;
}

/* Prevents sub and sup affecting line-height in all browsers
 * gist.github.com/413930 */
sub {
	font-size: 75%;
	line-height: 0;
	position: relative;
	vertical-align: baseline;
}

sup {
	font-size: 75%;
	line-height: 0;
	position: relative;
	vertical-align: baseline;
	top: -0.25em;
}

sub {
	bottom: -0.2em;
}

/* =============================================================================
 * Lists
 * ========================================================================== */
/* Addresses margins set differently in IE6/7 */
dl,
menu,
ol,
ul {
	margin: 1em 0;
}

dd {
	margin: 0 0 0 40px;
}

/* Addresses paddings set differently in IE6/7 */
menu,
ol,
ul {
	padding: 0 0 0 40px;
}

/* Corrects list images handled incorrectly in IE7 */
nav ul,
nav ol {
	list-style: none;
	list-style-image: none;
}

/* =============================================================================
 * Embedded content
 * ========================================================================== */
/* 1. Removes border when inside 'a' element in IE6/7/8/9, FF3
 * 2. Improves image quality when scaled in IE7
 *    code.flickr.com/blog/2008/11/12/on-ui-quality-the-little-things-client-side-image-resizing/ */
img {
	border: 0;
	/* 1 */
	-ms-interpolation-mode: bicubic;
	/* 2 */
}

/* Corrects overflow displayed oddly in IE9 */
svg:not(:root) {
	overflow: hidden;
}

/* =============================================================================
 * Figures
 * ========================================================================== */
/* Addresses margin not present in IE6/7/8/9, S5, O11 */
figure,
form {
	margin: 0;
}

/* =============================================================================
 * Forms
 * ========================================================================== */
/* Corrects margin displayed oddly in IE6/7 */
/* Define consistent border, margin, and padding */
fieldset {
	border: 1px solid silver;
	margin: 0 2px;
	padding: 0.35em 0.625em 0.75em;
}

/* 1. Corrects color not being inherited in IE6/7/8/9
 * 2. Corrects text not wrapping in FF3
 * 3. Corrects alignment displayed oddly in IE6/7 */
legend {
	border: 0;
	/* 1 */
	padding: 0;
	white-space: normal;
	/* 2 */
	*margin-left: -7px;
	/* 3 */
}

/* 1. Corrects font size not being inherited in all browsers
 * 2. Addresses margins set differently in IE6/7, FF3+, S5, Chrome
 * 3. Improves appearance and consistency in all browsers */
button,
input,
select,
textarea {
	font-size: 100%;
	/* 1 */
	margin: 0;
	/* 2 */
	vertical-align: baseline;
	/* 3 */
	*vertical-align: middle;
	/* 3 */
}

/* Addresses FF3/4 setting line-height on 'input' using !important in the UA stylesheet */
button,
input {
	line-height: normal;
	/* 1 */
}

/* 1. Improves usability and consistency of cursor style between image-type 'input' and others
 * 2. Corrects inability to style clickable 'input' types in iOS
 * 3. Removes inner spacing in IE7 without affecting normal text inputs
 *    Known issue: inner spacing remains in IE6 */
button {
	cursor: pointer;
	/* 1 */
	-webkit-appearance: button;
	/* 2 */
	*overflow: visible;
	/* 3 */
}

input[type="button"],
input[type="reset"],
input[type="submit"] {
	cursor: pointer;
	/* 1 */
	-webkit-appearance: button;
	/* 2 */
	*overflow: visible;
	/* 3 */
}

/* Re-set default cursor for disabled elements */
button[disabled] {
	cursor: default;
}

input[disabled] {
	cursor: default;
}
input[type="checkbox"],
input[type="radio"] {
	box-sizing: border-box;
	/* 1 */
	padding: 0;
	/* 2 */
	*height: 13px;
	/* 3 */
	*width: 13px;
	/* 3 */
}
input[type="search"]::-webkit-search-decoration,
input[type="search"]::-webkit-search-cancel-button {
	-webkit-appearance: none;
}

/* 1. Addresses box sizing set to content-box in IE8/9
 * 2. Removes excess padding in IE8/9
 * 3. Removes excess padding in IE7
 *    Known issue: excess padding remains in IE6 */
/* 1. Addresses appearance set to searchfield in S5, Chrome
 * 2. Addresses box-sizing set to border-box in S5, Chrome (include -moz to future-proof) */
/* Removes inner padding and search cancel button in S5, Chrome on OS X */
/* Removes inner padding and border in FF3+
 * www.sitepen.com/blog/2008/05/14/the-devils-in-the-details-fixing-dojos-toolbar-buttons/ */
button::-moz-focus-inner,
input::-moz-focus-inner {
	border: 0;
	padding: 0;
}

/* 1. Removes default vertical scrollbar in IE6/7/8/9
 * 2. Improves readability and alignment in all browsers */
textarea {
	overflow: auto;
	/* 1 */
	vertical-align: top;
	/* 2 */
}

/* =============================================================================
 * Tables
 * ========================================================================== */
/* Remove most spacing between table cells */
table {
	border-collapse: collapse;
	border-spacing: 0;
}

/*
 * Main Stylesheet
 *
 * @copyright Copyright (c) 2012 rocksolidthemes.com
 * @license   https://rocksolidthemes.com/agb   No free usage allowed
 */
/* ===========================================
 * # Index: The structure of this stylesheet
 *
 * - Imports (Sass only)
 * - Fonts
 * - Basic settings (Sass only)
 * - Colors (Sass only)
 * - General
 * - Buttons
 * - Wrapper elements
 * - Layout in order of appearance in HTML
 * - Content
 * - Forms
 * - Content elements
 * - Modules (Search, FAQ, News, Events, Comments)
 * - Sidebar / Widgets
 * - Footer
 * - Slider
 * - Grid (design + production helper)
 * ======================================== */
/* ===========================================
 * Fonts
 * ======================================== */
@font-face {
	font-family: "RockSolid Icons";
	src: url("../../files/oneo/fonts/rocksolid-icons.woff2") format("woff2"), url("../../files/oneo/fonts/rocksolid-icons.svg") format("svg");
	font-weight: normal;
	font-style: normal;
}

@font-face {
	font-family: "Open Sans";
	font-weight: 400;
	font-style: normal;
	src: url("../../files/oneo/fonts/open-sans-400.woff2") format("woff2");
}

@font-face {
	font-family: "Open Sans";
	font-weight: 700;
	font-style: normal;
	src: url("../../files/oneo/fonts/open-sans-700.woff2") format("woff2");
}

@font-face {
	font-family: "Open Sans";
	font-weight: 400;
	font-style: italic;
	src: url("../../files/oneo/fonts/open-sans-400italic.woff2") format("woff2");
}

@font-face {
	font-family: "Open Sans";
	font-weight: 700;
	font-style: italic;
	src: url("../../files/oneo/fonts/open-sans-700italic.woff2") format("woff2");
}

/* ===========================================
 * General
 * ======================================== */
:root {
	--main-padding-x: 2.66667rem;
	--safe-area-left: 0px;
	--safe-area-right: 0px;
	--safe-area-top: 0px;
	--safe-area-bottom: 0px;
	--page-padding-left: calc(var(--safe-area-left) + var(--main-padding-x));
	--page-padding-right: calc(var(--safe-area-right) + var(--main-padding-x));
	--page-inner-width: calc(100% - var(--page-padding-left) - var(--page-padding-right));
}
@media screen and (max-width: 1440px) {
	:root {
		--main-padding-x: 3.125%;
	}
}
@media screen and (max-width: 1200px) {
	:root {
		--main-padding-x: 4.16667%;
	}
}
@supports (padding: calc(constant(safe-area-inset-left, 0px) / 1.5)) {
	:root {
		/* Non-standard iOS 11.1 syntax */
		--safe-area-left: calc(constant(safe-area-inset-left, 0px) / 1.5);
		--safe-area-right: calc(constant(safe-area-inset-right, 0px) / 1.5);
		--safe-area-top: constant(safe-area-inset-top, 0px);
		--safe-area-bottom: constant(safe-area-inset-bottom, 0px);
	}
}
@supports (padding: calc(max(0px, env(safe-area-inset-left, 0px) - 14px))) and (padding: calc(max(0px, 1px))) {
	:root {
		/* W3C standard and iOS 11.2 syntax */
		--safe-area-left: calc(max(0px, env(safe-area-inset-left, 0px) - 14px));
		--safe-area-right: calc(max(0px, env(safe-area-inset-right, 0px) - 14px));
		--safe-area-top: env(safe-area-inset-top, 0px);
		--safe-area-bottom: env(safe-area-inset-bottom, 0px);
	}
}

html {
	position: relative;
	box-sizing: border-box;
	font: 1rem/1.6 Ubuntu, sans-serif;
	color: #333333;
	-webkit-tap-highlight-color: #333333;
}
@media screen and (max-width: 900px) {
	html {
		font-size: 1rem;
	}
}

body {
	background: #ffffff none 50% 0 no-repeat scroll;
	background-size: auto;
}
body[class^="icon-"]:before,
body[class*=" icon-"]:before {
	/* Ignore icon classes on the body element */
	content: none;
}
body.background-variation-1 {
	background: url("../../files/oneo/img/demo/background-boxed.jpg") 50% 0 no-repeat;
	background-size: cover;
	background-attachment: fixed;
}
body.background-variation-2 {
	background-size: cover;
	background-attachment: fixed;
}

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

.rs-columns {
	clear: both;
	display: inline-block;
	vertical-align: top;
	width: 100%;
}

.rs-column {
	float: left;
	width: 100%;
	margin-top: 5%;
	margin-right: 5%;
}
.rs-column.-large-first {
	clear: left;
}
.rs-column.-large-last {
	margin-right: -5px;
}
.rs-column.-large-first-row {
	margin-top: 0;
}
.rs-column.-large-col-1-1 {
	width: 100%;
}
.rs-column.-large-col-2-1 {
	width: 47.5%;
}
.rs-column.-large-col-2-2 {
	width: 100%;
}
.rs-column.-large-col-3-1 {
	width: 30%;
}
.rs-column.-large-col-3-2 {
	width: 65%;
}
.rs-column.-large-col-3-3 {
	width: 100.0%;
}
.rs-column.-large-col-4-1 {
	width: 21.25%;
}
.rs-column.-large-col-4-2 {
	width: 47.5%;
}
.rs-column.-large-col-4-3 {
	width: 73.75%;
}
.rs-column.-large-col-4-4 {
	width: 100%;
}
.rs-column.-large-col-5-1 {
	width: 16%;
}
.rs-column.-large-col-5-2 {
	width: 37%;
}
.rs-column.-large-col-5-3 {
	width: 58.0%;
}
.rs-column.-large-col-5-4 {
	width: 79%;
}
.rs-column.-large-col-5-5 {
	width: 100%;
}
.rs-column.-large-col-6-1 {
	width: 12.5%;
}
.rs-column.-large-col-6-2 {
	width: 30%;
}
.rs-column.-large-col-6-3 {
	width: 47.5%;
}
.rs-column.-large-col-6-4 {
	width: 65%;
}
.rs-column.-large-col-6-5 {
	width: 82.5%;
}
.rs-column.-large-col-6-6 {
	width: 100%;
}
.rs-column.-large-col-7-1 {
	width: 10%;
}
.rs-column.-large-col-7-2 {
	width: 25%;
}
.rs-column.-large-col-7-3 {
	width: 40%;
}
.rs-column.-large-col-7-4 {
	width: 55.0%;
}
.rs-column.-large-col-7-5 {
	width: 70%;
}
.rs-column.-large-col-7-6 {
	width: 85%;
}
.rs-column.-large-col-7-7 {
	width: 100%;
}
.oneo-no-sidebar .rs-column,
.page-footer .rs-column {
	margin-top: 3.33333%;
	margin-right: 3.33333%;
}
.oneo-no-sidebar .rs-column.-large-last,
.page-footer .rs-column.-large-last {
	margin-right: -5px;
}
.oneo-no-sidebar .rs-column.-large-first-row,
.page-footer .rs-column.-large-first-row {
	margin-top: 0;
}
.oneo-no-sidebar .rs-column.-large-col-1-1,
.page-footer .rs-column.-large-col-1-1 {
	width: 100%;
}
.oneo-no-sidebar .rs-column.-large-col-2-1,
.page-footer .rs-column.-large-col-2-1 {
	width: 48.33333%;
}
.oneo-no-sidebar .rs-column.-large-col-2-2,
.page-footer .rs-column.-large-col-2-2 {
	width: 100%;
}
.oneo-no-sidebar .rs-column.-large-col-3-1,
.page-footer .rs-column.-large-col-3-1 {
	width: 31.11111%;
}
.oneo-no-sidebar .rs-column.-large-col-3-2,
.page-footer .rs-column.-large-col-3-2 {
	width: 65.55556%;
}
.oneo-no-sidebar .rs-column.-large-col-3-3,
.page-footer .rs-column.-large-col-3-3 {
	width: 100%;
}
.oneo-no-sidebar .rs-column.-large-col-4-1,
.page-footer .rs-column.-large-col-4-1 {
	width: 22.5%;
}
.oneo-no-sidebar .rs-column.-large-col-4-2,
.page-footer .rs-column.-large-col-4-2 {
	width: 48.33333%;
}
.oneo-no-sidebar .rs-column.-large-col-4-3,
.page-footer .rs-column.-large-col-4-3 {
	width: 74.16667%;
}
.oneo-no-sidebar .rs-column.-large-col-4-4,
.page-footer .rs-column.-large-col-4-4 {
	width: 100%;
}
.oneo-no-sidebar .rs-column.-large-col-5-1,
.page-footer .rs-column.-large-col-5-1 {
	width: 17.33333%;
}
.oneo-no-sidebar .rs-column.-large-col-5-2,
.page-footer .rs-column.-large-col-5-2 {
	width: 38%;
}
.oneo-no-sidebar .rs-column.-large-col-5-3,
.page-footer .rs-column.-large-col-5-3 {
	width: 58.66667%;
}
.oneo-no-sidebar .rs-column.-large-col-5-4,
.page-footer .rs-column.-large-col-5-4 {
	width: 79.33333%;
}
.oneo-no-sidebar .rs-column.-large-col-5-5,
.page-footer .rs-column.-large-col-5-5 {
	width: 100%;
}
.oneo-no-sidebar .rs-column.-large-col-6-1,
.page-footer .rs-column.-large-col-6-1 {
	width: 13.88889%;
}
.oneo-no-sidebar .rs-column.-large-col-6-2,
.page-footer .rs-column.-large-col-6-2 {
	width: 31.11111%;
}
.oneo-no-sidebar .rs-column.-large-col-6-3,
.page-footer .rs-column.-large-col-6-3 {
	width: 48.33333%;
}
.oneo-no-sidebar .rs-column.-large-col-6-4,
.page-footer .rs-column.-large-col-6-4 {
	width: 65.55556%;
}
.oneo-no-sidebar .rs-column.-large-col-6-5,
.page-footer .rs-column.-large-col-6-5 {
	width: 82.77778%;
}
.oneo-no-sidebar .rs-column.-large-col-6-6,
.page-footer .rs-column.-large-col-6-6 {
	width: 100%;
}
.oneo-no-sidebar .rs-column.-large-col-7-1,
.page-footer .rs-column.-large-col-7-1 {
	width: 11.42857%;
}
.oneo-no-sidebar .rs-column.-large-col-7-2,
.page-footer .rs-column.-large-col-7-2 {
	width: 26.19048%;
}
.oneo-no-sidebar .rs-column.-large-col-7-3,
.page-footer .rs-column.-large-col-7-3 {
	width: 40.95238%;
}
.oneo-no-sidebar .rs-column.-large-col-7-4,
.page-footer .rs-column.-large-col-7-4 {
	width: 55.71429%;
}
.oneo-no-sidebar .rs-column.-large-col-7-5,
.page-footer .rs-column.-large-col-7-5 {
	width: 70.47619%;
}
.oneo-no-sidebar .rs-column.-large-col-7-6,
.page-footer .rs-column.-large-col-7-6 {
	width: 85.2381%;
}
.oneo-no-sidebar .rs-column.-large-col-7-7,
.page-footer .rs-column.-large-col-7-7 {
	width: 100%;
}
@media screen and (max-width: 1200px) {
	.rs-column,
	.oneo-no-sidebar .rs-column,
	.page-footer .rs-column {
		margin-top: 4.54545%;
		margin-right: 4.54545%;
	}
	.rs-column.-large-first,
	.oneo-no-sidebar .rs-column.-large-first,
	.page-footer .rs-column.-large-first {
		clear: none;
	}
	.rs-column.-large-last,
	.oneo-no-sidebar .rs-column.-large-last,
	.page-footer .rs-column.-large-last {
		margin-right: 4.54545%;
	}
	.rs-column.-large-first-row,
	.oneo-no-sidebar .rs-column.-large-first-row,
	.page-footer .rs-column.-large-first-row {
		margin-top: 4.54545%;
	}
	.rs-column.-medium-first,
	.oneo-no-sidebar .rs-column.-medium-first,
	.page-footer .rs-column.-medium-first {
		clear: left;
	}
	.rs-column.-medium-last,
	.oneo-no-sidebar .rs-column.-medium-last,
	.page-footer .rs-column.-medium-last {
		margin-right: -5px;
	}
	.rs-column.-medium-first-row,
	.oneo-no-sidebar .rs-column.-medium-first-row,
	.page-footer .rs-column.-medium-first-row {
		margin-top: 0;
	}
	.rs-column.-medium-col-1-1,
	.oneo-no-sidebar .rs-column.-medium-col-1-1,
	.page-footer .rs-column.-medium-col-1-1 {
		width: 100%;
	}
	.rs-column.-medium-col-2-1,
	.oneo-no-sidebar .rs-column.-medium-col-2-1,
	.page-footer .rs-column.-medium-col-2-1 {
		width: 47.72727%;
	}
	.rs-column.-medium-col-2-2,
	.oneo-no-sidebar .rs-column.-medium-col-2-2,
	.page-footer .rs-column.-medium-col-2-2 {
		width: 100%;
	}
	.rs-column.-medium-col-3-1,
	.oneo-no-sidebar .rs-column.-medium-col-3-1,
	.page-footer .rs-column.-medium-col-3-1 {
		width: 30.30303%;
	}
	.rs-column.-medium-col-3-2,
	.oneo-no-sidebar .rs-column.-medium-col-3-2,
	.page-footer .rs-column.-medium-col-3-2 {
		width: 65.15152%;
	}
	.rs-column.-medium-col-3-3,
	.oneo-no-sidebar .rs-column.-medium-col-3-3,
	.page-footer .rs-column.-medium-col-3-3 {
		width: 100%;
	}
	.rs-column.-medium-col-4-1,
	.oneo-no-sidebar .rs-column.-medium-col-4-1,
	.page-footer .rs-column.-medium-col-4-1 {
		width: 21.59091%;
	}
	.rs-column.-medium-col-4-2,
	.oneo-no-sidebar .rs-column.-medium-col-4-2,
	.page-footer .rs-column.-medium-col-4-2 {
		width: 47.72727%;
	}
	.rs-column.-medium-col-4-3,
	.oneo-no-sidebar .rs-column.-medium-col-4-3,
	.page-footer .rs-column.-medium-col-4-3 {
		width: 73.86364%;
	}
	.rs-column.-medium-col-4-4,
	.oneo-no-sidebar .rs-column.-medium-col-4-4,
	.page-footer .rs-column.-medium-col-4-4 {
		width: 100%;
	}
	.rs-column.-medium-col-5-1,
	.oneo-no-sidebar .rs-column.-medium-col-5-1,
	.page-footer .rs-column.-medium-col-5-1 {
		width: 16.36364%;
	}
	.rs-column.-medium-col-5-2,
	.oneo-no-sidebar .rs-column.-medium-col-5-2,
	.page-footer .rs-column.-medium-col-5-2 {
		width: 37.27273%;
	}
	.rs-column.-medium-col-5-3,
	.oneo-no-sidebar .rs-column.-medium-col-5-3,
	.page-footer .rs-column.-medium-col-5-3 {
		width: 58.18182%;
	}
	.rs-column.-medium-col-5-4,
	.oneo-no-sidebar .rs-column.-medium-col-5-4,
	.page-footer .rs-column.-medium-col-5-4 {
		width: 79.09091%;
	}
	.rs-column.-medium-col-5-5,
	.oneo-no-sidebar .rs-column.-medium-col-5-5,
	.page-footer .rs-column.-medium-col-5-5 {
		width: 100%;
	}
	.rs-column.-medium-col-6-1,
	.oneo-no-sidebar .rs-column.-medium-col-6-1,
	.page-footer .rs-column.-medium-col-6-1 {
		width: 12.87879%;
	}
	.rs-column.-medium-col-6-2,
	.oneo-no-sidebar .rs-column.-medium-col-6-2,
	.page-footer .rs-column.-medium-col-6-2 {
		width: 30.30303%;
	}
	.rs-column.-medium-col-6-3,
	.oneo-no-sidebar .rs-column.-medium-col-6-3,
	.page-footer .rs-column.-medium-col-6-3 {
		width: 47.72727%;
	}
	.rs-column.-medium-col-6-4,
	.oneo-no-sidebar .rs-column.-medium-col-6-4,
	.page-footer .rs-column.-medium-col-6-4 {
		width: 65.15152%;
	}
	.rs-column.-medium-col-6-5,
	.oneo-no-sidebar .rs-column.-medium-col-6-5,
	.page-footer .rs-column.-medium-col-6-5 {
		width: 82.57576%;
	}
	.rs-column.-medium-col-6-6,
	.oneo-no-sidebar .rs-column.-medium-col-6-6,
	.page-footer .rs-column.-medium-col-6-6 {
		width: 100%;
	}
	.rs-column.-medium-col-7-1,
	.oneo-no-sidebar .rs-column.-medium-col-7-1,
	.page-footer .rs-column.-medium-col-7-1 {
		width: 10.38961%;
	}
	.rs-column.-medium-col-7-2,
	.oneo-no-sidebar .rs-column.-medium-col-7-2,
	.page-footer .rs-column.-medium-col-7-2 {
		width: 25.32468%;
	}
	.rs-column.-medium-col-7-3,
	.oneo-no-sidebar .rs-column.-medium-col-7-3,
	.page-footer .rs-column.-medium-col-7-3 {
		width: 40.25974%;
	}
	.rs-column.-medium-col-7-4,
	.oneo-no-sidebar .rs-column.-medium-col-7-4,
	.page-footer .rs-column.-medium-col-7-4 {
		width: 55.19481%;
	}
	.rs-column.-medium-col-7-5,
	.oneo-no-sidebar .rs-column.-medium-col-7-5,
	.page-footer .rs-column.-medium-col-7-5 {
		width: 70.12987%;
	}
	.rs-column.-medium-col-7-6,
	.oneo-no-sidebar .rs-column.-medium-col-7-6,
	.page-footer .rs-column.-medium-col-7-6 {
		width: 85.06494%;
	}
	.rs-column.-medium-col-7-7,
	.oneo-no-sidebar .rs-column.-medium-col-7-7,
	.page-footer .rs-column.-medium-col-7-7 {
		width: 100%;
	}
}
@media screen and (max-width: 900px) {
	.rs-column,
	.oneo-no-sidebar .rs-column,
	.page-footer .rs-column {
		margin-right: 4.54545%;
	}
	.rs-column.-medium-first,
	.oneo-no-sidebar .rs-column.-medium-first,
	.page-footer .rs-column.-medium-first {
		clear: none;
	}
	.rs-column.-medium-last,
	.oneo-no-sidebar .rs-column.-medium-last,
	.page-footer .rs-column.-medium-last {
		margin-right: 4.54545%;
	}
	.rs-column.-medium-first-row,
	.oneo-no-sidebar .rs-column.-medium-first-row,
	.page-footer .rs-column.-medium-first-row {
		margin-top: 4.54545%;
	}
	.rs-column.-small-first,
	.oneo-no-sidebar .rs-column.-small-first,
	.page-footer .rs-column.-small-first {
		clear: left;
	}
	.rs-column.-small-last,
	.oneo-no-sidebar .rs-column.-small-last,
	.page-footer .rs-column.-small-last {
		margin-right: -5px;
	}
	.rs-column.-small-first-row,
	.oneo-no-sidebar .rs-column.-small-first-row,
	.page-footer .rs-column.-small-first-row {
		margin-top: 0;
	}
	.rs-column.-small-col-1-1,
	.oneo-no-sidebar .rs-column.-small-col-1-1,
	.page-footer .rs-column.-small-col-1-1 {
		width: 100%;
	}
	.rs-column.-small-col-2-1,
	.oneo-no-sidebar .rs-column.-small-col-2-1,
	.page-footer .rs-column.-small-col-2-1 {
		width: 47.72727%;
	}
	.rs-column.-small-col-2-2,
	.oneo-no-sidebar .rs-column.-small-col-2-2,
	.page-footer .rs-column.-small-col-2-2 {
		width: 100%;
	}
	.rs-column.-small-col-3-1,
	.oneo-no-sidebar .rs-column.-small-col-3-1,
	.page-footer .rs-column.-small-col-3-1 {
		width: 30.30303%;
	}
	.rs-column.-small-col-3-2,
	.oneo-no-sidebar .rs-column.-small-col-3-2,
	.page-footer .rs-column.-small-col-3-2 {
		width: 65.15152%;
	}
	.rs-column.-small-col-3-3,
	.oneo-no-sidebar .rs-column.-small-col-3-3,
	.page-footer .rs-column.-small-col-3-3 {
		width: 100%;
	}
	.rs-column.-small-col-4-1,
	.oneo-no-sidebar .rs-column.-small-col-4-1,
	.page-footer .rs-column.-small-col-4-1 {
		width: 21.59091%;
	}
	.rs-column.-small-col-4-2,
	.oneo-no-sidebar .rs-column.-small-col-4-2,
	.page-footer .rs-column.-small-col-4-2 {
		width: 47.72727%;
	}
	.rs-column.-small-col-4-3,
	.oneo-no-sidebar .rs-column.-small-col-4-3,
	.page-footer .rs-column.-small-col-4-3 {
		width: 73.86364%;
	}
	.rs-column.-small-col-4-4,
	.oneo-no-sidebar .rs-column.-small-col-4-4,
	.page-footer .rs-column.-small-col-4-4 {
		width: 100%;
	}
	.rs-column.-small-col-5-1,
	.oneo-no-sidebar .rs-column.-small-col-5-1,
	.page-footer .rs-column.-small-col-5-1 {
		width: 16.36364%;
	}
	.rs-column.-small-col-5-2,
	.oneo-no-sidebar .rs-column.-small-col-5-2,
	.page-footer .rs-column.-small-col-5-2 {
		width: 37.27273%;
	}
	.rs-column.-small-col-5-3,
	.oneo-no-sidebar .rs-column.-small-col-5-3,
	.page-footer .rs-column.-small-col-5-3 {
		width: 58.18182%;
	}
	.rs-column.-small-col-5-4,
	.oneo-no-sidebar .rs-column.-small-col-5-4,
	.page-footer .rs-column.-small-col-5-4 {
		width: 79.09091%;
	}
	.rs-column.-small-col-5-5,
	.oneo-no-sidebar .rs-column.-small-col-5-5,
	.page-footer .rs-column.-small-col-5-5 {
		width: 100%;
	}
	.rs-column.-small-col-6-1,
	.oneo-no-sidebar .rs-column.-small-col-6-1,
	.page-footer .rs-column.-small-col-6-1 {
		width: 12.87879%;
	}
	.rs-column.-small-col-6-2,
	.oneo-no-sidebar .rs-column.-small-col-6-2,
	.page-footer .rs-column.-small-col-6-2 {
		width: 30.30303%;
	}
	.rs-column.-small-col-6-3,
	.oneo-no-sidebar .rs-column.-small-col-6-3,
	.page-footer .rs-column.-small-col-6-3 {
		width: 47.72727%;
	}
	.rs-column.-small-col-6-4,
	.oneo-no-sidebar .rs-column.-small-col-6-4,
	.page-footer .rs-column.-small-col-6-4 {
		width: 65.15152%;
	}
	.rs-column.-small-col-6-5,
	.oneo-no-sidebar .rs-column.-small-col-6-5,
	.page-footer .rs-column.-small-col-6-5 {
		width: 82.57576%;
	}
	.rs-column.-small-col-6-6,
	.oneo-no-sidebar .rs-column.-small-col-6-6,
	.page-footer .rs-column.-small-col-6-6 {
		width: 100%;
	}
	.rs-column.-small-col-7-1,
	.oneo-no-sidebar .rs-column.-small-col-7-1,
	.page-footer .rs-column.-small-col-7-1 {
		width: 10.38961%;
	}
	.rs-column.-small-col-7-2,
	.oneo-no-sidebar .rs-column.-small-col-7-2,
	.page-footer .rs-column.-small-col-7-2 {
		width: 25.32468%;
	}
	.rs-column.-small-col-7-3,
	.oneo-no-sidebar .rs-column.-small-col-7-3,
	.page-footer .rs-column.-small-col-7-3 {
		width: 40.25974%;
	}
	.rs-column.-small-col-7-4,
	.oneo-no-sidebar .rs-column.-small-col-7-4,
	.page-footer .rs-column.-small-col-7-4 {
		width: 55.19481%;
	}
	.rs-column.-small-col-7-5,
	.oneo-no-sidebar .rs-column.-small-col-7-5,
	.page-footer .rs-column.-small-col-7-5 {
		width: 70.12987%;
	}
	.rs-column.-small-col-7-6,
	.oneo-no-sidebar .rs-column.-small-col-7-6,
	.page-footer .rs-column.-small-col-7-6 {
		width: 85.06494%;
	}
	.rs-column.-small-col-7-7,
	.oneo-no-sidebar .rs-column.-small-col-7-7,
	.page-footer .rs-column.-small-col-7-7 {
		width: 100%;
	}
}

/* Resetting box model for moo_mediabox and j_colorbox */
#mbCenter,
#colorbox {
	box-sizing: content-box;
}

::selection {
	background: #024981;
	color: #ffffff;
	text-shadow: none !important;
}

::-moz-selection {
	background: #024981;
	color: #ffffff;
	text-shadow: none !important;
}

button,
input,
select,
textarea {
	font-family: inherit;
}

table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	border: 1px solid #bbbbbb;
	background: #ffffff;
}
table th,
table td {
	border: solid #bbbbbb;
	border-width: 1px 0 0 1px;
}
table th:first-child,
table td:first-child {
	border-left: 0;
}
table > thead > tr:first-child > th,
table > thead > tr:first-child > td,
table > tbody:first-child > tr:first-child > th,
table > tbody:first-child > tr:first-child > td,
table > tfoot:first-child + tbody > tr:first-child > th,
table > tfoot:first-child + tbody > tr:first-child > td {
	/* First row of the table */
	border-top: 0;
}
table th {
	padding: 0.4em 0.66667em;
	font-weight: bold;
	text-align: left;
}
table td {
	padding: 0.4em 0.66667em;
}
table thead {
	background: rgba(0, 0, 0, 0.02);
}
table tfoot td {
	font-style: italic;
}

strong,
b {
	font-weight: bold;
}

a {
	color: #333333;
	text-decoration: none;
}
a:hover,
a:focus {
	text-decoration: underline;
}
a:hover,
a:active {
	outline: 0;
}
a.external-link:after {
	font: 0.86667em/1 "RockSolid Icons";
	content: "\e151";
	-webkit-font-smoothing: antialiased;
	font-smoothing: antialiased;
	text-rendering: geometricPrecision;
	text-indent: 0;
	display: inline-block;
	position: relative;
	margin-left: 0.26667em;
}
.-highlight-color a {
	color: #000000;
}

/* Icon attribute */
*[data-icon]:before,
*[class^="icon-"]:before,
*[class*=" icon-"]:before {
	font: 100%/1 "RockSolid Icons";
	-webkit-font-smoothing: antialiased;
	font-smoothing: antialiased;
	text-rendering: geometricPrecision;
	text-indent: 0;
	display: inline-block;
	position: relative;
	margin-right: 0.26667em;
}

*[data-icon]:before {
	content: attr(data-icon);
}
*[data-icon].after:before {
	content: none;
}
*[data-icon].after:after {
	font: 100%/1 "RockSolid Icons";
	content: attr(data-icon);
	-webkit-font-smoothing: antialiased;
	font-smoothing: antialiased;
	text-rendering: geometricPrecision;
	text-indent: 0;
	display: inline-block;
	position: relative;
	margin-left: 0.26667em;
}

.clear {
	clear: both;
}

.invisible {
	position: absolute;
	height: 1px !important;
	width: 1px !important;
	clip: rect(0 0 0 0);
	margin: -1px;
	padding: 0 !important;
	overflow: hidden;
	border: 0;
}

.no-border {
	border: 0 !important;
}

.no-margin {
	margin: 0 !important;
}

.no-margin-top {
	margin-top: 0 !important;
}

.no-margin-bottom {
	margin-bottom: 0 !important;
}

.left {
	float: left;
}

.right {
	float: right;
}

.margin-top-none {
	margin-top: 0 !important;
}
@media screen and (max-width: 900px) {
	.margin-top-none {
		margin-top: 0 !important;
	}
}

.margin-right-none {
	margin-right: 0 !important;
}
@media screen and (max-width: 900px) {
	.margin-right-none {
		margin-right: 0 !important;
	}
}

.margin-bottom-none {
	margin-bottom: 0 !important;
}
@media screen and (max-width: 900px) {
	.margin-bottom-none {
		margin-bottom: 0 !important;
	}
}

.margin-left-none {
	margin-left: 0 !important;
}
@media screen and (max-width: 900px) {
	.margin-left-none {
		margin-left: 0 !important;
	}
}

.padding-top-none {
	padding-top: 0 !important;
}
@media screen and (max-width: 900px) {
	.padding-top-none {
		padding-top: 0 !important;
	}
}

.padding-right-none {
	padding-right: 0 !important;
}
@media screen and (max-width: 900px) {
	.padding-right-none {
		padding-right: 0 !important;
	}
}

.padding-bottom-none {
	padding-bottom: 0 !important;
}
@media screen and (max-width: 900px) {
	.padding-bottom-none {
		padding-bottom: 0 !important;
	}
}

.padding-left-none {
	padding-left: 0 !important;
}
@media screen and (max-width: 900px) {
	.padding-left-none {
		padding-left: 0 !important;
	}
}

.margin-top-xxs {
	margin-top: 10px !important;
}
@media screen and (max-width: 900px) {
	.margin-top-xxs {
		margin-top: 5px !important;
	}
}

.margin-right-xxs {
	margin-right: 10px !important;
}
@media screen and (max-width: 900px) {
	.margin-right-xxs {
		margin-right: 5px !important;
	}
}

.margin-bottom-xxs {
	margin-bottom: 10px !important;
}
@media screen and (max-width: 900px) {
	.margin-bottom-xxs {
		margin-bottom: 5px !important;
	}
}

.margin-left-xxs {
	margin-left: 10px !important;
}
@media screen and (max-width: 900px) {
	.margin-left-xxs {
		margin-left: 5px !important;
	}
}

.padding-top-xxs {
	padding-top: 10px !important;
}
@media screen and (max-width: 900px) {
	.padding-top-xxs {
		padding-top: 5px !important;
	}
}

.padding-right-xxs {
	padding-right: 10px !important;
}
@media screen and (max-width: 900px) {
	.padding-right-xxs {
		padding-right: 5px !important;
	}
}

.padding-bottom-xxs {
	padding-bottom: 10px !important;
}
@media screen and (max-width: 900px) {
	.padding-bottom-xxs {
		padding-bottom: 5px !important;
	}
}

.padding-left-xxs {
	padding-left: 10px !important;
}
@media screen and (max-width: 900px) {
	.padding-left-xxs {
		padding-left: 5px !important;
	}
}

.margin-top-xs {
	margin-top: 25px !important;
}
@media screen and (max-width: 900px) {
	.margin-top-xs {
		margin-top: 13px !important;
	}
}

.margin-right-xs {
	margin-right: 25px !important;
}
@media screen and (max-width: 900px) {
	.margin-right-xs {
		margin-right: 13px !important;
	}
}

.margin-bottom-xs {
	margin-bottom: 25px !important;
}
@media screen and (max-width: 900px) {
	.margin-bottom-xs {
		margin-bottom: 13px !important;
	}
}

.margin-left-xs {
	margin-left: 25px !important;
}
@media screen and (max-width: 900px) {
	.margin-left-xs {
		margin-left: 13px !important;
	}
}

.padding-top-xs {
	padding-top: 25px !important;
}
@media screen and (max-width: 900px) {
	.padding-top-xs {
		padding-top: 13px !important;
	}
}

.padding-right-xs {
	padding-right: 25px !important;
}
@media screen and (max-width: 900px) {
	.padding-right-xs {
		padding-right: 13px !important;
	}
}

.padding-bottom-xs {
	padding-bottom: 25px !important;
}
@media screen and (max-width: 900px) {
	.padding-bottom-xs {
		padding-bottom: 13px !important;
	}
}

.padding-left-xs {
	padding-left: 25px !important;
}
@media screen and (max-width: 900px) {
	.padding-left-xs {
		padding-left: 13px !important;
	}
}

.margin-top-s {
	margin-top: 50px !important;
}
@media screen and (max-width: 900px) {
	.margin-top-s {
		margin-top: 25px !important;
	}
}

.margin-right-s {
	margin-right: 50px !important;
}
@media screen and (max-width: 900px) {
	.margin-right-s {
		margin-right: 25px !important;
	}
}

.margin-bottom-s {
	margin-bottom: 50px !important;
}
@media screen and (max-width: 900px) {
	.margin-bottom-s {
		margin-bottom: 25px !important;
	}
}

.margin-left-s {
	margin-left: 50px !important;
}
@media screen and (max-width: 900px) {
	.margin-left-s {
		margin-left: 25px !important;
	}
}

.padding-top-s {
	padding-top: 50px !important;
}
@media screen and (max-width: 900px) {
	.padding-top-s {
		padding-top: 25px !important;
	}
}

.padding-right-s {
	padding-right: 50px !important;
}
@media screen and (max-width: 900px) {
	.padding-right-s {
		padding-right: 25px !important;
	}
}

.padding-bottom-s {
	padding-bottom: 50px !important;
}
@media screen and (max-width: 900px) {
	.padding-bottom-s {
		padding-bottom: 25px !important;
	}
}

.padding-left-s {
	padding-left: 50px !important;
}
@media screen and (max-width: 900px) {
	.padding-left-s {
		padding-left: 25px !important;
	}
}

.margin-top-m {
	margin-top: 75px !important;
}
@media screen and (max-width: 900px) {
	.margin-top-m {
		margin-top: 38px !important;
	}
}

.margin-right-m {
	margin-right: 75px !important;
}
@media screen and (max-width: 900px) {
	.margin-right-m {
		margin-right: 38px !important;
	}
}

.margin-bottom-m {
	margin-bottom: 75px !important;
}
@media screen and (max-width: 900px) {
	.margin-bottom-m {
		margin-bottom: 38px !important;
	}
}

.margin-left-m {
	margin-left: 75px !important;
}
@media screen and (max-width: 900px) {
	.margin-left-m {
		margin-left: 38px !important;
	}
}

.padding-top-m {
	padding-top: 75px !important;
}
@media screen and (max-width: 900px) {
	.padding-top-m {
		padding-top: 38px !important;
	}
}

.padding-right-m {
	padding-right: 75px !important;
}
@media screen and (max-width: 900px) {
	.padding-right-m {
		padding-right: 38px !important;
	}
}

.padding-bottom-m {
	padding-bottom: 75px !important;
}
@media screen and (max-width: 900px) {
	.padding-bottom-m {
		padding-bottom: 38px !important;
	}
}

.padding-left-m {
	padding-left: 75px !important;
}
@media screen and (max-width: 900px) {
	.padding-left-m {
		padding-left: 38px !important;
	}
}

.margin-top-l {
	margin-top: 100px !important;
}
@media screen and (max-width: 900px) {
	.margin-top-l {
		margin-top: 50px !important;
	}
}

.margin-right-l {
	margin-right: 100px !important;
}
@media screen and (max-width: 900px) {
	.margin-right-l {
		margin-right: 50px !important;
	}
}

.margin-bottom-l {
	margin-bottom: 100px !important;
}
@media screen and (max-width: 900px) {
	.margin-bottom-l {
		margin-bottom: 50px !important;
	}
}

.margin-left-l {
	margin-left: 100px !important;
}
@media screen and (max-width: 900px) {
	.margin-left-l {
		margin-left: 50px !important;
	}
}

.padding-top-l {
	padding-top: 100px !important;
}
@media screen and (max-width: 900px) {
	.padding-top-l {
		padding-top: 50px !important;
	}
}

.padding-right-l {
	padding-right: 100px !important;
}
@media screen and (max-width: 900px) {
	.padding-right-l {
		padding-right: 50px !important;
	}
}

.padding-bottom-l {
	padding-bottom: 100px !important;
}
@media screen and (max-width: 900px) {
	.padding-bottom-l {
		padding-bottom: 50px !important;
	}
}

.padding-left-l {
	padding-left: 100px !important;
}
@media screen and (max-width: 900px) {
	.padding-left-l {
		padding-left: 50px !important;
	}
}

.margin-top-xl {
	margin-top: 150px !important;
}
@media screen and (max-width: 900px) {
	.margin-top-xl {
		margin-top: 75px !important;
	}
}

.margin-right-xl {
	margin-right: 150px !important;
}
@media screen and (max-width: 900px) {
	.margin-right-xl {
		margin-right: 75px !important;
	}
}

.margin-bottom-xl {
	margin-bottom: 150px !important;
}
@media screen and (max-width: 900px) {
	.margin-bottom-xl {
		margin-bottom: 75px !important;
	}
}

.margin-left-xl {
	margin-left: 150px !important;
}
@media screen and (max-width: 900px) {
	.margin-left-xl {
		margin-left: 75px !important;
	}
}

.padding-top-xl {
	padding-top: 150px !important;
}
@media screen and (max-width: 900px) {
	.padding-top-xl {
		padding-top: 75px !important;
	}
}

.padding-right-xl {
	padding-right: 150px !important;
}
@media screen and (max-width: 900px) {
	.padding-right-xl {
		padding-right: 75px !important;
	}
}

.padding-bottom-xl {
	padding-bottom: 150px !important;
}
@media screen and (max-width: 900px) {
	.padding-bottom-xl {
		padding-bottom: 75px !important;
	}
}

.padding-left-xl {
	padding-left: 150px !important;
}
@media screen and (max-width: 900px) {
	.padding-left-xl {
		padding-left: 75px !important;
	}
}

.margin-top-xxl {
	margin-top: 200px !important;
}
@media screen and (max-width: 900px) {
	.margin-top-xxl {
		margin-top: 100px !important;
	}
}

.margin-right-xxl {
	margin-right: 200px !important;
}
@media screen and (max-width: 900px) {
	.margin-right-xxl {
		margin-right: 100px !important;
	}
}

.margin-bottom-xxl {
	margin-bottom: 200px !important;
}
@media screen and (max-width: 900px) {
	.margin-bottom-xxl {
		margin-bottom: 100px !important;
	}
}

.margin-left-xxl {
	margin-left: 200px !important;
}
@media screen and (max-width: 900px) {
	.margin-left-xxl {
		margin-left: 100px !important;
	}
}

.padding-top-xxl {
	padding-top: 200px !important;
}
@media screen and (max-width: 900px) {
	.padding-top-xxl {
		padding-top: 100px !important;
	}
}

.padding-right-xxl {
	padding-right: 200px !important;
}
@media screen and (max-width: 900px) {
	.padding-right-xxl {
		padding-right: 100px !important;
	}
}

.padding-bottom-xxl {
	padding-bottom: 200px !important;
}
@media screen and (max-width: 900px) {
	.padding-bottom-xxl {
		padding-bottom: 100px !important;
	}
}

.padding-left-xxl {
	padding-left: 200px !important;
}
@media screen and (max-width: 900px) {
	.padding-left-xxl {
		padding-left: 100px !important;
	}
}

.font-size-xxs {
	font-size: 0.6em !important;
}
@media screen and (max-width: 900px) {
	.font-size-xxs {
		font-size: 0.8em !important;
	}
}

.font-size-xs {
	font-size: 0.8em !important;
}
@media screen and (max-width: 900px) {
	.font-size-xs {
		font-size: 0.9em !important;
	}
}

.font-size-s {
	font-size: 0.9em !important;
}
@media screen and (max-width: 900px) {
	.font-size-s {
		font-size: 0.95em !important;
	}
}

.font-size-m {
	font-size: 1.2em !important;
}
@media screen and (max-width: 900px) {
	.font-size-m {
		font-size: 1.1em !important;
	}
}

.font-size-l {
	font-size: 1.5em !important;
}
@media screen and (max-width: 900px) {
	.font-size-l {
		font-size: 1.25em !important;
	}
}

.font-size-xl {
	font-size: 2em !important;
}
@media screen and (max-width: 900px) {
	.font-size-xl {
		font-size: 1.5em !important;
	}
}

.font-size-xxl {
	font-size: 2.5em !important;
}
@media screen and (max-width: 900px) {
	.font-size-xxl {
		font-size: 1.75em !important;
	}
}

.centered {
	display: block;
	margin-left: auto !important;
	margin-right: auto !important;
	text-align: center;
}

.syndication {
	margin: 0.8em 0 0 1.33333em;
	float: right;
}
.syndication a {
	margin-left: 0.13333em;
}

.mime_icon {
	margin-bottom: -0.25em;
}

.download-element {
	padding-top: 0;
	padding-right: 0;
	padding-bottom: 0;
}

.content-toplink,
.ce_toplink,
.toplink {
	overflow: hidden;
	margin: 1.6em 0;
}
.content-toplink:after,
.ce_toplink:after,
.toplink:after {
	content: "";
	display: inline-block;
	vertical-align: middle;
	width: 100%;
	height: 0;
	overflow: visible;
	margin: 0 -100% 0 0.66667em;
	border-top: 1px solid #bbbbbb;
}
.content-toplink > a:before,
.ce_toplink > a:before,
.toplink > a:before {
	font: 100%/1 "RockSolid Icons";
	content: "\e00c";
	-webkit-font-smoothing: antialiased;
	font-smoothing: antialiased;
	text-rendering: geometricPrecision;
	text-indent: 0;
	display: inline-block;
	position: relative;
	margin-right: 0.33333em;
}

[data-ajax-form=loading] {
	opacity: 0.5;
	pointer-events: none;
}

/* Style for dlh_googlemaps (if you don't use the plugin, you might want to delete this) */
.dlh_googlemap {
	box-sizing: content-box;
}

.main-content .dlh_googlemap,
.sidebar .dlh_googlemap {
	/* Setting the maps max-width to 100% is best practice, since it becomes fluid that way */
	max-width: 100%;
}

.main-content .dlh_googlemap img {
	max-width: none;
}

hr,
.headline-hr:before,
.headline-hr:after {
	clear: both;
	height: 0;
	overflow: visible;
	margin: 2.4em 0;
	border: 0;
	border-top: 1px solid #bbbbbb;
}

hr.-hr-dotted,
.headline-hr.-hr-dotted:before,
.headline-hr.-hr-dotted:after {
	border-top-style: dotted;
	border-top-color: #bbbbbb;
}

hr.-hr-shadow,
.headline-hr.-hr-shadow:before,
.headline-hr.-hr-shadow:after {
	height: 8px;
	background: radial-gradient(rgba(0, 0, 0, 0.1), rgba(255, 255, 255, 0) 60%);
	background-size: 100% 16px;
	background-position: 50% -8px;
}

.headline-hr {
	overflow: hidden;
	clear: both;
}
.headline-hr:before,
.headline-hr:after {
	display: inline-block;
	vertical-align: middle;
	width: 100%;
	margin: 0 0.66667em 0 calc(-100% - 0.66667em);
}
.headline-hr:after {
	content: "";
	margin: 0 calc(-100% - 0.66667em) 0 0.66667em;
}
.headline-hr.-centered {
	text-align: center;
}
.headline-hr.-centered:before {
	content: "";
}
.headline-hr.-align-right {
	text-align: right;
}
.headline-hr.-align-right:before {
	content: "";
}
.headline-hr.-align-right:after {
	content: none;
}

.icon-hr {
	display: block;
}
.icon-hr:before {
	position: relative;
	display: block;
	bottom: -0.53333em;
	width: 2em;
	margin: 0;
	background: #ffffff;
}
.icon-hr.-centered:before {
	width: 2.4em;
	margin: 0 auto;
	text-align: center;
}
.icon-hr.-align-right:before {
	margin: 0 0 0 auto;
	text-align: right;
}
.icon-hr hr {
	margin: 0;
}

.confirmation {
	color: #024981;
}

.information {
	color: #024981;
}

.warning {
	color: #024981;
}

p.confirmation,
p.information,
p.warning,
div.confirmation,
div.information,
div.warning,
span.confirmation,
span.information,
span.warning {
	position: relative;
	display: block;
	overflow: hidden;
	margin: 1.66667em 0;
	padding: 1.06667em 6.25% 1.06667em 12.5%;
	border: 1px solid #bbbbbb;
	color: #011e36;
	background: #ffffff;
}
@media screen and (max-width: 900px) {
	p.confirmation,
	p.information,
	p.warning,
	div.confirmation,
	div.information,
	div.warning,
	span.confirmation,
	span.information,
	span.warning {
		padding-left: 4.26667em;
	}
}
p.confirmation:before,
p.information:before,
p.warning:before,
div.confirmation:before,
div.information:before,
div.warning:before,
span.confirmation:before,
span.information:before,
span.warning:before {
	font: 1.6em/1 "RockSolid Icons";
	content: "\e044";
	-webkit-font-smoothing: antialiased;
	font-smoothing: antialiased;
	text-rendering: geometricPrecision;
	text-indent: 0;
	display: inline-block;
	position: relative;
	position: absolute;
	top: 50%;
	left: -0.41667em;
	width: 2.5em;
	height: 2.5em;
	margin: -1.25em 0 0;
	padding: 0.66667em;
	border-radius: 100%;
	color: #ffffff;
	text-align: center;
	background: #024981;
}
p.information,
div.information,
span.information {
	color: #011e36;
}
p.information:before,
div.information:before,
span.information:before {
	content: "\e0a6";
	background: #024981;
}
p.warning,
div.warning,
span.warning {
	color: #011e36;
}
p.warning:before,
div.warning:before,
span.warning:before {
	content: "\e143";
	background: #024981;
}

p.drop-cap:first-letter,
span.drop-cap {
	float: left;
	margin: 0.14286em 0.42857em 0 0;
	padding: 0.39286em;
	font-size: 1.86667em;
	font-weight: bold;
	/* Fixes line-height difference between gecko and webkit */
	line-height: 0.7;
	color: #ffffff;
	background: #f1b231;
}

p.drop-cap:first-letter {
	/* IE8 and IE9 calculate em's from the parent element */
	margin: 0.26667em 0.8em 0 0 \9;
}

code {
	padding: 0.14286em 0.35714em;
	font-family: "Lucida Console", monospace;
	font-size: 0.93333em;
	line-height: 1.35786;
	background-color: #bbbbbb;
}

pre {
	margin: 1.71429em 0;
	padding: 0.5em 1em;
	display: block;
	overflow: auto;
	font-family: "Lucida Console", monospace;
	font-size: 0.93333em;
	line-height: 1.715;
	background-color: #bbbbbb;
}
pre .hljs,
pre code {
	font-size: 1em;
	padding: 0;
	line-height: inherit;
	background-color: transparent;
}

/* ===========================================
 * Buttons
 * ======================================== */
.button-box {
	margin: 0.8em 0;
}
.button-box.-left {
	text-align: left;
}
.button-box.-right {
	text-align: right;
}
.button-box.-centered {
	text-align: center;
}
.button-box.-inline {
	display: inline;
}

button.-secondary,
.button.-secondary,
input[type="submit"].-secondary,
.main-navigation-search-form button,
.feature-box-link.-secondary,
.headline-box-link.-secondary,
.pricing-table-plan a.-secondary,
.feature-box-link,
.headline-box-link,
.pricing-table-plan a,
button,
.button,
input[type="submit"],
input[type="reset"],
input[type="button"] {
	position: relative;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	display: inline-block;
	padding: 1.07143em 1.42857em;
	border: 0;
	outline: none;
	font-size: 0.93333em;
	letter-spacing: 0.1em;
	line-height: 1.42929;
	color: #333333;
	text-align: center;
	text-decoration: none;
	text-transform: uppercase;
	background: #fbba00;
}
button.-secondary:hover,
.button.-secondary:hover,
input[type="submit"].-secondary:hover,
.main-navigation-search-form button:hover,
.feature-box-link:hover,
.headline-box-link:hover,
.pricing-table-plan a:hover,
button.-secondary:focus,
.button.-secondary:focus,
input[type="submit"].-secondary:focus,
.main-navigation-search-form button:focus,
.feature-box-link:focus,
.headline-box-link:focus,
.pricing-table-plan a:focus,
button:hover,
button:focus,
.button:hover,
.button:focus,
input[type="submit"]:hover,
input[type="submit"]:focus,
input[type="reset"]:hover,
input[type="reset"]:focus,
input[type="button"]:hover,
input[type="button"]:focus {
	background-color: #c89400;
	text-decoration: none;
}
button.-secondary:active,
.button.-secondary:active,
input[type="submit"].-secondary:active,
.main-navigation-search-form button:active,
.feature-box-link:active,
.headline-box-link:active,
.pricing-table-plan a:active,
button:active,
.button:active,
input[type="submit"]:active,
input[type="reset"]:active,
input[type="button"]:active {
	background-color: #e2a700;
}
button.-small.-secondary,
.-small.button.-secondary,
input.-small[type="submit"].-secondary,
.main-navigation-search-form button.-small,
.-small.feature-box-link,
.-small.headline-box-link,
.pricing-table-plan a.-small,
button.-small,
.button.-small,
input[type="submit"].-small,
input[type="reset"].-small,
input[type="button"].-small {
	padding: 0.66667em 1em;
	font-size: 0.8em;
	line-height: 1.6675;
}
button.-medium.-secondary,
.-medium.button.-secondary,
input.-medium[type="submit"].-secondary,
.main-navigation-search-form button.-medium,
.-medium.feature-box-link,
.-medium.headline-box-link,
.pricing-table-plan a.-medium,
button.-medium,
.button.-medium,
input[type="submit"].-medium,
input[type="reset"].-medium,
input[type="button"].-medium {
	padding: 0.75em 1em;
	font-size: 1.2em;
	line-height: 1.11167;
}
button.-large.-secondary,
.-large.button.-secondary,
input.-large[type="submit"].-secondary,
.main-navigation-search-form button.-large,
.-large.feature-box-link,
.-large.headline-box-link,
.pricing-table-plan a.-large,
button.-large,
.button.-large,
input[type="submit"].-large,
input[type="reset"].-large,
input[type="button"].-large {
	padding: 0.71429em 0.95238em;
	font-size: 1.4em;
	line-height: 0.95286;
}
button.-super-size.-secondary,
.-super-size.button.-secondary,
input.-super-size[type="submit"].-secondary,
.main-navigation-search-form button.-super-size,
.-super-size.feature-box-link,
.-super-size.headline-box-link,
.pricing-table-plan a.-super-size,
button.-super-size,
.button.-super-size,
input[type="submit"].-super-size,
input[type="reset"].-super-size,
input[type="button"].-super-size {
	padding: 0.55556em 0.69444em;
	font-size: 2.4em;
	line-height: 1.00028;
}
@media screen and (max-width: 900px) {
	button.-super-size.-secondary,
	.-super-size.button.-secondary,
	input.-super-size[type="submit"].-secondary,
	.main-navigation-search-form button.-super-size,
	.-super-size.feature-box-link,
	.-super-size.headline-box-link,
	.pricing-table-plan a.-super-size,
	button.-super-size,
	.button.-super-size,
	input[type="submit"].-super-size,
	input[type="reset"].-super-size,
	input[type="button"].-super-size {
		font-size: 1.86667em;
	}
}
.-highlight-color button.-secondary,
.-highlight-color .button.-secondary,
.-highlight-color input[type="submit"].-secondary,
.-highlight-color .main-navigation-search-form button,
.main-navigation-search-form .-highlight-color button,
.-highlight-color .feature-box-link,
.-highlight-color .headline-box-link,
.-highlight-color .pricing-table-plan a,
.pricing-table-plan .-highlight-color a,
.-highlight-color button,
.-highlight-color .button,
.-highlight-color input[type="submit"],
.-highlight-color input[type="reset"],
.-highlight-color input[type="button"] {
	color: #ffffff;
}

button.-small,
.button.-small,
input[type="submit"].-small {
	padding: 0.41667em 0.83333em;
	font-size: 0.8em;
}

button.-secondary,
.button.-secondary,
input[type="submit"].-secondary,
.main-navigation-search-form button,
.feature-box-link.-secondary,
.headline-box-link.-secondary,
.pricing-table-plan a.-secondary {
	padding: 0.92857em 1.28571em;
	border: 2px solid #333333;
	border-color: currentColor;
	color: inherit;
	background: transparent;
}
button.-secondary:hover,
.button.-secondary:hover,
input[type="submit"].-secondary:hover,
.main-navigation-search-form button:hover,
.feature-box-link.-secondary:hover,
.headline-box-link.-secondary:hover,
.pricing-table-plan a.-secondary:hover,
button.-secondary:focus,
.button.-secondary:focus,
input[type="submit"].-secondary:focus,
.main-navigation-search-form button:focus,
.feature-box-link.-secondary:focus,
.headline-box-link.-secondary:focus,
.pricing-table-plan a.-secondary:focus {
	background-color: transparent;
}
button.-secondary:hover:after,
.button.-secondary:hover:after,
input[type="submit"].-secondary:hover:after,
.main-navigation-search-form button:hover:after,
.feature-box-link.-secondary:hover:after,
.headline-box-link.-secondary:hover:after,
.pricing-table-plan a.-secondary:hover:after,
button.-secondary:focus:after,
.button.-secondary:focus:after,
input[type="submit"].-secondary:focus:after,
.main-navigation-search-form button:focus:after,
.feature-box-link.-secondary:focus:after,
.headline-box-link.-secondary:focus:after,
.pricing-table-plan a.-secondary:focus:after {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	background: currentColor;
	opacity: 0.2;
}
button.-secondary:active,
.button.-secondary:active,
input[type="submit"].-secondary:active,
.main-navigation-search-form button:active,
.feature-box-link.-secondary:active,
.headline-box-link.-secondary:active,
.pricing-table-plan a.-secondary:active {
	background-color: transparent;
}
button.-secondary:active:after,
.button.-secondary:active:after,
input[type="submit"].-secondary:active:after,
.main-navigation-search-form button:active:after,
.feature-box-link.-secondary:active:after,
.headline-box-link.-secondary:active:after,
.pricing-table-plan a.-secondary:active:after {
	opacity: 0.1;
}
button.-large.-secondary,
.-large.button.-secondary,
input.-large[type="submit"].-secondary,
.main-navigation-search-form button.-large,
.-large.feature-box-link.-secondary,
.-large.headline-box-link.-secondary,
.pricing-table-plan a.-large.-secondary,
button.-super-size.-secondary,
.-super-size.button.-secondary,
input.-super-size[type="submit"].-secondary,
.main-navigation-search-form button.-super-size,
.-super-size.feature-box-link.-secondary,
.-super-size.headline-box-link.-secondary,
.pricing-table-plan a.-super-size.-secondary {
	border-width: 3px;
}

button.-tertiary,
.button.-tertiary,
input[type="submit"].-tertiary {
	padding: 0;
	font-size: 1.6em;
	letter-spacing: normal;
	text-align: left;
	text-transform: none;
	background: none;
	color: #333333;
}
button.-small.-tertiary,
.-small.button.-tertiary,
input.-small[type="submit"].-tertiary {
	font-size: 0.93333em;
	line-height: 1.42929;
}
button.-medium.-tertiary,
.-medium.button.-tertiary,
input.-medium[type="submit"].-tertiary {
	font-size: 1.2em;
	line-height: 1.11167;
}
button.-large.-tertiary,
.-large.button.-tertiary,
input.-large[type="submit"].-tertiary {
	font-size: 1.4em;
	line-height: 0.95286;
}
button.-super-size.-tertiary,
.-super-size.button.-tertiary,
input.-super-size[type="submit"].-tertiary {
	font-size: 2.4em;
	line-height: 1.00028;
}
button.-tertiary:before,
.button.-tertiary:before,
input[type="submit"].-tertiary:before {
	top: -2px;
	font-size: 60%;
}
.-color-inverted button.-tertiary,
.-color-inverted .button.-tertiary,
.-color-inverted input[type="submit"].-tertiary {
	color: #ffffff;
}
button.-tertiary:hover,
.button.-tertiary:hover,
input[type="submit"].-tertiary:hover,
button.-tertiary:focus,
.button.-tertiary:focus,
input[type="submit"].-tertiary:focus {
	color: #333333;
}

/* ===========================================
 * Wrapper Elements
 * ======================================== */
.content-wrapper {
	max-width: 1440px;
	margin-right: auto;
	margin-left: auto;
}

.mega-dropdown-inner,
.centered-wrapper-inner,
.news-footer > h1,
.news-footer > h2,
.news-footer > h3,
.news-footer-item-inner {
	width: 100%;
	max-width: 1350px;
	margin-right: auto;
	margin-left: auto;
}
@media screen and (max-width: 1440px) {
	.mega-dropdown-inner,
	.centered-wrapper-inner,
	.news-footer > h1,
	.news-footer > h2,
	.news-footer > h3,
	.news-footer-item-inner {
		width: 93.75%;
		width: var(--page-inner-width);
		max-width: none;
		margin-right: 0;
		margin-left: 3.125%;
		margin-left: var(--page-padding-left);
	}
}
@media screen and (max-width: 1200px) {
	.mega-dropdown-inner,
	.centered-wrapper-inner,
	.news-footer > h1,
	.news-footer > h2,
	.news-footer > h3,
	.news-footer-item-inner {
		width: 91.66667%;
		width: var(--page-inner-width);
		margin-left: 4.16667%;
		margin-left: var(--page-padding-left);
	}
}

.page {
	zoom: 1;
	position: relative;
	margin: 0 auto;
	padding-top: var(--safe-area-top);
	padding-bottom: var(--safe-area-bottom);
	background: #ffffff;
}
.page:before {
	content: "";
	display: table;
}
.page:after {
	content: "";
	display: table;
	clear: both;
}
.oneo-boxed .page {
	max-width: 1440px;
	border: solid #bbbbbb;
	border-width: 0 1px;
	box-shadow: 0 0 5px rgba(0, 0, 0, 0.2);
}
@media screen and (max-width: 1440px) {
	.page {
	}
	.oneo-boxed .page {
		border: 0;
		box-shadow: none;
	}
}
.oneo-not-boxed .page {
	max-width: none;
	border: 0;
	box-shadow: none;
}

/* ===========================================
 * Layout in order of appearance in HTML
 * ======================================== */
.header-navigation {
	position: relative;
	z-index: 5;
}
.header-navigation.is-fixed {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
	transform: translateZ(0);
}
.oneo-boxed .header-navigation.is-fixed {
	left: auto;
	margin-left: -1px;
	max-width: 1440px;
}

.main-navigation-wrapper {
	zoom: 1;
	position: relative;
	border: solid #bbbbbb;
	border-width: 1px 0;
	background: #ffffff;
}
.main-navigation-wrapper:before {
	content: "";
	display: table;
}
.main-navigation-wrapper:after {
	content: "";
	display: table;
	clear: both;
}

.logo {
	position: absolute;
	top: 25%;
	bottom: 25%;
	left: 2.6666em;
	left: calc(2.6666em + var(--safe-area-left));
	margin: 0;
	font-size: inherit;
}
@media screen and (max-width: 1200px) {
	.logo {
		position: static;
		float: left;
		margin-left: 4.16667%;
		margin-left: var(--page-padding-left);
		padding-top: 1.6em;
		padding-bottom: 0.4em;
	}
}
@media screen and (max-width: 900px) {
	.logo {
		float: none;
		text-align: center;
		margin-left: 0;
		padding-top: 0.8em;
	}
}
.logo a {
	display: block;
	height: 100%;
}
@media screen and (max-width: 1200px) {
	.logo a {
		display: inline;
	}
}
.logo img {
	display: block;
	width: auto;
	height: 100%;
}
@media screen and (max-width: 1200px) {
	.logo img {
		display: inline;
		height: 2em;
	}
}
@media screen and (max-width: 900px) {
	.logo img {
		height: 2em;
	}
}

.main-navigation {
	float: right;
	padding-right: 1.46667em;
}
@media screen and (max-width: 1440px) {
	.main-navigation {
		padding-right: 0.8em;
	}
}
@media screen and (max-width: 1200px) {
	.main-navigation {
		zoom: 1;
		position: relative;
		float: none;
		clear: both;
		padding-left: 1.46667em;
		padding-left: calc(1.46667em + var(--safe-area-left));
	}
	.main-navigation:before {
		content: "";
		display: table;
	}
	.main-navigation:after {
		content: "";
		display: table;
		clear: both;
	}
}
@media screen and (max-width: 900px) {
	.main-navigation {
		display: none;
	}
}
.main-navigation ul {
	display: inline;
	margin: 0;
	padding: 0;
}
.main-navigation > ul > li {
	position: relative;
	float: left;
	margin-left: 2em;
}
@media screen and (max-width: 1440px) {
	.main-navigation > ul > li {
		margin-left: 0;
	}
}
.main-navigation > ul > li:before {
	/* disable icons */
	content: none;
	display: none;
}
.main-navigation > ul > li.-mega {
	position: static;
}
.main-navigation > ul > li > a,
.main-navigation > ul > li > strong,
.main-navigation > ul > li > span.active,
.main-navigation > ul > li > span.trail,
.main-navigation > ul > li > span.forward {
	z-index: 1;
	position: relative;
	float: left;
	padding: 0.61538em 1.07692em 0.53846em;
	border: solid transparent;
	border-width: 0.84615em 0;
	font-size: 0.86667em;
	line-height: 1.61615;
	font-weight: bold;
	letter-spacing: 0.1em;
	color: #024981;
	text-transform: uppercase;
	background-clip: padding-box;
}
.main-navigation > ul > li > a.highlight,
.main-navigation > ul > li > strong.highlight,
.main-navigation > ul > li > span.active.highlight,
.main-navigation > ul > li > span.trail.highlight,
.main-navigation > ul > li > span.forward.highlight {
	color: #f1b231;
}
.main-navigation > ul > li > a.highlight:after,
.main-navigation > ul > li > strong.highlight:after,
.main-navigation > ul > li > span.active.highlight:after,
.main-navigation > ul > li > span.trail.highlight:after,
.main-navigation > ul > li > span.forward.highlight:after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	width: auto;
	height: auto;
	border: 2px solid #f1b231;
}
.main-navigation > ul > li > a:hover,
.main-navigation > ul > li > a:focus,
.main-navigation > ul > li > strong:hover,
.main-navigation > ul > li > strong:focus,
.main-navigation > ul > li > span.active:hover,
.main-navigation > ul > li > span.active:focus,
.main-navigation > ul > li > span.trail:hover,
.main-navigation > ul > li > span.trail:focus,
.main-navigation > ul > li > span.forward:hover,
.main-navigation > ul > li > span.forward:focus {
	color: #f1b231;
	text-decoration: none;
}
.main-navigation > ul > li > a.active,
.main-navigation > ul > li > a.trail,
.main-navigation > ul > li > a.forward,
.main-navigation > ul > li > strong.active,
.main-navigation > ul > li > strong.trail,
.main-navigation > ul > li > strong.forward,
.main-navigation > ul > li > span.active,
.main-navigation > ul > li > span.trail,
.main-navigation > ul > li > span.forward {
	color: #024981;
}
.main-navigation > ul > li > a.active:not(.highlight):after,
.main-navigation > ul > li > a.trail:not(.highlight):after,
.main-navigation > ul > li > a.forward:not(.highlight):after,
.main-navigation > ul > li > strong.active:not(.highlight):after,
.main-navigation > ul > li > strong.trail:not(.highlight):after,
.main-navigation > ul > li > strong.forward:not(.highlight):after,
.main-navigation > ul > li > span.active:not(.highlight):after,
.main-navigation > ul > li > span.trail:not(.highlight):after,
.main-navigation > ul > li > span.forward:not(.highlight):after {
	content: "";
	position: absolute;
	bottom: -0.92308em;
	left: 50%;
	display: block;
	width: 0.84615em;
	height: 0.84615em;
	margin-left: -0.61538em;
	border: solid #bbbbbb;
	border-width: 0 1px 1px 0;
	background: #ffffff;
	transform: rotate(45deg);
	transform-origin: 0 100%;
}
.main-navigation > ul > li > ul {
	position: absolute;
	top: 100%;
	left: 0;
	display: block;
	overflow: hidden;
	max-height: 0;
	min-width: 100%;
	padding: 0;
	border: 1px solid #bbbbbb;
	background: #ffffff;
	opacity: 0;
	box-shadow: 0 0 5px rgba(0, 0, 0, 0.1);
	transition: max-height 0s 0.3s, padding 0s 0.3s, opacity 0.3s;
	pointer-events: none;
}
.header-navigation.is-bottom .main-navigation > ul > li > ul {
	top: auto;
	bottom: 100%;
}
.main-navigation > ul > li > ul li {
	position: relative;
	display: block;
	padding: 0;
	border-top: 1px solid #bbbbbb;
	white-space: nowrap;
}
.main-navigation > ul > li > ul li:first-child {
	border-top: 0;
}
.main-navigation > ul > li > ul li li {
	border: 0;
}
.main-navigation > ul > li > ul li[data-icon]:before,
.main-navigation > ul > li > ul li[class^="icon-"]:before,
.main-navigation > ul > li > ul li[class*=" icon-"]:before {
	position: absolute;
	top: 0.85714em;
	left: 1em;
	z-index: 1;
	font-size: 0.93333em;
}
.main-navigation > ul > li > ul li[data-icon] a,
.main-navigation > ul > li > ul li[data-icon] strong,
.main-navigation > ul > li > ul li[data-icon] span.active,
.main-navigation > ul > li > ul li[data-icon] span.trail,
.main-navigation > ul > li > ul li[data-icon] span.forward,
.main-navigation > ul > li > ul li[class^="icon-"] a,
.main-navigation > ul > li > ul li[class^="icon-"] strong,
.main-navigation > ul > li > ul li[class^="icon-"] span.active,
.main-navigation > ul > li > ul li[class^="icon-"] span.trail,
.main-navigation > ul > li > ul li[class^="icon-"] span.forward,
.main-navigation > ul > li > ul li[class*=" icon-"] a,
.main-navigation > ul > li > ul li[class*=" icon-"] strong,
.main-navigation > ul > li > ul li[class*=" icon-"] span.active,
.main-navigation > ul > li > ul li[class*=" icon-"] span.trail,
.main-navigation > ul > li > ul li[class*=" icon-"] span.forward {
	padding-left: 2.42857em;
}
.main-navigation > ul > li > ul a,
.main-navigation > ul > li > ul strong,
.main-navigation > ul > li > ul span.active,
.main-navigation > ul > li > ul span.trail,
.main-navigation > ul > li > ul span.forward {
	position: relative;
	display: block;
	padding: 0.57143em 0.85714em;
	margin: 0;
	font-size: 0.93333em;
	font-weight: inherit;
}
.main-navigation > ul > li > ul a:before,
.main-navigation > ul > li > ul strong:before,
.main-navigation > ul > li > ul span.active:before,
.main-navigation > ul > li > ul span.trail:before,
.main-navigation > ul > li > ul span.forward:before {
	/* disable icons */
	content: none;
	display: none;
}
.main-navigation > ul > li > ul a {
	color: #024981;
	transition: background-color 0.6s ease-in, color 0.6s ease-in;
}
.main-navigation > ul > li > ul a:hover {
	text-decoration: none;
	color: #f1b231;
	background-color: #bbbbbb;
	transition-duration: 0.05s;
}
.main-navigation > ul > li > ul a.active,
.main-navigation > ul > li > ul a.trail,
.main-navigation > ul > li > ul a.forward,
.main-navigation > ul > li > ul strong.active,
.main-navigation > ul > li > ul strong.trail,
.main-navigation > ul > li > ul strong.forward,
.main-navigation > ul > li > ul span.active,
.main-navigation > ul > li > ul span.trail,
.main-navigation > ul > li > ul span.forward {
	color: #024981;
}
.main-navigation > ul > li > ul ul {
	display: block;
	padding-left: 0.66667em;
}
.main-navigation > ul > li:hover {
	z-index: 2;
}
.main-navigation > ul > li:hover:after {
	content: "";
	position: absolute;
	top: 50%;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 1;
	margin-top: 0.66667em;
}
.main-navigation > ul > li:hover > ul {
	z-index: 1;
	max-height: 9999px;
	opacity: 1;
	transition: opacity 0.2s;
	pointer-events: auto;
}
.main-navigation > ul > li:hover > a,
.main-navigation > ul > li:hover > strong,
.main-navigation > ul > li:hover > span.active,
.main-navigation > ul > li:hover > span.trail,
.main-navigation > ul > li:hover > span.forward {
	z-index: 2;
}
.main-navigation > ul > li.submenu:hover > a:after,
.main-navigation > ul > li.submenu:hover > strong:after,
.main-navigation > ul > li.submenu:hover > span.active:after,
.main-navigation > ul > li.submenu:hover > span.trail:after,
.main-navigation > ul > li.submenu:hover > span.forward:after {
	content: "";
	position: absolute;
	top: -0.23077em;
	right: 0;
	bottom: -0.92308em;
	left: 0;
	width: auto;
	height: auto;
	margin-left: 0;
	border: 0;
	border-top: 4px solid #f1b231;
	border-radius: 2px 2px 0 0;
	box-shadow: 0 -3px 3px rgba(0, 0, 0, 0.1), inset 1px 0 #bbbbbb, inset -1px 0 #bbbbbb, inset 0 -10px #ffffff;
	background: none;
	transform: none;
}
.header-navigation.is-bottom .main-navigation > ul > li.submenu:hover > a:after,
.header-navigation.is-bottom .main-navigation > ul > li.submenu:hover > strong:after,
.header-navigation.is-bottom .main-navigation > ul > li.submenu:hover > span.active:after,
.header-navigation.is-bottom .main-navigation > ul > li.submenu:hover > span.trail:after,
.header-navigation.is-bottom .main-navigation > ul > li.submenu:hover > span.forward:after {
	top: -0.92308em;
	bottom: -0.46154em;
	border-top: 0;
	border-bottom: 4px solid #f1b231;
	border-radius: 0 0 2px 2px;
	box-shadow: 0 3px 3px rgba(0, 0, 0, 0.1), inset 1px 0 #bbbbbb, inset -1px 0 #bbbbbb, inset 0 10px #ffffff;
}
.main-navigation > ul > li.last > ul {
	left: auto;
	right: 0;
}

.mega-dropdown {
	position: absolute;
	top: 100%;
	left: 0;
	display: block;
	width: 100%;
	max-height: 0;
	padding: 0;
	overflow: hidden;
	border: solid #bbbbbb;
	border-width: 1px 0;
	background: #ffffff;
	opacity: 0;
	box-shadow: 0 0 5px rgba(0, 0, 0, 0.1);
	transition: max-height 0s 0.3s, padding 0s 0.3s, opacity 0.3s;
	pointer-events: none;
	/* Fixes chrome text flicker */
	-webkit-backface-visibility: hidden;
}
@media screen and (max-width: 1200px) {
	.mega-dropdown {
		background-image: none !important;
	}
}
.header-navigation.is-bottom .mega-dropdown {
	top: auto;
	bottom: 100%;
}
li:hover > .mega-dropdown {
	z-index: 1;
	max-height: 9999px;
	overflow: visible;
	padding: 1.57143em 0;
	opacity: 1;
	transition: opacity 0.2s;
	pointer-events: auto;
}
.mega-dropdown .rsts-nav {
	pointer-events: none;
}
.mega-dropdown .rsts-nav-prev,
.mega-dropdown .rsts-nav-next,
.mega-dropdown .rsts-nav-item {
	pointer-events: auto;
}

.mega-dropdown-column h1,
.mega-dropdown-column h2,
.mega-dropdown-column h3 {
	margin: 0 0 0.71429em;
	font-size: inherit;
	font-weight: bold;
	color: #f1b231;
}
.mega-dropdown-column h1 a,
.mega-dropdown-column h2 a,
.mega-dropdown-column h3 a {
	color: inherit;
}
.mega-dropdown-column p {
	margin: 1em 0;
}
.mega-dropdown-column ul a {
	display: inline-block;
	padding: 0.28571em 0 0.21429em;
	color: #024981;
}
.mega-dropdown-column ul a:before {
	content: none;
}
.mega-dropdown-column ul a:hover {
	color: #f1b231;
}
.mega-dropdown-column ul a.active,
.mega-dropdown-column ul a.trail,
.mega-dropdown-column ul a.forward {
	font-weight: bold;
}
.mega-dropdown-column li li {
	margin-left: 1.57143em;
}

.mega-dropdown-image {
	margin: 1.42857em 0;
}
.mega-dropdown-image img {
	display: block;
	width: 100%;
	height: auto;
}

.main-navigation-search {
	float: right;
	margin-right: var(--safe-area-right);
}
@media screen and (max-width: 900px) {
	.main-navigation-search {
		position: absolute;
		top: 50%;
		right: 0;
		margin-top: -1.93333em;
	}
}
.main-navigation-search > a {
	display: block;
	overflow: hidden;
	margin-right: 0.66667em;
	padding: 1.26667em 0 1.2em;
	line-height: 0;
	color: #024981;
	text-decoration: none;
	text-indent: -99em;
}
@media screen and (max-width: 1440px) {
	.main-navigation-search > a {
		margin-right: 0;
	}
}
@media screen and (max-width: 1200px) {
	.main-navigation-search > a {
		margin-top: 0.66667em;
	}
}
@media screen and (max-width: 1200px) {
	.main-navigation-search > a {
		margin-top: 0;
		margin-right: 0;
	}
}
.main-navigation-search > a:hover,
.main-navigation-search > a:focus {
	color: #f1b231;
}
.main-navigation-search > a:after {
	font: 1.4em/1 "RockSolid Icons";
	content: "\e0cb";
	-webkit-font-smoothing: antialiased;
	font-smoothing: antialiased;
	text-rendering: geometricPrecision;
	text-indent: 0;
	display: inline-block;
	position: relative;
	display: block;
	padding: 0 1.42857em;
	border-left: 1px solid #024981;
	text-indent: 0;
}
@media screen and (max-width: 1200px) {
	.main-navigation-search > a:after {
		border-left: 0;
	}
}
.main-navigation-search form {
	display: none;
}

.main-navigation-search-form {
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	display: none;
	z-index: 100;
	color: #ffffff;
	text-align: center;
	background: #f1b231;
	background: rgba(241, 178, 49, 0.9);
}
.main-navigation-search-form.is-active,
.main-navigation-search-form.is-pre-active {
	display: block;
}
.main-navigation-search-form.is-pre-active {
	opacity: 0;
}
.main-navigation-search-form.is-active {
	transition: opacity 0.3s linear;
}
.main-navigation-search-form:before {
	content: "";
	display: block;
	height: 50%;
	margin-bottom: -6.66667em;
}
.main-navigation-search-form label {
	display: block;
	font-size: 2.4em;
}
@media screen and (max-width: 900px) {
	.main-navigation-search-form label {
		font-size: 1.86667em;
	}
}
.main-navigation-search-form input,
.main-navigation-search-form input:hover,
.main-navigation-search-form input:focus {
	display: block;
	margin: 0.33333em auto;
	padding: 0;
	border: 0;
	border-bottom: 2px solid currentColor;
	border-radius: 0;
	font-size: 2.4em;
	color: inherit;
	text-align: center;
	background: none;
	box-shadow: none;
}
@media screen and (max-width: 900px) {
	.main-navigation-search-form input,
	.main-navigation-search-form input:hover,
	.main-navigation-search-form input:focus {
		width: 80%;
		font-size: 1.86667em;
	}
}

.main-navigation-search-close {
	position: absolute;
	top: 0;
	right: 0;
	overflow: hidden;
	padding: 2em;
	padding-top: calc(2em + var(--safe-area-top));
	padding-right: calc(2em + var(--safe-area-right));
	color: inherit;
	line-height: 0;
	text-indent: -99em;
}
.main-navigation-search-close:hover,
.main-navigation-search-close:focus {
	text-decoration: none;
}
.main-navigation-search-close:after {
	font: 2.8em/1 "RockSolid Icons";
	content: "\e14a";
	-webkit-font-smoothing: antialiased;
	font-smoothing: antialiased;
	text-rendering: geometricPrecision;
	text-indent: 0;
	display: inline-block;
	position: relative;
	display: block;
	text-indent: 0;
}

.secondary-navigation-wrapper {
	zoom: 1;
	background: #f2f2f2;
}
.secondary-navigation-wrapper:before {
	content: "";
	display: table;
}
.secondary-navigation-wrapper:after {
	content: "";
	display: table;
	clear: both;
}

.secondary-navigation {
	padding: 0 1em;
	padding-right: calc(1em + var(--safe-area-right));
	padding-left: calc(1em + var(--safe-area-left));
	font-size: 0.86667em;
	text-align: center;
}
@media screen and (max-width: 1200px) {
	.secondary-navigation {
		text-align: left;
		padding-right: 2em;
		padding-right: calc(2em + var(--safe-area-right));
		padding-left: 2em;
		padding-left: calc(2em + var(--safe-area-left));
	}
}
@media screen and (max-width: 900px) {
	.secondary-navigation {
		display: none;
	}
}
.secondary-navigation ul {
	margin: 0;
	padding: 0;
}
.secondary-navigation li {
	position: relative;
	display: inline-block;
}
.secondary-navigation li:before {
	/* disable icons */
	content: none;
	display: none;
}
.secondary-navigation li.-mega {
	position: static;
}
.secondary-navigation li > a,
.secondary-navigation li > strong,
.secondary-navigation li > span.active,
.secondary-navigation li > span.trail,
.secondary-navigation li > span.forward {
	position: relative;
	display: block;
	padding: 1.15385em 1.85em;
	letter-spacing: 0.075em;
	white-space: nowrap;
	color: #024981;
	text-transform: uppercase;
	background-clip: padding-box;
}
@media screen and (max-width: 1440px) {
	.secondary-navigation li > a,
	.secondary-navigation li > strong,
	.secondary-navigation li > span.active,
	.secondary-navigation li > span.trail,
	.secondary-navigation li > span.forward {
		padding-right: 1em;
		padding-left: 1em;
	}
}
@media screen and (max-width: 1200px) {
	.secondary-navigation li > a,
	.secondary-navigation li > strong,
	.secondary-navigation li > span.active,
	.secondary-navigation li > span.trail,
	.secondary-navigation li > span.forward {
		padding-right: 0.76923em;
		padding-left: 0.76923em;
	}
}
.secondary-navigation li > a:before,
.secondary-navigation li > strong:before,
.secondary-navigation li > span.active:before,
.secondary-navigation li > span.trail:before,
.secondary-navigation li > span.forward:before {
	margin-right: 0.69231em;
}
.secondary-navigation li > a:hover,
.secondary-navigation li > a:focus {
	color: #f1b231;
	text-decoration: none;
}
.secondary-navigation li > a.active,
.secondary-navigation li > a.trail,
.secondary-navigation li > a.forward,
.secondary-navigation li > strong.active,
.secondary-navigation li > strong.trail,
.secondary-navigation li > strong.forward,
.secondary-navigation li > span.active,
.secondary-navigation li > span.trail,
.secondary-navigation li > span.forward {
	background-color: #024981;
	color: #ffffff;
}

.main-navigation-mobile-open {
	position: absolute;
	top: 41px;
	left: 6.66667%;
	left: calc(6.66667% + var(--safe-area-left));
	width: 44px;
	height: 39px;
	margin: -19px 0 0 -11px;
	padding: 11px;
	display: none;
	z-index: 200;
	text-indent: -99em;
	line-height: 0;
}
.main-navigation-mobile-open:after {
	content: "";
	display: block;
	height: 3px;
	border-radius: 2px;
	background: #024981;
	box-shadow: 0 7px #024981, 0 14px #024981;
}
@media screen and (max-width: 900px) {
	.main-navigation-mobile-open {
		display: block;
	}
}
.main-navigation-wrapper .main-navigation-mobile-open {
	top: 50%;
}

.main-navigation-mobile-close {
	position: absolute;
	top: 0;
	right: -17.64706%;
	display: none;
	width: 17.64706%;
	height: 100%;
	overflow: hidden;
	margin: 0;
	padding: 0;
	border: 0 !important;
	text-indent: -99em;
	background: none !important;
	box-shadow: none !important;
}
.is-active > .main-navigation-mobile-close {
	display: block;
}

.main-navigation-mobile {
	/* Hide mobile navigation by default */
	display: none;
	padding: 0;
	padding-top: var(--safe-area-top);
	padding-bottom: var(--safe-area-bottom);
	padding-left: var(--safe-area-left);
	border-top: 1px solid #bbbbbb;
	color: #333333;
	background: #f5f5f5;
}
@media screen and (max-width: 900px) {
	.main-navigation-mobile {
		display: block;
	}
}
.modernizr-js .main-navigation-mobile {
	display: none;
}
.main-navigation-mobile.is-enabled {
	position: absolute;
	top: 0;
	left: -85%;
	z-index: 201;
	width: 85%;
	min-height: 100%;
	transition: left 0.2s ease-out;
}
@media screen and (max-width: 900px) {
	.main-navigation-mobile.is-enabled {
		display: block;
	}
}
.modernizr-csstransforms3d .main-navigation-mobile.is-enabled {
	left: 0;
	transform: translate3d(-100%, 0, 0);
	transition: transform 0.2s ease-out;
}
.main-navigation-mobile.is-active {
	left: 0;
	box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
}
.modernizr-csstransforms3d .main-navigation-mobile.is-active {
	transform: translate3d(0, 0, 0);
}
.main-navigation-mobile ul {
	display: block;
	margin: 0;
	padding: 0;
}
.main-navigation-mobile ul ul {
	background: #f5f5f5;
	box-shadow: inset 0 40px 40px -20px rgba(0, 0, 0, 0.04), inset 0 -40px 40px -20px rgba(0, 0, 0, 0.04);
}
.main-navigation-mobile .is-collapsed > ul {
	display: none;
}
.main-navigation-mobile li {
	position: relative;
	display: block;
}
.main-navigation-mobile li:before {
	content: none;
}
.main-navigation-mobile a,
.main-navigation-mobile strong,
.main-navigation-mobile span.active,
.main-navigation-mobile span.trail,
.main-navigation-mobile span.forward {
	display: block;
	padding: 0.64286em 0.92857em 0.57143em;
	border-bottom: 1px solid #bbbbbb;
	color: inherit;
	background-color: #f5f5f5;
	box-shadow: inset 0 1px rgba(255, 255, 255, 0.05);
	transition: background-color 0.6s ease-out;
}
.main-navigation-mobile a:before,
.main-navigation-mobile strong:before,
.main-navigation-mobile span.active:before,
.main-navigation-mobile span.trail:before,
.main-navigation-mobile span.forward:before {
	margin-right: 0.42857em;
}
.main-navigation-mobile a:hover,
.main-navigation-mobile a:focus,
.main-navigation-mobile strong:hover,
.main-navigation-mobile strong:focus,
.main-navigation-mobile span.active:hover,
.main-navigation-mobile span.active:focus,
.main-navigation-mobile span.trail:hover,
.main-navigation-mobile span.trail:focus,
.main-navigation-mobile span.forward:hover,
.main-navigation-mobile span.forward:focus {
	outline: none;
	text-decoration: none;
	background-color: #e8e8e8;
	transition: background-color 0.2s ease-out;
}
.main-navigation-mobile a.active,
.main-navigation-mobile a.trail,
.main-navigation-mobile strong.active,
.main-navigation-mobile strong.trail,
.main-navigation-mobile strong.forward,
.main-navigation-mobile span.active,
.main-navigation-mobile span.trail,
.main-navigation-mobile span.forward {
	font-weight: bold;
}
.main-navigation-mobile a.active,
.main-navigation-mobile strong.active,
.main-navigation-mobile span.active {
	background-color: #ffffff;
	box-shadow: inset 0 0 5px #f5f5f5;
}
.main-navigation-mobile li li {
	color: #000000;
}
.main-navigation-mobile li li a,
.main-navigation-mobile li li strong,
.main-navigation-mobile li li span.active,
.main-navigation-mobile li li span.trail,
.main-navigation-mobile li li span.forward {
	padding-left: 1.85714em;
}
.main-navigation-mobile li li li a,
.main-navigation-mobile li li li strong,
.main-navigation-mobile li li li span.active,
.main-navigation-mobile li li li span.trail,
.main-navigation-mobile li li li span.forward {
	padding-left: 2.78571em;
}
.main-navigation-mobile li li li li a,
.main-navigation-mobile li li li li strong,
.main-navigation-mobile li li li li span.active,
.main-navigation-mobile li li li li span.trail,
.main-navigation-mobile li li li li span.forward {
	padding-left: 3.71429em;
}
.main-navigation-mobile li li li li li a,
.main-navigation-mobile li li li li li strong,
.main-navigation-mobile li li li li li span.active,
.main-navigation-mobile li li li li li span.trail,
.main-navigation-mobile li li li li li span.forward {
	padding-left: 4.64286em;
}
.main-navigation-mobile .main-navigation-mobile-expand {
	position: absolute;
	top: 0.21429em;
	right: 0;
	overflow: hidden;
	margin: 0;
	padding: 0.57143em 0.92857em;
	border: solid transparent;
	border-width: 0.21429em 0;
	box-shadow: inset 1px 0 #dadada;
	border-radius: 0;
	outline: none;
	line-height: 0;
	color: inherit;
	text-indent: -99em;
	text-shadow: none;
	background: none;
}
.main-navigation-mobile .main-navigation-mobile-expand:after {
	font: 1.14286em/1 "RockSolid Icons";
	content: "\e009";
	-webkit-font-smoothing: antialiased;
	font-smoothing: antialiased;
	text-rendering: geometricPrecision;
	text-indent: 0;
	display: inline-block;
	position: relative;
	display: block;
}
.main-navigation-mobile .is-expanded > .main-navigation-mobile-expand:after {
	content: "\e00c";
}

.main-navigation-mobile-search {
	position: relative;
	margin: 5%;
}
.main-navigation-mobile-search a,
.main-navigation-mobile-search label {
	display: none;
}
.main-navigation-mobile-search input,
.main-navigation-mobile-search input:hover,
.main-navigation-mobile-search input:focus {
	width: 100%;
	border: 1px solid #bbbbbb;
	background: transparent;
	box-shadow: inset 0 1px rgba(255, 255, 255, 0.05);
}
.main-navigation-mobile-search button {
	position: absolute;
	top: 0.07143em;
	right: 0;
	width: 3.57143em;
	height: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	text-align: left;
	text-indent: -99em;
	text-shadow: none;
	line-height: 0;
	background: none;
	box-shadow: none;
}
.main-navigation-mobile-search button:after {
	font: 1.14286em/1 "RockSolid Icons";
	content: "\e0cb";
	-webkit-font-smoothing: antialiased;
	font-smoothing: antialiased;
	text-rendering: geometricPrecision;
	text-indent: 0;
	display: inline-block;
	position: relative;
	display: block;
	text-align: center;
}

.main-navigation-mobile-icons.main-navigation-mobile-icons {
	margin: 1em 0;
	text-align: center;
}
.main-navigation-mobile-icons.main-navigation-mobile-icons li {
	display: inline;
	padding: 0;
}
.main-navigation-mobile-icons.main-navigation-mobile-icons a {
	display: inline-block;
	width: 2.85714em;
	height: 2.85714em;
	overflow: hidden;
	padding: 0;
	border: 0;
	box-shadow: none;
}
.main-navigation-mobile-icons.main-navigation-mobile-icons a:before {
	font-size: 1.28571em;
	line-height: 2.22278;
	margin: 0 0 100%;
	color: #333333 !important;
}
.main-navigation-mobile-icons.main-navigation-mobile-icons a:hover:before {
	color: inherit !important;
}

.tagline .media > figure,
.tagline .content-image > figure,
.tagline .image_container {
	display: block;
	clear: both;
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	box-shadow: none;
}
.tagline img {
	display: block;
}

.content-wrapper {
	zoom: 1;
}
.content-wrapper:before {
	content: "";
	display: table;
}
.content-wrapper:after {
	content: "";
	display: table;
	clear: both;
}
@media screen and (max-width: 1440px) {
	.content-wrapper {
		padding-right: var(--safe-area-right);
		padding-left: var(--safe-area-left);
	}
}
.tagline + .content-wrapper {
	position: relative;
	margin-top: -2em;
	border-radius: 2px 2px 0 0;
	background: #ffffff;
}
@media screen and (max-width: 1440px) {
	.tagline + .content-wrapper {
		border-radius: 0;
	}
}
@media screen and (max-width: 900px) {
	.tagline + .content-wrapper {
		margin-top: 0;
	}
}
.oneo-fullwidth .content-wrapper {
	max-width: none;
	margin-top: 0;
	padding-right: 0;
	padding-left: 0;
	border-radius: 0;
}

.centered-wrapper {
	zoom: 1;
	position: relative;
	clear: both;
	background: 50% 50% no-repeat;
	background-size: cover;
}
.centered-wrapper:before {
	content: "";
	display: table;
}
.centered-wrapper:after {
	content: "";
	display: table;
	clear: both;
}
.centered-wrapper.-vertical-centered {
	display: -webkit-box;
	display: -moz-box;
	display: -ms-flexbox;
	display: -webkit-flex;
	display: flex;
	-webkit-box-direction: normal;
	-moz-box-direction: normal;
	-webkit-box-orient: vertical;
	-moz-box-orient: vertical;
	-webkit-flex-direction: column;
	-ms-flex-direction: column;
	flex-direction: column;
	-webkit-box-pack: center;
	-moz-box-pack: center;
	-webkit-justify-content: center;
	-ms-flex-pack: center;
	justify-content: center;
}
.centered-wrapper.-border-top {
	border-top: 1px solid #bbbbbb;
}
.centered-wrapper.-border-bottom {
	border-bottom: 1px solid #bbbbbb;
}
.centered-wrapper.-color-inverted {
	color: #ffffff;
}
.centered-wrapper.-highlight-color {
	background-color: #f1b231;
}
.centered-wrapper.-background-color-1 {
	background-color: #024981;
}
.centered-wrapper.-background-color-2 {
	background-color: #f4f7fa;
}
.centered-wrapper.-height-small {
	min-height: 300px;
}
@media screen and (max-width: 900px) {
	.centered-wrapper.-height-small {
		min-height: 200px;
	}
}
.centered-wrapper.-height-medium {
	min-height: 600px;
}
@media screen and (max-width: 900px) {
	.centered-wrapper.-height-medium {
		min-height: 400px;
	}
}
.centered-wrapper.-height-large {
	min-height: 900px;
}
@media screen and (max-width: 900px) {
	.centered-wrapper.-height-large {
		min-height: 600px;
	}
}
.centered-wrapper.-viewport-height {
	min-height: 710px;
	min-height: calc(100vh - 3.86667em);
}
@media screen and (max-width: 1200px) {
	.centered-wrapper.-viewport-height {
		min-height: 100vh;
	}
}
@media screen and (max-width: 900px) {
	.centered-wrapper.-viewport-height {
		min-height: 500px;
		min-height: 100vh;
	}
}
.centered-wrapper.-background-mousemove,
.centered-wrapper.-background-mousemove-inverted,
.centered-wrapper.-background-parallax {
	overflow: hidden;
}
.centered-wrapper.-fade-in.not-in-view {
	opacity: 0;
}
.centered-wrapper.-fade-in.in-view {
	transition: opacity 1.5s;
}

.centered-wrapper-background {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	overflow: hidden;
	background: 50% 50% no-repeat;
	background-size: cover;
}
.centered-wrapper-background video {
	/* Change this to `object-fit: cover;` once all browsers support it, */
	/* see http://stackoverflow.com/a/20851590 */
	position: absolute;
	top: 50%;
	left: 50%;
	min-width: 100%;
	min-height: 100%;
	transform: translate(-50%, -50%);
}
.-background-mousemove > .centered-wrapper-background,
.-background-mousemove-inverted > .centered-wrapper-background {
	right: -12%;
}

.centered-wrapper-background-2 {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	background: rgba(0, 0, 0, 0.1);
}

.centered-wrapper-inner {
	position: relative;
}
.centered-wrapper-inner.-fullwidth {
	width: 100%;
	max-width: none;
	margin: 0;
}
.centered-wrapper-inner.-fullwidth-padded {
	max-width: none;
	padding-right: 2.66667em;
	padding-right: var(--page-padding-right);
	padding-left: 2.66667em;
	padding-left: var(--page-padding-left);
}
@media screen and (max-width: 1440px) {
	.centered-wrapper-inner.-fullwidth-padded {
		padding-right: 0;
		padding-left: 0;
	}
}

@media screen and (max-width: 1200px) {
	.centered-wrapper.-no-background-tablet > .centered-wrapper-background,
	.centered-wrapper.-no-background-tablet > .centered-wrapper-background-2 {
		display: none;
	}
}

@media screen and (max-width: 900px) {
	.centered-wrapper.-no-background-mobile > .centered-wrapper-background,
	.centered-wrapper.-no-background-mobile > .centered-wrapper-background-2 {
		display: none;
	}
}

/* ===========================================
 * Content
 * ======================================== */
h1,
h2 {
	line-height: 1.3;
}

h3,
h4,
h5,
h6 {
	line-height: 1.5;
	font-weight: normal;
}

.main-content {
	float: right;
	width: 68.75%;
	margin: 1.6em 6.25% 4em 0;
}
@media screen and (max-width: 1200px) {
	.main-content {
		float: none;
		width: auto;
		margin-right: 4.16667%;
		margin-left: 4.16667%;
	}
}
.oneo-no-sidebar .main-content {
	float: none;
	width: auto;
	margin-left: 6.25%;
	margin-right: 6.25%;
}
@media screen and (max-width: 1200px) {
	.oneo-no-sidebar .main-content {
		margin-right: 4.16667%;
		margin-left: 4.16667%;
	}
}
.oneo-sidebar-right .main-content {
	float: left;
	margin-right: 0;
	margin-left: 6.25%;
}
@media screen and (max-width: 1200px) {
	.oneo-sidebar-right .main-content {
		float: none;
		margin-right: 4.16667%;
		margin-left: 4.16667%;
	}
}
.oneo-3-columns .main-content {
	width: 50%;
	margin-right: 25%;
}
@media screen and (max-width: 1200px) {
	.oneo-3-columns .main-content {
		float: none;
		width: auto;
		margin-right: 4.16667%;
	}
}
.oneo-fullwidth .main-content {
	margin: 0;
}
.main-content p,
.main-content ul,
.main-content ol,
.main-content table,
.main-content form,
.main-content fieldset {
	margin-top: 0.8em;
	margin-bottom: 1.6em;
}
.main-content p > span[style] {
	padding: 0 0.2em;
}
.main-content h1,
.main-content h2,
.main-content h3,
.main-content h4,
.main-content h5,
.main-content h6 {
	margin-top: 1em;
	margin-bottom: 0.3em;
}
.main-content h1 {
	font-size: 2em;
	color: #333333;
}
.main-content .-color-inverted h1 {
	color: #ffffff;
}
.main-content h2,
.main-content h3,
.main-content h4 {
	font-weight: normal;
}
.main-content h2 {
	font-size: 2em;
	color: #333333;
}
.main-content .-color-inverted h2 {
	color: #dcdcdc;
}
.main-content h3 {
	font-size: 2em;
}
.main-content h4 {
	font-size: 1.15em;
}
.main-content h5,
.main-content h6 {
	text-transform: uppercase;
}
.main-content h5 {
	font-size: 1.15em;
}
.main-content h6 {
	font-size: 1.15em;
	color: #333333;
}
.-color-inverted .main-content h6 {
	color: #dcdcdc;
}
.main-content ul,
.main-content ol {
	padding-left: 1.46667em;
}
.main-content ul li[data-icon],
.main-content ul li[class^="icon-"],
.main-content ul li[class*=" icon-"],
.main-content ol li[data-icon],
.main-content ol li[class^="icon-"],
.main-content ol li[class*=" icon-"] {
	list-style: none;
}
.main-content ul li[data-icon]:before,
.main-content ul li[class^="icon-"]:before,
.main-content ul li[class*=" icon-"]:before,
.main-content ol li[data-icon]:before,
.main-content ol li[class^="icon-"]:before,
.main-content ol li[class*=" icon-"]:before {
	float: left;
	left: -1.46667em;
	top: 0.33333em;
	margin-right: 0;
	width: 0;
	color: #f1b231;
}
.main-content ul {
	list-style: disc;
}
.main-content ul ul {
	margin-top: 0;
}
.main-content ol {
	padding-left: 1.33333em;
	list-style: decimal;
}
.main-content ol ol,
.main-content ol ul {
	margin-top: 0;
}
.main-content ol ol {
	padding-left: 1.6em;
	list-style: upper-alpha;
}
.main-content ol ol ol {
	list-style: lower-roman;
}
.main-content ol ol ol ol {
	list-style: lower-alpha;
}
.main-content blockquote {
	position: relative;
	margin: 1.28571em 0 1.28571em 1.90476em;
	font-size: 1.4em;
	line-height: 1.52429;
	color: #333333;
}
.-color-inverted .main-content blockquote {
	color: #dcdcdc;
}
@media screen and (max-width: 900px) {
	.main-content blockquote {
		margin-left: 12.5%;
	}
}
.main-content blockquote small,
.main-content blockquote i,
.main-content blockquote em {
	display: block;
	font-size: 0.7619em;
	line-height: 1.6;
	font-style: normal;
}
.main-content blockquote:before {
	content: "\201c";
	float: left;
	margin-left: -0.8em;
	font-size: 2.38095em;
	line-height: 1;
	color: #f1b231;
}
@media screen and (max-width: 900px) {
	.main-content blockquote:before {
		margin-left: -12.5%;
	}
}
.main-content img {
	max-width: 100%;
	height: auto;
}
.main-content .gm-style img {
	max-width: none;
}
.main-content .rsts-main {
	margin: 24px 0;
}
.main-content .main-slider {
	margin: 0;
}

/* ===========================================
 * Forms
 * ======================================== */
form h1,
form h2,
form h3,
form h4,
form h5,
form h6 {
	clear: both;
}
form .widget {
	position: relative;
	clear: both;
}
form .widget b.error,
form p.error {
	display: block;
	margin: 0;
	color: #024981;
}

input,
textarea {
	padding: 0.85714em 1.35714em;
	line-height: normal;
	border: 1px solid #bbbbbb;
	border-bottom-color: #aeaeae;
	font-size: 0.93333em;
	color: #333333;
	background: #ffffff;
}
.valid input,
.valid textarea {
	border-color: #b5da44;
}
.invalid input,
input.error,
.invalid textarea,
textarea.error {
	border-color: #024981;
}
input::-webkit-input-placeholder,
textarea::-webkit-input-placeholder {
	/* multiple rules, because user agents are required to ignore a rule with an unknown selector */
	color: #98a0ab;
}
input:-moz-placeholder,
textarea:-moz-placeholder {
	color: #98a0ab;
}
input:-ms-input-placeholder,
textarea:-ms-input-placeholder {
	color: #98a0ab;
}
input::placeholder,
textarea::placeholder {
	color: #98a0ab;
}
input:hover,
textarea:hover {
	border-color: #aeaeae #aeaeae #a4a4a4;
	box-shadow: 0 0 6px rgba(0, 0, 0, 0.1);
}
input:focus,
textarea:focus {
	border-color: #f1b231;
}

input[type="text"],
input[type="search"],
input[type="email"],
input[type="password"],
input[type="url"] {
	outline: none;
}
input[type="checkbox"],
input[type="radio"],
input[type="image"] {
	width: auto !important;
	height: auto !important;
	margin: 0;
	padding: 0;
	border: 0;
	box-shadow: none;
}
input[type="checkbox"] {
	vertical-align: middle;
	-webkit-appearance: checkbox;
	-moz-appearance: checkbox;
	appearance: checkbox;
}
input[type="radio"] {
	vertical-align: middle;
	-webkit-appearance: radio;
	-moz-appearance: radio;
	appearance: radio;
	background: none;
}

input[type="file"] {
	height: auto;
	padding: 0;
	border: 0;
	/* IE8 and IE9 */
	border: 1px solid #bbbbbb \9;
	background: none;
	box-shadow: none;
}

button,
input[type="submit"] {
	margin-top: 1.2em;
}

textarea {
	height: 223px;
	resize: vertical;
	line-height: 1.5;
	outline: none;
}

fieldset {
	margin: 1.2em 0;
	border: 1px solid #bbbbbb;
}
fieldset legend {
	padding: 0 0.33333em;
}
fieldset + br {
	/* Kill <br> that Contao injects */
	display: none;
}

.main-content form .widget {
	margin-top: 1.2em;
	margin-bottom: 1.2em;
}
.main-content label {
	display: block;
	margin-bottom: 0.35714em;
	font-size: 0.93333em;
	color: #333333;
}
.-color-inverted .main-content label {
	color: #dcdcdc;
}
.main-content label .mandatory {
	margin-left: 0.14286em;
	color: #f1b231;
}
.main-content input[type="checkbox"] + label {
	display: inline;
}
.main-content fieldset p {
	margin: 0;
}
.main-content fieldset label {
	display: inline;
	margin: 0;
}
.main-content fieldset label:after {
	/* add line break after label */
	content: "\A";
	white-space: pre;
}
.main-content input,
.main-content textarea,
.main-content select,
.main-content fieldset {
	width: 75%;
}
@media screen and (max-width: 900px) {
	.main-content input,
	.main-content textarea,
	.main-content select,
	.main-content fieldset {
		width: 100%;
	}
}
.main-content input[type="submit"] {
	width: auto;
}
@media screen and (max-width: 900px) {
	.main-content input[type="submit"] {
		width: 100%;
	}
}

.fullwidth-form input,
.fullwidth-form textarea,
.fullwidth-form select,
.fullwidth-form fieldset {
	width: 100%;
}

.explanation p,
.captcha_text p {
	margin: 0;
}

.explanation {
	font-size: 0.93333em;
	margin: -0.85714em 0 1.71429em;
	color: #333333;
}
.-color-inverted .explanation {
	color: #dcdcdc;
}

.captcha_text {
	display: block;
}
label .captcha_text {
	display: inline;
}

.sidebar form input,
.sidebar form textarea,
.sidebar form select,
.sidebar form fieldset,
.sidebar form button {
	width: 100%;
}
.sidebar form label {
	display: block;
	margin-bottom: 0.3125em;
	font-size: 1.06667em;
}
.sidebar form input[type="checkbox"],
.sidebar form input[type="radio"],
.sidebar form input[type="image"] {
	width: auto;
}

/* ===========================================
 * Content elements
 * ======================================== */
.media > figure,
.content-image > figure,
.content-gallery figure,
.image_container {
	position: relative;
	display: inline-block;
	vertical-align: top;
	max-width: 100%;
}
.media > figure.float_above,
.content-image > figure.float_above,
.content-gallery figure.float_above,
.image_container.float_above {
	margin-top: 1.6em;
}
.media > figure.float_below,
.content-image > figure.float_below,
.content-gallery figure.float_below,
.image_container.float_below {
	margin-bottom: 1.6em;
}
.media > figure img,
.content-image > figure img,
.content-gallery figure img,
.image_container img {
	display: block;
	width: 100%;
	height: auto;
}
.media > figure a,
.content-image > figure a,
.content-gallery figure a,
.image_container a {
	position: relative;
	display: block;
	overflow: hidden;
	/* Fixes IE bug */
	text-decoration: none;
}
.media > figure a:hover:before, .media > figure a:focus:before,
.content-image > figure a:hover:before,
.content-image > figure a:focus:before,
.content-gallery figure a:hover:before,
.content-gallery figure a:focus:before,
.image_container a:hover:before,
.image_container a:focus:before {
}
.media > figure a:hover:after, .media > figure a:focus:after,
.content-image > figure a:hover:after,
.content-image > figure a:focus:after,
.content-gallery figure a:hover:after,
.content-gallery figure a:focus:after,
.image_container a:hover:after,
.image_container a:focus:after {
}
.media > figure figcaption, .media > figure .caption,
.content-image > figure figcaption,
.content-image > figure .caption,
.content-gallery figure figcaption,
.content-gallery figure .caption,
.image_container figcaption,
.image_container .caption {
	/* overwrite elements style attribute */
	width: 100% !important;
	padding: 0.42857em 0 0;
	font-size: 0.93333em;
	color: #333333;
}

.media--below {
	display: flex;
	flex-direction: column;
	align-items: start;
}
.media--below > figure {
	order: 1;
}

.media--right > figure,
.media--left > figure,
.image_container.float_right,
.image_container.float_left {
	float: right;
	width: 31.25% !important;
	margin: 0.53333em 0 1.06667em 6.25%;
}
@media screen and (max-width: 900px) {
	.media--right > figure,
	.media--left > figure,
	.image_container.float_right,
	.image_container.float_left {
		margin-left: 0;
		float: none !important;
		width: auto !important;
		width: auto !important;
	}
}
.oneo-no-sidebar .media--right > figure, .oneo-no-sidebar
.media--left > figure, .oneo-no-sidebar
.image_container.float_right, .oneo-no-sidebar
.image_container.float_left {
	margin: 0.53333em 0 1.06667em 3.33333%;
	width: 16.66667% !important;
}
@media screen and (max-width: 1200px) {
	.oneo-no-sidebar .media--right > figure, .oneo-no-sidebar
	.media--left > figure, .oneo-no-sidebar
	.image_container.float_right, .oneo-no-sidebar
	.image_container.float_left {
		margin-left: 6.25%;
		width: 31.25% !important;
	}
}
@media screen and (max-width: 900px) {
	.oneo-no-sidebar .media--right > figure, .oneo-no-sidebar
	.media--left > figure, .oneo-no-sidebar
	.image_container.float_right, .oneo-no-sidebar
	.image_container.float_left {
		margin-left: 0;
		width: auto !important;
	}
}
.no-resize .media--right > figure, .oneo-no-sidebar .no-resize .media--right > figure, .media--right > figure.no-resize, .oneo-no-sidebar .media--right > figure.no-resize, .no-resize
.media--left > figure, .oneo-no-sidebar .no-resize
.media--left > figure,
.media--left > figure.no-resize, .oneo-no-sidebar
.media--left > figure.no-resize, .no-resize
.image_container.float_right, .oneo-no-sidebar .no-resize
.image_container.float_right,
.image_container.float_right.no-resize, .oneo-no-sidebar
.image_container.float_right.no-resize, .no-resize
.image_container.float_left, .oneo-no-sidebar .no-resize
.image_container.float_left,
.image_container.float_left.no-resize, .oneo-no-sidebar
.image_container.float_left.no-resize {
	width: auto !important;
}

.media--left > figure,
.image_container.float_left {
	float: left;
	margin: 0.53333em 6.25% 1.06667em 0;
}
@media screen and (max-width: 900px) {
	.media--left > figure,
	.image_container.float_left {
		margin-right: 0;
	}
}
.oneo-no-sidebar .media--left > figure, .oneo-no-sidebar
.image_container.float_left {
	margin: 0.53333em 3.84615% 1.06667em 0;
}
@media screen and (max-width: 1200px) {
	.oneo-no-sidebar .media--left > figure, .oneo-no-sidebar
	.image_container.float_left {
		margin-right: 6.25%;
	}
}
@media screen and (max-width: 900px) {
	.oneo-no-sidebar .media--left > figure, .oneo-no-sidebar
	.image_container.float_left {
		margin-right: 0;
	}
}

.no-resize .media:not(.media--left):not(.media--right) > figure img, .media:not(.media--left):not(.media--right) > figure.no-resize img, .no-resize
.image_container:not(.float_right):not(.float_left) img,
.image_container:not(.float_right):not(.float_left).no-resize img {
	width: auto;
	max-width: 100%;
}

.ce_youtube-wrapper,
.ce_vimeo-wrapper {
	position: relative;
	margin: 1.6em 0;
	/* ratio 16 to 9 */
	padding-bottom: 56.25%;
	height: 0;
	overflow: hidden;
}
.ce_youtube-wrapper iframe,
.ce_youtube-wrapper object,
.ce_youtube-wrapper embed,
.ce_vimeo-wrapper iframe,
.ce_vimeo-wrapper object,
.ce_vimeo-wrapper embed {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

.mejs__video:not(.mejs__container-fullscreen) video {
	object-fit: cover;
}

.mejs__video button,
.mejs__audio button {
	-webkit-appearance: button;
	-moz-appearance: button;
	appearance: button;
	border-radius: 0;
	box-shadow: none;
	background-color: transparent;
}

.content-player video,
.content-player audio,
.video_container video,
.audio_container audio {
	display: block;
	width: 100%;
}

.content-player video,
.video_container video {
	height: auto;
}

.content-player > figure,
.content-youtube > figure,
.content-vimeo > figure,
.video_container {
	margin: 1.6em 0;
}

.content-player iframe,
.content-youtube iframe,
.content-vimeo iframe,
.video_container iframe {
	border: 0;
}
.content-player .aspect,
.content-player .responsive,
.content-youtube .aspect,
.content-youtube .responsive,
.content-vimeo .aspect,
.content-vimeo .responsive,
.video_container .aspect,
.video_container .responsive {
	position: relative;
	padding-bottom: 56.25%;
}
.content-player .aspect.aspect--16\:9, .content-player .aspect.ratio-169,
.content-player .responsive.aspect--16\:9,
.content-player .responsive.ratio-169,
.content-youtube .aspect.aspect--16\:9,
.content-youtube .aspect.ratio-169,
.content-youtube .responsive.aspect--16\:9,
.content-youtube .responsive.ratio-169,
.content-vimeo .aspect.aspect--16\:9,
.content-vimeo .aspect.ratio-169,
.content-vimeo .responsive.aspect--16\:9,
.content-vimeo .responsive.ratio-169,
.video_container .aspect.aspect--16\:9,
.video_container .aspect.ratio-169,
.video_container .responsive.aspect--16\:9,
.video_container .responsive.ratio-169 {
	padding-bottom: 56.25%;
}
.content-player .aspect.aspect--16\:10, .content-player .aspect.ratio-1610,
.content-player .responsive.aspect--16\:10,
.content-player .responsive.ratio-1610,
.content-youtube .aspect.aspect--16\:10,
.content-youtube .aspect.ratio-1610,
.content-youtube .responsive.aspect--16\:10,
.content-youtube .responsive.ratio-1610,
.content-vimeo .aspect.aspect--16\:10,
.content-vimeo .aspect.ratio-1610,
.content-vimeo .responsive.aspect--16\:10,
.content-vimeo .responsive.ratio-1610,
.video_container .aspect.aspect--16\:10,
.video_container .aspect.ratio-1610,
.video_container .responsive.aspect--16\:10,
.video_container .responsive.ratio-1610 {
	padding-bottom: 62.5%;
}
.content-player .aspect.aspect--21\:9, .content-player .aspect.ratio-219,
.content-player .responsive.aspect--21\:9,
.content-player .responsive.ratio-219,
.content-youtube .aspect.aspect--21\:9,
.content-youtube .aspect.ratio-219,
.content-youtube .responsive.aspect--21\:9,
.content-youtube .responsive.ratio-219,
.content-vimeo .aspect.aspect--21\:9,
.content-vimeo .aspect.ratio-219,
.content-vimeo .responsive.aspect--21\:9,
.content-vimeo .responsive.ratio-219,
.video_container .aspect.aspect--21\:9,
.video_container .aspect.ratio-219,
.video_container .responsive.aspect--21\:9,
.video_container .responsive.ratio-219 {
	padding-bottom: 42.85714%;
}
.content-player .aspect.aspect--4\:3, .content-player .aspect.ratio-43,
.content-player .responsive.aspect--4\:3,
.content-player .responsive.ratio-43,
.content-youtube .aspect.aspect--4\:3,
.content-youtube .aspect.ratio-43,
.content-youtube .responsive.aspect--4\:3,
.content-youtube .responsive.ratio-43,
.content-vimeo .aspect.aspect--4\:3,
.content-vimeo .aspect.ratio-43,
.content-vimeo .responsive.aspect--4\:3,
.content-vimeo .responsive.ratio-43,
.video_container .aspect.aspect--4\:3,
.video_container .aspect.ratio-43,
.video_container .responsive.aspect--4\:3,
.video_container .responsive.ratio-43 {
	padding-bottom: 75%;
}
.content-player .aspect.aspect--3\:2, .content-player .aspect.ratio-32,
.content-player .responsive.aspect--3\:2,
.content-player .responsive.ratio-32,
.content-youtube .aspect.aspect--3\:2,
.content-youtube .aspect.ratio-32,
.content-youtube .responsive.aspect--3\:2,
.content-youtube .responsive.ratio-32,
.content-vimeo .aspect.aspect--3\:2,
.content-vimeo .aspect.ratio-32,
.content-vimeo .responsive.aspect--3\:2,
.content-vimeo .responsive.ratio-32,
.video_container .aspect.aspect--3\:2,
.video_container .aspect.ratio-32,
.video_container .responsive.aspect--3\:2,
.video_container .responsive.ratio-32 {
	padding-bottom: 66.66667%;
}
.content-player .aspect iframe,
.content-player .aspect [data-splash-screen],
.content-player .aspect img,
.content-player .responsive iframe,
.content-player .responsive [data-splash-screen],
.content-player .responsive img,
.content-youtube .aspect iframe,
.content-youtube .aspect [data-splash-screen],
.content-youtube .aspect img,
.content-youtube .responsive iframe,
.content-youtube .responsive [data-splash-screen],
.content-youtube .responsive img,
.content-vimeo .aspect iframe,
.content-vimeo .aspect [data-splash-screen],
.content-vimeo .aspect img,
.content-vimeo .responsive iframe,
.content-vimeo .responsive [data-splash-screen],
.content-vimeo .responsive img,
.video_container .aspect iframe,
.video_container .aspect [data-splash-screen],
.video_container .aspect img,
.video_container .responsive iframe,
.video_container .responsive [data-splash-screen],
.video_container .responsive img {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.content-player .aspect [data-splash-screen],
.content-player .responsive [data-splash-screen],
.content-youtube .aspect [data-splash-screen],
.content-youtube .responsive [data-splash-screen],
.content-vimeo .aspect [data-splash-screen],
.content-vimeo .responsive [data-splash-screen],
.video_container .aspect [data-splash-screen],
.video_container .responsive [data-splash-screen] {
	margin: 0;
	color: inherit;
}
.content-player .aspect [data-splash-screen] p,
.content-player .responsive [data-splash-screen] p,
.content-youtube .aspect [data-splash-screen] p,
.content-youtube .responsive [data-splash-screen] p,
.content-vimeo .aspect [data-splash-screen] p,
.content-vimeo .responsive [data-splash-screen] p,
.video_container .aspect [data-splash-screen] p,
.video_container .responsive [data-splash-screen] p {
	position: relative;
}

.content-gallery.content-gallery--cols-1 > ul > li,
.content-gallery > ul.cols_1 > li,
.ce_gallery.content-gallery--cols-1 > ul > li,
.ce_gallery > ul.cols_1 > li {
	width: 97%;
}
.content-gallery.content-gallery--cols-2 > ul > li,
.content-gallery > ul.cols_2 > li,
.ce_gallery.content-gallery--cols-2 > ul > li,
.ce_gallery > ul.cols_2 > li {
	width: 47.75%;
}
.content-gallery.content-gallery--cols-3 > ul > li,
.content-gallery > ul.cols_3 > li,
.ce_gallery.content-gallery--cols-3 > ul > li,
.ce_gallery > ul.cols_3 > li {
	width: 31.33333%;
}
.content-gallery.content-gallery--cols-4 > ul > li,
.content-gallery > ul.cols_4 > li,
.ce_gallery.content-gallery--cols-4 > ul > li,
.ce_gallery > ul.cols_4 > li {
	width: 23.125%;
}
.content-gallery.content-gallery--cols-5 > ul > li,
.content-gallery > ul.cols_5 > li,
.ce_gallery.content-gallery--cols-5 > ul > li,
.ce_gallery > ul.cols_5 > li {
	width: 18.2%;
}
.content-gallery.content-gallery--cols-6 > ul > li,
.content-gallery > ul.cols_6 > li,
.ce_gallery.content-gallery--cols-6 > ul > li,
.ce_gallery > ul.cols_6 > li {
	width: 14.91667%;
}
.content-gallery.content-gallery--cols-7 > ul > li,
.content-gallery > ul.cols_7 > li,
.ce_gallery.content-gallery--cols-7 > ul > li,
.ce_gallery > ul.cols_7 > li {
	width: 12.57143%;
}
.content-gallery.content-gallery--cols-8 > ul > li,
.content-gallery > ul.cols_8 > li,
.ce_gallery.content-gallery--cols-8 > ul > li,
.ce_gallery > ul.cols_8 > li {
	width: 10.8125%;
}
.content-gallery.content-gallery--cols-9 > ul > li,
.content-gallery > ul.cols_9 > li,
.ce_gallery.content-gallery--cols-9 > ul > li,
.ce_gallery > ul.cols_9 > li {
	width: 9.44444%;
}
.content-gallery.content-gallery--cols-10 > ul > li,
.content-gallery > ul.cols_10 > li,
.ce_gallery.content-gallery--cols-10 > ul > li,
.ce_gallery > ul.cols_10 > li {
	width: 8.35%;
}
.content-gallery.content-gallery--cols-11 > ul > li,
.content-gallery > ul.cols_11 > li,
.ce_gallery.content-gallery--cols-11 > ul > li,
.ce_gallery > ul.cols_11 > li {
	width: 7.45455%;
}
.content-gallery.content-gallery--cols-12 > ul > li,
.content-gallery > ul.cols_12 > li,
.ce_gallery.content-gallery--cols-12 > ul > li,
.ce_gallery > ul.cols_12 > li {
	width: 6.70833%;
}
@media screen and (max-width: 900px) {
	.content-gallery.content-gallery > ul > li, .content-gallery.ce_gallery > ul > li,
	.ce_gallery.content-gallery > ul > li,
	.ce_gallery.ce_gallery > ul > li {
		/* doubled class for specificity */
		width: auto;
	}
}
.content-gallery.no-resize > ul > li,
.ce_gallery.no-resize > ul > li {
	width: auto;
}
.main-content .content-gallery, .main-content
.ce_gallery {
	margin: 1.6em 0;
}
.content-gallery > ul,
.ce_gallery > ul {
	zoom: 1;
	display: flex;
	flex-wrap: wrap;
	margin: 0 -1.545% !important;
	padding: 0 0 1.545% 0 !important;
	list-style: none !important;
}
.content-gallery > ul:before,
.ce_gallery > ul:before {
	content: "";
	display: table;
}
.content-gallery > ul:after,
.ce_gallery > ul:after {
	content: "";
	display: table;
	clear: both;
}
.content-gallery > ul > li,
.ce_gallery > ul > li {
	float: left;
	width: 23.125%;
	margin: 1.5% 0 0 1.5%;
}
@media screen and (max-width: 900px) {
	.content-gallery > ul > li,
	.ce_gallery > ul > li {
		margin-right: 1.5%;
		margin-bottom: 1.5%;
	}
}
.content-gallery > ul > li > figure,
.content-gallery > ul > li > .image_container,
.ce_gallery > ul > li > figure,
.ce_gallery > ul > li > .image_container {
	display: block;
	width: 100%;
}
.content-gallery img,
.ce_gallery img {
	display: block;
	width: 100%;
	height: auto;
}

.content-downloads,
.sidebar .content-downloads,
.enclosure,
.sidebar .enclosure,
.ce_downloads,
.sidebar .ce_downloads {
	margin: 1.8em 0;
	padding: 1.33333em 2em;
	border: 1px solid #bbbbbb;
}
.content-downloads h1, .content-downloads h2, .content-downloads h3, .content-downloads h4, .content-downloads h5, .content-downloads h6,
.sidebar .content-downloads h1,
.sidebar .content-downloads h2,
.sidebar .content-downloads h3,
.sidebar .content-downloads h4,
.sidebar .content-downloads h5,
.sidebar .content-downloads h6,
.enclosure h1,
.enclosure h2,
.enclosure h3,
.enclosure h4,
.enclosure h5,
.enclosure h6,
.sidebar .enclosure h1,
.sidebar .enclosure h2,
.sidebar .enclosure h3,
.sidebar .enclosure h4,
.sidebar .enclosure h5,
.sidebar .enclosure h6,
.ce_downloads h1,
.ce_downloads h2,
.ce_downloads h3,
.ce_downloads h4,
.ce_downloads h5,
.ce_downloads h6,
.sidebar .ce_downloads h1,
.sidebar .ce_downloads h2,
.sidebar .ce_downloads h3,
.sidebar .ce_downloads h4,
.sidebar .ce_downloads h5,
.sidebar .ce_downloads h6 {
	margin: -1.75em -2.58333em 1.66667em;
	padding: 0.66667em 1.66667em;
	font-size: 0.8em;
	font-weight: bold;
	letter-spacing: 0.08333em;
	color: #ffffff;
	text-transform: uppercase;
	background: #333333;
}
.content-downloads h1:before, .content-downloads h2:before, .content-downloads h3:before, .content-downloads h4:before, .content-downloads h5:before, .content-downloads h6:before,
.sidebar .content-downloads h1:before,
.sidebar .content-downloads h2:before,
.sidebar .content-downloads h3:before,
.sidebar .content-downloads h4:before,
.sidebar .content-downloads h5:before,
.sidebar .content-downloads h6:before,
.enclosure h1:before,
.enclosure h2:before,
.enclosure h3:before,
.enclosure h4:before,
.enclosure h5:before,
.enclosure h6:before,
.sidebar .enclosure h1:before,
.sidebar .enclosure h2:before,
.sidebar .enclosure h3:before,
.sidebar .enclosure h4:before,
.sidebar .enclosure h5:before,
.sidebar .enclosure h6:before,
.ce_downloads h1:before,
.ce_downloads h2:before,
.ce_downloads h3:before,
.ce_downloads h4:before,
.ce_downloads h5:before,
.ce_downloads h6:before,
.sidebar .ce_downloads h1:before,
.sidebar .ce_downloads h2:before,
.sidebar .ce_downloads h3:before,
.sidebar .ce_downloads h4:before,
.sidebar .ce_downloads h5:before,
.sidebar .ce_downloads h6:before {
	font: 1.16667em/1 "RockSolid Icons";
	content: "\e06d";
	-webkit-font-smoothing: antialiased;
	font-smoothing: antialiased;
	text-rendering: geometricPrecision;
	text-indent: 0;
	display: inline-block;
	position: relative;
	top: 0.07143em;
	float: right;
}
.content-downloads ul, .content-downloads p,
.sidebar .content-downloads ul,
.sidebar .content-downloads p,
.enclosure ul,
.enclosure p,
.sidebar .enclosure ul,
.sidebar .enclosure p,
.ce_downloads ul,
.ce_downloads p,
.sidebar .ce_downloads ul,
.sidebar .ce_downloads p {
	margin: 0;
	padding: 0;
	list-style: none;
}

.swiper-button-prev.swiper-button-prev,
.swiper-button-next.swiper-button-next {
	-webkit-appearance: button;
	-moz-appearance: button;
	appearance: button;
	border-radius: 0;
	box-shadow: none;
	background-color: transparent;
}

:root:root {
	--swiper-theme-color: #f1b231;
}

.ce_accordion[data-icon],
.ce_accordion[class^="icon-"],
.ce_accordion[class*=" icon-"] {
	position: relative;
}
.ce_accordion[data-icon]:before,
.ce_accordion[class^="icon-"]:before,
.ce_accordion[class*=" icon-"]:before {
	position: absolute;
	top: 0.75em;
	left: 1em;
	z-index: 1;
	font-size: 1.33333em;
	color: #333333;
}
.ce_accordion[data-icon] .toggler,
.ce_accordion[class^="icon-"] .toggler,
.ce_accordion[class*=" icon-"] .toggler {
	padding-left: 3.33333em;
}
.ce_accordion .toggler {
	position: relative;
	/* collapse borders */
	margin-bottom: -2px;
	padding: 0.73333em 2.66667em 0.86667em 1.33333em;
	border: 1px solid #bbbbbb;
	outline: none;
	font-weight: bold;
	cursor: pointer;
	color: #333333;
	background: #ffffff;
}
.ce_accordion .toggler:after {
	font: 0.86667em/1 "RockSolid Icons";
	content: "\2b";
	-webkit-font-smoothing: antialiased;
	font-smoothing: antialiased;
	text-rendering: geometricPrecision;
	text-indent: 0;
	display: inline-block;
	position: relative;
	position: absolute;
	top: 1.38462em;
	right: 1.53846em;
}
.ce_accordion .toggler:hover {
	color: #333333;
	text-decoration: none;
}
.ce_accordion .toggler.ui-accordion-header-active:after {
	content: "\2212";
}
.ce_accordion .accordion {
	zoom: 1;
	position: relative;
	overflow: hidden;
	/* collapse borders */
	margin-bottom: -2px;
	padding: 0.06667em 1.33333em;
	border: 1px solid #bbbbbb;
	border-top-color: #dddddd;
	background: #f2f2f2;
}
.ce_accordion .accordion:before {
	content: "";
	display: table;
}
.ce_accordion .accordion:after {
	content: "";
	display: table;
	clear: both;
}

.content-accordion .handorgel__header {
	display: block;
	margin: 0;
	border: 1px solid #bbbbbb;
	/* collapse borders */
	margin-bottom: -1px;
	outline: none;
	font-size: inherit;
	font-weight: bold;
	text-transform: none;
	color: #333333;
	background: #ffffff;
}
.content-accordion .handorgel__header__button {
	position: relative;
	display: block;
	width: 100%;
	padding: 0.73333em 2.66667em 0.86667em 1.33333em;
	margin: 0;
	border: none;
	background-color: #ffffff;
	border-radius: 0;
	color: inherit;
	cursor: pointer;
	font-size: inherit;
	font-weight: inherit;
	text-transform: inherit;
	text-align: left;
}
.content-accordion .handorgel__header__button:hover,
.content-accordion .handorgel__header__button:focus-visible {
	outline: none;
	color: #333333;
}
.content-accordion .handorgel__header__button:after {
	font: 0.86667em/1 "RockSolid Icons";
	content: "\2b";
	-webkit-font-smoothing: antialiased;
	font-smoothing: antialiased;
	text-rendering: geometricPrecision;
	text-indent: 0;
	display: inline-block;
	position: relative;
	position: absolute;
	top: 1.38462em;
	right: 1.53846em;
}
.content-accordion .handorgel__header--open .handorgel__header__button:after {
	content: "\2212";
}
.content-accordion .handorgel__content {
	display: none;
	overflow: hidden;
	height: 0;
	/* collapse borders */
	margin-bottom: -1px;
	border: 1px solid #bbbbbb;
	border-top-color: #dddddd;
	background: #f2f2f2;
	transition: height 0.5s ease;
}
.content-accordion .handorgel__content--open {
	display: block;
	-webkit-transition: height 0.5s ease;
}
.content-accordion .handorgel__content__inner {
	padding: 0.06667em 1.33333em;
}

.feature-box {
	zoom: 1;
	position: relative;
	overflow: hidden;
}
.feature-box:before {
	content: "";
	display: table;
}
.feature-box:after {
	content: "";
	display: table;
	clear: both;
}
.feature-box.-image-centered {
	text-align: center;
}
.feature-box.-vertical-centered {
	display: table;
	table-layout: fixed;
	/* Fixes IE bug */
	width: 100%;
}
@media screen and (max-width: 900px) {
	.feature-box.-vertical-centered {
		display: flex;
		flex-direction: column;
		justify-content: center;
	}
}
.feature-box.-small {
	min-height: 300px;
}
.feature-box.-small.-vertical-centered {
	height: 300px;
}
@media screen and (max-width: 900px) {
	.feature-box.-small {
		min-height: 200px;
	}
	.feature-box.-small.-vertical-centered {
		height: auto;
	}
}
.feature-box.-medium {
	min-height: 600px;
}
.feature-box.-medium.-vertical-centered {
	height: 600px;
}
@media screen and (max-width: 900px) {
	.feature-box.-medium {
		min-height: 400px;
	}
	.feature-box.-medium.-vertical-centered {
		height: auto;
	}
}
.feature-box.-large {
	min-height: 900px;
}
.feature-box.-large.-vertical-centered {
	height: 900px;
}
@media screen and (max-width: 900px) {
	.feature-box.-large {
		min-height: 600px;
	}
	.feature-box.-large.-vertical-centered {
		height: auto;
	}
}

.feature-box-text {
	position: relative;
	z-index: 1;
	margin: 6.66667em 46.66667% 6.66667em 0;
	color: #333333;
}
@media screen and (max-width: 1200px) {
	.feature-box-text {
		margin-right: 37.5%;
	}
}
@media screen and (max-width: 900px) {
	.feature-box-text {
		margin: 2.4em 0;
	}
}
.-image-left > .feature-box-text {
	margin-right: 0;
	margin-left: 46.66667%;
}
@media screen and (max-width: 1200px) {
	.-image-left > .feature-box-text {
		margin-left: 37.5%;
	}
}
@media screen and (max-width: 900px) {
	.-image-left > .feature-box-text {
		margin-left: 0;
	}
}
.-image-centered > .feature-box-text {
	margin-right: 16.66667%;
	margin-left: 16.66667%;
}
@media screen and (max-width: 1200px) {
	.-image-centered > .feature-box-text {
		margin-right: 0;
		margin-left: 0;
	}
}
.-image-centered > .feature-box-text + .feature-box-image {
	margin-top: -2.4em;
}
@media screen and (max-width: 900px) {
	.-image-centered > .feature-box-text + .feature-box-image {
		margin-top: 0;
	}
}
.-vertical-centered > .feature-box-text {
	display: table-cell;
	vertical-align: middle;
	width: 56.66667%;
	margin: 0;
	padding: 4.8em 3.33333% 4.8em 0;
}
@media screen and (max-width: 1200px) {
	.-vertical-centered > .feature-box-text {
		width: 68.75%;
	}
}
@media screen and (max-width: 900px) {
	.-vertical-centered > .feature-box-text {
		display: block;
		width: auto;
		padding-right: 0;
	}
}
.-vertical-centered.-image-left > .feature-box-text {
	padding-right: 0;
	padding-left: 3.33333%;
}
@media screen and (max-width: 900px) {
	.-vertical-centered.-image-left > .feature-box-text {
		padding-left: 0;
	}
}
.-vertical-centered.-image-centered > .feature-box-text {
	width: 100%;
	padding-right: 20%;
	padding-left: 20%;
}
@media screen and (max-width: 1200px) {
	.-vertical-centered.-image-centered > .feature-box-text {
		padding-right: 0;
		padding-left: 0;
	}
}
.-vertical-centered.-large-image > .feature-box-text {
	width: 40%;
}
@media screen and (max-width: 1200px) {
	.-vertical-centered.-large-image > .feature-box-text {
		width: 68.75%;
	}
}
@media screen and (max-width: 900px) {
	.-vertical-centered.-large-image > .feature-box-text {
		width: auto;
	}
}
.-no-image > .feature-box-text {
	width: 100%;
}
.-color-inverted .feature-box-text {
	color: #ffffff;
}
.no-margin .feature-box-text {
	margin: 0;
	padding: 0;
}
.no-margin-top .feature-box-text {
	margin-top: 0;
	padding-top: 0;
}
.no-margin-bottom .feature-box-text {
	margin-bottom: 0;
	padding-bottom: 0;
}
.feature-box-text h1,
.feature-box-text h2,
.feature-box-text h3 {
	margin: 0;
	color: #333333;
	font-size: 2em;
	font-weight: normal;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}
.feature-box-text h1.-small,
.feature-box-text h2.-small,
.feature-box-text h3.-small {
	font-size: 1.4em;
}
@media screen and (max-width: 900px) {
	.feature-box-text h1.-small,
	.feature-box-text h2.-small,
	.feature-box-text h3.-small {
		font-size: 1.2em;
	}
}
.feature-box-text h1.-medium,
.feature-box-text h2.-medium,
.feature-box-text h3.-medium {
	font-size: 2.4em;
}
@media screen and (max-width: 900px) {
	.feature-box-text h1.-medium,
	.feature-box-text h2.-medium,
	.feature-box-text h3.-medium {
		font-size: 1.86667em;
	}
}
.feature-box-text h1.-large,
.feature-box-text h2.-large,
.feature-box-text h3.-large {
	font-size: 3.2em;
}
@media screen and (max-width: 900px) {
	.feature-box-text h1.-large,
	.feature-box-text h2.-large,
	.feature-box-text h3.-large {
		font-size: 2.4em;
	}
}
.feature-box-text h1.-super-size,
.feature-box-text h2.-super-size,
.feature-box-text h3.-super-size {
	font-size: 4em;
}
@media screen and (max-width: 900px) {
	.feature-box-text h1.-super-size,
	.feature-box-text h2.-super-size,
	.feature-box-text h3.-super-size {
		font-size: 3.2em;
	}
}
.feature-box-text h1 + a,
.feature-box-text h2 + a,
.feature-box-text h3 + a {
	margin-top: 1.6em;
}
.-color-inverted .feature-box-text h1,
.-color-inverted .feature-box-text h2,
.-color-inverted .feature-box-text h3 {
	color: #ffffff;
}
.feature-box-text p {
	font-size: 1.2em;
	margin: 1.33333em 0;
}
.feature-box-text p:before {
	content: "";
	display: block;
	width: 4em;
	height: 2px;
	margin: 0.8em 0;
	background: #f1b231;
}
.-image-centered .feature-box-text p:before {
	width: 5.71429em;
	margin-left: auto;
	margin-right: auto;
}
.feature-box-text .feature-box-subheadline {
	margin-top: 0.28571em;
	font-size: 1.4em;
	color: #f1b231;
}

.feature-box-image {
	display: block;
	float: right;
	width: 43.33333%;
	margin: 3.2em 0 3.2em 3.33333%;
}
@media screen and (max-width: 1200px) {
	.feature-box-image {
		width: 31.25%;
	}
}
@media screen and (max-width: 900px) {
	.feature-box-image {
		width: 100%;
	}
}
.-image-left > .feature-box-image {
	float: left;
	margin-right: 3.33333%;
	margin-left: 0;
}
@media screen and (max-width: 900px) {
	.-image-left > .feature-box-image {
		float: none;
		margin-right: 0;
	}
}
.-image-centered > .feature-box-image {
	float: none;
	width: 60%;
	margin-right: auto;
	margin-left: auto;
}
@media screen and (max-width: 1200px) {
	.-image-centered > .feature-box-image {
		width: 100%;
	}
}
.-image-centered > .feature-box-image + .feature-box-text {
	margin-top: 3.2em;
}
.-image-top > .feature-box-image {
	margin-top: 0;
}
.-image-bottom > .feature-box-image {
	position: absolute;
	bottom: 0;
	right: 0;
	margin: 0;
}
@media screen and (max-width: 900px) {
	.-image-bottom > .feature-box-image {
		position: static;
		margin-bottom: 3.2em;
	}
}
.-image-bottom.-image-left > .feature-box-image {
	right: auto;
	left: 0;
}
.-vertical-centered > .feature-box-image {
	display: table-cell;
	vertical-align: middle;
	float: none;
	margin: 0;
	padding: 3.2em 0;
}
@media screen and (max-width: 900px) {
	.-vertical-centered > .feature-box-image {
		display: block;
		padding-top: 1.6em;
		padding-bottom: 1.6em;
	}
}
.-image-rounded > .feature-box-image img {
	border-radius: 99em;
}
.-large-image .feature-box-image {
	width: 60%;
}
@media screen and (max-width: 1200px) {
	.-large-image .feature-box-image {
		width: 31.25%;
	}
}
@media screen and (max-width: 900px) {
	.-large-image .feature-box-image {
		width: 100%;
	}
}
.-image-centered.-large-image .feature-box-image {
	width: 73.33333%;
}
@media screen and (max-width: 1200px) {
	.-image-centered.-large-image .feature-box-image {
		width: 62.5%;
	}
}
@media screen and (max-width: 900px) {
	.-image-centered.-large-image .feature-box-image {
		width: 100%;
	}
}

.not-in-view > .feature-box-text.-fade,
.not-in-view > .feature-box-image.-fade {
	opacity: 0;
}
.not-in-view > .feature-box-text.-move,
.not-in-view > .feature-box-image.-move {
	transform: translate(100%, 0);
}
.not-in-view > .feature-box-text.-move-right,
.not-in-view > .feature-box-image.-move-right {
	transform: translate(-100%, 0);
}
.not-in-view > .feature-box-text.-move-top,
.not-in-view > .feature-box-image.-move-top {
	transform: translate(0, 100%);
}
.not-in-view > .feature-box-text.-move-bottom,
.not-in-view > .feature-box-image.-move-bottom {
	transform: translate(0, -100%);
}
.in-view > .feature-box-text,
.in-view > .feature-box-image {
	transition: opacity 0.6s linear, transform 0.6s ease-out;
}
.in-view > .feature-box-text.-fade,
.in-view > .feature-box-image.-fade {
	opacity: 1;
}
.in-view > .feature-box-text.-move,
.in-view > .feature-box-image.-move {
	transform: translate(0, 0);
}
.feature-box-text video,
.feature-box-text img, .feature-box-image video,
.feature-box-image img {
	display: block;
	max-width: 100%;
	height: auto;
	margin: 0 auto;
}

.fading-boxes {
	zoom: 1;
	margin: 2.66667em 0;
}
.fading-boxes:before {
	content: "";
	display: table;
}
.fading-boxes:after {
	content: "";
	display: table;
	clear: both;
}
.fading-boxes > h1,
.fading-boxes > h2,
.fading-boxes > h3,
.fading-boxes > h4,
.fading-boxes > h5,
.fading-boxes > h6 {
	margin-top: 0;
	margin-bottom: 1.06667em;
}

.fading-boxes-item {
	position: relative;
	z-index: 0;
	color: #ffffff;
	transition: transform 0.2s linear;
}
.fading-boxes-item.-with-link:hover,
.fading-boxes-item.-with-link.is-hovered {
	transform: translate3d(0, -2.33333em, 0);
}
.fading-boxes-item:hover,
.fading-boxes-item.is-hovered {
	z-index: 1;
}

.fading-boxes-item-image {
	position: relative;
	z-index: 1;
	background: 50% 50% #f1b231 no-repeat;
	background-size: cover;
}
.-highlight-color .fading-boxes-item-image {
	background: #024981 no-repeat;
}
.fading-boxes-item-image:before {
	position: absolute;
	top: 2.875em;
	right: 50%;
	z-index: 1;
	margin: -0.5em;
	font-size: 2.66667em;
	transition: top 0.2s linear, right 0.2s linear, font-size 0.2s linear;
}
.fading-boxes-item:hover .fading-boxes-item-image:before,
.fading-boxes-item.is-hovered .fading-boxes-item-image:before {
	top: 1.25em;
	right: 1.125em;
	font-size: 2.13333em;
	/* IE8 and IE9 calculate em's wrong */
	font-size: 32px \9;
}
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
	.fading-boxes-item:hover .fading-boxes-item-image:before,
	.fading-boxes-item.is-hovered .fading-boxes-item-image:before {
		/* IE10 and IE11 calculate em's wrong */
		font-size: 32px;
	}
}
.fading-boxes-item-image:after {
	content: attr(data-headline);
	position: absolute;
	top: 5.17857em;
	left: 5%;
	width: 90%;
	font-size: 1.86667em;
	text-align: center;
	transition: opacity 0.1s linear;
	transition-delay: 0.1s;
}
.fading-boxes-item:hover .fading-boxes-item-image:after,
.fading-boxes-item.is-hovered .fading-boxes-item-image:after {
	opacity: 0;
	transition-delay: 0s;
}
.-has-text-shadow .fading-boxes-item-image:after {
	text-shadow: 0 0 5px rgba(0, 0, 0, 0.5);
}

.fading-boxes-item-text {
	min-height: 19.28571em;
	/* clearfix */
	overflow: hidden;
	padding: 0 1.42857em;
	font-size: 0.93333em;
	background: rgba(241, 178, 49, 0.8);
	opacity: 0;
	transition: opacity 0.2s linear;
}
.fading-boxes-item:hover .fading-boxes-item-text,
.fading-boxes-item.is-hovered .fading-boxes-item-text {
	opacity: 1;
}
.fading-boxes-item-text h3 {
	margin: 1em 0 -0.29167em;
	font-size: 1.71429em;
	font-weight: normal;
	color: inherit;
}
.fading-boxes-item-text p {
	margin: 1.5em 0;
}
.fading-boxes-item-text a {
	color: inherit;
	text-decoration: underline;
}
.fading-boxes-item-text a:hover {
	text-decoration: none;
}

.fading-boxes-item-link {
	visibility: hidden;
	margin: -5.33333em 0 1.33333em;
	padding: 1em 1.33333em;
	background: #f1b231;
	transition: margin 0.2s linear, visibility 0s 0.2s;
}
.fading-boxes-item:hover .fading-boxes-item-link,
.fading-boxes-item.is-hovered .fading-boxes-item-link {
	visibility: visible;
	margin-top: 0;
	margin-bottom: -4em;
	transition-delay: 0s;
}
.fading-boxes-item-link .button {
	display: block;
}

.icon-boxes {
	zoom: 1;
	margin: 2.66667em 0;
}
.icon-boxes:before {
	content: "";
	display: table;
}
.icon-boxes:after {
	content: "";
	display: table;
	clear: both;
}
.icon-boxes > h1,
.icon-boxes > h2,
.icon-boxes > h3,
.icon-boxes > h4,
.icon-boxes > h5,
.icon-boxes > h6 {
	margin-top: 0;
	margin-bottom: 1.06667em;
}

.icon-boxes-item {
	position: relative;
	color: inherit;
	text-align: center;
	text-decoration: none;
}
.icon-boxes-item:hover,
.icon-boxes-item:focus {
	text-decoration: none;
}
.icon-boxes-item h3 {
	margin: 0;
	color: #f1b231;
}
.icon-boxes-item.-icon-color h3 {
	color: #333333;
}
.icon-boxes-item p {
	margin: 0.46667em 0;
}
.icon-boxes-item.-headline-icon {
	padding-left: 5.33333em;
}
.icon-boxes-item.-align-left {
	text-align: left;
}
.icon-boxes-item.-align-right {
	text-align: right;
}
.icon-boxes-item.-color-inverted,
.-color-inverted .icon-boxes-item {
	color: #ffffff;
}
.icon-boxes-item.-color-inverted h3,
.-color-inverted .icon-boxes-item h3 {
	color: #ffffff;
}
.icon-boxes-item.-background-color {
	padding: 1.33333em;
}
.icon-boxes-item.-background-color.-headline-icon {
	padding-left: 6.66667em;
}

.icon-boxes-item-icon {
	display: inline-block;
	width: 2.5em;
	height: 2.5em;
	margin: 0 0 0.625em;
	padding: 0.75em;
	font-size: 2.13333em;
	line-height: 1;
	color: #ffffff;
	background: #f1b231;
	transition: background 0.2s, transform 0.2s, color 0.2s 0.3s;
}
.icon-boxes-item-icon:before {
	margin-right: 0;
}
.not-in-view > .icon-boxes-item > .icon-boxes-item-icon {
	color: transparent !important;
	transform: scale(0);
}
.in-view > .icon-boxes-item:nth-of-type(12n+1) > .icon-boxes-item-icon {
	transition-delay: 0s, 0.1s, 0.4s;
}
.in-view > .icon-boxes-item:nth-of-type(12n+2) > .icon-boxes-item-icon {
	transition-delay: 0s, 0.2s, 0.5s;
}
.in-view > .icon-boxes-item:nth-of-type(12n+3) > .icon-boxes-item-icon {
	transition-delay: 0s, 0.3s, 0.6s;
}
.in-view > .icon-boxes-item:nth-of-type(12n+4) > .icon-boxes-item-icon {
	transition-delay: 0s, 0.4s, 0.7s;
}
.in-view > .icon-boxes-item:nth-of-type(12n+5) > .icon-boxes-item-icon {
	transition-delay: 0s, 0.5s, 0.8s;
}
.in-view > .icon-boxes-item:nth-of-type(12n+6) > .icon-boxes-item-icon {
	transition-delay: 0s, 0.6s, 0.9s;
}
.in-view > .icon-boxes-item:nth-of-type(12n+7) > .icon-boxes-item-icon {
	transition-delay: 0s, 0.7s, 1s;
}
.in-view > .icon-boxes-item:nth-of-type(12n+8) > .icon-boxes-item-icon {
	transition-delay: 0s, 0.8s, 1.1s;
}
.in-view > .icon-boxes-item:nth-of-type(12n+9) > .icon-boxes-item-icon {
	transition-delay: 0s, 0.9s, 1.2s;
}
.in-view > .icon-boxes-item:nth-of-type(12n+10) > .icon-boxes-item-icon {
	transition-delay: 0s, 1s, 1.3s;
}
.in-view > .icon-boxes-item:nth-of-type(12n+11) > .icon-boxes-item-icon {
	transition-delay: 0s, 1.1s, 1.4s;
}
.in-view > .icon-boxes-item:nth-of-type(12n+12) > .icon-boxes-item-icon {
	transition-delay: 0s, 1.2s, 1.5s;
}
.-inverted-icon > .icon-boxes-item-icon {
	width: 2.08333em;
	height: 2.08333em;
	margin-bottom: 0.41667em;
	padding: 0.5em;
	border: 2px solid #bbbbbb;
	border-radius: 99em;
	font-size: 3.2em;
	color: #f1b231;
	background: #ffffff;
	background: rgba(255, 255, 255, 0.5);
}
.-headline-icon > .icon-boxes-item-icon {
	position: absolute;
	top: 0;
	left: 0;
	width: 2em;
	height: 2em;
	padding: 0.42857em;
	border: 2px solid #f1b231;
	border-radius: 99em;
	font-size: 1.86667em;
	color: #f1b231;
	background: none;
}
.-background-color.-headline-icon > .icon-boxes-item-icon {
	margin: 0.71429em;
}
.-highlight-color .icon-boxes-item-icon {
	background: #024981;
}
*:hover > .icon-boxes-item-icon,
*:focus > .icon-boxes-item-icon {
	opacity: 0.7;
	transition: opacity 0.2s;
}

.icon-boxes-item-text {
	color: #333333;
}
.-color-inverted .icon-boxes-item-text {
	color: #ffffff;
}

.icon-boxes-item-link.-link {
	color: #333333;
}
.icon-boxes-item:hover > .icon-boxes-item-link.-link,
.icon-boxes-item:focus > .icon-boxes-item-link.-link {
	text-decoration: underline;
}
.-color-inverted .icon-boxes-item-link {
	color: #ffffff;
}

.area-navigation {
	z-index: 1;
	position: fixed;
	top: 0;
	right: 30px;
	right: calc(30px + var(--safe-area-right));
	height: 100%;
	display: table;
}
@media screen and (max-width: 1440px) {
	.area-navigation {
		right: 1.5625%;
		right: calc(1.5625% + var(--safe-area-right));
		margin-right: -12px;
	}
}
@media screen and (max-width: 1200px) {
	.area-navigation {
		right: 2.08333%;
		right: calc(2.08333% + var(--safe-area-right));
	}
}
@media screen and (max-width: 900px) {
	.area-navigation {
		display: none;
	}
}
.area-navigation ul {
	display: table-cell;
	vertical-align: middle;
	padding: 0;
	width: 24px;
}
.area-navigation li {
	margin: 4px 0;
	text-align: center;
}
.area-navigation a {
	position: relative;
	display: inline-block;
	width: 18px;
	height: 18px;
	margin: 0;
	padding: 4px;
	outline: none;
	color: #333333;
	text-decoration: none;
}
.area-navigation a:after {
	content: "";
	display: block;
	width: 10px;
	height: 10px;
	border: 2px solid rgba(51, 51, 51, 0);
	border-radius: 100%;
	background-color: #333333;
	background-clip: padding-box;
}
.area-navigation a:hover:after,
.area-navigation a.active:after {
	border-color: #333333;
	background-color: rgba(51, 51, 51, 0.25);
}
.area-navigation a.prev,
.area-navigation a.next {
	width: 24px;
	height: 24px;
	padding: 5px;
	border: 2px solid currentColor;
	border-radius: 100%;
	transition: transform 0.1s;
}
@media screen and (max-width: 1440px) {
	.area-navigation a.prev,
	.area-navigation a.next {
		display: none;
	}
}
.area-navigation a.prev:after,
.area-navigation a.next:after {
	font: 10px/1 "RockSolid Icons";
	content: "\e01a";
	-webkit-font-smoothing: antialiased;
	font-smoothing: antialiased;
	text-rendering: geometricPrecision;
	text-indent: 0;
	display: inline-block;
	position: relative;
	display: block;
}
.area-navigation a.prev:after,
.area-navigation a.prev:hover:after,
.area-navigation a.next:after,
.area-navigation a.next:hover:after {
	color: inherit;
	background-color: transparent;
	border: 0;
}
.area-navigation a.prev:hover,
.area-navigation a.next:hover {
	transform: scale(1.05);
}
.area-navigation a.prev.is-disabled,
.area-navigation a.next.is-disabled {
	visibility: hidden;
	pointer-events: none;
}
.area-navigation a.prev > span,
.area-navigation a.next > span {
	display: none;
}
.area-navigation a.next:after {
	content: "\e015";
}
.area-navigation a > span {
	position: absolute;
	top: 50%;
	right: 100%;
	max-width: 0;
	overflow: hidden;
	margin: -0.5em 0.5em 0 0;
	font-size: 0.93333em;
	line-height: 1;
	white-space: nowrap;
	transition: max-width 0.3s cubic-bezier(0, 1, 1, 1);
}
.area-navigation a:hover > span {
	max-width: 999px;
	transition: max-width 0.6s cubic-bezier(0.75, 0, 1, 1);
}
.area-navigation.-invert-controls a {
	color: #ffffff;
}
.area-navigation.-invert-controls a:after {
	border-color: rgba(255, 255, 255, 0);
	background-color: #ffffff;
}
.area-navigation.-invert-controls a:hover:after,
.area-navigation.-invert-controls a.active:after {
	border-color: #ffffff;
	background-color: rgba(255, 255, 255, 0.25);
}
.area-navigation.-invert-controls a.prev:hover,
.area-navigation.-invert-controls a.prev.active,
.area-navigation.-invert-controls a.next:hover,
.area-navigation.-invert-controls a.next.active {
	color: #ffffff;
}
.area-navigation.-invert-controls a.prev:after,
.area-navigation.-invert-controls a.prev:hover:after,
.area-navigation.-invert-controls a.next:after,
.area-navigation.-invert-controls a.next:hover:after {
	background-color: transparent;
}

.filter-navigation {
	text-align: center;
	margin: 1.6em 0 2.4em;
}
.filter-navigation h1,
.filter-navigation h2,
.filter-navigation h3 {
	font-size: 0.8em;
	font-weight: normal;
	text-transform: uppercase;
	letter-spacing: 0.1em;
}
.filter-navigation > ul {
	margin: 0.8em 0;
	padding: 0;
	list-style-type: none;
}
.filter-navigation > ul li {
	display: inline;
	margin: 0 0.66667em;
	white-space: nowrap;
}
.filter-navigation > ul li a {
	display: inline-block;
	margin-bottom: 0.35714em;
	padding: 0.35714em 0.85714em;
	text-decoration: none;
	text-transform: uppercase;
	font-size: 0.93333em;
	line-height: 1;
	color: #cccccc;
	background: #333333;
	border-radius: 2px;
	transition: color 0.3s, border-color 0.3s;
}
.filter-navigation > ul li a:first-child {
	margin-left: 0;
}
.filter-navigation > ul li a:hover {
	color: #8e8e8e;
}
.filter-navigation > ul li a.active {
	background: #333333;
}
.filter-navigation > ul li a.active:hover {
	color: #ffffff;
}

.portfolio-boxes {
	zoom: 1;
	margin: 2.66667em 0;
}
.portfolio-boxes:before {
	content: "";
	display: table;
}
.portfolio-boxes:after {
	content: "";
	display: table;
	clear: both;
}
.portfolio-boxes > h1,
.portfolio-boxes > h2,
.portfolio-boxes > h3,
.portfolio-boxes > h4,
.portfolio-boxes > h5,
.portfolio-boxes > h6 {
	margin-top: 0;
	margin-bottom: 1.06667em;
}
.mega-dropdown .portfolio-boxes {
	margin: 0;
}

.portfolio-boxes-item {
	position: relative;
	padding-bottom: 5.33333em;
	background: #ffffff;
}

.portfolio-boxes-item-image {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 5.33333em;
	left: 0;
	background: 50% 50% no-repeat;
	background-size: cover;
}
.portfolio-boxes-item-image img {
	display: none;
}
.portfolio-boxes-item-image:before {
	/* Headline */
	content: attr(data-headline);
	position: absolute;
	right: 0;
	bottom: -5.33333em;
	left: 0;
	display: block;
	padding: 2em 0.66667em;
	font-size: 1em;
	font-weight: normal;
	letter-spacing: 0.1em;
	color: inherit;
	text-align: center;
	text-transform: uppercase;
}

.portfolio-boxes-item-text {
	position: relative;
	display: block;
	min-height: 20em;
	padding: 2em 1.33333em;
	color: #ffffff;
	text-align: center;
	background: #000000;
	background: rgba(0, 0, 0, 0.7);
	opacity: 0;
	transition: opacity 0.3s linear;
}
.portfolio-boxes-item-text:hover,
.portfolio-boxes-item-text:focus,
.portfolio-boxes-item-text.is-hovered {
	text-decoration: none;
	opacity: 1;
	transition: opacity 0.1s linear;
}
.portfolio-boxes-item-text h3 {
	margin: 0;
	font-size: 1em;
	font-weight: normal;
	letter-spacing: 0.1em;
	color: inherit;
	text-transform: uppercase;
}
.portfolio-boxes-item-text h3:after {
	content: "";
	display: block;
	width: 5.33333em;
	height: 1px;
	margin: 1.8em auto 0;
	background: #ffffff;
}
.portfolio-boxes-item-text p {
	margin: 1em 0 0;
}

.portfolio-boxes-item-more {
	position: absolute;
	bottom: -5.33333em;
	left: 0;
	width: 100%;
	height: 5.33333em;
	background: #333333;
}
.portfolio-boxes-item-more:before,
.portfolio-boxes-item-more:after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	background: #ffffff;
}
.portfolio-boxes-item-more:before {
	width: 2.66667em;
	height: 2px;
	margin: -1px -1.33333em;
}
.portfolio-boxes-item-more:after {
	width: 2px;
	height: 2.66667em;
	margin: -1.33333em -1px;
}
.portfolio-boxes-item-more span {
	display: none;
}

.portfolio-tiles {
	clear: both;
	width: 100%;
	/* Clearfix */
	overflow: hidden;
	/* For rounding failures */
	margin-right: -1%;
}

.portfolio-tiles-item {
	position: relative;
	float: left;
	width: 25%;
}
@media screen and (max-width: 1200px) {
	.portfolio-tiles-item {
		width: 33.33333%;
	}
}
@media screen and (max-width: 900px) {
	.portfolio-tiles-item {
		width: 50%;
		font-size: 0.8em;
	}
}
.portfolio-tiles-item > img {
	display: block;
	width: 100%;
	height: auto;
}
.portfolio-tiles-item > .no-image {
	display: block;
	padding-bottom: 75%;
	background: #f2f2f2;
}

.portfolio-tiles-item-link {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	padding-top: 37.5%;
	text-align: center;
	background: rgba(51, 51, 51, 0.8);
	opacity: 0;
	transition: opacity 0.3s linear;
}
.portfolio-tiles-item-link:hover,
.portfolio-tiles-item-link:focus,
.portfolio-tiles-item-link.is-hovered {
	text-decoration: none;
	opacity: 1;
	transition: opacity 0.1s linear;
}
.portfolio-tiles-item-link:before {
	content: "\2b";
	display: block;
	width: 1em;
	margin: -1.25em auto 0.375em;
	font-size: 2.66667em;
	line-height: 1;
	color: #333333;
	background: #ffffff;
}
.portfolio-tiles-item-link h3 {
	margin: 0;
	font-size: 1.33333em;
	font-weight: bold;
	color: #ffffff;
	text-transform: uppercase;
}
.portfolio-tiles-item-link h4 {
	margin: 0;
	font-size: 1em;
	font-weight: normal;
	color: #000000;
}

.portfolio-detail > .back {
	display: none;
}

.counter-boxes {
	zoom: 1;
	text-align: center;
	margin: 2.66667em 0;
	overflow: hidden;
}
.counter-boxes:before {
	content: "";
	display: table;
}
.counter-boxes:after {
	content: "";
	display: table;
	clear: both;
}

.counter-boxes-item {
	text-decoration: none;
	color: inherit;
}
.counter-boxes-item:link:hover,
.counter-boxes-item:link:focus {
	text-decoration: none;
}
.counter-boxes-item:link:hover:before,
.counter-boxes-item:link:focus:before {
	transform: scale(1.2);
}
.counter-boxes-item:before {
	margin: 0;
	font-size: 3.33333em;
	color: #f1b231;
}
.-highlight-color .counter-boxes-item:before {
	color: #dcdcdc;
}
.counter-boxes-item p {
	margin: 0.05556em -0.4em 0.13333em;
	font-size: 6em;
	line-height: 1;
}
@media screen and (max-width: 1440px) {
	.counter-boxes-item p {
		font-size: 5.06667em;
	}
}
@media screen and (max-width: 1200px) {
	.counter-boxes-item p {
		font-size: 3.86667em;
	}
}
@media screen and (max-width: 900px) {
	.counter-boxes-item p {
		font-size: 3.06667em;
	}
}
.counter-boxes-item h3 {
	margin: 0;
	font-size: 1.2em;
	font-weight: normal;
	letter-spacing: 0.1em;
	color: #333333;
	text-transform: uppercase;
}
.-color-inverted .counter-boxes-item h3 {
	color: #dcdcdc;
}

.typing-headline {
	margin-top: 2.66667em;
	margin-bottom: 2.66667em;
	text-align: center;
}
.typing-headline.-align-left {
	text-align: left;
}
.typing-headline.-align-right {
	text-align: right;
}
.typing-headline.-small > h2,
.typing-headline.-small > h3 {
	font-size: 1.6em;
}
.typing-headline.-small > p {
	font-size: 1.2em;
}
.typing-headline.-medium > h2,
.typing-headline.-medium > h3 {
	font-size: 2.4em;
}
@media screen and (max-width: 900px) {
	.typing-headline.-medium > h2,
	.typing-headline.-medium > h3 {
		font-size: 1.86667em;
	}
}
.typing-headline.-medium > p {
	font-size: 1.4em;
}
.typing-headline.-large > h2,
.typing-headline.-large > h3 {
	font-size: 3.2em;
}
@media screen and (max-width: 900px) {
	.typing-headline.-large > h2,
	.typing-headline.-large > h3 {
		font-size: 2.13333em;
	}
}
.typing-headline.-large > p {
	font-size: 1.4em;
}
.typing-headline.-super-size > h2,
.typing-headline.-super-size > h3 {
	font-size: 4.8em;
}
@media screen and (max-width: 900px) {
	.typing-headline.-super-size > h2,
	.typing-headline.-super-size > h3 {
		font-size: 2.8em;
	}
}
.typing-headline.-not-bold > h2 {
	font-weight: normal;
}
.typing-headline h2,
.typing-headline h3 {
	position: relative;
	margin: 0;
	font-size: 4em;
	line-height: 1.2;
}
@media screen and (max-width: 900px) {
	.typing-headline h2,
	.typing-headline h3 {
		font-size: 2.4em;
	}
}
.modernizr-csstransitions .typing-headline h2 > .typing-headline-dummy,
.modernizr-csstransitions .typing-headline h3 > .typing-headline-dummy {
	color: transparent;
	pointer-events: none;
}
.typing-headline h2 > .typing-headline-text,
.typing-headline h3 > .typing-headline-text {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}
.typing-headline h2 > .typing-headline-text.is-typing:after,
.typing-headline h2 > .typing-headline-text.is-done-typing:after,
.typing-headline h3 > .typing-headline-text.is-typing:after,
.typing-headline h3 > .typing-headline-text.is-done-typing:after {
	content: "";
	display: inline-block;
	vertical-align: middle;
	width: 0;
	height: 1em;
	margin: -0.5em -0.06667em -0.5em 0.03333em;
	border-left: 2px solid currentColor;
}
.typing-headline h2 > .typing-headline-text.is-done-typing:after,
.typing-headline h3 > .typing-headline-text.is-done-typing:after {
	margin-right: -0.33333em;
	margin-left: 0.3em;
	animation: typing-cursor 0.5s linear infinite alternate;
}
.typing-headline h2 {
	font-weight: bold;
}
.-color-inverted .typing-headline h2 {
	color: #ffffff;
}
.typing-headline h3 {
	font-weight: normal;
}
.-color-inverted .typing-headline h3 {
	color: #ffffff;
}
.typing-headline p {
	margin: 0.75em 16.66667% 1em 16.66667%;
	color: #333333;
	font-size: 1.6em;
}
@media screen and (max-width: 900px) {
	.typing-headline p {
		margin-right: 0;
		margin-left: 0;
	}
}
.-color-inverted .typing-headline p {
	color: #ffffff;
}
.typing-headline.-align-left > p {
	margin-left: 0;
}
.typing-headline.-align-right > p {
	margin-right: 0;
}
.typing-headline h2 + .button,
.typing-headline h3 + .button {
	margin-top: 2.4em;
}

@keyframes typing-cursor {
	from,
	10% {
		opacity: 0;
	}

	to,
	60% {
		opacity: 1;
	}
}

.team-boxes {
	margin: 3.2em 0;
	zoom: 1;
}
.team-boxes:before {
	content: "";
	display: table;
}
.team-boxes:after {
	content: "";
	display: table;
	clear: both;
}

.team-boxes-item {
	text-align: center;
}
.team-boxes-item > h3 {
	font-size: 1.06667em;
	font-weight: normal;
	text-transform: uppercase;
}
.team-boxes-item > h4 {
	margin-top: 0.42857em;
	font-size: 0.93333em;
	color: #333333;
}
.team-boxes-item:hover img,
.team-boxes-item:hover .no-image {
	opacity: 0.5;
	transition: opacity 0.3s ease-in;
}
.team-boxes-item:hover .team-boxes-social-links {
	bottom: 20px;
}
.-align-left > .team-boxes-item {
	text-align: left;
}
.-align-right > .team-boxes-item {
	text-align: right;
}
.-small > .team-boxes-item > h3 {
	font-size: 0.93333em;
}
.-small > .team-boxes-item > h4 {
	font-size: 0.93333em;
}
.-medium > .team-boxes-item > h3 {
	font-size: 1.2em;
}
.-medium > .team-boxes-item > h4 {
	font-size: 1.06667em;
}
.-large > .team-boxes-item > h3 {
	font-size: 1.4em;
}
.-large > .team-boxes-item > h4 {
	font-size: 1.2em;
}
.-super-size > .team-boxes-item > h3 {
	font-size: 1.6em;
}
.-super-size > .team-boxes-item > h4 {
	font-size: 1.4em;
}
.team-boxes-item .team-boxes-social-links {
	position: absolute;
	top: auto;
	right: 0;
	bottom: -50%;
	left: 0;
	margin: 0;
	padding: 0;
	text-align: center;
	list-style-type: none;
	transition: bottom 0.2s ease-out;
}
.team-boxes-item .team-boxes-social-links > li {
	display: inline;
}
.team-boxes-item .team-boxes-social-links > li > a {
	display: inline-block;
	overflow: hidden;
	padding: 0.42857em;
	border: 2px solid #bbbbbb;
	border-radius: 99em;
	outline: none;
	line-height: 0;
	/* Fixes Chrome bug */
	letter-spacing: -1em;
	text-indent: -99em;
	text-decoration: none;
	background-color: #ffffff;
}
.team-boxes-item .team-boxes-social-links > li > a:hover {
	border-color: currentColor;
}
.team-boxes-item .team-boxes-social-links > li > a:before {
	content: none;
}
.team-boxes-item .team-boxes-social-links > li > a:after {
	font: 1.28571em/1 "RockSolid Icons";
	content: attr(data-icon);
	-webkit-font-smoothing: antialiased;
	font-smoothing: antialiased;
	text-rendering: geometricPrecision;
	text-indent: 0;
	display: inline-block;
	position: relative;
	display: block;
	letter-spacing: 0;
	color: #333333;
}
.team-boxes-item .team-boxes-social-links > li > a:hover:after,
.team-boxes-item .team-boxes-social-links > li > a:focus:after {
	color: inherit !important;
}

.team-boxes-image-wrapper {
	position: relative;
	background-color: #f1b231;
	overflow: hidden;
}
.team-boxes-image-wrapper > a {
	font-size: 0;
}
.team-boxes-image-wrapper > img,
.team-boxes-image-wrapper > a {
	display: block;
	width: 100%;
	height: auto;
}
.team-boxes-image-wrapper > .no-image {
	display: block;
	padding-bottom: 150%;
	background-color: #f4f7fa;
}
.team-boxes-image-wrapper > .no-image:after {
	font: 100px/1 "RockSolid Icons";
	content: "\e13a";
	-webkit-font-smoothing: antialiased;
	font-smoothing: antialiased;
	text-rendering: geometricPrecision;
	text-indent: 0;
	display: inline-block;
	position: relative;
	position: absolute;
	left: 50%;
	top: 50%;
	margin-left: -50px;
	margin-top: -50px;
	color: #bbbbbb;
}

.multicolumn-icon-lists {
	margin: 0.8em 0 1.6em;
	zoom: 1;
}
.multicolumn-icon-lists:before {
	content: "";
	display: table;
}
.multicolumn-icon-lists:after {
	content: "";
	display: table;
	clear: both;
}

.multicolumn-icon-list {
	float: left;
	margin: 0;
	padding-right: 0.8em;
	padding-left: 0;
	list-style-type: none;
}
.main-content .multicolumn-icon-list {
	margin: 0;
}
.multicolumn-icon-list > h2 {
	font-size: 1.4em;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	margin-bottom: 1.14286em;
}
.multicolumn-icon-list > h2:after {
	content: "";
	display: block;
	width: 2.66667em;
	height: 2px;
	margin-top: 0.4em;
	background: #f1b231;
}
.-color-inverted.-highlight-color .multicolumn-icon-list > h2:after {
	background: #024981;
}
.multicolumn-icon-list ul {
	margin: 0;
}
.multicolumn-icon-list li:before {
	color: #f1b231;
}
.multicolumn-icon-list li a[target="_blank"]:after {
	content: none;
}
.-columns-1 > .multicolumn-icon-list {
	width: 100%;
}
.-columns-2 > .multicolumn-icon-list {
	width: 50%;
}
.-columns-3 > .multicolumn-icon-list {
	width: 33.33333%;
}
.-columns-4 > .multicolumn-icon-list {
	width: 25%;
}
.-columns-5 > .multicolumn-icon-list {
	width: 20%;
}
.-columns-6 > .multicolumn-icon-list {
	width: 16.66667%;
}
.multicolumn-icon-list:last-of-type {
	margin-right: -1px;
}
@media screen and (max-width: 900px) {
	.multicolumn-icon-list.multicolumn-icon-list {
		/* doubled class for specificity */
		float: none;
		width: auto;
	}
}

.info-lists {
	zoom: 1;
}
.info-lists:before {
	content: "";
	display: table;
}
.info-lists:after {
	content: "";
	display: table;
	clear: both;
}

.info-list {
	float: left;
}
.-columns-1 > .info-list {
	width: 100%;
}
.-columns-2 > .info-list {
	width: 50%;
}
.-columns-3 > .info-list {
	width: 33.33333%;
}
.-columns-4 > .info-list {
	width: 25%;
}
.-columns-5 > .info-list {
	width: 20%;
}
.-columns-6 > .info-list {
	width: 16.66667%;
}
.info-list:last-of-type {
	margin-right: -1px;
}
.info-list dt {
	margin-top: 1em;
	color: #333333;
	font-size: 0.8em;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}
.info-list dt:first-child {
	margin-top: 0;
}
.info-list dd {
	margin-left: 0;
}
@media screen and (max-width: 900px) {
	.info-list.info-list {
		/* doubled class for specificity */
		float: none;
		width: auto;
	}
}
.info-list a[target="_blank"]:after {
	content: none;
}

.headline-box {
	margin: 2.4em 0;
	text-align: center;
}
.headline-box.-align-left {
	text-align: left;
}
.headline-box.-align-left:before {
	text-align: left;
	margin-left: 0;
}
.headline-box.-align-right {
	text-align: right;
}
.headline-box.-align-right:before {
	text-align: right;
	margin-right: 0;
}
.headline-box.-no-underline:after {
	content: none;
}
.headline-box.-small {
	margin: 1.6em 0;
}
.headline-box.-small:before {
	font-size: 1.6em;
	margin-bottom: 0.25em;
}
.headline-box.-no-tracking h2 {
	letter-spacing: normal;
	text-transform: none;
}
.headline-box:before {
	display: block;
	width: 1.95455em;
	height: 1.95455em;
	margin: 0 auto 0.27273em auto;
	border-radius: 100%;
	font-size: 2.93333em;
	font-weight: normal;
	line-height: 2.00023;
	text-align: center;
	background: #ffffff;
	background: rgba(255, 255, 255, 0.6);
	color: #f1b231;
}
.-color-inverted .headline-box:before {
	background: #024981;
	background: rgba(2, 73, 129, 0.6);
	color: #ffffff;
}
.headline-box:after {
	content: "";
	display: inline-block;
	width: 8em;
	height: 2px;
	background: #f1b231;
}
.-highlight-color .headline-box:after {
	background: #024981;
}
.headline-box.-button-only:after {
	display: none;
}
.headline-box h2 {
	margin: 0.11111em 0;
	font-size: 2.4em;
	font-weight: normal;
	letter-spacing: 0.1em;
	color: inherit;
	text-transform: uppercase;
}
@media screen and (max-width: 900px) {
	.headline-box h2 {
		font-size: 1.86667em;
	}
}
.headline-box h2.-bold {
	font-weight: bold;
}
.headline-box h2.-small {
	font-size: 1.6em;
}
.headline-box h2.-medium {
	font-size: 2.13333em;
}
@media screen and (max-width: 900px) {
	.headline-box h2.-medium {
		font-size: 1.6em;
	}
}
.headline-box h2.-large {
	font-size: 2.8em;
}
@media screen and (max-width: 900px) {
	.headline-box h2.-large {
		font-size: 2.13333em;
	}
}
.headline-box h2.-super-size {
	font-size: 3.46667em;
}
@media screen and (max-width: 900px) {
	.headline-box h2.-super-size {
		font-size: 2.4em;
	}
}
.headline-box h3 {
	margin: 0;
	font-size: 0.93333em;
	font-weight: bold;
	letter-spacing: 0.1em;
	line-height: 1.5;
	color: #333333;
	text-transform: uppercase;
}
.-color-inverted.-highlight-color .headline-box h3 {
	color: #024981;
}
.-color-inverted .headline-box h3 {
	color: #dcdcdc;
}
.headline-box h3.-small {
	font-size: 0.86667em;
}
.headline-box h3.-medium {
	font-size: 1.06667em;
}
@media screen and (max-width: 900px) {
	.headline-box h3.-medium {
		font-size: 0.93333em;
	}
}
.headline-box h3.-large {
	font-size: 1.2em;
}
@media screen and (max-width: 900px) {
	.headline-box h3.-large {
		font-size: 1.06667em;
	}
}
.headline-box h3.-super-size {
	font-size: 1.4em;
}
@media screen and (max-width: 900px) {
	.headline-box h3.-super-size {
		font-size: 1.2em;
	}
}
.headline-box.-button-inline h2,
.headline-box.-button-inline h3 {
	display: inline;
}
@media screen and (max-width: 900px) {
	.headline-box.-button-inline h2,
	.headline-box.-button-inline h3 {
		display: block;
	}
}

h2 + .headline-box-link,
h3 + .headline-box-link {
	margin-top: 1.92857em;
}
.-align-left > .headline-box-link {
	float: right;
	margin: -0.14286em 0 0 3.14286em;
}
@media screen and (max-width: 900px) {
	.-align-left > .headline-box-link {
		float: none;
		margin: 0 0 1em;
	}
}
.-align-right > .headline-box-link {
	float: left;
	margin: -0.14286em 3.14286em 0 0;
}
@media screen and (max-width: 900px) {
	.-align-right > .headline-box-link {
		float: none;
		margin: 0 0 1em;
	}
}
.-button-inline > .headline-box-link {
	margin: 0 0 0 2.14286em;
}
@media screen and (max-width: 900px) {
	.-button-inline > .headline-box-link {
		margin: 1em 0 0;
	}
}

.teaser-boxes {
	zoom: 1;
}
.teaser-boxes:before {
	content: "";
	display: table;
}
.teaser-boxes:after {
	content: "";
	display: table;
	clear: both;
}

.teaser-boxes-item {
	text-align: center;
}
.teaser-boxes-item .no-image {
	display: block;
	padding-top: 75%;
	background: #f2f2f2;
}
.teaser-boxes-item .teaser-boxes-label {
	display: inline-block;
	margin-bottom: 1.11111em;
	padding: 0 0.44444em;
	color: #f1b231;
	border: 2px solid #f1b231;
	border-radius: 99em;
	font-size: 1.2em;
	font-weight: bold;
	text-transform: uppercase;
	letter-spacing: 0.05556em;
}
@media screen and (max-width: 900px) {
	.teaser-boxes-item .teaser-boxes-label {
		font-size: 0.9em;
	}
}
.teaser-boxes-item .teaser-boxes-label + .teaser-boxes-content > h3 {
	margin-top: 0;
}
.teaser-boxes-item.-align-left {
	text-align: left;
}
.teaser-boxes-item.-align-right {
	text-align: right;
}
.-boxed > .teaser-boxes-item {
	overflow: hidden;
	padding: 1.42857em;
	border: 1px solid #bbbbbb;
	border-radius: 2px;
	outline: none;
	background-color: #ffffff;
}

.teaser-boxes-content > h3 {
	font-size: 1.2em;
	font-weight: bold;
}

.teaser-boxes-image {
	display: block;
	margin-bottom: 1.6em;
}
.teaser-boxes-image > img {
	display: block;
	margin: 0 auto;
}
.teaser-boxes-image.-image-circle {
	border-radius: 99em;
	overflow: hidden;
	/* Fixes hover in Chrome */
	opacity: 0.99;
	outline: none;
}
.teaser-boxes-image.-image-circle > img {
	/* Fixes android bug with border-radius and overflow */
	border-radius: 99em;
}
.teaser-boxes-image.-has-hover:hover img,
.teaser-boxes-image.-has-hover:focus img {
	transform: scale(1.05);
}

.testimonial,
blockquote.testimonial {
	margin: 2.66667em 0;
	font-size: inherit;
	color: inherit;
	text-align: center;
}
.testimonial:before,
blockquote.testimonial:before {
	content: "\201c";
	float: none;
	display: block;
	margin: -0.2em 0;
	font-size: 6.66667em;
	/* IE8 and IE9 calculate em's wrong */
	font-size: 100px \9;
	line-height: 1;
	color: #f1b231;
}
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
	.testimonial:before,
	blockquote.testimonial:before {
		/* IE10 and IE11 calculate em's wrong */
		font-size: 100px;
	}
}
.-highlight-color .testimonial:before,
.-highlight-color blockquote.testimonial:before {
	color: #024981;
}

.testimonial-text {
	font-size: 2.66667em;
}
@media screen and (max-width: 900px) {
	.testimonial-text {
		font-size: 1.86667em;
	}
}
.-small .testimonial-text {
	font-size: 1.06667em;
}
@media screen and (max-width: 900px) {
	.-small .testimonial-text {
		font-size: 0.93333em;
	}
}
.-medium .testimonial-text {
	font-size: 1.4em;
}
@media screen and (max-width: 900px) {
	.-medium .testimonial-text {
		font-size: 1.2em;
	}
}
.-large .testimonial-text {
	font-size: 1.86667em;
}
@media screen and (max-width: 900px) {
	.-large .testimonial-text {
		font-size: 1.6em;
	}
}
.-super-size .testimonial-text {
	font-size: 3.2em;
}
@media screen and (max-width: 900px) {
	.-super-size .testimonial-text {
		font-size: 2.4em;
	}
}
.testimonial-text p {
	margin: 0;
}

.testimonial-author {
	margin: 1.33333em 0;
	font-size: 0.93333em;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}
.testimonial-author img {
	display: inline;
	vertical-align: middle;
	overflow: hidden;
	margin-right: 0.71429em;
	border-radius: 99em;
}
.testimonial-author small {
	font-size: inherit !important;
}
.testimonial-author a {
	color: inherit;
}

.pricing-table {
	zoom: 1;
	margin: 2.66667em 0;
}
.pricing-table:before {
	content: "";
	display: table;
}
.pricing-table:after {
	content: "";
	display: table;
	clear: both;
}
.pricing-table > h1,
.pricing-table > h2,
.pricing-table > h3,
.pricing-table > h4,
.pricing-table > h5,
.pricing-table > h6 {
	margin-top: 0;
}

.pricing-table-plan {
	position: relative;
	float: left;
	border: 1px solid #bbbbbb;
	text-align: center;
}
.pricing-table-plan h4 {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	overflow: hidden;
	margin: -2px;
	padding-bottom: 100%;
	font-size: inherit;
	font-weight: normal;
	pointer-events: none;
}
.pricing-table-plan h4 span {
	float: left;
	margin: -2.07692em;
	padding: 0.76923em 2.92308em;
	font-size: 0.86667em;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: #ffffff;
	background: #262626;
	transform: translate(-30%, 0) rotate(-45deg);
	transform-origin: 100% 0;
}
@media screen and (max-width: 1440px) {
	.pricing-table-plan h4 span {
		font-size: 0.66667em;
	}
}
.pricing-table-plan h3 {
	margin: -1px -1px 1px;
	padding: 1.42857em 0.71429em;
	font-size: 0.93333em;
	font-weight: normal;
	letter-spacing: 0.1em;
	color: #ffffff;
	text-transform: uppercase;
	background: #024981;
}
.pricing-table-plan p {
	position: relative;
	margin: -1px -1px 1px;
	padding: 0.3125em 0.125em 0.4375em;
	border-bottom: 1px solid #bbbbbb;
	font-size: 5.33333em;
	line-height: 1;
	color: #ffffff;
	background: #f1b231;
}
@media screen and (max-width: 1440px) {
	.pricing-table-plan p {
		font-size: 4em;
	}
}
.pricing-table-plan p:after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 50%;
	margin: -0.125em;
	border: 0.125em solid transparent;
	border-top-color: #f1b231;
	border-bottom: 0;
}
.pricing-table-plan p b {
	display: inline-block;
	vertical-align: top;
	margin: 0.26471em -0.47059em 0 0;
	font-size: 0.425em;
	font-weight: normal;
}
.pricing-table-plan ul {
	margin: 1.46667em 1.33333em;
	padding: 0;
	list-style: none;
	color: #333333;
}
.pricing-table-plan li {
	padding: 0.46667em 0 0.53333em;
	border-top: 1px solid #bbbbbb;
	transition: background-color 0.3s ease-in;
}
.pricing-table-plan li:hover {
	background-color: #bbbbbb;
	transition-duration: 0.05s;
}
.pricing-table-plan li:first-child {
	border-top: 0;
}
.pricing-table-plan a {
	display: block;
	margin: 2.42857em 1.42857em 1.42857em;
}
.pricing-table-plan a.-secondary {
	display: block;
}

.pricing-table-plan-price-part {
	display: inline-block;
	vertical-align: bottom;
	text-align: left;
	margin-left: 0.0375em;
}
.pricing-table-plan-price-part small {
	display: block;
	font-size: 0.425em;
}
.pricing-table-plan-price-part small + i {
	margin-top: 1.06667em;
}
.pricing-table-plan-price-part small + i:after {
	/* Fix empty elements */
	content: "\a0";
	margin-left: -0.26em;
}
.pricing-table-plan-price-part i {
	display: block;
	margin-bottom: 0.4em;
	font-size: 0.1875em;
	font-style: normal;
}

.google-map {
	position: relative;
	padding-bottom: 56.25%;
}
.google-map > a,
.google-map iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}
.google-map > a {
	display: flex;
	justify-content: center;
	align-items: center;
	text-align: center;
	background: #e5e3df;
}

.info-map {
	position: relative;
	clear: both;
}

.info-map-gmap {
	height: 31.33333em;
}
@media screen and (max-width: 900px) {
	.info-map-gmap {
		height: 20em;
		/* Add area for touch scrolling */
		margin-right: 5.55556%;
		margin-left: 5.55556%;
	}
}
.info-map-gmap > a {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
	text-align: center;
	background: #e5e3df;
}

.skills {
	margin: 1.6em 0;
}

.skills-item {
	margin: 2.13333em 0;
}
.skills-item:first-child {
	margin-top: 0;
}
.skills-item > a {
	display: block;
	color: inherit;
}
.skills-item > a:hover,
.skills-item > a:focus {
	text-decoration: none;
	opacity: 0.6;
}
.skills-item h3,
.skills-item h4 {
	margin: 0;
	margin-bottom: 16px;
	font-size: 0.93333em;
	font-weight: bold;
	letter-spacing: 0.1em;
	color: inherit;
	text-transform: uppercase;
}
.skills-item h3 {
	float: left;
}
.skills-item h3:after {
	content: "";
	display: table;
}
.skills-item h4 {
	color: #333333;
	text-align: right;
}

.skills-item-meter {
	clear: both;
	height: 1.6em;
	overflow: hidden;
	margin: 1.06667em 0;
	background: #bbbbbb;
}

.skills-item-meter-inner {
	height: 100%;
	color: #f1b231;
	background-color: currentColor;
}
.skills-item.not-in-view .skills-item-meter-inner {
	transform: translateX(-100%);
}
.skills-item.in-view .skills-item-meter-inner {
	transform: none;
	transition: transform 2s ease-out;
}

.tab-navigation {
	border: 1px solid transparent;
	border-bottom-color: #bbbbbb;
	text-align: center;
}
.tab-navigation ul,
.tab-navigation li {
	margin: 0;
	padding: 0;
}
.tab-navigation ul {
	display: table;
	table-layout: fixed;
	display: flex;
	align-items: flex-end;
	width: 100%;
}
@media screen and (max-width: 900px) {
	.tab-navigation ul {
		display: inline;
	}
}
.tab-navigation li {
	display: table-cell;
	flex-grow: 1;
	list-style-type: none;
	vertical-align: bottom;
}
@media screen and (max-width: 900px) {
	.tab-navigation li {
		display: block;
	}
}
.tab-navigation li:first-child a {
	margin-left: -1px;
}
.tab-navigation a {
	position: relative;
	display: block;
	margin: -1px -1px 0 0;
	padding: 0.6em 1.86667em;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	outline: none;
	border: 1px solid #bbbbbb;
	border-bottom-width: 0;
	background-color: #ffffff;
}
@media screen and (max-width: 900px) {
	.tab-navigation a {
		margin: 0 -1px;
	}
}
.tab-navigation a:hover,
.tab-navigation a:focus {
	text-decoration: none;
}
.tab-navigation a.is-active {
	z-index: 1;
	box-shadow: 0 10px 0 -1px #ffffff, 0 -3px #333333, -3px 0 3px -1px rgba(0, 0, 0, 0.1), 3px 0 3px -1px rgba(0, 0, 0, 0.1);
}
@media screen and (max-width: 900px) {
	.tab-navigation a.is-active {
		border-color: #333333;
		color: #ffffff;
		background: #333333;
		box-shadow: 0 1px #333333;
	}
}
.tab-navigation.-image-tabs {
	border: 0;
}
.tab-navigation.-image-tabs ul,
.tab-navigation.-image-tabs li {
	display: inline;
}
.tab-navigation.-image-tabs a {
	display: inline-block;
	margin: 0;
	padding: 0.5625em 1.75em;
	border: 0;
	font-size: 1.06667em;
	color: inherit;
	background: none;
}
.tab-navigation.-image-tabs a:hover,
.tab-navigation.-image-tabs a:focus {
	color: #333333;
}
.tab-navigation.-image-tabs a.is-active {
	color: #333333;
	box-shadow: none;
}
.tab-navigation.-image-tabs a.is-active:after {
	content: "";
	position: absolute;
	top: 100%;
	left: 50%;
	margin-left: -0.4375em;
	border: 0.4375em solid transparent;
	border-top-color: #333333;
	border-bottom: 0;
}
.tab-navigation.-image-tabs a:before {
	display: block;
	margin: 0 auto 0.25em;
	font-size: 3em;
	color: #f1b231;
}
.tab-navigation.-image-tabs a img {
	display: block;
	margin: 0 auto 0.8em;
}

.-columns-1 .tab-navigation-item {
	width: 100%;
}
.-columns-2 .tab-navigation-item {
	width: 50%;
}
.-columns-3 .tab-navigation-item {
	width: 33.33333%;
}
.-columns-4 .tab-navigation-item {
	width: 25%;
}
.-columns-5 .tab-navigation-item {
	width: 20%;
}
.-columns-6 .tab-navigation-item {
	width: 16.66667%;
}
@media screen and (max-width: 900px) {
	.tab-navigation-item.tab-navigation-item {
		width: auto;
	}
}

.tab-start.-has-border {
	margin-top: -1px;
	border: 1px solid #bbbbbb;
	padding-right: 2.66667em;
	padding-left: 2.66667em;
}

.timeline {
	margin: 2.66667em 16.66667%;
	position: relative;
}
@media screen and (max-width: 1200px) {
	.timeline {
		margin-right: 0;
		margin-left: 0;
	}
}
.timeline:before,
.timeline:after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 50%;
	background: #333333;
}
@media screen and (max-width: 900px) {
	.timeline:before,
	.timeline:after {
		left: 4.54545%;
	}
}
.timeline:before {
	top: 0;
	width: 2px;
	margin: 0 -1px;
}
.timeline:after {
	width: 10px;
	height: 10px;
	margin: 0 -5px;
	border-radius: 99em;
}

.timeline-item {
	position: relative;
	min-height: 6em;
	/* clearfix */
	overflow: hidden;
	padding: 0 0 2em;
}
.timeline-item:before {
	position: absolute;
	top: 1em;
	left: 50%;
	font-size: 2em;
	border-radius: 99em;
}
@media screen and (max-width: 900px) {
	.timeline-item:before {
		left: 4.54545%;
	}
}
.timeline-item.not-in-view:before {
	transform: scale(0);
}
.timeline-item.in-view:before {
	transform: none;
	transition: transform 0.6s ease-out;
}
.timeline-item:not([data-icon]):before {
	content: "";
	width: 0.66667em;
	height: 0.66667em;
	margin: -0.33333em;
	border: 0.06667em solid #333333;
	background: #ffffff;
}
.timeline-item[data-icon]:before {
	width: 2em;
	height: 2em;
	margin: -1em;
	padding-top: 0.5em;
	color: #ffffff;
	text-align: center;
	background: #f1b231;
}
@media screen and (max-width: 900px) {
	.timeline-item[data-icon]:before {
		font-size: 1.06667em;
	}
}
.timeline-item > h3 {
	float: left;
	width: 40%;
	color: #333333;
	text-align: right;
}
@media screen and (max-width: 900px) {
	.timeline-item > h3 {
		float: none;
		width: auto;
		margin-left: 13.63636%;
		text-align: left;
	}
}
.timeline-item:nth-of-type(2n) > h3 {
	float: right;
	text-align: left;
}
@media screen and (max-width: 900px) {
	.timeline-item:nth-of-type(2n) > h3 {
		float: none;
	}
}
.timeline-item:nth-of-type(2n) > .timeline-item-text {
	float: left;
	text-align: right;
}
@media screen and (max-width: 900px) {
	.timeline-item:nth-of-type(2n) > .timeline-item-text {
		float: none;
		text-align: left;
	}
}

.timeline-item-text {
	float: right;
	width: 40%;
}
@media screen and (max-width: 900px) {
	.timeline-item-text {
		float: none;
		width: auto;
		margin-left: 13.63636%;
	}
}

.timeline-item > h3,
.timeline-item-text h3,
.timeline-item-text h4 {
	margin-top: 1em;
	margin-bottom: 1em;
	font-size: 1.2em;
	font-weight: bold;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.timeline-image-caption {
	font-size: 0.93333em;
	color: #333333;
}

/* ===========================================
 * Modules (Search, FAQ, News, Events, Comments, Sitemap etc.)
 * ======================================== */
.fixed-note {
	position: fixed;
	display: table;
	top: auto;
	right: 0;
	bottom: 0;
	left: 0;
	width: 100%;
	min-height: 4em;
	padding: 0.8em 1.33333em 0.8em 5.33333em;
	padding-right: calc(1.33333em + var(--safe-area-right));
	padding-left: calc(5.33333em + var(--safe-area-left));
	border-top: 1px solid #bbbbbb;
	z-index: 99;
	background-color: #ffffff;
	box-shadow: 0 -2px 5px rgba(0, 0, 0, 0.1);
}
@media screen and (max-width: 1200px) {
	.fixed-note {
		position: static;
	}
}
@media screen and (max-width: 900px) {
	.fixed-note {
		display: block;
		padding-left: 1.33333em;
		padding-left: calc(1.33333em + var(--safe-area-left));
	}
}
.fixed-note:before {
	position: absolute;
	top: 50%;
	margin-top: -0.5em;
	left: 0.83333em;
	left: calc(0.83333em + var(--safe-area-left));
	font-size: 2.4em;
	color: #f1b231;
}
@media screen and (max-width: 1200px) {
	.fixed-note:before {
		top: 0.66667em;
		margin-top: 0;
	}
}
@media screen and (max-width: 900px) {
	.fixed-note:before {
		position: static;
	}
}
.fixed-note h1,
.fixed-note h2,
.fixed-note h3 {
	font-size: 0.93333em;
	margin: 0.42857em 0;
}
.fixed-note p {
	font-size: 0.86667em;
	margin: 0.46154em 0;
}

.fixed-note-column {
	display: table-cell;
	vertical-align: middle;
	padding: 0 0.66667em;
}
.fixed-note-column:last-child {
	text-align: right;
}
@media screen and (max-width: 1200px) {
	.fixed-note-column:last-child {
		text-align: left;
	}
}
@media screen and (max-width: 1200px) {
	.fixed-note-column {
		display: block;
		margin: 0.8em 0;
		padding: 0;
	}
}

.fixed-note-link,
.fixed-note-button {
	white-space: nowrap;
}

.fixed-note-button {
	margin: 0;
}

.fixed-note-closed {
	position: fixed;
	right: 2em;
	right: calc(2em + var(--safe-area-right));
	bottom: 0;
	z-index: 99;
	padding: 0.53333em 0.8em;
	color: #333333;
	text-decoration: none;
	background: #fbba00;
	box-shadow: 0 -2px 5px rgba(0, 0, 0, 0.1);
}
@media screen and (max-width: 1200px) {
	.fixed-note-closed {
		position: absolute;
		top: 0.8em;
		top: calc(0.8em + var(--safe-area-top));
		right: 4.66667em;
		right: calc(4.66667em + var(--safe-area-right));
		bottom: auto;
		padding: 0.26667em 0.8em;
	}
}
.fixed-note-closed:hover,
.fixed-note-closed:focus {
	background-color: #c89400;
}
.fixed-note-closed:before {
	font: 100%/1 "RockSolid Icons";
	content: "\e0a6";
	-webkit-font-smoothing: antialiased;
	font-smoothing: antialiased;
	text-rendering: geometricPrecision;
	text-indent: 0;
	display: inline-block;
	position: relative;
}
.fixed-note-closed > span {
	display: none;
}

.breadcrumbs-wrapper {
	padding-bottom: 2em;
}
@media screen and (max-width: 900px) {
	.breadcrumbs-wrapper {
		padding-bottom: 0;
	}
}
.oneo-fullwidth .breadcrumbs-wrapper {
	padding-bottom: 0;
}

.breadcrumbs-headline {
	float: left;
	margin: 0;
	font-size: 1.4em;
	line-height: 1.5;
	font-weight: normal;
	color: inherit;
	padding: 1.09524em 0 1.19048em;
}
.breadcrumbs-headline:not(:last-child) {
	padding-bottom: 0;
}
@media screen and (max-width: 900px) {
	.breadcrumbs-headline {
		float: none;
		padding-top: 0;
		padding-bottom: 0;
		margin-top: 0.95238em;
		margin-bottom: 0.95238em;
		text-align: center;
	}
}

.mod_breadcrumb {
	padding: 2.46154em 0 2.07692em;
	font-size: 0.86667em;
}
@media screen and (max-width: 900px) {
	.mod_breadcrumb {
		padding-top: 0;
		padding-bottom: 0;
		margin-top: 1.53846em;
		margin-bottom: 1.53846em;
		text-align: center;
	}
}
.mod_breadcrumb.-right {
	float: right;
}
@media screen and (max-width: 900px) {
	.mod_breadcrumb.-right {
		float: none;
	}
}
.mod_breadcrumb ul,
.mod_breadcrumb li {
	display: inline;
	margin: 0;
	padding: 0;
}
.mod_breadcrumb li:before {
	content: " \A0 / \A0 ";
}
.mod_breadcrumb li:first-child:before {
	content: none;
}
.mod_breadcrumb a {
	color: inherit;
	text-decoration: underline;
}
.mod_breadcrumb a:hover {
	text-decoration: none;
}

p.back a:before,
p.previous a:before,
p.next a:after {
	font: 0.8em/1 "RockSolid Icons";
	content: "\e018";
	-webkit-font-smoothing: antialiased;
	font-smoothing: antialiased;
	text-rendering: geometricPrecision;
	text-indent: 0;
	display: inline-block;
	position: relative;
	top: -0.16667em;
	margin-right: 0.5em;
	vertical-align: middle;
}

p.next a:after {
	content: "\e019";
	margin-right: 0;
	margin-left: 0.5em;
}

nav[data-pagination] > p,
.pagination > p {
	text-align: center;
}
nav[data-pagination] ol,
nav[data-pagination] ul,
.pagination ol,
.pagination ul {
	list-style-type: none !important;
	text-align: center;
}
nav[data-pagination] li,
.pagination li {
	display: inline-block;
}
nav[data-pagination] li a, nav[data-pagination] li strong, nav[data-pagination] li span,
.pagination li a,
.pagination li strong,
.pagination li span {
	padding: 4px 12px;
	background-color: #ffffff;
}
nav[data-pagination] li .current, nav[data-pagination] li .active,
.pagination li .current,
.pagination li .active {
	font-weight: bold;
	color: inherit;
	text-decoration: none;
	border-bottom: 1px solid #bbbbbb;
	background-image: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.02));
}

.news-image-teaser {
	zoom: 1;
	position: relative;
	margin: 4.53333em 0;
}
.news-image-teaser:before {
	content: "";
	display: table;
}
.news-image-teaser:after {
	content: "";
	display: table;
	clear: both;
}
.news-image-teaser:first-child {
	margin-top: 3em;
}
.news-image-teaser h2 {
	margin: 0 3.21429em 0.35714em 0;
	font-size: 1.86667em;
	font-weight: normal;
	line-height: 1.28607;
	color: inherit;
}
@media screen and (max-width: 900px) {
	.news-image-teaser h2 {
		margin-right: 0;
	}
}
.news-image-teaser h2 a {
	color: inherit;
}
.news-image-teaser h2 a:hover,
.news-image-teaser h2 a:focus {
	color: #333333;
	text-decoration: none;
}
.news-image-teaser p {
	margin: 0.66667em 0;
	color: #333333;
}
.news-image-teaser p.news-image-teaser-info {
	margin: -0.46667em 0 0.33333em;
}

.news-image-teaser-image {
	float: right;
	max-width: 35%;
	margin-left: 5%;
}
@media screen and (max-width: 900px) {
	.news-image-teaser-image {
		float: none;
		max-width: none;
		margin-left: 0;
		margin-bottom: 0.66667em;
	}
}
.news-image-teaser-image img {
	display: block;
	max-width: 100%;
	height: auto;
	margin: 0;
}

.news-image-teaser-date {
	position: absolute;
	right: 0.71429em;
	top: 0;
	width: 1.85714em;
	padding: 0.25em 0 0.32143em;
	font-size: 1.86667em;
	font-weight: bold;
	line-height: 1;
	color: #f1b231;
	text-align: center;
	background: #ffffff;
	box-shadow: 0 2px 5px rgba(0, 0, 0, 0.15);
}
@media screen and (max-width: 900px) {
	.news-image-teaser-date {
		position: static;
		float: right;
	}
	.news-image-teaser-image ~ .news-image-teaser-date {
		position: absolute;
		right: auto;
		left: 0.71429em;
	}
}
.news-image-teaser-date b {
	display: block;
	margin: -0.05882em 0 0;
	font-size: 0.60714em;
	font-weight: normal;
	text-transform: uppercase;
}

.news-image-teaser-more {
	font-size: 0.86667em;
	font-weight: bold;
	letter-spacing: 0.07692em;
	text-transform: uppercase;
}

.news-boxed {
	zoom: 1;
	margin: 2.66667em 0;
}
.news-boxed:before {
	content: "";
	display: table;
}
.news-boxed:after {
	content: "";
	display: table;
	clear: both;
}

.news-boxed-item h3 {
	margin: 0;
	font-size: 1.2em;
	font-weight: normal;
	line-height: 1.33389;
}
.news-boxed-item h3 > a {
	color: inherit;
	text-decoration: none;
}
.news-boxed-item h3 > a:hover,
.news-boxed-item h3 > a:focus {
	color: #333333;
}
.news-boxed-item p {
	margin: 0.66667em 0;
	color: #333333;
}
.news-boxed-item p.news-boxed-item-info {
	margin: 0 0 0.16667em;
	font-size: 0.8em;
}

.news-boxed-item-image {
	position: relative;
	margin-bottom: 0.33333em;
}
.news-boxed-item-image:after {
	font: 1.66667em/1 "RockSolid Icons";
	content: "\e0dd";
	-webkit-font-smoothing: antialiased;
	font-smoothing: antialiased;
	text-rendering: geometricPrecision;
	text-indent: 0;
	display: inline-block;
	position: relative;
	position: absolute;
	top: 0;
	right: 0.8em;
	padding: 0.32em;
	color: #f1b231;
	background: #ffffff;
	box-shadow: 0 2px 5px rgba(0, 0, 0, 0.15);
}
.news-boxed-item-image img {
	display: block;
	width: 100%;
	height: auto;
}

.news-boxed-item-image-more > a {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	font-size: 0.93333em;
	font-weight: bold;
	letter-spacing: 0.07143em;
	color: #ffffff;
	text-align: center;
	text-decoration: none;
	text-transform: uppercase;
	background: #333333;
	background: rgba(51, 51, 51, 0.5);
	opacity: 0;
}
.news-boxed-item-image-more > a:hover,
.news-boxed-item-image-more > a:focus {
	opacity: 1;
}
.news-boxed-item-image-more > a:before {
	content: "";
	display: block;
	height: 50%;
	margin-bottom: -0.78571em;
}

.news-link-list-item {
	margin: 0.8em 0;
	min-height: 2.66667em;
}
.news-link-list-item:hover time:before {
	top: 0.4em;
}
.news-link-list-item:hover b {
	margin-top: 40px;
}
.news-link-list-item time {
	position: relative;
	float: left;
	width: 3.6em;
	height: 3.6em;
	padding: 0.3em 0 0;
	overflow: hidden;
	font-size: 0.66667em;
	line-height: 1;
	color: #ffffff;
	text-transform: uppercase;
	text-align: center;
	background: #024981;
}
.news-link-list-item time:before {
	font: 2em/1 "RockSolid Icons";
	content: "\e0dd";
	-webkit-font-smoothing: antialiased;
	font-smoothing: antialiased;
	text-rendering: geometricPrecision;
	text-indent: 0;
	display: inline-block;
	position: relative;
	position: absolute;
	top: -1em;
	left: 0.4em;
	transition: top 0.2s ease-out;
}
.news-link-list-item time b {
	display: block;
	font-size: 1.8em;
	font-weight: normal;
	transition: margin 0.2s ease-out;
}
.-color-inverted .news-link-list-item time {
	background: #ffffff;
	color: #333333;
}
.news-link-list-item a {
	display: block;
	line-height: 1.33333em;
}
.news-link-list-item time + a {
	padding-left: 3.33333em;
}

.sidebar-news > .block {
	margin-bottom: 0.71429em;
	padding-bottom: 0.71429em;
	border-bottom: 1px dotted #bbbbbb;
}
.sidebar-news .info {
	margin-bottom: 0;
}
.sidebar .sidebar-news .image_container {
	margin-top: 0;
}
.sidebar .sidebar-news h2 {
	margin: 0.85714em 0 0;
}
.sidebar .sidebar-news p {
	margin: 0.42857em 0;
}

.main-content .mod_calendar {
	margin: 1.6em 0;
}
.mod_calendar th.previous a:after,
.mod_calendar th.previous a:before,
.mod_calendar th.next a:after,
.mod_calendar th.next a:before {
	display: none;
}
.mod_calendar th.current {
	border-right: 0;
	border-left: 0;
	text-align: center;
}
.mod_calendar th.current:before {
	font: 16px/1 "RockSolid Icons";
	content: "\e037";
	-webkit-font-smoothing: antialiased;
	font-smoothing: antialiased;
	text-rendering: geometricPrecision;
	text-indent: 0;
	display: inline-block;
	position: relative;
	margin-right: 6px;
}
.mod_calendar th.previous {
	border-right: 0;
}
.mod_calendar th.next {
	border-left: 0;
	text-align: right;
}
.mod_calendar th.label {
	font-size: 0.8em;
	text-align: center;
	text-transform: uppercase;
	letter-spacing: 0.07143em;
}
@media screen and (max-width: 900px) {
	.mod_calendar th.label > span {
		display: none;
	}
}
.mod_calendar td {
	vertical-align: top;
	width: 14.28571%;
}
@media screen and (max-width: 900px) {
	.mod_calendar td {
		text-align: center;
	}
}
.mod_calendar td.today {
	font-weight: bold;
	background-color: #bbbbbb;
}
.mod_calendar .event {
	font-size: 0.8em;
}
.mod_calendar .minicalendar .label {
	padding-left: 0;
	padding-right: 0;
}
.mod_calendar .minicalendar td {
	padding: 0.2em;
	text-align: center;
}

.mod_newsletterlist ul {
	padding-left: 0;
	list-style-type: none;
}
.mod_newsletterlist ul li {
	border-bottom: 1px solid #bbbbbb;
	padding: 0.53333em 0;
}
.mod_newsletterlist ul li:before {
	font: 2em/1 "RockSolid Icons";
	content: "\e0ce";
	-webkit-font-smoothing: antialiased;
	font-smoothing: antialiased;
	text-rendering: geometricPrecision;
	text-indent: 0;
	display: inline-block;
	position: relative;
	float: left;
	width: 1.33333em;
	margin-top: 0.13333em;
	color: #f1b231;
}
.mod_newsletterlist ul a {
	display: block;
	font-size: 1.4em;
}

.mod_eventlist {
	margin-top: 1.6em;
}
.mod_eventlist > .header {
	font-weight: bold;
}
.mod_eventlist .event {
	overflow: hidden;
	margin-bottom: 3.2em;
}
.mod_eventlist .event > h2 {
	margin-top: 0;
	font-size: 1.6em;
}

.mod_faqlist ul {
	list-style: none;
	padding-left: 0;
}
.mod_faqlist li:before {
	font: 100%/1 "RockSolid Icons";
	content: "\e0f7";
	-webkit-font-smoothing: antialiased;
	font-smoothing: antialiased;
	text-rendering: geometricPrecision;
	text-indent: 0;
	display: inline-block;
	position: relative;
	margin-right: 0.53333em;
}

.mod_faqpage section {
	margin: 2.4em 0;
	padding-left: 4.8em;
}
.mod_faqpage h3 {
	position: relative;
	margin: 1em 0;
	padding: 0.47619em 0 0.71429em;
	border-bottom: 1px solid #bbbbbb;
	font-size: 1.4em;
}
.mod_faqpage h3:before,
.mod_faqpage h3 + *:before {
	content: "Q";
	position: absolute;
	top: 0;
	left: -2.57143em;
	width: 1.78571em;
	padding: 0.35714em 0.39286em 0.42857em;
	border-radius: 100%;
	font-size: 1.33333em;
	line-height: 1;
	color: #ffffff;
	text-align: center;
	background: #f1b231;
}
.mod_faqpage h3 + * {
	position: relative;
}
.mod_faqpage h3 + *:before {
	content: "A";
	left: -3.75em;
	font-size: 1.06667em;
}
.mod_faqpage p {
	margin-top: 0.8em;
	margin-bottom: 0.8em;
}
.mod_faqpage .info {
	font-size: 0.86667em;
	color: #333333;
}

.mod_faqreader .info {
	font-size: 0.86667em;
	color: #333333;
}

.mod_search {
	margin: 1.8em 0;
}
.mod_search .widget {
	display: inline;
}
.mod_search form input {
	vertical-align: middle;
}
.mod_search form input[type="search"] {
	width: 74.375%;
	margin: 0;
	padding-top: 1.06667em;
	padding-bottom: 1em;
}
.mod_search form button[type="submit"],
.mod_search form input[type="submit"] {
	width: 25%;
	margin: 0 -2% 0 0;
}
@media screen and (max-width: 900px) {
	.mod_search form button[type="submit"],
	.mod_search form input[type="submit"] {
		padding-right: 0;
		padding-left: 0;
	}
}
.mod_search .relevance {
	float: right;
	margin-top: 0.71429em;
	font-size: 0.58333em;
}
.mod_search .header {
	padding-bottom: 0.33333em;
	border-bottom: 1px solid #bbbbbb;
	color: #333333;
}
.mod_search .highlight {
	padding: 0 0.26667em;
	font-weight: bold;
	background: #d6d6d6;
}
.mod_search .url {
	padding-bottom: 1.42857em;
	border-bottom: 1px dotted #bbbbbb;
	font-size: 0.93333em;
	color: #333333;
}
.mod_search .url:before {
	font: 100%/1 "RockSolid Icons";
	content: "\e0b5";
	-webkit-font-smoothing: antialiased;
	font-smoothing: antialiased;
	text-rendering: geometricPrecision;
	text-indent: 0;
	display: inline-block;
	position: relative;
	margin-right: 0.35714em;
}
.mod_search .url .filesize {
	font-size: 0.85714em;
}

.comment_default {
	margin: 1.6875em 0;
	padding: 1.25em 6.25% 0;
	border: 1px solid #bbbbbb;
	font-size: 1.06667em;
	background: #ffffff;
	background-image: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.02));
	box-shadow: 0 0 5px rgba(0, 0, 0, 0.1);
}
.comment_default .info {
	margin-top: 0;
	border-bottom: 1px solid #bbbbbb;
}
.comment_default .reply {
	margin-left: 6.66667%;
}
.comment_default .reply .info {
	font-weight: bold;
}

.ce_comments .form {
	margin-top: 2.4em;
}
.ce_comments .form .widget {
	clear: none;
	margin-top: 1.6em;
}
.ce_comments .form .widget:nth-of-type(-n+4) {
	float: left;
	width: 46.66667%;
}
@media screen and (max-width: 900px) {
	.ce_comments .form .widget:nth-of-type(-n+4) {
		width: 100%;
	}
}
.ce_comments .form .widget:nth-of-type(-2n+4) {
	margin-right: -1%;
	margin-left: 6.66667%;
}
@media screen and (max-width: 900px) {
	.ce_comments .form .widget:nth-of-type(-2n+4) {
		margin-right: 0;
		margin-left: 0;
	}
}
.ce_comments .form .widget:nth-of-type(5) {
	clear: both;
	padding-top: 1.6em;
}
.ce_comments .form .widget input {
	width: 100%;
}
.ce_comments .form .widget textarea {
	width: 100%;
}
.ce_comments .form .checkbox_container {
	margin: 0;
	border: 0;
	margin-top: -1.2em;
	padding: 0;
}
.ce_comments h2 + .form,
.ce_comments h2 + .form > form {
	margin-top: 0;
}

.mod_sitemap ul {
	padding-left: 0;
	list-style-type: none;
}
.mod_sitemap ul li:before {
	content: none;
}
.mod_sitemap ul li li {
	padding: 0.2em 0 0.2em 1.86667em;
}
.mod_sitemap ul li li.submenu ul {
	margin: 0;
}
.mod_sitemap > ul > li:before {
	font: 100%/1 "RockSolid Icons";
	content: "\e083";
	-webkit-font-smoothing: antialiased;
	font-smoothing: antialiased;
	text-rendering: geometricPrecision;
	text-indent: 0;
	display: inline-block;
	position: relative;
	margin-right: 0.66667em;
	color: #333333;
}
.mod_sitemap a:before {
	margin-right: 0.53333em;
}

.mod_subscribe .submit,
.mod_unsubscribe .submit {
	padding-top: 1em;
	padding-bottom: 0.78571em;
}

.mod_subscribe.-centered {
	text-align: center;
}
.centered-wrapper .mod_subscribe input[type=text],
.centered-wrapper .mod_subscribe input[type=email] {
	width: 30%;
	min-width: 17.33333em;
}
.centered-wrapper .mod_subscribe .submit {
	width: auto;
}
.sidebar .mod_subscribe input[type=text],
.sidebar .mod_subscribe input[type=email] {
	width: 100%;
}
@media screen and (max-width: 900px) {
	.sidebar .mod_subscribe input[type=text],
	.sidebar .mod_subscribe input[type=email] {
		display: inline;
		margin: 0;
	}
}
.sidebar .mod_subscribe .submit {
	width: 100%;
	margin-top: 0.26667em;
}

/* ===========================================
 * Sidebar / Widgets
 * ======================================== */
.sidebar {
	position: relative;
	float: left;
	width: 18.75%;
	margin: 2.66667em 0 0 3.125%;
	font-size: 0.93333em;
}
@media screen and (max-width: 1200px) {
	.sidebar {
		float: none;
		clear: both;
		width: auto;
		margin-right: 0;
		margin-left: 0;
	}
}
@media screen and (max-width: 900px) {
	.sidebar {
		margin-right: 4.16667%;
		margin-left: 4.16667%;
	}
}
.oneo-sidebar-right .sidebar {
	float: right;
	margin-right: 3.125%;
	margin-left: 0;
}
@media screen and (max-width: 1200px) {
	.oneo-sidebar-right .sidebar {
		float: none;
		margin-right: 0;
		margin-left: 0;
	}
}
@media screen and (max-width: 900px) {
	.oneo-sidebar-right .sidebar {
		margin-right: 4.16667%;
		margin-left: 4.16667%;
	}
}
.oneo-3-columns .sidebar.-right {
	left: 53.125%;
	margin-right: -18.75%;
}
@media screen and (max-width: 1200px) {
	.oneo-3-columns .sidebar.-right {
		left: auto;
		clear: none;
		margin-right: 0;
	}
}
@media screen and (max-width: 900px) {
	.oneo-3-columns .sidebar.-right {
		margin-right: 4.16667%;
	}
}
.sidebar h1,
.sidebar h2,
.sidebar h3,
.sidebar h4,
.sidebar h5 {
	margin: 2.14286em 0 0.5em;
	font-size: 1em;
	font-weight: bold;
	color: #333333;
}
.sidebar p,
.sidebar ul,
.sidebar ol,
.sidebar table,
.sidebar blockquote,
.sidebar fieldset,
.sidebar form {
	margin: 1.06667em 0;
}
.sidebar ul,
.sidebar ol {
	padding: 0;
	list-style-type: none;
}
.sidebar > .block {
	margin: 1.33333em 0;
}
@media screen and (max-width: 1200px) {
	.sidebar > .block {
		float: left;
		width: 43.75%;
		margin-left: 4.16667%;
	}
}
@media screen and (max-width: 900px) {
	.sidebar > .block {
		float: none;
		width: auto;
		margin-left: 0;
	}
}
.sidebar .ce_youtube-wrapper,
.sidebar .ce_vimeo-wrapper {
	margin: 0.8em 0;
}
.sidebar .media > figure,
.sidebar .content-image > figure,
.sidebar .image_container {
	margin: 0.8em 0 0;
}

.sub-navigation h3,
.sub-navigation h3 a {
	color: inherit;
}
.sub-navigation > ul {
	font-size: 0.92857em;
}
.sub-navigation ul a,
.sub-navigation ul strong,
.sub-navigation ul span.active,
.sub-navigation ul span.trail,
.sub-navigation ul span.forward {
	display: block;
	padding: 0.38462em 0;
	color: inherit;
}
.sub-navigation ul a:before,
.sub-navigation ul strong:before,
.sub-navigation ul span.active:before,
.sub-navigation ul span.trail:before,
.sub-navigation ul span.forward:before {
	margin-right: 0.53846em;
}
.sub-navigation ul strong.active,
.sub-navigation ul strong.trail,
.sub-navigation ul span.active,
.sub-navigation ul span.trail {
	font-weight: bold;
}
.sub-navigation ul ul {
	margin: 0 0 0 1.53846em;
}
.sub-navigation li[data-icon]:before,
.sub-navigation li[class^="icon-"]:before,
.sub-navigation li[class*=" icon-"]:before {
	content: none;
}

/* ===========================================
 * Footer
 * ======================================== */
.news-footer {
	margin: 2.66667em 0;
}
.news-footer > h1,
.news-footer > h2,
.news-footer > h3 {
	margin-bottom: 0.66667em;
	font-size: 2.4em;
	font-weight: normal;
	letter-spacing: 0.1em;
	color: inherit;
	text-transform: uppercase;
}
@media screen and (max-width: 900px) {
	.news-footer > h1,
	.news-footer > h2,
	.news-footer > h3 {
		font-size: 1.86667em;
	}
}
.news-footer > h1:after,
.news-footer > h2:after,
.news-footer > h3:after {
	content: "";
	display: block;
	width: 3.33333em;
	height: 2px;
	margin-top: 0.66667em;
	background: #f1b231;
}
.news-footer.-centered {
	text-align: center;
}
.news-footer.-centered > h1:after,
.news-footer.-centered > h2:after,
.news-footer.-centered > h3:after {
	margin-right: auto;
	margin-left: auto;
}

.news-footer-item h3 {
	margin: 0;
	font-size: 1.6em;
	font-weight: bold;
	color: inherit;
	text-transform: uppercase;
}
@media screen and (max-width: 900px) {
	.news-footer-item h3 {
		font-size: 1.33333em;
	}
}
.news-footer-item p {
	margin: 0.13333em 0 0;
	color: #333333;
	transition: color 0.4s linear;
}
.-color-inverted .news-footer-item p {
	color: #dcdcdc;
}
.news-footer-item > a {
	position: relative;
	display: block;
	color: inherit;
	transition: color 0.4s linear;
}
.news-footer-item > a:before {
	content: "";
	position: absolute;
	top: 50%;
	left: 0;
	width: 100%;
	height: 0;
	background: #333333;
	transition: top 0.6s ease-in, height 0.6s ease-in;
}
.news-footer-item > a:hover,
.news-footer-item > a:focus {
	text-decoration: none;
	color: #ffffff;
	transition: color 0.1s linear;
}
.news-footer-item > a:hover:before,
.news-footer-item > a:focus:before {
	top: 0;
	height: 100%;
	transition: top 0.2s ease-out, height 0.2s ease-out;
}
.news-footer-item > a:hover p,
.news-footer-item > a:focus p {
	color: #dcdcdc;
	transition: color 0.1s linear;
}

.news-footer-item-inner {
	position: relative;
	padding-top: 1.6em;
	padding-bottom: 1.6em;
}

.icon-text-block {
	position: relative;
	padding-left: 2em;
}
.icon-text-block > p {
	margin: 1em 0;
}
.icon-text-block:before {
	position: absolute;
	top: 0.26667em;
	left: 0;
	color: #f1b231;
}

.footer-links {
	float: right;
	margin: 0;
	padding: 2.14286em 0;
	font-size: 0.93333em;
	color: #333333;
}
@media screen and (max-width: 1200px) {
	.footer-links {
		float: none;
		padding-top: 0;
	}
}
.footer-links ul,
.footer-links li {
	display: inline;
	margin: 0;
	padding: 0;
}
.footer-links li:before {
	content: "";
	display: inline-block;
	width: 1px;
	height: 0.78571em;
	margin: 0 0.57143em 0 0.35714em;
	background: #333333;
}
.footer-links li:first-child:before {
	content: none;
}
.footer-links a,
.footer-links strong,
.footer-links span.trail,
.footer-links span.active,
.footer-links span.forward {
	color: inherit;
}

.footer-top-link {
	position: relative;
	display: block;
	z-index: 1;
	clear: both;
	width: 2.66667em;
	height: 3.33333em;
	overflow: hidden;
	margin: -1.66667em auto 0;
	color: #ffffff;
	text-indent: -999em;
}
@media screen and (max-width: 900px) {
	.footer-top-link {
		margin-top: 1.66667em;
	}
}
.footer-top-link:after {
	font: 1.06667em/1 "RockSolid Icons";
	content: "\e01a";
	-webkit-font-smoothing: antialiased;
	font-smoothing: antialiased;
	text-rendering: geometricPrecision;
	text-indent: 0;
	display: inline-block;
	position: relative;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	padding-top: 1.0625em;
	text-align: center;
	background: #fbba00;
}
.footer-top-link:hover:after,
.footer-top-link:focus:after {
	color: #fbba00;
	background-color: #fef8e5;
}

.main-content .icon-links {
	padding-left: 0;
	list-style-type: none;
}
.icon-links li {
	padding-bottom: 0.4em;
}
.icon-links a {
	text-decoration: none;
}
.icon-links a:hover span {
	text-decoration: underline;
}

.footer-icon-links {
	margin: 2.66667em;
	margin-right: var(--page-padding-right);
	margin-left: var(--page-padding-left);
	padding: 0;
	text-align: center;
	list-style: none;
}
.footer-icon-links ul,
.footer-icon-links li {
	display: inline;
	margin: 0;
	padding: 0;
}
.footer-icon-links a {
	display: inline-block;
	margin: 0 0.53333em;
	width: 4em;
	height: 4em;
	overflow: hidden;
	border: 2px solid #bbbbbb;
	border-radius: 99em;
	color: #333333;
}
.footer-icon-links a:hover,
.footer-icon-links a:focus {
	color: #ffffff;
	text-decoration: none;
	background: #bbbbbb;
}
.footer-icon-links a:before {
	display: block;
	width: 100%;
	height: 100%;
	padding-top: 0.66667em;
	font-size: 1.6em;
}

.footer-navigation {
	margin: 0 2.66667em;
	margin-right: var(--page-padding-right);
	margin-left: var(--page-padding-left);
	text-align: center;
	list-style: none;
}
@media screen and (max-width: 900px) {
	.footer-navigation {
		margin: 1.33333em 4.16667%;
		margin-right: var(--page-padding-right);
		margin-left: var(--page-padding-left);
	}
}
.footer-navigation ul,
.footer-navigation li {
	display: inline;
	margin: 0;
	padding: 0;
}
.footer-navigation li:before {
	/* disable icons */
	content: none;
	display: none;
}
.footer-navigation a,
.footer-navigation strong,
.footer-navigation span.trail,
.footer-navigation span.active,
.footer-navigation span.forward {
	display: inline-block;
	padding: 0.83333em 1.66667em;
	font-size: 0.8em;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}
@media screen and (max-width: 900px) {
	.footer-navigation a,
	.footer-navigation strong,
	.footer-navigation span.trail,
	.footer-navigation span.active,
	.footer-navigation span.forward {
		padding: 0.5em 0.83333em;
	}
}

.footer-copyright {
	margin: 0 2.66667em 2.66667em;
	margin-right: var(--page-padding-right);
	margin-left: var(--page-padding-left);
	color: #333333;
	text-align: center;
}
.footer-copyright a {
	color: inherit;
}
.footer-copyright .rocksolid-copyright {
	display: block;
	color: inherit;
	opacity: 0.75;
}

/* ===========================================
 * Slider
 * ======================================== */
.main-slider {
	height: 600px;
}
@media screen and (min-height: 600px) {
	.main-slider {
		height: calc(100vh - 3.86667em);
	}
}
@media screen and (min-height: 600px) and (max-width: 1200px) {
	.main-slider {
		height: calc(100vh - 6.4em - 2em);
	}
}
@media screen and (max-width: 900px) {
	.main-slider {
		height: auto;
	}
	.main-slider img {
		max-width: 100%;
		height: auto;
	}
}

.rsts-skin-testimonials .testimonial {
	margin: 0;
}
.rsts-skin-testimonials.rsts-main {
	position: relative;
	margin: 1.8em 0;
	padding: 2.13333em 0 0 0;
}
.rsts-skin-testimonials .rsts-header {
	margin-top: -2.13333em;
}
.rsts-skin-testimonials .rsts-header h1,
.rsts-skin-testimonials .rsts-header h2,
.rsts-skin-testimonials .rsts-header h3,
.rsts-skin-testimonials .rsts-header h4,
.rsts-skin-testimonials .rsts-header h5,
.rsts-skin-testimonials .rsts-header h6 {
	margin: 0 0 1.06667em;
	padding: 0 5.33333em;
	font-size: 0.93333em;
	font-weight: bold;
	color: #333333;
	text-align: center;
}
.rsts-skin-testimonials .rsts-prev,
.rsts-skin-testimonials .rsts-next {
	position: absolute;
	top: -2.53333em;
	right: 1.46667em;
	overflow: hidden;
	text-indent: -99em;
	line-height: 0;
}
.rsts-skin-testimonials .rsts-prev:hover,
.rsts-skin-testimonials .rsts-prev:focus,
.rsts-skin-testimonials .rsts-next:hover,
.rsts-skin-testimonials .rsts-next:focus {
	text-decoration: none;
}
.rsts-skin-testimonials .rsts-prev:after,
.rsts-skin-testimonials .rsts-next:after {
	font: 0.93333em/1 "RockSolid Icons";
	content: "\e018";
	-webkit-font-smoothing: antialiased;
	font-smoothing: antialiased;
	text-rendering: geometricPrecision;
	text-indent: 0;
	display: inline-block;
	position: relative;
	display: block;
	padding: 0.57143em;
	color: #bbbbbb;
}
.rsts-skin-testimonials .rsts-prev:hover:after,
.rsts-skin-testimonials .rsts-prev:focus:after,
.rsts-skin-testimonials .rsts-next:hover:after,
.rsts-skin-testimonials .rsts-next:focus:after {
	color: #a2a2a2;
}
.rsts-skin-testimonials .rsts-next {
	right: -0.6em;
}
.rsts-skin-testimonials .rsts-next:after {
	content: "\e019";
}
.rsts-skin-testimonials .rsts-nav {
	position: absolute;
	left: -4px;
	top: 0;
	line-height: 0;
}
.rsts-skin-testimonials .rsts-nav ul {
	margin: 0;
	padding: 0;
}
.rsts-skin-testimonials .rsts-nav li {
	display: inline;
}
.rsts-skin-testimonials .rsts-nav a {
	float: left;
	width: 18px;
	height: 18px;
	overflow: hidden;
	outline: none;
	padding: 5px;
	text-indent: -99em;
}
.rsts-skin-testimonials .rsts-nav a:after {
	content: "";
	display: block;
	width: 6px;
	height: 6px;
	border: 1px solid #bbbbbb;
	border-radius: 100%;
	background: #bbbbbb;
	background: rgba(187, 187, 187, 0.5);
}
.rsts-skin-testimonials .rsts-nav a:hover:after,
.rsts-skin-testimonials .rsts-nav a.active:after {
	background-color: #bbbbbb;
}
.rsts-skin-testimonials .rsts-nav-prev,
.rsts-skin-testimonials .rsts-nav-next {
	display: none !important;
}

.rsts-skin-oneo.rsts-main {
	position: relative;
}
.rsts-skin-oneo .rsts-caption {
	padding: 0.4em 0;
	color: #333333;
}
.-color-inverted .rsts-skin-oneo .rsts-caption {
	color: #dcdcdc;
}
.rsts-skin-oneo .rsts-prev,
.rsts-skin-oneo .rsts-next,
.rsts-skin-oneo .rsts-video-play,
.rsts-skin-oneo .rsts-video-stop {
	position: absolute;
	top: 50%;
	left: 1.33333em;
	left: calc(1.33333em + var(--safe-area-left));
	overflow: hidden;
	margin-top: -1.73333em;
	border: 2px solid #333333;
	border-radius: 99em;
	outline: none;
	line-height: 0;
	color: #333333;
	text-indent: -99em;
	background-color: rgba(51, 51, 51, 0);
	opacity: 0;
	transition: opacity 0.2s;
}
.rsts-skin-oneo .rsts-prev:hover,
.rsts-skin-oneo .rsts-prev:focus,
.rsts-skin-oneo .rsts-next:hover,
.rsts-skin-oneo .rsts-next:focus,
.rsts-skin-oneo .rsts-video-play:hover,
.rsts-skin-oneo .rsts-video-play:focus,
.rsts-skin-oneo .rsts-video-stop:hover,
.rsts-skin-oneo .rsts-video-stop:focus {
	text-decoration: none;
	background-color: rgba(51, 51, 51, 0.25);
}
.sidebar .rsts-skin-oneo .rsts-prev,
.sidebar .rsts-skin-oneo .rsts-next,
.sidebar .rsts-skin-oneo .rsts-video-play,
.sidebar .rsts-skin-oneo .rsts-video-stop {
	bottom: 0.4em;
}
.rsts-skin-oneo .rsts-prev:after,
.rsts-skin-oneo .rsts-next:after,
.rsts-skin-oneo .rsts-video-play:after,
.rsts-skin-oneo .rsts-video-stop:after {
	font: 0.93333em/1 "RockSolid Icons";
	content: "\e018";
	-webkit-font-smoothing: antialiased;
	font-smoothing: antialiased;
	text-rendering: geometricPrecision;
	text-indent: 0;
	display: inline-block;
	position: relative;
	display: block;
	padding: 1.21429em;
}
.rsts-skin-oneo:hover .rsts-prev,
.rsts-skin-oneo:hover .rsts-next,
.rsts-skin-oneo:hover .rsts-nav {
	opacity: 1;
}
.rsts-skin-oneo .rsts-next {
	left: auto;
	right: 1.33333em;
	right: calc(1.33333em + var(--safe-area-right));
}
.rsts-skin-oneo .rsts-next:after {
	content: "\e019";
}
.oneo-fullwidth .tagline .rsts-skin-oneo .rsts-prev {
	left: 0;
}
.oneo-fullwidth .tagline .rsts-skin-oneo .rsts-next {
	right: 0;
}
.rsts-skin-oneo .rsts-nav {
	position: absolute;
	left: 0;
	bottom: 5%;
	width: 100%;
	opacity: 0;
}
@media screen and (max-width: 900px) {
	.rsts-skin-oneo .rsts-nav {
		bottom: 30px;
	}
}
.rsts-skin-oneo .rsts-nav ul {
	/* Setting height to zero to fix click area */
	height: 0;
	margin: 0;
	padding: 0;
	text-align: center;
}
.rsts-skin-oneo .rsts-nav li {
	display: inline;
}
.rsts-skin-oneo .rsts-nav a {
	display: inline-block;
	outline: none;
	margin: 3px;
	padding: 5px;
}
.rsts-skin-oneo .rsts-nav-bullets a {
	overflow: hidden;
	width: 16px;
	height: 16px;
	margin: 0;
	padding: 4px;
	line-height: 0;
	text-indent: -99em;
}
.rsts-skin-oneo .rsts-nav-bullets a:after {
	content: "";
	display: block;
	width: 8px;
	height: 8px;
	border: 2px solid rgba(51, 51, 51, 0);
	border-radius: 100%;
	background-color: #333333;
	background-clip: padding-box;
}
.rsts-skin-oneo .rsts-nav-bullets a:hover:after,
.rsts-skin-oneo .rsts-nav-bullets a.active:after {
	border-color: #333333;
	background-color: rgba(51, 51, 51, 0.25);
}
.rsts-skin-oneo .rsts-nav-numbers a,
.rsts-skin-oneo .rsts-nav-tabs a {
	margin: 5px;
	border: 2px solid #333333;
	font-size: 0.86667em;
	line-height: 0.61538em;
	color: #333333;
	background-color: #333333;
}
.rsts-skin-oneo .rsts-nav-numbers a:hover,
.rsts-skin-oneo .rsts-nav-numbers a.active,
.rsts-skin-oneo .rsts-nav-tabs a:hover,
.rsts-skin-oneo .rsts-nav-tabs a.active {
	color: #333333;
	background-color: #333333;
	text-decoration: none;
}
.rsts-skin-oneo .rsts-nav-thumbs a {
	margin: 0;
	padding: 0;
}
.rsts-skin-oneo .rsts-nav-prev,
.rsts-skin-oneo .rsts-nav-next {
	display: none !important;
}
.rsts-skin-oneo .rsts-video-play,
.rsts-skin-oneo .rsts-video-stop {
	opacity: 1;
}
.rsts-skin-oneo .rsts-video-play {
	top: 50%;
	right: auto;
	bottom: auto;
	left: 50%;
	width: 5.6em;
	height: 5.6em;
	margin: -2.8em 0 0 -2.8em;
	border-width: 3px;
	transition: background-color 0.3s;
}
.rsts-skin-oneo .rsts-video-play:after {
	content: "\25b6";
	padding: 0;
	margin-left: 0.21429em;
	font-size: 1.86667em;
	line-height: 2.78571em;
	text-align: center;
}
.rsts-skin-oneo .rsts-video-stop {
	top: 20px;
	right: 20px;
	left: auto;
	margin-top: 0;
}
.rsts-skin-oneo .rsts-video-stop:after {
	content: "\d7";
	padding: 0.78571em;
}
.rsts-skin-oneo .rsts-video-youtube > .rsts-video-stop {
	top: 30px;
	right: 10px;
}
.rsts-skin-oneo .rsts-video-vimeo > .rsts-video-stop {
	top: 10px;
	right: auto;
	left: 10px;
}
.rsts-skin-oneo .rsts-video-ipad > .rsts-video-iframe {
	padding-top: 38px;
}
.rsts-skin-oneo .rsts-video-ipad > .rsts-video-stop {
	top: 1px;
	right: 10px;
	left: auto;
}
.rsts-skin-oneo.rsts-video-playing .rsts-nav,
.rsts-skin-oneo.rsts-video-playing .rsts-prev,
.rsts-skin-oneo.rsts-video-playing .rsts-next {
	display: none;
}
.rsts-skin-oneo.rsts-touch .rsts-nav {
	opacity: 1;
}
.rsts-skin-oneo .rsts-progress {
	position: absolute;
	top: 0;
	right: 0;
	width: 100%;
	height: 2px;
	background-color: black;
	opacity: 0;
	transition: opacity 0.2s linear;
}
.rsts-skin-oneo .rsts-progress div {
	height: 100%;
	background-color: white;
}
.rsts-skin-oneo .rsts-progress.rsts-progress-active {
	opacity: 0.3;
}
.rsts-skin-oneo.rsts-invert-controls .rsts-prev,
.rsts-skin-oneo.rsts-invert-controls .rsts-next,
.rsts-skin-oneo.rsts-invert-controls .rsts-video-play,
.rsts-skin-oneo.rsts-invert-controls .rsts-video-stop {
	border-color: #ffffff;
	color: #ffffff;
}
.rsts-skin-oneo.rsts-invert-controls .rsts-prev:hover,
.rsts-skin-oneo.rsts-invert-controls .rsts-prev:focus,
.rsts-skin-oneo.rsts-invert-controls .rsts-next:hover,
.rsts-skin-oneo.rsts-invert-controls .rsts-next:focus,
.rsts-skin-oneo.rsts-invert-controls .rsts-video-play:hover,
.rsts-skin-oneo.rsts-invert-controls .rsts-video-play:focus,
.rsts-skin-oneo.rsts-invert-controls .rsts-video-stop:hover,
.rsts-skin-oneo.rsts-invert-controls .rsts-video-stop:focus {
	background-color: rgba(255, 255, 255, 0.25);
}
.rsts-skin-oneo.rsts-invert-controls .rsts-nav-bullets a:after {
	border-color: rgba(255, 255, 255, 0);
	background-color: #ffffff;
}
.rsts-skin-oneo.rsts-invert-controls .rsts-nav-bullets a:hover:after,
.rsts-skin-oneo.rsts-invert-controls .rsts-nav-bullets a.active:after {
	border-color: #ffffff;
	background-color: rgba(255, 255, 255, 0.25);
}
.rsts-skin-oneo.rsts-invert-controls .rsts-nav-numbers a,
.rsts-skin-oneo.rsts-invert-controls .rsts-nav-tabs a {
	border-color: #ffffff;
	color: #dcdcdc;
	background-color: #ffffff;
}
.rsts-skin-oneo.rsts-invert-controls .rsts-nav-numbers a:hover,
.rsts-skin-oneo.rsts-invert-controls .rsts-nav-numbers a.active,
.rsts-skin-oneo.rsts-invert-controls .rsts-nav-tabs a:hover,
.rsts-skin-oneo.rsts-invert-controls .rsts-nav-tabs a.active {
	color: #ffffff;
	background-color: #ffffff;
}

.rsts-skin-testimonials-centered.rsts-main,
.rsts-skin-partner.rsts-main {
	position: relative;
	margin: 2.4em 0;
}
.rsts-skin-testimonials-centered .rsts-view,
.rsts-skin-partner .rsts-view {
	padding: 0 4em;
}
@media screen and (max-width: 900px) {
	.rsts-skin-testimonials-centered .rsts-view,
	.rsts-skin-partner .rsts-view {
		padding-right: 2em;
		padding-left: 2em;
	}
}
.rsts-skin-testimonials-centered .rsts-nav ul,
.rsts-skin-partner .rsts-nav ul {
	height: 0;
	margin: 0;
}
.rsts-skin-testimonials-centered .rsts-prev,
.rsts-skin-testimonials-centered .rsts-next,
.rsts-skin-partner .rsts-prev,
.rsts-skin-partner .rsts-next {
	position: absolute;
	top: 50%;
	left: 0;
	margin-top: -1.06667em;
	border: 1px solid #bbbbbb;
	overflow: hidden;
	text-indent: -99em;
	line-height: 0;
	background-color: #ffffff;
}
.rsts-skin-testimonials-centered .rsts-prev:hover,
.rsts-skin-testimonials-centered .rsts-prev:focus,
.rsts-skin-testimonials-centered .rsts-next:hover,
.rsts-skin-testimonials-centered .rsts-next:focus,
.rsts-skin-partner .rsts-prev:hover,
.rsts-skin-partner .rsts-prev:focus,
.rsts-skin-partner .rsts-next:hover,
.rsts-skin-partner .rsts-next:focus {
	text-decoration: none;
}
.sidebar .rsts-skin-testimonials-centered .rsts-prev,
.sidebar .rsts-skin-testimonials-centered .rsts-next,
.sidebar .rsts-skin-partner .rsts-prev,
.sidebar .rsts-skin-partner .rsts-next {
	bottom: 0.4em;
}
.rsts-skin-testimonials-centered .rsts-prev:after,
.rsts-skin-testimonials-centered .rsts-next:after,
.rsts-skin-partner .rsts-prev:after,
.rsts-skin-partner .rsts-next:after {
	font: 0.93333em/1 "RockSolid Icons";
	content: "\e018";
	-webkit-font-smoothing: antialiased;
	font-smoothing: antialiased;
	text-rendering: geometricPrecision;
	text-indent: 0;
	display: inline-block;
	position: relative;
	display: block;
	padding: 0.57143em;
	color: #333333;
}
.rsts-skin-testimonials-centered .rsts-prev:hover:after,
.rsts-skin-testimonials-centered .rsts-prev:focus:after,
.rsts-skin-testimonials-centered .rsts-next:hover:after,
.rsts-skin-testimonials-centered .rsts-next:focus:after,
.rsts-skin-partner .rsts-prev:hover:after,
.rsts-skin-partner .rsts-prev:focus:after,
.rsts-skin-partner .rsts-next:hover:after,
.rsts-skin-partner .rsts-next:focus:after {
	color: #1a1a1a;
}
.rsts-skin-testimonials-centered .rsts-next,
.rsts-skin-partner .rsts-next {
	left: auto;
	right: 0;
}
.rsts-skin-testimonials-centered .rsts-next:after,
.rsts-skin-partner .rsts-next:after {
	content: "\e019";
}
.rsts-skin-testimonials-centered .rsts-nav-prev,
.rsts-skin-testimonials-centered .rsts-nav-next,
.rsts-skin-partner .rsts-nav-prev,
.rsts-skin-partner .rsts-nav-next {
	display: none !important;
}

.rsts-skin-testimonials-centered .rsts-nav,
.rsts-skin-partner .rsts-nav,
.rsts-skin-mega-dropdown .rsts-nav,
.rsts-skin-carousel .rsts-nav {
	line-height: 0;
}
.rsts-skin-testimonials-centered .rsts-nav ul,
.rsts-skin-partner .rsts-nav ul,
.rsts-skin-mega-dropdown .rsts-nav ul,
.rsts-skin-carousel .rsts-nav ul {
	padding: 0;
	text-align: center;
}
.rsts-skin-testimonials-centered .rsts-nav .rsts-nav-item,
.rsts-skin-partner .rsts-nav .rsts-nav-item,
.rsts-skin-mega-dropdown .rsts-nav .rsts-nav-item,
.rsts-skin-carousel .rsts-nav .rsts-nav-item {
	display: inline;
}
.rsts-skin-testimonials-centered .rsts-nav .rsts-nav-item a,
.rsts-skin-partner .rsts-nav .rsts-nav-item a,
.rsts-skin-mega-dropdown .rsts-nav .rsts-nav-item a,
.rsts-skin-carousel .rsts-nav .rsts-nav-item a {
	display: inline-block;
	vertical-align: middle;
	width: 18px;
	height: 18px;
	overflow: hidden;
	outline: none;
	padding: 5px;
	text-indent: -99em;
}
.rsts-skin-testimonials-centered .rsts-nav .rsts-nav-item a:after,
.rsts-skin-partner .rsts-nav .rsts-nav-item a:after,
.rsts-skin-mega-dropdown .rsts-nav .rsts-nav-item a:after,
.rsts-skin-carousel .rsts-nav .rsts-nav-item a:after {
	content: "";
	display: block;
	width: 6px;
	height: 6px;
	border: 1px solid #bbbbbb;
	border-radius: 100%;
	background: #bbbbbb;
	background: rgba(187, 187, 187, 0.5);
}
.rsts-skin-testimonials-centered .rsts-nav .rsts-nav-item a:hover,
.rsts-skin-testimonials-centered .rsts-nav .rsts-nav-item a.active,
.rsts-skin-partner .rsts-nav .rsts-nav-item a:hover,
.rsts-skin-partner .rsts-nav .rsts-nav-item a.active,
.rsts-skin-mega-dropdown .rsts-nav .rsts-nav-item a:hover,
.rsts-skin-mega-dropdown .rsts-nav .rsts-nav-item a.active,
.rsts-skin-carousel .rsts-nav .rsts-nav-item a:hover,
.rsts-skin-carousel .rsts-nav .rsts-nav-item a.active {
	text-decoration: none;
}
.rsts-skin-testimonials-centered .rsts-nav .rsts-nav-item a:hover:after,
.rsts-skin-testimonials-centered .rsts-nav .rsts-nav-item a.active:after,
.rsts-skin-partner .rsts-nav .rsts-nav-item a:hover:after,
.rsts-skin-partner .rsts-nav .rsts-nav-item a.active:after,
.rsts-skin-mega-dropdown .rsts-nav .rsts-nav-item a:hover:after,
.rsts-skin-mega-dropdown .rsts-nav .rsts-nav-item a.active:after,
.rsts-skin-carousel .rsts-nav .rsts-nav-item a:hover:after,
.rsts-skin-carousel .rsts-nav .rsts-nav-item a.active:after {
	background-color: #bbbbbb;
}

.rsts-skin-partner .rsts-nav {
	margin: 1.6em 0;
}

.rsts-skin-mega-dropdown.rsts-main {
	margin: 0;
}
.rsts-skin-mega-dropdown .rsts-view {
	padding: 0;
}
.rsts-skin-mega-dropdown .rsts-prev,
.rsts-skin-mega-dropdown .rsts-next {
	position: absolute;
	top: 50%;
	overflow: hidden;
	margin-top: -3.33333em;
	padding: 1.33333em;
	line-height: 0;
	color: inherit;
	text-indent: -99em;
	background: #ffffff;
}
.rsts-skin-mega-dropdown .rsts-prev:after,
.rsts-skin-mega-dropdown .rsts-next:after {
	content: "";
	display: block;
	width: 1.86667em;
	height: 1.86667em;
	border: 2px solid currentColor;
	border-top: 0;
	border-left: 0;
	text-indent: 0;
	transform: rotate(135deg);
}
.rsts-skin-mega-dropdown .rsts-prev:hover,
.rsts-skin-mega-dropdown .rsts-prev:focus,
.rsts-skin-mega-dropdown .rsts-next:hover,
.rsts-skin-mega-dropdown .rsts-next:focus {
	outline: none;
}
.rsts-skin-mega-dropdown .rsts-prev {
	right: 103.33333%;
}
.oneo-boxed .rsts-skin-mega-dropdown .rsts-prev {
	right: auto;
	left: -3.33333%;
}
@media screen and (max-width: 1440px) {
	.rsts-skin-mega-dropdown .rsts-prev.rsts-prev {
		/* doubled class for specificity */
		right: auto;
		left: 0;
		margin-left: -1.33333em;
	}
}
.rsts-skin-mega-dropdown .rsts-prev:after {
	margin-right: -1em;
}
.rsts-skin-mega-dropdown .rsts-next {
	left: 103.33333%;
}
.oneo-boxed .rsts-skin-mega-dropdown .rsts-next {
	right: -3.33333%;
	left: auto;
}
@media screen and (max-width: 1440px) {
	.rsts-skin-mega-dropdown .rsts-next.rsts-next {
		/* doubled class for specificity */
		right: 0;
		left: auto;
		margin-right: -1.33333em;
	}
}
.rsts-skin-mega-dropdown .rsts-next:after {
	transform: rotate(-45deg);
	margin-left: -1em;
}
.rsts-skin-mega-dropdown .rsts-nav {
	text-align: center;
}
.rsts-skin-mega-dropdown .rsts-nav-prev,
.rsts-skin-mega-dropdown .rsts-nav-next {
	display: none !important;
}

.rsts-skin-carousel .rsts-nav ul {
	margin: 0.4em 0;
}
.rsts-skin-carousel .rsts-prev,
.rsts-skin-carousel .rsts-next {
	display: none !important;
}
.rsts-skin-carousel .rsts-nav-prev,
.rsts-skin-carousel .rsts-nav-next {
	display: inline;
	margin-right: 1.33333em;
}
.rsts-skin-carousel .rsts-nav-prev a,
.rsts-skin-carousel .rsts-nav-next a {
	display: inline-block;
	vertical-align: middle;
	overflow: hidden;
	text-indent: -99em;
	line-height: 0;
}
.rsts-skin-carousel .rsts-nav-prev a:after,
.rsts-skin-carousel .rsts-nav-next a:after {
	font: 1.06667em/1 "RockSolid Icons";
	content: "\e018";
	-webkit-font-smoothing: antialiased;
	font-smoothing: antialiased;
	text-rendering: geometricPrecision;
	text-indent: 0;
	display: inline-block;
	position: relative;
	display: block;
	padding: 0.5em;
	color: #333333;
}
.-color-inverted .rsts-skin-carousel .rsts-nav-prev a:after,
.-color-inverted .rsts-skin-carousel .rsts-nav-next a:after {
	color: #ffffff;
}
.rsts-skin-carousel .rsts-nav-prev a:hover,
.rsts-skin-carousel .rsts-nav-prev a:focus,
.rsts-skin-carousel .rsts-nav-next a:hover,
.rsts-skin-carousel .rsts-nav-next a:focus {
	text-decoration: none;
}
.rsts-skin-carousel .rsts-nav-prev a:hover:after,
.rsts-skin-carousel .rsts-nav-prev a:focus:after,
.rsts-skin-carousel .rsts-nav-next a:hover:after,
.rsts-skin-carousel .rsts-nav-next a:focus:after {
	color: #1a1a1a;
}
.-color-inverted .rsts-skin-carousel .rsts-nav-prev a:hover:after,
.-color-inverted .rsts-skin-carousel .rsts-nav-prev a:focus:after,
.-color-inverted .rsts-skin-carousel .rsts-nav-next a:hover:after,
.-color-inverted .rsts-skin-carousel .rsts-nav-next a:focus:after {
	color: #e6e6e6;
}
.rsts-skin-carousel .rsts-nav-next {
	margin-left: 1.33333em;
	margin-right: 0;
}
.rsts-skin-carousel .rsts-nav-next a:after {
	content: "\e019";
}

.rsts-skin-light .rsts-nav {
	position: absolute;
	bottom: 20px;
	margin: 0;
	width: 100%;
}

.oneo-laptop-slider {
	position: relative;
	overflow: hidden;
	background: url("../../files/oneo/img/laptop-background.png") 50% 50% no-repeat;
	background-size: 100% 100%;
}
.oneo-laptop-slider:after {
	content: "";
	position: absolute;
	top: 0.5%;
	right: 9.6%;
	z-index: 2;
	width: 30%;
	height: 0;
	padding-top: 48%;
	background: url("../../files/oneo/img/laptop-reflection.png") 50% 50% no-repeat;
	background-size: 100% 100%;
	pointer-events: none;
}
.oneo-laptop-slider .rsts-view {
	margin-top: 3.5%;
	margin-right: 12%;
	margin-left: 12%;
	margin-bottom: 8.5%;
}
.oneo-laptop-slider .rsts-nav {
	bottom: 20%;
}

.slider-navigation {
	margin: 2.4em 0 1.6em;
	text-align: center;
}

.slider-navigation-prev,
.slider-navigation-next {
	display: inline-block;
	vertical-align: middle;
	overflow: hidden;
	padding: 1em;
	line-height: 0;
	color: inherit;
	text-indent: -99em;
}
.slider-navigation-prev:after,
.slider-navigation-next:after {
	content: "";
	display: block;
	width: 1.86667em;
	height: 1.86667em;
	border: 2px solid currentColor;
	border-top: 0;
	border-left: 0;
	text-indent: 0;
	transform: rotate(135deg);
}
.slider-navigation-prev:hover,
.slider-navigation-prev:focus,
.slider-navigation-next:hover,
.slider-navigation-next:focus {
	outline: none;
}

.slider-navigation-prev {
	margin-right: 6em;
}
@media screen and (max-width: 900px) {
	.slider-navigation-prev {
		margin-right: 1.33333em;
	}
}

.slider-navigation-next {
	margin-left: 6em;
}
@media screen and (max-width: 900px) {
	.slider-navigation-next {
		margin-left: 1.33333em;
	}
}
.slider-navigation-next:after {
	transform: rotate(-45deg);
}

/* ubuntu-300 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Ubuntu';
  font-style: normal;
  font-weight: 300;
  src: url('../../files/oneo/fonts/ubuntu-v21-latin-300.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* ubuntu-regular - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Ubuntu';
  font-style: normal;
  font-weight: 400;
  src: url('../../files/oneo/fonts/ubuntu-v21-latin-regular.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* ubuntu-500 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Ubuntu';
  font-style: normal;
  font-weight: 500;
  src: url('../../files/oneo/fonts/ubuntu-v21-latin-500.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* ubuntu-700 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Ubuntu';
  font-style: normal;
  font-weight: 700;
  src: url('../../files/oneo/fonts/ubuntu-v21-latin-700.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* ==========================================================
   VM Component Library  ·  be on solar
   Component: VM Iconbox / Grid / Card Base
   Version: 2.0.0
   CMS: Contao 5.7
   Theme: RockSolid ONEO
   Breakpoints: Tablet ≤1200px / Mobil ≤900px / Mobil klein ≤700px
   (Spaltenanzahl je Breakpoint einzeln über Redakteurs-Selects wählbar)

   Farbschema be on solar:
   - Text/Headlines:   Warmgrau      #333333
   - Primär/Akzent:    Rot-Orange    #004994
   - Zweitvariante:    Neutral-Grau  #b2b2b2
   - Flächen:          Pfirsich hell #eef3f9 / #f4f7fa / #dfeaf5
   Radius: 16px (Icon-Felder 10px). Fonts: Poppins/Source Sans 3 – s. custom_vm_base.css.
   ========================================================== */

:root {
  /* Text & Blau (Primär) */
  --vm-text: #333333;            /* Standard-Textfarbe / Fließtext + Headlines */
  --vm-text-2: #6b6b6a;          /* Sekundärtext (Vortitel/Meta), AA-tauglich */
  --vm-primary: #004994;         /* Logo-Blau: Marke, Links, Icons, Rahmen, Fokus */
  --vm-primary-dark: #003a76;
  --vm-primary-hover: #003a76;
  --vm-white: #ffffff;
  --vm-page-bg: #ffffff;         /* Website-Hintergrund – im Theme/Layout auf body setzen */

  /* Akzent = Primär (Blau trägt Text und Fokus, weil kontraststark) */
  --vm-accent: #004994;
  --vm-accent-dark: #003a76;

  /* AKTIONSFARBE (Orange aus dem Logo) – NUR als Fläche, NIE als Textfarbe!
     Orange auf Weiß erreicht nur 1,7:1. Auf Orange steht deshalb --vm-cta-text
     (#333, 7,3:1). Verwendung: Haupt-Button, Vortitel-Quadrat, Akzentlinien. */
  --vm-cta: #fbba00;
  --vm-cta-dark: #e0a600;
  --vm-cta-text: #333333;

  /* Flächen (Blau-Tönung, aufgehellt) */
  --vm-surface: #eef3f9;         /* Karten-Hintergrund (getönt) */
  --vm-surface-light: #f4f7fa;
  --vm-surface-icon: #dfeaf5;

  /* Rahmen & Grautöne (kühl) */
  --vm-border: #e3e8ee;
  --vm-border-accent: #cfe0f0;
  --vm-border-neutral: #e3e8ee;
  --vm-grey: #f1f4f8;

  /* Effekte & Maße
     Radius bewusst klein gehalten – angelehnt an die Kachel der Bildmarke. */
  --vm-shadow: 0 18px 38px rgba(0, 73, 148, 0.07);
  --vm-shadow-hover: 0 24px 46px rgba(0, 73, 148, 0.10);
  --vm-radius: 10px;
  --vm-radius-small: 7px;
  --vm-gap: 1.6rem;
  --vm-card-padding: 1.7rem;
  --vm-transition: 200ms ease;
}

/* ----------------------------------------------------------
   Component wrapper
   ---------------------------------------------------------- */

.vm-component,
.vm-component * {
  box-sizing: border-box;
}

.vm-component {
  color: var(--vm-text);
}

.vm-component-headline {
  margin: 0 0 1.75rem;
  color: var(--vm-primary);   /* Überschriften in Markenfarbe Rot-Orange */
  font-weight: 700;
  line-height: 1.18;
  text-transform: none;
}

/* ----------------------------------------------------------
   Grid engine
   ---------------------------------------------------------- */

.vm-grid {
  display: grid;
  gap: var(--vm-gap);
  align-items: stretch;
}

.vm-grid.grid-1 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
.vm-grid.grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.vm-grid.grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.vm-grid.grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.vm-grid.grid-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.vm-grid.grid-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }

.vm-grid .span-2 { grid-column: span 2; }
.vm-grid .span-3 { grid-column: span 3; }
.vm-grid .span-4 { grid-column: span 4; }
.vm-grid .span-5 { grid-column: span 5; }
.vm-grid .span-6 { grid-column: 1 / -1; }

/* ----------------------------------------------------------
   Card base
   ---------------------------------------------------------- */

.vm-card {
  position:relative;
  min-width: 0;
  height: 100%;
  color: var(--vm-text);
  border-radius: var(--vm-radius);
  border: 1px solid var(--vm-border-accent);
  background: var(--vm-surface);
  box-shadow: var(--vm-shadow);
  overflow: hidden;
  transition:
    transform .25s ease,
    box-shadow .25s ease,
    border-color .25s ease;
}


.vm-card::before{content:"";position:absolute;left:0;top:0;width:100%;height:4px;background:var(--vm-border-accent);}
.vm-card:hover::before{background:var(--vm-primary-hover);}
.vm-card h3 {
    color: var(--vm-text);   /* Card-Überschriften in #333333 (nicht Akzent) */
    line-height: 1.25;
    margin: 0 0 .75rem;
}

.vm-card:hover {
    transform: translateY(-2px);
    box-shadow:
      0 18px 38px rgba(0,0,0,.08);
    border-color: rgba(0, 73, 148,.35);
}

.vm-card-inner {
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: var(--vm-card-padding);
}

.vm-card-body {
  flex: 1 1 auto;
  min-width: 0;
}

/* ==========================================================
   Kartenfarben
   Primär = Pfirsich-Karte · plus neutrale Varianten
   ========================================================== */

/* --- Getönte Karte (Primär / Standard) = Pfirsich ---------- */
.vm-card--green {
    background: var(--vm-surface);
    border: 1px solid var(--vm-border-accent);
}

.vm-card--white {
    background: var(--vm-white);
    border: 1px solid var(--vm-border-neutral);
}

.vm-card--border {
    background: var(--vm-white);
    border: 1px solid var(--vm-border-accent);
}

.vm-card--plain {
    background: transparent;
    border: none;
    box-shadow: none;
}

.vm-card--plain:hover {
    transform: none;
    box-shadow: none;
}

.vm-card--bare {
  background: transparent;
  border: none;
  box-shadow: none;
}

.vm-card--bare .vm-card-inner {
  padding-left: 0;
  padding-right: 0;
}

.vm-card--bare::before {
  display: none;          /* hebt die obere Akzentlinie auf */
}

.vm-card--bare:hover {
  transform: none;
  box-shadow: none;
}

.vm-card--custom-color {
  border-color: rgba(0, 0, 0, 0.08);
}

.vm-card--inverted,
.vm-card--inverted .vm-card-title,
.vm-card--inverted .vm-card-text,
.vm-card--inverted .vm-card-text * {
  color: var(--vm-white);
}

/* ==========================================================
   Iconfarbe abhängig vom Kartentyp
   ========================================================== */

/* Getönte Karte -> weißes Iconfeld */

.vm-card--green .vm-card-icon {
    background:var(--vm-white);
}

/* Weiße/rahmenlose Karten -> pfirsiches Iconfeld */

.vm-card--white .vm-card-icon,
.vm-card--border .vm-card-icon,
.vm-card--plain .vm-card-icon {
    background: var(--vm-surface-icon);
}

/* Optional: „Icon invertiert" auf der getönten Karte -> orangefarbenes Feld,
   Icon dann weiß (currentColor). */
.vm-card.vm-card--green.-inverted-icon .vm-card-icon { background: var(--vm-primary); color: var(--vm-white); }


/* ----------------------------------------------------------
   Iconbox
   ---------------------------------------------------------- */

.vm-iconbox-item {
  text-decoration: none;
}

.vm-card-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 64px;
  height: 64px;
  margin-bottom: 1.5rem;
  color: var(--vm-primary);
  background: var(--vm-surface-icon);
  border-radius: var(--vm-radius-small);

  transition:
    background .25s ease,
    color .25s ease,
    transform .25s ease,
    box-shadow .25s ease;

  box-shadow: inset 0 0 0 1px rgba(0, 73, 148,.08);

}

/* Masken-Icon (.vm-icon) im Icon-Feld – Farbe kommt via currentColor aus
   .vm-card-icon (Primär, bzw. Weiß bei „Icon invertiert"). */
.vm-card-icon .vm-icon {
  width: 1.75rem;
  height: 1.75rem;
}

.vm-card-title {
  color: var(--vm-text);   /* Card-Überschriften in #333333 (nicht Akzent) */
  text-transform: none;

  /* Auch lange Überschriften-Komposita (z. B. „Schwangerschaftskonflikt-
     beratung") sauber trennen – aber nur sehr lange Wörter (ab 10 Zeichen).
     Mehrzeilige Titel ausgewogen umbrechen. */
  hyphens: auto;
  -webkit-hyphens: auto;
  hyphenate-limit-chars: 10 4 4;
  -webkit-hyphenate-limit-before: 4;
  -webkit-hyphenate-limit-after: 4;
  overflow-wrap: break-word;
  text-wrap: balance;
}

/* Größe, Stärke und Abstände der Box-Überschriften.
   ---------------------------------------------------------------------
   Diese vier Eigenschaften stehen BEWUSST hier und nicht in der Regel
   darüber: Der Titel wird als h1…h4 ausgegeben, und ONEO setzt in
   main.css

       .main-content h1…h6 { margin-top: 1em; margin-bottom: 0.3em; }
       .main-content h3    { font-size: 2em; }
       .main-content h3,h4 { font-weight: normal; }

   mit Spezifität 0,1,1. Eine einzelne Klasse (0,1,0) verliert dagegen –
   auch später geladen. Mit der Elternklasse davor sind es 0,2,0 und die
   Regel gewinnt ohne `!important`. Ohne das kam der Kartentitel in
   Überschriftengröße und mager heraus. */
.vm-card .vm-card-title,
.vm-teaser .vm-card-title {
  margin: 0 0 0.75rem;
  font-size: clamp(1.35rem, 1.1vw, 1.75rem);
  font-weight: 700;   /* = bold */
  line-height: 1.22;
}

.vm-card-text {
  color: var(--vm-text);
  font-size: 17px;
  line-height: 1.62;

  /* Automatische Silbentrennung für Boxeninhalte.
     Braucht lang="de" am <html> (Contao-Root), sonst trennt der Browser
     willkürlich. hyphenate-limit-chars bändigt die Trennung: nur Wörter ab
     8 Zeichen, min. 4 davor UND min. 4 danach – so entstehen keine hässlichen
     Kurzsilben wie „ergebnisof-fen" (Tail hätte nur 3 Zeichen). */
  hyphens: auto;
  -webkit-hyphens: auto;
  hyphenate-limit-chars: 8 4 4;

  /* Safari kennt hyphenate-limit-chars (noch) nicht → Einzelwerte */
  -webkit-hyphenate-limit-before: 4;
  -webkit-hyphenate-limit-after: 4;
  -webkit-hyphenate-limit-lines: 2;   /* max. 2 Trennstriche direkt untereinander */

  overflow-wrap: break-word;   /* Notbremse: extrem lange Wörter hart umbrechen statt Überlauf */
  text-wrap: pretty;           /* modernere Umbruch-Logik, reduziert schlechte Zeilenenden */
}

.vm-card-text > *:first-child { margin-top: 0; }
.vm-card-text > *:last-child { margin-bottom: 0; }

.vm-card-action {
  flex: 0 0 auto;
  margin-top: 1.75rem;
}

/* ----------------------------------------------------------
   Link / button variants inside cards
   ---------------------------------------------------------- */

.vm-card-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.6em;
  max-width: 100%;
  text-decoration: none;
  transition:
    color var(--vm-transition),
    background-color var(--vm-transition),
    border-color var(--vm-transition),
    transform var(--vm-transition);
}

/* ==========================================================
   Card-Button – Primär (Rot-Orange)
   Größe (rem-basiert), Padding, Farbe, Hover und alle
   Farbvarianten liegen zentral in custom_vm_buttons.css
   (single source of truth). Hier bewusst KEINE eigenen
   .vm-card-link.button-Maße mehr definieren – sonst gewinnt
   je nach Ladereihenfolge mal die em-Regel, mal die rem-Regel
   und die Buttons in den Iconboxen bekommen unterschiedliche
   Höhen.
   ========================================================== */

/* --- Textlink ------------------------------------------------------- */
.vm-card-link.-link {
  color: var(--vm-primary);
  font-weight: 700;
  text-decoration: none;
  text-underline-offset: 0.28em;
  font-size: 1.15em;
}

.vm-card-link.-link:hover,
.vm-card-link.-link:focus-visible {
  color: var(--vm-primary-hover);
}

/* Invertierte Karte + Textlink -> weiße Schrift */
.vm-card--inverted .vm-card-link.-link {
  color: var(--vm-white);
}
.vm-card--inverted .vm-card-link.-link:hover,
.vm-card--inverted .vm-card-link.-link:focus-visible {
  color: rgba(255, 255, 255, 0.8);
}

/* ----------------------------------------------------------
   Button Icon
   ---------------------------------------------------------- */

.vm-card-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .55rem;
}

.vm-card-link-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    flex: 0 0 auto;

    line-height: 1;

    transform: translateY(0.06em);
}

.vm-card-link-text {
    display: inline-flex;
    align-items: center;

    line-height: 1;
}

.vm-card-link--inactive {
  cursor: default;
  opacity: 0.75;
}

/* ----------------------------------------------------------
   Alignment variants
   ---------------------------------------------------------- */

.vm-iconbox-item.-align-center,
.vm-iconbox-item.-align-center .vm-card-inner,
.vm-iconbox-item.-align-center .vm-card-body {
  text-align: center;
  align-items: center;
}

.vm-iconbox-item.-align-right,
.vm-iconbox-item.-align-right .vm-card-inner,
.vm-iconbox-item.-align-right .vm-card-body {
  text-align: right;
  align-items: flex-end;
}

/* ----------------------------------------------------------
   Icon variants
   ---------------------------------------------------------- */

.vm-iconbox-item.-large-icon .vm-card-icon {
  width: 4.5rem;
  height: 4.5rem;
  border-radius: var(--vm-radius-small);
}

.vm-iconbox-item.-large-icon .vm-card-icon .vm-icon {
  width: 2.05rem;
  height: 2.05rem;
}

.vm-iconbox-item.-inverted-icon .vm-card-icon {
  color: var(--vm-white);   /* Icon (currentColor) wird weiß */
  background: var(--vm-primary);
}

/* Icon orange auf weißer Fläche ------------------------------------
   Gilt für JEDE Kartenvariante: Die Regel ist spezifischer (0,3,0) als
   die kartenabhängigen Iconfeld-Regeln weiter oben (0,2,0), setzt also
   sowohl das pfirsiche Feld der weißen Karten als auch das weiße Feld
   der getönten Karte außer Kraft.

   Barrierefreiheit: Orange auf Weiß erreicht nur 1,7:1 und läge damit
   unter den 3:1 für aussagekräftige Grafiken (WCAG 1.4.11). Vertretbar
   ist es hier, weil das Iconfeld im Template `aria-hidden="true"` trägt
   und die Aussage immer zusätzlich als Überschrift und Text daneben
   steht – das Icon ist reine Dekoration. Diese Variante deshalb NICHT
   für Icons verwenden, die als einziges eine Information tragen. */
.vm-iconbox-item.-orange-icon .vm-card-icon {
  color: var(--vm-cta);
  background: var(--vm-white);
}

/* Auf hellen Karten würde die weiße Fläche verschwinden – feine Kontur
   dazu. Als `inset`-Schatten statt `border`, damit die Kachelgröße
   gleich bleibt. Der Badge bringt einen eigenen Schatten mit und ist
   deshalb ausgenommen, sonst löschte die eine Regel die andere. */
.vm-card--white.-orange-icon:not(.-badge-top-icon) .vm-card-icon,
.vm-card--border.-orange-icon:not(.-badge-top-icon) .vm-card-icon,
.vm-card--plain.-orange-icon:not(.-badge-top-icon) .vm-card-icon {
  box-shadow: inset 0 0 0 1px var(--vm-border);
}

/* Badge-Variante: Innenkontur im Schatten des Badges mitführen. */
.vm-card.-orange-icon.-badge-top-icon .vm-card-icon {
  box-shadow:
    inset 0 0 0 1px var(--vm-border),
    0 10px 24px rgba(0, 0, 0, 0.18);
}

.vm-iconbox-item.-headline-icon .vm-card-inner {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  grid-template-rows: 1fr auto;
  column-gap: 1rem;
  row-gap: 0.75rem;
}

.vm-iconbox-item.-headline-icon .vm-card-icon {
  grid-column: 1;
  grid-row: 1;
  margin-bottom: 0;
}

.vm-iconbox-item.-headline-icon .vm-card-body {
  grid-column: 2;
  grid-row: 1;
}

.vm-iconbox-item.-headline-icon .vm-card-action {
  grid-column: 2;
  grid-row: 2;
  margin-top: 0.75rem;
}

/* ==========================================================
   Icon KLEIN neben der Überschrift
   ========================================================== */
.vm-iconbox-item.-headline-icon-small .vm-card-inner {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  grid-template-rows: 1fr auto;
  column-gap: 0.85rem;
  row-gap: 0.75rem;
}
.vm-iconbox-item.-headline-icon-small .vm-card-icon {
  grid-column: 1;
  grid-row: 1;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 0.7rem;
  margin-bottom: 0;
}
.vm-iconbox-item.-headline-icon-small .vm-card-icon .vm-icon {
  width: 1.15rem;
  height: 1.15rem;
}
.vm-iconbox-item.-headline-icon-small .vm-card-body {
  grid-column: 2;
  grid-row: 1;
}
.vm-iconbox-item.-headline-icon-small .vm-card-action {
  grid-column: 2;
  grid-row: 2;
  margin-top: 0.75rem;
}

/* ==========================================================
   Icon als Badge – ragt über den oberen Kartenrand hinaus
   ========================================================== */
.vm-iconbox-item.-badge-top-icon {
  overflow: visible;
  margin-top: 2.75rem;
}

.vm-iconbox-item.-badge-top-icon h3 {
    margin-top: 0.5rem;
}

.vm-iconbox-item.-badge-top-icon::before {
  display: none;
}

.vm-iconbox-item.-badge-top-icon .vm-card-inner {
  padding-top: calc(var(--vm-card-padding) + 2.5rem);
}

.vm-iconbox-item.-badge-top-icon .vm-card-icon {
  position: absolute;
  top: 0;
  left: var(--vm-card-padding);
  transform: translateY(-50%);
  margin: 0;
  z-index: 2;

  width:  clamp(4rem, 3.4rem + 1.7vw, 5.5rem);
  height: clamp(4rem, 3.4rem + 1.7vw, 5.5rem);
  border-radius: clamp(1.1rem, 0.9rem + 0.5vw, 1.5rem);

  box-shadow:
    inset 0 0 0 1px rgba(0, 73, 148, 0.08),
    0 10px 24px rgba(0, 0, 0, 0.18);
}

.vm-iconbox-item.-badge-top-icon .vm-card-icon .vm-icon {
  width:  clamp(1.75rem, 1.4rem + 1vw, 2.5rem);
  height: clamp(1.75rem, 1.4rem + 1vw, 2.5rem);
}

.vm-iconbox-item.-badge-top-icon.-align-center .vm-card-icon {
  left: 50%;
  transform: translate(-50%, -50%);
}
.vm-iconbox-item.-badge-top-icon.-align-right .vm-card-icon {
  left: auto;
  right: var(--vm-card-padding);
}

.vm-iconbox-item.-badge-top-icon .vm-card-action {
  margin-top: 0;
}

.vm-iconbox.-badge-top-icon .vm-grid {
  row-gap: calc(var(--vm-gap) + 1.75rem);
}

/* Badge-Icon (getönte Karte): Innenkontur in Themenfarbe */
.vm-card.vm-card--green.-badge-top-icon .vm-card-icon {
  box-shadow:
    inset 0 0 0 1px rgba(0, 73, 148, 0.15),
    0 10px 24px rgba(0, 0, 0, 0.18);
}


/* ----------------------------------------------------------
   Responsive – Spaltenanzahl je Breakpoint
   Die Spaltenzahl wählt der Redakteur pro Breakpoint selbst:
     Desktop     .grid-1 … .grid-6      (Basis, > 1200px, siehe „Grid engine")
     Tablet      .grid-t-1 … .grid-t-6  (≤ 1200px)
     Mobil       .grid-m-1 … .grid-m-6  (≤ 900px)
     Mobil klein .grid-s-1 … .grid-s-6  (≤ 700px)
   Am Element hängen alle vier Klassen gleichzeitig. Da die Blöcke in der
   Reihenfolge Tablet -> Mobil -> Mobil klein stehen (gleiche Spezifität),
   gewinnt bei überlappenden Breakpoints per Quellreihenfolge immer der
   schmalere Wert.
   ---------------------------------------------------------- */

/* Tablet – ab 1200px und schmaler */
@media (max-width: 1200px) {
  .vm-grid.grid-t-1 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
  .vm-grid.grid-t-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .vm-grid.grid-t-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .vm-grid.grid-t-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .vm-grid.grid-t-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .vm-grid.grid-t-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
}

/* Mobil – ab 900px und schmaler */
@media (max-width: 900px) {
  .vm-grid.grid-m-1 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
  .vm-grid.grid-m-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .vm-grid.grid-m-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .vm-grid.grid-m-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .vm-grid.grid-m-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .vm-grid.grid-m-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }

  /* Spannweiten aufheben + Layout-Feinschliff (bleibt wie gehabt) */
  .vm-grid .span-2,
  .vm-grid .span-3,
  .vm-grid .span-4,
  .vm-grid .span-5,
  .vm-grid .span-6 {
    grid-column: auto;
  }

  .vm-card-inner {
    padding: 1.6rem;
  }

  .vm-iconbox-item.-headline-icon .vm-card-inner {
    display: flex;
  }

  .vm-iconbox-item.-headline-icon .vm-card-action {
    margin-top: 1.5rem;
  }
}

/* Mobil klein – ab 700px und schmaler */
@media (max-width: 700px) {
  .vm-grid.grid-s-1 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
  .vm-grid.grid-s-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .vm-grid.grid-s-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .vm-grid.grid-s-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .vm-grid.grid-s-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .vm-grid.grid-s-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
}

/* ----------------------------------------------------------
   Vortitel (Preheadline) in der Karte – Kicker mit Linie links
   Text in Schriftfarbe, nur die Linie ist rot (bewusst wenig Rot).
   Gilt für Iconbox UND Teaser (beide sind .vm-card).
   ---------------------------------------------------------- */
.vm-card-preheadline {
  display: inline-flex;
  align-items: center;
  gap: 0.6em;
  /* !important schlägt ONEOs .main-content p (margin-top:0.75em / -bottom:1.5em) */
  margin: 0 0 0.2rem !important;
  font-size: 1.1rem;           /* etwas größer als Fließtext */
  font-weight: 600;
  line-height: 1.25;
  color: var(--vm-text);
}
/* Marker = leicht gerundetes Quadrat in Orange, identisch zu
   .vm-preheadline (custom_vm_preheadline.css). Vorher war es eine Linie
   in der Schriftfarbe – ein Rest aus dem Ursprungsprojekt. Das Quadrat
   ist hier das Erkennungszeichen: Es lehnt sich an die Bildmarke an und
   taucht über allen Vortiteln der Seite in derselben Form auf.
   Orange trägt keinen Text, nur Fläche – auf hellem wie auf dunklem
   Grund gleichermaßen sichtbar, deshalb KEIN currentColor. */
.vm-card-preheadline::before {
  content: "";
  flex: 0 0 auto;
  width: 0.62em;
  height: 0.62em;
  border-radius: 3px;
  background: var(--vm-cta, #fbba00);
}
.vm-card.-align-center .vm-card-preheadline { justify-content: center; }
.vm-card.-align-right  .vm-card-preheadline { justify-content: flex-end; }
.vm-card--inverted .vm-card-preheadline { color: var(--vm-white); }

/* ==========================================================
   Spaltenverhältnisse (grid-ratio-*) – unterschiedlich breite Boxen
   Gilt für Iconbox UND Teaser (beide nutzen .vm-grid).
   Anzahl der Werte = Anzahl der Boxen in der Reihe.

   NUR Desktop (> 1200px): ab Tablet übernehmen die Breakpoint-Spalten
   (grid-t-* / grid-m-* / grid-s-*). So kann der Redakteur pro Breakpoint
   frei auf gleiche Spalten umschalten, ohne dass das Verhältnis „klebt".
   ========================================================== */
@media (min-width: 1201px) {
  /* 2 Boxen */
  .vm-grid.grid-ratio-2-1 { grid-template-columns: 2fr 1fr; }
  .vm-grid.grid-ratio-1-2 { grid-template-columns: 1fr 2fr; }
  .vm-grid.grid-ratio-3-1 { grid-template-columns: 3fr 1fr; }
  .vm-grid.grid-ratio-1-3 { grid-template-columns: 1fr 3fr; }
  .vm-grid.grid-ratio-3-2 { grid-template-columns: 3fr 2fr; }
  .vm-grid.grid-ratio-2-3 { grid-template-columns: 2fr 3fr; }
  /* 3 Boxen */
  .vm-grid.grid-ratio-2-1-1 { grid-template-columns: 2fr 1fr 1fr; }
  .vm-grid.grid-ratio-1-1-2 { grid-template-columns: 1fr 1fr 2fr; }
  .vm-grid.grid-ratio-1-2-1 { grid-template-columns: 1fr 2fr 1fr; }
  /* 4 Boxen */
  .vm-grid.grid-ratio-2-1-1-1 { grid-template-columns: 2fr 1fr 1fr 1fr; }
  .vm-grid.grid-ratio-1-1-1-2 { grid-template-columns: 1fr 1fr 1fr 2fr; }
  .vm-grid.grid-ratio-1-2-1-1 { grid-template-columns: 1fr 2fr 1fr 1fr; }
  .vm-grid.grid-ratio-1-1-2-1 { grid-template-columns: 1fr 1fr 2fr 1fr; }
}

/* ==========================================================
   Spaltenverhältnisse Tablet (grid-ratio-t-*)
   Wirken NUR im Tablet-Fenster (901–1200px) und überschreiben dort die
   gleichmäßige Tablet-Spaltenanzahl (grid-t-*). Mobil (≤900px) wird über
   grid-m- / grid-s- gesteuert (i. d. R. 1 Spalte).
   ========================================================== */
@media (min-width: 901px) and (max-width: 1200px) {
  /* 2 Boxen */
  .vm-grid.grid-ratio-t-2-1 { grid-template-columns: 2fr 1fr; }
  .vm-grid.grid-ratio-t-1-2 { grid-template-columns: 1fr 2fr; }
  .vm-grid.grid-ratio-t-3-1 { grid-template-columns: 3fr 1fr; }
  .vm-grid.grid-ratio-t-1-3 { grid-template-columns: 1fr 3fr; }
  .vm-grid.grid-ratio-t-3-2 { grid-template-columns: 3fr 2fr; }
  .vm-grid.grid-ratio-t-2-3 { grid-template-columns: 2fr 3fr; }
  /* 3 Boxen */
  .vm-grid.grid-ratio-t-2-1-1 { grid-template-columns: 2fr 1fr 1fr; }
  .vm-grid.grid-ratio-t-1-1-2 { grid-template-columns: 1fr 1fr 2fr; }
  .vm-grid.grid-ratio-t-1-2-1 { grid-template-columns: 1fr 2fr 1fr; }
  /* 4 Boxen */
  .vm-grid.grid-ratio-t-2-1-1-1 { grid-template-columns: 2fr 1fr 1fr 1fr; }
  .vm-grid.grid-ratio-t-1-1-1-2 { grid-template-columns: 1fr 1fr 1fr 2fr; }
  .vm-grid.grid-ratio-t-1-2-1-1 { grid-template-columns: 1fr 2fr 1fr 1fr; }
  .vm-grid.grid-ratio-t-1-1-2-1 { grid-template-columns: 1fr 1fr 2fr 1fr; }
}

/* ==========================================================
   Karten OHNE Abstand (zusammenhängend) – Modifier .vm-grid--seamless
   Wie das Leistungs-Raster: 1px-Hairline-Trenner statt Gap, gemeinsamer
   Außenrahmen + Rundung, je Karte KEINE Rundung/Kein Schatten/Kein Rand.
   Wird per RSCE-Checkbox „Karten ohne Abstand" an das .vm-grid gehängt.
   Gilt für Iconbox UND Teaser.
   ========================================================== */
.vm-grid--seamless {
  gap: 1px;                                  /* Trennlinie = durchscheinender Grund */
  background: var(--vm-border);
  border: 1px solid var(--vm-border);
  border-radius: var(--vm-radius);
  overflow: hidden;                          /* runde Außenecken */
}
.vm-grid--seamless > .vm-card {
  border: 0;                                 /* höhere Spezifität als .vm-card--* */
  border-radius: 0;
  box-shadow: none;
}
.vm-grid--seamless > .vm-card::before { display: none; }   /* obere Akzentlinie aus */
.vm-grid--seamless > .vm-card:hover {
  transform: none;                           /* zusammenhängend -> kein Anheben */
  box-shadow: none;
  background: var(--vm-surface);             /* dezente Tönung im Hover (wie Entwurf) */
}
/* Ratio/Seamless kombinierbar: die 1px-Fuge bleibt, Spalten kommen vom Grid. */

/* Senkrecht knapper als die Kartenpolsterung.
   Zwischen zwei ÜBEREINANDER liegenden Karten summiert sich sonst
   padding-unten + 1px + padding-oben auf über 3,4rem – die Fuge wirkt
   dann wie eine Lücke statt wie eine Trennung. Das betrifft nicht nur
   einspaltige Ansichten: Sobald das Raster eine zweite Reihe hat, steht
   derselbe Abstand auch zwischen den Reihen. Deshalb gilt die Regel für
   alle Breiten, mit einem kleineren Wert auf schmalen Displays, wo sich
   ohnehin alles stapelt.

   Seitlich bleibt die volle Polsterung, damit der Text nicht an der
   Kante klebt. */
.vm-grid--seamless > .vm-card > .vm-card-inner {
  padding-block: clamp(1.05rem, 1.8vw, 1.35rem);
}


/* ==========================================================
   Trennlinien ZWISCHEN den Boxen – Modifier .vm-grid--dividers
   ----------------------------------------------------------
   Für Bänder wie das Werteband: keine Karten, kein Rahmen, keine Fläche –
   nur feine senkrechte Linien zwischen den Spalten.

   Unterschied zu „Karten ohne Abstand" (.vm-grid--seamless): Dort ist die
   Linie die durchscheinende Rasterfläche, jede Karte braucht also eine
   eigene HELLE Fläche, die sie verdeckt. Auf dunklem Grund funktioniert
   das nicht. Hier wird die Linie stattdessen je Karte als Pseudoelement
   im Abstand gezeichnet – die Karten bleiben durchsichtig, der Grund
   scheint durch, und es ist egal, ob er hell oder dunkel ist.

   Die Linie hinter der LETZTEN Spalte läge außerhalb des Rasters und
   wird von `overflow: hidden` gekappt. Deshalb kein Rechnen mit
   Spaltenzahlen und keine nth-child-Ketten je Breakpoint.
   ========================================================== */
.vm-grid--dividers {
  --vm-grid-linie: rgba(0, 0, 0, 0.14);
  overflow: hidden;
}

/* Auf dunklem Grund (Umschlagelement „Textfarbe invertieren") muss die
   Linie heller sein als der Grund, nicht dunkler. */
.-color-inverted .vm-grid--dividers {
  --vm-grid-linie: rgba(255, 255, 255, 0.22);
}

.vm-grid--dividers > .vm-card {
  position: relative;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  background: transparent;

  /* WICHTIG: .vm-card steht auf `overflow: hidden` (für die runden Ecken).
     Die Trennlinie liegt aber absichtlich AUSSERHALB der Karte, in der
     Rasterfuge – ohne diese Zeile schneidet die Karte sie weg und es ist
     nichts zu sehen. Ohne Rundung wird hier ohnehin nichts beschnitten. */
  overflow: visible;
}

/* obere Akzentlinie der Karte aus – sie gehört zur Kartenoptik */
.vm-grid--dividers > .vm-card::before { display: none; }

/* zusammenhängendes Band -> kein Anheben beim Überfahren */
.vm-grid--dividers > .vm-card:hover {
  transform: none;
  box-shadow: none;
  background: transparent;
}

/* Senkrecht knapper – gleiche Überlegung wie bei „Karten ohne Abstand":
   Zwischen zwei Reihen stehen sonst padding-unten + Rasterabstand +
   padding-oben. Anders als dort trennt hier aber keine Linie waagerecht
   mit, der Platz ist also reine Leere. */
.vm-grid--dividers > .vm-card > .vm-card-inner {
  padding-block: clamp(0.85rem, 1.6vw, 1.25rem);
}

/* Gestapelt fällt der Rasterabstand zusätzlich ins Gewicht: Die Spalten
   liegen dann untereinander, die senkrechte Trennlinie entfällt – übrig
   bleibt nur Abstand. Deshalb die Reihen enger führen. */
@media (max-width: 900px) {
  .vm-grid--dividers {
    row-gap: 0.75rem;
  }
}

/* Einspaltig (ab 700px abwärts) gibt es gar keine senkrechte Linie mehr,
   von der die Karte Abstand halten müsste. Die seitliche Polsterung kann
   deshalb weg – der Text gewinnt spürbar Breite, und auf schmalen
   Displays zählt jedes Zeichen pro Zeile. */
@media (max-width: 700px) {
  .vm-grid--dividers > .vm-card > .vm-card-inner {
    padding-inline: 0;
  }
}

.vm-grid--dividers > .vm-card::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  /* mittig in die Rasterfuge, nicht an die Kartenkante */
  right: calc(var(--vm-gap) / -2);
  width: 1px;
  background: var(--vm-grid-linie);
  pointer-events: none;
}


/* ==========================================================
   ICONBOXEN AUF DUNKLEM GRUND
   ----------------------------------------------------------
   Greift automatisch, sobald das Umschlagelement auf
   „Textfarbe invertieren" steht – ONEO setzt dann die Klasse
   `-color-inverted` auf .centered-wrapper. Es braucht also KEINE
   zusätzliche Klasse am Element und keine eigene Kartenvariante.

   Warum überhaupt nötig: Das Theme invertiert nur seine eigenen
   Textfarben (h1, h2, h6, blockquote). Unsere Kartenteile setzen ihre
   Farbe selbst – `.vm-card .vm-card-title` (0,2,0) schlägt die geerbte
   Wrapper-Farbe und bliebe sonst dunkelgrau auf Dunkelblau.

   Vorlage ist das Werteband aus _design/Main.dc.html:
     Icon   = oranger Ring, oranges Icon, keine gefüllte Fläche
     Titel  = Weiß
     Text   = Weiß mit 80 % Deckkraft
   ========================================================== */

/* --- Icon: Ring statt Fläche --------------------------------------- */
.-color-inverted .vm-card-icon {
  background: transparent;
  border: 2px solid var(--vm-cta, #fbba00);
  color: var(--vm-cta, #fbba00);
  box-shadow: none;
}

/* --- Texte ---------------------------------------------------------- */
.-color-inverted .vm-card .vm-card-title,
.-color-inverted .vm-teaser .vm-card-title,
.-color-inverted .vm-card-preheadline {
  color: var(--vm-white, #ffffff);
}

.-color-inverted .vm-card-text {
  color: rgba(255, 255, 255, 0.8);
}

/* Das Quadrat vor dem Vortitel bleibt orange – es ist Erkennungszeichen,
   keine Textauszeichnung, und trägt auf beiden Gründen dieselbe Farbe. */

/* --- Textlink „Mehr erfahren" -------------------------------------- */
.-color-inverted .vm-card-link.-link {
  color: var(--vm-white, #ffffff);
}
.-color-inverted .vm-card-link.-link:hover,
.-color-inverted .vm-card-link.-link:focus-visible {
  color: var(--vm-cta, #fbba00);
}

/* --- Karten mit eigener Fläche bleiben unangetastet -----------------
   Steht auf dunklem Grund eine WEISSE Karte (vm-card--white/-border),
   gilt dort weiter die helle Gestaltung – sonst stünde weiße Schrift auf
   weißer Karte. Die Regeln oben zielen auf rahmenlose Boxen. */
.-color-inverted .vm-card--white .vm-card-title,
.-color-inverted .vm-card--border .vm-card-title,
.-color-inverted .vm-card--white .vm-card-preheadline,
.-color-inverted .vm-card--border .vm-card-preheadline {
  color: var(--vm-text, #333333);
}
.-color-inverted .vm-card--white .vm-card-text,
.-color-inverted .vm-card--border .vm-card-text {
  color: var(--vm-text, #333333);
}
.-color-inverted .vm-card--white .vm-card-icon,
.-color-inverted .vm-card--border .vm-card-icon {
  background: var(--vm-surface-icon, #dfeaf5);
  border: 0;
  color: var(--vm-primary, #004994);
}

/* =====================================================================
   be on solar – BASIS: Schrift, Überschriften (h1–h6), Container
   ---------------------------------------------------------------------
   Farb-/Maß-Tokens (--vm-*) liegen in custom_vm_icon_boxes.css (:root).
   Diese Datei: Schrift-Tokens, Grundschrift, Überschriften + Größen-Klassen.

   SCHRIFT (selbst gehostet – nur installierte Schnitte nutzen!):
   - Ubuntu 300/400/500/700 für ALLES (Überschriften wie Fließtext).
   - KEIN Italic (nicht installiert und laut Vorgabe nicht erwünscht),
     keine Versalien – beides aus Gründen der Barrierearmut.

   BREAKPOINTS (System):
   - Inhalt max. 1440px · Tablet ≤1200px · Mobil groß ≤900px · Mobil klein ≤700px.
   Überschriften + Größen skalieren FLUID per clamp() – passen sich also ohne
   Media-Query stufenlos an (responsive by default).

   BARRIEREFREIHEIT: Fließtext min. 16px, keine Versalien, auf Kontrast achten.
   Nach dem ONEO-Framework-CSS laden.
   ===================================================================== */

:root {
  color-scheme: light;
  --vm-font-display: "Ubuntu", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --vm-font-body:    "Ubuntu", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --vm-fw-head: 700;
  --vm-radius-pill: 10px;     /* bewusst KEINE Vollrundung – passt zur Logo-Kachel */
  /* Inhaltsbreite. Muss mit der Inhaltsbreite im RockSolid Theme Assistant
     übereinstimmen (dort ebenfalls 1440), sonst sitzen ONEO-Elemente und
     VM-Komponenten auf unterschiedlichen Kanten. */
  --vm-content-max: 1440px;
}

/* Grundschrift + Mindestgröße (nur setzen, falls das Theme es nicht schon tut). */
body {
  font-family: var(--vm-font-body);
  color: var(--vm-text, #333333);
  font-size: clamp(1rem, 0.97rem + 0.2vw, 1.12rem);  /* min. 16px */
  line-height: 1.62;
}

/* ---------------------------------------------------------------------
   Überschriften h1–h6 (responsive/fluid) + gleichnamige Größen-Klassen
   .vm-h1 … .vm-h6 wenden die Optik auf BELIEBIGE Elemente an (ohne die
   Semantik zu ändern). .vm-display = Hero, größer + schlanker als h1.
   --------------------------------------------------------------------- */
h1, h2, h3, h4, h5, h6,
.vm-h1, .vm-h2, .vm-h3, .vm-h4, .vm-h5, .vm-h6, .vm-display {
  font-family: var(--vm-font-display);
  font-weight: var(--vm-fw-head);
  color: var(--vm-text, #333333);
  letter-spacing: -0.01em;
  line-height: 1.15;
  text-wrap: balance;
}
h1, h2, h3, h4, h5, h6 { margin: 0 0 0.5em; }

h1, .vm-h1 { font-size: clamp(2.1rem, 1.5rem + 2.8vw, 3.4rem); line-height: 1.08; }
h2, .vm-h2 { font-size: clamp(1.75rem, 1.35rem + 1.9vw, 2.6rem); line-height: 1.12; }
h3, .vm-h3 { font-size: clamp(1.4rem, 1.2rem + 1vw, 1.9rem); }
h4, .vm-h4 { font-size: clamp(1.2rem, 1.1rem + 0.5vw, 1.45rem); }
h5, .vm-h5 { font-size: 1.15rem; }
h6, .vm-h6 { font-size: 1rem; letter-spacing: 0; }

/* Hero-/Display-Größe – bewusst etwas schlanker (600), nicht zu fett */
.vm-display {
  font-weight: 600;
  font-size: clamp(2.6rem, 1.6rem + 4.5vw, 4.4rem);
  line-height: 1.05;
  letter-spacing: -0.02em;
}

/* ---------------------------------------------------------------------
   Container – max. Inhaltsbreite 1440px, zentriert, mit Außenabstand
   --------------------------------------------------------------------- */
/* Seitenabstand kommt aus den Theme-Variablen (--page-padding-*), damit
   unsere Abschnitte exakt so atmen wie ONEOs eigene Elemente – auch wenn
   im Theme Assistant später etwas verstellt wird. Der clamp() dahinter ist
   nur der Notnagel, falls die Variablen fehlen. */
.vm-container {
  max-width: var(--vm-content-max);
  margin-inline: auto;
  padding-left: var(--page-padding-left, clamp(1.15rem, 4vw, 4rem));
  padding-right: var(--page-padding-right, clamp(1.15rem, 4vw, 4rem));
}

/* Helfer */
.vm-accent { color: var(--vm-accent, #004994); }
.vm-text-2 { color: var(--vm-text-2, #6b6b6a); }

/* Barrierearmut: keine Versalien, kein Kursiv – auch dann nicht, wenn das
   Theme oder ein Redakteur es setzt. Ausnahme bewusst keine. */
em, i, cite, address, blockquote { font-style: normal; }
.button, .vm-preheadline, h1, h2, h3, h4, h5, h6 { text-transform: none; }

::selection { background: var(--vm-accent, #004994); color: #fff; }
:focus-visible { outline: 3px solid var(--vm-accent, #004994); outline-offset: 3px; border-radius: 3px; }


/* =====================================================================
   LINKS: KEIN UNTERSTRICH BEIM ÜBERFAHREN
   ---------------------------------------------------------------------
   Projektregel: Rückmeldung auf Hover/Fokus IMMER über die Farbe, nie
   über eine Unterstreichung. Ein Unterstrich, der nur beim Überfahren
   erscheint, lässt Kacheln und Buttons flackern und bringt bei Elementen,
   die ohnehin als Fläche erkennbar sind, keinen Erkenntnisgewinn.

   Gegenspieler ist ONEO in main.css:

       a:hover, a:focus { text-decoration: underline; }      (0,1,1)

   `body a` davor ergibt 0,1,2 und gewinnt unabhängig von der
   Ladereihenfolge.

   NICHT betroffen sind Links, die DAUERHAFT unterstrichen sind – etwa im
   Fließtext des News-Readers (`.vm-reader-content a`) oder in den
   Formular-Erklärtexten. Deren Regeln haben zwei Klassen (0,2,1) und
   stechen diese hier. Das ist so gewollt: Ein Link mitten im Fließtext
   muss sich von normalem Text unterscheiden, und Farbe allein reicht
   dafür nicht (WCAG 1.4.1 „Ohne Farbe nutzbar"). Dort bleibt der
   Unterstrich also dauerhaft stehen, statt beim Überfahren zu erscheinen.
   ===================================================================== */

body a:hover,
body a:focus {
  text-decoration: none;
}

.bold {
  font-weight: 700 !important;
}

.black {
	color: #333 !important;
}

.fullwidth.content-image > figure,
.fullwidth.content-gallery figure,
.fullwidth .image_container {
	display: block;
}

.radius.content-image,
.radius.content-image figure, 
.radius.content-image figure img,
.radius figure {
	border-radius: 10px;
	overflow: hidden;
}

.white,
.white .vm-card-preheadline,
.white p,
.white h1,
.white h2,
.white h3,
.white h4,
.white h5,
.white h6 {
	color: #fff !important;
}

table td,
table th {
	vertical-align: top;
}

table th {
	background: var(--vm-surface);
}
/* Tabellen mobil: lange Wörter (z. B. Datenschutzhinweise) mit Trennstrich umbrechen statt über den Rand laufen */
@media (max-width: 767px) {
	table td,
	table th {
		-webkit-hyphens: auto;
		hyphens: auto;
		overflow-wrap: break-word;
	}
}

/* Notbremse: ist eine Tabelle trotzdem zu breit, scrollt sie innerhalb des Inhalts */
.content-table {
	max-width: 100%;
	overflow-x: auto;
}

/* =====================================================================
   be on solar – ICON-SET (kuratiert, Lucide-Stil) als CSS-Masken
   ---------------------------------------------------------------------
   Basis .vm-icon + je Icon eine Regel .vm-ico--NAME, die nur die Variable
   --vm-ico setzt. Das Icon nimmt die Textfarbe an (currentColor), weil es
   als Maske und nicht als Bild gerendert wird.

   Auswahl im Backend: Bildraster (s. backend_iconpicker.css); dort stehen
   die Icons alphabetisch – das sortiert vm_icons_options.php selbst.
   Hier in der CSS bleibt es bei den Sachgruppen: Die Reihenfolge ist ohne
   Wirkung und gruppiert gepflegt leichter zu überblicken.

   Neues Icon = 1 Zeile hier + 1 Zeile in vm_icons_options.php
   + 1 Zeile in backend_iconpicker.css.
   Strich-Icons funktionieren als Maske direkt (kein Ausformen nötig).
   ===================================================================== */

.vm-icon {
  /* Leeres SVG als Vorgabe: Steht für einen Icon-Namen keine Regel bereit
     (z. B. weil die Auswahl neuer ist als diese Datei), erscheint NICHTS –
     ohne diese Zeile bliebe die Maske leer und der Kasten würde vollflächig
     in der Textfarbe ausgemalt, also als Quadrat. */
  --vm-ico: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'/%3E");

  display: inline-block;
  width: 1em; height: 1em;
  flex: 0 0 auto;
  background-color: currentColor;
  -webkit-mask: var(--vm-ico) center / contain no-repeat;
          mask: var(--vm-ico) center / contain no-repeat;
}

/* --- Photovoltaik & Technik ---------------------------------------- */
.vm-ico--solar-panel { --vm-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 20h18'/%3E%3Cpath d='M5.6 5h12.8l2.3 12H3.3L5.6 5z'/%3E%3Cpath d='M4.4 11h15.2'/%3E%3Cpath d='M10.7 5 9.6 17'/%3E%3Cpath d='M13.3 5l1.1 12'/%3E%3C/svg%3E"); }
.vm-ico--solar-roof { --vm-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m3 10.5 9-7 9 7'/%3E%3Cpath d='M5 9.8V20a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V9.8'/%3E%3Crect x='9' y='12.5' width='6' height='4.6' rx='.4'/%3E%3Cpath d='M9 14.8h6'/%3E%3Cpath d='M12 12.5v4.6'/%3E%3C/svg%3E"); }
.vm-ico--battery { --vm-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='7' width='17' height='11' rx='2.5'/%3E%3Cpath d='M22 11v3'/%3E%3Cpath d='M11.5 9.6 8.8 13.3h2.6l-.4 2.6 3-3.9h-2.5l.4-2.4z'/%3E%3C/svg%3E"); }
.vm-ico--wallbox { --vm-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='11' height='15' rx='2'/%3E%3Cpath d='M6.5 7h4'/%3E%3Cpath d='M9.9 10.2 7.5 13.8h2.4l-.4 2.4 2.8-3.7H9.9l.4-1.9z'/%3E%3Cpath d='M17 8v6.6a2.2 2.2 0 0 0 4.4 0V11l-1.8-1.8'/%3E%3C/svg%3E"); }
.vm-ico--car-charging { --vm-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 16.4v-3l1.7-4.2A2 2 0 0 1 7.05 8h6.9a2 2 0 0 1 1.85 1.2l1.7 4.2v3'/%3E%3Cpath d='M3.5 16.4h14'/%3E%3Ccircle cx='6.6' cy='17.7' r='1.5'/%3E%3Ccircle cx='14.4' cy='17.7' r='1.5'/%3E%3Cpath d='m21.4 3.6-2.6 4h2.4l-2.4 4'/%3E%3C/svg%3E"); }
.vm-ico--inverter { --vm-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='16' rx='2'/%3E%3Cpath d='M6.5 9.5h11'/%3E%3Cpath d='M6.5 15c1.4-3.4 2.8-3.4 4.2 0s2.8 3.4 4.2 0'/%3E%3C/svg%3E"); }
.vm-ico--energy-manager { --vm-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 18a8 8 0 1 1 16 0'/%3E%3Cpath d='M12 18l4.6-5.4'/%3E%3Ccircle cx='12' cy='18' r='1.3'/%3E%3Cpath d='M4 18h1.6M18.4 18H20'/%3E%3C/svg%3E"); }
.vm-ico--meter { --vm-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='3' width='16' height='18' rx='2'/%3E%3Ccircle cx='12' cy='9' r='3'/%3E%3Cpath d='M12 9l1.9-1.4'/%3E%3Cpath d='M8 15h8M8 18h5'/%3E%3C/svg%3E"); }
.vm-ico--bolt { --vm-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13 2 3 14h9l-1 8 10-12h-9l1-8z'/%3E%3C/svg%3E"); }
.vm-ico--plug { --vm-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 2v6M15 2v6'/%3E%3Cpath d='M6 8h12v2.6a6 6 0 0 1-12 0V8z'/%3E%3Cpath d='M12 16.6V22'/%3E%3C/svg%3E"); }
.vm-ico--sun { --vm-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Cpath d='M12 2v2M12 20v2M4.9 4.9l1.4 1.4M17.7 17.7l1.4 1.4M2 12h2M20 12h2M4.9 19.1l1.4-1.4M17.7 6.3l1.4-1.4'/%3E%3C/svg%3E"); }
.vm-ico--wrench { --vm-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z'/%3E%3C/svg%3E"); }

/* --- Nutzen & Vertrauen -------------------------------------------- */
/* „Nachhaltigkeit" kommt als Kundenzeichnung und ist deshalb – anders als die
   übrigen Strich-Icons – eine ausgeformte Kontur (Fläche statt Linie). Damit
   sie zwischen den anderen nicht zu dünn wirkt, liegt auf derselben Kontur
   zusätzlich ein Rand: Die Vorlage bringt Strichstärke 11.67 mit, die 13.41
   dick sie auf die 2.0 des Sets auf. Wer die Zeichnung austauscht, muss
   stroke-width neu bestimmen – gemessen wird die Linienbreite, nicht geraten.
   Der viewBox-Rahmen ist so gelegt, dass die Tinte wie beim vorherigen Blatt
   von 1 bis 23 läuft. */
.vm-ico--leaf { --vm-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-19.25 -19.25 301.04 301.04' fill='black' stroke='black' stroke-width='13.41' stroke-linejoin='round' stroke-linecap='round'%3E%3Cpath d='M205.47 0c6.36 5.26 13.84 9.87 19.64 16.96 13.46 16.44 22.31 36.59 23.94 57.92l.95 6.12v5.54s-.83 3.47-.83 3.47c-2.51 39.63-27.19 61.58-64.73 70.59-3.22.77-6.17-.48-7.21-3.4s.86-6.1 4.17-6.75c26.76-5.31 47.91-20.18 54.97-47.14 4.56-17.42 2.61-35.14-3.73-51.94-5.16-13.65-12.19-25.83-23.88-35.76-3.7 22.52-18.96 39.35-39.75 47.47-9.31 3.64-18.45 7.2-25.63 14.28-19.46 19.19-11.86 52.11 10.15 71.29 6.21-19.39 13.76-37.46 24.49-54.43 2.22-.29 5.07-.28 6.7.1 1.41.33 2.92 4.22 2.16 5.46-27.72 45.52-37.32 98.55-26.29 150.2h-11.12s-3.02-22.53-3.02-22.53c-15.72-25.99-41.7-44.37-71.57-50.27-3.34-.66-5.75-2.71-5.51-5.62.26-3.08 3.41-5.35 6.59-4.74 16.45 3.14 30.97 9.11 45.49 18.95-.74-18.18-9.79-33.64-25.38-43.01-23.32-14.01-52.71-15.82-78.56-4.43 15.05 9.2 25.14 23.95 26.49 41.6l.85 11.09c.02 9.82 2.4 19.6 9.53 26.62 8.93 8.78 21.15 12.22 33.7 11.39 21.91-1.45 30.24-14.53 35.59-9.14 2.27 2.29 1.91 6.21-.8 7.94-23.88 15.27-55.36 16.94-75.94-2.74-16.86-16.13-10.76-38.3-14.94-52.16-3.47-11.51-11.35-22.06-22.48-26.23-3.81-1.43-6.74-2.58-9.47-4.94v-4.35c25.46-21.68 69.19-21.48 98.76-5.33 22.87 12.49 35.4 35.71 33.24 61.61l13.56 13.86c.15-16.22 1.59-31.69 5.3-47.48-29.1-22.75-41-61.88-15.16-90.37 19.66-17.75 44.42-14.45 58.21-41.87 7.85-15.6.2-24.07 7.31-27.85h4.24Z'/%3E%3C/svg%3E"); }

/* Zweite Fassung derselben Kundenzeichnung: nur ein Blatt, ruhiger und
   bei kleiner Darstellung besser lesbar. Gleicher Aufbau wie oben, aber
   eigene stroke-width – diese Vorlage bringt schon einen kräftigeren
   Strich mit (16.67 statt 11.67), also muss weniger aufgedickt werden. */
.vm-ico--leaf-single { --vm-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-16.23 -37.37 294.73 294.73' fill='black' stroke='black' stroke-width='7.89' stroke-linejoin='round' stroke-linecap='round'%3E%3Cpath d='M52.66 138.13c-17.23 14.8-31.88 31.39-45.86 50.07L.11 198.12l-.11 21.88c32.83-48.48 88.35-96.97 140.58-117.61 1.83-.72 3.61-6.67 2.46-8.4-1.33-1.99-4.21-4.72-6.71-6.49-25.36 9.49-48.43 23.27-71.27 39.87-5.98-43.22 14.37-88.67 50.48-92.43 13.32-1.38 25.64 3.19 38.19 7.82 28.02 10.37 57.86 5.36 80.82-17.26 3.4 22.66.15 43.49-6.26 64.25-7.89 25.54-21.02 47.97-40.5 63.85-30.15 24.58-64.3 21.7-95.98 2.39-3.91-2.4-8.55-.51-9.99 3.87-1.43 4.38.49 8.64 4.42 10.81 45.78 25.28 89.55 23.3 125.88-20.32l3.8-3.24 4.72-6.43 4.25-8.01c16.53-26.31 24.73-58.13 25.09-90.03.16-13.75-3.5-26.23-5.47-38.39h.05s-4.3-4.03-4.3-4.03c-10.44-2.38-9.9 14.74-31.17 25.37-37.38 18.7-59.69-8.7-94.78-6.81-50.52 8.47-71.8 65.23-61.67 119.35Z'/%3E%3C/svg%3E"); }
.vm-ico--euro { --vm-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18.4 6.4A7.6 7.6 0 1 0 18.4 17.6'/%3E%3Cpath d='M3.6 10.2h9M3.6 13.8h9'/%3E%3C/svg%3E"); }
.vm-ico--chart { --vm-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 3v16a2 2 0 0 0 2 2h16'/%3E%3Cpath d='m7 15 3.5-4 3 2.5L19 7'/%3E%3C/svg%3E"); }
.vm-ico--shield-check { --vm-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E"); }
.vm-ico--certificate { --vm-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.4 3H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h5'/%3E%3Cpath d='M14 3v5h5'/%3E%3Ccircle cx='17.4' cy='16' r='3.2'/%3E%3Cpath d='m15.5 18.6-.6 3 2.5-1.3 2.5 1.3-.6-3'/%3E%3C/svg%3E"); }
.vm-ico--lightbulb { --vm-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5'/%3E%3Cpath d='M9 18h6'/%3E%3Cpath d='M10 22h4'/%3E%3C/svg%3E"); }
.vm-ico--check { --vm-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E"); }

/* --- Ratgeber & Wissen ---------------------------------------------- */
.vm-ico--guide { --vm-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='m15.6 8.4-2.1 5.1-5.1 2.1 2.1-5.1z'/%3E%3C/svg%3E"); }
.vm-ico--knowledge { --vm-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 7v14'/%3E%3Cpath d='M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z'/%3E%3Cpath d='M16.8 7.4 14.1 11.1h2.6l-.4 2.6 3-3.9h-2.5l.4-2.4z'/%3E%3C/svg%3E"); }
.vm-ico--news { --vm-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17 8.5h3.5A1.5 1.5 0 0 1 22 10v6.5a2.5 2.5 0 0 1-5 0V6.5A1.5 1.5 0 0 0 15.5 5h-11A1.5 1.5 0 0 0 3 6.5v10A2.5 2.5 0 0 0 5.5 19H17'/%3E%3Crect x='6' y='8.5' width='5' height='4' rx='.4'/%3E%3Cpath d='M13.5 9.5h2M13.5 12.5h2M6 15.5h9'/%3E%3C/svg%3E"); }
.vm-ico--funding { --vm-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z'/%3E%3Cpath d='M15 8.5a4 4 0 1 0 0 7'/%3E%3Cpath d='M8.2 10.6h5M8.2 13.4h5'/%3E%3C/svg%3E"); }
.vm-ico--faq { --vm-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.5 11.5a8.5 8.5 0 0 1-12.2 7.6L3.5 20.5l1.55-4.1A8.5 8.5 0 1 1 20.5 11.5z'/%3E%3Cpath d='M9.6 9.4a2.4 2.4 0 0 1 4.7.8c0 1.6-2.3 2.4-2.3 2.4'/%3E%3Cpath d='M12 15.2h.01'/%3E%3C/svg%3E"); }

/* --- Zielgruppen & Orte -------------------------------------------- */
.vm-ico--home { --vm-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m3 9 9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z'/%3E%3Cpath d='M9 22V12h6v10'/%3E%3C/svg%3E"); }
.vm-ico--building { --vm-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 21h18'/%3E%3Crect x='3' y='8' width='7' height='13'/%3E%3Crect x='14' y='3' width='7' height='18'/%3E%3Cpath d='M6 12h1M6 16h1M17 7h1M17 11h1M17 15h1'/%3E%3C/svg%3E"); }
.vm-ico--map-pin { --vm-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0Z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E"); }
.vm-ico--users { --vm-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M22 21v-2a4 4 0 0 0-3-3.87'/%3E%3Cpath d='M16 3.13a4 4 0 0 1 0 7.75'/%3E%3C/svg%3E"); }
.vm-ico--user { --vm-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/svg%3E"); }

/* --- Unternehmen & Kontakt ------------------------------------------ */
.vm-ico--profile { --vm-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 3h12a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z'/%3E%3Ccircle cx='10' cy='9' r='2.3'/%3E%3Cpath d='M6.6 15.2a3.8 3.8 0 0 1 6.8 0'/%3E%3Cpath d='M15.5 8h2M15.5 11.5h2M7 18.4h10'/%3E%3C/svg%3E"); }
.vm-ico--team { --vm-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='7.2' r='3'/%3E%3Cpath d='M6.8 18.5a5.2 5.2 0 0 1 10.4 0'/%3E%3Ccircle cx='4.6' cy='10.6' r='2.2'/%3E%3Cpath d='M2 17.4a3.4 3.4 0 0 1 3.3-3.3'/%3E%3Ccircle cx='19.4' cy='10.6' r='2.2'/%3E%3Cpath d='M22 17.4a3.4 3.4 0 0 0-3.3-3.3'/%3E%3C/svg%3E"); }
.vm-ico--history { --vm-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 8.5V4'/%3E%3Cpath d='M3.5 8.5h4.5'/%3E%3Cpath d='M3.9 8.4A9 9 0 1 1 3 12'/%3E%3Cpath d='M12 7.5V12l3.2 2'/%3E%3C/svg%3E"); }
.vm-ico--partner { --vm-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m11 17 2 2a1 1 0 1 0 3-3'/%3E%3Cpath d='m14 14 2.5 2.5a1 1 0 1 0 3-3l-3.88-3.88a3 3 0 0 0-4.24 0l-.88.88a1 1 0 1 1-3-3l2.81-2.81a5.79 5.79 0 0 1 7.06-.87l.47.28a2 2 0 0 0 1.42.25L21 4'/%3E%3Cpath d='m21 3 1 11h-2'/%3E%3Cpath d='M3 3 2 14l6.5 6.5a1 1 0 1 0 3-3'/%3E%3Cpath d='M3 4h8'/%3E%3C/svg%3E"); }
.vm-ico--contact { --vm-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.4 13v-1a7.6 7.6 0 0 1 15.2 0v1'/%3E%3Crect x='2.4' y='13' width='4.6' height='5' rx='1.4'/%3E%3Crect x='17' y='13' width='4.6' height='5' rx='1.4'/%3E%3Cpath d='M19.3 18v.6a2.4 2.4 0 0 1-2.4 2.4H13'/%3E%3C/svg%3E"); }

/* --- Kontakt & Hinweise -------------------------------------------- */
.vm-ico--phone { --vm-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E"); }
.vm-ico--mail { --vm-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='20' height='16' x='2' y='4' rx='2'/%3E%3Cpath d='m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7'/%3E%3C/svg%3E"); }
.vm-ico--smartphone { --vm-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='6' y='2' width='12' height='20' rx='2.5'/%3E%3Cpath d='M10.5 5.4h3'/%3E%3Cpath d='M12 18.3h.01'/%3E%3C/svg%3E"); }
.vm-ico--message { --vm-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z'/%3E%3C/svg%3E"); }
.vm-ico--calendar { --vm-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='18' height='18' x='3' y='4' rx='2'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18'/%3E%3Cpath d='m9 16 2 2 4-4'/%3E%3C/svg%3E"); }
.vm-ico--clock { --vm-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpolyline points='12 6 12 12 16 14'/%3E%3C/svg%3E"); }
.vm-ico--info { --vm-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 16v-4M12 8h.01'/%3E%3C/svg%3E"); }
.vm-ico--alert { --vm-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z'/%3E%3Cpath d='M12 9v4M12 17h.01'/%3E%3C/svg%3E"); }


/* --- Ziffern -------------------------------------------------------
   Für nummerierte Abläufe („Schritt 1 … 4"). Als Strichpfade auf
   demselben 24er-Raster wie die übrigen Icons, damit Gewicht und
   Größe zusammenpassen. Die Fläche darum (Kreis, Kachel) kommt vom
   Bauteil, nicht vom Icon – so lässt sich dieselbe Ziffer als
   Kachel-Icon, als Badge oder frei im Text verwenden. */
.vm-ico--num-1 { --vm-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M8.63 7.54Q9.91 7.03 11.2 6.23Q12.5 5.44 13.49 4.35H15.37V19.67H12.7V7.93Q12.1 8.4 11.19 8.84Q10.29 9.28 9.45 9.57Z'/%3E%3C/svg%3E"); }
.vm-ico--num-2 { --vm-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M16.57 8.33Q16.57 9.13 16.24 9.89Q15.91 10.65 15.39 11.37Q14.87 12.09 14.21 12.76Q13.55 13.44 12.88 14.08Q12.53 14.41 12.09 14.87Q11.65 15.34 11.25 15.8Q10.85 16.27 10.56 16.7Q10.28 17.13 10.25 17.41H17.06V19.67H7.31Q7.29 19.49 7.29 19.24Q7.29 18.98 7.29 18.85Q7.29 17.79 7.64 16.9Q7.98 16 8.53 15.23Q9.08 14.45 9.77 13.77Q10.45 13.08 11.14 12.42Q11.67 11.91 12.15 11.43Q12.64 10.94 13.01 10.46Q13.37 9.99 13.59 9.49Q13.81 8.99 13.81 8.46Q13.81 7.31 13.15 6.83Q12.49 6.34 11.54 6.34Q10.92 6.34 10.39 6.52Q9.86 6.7 9.45 6.94Q9.04 7.18 8.73 7.44Q8.42 7.69 8.27 7.85L6.94 5.97Q7.87 5.08 9.12 4.54Q10.36 4 11.8 4Q14.25 4 15.41 5.16Q16.57 6.32 16.57 8.33Z'/%3E%3C/svg%3E"); }
.vm-ico--num-3 { --vm-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M11.1 20Q10.51 20 9.88 19.92Q9.25 19.85 8.69 19.72Q8.12 19.6 7.66 19.46Q7.19 19.31 6.95 19.18L7.48 16.91Q7.94 17.13 8.83 17.4Q9.71 17.68 11.02 17.68Q12.76 17.68 13.54 17.01Q14.31 16.33 14.31 15.2Q14.31 14.48 14.01 13.99Q13.71 13.5 13.19 13.2Q12.67 12.91 12 12.78Q11.33 12.66 10.57 12.66H9.67V10.5H10.77Q11.28 10.5 11.8 10.4Q12.32 10.3 12.74 10.04Q13.16 9.79 13.43 9.37Q13.69 8.95 13.69 8.29Q13.69 7.76 13.49 7.38Q13.29 7.01 12.97 6.76Q12.65 6.52 12.23 6.41Q11.81 6.3 11.35 6.3Q10.35 6.3 9.58 6.6Q8.81 6.9 8.21 7.27L7.24 5.28Q7.55 5.08 7.99 4.86Q8.43 4.64 8.97 4.44Q9.51 4.24 10.13 4.12Q10.75 4 11.44 4Q12.72 4 13.65 4.31Q14.57 4.62 15.18 5.18Q15.79 5.75 16.09 6.51Q16.39 7.27 16.39 8.18Q16.39 9.24 15.8 10.08Q15.22 10.92 14.29 11.36Q15.48 11.78 16.27 12.75Q17.05 13.72 17.05 15.25Q17.05 16.27 16.7 17.14Q16.34 18.01 15.61 18.64Q14.88 19.27 13.77 19.64Q12.65 20 11.1 20Z'/%3E%3C/svg%3E"); }
.vm-ico--num-4 { --vm-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M13.19 7.65Q12.66 8.29 12.1 9.02Q11.54 9.75 11.01 10.54Q10.48 11.34 9.99 12.17Q9.5 12.99 9.1 13.81H13.19ZM15.8 4.35V13.81H17.52V16H15.8V19.67H13.19V16H6.48V14.1Q6.92 13.13 7.66 11.87Q8.4 10.61 9.3 9.28Q10.21 7.96 11.23 6.67Q12.24 5.39 13.26 4.35Z'/%3E%3C/svg%3E"); }
.vm-ico--num-5 { --vm-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M14.24 15.29Q14.24 14.56 13.96 13.99Q13.67 13.41 12.95 13.02Q12.23 12.62 11.03 12.42Q9.82 12.22 7.99 12.22Q8.23 10.1 8.36 8.19Q8.5 6.28 8.59 4.35H16.41V6.61H10.86Q10.84 6.98 10.81 7.46Q10.77 7.93 10.74 8.42Q10.71 8.91 10.66 9.35Q10.62 9.79 10.57 10.1Q13.85 10.28 15.4 11.59Q16.96 12.91 16.96 15.18Q16.96 16.22 16.61 17.1Q16.25 17.99 15.52 18.63Q14.8 19.27 13.69 19.64Q12.59 20 11.1 20Q10.51 20 9.89 19.91Q9.27 19.82 8.71 19.7Q8.14 19.58 7.7 19.45Q7.26 19.31 7.04 19.2L7.55 16.95Q8.01 17.17 8.88 17.43Q9.76 17.68 11.02 17.68Q11.88 17.68 12.5 17.49Q13.12 17.3 13.5 16.97Q13.89 16.64 14.07 16.21Q14.24 15.78 14.24 15.29Z'/%3E%3C/svg%3E"); }
.vm-ico--num-6 { --vm-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M11.86 12.22Q11.22 12.22 10.62 12.33Q10.02 12.44 9.54 12.66Q9.51 12.84 9.5 13.05Q9.49 13.26 9.49 13.46Q9.49 14.34 9.61 15.13Q9.73 15.91 10.03 16.5Q10.33 17.08 10.85 17.43Q11.37 17.77 12.14 17.77Q12.78 17.77 13.24 17.5Q13.69 17.24 13.98 16.82Q14.27 16.4 14.4 15.9Q14.53 15.4 14.53 14.94Q14.53 13.61 13.89 12.92Q13.25 12.22 11.86 12.22ZM12.19 10.1Q13.56 10.1 14.52 10.49Q15.48 10.87 16.08 11.54Q16.67 12.2 16.95 13.07Q17.23 13.94 17.23 14.9Q17.23 15.76 16.93 16.66Q16.63 17.57 16 18.31Q15.37 19.05 14.42 19.52Q13.47 20 12.17 20Q9.54 20 8.15 18.27Q6.77 16.53 6.77 13.48Q6.77 11.27 7.43 9.56Q8.08 7.85 9.28 6.67Q10.49 5.5 12.2 4.9Q13.91 4.29 16.06 4.27L16.21 6.48Q15.02 6.5 13.98 6.73Q12.94 6.96 12.12 7.45Q11.3 7.93 10.72 8.71Q10.13 9.48 9.82 10.61Q10.91 10.1 12.19 10.1Z'/%3E%3C/svg%3E"); }
.vm-ico--num-7 { --vm-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M9.12 19.67Q9.25 17.99 9.71 16.13Q10.18 14.28 10.85 12.52Q11.52 10.76 12.33 9.23Q13.14 7.69 13.93 6.65H6.88V4.35H17.12V6.39Q16.39 7.2 15.52 8.62Q14.66 10.03 13.89 11.81Q13.12 13.59 12.55 15.62Q11.99 17.66 11.86 19.67Z'/%3E%3C/svg%3E"); }
.vm-ico--num-8 { --vm-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M17.22 15.56Q17.22 16.51 16.88 17.33Q16.55 18.14 15.89 18.74Q15.23 19.34 14.24 19.67Q13.26 20 11.98 20Q10.48 20 9.48 19.58Q8.49 19.16 7.89 18.52Q7.29 17.88 7.04 17.14Q6.78 16.4 6.78 15.73Q6.78 15.07 6.97 14.51Q7.16 13.94 7.49 13.47Q7.82 12.99 8.24 12.6Q8.66 12.2 9.13 11.89Q8.11 11.18 7.61 10.35Q7.12 9.52 7.12 8.33Q7.12 7.47 7.46 6.69Q7.8 5.9 8.44 5.3Q9.08 4.71 9.99 4.35Q10.9 4 12 4Q13.3 4 14.22 4.38Q15.14 4.75 15.72 5.35Q16.31 5.94 16.57 6.67Q16.84 7.4 16.84 8.09Q16.84 9.3 16.18 10.24Q15.51 11.18 14.65 11.73Q15.96 12.44 16.59 13.37Q17.22 14.3 17.22 15.56ZM9.41 15.69Q9.41 16.02 9.55 16.4Q9.68 16.77 9.99 17.08Q10.3 17.39 10.78 17.6Q11.27 17.81 12 17.81Q12.66 17.81 13.15 17.64Q13.64 17.46 13.94 17.16Q14.25 16.86 14.41 16.48Q14.56 16.09 14.56 15.69Q14.56 15.07 14.32 14.61Q14.08 14.14 13.62 13.8Q13.17 13.46 12.55 13.2Q11.93 12.95 11.18 12.75Q10.39 13.26 9.9 13.98Q9.41 14.7 9.41 15.69ZM14.23 8.13Q14.23 7.85 14.11 7.5Q13.99 7.16 13.71 6.87Q13.44 6.59 13.02 6.39Q12.6 6.19 12 6.19Q11.4 6.19 10.97 6.38Q10.54 6.56 10.28 6.86Q10.01 7.16 9.88 7.5Q9.75 7.85 9.75 8.18Q9.75 9.02 10.38 9.77Q11.01 10.52 12.49 10.96Q13.3 10.45 13.77 9.8Q14.23 9.15 14.23 8.13Z'/%3E%3C/svg%3E"); }
.vm-ico--num-9 { --vm-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12.15 11.73Q12.8 11.73 13.41 11.61Q14.03 11.49 14.48 11.25Q14.5 11.01 14.5 10.83Q14.5 10.65 14.5 10.52Q14.5 9.64 14.38 8.85Q14.25 8.07 13.96 7.48Q13.66 6.9 13.14 6.55Q12.62 6.21 11.85 6.21Q11.2 6.21 10.75 6.48Q10.3 6.74 10.01 7.16Q9.72 7.58 9.59 8.07Q9.46 8.55 9.46 9.02Q9.46 10.36 10.11 11.05Q10.76 11.73 12.15 11.73ZM14.25 13.35Q13.72 13.59 13.08 13.72Q12.44 13.86 11.85 13.86Q10.48 13.86 9.51 13.49Q8.55 13.13 7.94 12.48Q7.34 11.82 7.05 10.96Q6.76 10.1 6.76 9.1Q6.76 8.24 7.05 7.35Q7.34 6.45 7.96 5.7Q8.57 4.95 9.52 4.48Q10.48 4 11.78 4Q14.48 4 15.86 5.73Q17.24 7.47 17.24 10.63Q17.24 15.09 14.94 17.39Q12.64 19.69 7.89 19.71L7.78 17.48Q9.1 17.48 10.18 17.26Q11.25 17.04 12.06 16.55Q12.86 16.07 13.41 15.28Q13.97 14.5 14.25 13.35Z'/%3E%3C/svg%3E"); }

/* --- Medien & Navigation ------------------------------------------- */
.vm-ico--file { --vm-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5z'/%3E%3Cpath d='M14 2v6h6'/%3E%3C/svg%3E"); }
.vm-ico--download { --vm-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/%3E%3Cpath d='M7 10l5 5 5-5'/%3E%3Cpath d='M12 15V3'/%3E%3C/svg%3E"); }
.vm-ico--image { --vm-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='18' height='18' x='3' y='3' rx='2'/%3E%3Ccircle cx='9' cy='9' r='2'/%3E%3Cpath d='m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21'/%3E%3C/svg%3E"); }
.vm-ico--external-link { --vm-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 3h6v6'/%3E%3Cpath d='M10 14 21 3'/%3E%3Cpath d='M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6'/%3E%3C/svg%3E"); }
.vm-ico--search { --vm-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E"); }
.vm-ico--arrow-right { --vm-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m12 5 7 7-7 7'/%3E%3C/svg%3E"); }
.vm-ico--plus { --vm-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M12 5v14'/%3E%3C/svg%3E"); }

/* --- Marke ----------------------------------------------------------
   Die Bildmarke aus dem Logo, als Fläche (nicht als Strich) – so ist sie
   gezeichnet und so bleibt sie wiedererkennbar. Sie nimmt wie jedes Icon
   die Textfarbe an; auf dunklem Grund also weiß, sonst Blau.
   Der viewBox-Rahmen ist rundum um 1/12 größer als die Marke: Damit steht
   sie genauso hoch wie die Strich-Icons (die von 2 bis 22 im 24er-Raster
   laufen) und wirkt daneben nicht überlebensgroß. */
.vm-ico--logo { --vm-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-10.18 -10.18 122.18 122.16' fill='black'%3E%3Cpath d='M15.04 45.06c.43-.73 .91-1.44 1.47-2.06 3.85-4.33 5.85-9.54 7.17-15.07 .55-2.32-.1-4.45-1.4-6.37-.81-1.19-1.81-2.25-2.73-3.37-.46-.56-.98-1.08-1.34-1.7-.48-.84-.12-2.21 .56-2.61 .7-.41 2.3 .02 2.7 .86 .33 .69 .49 1.47 .62 2.24 .24 1.51 .84 2.79 2.2 3.57 .5 .29 1.11 .51 1.69 .55 1.3 .09 2.15-.61 2.12-1.92-.06-2.3-.3-4.57-2.15-6.32-1.19-1.12-1.25-2.24-.33-3.17 .77-.77 1.76-.82 2.31 .11 .44 .73 .73 1.68 .73 2.52 0 1.86 .69 3.42 1.69 4.89 .29 .42 .75 .71 1.39 1.3 .3-.89 .65-1.47 .67-2.07 .05-2.22 .06-4.46-.07-6.68-.06-.99-.17-1.92 .45-2.77 .73-1 1.87-1.34 2.86-.86 .89 .43 1.39 1.56 1.05 2.63-.21 .68-.57 1.33-.93 1.96-1.17 2.06-1.71 4.26-1.47 6.62 .06 .59 .19 1.2 .44 1.75 .61 1.37 1.68 1.81 2.93 .99 2.32-1.53 4.6-3.16 5.37-6.1 .12-.46 .34-.91 .6-1.31 .59-.95 1.48-1.34 2.46-1.13 1.05 .23 1.69 .91 1.95 1.93 .25 .95-.17 1.83-1.09 2.47-.15 .11-.3 .22-.47 .28-3.48 1.26-5.38 4.18-7.29 7.05-.48 .72-.77 1.66-.88 2.54-.31 2.26 1.52 3.99 3.78 3.7 .53-.07 1.08-.21 1.61-.17 1.37 .11 2.29 1.37 2.06 2.67-.26 1.41-1.64 2.28-3 1.79-.55-.19-1.03-.61-1.49-.98-2.05-1.65-3.87-1.87-6.2-.58-1.29 .71-2.61 1.24-4.08 1.44-1.05 .15-1.99 .61-2.61 1.48-1.09 1.51-2.19 3.04-3.14 4.64-.41 .7-.59 1.59-.69 2.42-.26 2.12 .69 3.67 2.72 4.36 .9 .31 1.89 .48 2.84 .49 3.78 .04 7.44-.69 10.99-1.97 2.13-.77 3.27-2.39 4.16-4.29 .28-.6 .5-1.23 .69-1.87 .69-2.36 1.87-4.37 3.38-6.15V0H8.88C3.98 0 0 3.98 0 8.88V49.32H14.72c-.48-1.37-.39-3.06 .32-4.26'/%3E%3Cpath d='M53.37 28.67c1.72-2.7 4.7-4.05 7.77-3.35 2.1 .48 4.17 .43 6.3 .15 3.79-.5 7.48-.26 10.86 1.85 1.37 .86 2.15 1.97 2.36 3.62 .31 2.54-.11 4.95-.92 7.31-.52 1.54-1.29 2.99-1.89 4.51-.33 .83-.66 1.7-.78 2.58-.21 1.56-.69 2.89-1.49 3.98h26.24V8.88c0-4.9-3.98-8.88-8.88-8.88H52.48V29.73c.34-.31 .65-.67 .9-1.06'/%3E%3Cpath d='M18.42 60.18c.98-.8 1.87-1.72 2.7-2.67 .59-.67 1.06-1.47 .89-2.64-1.87-.34-3.32-1.27-4.63-2.39H0v36.6c1.33-4.86 3.35-9.58 5.97-14.19 3.25-5.71 7.38-10.57 12.44-14.71'/%3E%3Cpath d='M47.85 62.64c-1.42 3.02-2.08 6.18-2.13 9.48-.07 3.73 1.37 6.9 3.56 9.86 .02 .03 .05 .06 .08 .09v-21.96c-.56 .74-1.06 1.59-1.5 2.52'/%3E%3Cpath d='M92.94 101.8c4.91 0 8.88-3.97 8.88-8.88V52.49h-31c-.11 .08-.22 .17-.33 .26-1.31 1.03-2.83 1.58-4.4 2.07-3.37 1.04-6.85 1.55-10.33 1.84-1.25 .1-2.33 .39-3.28 .85v26.27c1.97 .25 4.15-.53 5.38-2.34 .78-1.15 1.33-2.37 1.11-3.9-.13-.9 .08-1.97 .47-2.8 .81-1.72 .74-3.38 .2-5.11-.23-.75-.47-1.51-.57-2.28-.08-.58-.04-1.21 .1-1.79 .22-.86 .88-1.28 1.76-1.28 .77 0 1.37 .61 1.48 1.56 .06 .53-.08 1.08-.08 1.62-.01 1.2-.09 2.42 .04 3.6 .07 .62 .4 1.28 .81 1.76 .95 1.14 1.62 1.14 2.67 .07 2.02-2.08 3.02-4.62 3.22-7.5 .04-.65 .08-1.34 .34-1.92 .37-.84 1.37-1.15 2.15-.82 .72 .3 1.16 1.1 .86 1.96-.26 .72-.71 1.39-1.19 2-1.35 1.72-2.23 3.58-1.99 5.84 .15 1.47 .51 1.77 1.99 1.35 2.34-.67 4.17-2.11 5.76-3.92 .58-.66 1.29-1.27 2.06-1.66 1.01-.52 2.3 .1 2.71 1.1 .44 1.08-.04 2.2-1.21 2.64-.56 .21-1.17 .28-1.76 .39-2.14 .39-4.01 1.34-5.66 2.72-.53 .44-.89 1.07-1.43 1.75 1.76 1.33 3.55 1.59 5.45 1.47 .78-.05 1.57-.16 2.34-.08 1.07 .11 1.76 .94 1.65 1.8-.11 .93-.89 1.46-2.03 1.27-.65-.1-1.26-.43-1.9-.57-1.35-.32-2.7-.66-4.07-.82-.68-.08-1.46 .11-2.11 .38-1.43 .57-1.67 1.69-.68 2.86 .92 1.1 2.13 1.75 3.51 2.14 .69 .19 1.4 .44 1.99 .83 .9 .58 1.04 1.53 .49 2.36-.51 .77-1.52 .91-2.38 .28-.34-.25-.6-.59-.88-.91-1.79-2.07-4.07-2.75-6.78-2.76-4.26-.02-7.66 1.96-11 4.19-.96 .64-1.86 1.37-2.8 2.03v10.53'/%3E%3Cpath d='M49.35 101.8v-8.89c-2.7 .84-4.96-.19-7.03-3.53-1.14-1.83-1.88-3.91-2.72-5.91-.69-1.66-1.38-1.91-2.54-.55-4.55 5.34-7.95 11.27-8.8 18.37-.02 .17-.03 .34-.05 .5'/%3E%3C/svg%3E"); }

/* =====================================================================
   „Absatz mit Icon" (RSCE rsce_vm_icon_text_blocks) – Icon links, Text daneben
   ---------------------------------------------------------------------
   Icon als CSS-Maske im Akzent; Text fließt rechts daneben, umbruchfähig.
   Icon-Größe über --vm-icon-text-size justierbar. Ohne Icon = reiner Absatz.
   ===================================================================== */
.vm-icon-text {
  display: flow-root;                /* enthält den gefloateten Icon-Span */
  --vm-icon-text-size: 1.9em;
}
.vm-icon-text.vm-icon-text--noicon { display: block; }

/* Icon oben-links, bündig mit dem Text/der Headline darüber (KEIN linker
   Abstand). Text läuft rechts daneben und darunter weiter. .vm-icon erbt
   Maske + currentColor; hier nur Float, Größe, Farbe, Abstände. */
.vm-icon-text .vm-icon-text-icon {
  float: left;
  width: var(--vm-icon-text-size);
  height: var(--vm-icon-text-size);
  margin: 0 0.7rem 0 0;              /* rechts Textabstand · sonst kein Abstand */
  color: var(--vm-primary, #004994); /* Icon im Akzent (Maske nimmt die Farbe an) */
  font-size: 0.875em;                /* Icon etwas kleiner als der Text */
}

/* ONEO gibt .icon-text-block ein linkes Padding (für den alten Font-Icon-
   ::before) – hier weg, damit Icon + Text bündig links sitzen. */
.vm-icon-text.icon-text-block {
  padding-left: 0;
}

/* --- Farbauswahl fürs Icon ------------------------------------------
   Feste Projektfarben als Klassen (Select im Backend, kein Farbwähler).
   Ändert sich eine Markenfarbe, ändert sie sich über die Tokens überall
   mit – ein eingetragener Hex-Wert täte das nicht. */
.vm-icon-text.-icon-akzent .vm-icon-text-icon { color: var(--vm-cta, #fbba00); }
.vm-icon-text.-icon-dunkel .vm-icon-text-icon { color: var(--vm-text, #333333); }
.vm-icon-text.-icon-hell   .vm-icon-text-icon { color: var(--vm-white, #ffffff); }

/* --- VM Iconliste: mehrere Absätze nebeneinander --------------------
   Markup aus rsce_vm_icon_list.html5. Nutzt die zentrale .vm-grid-Engine
   aus custom_vm_icon_boxes.css, damit Spaltenzahl und Breakpoints sich
   genauso verhalten wie bei den Boxen.

   WICHTIG: Im Raster wird aus „Icon links, Text fließt drumherum" eine
   echte Flexzeile. Grund ist derselbe wie im Fuß: Das Icon ist im
   Grundelement GEFLOATET. In einer schmalen Spalte beginnt die zweite
   Zeile dadurch unter dem Icon, und beim nächsten Eintrag rutscht das
   Icon in eine eigene Zeile über den Text. Als Flexzeile bleibt es oben
   neben dem Text, Folgezeilen sind sauber eingerückt. */
.vm-iconliste .vm-icon-text {
  display: flex;
  align-items: flex-start;
  gap: 0.7rem;
}

.vm-iconliste .vm-icon-text .vm-icon-text-icon {
  float: none;               /* der Float aus dem Grundelement muss weg */
  margin: 0;                 /* der Abstand kommt jetzt aus gap */
  flex: 0 0 auto;
}

.vm-iconliste .vm-icon-text-body {
  min-width: 0;              /* lange Wörter dürfen umbrechen */
}

/* Engerer Zeilenabstand – NICHT als Vorgabe, sondern über die Checkbox
   „Zeilenabstand verringern" (Klasse -tight-rows). Grund: Bei kurzen
   Einträgen („Montage durch unser Team") reißt der volle --vm-gap (1.6rem)
   der Raster-Engine die Liste auseinander; bei mehrzeiligen Absätzen ist er
   dagegen richtig – dort wäre der enge Abstand kleiner als der Zeilenfall
   INNERHALB eines Eintrags, und die Einträge verschmelzen.

   Die Referenz-Eckdaten bringen ihn immer mit: Wert und Bezeichnung sind
   dort immer kurz, eine zweite Checkbox wäre nur eine Stolperstelle.
   Es geht ausdrücklich nur um die ZEILEN – die Spalten behalten --vm-gap,
   sonst kleben mehrspaltige Listen zusammen. */
.vm-iconliste.vm-grid.-tight-rows,
.vm-iconliste.ref-facts {
  /* Zwei Klassen im Selektor: .vm-grid setzt gap ebenfalls mit EINER Klasse –
     bei gleicher Spezifität entschiede sonst die Ladereihenfolge der Dateien. */
  --vm-iconliste-row-gap: 0.75rem;   /* hier justieren, wenn es enger/weiter soll */
  row-gap: var(--vm-iconliste-row-gap);
}

/* Ohne Icon soll der Absatz in der Spalte trotzdem oben bündig stehen. */
.vm-iconliste .vm-icon-text--noicon {
  display: block;
}

/* Ränder der ersten/letzten Textzeile kappen, damit Icon + Text oben bündig sitzen */
.vm-icon-text .vm-icon-text-body > :first-child { margin-top: 0; }
.vm-icon-text .vm-icon-text-body > :last-child { margin-bottom: 0; }

/* =====================================================================
   .ref-facts – Eckdaten einer Referenz
   ---------------------------------------------------------------------
   Anlagengröße · Module · Inbetriebnahme · Standort, als Zeile unter dem
   Beitragstext. Kein eigenes Element: Inhaltlich ist das eine Iconliste
   (Icon + zwei Zeilen), nur die Optik ist anders – Wert groß in Marken-
   blau, darunter die Bezeichnung im Fließtextgrau.

   Aktiviert wird sie über die Checkbox „Darstellung: Referenz-Eckdaten"
   im Element ODER durch Eintrag von „ref-facts" ins Feld CSS-Klasse.
   Beides landet an derselben Stelle im Markup.

   ERFASSUNG – zwei Wege, beide werden hier abgefangen:
   a) ZWEI Absätze (empfohlen, entsteht mit Enter):
        <p>98,7 kWp</p><p>Anlagengröße</p>
   b) EIN Absatz mit Umbruch (Shift+Enter), Wert fett ausgezeichnet:
        <p><strong>98,7 kWp</strong><br>Anlagengröße</p>
   Fall b) braucht das <strong>, weil sich Text hinter einem <br> nicht
   ansprechen lässt – ohne Auszeichnung bliebe die Zeile Fließtext.
   ===================================================================== */

.vm-iconliste.ref-facts {
  /* Nur der SPALTEN-Abstand; den Zeilenabstand holt sich .ref-facts weiter
     oben aus --vm-iconliste-row-gap (greift, sobald die Eckdaten umbrechen). */
  column-gap: 1.4rem;
  margin: 2em 0;
}

.vm-iconliste.ref-facts .vm-icon-text {
  align-items: flex-start;
  gap: 0.6rem;
  line-height: 1.35;              /* der lockere Reader-Zeilenfall wäre hier zu luftig */
}

/* Icon in rem statt em: Es steht neben einer Zahl fester Größe und soll
   nicht mitwachsen, wenn das Element in einem größeren Textkontext (z. B.
   .vm-reader-content mit 1.075rem) steht. Höhe ≈ Höhe der Wertzeile. */
.vm-iconliste.ref-facts .vm-icon-text .vm-icon-text-icon {
  width: 1.9rem;
  height: 1.9rem;
  font-size: 1rem;
  margin-top: -0.15rem;  /* das größere Icon optisch auf die Wertzeile ziehen */
}

/* --- a) zwei Absätze: erster = Wert, Rest = Bezeichnung ------------- */
.vm-iconliste.ref-facts .vm-icon-text-body > :first-child:not(:only-child) {
  margin: 0;
  color: var(--vm-primary, #004994);
  font-weight: 700;
  font-size: 1.25rem;   /* 20px – Wert soll die Zeile tragen */
  line-height: 1.25;
}

.vm-iconliste.ref-facts .vm-icon-text-body > :first-child:not(:only-child) ~ * {
  margin: 0.35rem 0 0;
  color: var(--vm-text, #333333);
  font-weight: 400;
  font-size: 1rem;
}

/* --- b) ein Absatz mit <br>: das <strong> ist der Wert -------------- */
.vm-iconliste.ref-facts .vm-icon-text-body > :only-child {
  margin: 0;
  color: var(--vm-text, #333333);
  font-size: 1rem;
}

.vm-iconliste.ref-facts .vm-icon-text-body > :only-child strong {
  display: block;                 /* der Umbruch dahinter bleibt, das <br> stört nicht */
  margin-bottom: 0.35rem;
  color: var(--vm-primary, #004994);
  font-weight: 700;
  font-size: 1.25rem;   /* 20px – Wert soll die Zeile tragen */
  line-height: 1.25;
}

/* Der Umbruch direkt hinter dem Wert wäre nach display:block eine leere
   Zeile – er hat seine Aufgabe schon erledigt. */
.vm-iconliste.ref-facts .vm-icon-text-body > :only-child strong + br { display: none; }

/* Enge Spalten (Tablet/Mobil): Zahl und Bezeichnung dürfen kleiner werden,
   damit „Inbetriebnahme" neben dem Icon nicht mitten im Wort umbricht. */
@media (max-width: 700px) {
  .vm-iconliste.ref-facts { column-gap: 1.2rem; }
  .vm-iconliste.ref-facts .vm-icon-text .vm-icon-text-icon { width: 1.7rem; height: 1.7rem; }
  .vm-iconliste.ref-facts .vm-icon-text-body > :first-child:not(:only-child),
  .vm-iconliste.ref-facts .vm-icon-text-body > :only-child strong { font-size: 1.15rem; }
  .vm-iconliste.ref-facts .vm-icon-text-body > :first-child:not(:only-child) ~ *,
  .vm-iconliste.ref-facts .vm-icon-text-body > :only-child { font-size: 0.95rem; }
}

/* ==========================================================
   VM Component Library  ·  be on solar
   Component: VM Teaserbox
   Version: 2.0.0
   Baut auf .vm-card auf (Rahmen, Radius, Schatten, Hover,
   Kartenfarben, invertierter Text) und ergänzt das Layout
   „Bild oben, Inhalt darunter".
   Farben werden komplett über die :root-Variablen aus
   custom_vm_icon_boxes.css bezogen (Primär = Rot-Orange #004994).
   ========================================================== */

/* Karte als vertikale Spalte: Bild oben, Body füllt den Rest.
   .vm-card liefert Höhe (height:100%), Rahmen, Radius, Schatten,
   Hover und die ::before-Akzentleiste. */
.vm-teaserbox .vm-teaser {
  display: flex;
  flex-direction: column;
}

/* --- Bild: randlos oben --- */
.vm-teaser-image {
  display: block;
  position: relative;
  margin: 0;
  line-height: 0;
  overflow: hidden;
  background: rgba(0, 0, 0, 0.04);
}
.vm-teaser-image figure { margin: 0; height: 100%; }

/* Original (kein Format gewählt): natürliches Seitenverhältnis */
.vm-teaser-image img,
.vm-teaser-image picture {
  display: block;
  width: 100%;
  height: auto;
}

/* Mit Bildformat: festes Seitenverhältnis + formatfüllender Beschnitt */
.vm-teaserbox.-ratio-1-1  .vm-teaser-image { aspect-ratio: 1 / 1; }
.vm-teaserbox.-ratio-4-3  .vm-teaser-image { aspect-ratio: 4 / 3; }
.vm-teaserbox.-ratio-3-2  .vm-teaser-image { aspect-ratio: 3 / 2; }
.vm-teaserbox.-ratio-16-9 .vm-teaser-image { aspect-ratio: 16 / 9; }
.vm-teaserbox.-ratio-3-4  .vm-teaser-image { aspect-ratio: 3 / 4; }

.vm-teaserbox[class*="-ratio-"] .vm-teaser-image img,
.vm-teaserbox[class*="-ratio-"] .vm-teaser-image picture {
  height: 100%;
  object-fit: cover;
}

/* sanfter Zoom, wenn das Bild verlinkt ist und man die Karte hovert */
.vm-teaser a.vm-teaser-image img { transition: transform 0.45s ease; }
.vm-teaser:hover a.vm-teaser-image img { transform: scale(1.04); }

/* --- Bildunterschrift (z. B. KI-Kennzeichnung) ---------------------
   Bild + Caption stecken in <figure class="vm-teaser-figure">; die
   figcaption liegt als Overlay-Badge unten links AUF dem Bild.
   Weil sie position:absolute ist, ist die Bildhöhe egal -> funktioniert
   auch im Featured-Aufmacher (Bild auf 100 % Höhe). Wird auch von den
   News-Kacheln genutzt (gleiches Markup). */
.vm-teaser-figure {
  margin: 0;
  position: relative;   /* Positionierungskontext der Caption */
}
.vm-teaser-caption {
  position: absolute;
  right: 0.6rem;
  bottom: 0.6rem;
  z-index: 2;

  margin: 0;
  padding: 0.2em 0.6em;
  border-radius: var(--vm-radius-small);

  background: rgba(255, 255, 255, 0.8);   /* ≥ 75 % Deckkraft */
  color: var(--vm-primary);               /* Rot-Orange #004994 */
  font-size: 0.75rem;
  line-height: 1.35;
  text-align: left;

  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.12);
  pointer-events: none;   /* blockiert Bild-Link / Hover-Zoom nicht */
}

/* In der Teaserbox nach rechts, damit die Caption nicht mit dem Badge-Icon
   (unten links auf der Bildkante) kollidiert. News-Kacheln (kein Badge)
   bleiben unten links. */
.vm-teaserbox .vm-teaser-caption {
  left: auto;
  right: 0.6rem;
  text-align: right;
}


/* --- Body: gepolsterter Inhaltsbereich, füllt die restliche Höhe --- */
.vm-teaser-body {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  padding: var(--vm-card-padding);
}
/* Inhalt wächst -> Button bleibt unten in der Karte */
.vm-teaser-content {
  flex: 1 1 auto;
  min-width: 0;
}
.vm-teaser .vm-card-icon { margin-bottom: 1.25rem; }
.vm-teaser .vm-card-action { margin-top: 1.5rem; }

/* ==========================================================
   Ausrichtung
   ========================================================== */
.vm-teaser.-align-center .vm-teaser-body {
  text-align: center;
  align-items: center;
}
.vm-teaser.-align-right .vm-teaser-body {
  text-align: right;
  align-items: flex-end;
}

/* ==========================================================
   Icon-Varianten
   ========================================================== */
.vm-teaser.-large-icon .vm-card-icon {
  width: 4.5rem;
  height: 4.5rem;
}
.vm-teaser.-large-icon .vm-card-icon .vm-icon {
  width: 2.05rem;
  height: 2.05rem;
}

.vm-teaser.-inverted-icon .vm-card-icon {
  color: var(--vm-white);   /* Icon (currentColor) wird weiß */
  background: var(--vm-primary);
}

/* Icon neben der Überschrift: Icon links, Inhalt rechts, IMMER linksbündig */
.vm-teaser.-headline-icon .vm-teaser-body {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  column-gap: 1rem;
  row-gap: 0.75rem;
  text-align: left;
  align-items: start;
}
.vm-teaser.-headline-icon .vm-card-icon {
  grid-column: 1;
  grid-row: 1;
  margin-bottom: 0;
}
.vm-teaser.-headline-icon .vm-teaser-content {
  grid-column: 2;
  grid-row: 1;
}
.vm-teaser.-headline-icon .vm-card-action {
  grid-column: 2;
  grid-row: 2;
  margin-top: 1rem;
}

/* ==========================================================
   Icon KLEIN neben der Überschrift
   ========================================================== */
.vm-teaser.-headline-icon-small .vm-teaser-body {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  column-gap: 0.85rem;
  row-gap: 0.75rem;
  text-align: left;
  align-items: start;
}

.vm-teaser.-headline-icon-small .vm-card-icon {
  grid-column: 1;
  grid-row: 1;
  width: 2.5rem;          /* kompakt statt 64px */
  height: 2.5rem;
  border-radius: 0.7rem;
  margin-bottom: 0;
}
.vm-teaser.-headline-icon-small .vm-card-icon .vm-icon {
  width: 1.15rem;
  height: 1.15rem;
}

.vm-teaser.-headline-icon-small .vm-teaser-content {
  grid-column: 2;
  grid-row: 1;
}
.vm-teaser.-headline-icon-small .vm-card-action {
  grid-column: 2;
  grid-row: 2;
  margin-top: 1rem;
}


/* ==========================================================
   Icon als schwebendes Badge auf der Bildunterkante
   ========================================================== */
.vm-teaser.-badge-icon .vm-teaser-body {
  position: relative;
  /* Platz schaffen, damit die Überschrift nicht unter dem Badge sitzt */
  padding-top: calc(var(--vm-card-padding) + 2.25rem);
}

.vm-teaser.-badge-icon .vm-card-icon {
  position: absolute;
  top: 0;                 /* = Oberkante Body = Unterkante Bild */
  left: var(--vm-card-padding);
  transform: translateY(-50%);   /* Badge sitzt mittig auf der Bildkante */
  margin: 0;
  z-index: 2;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.16);
}

/* Badge folgt der Textausrichtung */
.vm-teaser.-badge-icon.-align-center .vm-card-icon {
  left: 50%;
  transform: translate(-50%, -50%);
}
.vm-teaser.-badge-icon.-align-right .vm-card-icon {
  left: auto;
  right: var(--vm-card-padding);
}


/* ==========================================================
   Split-Layout: Bild NEBEN Text (Feld „Layout")
   -media               -> Bild und Text nebeneinander
   -media-image-right   -> Bild rechts (Standard des -media: Bild links)
   Am besten mit 1 Spalte / breiter Box. Auf Mobil gestapelt (s. u.).
   ========================================================== */
.vm-teaser.-media {
  flex-direction: row;
  align-items: stretch;
}
.vm-teaser.-media.-media-image-right {
  flex-direction: row-reverse;
}

/* Bildspalte füllt die Kartenhöhe (kein festes Seitenverhältnis) */
.vm-teaser.-media .vm-teaser-image {
  flex: 0 0 45%;
  align-self: stretch;
  aspect-ratio: auto;
  height: auto;
}
.vm-teaser.-media .vm-teaser-figure { height: 100%; }
.vm-teaser.-media .vm-teaser-image img,
.vm-teaser.-media .vm-teaser-image picture {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Text vertikal mittig (wie im Beispiel „Ihre Unterstützung hilft.") */
.vm-teaser.-media .vm-teaser-body {
  justify-content: center;
}

/* ==========================================================
   Responsive
   ========================================================== */
@media (max-width: 900px) {
  .vm-teaser-body { padding: 1.6rem; }
  .vm-teaser.-headline-icon .vm-teaser-body { display: flex; }
  .vm-teaser.-headline-icon .vm-card-action { margin-top: 1.5rem; }

  /* Split-Layout auf Mobil stapeln: Bild oben, Text darunter */
  .vm-teaser.-media,
  .vm-teaser.-media.-media-image-right {
    flex-direction: column;
  }
  .vm-teaser.-media .vm-teaser-image {
    flex: 0 0 auto;
    height: auto;
  }
  .vm-teaser.-media .vm-teaser-image img,
  .vm-teaser.-media .vm-teaser-image picture {
    height: auto;
  }
}

/* =====================================================================
   be on solar – VM TEAMBOX (Ansprechpartner)
   ---------------------------------------------------------------------
   Personenkarten: Porträt, Funktion, Name, Kontaktwege.

   Die Karte selbst bringt NICHTS Eigenes mit: Das Template gibt dasselbe
   Markup aus wie die Teaserbox (.vm-card / .vm-teaser / .vm-teaser-image /
   .vm-teaser-body / .vm-teaser-content). Rahmen, Radius, Schatten, Hover,
   Kartenfarben, Rasterengine, Spaltenverhältnisse, „Karten ohne Abstand",
   Trennlinien und das Verhalten auf dunklem Grund kommen daher aus
   custom_vm_icon_boxes.css und custom_vm_teaser_boxes.css.

   Hier steht nur, was es bei einer Person zusätzlich gibt: die Liste der
   Kontaktwege.

   NACH custom_vm_icon_boxes.css, custom_vm_teaser_boxes.css und
   custom_vm_icons.css laden.
   ===================================================================== */

.vm-teambox,
.vm-teambox * { box-sizing: border-box; }

/* --- Karte als Spalte ------------------------------------------------
   `.vm-card` bringt `height: 100%` mit, die Karte füllt also ihre
   Rasterzeile. Das allein reicht nicht: Solange die Karte ein Block ist,
   bleibt `.vm-teaser-body` nur so hoch wie sein Inhalt, `flex: 1 1 auto`
   an `.vm-teaser-content` hat nichts zu verteilen, und der freie Platz
   sammelt sich unsichtbar unter der Karte. Bei unterschiedlich langen
   Qualifikationszeilen stehen die Kontaktblöcke dann auf verschiedenen
   Höhen – gemessen auf /unternehmen/team, wo Frank Fürstenau zwei Zeilen
   hat und die beiden anderen eine.

   Die Teaserbox löst das mit `.vm-teaserbox .vm-teaser { display: flex }`.
   Diese Regel greift hier nicht, weil die Umschlagklasse `.vm-teambox`
   heißt. Bewusst hier wiederholt statt den Selektor drüben zu erweitern:
   Die Teaserbox soll sich nicht mitändern, wenn an der Teambox etwas
   angefasst wird. */
.vm-teambox .vm-teaser {
  display: flex;
  flex-direction: column;
}

/* --- Name mit Erkennungsquadrat -------------------------------------
   Bei einer Person ist der NAME die Hauptinformation – das Quadrat sitzt
   deshalb hier und nicht an der Funktion darunter (bei den übrigen Boxen
   trägt es der Vortitel, dort steht die Einordnung ja zuerst).

   Bewusst `inline-block` und kein Flex-Container: Bei einem langen Namen
   soll die zweite Zeile unter dem Text beginnen, nicht unter dem Quadrat. */
.vm-teambox .vm-team-name::before {
  content: "";
  display: inline-block;
  width: 0.62em;
  height: 0.62em;
  margin-right: 0.55em;
  border-radius: 3px;
  background: var(--vm-cta, #fbba00);
  vertical-align: 0.08em;
}

/* --- Funktion unter dem Namen ---------------------------------------
   Ohne Quadrat, in normaler Schriftstärke: Sie ordnet ein, sie ruft
   nicht. Die Elternklasse ist nötig, weil ONEO `.main-content p` mit
   eigenen Abständen belegt. */
.vm-teambox .vm-team-funktion {
  margin: 0 0 0.75rem;
  color: var(--vm-text-2, #6b6b6a);
  font-weight: 400;
  line-height: 1.35;
}

.-color-inverted .vm-teambox .vm-team-funktion {
  color: rgba(255, 255, 255, 0.8);
}

/* Mindestabstand zwischen Text und Trennlinie.
   `margin-top: auto` an der Liste frisst allen freien Platz – ohne diesen
   Abstand klebte die Linie in der längsten Karte direkt am Text. Hier
   steht also das Minimum, das auch die vollste Karte behält. */
.vm-teambox .vm-teaser-content { margin-bottom: 1.1rem; }

/* --- Kontaktwege ----------------------------------------------------
   Sitzt am unteren Rand der Karte, durch eine feine Linie vom Namen
   getrennt – wie im Entwurf. `margin-top: auto` schiebt den Block nach
   unten, damit die Kontaktzeilen bei unterschiedlich langen Texten auf
   einer Höhe stehen. Das funktioniert nur zusammen mit der Flex-Spalte
   ganz oben in dieser Datei.

   Ausgerichtet wird am UNTEREN Rand. Die Trennlinien liegen damit auf
   einer Höhe, solange alle Karten gleich viele Kontaktzeilen haben.
   Bekommt eine Person eine Zeile mehr oder weniger, rutscht ihre Linie
   entsprechend – das ist der Preis dafür, ohne `subgrid` auszukommen und
   die gemeinsame Card-Basis nicht anzufassen. */
/* `ul.` und die Elternklasse ergeben 0,2,1 und schlagen damit ONEOs
   `.main-content ul { list-style: disc; padding-left: 1.46667em }` (0,1,1)
   sicher – ohne diese Regel stehen Aufzählungspunkte vor den Kontakten
   und die Zeilen sind eingerückt. */
.vm-teambox ul.vm-team-kontakt {
  list-style: none;
  margin: auto 0 0;
  padding: 1.1rem 0 0;
  padding-left: 0;
  border-top: 1px solid var(--vm-border, #e3e8ee);

  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

/* Manche Theme-Fassungen setzen Listenpunkte zusätzlich über ::before. */
.vm-teambox ul.vm-team-kontakt li::before {
  display: none !important;
}

.vm-teambox .vm-team-kontaktzeile {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  margin: 0;
  min-height: 1.9rem;          /* ruhiges Raster, auch ohne Icon */
  line-height: 1.35;
}

.vm-teambox .vm-team-kontaktzeile .vm-icon {
  flex: 0 0 auto;
  width: 1.15em;
  height: 1.15em;
  color: var(--vm-primary, #004994);

  /* `line-height: 1` verhindert, dass die Zeilenbox des Icons höher wird
     als das Icon selbst – sonst sitzt es sichtbar zu hoch, obwohl die
     Zeile auf `align-items: center` steht. */
  line-height: 1;
}

.vm-teambox .vm-team-kontaktzeile a {
  color: var(--vm-primary, #004994);
  font-weight: 600;
  text-decoration: none;
  transition: color var(--vm-transition, 200ms ease);

  /* Lange E-Mail-Adressen dürfen in schmalen Spalten umbrechen, statt
     die Karte aufzuweiten. */
  min-width: 0;
  overflow-wrap: anywhere;
}

.vm-teambox .vm-team-kontaktzeile a:hover,
.vm-teambox .vm-team-kontaktzeile a:focus-visible {
  color: var(--vm-primary-hover, #003a76);
}

/* Zeile ohne Link (Art „Sonstiges") – reine Information. */
.vm-teambox .vm-team-kontaktzeile > span:last-child {
  color: var(--vm-text-2, #6b6b6a);
  min-width: 0;
  overflow-wrap: anywhere;
}

/* --- Auf dunklem Grund ---------------------------------------------
   Greift automatisch über die Wrapper-Klasse des Umschlagelements,
   siehe custom_vm_icon_boxes.css. */
.-color-inverted .vm-teambox .vm-team-kontakt {
  border-top-color: rgba(255, 255, 255, 0.22);
}

.-color-inverted .vm-teambox .vm-team-kontaktzeile .vm-icon {
  color: var(--vm-cta, #fbba00);
}

.-color-inverted .vm-teambox .vm-team-kontaktzeile a,
.-color-inverted .vm-teambox .vm-team-kontaktzeile > span:last-child {
  color: var(--vm-white, #ffffff);
}

.-color-inverted .vm-teambox .vm-team-kontaktzeile a:hover,
.-color-inverted .vm-teambox .vm-team-kontaktzeile a:focus-visible {
  color: var(--vm-cta, #fbba00);
}

/* --- Ausrichtung zentriert ------------------------------------------
   Bei zentrierten Karten sollen auch die Kontaktzeilen mittig stehen,
   sonst hängt der Block optisch links. */
.vm-teambox .vm-card.-align-center .vm-team-kontaktzeile {
  justify-content: center;
}

/* =====================================================================
   VM Buttons – konsolidiert  ·  be on solar
   Nach dem ONEO-Framework-CSS laden. Vereinheitlicht ALLE Buttons
   (globaler .button + .vm-card-link.button in Iconbox/Teaser).
   Kernfix: font-size in REM + symmetrisches Padding = überall gleiche Höhe.
   --vm-btn-font ist die zentrale Stellschraube für die Buttongröße.

   Varianten: Aktion (Orange, Basis) · Dunkelblau (#004994) · Schwarz (#333) ·
              Hellgrau · Weiß · Transparent (2px Rahmen in Blau)
   Radius: 10px / kleiner Button 8px – bewusst kantig, passend zur Logo-Kachel.

   FARBLOGIK be on solar:
   - Basis = Orange (--vm-cta) mit DUNKLER Schrift (--vm-cta-text). Orange
     trägt niemals weiße oder helle Schrift, das wäre unlesbar (1,7:1).
   - Transparent (-outline) = Blau, der zweite Weg neben der Hauptaktion.
   ===================================================================== */

:root {
  --vm-btn-font: 1.15rem;   /* <- hier die Buttongröße global justieren */
}

/* 1) GEMEINSAMES BOX-MODEL -------------------------------------------- */
.button,
.headline-box-link,
.highlight-box-link {
  box-sizing: border-box;
  padding: 0.64286em 1.42857em;          /* symmetrisch */
  border: 2px solid var(--vm-cta, #fbba00);
  border-width: 2px !important;          /* ONEO-Basis nutzt 1px, Varianten 2px -> hier auf 2px vereinheitlichen (nur Breite, Farbe bleibt je Variante) */
  border-image: none !important;         /* ONEO-Rahmenverlauf aus */
  border-radius: var(--vm-radius, 10px) !important;

  font-size: var(--vm-btn-font) !important;
  line-height: 1.42929;
  letter-spacing: 0.05rem;
  font-weight: 400;

  color: var(--vm-cta-text, #333333);
  font-weight: 700;
  text-align: center;
  text-decoration: none !important;
  text-transform: none !important;       /* kein ONEO-UPPERCASE */

  background: var(--vm-cta, #fbba00);     /* Aktionsfarbe Orange, Schrift #333 = 7,3:1 */
  background-image: none !important;      /* ONEO-Hintergrundverlauf aus */
  box-shadow: none !important;            /* ONEO-Schatten aus */
  text-shadow: none !important;           /* ONEO-Textschatten aus */

  transition: background-color .2s ease, border-color .2s ease, color .2s ease, transform .2s ease;
}

/* Card-Link: gleiche Maße erzwingen (überschreibt alte 0.75em / 1.15em-Regel)
   padding + line-height mit !important, damit ONEO sie nicht je nach
   Ladereihenfolge überschreibt. Nur Maße – Farbe bleibt je Variante. */
.vm-card-link.button {
  display: inline-flex !important;   /* ONEO setzt .button = inline-block; hier flex erzwingen, sonst kippt die Höhe je Variante */
  align-items: center;
  justify-content: center;
  padding: 0.64286em 1.42857em !important;
  line-height: 1.42929 !important;
  font-size: var(--vm-btn-font) !important;
}

/* Flex-Item auf Zeilenhöhe heben, damit die Buttonhöhe nicht auf die
   Glyphenhöhe (font-size) zusammenfällt -> alle Varianten gleich hoch */
.vm-card-link.button .vm-card-link-text {
  line-height: 1.42929;
}

/* ONEO-Overlay (::after) abschalten, Pfeil-Icon vertikal sauber */
.button::after,
.headline-box-link::after,
.highlight-box-link::after { display: none !important; }
.button::before { top: 0.05em; }

/* Basis/Aktion – Hover */
.button:hover, .button:focus-visible,
.headline-box-link:hover, .highlight-box-link:hover {
  background: var(--vm-cta-dark, #e0a600); border-color: var(--vm-cta-dark, #e0a600);
  color: var(--vm-cta-text, #333333);
  transform: translateY(-1px);
}

/* 2) FARBVARIANTEN (be on solar) -------------------------------------------
   Akzent = Basis (.button, ohne Modifier: Orange, dunkle Schrift #333).
   Dazu 5 Modifier. Rahmenbreite ist global 2px (s. Abschnitt 1). */

/* Dunkelblau (-navy) – Markenblau als Fläche, weiße Schrift (8,8:1).
   Die gefüllte Schwester von „Transparent (Rahmen)": gleiche Farbe, aber
   als Vollfläche – für Seiten, auf denen Orange zu laut wäre. */
.button.-navy,
.headline-box-link.-navy,
.vm-card-link.button.-navy {
  background: var(--vm-primary); border-color: var(--vm-primary); color: var(--vm-white);
}
.button.-navy:hover, .button.-navy:focus-visible,
.headline-box-link.-navy:hover,
.vm-card-link.button.-navy:hover, .vm-card-link.button.-navy:focus-visible {
  background: var(--vm-primary-dark); border-color: var(--vm-primary-dark); color: var(--vm-white);
}

/* Schwarz – Standard-Schriftfarbe als Fläche (-dark)
   Hover geht ins Tiefschwarz (nicht ins Blau), damit „Schwarz" und
   „Dunkelblau" nebeneinander unterscheidbar bleiben. */
.button.-dark,
.headline-box-link.-dark,
.vm-card-link.button.-dark {
  background: var(--vm-text); border-color: var(--vm-text); color: var(--vm-white);
}
.button.-dark:hover, .button.-dark:focus-visible,
.headline-box-link.-dark:hover,
.vm-card-link.button.-dark:hover, .vm-card-link.button.-dark:focus-visible {
  background: #1a1a1a; border-color: #1a1a1a; color: var(--vm-white);
}

/* Hellgrau (-grey) – dunkle Schrift auf hellem Grau */
.button.-grey,
.headline-box-link.-grey,
.vm-card-link.button.-grey {
  background: var(--vm-grey); border-color: var(--vm-border); color: var(--vm-text);
}
.button.-grey:hover, .button.-grey:focus-visible,
.headline-box-link.-grey:hover,
.vm-card-link.button.-grey:hover, .vm-card-link.button.-grey:focus-visible {
  background: var(--vm-border-neutral); border-color: var(--vm-text); color: var(--vm-text);
}

/* Weiß (-white) – weiße Fläche, dunkle Schrift, dezenter Rahmen */
.button.-white,
.headline-box-link.-white,
.vm-card-link.button.-white {
  background: var(--vm-white);
  border-color: rgba(51, 51, 51, 0.18);   /* definierter als --vm-border -> Kante bleibt auf hellem Grund sichtbar */
  color: var(--vm-text);
  box-shadow: 0 2px 6px rgba(51, 51, 51, 0.16) !important;   /* leichte Abhebung, damit die volle Höhe sichtbar wird */
}
.button.-white:hover, .button.-white:focus-visible,
.headline-box-link.-white:hover,
.vm-card-link.button.-white:hover, .vm-card-link.button.-white:focus-visible {
  background: var(--vm-grey); border-color: var(--vm-text); color: var(--vm-text);
  box-shadow: 0 4px 12px rgba(51, 51, 51, 0.22) !important;
}

/* Transparent (-outline) – 2px Rahmen in Blau, der zweite Weg neben der
   Hauptaktion. Blau auf Weiß = 8,8:1, gefüllt Weiß auf Blau ebenfalls 8,8:1. */
.button.-outline,
.headline-box-link.-outline,
.vm-card-link.button.-outline {
  background: transparent; border-color: var(--vm-primary); color: var(--vm-primary);
}
.button.-outline:hover, .button.-outline:focus-visible,
.headline-box-link.-outline:hover,
.vm-card-link.button.-outline:hover, .vm-card-link.button.-outline:focus-visible {
  background: var(--vm-primary); border-color: var(--vm-primary); color: var(--vm-white);
}

/* Buttons in invertierten (dunklen) Boxen ----------------------------
   Wird eine Box auf „Textfarbe invertieren" gestellt und der Hintergrund
   von Hand auf Markenblau (#004994) gelegt, verschmilzt der Button mit der
   Fläche: die hellen Varianten schlagen im Hover auf #004994 um, die
   Standard-Variante ist schon im Ruhezustand gleichfarbig. Eine
   durchgängig weiße Outline (Ruhezustand + Hover/Fokus) hält die
   Buttonform in jedem Zustand sichtbar – Farb- und Textlogik bleiben. */
.vm-card--inverted .vm-card-link.button,
.vm-card--inverted .vm-card-link.button:hover,
.vm-card--inverted .vm-card-link.button:focus-visible {
  border-color: var(--vm-white);
}

/* Buttons auf zentriertem, invertiertem Hintergrund (heller Text) -----
   Gleiches Problem wie in den invertierten Boxen: auf dunklem Grund
   verschmelzen Standard- und Hover-Fläche mit dem Hintergrund. Dieselbe
   durchgängig weiße Outline (Ruhezustand + Hover/Fokus) hält die
   Buttonform sichtbar – Farb- und Textlogik bleiben. */
.centered-wrapper.-color-inverted .button,
.centered-wrapper.-color-inverted .button:hover,
.centered-wrapper.-color-inverted .button:focus-visible,
.centered-wrapper.-color-inverted .vm-card-link.button,
.centered-wrapper.-color-inverted .vm-card-link.button:hover,
.centered-wrapper.-color-inverted .vm-card-link.button:focus-visible,
.centered-wrapper.-color-inverted .headline-box-link,
.centered-wrapper.-color-inverted .headline-box-link:hover,
.centered-wrapper.-color-inverted .highlight-box-link,
.centered-wrapper.-color-inverted .highlight-box-link:hover {
  border-color: var(--vm-white);
}

/* 3) KLEINER BUTTON --------------------------------------------------- */
.button.-small,
.vm-card-link.button.-small {
  padding: 0.4em 0.95em;
  font-size: 16px !important;            /* barrierearm: feste Mindestgröße */
  border-radius: var(--vm-radius-small, 7px) !important;
}

/* --- Textlink (VM Button, Variante „Textlink") ----------------------
   Kein Kasten – reiner Link im Logo-Blau, Icon per .vm-icon-Maske davor. */
.vm-textlink {
  display: inline-flex;
  align-items: center;
  gap: 0.4em;
  color: var(--vm-primary);
  font-weight: 700;
  font-size: var(--vm-btn-font);
  line-height: 1.3;
  text-decoration: none;
  letter-spacing: 0.02em;
  transition: color .2s ease;
}
.vm-textlink:hover,
.vm-textlink:focus-visible {
  color: var(--vm-primary-hover);
}
.vm-textlink::before { margin: 0; top: 0; }

/* --- RSCE „VM Buttons": ein oder mehrere Buttons/Links --------------
   Standard = UNTEREINANDER (Spalte), an der gewählten Seite ausgerichtet.
   `-inline` = NEBENEINANDER (ONEO-Standard, geringer Abstand, umbruchfähig).
   Das Icon (CSS-Maske, .vm-icon) sitzt links vom Text. */
.vm-buttons {
  display: flex;
  flex-direction: column;      /* untereinander */
  align-items: flex-start;     /* linksbündig */
  gap: 0.75rem;
  margin: 0;
}
.vm-buttons.-center { align-items: center; }
.vm-buttons.-right  { align-items: flex-end; }

/* Nebeneinander (inline) – ONEO-Standardfluss (inline-block-Buttons in
   einer Zeile, geringer Wortabstand, umbruchfähig).
   display: inline-block !important – ein Flex-Row-Kontext blieb bei ONEO
   wirkungslos (Buttons standen weiter untereinander); inline-block bleibt in
   einer Zeile, respektiert aber margin/padding (anders als display:inline),
   damit die margin-Utility-Klassen greifen. Der Abstand kommt vom Wortabstand
   zwischen den Links bzw. per margin-Klasse.
   Matcht die Dropdown-Option (-inline) UND eine manuell vergebene Klasse (inline). */
.vm-buttons.-inline,
.vm-buttons.inline {
  display: inline-block !important;
}

/* Button in dieser Reihe = inline-flex (ONEO: .button = inline-block),
   damit das Icon sauber neben dem Text steht. */
.vm-buttons .button {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 0.5em;
}
/* Icon-Maße im Button/Textlink an die Schriftgröße koppeln */
.vm-buttons .button .vm-icon,
.vm-buttons .vm-textlink .vm-icon {
  width: 1.05em;
  height: 1.05em;
  flex: 0 0 auto;
}

/* =====================================================================
   be on solar – ZENTRALE FAQ-SEITE
   ---------------------------------------------------------------------
   Zur Vorlage mod_faqpage_vm.html.twig · Verhalten: js/vm_faq.js

   AUFBAU
     .vm-faq-kopf        hellblaues Band: Vortitel, H1, Suche, Themenfilter
     .vm-faq-uebersicht  Fläche hinter dem Kartenraster
     .vm-faq-karten      Kartenraster, je Kategorie eine Karte
       .vm-faq-karte     Icon, Claim, Anzahl, Fragen, Fußlink

   Die Fragen selbst sehen aus wie das Akkordeon auf den Leistungsseiten
   (custom_vm_accordion.css) – nur eine Nummer kleiner, weil sie hier in
   einer Karte stehen. Technisch ist es ein anderes Bauteil: dort
   ce_accordion mit jQuery UI, hier <details>/<summary> ohne JavaScript.

   Nach custom_vm_base.css, custom_vm_buttons.css, custom_vm_icons.css
   und custom_vm_preheadline.css laden.
   ===================================================================== */

.vm-faq {
  /* Der Ton des Kopfbands – derselbe wie im Kartenbereich und im
     Call-to-action darunter. Bewusst NICHT der etwas kräftigere Blauton:
     Den verwendet die Quicknav, die auf dem Telefon dicht darunter liegt.
     Zwei fast gleiche Blautöne übereinander sehen nach Versehen aus; mit
     einem durchgehenden hellen Grund hebt sich die Quicknav dagegen ab. */
  --vm-faq-band: var(--vm-surface-light, #f4f7fa);

  /* Trennlinie zwischen den Fragen – wie im Akkordeon kräftiger als
     --vm-border, weil sie eine Liste gliedert und nicht nur eine Kante
     andeutet. In der Karte etwas heller, der Rahmen trägt schon. */
  --vm-faq-linie: #dde6f0;

  /* Seitlicher Abstand. Die Seite läuft ohne centered-wrapper, damit das
     hellblaue Band über die volle Breite geht – der Abstand muss deshalb
     hier entstehen und nicht vom Theme kommen. Eine Variable, weil ihn
     Band und Kartenraster gemeinsam brauchen. */
  --vm-faq-rand: clamp(1.15rem, 3vw, 3rem);

  /* Abstand zwischen den Filter-Chips. Als Variable, weil ihn die
     Spaltenaufteilung auf schmalen Geräten mit einrechnen muss. */
  --vm-faq-chip-gap: 0.5rem;

  /* Größte Breite der aufgeklappten Kategorie-Karte. Als Variable, weil
     sich der Rückweg darunter an derselben Kante ausrichten muss. */
  --vm-faq-lese-max: 1200px;
}

/* ---------------------------------------------------------------------
   Grundregel: `hidden` muss immer gewinnen
   ---------------------------------------------------------------------
   Das gesamte Filtern läuft über das hidden-Attribut, das die JS setzt.
   Wirksam wird es nur über die Browser-Grundregel `[hidden]{display:none}`
   – und die hat die schwächste denkbare Spezifität. JEDE eigene
   display-Angabe sticht sie aus.

   Genau das ist hier passiert: Die Karte bekam `display: flex`, damit der
   Fußlink an der Unterkante sitzt. Danach blieben ausgeblendete Karten
   sichtbar – leer, weil ihre Fragen korrekt verschwunden waren. Dasselbe
   galt für die Filterleiste, die ohne JavaScript sichtbar, aber
   wirkungslos gewesen wäre.

   Das `!important` ist hier ausnahmsweise das richtige Mittel: Es geht
   nicht um Optik, sondern um „dieses Element ist gerade nicht da". Ohne
   die Regel bricht das Bauteil jedes Mal lautlos, wenn irgendwo eine
   display-Angabe dazukommt.
   --------------------------------------------------------------------- */
.vm-faq [hidden] {
  display: none !important;
}

/* ---------------------------------------------------------------------
   0) ONEO neutralisieren
   ---------------------------------------------------------------------
   Das Theme bringt eigene Regeln für die FAQ-Seite mit (main.css, Block
   `.mod_faqpage`). Sie sind für Contaos Standardausgabe gedacht – dort
   ist jede Frage ein <h3> und die Antwort das Element danach:

     .mod_faqpage section        padding-left: 4.8em
     .mod_faqpage h3             Rahmenlinie unten, eigene Größe/Abstände
     .mod_faqpage h3:before      gelber Kreis mit „Q"
     .mod_faqpage h3 + *:before  gelber Kreis mit „A"

   In diesem Aufbau war <h3> aber der KATEGORIE-Name und das Element
   danach der Claim – also klebte ein „Q" am Thema und ein „A" an seiner
   Unterzeile, und die Karten waren um 4,8em eingerückt.

   Der Kategoriename ist inzwischen ein <h2> (die Gliederung braucht ihn
   dort, s. Template), womit die h3-Regeln des Themes ohnehin ins Leere
   greifen. Die beiden ::before-Zeilen bleiben trotzdem stehen: Sie kosten
   nichts und fangen es ab, falls die Ebene einmal wieder wechselt. Die
   Regel für `section` wird dagegen weiterhin gebraucht – die Karten sind
   nach wie vor <section>-Elemente.

   Alle Selektoren hier sind eine Klasse spezifischer als die des Themes
   (0,2,0 gegen 0,1,1), deshalb genügt das ohne !important.
   --------------------------------------------------------------------- */
.vm-faq .vm-faq-karte-titel::before,
.vm-faq .vm-faq-karte-titel + *::before {
  content: none;
}

.vm-faq .vm-faq-karte {
  margin: 0;
  padding: clamp(1.1rem, 2vw, 1.5rem);
}

.vm-faq .vm-faq-karte-titel {
  padding: 0;
  border-bottom: 0;
}

/* ONEO setzt auf JEDEN <button> Versalien und eine weite Sperrung
   (main.css, Zeile 1885). Chips, „Alle Fragen …" und „Zurück" sind echte
   Buttons und waren deshalb in Großbuchstaben gesetzt.

   Versalien sind hier ausdrücklich nicht gewünscht: Sie sind mit dem
   Kunden abgesprochen abgewählt – durchgängige Großschreibung ist
   schlechter lesbar, und Screenreader buchstabieren einzelne Wörter
   mitunter. Der Klassenselektor (0,1,0) sticht ONEOs Elementselektor. */
.vm-faq-chip,
.vm-faq-alle,
.vm-faq-zurueck-knopf,
.vm-faq-weiterlesen {
  text-transform: none;
  letter-spacing: normal;
}

/* Nur für Screenreader – das Suchfeld trägt sichtbar seinen Platzhalter,
   braucht aber trotzdem ein echtes Label. */
.vm-faq .sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

/* ---------------------------------------------------------------------
   1) Kopfbereich
   --------------------------------------------------------------------- */
/* Kein Abstand nach unten: Das Band geht ohne weiße Lücke in die Fläche
   des Kartenbereichs über, und die wiederum in den Call-to-action
   darunter – ein durchgehender heller Grund von der Suche bis zum
   Kontaktangebot. */
/* Zentriert: Auf dem Desktop steht darunter das mehrspaltige Kartenraster.
   Der zentrierte Kopf setzt sich davon ab und macht sichtbar, wo die
   Einstiegshilfen aufhören und die Fragen anfangen. Ab 900 px abwärts
   wieder linksbündig – dort stehen die Karten einspaltig untereinander,
   und ein zentrierter Kopf über linksbündigen Karten wirkt verrutscht. */
.vm-faq-kopf-inner {
  padding-top: 1em;
}
.vm-faq-kopf {
  background: var(--vm-faq-band);
  padding: clamp(1.75rem, 4vw, 2.75rem) var(--vm-faq-rand);
  text-align: center;
}

/* Beide haben eine max-width und blieben sonst trotz zentrierter Schrift
   am linken Rand kleben – der Kasten selbst muss mittig sitzen. */
.vm-faq .vm-faq-intro,
.vm-faq-suche-feld {
  margin-inline: auto;
}

/* Die zentrierte Ausrichtung darf NICHT ins Suchfeld durchschlagen:
   Platzhalter und Eingabe gehören nach links, sonst wandert der Text
   beim Tippen aus der Mitte heraus nach außen. */
.vm-faq-suche-feld {
  text-align: left;
}

.vm-faq .vm-preheadline {
  margin-top: 0;
}

/* Größe, Fettung und Abstände der Überschrift kommen aus den
   Theme-Klassen am Element (mt-0 bold mb-0 font-size-xxl) – so steht sie
   im selben Raster wie die Überschriften der übrigen Seiten. Hier nur die
   Farbe: die normale Schriftfarbe, nicht das Hausblau. Nötig, weil ONEO
   über `.main-content h1` (0,1,1) sonst sein eigenes Dunkelgrau setzt;
   der Selektor hier ist mit 0,2,0 eine Klasse stärker. */
.vm-faq .vm-faq-headline {
  color: var(--vm-text, #333333);
  line-height: 1.15;
}

.vm-faq .vm-faq-intro {
  margin: 0.35rem 0 1.75rem;
  color: var(--vm-text, #333333);
  font-size: 1.05rem;
}

/* --- Suchfeld -------------------------------------------------------- */
.vm-faq-suche {
  margin-bottom: 1.25rem;
}

/* Die Lupe steckt als Hintergrundbild im Feld statt als eigenes Element –
   sie ist reine Dekoration und hat im Markup nichts verloren. */
.vm-faq-suche-feld {
  box-sizing: border-box;
  width: 100%;
  max-width: 36rem;
  padding: 0.85rem 1rem 0.85rem 3rem;

  border: 1px solid var(--vm-border, #e3e8ee);
  border-radius: var(--vm-radius, 10px);
  background-color: var(--vm-white, #ffffff);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23004994' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-3.6-3.6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: 1rem center;
  background-size: 1.2rem;

  color: var(--vm-text, #333333);
  font-family: inherit;
  font-size: 1rem;
  line-height: 1.4;
}

.vm-faq-suche-feld::placeholder {
  color: var(--vm-text-2, #6b6b6a);
  opacity: 1;             /* Firefox dimmt sonst zusätzlich ab */
}

.vm-faq-suche-feld:focus-visible {
  outline: 3px solid var(--vm-primary, #004994);
  outline-offset: 2px;
  border-color: var(--vm-primary, #004994);
}

.vm-faq .vm-faq-suche-hinweis {
  margin: 0.5rem 0 0;
  color: var(--vm-text-2, #6b6b6a);
  font-size: 0.85rem;
}

/* --- Themenfilter ---------------------------------------------------- */
.vm-faq-filter {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;   /* zum zentrierten Kopf, s. .vm-faq-kopf */
  gap: var(--vm-faq-chip-gap);
}

.vm-faq-chip {
  /* border-box lokal setzen, wie in den übrigen VM-Bauteilen – das Theme
     setzt es nicht global. Ohne das sprengen die Prozentbreiten der
     Spaltenaufteilung weiter unten die Zeile, weil Polsterung und Rahmen
     obendrauf kämen. */
  box-sizing: border-box;

  display: inline-flex;
  align-items: center;
  gap: 0.55em;
  padding: 0.5rem 0.85rem;

  border: 1px solid var(--vm-border, #e3e8ee);
  border-radius: var(--vm-radius-small, 7px);
  background: var(--vm-white, #ffffff);

  color: var(--vm-text, #333333);
  font-family: inherit;
  font-size: 0.95rem;
  font-weight: 700;
  line-height: 1.2;
  cursor: pointer;

  transition: background-color var(--vm-transition, 200ms ease),
              border-color var(--vm-transition, 200ms ease),
              color var(--vm-transition, 200ms ease);
}

/* Die Zahl sitzt in einer eigenen Fläche, damit sie sich vom Namen löst
   und in jeder Chip-Breite an derselben Stelle steht. */
.vm-faq-chip-zahl {
  padding: 0.1em 0.5em;
  border-radius: 5px;
  background: var(--vm-surface-icon, #dfeaf5);
  color: var(--vm-primary, #004994);
  font-size: 0.85em;
}

/* ONEO färbt JEDEN <button> bei :hover, :focus und :active goldgelb ein
   (main.css ab Zeile 1902: `background-color: #c89400`). Diese Regel ist
   mit 0,1,1 genauso spezifisch wie unsere Zustandsregeln – unsere
   gewinnen nur, weil diese Datei später geladen wird, und nur für
   Eigenschaften, die sie auch tatsächlich setzen. Der Hintergrund muss
   hier also ausdrücklich mit genannt werden, sonst blitzt beim Überfahren
   das Gelb des Themes durch. Gilt für alle Zustände, nicht nur :hover –
   nach einem Klick bleibt sonst :focus stehen. */
.vm-faq-chip:hover,
.vm-faq-chip:focus,
.vm-faq-chip:active {
  border-color: var(--vm-primary, #004994);
  background: var(--vm-white, #ffffff);
  color: var(--vm-primary, #004994);
}

.vm-faq-chip.-aktiv,
.vm-faq-chip[aria-pressed="true"] {
  border-color: var(--vm-primary, #004994);
  background: var(--vm-primary, #004994);
  color: var(--vm-white, #ffffff);
}

.vm-faq-chip.-aktiv .vm-faq-chip-zahl,
.vm-faq-chip[aria-pressed="true"] .vm-faq-chip-zahl {
  background: rgba(255, 255, 255, 0.22);
  color: var(--vm-white, #ffffff);
}

.vm-faq-chip:focus-visible {
  outline: 3px solid var(--vm-primary, #004994);
  outline-offset: 3px;
}

/* ---------------------------------------------------------------------
   2) Übersicht: Überschrift und Zusammenfassung
   --------------------------------------------------------------------- */
/* Alles unterhalb des Bands bekommt denselben seitlichen Abstand wie der
   Bandinhalt – nur die Fläche selbst läuft bis an die Kanten.
   Der Ton ist derselbe wie im Call-to-action darunter, damit beide
   Bereiche als ein Block wirken und keine Kante dazwischen entsteht. */
.vm-faq-uebersicht {
  background: var(--vm-surface-light, #f4f7fa);
  padding: clamp(2rem, 4vw, 3rem) var(--vm-faq-rand);
  padding-top: 0;
}


/* ---------------------------------------------------------------------
   3) Kartenraster
   --------------------------------------------------------------------- */
/* Drei nebeneinander: Bei sechs Kategorien ergibt das zwei volle Reihen
   ohne Lücke, und Fragen wie Antworten sind kurz genug für die schmalere
   Spalte. Die Stufen darunter stehen in Abschnitt 6. */
.vm-faq-karten {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1rem, 2vw, 1.5rem);
  /* Kein `align-items: start` – die Karten einer Reihe sollen gleich hoch
     sein. Der Rasterstandard `stretch` erledigt das von allein; die Karte
     selbst ist unten eine Flex-Spalte, damit der Fußlink dabei an der
     Unterkante bleibt und nicht mitten in der Karte hängt. */
}

.vm-faq-karte {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  border: 1px solid var(--vm-border, #e3e8ee);
  border-radius: var(--vm-radius, 10px);
  background: var(--vm-white, #ffffff);
  box-shadow: 0 2px 10px rgba(0, 45, 95, 0.05);
}

/* --- Kartenkopf ------------------------------------------------------ */
.vm-faq-karte-kopf {
  display: flex;
  align-items: flex-start;
  gap: 0.9rem;
  padding-bottom: 1rem;
}

/* Orange statt Blau – setzt einen Akzent gegen die vielen blauen Flächen
   und Schriften und gibt dem Raster Bewegung. Gleiches Muster wie
   „Icon orange" in custom_vm_icon_boxes.css.

   Barrierefreiheit: Orange auf Weiß erreicht nur 1,7:1 und läge damit
   unter den 3:1 für aussagekräftige Grafiken (WCAG 1.4.11). Vertretbar
   ist es hier, weil das Icon im Template `aria-hidden="true"` trägt und
   der Kategoriename unmittelbar daneben steht – es ist reine Dekoration
   und trägt keine Information, die sonst verloren ginge. */
.vm-faq-karte-icon {
  flex: 0 0 auto;
  color: var(--vm-cta, #fbba00);
}
.vm-faq-karte-icon .vm-icon {
  width: 2.4rem;
  height: 2.4rem;
}

.vm-faq-karte-text {
  flex: 1 1 auto;
  min-width: 0;           /* sonst sprengt ein langer Claim das Raster */
}

.vm-faq .vm-faq-karte-titel {
  margin: 0;
  color: var(--vm-primary, #004994);
  font-size: 1.25rem;
  font-weight: var(--vm-fw-head, 700);
  line-height: 1.2;
}

.vm-faq .vm-faq-karte-claim {
  margin: 0.2em 0 0;
  color: var(--vm-text-2, #6b6b6a);
  font-size: 0.92rem;
}

.vm-faq-karte-anzahl {
  flex: 0 0 auto;
  padding: 0.25em 0.7em;
  border-radius: var(--vm-radius-small, 7px);
  background: var(--vm-surface-icon, #dfeaf5);
  color: var(--vm-primary, #004994);
  font-size: 0.82rem;
  font-weight: 700;
  white-space: nowrap;
}

/* --- Die Fragen in der Karte ----------------------------------------- */
.vm-faq-frage {
  border-top: 1px solid var(--vm-faq-linie);
}

.vm-faq-frage-titel {
  position: relative;
  padding: 0.85rem 2.25rem 0.85rem 0;
  cursor: pointer;

  color: var(--vm-text, #333333);
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.4;

  /* Standarddreieck des Browsers weg – wir zeichnen selbst.
     ::marker deckt Firefox ab, das Webkit-Pseudoelement Safari. */
  list-style: none;
  transition: color var(--vm-transition, 200ms ease);
}

.vm-faq-frage-titel::marker,
.vm-faq-frage-titel::-webkit-details-marker {
  display: none;
  content: "";
}

.vm-faq-frage-titel:hover,
.vm-faq-frage[open] > .vm-faq-frage-titel {
  color: var(--vm-primary, #004994);
}

.vm-faq-frage[open] > .vm-faq-frage-titel {
  font-weight: 700;
}

.vm-faq-frage-titel:focus-visible {
  outline: 2px solid var(--vm-primary, #004994);
  outline-offset: 2px;
  border-radius: var(--vm-radius-small, 7px);
}

/* Plus, im offenen Zustand Minus. Hier ohne die hellblaue Fläche des
   großen Akkordeons: In der Karte stehen die Zeichen dicht beieinander,
   sechs Kacheln untereinander würden die Karte zerhacken. */
.vm-faq-frage-titel::after {
  content: "";
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 20px;
  height: 20px;

  background-color: var(--vm-primary, #004994);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M5 12h14M12 5v14'/%3E%3C/svg%3E") center / 16px no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M5 12h14M12 5v14'/%3E%3C/svg%3E") center / 16px no-repeat;
}

.vm-faq-frage[open] > .vm-faq-frage-titel::after {
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M5 12h14'/%3E%3C/svg%3E") center / 16px no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M5 12h14'/%3E%3C/svg%3E") center / 16px no-repeat;
}

/* --- Die Antwort ----------------------------------------------------- */
.vm-faq-antwort {
  margin: 0 0 1rem;
  padding: 0.9rem 1rem;
  border-left: 3px solid var(--vm-cta, #fbba00);
  border-radius: 0 var(--vm-radius-small, 7px) var(--vm-radius-small, 7px) 0;
  background: var(--vm-surface-light, #f4f7fa);
  color: var(--vm-text-2, #6b6b6a);
  font-size: 0.95rem;
}

.vm-faq .vm-faq-antwort p {
  margin-top: 0;
}
.vm-faq .vm-faq-antwort p:last-child {
  margin-bottom: 0;
}

/* --- Kartenfuß und weiterführender Link ------------------------------ */
/* `margin-top: auto` schiebt den Fuß an die Unterkante der Karte. Nötig,
   weil die Karten einer Reihe jetzt gleich hoch sind: In einer Karte mit
   kurzen Fragen bliebe der Link sonst dort stehen, wo die Fragen enden,
   und die Fußlinien der Reihe lägen auf verschiedenen Höhen. */
.vm-faq .vm-faq-karte-fuss,
.vm-faq .vm-faq-gruppe-link {
  margin: auto 0 0;
  padding-top: 1rem;
  border-top: 1px solid var(--vm-faq-linie);
}

/* Beide sehen gleich aus – der eine ist ein Knopf (wechselt die Ansicht),
   der andere ein Link (führt auf eine andere Seite). Der Knopf bekommt
   deshalb alle Button-Vorgaben abgeräumt. */
.vm-faq-alle,
.vm-faq-weiterlesen {
  display: inline-flex;
  align-items: center;
  gap: 0.5em;

  padding: 0;
  border: 0;
  background: none;
  cursor: pointer;

  color: var(--vm-primary, #004994);
  font-family: inherit;
  font-size: 0.95rem;
  font-weight: 700;
  text-align: left;
  text-decoration: none;
}

/* Dieselbe Sache wie bei den Chips: ohne `background` schiebt ONEO auch
   unter diese textartigen Knöpfe seine gelbe Fläche. */
.vm-faq-alle:hover,
.vm-faq-alle:focus,
.vm-faq-alle:active,
.vm-faq-weiterlesen:hover,
.vm-faq-weiterlesen:focus {
  background: none;
  color: var(--vm-primary-hover, #003a76);
}

.vm-faq-alle .vm-icon,
.vm-faq-weiterlesen .vm-icon {
  width: 1.05em;
  height: 1.05em;
  transition: transform var(--vm-transition, 200ms ease);
}
.vm-faq-alle:hover .vm-icon,
.vm-faq-weiterlesen:hover .vm-icon {
  transform: translateX(3px);
}

.vm-faq-alle:focus-visible,
.vm-faq-weiterlesen:focus-visible {
  outline: 3px solid var(--vm-primary, #004994);
  outline-offset: 3px;
  border-radius: 3px;
}

/* ---------------------------------------------------------------------
   4) Kategorie-Ansicht
   ---------------------------------------------------------------------
   Es bleibt nur die gewählte Karte stehen, und sie läuft über die volle
   Breite.

   Ursprünglich sollte sie in ihrer Spalte bleiben. Mit zwei Spalten war
   das vertretbar – bei dreien stünde eine Karte mit sechs Fragen auf
   einem Drittel der Breite, daneben zwei Drittel Leere, und jede Frage
   bräche mehrzeilig um. Wer „alle Fragen zu Photovoltaik" anklickt, will
   sie lesen, nicht in einer schmalen Spalte suchen.

   Soll sie doch in ihrer Spalte bleiben: die folgende Zeile auskommentieren.
   --------------------------------------------------------------------- */
/* Die Karte spannt über alle Spalten, wird aber gedeckelt und mittig
   gesetzt: Über die volle Fensterbreite stünden kurze Fragen wie „Was
   kostet eine Photovoltaikanlage?" verloren in einer sehr langen Zeile,
   und das Pluszeichen am rechten Rand wäre weit vom Text entfernt.
   Unterhalb von 1200 px greift die Deckelung ohnehin nicht. */
.vm-faq .vm-faq-karte.-vollstaendig {
  grid-column: 1 / -1;

  /* `width: 100%` ist hier NICHT überflüssig: Ein Rasterelement füllt
     seine Spur zwar von selbst aus (justify-self: stretch), aber genau
     dieses Strecken wird abgeschaltet, sobald das Element automatische
     Seitenränder bekommt. Ohne die Angabe schrumpft die Karte auf ihre
     Inhaltsbreite – sie stünde dann mittig, aber schmaler als 1200 px
     und nicht mehr auf einer Linie mit dem Rückweg darunter. */
  width: 100%;
  max-width: var(--vm-faq-lese-max, 1200px);
  margin-inline: auto;
}

/* Doppelt geklassert wie die übrigen Absätze – ONEO setzt
   `.mod_faqpage p` (0,1,1) eigene Abstände. */
.vm-faq .vm-faq-zurueck {
  margin: 1.75rem 0 0;
}

/* In der Kategorie-Ansicht rückt der Rückweg auf dieselbe Fluchtlinie wie
   die gedeckelte Karte – sonst klebte er weit links außen, während die
   Karte in der Mitte steht. In der Suchansicht (Karten im normalen
   Raster über die volle Breite) bleibt er dagegen ganz links, deshalb
   die Bindung an `:has()` statt einer festen Regel. */
.vm-faq-uebersicht:has(.vm-faq-karte.-vollstaendig) .vm-faq-zurueck {
  max-width: var(--vm-faq-lese-max, 1200px);
  margin-inline: auto;
}

.vm-faq-zurueck-knopf {
  display: inline-flex;
  align-items: center;
  gap: 0.5em;
  padding: 0;
  border: 0;
  background: none;
  cursor: pointer;

  color: var(--vm-primary, #004994);
  font-family: inherit;
  font-size: 0.95rem;
  font-weight: 700;
}
.vm-faq-zurueck-knopf:hover,
.vm-faq-zurueck-knopf:focus,
.vm-faq-zurueck-knopf:active {
  background: none;
  color: var(--vm-primary-hover, #003a76);
}
.vm-faq-zurueck-knopf:focus-visible {
  outline: 3px solid var(--vm-primary, #004994);
  outline-offset: 3px;
  border-radius: 3px;
}

/* Der Pfeil zeigt zurück, nicht vor – dasselbe Icon gespiegelt, damit
   dafür kein zweites ins Set muss. */
.vm-faq-zurueck-knopf .vm-icon {
  width: 1.05em;
  height: 1.05em;
  transform: scaleX(-1);
}

/* ---------------------------------------------------------------------
   5) Kein Treffer
   --------------------------------------------------------------------- */
/* Weiß mit Rahmen wie die Karten – auf der hellen Fläche des
   Kartenbereichs wäre der frühere graublaue Kasten unsichtbar. */
.vm-faq-leer {
  margin-top: 1.5rem;
  padding: clamp(1.5rem, 4vw, 2.25rem);
  border: 1px solid var(--vm-border, #e3e8ee);
  border-radius: var(--vm-radius, 10px);
  background: var(--vm-white, #ffffff);
}

.vm-faq .vm-faq-leer-titel {
  margin: 0 0 0.5em;
  color: var(--vm-primary, #004994);
  font-size: 1.25rem;
  font-weight: var(--vm-fw-head, 700);
  line-height: 1.25;
}

.vm-faq .vm-faq-leer-text {
  margin: 0 0 1.25rem;
  color: var(--vm-text, #333333);
}

.vm-faq .vm-faq-leer-aktion {
  margin: 0;
}

/* ---------------------------------------------------------------------
   6) Schmale Breiten
   --------------------------------------------------------------------- */
/* Drei Spalten nur, solange eine Karte nicht zu schmal wird. Die Grenze
   liegt bei 1400 px: Knapp darüber sind die Karten noch gut lesbar,
   darunter wird es eng – die Fragen brechen dann zwei- und dreizeilig um.
   Ab 900 px bleibt eine Spalte: Dort fangen sonst die Claims an, zweizeilig
   umzubrechen. */
@media (max-width: 1400px) {
  .vm-faq-karten {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 900px) {
  .vm-faq-karten {
    grid-template-columns: 1fr;
  }

  /* --- Kopfbereich linksbündig --------------------------------------
     Ab hier stehen die Karten einspaltig untereinander, alles beginnt an
     derselben Fluchtlinie. Ein zentrierter Kopf darüber wirkte verrutscht. */
  .vm-faq-kopf {
    text-align: left;
  }
  .vm-faq-kopf-inner {
  padding-top: 0;
  }

  .vm-faq .vm-faq-intro,
  .vm-faq-suche-feld {
    margin-inline: 0;
  }
  .vm-faq-intro {
      margin-bottom: 0.5em !important;
  }

  /* --- Themenfilter: feste Spalten statt freiem Umbruch --------------
     Frei umbrechende Chips ergeben auf schmalen Geräten ein unruhiges
     Bild: Jede Zeile ist anders lang, der letzte Chip steht allein, und
     bei jedem Wechsel springt das Raster. Deshalb dasselbe Muster wie in
     der Medien-Übersicht von FutureWE (custom_medien.css): gleich breite
     Spalten, „Alle" volle Breite in einer eigenen Zeile darüber, gleiche
     Höhen je Zeile (das macht flex von allein).

     Sieben Chips ergeben so: „Alle", dann zwei Zeilen zu dritt.

     BEWUSST Grid und nicht Flexbox: Mit `flex: 0 0 calc(50% - gap/2)`
     geht die Rechnung zwar exakt auf, aber Browser runden Teilpixel auf.
     Fehlt ein Zehntelpixel, rutscht der zweite Chip in die nächste Zeile –
     und weil `flex-shrink: 0` nötig war, konnte er nicht nachgeben. Genau
     das passierte unterhalb von 384 px. Grid teilt die Spuren exakt auf,
     `minmax(0, 1fr)` verhindert zusätzlich, dass ein langes Wort wie
     „Energiemanagement" seine Spalte breiter zieht als die Schwesterspalte. */
  .vm-faq-filter {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .vm-faq-chip {
    justify-content: center;
    text-align: center;
    white-space: normal;
    margin-top: 0;
  }

  .vm-faq-chip:first-child {
    grid-column: 1 / -1;   /* „Alle" über die volle Breite */
  }
}

@media (max-width: 700px) {
  /* Die Einleitung erklärt, was das Suchfeld und die Chips darunter
     ohnehin zeigen. Auf dem Telefon kostet sie aber zwei Zeilen, und der
     Kopfbereich füllt dort mit Überschrift, Suchfeld und sieben Chips
     schon den halben Bildschirm – die Treffer rutschen dadurch weit unter
     den sichtbaren Bereich. Deshalb hier weg.

     Bewusst `display: none` und nicht nur optisch versteckt: Der Satz
     trägt keine Information, die jemandem fehlt, der die Seite hört. */
  .vm-faq .vm-faq-intro {
    display: none;
  }

  .vm-faq-karte-kopf {
    flex-wrap: wrap;
  }
  
  /* Die Plakette rutscht unter den Namen, statt den Claim zu quetschen. */
  .vm-faq-karte-anzahl {
    order: 3;
    margin-left: calc(2.4rem + 0.9rem);
  }

  .vm-faq-frage-titel {
    padding-right: 1.9rem;
  }
  .vm-faq .vm-faq-headline {
  padding-bottom: 0.25em;
}

  /* Zu dritt wird es hier zu eng – zwei Spalten, „Alle" weiterhin allein
     darüber. Ergibt „Alle" plus drei Zeilen zu zweit. */
  .vm-faq-filter {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* ---------------------------------------------------------------------
   Zwei Spalten bis hinunter zu 370 px halten
   ---------------------------------------------------------------------
   Ab hier reicht die Breite für „Energiemanagement" und „Wartung &
   Service" nicht mehr, solange die Chips fett und großzügig gepolstert
   sind. Statt sie umbrechen zu lassen, wird der Chip selbst schmaler:
   weniger Abstand zwischen den Chips, weniger Polsterung innen und
   Schriftschnitt 500 statt 700. Fett bleibt allein der aktive Chip –
   der muss sich weiterhin abheben, und er ist nur einer.
   --------------------------------------------------------------------- */
@media (max-width: 500px) {
  .vm-faq {
    --vm-faq-chip-gap: 0.25rem;
  }

  /* Seitliche Polsterung runter, senkrechte leicht hoch: Der Chip wird
     schmaler, bleibt aber eine bequem treffbare Fläche (rund 39 px hoch). */
  .vm-faq-chip {
    padding: 0.65rem 0.5rem;
    gap: 0.4em;
    font-weight: 500;
    font-size: 0.85rem;
  }

  .vm-faq-chip.-aktiv,
  .vm-faq-chip[aria-pressed="true"] {
    font-weight: 700;
  }

  .vm-faq-chip-zahl {
    padding: 0.1em 0.4em;
  }
  
  .vm-faq .vm-faq-headline.font-size-xxl {
  font-size: 1.3em !important;
}
}

/* Unter 370 px hilft auch das nichts mehr – dort stehen die Themen
   untereinander. Solche Geräte sind selten; die Liste wird dadurch
   länger, bleibt aber lesbar und bündig. */
@media (max-width: 370px) {
  .vm-faq-filter {
    grid-template-columns: 1fr;
  }
}

/* Wer „weniger Bewegung" eingestellt hat, bekommt keine. */
@media (prefers-reduced-motion: reduce) {
  .vm-faq-chip,
  .vm-faq-frage-titel,
  .vm-faq-alle .vm-icon,
  .vm-faq-weiterlesen .vm-icon {
    transition: none;
  }
  .vm-faq-alle:hover .vm-icon,
  .vm-faq-weiterlesen:hover .vm-icon {
    transform: none;
  }
}

/* =====================================================================
   be on solar – TIMELINE
   ---------------------------------------------------------------------
   Zum RSCE „VM Timeline" (rsce_vm_timeline.html5).
   Wenige Eckpunkte auf einer Linie: Icon, kurzer Steg hinunter zur Marke
   auf der Linie, darunter Titel und ein Satz.

   ZWEI ANSICHTEN, KEINE DAZWISCHEN
   Waagerecht, solange alle Punkte in EINE Reihe passen – darunter
   senkrecht mit dem Text neben der Linie. Bewusst KEINE Zwischenstufe
   mit zwei Punkten je Reihe: Bei einer Timeline ist die Linie die
   Aussage. Bricht sie um, endet sie rechts im Nichts und beginnt links
   wieder im Nichts; aus einer Abfolge werden optisch zwei Paare. Die
   senkrechte Ansicht mit Text daneben nutzt die Breite genauso gut und
   lässt die Reihenfolge lückenlos.

   Nach custom_vm_base.css und custom_vm_icons.css laden.
   ===================================================================== */

.vm-timeline {
  --vm-timeline-linie: var(--vm-border-accent, #cfe0f0);
  --vm-timeline-marke: var(--vm-cta, #fbba00);
  --vm-timeline-icon: var(--vm-primary, #004994);

  /* Abstand zwischen den Punkten. Als Variable, weil die waagerechte
     Linie ihn überbrücken muss und sonst in der Lücke abrisse. */
  --vm-timeline-abstand: clamp(1rem, 3vw, 2.5rem);

  /* Höhe der Zeile, in der die Marke sitzt. Sie ist die Bezugsgröße für
     Linie und Steg – beide setzen an ihrer Mitte an. */
  --vm-timeline-schiene: 1.25rem;

  --vm-timeline-markegroesse: 0.7rem;
}

/* Doppelt geklassert: ONEO setzt `.main-content h2` (0,1,1). */
.vm-timeline .vm-timeline-headline {
  margin: 0 0 1.75rem;
  color: var(--vm-primary, #004994);
  font-weight: var(--vm-fw-head, 700);
  line-height: 1.2;
}

.vm-timeline-punkte {
  margin: 0;
  padding: 0;
  list-style: none;
}

/* ---------------------------------------------------------------------
   1) Waagerecht
   --------------------------------------------------------------------- */
.vm-timeline.-auto .vm-timeline-punkte {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(0, 1fr);   /* alle Punkte gleich breit */
  gap: var(--vm-timeline-abstand);
  align-items: start;
}

.vm-timeline.-auto .vm-timeline-punkt {
  display: grid;
  grid-template-rows: auto var(--vm-timeline-schiene) auto;
  justify-items: center;
  text-align: center;
  gap: 0.5rem;
}

.vm-timeline.-auto .vm-timeline-icon {
  color: var(--vm-timeline-icon);
}
.vm-timeline.-auto .vm-timeline-icon .vm-icon {
  width: 2.1rem;
  height: 2.1rem;
}

/* Hat ein Punkt kein Icon, hält der leere Span waagerecht die Zeilenhöhe –
   sonst säßen die Marken auf unterschiedlicher Höhe und die Linie liefe
   schief. Senkrecht steht nichts nebeneinander, dort kann er weg. */
.vm-timeline.-auto .vm-timeline-icon--leer {
  display: block;
  width: 2.1rem;
  height: 2.1rem;
}

.vm-timeline.-senkrecht .vm-timeline-icon--leer {
  display: none;
}

/* --- Die Schiene: Marke, Linie und Steg ------------------------------ */
.vm-timeline.-auto .vm-timeline-schiene {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: var(--vm-timeline-schiene);
}

.vm-timeline-marke {
  position: relative;
  z-index: 1;                 /* liegt auf der Linie, nicht darunter */
  width: var(--vm-timeline-markegroesse);
  height: var(--vm-timeline-markegroesse);
  border-radius: 3px;         /* Quader, keine Kugel – wie das Akzent-
                                 quadrat im Vortitel */
  background: var(--vm-timeline-marke);
}

/* Der Steg vom Icon hinunter zur Marke. Er beginnt in der Mitte der
   Schiene und reicht nach oben bis an die Icon-Zeile – die halbe
   Schienenhöhe plus der Rasterabstand darüber. */
.vm-timeline.-auto .vm-timeline-schiene::before {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 50%;
  width: 1px;
  height: calc(50% + 0.5rem);
  background: var(--vm-timeline-linie);
}

/* Die waagerechte Linie wird NICHT als ein Strich über das ganze Raster
   gezogen, sondern je Punkt als Stück nach rechts zum nächsten. So
   stimmt sie bei jeder Anzahl von Punkten, und sie ragt nicht über den
   ersten und letzten hinaus. Die Breite ist eine Spalte plus die Lücke,
   weil sie von Mitte zu Mitte reicht. */
.vm-timeline.-auto .vm-timeline-schiene::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: calc(100% + var(--vm-timeline-abstand));
  height: 1px;
  background: var(--vm-timeline-linie);
}

.vm-timeline.-auto .vm-timeline-punkt:last-child .vm-timeline-schiene::after {
  display: none;
}

/* --- Texte ----------------------------------------------------------- */
.vm-timeline .vm-timeline-titel {
  margin: 0 0 0.25em;
  color: var(--vm-primary, #004994);
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.3;
}

.vm-timeline .vm-timeline-text {
  margin: 0;
  color: var(--vm-text-2, #6b6b6a);
  font-size: 0.95rem;
  line-height: 1.45;
}

/* ---------------------------------------------------------------------
   2) Senkrecht
   ---------------------------------------------------------------------
   Gilt unterhalb von 900 px und für die Einstellung „Immer untereinander".
   Aufbau je Punkt: links die Schiene mit Marke und durchlaufender Linie,
   rechts Icon, Titel und Text. Der Text steht damit NEBEN der Linie und
   nicht darunter – das nutzt die Breite auf dem Tablet aus.
   --------------------------------------------------------------------- */
.vm-timeline.-senkrecht .vm-timeline-punkt {
  position: relative;
  display: grid;
  grid-template-columns: var(--vm-timeline-schiene) minmax(0, 1fr);
  column-gap: 1rem;
  align-items: start;
}

.vm-timeline.-senkrecht .vm-timeline-punkt + .vm-timeline-punkt {
  margin-top: 1.5rem;
}

/* Die Schiene läuft über beide Zeilen des Punktes – nur so reicht die
   Linie bis zum nächsten Punkt hinunter. */
.vm-timeline.-senkrecht .vm-timeline-schiene {
  position: relative;
  grid-column: 1;
  grid-row: 1 / -1;
  display: flex;
  justify-content: center;
  align-self: stretch;
  padding-top: 0.55rem;       /* Marke auf Höhe der ersten Textzeile */
}

/* Senkrechte Linie von der Marke bis unter den Punkt. Der letzte Punkt
   bekommt keine – sonst liefe sie ins Leere. */
.vm-timeline.-senkrecht .vm-timeline-schiene::after {
  content: "";
  position: absolute;
  top: 0.55rem;
  left: 50%;
  width: 1px;
  height: calc(100% + 1.5rem);
  background: var(--vm-timeline-linie);
}

.vm-timeline.-senkrecht .vm-timeline-punkt:last-child .vm-timeline-schiene::after {
  display: none;
}

.vm-timeline.-senkrecht .vm-timeline-marke {
  align-self: flex-start;
}

.vm-timeline.-senkrecht .vm-timeline-icon {
  grid-column: 2;
  grid-row: 1;
  color: var(--vm-timeline-icon);
  margin-bottom: 0.5rem;
}
.vm-timeline.-senkrecht .vm-timeline-icon .vm-icon {
  width: 1.9rem;
  height: 1.9rem;
}

.vm-timeline.-senkrecht .vm-timeline-body {
  grid-column: 2;
  grid-row: 2;
  text-align: left;
}

/* ---------------------------------------------------------------------
   3) Umschaltpunkt
   ---------------------------------------------------------------------
   Unterhalb von 900 px übernimmt die senkrechte Ansicht. Die Regeln
   dafür sind dieselben wie oben – deshalb hier nur der Wechsel der
   Grundstruktur, nicht die ganze Ansicht ein zweites Mal.
   --------------------------------------------------------------------- */
@media (max-width: 900px) {
  .vm-timeline.-auto .vm-timeline-punkte {
    display: block;
  }

  .vm-timeline.-auto .vm-timeline-punkt {
    display: grid;
    grid-template-columns: var(--vm-timeline-schiene) minmax(0, 1fr);
    grid-template-rows: auto auto;
    gap: 0 1rem;   /* Zeilenabstand 0, Spaltenabstand 1rem – als EINE
                      Angabe, weil ein späteres `gap` den vorher gesetzten
                      column-gap wieder zurücksetzen würde */
    justify-items: stretch;
    text-align: left;
    position: relative;
  }

  .vm-timeline.-auto .vm-timeline-punkt + .vm-timeline-punkt {
    margin-top: 1.5rem;
  }

  .vm-timeline.-auto .vm-timeline-schiene {
    grid-column: 1;
    grid-row: 1 / -1;
    display: flex;
    justify-content: center;
    align-self: stretch;
    width: auto;
    height: auto;
    padding-top: 0.55rem;
  }

  /* Der Steg entfällt: Er verband Icon und Marke senkrecht – hier stehen
     beide nebeneinander, er hätte nichts mehr zu verbinden. */
  .vm-timeline.-auto .vm-timeline-schiene::before {
    display: none;
  }

  .vm-timeline.-auto .vm-timeline-schiene::after {
    top: 0.55rem;
    left: 50%;
    width: 1px;
    height: calc(100% + 1.5rem);
  }

  .vm-timeline.-auto .vm-timeline-marke {
    align-self: flex-start;
  }

  .vm-timeline.-auto .vm-timeline-icon {
    grid-column: 2;
    grid-row: 1;
    margin-bottom: 0.5rem;
  }
  .vm-timeline.-auto .vm-timeline-icon .vm-icon {
    width: 1.9rem;
    height: 1.9rem;
  }

  .vm-timeline.-auto .vm-timeline-body {
    grid-column: 2;
    grid-row: 2;
    text-align: left;
  }
}

/* =====================================================================
   be on solar – QUICKNAV (Schnellzugriff, unterer Bildschirmrand)
   ---------------------------------------------------------------------
   Übernommen aus dem donum-vitae-Set und für be on solar umbenannt.
   ERSETZT die frühere Fassung (.vm-quicknav, vertikale Leiste
   am rechten Rand) – deren Custom-HTML-Element wird NICHT mehr gebraucht.

   EINBAU IN CONTAO:
   - Modul „Individuelle Navigation" anlegen, gewünschte Seiten wählen,
     im Feld „CSS-Klasse" -> quicknav
   - Modul in den Layout-Bereich einfügen, der auf JEDER Seite ausgegeben
     wird (z. B. Fußzeile). Kein eigenes Template nötig.
   - Icons optional: pro Seite in Contao (Seite -> Experteneinstellungen ->
     CSS-Klasse) eine Icon-Klasse aus custom_vm_icons.css eintragen,
     z. B. vm-ico--phone. Gezeichnet wird sie in Abschnitt 3b.
     WICHTIG: custom_vm_icons.css muss VOR dieser Datei geladen werden,
     sonst steht --vm-ico nicht bereit und es erscheint kein Icon.

   Optik: schwebende Leiste in Hellblau (--vm-surface-icon), Einträge als
   abgerundete „Chips" mit blauer Schrift (--vm-primary, rund 8:1).
   Vorher war die Leiste orange – das war auffälliger, wirkte aber wie ein
   Warnhinweis. Hellblau ist freundlicher und hebt sich vom weißen Grund
   trotzdem deutlich ab. Überfahren und aktiv: weiße Fläche, Schrift bleibt
   blau (rund 11:1).
   Hover/aktiv füllt den Chip (nicht die harte Zelle) -> saubere Ecken.
   Desktop: Schrift fließend bis ~19px. Mobil: Icon über Label gestapelt,
   Schrift schrumpft -> alle Punkte passen in eine Reihe.
   Farb-/Maß-Tokens wie in custom_vm_icon_boxes.css (--vm-*).
   Nach dem ONEO-Framework-CSS laden.
   ===================================================================== */

/* 0) PLATZ AM SEITENENDE ---------------------------------------------
   Die Leiste ist `position: fixed` und liegt damit ÜBER dem Dokument –
   das Dokument endet aber weiterhin dort, wo es endet. Ohne Reserve
   klemmt der letzte Inhalt einer Seite unter der Leiste.

   Der Wert wird hier EINMAL gesetzt und in custom_vm_footer.css auf das
   Fußband addiert. Bewusst dort und nicht auf .page: Das graue Band
   läuft so hinter der Leiste weiter, statt in einem weißen Streifen zu
   enden. Fehlt diese Datei einmal, greift dort der Rückfallwert 0px und
   der Fuß sieht aus wie vorher.

   5,5rem deckt beide Fassungen ab: Desktop rund 70px (schwebende Leiste
   + Abstand zum Rand), Mobil rund 68px (randlose Leiste). */
:root {
  --vm-quicknav-space: calc(5.5rem + env(safe-area-inset-bottom));
}

/* Sprungmarken nicht hinter der Leiste landen lassen. */
html {
  scroll-padding-bottom: var(--vm-quicknav-space);
}

/* 1) WRAPPER – fixiert, zentriert, hebt die Leiste vom Rand ab -------- */
.quicknav {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  z-index: 100;

  display: flex;
  justify-content: center;

  /* Abstand zum unteren Rand + iPhone-Safe-Area */
  padding: 0 1rem calc(0.75rem + env(safe-area-inset-bottom));

  /* der transparente Randbereich soll keine Klicks abfangen */
  pointer-events: none;
}

/* 2) DIE LEISTE – Liste als schwebender Container --------------------- */
.quicknav ul {
  list-style: none;
  display: flex;
  flex-direction: row;               /* nebeneinander – auch wenn eine Fuß-Regel
                                        im Theme flex-direction: column setzt */
  gap: 4px;                          /* Luft zwischen den Chips */
  margin: 0 !important;
  padding: 6px !important;           /* Innenrand -> Chips schweben im Container */

  background: var(--vm-surface-icon);
  border: 1px solid var(--vm-border-accent);
  border-radius: var(--vm-radius);   /* 20px – etwas geringer als Vollrund, wie die Karten */

  /* an die Kartenschatten angelehnt, aber kräftiger, da frei schwebend */
  box-shadow: 0 6px 28px rgba(0, 0, 0, 0.14);

  pointer-events: auto;              /* Leiste selbst wieder klickbar */
}

.quicknav ul li {
  display: flex;
  margin: 0;
}

/* ONEO/Listen-Bullet abschalten */
.quicknav ul li::before {
  display: none !important;
}

/* 3) EINTRÄGE (Chips) ------------------------------------------------- */
.quicknav ul li a {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.55em;

  padding: 0.7em 1.15em;
  line-height: 1;

  border-radius: calc(var(--vm-radius) - 6px);   /* konzentrisch zum Container (14px) */

  color: var(--vm-primary);            /* ~8:1 auf Hellblau */
  font-weight: 600;
  /* Desktop/Tablet: min. 16px (Barrierefreiheit), fließend bis ~19px */
  font-size: clamp(1rem, 0.72rem + 0.9vw, 1.2rem);
  letter-spacing: 0.02em;
  white-space: nowrap;

  text-decoration: none !important;
  background: transparent;
  transition: background-color var(--vm-transition), color var(--vm-transition);
}

.quicknav ul li a:hover,
.quicknav ul li a:focus-visible {
  /* weißer Chip auf der hellblauen Leiste – hebt sich klar ab, ohne eine
     weitere Farbe einzuführen. Schrift bleibt blau. */
  background: var(--vm-white);
  color: var(--vm-primary);
}

/* aktiver Menüpunkt – weißer Chip, wie beim Überfahren */
.quicknav ul li a.active,
.quicknav ul li strong.active {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.55em;
  padding: 0.7em 1.15em;
  line-height: 1;                    /* identisch zum Normalzustand */
  border-radius: calc(var(--vm-radius) - 6px);
  background: var(--vm-white);
  color: var(--vm-primary);
}

/* 3b) ICONS AUS DER SEITEN-CSS-KLASSE ---------------------------------
   Die Seite bekommt in Contao unter „Experteneinstellungen -> CSS-Klasse"
   direkt eine vorhandene Icon-Klasse, z. B. `vm-ico--phone`.

   Diese Klasse setzt NUR die Variable --vm-ico (custom_vm_icons.css) –
   sie zeichnet nichts. Genau das passiert hier: Die Variable wird als
   Maske vor den Text gemalt. Deshalb braucht die Quicknav keine zweite
   Icon-Liste, die auseinanderlaufen könnte.

   Contao schreibt die Seiten-CSS-Klasse je nach Navigations-Template auf
   das <li> ODER auf das <a>/<strong> – beide Fälle sind abgedeckt.
   Das Icon nimmt per currentColor die Chip-Farbe an und wechselt damit
   beim Überfahren automatisch mit. */
.quicknav ul li[class*="vm-ico--"] > a::before,
.quicknav ul li[class*="vm-ico--"] > strong::before,
.quicknav ul li a[class*="vm-ico--"]::before,
.quicknav ul li strong[class*="vm-ico--"]::before {
  content: "";
  display: block;
  width: 1.15em;
  height: 1.15em;
  background-color: currentColor;
  -webkit-mask: var(--vm-ico) center / contain no-repeat;
          mask: var(--vm-ico) center / contain no-repeat;
}

/* Der aktive Punkt ist ein <strong>. Auch ohne .active (z. B. bei
   Weiterleitungsseiten) braucht er den Flex-Kontext, sonst sitzt das Icon
   über statt neben dem Text. */
.quicknav ul li strong {
  display: flex;
  align-items: center;
  gap: 0.55em;
  font-size: clamp(1rem, 0.72rem + 0.9vw, 1.2rem);

  /* Gleiche Zeilenhöhe wie beim Link. Ohne diese Zeile erbt das <strong>
     die Zeilenhöhe des Themes (1,6) und wird höher als die übrigen Chips –
     die ganze Leiste wächst dann mit, sobald man auf einer der verlinkten
     Seiten steht. */
  line-height: 1;
}

/* Icons (Icon-Font-Glyphe / <i> / <svg> / <img>) sauber ausrichten */
.quicknav ul li a i,
.quicknav ul li a svg,
.quicknav ul li a img,
.quicknav ul li a::before,
.quicknav ul li strong::before {
  flex: 0 0 auto;
  line-height: 1;
  margin-right: 0;
}

/* 4) MOBIL – Icon über Label, alle Punkte in einer Reihe -------------
   900px = Hauptumbruch des Systems. Bewusst derselbe Wert, an dem auch
   die Hauptnavigation auf die mobile Fassung wechselt – sonst ändert
   die Leiste ihre Form, während die Navigation noch Desktop ist. */
@media (max-width: 900px) {
  .quicknav {
    /* randlose Leiste über die volle Breite */
    padding: 0 0 env(safe-area-inset-bottom);
  }

  .quicknav ul {
    width: 100%;
    gap: 0;
    padding: 4px !important;
    border: none;
    border-top: 1px solid var(--vm-border-accent);
    border-bottom: 1px solid var(--vm-border-accent);
    border-radius: 0;
    box-shadow: 0 -2px 14px rgba(0, 0, 0, 0.12);
  }

  .quicknav ul li {
    flex: 1;                         /* gleiche Breite, füllt die Reihe */
    min-width: 0;
  }

  .quicknav ul li a,
  .quicknav ul li strong {
    flex-direction: column;         /* Icon oben, Label darunter */
    gap: 0.3em;
    padding: 0.5em 0.2em;
    border-radius: 12px;
    /* schrumpft, damit auch „Newsletter" in die Reihe passt */
    font-size: clamp(0.6875rem, 2.9vw, 0.8125rem);
    font-weight: 400;
    width: 100%;
  }
  
  .quicknav ul li a:hover,
  .quicknav ul li a:focus-visible {
    background: transparent;
    color: var(--vm-primary);
  }

  /* Icon größer als das Label (Kleinanzeigen-Optik) */
  .quicknav ul li a i,
  .quicknav ul li a svg,
  .quicknav ul li a img,
  .quicknav ul li a::before,
  .quicknav ul li strong::before {
    font-size: 1.3rem;              /* Icon-Font-Glyphe */
    width: auto;
  }
  .quicknav ul li a::before,
  .quicknav ul li strong::before {
    margin-right: 0;
  }

  /* Die Maske braucht eine feste Breite – `width: auto` aus der Regel
     darüber gilt nur für Icon-Font-Glyphen. Ohne diese Zeile zöge sich
     der maskierte Kasten in der Spalte auf die volle Chip-Breite. */
  .quicknav ul li[class*="vm-ico--"] > a::before,
  .quicknav ul li[class*="vm-ico--"] > strong::before,
  .quicknav ul li a[class*="vm-ico--"]::before,
  .quicknav ul li strong[class*="vm-ico--"]::before {
    width: 1.15em;
    height: 1.15em;
  }
  .quicknav ul li a svg,
  .quicknav ul li a img {
    width: 1.3rem;                  /* SVG/Bild-Icon */
    height: auto;
  }
}

/* 5) MOBIL KLEIN – Breiten auf kleinen Displays anpassen ------------- */
@media (max-width: 500px) {
.quicknav ul {
    padding: 4px 0 !important;
  }
.quicknav ul li {
    padding-left: 0 !important;
  }
}

/* =====================================================================
   be on solar – HERO
   ---------------------------------------------------------------------
   Zum RSCE „VM Hero" (rsce_vm_hero.html5).
   Großes Kopfbild mit weißem Text darauf, darunter die Einstiegsleiste.

   Nach custom_vm_base.css und custom_vm_icon_boxes.css laden
   (nutzt deren --vm-*-Tokens). Icons kommen aus custom_vm_icons.css,
   die Buttons aus custom_vm_buttons.css – hier wird nur ergänzt, was
   auf dem Bild anders sein muss.

   LESBARKEIT: Weiße Schrift auf Foto trägt nur mit Verdunklung. Die
   drei Stufen unten sind so gewählt, dass Fließtext auch auf hellen
   Fotos über 4,5:1 bleibt. Die vierte Stufe „ohne" geht einen anderen
   Weg: Sie lässt das Foto unangetastet und stellt den Text stattdessen
   auf eine eigene schwarze Fläche. Das Motiv bleibt damit rundherum
   sichtbar – siehe Abschnitt 1b.
   ===================================================================== */

/* ---------------------------------------------------------------------
   1) Bildbereich
   --------------------------------------------------------------------- */
.vm-hero {
  position: relative;
  display: flex;
  align-items: center;
  overflow: hidden;
  isolation: isolate;             /* Schleier bleibt im Element */
  color: var(--vm-white, #fff);

  /* Fläche hinter dem Text bei „Verdunklung: Ohne". Bewusst Schwarz und
     nicht das Hausblau: Kopfleiste, Buttons und Iconfelder sind schon
     blau – eine weitere blaue Fläche quer über dem Bild wäre zu viel.
     Zur Deckkraft siehe Abschnitt 1b. */
  --vm-hero-flaeche: rgba(0, 0, 0, 0.6);

  /* Fläche für den gestapelten Aufbau auf schmalen Displays
     (Abschnitt 4). Dort liegt sie nicht mehr auf dem Foto, sondern auf
     der weißen Seite – deshalb deckend und hell statt durchscheinend
     schwarz. Auf ihr steht der Text in den normalen Seitenfarben:
     Fließtext #333 (11,8:1), Überschrift im Hausblau (8,2:1). */
  --vm-hero-flaeche-mobil: var(--vm-surface-light, #f4f7fa);

  /* Breite des Textblocks und die Polsterung der Fläche. Beides hier,
     weil die Stufe „Ohne" die Polsterung auf die Breite draufrechnen
     muss: Sonst stünde ihr Text um die Polsterung schmaler als in den
     drei Verdunklungsstufen und die Überschrift bräche anders um. */
  --vm-hero-textbreite: 42rem;
  --vm-hero-flaeche-luft: clamp(1.5rem, 1rem + 2vw, 2.5rem);

  /* Abstand der Bildunterschrift zur unteren Bildkante. Steht hier als
     Variable, weil eine überlappende Einstiegsleiste sie nach oben
     schieben muss – siehe Abschnitt 1c. */
  --vm-hero-caption-abstand: 1rem;

  /* Abstand zur linken bzw. rechten Bildkante. Bewusst klein: Die
     Unterschrift soll in der Bildecke sitzen, nicht am Textraster. */
  --vm-hero-caption-rand: 0.9rem;
}

/* Höhenstufen (Feld „Höhe") */
.vm-hero.-hoehe-mittel { min-height: 420px; padding-block: clamp(3rem, 6vw, 4.5rem); }
.vm-hero.-hoehe-gross  { min-height: 620px; padding-block: clamp(4rem, 8vw, 6rem); }
.vm-hero.-hoehe-voll   { min-height: 88vh;  padding-block: clamp(4rem, 8vw, 6rem); }

/* Bild formatfüllend hinter den Text. Über <picture> statt CSS-Hintergrund,
   damit Contao die Auflösungen (srcset) selbst ausspielt.

   STAPELREIHENFOLGE: Bild < Schleier < Text < Bildunterschrift.
   Bewusst OHNE eigenen z-index (früher -2): Ein z-index würde aus der
   <figure> einen eigenen Stapelkontext machen, und die Bildunterschrift
   darin käme nie über den Schleier – sie wäre mitverdunkelt. Ohne z-index
   liegt die absolut positionierte Figur einfach in Dokumentreihenfolge
   ganz unten, und die figcaption kann sich per z-index nach ganz oben
   stellen. Schleier und Text bekommen dafür positive Werte (vorher -1
   bzw. auto) – die Reihenfolge untereinander bleibt exakt dieselbe. */
.vm-hero-bild {
  position: absolute;
  inset: 0;
  margin: 0;              /* <figure> bringt eigene Ränder mit */
}
.vm-hero-bild img,
.vm-hero-bild picture,
.vm-hero-bild source {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Bildausschnitt (Feld „Bildausschnitt") */
.vm-hero.-pos-mitte  .vm-hero-bild img { object-position: center center; }
.vm-hero.-pos-oben   .vm-hero-bild img { object-position: center top; }
.vm-hero.-pos-unten  .vm-hero-bild img { object-position: center bottom; }
.vm-hero.-pos-links  .vm-hero-bild img { object-position: left center; }
.vm-hero.-pos-rechts .vm-hero-bild img { object-position: right center; }

/* Verdunklung: von links kräftig, nach rechts auslaufend. So bleibt der
   Text lesbar und das Motiv rechts (z. B. die Sonne) sichtbar. */
.vm-hero-schleier {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
}
.vm-hero.-overlay-leicht .vm-hero-schleier {
  background: linear-gradient(100deg,
    rgba(0, 40, 84, 0.62) 0%, rgba(0, 45, 95, 0.34) 42%, rgba(0, 55, 110, 0) 76%);
}
.vm-hero.-overlay-mittel .vm-hero-schleier {
  background: linear-gradient(100deg,
    rgba(0, 40, 84, 0.80) 0%, rgba(0, 45, 95, 0.58) 40%, rgba(0, 55, 110, 0.06) 74%);
}
.vm-hero.-overlay-stark .vm-hero-schleier {
  background: linear-gradient(100deg,
    rgba(0, 40, 84, 0.92) 0%, rgba(0, 45, 95, 0.76) 46%, rgba(0, 55, 110, 0.30) 82%);
}

/* ---------------------------------------------------------------------
   1b) Stufe „Ohne": Fläche hinter dem Text statt Schleier über dem Bild
   ---------------------------------------------------------------------
   Das Foto bleibt unverdunkelt, der Textblock links bekommt seine eigene
   dunkle Fläche. So bleibt das Motiv vollständig sichtbar und die weiße
   Schrift trotzdem lesbar.

   Warum 0.6 und nicht weniger: Der ungünstigste Fall ist ein rein weißes
   Foto hinter der Fläche. Weiße Schrift kommt dort bei 0.6 noch auf
   5,7:1 (gefordert sind 4,5:1), bei 0.55 auf 4,8:1 und bei 0.5 nur noch
   auf 4,0:1 – dann ist die Grenze gerissen. Wer das Foto stärker
   durchscheinen lassen will, ändert --vm-hero-flaeche weiter oben, sollte
   aber nicht unter 0.55 gehen.
   --------------------------------------------------------------------- */
.vm-hero.-overlay-ohne .vm-hero-schleier { background: none; }

.vm-hero.-overlay-ohne .vm-hero-text {
  max-width: calc(var(--vm-hero-textbreite) + 2 * var(--vm-hero-flaeche-luft));
  padding: var(--vm-hero-flaeche-luft);
  border-radius: var(--vm-radius, 10px);
  background: var(--vm-hero-flaeche);
}

/* ---------------------------------------------------------------------
   1c) Bildunterschrift
   ---------------------------------------------------------------------
   Kleines helles Feld auf der unteren Bildkante – z. B. „Bild mit KI
   generiert". Gleiche Optik wie die Bildunterschrift in Teaser-, Team-
   und News-Kacheln (.vm-teaser-caption), nur eigene Klasse, weil der
   Hero die Ausrichtung links/zentriert/rechts braucht.

   Sie richtet sich BEWUSST am Bild aus und nicht am Inhaltsbereich:
   „Rechtsbündig" heißt in die rechte Bildecke, mit wenig Luft zur Kante –
   nicht bündig unter dem Textraster. Das Bild läuft über die volle Breite,
   und eine Kennzeichnung wie „Bild mit KI generiert" gehört ans Bild, nicht
   in die Textspalte.

   Die figcaption ist der volle Streifen (deshalb inset-inline), das <span>
   darin ist das sichtbare Feld. Nur so lässt sich „zentriert" sauber bauen.
   --------------------------------------------------------------------- */
.vm-hero-bildunterschrift {
  position: absolute;
  inset-inline: 0;
  bottom: var(--vm-hero-caption-abstand);
  z-index: 3;             /* über Schleier (1) und Text (2) */

  box-sizing: border-box;
  padding-inline: var(--vm-hero-caption-rand);

  display: flex;
  justify-content: flex-end;   /* Standard: rechtsbündig */
  pointer-events: none;        /* nimmt dem Bild nichts weg */
}

/* Ausrichtung (Feld „Bildunterschrift – Ausrichtung") */
.vm-hero.-caption-links     .vm-hero-bildunterschrift { justify-content: flex-start; }
.vm-hero.-caption-zentriert .vm-hero-bildunterschrift { justify-content: center; }
.vm-hero.-caption-rechts    .vm-hero-bildunterschrift { justify-content: flex-end; }

/* Das sichtbare Feld. Schrift in der normalen Textfarbe #333, Deckkraft
   0,8 wie in den Kacheln. Der ungünstigste Fall ist ein tiefschwarzes
   Foto hinter dem Feld – 80 % Weiß darüber ergibt #CCC, und #333 kommt
   dort noch auf 7,9:1 (gefordert sind 4,5:1). Über hellen Motiven sind
   es bis zu 12,6:1. Die Deckkraft sollte trotzdem nicht unter 0,75. */
.vm-hero-bildunterschrift-text {
  display: inline-block;
  max-width: 100%;

  padding: 0.25em 0.65em;
  border-radius: var(--vm-radius-small, 7px);

  background: rgba(255, 255, 255, 0.8);
  color: var(--vm-text, #333333);
  font-size: 0.75rem;
  line-height: 1.35;
  text-align: left;

  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.12);
}

/* border-box lokal setzen, wie in den übrigen VM-Bauteilen auch (das
   Theme setzt es nicht global). Nötig, weil .vm-hero-inner width:100%
   UND Seitenabstand hat: Als Flex-Kind von .vm-hero wurde die Differenz
   bisher weggeschrumpft, im gestapelten Aufbau (Abschnitt 4) steht es
   als normaler Block – dort ragte der Streifen sonst um genau den
   Seitenabstand nach rechts heraus und overflow:hidden schnitt die
   letzten Buchstaben jeder Zeile ab. */
.vm-hero-inner,
.vm-hero-text {
  box-sizing: border-box;
}

.vm-hero-inner {
  position: relative;
  z-index: 2;             /* über dem Schleier – s. .vm-hero-bild */
  width: 100%;
  max-width: var(--vm-content-max, 1440px);
  margin-inline: auto;
  padding-left: var(--page-padding-left, clamp(1.15rem, 4vw, 4rem));
  padding-right: var(--page-padding-right, clamp(1.15rem, 4vw, 4rem));
  padding-bottom: 2rem;
}

.vm-hero-text { max-width: var(--vm-hero-textbreite); }

/* Vortitel: gleiche Klasse wie überall (.vm-preheadline), nur auf dem
   Bild in der Aktionsfarbe statt in der Schriftfarbe. Das Quadrat davor
   kommt aus custom_vm_preheadline.css. */
.vm-hero .vm-preheadline {
  margin-top: 0;
  color: var(--vm-cta, #fbba00);
  font-weight: 700;
  margin-bottom: 0.5rem;
}

/* Doppelt geklassert (.vm-hero .vm-hero-headline = 0,2,0), weil ONEO mit
   `.main-content h1` (0,1,1) Farbe #242424, font-size 2em und margin-top 1em
   setzt. Ohne die zweite Klasse gewinnt das Theme und die Überschrift wird
   dunkelgrau auf dunklem Blau. Kein !important nötig. */
.vm-hero .vm-hero-headline {
  color: var(--vm-white, #fff);
  font-size: clamp(2.2rem, 1.3rem + 3.1vw, 3.5rem);
  font-weight: var(--vm-fw-head, 700);
  line-height: 1.08;
  margin: 0 0 0.5em;
}

.vm-hero-lead {
  font-size: clamp(1.05rem, 1rem + 0.3vw, 1.2rem);
  color: rgba(255, 255, 255, 0.93);
  max-width: 60ch;
}
.vm-hero .vm-hero-lead p { margin-top: 0; }
.vm-hero .vm-hero-lead p:last-child { margin-bottom: 0; }

.vm-hero-aktionen {
  display: flex;
  flex-wrap: wrap;
  gap: 0.9rem;
  margin-top: 2rem;
}

/* Zweiter Button auf dem Bild: der blaue Umriss wäre hier unsichtbar,
   deshalb weiß. Nur innerhalb des Heros – die globale Variante bleibt blau. */
.vm-hero .button.-outline {
  border-color: rgba(255, 255, 255, 0.85);
  color: var(--vm-white, #fff);
  background: transparent;
}
.vm-hero .button.-outline:hover,
.vm-hero .button.-outline:focus-visible {
  background: var(--vm-white, #fff);
  border-color: var(--vm-white, #fff);
  color: var(--vm-primary, #004994);
}
.vm-hero .button:focus-visible,
.vm-hero a:focus-visible {
  outline: 3px solid var(--vm-white, #fff);
  outline-offset: 3px;
}

/* ---------------------------------------------------------------------
   2) Einstiegsleiste
   --------------------------------------------------------------------- */
.vm-hero-boxen {
  position: relative;
  z-index: 3;
  max-width: var(--vm-content-max, 1440px);
  margin-inline: auto;
  padding-left: var(--page-padding-left, clamp(1.15rem, 4vw, 4rem));
  padding-right: var(--page-padding-right, clamp(1.15rem, 4vw, 4rem));
}

/* Überlappend: schiebt sich über die untere Bildkante (Feld „Position") */
.vm-hero-boxen.-ueberlappend { margin-top: -5.5rem; }
.vm-hero-boxen.-darunter     { margin-top: clamp(1.5rem, 3vw, 2.5rem); }

/* Die überlappende Leiste deckt die unteren 5,5rem des Bildes zu – eine
   Bildunterschrift läge darunter und wäre weg. :has() bindet die Zugabe
   daran, dass es die Leiste wirklich gibt; ohne sie bleibt die
   Unterschrift dicht an der Bildkante. */
.vm-hero:has(+ .vm-hero-boxen.-ueberlappend) { --vm-hero-caption-abstand: 6.5rem; }

.vm-hero-boxen-inner {
  display: grid;
  gap: 0;
  background: var(--vm-white, #ffffff);
  border-radius: var(--vm-radius, 10px);
  box-shadow: 0 22px 54px rgba(0, 45, 95, 0.14);
  overflow: hidden;
}
.vm-hero-boxen.-spalten-zwei .vm-hero-boxen-inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.vm-hero-boxen.-spalten-drei .vm-hero-boxen-inner { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.vm-hero-box {
  display: flex;
  gap: 1.6rem;
  padding: clamp(1.6rem, 2.6vw, 2.6rem);
}
/* Trennlinie zwischen den Boxen – ohne Lücke im Kasten */
.vm-hero-box + .vm-hero-box { border-left: 1px solid var(--vm-border, #e3e8ee); }

.vm-hero-box-icon {
  flex: 0 0 auto;
  color: var(--vm-primary, #004994);
}
.vm-hero-box-icon .vm-icon {
  width: 3.1rem;
  height: 3.1rem;
}
/* Kurzer Akzentstrich unter dem Icon – greift die Logo-Kachel auf */
.vm-hero-box-icon::after {
  content: "";
  display: block;
  width: 2.1rem;
  height: 3px;
  border-radius: 2px;
  background: var(--vm-cta, #fbba00);
  margin-top: 0.9rem;
}

/* Alle Absätze in den Boxen doppelt geklassert (0,2,0). ONEO setzt
   `.main-content p { margin-top: .8em; margin-bottom: 1.6em }` mit 0,1,1 –
   dagegen kommt eine einfache Klasse nicht an. Über die Elternklasse
   gewinnen wir per Spezifität statt per !important; das bleibt auch dann
   stabil, wenn sich die Ladereihenfolge der Stylesheets einmal ändert. */
.vm-hero-boxen .vm-hero-box-label {
  margin: 0 0 0.2em;
  color: var(--vm-cta-dark, #e0a600);
  font-weight: 700;
  font-size: 0.95rem;
}

/* Ebenfalls doppelt geklassert: ONEO setzt `.main-content h2` auf
   font-size 2em, font-weight normal und Farbe #242424. */
.vm-hero-boxen .vm-hero-box-headline {
  margin: 0 0 0.35em;
  color: var(--vm-text, #333333);
  font-size: 1.28rem;
  font-weight: var(--vm-fw-head, 700);
  line-height: 1.2;
}
.vm-hero-boxen .vm-hero-box-text {
  margin: 0;
  color: var(--vm-text-2, #6b6b6a);
  font-size: 1rem;
}
.vm-hero-box-link {
  display: inline-flex;
  align-items: center;
  gap: 0.5em;
  margin-top: 0.9rem;
  color: var(--vm-primary, #004994);
  font-weight: 700;
  text-decoration: none;
}
.vm-hero-box-link:hover,
.vm-hero-box-link:focus-visible { color: var(--vm-primary-hover, #003a76); }
.vm-hero-box-link .vm-icon {
  width: 1.05em;
  height: 1.05em;
  transition: transform var(--vm-transition, 200ms ease);
}
.vm-hero-box-link:hover .vm-icon { transform: translateX(3px); }

/* ---------------------------------------------------------------------
   3) Schmale Breiten
   --------------------------------------------------------------------- */
@media (max-width: 900px) {
  .vm-hero.-hoehe-gross,
  .vm-hero.-hoehe-voll { min-height: 0; }

  /* Auf schmalen Displays läuft der Verlauf von oben nach unten,
     sonst liegt die dunkle Seite neben statt hinter dem Text. */
  .vm-hero.-overlay-leicht .vm-hero-schleier {
    background: linear-gradient(170deg, rgba(0,40,84,.68) 0%, rgba(0,45,95,.44) 60%, rgba(0,55,110,.28) 100%);
  }
  .vm-hero.-overlay-mittel .vm-hero-schleier {
    background: linear-gradient(170deg, rgba(0,40,84,.84) 0%, rgba(0,45,95,.62) 55%, rgba(0,55,110,.42) 100%);
  }
  .vm-hero.-overlay-stark .vm-hero-schleier {
    background: linear-gradient(170deg, rgba(0,40,84,.93) 0%, rgba(0,45,95,.80) 55%, rgba(0,55,110,.62) 100%);
  }

  .vm-hero-aktionen { flex-direction: column; align-items: stretch; }
  .vm-hero-aktionen .button { justify-content: center; }

  /* Boxen untereinander, Trennlinie wandert nach oben */
  .vm-hero-boxen.-spalten-zwei .vm-hero-boxen-inner,
  .vm-hero-boxen.-spalten-drei .vm-hero-boxen-inner { grid-template-columns: 1fr; }
  .vm-hero-box + .vm-hero-box {
    border-left: 0;
    border-top: 1px solid var(--vm-border, #e3e8ee);
  }
  .vm-hero-boxen.-ueberlappend { margin-top: -3rem; }

  /* Leiste überlappt hier nur noch 3rem – s. Abschnitt 2 */
  .vm-hero:has(+ .vm-hero-boxen.-ueberlappend) { --vm-hero-caption-abstand: 4rem; }
}

@media (max-width: 700px) {
  .vm-hero-box { gap: 1.1rem; }
  .vm-hero-box-icon .vm-icon { width: 2.5rem; height: 2.5rem; }
}

/* ---------------------------------------------------------------------
   4) „Ohne" auf schmalen Displays: Bild ÜBER den Text statt dahinter
   ---------------------------------------------------------------------
   Auf einem Telefon bleibt neben dem Textblock kein Bild mehr übrig – die
   Fläche deckt das Foto praktisch vollständig zu, und das Motiv, dem
   diese Stufe ja gerade nicht in die Quere kommen soll, ist weg. Deshalb
   rutscht das Bild hier aus dem Hintergrund heraus und steht als eigener
   Streifen über dem Text; darunter läuft die Textfläche über die volle
   Breite statt als gerundeter Kasten mitten im Nichts zu schweben.

   Sie ist hier hellblau und nicht schwarz: Ohne Foto dahinter bräuchte
   die dunkle Fläche keine Verdunklungswirkung mehr, und ein schwarzer
   Block mitten in der weißen Seite wirkt wie ein Fremdkörper. Mit der
   hellen Fläche stehen Vortitel und Fließtext in der normalen
   Schriftfarbe, die Überschrift im Hausblau.

   Gilt NUR für die Stufe „Ohne". Bei „Leicht", „Mittel" und „Stark"
   bleibt der Text wie bisher auf dem Bild – dort sorgt der Schleier für
   die Lesbarkeit, und der wirkt nur, wenn er über dem Foto liegt.
   --------------------------------------------------------------------- */
@media (max-width: 700px) {
  .vm-hero.-overlay-ohne {
    display: block;         /* nicht mehr zentriert übereinander, sondern gestapelt */
    min-height: 0;          /* auch für „Höhe: Mittel", das oben 420px setzt */
    padding-block: 0;

    /* Das Bild ist hier ein eigener Streifen ganz oben, die Einstiegsleiste
       liegt weit darunter auf dem Textblock. Die Zugabe aus Abschnitt 2
       würde die Bildunterschrift also grundlos ins Motiv schieben – hier
       gilt wieder der normale Abstand zur Bildkante. */
    --vm-hero-caption-abstand: 0.75rem;
  }

  /* Bild aus dem Hintergrund in den Textfluss holen. Feste Proportion,
     weil das Feld „Höhe" hier nichts mehr steuert – der Streifen soll auf
     jedem Telefon gleich hoch sein. Der gewählte Bildausschnitt
     (object-position) wirkt unverändert weiter. */
  .vm-hero.-overlay-ohne .vm-hero-bild {
    position: relative;
    inset: auto;
    z-index: auto;
    aspect-ratio: 3 / 2;
  }

  /* Die Fläche trägt jetzt der ganze Streifen, nicht mehr der Textkasten –
     und sie ist hier deckend, weil hinter ihr das Foto fehlt. */
  .vm-hero.-overlay-ohne .vm-hero-inner {
    background: var(--vm-hero-flaeche-mobil);
    color: var(--vm-text, #333333);
    padding-block: clamp(1.75rem, 6vw, 2.5rem);
  }
  .vm-hero.-overlay-ohne .vm-hero-text {
    max-width: none;
    padding: 0;
    background: none;
  }

  /* Schrift auf der hellen Fläche. Alle drei Regeln sind eine Klasse
     spezifischer als ihre Geschwister weiter oben (0,3,0 gegen 0,2,0
     bzw. 0,1,0) – deshalb greifen sie ohne !important. */
  .vm-hero.-overlay-ohne .vm-preheadline { color: var(--vm-text, #333333); }
  .vm-hero.-overlay-ohne .vm-hero-lead   { color: var(--vm-text, #333333); }
  .vm-hero.-overlay-ohne .vm-hero-headline {
    color: var(--vm-primary, #004994);
    font-size: 1.75rem;   /* fest statt clamp(): auf dem Telefon sonst 2,2rem */
  }

  /* Der weiße Umriss-Button und der weiße Fokusrahmen aus Abschnitt 1
     wären auf der hellen Fläche unsichtbar – hier gilt wieder die
     normale blaue Variante wie überall sonst auf der Seite. */
  .vm-hero.-overlay-ohne .button.-outline {
    border-color: var(--vm-primary, #004994);
    color: var(--vm-primary, #004994);
  }
  .vm-hero.-overlay-ohne .button.-outline:hover,
  .vm-hero.-overlay-ohne .button.-outline:focus-visible {
    background: var(--vm-primary, #004994);
    border-color: var(--vm-primary, #004994);
    color: var(--vm-white, #fff);
  }
  .vm-hero.-overlay-ohne .button:focus-visible,
  .vm-hero.-overlay-ohne a:focus-visible {
    outline-color: var(--vm-primary, #004994);
  }

  /* Steht darunter eine überlappende Einstiegsleiste, zieht die sich um
     3rem nach oben (s. Abschnitt 2) und läge sonst auf den Buttons.
     :has() bindet die Zugabe daran, dass es die Leiste wirklich gibt –
     sonst klaffte unter dem letzten Button eine leere dunkle Fläche. */
  .vm-hero.-overlay-ohne:has(+ .vm-hero-boxen.-ueberlappend) .vm-hero-inner {
    padding-bottom: 4.5rem;
  }
}

/* =====================================================================
   be on solar – VM CTA-BOX
   ---------------------------------------------------------------------
   Abschlussbox: Aktions-Button oben, darunter Kontaktzeilen aus Icon,
   Haupteintrag und kleiner Erklärzeile.

   Markup: rsce_vm_cta_box.html5
   Raster: .vm-grid (custom_vm_icon_boxes.css) – nur nötig, wenn mehrere
   Boxen nebeneinander stehen; im Regelfall grid-1.

   NACH custom_vm_icon_boxes.css, custom_vm_buttons.css und
   custom_vm_icons.css laden (Tokens, Buttonfarben, Icon-Masken).
   ===================================================================== */

.vm-ctabox,
.vm-ctabox * { box-sizing: border-box; }

/* --- Die Box --------------------------------------------------------
   Bewusst KEIN .vm-card: Die Karte bringt Hover-Anheben und Farbvarianten
   mit, die hier nur stören – eine CTA-Box ist kein anklickbares Element,
   sondern ein Rahmen um zwei Angebote. Radius, Rahmen und Schatten kommen
   aber aus denselben Tokens, damit sie zu den Karten passt. */
.vm-ctabox {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;

  padding: clamp(1.25rem, 1rem + 1.2vw, 1.9rem);
  border: 1px solid var(--vm-border-neutral, #e3e8ee);
  border-radius: var(--vm-radius, 10px);
  background: var(--vm-white, #ffffff);
  box-shadow: var(--vm-shadow, 0 18px 38px rgba(0, 73, 148, 0.07));
}

/* --- Zentriert ------------------------------------------------------
   Nicht nur `text-align`: Auch der Button verliert seine volle Breite und
   die Zeilen rücken als Block in die Mitte. Sonst stünde der Text zwar
   mittig, die Icons aber weiterhin links am Rand. */
.vm-ctabox.-align-center {
  text-align: center;
  align-items: center;
}

.vm-ctabox.-align-center .vm-ctabox-btn {
  width: auto;
}

.vm-ctabox.-align-center .vm-ctabox-zeile {
  justify-content: center;
}

/* --- Button ---------------------------------------------------------
   Über die volle Breite: Die Hauptaktion soll die Box anführen, nicht in
   ihr schwimmen. Farben kommen aus custom_vm_buttons.css. */
.vm-ctabox .vm-ctabox-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.6em;
  width: 100%;
  min-height: 52px;              /* Tippfläche */
  text-align: center;
}

/* Der Pfeil rückt beim Überfahren leicht nach – dieselbe Geste wie beim
   „Weiterlesen"-Link der News. */
.vm-ctabox .vm-ctabox-btn-pfeil {
  width: 1.05em;
  height: 1.05em;
  transition: transform var(--vm-transition, 200ms ease);
}

.vm-ctabox .vm-ctabox-btn:hover .vm-ctabox-btn-pfeil,
.vm-ctabox .vm-ctabox-btn:focus-visible .vm-ctabox-btn-pfeil {
  transform: translateX(3px);
}

/* --- Zeilen ---------------------------------------------------------
   `ul.` plus Elternklasse ergibt 0,2,1 und schlägt ONEOs
   `.main-content ul { list-style: disc; padding-left: 1.46667em }`. */
.vm-ctabox ul.vm-ctabox-liste {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
}

.vm-ctabox ul.vm-ctabox-liste li::before {
  display: none !important;
}

.vm-ctabox .vm-ctabox-zeile {
  display: flex;
  align-items: flex-start;
  gap: 0.85rem;
  margin: 0;
  padding: 0.9rem 0;
}

/* Trennlinie NUR zwischen den Zeilen, nicht außen – die Box hat schon
   einen Rahmen. */
.vm-ctabox .vm-ctabox-zeile + .vm-ctabox-zeile {
  border-top: 1px solid var(--vm-border, #e3e8ee);
}

.vm-ctabox .vm-ctabox-zeile:first-child { padding-top: 0; }
.vm-ctabox .vm-ctabox-zeile:last-child  { padding-bottom: 0; }

.vm-ctabox .vm-ctabox-icon {
  flex: 0 0 auto;
  width: 1.4em;
  height: 1.4em;
  margin-top: 0.1em;             /* auf die erste Textzeile ausgerichtet */
  line-height: 1;                /* sonst sitzt das Icon zu hoch */
  color: var(--vm-primary, #004994);
}

/* Farbauswahl je Zeile – dieselben Klassen wie bei der VM Iconliste. */
.vm-ctabox .vm-ctabox-icon.-icon-akzent { color: var(--vm-cta, #fbba00); }
.vm-ctabox .vm-ctabox-icon.-icon-dunkel { color: var(--vm-text, #333333); }
.vm-ctabox .vm-ctabox-icon.-icon-hell   { color: var(--vm-white, #ffffff); }

.vm-ctabox .vm-ctabox-zeile-body {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: 0;                  /* lange Adressen dürfen umbrechen */
}

.vm-ctabox .vm-ctabox-haupt {
  color: var(--vm-primary, #004994);
  font-weight: 700;
  line-height: 1.35;
  text-decoration: none;
  overflow-wrap: anywhere;
  transition: color var(--vm-transition, 200ms ease);
}

a.vm-ctabox-haupt:hover,
a.vm-ctabox-haupt:focus-visible {
  color: var(--vm-primary-hover, #003a76);
}

/* Die Erklärzeile ist Information, kein Weg – deshalb zurückgenommen
   und nie verlinkt. */
.vm-ctabox .vm-ctabox-zusatz {
  color: var(--vm-text-2, #6b6b6a);
  font-size: 0.9rem;
  line-height: 1.4;
}

/* --- Auf dunklem Grund ---------------------------------------------
   Greift automatisch über das Umschlagelement („Textfarbe invertieren"). */
.-color-inverted .vm-ctabox {
  border-color: rgba(255, 255, 255, 0.22);
  background: rgba(255, 255, 255, 0.06);
  box-shadow: none;
}

.-color-inverted .vm-ctabox .vm-ctabox-zeile + .vm-ctabox-zeile {
  border-top-color: rgba(255, 255, 255, 0.22);
}

.-color-inverted .vm-ctabox .vm-ctabox-icon { color: var(--vm-cta, #fbba00); }

.-color-inverted .vm-ctabox .vm-ctabox-haupt { color: var(--vm-white, #ffffff); }

.-color-inverted .vm-ctabox a.vm-ctabox-haupt:hover,
.-color-inverted .vm-ctabox a.vm-ctabox-haupt:focus-visible {
  color: var(--vm-cta, #fbba00);
}

.-color-inverted .vm-ctabox .vm-ctabox-zusatz {
  color: rgba(255, 255, 255, 0.8);
}

/* =====================================================================
   VM Component Library · be on solar
   Component: VM Galerie
   Version: 1.0.0
   CMS: Contao 5.7 · Theme: RockSolid ONEO
   Markup: content_element/gallery/vm.html.twig (Template-Variante,
           Auswahl im Inhaltselement „Galerie" unter „Inhaltselement-Template")
   Breakpoints: Tablet ≤1200px / Mobil ≤900px / Mobil klein ≤700px
   ---------------------------------------------------------------------
   Das Standard-Raster von ONEO arbeitet mit Float und PROZENTUALEN
   Abständen (1,5 % Rand je Kachel). Auf einem breiten Blatt sind das
   schnell 15–20px Lücke, und sie wächst mit der Spaltenbreite weiter.
   Hier kommt das Raster aus CSS Grid mit einem FESTEN, schmalen Abstand:
   Die Bilder bleiben als Gruppe zusammen, egal wie breit die Seite ist.

   Die Template-Variante hängt einen <div> zwischen Element und Liste,
   damit die ONEO-Regeln (alle auf „.content-gallery > ul" = direktes
   Kind) nicht mehr greifen. Deshalb steht hier KEIN einziges !important
   – es gibt nichts zu überschreiben.
   ===================================================================== */

.vm-gallery {
  --vm-gallery-cols: 4;
  --vm-gallery-gap: 0.5rem;   /* die eine Stellschraube für den Abstand */
}

.vm-gallery .vm-gallery-list {
  display: grid;
  grid-template-columns: repeat(var(--vm-gallery-cols), minmax(0, 1fr));
  gap: var(--vm-gallery-gap);
  margin: 0;
  padding: 0;
  list-style: none;
}

/* Spaltenzahl aus dem Inhaltselement (Feld „Bilder pro Reihe"). */
.vm-gallery--cols-1 { --vm-gallery-cols: 1; }
.vm-gallery--cols-2 { --vm-gallery-cols: 2; }
.vm-gallery--cols-3 { --vm-gallery-cols: 3; }
.vm-gallery--cols-4 { --vm-gallery-cols: 4; }
.vm-gallery--cols-5 { --vm-gallery-cols: 5; }
.vm-gallery--cols-6 { --vm-gallery-cols: 6; }
.vm-gallery--cols-7 { --vm-gallery-cols: 7; }
.vm-gallery--cols-8 { --vm-gallery-cols: 8; }

/* --- Kachel ---------------------------------------------------------
   figure steht bei ONEO auf inline-block (für die Float-Variante nötig);
   in der Zelle eines Grids ist das nur ein zusätzlicher Zeilenabstand
   unter dem Bild. Deshalb hier durchgehend block. */
.vm-gallery .vm-gallery-item {
  margin: 0;
  padding: 0;
}

.vm-gallery .vm-gallery-item figure,
.vm-gallery .vm-gallery-item picture {   /* <picture>, sobald eine Bildgröße mit Quellen gepflegt ist */
  display: block;
  width: 100%;
  margin: 0;
}

.vm-gallery .vm-gallery-item a {
  display: block;
  overflow: hidden;                       /* Rundung schneidet das Bild mit */
  border-radius: var(--vm-radius-small, 7px);
}

.vm-gallery .vm-gallery-item img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: var(--vm-radius-small, 7px);
  transition: transform var(--vm-transition, 200ms ease);
}

/* Dezenter Hinweis, dass sich das Bild groß öffnen lässt – die Lightbox
   ist sonst nicht zu erahnen. Nur wo das Bild wirklich verlinkt ist. */
.vm-gallery .vm-gallery-item a:hover img,
.vm-gallery .vm-gallery-item a:focus-visible img {
  transform: scale(1.04);
}

@media (prefers-reduced-motion: reduce) {
  .vm-gallery .vm-gallery-item img { transition: none; }
  .vm-gallery .vm-gallery-item a:hover img,
  .vm-gallery .vm-gallery-item a:focus-visible img { transform: none; }
}

.vm-gallery .vm-gallery-item figcaption,
.vm-gallery .vm-gallery-item .caption {
  padding: 0.4em 0 0;
  color: var(--vm-text-2, #6b6b6a);
  font-size: 0.85rem;
  line-height: 1.4;
}

/* --- Schmale Schirme ------------------------------------------------
   Die Spaltenzahl wird gestuft heruntergerechnet, statt sie stur zu
   übernehmen: Acht Kacheln nebeneinander sind auf dem Handy briefmarken-
   groß. Wer von Haus aus wenige Spalten wählt, behält sie. */
@media (max-width: 1200px) {
  .vm-gallery--cols-5,
  .vm-gallery--cols-6,
  .vm-gallery--cols-7,
  .vm-gallery--cols-8 { --vm-gallery-cols: 4; }
}

@media (max-width: 900px) {
  .vm-gallery--cols-4,
  .vm-gallery--cols-5,
  .vm-gallery--cols-6,
  .vm-gallery--cols-7,
  .vm-gallery--cols-8 { --vm-gallery-cols: 3; }
}

@media (max-width: 700px) {
  .vm-gallery { --vm-gallery-gap: 0.4rem; }
  .vm-gallery--cols-3,
  .vm-gallery--cols-4,
  .vm-gallery--cols-5,
  .vm-gallery--cols-6,
  .vm-gallery--cols-7,
  .vm-gallery--cols-8 { --vm-gallery-cols: 2; }
}

/* =====================================================================
   be on solar – FORMULARE: Rückruf-Band UND Kontaktseite
   ---------------------------------------------------------------------
   Kompaktes Kontakt-/Rückruf-Band überm Footer. Struktur (RockSolid
   Columns): links Vortitel + Headline + Text, rechts das Formular.
   Helles Design (C.I.-konform, kein dunkles Band). Diese CSS macht das
   Band flach & markenkonform:
   - Felder 2-spaltig, weiße Felder mit dezentem Rahmen (auf hellem Grund)
   - ALTCHA („Ich bin kein Roboter") dezent eingepasst
   - Datenschutz-Hinweis (.widget-explanation) + Absenden-Button in einer Zeile
   - Absenden-Button im VM-Stil (Akzent, gerundet, ohne Versalien)

   >>> HOOK: dem ÄUSSEREN .centered-wrapper die Klasse `vm-callback` geben.
   Alles hier ist darunter gescoped. Nach custom_vm_base.css laden.
   ===================================================================== */

/* --- Rosa-Karte (zentriert, begrenzt) statt full-bleed-Band ----------
   „Rosa" = warmer Flächenton --vm-surface (#eef3f9). Der centered-wrapper
   liefe sonst über die volle Breite -> hier per width/max-width auf
   Content-Breite begrenzt und mittig, mit runden Ecken + Schatten.
   `width: min(100% - Gutter, --vm-content-max)` = auf großen Screens auf
   der gleichen Kante wie alle anderen Abschnitte, darunter automatisch
   Rand-Abstand (mobil). Padding responsiv im CSS. */
.vm-callback {
  box-sizing: border-box;
  width: min(100% - clamp(2rem, 6vw, 4rem), var(--vm-content-max, 1440px));
  margin-inline: auto;
  background-color: var(--vm-surface, #eef3f9);
  border-radius: var(--vm-radius, 16px);
  box-shadow: 0 12px 34px rgba(51, 51, 51, 0.12);
  padding: clamp(2rem, 4vw, 3.5rem) clamp(1.5rem, 4vw, 3rem);
}
/* Inneren Wrapper nicht zusätzlich begrenzen – die Karte selbst steuert
   Breite + Padding. */
.vm-callback > .centered-wrapper-inner {
  max-width: none;
  margin-inline: 0;
  padding-inline: 0;
}

/* --- Intro (linke Spalte): Abstände zähmen -------------------------- */
.vm-callback .content-headline { margin-bottom: 0.4rem; }
.vm-callback .content-text .rte > :first-child { margin-top: 0; }
.vm-callback .content-text .rte > :last-child { margin-bottom: 0; }

/* --- Formular -------------------------------------------------------- */
.vm-callback .ce_form,
.vm-callback form { margin: 0; }

/* 3-Spalten-Idee (im Formularbereich): links die 4 Felder gestapelt,
   rechts der Aktions-Cluster (Roboter, Datenschutz, Button).
   Grid: Spalte 1 = Felder, Spalte 2 = Aktionen. Hidden-Inputs (display:none)
   fallen aus dem Grid raus. */
.vm-callback .formbody {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 1.25rem;
  row-gap: 0.7rem;
  align-items: start;
  margin: 0;
}
.vm-callback .formbody > .widget { margin: 0; }
/* 4 Felder: linke Spalte, untereinander */
.vm-callback .formbody > .widget-text { grid-column: 1; min-width: 0; }

/* Nur Platzhalter sichtbar: Feld-Labels visuell ausblenden, für Screenreader
   erhalten (Label bleibt per for/id mit dem Feld verknüpft = barrierefrei).
   Voraussetzung: Labels im Formulargenerator wieder aktiv. */
.vm-callback .widget-text > label {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

/* Eingabefelder – weiß mit dezentem Rahmen (auf hellem Grund sichtbar),
   gerundet, min. 16px (a11y, kein iOS-Zoom) */
.vm-callback input.text {
  width: 100%;
  box-sizing: border-box;
  padding: 0.7rem 0.95rem;
  border: 1px solid var(--vm-border, #e3e8ee);
  border-radius: var(--vm-radius-small, 10px);
  background: var(--vm-white, #fff);
  color: var(--vm-text, #333333);
  font-size: 1rem;
  line-height: 1.35;
  transition: border-color .18s ease, box-shadow .18s ease;
}
.vm-callback input.text::placeholder { color: #8a8987; opacity: 1; }
.vm-callback input.text:focus,
.vm-callback input.text:focus-visible {
  outline: none;
  border-color: var(--vm-accent, #004994);
  box-shadow: 0 0 0 3px rgba(0, 73, 148, 0.15);
}
.kontaktseite .ce_form .widget.margin-bottom-s {
    margin-bottom: 0 !important;
}
.main-content .kontaktseite form button.margin-bottom-s {
    margin-bottom: 10px !important;
}

/* ALTCHA („Ich bin kein Roboter") – rechte Spalte, Zeile 2 (unter dem Titel),
   ohne Kasten/Rahmen */
.vm-callback .widget-altcha { grid-column: 2; grid-row: 2; margin: 0; }
.vm-callback .widget-altcha .altcha {
  --altcha-max-width: 100%;
  --altcha-border-width: 0;                 /* Rahmen um die Checkbox weg */
  --altcha-color-base: transparent;         /* keine Kastenfläche -> sitzt auf Rosa */
  --altcha-color-text: var(--vm-text, #333333);
}
/* ALTCHA-Innenabstände zähmen (Kasten weg -> kein Innen-Polster nötig;
   ONEO gibt jedem .main-content label ein margin-bottom -> hier auf 0). */
.vm-callback .altcha-main { padding: 0; }
.main-content .vm-callback label.altcha-label { margin-bottom: 0; }
.vm-callback .widget-altcha .warning { color: var(--vm-accent, #004994); font-size: 0.9rem; }

/* Feld-Label „Antispam" ausblenden (ALTCHA hat mit „Ich bin kein Roboter"
   schon eine eigene Beschriftung) – für Screenreader erhalten. */
.vm-callback .widget-altcha > label {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

/* Datenschutz-Hinweis (Erklärungstext) – klein, gedämpft, links neben Button */
/* Titel „Sicherheit & Datenschutz" (Erklärungsfeld mit Klasse .security) –
   Zeile 1, über dem Roboter; klein, in Schriftfarbe. */
.vm-callback .widget-explanation.security {
  grid-column: 2;
  grid-row: 1;
  margin: 0;
  color: var(--vm-text, #333333);
  font-size: 1rem;
}
.vm-callback .widget-explanation.security p { margin: 0; }

/* Datenschutz-Hinweis (die ANDERE Erklärung, ohne .security) – Zeile 3,
   klein & gedämpft. */
.vm-callback .widget-explanation:not(.security) {
  grid-column: 2;
  grid-row: 3;
  margin: 0;
  font-size: 0.9rem;
  line-height: 1.4;
  color: var(--vm-text-2, #6b6b6a);
}
.vm-callback .widget-explanation p { margin: 0; }
.vm-callback .widget-explanation a {
  color: var(--vm-accent, #004994);
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

/* --- Absenden-Button im VM-Stil (Akzent, gerundet, KEINE Versalien) --
   Selektor .submit statt .button, darum die ONEO-Overrides hier direkt. */
.vm-callback .widget-submit {
  grid-column: 2;
  grid-row: 4;                 /* auf Höhe des letzten Feldes */
  align-self: end;            /* Button-Unterkante bündig mit „Gewünschte Uhrzeit" */
  justify-self: start;
  margin: 0;
}
.vm-callback .widget-submit .submit,
.vm-callback button.submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  cursor: pointer;
  padding: 0.64em 1.43em;
  border: 2px solid var(--vm-primary-dark, #003a76) !important;
  border-image: none !important;
  border-radius: var(--vm-radius, 16px) !important;
  background: var(--vm-primary, #004994) !important;
  background-image: none !important;
  box-shadow: none !important;
  text-shadow: none !important;
  color: var(--vm-white, #fff);
  font-size: 1.05rem;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: 0.02em;
  text-transform: none !important;   /* kein ONEO-UPPERCASE */
  white-space: nowrap;
  transition: background-color .2s ease, border-color .2s ease, transform .2s ease;
}
.vm-callback .widget-submit .submit:hover,
.vm-callback .widget-submit .submit:focus-visible,
.vm-callback button.submit:hover {
  background: var(--vm-primary-dark, #003a76) !important;
  border-color: var(--vm-primary, #004994) !important;
  transform: translateY(-1px);
}

/* Fehler-/Pflichtfeld-Meldungen */
.vm-callback .error,
.vm-callback p.error { color: var(--vm-accent, #004994); font-weight: 600; }

/* --- Tablet: Kontaktdaten max. Breite auf Inhalt setzen --------------- */
@media (max-width: 1200px) {
.kontaktseite .vm-iconliste {
    max-width: fit-content;
}
.kontaktseite .vm-iconliste .vm-icon-text {
  padding-block: 2rem 0 !important;
}
}

@media (max-width: 900px) {
.kontaktseite .ce_form form .rs-column.-medium-first-row {
    margin-top: 0;
}
.main-content .kontaktseite form .widget {
  margin-top: 0;
}
}

/* --- Mobil klein: Felder, Hinweis & Button einspaltig --------------- */
@media (max-width: 700px) {
  .vm-callback .formbody { grid-template-columns: 1fr; }
  .vm-callback .formbody > .widget-text,
  .vm-callback .formbody > .widget-altcha,
  .vm-callback .formbody > .widget-explanation,
  .vm-callback .formbody > .widget-submit { grid-column: 1; grid-row: auto; }
  .vm-callback .widget-submit .submit { width: 100%; }
}

/* --- Mobil ab 500px: Kontaktdaten max. Breite 100% --------------- */
@media (max-width: 500px) {
.kontaktseite .vm-iconliste {
    max-width: 100%;
}
}


/* =====================================================================
   KONTAKTSEITE – Formular im Inhalt
   ---------------------------------------------------------------------
   Hook: dem äußeren .centered-wrapper die Klasse `kontaktseite` geben.

   Bewusst NICHT die Regeln des Rückruf-Bands mitbenutzt, obwohl beides
   Formulare sind. Das Band ist ein Zweispalter (Felder links, Aktionen
   rechts) und blendet die Labels aus, weil dort nur Platzhalter stehen.
   Hier steht das Formular in einer Spalte, hat ein Datenschutz-Ankreuz-
   feld und sichtbare Labels – dasselbe Layout hätte nur Ärger gemacht.
   Gemeinsam ist die OPTIK der Felder, nicht ihre Anordnung.

   Die hellblaue Fläche hat einen Zweck: Die weißen Eingabefelder heben
   sich davon ab. Auf weißem Grund verschwimmen Feld und Seite, und man
   sieht erst beim Hineinklicken, wo das Feld beginnt.
   ===================================================================== */

/* --- Die Fläche ------------------------------------------------------ */
.kontaktseite .ce_form {
  padding: clamp(1.25rem, 1rem + 1.4vw, 2rem);
  border-radius: var(--vm-radius, 10px);
  background: var(--vm-surface-icon, #dfeaf5);
}

.kontaktseite .ce_form form,
.kontaktseite .formbody { margin: 0; }

.kontaktseite .formbody > .widget { margin: 0 0 1rem; }
.kontaktseite .formbody > .widget:last-of-type { margin-bottom: 0; }

/* --- Labels ---------------------------------------------------------
   Sichtbar lassen: Platzhalter allein sind kein Ersatz – sie verschwinden
   beim Tippen, und wer das Feld später prüft, sieht nicht mehr, was
   hineingehört. Der Stern für Pflichtfelder bleibt, wie Contao ihn setzt. */
.kontaktseite .widget > label {
  display: block;
  margin-bottom: 0.35rem;
  color: var(--vm-text, #333333);
  font-weight: 600;
  line-height: 1.3;
}

/* --- Eingabefelder --------------------------------------------------- */
.kontaktseite input.text,
.kontaktseite textarea.textarea,
.kontaktseite select.select {
  width: 100%;
  box-sizing: border-box;
  padding: 0.7rem 0.95rem;
  border: 1px solid var(--vm-border-accent, #cfe0f0);
  border-radius: var(--vm-radius-small, 7px);
  background: var(--vm-white, #ffffff);
  color: var(--vm-text, #333333);
  font-family: var(--vm-font-body, "Ubuntu", sans-serif);
  font-size: 1rem;
  line-height: 1.35;
  transition: border-color .18s ease, box-shadow .18s ease;
}

.kontaktseite textarea.textarea {
  min-height: 9rem;
  resize: vertical;
}

.kontaktseite input.text::placeholder,
.kontaktseite textarea.textarea::placeholder {
  color: #8a8987;
  opacity: 1;
}

.kontaktseite input.text:focus,
.kontaktseite input.text:focus-visible,
.kontaktseite textarea.textarea:focus,
.kontaktseite textarea.textarea:focus-visible {
  outline: none;
  border-color: var(--vm-primary, #004994);
  box-shadow: 0 0 0 3px rgba(0, 73, 148, 0.18);
}

/* --- Datenschutz-Ankreuzfeld ----------------------------------------
   Contao gibt Ankreuzfelder als <fieldset> aus, und das Theme setzt
   darauf Rahmen und Innenabstand – hier beides weg, es ist eine Zeile
   und kein Kasten. */
.kontaktseite .widget-checkbox fieldset,
.kontaktseite fieldset.checkbox_container {
  margin: 0;
  padding: 0;
  border: 0;
}

.kontaktseite .widget-checkbox span {
  display: flex;
  align-items: flex-start;
  gap: 0.6rem;
}

.kontaktseite .widget-checkbox input.checkbox {
  flex: 0 0 auto;
  margin-top: 0.2em;
  width: 1.05rem;
  height: 1.05rem;
  accent-color: var(--vm-primary, #004994);
}

.kontaktseite .widget-checkbox label {
  margin: 0;
  font-weight: 400;
  line-height: 1.45;
}

/* --- ALTCHA („Ich bin kein Roboter") --------------------------------
   Kein Rahmen, weiße Fläche – dadurch liest es sich als Eingabefeld
   und nicht als fremdes Kästchen auf der blauen Fläche. */
.kontaktseite .widget-altcha .altcha {
  --altcha-max-width: 100%;
  --altcha-border-width: 0;
  --altcha-color-base: var(--vm-white, #ffffff);
  --altcha-color-text: var(--vm-text, #333333);

  /* Nur so breit wie der Inhalt: Über die volle Formularbreite sähe die
     weiße Fläche aus wie ein weiteres Eingabefeld – sie ist aber nur eine
     Bestätigung. */
  width: fit-content;
  max-width: 100%;

  border-radius: var(--vm-radius-small, 7px);
  overflow: hidden;
}

.kontaktseite .altcha-main { padding: 0.55rem 0.75rem; }
.main-content .kontaktseite label.altcha-label { margin-bottom: 0; }

/* Das Label „Antispam" bleibt SICHTBAR – anders als im Rückruf-Band.
   Grund: Contao hängt den Pflichtfeld-Stern an das Label. Blendet man es
   aus, verschwindet auch der Stern, und das Feld sieht freiwillig aus,
   obwohl das Formular ohne die Bestätigung nicht abschickt. */

/* --- Absenden-Button ------------------------------------------------
   Standard-Look unseres orangen Buttons. Contao gibt hier `.submit` aus,
   nicht `.button` – die Werte stehen deshalb noch einmal hier, mit
   denselben Tokens wie in custom_vm_buttons.css. */
/* Linksbündig, in einer Flucht mit den Feldern.
   ONEOs Formularvorlage bringt am Absenden-Feld die Klasse `centered` mit
   (sichtbar im Markup: `widget widget-submit centered`), die den Button
   mittig setzt. Hier wird sie überstimmt. Wer es sauber mag: die Klasse im
   Formulargenerator am Feld „Absenden" entfernen – dann braucht es diese
   Regel nicht. */
.kontaktseite .widget-submit {
  margin: 0;
  text-align: left;
}

.kontaktseite .widget-submit.centered {
  text-align: left;
}

.kontaktseite .widget-submit .submit.centered {
  margin-left: 0;
  margin-right: 0;
}

.kontaktseite .widget-submit .submit,
.kontaktseite button.submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  cursor: pointer;

  padding: 0.64286em 1.42857em;
  border: 2px solid var(--vm-cta, #fbba00) !important;
  border-image: none !important;
  border-radius: var(--vm-radius, 10px) !important;
  background: var(--vm-cta, #fbba00) !important;
  background-image: none !important;
  box-shadow: none !important;
  text-shadow: none !important;

  color: var(--vm-cta-text, #333333);
  font-family: var(--vm-font-body, "Ubuntu", sans-serif);
  font-size: 1.05rem;
  font-weight: 700;
  line-height: 1.3;
  text-transform: none !important;   /* kein ONEO-UPPERCASE */
  transition: background-color .2s ease, border-color .2s ease;
}

/* Pfeil hinter der Beschriftung.
   Das Markup kommt aus dem Formulargenerator und lässt sich nicht
   erweitern – der Pfeil wird deshalb als CSS-Maske im ::after gezeichnet,
   in der Schriftfarbe (currentColor). Dieselbe Form wie bei den übrigen
   Buttons; ONEO belegt das ::after der Buttons mit einem Overlay, das
   hier vollständig überschrieben wird. */
.kontaktseite .widget-submit .submit::after,
.kontaktseite button.submit::after {
  content: "";
  display: inline-block;
  flex: 0 0 auto;
  width: 1.05em;
  height: 1.05em;
  margin-left: 0.6em;
  background: currentColor;
  background-image: none;
  opacity: 1;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m12 5 7 7-7 7'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m12 5 7 7-7 7'/%3E%3C/svg%3E") center / contain no-repeat;
  transition: transform .2s ease;
}

/* Der Pfeil rückt beim Überfahren leicht nach – dieselbe Geste wie bei
   der CTA-Box und beim „Weiterlesen" der News. */
.kontaktseite .widget-submit .submit:hover::after,
.kontaktseite .widget-submit .submit:focus-visible::after,
.kontaktseite button.submit:hover::after {
  transform: translateX(3px);
}

.kontaktseite .widget-submit .submit:hover,
.kontaktseite .widget-submit .submit:focus-visible,
.kontaktseite button.submit:hover {
  background: var(--vm-cta-dark, #e0a600) !important;
  border-color: var(--vm-cta-dark, #e0a600) !important;
}

/* --- Fehlermeldungen ------------------------------------------------- */
.kontaktseite .error,
.kontaktseite p.error {
  color: var(--vm-primary-dark, #003a76);
  font-weight: 600;
}

/* --- Zweite Spalte: Iconliste mit Trennlinien ------------------------
   Nur auf dieser Seite: Die Kontaktdaten sollen als abgesetzte Liste
   lesbar sein, nicht als lose Absätze. Linie zwischen den Einträgen,
   nicht davor und dahinter – der erste Eintrag beginnt bündig mit dem
   Formular daneben. */
.kontaktseite .vm-iconliste .vm-icon-text {
  padding-block: 1rem;
}

.kontaktseite .vm-iconliste .vm-icon-text + .vm-icon-text {
  border-top: 1px solid var(--vm-border, #e3e8ee);
}

.kontaktseite .vm-iconliste .vm-icon-text:first-child { padding-top: 0; }
.kontaktseite .vm-iconliste .vm-icon-text:last-child { padding-bottom: 0; }

/* =====================================================================
   be on solar – NAVIGATION
   ---------------------------------------------------------------------
   Basis ist die EIGENE Navigation des ONEO-Themes plus die Erweiterung
   „RockSolid Mega Menu" (madeyourday/contao-rocksolid-mega-menu, in der
   composer.json als ^2.2 gefordert). Beides ist vorhanden und bringt die
   komplette Mechanik mit – wir bauen hier NICHTS nach, sondern legen nur
   Farben, Maße und die Barrierefreiheits-Korrektur darüber.

   ZUSTÄNDIGKEITEN
   - ONEO/main.css : Struktur, Positionierung, Auf-/Zuklappen
   - diese Datei   : Farben (--vm-*), Radien, Tippflächen, Tastaturbedienung

   AUFBAU IM BACKEND
   - Seitenstruktur: Hauptpunkte mit Unterseiten wie gewohnt anlegen.
   - Mega-Menü: unter „Layout -> Mega-Menü" eine Definition anlegen, an der
     Seite („Leistungen") aktivieren. Die SPALTEN nehmen KEINE Inhalts-
     elemente auf, sie werden direkt konfiguriert:
       Typ „individuelle Navigation" -> Feld „Seiten": beliebige Seiten frei
       zusammenstellen. Die Seitenstruktur muss dafür NICHT umgebaut werden.
       Typ „Eigener HTML-Code" -> für die Aktionsspalte (CSS-Klasse -aktion).
     -> Der erklärende Halbsatz je Leistung steht in den SEITEN-Einstellungen
        im Feld „Untertitel" (rsmm_subtitle), nicht im Mega-Menü.
     -> Das Icon je Seite ebenfalls in den Seiteneinstellungen, Feld
        „CSS-Klasse": dort die Icon-Klasse eintragen, z. B. vm-ico--battery.
   - Mobil ab 900px übernimmt ONEOs eigene Navigation (.main-navigation-mobile).
     ACHTUNG: ONEOs script.js macht daraus per Klasse `is-enabled` ein
     Off-Canvas-Panel (85% Breite, von links eingeschoben, position:absolute).
     Gewünscht ist aber die Fassung IM FLUSS, die den Inhalt nach unten
     schiebt. Abschnitt 6a dreht deshalb nur die Positionierung zurück –
     das Auf-/Zuklappen bleibt bei ONEOs JavaScript. Kein eigenes JS nötig.
   - Der Block unter den Menüpunkten (Telefon, E-Mail, Öffnungszeiten,
     Button) ist ein eigenes Modul: rsce_vm_mobile_nav_footer. Es muss im
     Layout-Bereich „Kopfzeile" ZWISCHEN den HTML-Modulen „~ Mobile
     Navigation Begin/End" stehen, sonst klappt es nicht mit auf.
   - Der mobile Kopf (Logo links, „Menü"-Pille rechts) ist Abschnitt 7.
     Die Pille ist ONEOs eigener Öffner, nur umgestylt – kein neues Markup.
     Der runde Telefon-Knopf daneben ist optional und kommt aus einem Modul
     „Eigener HTML-Code" innerhalb von .main-navigation-wrapper.

   Für die Navigation wird KEIN eigenes JavaScript gebraucht: Mega-Menü
   und Tastaturbedienung laufen über CSS, das mobile Akkordeon bringt
   ONEO mit.

   Nach dem ONEO-Framework-CSS laden (Farben stehen dort teils fest drin,
   daher an einigen Stellen !important).
   ===================================================================== */


/* =====================================================================
   1) KOPFZEILE – Logo und Navigation auf die Inhaltskante ziehen
   ---------------------------------------------------------------------
   ONEO setzt die Kopfzeile bewusst randlos: das Logo hängt absolut
   2,6666em vom Fensterrand, die Navigation floatet mit festem Abstand
   nach rechts. Der Inhalt darunter ist dagegen zentriert (--vm-content-max).
   Ergebnis ohne diese Regeln: Die Hero-Überschrift fluchtet nicht mit dem
   Logo, der Versatz beträgt auf einem 1920er Bildschirm rund 180px.

   Die Rechnung: bis zur Container-Kante ist es (100% - Inhaltsbreite) / 2,
   dazu der Seitenabstand – erst dort beginnt der TEXT. Beides nutzt
   dieselbe Theme-Variable wie unsere Container (--page-padding-*), damit
   die Kante stimmt, egal was im Theme Assistant eingestellt wird.

   Nur ab 1441px aktiv. Darunter greifen ONEOs eigene Kopfzeilen-Regeln
   (ab 1280/1200 wird das Logo statisch und die Navigation umgebrochen) –
   in die wollen wir nicht hineinregieren, und die Ausrichtung bringt dort
   ohnehin nichts, weil der Container seine Maximalbreite nicht erreicht.

   NICHT in die main.css schreiben – die erzeugt der Theme Assistant neu.
   ===================================================================== */

@media (min-width: 1441px) {

  .logo {
    left: calc((100% - var(--vm-content-max, 1440px)) / 2 + var(--page-padding-left, 4rem));
  }

  .main-navigation {
    padding-right: calc((100% - var(--vm-content-max, 1440px)) / 2 + var(--page-padding-right, 4rem));
  }
}


/* =====================================================================
   2) HAUPTNAVIGATION – Desktop
   ===================================================================== */

.main-navigation > ul > li > a,
.main-navigation > ul > li > strong,
.main-navigation > ul > li > span.active,
.main-navigation > ul > li > span.trail,
.main-navigation > ul > li > span.forward {
  color: var(--vm-text, #333333);
  font-family: var(--vm-font-body, "Ubuntu", sans-serif);
  font-weight: 500;
  text-transform: none;            /* keine Versalien (Barrierearmut) */
  letter-spacing: 0.01em;
}

.main-navigation > ul > li:hover > a,
.main-navigation > ul > li:hover > span.forward,
.main-navigation > ul > li:focus-within > a,
.main-navigation > ul > li:focus-within > span.forward {
  color: var(--vm-primary, #004994);
}

/* Aktuelle Seite und Trail: Blau + Unterstrich in der Aktionsfarbe.
   Nicht über Farbe allein unterscheiden – der Strich ist das zweite Signal. */
.main-navigation > ul > li > strong,
.main-navigation > ul > li > span.active,
.main-navigation > ul > li > span.trail,
.main-navigation > ul > li > a.trail {
  color: var(--vm-primary, #004994);
  font-weight: 700;
  box-shadow: inset 0 -3px 0 var(--vm-cta, #fbba00);
}

/* Der 4px-Balken über dem geöffneten Punkt (ONEO setzt ihn hart auf
   das alte Theme-Orange) – auf unsere Aktionsfarbe und Rahmenfarbe ziehen. */
.main-navigation > ul > li.submenu:hover > a:after,
.main-navigation > ul > li.submenu:hover > strong:after,
.main-navigation > ul > li.submenu:hover > span.active:after,
.main-navigation > ul > li.submenu:hover > span.trail:after,
.main-navigation > ul > li.submenu:hover > span.forward:after,
.main-navigation > ul > li.submenu:focus-within > a:after,
.main-navigation > ul > li.submenu:focus-within > strong:after,
.main-navigation > ul > li.submenu:focus-within > span.forward:after {
  border-top-color: var(--vm-cta, #fbba00);
  border-radius: var(--vm-radius-small, 7px) var(--vm-radius-small, 7px) 0 0;
  box-shadow: 0 -3px 3px rgba(0, 73, 148, 0.10),
              inset 1px 0 var(--vm-border, #e3e8ee),
              inset -1px 0 var(--vm-border, #e3e8ee),
              inset 0 -10px var(--vm-white, #ffffff);
}

/* Keine Unterstreichung in der Navigation.
   Das Theme setzt global `a:hover, a:focus { text-decoration: underline }`
   (main.css, Zeile ~805). In Fließtext ist das richtig, in einem Menü nicht –
   dort tragen Farbe und Fläche den Zustand. Eine Regel für alle drei
   Navigationen, statt sie an jeder Einzelstelle nachzuziehen. */
.main-navigation a:hover,
.main-navigation a:focus,
.main-navigation a:focus-visible,
.mega-dropdown a:hover,
.mega-dropdown a:focus,
.mega-dropdown a:focus-visible,
.main-navigation-mobile a:hover,
.main-navigation-mobile a:focus,
.main-navigation-mobile a:focus-visible {
  text-decoration: none;
}

/* Marker des Themes unter dem aktiven Hauptpunkt abschalten.
   ONEO hängt an active/trail/forward ein ::after, das als eigener Balken
   unter dem Menüpunkt liegt. Wir markieren den Zustand bereits selbst
   (Blau + Unterstrich in der Aktionsfarbe, s. Regel darüber) – beides
   zusammen ergab einen doppelten Strich. */
.main-navigation > ul > li > a.active:not(.highlight)::after,
.main-navigation > ul > li > a.trail:not(.highlight)::after,
.main-navigation > ul > li > a.forward:not(.highlight)::after,
.main-navigation > ul > li > strong.active:not(.highlight)::after,
.main-navigation > ul > li > strong.trail:not(.highlight)::after,
.main-navigation > ul > li > strong.forward:not(.highlight)::after,
.main-navigation > ul > li > span.active:not(.highlight)::after,
.main-navigation > ul > li > span.trail:not(.highlight)::after,
.main-navigation > ul > li > span.forward:not(.highlight)::after {
  display: none;
}

/* Sichtbarer Fokus – Pflicht, sonst ist die Tastaturbedienung blind. */
.main-navigation a:focus-visible,
.main-navigation-mobile a:focus-visible,
.main-navigation-mobile button:focus-visible {
  outline: 3px solid var(--vm-primary, #004994);
  outline-offset: 2px;
  border-radius: 3px;
}


/* =====================================================================
   3) AUFKLAPPEN PER TASTATUR  ← die eigentliche Korrektur
   ---------------------------------------------------------------------
   ONEO öffnet Dropdown und Mega-Menü AUSSCHLIESSLICH über `li:hover`.
   Im gesamten Theme-CSS steht kein einziges :focus-within. Folge: Wer mit
   der Tastatur navigiert, tabbt in ein Panel, das auf max-height:0 /
   opacity:0 / pointer-events:none steht – der Fokus landet in Links, die
   niemand sieht. Klassische Tastaturfalle.

   Die Regeln unten spiegeln exakt die Hover-Regeln des Themes. Kein
   Eingriff in die Erweiterung, kein Fork, kein JavaScript.
   ===================================================================== */

.main-navigation > ul > li:focus-within {
  z-index: 2;
}

/* Einfaches Dropdown */
.main-navigation > ul > li:focus-within > ul {
  z-index: 1;
  max-height: 9999px;
  opacity: 1;
  transition: opacity 0.2s;
  pointer-events: auto;
}

/* Mega-Menü */
li:focus-within > .mega-dropdown {
  z-index: 1;
  max-height: 9999px;
  overflow: visible;
  padding: 1.57143em 0;
  opacity: 1;
  transition: opacity 0.2s;
  pointer-events: auto;
}

/* Solange ZU: die Inhalte dürfen den Fokus gar nicht erst annehmen.
   Sicherheitsnetz für Browser ohne :focus-within und für den Moment
   zwischen Laden und Interaktion. */
@supports not selector(:focus-within) {
  .mega-dropdown,
  .main-navigation > ul > li > ul { visibility: hidden; }
  li:hover > .mega-dropdown,
  .main-navigation > ul > li:hover > ul { visibility: visible; }
}


/* =====================================================================
   4) MEGA-DROPDOWN – Optik
   ---------------------------------------------------------------------
   ONEO bringt Position, Breite und Animation mit. Hier nur Farbe, Kante
   und die Innenaufteilung.
   ===================================================================== */

.mega-dropdown {
  border-color: var(--vm-border, #e3e8ee) !important;
  border-width: 0 0 3px 0 !important;          /* unten die Akzentkante */
  border-bottom-color: var(--vm-cta, #fbba00) !important;
  background: var(--vm-white, #ffffff);
  box-shadow: 0 26px 48px rgba(0, 73, 148, 0.12);
}

/* Breite des Panels. Bewusst schmaler als der Inhaltsbereich (1440) –
   drei Spalten über die volle Seitenbreite wirken auseinandergezogen,
   weil die Zeilen kurz sind. Hier justieren, wenn es enger oder weiter
   werden soll. */
.mega-dropdown-inner {
  max-width: 1200px;
  margin-inline: auto;
}

/* --- Spaltenbreiten ---------------------------------------------------
   RockSolid Columns verteilt drei Spalten als 30% / 30% / 30% mit 5%
   Abstand. Die Aktionsspalte braucht etwas weniger Platz als die
   Linklisten, deshalb umverteilen: 32 + 5 + 32 + 5 + 26 = 100.

   NUR ab 1201px! Die `-large-`-Klassen des Themes sind die Grundregel und
   gelten oberhalb von 1200px; darunter greifen `-medium-` (bis 1200) und
   `-small-` (bis 900) mit eigenen Breiten. Ohne diese Media Query würden
   unsere Werte auch im Tablet- und Mobil-Layout gewinnen – die Aktions-
   spalte stünde dort als schmaler Streifen unter den anderen.

   `:has()` bindet die Regel daran, dass überhaupt eine Aktionsspalte im
   Menü steckt. Ein künftiges Menü mit drei gleichwertigen Spalten behält
   die Vorgabe des Themes – sonst käme es dort über 100% und bräche um. */
@media (min-width: 1201px) {
  .mega-dropdown-inner:has(.mega-dropdown-column.-aktion) .mega-dropdown-column:not(.-aktion) {
    width: 32%;
  }
  .mega-dropdown-inner:has(.mega-dropdown-column.-aktion) .mega-dropdown-column.-aktion {
    width: 26%;
  }
}

/* Spaltenüberschriften: ONEO setzt sie hart auf das alte Theme-Orange.
   Orange auf Weiß erreicht 1,7:1 und ist als Text unlesbar – deshalb
   wird die Überschrift grau und bekommt das Akzent-Quadrat davor
   (gleiche Sprache wie .vm-preheadline). */
.mega-dropdown-column h1,
.mega-dropdown-column h2,
.mega-dropdown-column h3,
.mega-dropdown-column h4 {
  display: inline-flex;
  align-items: center;
  gap: 0.6em;
  color: var(--vm-text-2, #6b6b6a) !important;
  font-family: var(--vm-font-body, "Ubuntu", sans-serif);
  font-size: 0.95rem;
  font-weight: 500;
  text-transform: none;
  margin: 0 0 1em;
}
.mega-dropdown-column h1::before,
.mega-dropdown-column h2::before,
.mega-dropdown-column h3::before,
.mega-dropdown-column h4::before {
  content: "";
  width: 0.58em;
  height: 0.58em;
  border-radius: 3px;
  background: var(--vm-cta, #fbba00);
  flex: 0 0 auto;
}

/* Linklisten in den Spalten */
.mega-dropdown-column ul a {
  display: block;
  padding: 0.5em 0.7em;
  margin-inline: -0.7em;
  border-radius: var(--vm-radius-small, 7px);
  color: var(--vm-primary, #004994);
  font-weight: 500;
  transition: background-color var(--vm-transition, 200ms ease),
              color var(--vm-transition, 200ms ease);
}
.mega-dropdown-column ul a:hover,
.mega-dropdown-column ul a:focus-visible {
  background: var(--vm-surface, #eef3f9);
  color: var(--vm-primary, #004994) !important;   /* NICHT Orange – s. o. */
}
.mega-dropdown-column ul a.active,
.mega-dropdown-column ul a.trail,
.mega-dropdown-column ul a.forward {
  color: var(--vm-primary, #004994);
  font-weight: 700;
}

/* --- Icons vor den Links im Mega-Menü ---------------------------------
   Die Seite bekommt in Contao unter „Experteneinstellungen -> CSS-Klasse"
   direkt die vorhandene Icon-Klasse, z. B. `vm-ico--solar-panel`.

   Warum genau diese Klasse: Sie setzt bereits --vm-ico (custom_vm_icons.css).
   Wir greifen die Variable hier nur ab und malen sie als Maske vor den Link.
   Dadurch gibt es KEINE zweite Icon-Liste, die auseinanderlaufen könnte –
   neue Icons stehen automatisch auch der Navigation zur Verfügung.

   Contao schreibt die Seiten-CSS-Klasse je nach Template auf das <li> ODER
   auf das <a>; beide Fälle sind abgedeckt. */
/* Der Link bleibt ein BLOCK und bekommt links Platz für die Icon-Kachel;
   beide Pseudoelemente sitzen absolut darin. Wichtig: kein display:flex –
   sonst stellt der Link Seitenname und Untertitel nebeneinander statt
   untereinander, und bei umbrechenden Namen („Wallboxen & Lade-
   infrastruktur") rutscht der Untertitel aus der Zeile.

   Warum ZWEI Pseudoelemente: Ein maskiertes Element wird vollflächig in
   der Vordergrundfarbe ausgemalt – Kachel und Icon lassen sich darin nicht
   trennen. Also ::before = Kachel, ::after = Icon darauf.
   (::after ist frei; das Theme belegt nur `ul a:before` mit content:none,
   was unsere Regel per Spezifität schlägt.) */
.mega-dropdown-column li[class*="vm-ico--"] > a,
.mega-dropdown-column a[class*="vm-ico--"] {
  display: block;
  position: relative;
  min-height: 2.4em;
  padding-left: 3.15em;
}

/* Kachel */
.mega-dropdown-column li[class*="vm-ico--"] > a::before,
.mega-dropdown-column a[class*="vm-ico--"]::before {
  content: "";
  position: absolute;
  left: 0;
  /* mittig zur ganzen Zeile, auch bei zweizeiligem Namen plus Untertitel */
  top: 50%;
  transform: translateY(-50%);
  width: 2.4em;
  height: 2.4em;
  border-radius: var(--vm-radius-small, 7px);
  background: var(--vm-surface, #eef3f9);
  transition: background-color var(--vm-transition, 200ms ease);
}

/* Icon auf der Kachel */
.mega-dropdown-column li[class*="vm-ico--"] > a::after,
.mega-dropdown-column a[class*="vm-ico--"]::after {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 2.4em;
  height: 2.4em;
  background-color: var(--vm-primary, #004994);
  -webkit-mask: var(--vm-ico) center / 1.25em no-repeat;
          mask: var(--vm-ico) center / 1.25em no-repeat;
  transition: background-color var(--vm-transition, 200ms ease);
}

/* Beim Überfahren dreht sich das Verhältnis um: Kachel blau, Icon weiß.
   Der Zeilenhintergrund bleibt hell, sonst verschwände die Kachel darin. */
.mega-dropdown-column li[class*="vm-ico--"] > a:hover::before,
.mega-dropdown-column li[class*="vm-ico--"] > a:focus-visible::before,
.mega-dropdown-column a[class*="vm-ico--"]:hover::before,
.mega-dropdown-column a[class*="vm-ico--"]:focus-visible::before {
  background: var(--vm-primary, #004994);
}
.mega-dropdown-column li[class*="vm-ico--"] > a:hover::after,
.mega-dropdown-column li[class*="vm-ico--"] > a:focus-visible::after,
.mega-dropdown-column a[class*="vm-ico--"]:hover::after,
.mega-dropdown-column a[class*="vm-ico--"]:focus-visible::after {
  background-color: var(--vm-white, #ffffff);
}

/* --- Hinweiszeile ------------------------------------------------------
   Für weiterführende Zeilen wie „Sie wissen noch nicht, was Sie brauchen?".
   Umsetzung im Backend: eine Weiterleitungsseite anlegen (nicht in der
   Navigation), Navigationstitel = die Frage, Untertitel = der Halbsatz,
   CSS-Klasse = `vm-ico--info -hinweis`. Dadurch bleibt alles redaktionell
   pflegbar, ohne HTML im Mega-Menü.

   Optisch abgesetzt allein über den warmen Kachelton – die Zeile liest sich
   dadurch als Angebot und nicht als weitere Leistung. */
/* Bewusst eine Klasse tiefer verschachtelt (.mega-dropdown davor) als die
   Grundregel für die Kachel. Sonst wären beide gleich spezifisch und die
   Farbe hinge allein an der Reihenfolge im Stylesheet – die Contao beim
   Zusammenfassen mehrerer Dateien ändern kann.
   Feste Hex-Werte statt color-mix: an `in srgb` bleiben manche Minifier
   hängen, und dann fällt die ganze Regel aus. */
/* Kein zusätzlicher Abstand: Der eigene Kachelton setzt die Zeile bereits
   genug ab, ein Extra-Abstand ließ sie abgehängt wirken. Die Regel bleibt
   trotzdem stehen – falls das Theme später Abstände auf die <li> legt, ist
   die Zeile hier ausdrücklich davon ausgenommen.
   (Wichtig war außerdem: NUR auf dem <li>. Stand der Wert zusätzlich auf
   dem <a>, addierte er sich, und die absolut gesetzte Kachel rutschte mit.) */
.mega-dropdown .mega-dropdown-column li.-hinweis {
  margin-top: 0;
}
.mega-dropdown .mega-dropdown-column li.-hinweis > a::before,
.mega-dropdown .mega-dropdown-column a.-hinweis::before {
  background: #fff3d4;
}
.mega-dropdown .mega-dropdown-column li.-hinweis > a::after,
.mega-dropdown .mega-dropdown-column a.-hinweis::after {
  /* Bewusst NICHT --vm-cta: Orange auf hellem Gelb ist zu schwach.
     Dieser dunklere Bernsteinton bleibt erkennbar. */
  background-color: #a97a00;
}

/* --- Aktueller Punkt --------------------------------------------------
   Contao markiert die aufgerufene Seite mit `active`, die Elternseiten mit
   `trail` – und eine WEITERLEITUNGSSEITE, die auf die aktuelle Seite zeigt,
   mit `forward`. Genau das trifft auf unsere Hinweiszeile zu, deshalb muss
   `forward` mit in die Liste. Je nach Navigationstemplate steht dort
   außerdem ein <a> ODER ein <strong> ohne Link – deshalb beides.

   Nur fettere Schrift reicht als Signal nicht: Der Seitenname ist ohnehin
   blau und halbfett. Der Zustand wird deshalb wie beim Überfahren gezeigt –
   helle Zeilenfläche, gefüllte Kachel, weißes Icon. */
.mega-dropdown .mega-dropdown-column ul a.active,
.mega-dropdown .mega-dropdown-column ul a.trail,
.mega-dropdown .mega-dropdown-column ul a.forward,
.mega-dropdown .mega-dropdown-column ul strong.active,
.mega-dropdown .mega-dropdown-column ul li.active > a,
.mega-dropdown .mega-dropdown-column ul li.trail > a,
.mega-dropdown .mega-dropdown-column ul li.forward > a {
  background: var(--vm-surface, #eef3f9);
  /* Schriftstärke bewusst festhalten. Das Theme setzt auf aktive Links
     `font-weight: bold` – dadurch wird der Seitenname breiter und bricht
     um, die Zeile wächst also allein durch den Zustand in die Höhe. Den
     Zustand tragen bei uns Fläche und gefüllte Kachel, das reicht. */
  font-weight: 500;
}
.mega-dropdown .mega-dropdown-column ul a.active::before,
.mega-dropdown .mega-dropdown-column ul a.trail::before,
.mega-dropdown .mega-dropdown-column ul a.forward::before,
.mega-dropdown .mega-dropdown-column ul strong.active::before,
.mega-dropdown .mega-dropdown-column ul li.active > a::before,
.mega-dropdown .mega-dropdown-column ul li.trail > a::before,
.mega-dropdown .mega-dropdown-column ul li.forward > a::before {
  background: var(--vm-primary, #004994);
}
.mega-dropdown .mega-dropdown-column ul a.active::after,
.mega-dropdown .mega-dropdown-column ul a.trail::after,
.mega-dropdown .mega-dropdown-column ul a.forward::after,
.mega-dropdown .mega-dropdown-column ul strong.active::after,
.mega-dropdown .mega-dropdown-column ul li.active > a::after,
.mega-dropdown .mega-dropdown-column ul li.trail > a::after,
.mega-dropdown .mega-dropdown-column ul li.forward > a::after {
  background-color: var(--vm-white, #ffffff);
}

/* Falls die aufgerufene Seite als <strong> statt als <a> ausgegeben wird,
   fehlt sonst die Kachel komplett – hier dieselben Maße wie beim Link. */
.mega-dropdown-column li[class*="vm-ico--"] > strong {
  display: block;
  position: relative;
  min-height: 2.4em;
  padding-left: 3.15em;
  padding-block: 0.5em;
  border-radius: var(--vm-radius-small, 7px);
}
.mega-dropdown-column li[class*="vm-ico--"] > strong::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 2.4em;
  height: 2.4em;
  border-radius: var(--vm-radius-small, 7px);
  background: var(--vm-primary, #004994);
}
.mega-dropdown-column li[class*="vm-ico--"] > strong::after {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 2.4em;
  height: 2.4em;
  background-color: var(--vm-white, #ffffff);
  -webkit-mask: var(--vm-ico) center / 1.25em no-repeat;
          mask: var(--vm-ico) center / 1.25em no-repeat;
}

/* Untertitel aus den Seiteneinstellungen (Feld „Untertitel", rsmm_subtitle).
   Steht unter dem Seitennamen und trägt die Erklärung – ohne ihn wird das
   Mega-Menü zur bloßen Linkliste. */
/* Bewusst tief verschachtelt statt !important: Die Erweiterung bringt ein
   eigenes Stylesheet mit (bundles/rocksolidmegamenu/...), das den Untertitel
   mit höherer Spezifität setzt als eine einzelne Klasse. Wir gewinnen hier
   über die echte Verschachtelung (0,3,3) — bleibt überschreibbar, während
   ein !important nur durch ein weiteres !important zu korrigieren wäre. */
.mega-dropdown .mega-dropdown-inner .mega-dropdown-column ul a > :last-child {
  display: block;
  margin-top: 0.15em;
  color: var(--vm-text-2, #6b6b6a);
  font-size: 0.87rem;
  font-weight: 400;
  line-height: 1.35;
}

/* KEINE eigene Regel für den Seitennamen.
   Grund: Die Erweiterung gibt den Namen als reinen TEXT im Link aus, der
   Untertitel ist das einzige Element darin. Eine Regel auf :first-child
   trifft deshalb den Untertitel, nicht den Namen – genau das sah dann
   gleich aus. Der Name erbt seine Optik vom Link selbst (blau, 500), der
   Untertitel wird über :last-child abgesetzt. Das funktioniert auch, falls
   die Erweiterung den Namen später doch in ein eigenes Element packt. */

/* Zeilen aus dem RSCE „VM Absatz mit Icon" (rsce_vm_icon_text_blocks):
   Icon links im Blau, Titel darüber, Halbsatz darunter. Die Optik der
   Kacheln kommt aus custom_vm_icons.css / custom_vm_icon_boxes.css. */
.mega-dropdown-column .vm-icon-text {
  padding: 0.7em 0.8em;
  margin-inline: -0.8em;
  border-radius: var(--vm-radius-small, 7px);
}
.mega-dropdown-column a:hover .vm-icon-text,
.mega-dropdown-column .vm-icon-text:hover {
  background: var(--vm-surface, #eef3f9);
}

/* In der Aktionsspalte ist die Überschrift keine Spaltenbeschriftung,
   sondern Teil des Textes – dort also kein Akzent-Quadrat davor, und in
   voller Schriftfarbe statt in Grau. */
.mega-dropdown-column.-aktion h1,
.mega-dropdown-column.-aktion h2,
.mega-dropdown-column.-aktion h3,
.mega-dropdown-column.-aktion h4 {
  color: var(--vm-text, #333333) !important;
  font-size: 1.1rem;
  font-weight: 700;
}
.mega-dropdown-column.-aktion h1::before,
.mega-dropdown-column.-aktion h2::before,
.mega-dropdown-column.-aktion h3::before,
.mega-dropdown-column.-aktion h4::before {
  content: none;
}

/* Letzte Spalte als Aktionsfläche: getönt, mit Button unten.
   Im Backend die Spalte mit der CSS-Klasse „-aktion" versehen. */
.mega-dropdown-column.-aktion {
  background: var(--vm-surface-light, #f4f7fa);
  border-radius: var(--vm-radius, 10px);
  padding: 1.4em;
}
.mega-dropdown-column.-aktion .button { width: 100%; }

/* Abstände in der Aktionsspalte enger führen. Das Theme setzt
   `.mega-dropdown-column p { margin: 1em 0 }` – zwischen Text, Button und
   Telefonzeile reißt das sichtbare Lücken. */
.mega-dropdown-column.-aktion .mega-dropdown-text p {
  margin: 0 0 0.9rem;
}
.mega-dropdown-column.-aktion .mega-dropdown-text p:last-child {
  margin-bottom: 0;
}
.mega-dropdown-column.-aktion h1,
.mega-dropdown-column.-aktion h2,
.mega-dropdown-column.-aktion h3,
.mega-dropdown-column.-aktion h4 {
  margin-bottom: 0.7rem;
}

/* Textlinks in den Spalteninhalten – z. B. die Telefonnummer unter dem
   Button. Ohne diese Regel erben sie die Schriftfarbe der Spalte und sind
   nicht als Link erkennbar. `:not(.button)` nimmt den Button aus, der hat
   seine eigene Farblogik (orange Fläche, dunkle Schrift). */
.mega-dropdown-column .mega-dropdown-text a:not(.button) {
  color: var(--vm-primary, #004994);
  font-weight: 700;
}
.mega-dropdown-column .mega-dropdown-text a:not(.button):hover,
.mega-dropdown-column .mega-dropdown-text a:not(.button):focus-visible {
  color: var(--vm-primary-hover, #003a76);
}

.mega-dropdown-column p {
  color: var(--vm-text-2, #6b6b6a);
  font-size: 0.95rem;
}


/* =====================================================================
   5) EINFACHES DROPDOWN (Punkte ohne Mega-Menü)
   ===================================================================== */

.main-navigation > ul > li > ul {
  border: 1px solid var(--vm-border, #e3e8ee);
  border-top: none;
  border-radius: 0 0 var(--vm-radius, 10px) var(--vm-radius, 10px);
  background: var(--vm-white, #ffffff);
  box-shadow: 0 18px 38px rgba(0, 73, 148, 0.10);
}
.main-navigation > ul > li > ul a,
.main-navigation > ul > li > ul span.forward {
  color: var(--vm-text, #333333);
  font-weight: 500;
}
.main-navigation > ul > li > ul a:hover,
.main-navigation > ul > li > ul a:focus-visible {
  color: var(--vm-primary, #004994) !important;   /* NICHT Orange */
  background: var(--vm-surface, #eef3f9);
}

/* Die aufgerufene Seite: dieselbe Fläche wie beim Überfahren, dazu fetter
   Schnitt. So sieht man im geöffneten Menü sofort, wo man gerade steht.

   WARUM SO VIELE SELEKTOREN: Contao gibt die aufgerufene Seite NICHT als
   Link aus, sondern als `<strong class="active">` (bzw. je nach Template
   als `span.active`). Alles, was nur am `<a>` hängt, geht daran vorbei –
   deshalb stand die aktive Zeile als einzige ohne Fläche da. `trail`
   (Elternseite) und `forward` (Weiterleitungsseite, die hierher zeigt)
   gehören dazu, sonst bleibt der Zustand bei Unterseiten und umbenannten
   Menüzeilen aus. Ausführlich im Team-Wissen [26].

   Nachgemessen am 11.09.2026: Der <strong> erbt `display: block` und das
   Polster des Themes korrekt – die müssen hier also NICHT wiederholt
   werden. Seine Schriftstärke lag allerdings bei 400 und damit DÜNNER als
   die der Nachbarn (500); der aktive Punkt war der am schwächsten
   gezeichnete im ganzen Menü.

   SPEZIFITÄT – hier steckt die Falle: ONEO hat für genau diesen Zustand
   eine eigene Regel, die `strong.active` adressiert (0,2,4) und die Farbe
   auf #024981 setzt. Ein schlichtes `strong` (0,1,4) verliert dagegen –
   und zwar NUR bei der Farbe. Fläche und Schriftstärke kamen trotzdem
   durch, weil das Theme die beiden dort nicht setzt. Das Ergebnis war ein
   Zustand, der zur Hälfte stimmte: richtige Fläche, falsches Blau.
   Deshalb die Zustandsklassen ausgeschrieben – dann ist die Spezifität
   gleich und diese Datei gewinnt, weil sie später geladen wird. `strong`
   ohne Klasse bleibt zusätzlich drin, falls ein Template es einmal ohne
   ausgibt. Kein !important nötig.

   Die Hover-Regel darüber behält Vorrang, falls eine aktive Seite doch
   als Link erscheint – überfahren soll überfahren bleiben. */
.main-navigation > ul > li > ul a.active,
.main-navigation > ul > li > ul a.trail,
.main-navigation > ul > li > ul a.forward,
.main-navigation > ul > li > ul strong,
.main-navigation > ul > li > ul strong.active,
.main-navigation > ul > li > ul strong.trail,
.main-navigation > ul > li > ul strong.forward,
.main-navigation > ul > li > ul span.active,
.main-navigation > ul > li > ul span.trail,
.main-navigation > ul > li > ul span.forward {
  background: var(--vm-surface, #eef3f9);
  color: var(--vm-primary, #004994);
  font-weight: 700;
}


/* =====================================================================
   6) MOBILE NAVIGATION (ONEO, ab 900px abwärts)
   ---------------------------------------------------------------------
   Läuft im Fluss unter der Kopfzeile und schiebt den Inhalt nach unten –
   kein Overlay. Hier nur Farben und Tippflächen.
   Barrierearmut: jede Tippfläche mindestens 44px hoch.
   ===================================================================== */

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

  .main-navigation-mobile {
    border-top: 1px solid var(--vm-border, #e3e8ee);
    color: var(--vm-text, #333333);
    background: var(--vm-white, #ffffff);
  }

  /* `:not(.button)` nimmt den Aktions-Button im Kontaktblock aus: Er soll
     seine Farben aus custom_vm_buttons.css behalten und nicht wie eine
     Menüzeile aussehen. */
  .main-navigation-mobile a:not(.button),
  .main-navigation-mobile span.active,
  .main-navigation-mobile span.trail,
  .main-navigation-mobile span.forward,
  .main-navigation-mobile strong {
    display: flex;
    align-items: center;
    min-height: 52px;                /* Tippfläche */
    color: var(--vm-text, #333333);
    font-family: var(--vm-font-body, "Ubuntu", sans-serif);
    font-weight: 500;
    text-transform: none;

    /* Trennlinie NUR am <li>, nicht zusätzlich am Link.
       ONEO legt sie in main.css auf den Link – der ist aber nur so breit
       wie die Zeile OHNE Aufklapp-Knopf und je nach Inhalt etwas
       niedriger. Beide Linien stehen dadurch leicht versetzt
       übereinander; am deutlichsten oberhalb des Kontaktblocks, wo die
       kurze Linie des Links auf die volle Linie darunter trifft. */
    border-bottom: 0;
    box-shadow: none;                /* ONEOs Lichtkante oben dazu */
  }

  /* Aktuelle Seite: Blau + Quadrat davor, nicht nur Farbe.
     ABSICHT, nicht vergessen: In der Unterebene behält die aufgerufene
     Seite ihren weißen Hintergrund aus ONEO, während die übrigen Punkte
     auf --vm-surface-light liegen. Der helle Streifen ist gewollt – er
     macht die aktuelle Seite auffälliger. Also NICHT „aufräumen". */
  .main-navigation-mobile strong,
  .main-navigation-mobile a.trail,
  .main-navigation-mobile .active > a {
    color: var(--vm-primary, #004994);
    font-weight: 700;
  }

  .main-navigation-mobile li { border-bottom: 1px solid var(--vm-border, #e3e8ee); }
  .main-navigation-mobile li:last-child { border-bottom: 0; }

  /* Unterebene abgesetzt, Punkte mit Quadrat statt Bullet */
  .main-navigation-mobile ul ul { background: var(--vm-surface-light, #f4f7fa); }
  /* Einzug für die ganze Unterebene – auch für die aufgerufene Seite, die
     Contao als <strong> (bzw. span.active/trail) ohne Link ausgibt. Ohne
     sie hier zu nennen, stünde genau dieser eine Punkt bündig links. */
  .main-navigation-mobile ul ul a,
  .main-navigation-mobile ul ul strong,
  .main-navigation-mobile ul ul span.active,
  .main-navigation-mobile ul ul span.trail,
  .main-navigation-mobile ul ul span.forward {
    padding-left: 2rem;
  }

  /* Schriftstärke nur an den Links zurücknehmen: Der aktive Punkt soll
     seine 700 aus der Zustandsregel behalten. */
  .main-navigation-mobile ul ul a { font-weight: 400; }

  /* Das gelbe Quadrat gehört zu jedem Punkt der Unterebene, unabhängig
     davon, ob er gerade verlinkt ist oder die aufgerufene Seite. */
  .main-navigation-mobile ul ul a::before,
  .main-navigation-mobile ul ul strong::before,
  .main-navigation-mobile ul ul span.active::before,
  .main-navigation-mobile ul ul span.trail::before,
  .main-navigation-mobile ul ul span.forward::before {
    content: "";
    width: 6px; height: 6px;
    border-radius: 2px;
    background: var(--vm-cta, #fbba00);
    margin-right: 0.75rem;
    flex: 0 0 auto;
  }

  /* Aufklapp-Knopf: eigene Tippfläche neben dem Link, der Link selbst
     navigiert weiter. Mindestens 52x52px. */
  .main-navigation-mobile .main-navigation-mobile-expand {
    min-width: 56px;
    min-height: 52px;

    /* `top: 0` ist PFLICHT, nicht Kosmetik: ONEO setzt den Knopf in
       main.css auf `position: absolute; top: 0.21429em; right: 0` und gibt
       ihm zusätzlich `border-width: 0.21429em 0`. Er sitzt dadurch rund
       3px tiefer als die Zeile – und mit ihm seine senkrechte Trennlinie
       (im Theme ein `box-shadow: inset 1px 0`). Das ist der Versatz, der
       an den Zeilenübergängen als verrutschte Kante auffällt.
       Die absolute Positionierung selbst bleibt: Sie hält den Knopf am
       rechten Rand, ohne dass der Link daneben umbrechen muss. */
    top: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border-left: 1px solid var(--vm-border, #e3e8ee);
    border-width: 0 0 0 1px;
    color: var(--vm-primary, #004994);
    background: transparent;
  }
  .main-navigation-mobile .main-navigation-mobile-expand:hover,
  .main-navigation-mobile .main-navigation-mobile-expand:focus-visible {
    background: var(--vm-surface, #eef3f9);
  }

  /* Ein etwaiges Mega-Menü NICHT mobil ausspielen – die Spalteninhalte
     wären dort ein unbedienbarer Klotz. ONEO liefert stattdessen die
     normale Unterebene aus. */
  .mega-dropdown { display: none !important; }
}


/* =====================================================================
   6a) MOBILE NAVIGATION IM FLUSS STATT ALS OFF-CANVAS
   ---------------------------------------------------------------------
   ONEOs script.js baut aus der mobilen Navigation ein Schubfach: Es hängt
   das Panel im DOM AUS `.page` HERAUS (davor, als Geschwister), setzt die
   Klasse `is-enabled` (position:absolute, 85% Breite, von links) und legt
   `.page` beim Öffnen inline auf feste Höhe mit `overflow: hidden`.

   Gewünscht ist die andere Fassung: Das Menü öffnet UNTER der Kopfzeile
   und schiebt den Seiteninhalt nach unten. Mit CSS allein geht das nicht
   mehr – die Kopfzeile liegt INNERHALB `.page`, das Panel außerhalb; eine
   Box kann nicht halb vor und halb hinter einer anderen stehen.

   Deshalb übernimmt vm_mobilenav.js das Umschalten: Es hängt das Panel
   zurück in die Kopfzeile, räumt ONEOs Off-Canvas-Zustand ab und setzt
   beim Öffnen die Klasse `-offen`. Erkennbar ist das an `-vm-flow`, die
   das Skript dem Panel gibt.

   Alle Regeln hier hängen deshalb an `-vm-flow`: Läuft das Skript nicht
   (Datei nicht eingebunden, JS-Fehler), bleibt ONEOs eigenes Verhalten
   unangetastet – dann gibt es wieder das Schubfach statt gar kein Menü.
   ===================================================================== */

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

  /* Geschlossen. Bewusst nicht an `.modernizr-js` gehängt wie im Theme,
     sondern an unsere eigene Klasse – die ist unabhängig davon, ob
     Modernizr im Layout aktiv ist. */
  .main-navigation-mobile.-vm-flow {
    display: none;

    /* Reste des Schubfachs abräumen, falls `is-enabled` noch am Element
       hängt (z. B. weil das Theme sie später erneut setzt). */
    position: static !important;
    left: auto !important;
    width: 100% !important;
    min-height: 0 !important;
    transform: none !important;
    box-shadow: none !important;
    transition: none !important;
  }

  .main-navigation-mobile.-vm-flow.-offen {
    display: block;
  }

  /* Die Schließfläche rechts neben dem Schubfach ergibt im Fluss keinen
     Sinn – das Skript entfernt sie; hier zur Sicherheit auch per CSS. */
  .main-navigation-mobile-close {
    display: none !important;
  }

  /* Die Kopfzeile bleibt mobil oben stehen (s. Abschnitt 7). Das offene
     Menü sitzt IN ihr und würde bei vielen Punkten über den Bildschirm
     hinauslaufen – deshalb deckeln und in sich scrollen lassen.
     Abgezogen werden die Kopfhöhe und die Quicknav am unteren Rand,
     damit der letzte Menüpunkt nicht unter der Leiste endet.
     `dvh` statt `vh`: Auf Mobilgeräten meint `vh` die Höhe OHNE
     eingeblendete Adressleiste – das Menü wäre sonst zu hoch. */
  .main-navigation-mobile.-vm-flow.-offen {
    max-height: calc(100vh - var(--vm-kopf-hoehe) - var(--vm-quicknav-space, 0px));
    max-height: calc(100dvh - var(--vm-kopf-hoehe) - var(--vm-quicknav-space, 0px));
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }
}


/* =====================================================================
   6b) KONTAKTZEILEN – BLOCK UNTER DEN MENÜPUNKTEN
   ---------------------------------------------------------------------
   Markup aus rsce_vm_mobile_nav_footer.html5 (Modul im Kopfzeilen-Bereich,
   innerhalb von .main-navigation-mobile). Dasselbe Element trägt in der
   Kopfleiste die Servicezeile – dort mit der Klasse `-reihe`, s. 8). Optisch abgesetzte Fläche, damit
   klar wird: Hier hören die Seiten auf, hier beginnen die Wege zu uns.

   Die Tippflächen sind mindestens 48px hoch (Barrierearmut), der Button
   erbt seine Farben aus custom_vm_buttons.css.
   ===================================================================== */

/* Die abgesetzte Fläche gilt NUR im mobilen Menü. Ohne diese Einschränkung
   bekäme auch die Servicezeile in der Kopfleiste (Abschnitt 8) den hellen
   Kasten samt Polster – dort steht dasselbe Element in einem blauen Band.
   Die Zeilen selbst bleiben allgemein gestaltet, nur der Rahmen darum ist
   ortsabhängig. */
.main-navigation-mobile .vm-kontaktzeilen {
  padding: 1.25rem;
  border-top: 1px solid var(--vm-border, #e3e8ee);
  background: var(--vm-surface-light, #f4f7fa);
}

/* Zeile = Icon + Text. <a> bei Telefon/E-Mail, <p> bei den Öffnungszeiten. */
.vm-kontaktzeilen .vm-kontaktzeile {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  min-height: 48px;
  margin: 0;
  color: var(--vm-text, #333333);
  font-weight: 500;
  text-decoration: none;
}

.vm-kontaktzeilen a.vm-kontaktzeile:hover,
.vm-kontaktzeilen a.vm-kontaktzeile:focus-visible {
  color: var(--vm-primary, #004994);
}

/* Reine Textzeile (Öffnungszeiten): mehrzeilig, deshalb oben ausgerichtet
   und etwas zurückgenommen – sie ist Information, kein Weg. */
.vm-kontaktzeilen .vm-kontaktzeile.-text {
  align-items: flex-start;
  padding-block: 0.6rem;
  color: var(--vm-text-2, #6b6b6a);
  font-size: 0.93em;
  font-weight: 400;
}

/* Icon in Markenfarbe; die Maske erbt Größe und Farbe von hier. */
.vm-kontaktzeilen .vm-kontaktzeile .vm-icon {
  width: 1.25em;
  height: 1.25em;
  color: var(--vm-primary, #004994);
}

/* Bei der mehrzeiligen Textzeile sitzt das Icon sonst optisch zu hoch. */
.vm-kontaktzeilen .vm-kontaktzeile.-text .vm-icon {
  margin-top: 0.25em;
}

/* Aktions-Button über die volle Breite – die letzte, deutlichste Zeile. */
.vm-kontaktzeilen .vm-kontaktzeilen-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
  width: 100%;
  min-height: 52px;
  margin-top: 0.75rem;
  text-align: center;
}

/* Die Menü-Regeln aus Abschnitt 6 gelten für ALLE Links innerhalb der
   mobilen Navigation – sie würden dem Block Trennlinien und volle
   Zeilenhöhe aufzwingen. Hier deshalb zurücknehmen. */
@media screen and (max-width: 900px) {
  .main-navigation-mobile .vm-kontaktzeilen a:not(.button),
  .main-navigation-mobile .vm-kontaktzeilen a:not(.button):hover,
  .main-navigation-mobile .vm-kontaktzeilen a:not(.button):focus,
  .main-navigation-mobile .vm-kontaktzeilen p {
    min-height: 48px;
    border-bottom: 0;
    background: transparent;
    box-shadow: none;
  }

  /* Der Aktions-Button: Seine Fläche steht in custom_vm_buttons.css, wird
     dort aber von ONEOs `.main-navigation-mobile a` (spezifischer als
     `.button`) überschrieben. Deshalb hier dieselben Tokens noch einmal –
     KEINE eigenen Werte, damit es nur eine Quelle für die Farben gibt. */
  .main-navigation-mobile .vm-kontaktzeilen a.button {
    min-height: 52px;
    background: var(--vm-cta, #fbba00);
  }
  .main-navigation-mobile .vm-kontaktzeilen a.button:hover,
  .main-navigation-mobile .vm-kontaktzeilen a.button:focus-visible {
    background: var(--vm-cta-dark, #e0a600);
  }

  .main-navigation-mobile .vm-kontaktzeilen a.button.-dark {
    background: var(--vm-text, #333333);
  }
  .main-navigation-mobile .vm-kontaktzeilen a.button.-dark:hover,
  .main-navigation-mobile .vm-kontaktzeilen a.button.-dark:focus-visible {
    background: var(--vm-primary, #004994);
  }

  .main-navigation-mobile .vm-kontaktzeilen a.button.-outline {
    background: transparent;
  }
  .main-navigation-mobile .vm-kontaktzeilen a.button.-outline:hover,
  .main-navigation-mobile .vm-kontaktzeilen a.button.-outline:focus-visible {
    background: var(--vm-primary, #004994);
  }
}


/* =====================================================================
   7) MOBILER KOPF – Logo links, Aktionen rechts, „Menü" als Pill
   ---------------------------------------------------------------------
   ONEO baut den mobilen Kopf anders als unser Entwurf: Der Öffner ist ein
   Hamburger-Streifen links am Rand (per JavaScript in die Kopfzeile
   gehängt, main.css: .main-navigation-mobile-open), das Logo steht
   zentriert. Gewünscht ist: Logo links, rechts die Aktionen, der Öffner
   als beschrifteter Pill-Button „Menü".

   Wir bauen den Öffner NICHT nach – ONEOs JavaScript erzeugt und schaltet
   ihn. Hier wird nur umgestylt: aus dem 44px-Streifen wird eine Pille mit
   Beschriftung. Weil das Element seinen eigenen Text per text-indent aus
   dem Bild schiebt, kommen Beschriftung und Icon aus den Pseudoelementen –
   beide absolut positioniert, damit der text-indent sie nicht mitzieht.

   Icons als CSS-Maske wie im ganzen Set (custom_vm_icons.css); hier
   direkt eingesetzt statt über eine .vm-ico--Klasse, weil das Markup vom
   Theme kommt und keine Klasse tragen kann.
   ===================================================================== */

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

  /* --- Kopfzeile bleibt oben stehen --------------------------------
     `position: sticky` statt `fixed`: Sticky bleibt IM FLUSS, deshalb
     braucht die Seite keinen Ausgleich für die weggefallene Höhe und es
     gibt keinen Sprung beim Laden. Vor allem aber wächst die Kopfzeile
     so mit dem geöffneten Menü mit, das ja in ihr sitzt.

     Bezugspunkt ist `.page` (position: relative aus dem Theme) – die
     umspannt das ganze Dokument, also klebt die Leiste über die volle
     Seitenlänge. Auf `.header-navigation` allein würde sticky NICHT
     funktionieren: Ihr Container `.page-header` ist nur so hoch wie sie
     selbst, es gäbe keinen Weg zum Kleben.

     z-index 90 hält sie über dem Inhalt, aber unter der Quicknav (100). */
  .page-header {
    position: sticky;
    top: 0;
    z-index: 90;

    /* Ohne eigene Fläche scheint der Inhalt beim Scrollen durch: Die
       weiße Farbe sitzt im Theme auf .main-navigation-wrapper, nicht auf
       der Kopfzeile selbst. */
    background: var(--vm-white, #ffffff);
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.07);
  }

  /* ONEOs eigene Fixierung abschalten. Sie setzt beim Scrollen
     `position: fixed` OHNE Höhenausgleich – zusammen mit unserem sticky
     ergäbe das eine doppelte Leiste und einen Sprung im Inhalt. */
  .page-header .header-navigation.is-fixed {
    position: static;
    box-shadow: none;
  }

  /* Höhe der Kopfzeile als Variable: Sie wird oben beim Deckeln des
     offenen Menüs gebraucht. Der Wert muss zur Mindesthöhe unten passen
     – Logo (2em hoch, s. main.css) plus Polster passen hinein. */
  :root {
    --vm-kopf-hoehe: 68px;
  }

  /* Platz für die absolut sitzenden Aktionen; ohne Mindesthöhe klebt die
     Pille bei kleinem Logo am oberen Rand. */
  .main-navigation-wrapper {
    position: relative;
    min-height: var(--vm-kopf-hoehe);
  }

  /* Logo links statt zentriert (ONEO: `text-align: center`). */
  .logo {
    text-align: left;
    margin-left: var(--page-padding-left, 1.25rem);
    /* rechts Platz lassen: Pille (7rem) + Telefon-Knopf + Abstände */
    padding-right: 11rem;
  }

  /* --- Der Öffner als Pille -------------------------------------- */
  .main-navigation-mobile-open {
    top: 50%;
    left: auto;
    right: var(--page-padding-right, 1.25rem);
    transform: translateY(-50%);

    width: 7rem;                     /* feste Breite -> der Telefon-Knopf
                                        daneben lässt sich davon ableiten */
    height: 46px;
    margin: 0;
    padding: 0;

    border-radius: var(--vm-radius, 10px);
    background: var(--vm-primary, #004994);

    /* Der eigene Text des Themes bleibt aus dem Bild geschoben – für
       Screenreader ist er weiter da. Sichtbar ist die Beschriftung unten. */
    text-indent: -99em;
    overflow: hidden;
  }

  /* Beschriftung */
  .main-navigation-mobile-open::before {
    content: "Menü";
    position: absolute;
    top: 0;
    left: 2.6rem;
    right: 0.75rem;
    line-height: 46px;
    text-indent: 0;                  /* sonst zieht der text-indent oben mit */
    color: var(--vm-white, #ffffff);
    font-family: var(--vm-font-body, "Ubuntu", sans-serif);
    font-size: 0.95rem;
    font-weight: 700;
    letter-spacing: 0;
    text-align: left;
  }

  /* Icon – ersetzt die drei Balken aus main.css (dort per box-shadow) */
  .main-navigation-mobile-open::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 0.9rem;
    width: 20px;
    height: 20px;
    margin: -10px 0 0;
    border-radius: 0;
    box-shadow: none;                /* die Balken abschalten */
    background-color: var(--vm-white, #ffffff);
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M4 6h16M4 12h16M4 18h16'/%3E%3C/svg%3E") center / contain no-repeat;
            mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M4 6h16M4 12h16M4 18h16'/%3E%3C/svg%3E") center / contain no-repeat;
  }

  /* Bei offenem Menü wird aus dem Hamburger ein Kreuz. Der Öffner steht in
     der Kopfzeile, das Menü ist ein späteres Geschwisterelement – nur über
     einen gemeinsamen Vorfahren mit :has() zu erreichen. */
  body:has(.main-navigation-mobile.is-active) .main-navigation-mobile-open::after,
  body:has(.main-navigation-mobile.-offen) .main-navigation-mobile-open::after {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M18 6 6 18M6 6l12 12'/%3E%3C/svg%3E");
            mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M18 6 6 18M6 6l12 12'/%3E%3C/svg%3E");
  }

  .main-navigation-mobile-open:hover,
  .main-navigation-mobile-open:focus-visible {
    background: var(--vm-primary-hover, #003a76);
  }

  /* --- Runder Telefon-Knopf links daneben (optional) ---------------
     Markup kommt aus einem Modul „Eigener HTML-Code" IN der Kopfzeile,
     innerhalb von .main-navigation-wrapper:

       <a class="vm-kopf-tel" href="tel:+4915569187930" aria-label="Anrufen"></a>

     Das Icon steckt hier in der CSS, damit im Backend nur der Link steht
     und niemand SVG-Code pflegen muss. */
  .vm-kopf-tel {
    position: absolute;
    top: 50%;
    right: calc(var(--page-padding-right, 1.25rem) + 7rem + 0.5rem);
    transform: translateY(-50%);

    display: block;
    width: 46px;
    height: 46px;
    border: 2px solid var(--vm-border, #e3e8ee);
    border-radius: 50%;
    background: var(--vm-white, #ffffff);
    z-index: 200;
  }

  .vm-kopf-tel::before {
    content: "";
    position: absolute;
    inset: 0;
    margin: auto;
    width: 21px;
    height: 21px;
    background-color: var(--vm-primary, #004994);
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E") center / contain no-repeat;
            mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E") center / contain no-repeat;
  }

  .vm-kopf-tel:hover,
  .vm-kopf-tel:focus-visible {
    border-color: var(--vm-primary, #004994);
  }

  /* Ohne Telefon-Knopf braucht das Logo weniger Platz – die Klasse setzt
     man dem Layout-Bereich oder body zu, wenn der Knopf entfällt. */
  .-ohne-kopf-tel .logo {
    padding-right: 8.5rem;
  }
}


/* =====================================================================
   8) KOPFLEISTE ÜBER DER NAVIGATION (Servicezeile)
   ---------------------------------------------------------------------
   Schmales blaues Band ganz oben: Telefon, E-Mail, Öffnungszeiten,
   rechtsbündig. Markup:

     ~ Header Bar Begin   -> <div class="header-bar">
                               <div class="header-bar-inner">
       VM Kontaktzeilen   -> Anordnung „Nebeneinander (Kopfleiste)"
     ~ Header Bar End     -> </div></div>

   ONEO bringt für `.header-bar` KEINE eigene CSS mit (in der erzeugten
   main.css kommt die Klasse nicht vor) – die Gestaltung liegt hier
   vollständig bei uns, es gibt also nichts zu überschreiben.

   Die Leiste läuft mit dem Inhalt weg (kein sticky): Sie trägt Service-
   Informationen, keine Navigation. Fixiert wird ab 900px nur die
   Kopfzeile darunter, s. Abschnitt 7.
   ===================================================================== */

.header-bar {
  background: var(--vm-primary, #004994);
  color: var(--vm-white, #ffffff);
  font-size: 0.88rem;
}

.header-bar-inner {
  max-width: var(--vm-content-max, 1440px);
  margin-inline: auto;
  padding-inline: clamp(1rem, 4vw, 2rem);
}

/* --- Zeilen nebeneinander (Klasse `-reihe` aus dem Element) --------- */
.header-bar .vm-kontaktzeilen.-reihe {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;     /* rechtsbündig wie im Entwurf */
  gap: 0.4rem 1.6rem;
  min-height: 42px;
}

/* Die Blockmaße aus Abschnitt 6b gelten hier nicht: Dort sind die Zeilen
   Tippflächen im Menü (48px hoch), hier sind sie eine Textzeile. */
.header-bar .vm-kontaktzeilen.-reihe .vm-kontaktzeile {
  min-height: 0;
  padding: 0.35rem 0;
  gap: 0.5em;
  color: var(--vm-white, #ffffff);
  font-size: inherit;
  font-weight: 500;
}

.header-bar .vm-kontaktzeilen.-reihe .vm-kontaktzeile.-text {
  align-items: center;           /* einzeilig – kein Ausrichten nach oben */
  padding-block: 0.35rem;        /* nicht das Blockmaß aus Abschnitt 6b */
  color: rgba(255, 255, 255, 0.85);
  font-size: inherit;
  font-weight: 400;
}

.header-bar .vm-kontaktzeilen.-reihe .vm-kontaktzeile .vm-icon {
  color: currentColor;           /* nicht Markenblau auf Blau */
  width: 1.05em;
  height: 1.05em;
  margin-top: 0;
}

.header-bar .vm-kontaktzeilen.-reihe a.vm-kontaktzeile:hover,
.header-bar .vm-kontaktzeilen.-reihe a.vm-kontaktzeile:focus-visible {
  color: var(--vm-cta, #fbba00);
}

/* --- Mobil ----------------------------------------------------------
   Unter 900px wird der Platz knapp und die Kopfzeile darunter klebt
   ohnehin oben. Die Öffnungszeiten entfallen deshalb; Telefon und
   E-Mail bleiben und rücken auf die volle Breite, mittig verteilt.
   Wer die Leiste mobil ganz weglassen möchte, gibt dem Modul im
   Backend zusätzlich die Klasse `-nur-desktop`. */
@media screen and (max-width: 900px) {
  .header-bar .vm-kontaktzeilen.-reihe {
    justify-content: center;
    gap: 0.3rem 1.1rem;
    min-height: 0;
    padding-block: 0.3rem;
  }

  .header-bar .vm-kontaktzeilen.-reihe .vm-kontaktzeile.-text {
    display: none;
  }

  .header-bar .-nur-desktop {
    display: none;
  }
}

/* =====================================================================
   Sprunglinks („Navigation überspringen") beim Fokus sichtbar machen
   ---------------------------------------------------------------------
   Contao erzeugt je Navigationsmodul einen solchen Link und setzt darauf
   die Theme-Klasse `.invisible`. ONEO versteckt damit alles auf 1×1 px
   mit `clip` – auch im Fokus. Das Ergebnis: Wer mit der Tastatur durch
   die Seite geht, landet auf einem Element, das er nicht sehen kann. Er
   weiß weder, wo er ist, noch was passiert, wenn er die Eingabetaste
   drückt. Ein unsichtbarer Tabstopp ist schlechter als gar keiner
   (WCAG 2.4.7 „Fokus sichtbar").

   Die Regel holt den Link im Fokus zurück in den Textfluss. Bewusst
   `position: static` und kein absolut gesetzter Kasten: Dafür bräuchte
   jedes Elternelement einen Positionierungskontext, und den ausgerechnet
   auf `.mod_navigation` zu setzen, würde dem Mega-Menü seine eigene
   Positionierung zerschießen. Der kurze Sprung im Layout beim Durchtabben
   ist der ungefährlichere Weg.

   Die drei `!important` spiegeln nur ONEOs eigene `!important` in
   `.invisible` (main.css, ab Zeile 865) – ohne sie bliebe der Link 1 px
   groß und damit weiterhin unsichtbar.
   ===================================================================== */
a.invisible:focus {
  position: static;
  height: auto !important;
  width: auto !important;
  padding: 0.6rem 1rem !important;
  margin: 0;
  overflow: visible;
  clip: auto;
  clip-path: none;

  display: inline-block;
  border-radius: var(--vm-radius-small, 7px);
  background: var(--vm-cta, #fbba00);
  color: var(--vm-text, #333333);
  font-weight: 700;
  text-decoration: none;
}

a.invisible:focus-visible {
  outline: 3px solid var(--vm-primary, #004994);
  outline-offset: 3px;
}

/* =====================================================================
   be on solar – FOOTER (.footer-inhalte)
   ---------------------------------------------------------------------
   Dunkelblauer Fuß. Der Hintergrund kommt aus DIESER Datei – das
   Hintergrundfeld im Umschlagelement also leer lassen. Inhalt:
   Fisch-Logo und 5 Spalten: Firmeninfo · Leistungen · Unternehmen ·
   Standorte · Erreichbarkeit. Link-Listen = „VM Absatz mit Icon" (Pfeil).
   Standorte bewusst OHNE Map-Icon (kein Routenplaner-Missverständnis).
   Scoped über die Wrapper-Klasse .footer-inhalte.
   Nach custom_vm_base.css / custom_vm_icons.css laden.
   ===================================================================== */

/* --- Farben des Fußes ------------------------------------------------
   Eigene Tokens statt einzelner Werte an zehn Stellen: Der Fuß ist die
   einzige dunkle Fläche der Seite, hier gelten andere Regeln als im Rest
   des Sets. Wer die Fußfarbe ändern will, ändert diese fünf Zeilen.

   Kontraste auf #003a76, nachgerechnet:
     Text   rgba(255,255,255,.82)   ~ 7,9:1
     Weiß   #ffffff                 ~ 11,3:1
     Orange #fbba00                 ~ 6,5:1
   Alle über den 4,5:1 für Fließtext – auch das Orange, das im Set sonst
   nur als Fläche erlaubt ist. Auf Dunkelblau trägt es als Schriftfarbe. */
.page-footer,
.footer-inhalte,
.rechtliches {
  --vm-fuss-bg:     var(--vm-primary-dark, #003a76);
  --vm-fuss-text:   rgba(255, 255, 255, 0.82);
  --vm-fuss-stark:  #ffffff;                    /* Überschriften, Marke */
  --vm-fuss-akzent: var(--vm-cta, #fbba00);     /* Claim, Icons, Hover */
  --vm-fuss-linie:  rgba(255, 255, 255, 0.18);

  /* Der Fuß darf breiter laufen als der Inhalt darüber (1440px). Fünf
     Spalten brauchen mehr Platz als ein Textblock, und ein Fußband wirkt
     bei voller Breite ruhiger als ein schmaler Streifen in der Mitte.
     EIN Wert für beide Bänder, damit die Rechtsleiste unter den Spalten
     fluchtet – sonst fällt der Versatz sofort auf. */
  --vm-fuss-max:    1680px;

  background: var(--vm-fuss-bg);
}

/* --- Reserve für die Quicknav --------------------------------------
   Die feste Leiste liegt über dem Dokument; ohne Reserve klemmt das
   letzte Band darunter. Sie sitzt bewusst am FUSS und nicht an einem
   der Bänder: Welches Band zuletzt kommt, hängt vom Aufbau ab – heute
   die Rechtsleiste, morgen vielleicht eine Zeile mehr. So stimmt es
   in jedem Fall, und die dunkle Fläche läuft hinter der Leiste weiter.
   Wert siehe custom_vm_quicknav.css; ohne diese Datei greift 0px. */
.page-footer {
  padding-bottom: var(--vm-quicknav-space, 0px);
}

/* --- Band + zentrierter Inhalt -------------------------------------- */
.footer-inhalte {
  padding-top: clamp(1.75rem, 3vw, 2.5rem);      /* oben schlanker */
  padding-bottom: clamp(2.5rem, 5vw, 4rem);      /* unten großzügig */
  color: var(--vm-fuss-text);
}
.footer-inhalte > .centered-wrapper-inner {
  max-width: var(--vm-fuss-max, 1680px);
  margin-inline: auto;
  padding-inline: clamp(1rem, 4vw, 2rem);
}

/* --- Fisch-Logo ----------------------------------------------------- */
.footer-inhalte .content-image { margin: 0 0 clamp(1rem, 2vw, 1.5rem); }
.footer-inhalte .content-image figure { margin: 0; }
/* Die gelieferte Fußmarke ist der breite Schriftzug (490x88), nicht die
   quadratische Bildmarke – 88px Breite ließen sie winzig erscheinen.
   Fließend, damit sie in der schmalen Spalte auf Mobil nicht anstößt. */
.footer-inhalte .content-image img {
  width: clamp(150px, 16vw, 200px);
  max-width: 100%;
  height: auto;
}

/* Ab 900px steht die Firmenspalte über die volle Breite (s. sp-1 weiter
   unten) – dort wirkt der Schriftzug in Desktopgröße verloren. Er darf
   deshalb deutlich größer werden, bleibt über `min()` aber immer im
   Rahmen der Spalte. */
@media (max-width: 900px) {
  .footer-inhalte .content-image img {
    width: min(260px, 60%);
  }
}

/* --- Responsive Spalten-Raster (überschreibt ONEOs rs-columns) --------
   > 1400px : 5 Spalten (1 Reihe)
   901–1400 : 3 Spalten, 2 Reihen (Firmeninfo·Leistungen·Unternehmen /
              Standorte·Erreichbarkeit)
   601–900  : Firmeninfo volle Breite, dann 2×2
              (Leistungen|Unternehmen, Standorte|Erreichbarkeit)
   ≤ 600    : alles einspaltig
   rs-columns wird zu CSS-Grid; ONEO-Breiten/Floats werden neutralisiert. */
.footer-inhalte .rs-columns {
  display: grid !important;

  /* Breiten nach LÄNGE DER EINTRÄGE, nicht gleichmäßig:
       sp-1 Firmeninfo   1.7  – Logo, Claim, Anschrift, Kontakt
       sp-2 Lösungen     1.0  – zwei kurze Einträge
       sp-3 Leistungen   1.5  – „Wallboxen & Ladeinfrastruktur" ist der
                                längste Eintrag im ganzen Fuß
       sp-4 Ratgeber     1.15 – „Photovoltaik-Wissen"
       sp-5 Unternehmen  0.85 – lauter kurze Wörter
     Vorher bekam ausgerechnet die Leistungen-Spalte die schmalste
     Zuteilung (1fr) – daher die Umbrüche mitten in den Begriffen. */
  grid-template-columns: 1.7fr 1fr 1.5fr 1.15fr 0.85fr;
  gap: 2.5rem 2.5rem;
  margin: 0 !important;
}
.footer-inhalte .rs-column {
  width: auto !important;
  float: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

@media (max-width: 1200px) {
  .footer-inhalte .rs-columns { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 900px) {
  .footer-inhalte .rs-columns { grid-template-columns: repeat(2, 1fr); }
  .footer-inhalte .rs-column.sp-1 { grid-column: 1 / -1; }  /* Firmeninfo volle Breite */
}
@media (max-width: 700px) {
  .footer-inhalte .rs-columns { grid-template-columns: 1fr; }
  .footer-inhalte .rs-column.sp-1 { grid-column: auto; }
}

/* --- Spalten-Überschriften ------------------------------------------
   `.rte` gibt der Regel genug Spezifität, um die .content-text-Textregel
   (weiter unten, 0.6rem) zu schlagen -> einheitlicher Abstand für ALLE
   Spaltenüberschriften. */
.footer-inhalte .rs-column .font-size-m .rte p { margin: 0 0 0.9rem; }

/* Zwei Schreibweisen, EIN Ergebnis: Die Überschrift kann als <strong> im
   Text ausgezeichnet sein ODER – wie im Backend angelegt – über die
   Formatklasse „bold" am Element. Nur `strong` zu adressieren, ließ die
   Überschriften in der Textfarbe (82 % Weiß) statt in reinem Weiß. */
.footer-inhalte .rs-column .font-size-m strong,
.footer-inhalte .rs-column .font-size-m .rte p {
  font-family: var(--vm-font-display, "Poppins", sans-serif);
  font-weight: 700;
  font-size: 1.15rem;
  color: var(--vm-fuss-stark);
}

/* --- Firmen-Intro (Spalte 1) ---------------------------------------- */
.footer-inhalte .content-text .rte p { margin: 0 0 0.6rem; line-height: 1.55; }
.footer-inhalte .content-text .rte > :last-child { margin-bottom: 0; }
/* „Die Agentur kennenlernen"-Link (Absatz mit Icon) unter dem Fließtext absetzen */
.footer-inhalte .rs-column.sp-1 .vm-icon-text { margin-top: 0.9rem; }
/* … und in Akzent-Rot + semibold (einziger Icon-Link in Spalte 1) */
.footer-inhalte .rs-column.sp-1 .vm-icon-text a { color: var(--vm-fuss-text); font-weight: 600; }
.footer-inhalte .rs-column.sp-1 .vm-icon-text a:hover,
.footer-inhalte .rs-column.sp-1 .vm-icon-text a:focus-visible { color: var(--vm-fuss-akzent); }

/* Weiche Silbentrennung NUR für den (schmalen) Firmentext – bricht lange
   deutsche Komposita sauber. Braucht lang="de" am <html> (Contao setzt das).
   Nicht auf Überschrift (.font-size-m), Adressen oder Link-Listen. */
.footer-inhalte .rs-column.sp-1 .content-text:not(.font-size-m) .rte p {
  -webkit-hyphens: auto;
          hyphens: auto;
  hyphenate-limit-chars: 6 3 2;   /* erst ab 6-Zeichen-Wörtern, min. 3 vor / 2 nach dem Bruch */
}

/* --- Link-Listen: „VM Absatz mit Icon" im Footer -------------------- */
/* kompakter, kleinerer Pfeil, sauberer Hover mit Mini-Slide */
/* Im Fuß wird aus „Icon links, Text fließt drumherum" eine echte
   Flexzeile. Grund: Das Icon ist im Grundelement GEFLOATET – bei einem
   zweizeiligen Eintrag wie „Wallboxen & Ladeinfrastruktur" beginnt die
   zweite Zeile dann unter dem Icon, und beim nächsten Eintrag rutscht
   der Pfeil in eine eigene Zeile über den Text. In einer Linkliste mit
   schmalen Spalten passiert das ständig.
   Als Flexzeile bleibt der Pfeil oben neben dem Text, und Folgezeilen
   sind sauber eingerückt. */
.footer-inhalte .vm-icon-text {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  margin: 0 0 0.55rem;
  --vm-icon-text-size: 1.2em;
}
.footer-inhalte .vm-icon-text .vm-icon-text-icon {
  /* Grundfarbe ist --vm-primary (custom_vm_icons.css) – auf Dunkelblau
     unsichtbar. Im Fuß deshalb der Akzent, wie im Entwurf. */
  color: var(--vm-fuss-akzent);
  float: none;                /* der Float aus dem Grundelement muss weg */
  margin: 0.2em 0 0;          /* der rechte Abstand kommt jetzt aus gap */
  flex: 0 0 auto;
  transition: transform .18s ease;
}
.footer-inhalte .vm-icon-text-body {
  min-width: 0;               /* lange Begriffe dürfen umbrechen */
}
.footer-inhalte .vm-icon-text-body p { margin: 0; line-height: 1.4; }
.footer-inhalte .vm-icon-text a {
  color: var(--vm-fuss-text);
  text-decoration: none;
  transition: color .18s ease;
}
.footer-inhalte .vm-icon-text a:hover,
.footer-inhalte .vm-icon-text a:focus-visible {
  color: var(--vm-fuss-akzent);
}
.footer-inhalte .vm-icon-text:hover .vm-icon-text-icon,
.footer-inhalte .vm-icon-text:focus-within .vm-icon-text-icon {
  transform: translateX(3px);
}

/* --- Standorte: Adressblöcke (ohne Icon) ---------------------------- */
.footer-inhalte .vm-icon-text--noicon .vm-icon-text-body p { line-height: 1.55; }

/* --- Telefon-/E-Mail-Links im Akzent -------------------------------- */
.footer-inhalte a[href^="tel:"],
.footer-inhalte a[href^="mailto:"] {
  color: var(--vm-fuss-text);
  font-weight: 600;
  text-decoration: none;
  transition: color .18s ease;
}
.footer-inhalte a[href^="tel:"]:hover,
.footer-inhalte a[href^="tel:"]:focus-visible,
.footer-inhalte a[href^="mailto:"]:hover,
.footer-inhalte a[href^="mailto:"]:focus-visible {
  color: var(--vm-fuss-akzent);
}

/* Kleines Telefon-Icon direkt vor der Nummer (Aktions-Link = Icon).
   Maske aus dem VM-Icon-Set; currentColor = Akzent (s. tel:-Regel oben). */
.footer-inhalte a.icon-phone::before {
  content: "";
  display: inline-block;
  width: 0.95em;
  height: 0.95em;
  margin-right: 0.4em;
  vertical-align: -0.12em;
  background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* =====================================================================
   Rechtsleiste (Sub-Footer .rechtliches): Impressum · Datenschutz · Sitemap
   Schlanke horizontale Leiste auf hellem Grund, dezente Links.
   ===================================================================== */
.rechtliches {
  padding-block: clamp(0.9rem, 2vw, 1.4rem);

  /* Feine Trennlinie zum Band darüber. Steckte vorher im Inline-Stil des
     Umschlagelements – gehört zur Farbgebung und damit hierher. */
  border-top: 1px solid var(--vm-fuss-linie);
}
.rechtliches > .centered-wrapper-inner {
  max-width: var(--vm-fuss-max, 1680px);
  margin-inline: auto;
  padding-inline: clamp(1rem, 4vw, 2rem);
}
.footer-links {
	float: none;
	clear: all;
	padding: 0;
}
.footer-links li a {
	color: #fff;
}
.footer-links li strong.active {
	color: var(--vm-fuss-akzent);
	font-weight: 400;
}

/* --- Mobil klein: Rechtslinks untereinander ------------------------- */
@media (max-width: 600px) {
.footer-links li {
	float: none;
	display: block;
}


.footer-links li::before {
  display: none;
}
}

/* ---------------------------------------------------------------------
   .gridlinks – Linkspalten im Fuß als echte Liste
   ---------------------------------------------------------------------
   Für ein Textelement, das eine <ul> mit Links enthält; im Backend die
   CSS-Klasse `gridlinks` setzen.

   WARUM: Vorher war jede Spalte eine Reihe einzelner „VM Absatz mit
   Icon"-Elemente – eines pro Link. Im HTML ergab das eine Folge
   unverbundener <div><p><a>. Für das Auge eine Liste, für einen
   Screenreader zusammenhanglose Absätze: keine Ansage „Liste mit 5
   Einträgen", keine Möglichkeit, die Gruppe zu überspringen.

   Die Optik bleibt identisch. Nur der Pfeil kommt nicht mehr aus dem
   Markup, sondern als Pseudoelement – Dekoration gehört nicht in den
   Barrierefreiheitsbaum, und Pseudoelemente stehen dort ohnehin nicht.

   Die Regeln bis „Farben" sind bewusst allgemein gehalten: Wird die
   Klasse einmal außerhalb des Fußes gebraucht, gehört dieser Teil in
   eine gemeinsame Datei und nur der Farbblock bleibt hier.
   --------------------------------------------------------------------- */
.gridlinks ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.gridlinks li {
  margin: 0 0 0.55rem;
}

/* Flexzeile statt Fließtext: Bei einem zweizeiligen Eintrag wie
   „Wallboxen & Ladeinfrastruktur" begänne die zweite Zeile sonst unter
   dem Pfeil. Derselbe Grund wie oben bei .footer-inhalte .vm-icon-text. */
.gridlinks li a {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  text-decoration: none;
  transition: color .18s ease;
}

/* Der Pfeil. Die Maske ist dieselbe wie in `.vm-ico--arrow-right`
   (custom_vm_icons.css). Sie steht hier ein zweites Mal, weil ein
   Textelement keine Klasse an den einzelnen Listenpunkten trägt, über
   die sich --vm-ico vererben ließe. Wird das Pfeil-Icon im Set
   geändert, also auch hier nachziehen. */
.gridlinks li a::before {
  content: "";
  flex: 0 0 auto;
  width: 1.2em;
  height: 1.2em;
  margin-top: 0.2em;

  background-color: var(--vm-gridlinks-pfeil, currentColor);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m12 5 7 7-7 7'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m12 5 7 7-7 7'/%3E%3C/svg%3E") center / contain no-repeat;

  transition: transform .18s ease;
}

.gridlinks li a:hover::before,
.gridlinks li a:focus-visible::before {
  transform: translateX(3px);
}

/* --- Farben im Fuß -------------------------------------------------- */
.footer-inhalte .gridlinks {
  --vm-gridlinks-pfeil: var(--vm-fuss-akzent);
}

.footer-inhalte .gridlinks li a {
  color: var(--vm-fuss-text);
}

.footer-inhalte .gridlinks li a:hover,
.footer-inhalte .gridlinks li a:focus-visible {
  color: var(--vm-fuss-akzent);
}

@media (prefers-reduced-motion: reduce) {
  .gridlinks li a,
  .gridlinks li a::before {
    transition: none;
  }
  .gridlinks li a:hover::before {
    transform: none;
  }
}

/* ==========================================================
   VM Component Library · be on solar
   Component: VM News (Boxed) – Newsblog im Teaserbox-Look
   Nach custom_vm_icon_boxes.css, custom_vm_teaser_boxes.css,
   custom_vm_buttons.css und custom_vm_icons.css laden.

   Die News-Kacheln geben dieselbe Struktur aus wie die VM Teaserbox
   (.vm-card / .vm-teaser / .vm-teaser-image / .vm-teaser-body /
   .vm-teaser-content / .vm-card-action) und erben Rahmen, Radius,
   Schatten, Hover usw. Hier steht nur das News-Spezifische +
   die agenturmoderne Optik (Datum-Meta, Bild-Zoom, Pfeil-Textlink,
   Aufmacher, „Mehr laden").

   Templates: news_list_boxed_vm / news_list_boxed_item_vm ·
   mod_newslist_vm (Grid) · mod_newslist_loadmore_vm (Aufmacher + Loadmore).
   Icons = CSS-Masken (custom_vm_icons.css), KEIN Icon-Font.
   ========================================================== */

.vm-newsbox-item,
.vm-newsbox-item * { box-sizing: border-box; }

/* Karte als vertikale Spalte (die .vm-teaser-Flexregel ist in
   custom_vm_teaser_boxes.css auf ".vm-teaserbox .vm-teaser" gescoped –
   die News-Kachel hat keinen .vm-teaserbox-Vorfahr, daher hier erneut). */
.vm-newsbox-item.vm-teaser { display: flex; flex-direction: column; }

/* --- Bild mit dezentem Zoom im Hover -------------------------------- */
.vm-newsbox-item .vm-teaser-image { overflow: hidden; }
.vm-newsbox-item .vm-teaser-image img { transition: transform .45s ease; }
.vm-newsbox-item:hover .vm-teaser-image img { transform: scale(1.04); }

/* News bewusst OHNE Datum (Kundenvorgabe) – keine Meta-Zeile. */

/* --- Kategorie-Kennzeichen über der Überschrift ---------------------
   Text = Archivname (siehe news_list_boxed_item_vm). BEWUSST für alle
   Kategorien dieselbe Fläche: Unterschiedliche Farben je Zielgruppe
   würden wie eine Wertung wirken und die Kachelreihe unruhig machen.
   Hellblaue Fläche, Schrift in der Markenfarbe – rund 8:1 Kontrast.

   Elternklasse davor, weil es ein <p> ist und ONEO in main.css
   `.main-content p { margin-top: .8em; margin-bottom: 1.6em }` setzt
   (0,1,1). Eine einzelne Klasse verlöre dagegen. */
.vm-newsbox-item .vm-news-kategorie {
  display: inline-block;
  margin: 0 0 0.7rem;
  padding: 0.32em 0.85em;
  border-radius: var(--vm-radius-small, 7px);

  background: var(--vm-surface-icon, #dfeaf5);
  color: var(--vm-primary, #004994);

  /* nicht unter 13px – das Kennzeichen ist klein, aber lesbar */
  font-size: max(0.8125rem, 0.82em);
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: 0.01em;
}

/* --- Headline-Link: Titelfarbe, kein Unterstrich, dezenter Hover ---- */
.vm-newsbox-item .vm-card-title a {
  color: inherit;
  text-decoration: none;
  transition: color var(--vm-transition);
}
.vm-newsbox-item .vm-card-title a:hover,
.vm-newsbox-item .vm-card-title a:focus-visible { color: var(--vm-primary-hover); }

/* --- Schalter: Kacheln ohne Teasertext ------------------------------
   Im Modul unter „CSS-Klasse" das Wort `-ohne-teaser` eintragen.
   Gedacht für Teaserblöcke wie die Startseite, wo die Kachel nur
   hinführen soll: Bild, Kategorie, Titel, Weiterlesen. Die Kacheln
   werden dadurch gleich hoch, weil die Höhe nur noch am Titelumbruch
   hängt.

   Bewusst über die CSS und nicht im Template: So bleibt der Teasertext
   im Beitrag gepflegt und erscheint auf der Übersichtsseite weiterhin –
   entschieden wird pro Einsatzort, nicht pro Inhalt. */
.-ohne-teaser .vm-newsbox-item .vm-card-text {
  display: none;
}

/* --- „Weiterlesen →" als Pfeil-Textlink (unten bündig) -------------- */
.vm-newsbox-item .vm-card-action { margin-top: auto; padding-top: 1.5rem; }
.vm-news-more {
  display: inline-flex;
  align-items: center;
  gap: 0.45em;
  color: var(--vm-primary);
  font-family: var(--vm-font-body);
  font-weight: 700;
  font-size: 1.05rem;
  text-decoration: none;
}
.vm-news-more .vm-icon { width: 1.05em; height: 1.05em; transition: transform .2s ease; }
.vm-news-more:hover,
.vm-news-more:focus-visible { color: var(--vm-primary-hover); }
.vm-news-more:hover .vm-icon,
.vm-news-more:focus-visible .vm-icon { transform: translateX(3px); }

/* Pagination sitzt außerhalb des Grids, mittig unter den Kacheln. */
.vm-newsbox-pagination { margin-top: var(--vm-gap); }

/* ==========================================================
   Übersicht mit Aufmacher (mod_newslist_loadmore_vm)
   Erster Eintrag = voll breit, Bild neben Text; Rest im Grid.
   ========================================================== */
.vm-newsgrid--featured-first > .vm-newsbox-item:first-child {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
  align-items: stretch;
}
/* Aufmacher: der obere 4px-Balken (aus .vm-card::before) in Akzentfarbe
   statt Rosa – hebt den ersten Beitrag hervor. Andere Karten behalten
   ihren dezenten Rosa-Streifen (Akzent erst im Hover). */
.vm-newsgrid--featured-first > .vm-newsbox-item:first-child::before {
  background: var(--vm-accent);
}
.vm-newsgrid--featured-first > .vm-newsbox-item:first-child .vm-teaser-image { height: 100%; }
.vm-newsgrid--featured-first > .vm-newsbox-item:first-child .vm-teaser-image img {
  height: 100%;
  object-fit: cover;
}
.vm-newsgrid--featured-first > .vm-newsbox-item:first-child .vm-teaser-body {
  justify-content: center;
  padding: clamp(1.75rem, 1rem + 2vw, 2.75rem);
}
.vm-newsgrid--featured-first > .vm-newsbox-item:first-child .vm-teaser-content { flex: 0 0 auto; }
.vm-newsgrid--featured-first > .vm-newsbox-item:first-child .vm-card-title {
  font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2.1rem);
}
.vm-newsgrid--featured-first > .vm-newsbox-item:first-child .vm-card-action { margin-top: 1.5rem; }

/* Mobil: Aufmacher wieder Bild oben, Text unten */
@media (max-width: 700px) {
  .vm-newsgrid--featured-first > .vm-newsbox-item:first-child { grid-template-columns: 1fr; }
  .vm-newsgrid--featured-first > .vm-newsbox-item:first-child .vm-teaser-image { height: auto; }
}

/* ==========================================================
   „Mehr laden" + Pagination-Fallback
   ========================================================== */
.vm-newslist-more { margin-top: var(--vm-gap); text-align: center; }
.vm-newslist-pagination { margin-top: var(--vm-gap); text-align: center; }

.vm-loadmore { display: inline-flex; align-items: center; gap: 0.5em; }
.vm-loadmore .vm-icon { width: 1.05em; height: 1.05em; }
.vm-loadmore.is-loading { opacity: 0.7; pointer-events: none; }

/* Button ausblenden, wenn alle Beiträge geladen sind (JS setzt `hidden`).
   Nötig, weil `.button` per ONEO auf display:inline-flex/-block steht und das
   UA-`[hidden]{display:none}` sonst überschreibt. */
.vm-loadmore[hidden] { display: none !important; }


/* ==========================================================
   KOMPAKTE BEITRAGSLISTE („Wissen, das weiterhilft")
   ----------------------------------------------------------
   Schmale Liste für die Randspalte: kleines Bild, Kategorie in der
   Akzentfarbe, Titel, Datum – untereinander, getrennt durch Haarlinien.

   Templates: mod_newslist_compact_vm + news_list_compact_vm.
   Das Modul darf mehrere Archive gleichzeitig lesen; die Kategorie ist
   der Archivname und kommt je Beitrag aus dem Template.

   Bewusst KEINE Karten: In einer schmalen Spalte würden Rahmen und
   Schatten mehr Fläche kosten als sie ordnen. Die Trennung machen
   Haarlinien, die Ordnung macht die gleiche Bildbreite.

   ----------------------------------------------------------
   WARUM ÜBERALL `.vm-newslist-compact` DAVORSTEHT
   ONEO qualifiziert in main.css über den Inhaltsbereich (Spezifität
   0,1,1) und trifft damit genau die Elemente dieser Liste:

     .main-content h1…h6 { margin-top: 1em; margin-bottom: 0.3em; }
     .main-content h3    { font-size: <headline-size-3>; font-weight: normal; }
     .main-content p     { margin-top: 0.8em; margin-bottom: 1.6em; }
     .main-content img   { max-width: 100%; height: auto; }

   Eine einzelne eigene Klasse hat 0,1,0 und verliert – auch später
   geladen. Der Titel kam dadurch in Überschriftengröße und mager, um
   die Kategorie stand ein Absatzabstand. Die Elternklasse davor ergibt
   0,2,0 und gewinnt sauber, ohne `!important`. Siehe Team-Wissen [25].
   ========================================================== */

.vm-newslist-compact,
.vm-newslist-compact * { box-sizing: border-box; }

/* --- Die Zeile ------------------------------------------------------ */
.vm-newslist-compact .vm-newsrow {
  position: relative;              /* Bezug für die Klickfläche unten */
  display: flex;
  align-items: flex-start;
  gap: 1.15rem;
  margin: 0;
  padding: 1.15rem 0;
  border-bottom: 1px solid var(--vm-border, #e3e8ee);
}

.vm-newslist-compact .vm-newsrow:first-child { padding-top: 0; }
.vm-newslist-compact .vm-newsrow:last-child  { border-bottom: 0; }

/* --- Bild ----------------------------------------------------------- */
.vm-newslist-compact .vm-newsrow-bild {
  flex: 0 0 auto;
  width: 4.6rem;
  height: 3.4rem;
  overflow: hidden;
  border-radius: var(--vm-radius-small, 7px);
  background: var(--vm-surface, #eef3f9);
}

/* `height` gegen `.main-content img { height: auto }` – gleiche
   Spezifität würde nur über die Ladereihenfolge gewinnen, das ist zu
   wackelig, sobald jemand die Reihenfolge im Layout ändert. */
.vm-newslist-compact .vm-newsrow-bild img {
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  display: block;
  transition: transform .45s ease;
}

.vm-newslist-compact .vm-newsrow:hover .vm-newsrow-bild img { transform: scale(1.05); }

/* Ohne Bild bleibt die Fläche als getönter Platzhalter stehen – so
   fluchten Kategorie und Titel aller Zeilen untereinander. */
.vm-newslist-compact .vm-newsrow-bild.-leer {
  border: 1px dashed var(--vm-border-accent, #cfe0f0);
  background: var(--vm-surface-light, #f4f7fa);
}

/* --- Text ----------------------------------------------------------- */
.vm-newslist-compact .vm-newsrow-body {
  min-width: 0;                    /* lange Titel dürfen umbrechen */
  flex: 1 1 auto;
}

/* Kategorie = Archivname, in der Akzentfarbe. Klein, aber nicht kleiner
   als 13px – darunter wird es auf Mobilgeräten unleserlich.
   Das <p> erbt sonst die Absatzabstände des Themes. */
.vm-newslist-compact .vm-newsrow-kat {
  margin: 0 0 0.15rem;
  color: var(--vm-cta-dark, #e0a600);
  font-size: max(0.8125rem, 0.78em);
  font-weight: 700;
  line-height: 1.3;
}

/* Der Titel ist ein <h3> – Größe, Stärke UND Abstände müssen deshalb
   gegen die Überschriftenregeln des Themes gesetzt werden. */
.vm-newslist-compact .vm-newsrow-titel {
  margin: 0 0 0.2rem;
  font-size: 1.02rem;
  font-weight: 700;
  line-height: 1.35;
  color: var(--vm-text, #333333);
}

.vm-newslist-compact .vm-newsrow-link {
  color: inherit;
  text-decoration: none;
}

/* Die ganze Zeile klickbar machen, ohne zweiten Link im Markup:
   unsichtbare Fläche über der Zeile. Der Vorleser hört weiterhin nur
   den einen Titel-Link. */
.vm-newslist-compact .vm-newsrow-link::after {
  content: "";
  position: absolute;
  inset: 0;
}

.vm-newslist-compact .vm-newsrow:hover .vm-newsrow-titel,
.vm-newslist-compact .vm-newsrow-link:focus-visible {
  color: var(--vm-primary, #004994);
}

/* Tastaturfokus: Der Link selbst ist nur der Titeltext, der Fokusrahmen
   soll aber die ganze Zeile zeigen – sonst sieht man bei einem kurzen
   Titel kaum, wo man steht. */
.vm-newslist-compact .vm-newsrow:has(.vm-newsrow-link:focus-visible) {
  outline: 2px solid var(--vm-primary, #004994);
  outline-offset: 3px;
  border-radius: var(--vm-radius-small, 7px);
}
.vm-newslist-compact .vm-newsrow-link:focus-visible { outline: none; }

.vm-newslist-compact .vm-newsrow-datum {
  display: block;
  margin: 0;
  color: var(--vm-text-2, #6b6b6a);
  font-size: 0.9rem;
  line-height: 1.4;
}

/* --- Abschluss-Link darunter ---------------------------------------
   „Alle Beiträge ansehen →" ist ein eigenes Inhaltselement (VM Buttons,
   Darstellung „Textlink"). Hier nur der Abstand, damit er als Teil des
   Blocks gelesen wird und nicht als nächster Abschnitt. */
.vm-newslist-compact + .vm-buttons { margin-top: 1.25rem; }

/* ==========================================================
   VM Component Library  ·  be on solar
   Component: VM News Reader / Blog-Beitrag ("A4-Blatt")
   Nach custom_vm_icon_boxes.css (Token-Zentrale) laden.

   Weißes Blatt mit Rundung + Schatten auf dem grauen
   Seitenhintergrund (--vm-page-bg #f5f5f5). Bild randlos oben,
   darunter Lesetypografie (H1/H2 + Fließtext aus Contao).
   Template: news_full_vm.html5 · Modul: mod_newsreader_vm.html5
   ========================================================== */

/* --- Layout: Blatt links, kompakte Sidebar rechts (auf Grau) --------- */
.vm-reader-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: var(--vm-gap);
  max-width: var(--vm-content-max, 1440px);   /* Standard-Seitenbreite (wie Site) */
  margin-inline: auto;
  align-items: start;
}
.vm-reader-layout,
.vm-reader-layout * { box-sizing: border-box; }

/* ohne weitere Beiträge: nur das zentrierte Blatt */
.vm-reader-layout--solo {
  grid-template-columns: minmax(0, 860px);
  justify-content: center;
}

/* --- Ab 1200px abwärts: eine Spalte, Blatt ohne Kartenoptik ---------
   Unterhalb von 1200px bleiben neben der 320px-Sidebar keine sinnvollen
   Zeilenlängen mehr übrig – der Beitrag wird zur Schlucht. Deshalb schon
   hier umstellen und nicht erst am Hauptumbruch bei 900px:

     1. „Weitere Beiträge" rutschen unter den Beitrag
     2. der Beitrag nimmt die volle Breite
     3. Rahmen, Radius und Schatten entfallen

   Zu 3.: Das schwebende Blatt lebt vom Rand um es herum. Sobald es die
   volle Breite einnimmt, gibt es diesen Rand nicht mehr – ein Schatten
   ohne sichtbaren Abstand wirkt dann wie ein Darstellungsfehler. */
@media (max-width: 1200px) {
  .vm-reader-layout {
    grid-template-columns: 1fr;
  }

  /* Auch die Solo-Fassung (Beitrag ohne weitere Beiträge) läuft hier auf
     volle Breite – ihre 860px-Begrenzung ergäbe sonst wieder einen
     schmalen Streifen mit Rand. */
  .vm-reader-layout--solo {
    grid-template-columns: 1fr;
    justify-content: stretch;
  }

  .vm-reader-sheet {
    border: 0;
    border-radius: 0;
    box-shadow: none;

    /* Äußeren Rand aufheben, innere Polsterung bleibt.
       Der Abstand kommt von `.centered-wrapper-inner`, das ab 1440px
       abwärts auf `width: var(--page-inner-width)` mit
       `margin-left: var(--page-padding-left)` steht. Genau diese beiden
       Theme-Variablen ziehen wir hier wieder ab – dadurch stimmt die
       Kante exakt, auch wenn im Theme Assistant andere Seitenabstände
       eingestellt werden.

       Bewusst NICHT mit `100vw` gelöst: Das schließt die Breite der
       Scrollleiste mit ein und erzeugt am Desktop einen waagerechten
       Überlauf. */
    margin-left: calc(var(--page-padding-left, 0px) * -1);
    margin-right: calc(var(--page-padding-right, 0px) * -1);
  }

  /* --- „Weitere Beiträge" nur so breit wie nötig ---------------------
     In einer Spalte liefen die Kacheln über die volle Seitenbreite –
     bei kurzen Titeln steht dann viel leere Fläche. `fit-content` am
     Container richtet sich nach der breitesten Kachel, sodass alle
     gleich breit bleiben (kein ausgefranster rechter Rand) und der
     Block trotzdem nur so viel Platz nimmt, wie er braucht. */
  .vm-reader-aside {
    position: static;      /* sticky ergibt in einer Spalte keinen Sinn */
    width: fit-content;
    max-width: 100%;
  }

  /* Der Button ist jetzt das letzte Element der Seite und stieß direkt
     an den Fuß. */
  .vm-reader-allposts {
    margin-bottom: clamp(2rem, 5vw, 3rem);
  }
}

/* --- Das Blatt ------------------------------------------------------- */
.vm-reader {
  display: block;
  color: var(--vm-text);
}

/* Schwebendes Blatt – gilt AB 1201px. Darunter fallen Rahmen, Radius und
   Schatten weg (s. Media Query oben): Sobald die Fläche randlos über die
   volle Breite läuft, gibt es keinen Rand mehr, von dem sich ein Blatt
   abheben könnte.
   Zum Wiederfinden: Radius und Schatten sitzen HIER, nicht auf
   .vm-reader-body – beim Untersuchen landet man dort zuerst, weil an
   derselben Kante der sichtbare Textkasten beginnt. */
.vm-reader-sheet {
  background: var(--vm-white);
  border-left: 1px solid var(--vm-border-neutral);
  border-right: 1px solid var(--vm-border-neutral);
  /* oben eckig (schließt an Header an), unten gerundet */
  border-radius: 0;
  /* schwebendes Blatt auf #f5f5f5 */
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.12);
  overflow: hidden;
}

/* --- Bild randlos oben (auf volle Blattbreite zwingen) -------------- */
.vm-reader-image,
.vm-reader-image figure,
.vm-reader-image .image_container { display: block; width: 100%; margin: 0; line-height: 0; }
.vm-reader-image { background: rgba(0, 0, 0, 0.04); }
.vm-reader-image img,
.vm-reader-image picture {
  display: block !important;
  width: 100% !important;
  height: auto;
}
/* --- Bildunterschrift (z. B. KI-Kennzeichnung) ---------------------
   Wie in den Kacheln (.vm-teaser-caption): als Schild unten rechts AUF
   dem Bild, nicht als graue Leiste darunter.
   Der Selektor braucht `.vm-reader-image figure.image_container`, weil die
   Theme-Regel `.media > figure figcaption` / `.image_container figcaption`
   sonst gewinnt. Deren `width: 100% !important` muss mit !important
   zurückgenommen werden, sonst läuft das Schild über die volle Breite. */
.vm-reader-image figure.image_container { position: relative; }
.vm-reader-image figure.image_container figcaption {
  position: absolute;
  right: 0.6rem;
  bottom: 0.6rem;
  z-index: 2;
  width: auto !important;
  max-width: calc(100% - 1.2rem);

  margin: 0;
  padding: 0.2em 0.6em;
  border-radius: var(--vm-radius-small);

  background: rgba(255, 255, 255, 0.8);   /* ≥ 75 % Deckkraft */
  color: var(--vm-primary);
  font-size: 0.75rem;
  line-height: 1.35;
  text-align: right;

  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.12);
  pointer-events: none;   /* blockiert Lightbox-Link nicht */
}

/* --- Textkörper ------------------------------------------------------ */
.vm-reader-body {
  padding: clamp(1.75rem, 1rem + 3vw, 3.5rem);
}

/* Sitzt ein Bild direkt über dem Text, oben weniger Luft – das Bild schließt
   den oberen Blattbereich schon ab (bei Beiträgen ohne Bild bleibt der volle
   Innenabstand, damit die H1 nicht am Blattrand klebt). */
.vm-reader-image + .vm-reader-body {
  padding-top: clamp(1.25rem, 0.75rem + 1vw, 1.75rem);
}

.vm-reader .vm-reader-title {
  margin: 0 0 0.5em;
  color: var(--vm-primary);
  font-weight: 700;
  line-height: 1.14;
  font-size: clamp(1.9rem, 1.35rem + 2vw, 2.25rem);
}

@media (max-width: 900px) {
  .vm-reader-title {
    font-size: 1.5em !important; 
    
  }
}

.vm-reader .vm-reader-subtitle {
  margin: 0 0 1em;
  color: var(--vm-text);
  font-weight: 600;
  line-height: 1.3;
  font-size: clamp(1.05rem, 0.95rem + 0.4vw, 1.25rem);
  padding-bottom: 1em;
}

/* Trennlinie unter den Überschriften, vor dem Fließtext */
.vm-reader-hr {
  border: 0;
  border-top: 1px solid var(--vm-border);
  margin: 0 0 1.6rem;
}

/* Lesemodus: luftige Zeilen.
   BEWUSST OHNE max-width: Die Zeilenlänge begrenzt hier schon das
   Layout – der Textbereich läuft neben der Sidebar ohnehin schmal
   genug. Eine zusätzliche Begrenzung ließe rechts nur Leerraum stehen. */
.vm-reader-content {
  color: var(--vm-text);
  font-size: 1.075rem;
  line-height: 1.75;

  hyphens: auto;
  -webkit-hyphens: auto;
  text-wrap: pretty;
}

.vm-reader-content > *:first-child { margin-top: 0; }
.vm-reader-content > *:last-child { margin-bottom: 0; }

.vm-reader-content p { margin: 0 0 1.25em; }

/* Zwischenüberschriften aus den Content-Elementen */
.vm-reader-content h2,
.vm-reader-content h3,
.vm-reader-content h4 {
  color: var(--vm-primary);
  font-weight: 700;
  line-height: 1.25;
}
.vm-reader-content h2 { font-size: 1.6rem; margin: 1.9em 0 0.5em; }
.vm-reader-content h3 { font-size: 1.3rem; margin: 1.7em 0 0.4em; }
.vm-reader-content h4 { font-size: 1.1rem; margin: 1.5em 0 0.4em; }

.vm-reader-content ul,
.vm-reader-content ol { margin: 0 0 1.25em; padding-left: 1.4em; }
.vm-reader-content li { margin: 0.4em 0; }

/* Normale Textlinks orange + unterstrichen. Buttons (a.button) werden bewusst
   AUSGENOMMEN, sonst überschreibt diese Regel (höhere Spezifität als .button)
   die weiße Button-Schrift -> orange auf orange. So behalten Buttons ihre
   eigene Variantenfarbe und bekommen keine Unterstreichung. */
.vm-reader-content a:not(.button) {
  color: var(--vm-primary-hover);
  text-decoration: underline;
  text-underline-offset: 0.2em;
}
.vm-reader-content a:not(.button):hover,
.vm-reader-content a:not(.button):focus-visible { color: var(--vm-primary); }

/* Blockzitat mit Akzent = Blog-Charakter */
.vm-reader-content blockquote {
  margin: 1.6em 0;
  padding: 0.3em 0 0.3em 1.25em;
  border-left: 4px solid var(--vm-accent);
  color: var(--vm-primary);
  font-size: 1.12em;
  font-style: italic;
}

/* Bilder in den Content-Elementen */
.vm-reader-content img { max-width: 100%; height: auto; border-radius: var(--vm-radius-small); }
.vm-reader-content figure { margin: 1.6em 0; }
.vm-reader-content figure img { display: block; }
.vm-reader-content figcaption {
  margin-top: 0.5rem;
  font-size: 0.85rem;
  color: var(--vm-text);
}

/* Downloads / Anhänge */
.vm-reader .vm-reader-enclosure { list-style: none; margin: 2rem 0 0; padding: 0; }
.vm-reader .vm-reader-enclosure li { margin: 0.4em 0; }
.vm-reader-enclosure a { color: var(--vm-primary-hover); text-decoration: none; font-weight: 600; }
.vm-reader .vm-reader-enclosure a:hover { color: var(--vm-primary); }

/* --- Sidebar „Weitere Beiträge" (kompakt: Mini-Bild + Titel) -------- */
.vm-reader-aside {
  position: sticky;
  top: 1.5rem;
  padding-top: 2rem;   /* Luft nach oben, seit das Blatt bündig am Header sitzt */
}
/* höhere Spezifität, damit die Theme-h2-Größe nicht gewinnt */
.vm-reader-aside .vm-reader-aside-title {
  margin: 0 0 1rem;
  color: var(--vm-primary);
  font-size: 1.05rem;
  font-weight: 700;
  line-height: 1.3;
}
/* Contao-Default (list-style: disc + padding-left) sicher entfernen */
.vm-reader-aside .vm-reader-morelist {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.75rem;
}
.vm-reader-aside .vm-reader-morelist li {
  list-style: none;
  margin: 0;
  padding: 0;
}

.vm-reader-allposts { display: inline-flex; align-items: center; gap: 0.5em; }
.vm-reader-allposts .vm-icon { width: 1.05em; height: 1.05em; }

.vm-reader-more-link {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  /* Rechts deutlich mehr Luft: Seit die Liste auf `fit-content` steht,
     bestimmt dieser Wert den Abstand zwischen Titel und Kachelkante –
     ohne ihn klebt der Text am Rand. */
  padding: 0.6rem 2rem 0.6rem 0.75rem;

  /* Dauerhaft hellblau hinterlegt – dasselbe Blau wie das Kategorie-
     Kennzeichen und der Hover der Filterknöpfe. Der Rahmen bleibt, weil
     er die Kante zur Fläche sauber abschließt; im gleichen Ton wie die
     Fläche, damit es eine Form bleibt. */
  background: var(--vm-surface-icon);
  border: 1px solid var(--vm-border-accent);
  border-radius: var(--vm-radius-small);

  text-decoration: none;
  transition: color var(--vm-transition);
}

/* Beim Überfahren ändert sich AUSSCHLIESSLICH die Schriftfarbe – keine
   Fläche, kein Rahmen, kein Schatten, kein Anheben. Die Kachel steht
   ruhig, nur der Titel reagiert.
   `text-decoration: none` muss hier wiederholt werden: ONEO setzt in
   main.css `a:hover { text-decoration: underline }`, und das gilt auch
   für Links, die im Ruhezustand ohne Unterstrich gesetzt sind. */
.vm-reader-more-link:hover,
.vm-reader-more-link:focus-visible {
  text-decoration: none;
}
/* Titel-Feedback im Hover: dezent in Akzent */
.vm-reader-more-link:hover .vm-reader-more-title,
.vm-reader-more-link:focus-visible .vm-reader-more-title { color: var(--vm-primary); }
.vm-reader-more-thumb {
  flex: 0 0 auto;
  width: 64px;
  height: 64px;
  border-radius: calc(var(--vm-radius-small) - 2px);
  overflow: hidden;
  line-height: 0;
  background: rgba(0, 0, 0, 0.04);
}
.vm-reader-more-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.vm-reader-more-title {
  min-width: 0;
  color: var(--vm-text);          /* Standard-Schriftfarbe (nicht rot) */
  font-weight: 600;
  font-size: 0.95rem;
  line-height: 1.3;
}

/* --- „alle Beiträge"-Button unter der Sidebar-Liste ----------------
   Ersetzt den früheren Zurück-Link unter dem Blatt (keine Dublette mehr;
   mobil sitzt die Sidebar ohnehin unter dem Beitrag, der Button also ganz
   unten). Roter Primär-Button (.button), volle Sidebar-Breite, verlinkt fest
   auf die Beitrags-Übersicht (Seiten-ID 238). */
.vm-reader-allposts {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  margin-top: 1rem;
  padding-left: 1em !important;
}
/* =====================================================================
   be on solar – PREHEADLINE (Vortitel mit Quadrat links) + Section-Head
   ---------------------------------------------------------------------
   Kleiner Vortitel/Kicker mit einem leicht gerundeten QUADRAT links
   daneben (be on solar – angelehnt an die Bildmarke). Text in normaler
   Schriftfarbe, nur das Quadrat trägt die Akzentfarbe – bewusst sparsam.

   Nach custom_vm_base.css laden (nutzt die --vm-*-Tokens).

   VERWENDUNG (redakteurssicher, reine Klasse):
     <p class="vm-preheadline">Unsere Kern-Technologie</p>
     <h2>Contao, richtig gebaut.</h2>

   In Contao z. B. im Überschrift-Element als CSS-Klasse eines vorangestellten
   Text-Elements, oder als Feld in einem eigenen RSCE (Vortitel + Titel + Text).
   ===================================================================== */

.vm-preheadline {
  display: inline-flex;
  align-items: center;
  gap: 0.6em;
  margin: 0 0 0.7rem;

  font-family: var(--vm-font-body);
  font-size: 1.15rem;       /* ~18px */
  font-weight: 600;
  letter-spacing: 0.01em;
  color: var(--vm-text);     /* Text in Schriftfarbe … */
}

.vm-preheadline::before {   /* … nur das Quadrat trägt die Akzentfarbe */
  content: "";
  width: 0.62em;
  height: 0.62em;
  border-radius: 3px;        /* leicht gerundet – Anlehnung an die Bildmarke */
  background: var(--vm-cta, #fbba00);   /* Orange: reine Fläche, trägt keinen Text */
  flex: 0 0 auto;
}

/* Variante ohne Linie (reiner Kicker über einer Card o. Ä.) */
.vm-kicker {
  margin: 0;
  font-family: var(--vm-font-body);
  font-size: 1rem;
  font-weight: 700;
  color: var(--vm-text-2);
}

/* -----------------------------------------------------------------
   Optionaler Section-Kopf: Titelblock links, Einleitung rechts.
   <div class="vm-section-head">
     <div>
       <p class="vm-preheadline">Leistungen</p>
       <h2>Alles fürs Digitale — und drumherum.</h2>
     </div>
     <p>Kurzer Einleitungstext …</p>
   </div>
   ----------------------------------------------------------------- */
.vm-section-head {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  justify-content: space-between;
  gap: 1rem 2rem;
  margin-bottom: clamp(1.6rem, 3vw, 2.6rem);
}
.vm-section-head h2 { font-size: clamp(1.6rem, 2.9vw, 2.5rem); }
.vm-section-head > p { margin: 0; max-width: 46ch; color: var(--vm-text-2); font-size: 1.05rem; }

/* -----------------------------------------------------------------
   Element „Vortitel (Preheadline)" (RSCE rsce_vm_preheadline)
   Reines <p> mit Akzent-Quadrat – NIE eine Überschrift (h1–h6), sonst
   leidet die Heading-Outline (Barrierefreiheit). Die eigentliche
   Überschrift kommt aus einem normalen Überschrift-Element daneben.
   ----------------------------------------------------------------- */
.vm-preheadline.-center { display: flex; justify-content: center; }

/* =====================================================================
   be on solar – PROJEKTE-Übersicht (Filter Alle · Gewerbe · Behörden)
   ---------------------------------------------------------------------
   Kombinierte Liste beider Projekt-Archive (2 = Gewerbe, 3 = Behörden),
   einheitliche Kacheln (VM-Newsbox-Optik). Filter client-seitig über
   data-vm-cat je Kachel + data-active-filter am Container (setzt vm_projects.js).
   Ohne JS bleiben alle Projekte sichtbar (Progressive Enhancement).
   Nach custom_vm_base.css / custom_vm_icon_boxes.css / custom_vm_buttons.css laden.
   ===================================================================== */

/* --- Filter-Leiste -------------------------------------------------- */
.vm-projects-filter {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  margin: 0 0 var(--vm-gap, 1.6rem);
}
.vm-projects-filterbtn {
  -webkit-appearance: none;
          appearance: none;
  cursor: pointer;
  padding: 0.5em 1.25em;
  border: 2px solid var(--vm-border-neutral, #e3e8ee);
  border-radius: var(--vm-radius-pill, 999px);
  background: var(--vm-white, #fff);
  background-image: none !important;   /* ONEO-Gradient aus */
  color: var(--vm-text, #333333);
  font-family: var(--vm-font-body);
  font-weight: 600;
  font-size: 1rem;
  line-height: 1.2;
  text-transform: none !important;     /* kein ONEO-UPPERCASE */
  box-shadow: none !important;         /* ONEO-Schatten aus */
  text-shadow: none !important;        /* ONEO-Textschatten aus */
  transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}
/* Überfahren = Vorstufe zum aktiven Zustand: dieselbe Farbfamilie, nur
   hell. Dasselbe Hellblau wie das Kategorie-Kennzeichen auf den Kacheln,
   damit die Seite mit einem Blauton auskommt.
   Der Rahmen wird bewusst NICHT kräftig blau, sonst entsteht ein harter
   Ring um eine helle Fläche – die weiche Variante liest sich als eine
   Form. Kontrast Schrift/Fläche rund 8:1. */
.vm-projects-filterbtn:hover,
.vm-projects-filterbtn:focus-visible {
  background: var(--vm-surface-icon, #dfeaf5);
  border-color: var(--vm-border-accent, #cfe0f0);
  color: var(--vm-primary, #004994);
}
/* aktiver Filter = Akzent */
.vm-projects-filterbtn.is-active {
  background: var(--vm-primary, #004994);
  border-color: var(--vm-primary-dark, #003a76);
  color: var(--vm-white, #fff);
}

/* --- Mobil klein: „Alle" steht für sich ------------------------------
   Bis 550px passen drei Chips nicht mehr nebeneinander; sie brechen dann
   ungleich um – zwei oben, einer allein darunter, je nach Wortlänge.
   Deshalb hier fest gesetzt: „Alle" über die volle Breite, die beiden
   Zielgruppen darunter nebeneinander.

   Raster statt Flexumbruch, weil nur so beide unteren Chips GLEICH breit
   sind. Mit `flex-wrap` richteten sie sich nach der Textlänge, und
   „Privatkunden" wäre breiter als „Unternehmen". */
@media (max-width: 550px) {
  .vm-projects-filter {
    display: grid;

    /* `minmax(0, 1fr)` statt `1fr`: Ein blankes `1fr` schrumpft NICHT unter
       die Inhaltsbreite seiner Zelle. „Privatkunden" samt Innenabstand ist
       rund 145px breit – zwei davon passen unter 320px nicht mehr, und das
       Raster wächst dann über den Container hinaus, statt die Knöpfe
       schmaler zu machen. Mit der Untergrenze 0 dürfen die Spalten kleiner
       werden als ihr Inhalt. */
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.5rem;
  }

  /* Der erste Knopf ist immer „Alle" (s. mod_newslist_projects_vm.html5). */
  .vm-projects-filter .vm-projects-filterbtn:first-child {
    grid-column: 1 / -1;
  }

  /* Damit die Knöpfe die schmaleren Spalten auch annehmen: `min-width: 0`
     hebt die Vorgabe „mindestens so breit wie der Inhalt" auf, Abstand und
     Schriftgröße gehen fließend mit der Breite zurück. Unter 14px geht die
     Schrift nicht – lesbar bleibt Vorrang vor „passt in eine Zeile". */
  .vm-projects-filter .vm-projects-filterbtn {
    min-width: 0;
    padding-inline: clamp(0.5em, 3vw, 1.25em);
    font-size: clamp(0.875rem, 3.6vw, 1rem);
    overflow-wrap: break-word;
  }
}

/* --- Filterung: Kacheln der NICHT aktiven Kategorie ausblenden ------- */
.vm-projects[data-active-filter="privat"] .vm-newsbox-item:not([data-vm-cat="privat"]),
.vm-projects[data-active-filter="unternehmen"] .vm-newsbox-item:not([data-vm-cat="unternehmen"]) {
  display: none;
}

/* --- „keine Treffer" + „Mehr laden" --------------------------------- */
.vm-projects .vm-projects-empty {
  margin: var(--vm-gap, 1.6rem) 0 0;
  color: var(--vm-text-2, #6b6b6a);
}

/* =====================================================================
   be on solar – AKKORDEON (Häufige Fragen)
   ---------------------------------------------------------------------
   Markup aus Contao (ce_accordionStart, seit 11.09.2026 überschrieben):

     <section class="ce_accordionStart ce_accordion block">
       <h3 class="vm-akkordeon-titel">
         <button class="toggler" aria-expanded aria-controls>Frage</button>
       </h3>
       <div class="accordion" role="region" aria-labelledby>… Antwort …</div>
     </section>

   Jede Frage ist eine eigene <section>; alle Fragen einer Seite bilden
   EINE Gruppe (s. j_accordion.html.twig, dort steht auch, warum der erste
   Abschnitt offen startet). Der Reset für Überschrift und Knopf steht
   ganz unten in dieser Datei.

   Eine Besonderheit bestimmt den Aufbau: Auf dem .toggler stehen nur
   ZWEI Pseudoelemente zur Verfügung – und das Zeichen braucht eine
   eigene Ebene über der Fläche. Eine Maske würde die Fläche selbst
   ausstanzen statt ein Zeichen darauf zu legen. Deshalb sitzen beide
   absolut am rechten Rand übereinander: ::before = hellblaue Fläche,
   ::after = Plus bzw. Minus darauf.

   Nach custom_vm_base.css laden.
   ===================================================================== */

.ce_accordion {
  /* Die Trennlinie ist bewusst kräftiger als --vm-border (#e3e8ee):
     Sie gliedert hier eine Liste, statt nur eine Kante anzudeuten – bei
     zu hellem Ton verschwimmen die Fragen zu einem Block. */
  --vm-akkordeon-linie: #c2cfdd;

  margin: 0;
  border-bottom: 1px solid var(--vm-akkordeon-linie);
}

/* --- Die Frage ------------------------------------------------------ */
.ce_accordion .toggler {
  position: relative;          /* Bezug für Fläche und Zeichen rechts */
  margin: 0;
  padding: 1.15rem 3.5rem 1.15rem 0;
  cursor: pointer;

  color: var(--vm-text, #333333);
  font-family: var(--vm-font-body, "Ubuntu", sans-serif);
  font-size: 1.15rem;
  font-weight: 700;
  line-height: 1.4;

  transition: color var(--vm-transition, 200ms ease);
}

.ce_accordion .toggler:hover {
  color: var(--vm-primary, #004994);
}

/* Offene Frage in Blau – sie ist die gerade gelesene Stelle.
   Maßgeblich ist `[aria-expanded="true"]`: Optik und ausgelesener
   Zustand können so nicht auseinanderlaufen. `.active` setzt das
   Template zusätzlich. */
.ce_accordion .toggler.active,
.ce_accordion .toggler[aria-expanded="true"] {
  color: var(--vm-primary, #004994);
}

/* Sichtbarer Tastaturfokus. Seit dem Umbau auf einen echten <button>
   ist die Frage von sich aus tabbar – ohne Fokusrahmen wüsste man beim
   Durchtabben aber nicht, wo man steht. */
.ce_accordion .toggler:focus-visible {
  outline: 2px solid var(--vm-primary, #004994);
  outline-offset: 3px;
  border-radius: var(--vm-radius-small, 7px);
}

/* --- Fläche des Schalters ------------------------------------------- */
.ce_accordion .toggler::before {
  content: "";
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 34px;
  height: 34px;
  border-radius: var(--vm-radius-small, 7px);
  background: var(--vm-surface-icon, #dfeaf5);
  transition: background-color var(--vm-transition, 200ms ease);
}

/* --- Zeichen darauf: Plus, im offenen Zustand Minus ----------------- */
.ce_accordion .toggler::after {
  content: "";
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 34px;
  height: 34px;

  background-color: var(--vm-primary, #004994);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M5 12h14M12 5v14'/%3E%3C/svg%3E") center / 17px no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M5 12h14M12 5v14'/%3E%3C/svg%3E") center / 17px no-repeat;
}

/* Offen: Das Template setzt die Klasse `active` und aria-expanded="true". */
.ce_accordion .toggler.active::after,
.ce_accordion .toggler[aria-expanded="true"]::after {
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M5 12h14'/%3E%3C/svg%3E") center / 17px no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M5 12h14'/%3E%3C/svg%3E") center / 17px no-repeat;
}

.ce_accordion .toggler:hover::before,
.ce_accordion .toggler.active::before {
  background: var(--vm-border-accent, #cfe0f0);
}

/* --- Die Antwort ---------------------------------------------------- */
.ce_accordion .accordion {
  padding: 0 3.5rem 1.5rem 0;
  color: var(--vm-text-2, #6b6b6a);
}

.ce_accordion .accordion > div { margin: 0; }

/* Der Fließtext bringt eigene Absatzabstände mit – oben abschneiden,
   damit die Antwort direkt unter der Frage beginnt. */
.ce_accordion .accordion .rte > :first-child { margin-top: 0; }
.ce_accordion .accordion .rte > :last-child { margin-bottom: 0; }

/* Angenehme Zeilenlänge, unabhängig von der Spaltenbreite. */
.ce_accordion .accordion .rte { max-width: 70ch; }

/* --- Auf dunklem Grund ---------------------------------------------- */
.-color-inverted .ce_accordion {
  --vm-akkordeon-linie: rgba(255, 255, 255, 0.28);
}

.-color-inverted .ce_accordion .toggler { color: var(--vm-white, #ffffff); }
.-color-inverted .ce_accordion .toggler:hover { color: var(--vm-cta, #fbba00); }
.-color-inverted .ce_accordion .toggler::before { background: rgba(255, 255, 255, 0.12); }
.-color-inverted .ce_accordion .toggler::after { background-color: var(--vm-white, #ffffff); }
.-color-inverted .ce_accordion .accordion { color: rgba(255, 255, 255, 0.8); }


/* =====================================================================
   ONEOs eigene Akkordeon-Optik abräumen
   ---------------------------------------------------------------------
   Das Theme gestaltet Akkordeons als Kästen (main.css):

     .ce_accordion .toggler   { border: 1px solid #bbb; margin-bottom: -2px;
                                padding: .73em 2.67em .87em 1.33em; }
     .ce_accordion .accordion { border: 1px solid #bbb; margin-bottom: -2px;
                                padding: .07em 1.33em; }
     .ce_accordion .toggler:after { font: "RockSolid Icons"; content: "\2b"; }

   Daher die Rahmen um jede Frage und die getönte Fläche der offenen
   Antwort. Gewollt ist hier eine offene Liste mit einer Trennlinie –
   also alles zurücknehmen. `margin-bottom: -2px` ist das Mittel des
   Themes, um benachbarte Rahmen zusammenzuziehen; ohne Rahmen erzeugt
   es nur noch eine 2px-Überlappung.

   `section.` davor ergibt 0,2,2 und schlägt die Theme-Regeln (0,2,1)
   unabhängig von der Ladereihenfolge.
   ===================================================================== */

section.ce_accordion .toggler,
section.ce_accordion .accordion {
  margin-bottom: 0;
  border: 0;
  background: transparent;
}

section.ce_accordion .toggler {
  padding: 1.15rem 3.5rem 1.15rem 0;
}

section.ce_accordion .accordion {
  padding: 0 3.5rem 1.5rem 0;
  overflow: visible;          /* das Theme setzt overflow: hidden */
}

/* Die Plus/Minus-Glyphe des Themes stillegen – unser Zeichen kommt als
   Maske aus derselben Regel (s. oben). Ohne diese Zeile stünden zwei
   Zeichen übereinander, sobald die Icon-Schrift geladen ist. */
section.ce_accordion .toggler::after {
  content: "";
  font: inherit;
  color: transparent;
}


/* =====================================================================
   Überschrift + echter Button (barrierefreier Umbau, 11.09.2026)
   ---------------------------------------------------------------------
   Das Markup ist seit dem Umbau:

     <section class="ce_accordionStart ce_accordion block">
       <h3 class="vm-akkordeon-titel">
         <button class="toggler" aria-expanded aria-controls>Frage</button>
       </h3>
       <div class="accordion" role="region" aria-labelledby>… Antwort …</div>
     </section>

   Vorher war die Frage ein <div>, aus dem jQuery UI zur Laufzeit eine
   Registerkarte machte – s. templates/ce_accordionStart.html.twig.

   SPEZIFITÄT: Der Button-Reset steht bewusst auf `button.toggler` (0,1,1)
   und damit UNTER `.ce_accordion .toggler` (0,2,0) weiter oben. Er räumt
   nur die Browser-Vorgaben für <button> ab; Polster, Farbe, Schriftschnitt
   und das Plus/Minus kommen unverändert aus dem Block oben. Wäre der Reset
   spezifischer, müsste man jede dieser Eigenschaften hier wiederholen.
   ===================================================================== */

/* --- Die Überschrift um den Knopf ----------------------------------- */

/* h3 bringt eigene Größe und Abstände mit: ONEO setzt `h3 { font-size:
   1.17em; margin: 1em 0; }` und `.main-content h3 { font-size: 2em; }`.
   Beides muss weg – die Überschrift ist hier reine Semantik, sichtbar ist
   der Knopf darin. 0,2,0 schlägt `.main-content h3` (0,1,1). */
.ce_accordion .vm-akkordeon-titel {
  margin: 0;
  padding: 0;
  border: 0;

  /* `font` ist eine Kurzform für font-style/-variant/-weight/-stretch,
     font-size, line-height und font-family – letter-spacing, word-spacing
     und text-transform gehören NICHT dazu. Die müssen einzeln geerbt
     werden, sonst sickern Theme-Vorgaben für Überschriften in die Frage.

     Nachgemessen am 11.09.2026: ONEO setzt auf Überschriften
     `letter-spacing: -0.17032px`. Der frühere <div class="toggler"> hing
     direkt unter der <section> und erbte `normal`; der Knopf im <h3> erbte
     plötzlich den engeren Satz. Ein knappes Prozent pro Zeichen – im
     Direktvergleich sichtbar, im Alltag schwer zu finden. */
  font: inherit;
  letter-spacing: inherit;
  word-spacing: inherit;
  text-transform: inherit;
  color: inherit;
}

/* --- Der Knopf ------------------------------------------------------ */
button.toggler {
  display: block;
  box-sizing: border-box;    /* sonst sprengt das rechte Polster die 100% */
  width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;

  /* ONEO setzt `button { -webkit-appearance: button; }` – damit holt sich
     der Knopf die native Darstellung samt Rahmen und Systemschrift. */
  -webkit-appearance: none;
          appearance: none;

  font: inherit;
  color: inherit;
  text-align: start;         /* Browser-Vorgabe für <button> ist center */

  /* Absicherung gegen künftige Theme-Regeln auf `button`: Bei TAO trägt
     eine Selektorliste um `button.-secondary` Versalien und Schatten an
     jeden Knopf. ONEO tut das heute nicht – die Zeilen kosten nichts und
     verhindern, dass aus einer Frage nach einem Update „FRAGE" wird. */
  text-transform: none;
  letter-spacing: inherit;
  box-shadow: none;
  text-shadow: none;

  cursor: pointer;
}

/* --- Zugeklappt ----------------------------------------------------- */

/* Das Skript klappt über das `hidden`-Attribut zu. Browser setzen dafür
   `display: none`, das reicht normalerweise – hier trotzdem ausgeschrieben,
   weil `section.ce_accordion .accordion` weiter oben schon einmal gegen
   eine Theme-Regel antreten musste. */
.ce_accordion .accordion[hidden] {
  display: none;
}

/* =====================================================================
   be on solar – „Nach oben"-Link (ONEO .footer-top-link)
   ---------------------------------------------------------------------
   Ersetzt den alten Font-Glyph-Pfeil (\e01a) + die veraltete „Tab"-Optik
   durch einen runden, modernen Button mit Chevron als CSS-Maske
   (kein Icon-Font – konsistent mit den übrigen VM-Icons).
   Nach dem ONEO-Framework-CSS (und statt eures bisherigen .footer-top-link-
   Blocks) laden. Farben über --vm-* (Fallbacks gesetzt).
   ===================================================================== */

.footer-top-link {
  position: fixed;
  right: clamp(1rem, 2.5vw, 1.5rem);
  bottom: clamp(1rem, 2.5vw, 1.5rem);
  z-index: 90;
  display: grid;
  place-items: center;
  width: 3rem;
  height: 3rem;
  margin: 0;
  color: var(--vm-text, #333333);
  background: var(--vm-white, #ffffff);
  border: 1px solid var(--vm-border, #e3e8ee);
  border-radius: 50%;
  box-shadow: 0 6px 20px rgba(51, 51, 51, 0.16);
  white-space: nowrap;
  transition: color .18s ease, border-color .18s ease, transform .18s ease, box-shadow .18s ease;
}

.footer-top-link:hover,
.footer-top-link:focus-visible {
  color: var(--vm-accent, #004994);
  border-color: var(--vm-accent, #004994);
  transform: translateY(-2px);
  box-shadow: 0 10px 26px rgba(51, 51, 51, 0.22);
  text-decoration: none;
}

/* Pfeil = Chevron nach oben als CSS-Maske (nimmt die Textfarbe an) */
/* Der Pfeil wird ABSOLUT mittig gesetzt, nicht als Rasterzelle.
   Grund: ONEO legt zwei <span>-Labels in den Link. Die erben vom Theme
   text-indent: -999em, sind also unsichtbar – belegen als Rasterzellen
   aber weiterhin Höhe und schieben den Pfeil nach unten. Genau das war
   der schiefe Sitz. Absolut positioniert ist der Pfeil unabhängig davon,
   was sonst noch im Link steckt.
   Zusätzlich muss padding-top: 1.0625em des Themes weg – das stammt aus
   der alten „Tab"-Optik, in der der Pfeil im unteren Drittel saß. */
.footer-top-link::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  display: block;
  width: 1.3rem;
  height: 1.3rem;
  margin: 0;
  padding: 0;
  border: 0;
  box-shadow: none;
  background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m18 15-6-6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m18 15-6-6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Das Theme setzt beim Überfahren ZWEI Eigenschaften auf dem Pfeil:
       .footer-top-link:hover:after { color: #fbba00; background-color: #fef8e5 }
   beide mit Spezifität 0,2,1. Es reicht nicht, nur background-color zu
   überschreiben: Unser Wert ist currentColor, und currentColor greift auf
   das `color` DES PSEUDOELEMENTS zu – also auf das gelbe des Themes. Beide
   Eigenschaften müssen hier gesetzt werden.

   `color: inherit` statt eines festen Werts, damit der Pfeil die Farbe des
   Links übernimmt: Rahmen und Pfeil wechseln beim Überfahren gemeinsam ins
   Blau, statt dass nur der Rahmen umschlägt. */
.footer-top-link:hover::after,
.footer-top-link:focus-visible::after {
  color: inherit;
  background-color: currentColor;
}

/* Alles, was ONEO sonst noch in den Link legt (die Slide-Labels
   „nach oben"), visuell ausblenden –
   der Linktext bleibt für Screenreader erhalten. Bewusst `> *` statt
   `> span`: greift auch, falls das Template ein anderes Element ausgibt. */
.footer-top-link > * {
  position: absolute !important;
  width: 1px;
  height: 1px;
  margin: 0;
  padding: 0;
  border: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
  opacity: 1;
  transition: none;
}

/* Ab 900px abwärts läuft die Quicknav als randlose Leiste über die VOLLE
   Breite (s. custom_vm_quicknav.css) – dort muss der Top-Link darüber
   rutschen, sonst liegt er auf ihr.
   WICHTIG: Dieser Wert ist an den Quicknav-Umbruch gekoppelt. Ändert sich
   dort die 900, muss er hier mitwandern. Darüber ist die Quicknav eine
   zentrierte, schwebende Chip-Leiste und erreicht den rechten Rand nicht. */
@media (max-width: 900px) {
  .footer-top-link {
    right: 1rem;
    bottom: calc(4.75rem + env(safe-area-inset-bottom));
  }
}

/* =====================================================================
   be on solar – UTILITY-KLASSEN (font-size, padding, margin)
   ---------------------------------------------------------------------
   Skala (margin/padding an ONEO angeglichen): 0·10·25·50·75·100·150·200px,
   mobil (≤900px) halbiert. font-size-Skala s. eigener Block unten.
   Achsen: px/py = padding-inline/-block, mx/my = margin-inline/-block.
   !important, damit die Utilities die ONEO-Regeln (main.css nutzt viel
   !important + spezifische Selektoren) sicher überschreiben.
   >>> DIESE DATEI ALS LETZTE LADEN (nach ONEO UND allen custom_vm_*). <<<
   a11y: fs-xxs/fs-xs (<16px) nur für Meta, NICHT für Fließtext.
   ===================================================================== */

/* --- Font-Größen: Desktop-Basis, kleiner ab 1200px und ab 900px ---------
   Stufen statt fluid clamp -> vorhersehbar; kleinere Größen mobil helfen
   bei langen Wörtern. fs-xs bleibt 16px (Fließtext-Minimum, a11y). */
.fs-xxs { font-size: 0.875rem !important; }
.fs-xs  { font-size: 1rem !important; }
.fs-s   { font-size: 1.125rem !important; }
.fs-m   { font-size: 1.35rem !important; }
.fs-l   { font-size: 1.75rem !important; }
.fs-xl  { font-size: 2.5rem !important; }
.fs-xxl { font-size: 3.6rem !important; }

@media (max-width: 1200px) {
  .fs-s   { font-size: 1.0625rem !important; }
  .fs-m   { font-size: 1.2rem !important; }
  .fs-l   { font-size: 1.5rem !important; }
  .fs-xl  { font-size: 2rem !important; }
  .fs-xxl { font-size: 2.8rem !important; }
}
@media (max-width: 900px) {
  .fs-m   { font-size: 1.1rem !important; }
  .fs-l   { font-size: 1.3rem !important; }
  .fs-xl  { font-size: 1.65rem !important; }
  .fs-xxl { font-size: 2.15rem !important; }
}

/* --- Überschriften: fs-* muss ONEO schlagen -----------------------------
   ONEO stylt Headlines mit `.main-content h1…h6` (0,1,1) und hat eigene
   `.font-size-*`-Klassen MIT !important + Mobil-Stufen. Eine einfache
   `.fs-*` (0,1,0) verliert dort. Element+Klasse `:is(h1…h6).fs-*` (0,1,1)
   + !important schlägt beides – an allen Breakpoints. */
:is(h1,h2,h3,h4,h5,h6).fs-xxs { font-size: 0.875rem !important; }
:is(h1,h2,h3,h4,h5,h6).fs-xs  { font-size: 1rem !important; }
:is(h1,h2,h3,h4,h5,h6).fs-s   { font-size: 1.125rem !important; }
:is(h1,h2,h3,h4,h5,h6).fs-m   { font-size: 1.35rem !important; }
:is(h1,h2,h3,h4,h5,h6).fs-l   { font-size: 1.75rem !important; }
:is(h1,h2,h3,h4,h5,h6).fs-xl  { font-size: 2.5rem !important; }
:is(h1,h2,h3,h4,h5,h6).fs-xxl { font-size: 3.6rem !important; }

@media (max-width: 1200px) {
  :is(h1,h2,h3,h4,h5,h6).fs-s   { font-size: 1.0625rem !important; }
  :is(h1,h2,h3,h4,h5,h6).fs-m   { font-size: 1.2rem !important; }
  :is(h1,h2,h3,h4,h5,h6).fs-l   { font-size: 1.5rem !important; }
  :is(h1,h2,h3,h4,h5,h6).fs-xl  { font-size: 2rem !important; }
  :is(h1,h2,h3,h4,h5,h6).fs-xxl { font-size: 2.8rem !important; }
}
@media (max-width: 900px) {
  :is(h1,h2,h3,h4,h5,h6).fs-m   { font-size: 1.1rem !important; }
  :is(h1,h2,h3,h4,h5,h6).fs-l   { font-size: 1.3rem !important; }
  :is(h1,h2,h3,h4,h5,h6).fs-xl  { font-size: 1.65rem !important; }
  :is(h1,h2,h3,h4,h5,h6).fs-xxl { font-size: 2.15rem !important; }
}

/* --- Padding — Skala an ONEO angeglichen ---------------------------------
   Werte wie ONEO (.padding-*): 0 · 10 · 25 · 50 · 75 · 100 · 150 · 200px,
   mobil (≤900px) halbiert. So verhalten sich p*-Klassen wie ONEOs eigene. */
.pt-0 { padding-top: 0 !important; }
.pt-xxs { padding-top: 10px !important; }
.pt-xs { padding-top: 25px !important; }
.pt-s { padding-top: 50px !important; }
.pt-m { padding-top: 75px !important; }
.pt-l { padding-top: 100px !important; }
.pt-xl { padding-top: 150px !important; }
.pt-xxl { padding-top: 200px !important; }
.pb-0 { padding-bottom: 0 !important; }
.pb-xxs { padding-bottom: 10px !important; }
.pb-xs { padding-bottom: 25px !important; }
.pb-s { padding-bottom: 50px !important; }
.pb-m { padding-bottom: 75px !important; }
.pb-l { padding-bottom: 100px !important; }
.pb-xl { padding-bottom: 150px !important; }
.pb-xxl { padding-bottom: 200px !important; }
.pl-0 { padding-left: 0 !important; }
.pl-xxs { padding-left: 10px !important; }
.pl-xs { padding-left: 25px !important; }
.pl-s { padding-left: 50px !important; }
.pl-m { padding-left: 75px !important; }
.pl-l { padding-left: 100px !important; }
.pl-xl { padding-left: 150px !important; }
.pl-xxl { padding-left: 200px !important; }
.pr-0 { padding-right: 0 !important; }
.pr-xxs { padding-right: 10px !important; }
.pr-xs { padding-right: 25px !important; }
.pr-s { padding-right: 50px !important; }
.pr-m { padding-right: 75px !important; }
.pr-l { padding-right: 100px !important; }
.pr-xl { padding-right: 150px !important; }
.pr-xxl { padding-right: 200px !important; }
.px-0 { padding-inline: 0 !important; }
.px-xxs { padding-inline: 10px !important; }
.px-xs { padding-inline: 25px !important; }
.px-s { padding-inline: 50px !important; }
.px-m { padding-inline: 75px !important; }
.px-l { padding-inline: 100px !important; }
.px-xl { padding-inline: 150px !important; }
.px-xxl { padding-inline: 200px !important; }
.py-0 { padding-block: 0 !important; }
.py-xxs { padding-block: 10px !important; }
.py-xs { padding-block: 25px !important; }
.py-s { padding-block: 50px !important; }
.py-m { padding-block: 75px !important; }
.py-l { padding-block: 100px !important; }
.py-xl { padding-block: 150px !important; }
.py-xxl { padding-block: 200px !important; }
.p-0 { padding: 0 !important; }
.p-xxs { padding: 10px !important; }
.p-xs { padding: 25px !important; }
.p-s { padding: 50px !important; }
.p-m { padding: 75px !important; }
.p-l { padding: 100px !important; }
.p-xl { padding: 150px !important; }
.p-xxl { padding: 200px !important; }

/* --- Margin — gleiche Skala wie Padding --- */
.mt-0 { margin-top: 0 !important; }
.mt-xxs { margin-top: 10px !important; }
.mt-xs { margin-top: 25px !important; }
.mt-s { margin-top: 50px !important; }
.mt-m { margin-top: 75px !important; }
.mt-l { margin-top: 100px !important; }
.mt-xl { margin-top: 150px !important; }
.mt-xxl { margin-top: 200px !important; }
.mb-0 { margin-bottom: 0 !important; }
.mb-xxs { margin-bottom: 10px !important; }
.mb-xs { margin-bottom: 25px !important; }
.mb-s { margin-bottom: 50px !important; }
.mb-m { margin-bottom: 75px !important; }
.mb-l { margin-bottom: 100px !important; }
.mb-xl { margin-bottom: 150px !important; }
.mb-xxl { margin-bottom: 200px !important; }
.ml-0 { margin-left: 0 !important; }
.ml-xxs { margin-left: 10px !important; }
.ml-xs { margin-left: 25px !important; }
.ml-s { margin-left: 50px !important; }
.ml-m { margin-left: 75px !important; }
.ml-l { margin-left: 100px !important; }
.ml-xl { margin-left: 150px !important; }
.ml-xxl { margin-left: 200px !important; }
.mr-0 { margin-right: 0 !important; }
.mr-xxs { margin-right: 10px !important; }
.mr-xs { margin-right: 25px !important; }
.mr-s { margin-right: 50px !important; }
.mr-m { margin-right: 75px !important; }
.mr-l { margin-right: 100px !important; }
.mr-xl { margin-right: 150px !important; }
.mr-xxl { margin-right: 200px !important; }
.mx-0 { margin-inline: 0 !important; }
.mx-xxs { margin-inline: 10px !important; }
.mx-xs { margin-inline: 25px !important; }
.mx-s { margin-inline: 50px !important; }
.mx-m { margin-inline: 75px !important; }
.mx-l { margin-inline: 100px !important; }
.mx-xl { margin-inline: 150px !important; }
.mx-xxl { margin-inline: 200px !important; }
.my-0 { margin-block: 0 !important; }
.my-xxs { margin-block: 10px !important; }
.my-xs { margin-block: 25px !important; }
.my-s { margin-block: 50px !important; }
.my-m { margin-block: 75px !important; }
.my-l { margin-block: 100px !important; }
.my-xl { margin-block: 150px !important; }
.my-xxl { margin-block: 200px !important; }
.m-0 { margin: 0 !important; }
.m-xxs { margin: 10px !important; }
.m-xs { margin: 25px !important; }
.m-s { margin: 50px !important; }
.m-m { margin: 75px !important; }
.m-l { margin: 100px !important; }
.m-xl { margin: 150px !important; }
.m-xxl { margin: 200px !important; }
.mx-auto { margin-inline: auto !important; }

/* --- Mobil (≤900px): Abstände halbieren (wie ONEO) --------------------- */
@media (max-width: 900px) {
  .pt-xxs { padding-top: 5px !important; }
  .pt-xs { padding-top: 13px !important; }
  .pt-s { padding-top: 25px !important; }
  .pt-m { padding-top: 38px !important; }
  .pt-l { padding-top: 50px !important; }
  .pt-xl { padding-top: 75px !important; }
  .pt-xxl { padding-top: 100px !important; }
  .pb-xxs { padding-bottom: 5px !important; }
  .pb-xs { padding-bottom: 13px !important; }
  .pb-s { padding-bottom: 25px !important; }
  .pb-m { padding-bottom: 38px !important; }
  .pb-l { padding-bottom: 50px !important; }
  .pb-xl { padding-bottom: 75px !important; }
  .pb-xxl { padding-bottom: 100px !important; }
  .pl-xxs { padding-left: 5px !important; }
  .pl-xs { padding-left: 13px !important; }
  .pl-s { padding-left: 25px !important; }
  .pl-m { padding-left: 38px !important; }
  .pl-l { padding-left: 50px !important; }
  .pl-xl { padding-left: 75px !important; }
  .pl-xxl { padding-left: 100px !important; }
  .pr-xxs { padding-right: 5px !important; }
  .pr-xs { padding-right: 13px !important; }
  .pr-s { padding-right: 25px !important; }
  .pr-m { padding-right: 38px !important; }
  .pr-l { padding-right: 50px !important; }
  .pr-xl { padding-right: 75px !important; }
  .pr-xxl { padding-right: 100px !important; }
  .px-xxs { padding-inline: 5px !important; }
  .px-xs { padding-inline: 13px !important; }
  .px-s { padding-inline: 25px !important; }
  .px-m { padding-inline: 38px !important; }
  .px-l { padding-inline: 50px !important; }
  .px-xl { padding-inline: 75px !important; }
  .px-xxl { padding-inline: 100px !important; }
  .py-xxs { padding-block: 5px !important; }
  .py-xs { padding-block: 13px !important; }
  .py-s { padding-block: 25px !important; }
  .py-m { padding-block: 38px !important; }
  .py-l { padding-block: 50px !important; }
  .py-xl { padding-block: 75px !important; }
  .py-xxl { padding-block: 100px !important; }
  .p-xxs { padding: 5px !important; }
  .p-xs { padding: 13px !important; }
  .p-s { padding: 25px !important; }
  .p-m { padding: 38px !important; }
  .p-l { padding: 50px !important; }
  .p-xl { padding: 75px !important; }
  .p-xxl { padding: 100px !important; }
  .mt-xxs { margin-top: 5px !important; }
  .mt-xs { margin-top: 13px !important; }
  .mt-s { margin-top: 25px !important; }
  .mt-m { margin-top: 38px !important; }
  .mt-l { margin-top: 50px !important; }
  .mt-xl { margin-top: 75px !important; }
  .mt-xxl { margin-top: 100px !important; }
  .mb-xxs { margin-bottom: 5px !important; }
  .mb-xs { margin-bottom: 13px !important; }
  .mb-s { margin-bottom: 25px !important; }
  .mb-m { margin-bottom: 38px !important; }
  .mb-l { margin-bottom: 50px !important; }
  .mb-xl { margin-bottom: 75px !important; }
  .mb-xxl { margin-bottom: 100px !important; }
  .ml-xxs { margin-left: 5px !important; }
  .ml-xs { margin-left: 13px !important; }
  .ml-s { margin-left: 25px !important; }
  .ml-m { margin-left: 38px !important; }
  .ml-l { margin-left: 50px !important; }
  .ml-xl { margin-left: 75px !important; }
  .ml-xxl { margin-left: 100px !important; }
  .mr-xxs { margin-right: 5px !important; }
  .mr-xs { margin-right: 13px !important; }
  .mr-s { margin-right: 25px !important; }
  .mr-m { margin-right: 38px !important; }
  .mr-l { margin-right: 50px !important; }
  .mr-xl { margin-right: 75px !important; }
  .mr-xxl { margin-right: 100px !important; }
  .mx-xxs { margin-inline: 5px !important; }
  .mx-xs { margin-inline: 13px !important; }
  .mx-s { margin-inline: 25px !important; }
  .mx-m { margin-inline: 38px !important; }
  .mx-l { margin-inline: 50px !important; }
  .mx-xl { margin-inline: 75px !important; }
  .mx-xxl { margin-inline: 100px !important; }
  .my-xxs { margin-block: 5px !important; }
  .my-xs { margin-block: 13px !important; }
  .my-s { margin-block: 25px !important; }
  .my-m { margin-block: 38px !important; }
  .my-l { margin-block: 50px !important; }
  .my-xl { margin-block: 75px !important; }
  .my-xxl { margin-block: 100px !important; }
  .m-xxs { margin: 5px !important; }
  .m-xs { margin: 13px !important; }
  .m-s { margin: 25px !important; }
  .m-m { margin: 38px !important; }
  .m-l { margin: 50px !important; }
  .m-xl { margin: 75px !important; }
  .m-xxl { margin: 100px !important; }
}

