.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-appearance: textfield;
}
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/tao/fonts/rocksolid-icons.woff") format("woff"), url("../../files/tao/fonts/rocksolid-icons.ttf") format("truetype"), url("../../files/tao/fonts/rocksolid-icons.svg") format("svg");
	font-weight: normal;
	font-style: normal;
}

@font-face {
	font-family: "Lato";
	font-weight: 300;
	font-style: normal;
	src: url("../../files/tao/fonts/lato-300.woff2") format("woff2");
}

@font-face {
	font-family: "Lato";
	font-weight: 400;
	font-style: normal;
	src: url("../../files/tao/fonts/lato-400.woff2") format("woff2");
}

@font-face {
	font-family: "Lato";
	font-weight: 700;
	font-style: normal;
	src: url("../../files/tao/fonts/lato-700.woff2") format("woff2");
}

/* ===========================================
 * General
 * ======================================== */
:root {
	--main-padding-x: 2.5rem;
	--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: 1600px) {
	:root {
		--main-padding-x: 3.7037%;
	}
}
@media screen and (max-width: 1200px) {
	:root {
		--main-padding-x: 5.55556%;
	}
}
@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.5625 Source Sans 3, sans-serif;
	color: #575656;
	-webkit-tap-highlight-color: #c9390f;
}
@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/tao/img/demo/background-1.jpg") 50% 0 no-repeat;
	background-attachment: fixed;
}
body.background-variation-2 {
	background: url("../../files/tao/img/demo/background-10.jpg") 50% 0 no-repeat;
	background-size: cover;
	background-attachment: fixed;
}

* {
	box-sizing: inherit;
}

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

.rs-column {
	float: left;
	width: 100%;
	margin-top: 6.25%;
	margin-right: 6.25%;
}
.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: 46.875%;
}
.rs-column.-large-col-2-2 {
	width: 100%;
}
.rs-column.-large-col-3-1 {
	width: 29.16667%;
}
.rs-column.-large-col-3-2 {
	width: 64.58333%;
}
.rs-column.-large-col-3-3 {
	width: 100%;
}
.rs-column.-large-col-4-1 {
	width: 20.3125%;
}
.rs-column.-large-col-4-2 {
	width: 46.875%;
}
.rs-column.-large-col-4-3 {
	width: 73.4375%;
}
.rs-column.-large-col-4-4 {
	width: 100%;
}
.rs-column.-large-col-5-1 {
	width: 15%;
}
.rs-column.-large-col-5-2 {
	width: 36.25%;
}
.rs-column.-large-col-5-3 {
	width: 57.5%;
}
.rs-column.-large-col-5-4 {
	width: 78.75%;
}
.rs-column.-large-col-5-5 {
	width: 100%;
}
.rs-column.-large-col-6-1 {
	width: 11.45833%;
}
.rs-column.-large-col-6-2 {
	width: 29.16667%;
}
.rs-column.-large-col-6-3 {
	width: 46.875%;
}
.rs-column.-large-col-6-4 {
	width: 64.58333%;
}
.rs-column.-large-col-6-5 {
	width: 82.29167%;
}
.rs-column.-large-col-6-6 {
	width: 100%;
}
.rs-column.-large-col-7-1 {
	width: 8.92857%;
}
.rs-column.-large-col-7-2 {
	width: 24.10714%;
}
.rs-column.-large-col-7-3 {
	width: 39.28571%;
}
.rs-column.-large-col-7-4 {
	width: 54.46429%;
}
.rs-column.-large-col-7-5 {
	width: 69.64286%;
}
.rs-column.-large-col-7-6 {
	width: 84.82143%;
}
.rs-column.-large-col-7-7 {
	width: 100%;
}
.tao-no-sidebar .rs-column,
.mega-dropdown .rs-column,
.page-footer .rs-column {
	margin-top: 4%;
	margin-right: 4%;
}
.tao-no-sidebar .rs-column.-large-last,
.mega-dropdown .rs-column.-large-last,
.page-footer .rs-column.-large-last {
	margin-right: -5px;
}
.tao-no-sidebar .rs-column.-large-first-row,
.mega-dropdown .rs-column.-large-first-row,
.page-footer .rs-column.-large-first-row {
	margin-top: 0;
}
.tao-no-sidebar .rs-column.-large-col-1-1,
.mega-dropdown .rs-column.-large-col-1-1,
.page-footer .rs-column.-large-col-1-1 {
	width: 100%;
}
.tao-no-sidebar .rs-column.-large-col-2-1,
.mega-dropdown .rs-column.-large-col-2-1,
.page-footer .rs-column.-large-col-2-1 {
	width: 48%;
}
.tao-no-sidebar .rs-column.-large-col-2-2,
.mega-dropdown .rs-column.-large-col-2-2,
.page-footer .rs-column.-large-col-2-2 {
	width: 100%;
}
.tao-no-sidebar .rs-column.-large-col-3-1,
.mega-dropdown .rs-column.-large-col-3-1,
.page-footer .rs-column.-large-col-3-1 {
	width: 30.66667%;
}
.tao-no-sidebar .rs-column.-large-col-3-2,
.mega-dropdown .rs-column.-large-col-3-2,
.page-footer .rs-column.-large-col-3-2 {
	width: 65.33333%;
}
.tao-no-sidebar .rs-column.-large-col-3-3,
.mega-dropdown .rs-column.-large-col-3-3,
.page-footer .rs-column.-large-col-3-3 {
	width: 100.0%;
}
.tao-no-sidebar .rs-column.-large-col-4-1,
.mega-dropdown .rs-column.-large-col-4-1,
.page-footer .rs-column.-large-col-4-1 {
	width: 22%;
}
.tao-no-sidebar .rs-column.-large-col-4-2,
.mega-dropdown .rs-column.-large-col-4-2,
.page-footer .rs-column.-large-col-4-2 {
	width: 48%;
}
.tao-no-sidebar .rs-column.-large-col-4-3,
.mega-dropdown .rs-column.-large-col-4-3,
.page-footer .rs-column.-large-col-4-3 {
	width: 74%;
}
.tao-no-sidebar .rs-column.-large-col-4-4,
.mega-dropdown .rs-column.-large-col-4-4,
.page-footer .rs-column.-large-col-4-4 {
	width: 100%;
}
.tao-no-sidebar .rs-column.-large-col-5-1,
.mega-dropdown .rs-column.-large-col-5-1,
.page-footer .rs-column.-large-col-5-1 {
	width: 16.8%;
}
.tao-no-sidebar .rs-column.-large-col-5-2,
.mega-dropdown .rs-column.-large-col-5-2,
.page-footer .rs-column.-large-col-5-2 {
	width: 37.6%;
}
.tao-no-sidebar .rs-column.-large-col-5-3,
.mega-dropdown .rs-column.-large-col-5-3,
.page-footer .rs-column.-large-col-5-3 {
	width: 58.4%;
}
.tao-no-sidebar .rs-column.-large-col-5-4,
.mega-dropdown .rs-column.-large-col-5-4,
.page-footer .rs-column.-large-col-5-4 {
	width: 79.2%;
}
.tao-no-sidebar .rs-column.-large-col-5-5,
.mega-dropdown .rs-column.-large-col-5-5,
.page-footer .rs-column.-large-col-5-5 {
	width: 100.0%;
}
.tao-no-sidebar .rs-column.-large-col-6-1,
.mega-dropdown .rs-column.-large-col-6-1,
.page-footer .rs-column.-large-col-6-1 {
	width: 13.33333%;
}
.tao-no-sidebar .rs-column.-large-col-6-2,
.mega-dropdown .rs-column.-large-col-6-2,
.page-footer .rs-column.-large-col-6-2 {
	width: 30.66667%;
}
.tao-no-sidebar .rs-column.-large-col-6-3,
.mega-dropdown .rs-column.-large-col-6-3,
.page-footer .rs-column.-large-col-6-3 {
	width: 48.0%;
}
.tao-no-sidebar .rs-column.-large-col-6-4,
.mega-dropdown .rs-column.-large-col-6-4,
.page-footer .rs-column.-large-col-6-4 {
	width: 65.33333%;
}
.tao-no-sidebar .rs-column.-large-col-6-5,
.mega-dropdown .rs-column.-large-col-6-5,
.page-footer .rs-column.-large-col-6-5 {
	width: 82.66667%;
}
.tao-no-sidebar .rs-column.-large-col-6-6,
.mega-dropdown .rs-column.-large-col-6-6,
.page-footer .rs-column.-large-col-6-6 {
	width: 100%;
}
.tao-no-sidebar .rs-column.-large-col-7-1,
.mega-dropdown .rs-column.-large-col-7-1,
.page-footer .rs-column.-large-col-7-1 {
	width: 10.85714%;
}
.tao-no-sidebar .rs-column.-large-col-7-2,
.mega-dropdown .rs-column.-large-col-7-2,
.page-footer .rs-column.-large-col-7-2 {
	width: 25.71429%;
}
.tao-no-sidebar .rs-column.-large-col-7-3,
.mega-dropdown .rs-column.-large-col-7-3,
.page-footer .rs-column.-large-col-7-3 {
	width: 40.57143%;
}
.tao-no-sidebar .rs-column.-large-col-7-4,
.mega-dropdown .rs-column.-large-col-7-4,
.page-footer .rs-column.-large-col-7-4 {
	width: 55.42857%;
}
.tao-no-sidebar .rs-column.-large-col-7-5,
.mega-dropdown .rs-column.-large-col-7-5,
.page-footer .rs-column.-large-col-7-5 {
	width: 70.28571%;
}
.tao-no-sidebar .rs-column.-large-col-7-6,
.mega-dropdown .rs-column.-large-col-7-6,
.page-footer .rs-column.-large-col-7-6 {
	width: 85.14286%;
}
.tao-no-sidebar .rs-column.-large-col-7-7,
.mega-dropdown .rs-column.-large-col-7-7,
.page-footer .rs-column.-large-col-7-7 {
	width: 100%;
}
@media screen and (max-width: 1200px) {
	.rs-column,
	.tao-no-sidebar .rs-column,
	.mega-dropdown .rs-column,
	.page-footer .rs-column {
		margin-top: 6.25%;
		margin-right: 6.25%;
	}
	.rs-column.-large-first,
	.tao-no-sidebar .rs-column.-large-first,
	.mega-dropdown .rs-column.-large-first,
	.page-footer .rs-column.-large-first {
		clear: none;
	}
	.rs-column.-large-last,
	.tao-no-sidebar .rs-column.-large-last,
	.mega-dropdown .rs-column.-large-last,
	.page-footer .rs-column.-large-last {
		margin-right: 6.25%;
	}
	.rs-column.-large-first-row,
	.tao-no-sidebar .rs-column.-large-first-row,
	.mega-dropdown .rs-column.-large-first-row,
	.page-footer .rs-column.-large-first-row {
		margin-top: 6.25%;
	}
	.rs-column.-medium-first,
	.tao-no-sidebar .rs-column.-medium-first,
	.mega-dropdown .rs-column.-medium-first,
	.page-footer .rs-column.-medium-first {
		clear: left;
	}
	.rs-column.-medium-last,
	.tao-no-sidebar .rs-column.-medium-last,
	.mega-dropdown .rs-column.-medium-last,
	.page-footer .rs-column.-medium-last {
		margin-right: -5px;
	}
	.rs-column.-medium-first-row,
	.tao-no-sidebar .rs-column.-medium-first-row,
	.mega-dropdown .rs-column.-medium-first-row,
	.page-footer .rs-column.-medium-first-row {
		margin-top: 0;
	}
	.rs-column.-medium-col-1-1,
	.tao-no-sidebar .rs-column.-medium-col-1-1,
	.mega-dropdown .rs-column.-medium-col-1-1,
	.page-footer .rs-column.-medium-col-1-1 {
		width: 100%;
	}
	.rs-column.-medium-col-2-1,
	.tao-no-sidebar .rs-column.-medium-col-2-1,
	.mega-dropdown .rs-column.-medium-col-2-1,
	.page-footer .rs-column.-medium-col-2-1 {
		width: 46.875%;
	}
	.rs-column.-medium-col-2-2,
	.tao-no-sidebar .rs-column.-medium-col-2-2,
	.mega-dropdown .rs-column.-medium-col-2-2,
	.page-footer .rs-column.-medium-col-2-2 {
		width: 100%;
	}
	.rs-column.-medium-col-3-1,
	.tao-no-sidebar .rs-column.-medium-col-3-1,
	.mega-dropdown .rs-column.-medium-col-3-1,
	.page-footer .rs-column.-medium-col-3-1 {
		width: 29.16667%;
	}
	.rs-column.-medium-col-3-2,
	.tao-no-sidebar .rs-column.-medium-col-3-2,
	.mega-dropdown .rs-column.-medium-col-3-2,
	.page-footer .rs-column.-medium-col-3-2 {
		width: 64.58333%;
	}
	.rs-column.-medium-col-3-3,
	.tao-no-sidebar .rs-column.-medium-col-3-3,
	.mega-dropdown .rs-column.-medium-col-3-3,
	.page-footer .rs-column.-medium-col-3-3 {
		width: 100%;
	}
	.rs-column.-medium-col-4-1,
	.tao-no-sidebar .rs-column.-medium-col-4-1,
	.mega-dropdown .rs-column.-medium-col-4-1,
	.page-footer .rs-column.-medium-col-4-1 {
		width: 20.3125%;
	}
	.rs-column.-medium-col-4-2,
	.tao-no-sidebar .rs-column.-medium-col-4-2,
	.mega-dropdown .rs-column.-medium-col-4-2,
	.page-footer .rs-column.-medium-col-4-2 {
		width: 46.875%;
	}
	.rs-column.-medium-col-4-3,
	.tao-no-sidebar .rs-column.-medium-col-4-3,
	.mega-dropdown .rs-column.-medium-col-4-3,
	.page-footer .rs-column.-medium-col-4-3 {
		width: 73.4375%;
	}
	.rs-column.-medium-col-4-4,
	.tao-no-sidebar .rs-column.-medium-col-4-4,
	.mega-dropdown .rs-column.-medium-col-4-4,
	.page-footer .rs-column.-medium-col-4-4 {
		width: 100%;
	}
	.rs-column.-medium-col-5-1,
	.tao-no-sidebar .rs-column.-medium-col-5-1,
	.mega-dropdown .rs-column.-medium-col-5-1,
	.page-footer .rs-column.-medium-col-5-1 {
		width: 15%;
	}
	.rs-column.-medium-col-5-2,
	.tao-no-sidebar .rs-column.-medium-col-5-2,
	.mega-dropdown .rs-column.-medium-col-5-2,
	.page-footer .rs-column.-medium-col-5-2 {
		width: 36.25%;
	}
	.rs-column.-medium-col-5-3,
	.tao-no-sidebar .rs-column.-medium-col-5-3,
	.mega-dropdown .rs-column.-medium-col-5-3,
	.page-footer .rs-column.-medium-col-5-3 {
		width: 57.5%;
	}
	.rs-column.-medium-col-5-4,
	.tao-no-sidebar .rs-column.-medium-col-5-4,
	.mega-dropdown .rs-column.-medium-col-5-4,
	.page-footer .rs-column.-medium-col-5-4 {
		width: 78.75%;
	}
	.rs-column.-medium-col-5-5,
	.tao-no-sidebar .rs-column.-medium-col-5-5,
	.mega-dropdown .rs-column.-medium-col-5-5,
	.page-footer .rs-column.-medium-col-5-5 {
		width: 100%;
	}
	.rs-column.-medium-col-6-1,
	.tao-no-sidebar .rs-column.-medium-col-6-1,
	.mega-dropdown .rs-column.-medium-col-6-1,
	.page-footer .rs-column.-medium-col-6-1 {
		width: 11.45833%;
	}
	.rs-column.-medium-col-6-2,
	.tao-no-sidebar .rs-column.-medium-col-6-2,
	.mega-dropdown .rs-column.-medium-col-6-2,
	.page-footer .rs-column.-medium-col-6-2 {
		width: 29.16667%;
	}
	.rs-column.-medium-col-6-3,
	.tao-no-sidebar .rs-column.-medium-col-6-3,
	.mega-dropdown .rs-column.-medium-col-6-3,
	.page-footer .rs-column.-medium-col-6-3 {
		width: 46.875%;
	}
	.rs-column.-medium-col-6-4,
	.tao-no-sidebar .rs-column.-medium-col-6-4,
	.mega-dropdown .rs-column.-medium-col-6-4,
	.page-footer .rs-column.-medium-col-6-4 {
		width: 64.58333%;
	}
	.rs-column.-medium-col-6-5,
	.tao-no-sidebar .rs-column.-medium-col-6-5,
	.mega-dropdown .rs-column.-medium-col-6-5,
	.page-footer .rs-column.-medium-col-6-5 {
		width: 82.29167%;
	}
	.rs-column.-medium-col-6-6,
	.tao-no-sidebar .rs-column.-medium-col-6-6,
	.mega-dropdown .rs-column.-medium-col-6-6,
	.page-footer .rs-column.-medium-col-6-6 {
		width: 100%;
	}
	.rs-column.-medium-col-7-1,
	.tao-no-sidebar .rs-column.-medium-col-7-1,
	.mega-dropdown .rs-column.-medium-col-7-1,
	.page-footer .rs-column.-medium-col-7-1 {
		width: 8.92857%;
	}
	.rs-column.-medium-col-7-2,
	.tao-no-sidebar .rs-column.-medium-col-7-2,
	.mega-dropdown .rs-column.-medium-col-7-2,
	.page-footer .rs-column.-medium-col-7-2 {
		width: 24.10714%;
	}
	.rs-column.-medium-col-7-3,
	.tao-no-sidebar .rs-column.-medium-col-7-3,
	.mega-dropdown .rs-column.-medium-col-7-3,
	.page-footer .rs-column.-medium-col-7-3 {
		width: 39.28571%;
	}
	.rs-column.-medium-col-7-4,
	.tao-no-sidebar .rs-column.-medium-col-7-4,
	.mega-dropdown .rs-column.-medium-col-7-4,
	.page-footer .rs-column.-medium-col-7-4 {
		width: 54.46429%;
	}
	.rs-column.-medium-col-7-5,
	.tao-no-sidebar .rs-column.-medium-col-7-5,
	.mega-dropdown .rs-column.-medium-col-7-5,
	.page-footer .rs-column.-medium-col-7-5 {
		width: 69.64286%;
	}
	.rs-column.-medium-col-7-6,
	.tao-no-sidebar .rs-column.-medium-col-7-6,
	.mega-dropdown .rs-column.-medium-col-7-6,
	.page-footer .rs-column.-medium-col-7-6 {
		width: 84.82143%;
	}
	.rs-column.-medium-col-7-7,
	.tao-no-sidebar .rs-column.-medium-col-7-7,
	.mega-dropdown .rs-column.-medium-col-7-7,
	.page-footer .rs-column.-medium-col-7-7 {
		width: 100%;
	}
}
@media screen and (max-width: 900px) {
	.rs-column,
	.tao-no-sidebar .rs-column,
	.page-footer .rs-column {
		margin-right: 6.25%;
	}
	.rs-column.-medium-first,
	.tao-no-sidebar .rs-column.-medium-first,
	.page-footer .rs-column.-medium-first {
		clear: none;
	}
	.rs-column.-medium-last,
	.tao-no-sidebar .rs-column.-medium-last,
	.page-footer .rs-column.-medium-last {
		margin-right: 6.25%;
	}
	.rs-column.-medium-first-row,
	.tao-no-sidebar .rs-column.-medium-first-row,
	.page-footer .rs-column.-medium-first-row {
		margin-top: 6.25%;
	}
	.rs-column.-small-first,
	.tao-no-sidebar .rs-column.-small-first,
	.page-footer .rs-column.-small-first {
		clear: left;
	}
	.rs-column.-small-last,
	.tao-no-sidebar .rs-column.-small-last,
	.page-footer .rs-column.-small-last {
		margin-right: -5px;
	}
	.rs-column.-small-first-row,
	.tao-no-sidebar .rs-column.-small-first-row,
	.page-footer .rs-column.-small-first-row {
		margin-top: 0;
	}
	.rs-column.-small-col-1-1,
	.tao-no-sidebar .rs-column.-small-col-1-1,
	.page-footer .rs-column.-small-col-1-1 {
		width: 100%;
	}
	.rs-column.-small-col-2-1,
	.tao-no-sidebar .rs-column.-small-col-2-1,
	.page-footer .rs-column.-small-col-2-1 {
		width: 46.875%;
	}
	.rs-column.-small-col-2-2,
	.tao-no-sidebar .rs-column.-small-col-2-2,
	.page-footer .rs-column.-small-col-2-2 {
		width: 100%;
	}
	.rs-column.-small-col-3-1,
	.tao-no-sidebar .rs-column.-small-col-3-1,
	.page-footer .rs-column.-small-col-3-1 {
		width: 29.16667%;
	}
	.rs-column.-small-col-3-2,
	.tao-no-sidebar .rs-column.-small-col-3-2,
	.page-footer .rs-column.-small-col-3-2 {
		width: 64.58333%;
	}
	.rs-column.-small-col-3-3,
	.tao-no-sidebar .rs-column.-small-col-3-3,
	.page-footer .rs-column.-small-col-3-3 {
		width: 100%;
	}
	.rs-column.-small-col-4-1,
	.tao-no-sidebar .rs-column.-small-col-4-1,
	.page-footer .rs-column.-small-col-4-1 {
		width: 20.3125%;
	}
	.rs-column.-small-col-4-2,
	.tao-no-sidebar .rs-column.-small-col-4-2,
	.page-footer .rs-column.-small-col-4-2 {
		width: 46.875%;
	}
	.rs-column.-small-col-4-3,
	.tao-no-sidebar .rs-column.-small-col-4-3,
	.page-footer .rs-column.-small-col-4-3 {
		width: 73.4375%;
	}
	.rs-column.-small-col-4-4,
	.tao-no-sidebar .rs-column.-small-col-4-4,
	.page-footer .rs-column.-small-col-4-4 {
		width: 100%;
	}
	.rs-column.-small-col-5-1,
	.tao-no-sidebar .rs-column.-small-col-5-1,
	.page-footer .rs-column.-small-col-5-1 {
		width: 15%;
	}
	.rs-column.-small-col-5-2,
	.tao-no-sidebar .rs-column.-small-col-5-2,
	.page-footer .rs-column.-small-col-5-2 {
		width: 36.25%;
	}
	.rs-column.-small-col-5-3,
	.tao-no-sidebar .rs-column.-small-col-5-3,
	.page-footer .rs-column.-small-col-5-3 {
		width: 57.5%;
	}
	.rs-column.-small-col-5-4,
	.tao-no-sidebar .rs-column.-small-col-5-4,
	.page-footer .rs-column.-small-col-5-4 {
		width: 78.75%;
	}
	.rs-column.-small-col-5-5,
	.tao-no-sidebar .rs-column.-small-col-5-5,
	.page-footer .rs-column.-small-col-5-5 {
		width: 100%;
	}
	.rs-column.-small-col-6-1,
	.tao-no-sidebar .rs-column.-small-col-6-1,
	.page-footer .rs-column.-small-col-6-1 {
		width: 11.45833%;
	}
	.rs-column.-small-col-6-2,
	.tao-no-sidebar .rs-column.-small-col-6-2,
	.page-footer .rs-column.-small-col-6-2 {
		width: 29.16667%;
	}
	.rs-column.-small-col-6-3,
	.tao-no-sidebar .rs-column.-small-col-6-3,
	.page-footer .rs-column.-small-col-6-3 {
		width: 46.875%;
	}
	.rs-column.-small-col-6-4,
	.tao-no-sidebar .rs-column.-small-col-6-4,
	.page-footer .rs-column.-small-col-6-4 {
		width: 64.58333%;
	}
	.rs-column.-small-col-6-5,
	.tao-no-sidebar .rs-column.-small-col-6-5,
	.page-footer .rs-column.-small-col-6-5 {
		width: 82.29167%;
	}
	.rs-column.-small-col-6-6,
	.tao-no-sidebar .rs-column.-small-col-6-6,
	.page-footer .rs-column.-small-col-6-6 {
		width: 100%;
	}
	.rs-column.-small-col-7-1,
	.tao-no-sidebar .rs-column.-small-col-7-1,
	.page-footer .rs-column.-small-col-7-1 {
		width: 8.92857%;
	}
	.rs-column.-small-col-7-2,
	.tao-no-sidebar .rs-column.-small-col-7-2,
	.page-footer .rs-column.-small-col-7-2 {
		width: 24.10714%;
	}
	.rs-column.-small-col-7-3,
	.tao-no-sidebar .rs-column.-small-col-7-3,
	.page-footer .rs-column.-small-col-7-3 {
		width: 39.28571%;
	}
	.rs-column.-small-col-7-4,
	.tao-no-sidebar .rs-column.-small-col-7-4,
	.page-footer .rs-column.-small-col-7-4 {
		width: 54.46429%;
	}
	.rs-column.-small-col-7-5,
	.tao-no-sidebar .rs-column.-small-col-7-5,
	.page-footer .rs-column.-small-col-7-5 {
		width: 69.64286%;
	}
	.rs-column.-small-col-7-6,
	.tao-no-sidebar .rs-column.-small-col-7-6,
	.page-footer .rs-column.-small-col-7-6 {
		width: 84.82143%;
	}
	.rs-column.-small-col-7-7,
	.tao-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: #c9390f;
	color: #ffffff;
	text-shadow: none !important;
}

::-moz-selection {
	background: #c9390f;
	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 #dddddd;
	border-radius: 0px;
	background: #ffffff;
}
table th,
table td {
	border: solid #dddddd;
	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.375em 0.625em;
	font-weight: bold;
	text-align: left;
}
table td {
	padding: 0.375em 0.625em;
}
table thead {
	background: rgba(0, 0, 0, 0.02);
}
table tfoot td {
	font-style: italic;
}

strong,
b {
	font-weight: bold;
}

a {
	color: #c9390f;
	text-decoration: none;
}
a:hover,
a:focus {
	text-decoration: underline;
}
a:hover,
a:active {
	outline: 0;
}
a.external-link:after {
	font: 0.8125em/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.25em;
}

/* 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.25em;
}

*[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.25em;
}

.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;
	margin-right: auto;
	text-align: center;
}

.syndication {
	margin: 0.75em 0 0 1.25em;
	float: right;
}
.syndication a {
	margin-left: 0.125em;
}

.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.5em 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.625em;
	border-top: 1px solid #dddddd;
}
.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.3125em;
}

[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.25em 0;
	border: 0;
	border-top: 1px solid #dddddd;
}

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

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;
}
.headline-hr:before,
.headline-hr:after {
	display: inline-block;
	vertical-align: middle;
	width: 100%;
	margin: 0 0.625em 0 calc(-100% - 0.625em);
}
.headline-hr:after {
	content: "";
	margin: 0 calc(-100% - 0.625em) 0 0.625em;
}
.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.5em;
	width: 1.875em;
	margin: 0;
	background: #ffffff;
}
.icon-hr.-centered:before {
	width: 2.25em;
	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: #c9390f;
}

.information {
	color: #c9390f;
}

.warning {
	color: #c9390f;
}

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.5625em 0;
	padding: 1em 6.25% 1em 12.5%;
	border: 1px solid #dddddd;
	border-radius: 0px;
	color: #82250a;
	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: 4em;
	}
}
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.5em/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: 1.16667em;
	height: 1.16667em;
	margin: -1.25em 0 0;
	padding: 0.66667em;
	border-radius: 100%;
	color: #ffffff;
	text-align: center;
	background: #c9390f;
}
p.information,
div.information,
span.information {
	color: #82250a;
}
p.information:before,
div.information:before,
span.information:before {
	content: "\e0a6";
	background: #c9390f;
}
p.warning,
div.warning,
span.warning {
	color: #82250a;
}
p.warning:before,
div.warning:before,
span.warning:before {
	content: "\e143";
	background: #c9390f;
}

p.drop-cap:first-letter,
span.drop-cap {
	float: left;
	margin: 0.11111em 0.33333em 0 0;
	padding: 0.19444em;
	border: 1px solid #dddddd;
	border-radius: 0px;
	font-size: 2.25em;
	font-weight: normal;
	/* Fixes line-height difference between gecko and webkit */
	line-height: 0.7;
	background: #ffffff;
	background-image: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.05));
}

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

code {
	padding: 0.14286em 0.35714em;
	font-family: "Lucida Console", monospace;
	font-size: 0.875em;
	line-height: 1.35786;
	background-color: #dddddd;
	border-radius: 0px;
}

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

/* ===========================================
 * Buttons
 * ======================================== */
button.-secondary, .button.-secondary, input[type="submit"].-secondary, .header-login .formbody input[type=submit],
.header-dropdown > ul input[type=submit],
.pricing-table-plan.-highlighted a,
.feature-box-link.-secondary,
.headline-box-link.-secondary,
button.-tertiary,
.button.-tertiary,
input[type="submit"].-tertiary,
.rotating-boxes-item-content .rotating-boxes-item-link,
.pricing-table-plan a,
.feature-box-link.-tertiary,
.headline-box-link.-tertiary,
button.-quaternary,
.button.-quaternary,
input[type="submit"].-quaternary,
.feature-box-link.-quaternary,
.headline-box-link.-quaternary,
.highlight-box-link,
.feature-box-link,
.headline-box-link,
.footer-bar input[type=submit],
.footer-bar button,
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: 0.64286em 1.42857em;
	border: 1px solid;
	border-color: #b1320d #9a2c0b #82250a;
	border-radius: 0px;
	outline: none;
	font-size: 0.875em;
	line-height: 1.42929;
	color: #ffffff;
	text-align: center;
	text-decoration: none;
	text-transform: uppercase;
	text-shadow: 0 -1px 0 #9a2c0b;
	background: #c9390f;
	background: linear-gradient(#e14011, #bb350e);
	box-shadow: inset 0 1px #d97457;
}
button.-secondary:hover, .button.-secondary:hover, input[type="submit"].-secondary:hover, .header-login .formbody input[type=submit]:hover,
.header-dropdown > ul input[type=submit]:hover, button.-tertiary:hover, .button.-tertiary:hover, input[type="submit"].-tertiary:hover, .rotating-boxes-item-content .rotating-boxes-item-link:hover, .pricing-table-plan a:hover, button.-quaternary:hover, .button.-quaternary:hover, input[type="submit"].-quaternary:hover, .highlight-box-link:hover, .feature-box-link:hover, .headline-box-link:hover, .footer-bar input[type=submit]:hover, .footer-bar button:hover, button.-secondary:focus, .button.-secondary:focus, input[type="submit"].-secondary:focus, .header-login .formbody input[type=submit]:focus,
.header-dropdown > ul input[type=submit]:focus,
button.-tertiary:focus,
.button.-tertiary:focus,
input[type="submit"].-tertiary:focus,
.rotating-boxes-item-content .rotating-boxes-item-link:focus,
.pricing-table-plan a:focus,
button.-quaternary:focus,
.button.-quaternary:focus,
input[type="submit"].-quaternary:focus,
.highlight-box-link:focus,
.feature-box-link:focus,
.headline-box-link:focus,
.footer-bar input[type=submit]:focus,
.footer-bar button: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 {
	border-color: #6a1e08 #521706 #3b1104;
	text-decoration: none;
	background-image: linear-gradient(#ed4513, #ad310d);
}
button.-secondary:active, .button.-secondary:active, input[type="submit"].-secondary:active, .header-login .formbody input[type=submit]:active,
.header-dropdown > ul input[type=submit]:active,
button.-tertiary:active,
.button.-tertiary:active,
input[type="submit"].-tertiary:active,
.rotating-boxes-item-content .rotating-boxes-item-link:active,
.pricing-table-plan a:active,
button.-quaternary:active,
.button.-quaternary:active,
input[type="submit"].-quaternary:active,
.highlight-box-link:active,
.feature-box-link:active,
.headline-box-link:active,
.footer-bar input[type=submit]:active,
.footer-bar button:active,
button:active,
.button:active,
input[type="submit"]:active,
input[type="reset"]:active,
input[type="button"]:active {
	background-image: linear-gradient(#d73d10, #c4380f);
}
#colorbox button.-secondary, #colorbox .button.-secondary, #colorbox input[type="submit"].-secondary, #colorbox .header-login .formbody input[type=submit], .header-login .formbody #colorbox input[type=submit],
#colorbox .header-dropdown > ul input[type=submit],
.header-dropdown > ul #colorbox input[type=submit],
#colorbox button.-tertiary,
#colorbox .button.-tertiary,
#colorbox input[type="submit"].-tertiary,
#colorbox .rotating-boxes-item-content .rotating-boxes-item-link,
.rotating-boxes-item-content #colorbox .rotating-boxes-item-link,
#colorbox .pricing-table-plan a,
.pricing-table-plan #colorbox a,
#colorbox button.-quaternary,
#colorbox .button.-quaternary,
#colorbox input[type="submit"].-quaternary,
#colorbox .highlight-box-link,
#colorbox .feature-box-link,
#colorbox .headline-box-link,
#colorbox .footer-bar input[type=submit],
.footer-bar #colorbox input[type=submit],
#colorbox .footer-bar button,
.footer-bar #colorbox button,
#colorbox button,
#colorbox .button,
#colorbox input[type="submit"],
#colorbox input[type="reset"],
#colorbox input[type="button"] {
	/* Fix colorbox close button */
	box-shadow: none;
}

button.-quaternary:hover,
button.-quaternary:focus,
.button.-quaternary:hover,
.button.-quaternary:focus,
input[type="submit"].-quaternary:hover,
input[type="submit"].-quaternary:focus {
	border-color: currentColor;
}
button.-single,
.button.-single,
input[type="submit"].-single {
	margin: 0.75em 0;
}
button.-small,
.button.-small,
input[type="submit"].-small {
	padding: 0.41667em 0.83333em;
	font-size: 0.75em;
}

button.-secondary, .button.-secondary, input[type="submit"].-secondary, .header-login .formbody input[type=submit],
.header-dropdown > ul input[type=submit],
.pricing-table-plan.-highlighted a,
.feature-box-link.-secondary,
.headline-box-link.-secondary {
	border-color: #4a4949 #3d3d3d #313030;
	color: #ffffff;
	text-shadow: 0 -1px 0 #3d3d3d;
	background: #575656;
	background: linear-gradient(#646363, #4f4e4e);
	box-shadow: inset 0 1px #898888;
}
button.-secondary:hover, .button.-secondary:hover, input[type="submit"].-secondary:hover, .header-login .formbody input[type=submit]:hover,
.header-dropdown > ul input[type=submit]:hover, .pricing-table-plan.-highlighted a:hover, .feature-box-link.-secondary:hover, .headline-box-link.-secondary:hover, button.-secondary:focus, .button.-secondary:focus, input[type="submit"].-secondary:focus, .header-login .formbody input[type=submit]:focus,
.header-dropdown > ul input[type=submit]:focus,
.pricing-table-plan.-highlighted a:focus,
.feature-box-link.-secondary:focus,
.headline-box-link.-secondary:focus {
	border-color: #242323 #171717 #0a0a0a;
	background: linear-gradient(#6c6a6a, #484747);
}
button.-secondary:active, .button.-secondary:active, input[type="submit"].-secondary:active, .header-login .formbody input[type=submit]:active,
.header-dropdown > ul input[type=submit]:active,
.pricing-table-plan.-highlighted a:active,
.feature-box-link.-secondary:active,
.headline-box-link.-secondary:active {
	background: linear-gradient(#5f5e5e, #545353);
}

button.-tertiary,
.button.-tertiary,
input[type="submit"].-tertiary,
.rotating-boxes-item-content .rotating-boxes-item-link,
.pricing-table-plan a,
.feature-box-link.-tertiary,
.headline-box-link.-tertiary {
	border-color: #bfbfbf #b2b2b2 #a5a5a5;
	color: #575656;
	text-shadow: 0 -1px 0 #cccccc;
	background: #e5e5e5;
	background: linear-gradient(#f2f2f2, #dddddd);
	box-shadow: none;
}
button.-tertiary:hover,
.button.-tertiary:hover,
input[type="submit"].-tertiary:hover,
.rotating-boxes-item-content .rotating-boxes-item-link:hover,
.pricing-table-plan a:hover,
.feature-box-link.-tertiary:hover,
.headline-box-link.-tertiary:hover,
button.-tertiary:focus,
.button.-tertiary:focus,
input[type="submit"].-tertiary:focus,
.rotating-boxes-item-content .rotating-boxes-item-link:focus,
.pricing-table-plan a:focus,
.feature-box-link.-tertiary:focus,
.headline-box-link.-tertiary:focus {
	border-color: #b2b2b2 #a5a5a5 #999999;
	background: linear-gradient(#f9f9f9, #d6d6d6);
}
button.-tertiary:active,
.button.-tertiary:active,
input[type="submit"].-tertiary:active,
.rotating-boxes-item-content .rotating-boxes-item-link:active,
.pricing-table-plan a:active,
.feature-box-link.-tertiary:active,
.headline-box-link.-tertiary:active {
	background: linear-gradient(#ededed, #e2e2e2);
}

button.-quaternary,
.button.-quaternary,
input[type="submit"].-quaternary,
.feature-box-link.-quaternary,
.headline-box-link.-quaternary {
	border: 2px solid #575656;
	border-color: currentColor;
	border-radius: 6px;
	color: inherit;
	text-shadow: none;
	background: none;
	box-shadow: none;
}
button.-quaternary:after,
.button.-quaternary:after,
input[type="submit"].-quaternary:after,
.feature-box-link.-quaternary:after,
.headline-box-link.-quaternary:after {
	content: "";
	position: absolute;
	top: 100%;
	right: 0;
	bottom: 0;
	left: 0;
	background: currentColor;
	opacity: 0.15;
	transition: top 0.4s ease-in;
}
button.-quaternary:hover,
.button.-quaternary:hover,
input[type="submit"].-quaternary:hover,
.feature-box-link.-quaternary:hover,
.headline-box-link.-quaternary:hover,
button.-quaternary:focus,
.button.-quaternary:focus,
input[type="submit"].-quaternary:focus,
.feature-box-link.-quaternary:focus,
.headline-box-link.-quaternary:focus {
	background: none;
}
button.-quaternary:hover:after,
.button.-quaternary:hover:after,
input[type="submit"].-quaternary:hover:after,
.feature-box-link.-quaternary:hover:after,
.headline-box-link.-quaternary:hover:after,
button.-quaternary:focus:after,
.button.-quaternary:focus:after,
input[type="submit"].-quaternary:focus:after,
.feature-box-link.-quaternary:focus:after,
.headline-box-link.-quaternary:focus:after {
	top: 0;
	transition: top 0.2s ease-out;
}

/* ===========================================
 * Wrapper Elements
 * ======================================== */
.header-bar-inner,
.header-navigation-inner,
.content-wrapper {
	max-width: 1600px;
	margin-right: auto;
	margin-left: auto;
}

.centered-wrapper-inner,
.info-map-boxes {
	max-width: 1481.4814814815px;
	margin-right: auto;
	margin-left: auto;
}
@media screen and (max-width: 1600px) {
	.centered-wrapper-inner,
	.info-map-boxes {
		max-width: none;
		margin-right: 3.7037%;
		margin-right: var(--page-padding-right);
		margin-left: 3.7037%;
		margin-left: var(--page-padding-left);
	}
}
@media screen and (max-width: 1200px) {
	.centered-wrapper-inner,
	.info-map-boxes {
		margin-right: 5.55556%;
		margin-right: var(--page-padding-right);
		margin-left: 5.55556%;
		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;
}
.tao-boxed .page {
	max-width: 1600px;
	border: solid #dddddd;
	border-width: 0 1px;
	box-shadow: 0 0 5px rgba(0, 0, 0, 0.2);
}
@media screen and (max-width: 1600px) {
	.page {
	}
	.tao-boxed .page {
		border: 0;
		box-shadow: none;
	}
}
.tao-not-boxed .page {
	max-width: none;
	border: 0;
	box-shadow: none;
}

/* ===========================================
 * Layout in order of appearance in HTML
 * ======================================== */
.page-header {
	position: relative;
	z-index: 20;
}
.page-header.is-fixed {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	transform: translateZ(0);
}

.header-bar {
	zoom: 1;
	border-bottom: 1px solid #dddddd;
	font-size: 0.8125em;
	background: #f3f2f0;
}
.header-bar:before {
	content: "";
	display: table;
}
.header-bar:after {
	content: "";
	display: table;
	clear: both;
}
@media screen and (max-width: 900px) {
	.header-bar {
		display: none;
	}
}
.tao-boxed .header-bar {
	max-width: 1600px;
	margin-right: auto;
	margin-left: auto;
	border-right: 1px solid #dddddd;
	border-left: 1px solid #dddddd;
}
@media screen and (max-width: 1600px) {
	.header-bar {
	}
	.tao-boxed .header-bar {
		border-right: 0;
		border-left: 0;
	}
}
.tao-not-boxed .header-bar {
	max-width: none;
	border-right: 0;
	border-left: 0;
}

.header-bar-inner {
	color: #575656;
}
@media screen and (max-width: 1200px) {
	.header-bar-inner {
		padding-right: 5.55556%;
		padding-right: var(--page-padding-right);
		padding-left: 5.55556%;
		padding-left: var(--page-padding-left);
	}
}

.header-links {
	float: left;
	margin: 0 0 0 3.7037%;
	margin-left: var(--page-padding-left);
	padding: 0.61538em 0;
}
@media screen and (max-width: 1200px) {
	.header-links {
		float: none;
		margin-left: 0;
	}
}
.header-links.-right {
	float: right;
	margin: 0 3.7037% 0 0;
	margin-right: var(--page-padding-right);
}
@media screen and (max-width: 1200px) {
	.header-links.-right {
		float: none;
		margin-right: 0;
	}
}
.header-links.-right a {
	margin-right: 0;
	margin-left: 1em;
}
.header-links li {
	display: inline;
}
.header-links a {
	display: inline-block;
	color: inherit;
	margin-right: 1em;
}
.header-links .icon-links-label {
	color: inherit;
}
.header-links.-secondary {
	padding-top: 0;
	padding-bottom: 0;
}
@media screen and (max-width: 1200px) {
	.header-links.-secondary > li:first-child > a {
		margin-left: -0.625em;
	}
}
.header-links.-secondary a {
	float: left;
	position: relative;
	width: 2.76923em;
	height: 2.76923em;
	overflow: hidden;
	margin: 0;
	line-height: 0;
	/* Fixes Chrome bug */
	letter-spacing: -1em;
	color: #575656;
	text-indent: -99em;
	text-decoration: none;
}
.header-links.-secondary a:before,
.header-links.-secondary a:after {
	font: 1.15385em/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;
	position: absolute;
	top: 0;
	left: 0;
	display: block;
	box-sizing: border-box;
	width: 100%;
	height: 100%;
	padding-top: 0.06667em;
	line-height: 2.40067;
	letter-spacing: 0;
	text-align: center;
	background: #f3f2f0;
	transition: top 0.2s ease-out;
}
.header-links.-secondary a:after {
	top: 100%;
	color: #ffffff;
	background: transparent;
}
.header-links.-secondary a:hover:before,
.header-links.-secondary a:focus:before {
	top: -100%;
}
.header-links.-secondary a:hover:after,
.header-links.-secondary a:focus:after {
	top: 0;
}

.header-login,
.header-dropdown {
	position: relative;
	float: right;
	z-index: 4;
	margin: 0.30769em 0.76923em -0.15385em 0;
}
@media screen and (max-width: 1200px) {
	.header-login,
	.header-dropdown {
		margin-right: -0.61538em;
		margin-left: 1em;
	}
}
.header-login > h1, .header-login > h2, .header-login > h3, .header-login > h4, .header-login > h5, .header-login > h6,
.header-dropdown > h1,
.header-dropdown > h2,
.header-dropdown > h3,
.header-dropdown > h4,
.header-dropdown > h5,
.header-dropdown > h6 {
	position: relative;
	z-index: 1;
	margin: 0;
	padding: 0.38462em 0.76923em 0.61538em;
	border: 1px solid transparent;
	border-bottom: 0;
	border-radius: 0px 0px 0 0;
	outline: none;
	font-weight: normal;
	font-size: inherit;
	line-height: 1.5;
	color: inherit;
	cursor: pointer;
}
.header-login > h1:hover, .header-login > h1:focus, .header-login > h2:hover, .header-login > h2:focus, .header-login > h3:hover, .header-login > h3:focus, .header-login > h4:hover, .header-login > h4:focus, .header-login > h5:hover, .header-login > h5:focus, .header-login > h6:hover, .header-login > h6:focus,
.header-dropdown > h1:hover,
.header-dropdown > h1:focus,
.header-dropdown > h2:hover,
.header-dropdown > h2:focus,
.header-dropdown > h3:hover,
.header-dropdown > h3:focus,
.header-dropdown > h4:hover,
.header-dropdown > h4:focus,
.header-dropdown > h5:hover,
.header-dropdown > h5:focus,
.header-dropdown > h6:hover,
.header-dropdown > h6:focus {
	text-decoration: underline;
}
.header-login > h1:hover:after, .header-login > h1:focus:after, .header-login > h2:hover:after, .header-login > h2:focus:after, .header-login > h3:hover:after, .header-login > h3:focus:after, .header-login > h4:hover:after, .header-login > h4:focus:after, .header-login > h5:hover:after, .header-login > h5:focus:after, .header-login > h6:hover:after, .header-login > h6:focus:after,
.header-dropdown > h1:hover:after,
.header-dropdown > h1:focus:after,
.header-dropdown > h2:hover:after,
.header-dropdown > h2:focus:after,
.header-dropdown > h3:hover:after,
.header-dropdown > h3:focus:after,
.header-dropdown > h4:hover:after,
.header-dropdown > h4:focus:after,
.header-dropdown > h5:hover:after,
.header-dropdown > h5:focus:after,
.header-dropdown > h6:hover:after,
.header-dropdown > h6:focus:after {
	text-decoration: none !important;
}
.header-login > h1:after, .header-login > h2:after, .header-login > h3:after, .header-login > h4:after, .header-login > h5:after, .header-login > h6:after,
.header-dropdown > h1:after,
.header-dropdown > h2:after,
.header-dropdown > h3:after,
.header-dropdown > h4:after,
.header-dropdown > h5:after,
.header-dropdown > h6:after {
	font: 0.69231em/1 "RockSolid Icons";
	content: "\e015";
	-webkit-font-smoothing: antialiased;
	font-smoothing: antialiased;
	text-rendering: geometricPrecision;
	text-indent: 0;
	display: inline-block;
	position: relative;
	top: -0.11111em;
	margin-left: 0.44444em;
}

.header-dropdown:hover {
	color: #575656;
}

.header-login .formbody,
.header-dropdown > ul {
	position: absolute;
	top: 100%;
	right: 0;
	display: none;
	margin-top: -1px;
	padding: 1em 1.53846em 1.38462em;
	border: 1px solid #dddddd;
	border-radius: 0px 0 0px 0px;
	color: #575656;
	background: #ffffff;
	box-shadow: 0 0 5px rgba(0, 0, 0, 0.15);
}
.header-login .formbody .error,
.header-dropdown > ul .error {
	margin-top: 0;
	margin-bottom: 1em;
	min-width: 21.53846em;
}
.header-login .formbody .login_info,
.header-dropdown > ul .login_info {
	margin-top: 0;
	white-space: nowrap;
}
.header-login .formbody label,
.header-dropdown > ul label {
	display: block;
	margin: 0 0 0.3em;
	font-size: 0.76923em;
	text-transform: uppercase;
}
.header-login .formbody input,
.header-dropdown > ul input {
	width: 100%;
	margin: 0 0 1.07692em;
	padding: 0.46154em 0.92308em;
	border-radius: 0;
	font-size: 1em;
}
.header-login .formbody input[type=submit],
.header-dropdown > ul input[type=submit] {
	margin: 0;
}
.header-login .formbody .checkbox_container,
.header-dropdown > ul .checkbox_container {
	border: 0;
	margin: 0;
	padding: 0;
}
.header-login .formbody .checkbox_container input,
.header-dropdown > ul .checkbox_container input {
	margin-bottom: 0;
}
.header-login .formbody .checkbox_container label,
.header-dropdown > ul .checkbox_container label {
	display: inline;
}

.header-login .formbody {
	min-width: 16.92308em;
}

.header-dropdown > ul {
	min-width: 150%;
	padding: 0.76923em 0;
	list-style: none;
}
.header-dropdown > ul li:before {
	content: none;
}
.header-dropdown > ul a,
.header-dropdown > ul strong,
.header-dropdown > ul span.trail,
.header-dropdown > ul span.active,
.header-dropdown > ul span.forward {
	display: block;
	padding: 0.30769em 1.53846em;
	color: inherit;
	text-decoration: none;
}
.header-dropdown > ul a:hover,
.header-dropdown > ul a:focus {
	text-decoration: underline;
}
.header-dropdown > ul span.trail,
.header-dropdown > ul span.active,
.header-dropdown > ul span.forward {
	font-weight: bold;
}

.header-login.is-active > h1, .header-login.is-active > h2, .header-login.is-active > h3, .header-login.is-active > h4, .header-login.is-active > h5, .header-login.is-active > h6,
.header-dropdown:hover > h1,
.header-dropdown:hover > h2,
.header-dropdown:hover > h3,
.header-dropdown:hover > h4,
.header-dropdown:hover > h5,
.header-dropdown:hover > h6,
.header-dropdown:focus > h1,
.header-dropdown:focus > h2,
.header-dropdown:focus > h3,
.header-dropdown:focus > h4,
.header-dropdown:focus > h5,
.header-dropdown:focus > h6 {
	border-color: #dddddd;
	color: #575656;
	background-color: #ffffff;
}

.header-login.is-active > h1:after,
.header-login.is-active > h2:after,
.header-login.is-active > h3:after,
.header-login.is-active > h4:after,
.header-login.is-active > h5:after,
.header-login.is-active > h6:after {
	content: "\d7";
}

.header-login.is-active .formbody,
.header-dropdown:hover > ul,
.header-dropdown:focus > ul {
	display: block;
}

.header-navigation {
	zoom: 1;
	position: relative;
	border-bottom: 1px solid #dddddd;
	background: #ffffff;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
}
.header-navigation:before {
	content: "";
	display: table;
}
.header-navigation:after {
	content: "";
	display: table;
	clear: both;
}
.tao-boxed .header-navigation {
	max-width: 1600px;
	margin-right: auto;
	margin-left: auto;
	border-right: 1px solid #dddddd;
	border-left: 1px solid #dddddd;
}
@media screen and (max-width: 1600px) {
	.header-navigation {
	}
	.tao-boxed .header-navigation {
		border-right: 0;
		border-left: 0;
	}
}
.tao-not-boxed .header-navigation {
	max-width: none;
	border-right: 0;
	border-left: 0;
}

.header-navigation-inner {
	position: relative;
	height: 5.25em;
	min-height: 3.125em;
	color: #575656;
}
@media screen and (max-width: 1200px) {
	.header-navigation-inner {
		height: auto;
		min-height: 0;
	}
}

.logo {
	position: absolute;
	top: 17.5%;
	bottom: 17.5%;
	left: 3.7037%;
	left: calc(3.7037% + var(--safe-area-left));
	margin: 0;
	font-size: inherit;
}
@media screen and (max-width: 1200px) {
	.logo {
		position: static;
		margin-left: 5.55556%;
		margin-left: var(--page-padding-left);
		padding-top: 1.5em;
		padding-bottom: 0.75em;
	}
}
@media screen and (max-width: 900px) {
	.logo {
		text-align: center;
		margin-left: 0;
		padding-top: 0.75em;
	}
}
.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: auto;
		max-height: 4.0625em;
	}
}

.main-navigation-wrapper {
	position: relative;
	clear: both;
	border: 1px solid #dddddd;
	background: #ffffff;
	background: linear-gradient(#ffffff, #fafafa);
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), inset 0 0 0 1px rgba(255, 255, 255, 0.5);
}

.main-navigation {
	float: right;
	height: 100%;
	margin-right: 5.55556%;
	margin-right: calc(5.55556% + var(--safe-area-right));
	padding-right: 2.75em;
}
@media screen and (max-width: 1200px) {
	.main-navigation {
		position: relative;
		float: none;
		height: 3.125em;
		margin-right: 0;
		padding-right: 1.5em;
		padding-right: calc(1.5em + var(--safe-area-right));
		padding-left: 1.5em;
		padding-left: calc(1.5em + var(--safe-area-left));
	}
}
@media screen and (max-width: 900px) {
	.main-navigation {
		display: none;
	}
}
.main-navigation a,
.main-navigation strong,
.main-navigation span.active,
.main-navigation span.trail,
.main-navigation span.forward {
	font-weight: inherit;
}
.main-navigation a:before,
.main-navigation strong:before,
.main-navigation span.active:before,
.main-navigation span.trail:before,
.main-navigation span.forward:before {
	content: none;
	display: none;
}
.main-navigation ul {
	display: inline;
	margin: 0;
	padding: 0;
}
.main-navigation > ul > li {
	position: relative;
	float: left;
	height: 100%;
}
.main-navigation > ul > li.-mega {
	position: static;
}
.main-navigation > ul > li:before {
	position: absolute;
	top: 50%;
	left: 0.5em;
	margin-top: -0.33333em;
	font-size: 0.75em;
}
.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 {
	position: relative;
	float: left;
	height: 100%;
	padding: 0 1.429em;
	font-size: 0.875em;
	color: #575656;
}
.main-navigation > ul > li > a:before,
.main-navigation > ul > li > strong:before,
.main-navigation > ul > li > span.active:before,
.main-navigation > ul > li > span.trail:before,
.main-navigation > ul > li > span.forward:before {
	content: "";
	display: block;
	height: 50%;
	margin-bottom: -0.71429em;
}
.main-navigation > ul > li > a:after,
.main-navigation > ul > li > strong:after,
.main-navigation > ul > li > span.active:after,
.main-navigation > ul > li > span.trail:after,
.main-navigation > ul > li > span.forward:after {
	content: "";
	position: absolute;
	top: -1px;
	right: 50%;
	left: 50%;
	border-top: 2px solid #575656;
	transition: right 0.4s ease-out, left 0.4s ease-out;
}
@media screen and (max-width: 1200px) {
	.main-navigation > ul > li > a:after,
	.main-navigation > ul > li > strong:after,
	.main-navigation > ul > li > span.active:after,
	.main-navigation > ul > li > span.trail:after,
	.main-navigation > ul > li > span.forward:after {
		top: auto;
		bottom: -1px;
	}
}
.main-navigation > ul > li > a:hover,
.main-navigation > ul > li > a:focus {
	color: #c9390f;
	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: #d03d10;
}
.main-navigation > ul > li > ul {
	position: absolute;
	top: 100%;
	left: 0.5em;
	display: block;
	overflow: hidden;
	max-height: 0;
	min-width: 11.25em;
	padding: 0;
	border: solid #dddddd;
	border-width: 1px 1px 2px;
	border-top-color: #dddddd;
	border-radius: 0 0 0px 0px;
	background: #ffffff;
	opacity: 0;
	box-shadow: inset 0 6px 2px -5px rgba(0, 0, 0, 0.1);
	transition: max-height 0s 0.3s, padding 0s 0.3s, opacity 0.3s;
	pointer-events: none;
}
.main-navigation > ul > li > ul li {
	position: relative;
	display: block;
	padding: 0.125em 0;
	border-bottom: 1px solid #dddddd;
	white-space: nowrap;
}
.main-navigation > ul > li > ul li li {
	margin: 0;
	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.64286em;
	left: 0.28571em;
	z-index: 1;
	font-size: 0.875em;
}
.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: 1.71429em;
}
.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.21429em 0.42857em;
	margin: 0;
	font-size: 0.875em;
}
.main-navigation > ul > li > ul a {
	border-radius: 0px;
	color: #575656;
	transition: background-color 0.6s ease-in, color 0.6s ease-in;
}
.main-navigation > ul > li > ul a:hover {
	text-decoration: none;
	color: #c9390f;
	background-color: #dddddd;
	transition-duration: 0.05s;
}
.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: #c9390f;
}
.main-navigation > ul > li > ul ul {
	display: block;
	padding-left: 0.625em;
}
.main-navigation > ul > li:hover:after {
	content: "";
	position: absolute;
	top: 50%;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 1;
	margin-top: 0.625em;
}
.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:hover > a:after,
.main-navigation > ul > li:hover > strong:after,
.main-navigation > ul > li:hover > span.active:after,
.main-navigation > ul > li:hover > span.trail:after,
.main-navigation > ul > li:hover > span.forward:after {
	right: 1.42857em;
	left: 1.42857em;
	transition-duration: 0.1s, 0.1s;
}
.main-navigation > ul > li:hover > ul {
	z-index: 1;
	max-height: 9999px;
	padding: 0.875em 1em;
	opacity: 1;
	transition: opacity 0.2s;
	pointer-events: auto;
}
.modernizr-no-pointerevents .main-navigation > ul > li > ul {
	border-width: 0;
}
.modernizr-no-pointerevents .main-navigation > ul > li:hover > ul {
	border-width: 1px 1px 2px;
}
.main-navigation > ul > li.last > ul {
	left: auto;
	right: -0.125em;
}

.mega-dropdown {
	position: absolute;
	top: 100%;
	left: 3.7037%;
	left: var(--page-padding-left);
	display: block;
	width: 92.59259%;
	width: var(--page-inner-width);
	max-height: 0;
	padding: 0;
	overflow: hidden;
	border: solid #dddddd;
	border-width: 1px 1px 2px;
	border-top-color: #dddddd;
	border-radius: 0 0 0px 0px;
	font-size: 0.875em;
	background: #ffffff;
	opacity: 0;
	box-shadow: inset 0 6px 2px -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;
		left: 0;
		width: 100%;
	}
}
li:hover > .mega-dropdown {
	z-index: 1;
	max-height: 9999px;
	overflow: visible;
	padding: 1.57143em 3.7037%;
	opacity: 1;
	transition: opacity 0.2s;
	pointer-events: auto;
}
@media screen and (max-width: 1200px) {
	li:hover > .mega-dropdown {
		padding-right: 5.55556%;
		padding-right: var(--page-padding-right);
		padding-left: 5.55556%;
		padding-left: var(--page-padding-left);
	}
}
.modernizr-no-pointerevents .mega-dropdown {
	border-width: 0;
}
.modernizr-no-pointerevents li:hover > .mega-dropdown {
	border-width: 1px 1px 2px;
}

.mega-dropdown-column h1,
.mega-dropdown-column h2,
.mega-dropdown-column h3 {
	margin: 0 0 0.71429em;
	font-size: inherit;
	font-weight: bold;
	color: #c9390f;
}
.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: #575656;
}
.mega-dropdown-column ul a:hover {
	color: #c9390f;
}
.mega-dropdown-column li li {
	margin-left: 1.42857em;
}

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

.main-navigation-search {
	position: absolute;
	top: 50%;
	right: 3.7037%;
	right: var(--page-padding-right);
	z-index: 3;
	height: 2.85714em;
	min-width: 3.42857em;
	margin-top: -1.35714em;
	border-radius: 0px;
	overflow: hidden;
	font-size: 0.875em;
	background: #ffffff;
}
@media screen and (max-width: 1200px) {
	.main-navigation-search {
		right: 5.55556%;
		right: var(--page-padding-right);
		top: auto;
		bottom: 4.6875em;
		margin-top: 0;
		z-index: 0;
	}
}
@media screen and (max-width: 900px) {
	.main-navigation-search {
		display: none;
	}
}
.main-navigation-search:after {
	content: "";
	position: absolute;
	top: 50%;
	left: 0;
	height: 1.07143em;
	margin: -0.5em 0 0;
	border-left: 1px solid #dddddd;
}
.main-navigation-search input {
	/* Fixes border-radius on iOS 7 */
	-webkit-appearance: none;
	float: right;
	width: 11.78571em;
	margin: 0.57143em 0.85714em 0 -10.35714em;
	padding: 0.14286em 0 0.21429em;
	border: 0;
	border-bottom: 1px solid #ffffff;
	border-radius: 0;
	font-size: inherit;
	background: none;
	box-shadow: none;
	transition: margin-left 0.2s ease-out;
}
.main-navigation-search:hover,
.main-navigation-search.focus {
	margin-right: -1px;
	border: 1px solid #dddddd;
}
.main-navigation-search:hover input,
.main-navigation-search.focus input {
	margin-left: 0.85714em;
	border-color: #dddddd;
	box-shadow: none;
}
.main-navigation-search:hover:after,
.main-navigation-search.focus:after {
	content: none;
}
@media screen and (max-width: 1200px) {
	.main-navigation-search {
		margin-right: -1px;
		border: 1px solid #dddddd;
	}
	.main-navigation-search input {
		margin-left: 0.85714em;
		border-color: #dddddd;
		box-shadow: none;
	}
	.main-navigation-search:after {
		content: none;
	}
}
.main-navigation-search button {
	position: absolute;
	top: 0;
	right: 0;
	width: 3.57143em;
	height: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	color: #575656;
	text-align: left;
	text-indent: -99em;
	text-shadow: none;
	line-height: 0;
	background: none;
	box-shadow: none;
}
.main-navigation-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-search button:hover,
.main-navigation-search button:focus {
	color: #c9390f;
}

.main-navigation-mobile-open {
	position: absolute;
	top: 41px;
	top: calc(41px + var(--safe-area-top));
	left: 6.66667%;
	left: calc(6.66667% + var(--safe-area-left));
	width: 44px;
	height: 39px;
	margin: -20px 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: #575656;
	box-shadow: 0 7px #575656, 0 14px #575656;
}
@media screen and (max-width: 900px) {
	.main-navigation-mobile-open {
		display: block;
	}
}

.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 #dddddd;
	color: #ffffff;
	background: #f3f2f0;
}
@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: #f3f2f0;
	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 #dddddd;
	color: inherit;
	background-color: #f3f2f0;
	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: #e8e6e2;
	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 #f3f2f0;
}
.main-navigation-mobile li li {
	color: #bfbfbf;
}
.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 #fcfcfc;
	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 input,
.main-navigation-mobile-search input:hover,
.main-navigation-mobile-search input:focus {
	width: 100%;
	border: 1px solid #dddddd;
	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;
	border-radius: 0px;
	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: #ffffff !important;
}
.main-navigation-mobile-icons.main-navigation-mobile-icons a:hover:before {
	color: inherit !important;
}

.tagline {
	zoom: 1;
	border-bottom: 1px solid #dddddd;
	background: #ffffff;
}
.tagline:before {
	content: "";
	display: table;
}
.tagline:after {
	content: "";
	display: table;
	clear: both;
}
.tagline .page-title {
	float: left;
	font-size: 20px;
	font-weight: normal;
	margin-top: 1.15789em;
}
@media screen and (max-width: 900px) {
	.tagline .page-title {
		float: none;
		text-align: center;
	}
}
.tagline .mod_breadcrumb {
	float: right;
	margin: 0;
	padding: 2.15385em 0 1.84615em;
}
@media screen and (max-width: 900px) {
	.tagline .mod_breadcrumb {
		float: none;
		margin: 1.69231em 0;
		padding: 0;
		text-align: center;
	}
}
.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;
}
.tagline-no-border .tagline {
	border: 0;
}

.tagline-inner {
	position: relative;
	/* clearfix */
	overflow: hidden;
	color: #575656;
	transform: translateZ(0);
}

.content-wrapper {
	zoom: 1;
}
.content-wrapper:before {
	content: "";
	display: table;
}
.content-wrapper:after {
	content: "";
	display: table;
	clear: both;
}
@media screen and (max-width: 1600px) {
	.content-wrapper {
		padding-right: var(--safe-area-right);
		padding-left: var(--safe-area-left);
	}
}
.tao-fullwidth .content-wrapper {
	max-width: none;
	padding-right: 0;
	padding-left: 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.-border-top {
	border-top: 1px solid #dddddd;
}
.centered-wrapper.-border-bottom {
	border-bottom: 1px solid #dddddd;
}
.centered-wrapper.-color-inverted {
	color: #ffffff;
}
.centered-wrapper.-highlight-color {
	background-color: #c9390f;
}
.centered-wrapper.-background-color-1 {
	background-color: #353d47;
}
.centered-wrapper.-background-color-2 {
	background-color: #f3f2f0;
}
.centered-wrapper.-small {
	min-height: 300px;
}
@media screen and (max-width: 900px) {
	.centered-wrapper.-small {
		min-height: 200px;
	}
}
.centered-wrapper.-medium {
	min-height: 600px;
}
@media screen and (max-width: 900px) {
	.centered-wrapper.-medium {
		min-height: 400px;
	}
}
.centered-wrapper.-large {
	min-height: 900px;
}
@media screen and (max-width: 900px) {
	.centered-wrapper.-large {
		min-height: 600px;
	}
}
.centered-wrapper.-background-mousemove,
.centered-wrapper.-background-mousemove-inverted,
.centered-wrapper.-background-parallax {
	overflow: hidden;
}

.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-inner {
	position: relative;
}
.centered-wrapper-inner.-fullwidth {
	max-width: none;
	margin: 0;
}

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

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

.main-content {
	float: right;
	width: 59.25926%;
	margin: 1.5em 7.40741% 3.75em 0;
}
@media screen and (max-width: 1200px) {
	.main-content {
		float: none;
		width: auto;
		margin-right: 5.55556%;
		margin-left: 5.55556%;
	}
}
.tao-no-sidebar .main-content {
	float: none;
	width: auto;
	margin-left: 3.57143%;
	margin-right: 3.57143%;
}
@media screen and (max-width: 1200px) {
	.tao-no-sidebar .main-content {
		margin-right: 5.55556%;
		margin-left: 5.55556%;
	}
}
.tao-sidebar-right .main-content {
	float: left;
	margin-right: 0;
	margin-left: 7.40741%;
}
@media screen and (max-width: 1200px) {
	.tao-sidebar-right .main-content {
		float: none;
		margin-right: 5.55556%;
		margin-left: 5.55556%;
	}
}
.tao-fullwidth .main-content {
	margin: 0;
}
.tao-3-columns .main-content {
	width: 48.14815%;
	margin-right: 25.92593%;
}
@media screen and (max-width: 1200px) {
	.tao-3-columns .main-content {
		width: auto;
		margin-right: 5.55556%;
	}
}
.main-content p,
.main-content ul,
.main-content ol,
.main-content table,
.main-content form,
.main-content fieldset {
	margin-top: 0.75em;
	margin-bottom: 1.5em;
}
.main-content p > span[style] {
	padding: 0 0.1875em;
}
.main-content h1,
.main-content h2,
.main-content h3,
.main-content h4,
.main-content h5,
.main-content h6 {
	margin-top: 0.75em;
	margin-bottom: 0.3em;
	font-weight: normal;
}
.main-content h1 {
	font-size: 2.5em;
	font-weight: bold;
	color: #575656;
}
.main-content .-color-inverted h1 {
	color: #ffffff;
}
.main-content h2 {
	font-size: 2em;
	color: #575656;
}
.main-content .-color-inverted h2 {
	color: #bbbbbb;
}
.main-content h3 {
	font-size: 1.5em;
}
.main-content h4 {
	font-size: 1.5em;
}
.main-content h5 {
	font-size: 1.5em;
	line-height: 1.50056;
}
.main-content h6 {
	font-size: 1.5em;
	line-height: 1.50063;
	letter-spacing: 0.0625em;
	color: #575656;
	text-transform: uppercase;
}
.-color-inverted .main-content h6 {
	color: #bbbbbb;
}
.main-content ul,
.main-content ol {
	padding-left: 1.25em;
}
.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-"] {
	padding-left: 0.25em;
	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 {
	left: -1.5em;
	width: 0;
	margin-right: 0;
	color: #c9390f;
}
.main-content ul {
	list-style: disc;
}
.main-content ul ul {
	margin-top: 0;
}
.main-content ol {
	padding-left: 1.25em;
	list-style: decimal;
}
.main-content ol ol,
.main-content ol ul {
	margin-top: 0;
}
.main-content ol ol {
	padding-left: 1.5em;
	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.3125em;
	line-height: 1.33381;
	color: #575656;
}
.-color-inverted .main-content blockquote {
	color: #bbbbbb;
}
@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 {
	font-size: 0.7619em;
	line-height: 1.5625;
	font-style: normal;
}
.main-content blockquote:before {
	content: "\201c";
	position: absolute;
	top: 0;
	left: -0.47619em;
	margin: 0.47619em 0 0 -0.08333em;
	font-size: 4em;
	font-weight: bold;
	line-height: 0;
	opacity: 0.5;
}
@media screen and (max-width: 900px) {
	.main-content blockquote:before {
		left: -12.5%;
		margin-left: -0.11905em;
	}
}
.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 p b.error,
form p.error {
	margin: 0;
	display: block;
	color: #c9390f;
}

input,
textarea {
	padding: 0.85714em 1.35714em;
	line-height: normal;
	border: 1px solid #dddddd;
	border-bottom-color: #d0d0d0;
	border-radius: 0px;
	font-size: 0.875em;
	color: inherit;
	background: #ffffff;
}
.valid input,
.valid textarea {
	border-color: #b5da44;
}
.invalid input,
input.error,
.invalid textarea,
textarea.error {
	border-color: #c9390f;
}
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: #d0d0d0 #d0d0d0 #c6c6c6;
	box-shadow: 0 0 6px rgba(0, 0, 0, 0.1);
}
input:focus,
textarea:focus {
	border-color: #c9390f;
}
.-color-inverted input,
.-color-inverted textarea {
	background: #353d47;
}

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 #dddddd \9;
	background: none;
	box-shadow: none;
}

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

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

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

.main-content form .widget {
	margin-top: 1.125em;
	margin-bottom: 1.125em;
}
.main-content label {
	display: block;
	margin-bottom: 0.35714em;
	font-size: 0.875em;
	color: #575656;
}
.-color-inverted .main-content label {
	color: #bbbbbb;
}
.main-content label .mandatory {
	margin-left: 0.14286em;
	color: #c9390f;
}
.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%;
	}
}

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

.explanation {
	font-size: 0.875em;
	margin: -0.85714em 0 1.71429em;
	color: #575656;
}
.-color-inverted .explanation {
	color: #bbbbbb;
}

.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: 1em;
}
.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;
	max-width: 100%;
}
.media > figure.float_above,
.content-image > figure.float_above,
.content-gallery figure.float_above,
.image_container.float_above {
	margin-top: 1.5em;
}
.media > figure.float_below,
.content-image > figure.float_below,
.content-gallery figure.float_below,
.image_container.float_below {
	margin-bottom: 1.5em;
}
.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 a:hover img, .media > figure a:focus img,
.content-image > figure a:hover img,
.content-image > figure a:focus img,
.content-gallery figure a:hover img,
.content-gallery figure a:focus img,
.image_container a:hover img,
.image_container a:focus img {
}
.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.875em;
	color: #575656;
}

.no-border.content-gallery figure,
.no-border.media > figure,
.no-border .media > figure,
.no-border.content-image > figure,
.no-border .content-image > figure,
.no-border.image_container,
.no-border .image_container {
	padding: 0;
	border: 0;
	box-shadow: none;
	background: none;
}

.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: 37.5% !important;
	margin: 1.5em 0 1.125em 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;
	}
}
.tao-no-sidebar .media--right > figure, .tao-no-sidebar
.media--left > figure, .tao-no-sidebar
.image_container.float_right, .tao-no-sidebar
.image_container.float_left {
	margin: 0.5em 0 1em 4%;
	width: 24% !important;
}
@media screen and (max-width: 1200px) {
	.tao-no-sidebar .media--right > figure, .tao-no-sidebar
	.media--left > figure, .tao-no-sidebar
	.image_container.float_right, .tao-no-sidebar
	.image_container.float_left {
		margin-left: 6.25%;
		width: 37.5% !important;
	}
}
@media screen and (max-width: 900px) {
	.tao-no-sidebar .media--right > figure, .tao-no-sidebar
	.media--left > figure, .tao-no-sidebar
	.image_container.float_right, .tao-no-sidebar
	.image_container.float_left {
		margin-left: 0;
		width: auto !important;
	}
}
.no-resize .media--right > figure, .tao-no-sidebar .no-resize .media--right > figure, .media--right > figure.no-resize, .tao-no-sidebar .media--right > figure.no-resize, .no-resize
.media--left > figure, .tao-no-sidebar .no-resize
.media--left > figure,
.media--left > figure.no-resize, .tao-no-sidebar
.media--left > figure.no-resize, .no-resize
.image_container.float_right, .tao-no-sidebar .no-resize
.image_container.float_right,
.image_container.float_right.no-resize, .tao-no-sidebar
.image_container.float_right.no-resize, .no-resize
.image_container.float_left, .tao-no-sidebar .no-resize
.image_container.float_left,
.image_container.float_left.no-resize, .tao-no-sidebar
.image_container.float_left.no-resize {
	width: auto !important;
}

.media--left > figure,
.image_container.float_left {
	float: left;
	margin: 0.5em 6.25% 1em 0;
}
@media screen and (max-width: 900px) {
	.media--left > figure,
	.image_container.float_left {
		margin-right: 0;
	}
}
.tao-no-sidebar .media--left > figure, .tao-no-sidebar
.image_container.float_left {
	margin: 0.5em 3.84615% 1em 0;
}
@media screen and (max-width: 1200px) {
	.tao-no-sidebar .media--left > figure, .tao-no-sidebar
	.image_container.float_left {
		margin-right: 6.25%;
	}
}
@media screen and (max-width: 900px) {
	.tao-no-sidebar .media--left > figure, .tao-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.5em 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),
.mejs__audio:not(.mejs__container-fullscreen) {
	margin: 1.25em 0;
}
.mejs__video:not(.mejs__container-fullscreen) video,
.mejs__audio: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;
}

.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.25em 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.5em 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.6875em 0;
	padding: 1.25em 1.875em;
	border: 1px solid #dddddd;
	border-radius: 0px;
}
.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;
	border-radius: 0px 0px 0 0;
	font-size: 0.75em;
	font-weight: bold;
	letter-spacing: 0.08333em;
	color: #ffffff;
	text-transform: uppercase;
	background: #575656;
}
.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: 0;
	border-radius: 0;
	text-shadow: none;
	box-shadow: none;
	background: transparent;
}

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

.ce_accordion {
	color: #575656;
}
.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.25em;
}
.ce_accordion[data-icon] .toggler,
.ce_accordion[class^="icon-"] .toggler,
.ce_accordion[class*=" icon-"] .toggler {
	padding-left: 3.125em;
}
.ce_accordion .toggler {
	position: relative;
	/* collapse borders */
	margin-bottom: -2px;
	padding: 0.6875em 2.5em 0.8125em 1.25em;
	border: 1px solid #dddddd;
	border-radius: 0px;
	outline: none;
	font-weight: bold;
	cursor: pointer;
	background: #ffffff;
}
.ce_accordion .toggler:after {
	font: 0.8125em/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: #c9390f;
	text-decoration: none;
}
.ce_accordion .toggler.ui-accordion-header-active:after {
	content: "\2212";
}
.ce_accordion + .ce_accordion .toggler {
	border-radius: 0 0 0px 0px;
}
.ce_accordion .accordion {
	zoom: 1;
	position: relative;
	/* collapse borders */
	margin-bottom: -2px;
	padding: 0.0625em 1.25em;
	border: 1px solid #dddddd;
	border-top-color: #eeeeee;
	border-radius: 0 0 0px 0px;
	background: #e5e5e5;
}
.ce_accordion .accordion:before {
	content: "";
	display: table;
}
.ce_accordion .accordion:after {
	content: "";
	display: table;
	clear: both;
}

.content-accordion {
	color: #575656;
}
.content-accordion .handorgel__header {
	display: block;
	margin: 0;
	border: 1px solid #dddddd;
	/* collapse borders */
	margin-bottom: -1px;
	outline: none;
	font-size: inherit;
	font-weight: bold;
	text-transform: none;
	color: #575656;
	background: #ffffff;
}
.content-accordion .handorgel__header:first-of-type {
	border-top-left-radius: 0px;
	border-top-right-radius: 0px;
}
.content-accordion .handorgel__header:last-of-type:not(.handorgel__header--open) {
	border-bottom-right-radius: 0px;
	border-bottom-left-radius: 0px;
}
.content-accordion .handorgel__header__button {
	position: relative;
	display: block;
	width: 100%;
	padding: 0.6875em 2.5em 0.8125em 1.25em;
	margin: 0;
	border: none;
	background: #ffffff;
	border-radius: inherit;
	text-shadow: none;
	box-shadow: none;
	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: #c9390f;
}
.content-accordion .handorgel__header__button:after {
	font: 0.8125em/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 #dddddd;
	border-top-color: #eeeeee;
	background: #e5e5e5;
	transition: height 0.5s ease;
}
.content-accordion .handorgel__content:last-of-type {
	border-bottom-right-radius: 0px;
	border-bottom-left-radius: 0px;
}
.content-accordion .handorgel__content--open {
	display: block;
	-webkit-transition: height 0.5s ease;
}
.content-accordion .handorgel__content__inner {
	padding: 0.0625em 1.25em;
}

.icon-boxes {
	zoom: 1;
	margin: 2.75em 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: 1em;
}

.icon-boxes-item {
	position: relative;
	display: block;
	font-size: 0.875em;
	color: #575656;
	text-align: center;
	text-decoration: none;
}
.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:before,
.icon-boxes-item.-color-inverted.-inverted-icon:before,
.-color-inverted .icon-boxes-item:before,
.-color-inverted .icon-boxes-item.-inverted-icon:before {
	border-color: #ffffff;
	color: #ffffff;
	background-color: transparent;
}
.icon-boxes-item.-color-inverted h3,
.-color-inverted .icon-boxes-item h3 {
	color: #ffffff;
}
.icon-boxes-item.-boxed {
	top: 1.78571em;
	/* margin-top can not be used here because it's set by .rs-column */
	margin-bottom: 1.78571em;
	padding: 0 1.42857em 1.42857em;
	border: 1px solid #dddddd;
	border-radius: 0px;
}
.icon-boxes-item.-boxed.-headline-icon {
	top: auto;
	margin-bottom: 0;
	padding-top: 1.42857em;
}
.icon-boxes-item.-boxed:before {
	top: -0.46875em;
	margin-top: -0.46875em;
	margin-bottom: 0.125em;
}
.icon-boxes-item.-background-color {
	padding: 1.42857em;
	border: 1px solid rgba(0, 0, 0, 0.1);
	border-radius: 0px;
}
.icon-boxes-item.-background-color:before {
	background-color: inherit;
}
.icon-boxes-item.-background-color:hover:before,
.icon-boxes-item.-background-color:focus:before {
	background-color: inherit;
}
.icon-boxes-item.-boxed.-background-color {
	padding: 0 1.42857em 1.42857em;
}
.icon-boxes-item:hover,
.icon-boxes-item:focus {
	text-decoration: none;
}
.icon-boxes-item:before {
	width: 1em;
	height: 1em;
	margin: 0 0 0.59375em;
	padding: 0.34375em;
	border: 0.09375em solid #c9390f;
	border-radius: 100%;
	font-size: 2.28571em;
	color: #c9390f;
	text-align: center;
	background: transparent;
	transition-property: opacity, transform, color, background;
	transition-duration: 0.2s, 0.2s, 0.2s, 0.8s;
}
.not-in-view > .icon-boxes-item:before,
.does-repeat.not-in-view > .icon-boxes-item:before,
.does-repeat .not-in-view > .icon-boxes-item:before {
	opacity: 0;
	transform: scale(0);
}
.does-repeat.in-view > .icon-boxes-item:before,
.does-repeat .in-view > .icon-boxes-item:before,
.has-shown > .icon-boxes-item:before {
	opacity: 1;
	transform: scale(1);
}
.icon-boxes-item:nth-of-type(12n+1):before {
	transition-delay: 0.1s, 0.1s, 0s, 0s;
}
.icon-boxes-item:nth-of-type(12n+2):before {
	transition-delay: 0.2s, 0.2s, 0s, 0s;
}
.icon-boxes-item:nth-of-type(12n+3):before {
	transition-delay: 0.3s, 0.3s, 0s, 0s;
}
.icon-boxes-item:nth-of-type(12n+4):before {
	transition-delay: 0.4s, 0.4s, 0s, 0s;
}
.icon-boxes-item:nth-of-type(12n+5):before {
	transition-delay: 0.5s, 0.5s, 0s, 0s;
}
.icon-boxes-item:nth-of-type(12n+6):before {
	transition-delay: 0.6s, 0.6s, 0s, 0s;
}
.icon-boxes-item:nth-of-type(12n+7):before {
	transition-delay: 0.7s, 0.7s, 0s, 0s;
}
.icon-boxes-item:nth-of-type(12n+8):before {
	transition-delay: 0.8s, 0.8s, 0s, 0s;
}
.icon-boxes-item:nth-of-type(12n+9):before {
	transition-delay: 0.9s, 0.9s, 0s, 0s;
}
.icon-boxes-item:nth-of-type(12n+10):before {
	transition-delay: 1s, 1s, 0s, 0s;
}
.icon-boxes-item:nth-of-type(12n+11):before {
	transition-delay: 1.1s, 1.1s, 0s, 0s;
}
.icon-boxes-item:nth-of-type(12n+12):before {
	transition-delay: 1.2s, 1.2s, 0s, 0s;
}
.icon-boxes-item.-inverted-icon:before {
	border-color: #c9390f;
	color: #ffffff;
	background-color: #c9390f;
}
.icon-boxes-item.-large-icon:before {
	font-size: 2.71429em;
	/* IE9 - IE11 */
	font-size: 2.375rem;
}
.icon-boxes-item.-headline-icon {
	text-align: left;
}
.icon-boxes-item.-headline-icon:before {
	float: left;
	top: 0;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: none;
}
.icon-boxes-item.-headline-icon h3 {
	padding: 0.09524em 0 0 2.19048em;
}
.icon-boxes-item:hover:before,
.icon-boxes-item:focus:before {
	color: #ffffff;
	background-color: #c9390f;
}
.icon-boxes-item:hover.-inverted-icon:before,
.icon-boxes-item:focus.-inverted-icon:before {
	color: #c9390f;
	background-color: #ffffff;
}
.icon-boxes-item:hover.-headline-icon:before,
.icon-boxes-item:focus.-headline-icon:before {
	color: #c9390f;
	background: none;
}
.icon-boxes-item h3 {
	margin: 0 0 0.66667em;
	font-family: Source Sans 3, sans-serif;
	font-style: normal;
	font-size: 1.5em;
	color: #575656;
}
.icon-boxes-item p {
	margin: 0.5em 0;
}

.icon-boxes-item-link.-link {
	color: #c9390f;
}
.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;
}

.rotating-boxes {
	zoom: 1;
	margin: 4% 0;
}
.rotating-boxes:before {
	content: "";
	display: table;
}
.rotating-boxes:after {
	content: "";
	display: table;
	clear: both;
}

.rotating-boxes-item {
	position: relative;
	color: #575656;
	text-decoration: none;
	perspective: 750px;
}
.rotating-boxes-item:hover,
.rotating-boxes-item:focus,
.rotating-boxes-item.hover {
	text-decoration: none;
}
.rotating-boxes-item:hover > .rotating-boxes-item-cover,
.rotating-boxes-item:focus > .rotating-boxes-item-cover,
.rotating-boxes-item.hover > .rotating-boxes-item-cover {
	transform: rotateY(180deg);
}
.rotating-boxes-item:hover > .rotating-boxes-item-content,
.rotating-boxes-item:focus > .rotating-boxes-item-content,
.rotating-boxes-item.hover > .rotating-boxes-item-content {
	transform: rotateY(360deg);
}

.rotating-boxes-item-cover,
.rotating-boxes-item-content {
	position: relative;
	border: 1px solid #dddddd;
	border-radius: 0px;
	background: #ffffff;
	box-shadow: 0 0 7px rgba(0, 0, 0, 0.15);
	transition: transform 0.3s;
	transform: rotateY(0deg);
	backface-visibility: hidden;
}

.rotating-boxes-item-cover {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	color: #c9390f;
}
.rotating-boxes-item-cover:before,
.rotating-boxes-item-cover:after {
	position: absolute;
	top: 50%;
	left: 50%;
}
.rotating-boxes-item-cover:before {
	margin: -1em 0 0 -0.5em;
	font-size: 2.625em;
}
.rotating-boxes-item-cover:after {
	content: attr(data-headline);
	left: 0;
	width: 100%;
	margin: 0.35714em 0 0;
	font-size: 1.75em;
	text-align: center;
}

.rotating-boxes-item-content {
	overflow: hidden;
	margin: -1em;
	padding: 1em 3.14286em;
	font-size: 0.875em;
	transform: rotateY(180deg);
}
.rotating-boxes-item-content:before {
	position: absolute;
	top: 0;
	right: 0;
	margin: -0.3em;
	font-size: 14.28571em;
	color: #c9390f;
	opacity: 0.2;
}
.rotating-boxes-item-content h3 {
	position: relative;
	margin: 0.66667em 0;
	font-size: 1.5em;
	color: #c9390f;
}
.-color-inverted .rotating-boxes-item-content h3 {
	color: #c9390f;
}
.rotating-boxes-item-content p {
	position: relative;
	margin: 1em 0;
}
.rotating-boxes-item-content .rotating-boxes-item-link {
	margin-top: 0;
}

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

.teaser-boxes-item,
.team-boxes-item {
	font-size: 0.875em;
	text-decoration: none;
	color: inherit;
	outline: none;
}
.teaser-boxes-item.-align-center,
.-align-center.team-boxes-item {
	text-align: center;
}
.teaser-boxes-item.-align-right,
.-align-right.team-boxes-item {
	text-align: right;
}
.-color-inverted .teaser-boxes-item,
.-color-inverted .team-boxes-item {
	color: #bbbbbb;
}
.-boxed > .teaser-boxes-item,
.-boxed > .team-boxes-item {
	color: #575656;
}
.teaser-boxes-item .image-wrapper,
.team-boxes-item .image-wrapper {
	position: relative;
	display: block;
	overflow: hidden;
	outline: none;
}
.teaser-boxes-item .image-wrapper.-image-circle,
.team-boxes-item .image-wrapper.-image-circle {
	border-radius: 99em;
	overflow: hidden;
	/* Fixes hover in Chrome */
	opacity: 0.99;
}
.teaser-boxes-item .image-wrapper.-image-circle img,
.team-boxes-item .image-wrapper.-image-circle img {
	/* Fixes android bug with border-radius and overflow */
	border-radius: 99em;
}
.teaser-boxes-item .image-wrapper,
.team-boxes-item .image-wrapper,
.teaser-boxes-item .no-image,
.team-boxes-item .no-image {
	margin-bottom: 1.28571em;
}
.-boxed > .teaser-boxes-item .image-wrapper,
.-boxed > .team-boxes-item .image-wrapper,
.-boxed > .teaser-boxes-item .no-image,
.-boxed > .team-boxes-item .no-image {
	margin: -1.42857em -1.42857em 1.28571em;
}
.-boxed > .teaser-boxes-item,
.-boxed > .team-boxes-item {
	overflow: hidden;
	padding: 1.42857em;
	border: 1px solid #dddddd;
	border-radius: 0px;
	outline: none;
	background-color: #ffffff;
}
.teaser-boxes-item img,
.team-boxes-item img {
	display: block;
	width: 100%;
	height: auto;
}
.teaser-boxes-item .no-image,
.team-boxes-item .no-image {
	display: block;
	padding-top: 75%;
	background: #e5e8ee;
}
.teaser-boxes-item h3,
.team-boxes-item h3 {
	margin: 0 0 0.33333em;
	font-size: 1.28571em;
	font-weight: bold;
	transition: color 0.3s ease-out;
}
.-color-inverted .teaser-boxes-item h3,
.-color-inverted .team-boxes-item h3 {
	color: #ffffff;
}
.-color-inverted .-boxed .teaser-boxes-item h3,
.-color-inverted .-boxed .team-boxes-item h3 {
	color: #575656;
}
.teaser-boxes-item h4,
.team-boxes-item h4 {
	margin: 0;
	font-size: 1em;
	font-weight: normal;
}
.teaser-boxes-item p,
.team-boxes-item p,
.teaser-boxes-item ul,
.team-boxes-item ul,
.teaser-boxes-item ol,
.team-boxes-item ol {
	margin: 0.42857em 0;
}
.teaser-boxes-item a,
.team-boxes-item a {
	margin-top: 0.57143em;
}
.-color-inverted .teaser-boxes-item a,
.-color-inverted .team-boxes-item a {
	color: inherit;
}
.teaser-boxes-item .image-wrapper.-has-hover:hover, .team-boxes-item .image-wrapper.-has-hover:hover,
.teaser-boxes-item .image-wrapper.-has-hover:focus,
.team-boxes-item .image-wrapper.-has-hover:focus {
	outline: none;
}
.teaser-boxes-item .image-wrapper.-has-hover:hover:before, .team-boxes-item .image-wrapper.-has-hover:hover:before,
.teaser-boxes-item .image-wrapper.-has-hover:focus:before,
.team-boxes-item .image-wrapper.-has-hover:focus:before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	z-index: 1;
	width: 100%;
	height: 100%;
	background: rgba(255, 255, 255, 0.3);
}
.teaser-boxes-item .image-wrapper.-has-hover:hover img, .team-boxes-item .image-wrapper.-has-hover:hover img,
.teaser-boxes-item .image-wrapper.-has-hover:focus img,
.team-boxes-item .image-wrapper.-has-hover:focus img {
	filter: blur(2px);
	transform: scale(1.05);
}
.teaser-boxes-item a.image-wrapper.-has-hover:hover, .team-boxes-item a.image-wrapper.-has-hover:hover,
.teaser-boxes-item a.image-wrapper.-has-hover:focus,
.team-boxes-item a.image-wrapper.-has-hover:focus {
	/* Fixes IE bug */
	text-decoration: none;
}
.teaser-boxes-item a.image-wrapper.-has-hover:hover:after, .team-boxes-item a.image-wrapper.-has-hover:hover:after,
.teaser-boxes-item a.image-wrapper.-has-hover:focus:after,
.team-boxes-item a.image-wrapper.-has-hover:focus:after {
	font: 1.5em/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: 50%;
	left: 50%;
	z-index: 2;
	margin: -0.5em;
	color: #ffffff;
	text-shadow: 0 0 2px rgba(0, 0, 0, 0.35);
}

.team-boxes-item h3 {
	font-size: 1.14286em;
}
.team-boxes-item .hover-image {
	position: absolute;
	top: auto;
	bottom: -100%;
	left: 0;
	width: 100%;
	transition: bottom 0.2s ease-out;
}
.team-boxes-item:hover .hover-image {
	bottom: 0;
}
.team-boxes-item > ul {
	margin: 0.57143em 0;
	padding: 0;
	list-style-type: none;
}
.team-boxes-item > ul li {
	display: inline;
}
.team-boxes-item > ul a {
	display: inline-block;
	overflow: hidden;
	padding: 0.57143em 0.57143em 0 0.07143em;
	outline: none;
	line-height: 0;
	/* Fixes Chrome bug */
	letter-spacing: -1em;
	text-indent: -99em;
	text-decoration: none;
}
.team-boxes-item > ul a:before {
	content: none;
}
.team-boxes-item > ul 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: #8a8989 !important;
}
.team-boxes-item > ul a:hover:after,
.team-boxes-item > ul a:focus:after {
	color: inherit !important;
}

.highlight-box {
	/* clearfix */
	overflow: hidden;
	display: table;
	width: 100%;
	margin: 1.5em 0;
	padding: 1.11111em 1.11111em;
	border: 1px solid #dddddd;
	border-radius: 0px;
	font-size: 1.125em;
	line-height: 1.50056;
	color: #575656;
}

.highlight-box-inner {
	display: table-cell;
	vertical-align: middle;
	text-align: right;
}
@media screen and (max-width: 900px) {
	.highlight-box-inner {
		display: block;
		margin-top: 1em;
		text-align: left;
	}
}
.highlight-box-inner:first-child {
	width: 65%;
	text-align: left;
}
@media screen and (max-width: 900px) {
	.highlight-box-inner:first-child {
		width: auto;
		margin-top: 0;
	}
}
.highlight-box-inner h1:first-child,
.highlight-box-inner h2:first-child,
.highlight-box-inner h3:first-child,
.highlight-box-inner h4:first-child,
.highlight-box-inner p:first-child,
.highlight-box-inner ul:first-child,
.highlight-box-inner ol:first-child {
	margin: 0;
}
.highlight-box-inner p:last-child {
	margin-bottom: 0;
}

.highlight-box-link {
	font-size: 0.77778em;
}

.testimonial,
.main-content .testimonial {
	margin: 1.5em 0;
	font-size: 1em;
	line-height: 1.56313;
}
.testimonial:before,
.main-content .testimonial:before {
	content: none;
}
.-color-inverted .testimonial,
.-color-inverted .main-content .testimonial {
	color: #ffffff;
}
.testimonial > p,
.main-content .testimonial > p {
	position: relative;
	margin: 0;
	padding: 1.0625em 1.25em 1.125em;
	border: 1px solid #dddddd;
	border-radius: 0px;
}
.testimonial > p:before,
.testimonial > p:after,
.main-content .testimonial > p:before,
.main-content .testimonial > p:after {
	content: "";
	position: absolute;
	top: 100%;
	left: 4.375em;
	width: 0;
	height: 0;
	border: solid transparent;
	border-top-color: #d0d0d0;
	border-style: solid;
	border-width: 16px 16px 0 0;
}
@media screen and (max-width: 900px) {
	.testimonial > p:before,
	.testimonial > p:after,
	.main-content .testimonial > p:before,
	.main-content .testimonial > p:after {
		content: none;
	}
}
.testimonial > p:after,
.main-content .testimonial > p:after {
	margin-left: 1px;
	border-top-color: #ffffff;
	border-width: 14px 14px 0 0;
}
.testimonial.-large,
.main-content .testimonial.-large {
	margin: 2em 0;
	font-size: 1.125em;
	text-align: center;
}
.testimonial.-large:before,
.main-content .testimonial.-large:before {
	content: "\201c";
	position: static;
	display: block;
	margin: 0 0 -0.05556em;
	line-height: 1;
}
.testimonial.-large > p,
.main-content .testimonial.-large > p {
	padding: 0;
	border: 0;
	font-size: 1.33333em;
	font-weight: 300;
}
@media screen and (max-width: 900px) {
	.testimonial.-large > p,
	.main-content .testimonial.-large > p {
		font-size: 1.11111em;
	}
}
.testimonial.-large > p:before,
.testimonial.-large > p:after,
.main-content .testimonial.-large > p:before,
.main-content .testimonial.-large > p:after {
	content: none;
}

.testimonial-author,
.testimonial .testimonial-author {
	/* clearfix */
	overflow: hidden;
	padding: 1em 0 0 0;
	font-size: 1em;
}
.testimonial-author img,
.testimonial .testimonial-author img {
	float: left;
	width: 3.25em;
	height: auto;
	margin-left: 1.3125em;
	border: 1px solid #dddddd;
	border: 1px solid rgba(221, 221, 221, 0.5);
	border-radius: 100%;
}
@media screen and (max-width: 900px) {
	.testimonial-author img,
	.testimonial .testimonial-author img {
		margin-left: 0;
	}
}
.testimonial-author > small,
.testimonial .testimonial-author > small {
	float: left;
	margin: 0.375em 0 0 1.25em;
	font-size: inherit;
	line-height: 1.2;
}
.testimonial-author > small b,
.testimonial .testimonial-author > small b {
	display: block;
	font-size: 0.875em;
	font-weight: 300;
}
.testimonial-author > img + small,
.testimonial-author > picture + small,
.testimonial .testimonial-author > img + small,
.testimonial .testimonial-author > picture + small {
	margin-left: 0.875em;
}

.testimonial.-large .testimonial-author {
	display: inline-block;
	min-height: 5.33333em;
	padding-top: 2em;
	text-align: left;
}
@media screen and (max-width: 900px) {
	.testimonial.-large .testimonial-author {
		text-align: center;
	}
}
.testimonial.-large .testimonial-author > small {
	margin-left: 0;
	text-align: center;
}
.testimonial.-large .testimonial-author img {
	margin-left: 0;
}
@media screen and (max-width: 900px) {
	.testimonial.-large .testimonial-author img {
		display: block;
		float: none;
		margin-right: auto;
		margin-left: auto;
	}
}
.testimonial.-large .testimonial-author > img + small,
.testimonial.-large .testimonial-author > picture + small {
	margin-left: 0.875em;
	text-align: left;
}
@media screen and (max-width: 900px) {
	.testimonial.-large .testimonial-author > img + small,
	.testimonial.-large .testimonial-author > picture + small {
		margin-left: 0;
		text-align: center;
	}
}

.pricing-table {
	zoom: 1;
	margin: 2.75em 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;
	width: 33.33333%;
	margin: 0.875em -1px 0 0;
	border: 1px solid #dddddd;
	text-align: center;
}
@media screen and (max-width: 900px) {
	.pricing-table-plan {
		float: none;
		width: auto !important;
		border-radius: 0px;
		margin-bottom: 1.6875em;
	}
}
.pricing-table-plan:first-of-type {
	border-top-left-radius: 0px;
	border-bottom-left-radius: 0px;
}
.pricing-table-plan:last-of-type {
	border-top-right-radius: 0px;
	border-bottom-right-radius: 0px;
}
@media screen and (max-width: 900px) {
	.pricing-table-plan:last-of-type {
		margin-bottom: 0;
	}
}
.-columns-1 > .pricing-table-plan {
	width: 100%;
}
.-columns-1 > .pricing-table-plan.-highlighted {
	width: 103%;
}
.-columns-2 > .pricing-table-plan {
	width: 50%;
}
.-columns-2 > .pricing-table-plan.-highlighted {
	width: 53%;
}
.-columns-3 > .pricing-table-plan {
	width: 33.33333%;
}
.-columns-3 > .pricing-table-plan.-highlighted {
	width: 36.33333%;
}
.-columns-4 > .pricing-table-plan {
	width: 25%;
}
.-columns-4 > .pricing-table-plan.-highlighted {
	width: 28%;
}
.-columns-5 > .pricing-table-plan {
	width: 20%;
}
.-columns-5 > .pricing-table-plan.-highlighted {
	width: 23%;
}
.-columns-6 > .pricing-table-plan {
	width: 16.66667%;
}
.-columns-6 > .pricing-table-plan.-highlighted {
	width: 19.66667%;
}
.pricing-table-plan.-highlighted {
	z-index: 1;
	width: 36.33333%;
	margin-right: -1.5%;
	margin-left: -1.5%;
	padding-bottom: 1.25em;
	border-radius: 0px;
	background: #ffffff;
	box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
}
.pricing-table-plan.-highlighted h3 {
	margin: -0.9375em -1px 0;
	padding-top: 1.8125em;
	border-radius: 0px 0px 0 0;
	color: #ffffff;
	background: #c9390f;
}
.pricing-table-plan h3 {
	margin: 0;
	padding: 0.875em 0;
	border-bottom: 1px solid #dddddd;
	font-size: inherit;
	font-weight: bold;
	color: inherit;
}
.pricing-table-plan p {
	margin: 0;
	padding: 0.375em 0;
	border-bottom: 1px solid #dddddd;
	font-size: 3em;
	line-height: 1;
}
.pricing-table-plan p b {
	display: inline-block;
	vertical-align: super;
	margin-left: -0.83333em;
	font-weight: normal;
	font-size: 0.5em;
	color: #575656;
}
.pricing-table-plan p i {
	display: block;
	font-style: normal;
	font-size: 0.29167em;
	color: #575656;
}
.pricing-table-plan ul {
	margin: 0 0 -1px 0;
	padding: 0;
	list-style: none;
	font-size: 0.875em;
	color: #575656;
}
.pricing-table-plan li {
	display: block;
	padding: 0.5em;
	border-bottom: 1px solid #dddddd;
	transition: background-color 0.3s ease-in;
}
.pricing-table-plan li:hover {
	background-color: #dddddd;
	transition-duration: 0.05s;
}
.pricing-table-plan a {
	font-size: 0.75em;
	margin: 1.5em 0;
	padding: 0.83333em 1.66667em 0.75em;
}

.info-table {
	overflow: auto;
	border: 0;
}
.info-table td,
.info-table th {
	border-width: 0 0 1px;
}
.info-table .image-cell {
	padding: 20% 10%;
	text-align: center;
}
@media screen and (max-width: 1200px) {
	.info-table .image-cell {
		padding: 0 0 5%;
	}
}

.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.-headline-dropshadow h1,
.feature-box.-headline-dropshadow h2,
.feature-box.-headline-dropshadow h3 {
	text-shadow: 0 0 3px rgba(0, 0, 0, 0.45);
}

.feature-box-text {
	margin: 6.25em 48% 6.25em 0;
	color: #575656;
}
@media screen and (max-width: 1200px) {
	.feature-box-text {
		margin-right: 37.5%;
	}
}
@media screen and (max-width: 900px) {
	.feature-box-text {
		margin: 2.25em 0;
	}
}
.-image-left > .feature-box-text {
	margin-right: 0;
	margin-left: 48%;
}
@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%;
	margin-left: 16%;
}
@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.25em;
}
@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.0%;
	margin: 0;
	padding: 4.5em 4% 4.5em 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: 4%;
}
@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;
	}
}
.-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: #575656;
	font-size: 2em;
	font-weight: bold;
}
@media screen and (max-width: 900px) {
	.feature-box-text h1,
	.feature-box-text h2,
	.feature-box-text h3 {
		font-size: 1.57143em;
	}
}
.feature-box-text h1 + a,
.feature-box-text h2 + a,
.feature-box-text h3 + a {
	margin-top: 1.71429em;
}
.-color-inverted .feature-box-text h1,
.-color-inverted .feature-box-text h2,
.-color-inverted .feature-box-text h3 {
	color: #ffffff;
}
.feature-box-text h1.-small,
.feature-box-text h2.-small,
.feature-box-text h3.-small {
	font-size: 1.3125em;
}
.feature-box-text h1.-medium,
.feature-box-text h2.-medium,
.feature-box-text h3.-medium {
	font-size: 2.375em;
}
@media screen and (max-width: 900px) {
	.feature-box-text h1.-medium,
	.feature-box-text h2.-medium,
	.feature-box-text h3.-medium {
		font-size: 1.875em;
	}
}
.feature-box-text h1.-large,
.feature-box-text h2.-large,
.feature-box-text h3.-large {
	font-size: 2.875em;
}
@media screen and (max-width: 900px) {
	.feature-box-text h1.-large,
	.feature-box-text h2.-large,
	.feature-box-text h3.-large {
		font-size: 2em;
	}
}
.feature-box-text h1.-super-size,
.feature-box-text h2.-super-size,
.feature-box-text h3.-super-size {
	font-size: 3.625em;
}
@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: 2.25em;
	}
}
.feature-box-text p {
	font-size: 1.125em;
}

.feature-box-image {
	display: block;
	float: right;
	width: 44%;
	margin: 3em 0 3em 4%;
}
@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: 4%;
	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: 64%;
	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: 3em;
}
.-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: 3em;
	}
}
.-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: 3em 0;
}
@media screen and (max-width: 900px) {
	.-vertical-centered > .feature-box-image {
		display: block;
		padding-top: 1.5em;
		padding-bottom: 1.5em;
	}
}
.-image-rounded > .feature-box-image img {
	border-radius: 99em;
}

.in-view > .feature-box-text,
.in-view > .feature-box-image {
	transition: opacity 0.6s linear, transform 0.6s ease-out;
}
.not-in-view > .feature-box-text.-fade,
.not-in-view > .feature-box-image.-fade {
	opacity: 0;
}
.in-view > .feature-box-text.-fade,
.in-view > .feature-box-image.-fade {
	opacity: 1;
}
.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.-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;
}

.counter-boxes {
	zoom: 1;
	text-align: center;
	margin: 3.125em 0;
}
.counter-boxes:before {
	content: "";
	display: table;
}
.counter-boxes:after {
	content: "";
	display: table;
	clear: both;
}
.counter-boxes > h2 {
	margin: 0 0 1.1875em 0;
	font-size: 1.75em;
	font-weight: bold;
	color: inherit;
}
.-color-inverted .counter-boxes > h2 {
	color: #ffffff;
}
.counter-boxes > h3 {
	margin: 0 0 1.80952em 0;
	font-size: 1.3125em;
	color: #575656;
}
.-color-inverted .counter-boxes > h3 {
	color: #bbbbbb;
}
.-color-inverted.-highlight-color .counter-boxes > h3 {
	color: #3b1104;
}
.counter-boxes > h2 + h3 {
	margin-top: -1.33333em;
}

.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: 2.25em;
	color: #575656;
}
.-color-inverted .counter-boxes-item:before {
	color: #bbbbbb;
}
.-color-inverted.-highlight-color .counter-boxes-item:before {
	color: #3b1104;
}
.counter-boxes-item p {
	margin: 0.06944em -0.5em 0.16667em;
	font-size: 4.5em;
	line-height: 1;
	color: #c9390f;
	font-weight: 300;
}
@media screen and (max-width: 1200px) {
	.counter-boxes-item p {
		font-size: 2.875em;
	}
}
@media screen and (max-width: 900px) {
	.counter-boxes-item p {
		font-size: 2.25em;
	}
}
.-color-inverted.-highlight-color .counter-boxes-item p {
	color: #3b1104;
}
.counter-boxes-item h3 {
	margin: 0;
	font-size: 1.5em;
	font-weight: bold;
	color: inherit;
}
@media screen and (max-width: 1200px) {
	.counter-boxes-item h3 {
		font-size: 1.25em;
	}
}
.counter-boxes-item h4 {
	margin: 0.28571em 0 0;
	font-size: 0.875em;
	color: #575656;
}
.-color-inverted .counter-boxes-item h4 {
	color: #bbbbbb;
}

.headline-box {
	margin: 2.25em 0;
	text-align: center;
}
.headline-box.-align-left {
	text-align: left;
}
.headline-box.-align-right {
	text-align: right;
}
.headline-box:before {
	display: block;
	width: 1.95455em;
	height: 1.95455em;
	margin: 0 auto 0.27273em auto;
	border-radius: 100%;
	font-size: 2.75em;
	font-weight: normal;
	line-height: 2.00023;
	text-align: center;
	background: #ffffff;
	background: rgba(255, 255, 255, 0.6);
}
.-color-inverted .headline-box:before {
	background: #353d47;
	background: rgba(53, 61, 71, 0.6);
}
.headline-box h2 {
	margin: 0;
	font-size: 1.5em;
	font-weight: normal;
	color: inherit;
}
.-color-inverted .headline-box h2 {
	color: inherit;
}
@media screen and (max-width: 900px) {
	.headline-box h2 {
		font-size: 1.3125em;
	}
}
.headline-box h2.-bold {
	font-weight: bold;
}
.headline-box h2.-small {
	font-size: 1.5em;
}
.headline-box h2.-medium {
	font-size: 2em;
}
@media screen and (max-width: 900px) {
	.headline-box h2.-medium {
		font-size: 1.5em;
	}
}
.headline-box h2.-large {
	font-size: 2.25em;
}
@media screen and (max-width: 900px) {
	.headline-box h2.-large {
		font-size: 1.75em;
	}
}
.headline-box h2.-super-size {
	font-size: 2.625em;
}
@media screen and (max-width: 900px) {
	.headline-box h2.-super-size {
		font-size: 2em;
	}
}
.headline-box h3 {
	margin: 0.44444em 0 0;
	font-size: 1.125em;
	font-weight: normal;
	line-height: 1.5;
	color: #575656;
}
.-color-inverted.-highlight-color .headline-box h3 {
	color: #3b1104;
}
.-color-inverted .headline-box h3 {
	color: #bbbbbb;
}
.headline-box h3.-small {
	font-size: 1.125em;
}
.headline-box h3.-medium {
	font-size: 1.5em;
}
@media screen and (max-width: 900px) {
	.headline-box h3.-medium {
		font-size: 1.3125em;
	}
}
.headline-box h3.-large {
	font-size: 1.75em;
}
@media screen and (max-width: 900px) {
	.headline-box h3.-large {
		font-size: 1.5em;
	}
}
.headline-box h3.-super-size {
	font-size: 2.25em;
}
@media screen and (max-width: 900px) {
	.headline-box h3.-super-size {
		font-size: 1.625em;
	}
}
.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;
}
.headline-box-link.-quaternary {
	color: inherit;
}
.-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;
	}
}

.projects {
	zoom: 1;
	clear: both;
}
.projects:before {
	content: "";
	display: table;
}
.projects:after {
	content: "";
	display: table;
	clear: both;
}

.projects-item {
	position: relative;
	float: left;
	overflow: hidden;
	border-top: 5px solid #dddddd;
	color: inherit;
}
.projects-item:nth-of-type(even) {
	border-top-color: #dddddd;
}
.projects-item.-large-col-1-1 {
	width: 100%;
}
.projects-item.-large-col-2-1 {
	width: 50%;
}
.projects-item.-large-col-3-1 {
	width: 33.33333%;
}
.projects-item.-large-col-4-1 {
	width: 25%;
}
.projects-item.-large-col-5-1 {
	width: 20%;
}
.projects-item.-large-col-6-1 {
	width: 16.66667%;
}
.projects-item.-large-col-7-1 {
	width: 14.28571%;
}
.projects-item.-large-col-8-1 {
	width: 12.5%;
}
.projects-item.-large-col-9-1 {
	width: 11.11111%;
}
.projects-item.-large-col-10-1 {
	width: 10%;
}
@media screen and (min-width: 1600px) {
	.projects-item.-verylarge-col-1-1 {
		width: 100%;
	}
	.projects-item.-verylarge-col-2-1 {
		width: 50%;
	}
	.projects-item.-verylarge-col-3-1 {
		width: 33.33333%;
	}
	.projects-item.-verylarge-col-4-1 {
		width: 25%;
	}
	.projects-item.-verylarge-col-5-1 {
		width: 20%;
	}
	.projects-item.-verylarge-col-6-1 {
		width: 16.66667%;
	}
	.projects-item.-verylarge-col-7-1 {
		width: 14.28571%;
	}
	.projects-item.-verylarge-col-8-1 {
		width: 12.5%;
	}
	.projects-item.-verylarge-col-9-1 {
		width: 11.11111%;
	}
	.projects-item.-verylarge-col-10-1 {
		width: 10%;
	}
}
@media screen and (max-width: 1200px) {
	.projects-item.-medium-col-1-1 {
		width: 100%;
	}
	.projects-item.-medium-col-2-1 {
		width: 50%;
	}
	.projects-item.-medium-col-3-1 {
		width: 33.33333%;
	}
	.projects-item.-medium-col-4-1 {
		width: 25%;
	}
	.projects-item.-medium-col-5-1 {
		width: 20%;
	}
	.projects-item.-medium-col-6-1 {
		width: 16.66667%;
	}
	.projects-item.-medium-col-7-1 {
		width: 14.28571%;
	}
	.projects-item.-medium-col-8-1 {
		width: 12.5%;
	}
	.projects-item.-medium-col-9-1 {
		width: 11.11111%;
	}
	.projects-item.-medium-col-10-1 {
		width: 10%;
	}
}
@media screen and (max-width: 900px) {
	.projects-item.-small-col-1-1 {
		width: 100%;
	}
	.projects-item.-small-col-2-1 {
		width: 50%;
	}
	.projects-item.-small-col-3-1 {
		width: 33.33333%;
	}
	.projects-item.-small-col-4-1 {
		width: 25%;
	}
	.projects-item.-small-col-5-1 {
		width: 20%;
	}
	.projects-item.-small-col-6-1 {
		width: 16.66667%;
	}
	.projects-item.-small-col-7-1 {
		width: 14.28571%;
	}
	.projects-item.-small-col-8-1 {
		width: 12.5%;
	}
	.projects-item.-small-col-9-1 {
		width: 11.11111%;
	}
	.projects-item.-small-col-10-1 {
		width: 10%;
	}
}
.projects-item h3 {
	position: absolute;
	bottom: -3.125em;
	left: 0;
	width: 100%;
	margin: 0;
	padding: 0.625em 0 0.6875em;
	font-size: 1em;
	font-weight: bold;
	color: inherit;
	text-align: center;
	background: #ffffff;
	background: rgba(255, 255, 255, 0.9);
	transition: bottom 0.4s ease-out;
}
.projects-item h3:before {
	content: "";
	position: absolute;
	left: 50%;
	top: -8px;
	width: 0;
	height: 0;
	border: 8px solid transparent;
	border-color: rgba(255, 255, 255, 0);
	border-top: 0;
	border-bottom-color: #ffffff;
	border-bottom-color: rgba(255, 255, 255, 0.9);
}
.projects-item:hover h3,
.projects-item:focus h3 {
	bottom: 0;
	transition-duration: 0.2s;
}

.projects-item-image {
	position: relative;
	display: block;
	overflow: hidden;
}
.projects-item-image img {
	display: block;
	width: 100%;
	height: auto;
}

.projects-item-image-hover {
	position: absolute;
	top: -100%;
	left: 0;
	width: 100%;
	transition: top 0.4s ease-out;
}
.projects-item:hover .projects-item-image-hover,
.projects-item:focus .projects-item-image-hover {
	top: 0;
	transition-duration: 0.2s;
}

.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: 29.375em;
}
@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:hover ~ .info-map-boxes {
	opacity: 0.2;
}
.info-map-gmap.-no-hover:hover ~ .info-map-boxes {
	opacity: 1;
}
.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;
}

.info-map-boxes {
	zoom: 1;
	position: relative;
	margin-top: -7.25em;
	margin-bottom: 2.75em;
	transition: opacity 0.2s linear;
}
.info-map-boxes:before {
	content: "";
	display: table;
}
.info-map-boxes:after {
	content: "";
	display: table;
	clear: both;
}
@media screen and (max-width: 900px) {
	.info-map-boxes {
		margin-top: 1.375em;
	}
}

.info-map-boxes-item {
	padding: 0.71429em 1.42857em;
	border-radius: 0px;
	font-size: 0.875em;
	color: inherit;
	background: #ffffff;
	box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1), 0 0 7px rgba(0, 0, 0, 0.15);
}
.info-map-boxes-item:before {
	float: right;
	margin: 0;
	padding: 0.15152em 0 0.45455em 0.30303em;
	font-size: 4.71429em;
	color: #c9390f;
	background: #ffffff;
}
.info-map-boxes-item:hover,
.info-map-boxes-item:focus {
	text-decoration: none;
}
.info-map-boxes-item h3 {
	margin: 0.57143em 0;
	padding: 0 0 0.21429em;
	border-bottom: 1px solid #dddddd;
	color: #c9390f;
	font-size: 1em;
	font-weight: bold;
	text-transform: uppercase;
}
.info-map-boxes-item p {
	margin: 0.57143em 0;
}

.info-map-boxes-item-link {
	color: #c9390f;
}

.icon-buttons {
	text-align: center;
	margin: 2.25em 0;
}
.icon-buttons h3 {
	margin: 0;
	font-size: 1.125em;
	font-weight: normal;
}
.icon-buttons ul {
	margin: 1.25em 0;
	padding: 0;
	list-style: none;
}
.icon-buttons li {
	display: inline;
}
.icon-buttons a {
	display: inline-block;
	width: 2.5em;
	height: 2.5em;
	overflow: hidden;
	margin: 0 0.5em;
	border: 2px solid #575656;
	border-radius: 0px;
	color: inherit;
	text-indent: -99em;
	line-height: 0;
}
.icon-buttons a:before {
	content: none;
}
.icon-buttons a:after {
	font: 1.5em/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;
	line-height: 1.58375;
}
.icon-buttons a:hover,
.icon-buttons a:focus {
	text-decoration: none;
	background: #575656;
	background: rgba(87, 86, 86, 0.25);
}
.-color-inverted .icon-buttons a {
	border-color: #ffffff;
}
.-color-inverted .icon-buttons a:hover,
.-color-inverted .icon-buttons a:focus {
	background: #ffffff;
	background: rgba(255, 255, 255, 0.25);
}

.icon-links li {
	padding-bottom: 0.4375em;
}
.icon-links a {
	text-decoration: none;
}
.icon-links a:hover span {
	text-decoration: underline;
}

.icon-links-label {
	color: #c9390f;
}

.tab-navigation {
	margin: 2.25em 0 0;
	border: 1px solid transparent;
	border-bottom-color: #dddddd;
	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.5625em 1.75em;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	outline: none;
	border: 1px solid #dddddd;
	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 #c9390f, -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: #c9390f;
		color: #ffffff;
		background: #c9390f;
		box-shadow: 0 1px #c9390f;
	}
}
.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: 1em;
	color: inherit;
	background: none;
}
.tab-navigation.-image-tabs a:hover,
.tab-navigation.-image-tabs a:focus {
	color: #c9390f;
}
.tab-navigation.-image-tabs a.is-active {
	color: #c9390f;
	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: #c9390f;
	border-bottom: 0;
}
.tab-navigation.-image-tabs a:before {
	display: block;
	margin: 0 auto 0.25em;
	font-size: 3em;
	color: #c9390f;
}
.tab-navigation.-image-tabs a img {
	display: block;
	margin: 0 auto 0.75em;
}

.-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 #dddddd;
	padding-right: 2.5em;
	padding-left: 2.5em;
}

/* ===========================================
 * 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: 3.75em;
	padding: 0.75em 1.25em 0.75em 5em;
	padding-right: calc(1.25em + var(--safe-area-right));
	padding-bottom: calc(0.75em + var(--safe-area-bottom));
	padding-left: calc(5em + var(--safe-area-left));
	border-top: 1px solid #dddddd;
	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: relative;
		padding-top: calc(0.75em + var(--safe-area-top));
		padding-bottom: 0.75em;
	}
}
@media screen and (max-width: 900px) {
	.fixed-note {
		display: block;
		padding-left: 1.25em;
		padding-left: calc(1.25em + 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.25em;
	color: #c9390f;
}
@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.9375em;
	margin: 0.4em 0;
}
.fixed-note p {
	font-size: 0.875em;
	margin: 0.42857em 0;
}
@media screen and (max-width: 900px) {
	.fixed-note p {
		font-size: 1em;
	}
}

.fixed-note-column {
	display: table-cell;
	vertical-align: middle;
	padding: 0 0.625em;
}
.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.75em 0;
		padding: 0;
	}
}

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

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

.fixed-note-closed {
	position: fixed;
	right: 1.875em;
	right: calc(1.875em + var(--safe-area-right));
	bottom: 0;
	bottom: var(--safe-area-bottom);
	z-index: 99;
	padding: 0.5em 0.75em;
	color: #ffffff;
	text-decoration: none;
	background: #c9390f;
	box-shadow: 0 -2px 5px rgba(0, 0, 0, 0.1);
}
@media screen and (max-width: 1600px) {
	.fixed-note-closed {
		right: 0;
		right: var(--safe-area-right);
	}
}
@media screen and (max-width: 1200px) {
	.fixed-note-closed {
		position: absolute;
		top: 0.75em;
		top: calc(0.75em + var(--safe-area-top));
		right: 0.75em;
		right: calc(0.75em + var(--safe-area-right));
		bottom: auto;
		padding: 0.25em 0.75em;
		font-size: 0.875em;
	}
}
@media screen and (max-width: 900px) {
	.fixed-note-closed {
		font-size: 1em;
	}
}
.fixed-note-closed:hover,
.fixed-note-closed:focus {
	background-color: #9a2c0b;
}
.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;
}

.mod_breadcrumb {
	font-size: 0.8125em;
}
.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;
}

.back a:before,
.previous a:before,
.next a:after {
	font: 0.75em/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;
}

.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 #dddddd;
	background-image: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.02));
}

.news-image-teaser {
	position: relative;
	margin: 2.25em 0;
	padding-left: 12.5%;
}
@media screen and (max-width: 900px) {
	.news-image-teaser {
		padding-left: 0;
	}
}
.news-image-teaser a {
	transition: color 0.3s;
}
.news-image-teaser img {
	display: block;
	width: 100%;
	height: auto;
	margin: 0;
}
.news-image-teaser h2 {
	display: block;
	margin: 0.75em 0 0.25em;
	padding: 0 0 0.41667em;
	border-bottom: 1px solid #dddddd;
	font-size: 1.5em;
	font-weight: bold;
	color: inherit;
}
.news-image-teaser h2 a {
	color: inherit;
}
.news-image-teaser h2 a:hover {
	color: #c9390f;
	text-decoration: none;
}
.news-image-teaser p {
	margin: 0.625em 0;
	color: #575656;
}
.news-image-teaser .news-image-teaser-info {
	margin: 0 0 0.93333em;
	font-size: 0.9375em;
	color: #575656;
}

.news-image-teaser-meta {
	float: left;
	position: relative;
	left: -12.5%;
	width: 9.375%;
	margin-bottom: -6.25em;
	line-height: 1;
	text-align: center;
	border-right: 1px solid #dddddd;
}
@media screen and (max-width: 900px) {
	.news-image-teaser-meta {
		position: absolute;
		top: 0;
		left: 0;
		width: 18.75%;
		border-right: 0;
		background: #ffffff;
	}
	.news-image-teaser-meta + h2 {
		padding-top: 3.75em;
	}
}
.news-image-teaser-meta time {
	font-size: 2.125em;
	font-weight: bold;
}
.news-image-teaser-meta b {
	display: block;
	margin: -0.05556em 0 0.44444em;
	font-size: 0.52941em;
	font-weight: inherit;
	color: #575656;
	text-transform: uppercase;
}
.news-image-teaser-meta .comment-count {
	display: block;
	padding: 0.25em 0;
	border-top: 1px solid #dddddd;
	color: #575656;
}
.news-image-teaser-meta .comment-count:before {
	font: 100%/1 "RockSolid Icons";
	content: "\e053";
	-webkit-font-smoothing: antialiased;
	font-smoothing: antialiased;
	text-rendering: geometricPrecision;
	text-indent: 0;
	display: inline-block;
	position: relative;
	bottom: 0.0625em;
	margin-right: 0.16667em;
	font-size: 0.75em;
}
.news-image-teaser-meta .comment-count:hover {
	color: #c9390f;
	text-decoration: none;
}

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

.news-list-boxed-item {
	padding: 1.07143em;
	border: 1px solid #dddddd;
	border-radius: 0px;
	font-size: 0.875em;
	color: #575656;
}
.news-list-boxed-item h3 {
	margin: 0.38095em 0 0;
	font-size: 1.5em;
	font-weight: bold;
	line-height: 1.38143;
	color: #575656;
}
.news-list-boxed-item h3 a {
	color: inherit;
	transition: color 0.3s;
}
.news-list-boxed-item h3 a:hover {
	color: #c9390f;
	text-decoration: none;
}
.news-list-boxed-item p {
	margin: 1em 0;
}
.news-list-boxed-item .news-list-boxed-item-info {
	margin-top: 0.66667em;
	padding-bottom: 0.5em;
	font-size: 0.85714em;
	border-bottom: 1px solid #dddddd;
}

.news-list-boxed-item-image {
	position: relative;
	display: block;
	overflow: hidden;
}
.news-list-boxed-item-image.-no-image {
	padding-bottom: 56.81818%;
	background: #717c8e;
}
.news-list-boxed-item-image:hover,
.news-list-boxed-item-image:focus {
	opacity: 0.8;
}
.news-list-boxed-item-image:hover img,
.news-list-boxed-item-image:focus img {
	filter: blur(2px);
	transform: scale(1.05);
}
.news-list-boxed-item-image img {
	display: block;
	width: 100%;
	height: auto;
}
.news-list-boxed-item-image time {
	position: absolute;
	top: 50%;
	left: 0;
	width: 100%;
	margin: -0.77778em 0 0;
	font-size: 2.57143em;
	font-weight: bold;
	color: #ffffff;
	text-align: center;
	text-shadow: 0 0 4px rgba(0, 0, 0, 0.3);
}

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

.news-boxes-item h3 {
	margin: 0;
	font-size: 1.125em;
	font-weight: bold;
	color: inherit;
}
.news-boxes-item h3 a {
	display: block;
	color: inherit;
	text-decoration: none;
}
.news-boxes-item h3 a:hover,
.news-boxes-item h3 a:focus {
	color: #c9390f;
}
.news-boxes-item p {
	margin: 0.5em 0;
}
.news-boxes-item .news-boxes-item-more {
	position: relative;
	margin: -0.9375em 0 0 0;
}
.news-boxes-item .news-boxes-item-more a {
	position: relative;
	top: 0;
	display: block;
	height: 2.0625em;
	color: #ffffff;
	color: transparent;
	text-decoration: none;
	background: #ffffff;
	box-shadow: 0 -7px 10px -7px rgba(0, 0, 0, 0.2), 0 -8px 10px 7px rgba(255, 255, 255, 0.5);
	transition: top 0.2s ease-out;
}
.news-boxes-item .news-boxes-item-more a:after {
	font: 1.5em/1 "RockSolid Icons";
	content: "\e009";
	-webkit-font-smoothing: antialiased;
	font-smoothing: antialiased;
	text-rendering: geometricPrecision;
	text-indent: 0;
	display: inline-block;
	position: relative;
	position: absolute;
	top: 0;
	left: 50%;
	width: 3.66667em;
	height: 100%;
	margin: 0 0 0 -1.83333em;
	padding: 0.20833em 0 0;
	border: 1px solid #dddddd;
	border-top: 0;
	border-radius: 0 0 1px 1px;
	color: #575656;
	text-align: center;
	box-sizing: border-box;
	box-shadow: 0 0 2px rgba(0, 0, 0, 0.1);
}
.news-boxes-item .news-boxes-item-more a:hover,
.news-boxes-item .news-boxes-item-more a:focus {
	top: 1.25em;
}
.news-boxes-item .news-boxes-item-more a:hover:before,
.news-boxes-item .news-boxes-item-more a:focus:before {
	content: "";
	position: absolute;
	top: -1.25em;
	left: 0;
	height: 1.25em;
	width: 100%;
}
.news-boxes-item .news-boxes-item-more a:hover:after,
.news-boxes-item .news-boxes-item-more a:focus:after {
	color: #c9390f;
}

.news-boxes-item-image {
	display: block;
	overflow: hidden;
}
.news-boxes-item-image.-no-image {
	padding-bottom: 56.81818%;
	background: #717c8e;
}
.news-boxes-item-image:hover,
.news-boxes-item-image:focus {
	opacity: 0.8;
}
.news-boxes-item-image:hover img,
.news-boxes-item-image:focus img {
	filter: blur(2px);
	transform: scale(1.05);
}
.news-boxes-item-image img {
	display: block;
	width: 100%;
	height: auto;
}

.news-boxes-item-info {
	margin: 0;
	font-size: 0.875em;
	color: #575656;
}

.main-content .mod_calendar {
	margin: 1.5em 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.75em;
	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: #dddddd;
}
.mod_calendar .event {
	font-size: 0.75em;
}
.mod_calendar .minicalendar td {
	padding: 0.1875em;
	text-align: center;
}

.mod_newsletterlist ul {
	padding-left: 0;
	list-style-type: none;
}
.mod_newsletterlist ul li {
	border-bottom: 1px solid #dddddd;
	padding: 0.5em 0;
}
.mod_newsletterlist ul li:before {
	font: 100%/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;
	margin: 0.3125em 0.375em 0 0;
	color: #c9390f;
}
.mod_newsletterlist ul a {
	display: block;
	font-size: 1.3125em;
}

.mod_eventlist > .header {
	font-weight: bold;
}
.mod_eventlist .event > h2 {
	margin-top: 0;
	font-size: 1.5em;
}

.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.5em;
}

.mod_faqpage section {
	margin: 2.25em 0;
	padding-left: 4.5em;
}
.mod_faqpage h3 {
	position: relative;
	margin: 1em 0;
	padding: 0.47619em 0 0.71429em;
	border-bottom: 1px solid #dddddd;
	font-size: 1.3125em;
}
.mod_faqpage h3:before,
.mod_faqpage h3 + *:before {
	content: "Q";
	position: absolute;
	top: 0;
	left: -2.57143em;
	width: 1em;
	padding: 0.35714em 0.39286em 0.42857em;
	border-radius: 100%;
	font-size: 1.33333em;
	line-height: 1;
	color: #ffffff;
	text-align: center;
	background: #c9390f;
}
.mod_faqpage h3 + * {
	position: relative;
}
.mod_faqpage h3 + *:before {
	content: "A";
	left: -3.75em;
	font-size: 1em;
}
.mod_faqpage p {
	margin-top: 0.75em;
	margin-bottom: 0.75em;
}
.mod_faqpage .info {
	font-size: 0.8125em;
	color: #575656;
}

.mod_faqreader .info {
	font-size: 0.8125em;
	color: #575656;
}

.mod_search {
	margin: 1.6875em 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: 0.75em;
	padding-bottom: 0.75em;
}
.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.3125em;
	border-bottom: 1px solid #dddddd;
	color: #575656;
}
.mod_search .highlight {
	padding: 0 0.25em;
	font-weight: bold;
	background: #f4d7cf;
}
.mod_search .url {
	padding-bottom: 1.42857em;
	border-bottom: 1px dotted #dddddd;
	font-size: 0.875em;
	color: #575656;
}
.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 #dddddd;
	border-radius: 0px;
	font-size: 1em;
	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 #dddddd;
}
.comment_default .reply {
	margin-left: 6.66667%;
}
.comment_default .reply .info {
	font-weight: bold;
}

.ce_comments .form {
	margin-top: 2.25em;
}
.ce_comments .form .widget {
	clear: none;
	margin-top: 1.5em;
}
.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.5em;
}
.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.125em;
	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.1875em 0 0.1875em 1.75em;
	font-size: 1em;
}
.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.625em;
	color: #c9390f;
}
.mod_sitemap a:before {
	margin-right: 0.5em;
}

.mod_subscribe {
	position: relative;
}
.mod_subscribe .widget {
	display: inline;
}
.mod_subscribe input[type=text],
.mod_subscribe input[type=email] {
	width: 75%;
}
@media screen and (max-width: 900px) {
	.mod_subscribe input[type=text],
	.mod_subscribe input[type=email] {
		display: block;
		width: 100%;
		margin: 0 auto 0.625em;
	}
}
.mod_subscribe .submit {
	vertical-align: top;
	overflow: hidden;
	width: 20%;
	margin-top: 0;
	padding: 0.875em 1.25em 0.625em;
	text-align: center;
}
@media screen and (max-width: 900px) {
	.mod_subscribe .submit {
		width: 100%;
	}
}
.mod_subscribe.-centered {
	text-align: center;
}
.centered-wrapper .mod_subscribe input[type=text],
.centered-wrapper .mod_subscribe input[type=email] {
	width: 30%;
	min-width: 16.25em;
}
.centered-wrapper .mod_subscribe .submit {
	width: auto;
}
.sidebar .mod_subscribe input[type=text],
.sidebar .mod_subscribe input[type=email] {
	width: 75%;
}
@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: 20%;
	padding: 1em 0 0.78571em;
	text-indent: -99em;
	line-height: 0;
}
.sidebar .mod_subscribe .submit:after {
	font: 100%/1 "RockSolid Icons";
	content: "\e0ce";
	-webkit-font-smoothing: antialiased;
	font-smoothing: antialiased;
	text-rendering: geometricPrecision;
	text-indent: 0;
	display: inline-block;
	position: relative;
	left: 1px;
	display: block;
	font-size: 1.14286em;
}

/* ===========================================
 * Sidebar / Widgets
 * ======================================== */
.sidebar {
	position: relative;
	float: left;
	width: 22.22222%;
	margin: 2.5em 0 0 3.7037%;
	font-size: 0.875em;
}
@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: 5.55556%;
		margin-left: 5.55556%;
	}
}
.tao-sidebar-right .sidebar {
	float: right;
	margin-right: 3.7037%;
	margin-left: 0;
}
@media screen and (max-width: 1200px) {
	.tao-sidebar-right .sidebar {
		float: none;
		margin-right: 0;
		margin-left: 0;
	}
}
@media screen and (max-width: 900px) {
	.tao-sidebar-right .sidebar {
		margin-right: 5.55556%;
		margin-left: 5.55556%;
	}
}
.tao-3-columns .sidebar {
	width: 18.51852%;
}
@media screen and (max-width: 1200px) {
	.tao-3-columns .sidebar {
		width: auto;
	}
}
.tao-3-columns .sidebar.-right {
	left: 51.85185%;
	margin-right: -18.51852%;
}
@media screen and (max-width: 1200px) {
	.tao-3-columns .sidebar.-right {
		left: auto;
		clear: none;
		margin-right: 0;
	}
}
@media screen and (max-width: 900px) {
	.tao-3-columns .sidebar.-right {
		margin-right: 5.55556%;
	}
}
.sidebar h1,
.sidebar h2,
.sidebar h3,
.sidebar h4 {
	margin: 2em 0 0.5em;
	padding: 0 0 0.42857em;
	font-size: 1em;
	font-weight: bold;
	color: #575656;
}
.sidebar p,
.sidebar ul,
.sidebar ol,
.sidebar table,
.sidebar blockquote,
.sidebar fieldset,
.sidebar form {
	margin: 1em 0;
}
.sidebar ul,
.sidebar ol {
	padding: 0;
	list-style-type: none;
}
.sidebar > .block {
	margin: 1.25em 0;
}
@media screen and (max-width: 1200px) {
	.sidebar > .block {
		float: left;
		width: 41.66667%;
		margin-left: 5.55556%;
	}
}
@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.75em 0;
}
.sidebar .media > figure,
.sidebar .content-image > figure,
.sidebar .image_container {
	margin: 0.75em 0 0;
}

@media screen and (max-width: 900px) {
	.sub-navigation {
		display: none;
	}
}
.sub-navigation > ul > li > a {
	color: #575656;
}
.sub-navigation ul {
	margin: 0;
	padding: 0;
}
.sub-navigation ul a,
.sub-navigation ul strong,
.sub-navigation ul span.trail,
.sub-navigation ul span.active,
.sub-navigation ul span.forward {
	position: relative;
	display: block;
	margin: 0 -0.28571em;
	padding: 0.28571em;
	color: #575656;
	transition: background-color 0.6s ease-in, color 0.6s ease-in;
}
.sub-navigation ul a:hover,
.sub-navigation ul strong:hover,
.sub-navigation ul span.trail:hover,
.sub-navigation ul span.active:hover,
.sub-navigation ul span.forward:hover {
	border-radius: 0px;
	color: #575656;
	text-decoration: none;
	background-color: #dddddd;
	transition-duration: 0.05s;
}
.sub-navigation ul a:before,
.sub-navigation ul strong:before,
.sub-navigation ul span.trail:before,
.sub-navigation ul span.active:before,
.sub-navigation ul span.forward:before {
	margin-right: 0.42857em;
}
.sub-navigation ul a.active,
.sub-navigation ul strong.active,
.sub-navigation ul span.active {
	color: #a12f0c;
}
.sub-navigation ul a.trail,
.sub-navigation ul strong.trail,
.sub-navigation ul span.trail {
	color: #d03d10;
}
.sub-navigation ul ul {
	margin-left: 0.85714em;
}
.sub-navigation li {
	padding: 0.14286em 0.42857em;
	border-top: 1px solid #dddddd;
}
.sub-navigation li:before {
	content: none;
}
.sub-navigation li:first-child,
.sub-navigation li li li {
	border: 0;
}
.sub-navigation li li {
	margin-right: -0.42857em;
}

/* ===========================================
 * Footer
 * ======================================== */
.footer-bar {
	padding: 1.71429em 0;
	font-size: 0.875em;
	color: #575656;
}
.footer-bar.-color-inverted {
	color: #ffffff;
	background: #353d47;
}
.footer-bar h1,
.footer-bar h2,
.footer-bar h3 {
	margin: 1em 0;
	padding-bottom: 0.21429em;
	border-bottom: 1px solid #dddddd;
	font-size: 1em;
	font-weight: bold;
}
.footer-bar ul {
	list-style: none;
	padding: 0;
}
.footer-bar .widget {
	margin: 1em 0;
}
.footer-bar label {
	display: block;
}
.footer-bar input,
.footer-bar textarea,
.footer-bar select,
.footer-bar fieldset {
	display: block;
	width: 100%;
}
.footer-bar input[type=submit],
.footer-bar button {
	margin-top: 0.375em;
}
.footer-bar textarea {
	height: 6.25em;
}

.icon-text-block {
	position: relative;
	padding-left: 1.875em;
}
.icon-text-block:before {
	position: absolute;
	top: 0.21429em;
	left: 0;
}

.footer-news h1,
.footer-news h2,
.footer-news h3 {
	margin-bottom: 1.14286em;
}

.news-footer-item {
	margin: 0.57143em 0;
	min-height: 2.57143em;
}
.news-footer-item:hover time:before {
	top: 0.4em;
}
.news-footer-item:hover b {
	margin-top: 40px;
}
.news-footer-item time {
	position: relative;
	float: left;
	width: 3.6em;
	height: 3.6em;
	padding: 0.6em 0 0;
	overflow: hidden;
	font-size: 0.71429em;
	font-weight: bold;
	line-height: 1;
	color: #ffffff;
	text-transform: uppercase;
	text-align: center;
	background: #353d47;
}
.news-footer-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-footer-item time b {
	display: block;
	font-size: 1.4em;
	font-weight: inherit;
	transition: margin 0.2s ease-out;
}
.-color-inverted .news-footer-item time {
	background: #ffffff;
	color: #575656;
}
.news-footer-item a {
	display: block;
	line-height: 1.28571em;
}
.news-footer-item time + a {
	padding-left: 3.1875em;
}

.footer-navigation {
	float: left;
	margin: 0;
	font-size: 0.875em;
	color: #575656;
}
@media screen and (max-width: 900px) {
	.footer-navigation {
		float: none;
		padding: 0.5em 0;
		text-align: center;
	}
}
.footer-navigation ul,
.footer-navigation li {
	display: inline;
	margin: 0;
	padding: 0;
}
.footer-navigation > ul > li:before {
	font-size: 0.75em;
}
.footer-navigation > ul > li a,
.footer-navigation > ul > li strong,
.footer-navigation > ul > li span.trail,
.footer-navigation > ul > li span.active,
.footer-navigation > ul > li span.forward {
	position: relative;
	display: inline-block;
	padding: 2.14286em 0;
	margin-right: 3.14286em;
	color: inherit;
}
@media screen and (max-width: 1200px) {
	.footer-navigation > ul > li a,
	.footer-navigation > ul > li strong,
	.footer-navigation > ul > li span.trail,
	.footer-navigation > ul > li span.active,
	.footer-navigation > ul > li span.forward {
		margin-right: 1.57143em;
	}
}
@media screen and (max-width: 900px) {
	.footer-navigation > ul > li a,
	.footer-navigation > ul > li strong,
	.footer-navigation > ul > li span.trail,
	.footer-navigation > ul > li span.active,
	.footer-navigation > ul > li span.forward {
		margin: 0 0.78571em;
		padding: 0.5em 0;
	}
}
.footer-navigation > ul > li a:before,
.footer-navigation > ul > li strong:before,
.footer-navigation > ul > li span.trail:before,
.footer-navigation > ul > li span.active:before,
.footer-navigation > ul > li span.forward:before {
	content: none;
}
.footer-navigation > ul > li a:after,
.footer-navigation > ul > li strong:after,
.footer-navigation > ul > li span.trail:after,
.footer-navigation > ul > li span.active:after,
.footer-navigation > ul > li span.forward:after {
	content: "";
	position: absolute;
	top: auto;
	bottom: -1px;
	right: 50%;
	left: 50%;
	border-top: 2px solid #575656;
	transition: right 0.4s ease-out, left 0.4s ease-out;
}
.footer-navigation > ul > li a:hover,
.footer-navigation > ul > li strong:hover,
.footer-navigation > ul > li span.trail:hover,
.footer-navigation > ul > li span.active:hover,
.footer-navigation > ul > li span.forward:hover {
	text-decoration: none;
}
.footer-navigation > ul > li a:hover:after,
.footer-navigation > ul > li strong:hover:after,
.footer-navigation > ul > li span.trail:hover:after,
.footer-navigation > ul > li span.active:hover:after,
.footer-navigation > ul > li span.forward:hover:after {
	right: 0;
	left: 0;
	transition-duration: 0.1s, 0.1s;
}

.footer-icon-links {
	float: right;
	margin: 0;
	padding: 0;
	border-right: 1px solid #dddddd;
}
@media screen and (max-width: 900px) {
	.footer-icon-links {
		float: none;
		border-right: 0;
		text-align: center;
	}
}
.footer-icon-links li {
	display: inline;
}
.footer-icon-links a {
	float: left;
	position: relative;
	width: 2.75em;
	height: 5.0625em;
	overflow: hidden;
	border-left: 1px solid #dddddd;
	line-height: 0;
	/* Fixes Chrome bug */
	letter-spacing: -1em;
	color: #575656;
	text-indent: -99em;
	text-decoration: none;
}
@media screen and (max-width: 900px) {
	.footer-icon-links a {
		display: inline-block;
		float: none;
		height: 2.75em;
		border-left: 0;
	}
}
.footer-icon-links a:before,
.footer-icon-links a:after {
	font: 1.375em/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;
	position: absolute;
	top: 0;
	left: 0;
	display: block;
	box-sizing: border-box;
	width: 100%;
	height: 100%;
	padding-top: 0.04545em;
	line-height: 3.68227;
	letter-spacing: 0;
	text-align: center;
	background: #ffffff;
	transition: top 0.5s ease-out;
}
@media screen and (max-width: 900px) {
	.footer-icon-links a:before,
	.footer-icon-links a:after {
		line-height: 2.00045;
	}
}
.footer-icon-links a:after {
	top: 100%;
	color: #ffffff;
	background: transparent;
}
.footer-icon-links a:hover:before,
.footer-icon-links a:hover:after,
.footer-icon-links a:focus:before,
.footer-icon-links a:focus:after {
	transition: top 0.2s ease-out;
}
.footer-icon-links a:hover:before,
.footer-icon-links a:focus:before {
	top: -100%;
}
.footer-icon-links a:hover:after,
.footer-icon-links a:focus:after {
	top: 0;
}

.footer-copyright {
	float: left;
	margin: 0;
	padding: 2.14286em 0;
	font-size: 0.875em;
	color: #575656;
}
.footer-copyright .rocksolid-copyright {
	color: inherit;
	opacity: 0.6;
}
@media screen and (max-width: 1200px) {
	.footer-copyright {
		float: none;
		padding-bottom: 1em;
	}
}

.footer-links {
	float: right;
	margin: 0;
	padding: 2.14286em 0;
	font-size: 0.875em;
	color: #575656;
}
@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: #575656;
}
.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;
	width: 2.875em;
	height: 2.875em;
	margin: 0 auto;
	color: #575656;
	white-space: nowrap;
}
.footer-top-link:after {
	font: 1em/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: 0.9375em;
	border: 1px solid #dddddd;
	border-bottom: 0;
	border-radius: 1px 1px 0 0;
	text-align: center;
	background: #ffffff;
	box-sizing: border-box;
	box-shadow: 0 0 7px rgba(0, 0, 0, 0.15);
}
.footer-top-link > span {
	position: absolute;
	top: 0;
	right: 0;
	margin: 1em 0.71429em 0;
	font-size: 0.875em;
	color: #575656;
	opacity: 0;
	pointer-events: none;
	transition: all 0.4s ease-out;
}
.footer-top-link > span + span {
	right: auto;
	left: 0;
}
.footer-top-link:hover,
.footer-top-link:focus {
	/* Fixes IE bug */
	text-decoration: none;
}
.footer-top-link:hover > span,
.footer-top-link:focus > span {
	right: 100%;
	opacity: 1;
	transition-duration: 0.2s;
}
.footer-top-link:hover > span + span,
.footer-top-link:focus > span + span {
	right: auto;
	left: 100%;
}

/* ===========================================
 * Slider
 * ======================================== */
.main-slider {
	height: 600px;
}
@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.6875em 0;
	padding: 2em 0 0 0;
}
.rsts-skin-testimonials .rsts-header {
	margin-top: -2em;
}
.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 1em;
	padding: 0 5em;
	font-size: 0.875em;
	font-weight: bold;
	color: #575656;
	text-align: center;
}
.rsts-skin-testimonials .rsts-prev,
.rsts-skin-testimonials .rsts-next {
	position: absolute;
	top: -2.375em;
	right: 1.375em;
	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.875em/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: #dddddd;
}
.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: #c4c4c4;
}
.rsts-skin-testimonials .rsts-next {
	right: -0.5625em;
}
.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 #dddddd;
	border-radius: 100%;
	background: #dddddd;
	background: rgba(221, 221, 221, 0.5);
}
.rsts-skin-testimonials .rsts-nav a:hover:after,
.rsts-skin-testimonials .rsts-nav a.active:after {
	background-color: #dddddd;
}
.rsts-skin-testimonials .rsts-nav-prev,
.rsts-skin-testimonials .rsts-nav-next {
	display: none !important;
}

.rsts-skin-tao.rsts-main {
	position: relative;
}
.rsts-skin-tao .rsts-caption {
	position: absolute;
	top: 1.25em;
	left: 1.25em;
	padding: 0.1875em 0.625em;
	color: white;
	border-radius: 0px;
	background-color: #575656;
	opacity: 0;
	transition: opacity 0.2s;
}
.rsts-skin-tao .rsts-prev,
.rsts-skin-tao .rsts-next,
.rsts-skin-tao .rsts-video-play,
.rsts-skin-tao .rsts-video-stop {
	position: absolute;
	top: 50%;
	left: 1.25em;
	margin-top: -1.375em;
	border-radius: 0px;
	overflow: hidden;
	text-indent: -99em;
	line-height: 0;
	background-color: #575656;
	opacity: 0;
	transition: opacity 0.2s;
}
.rsts-skin-tao .rsts-prev:hover,
.rsts-skin-tao .rsts-prev:focus,
.rsts-skin-tao .rsts-next:hover,
.rsts-skin-tao .rsts-next:focus,
.rsts-skin-tao .rsts-video-play:hover,
.rsts-skin-tao .rsts-video-play:focus,
.rsts-skin-tao .rsts-video-stop:hover,
.rsts-skin-tao .rsts-video-stop:focus {
	text-decoration: none;
}
.sidebar .rsts-skin-tao .rsts-prev,
.sidebar .rsts-skin-tao .rsts-next,
.sidebar .rsts-skin-tao .rsts-video-play,
.sidebar .rsts-skin-tao .rsts-video-stop {
	bottom: 0.375em;
}
.rsts-skin-tao .rsts-prev:after,
.rsts-skin-tao .rsts-next:after,
.rsts-skin-tao .rsts-video-play:after,
.rsts-skin-tao .rsts-video-stop:after {
	font: 0.875em/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.07143em;
	color: white;
}
.rsts-skin-tao:hover .rsts-prev,
.rsts-skin-tao:hover .rsts-next,
.rsts-skin-tao:hover .rsts-nav,
.rsts-skin-tao:hover .rsts-caption {
	opacity: 0.8;
}
.rsts-skin-tao:hover .rsts-prev:hover,
.rsts-skin-tao:hover .rsts-next:hover,
.rsts-skin-tao:hover .rsts-nav:hover,
.rsts-skin-tao:hover .rsts-caption:hover {
	opacity: 1;
}
.rsts-skin-tao .rsts-next {
	left: auto;
	right: 1.25em;
}
.rsts-skin-tao .rsts-next:after {
	content: "\e019";
}
.tao-fullwidth .tagline .rsts-skin-tao .rsts-prev {
	left: 0;
	left: var(--safe-area-left);
	border-radius: 0 0px 0px 0;
}
.tao-fullwidth .tagline .rsts-skin-tao .rsts-next {
	right: 0;
	right: var(--safe-area-right);
	border-radius: 0px 0 0 0px;
}
.rsts-skin-tao .rsts-nav {
	position: absolute;
	left: 0;
	bottom: 12%;
	width: 100%;
	opacity: 0;
}
@media screen and (max-width: 900px) {
	.rsts-skin-tao .rsts-nav {
		bottom: 30px;
	}
}
.rsts-skin-tao .rsts-nav ul {
	/* Setting height to zero to fix click area */
	height: 0;
	margin: 0;
	padding: 0;
	text-align: center;
}
.rsts-skin-tao .rsts-nav li {
	display: inline;
}
.rsts-skin-tao .rsts-nav a {
	display: inline-block;
	outline: none;
	margin: 3px;
	padding: 5px;
}
.rsts-skin-tao .rsts-nav-bullets a {
	overflow: hidden;
	width: 18px;
	height: 18px;
	padding: 6px;
	line-height: 0;
	text-indent: -99em;
}
.rsts-skin-tao .rsts-nav-bullets a:after {
	content: "";
	display: block;
	width: 6px;
	height: 6px;
	border: 2px solid #575656;
	border-radius: 100%;
	background-color: white;
}
.rsts-skin-tao .rsts-nav-bullets a:hover:after,
.rsts-skin-tao .rsts-nav-bullets a.active:after {
	background-color: #575656;
}
.rsts-skin-tao .rsts-nav-numbers a,
.rsts-skin-tao .rsts-nav-tabs a {
	margin: 5px;
	border: 2px solid #575656;
	border-radius: 0px;
	font-size: 0.8125em;
	line-height: 0.61538em;
	color: #575656;
	background-color: white;
}
.rsts-skin-tao .rsts-nav-numbers a:hover,
.rsts-skin-tao .rsts-nav-numbers a.active,
.rsts-skin-tao .rsts-nav-tabs a:hover,
.rsts-skin-tao .rsts-nav-tabs a.active {
	color: white;
	background-color: #575656;
	text-decoration: none;
}
.rsts-skin-tao .rsts-nav-thumbs a {
	margin: 0;
	padding: 0;
}
.rsts-skin-tao .rsts-nav-prev,
.rsts-skin-tao .rsts-nav-next {
	display: none !important;
}
.rsts-skin-tao .rsts-video-play,
.rsts-skin-tao .rsts-video-stop {
	opacity: 1;
}
.rsts-skin-tao .rsts-video-play {
	top: 50%;
	right: auto;
	bottom: auto;
	left: 50%;
	width: 5.25em;
	height: 5.25em;
	margin: -2.625em 0 0 -2.625em;
	border: 3px solid #575656;
	border-radius: 100%;
	background-color: rgba(87, 86, 86, 0.6);
	transition: background-color 0.3s;
}
.rsts-skin-tao .rsts-video-play:after {
	content: "\25b6";
	padding: 0;
	margin-left: 0.21429em;
	font-size: 1.75em;
	line-height: 2.78571em;
	text-align: center;
}
.rsts-skin-tao .rsts-video-play:hover {
	background-color: #575656;
}
.rsts-skin-tao .rsts-video-stop {
	top: 20px;
	right: 20px;
	left: auto;
	margin-top: 0;
	border-radius: 0px;
}
.rsts-skin-tao .rsts-video-stop:after {
	content: "\d7";
	color: white;
	padding: 0.78571em;
}
.rsts-skin-tao .rsts-video-youtube > .rsts-video-stop {
	top: 30px;
	right: 10px;
	background-color: #1b1b1b;
}
.rsts-skin-tao .rsts-video-youtube > .rsts-video-stop:hover {
	background-color: #cc181e;
}
.rsts-skin-tao .rsts-video-vimeo > .rsts-video-stop {
	top: 10px;
	right: auto;
	left: 10px;
	background-color: #111a19;
}
.rsts-skin-tao .rsts-video-vimeo > .rsts-video-stop:hover {
	background-color: #00adef;
}
.rsts-skin-tao .rsts-video-ipad > .rsts-video-iframe {
	padding-top: 38px;
	background-color: black;
}
.rsts-skin-tao .rsts-video-ipad > .rsts-video-stop {
	top: 1px;
	right: 10px;
	left: auto;
}
.rsts-skin-tao.rsts-video-playing .rsts-nav,
.rsts-skin-tao.rsts-video-playing .rsts-prev,
.rsts-skin-tao.rsts-video-playing .rsts-next {
	display: none;
}
.rsts-skin-tao.rsts-touch .rsts-nav {
	opacity: 1;
}
.rsts-skin-tao .rsts-progress {
	position: absolute;
	top: 0;
	right: 0;
	width: 100%;
	height: 2px;
	background-color: black;
	opacity: 0;
	transition: opacity 0.2s linear;
}
.rsts-skin-tao .rsts-progress div {
	height: 100%;
	background-color: white;
}
.rsts-skin-tao .rsts-progress.rsts-progress-active {
	opacity: 0.3;
}

.rsts-skin-testimonials-centered.rsts-main,
.rsts-skin-partner.rsts-main,
.rsts-skin-mega-dropdown.rsts-main {
	position: relative;
	margin: 2.25em 0;
}
.rsts-skin-testimonials-centered .rsts-view,
.rsts-skin-partner .rsts-view,
.rsts-skin-mega-dropdown .rsts-view {
	padding: 0 3.75em;
}
@media screen and (max-width: 900px) {
	.rsts-skin-testimonials-centered .rsts-view,
	.rsts-skin-partner .rsts-view,
	.rsts-skin-mega-dropdown .rsts-view {
		padding-right: 1.875em;
		padding-left: 1.875em;
	}
}
.rsts-skin-testimonials-centered .rsts-nav ul,
.rsts-skin-partner .rsts-nav ul,
.rsts-skin-mega-dropdown .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,
.rsts-skin-mega-dropdown .rsts-prev,
.rsts-skin-mega-dropdown .rsts-next {
	position: absolute;
	top: 50%;
	left: 0;
	margin-top: -1em;
	border: 1px solid #dddddd;
	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,
.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 {
	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,
.sidebar .rsts-skin-mega-dropdown .rsts-prev,
.sidebar .rsts-skin-mega-dropdown .rsts-next {
	bottom: 0.375em;
}
.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,
.rsts-skin-mega-dropdown .rsts-prev:after,
.rsts-skin-mega-dropdown .rsts-next:after {
	font: 0.875em/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: #575656;
}
.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,
.rsts-skin-mega-dropdown .rsts-prev:hover:after,
.rsts-skin-mega-dropdown .rsts-prev:focus:after,
.rsts-skin-mega-dropdown .rsts-next:hover:after,
.rsts-skin-mega-dropdown .rsts-next:focus:after {
	color: #3d3d3d;
}
.rsts-skin-testimonials-centered .rsts-next,
.rsts-skin-partner .rsts-next,
.rsts-skin-mega-dropdown .rsts-next {
	left: auto;
	right: 0;
}
.rsts-skin-testimonials-centered .rsts-next:after,
.rsts-skin-partner .rsts-next:after,
.rsts-skin-mega-dropdown .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,
.rsts-skin-mega-dropdown .rsts-nav-prev,
.rsts-skin-mega-dropdown .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 #dddddd;
	border-radius: 100%;
	background: #dddddd;
	background: rgba(221, 221, 221, 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: #dddddd;
}

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

.rsts-skin-mega-dropdown.rsts-main {
	margin: 0;
}
.rsts-skin-mega-dropdown .rsts-view {
	padding: 0;
}
.rsts-skin-mega-dropdown .rsts-prev {
	left: -6%;
	right: auto;
}
.rsts-skin-mega-dropdown .rsts-next {
	left: auto;
	right: -6%;
}
.rsts-skin-mega-dropdown .rsts-nav {
	text-align: center;
}

.rsts-skin-carousel .rsts-nav ul {
	margin: 0.375em 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.25em;
}
.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: 1em/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: #575656;
}
.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: #3d3d3d;
}
.rsts-skin-carousel .rsts-nav-next {
	margin-left: 1.25em;
	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%;
}

/* source-sans-3-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: 'Source Sans 3';
  font-style: normal;
  font-weight: 400;
  src: url('../../files/tao/fonts/source-sans-3-v19-latin-regular.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* source-sans-3-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: 'Source Sans 3';
  font-style: normal;
  font-weight: 500;
  src: url('../../files/tao/fonts/source-sans-3-v19-latin-500.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* source-sans-3-600 - 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: 'Source Sans 3';
  font-style: normal;
  font-weight: 600;
  src: url('../../files/tao/fonts/source-sans-3-v19-latin-600.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* source-sans-3-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: 'Source Sans 3';
  font-style: normal;
  font-weight: 700;
  src: url('../../files/tao/fonts/source-sans-3-v19-latin-700.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* poppins-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: 'Poppins';
  font-style: normal;
  font-weight: 400;
  src: url('../../files/tao/fonts/poppins-v24-latin-regular.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* poppins-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: 'Poppins';
  font-style: normal;
  font-weight: 500;
  src: url('../../files/tao/fonts/poppins-v24-latin-500.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* poppins-600 - 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: 'Poppins';
  font-style: normal;
  font-weight: 600;
  src: url('../../files/tao/fonts/poppins-v24-latin-600.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* poppins-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: 'Poppins';
  font-style: normal;
  font-weight: 700;
  src: url('../../files/tao/fonts/poppins-v24-latin-700.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* =====================================================================
   Venne Media – NAVIGATION als Menü-Overlay (Fullscreen)
   ---------------------------------------------------------------------
   „Menü"-Button im Header (Icon + Wort) öffnet ein barrierefreies
   Fullscreen-Overlay. Die Links kommen aus einem STANDARD-Contao-
   Navigationsmodul (Klasse `overlay-menue`) via {{insert_module::ID}} –
   verschachtelte Liste. Untermenüs klappen per KLICK auf (Pfeil-Button,
   Akkordeon – vm_nav_submenu.js). Diese CSS stylt Button, Overlay, Links.

   Markup: nav-overlay-html-element.html · Verhalten: vm_nav_overlay.js
   (Öffnen/Schließen) + vm_nav_submenu.js (Untermenü-Akkordeon)
   Nach custom_vm_base.css + custom_vm_icon_boxes.css (Tokens) laden.
   Icons als CSS-Maske (KEIN Inline-SVG – Contao filtert das im „Freier
   HTML"-Element). background-color:currentColor -> Icon nimmt Textfarbe an.
   ===================================================================== */

/* --- „Menü"-Button im Header ---------------------------------------- */
.vm-menu-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5em;
  padding: 0.55em 1.15em;                 /* NICHT größer als der Rückruf-Button */
  -webkit-appearance: none;
          appearance: none;
  background: transparent !important;      /* TAO-Button-Farbe/-Gradient aus */
  background-image: none !important;
  /* Die Kante ist hier BEDIEN-Information, kein Zierrat: Sie macht aus dem
     Text „Menü" einen sichtbaren Knopf. Der dekorative --vm-border lag auf
     Weiß bei 1,24:1 – der Standardzustand hatte damit praktisch gar keine
     Kante, erst beim Hover wurde ein Knopf daraus.

     Der Wert ist im Browser direkt verglichen worden: --vm-border-strong
     (3,62:1, der Ton von Quicknav und Top-Link) wirkte in der Kopfzeile zu
     blass, --vm-text (7,32:1) trägt den Knopf besser. Hier steht der Knopf
     anders als dort nicht auf einer eigenen weißen Fläche, sondern direkt
     im Header – eine zurückhaltende Kante verliert sich da.

     Also bewusst NICHT derselbe Token wie bei den schwebenden Elementen.
     Beide Werte erfüllen WCAG 1.4.11 (nötig 3:1); die Wahl dazwischen ist
     reine Gestaltung.

     Die BREITE bleibt bei 2px: Das Polster ist darauf abgestimmt, dass der
     Knopf nicht größer wirkt als „Rückruf anfordern" (s. oben). Wer die
     Kante dämpfen will, ändert die FARBE, nicht die Breite – sonst
     verschiebt sich die Außengröße. Mittelweg wäre --vm-text-2
     (#63615f, 6,17:1). */
  border: 2px solid var(--vm-text);
  border-radius: var(--vm-radius-pill, 999px);
  color: var(--vm-text);
  font-family: var(--vm-font-body);
  font-weight: 700;
  font-size: 1rem;
  line-height: 1.15;
  text-transform: none !important;         /* kein TAO-UPPERCASE */
  text-shadow: none !important;            /* TAO-Textschatten aus */
  box-shadow: none !important;             /* TAO-Schatten aus */
  cursor: pointer;
  transition: border-color var(--vm-transition), color var(--vm-transition);
}
/* Hover: NUR der Rahmen wird rot, die Beschriftung bleibt dunkel
   (#c9390f auf Weiß = 5,15:1, also auch als Kante einwandfrei). */
.vm-menu-btn:hover {
  border-color: var(--vm-primary);
  color: var(--vm-text);
  background: transparent !important;
  box-shadow: none !important;
  text-shadow: none !important;
}

/* Fokus BEWUSST getrennt vom Hover: Der Fokusring ist selbst akzentrot.
   Würde der Rahmen hier ebenfalls rot, läge Rot auf Rot und der Ring
   verschwämme mit dem Knopf. Mit dem dunklen Rahmen hebt er sich ab. */
.vm-menu-btn:focus-visible {
  border-color: var(--vm-text);
  color: var(--vm-text);
  background: transparent !important;
  box-shadow: none !important;
  text-shadow: none !important;
}
.vm-menu-btn::-moz-focus-inner { border: 0; padding: 0; }   /* Firefox-Innenrahmen */

/* Masken-Icon (Button, Schließen, Kontakt) */
.vm-menu-ico {
  flex: 0 0 auto;
  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;
}
.vm-menu-ico--burger { --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 6h16M4 12h16M4 18h16'/%3E%3C/svg%3E"); }
.vm-menu-ico--close  { --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.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 6 6 18M6 6l12 12'/%3E%3C/svg%3E"); }
.vm-nav-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='1.9' 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-nav-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='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='m22 7-10 6L2 7'/%3E%3C/svg%3E"); }
.vm-nav-ico--msg     { --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"); }

/* --- Fullscreen-Overlay --------------------------------------------- */
.vm-nav-overlay {
  position: fixed;
  inset: 0;
  z-index: 1000;
  overflow-y: auto;                        /* scrollt, falls Inhalt höher als Viewport */
  -webkit-overflow-scrolling: touch;
  background: rgba(240, 239, 236, 0.98);   /* helles Warmgrau (~--vm-grey) */
  backdrop-filter: blur(6px);
}
.vm-nav-overlay[hidden] { display: none; }

.vm-nav-overlay-inner {
  position: relative;
  max-width: 1600px;
  width: 100%;
  min-height: 100%;
  margin-inline: auto;
  padding: clamp(4.5rem, 8vw, 6rem) clamp(1.15rem, 4vw, 4rem) clamp(2rem, 5vw, 4rem);
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: clamp(1.5rem, 4vw, 2.5rem);
}

.vm-nav-close {
  position: absolute;
  top: 1.2rem;
  right: clamp(1.15rem, 4vw, 4rem);
  width: 52px;
  height: 52px;
  padding: 0 !important;                       /* TAO-Button-Padding aus -> X mittig */
  -webkit-appearance: none;
          appearance: none;
  display: grid;
  place-items: center;
  border: 0 !important;
  border-radius: 50%;
  background: var(--vm-accent) !important;      /* Akzent-Kreis */
  background-image: none !important;
  color: #ffffff !important;                    /* X weiß (currentColor der Maske) */
  box-shadow: none !important;
  text-shadow: none !important;
  cursor: pointer;
  transition: background var(--vm-transition), transform var(--vm-transition);
}
.vm-nav-close:hover,
.vm-nav-close:focus-visible {
  background: var(--vm-accent-dark) !important;
  color: #ffffff !important;
  transform: rotate(90deg);
}
.vm-nav-close .vm-menu-ico { width: 1.4rem; height: 1.4rem; }
.vm-nav-close::-moz-focus-inner { border: 0; padding: 0; }

/* =====================================================================
   Nav-Links (eingebundenes Standard-Navigationsmodul)
   ---------------------------------------------------------------------
   Große, gestapelte Liste. Das Standard-Modul rendert das Untermenü NUR
   im aktiven/Trail-Zweig, statisch – kein Hover, kein JS. Gescoped auf
   #vmNavOverlay .vm-nav-overlay-nav; !important schlägt allgemeine
   TAO-Nav-Styles sicher.
   ===================================================================== */
#vmNavOverlay .vm-nav-overlay-nav ul {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
}
#vmNavOverlay .vm-nav-overlay-nav .level_1 { gap: clamp(0.5rem, 1.4vw, 1rem) !important; }
#vmNavOverlay .vm-nav-overlay-nav li { margin: 0 !important; }
#vmNavOverlay .vm-nav-overlay-nav li::before { content: none !important; }   /* evtl. TAO-Bullet aus */

/* Ebene 1: große Links (a UND strong = aktuelle Seite) */
#vmNavOverlay .vm-nav-overlay-nav a,
#vmNavOverlay .vm-nav-overlay-nav strong {
  display: block !important;
  width: max-content;
  max-width: 100%;
  padding: 0.08em 0 !important;
  font-family: var(--vm-font-display) !important;
  font-weight: 700 !important;
  font-size: clamp(1.45rem, 1rem + 1.6vw, 2.6rem) !important;
  line-height: 1.3 !important;
  letter-spacing: -0.01em !important;
  color: var(--vm-text) !important;
  text-decoration: none !important;
  background: none !important;
}
#vmNavOverlay .vm-nav-overlay-nav a:hover,
#vmNavOverlay .vm-nav-overlay-nav a:focus-visible { color: var(--vm-accent) !important; }
/* Aktuelle Seite (strong.active) + Trail dauerhaft im Akzent = „Du bist hier". */
#vmNavOverlay .vm-nav-overlay-nav strong.active,
#vmNavOverlay .vm-nav-overlay-nav a.trail { color: var(--vm-accent) !important; }

/* Ebene 2 (nur im aktiven/Trail-Zweig): kleiner, leichter, eingerückt */
#vmNavOverlay .vm-nav-overlay-nav .level_2 {
  gap: 0.15rem !important;
  margin: 0.25rem 0 0.6rem 4rem !important;
}
#vmNavOverlay .vm-nav-overlay-nav .level_2 a,
#vmNavOverlay .vm-nav-overlay-nav .level_2 strong {
  font-size: clamp(1.1rem, 0.95rem + 0.9vw, 1.6rem) !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
  color: var(--vm-text-2) !important;
}
#vmNavOverlay .vm-nav-overlay-nav .level_2 a:hover,
#vmNavOverlay .vm-nav-overlay-nav .level_2 a:focus-visible,
#vmNavOverlay .vm-nav-overlay-nav .level_2 strong.active { color: var(--vm-accent) !important; }

/* =====================================================================
   Untermenü per KLICK (Akkordeon) – progressiv per vm_nav_submenu.js
   ---------------------------------------------------------------------
   Der Elternlink navigiert weiter; ein separater Pfeil-Button klappt das
   Untermenü auf/zu. Kollaps-Regeln greifen NUR, wenn das JS die Klasse
   `vm-collapsible` gesetzt hat -> ohne JS bleibt alles sichtbar.
   Voraussetzung: Modul gibt Untermenüs ALLER Hauptpunkte aus (li.submenu).
   ===================================================================== */
/* Hauptpunkt mit Untermenü: Link + Pfeil in einer Zeile, Untermenü darunter */
#vmNavOverlay .vm-nav-overlay-nav .level_1 > li.submenu {
  display: flex !important;
  flex-wrap: wrap;
  align-items: center;
  column-gap: 0.35em;
}
#vmNavOverlay .vm-nav-overlay-nav .level_1 > li.submenu > .level_2 {
  flex-basis: 100%;
  width: 100%;
}
/* Pfeil-Button (Chevron als Maske, dreht sich beim Öffnen) */
#vmNavOverlay .vm-nav-overlay-nav .vm-subtoggle {
  -webkit-appearance: none;
          appearance: none;
  flex: 0 0 auto;
  width: 2.3rem;
  height: 2.3rem;
  padding: 0 !important;
  display: grid;
  place-items: center;
  border: 0 !important;
  border-radius: 50%;
  background: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
  text-shadow: none !important;
  color: var(--vm-text-2);
  cursor: pointer;
  transition: background var(--vm-transition), color var(--vm-transition);
}
#vmNavOverlay .vm-nav-overlay-nav .vm-subtoggle:hover,
#vmNavOverlay .vm-nav-overlay-nav .vm-subtoggle:focus-visible {
  background: rgba(87, 86, 86, 0.10) !important;
  color: var(--vm-text) !important;
}
#vmNavOverlay .vm-nav-overlay-nav .vm-subtoggle::-moz-focus-inner { border: 0; padding: 0; }
#vmNavOverlay .vm-nav-overlay-nav .vm-subtoggle::before {
  content: "";
  width: 1.45rem;
  height: 1.45rem;
  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='m6 9 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='m6 9 6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat;
  transition: transform var(--vm-transition);
}
#vmNavOverlay .vm-nav-overlay-nav .vm-subtoggle[aria-expanded="true"]::before { transform: rotate(180deg); }
/* Kollaps-Zustand (nur mit JS = Klasse vm-collapsible) */
#vmNavOverlay .vm-nav-overlay-nav li.vm-collapsible > .level_2 {
  overflow: hidden;
  max-height: 0;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  transition: max-height 0.3s ease;
}
#vmNavOverlay .vm-nav-overlay-nav li.vm-collapsible.is-open > .level_2 {
  margin-top: 0.25rem !important;
  margin-bottom: 0.6rem !important;
}

/* Skip-Link + leere Anker (.invisible) des Nav-Templates versteckt lassen –
   sonst würden die großen Link-Regeln sie aufblähen.

   ABER: `:not(:focus)` ist hier entscheidend. Ohne die Ausnahme schlägt
   dieser Selektor (1,2,0 + !important) die Enthüllungsregel
   `a.invisible:focus` aus custom_vm_base.css (0,2,1 + !important) – eine
   ID gewinnt gegen jede Zahl von Klassen. Der Sprunglink „Navigation
   überspringen" bliebe dann auch im Fokus unsichtbar: ein Tastaturnutzer
   landet auf einem Tab-Stopp, den er nicht sieht (WCAG 2.4.7).

   Mit `:not(:focus)` tritt die Klammer im Fokus zurück und die
   Enthüllung greift. Die leeren Ziel-<span class="invisible"> sind nicht
   fokussierbar und bleiben deshalb unberührt. */
/* Im Fokus wird der Sprunglink sichtbar (Enthüllung in custom_vm_base.css).
   Dann greifen aber die großen Ebene-1-Linkregeln weiter unten auf ihn:
   `#vmNavOverlay .vm-nav-overlay-nav a` erzwingt per !important
   `font-size: clamp(1.45rem … 2.6rem)`, Poppins und display:block – der
   Sprunglink erschien dadurch riesig, wie ein Menüpunkt.

   Diese Regel holt ihn auf Utility-Größe zurück. Spezifität (1,3,1)
   schlägt die Linkregel (1,2,1) – auch deren Variante im
   500px-Media-Query, die dieselbe Spezifität hat.

   #c9390f auf Weiß = 5,15:1 (Text) bzw. weit über den 3:1 für den Ring. */
#vmNavOverlay .vm-nav-overlay-nav a.invisible:focus {
  display: inline-block !important;
  width: auto !important;
  max-width: calc(100vw - 1rem) !important;

  padding: 0.6rem 1rem !important;
  font-family: var(--vm-font-body) !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
  line-height: 1.3 !important;
  letter-spacing: normal !important;

  color: var(--vm-primary, #c9390f) !important;
  background: var(--vm-white, #ffffff) !important;
  border-radius: var(--vm-radius-small, 10px) !important;
  text-decoration: underline !important;
  text-underline-offset: 0.2em !important;

  outline: 3px solid var(--vm-primary, #c9390f) !important;
  outline-offset: 2px !important;
  box-shadow: 0 6px 20px rgba(87, 86, 86, 0.22) !important;
}

#vmNavOverlay .vm-nav-overlay-nav .invisible:not(:focus) {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* =====================================================================
   Dezente graue Icons vor den HAUPTmenüpunkten (Level 1)
   ---------------------------------------------------------------------
   Pro Seite im Contao eine CSS-Klasse vergeben (Seite -> „Experteneinst."
   -> CSS-Klasse): nav-ico-home / nav-ico-agentur / nav-ico-gewerbe /
   nav-ico-behoerden / nav-ico-projekte / nav-ico-contao. Nur Level 1 –
   Unterpunkte bleiben ohne Icon. Icon = CSS-Maske, dezent grau.
   Größe: --vm-navico-size · Farbe/Deckkraft unten justierbar.
   ===================================================================== */
#vmNavOverlay .vm-nav-overlay-nav .level_1 > li[class*="nav-ico-"] > a::before,
#vmNavOverlay .vm-nav-overlay-nav .level_1 > li[class*="nav-ico-"] > strong::before {
  content: "";
  display: inline-block;
  width: 0.72em;
  height: 0.72em;
  margin-right: 0.5em;
  vertical-align: -0.04em;
  flex: 0 0 auto;
  background-color: var(--vm-text-2, #63615f);   /* dezentes Grau */
  opacity: 0.5;                                    /* ganz zurückhaltend */
  -webkit-mask: var(--vm-navico) center / contain no-repeat;
          mask: var(--vm-navico) center / contain no-repeat;
}
/* Icon je Seite (die Klasse sitzt auf der <li>; Variable erbt zum ::before) */
#vmNavOverlay .vm-nav-overlay-nav .nav-ico-home     { --vm-navico: 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"); }
/* „Die Agentur": Personengruppe (Kontur). */
#vmNavOverlay .vm-nav-overlay-nav .nav-ico-agentur  { --vm-navico: 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"); }
/* „Gewerbliche Kunden": ein Zahnrad (Kontur). */
#vmNavOverlay .vm-nav-overlay-nav .nav-ico-gewerbe  { --vm-navico: 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.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E"); }
/* „Öffentliche Auftraggeber": Aktentasche (Kontur). */
#vmNavOverlay .vm-nav-overlay-nav .nav-ico-behoerden{ --vm-navico: 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='14' x='2' y='7' rx='2'/%3E%3Cpath d='M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16'/%3E%3C/svg%3E"); }
#vmNavOverlay .vm-nav-overlay-nav .nav-ico-projekte { --vm-navico: 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='7' height='7' x='3' y='3' rx='1'/%3E%3Crect width='7' height='7' x='14' y='3' rx='1'/%3E%3Crect width='7' height='7' x='14' y='14' rx='1'/%3E%3Crect width='7' height='7' x='3' y='14' rx='1'/%3E%3C/svg%3E"); }
#vmNavOverlay .vm-nav-overlay-nav .nav-ico-contao   { --vm-navico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1024 1024'%3E%3Cpath d='M91.034 607.278c28.558 133.644 52.506 260.89 136.076 352.502h-159.32c-37.292 0-67.79-30.33-67.79-67.446v-760.888c0-37.1 30.498-67.446 67.79-67.446h115.12c-27.67 25.024-51.896 53.996-73.296 86.766-91.12 139.646-53.672 292.154-18.58 456.512zM956.228 64h-180.674c42.78 42.846 78.864 98.384 106.072 167.378l-274.674 58.090c-30.098-57.786-75.854-105.922-165.346-86.992-49.348 10.448-82.126 38.242-96.592 68.606-17.816 37.48-26.618 79.434 16.048 279.068 42.598 199.55 67.79 234.4 99.34 261.408 25.654 21.81 66.938 33.98 116.312 23.506 89.528-18.886 111.658-81.366 115.52-146.35l274.674-58.12c6.472 142.392-37.51 252.616-115.136 329.184h104.456c37.266 0 67.782-30.33 67.782-67.446v-760.886c-0.002-37.1-30.518-67.446-67.782-67.446z'/%3E%3C/svg%3E"); }

/* --- Fuß: Kontakt + CTA --------------------------------------------- */
.vm-nav-overlay-foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem 1.6rem;
  border-top: 1px solid #D4D2CC;
  padding-top: clamp(1.4rem, 3vw, 2rem);
}
.vm-nav-contact {
  display: inline-flex;
  align-items: center;
  gap: 0.45em;
  color: var(--vm-accent-dark);
  font-weight: 600;
  font-size: 1.05rem;
  text-decoration: none;
}
.vm-nav-contact:hover,
.vm-nav-contact:focus-visible { color: var(--vm-accent); text-decoration: none !important; }
.vm-nav-contact .vm-menu-ico { width: 1.1em; height: 1.1em; }
/* CTA im Fuß: Icon links (Maske), Größe wie Standard-Button */
.vm-nav-overlay-foot .button { display: inline-flex; align-items: center; gap: 0.5em; }
.vm-nav-overlay-foot .button .vm-menu-ico { width: 1.1em; height: 1.1em; }

/* Body-Scroll-Sperre bei offenem Overlay (setzt vm_nav_overlay.js) */
body.vm-nav-open { overflow: hidden; }

/* =====================================================================
   Menü-Button rechts in der TAO-Kopfzeile
   ---------------------------------------------------------------------
   .header-navigation-inner enthält Logo (p.logo) + den Menü-Button
   (das Overlay wird per JS an <body> ausgelagert). Inner als Flex-Zeile,
   Logo links, Button rechts. !important, da TAO viel !important nutzt.
   ===================================================================== */
.header-navigation-inner {
  display: flex !important;
  align-items: center !important;
  flex-wrap: nowrap;
}
.header-navigation-inner > .logo,
.header-navigation-inner > p.logo { margin-bottom: 0 !important; }   /* TAO-Absatzabstand aus */
.header-navigation-inner > .vm-menu-btn {
  margin-left: auto !important;
  margin-right: 3.7037% !important;   /* symmetrisch zum Logo-Abstand links (TAO logo-left) */
}

/* =====================================================================
   TAO-eigene Mobil-Navigation ausblenden (Sicherheitsnetz)
   ---------------------------------------------------------------------
   Falls TAO ≤1200px seinen eigenen Hamburger/Off-Canvas einblendet
   (.main-navigation-mobile*), ausblenden – unser Overlay ersetzt das
   komplett, sonst gäbe es doppelte Navigation. Harmlos, falls nicht vorhanden.
   ===================================================================== */
.main-navigation-mobile-open,
.main-navigation-mobile,
.main-navigation-mobile-close { display: none !important; }

/* =====================================================================
   ≤1200px: Overlay-Layout auf normalen Fluss umstellen
   ---------------------------------------------------------------------
   Auf kleineren Screens die zentrierte Flex-Variante (Desktop) verlassen:
   Inhalt fließt von oben, der Fuß wird absolut unten fixiert. So bleibt
   auch bei längerer Navi + Untermenü alles sauber scrollbar.
   ===================================================================== */
@media (max-width: 1200px) {
  .vm-nav-overlay-inner {
    display: block;
    padding-bottom: clamp(6.5rem, 16vw, 9rem);   /* Platz für den absoluten Fuß */
  }
  .vm-nav-overlay-foot {
    position: absolute;
    left: clamp(1.15rem, 4vw, 4rem);
    right: clamp(1.15rem, 4vw, 4rem);
    bottom: clamp(1.5rem, 4vw, 2.5rem);
  }
}

@media (max-width: 900px) {
#vmNavOverlay .vm-nav-overlay-nav .level_2 {
  margin: 0.25rem 0 0.6rem 3rem !important;
}
}

@media (max-width: 600px) {
#vmNavOverlay .vm-nav-overlay-nav .level_2 {
  margin: 0.25rem 0 0.6rem 2rem !important;
}
}

@media (max-width: 500px) {
#vmNavOverlay .vm-nav-overlay-nav a, #vmNavOverlay .vm-nav-overlay-nav strong {
  font-size: 1.15rem !important;
}
#vmNavOverlay .vm-nav-overlay-nav .level_2 a,
#vmNavOverlay .vm-nav-overlay-nav .level_2 strong {
  font-size: 1.025rem !important;
}
}

/* =====================================================================
   Venne Media – QUICKNAV (Schnellzugriff)
   ---------------------------------------------------------------------
   Desktop/Tablet: schmale, VERTIKALE Leiste am rechten Rand, icon-only.
                   Label fährt bei Hover/Fokus aus (bleibt im DOM = a11y).
   Mobil:          daumenfreundliche Leiste unten, volle Breite.

   Als CUSTOM-HTML-Inhaltselement einfügen (Markup: quicknav-html-element.html).
   Icons per CSS-Maske (KEIN Inline-SVG – Contao filtert das raus).
   Nach custom_vm_base.css laden.
   ===================================================================== */

/* --- Reserve am Seitenende ------------------------------------------
   Eine position:fixed-Leiste liegt ÜBER dem Dokument. Ohne Reserve
   klemmt der Footer darunter, und – wichtiger – beim Tabben scrollt der
   Browser ein Element bis an den Viewportrand, also HINTER die Leiste
   (WCAG 2.4.11 „Fokus nicht verdeckt"). `scroll-padding-bottom` hält
   ihn davor an. Das ist der Fehler, den fixierte Leisten fast immer
   haben.

   ABWEICHUNG vom Bauplan aus anderen Projekten (dort Bodenleiste auf
   ALLEN Breiten): Hier steht die Leiste auf Desktop/Tablet VERTIKAL am
   rechten Rand und wird erst ≤620px zur Bodenleiste. Am Seitenende ist
   sie oberhalb von 620px also gar nicht im Weg – die Reserve ist dort
   bewusst 0 und wird erst im Media Query gesetzt. Eine pauschale
   Reserve würde auf Desktop nur einen leeren Streifen unter dem Footer
   erzeugen.

   Eine Variable für alles, was sich an der Leiste orientiert (Footer,
   Sprungmarken, Top-Link) – so bleibt es konsistent, wenn die Höhe
   später angepasst wird.                                             */
:root { --vm-quicknav-space: 0px; }

html { scroll-padding-bottom: var(--vm-quicknav-space); }

/* Am FUSS, nicht an einem einzelnen Band: Welches Band zuletzt kommt,
   hängt vom Aufbau ab (heute die Rechtsleiste, morgen eine Zeile mehr). */
.page-footer { padding-bottom: var(--vm-quicknav-space); }

.vm-quicknav {
  position: fixed;
  z-index: 100;
  right: 1rem;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;                 /* nur die Leiste selbst klickbar */
}

.vm-quicknav ul {
  list-style: none;
  margin: 0;
  padding: 7px;
  display: flex;
  flex-direction: column;
  gap: 5px;

  background: var(--vm-white);

  /* Die Leiste schwebt über beliebigem Inhalt. Ihre weiße Fläche hebt sich
     vom hellgrauen Seitengrund praktisch nicht ab (1,15:1) – abgegrenzt
     wurde sie bisher allein durch den Schatten. Schatten sind dafür aber
     unzuverlässig und im Kontrastmodus des Betriebssystems ganz weg.
     --vm-border-strong (#8a8681) schafft 3,62:1 gegen die weiße Fläche und
     3,14:1 gegen den grauen Grund – der hellste Wert, der beide Seiten
     erfüllt, bleibt also dezent.
     (Die Icons selbst standen schon immer mit 7,32:1 auf Weiß.) */
  border: 1px solid var(--vm-border-strong, #8a8681);
  border-radius: var(--vm-radius);
  box-shadow: 0 12px 34px rgba(87, 86, 86, 0.22);
  pointer-events: auto;
}
.vm-quicknav li { margin: 0; }
.vm-quicknav li::before { display: none !important; }   /* TAO-Bullet aus */

.vm-quicknav a {
  display: flex;
  align-items: center;
  padding: 0.62em;
  border-radius: 12px;
  overflow: hidden;

  /* Zielgröße: Polster + Icon ergaben rund 41px – knapp unter den 44px
     aus WCAG 2.5.5. Als Mindestmaß statt mehr Polster, damit die
     eingeklappte Leiste weiterhin quadratisch wirkt und nicht breiter
     wird. (AA verlangt nur 24px, 44px ist AAA – hier billig zu haben.) */
  min-width: 44px;
  min-height: 44px;
  box-sizing: border-box;

  color: var(--vm-text);
  font-family: var(--vm-font-body);
  font-weight: 700;
  font-size: 1rem;
  line-height: 1;
  text-decoration: none !important;
  white-space: nowrap;
  transition: background var(--vm-transition), color var(--vm-transition);
}
.vm-quicknav a:hover,
.vm-quicknav a:focus-visible { background: var(--vm-accent); color: #fff; }

/* Icon (Maske) + ausfahrendes Label */
.vm-quicknav .vm-qn-icon {
  flex: 0 0 auto;
  width: 1.3em;
  height: 1.3em;
  background-color: currentColor;
  -webkit-mask: var(--vm-ico) center / contain no-repeat;
          mask: var(--vm-ico) center / contain no-repeat;
}
.vm-quicknav a span:not(.vm-qn-icon) {
  max-width: 0;
  opacity: 0;
  overflow: hidden;
  transition: max-width 280ms ease, opacity 200ms ease, margin-left 280ms ease;
}
.vm-quicknav a:hover span:not(.vm-qn-icon),
.vm-quicknav a:focus-visible span:not(.vm-qn-icon) {
  max-width: 9rem;
  opacity: 1;
  margin-left: 0.55em;
}

/* Icon-Set */
.vm-qn-icon--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='1.9' 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-qn-icon--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='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='m22 7-10 6L2 7'/%3E%3C/svg%3E"); }
.vm-qn-icon--grid  { --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='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='7' height='7' rx='1'/%3E%3Crect x='14' y='3' width='7' height='7' rx='1'/%3E%3Crect x='14' y='14' width='7' height='7' rx='1'/%3E%3Crect x='3' y='14' width='7' height='7' rx='1'/%3E%3C/svg%3E"); }
.vm-qn-icon--list  { --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='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6h16M4 12h16M4 18h10'/%3E%3C/svg%3E"); }
.vm-qn-icon--msg   { --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='1.9' 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"); }

/* -----------------------------------------------------------------
   MOBIL (≤620px): untere Leiste, Icon über Label, immer sichtbar.
   ----------------------------------------------------------------- */
@media (max-width: 620px) {
  .vm-quicknav {
    right: 0;
    top: auto;
    bottom: 0;
    left: 0;
    transform: none;
    width: 100%;
    padding-bottom: env(safe-area-inset-bottom);
  }
  .vm-quicknav ul {
    flex-direction: row;
    gap: 0;
    padding: 4px;
    border-radius: 0;
    border-left: 0;
    border-right: 0;
    border-bottom: 0;
    box-shadow: 0 -2px 14px rgba(87, 86, 86, 0.16);
  }
  .vm-quicknav li { flex: 1; min-width: 0; }
  .vm-quicknav a {
    flex-direction: column;
    gap: 0.22em;
    padding: 0.45em 0.2em;
    width: 100%;
    justify-content: center;
    font-size: 0.8rem;
  }
  /* auf Touch kein „klebender" Hover.
     NUR :hover zurücknehmen – :focus-visible NICHT mit in den Selektor.
     Der Fokus-Indikator ist genau das, was ein Tastaturnutzer hier
     braucht; ihn zusammen mit dem Hover zurückzusetzen ist der
     häufigste Fehler in Vorlagen für fixierte Leisten. */
  .vm-quicknav a:hover { background: transparent; color: var(--vm-text); }
  .vm-quicknav .vm-qn-icon { width: 1.4rem; height: 1.4rem; }
  /* Label auf Mobil immer zeigen */
  .vm-quicknav a span:not(.vm-qn-icon) { max-width: none; opacity: 1; margin-left: 0; }
}

/* =====================================================================
   Mobile Bottom-Bar in Akzent-Rot (auffällig; Weiß auf #c9390f ≈ 5,2:1 = AA)
   Kommt NACH dem obigen @media(max-width:620px)-Block -> gewinnt per Reihenfolge.
   Tap-/Fokus-Feedback als dezentes weißes Overlay (kein Akzent-auf-Weiß).
   ===================================================================== */
@media (max-width: 620px) {
  /* Erst HIER wird die Leiste zur Bodenleiste -> erst hier Platz am
     Seitenende reservieren (s. Kopf der Datei). Wert = Leistenhöhe
     (Icon + Label + Polster ≈ 60px) plus etwas Luft. */
  :root { --vm-quicknav-space: calc(4.25rem + env(safe-area-inset-bottom)); }

  .vm-quicknav ul {
    background: var(--vm-accent);
    border-color: var(--vm-accent-dark);
    box-shadow: 0 -2px 16px rgba(87, 86, 86, 0.28);

    /* Die rote Fläche entsteht NUR in diesem Media Query. Der rote
       Standard-Fokusring läge hier rot auf rot (1:1). Die Ausnahme
       gehört deshalb genau in die Regel, die das Rot setzt – dann gilt
       sie automatisch nur dort. */
    --vm-focus-ring: #ffffff;

    /* Der Ring liegt außerhalb des Links; ohne sichtbaren Überlauf
       schneidet die Leiste ihn ab. */
    overflow: visible;
  }
  .vm-quicknav a,
  .vm-quicknav a:hover,
  .vm-quicknav a:focus-visible { color: #fff; }
  .vm-quicknav a:active,
  .vm-quicknav a:focus-visible { background: rgba(255, 255, 255, 0.16); }
}

/* =====================================================================
   Venne Media – „Nach oben"-Link (TAO .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 Venne-Icons).
   Nach dem TAO-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, #575656);
  background: var(--vm-white, #ffffff);

  /* „Die Kante ist die Bedien-Information" – Rahmen ≥3:1 (WCAG 1.4.11),
     und zwar über einen EIGENEN Token, nicht den dekorativen Ton. Der
     Knopf schwebt über beliebigem Inhalt; --vm-border lag auf Weiß bei
     1,24:1 und über hellem Grund bei 1,08:1, war also keine Kante.
     --vm-border-strong: 3,62:1 gegen die weiße Fläche, 3,14:1 gegen den
     grauen Seitengrund. Gleicher Wert wie bei der Quicknav – beide
     schweben, beide brauchen dieselbe Abgrenzung. */
  border: 1px solid var(--vm-border-strong, #8a8681);
  border-radius: 50%;
  box-shadow: 0 6px 20px rgba(87, 86, 86, 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, #c9390f);
  border-color: var(--vm-accent, #c9390f);
  transform: translateY(-2px);
  box-shadow: 0 10px 26px rgba(87, 86, 86, 0.22);
  text-decoration: none;
}

/* Pfeil = Chevron nach oben als CSS-Maske (nimmt die Textfarbe an) */
.footer-top-link::after {
  content: "";
  position: static;
  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;
}

/* Die zwei TAO-Slide-Labels („nach oben") visuell ausblenden –
   bleiben aber für Screenreader als Linktext erhalten. */
.footer-top-link > span {
  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;
}

/* Mobil (≤620px): über die rote Quicknav-Bar heben, die dort ganz unten sitzt –
   sonst würde der Top-Link sie überdecken.

   Der Abstand kommt aus DERSELBEN Variable, die auch Footer-Reserve und
   scroll-padding speist (custom_vm_quicknav.css). Vorher stand hier der
   fertig ausgerechnete Wert 4.75rem – ändert sich die Leistenhöhe, muss
   man ihn sonst an drei Stellen nachziehen und vergisst eine.
   Oberhalb von 620px ist die Variable 0 (die Leiste steht dort vertikal
   am rechten Rand), der Top-Link behält also seine normale Position. */
@media (max-width: 620px) {
  .footer-top-link {
    right: 1rem;
    bottom: calc(var(--vm-quicknav-space, 0px) + 0.5rem);
  }
}

/* =====================================================================
   Venne Media – 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!):
   - Poppins 400/500/600/700 · Source Sans 3 400/500/600/700 · KEIN Italic, kein >700.

   BREAKPOINTS (System):
   - Inhalt max. 1600px · 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 TAO-Framework-CSS laden.
   ===================================================================== */

:root {
  color-scheme: light;
  --vm-font-display: "Poppins", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --vm-font-body:    "Source Sans 3", "Source Sans Pro", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --vm-fw-head: 700;
  --vm-radius-pill: 999px;
  --vm-content-max: 1600px;   /* max. Inhaltsbreite */
}

/* Grundschrift + Mindestgröße (nur setzen, falls das Theme es nicht schon tut). */
body {
  font-family: var(--vm-font-body);
  color: var(--vm-text, #575656);
  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, #575656);
  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 1600px, zentriert, mit Außenabstand
   --------------------------------------------------------------------- */
.vm-container {
  max-width: var(--vm-content-max);
  margin-inline: auto;
  padding-inline: clamp(1.15rem, 4vw, 4rem);
}

/* Helfer */
.vm-accent { color: var(--vm-accent, #c9390f); }
.vm-text-2 { color: var(--vm-text-2, #63615f); }

::selection { background: var(--vm-accent, #c9390f); color: #fff; }

/* =====================================================================
   BARRIEREFREIHEIT – Grundlagen (WCAG 2.2 / BITV)
   ===================================================================== */

/* --- Fokus-Ring über eine vererbte Variable --------------------------
   Die Ringfarbe muss sich nach der UMGEBENDEN FLÄCHE richten, nicht nach
   der Textfarbe des Elements. Ein Ring aus `currentColor` wird auf
   Elementen, die beim Fokus invertieren (helle Schrift auf dunkler
   Fläche), weiß – und liegt dann außerhalb des Elements auf hellem
   Grund: Kontrast 1:1, unsichtbar.

   Der Clou: Custom Properties sind vom `!important` der outline-Kurzform
   NICHT betroffen. Eine neue Ausnahme braucht deshalb kein eigenes
   !important – es genügt, auf dem Container --vm-focus-ring zu setzen.
   Auf #c9390f gegen Weiß sind es 5,15:1 (gefordert: 3:1).             */
:root { --vm-focus-ring: var(--vm-accent, #c9390f); }

:focus-visible {
  outline: 3px solid var(--vm-focus-ring);
  outline-offset: 3px;
  border-radius: 3px;
}

/* Dunkle/farbige Flächen -> heller Ring. Nur an der Klasse aufhängen,
   die die Fläche tatsächlich einfärbt, nie pauschal am Bereich. */
.vm-card--inverted,
.centered-wrapper.-color-inverted { --vm-focus-ring: #ffffff; }

/* --- Nur für Screenreader -------------------------------------------
   Eigene Definition statt Verlass auf eine Theme-Utility: `.invisible`
   von TAO wird an anderer Stelle umdefiniert. Nicht auf display:none
   umstellen – das nimmt den Text auch aus dem a11y-Baum.             */
.vm-nur-sr {
  position: absolute !important;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

/* --- Sprunglinks bei Fokus sichtbar machen (WCAG 2.4.7) --------------
   Contao gibt je Navigationsmodul ein `<a class="invisible">Navigation
   überspringen</a>` aus. TAOs `.invisible` blendet es DAUERHAFT aus –
   auch beim Fokus. Ein sehender Tastaturnutzer landet dann auf einem
   unsichtbaren Tab-Stopp und verliert den Fokus aus den Augen.

   Nur die fokussierbaren <a> einblenden; die leeren Ziel-<span
   class="invisible"> bleiben unberührt.                              */
a.invisible:focus {
  position: fixed !important;
  /* !important, damit keine Theme-Regel die Marke verschiebt. 1rem statt
     0,5rem: Der Fokusring liegt mit outline-offset rund 5px AUSSERHALB
     der Box – bei zu knappem Abstand schneidet ihn der Viewport-Rand ab. */
  top: 1rem !important;
  left: 1rem !important;
  z-index: 2000;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0.6rem 1rem !important;
  overflow: visible !important;
  clip: auto !important;
  clip-path: none !important;

  background: var(--vm-white, #fff);
  color: var(--vm-primary, #c9390f);
  font-weight: 700;
  text-decoration: underline;
  border-radius: var(--vm-radius-small, 10px);
  box-shadow: 0 6px 20px rgba(87, 86, 86, 0.22);
}

/* --- Tap-Highlight auf Android dämpfen -------------------------------
   Der TAO Theme Assistant schreibt die LINKFARBE deckend in den
   Tap-Highlight (main.css: `-webkit-tap-highlight-color: #c9390f`).
   Beim Antippen überdeckt dann ein volles rotes Rechteck das Element,
   die Beschriftung ist für den Moment weg, und der Highlight folgt dem
   Rahmenkasten statt dem border-radius (spitze Ecken).

   `:root` statt `html`, damit die Regel unabhängig von der Lade-
   reihenfolge gewinnt (0,1,0 gegen 0,0,1). Wird vererbt, eine Regel
   genügt. NICHT auf `transparent` setzen: Auf Touch ist dieses kurze
   Aufblitzen oft die einzige Rückmeldung, dass der Finger getroffen
   hat – also dämpfen, nicht abschalten.                              */
:root { -webkit-tap-highlight-color: rgba(201, 57, 15, 0.18); }

html {
	scroll-behavior: smooth;
}

.fw-400 {
	font-weight: 400 !important;
}

.fw-500 {
	font-weight: 500 !important;
}

.fw-600 {
	font-weight: 600 !important;
}

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

.radius img {
	border-radius: 20px;
}

.bg-grey .page-footer {
  background: #F3F2F0;
}

.vm-callback {
  border-radius: 16px 16px 0 0 !important;
  border-top: 2px solid #fff;
  border-left: 2px solid #fff;
  border-right: 2px solid #fff;
}

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

.vm-reader-content {
  max-width: 100% !important;
}

.headline-colored h1 {
  font-size: 3.5em;
}

.vm-reader-aside {
  padding-bottom: 6rem;
}

.rechtliches {
  padding-bottom: 2rem !important;
}

.footer-inhalte .content-image {
  margin: 0 !important;
}

.rechtliches a {
  font-size: 1em !important;
}

@media (max-width: 1200px) {

.page {
  padding-top: 90px !important;
}

.header-navigation-inner {
  height: 90px !important;
  position: fixed;
  width: 100%;
  background: #fff;
  border-bottom: 1px solid #dddddd;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
}

}

@media (max-width: 900px) {

.page {
  padding-top: 0px !important;
}

.content-wrapper {
  padding-top: 90px;
}

.logo {
  margin-left: 3.7037% !important;
}

.headline-colored h1 {
  font-size: 2.5em;
}

}

@media (max-width: 620px) {

.rechtliches {
  padding-bottom: 6rem !important;
}
}

@media (max-width: 450px) {

.headline-colored h1 {
  font-size: 2.25em;
}

}
/* =====================================================================
   Venne Media – UTILITY-KLASSEN (font-size, padding, margin)
   ---------------------------------------------------------------------
   Skala (margin/padding an TAO 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 TAO-Regeln (main.css nutzt viel
   !important + spezifische Selektoren) sicher überschreiben.
   >>> DIESE DATEI ALS LETZTE LADEN (nach TAO 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 TAO schlagen -----------------------------
   TAO 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 TAO angeglichen ---------------------------------
   Werte wie TAO (.padding-*): 0 · 10 · 25 · 50 · 75 · 100 · 150 · 200px,
   mobil (≤900px) halbiert. So verhalten sich p*-Klassen wie TAOs 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 TAO) --------------------- */
@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; }
}

@media (max-width: 700px) {
.pl-xxs { padding-left: 0 !important; }
.pl-xs { padding-left: 0 !important; }
.pl-s { padding-left: 0 !important; }
.pl-m { padding-left: 0 !important; }
.pl-l { padding-left: 0 !important; }
.pl-xl { padding-left: 0 !important; }
.pl-xxl { padding-left: 0 !important; }
.pr-xxs { padding-right: 0 !important; }
.pr-xs { padding-right: 0 !important; }
.pr-s { padding-right: 0 !important; }
.pr-m { padding-right: 0 !important; }
.pr-l { padding-right: 0 !important; }
.pr-xl { padding-right: 0 !important; }
.pr-xxl { padding-right: 0 !important; }
}
/* =====================================================================
   BEWEGUNG REDUZIEREN (prefers-reduced-motion) – WCAG 2.3.3
   ---------------------------------------------------------------------
   Auch ohne Karussell oder Marquee löst der Prüfbericht hier aus: Das
   Set hat reichlich `transition` auf Buttons, Karten, Navigation und
   Icons, dazu `html { scroll-behavior: smooth }` aus custom_vm.css.

   Steht bewusst am ENDE der ZULETZT geladenen Datei, damit der Block
   nach allen Transitions kommt.

   Zwei Hinweise:
   - `scroll-behavior` wird zusätzlich explizit an `html` zurückgenommen.
     Der Stern-Selektor greift zwar auch, aber die eigene Regel macht die
     Absicht sichtbar und ist robuster.
   - Fokus-Ringe sind NICHT betroffen: `outline` ist keine Animation.
     Der Block darf also gefahrlos global gelten.

   ACHTUNG – was CSS hier NICHT erreicht: Alles, was JavaScript Frame für
   Frame setzt (jQuery `.animate()`, `scrollTo`-Schleifen), muss im Skript
   selbst abgefragt werden. Siehe j_accordion_VM.html5.
   ===================================================================== */
@media (prefers-reduced-motion: reduce) {

  html { scroll-behavior: auto; }

  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }

  /* Effekte, die nicht über die Dauer, sondern über den Zielwert wirken,
     müssen einzeln zurückgenommen werden – eine Dauer von 0,01ms macht
     den Sprung sonst nur schneller, nicht kleiner. */
  .vm-newsbox-item:hover .vm-teaser-image img,
  .vm-teaser:hover a.vm-teaser-image img { transform: none !important; }

  .vm-news-more:focus-visible .vm-icon,
  .footer-inhalte .vm-icon-text:hover .vm-icon-text-icon,
  .footer-inhalte .vm-icon-text:focus-within .vm-icon-text-icon,
  .gridlinks li a:hover::before,
  .gridlinks li a:focus-visible::before { transform: none !important; }

  .footer-top-link:hover,
  .footer-top-link:focus-visible { transform: none !important; }

  .vm-nav-close:hover,
  .vm-nav-close:focus-visible { transform: none !important; }
}

/* =====================================================================
   Venne Media – ICON-SET (kuratiert, Lucide-Stil) als CSS-Masken
   ---------------------------------------------------------------------
   Basis .vm-icon + je Icon .vm-ico--NAME. Icon nimmt die Textfarbe an
   (background-color:currentColor). Auswahl im RSCE per Select-Feld.
   Neues Icon = 1 Zeile hier + 1 Zeile in der Select-Options-Liste.
   Strich-Icons funktionieren als Maske direkt (kein Ausformen nötig).
   ===================================================================== */

.vm-icon {
  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;
}

.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--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--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--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--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--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%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--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--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--monitor { --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='14' x='2' y='3' rx='2'/%3E%3Cpath d='M8 21h8M12 17v4'/%3E%3C/svg%3E"); }
.vm-ico--layers { --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 2 2 7l10 5 10-5-10-5z'/%3E%3Cpath d='M2 17l10 5 10-5'/%3E%3Cpath d='M2 12l10 5 10-5'/%3E%3C/svg%3E"); }
.vm-ico--code { --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 18 6-6-6-6'/%3E%3Cpath d='m8 6-6 6 6 6'/%3E%3C/svg%3E"); }
.vm-ico--database { --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%3Cellipse cx='12' cy='5' rx='9' ry='3'/%3E%3Cpath d='M3 5v14a9 3 0 0 0 18 0V5'/%3E%3Cpath d='M3 12a9 3 0 0 0 18 0'/%3E%3C/svg%3E"); }
.vm-ico--server { --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='8' x='2' y='2' rx='2'/%3E%3Crect width='20' height='8' x='2' y='14' rx='2'/%3E%3Cpath d='M6 6h.01M6 18h.01'/%3E%3C/svg%3E"); }
.vm-ico--megaphone { --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 11 18-5v12L3 14v-3z'/%3E%3Cpath d='M11.6 16.8a3 3 0 1 1-5.8-1.6'/%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--palette { --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='13.5' cy='6.5' r='.6' fill='black'/%3E%3Ccircle cx='17.5' cy='10.5' r='.6' fill='black'/%3E%3Ccircle cx='8.5' cy='7.5' r='.6' fill='black'/%3E%3Ccircle cx='6.5' cy='12.5' r='.6' fill='black'/%3E%3Cpath d='M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10c.926 0 1.648-.746 1.648-1.688 0-.437-.18-.835-.437-1.125-.29-.289-.438-.652-.438-1.125a1.64 1.64 0 0 1 1.668-1.668h1.996c3.051 0 5.555-2.503 5.555-5.554C21.965 6.012 17.461 2 12 2z'/%3E%3C/svg%3E"); }
.vm-ico--puzzle { --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 7h3a1 1 0 0 0 1-1V5a2 2 0 0 1 4 0v1a1 1 0 0 0 1 1h3a1 1 0 0 1 1 1v3a1 1 0 0 0 1 1h1a2 2 0 0 1 0 4h-1a1 1 0 0 0-1 1v3a1 1 0 0 1-1 1h-3a1 1 0 0 1-1-1v-1a2 2 0 0 0-4 0v1a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-3a1 1 0 0 1 1-1h1a2 2 0 0 0 0-4H4a1 1 0 0 1-1-1V8a1 1 0 0 1 1-1z'/%3E%3C/svg%3E"); }
.vm-ico--settings { --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.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z'/%3E%3Ccircle cx='12' cy='12' r='3'/%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--rocket { --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.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z'/%3E%3Cpath d='m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z'/%3E%3Cpath d='M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0'/%3E%3Cpath d='M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5'/%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"); }
.vm-ico--star { --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%3Cpolygon points='12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2'/%3E%3C/svg%3E"); }
.vm-ico--heart { --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 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z'/%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"); }
.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"); }
.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--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--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--play { --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%3Cpolygon points='6 3 20 12 6 21 6 3'/%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--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"); }

/* =====================================================================
   „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.icon-text-block {
  padding-left: 0;
}
.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;         /* oben leicht · rechts Textabstand · links KEIN Abstand */
  color: var(--vm-primary, #c9390f); /* Icon im Akzent (Maske nimmt die Farbe an) */
  font-size: 0.875em;
}

/* 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; }

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

   Farbschema Venne Media:
   - Text/Headlines:   Warmgrau      #575656
   - Primär/Akzent:    Rot-Orange    #c9390f
   - Zweitvariante:    Neutral-Grau  #b2b2b2
   - Flächen:          Pfirsich hell #fdf4f0 / #fdf7f4 / #fbe4da
   Radius: 16px (Icon-Felder 10px). Fonts: Poppins/Source Sans 3 – s. custom_vm_base.css.
   ========================================================== */

:root {
  /* Text & Rot-Orange (Primär) */
  --vm-text: #575656;            /* Standard-Textfarbe / Fließtext + Headlines */
  --vm-text-2: #63615f;          /* Sekundärtext (Vortitel/Meta), AA-tauglich */
  --vm-primary: #c9390f;         /* Rot-Orange: Marke, Buttons, Icons, Rahmen */
  --vm-primary-dark: #b6350d;
  --vm-primary-hover: #b6350d;
  --vm-white: #ffffff;
  --vm-page-bg: #ffffff;         /* Website-Hintergrund – im Theme/Layout auf body setzen */

  /* Akzent (geht im Primär auf – mono-Akzent) */
  --vm-accent: #c9390f;
  --vm-accent-dark: #b6350d;

  /* Flächen (Pfirsich-Tönung, aufgehellt) */
  --vm-surface: #F7ECE7;         /* Karten-Hintergrund (getönt) */
  --vm-surface-light: #fdf7f4;
  --vm-surface-icon: #F7ECE7;

  /* Rahmen & Grautöne (warm) */
  --vm-border: #e8e7e4;          /* DEKORATIVE Kante (Karten, Trenner) */

  /* BEDIEN-Kante: Rahmen von Eingabefeldern u. Ä. WCAG 1.4.11 verlangt
     dafür 3:1 gegen beide angrenzenden Flächen. #8a8681 schafft das
     sowohl gegen die weiße Feldfüllung (3,62:1) als auch gegen die
     getönte Karte #F7ECE7 (3,12:1), auf der das Rückruf-Formular liegt.
     --vm-border (1,24:1 auf Weiß) ist dafür ausdrücklich NICHT geeignet. */
  --vm-border-strong: #8a8681;
  --vm-border-accent: #f6d0c2;
  --vm-border-neutral: #e6e5e2;
  --vm-grey: #f0efec;

  /* Effekte & Maße */
  --vm-shadow: 0 18px 38px rgba(87, 86, 86, 0.06);
  --vm-shadow-hover: 0 24px 46px rgba(87, 86, 86, 0.09);
  --vm-radius: 16px;
  --vm-radius-small: 10px;
  --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 #575656 (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(201, 57, 15,.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 Meilensteine" ist ein eigenes Element, nutzt aber bewusst dieselbe
   Karte. Die generischen Modifier (Ausrichtung, Icon-Varianten) hängen
   historisch an .vm-iconbox-item – deshalb steht die Meilenstein-Klasse
   überall dort daneben, wo das Meilenstein-Element die Option anbietet
   (Ausrichtung, „Großes Icon", „Icon invertiert").

   Bewusst NICHT auf .vm-card verallgemeinert: Das träfe auch die
   Teaserboxen, die für dieselben Modifier eigene Regeln mitbringen
   (custom_vm_teaser_boxes.css) – dort würde sich die Optik ändern. */
.vm-iconbox-item,
.vm-meilenstein-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(201, 57, 15,.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 {
  margin: 0 0 0.75rem;
  color: var(--vm-text);   /* Card-Überschriften in #575656 (nicht Akzent) */

  /* Schrift und Laufweite HIER setzen, nicht von der h1–h6-Regel in
     custom_vm_base.css erben lassen: Der Kartentitel ist nicht immer eine
     Überschrift. „VM Meilensteine" gibt ihn als <p> aus (Zahlen gehören
     nicht in die Gliederung), und ohne diese zwei Zeilen fiele er dort auf
     die Grundschrift zurück. So hängt die Optik an der Klasse, nicht am Tag. */
  font-family: var(--vm-font-display, "Poppins", sans-serif);
  letter-spacing: -0.01em;

  font-size: clamp(1.35rem, 1.1vw, 1.75rem);
  font-weight: 700;
  line-height: 1.22;
  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;
}

/* Box-Überschriften immer fett darstellen.
   Höhere Spezifität als .vm-card h3, damit keine Theme-Grundregel
   für h3 die Schriftstärke überschreibt (gilt für Icon- und Teaserboxen). */
.vm-card .vm-card-title,
.vm-teaser .vm-card-title {
  font-weight: 700;   /* = bold */
}

.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);
  text-decoration: underline;
}

/* Auf der GETÖNTEN Karte reicht das Primär-Rot nicht: #c9390f auf
   #F7ECE7 sind 4,44:1 – knapp unter den 4,5:1 für Fließtext. Auf Weiß
   (5,15:1) ist es in Ordnung, die Ausnahme gehört also genau an die
   getönte Karte. --vm-primary-dark kommt dort auf 5,17:1 und ist
   bereits im Set – keine neue Farbe nötig.
   Gleiches gilt für den Vortitel, wenn er im Akzent gesetzt wird. */
.vm-card--green .vm-card-link.-link,
.vm-card--green .vm-textlink { color: var(--vm-primary-dark, #b6350d); }

/* 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,
.vm-meilenstein-item.-align-center,
.vm-meilenstein-item.-align-center .vm-card-inner,
.vm-meilenstein-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,
.vm-meilenstein-item.-align-right,
.vm-meilenstein-item.-align-right .vm-card-inner,
.vm-meilenstein-item.-align-right .vm-card-body {
  text-align: right;
  align-items: flex-end;
}

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

.vm-iconbox-item.-large-icon .vm-card-icon,
.vm-meilenstein-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,
.vm-meilenstein-item.-large-icon .vm-card-icon .vm-icon {
  width: 2.05rem;
  height: 2.05rem;
}

/* Icon invertiert: gefülltes Akzentfeld, Icon weiß (currentColor).
   Weiß auf #c9390f = 5,15:1 – über den 3:1, die WCAG 1.4.11 für
   Bedienelemente/Grafiken verlangt.

   Die Regel muss die kartenfarben-abhängigen Icon-Felder weiter oben
   schlagen (.vm-card--white .vm-card-icon u. a., Spezifität 0,2,0) –
   mit 0,3,0 tut sie das, unabhängig von der Kartenfarbe. */
.vm-iconbox-item.-inverted-icon .vm-card-icon,
.vm-meilenstein-item.-inverted-icon .vm-card-icon {
  color: var(--vm-white);   /* Icon (currentColor) wird weiß */
  background: var(--vm-primary);
}

.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,
.vm-iconbox-item.-badge-top-icon .vm-card-title {
    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(201, 57, 15, 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(201, 57, 15, 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 TAOs .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);
}
.vm-card-preheadline::before {
  content: "";
  flex: 0 0 auto;
  width: 1.7em;
  height: 2px;
  background: currentColor;    /* Linie in normaler Schriftfarbe (nicht Akzent) */
}
.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. */

/* ==========================================================
   VM MEILENSTEINE (Kennzahlen-Kacheln)
   ----------------------------------------------------------
   Eigenes Element, aber bewusst KEINE eigene Optik: Die Kachel
   nutzt .vm-card, der Wert .vm-card-title, die Bezeichnung
   .vm-card-text – also exakt die Iconbox-Gestaltung. Der
   Unterschied liegt allein in der Semantik (Wert als <p>,
   nicht als Überschrift), siehe rsce_vm_meilensteine.html5.

   Deshalb steht hier nur, was sich aus dem Zweck ergibt und
   nicht schon von der Karte kommt.
   ========================================================== */

/* Wert und Bezeichnung gehören enger zusammen als Überschrift und
   Fließtext einer Iconbox – sie sind EINE Aussage („1999 gegründet"),
   nicht Titel plus Erläuterung. */
.vm-meilenstein-item .vm-meilenstein-wert { margin-bottom: 0.15rem; }

/* Die Bezeichnung ist die Beschriftung der Zahl, nicht der Fließtext
   einer Karte: etwas kleiner und ruhiger, damit der Wert trägt. */
.vm-meilenstein-item .vm-meilenstein-text p { margin: 0; }

/* Zahlen brauchen keine Silbentrennung – .vm-card-title bringt sie für
   lange Komposita mit, bei „100%" oder „25+ Jahre" stört sie nur. */
.vm-meilenstein-item .vm-meilenstein-wert {
  hyphens: none;
  -webkit-hyphens: none;
}

/* ==========================================================
   VM Component Library  ·  Venne Media
   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 #c9390f).
   ========================================================== */

/* 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 #c9390f */
  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;
  }
}

/* =====================================================================
   VM Buttons – konsolidiert  ·  Venne Media
   Nach dem TAO-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: Akzent (orange, Basis) · Dunkel (Schriftfarbe #575656) · Hellgrau · Weiß · Transparent (2px Rahmen in Schriftfarbe)
   Radius: gerundet wie KKF (16px / kleiner Button 12px).
   ===================================================================== */

: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-primary-dark);
  border-width: 2px !important;          /* TAO-Basis nutzt 1px, Varianten 2px -> hier auf 2px vereinheitlichen (nur Breite, Farbe bleibt je Variante) */
  border-image: none !important;         /* TAO-Rahmenverlauf aus */
  border-radius: 16px !important;        /* KKF-Radius */

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

  color: var(--vm-white);
  text-align: center;
  text-decoration: none !important;
  text-transform: none !important;       /* kein TAO-UPPERCASE */

  background: var(--vm-primary);          /* Akzent (Primär-Rot #c9390f, ~5,2:1 zu Weiß) */
  background-image: none !important;      /* TAO-Hintergrundverlauf aus */
  box-shadow: none !important;            /* TAO-Schatten aus */
  text-shadow: none !important;           /* TAO-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 TAO sie nicht je nach
   Ladereihenfolge überschreibt. Nur Maße – Farbe bleibt je Variante. */
.vm-card-link.button {
  display: inline-flex !important;   /* TAO 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;
}

/* TAO-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; }

/* Standard/Rot-Orange – Hover */
.button:hover, .button:focus-visible,
.headline-box-link:hover, .highlight-box-link:hover {
  background: var(--vm-primary-dark); border-color: var(--vm-primary); color: var(--vm-white);
  transform: translateY(-1px);
}

/* 2) FARBVARIANTEN (Venne) -------------------------------------------
   Akzent = Basis (.button, ohne Modifier: Orange, weiße Schrift).
   Dazu 4 Modifier. Rahmenbreite ist global 2px (s. Abschnitt 1). */

/* Dunkel – Standard-Schriftfarbe als Fläche (-dark) */
.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: var(--vm-primary); border-color: var(--vm-primary); 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-text); 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: var(--vm-text);   /* definierter als --vm-border -> Kante bleibt auf hellem Grund sichtbar */
  color: var(--vm-text);
}
.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(87, 86, 86, 0.22) !important;
}

/* Transparent (-outline) – 2px Rahmen in Standard-Schriftfarbe */
.button.-outline,
.headline-box-link.-outline,
.vm-card-link.button.-outline {
  background: transparent; border-color: var(--vm-text); color: var(--vm-text);
}
.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-text); border-color: var(--vm-text); color: var(--vm-white);
}

/* Buttons in invertierten (dunklen) Boxen ----------------------------
   Wird eine Box auf „Textfarbe invertieren" gestellt und der Hintergrund
   von Hand auf Rot-Orange (#c9390f) gelegt, verschmilzt der Button mit der
   Fläche: die hellen Varianten schlagen im Hover auf #c9390f 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: 12px !important;        /* KKF-Radius */
}

/* --- Textlink (VM Button, Variante „Textlink") ----------------------
   Kein Kasten – reiner Link im Venne Rot-Orange, 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);
  text-decoration: underline;
  text-underline-offset: 0.28em;
}
.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 (TAO-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) – TAO-Standardfluss (inline-block-Buttons in
   einer Zeile, geringer Wortabstand, umbruchfähig).
   display: inline-block !important – ein Flex-Row-Kontext blieb bei TAO
   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 (TAO: .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;
}

/* ==========================================================
   VM Component Library · Venne Media
   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. */

/* --- 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); }

/* --- „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 span:first-child,
.vm-news-more:focus-visible span:first-child { text-decoration: underline; text-underline-offset: 0.25em; }
.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 TAO auf display:inline-flex/-block steht und das
   UA-`[hidden]{display:none}` sonst überschreibt. */
.vm-loadmore[hidden] { display: none !important; }

/* ==========================================================
   VM Component Library  ·  Venne Media
   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, 1600px);   /* 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: 1px solid var(--vm-border-neutral);
  /* oben eckig (schließt an Header an), unten gerundet */
  border-radius: 0 0 var(--vm-radius) var(--vm-radius);
  /* 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;
}
/* optionale Bildunterschrift dezent, mit Innenabstand */
.vm-reader-image figcaption {
  padding: 0.6rem clamp(1.25rem, 3vw, 2rem);
  font-size: 0.85rem;
  line-height: 1.4;
  color: var(--vm-text);
}

/* --- 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-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.9rem);
}

@media (max-width: 900px) {
  .vm-reader-title {
    font-size: 1.5em !important; 
    
  }
}

.vm-reader-subtitle {
  margin: 0 0 1em;
  color: var(--vm-primary-hover);
  font-weight: 600;
  line-height: 1.3;
  font-size: clamp(1.05rem, 0.95rem + 0.4vw, 1.2rem) !important;
  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: angenehme Zeilenlänge + luftige Zeilen */
.vm-reader-content {
  color: var(--vm-text);
  font-size: 1.075rem;
  line-height: 1.75;
  max-width: 68ch;

  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-enclosure { list-style: none; margin: 2rem 0 0; padding: 0; }
.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-enclosure a:hover { text-decoration: underline; }

/* --- 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;
  background: var(--vm-white);          /* weiße Fläche (nicht rot/rosa) */
  border: 1px solid var(--vm-border-neutral);
  border-radius: var(--vm-radius-small);
  text-decoration: none;
  transition: border-color var(--vm-transition), box-shadow var(--vm-transition), transform var(--vm-transition), color var(--vm-transition);
}
.vm-reader-more-link:hover,
.vm-reader-more-link:focus-visible {
  border-color: var(--vm-text);
  box-shadow: var(--vm-shadow);
  transform: translateY(-1px);
}
/* 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;
}
/* =====================================================================
   Venne Media – 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, #e6e5e2);
  border-radius: var(--vm-radius-pill, 999px);
  background: var(--vm-white, #fff);
  background-image: none !important;   /* TAO-Gradient aus */
  color: var(--vm-text, #575656);
  font-family: var(--vm-font-body);
  font-weight: 600;
  font-size: 1rem;
  line-height: 1.2;
  text-transform: none !important;     /* kein TAO-UPPERCASE */
  box-shadow: none !important;         /* TAO-Schatten aus */
  text-shadow: none !important;        /* TAO-Textschatten aus */
  transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}
.vm-projects-filterbtn:hover,
.vm-projects-filterbtn:focus-visible {
  border-color: var(--vm-text, #575656);
  color: var(--vm-text, #575656);
}
/* aktiver Filter = Akzent */
.vm-projects-filterbtn.is-active {
  background: var(--vm-primary, #c9390f);
  border-color: var(--vm-primary-dark, #b6350d);
  color: var(--vm-white, #fff);
}

/* --- Filterung: Kacheln der NICHT aktiven Kategorie ausblenden ------- */
.vm-projects[data-active-filter="gewerbe"] .vm-newsbox-item:not([data-vm-cat="gewerbe"]),
.vm-projects[data-active-filter="behoerden"] .vm-newsbox-item:not([data-vm-cat="behoerden"]) {
  display: none;
}

/* --- „keine Treffer" + „Mehr laden" --------------------------------- */
.vm-projects-empty {
  margin: var(--vm-gap, 1.6rem) 0 0;
  color: var(--vm-text-2, #63615f);
}

/* =====================================================================
   Venne Media – PREHEADLINE (Vortitel mit Linie links) + Section-Head
   ---------------------------------------------------------------------
   Der genannte neue Inhaltstyp: kleiner Vortitel/Kicker mit rotem Strich
   links daneben. Text in NORMALER Schriftfarbe (#575656), nur die LINIE
   ist rot – bewusst wenig Rot.

   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 die Linie ist rot */
  content: "";
  width: 1.7em;
  height: 2px;
  background: var(--vm-accent);
  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 roter Linie – 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; }

/* =====================================================================
   Venne Media – RÜCKRUF-BAND (Pre-Footer, auf jeder Seite)
   ---------------------------------------------------------------------
   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 (#fdf4f0). Der centered-wrapper
   liefe sonst über die volle Breite -> hier per width/max-width auf
   Content-Breite (1600) begrenzt und mittig, mit runden Ecken + Schatten.
   `width: min(100% - Gutter, 1600)` = auf großen Screens 1600 zentriert,
   darunter automatisch Rand-Abstand (mobil). Padding responsiv im CSS. */
.vm-callback {
  box-sizing: border-box;
  width: min(100% - clamp(2rem, 6vw, 4rem), 1400px);   /* Kartenbreite – hier justieren */
  margin-inline: auto;
  background-color: var(--vm-surface, #fdf4f0);
  border-radius: var(--vm-radius, 16px);
  box-shadow: 0 12px 34px rgba(87, 86, 86, 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;
  /* Die Feldkante ist eine BEDIEN-Information, kein Zierrat: WCAG 1.4.11
     verlangt dafür 3:1 gegen BEIDE angrenzenden Flächen.

     Das ist hier der springende Punkt: Das weiße Feld hebt sich von der
     getönten Karte, auf der das Formular liegt (#F7ECE7), praktisch nicht
     ab (1,18:1) – die Kante trägt also die gesamte Information, wo das
     Feld anfängt und aufhört. Sie muss deshalb auch gegen die KARTE
     bestehen, nicht nur gegen die weiße Füllung.

     --vm-border (#e8e7e4) lag bei 1,24:1, ein erster Versuch mit #8f8b86
     bei 3,38:1 gegen Weiß, aber nur 2,92:1 gegen die Karte. Der Token
     steht jetzt auf #8a8681: 3,62:1 bzw. 3,12:1. */
  border: 1px solid var(--vm-border-strong, #8a8681);
  border-radius: var(--vm-radius-small, 10px);
  background: var(--vm-white, #fff);
  color: var(--vm-text, #575656);
  font-size: 1rem;
  line-height: 1.35;
  transition: border-color .18s ease, box-shadow .18s ease;
}
/* Platzhalter ist hier faktisch die einzige SICHTBARE Beschriftung
   (die Labels sind visuell ausgeblendet) – er muss die vollen 4,5:1
   erfüllen. #8a8987 lag bei 3,49:1, #726f6d liegt bei 4,99:1. */
.vm-callback input.text::placeholder { color: #726f6d; opacity: 1; }

/* Fokus: KEIN `outline: none` ohne vollwertigen Ersatz. Vorher blieb nur
   ein 1px-Rahmenwechsel plus ein 15%-Schein, der auf Weiß praktisch
   unsichtbar war (≈1,1:1) – für 2.4.7/2.4.13 zu wenig. Jetzt der
   reguläre 3px-Ring aus custom_vm_base.css, der Rahmenwechsel bleibt
   als zusätzliches Signal. */
.vm-callback input.text:focus-visible {
  outline: 3px solid var(--vm-focus-ring, #c9390f);
  outline-offset: 2px;
  border-color: var(--vm-accent, #c9390f);
  box-shadow: none;
}

/* 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, #575656);
}
/* ALTCHA-Innenabstände zähmen (Kasten weg -> kein Innen-Polster nötig;
   TAO 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, #c9390f); 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, #575656);
  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, #63615f);
}
.vm-callback .widget-explanation p { margin: 0; }
/* Der Datenschutz-Link liegt auf der getönten Karte (#F7ECE7). Das
   Akzent-Rot kommt dort nur auf 4,44:1 und verfehlt die 4,5:1 für
   Fließtext knapp; auf Weiß wäre es mit 5,15:1 in Ordnung. Auf der Karte
   gilt deshalb das Dunkelrot (5,17:1) – dieselbe Ausnahme wie bei den
   Karten-Textlinks in custom_vm_icon_boxes.css. */
.vm-callback .widget-explanation a {
  color: var(--vm-primary-dark, #b6350d);
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

/* --- Absenden-Button im VM-Stil (Akzent, gerundet, KEINE Versalien) --
   Selektor .submit statt .button, darum die TAO-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, #b6350d) !important;
  border-image: none !important;
  border-radius: var(--vm-radius, 16px) !important;
  background: var(--vm-primary, #c9390f) !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 TAO-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, #b6350d) !important;
  border-color: var(--vm-primary, #c9390f) !important;
  transform: translateY(-1px);
}

/* Fehler-/Pflichtfeld-Meldungen */
.vm-callback .error,
.vm-callback p.error { color: var(--vm-accent, #c9390f); font-weight: 600; }

/* --- 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%; }
}

/* =====================================================================
   Venne Media – FOOTER (.footer-inhalte)
   ---------------------------------------------------------------------
   Grauer Fuß (Wrapper-Inline: bg #F3F2F0 + obere Trennlinie) mit
   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.
   ===================================================================== */

/* --- 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-text, #575656);
}
.footer-inhalte > .centered-wrapper-inner {
  max-width: var(--vm-content-max, 1600px);
  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; }
.footer-inhalte .content-image img { width: 88px; height: auto; }

/* --- Responsive Spalten-Raster (überschreibt TAOs 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; TAO-Breiten/Floats werden neutralisiert. */
.footer-inhalte .rs-columns {
  display: grid !important;
  /* Spalte 1 (Firmeninfo/Fließtext) breiter als die Link-Spalten */
  grid-template-columns: 1.8fr 1.2fr 1fr 1.2fr 1.1fr;
  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: 1400px) {
  .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: 600px) {
  .footer-inhalte .rs-columns { grid-template-columns: 1fr; }
  .footer-inhalte .rs-column.sp-1 { grid-column: auto; }
}

/* --- Spalten-Überschriften ------------------------------------------
   Die fünf Spaltenköpfe (Venne Media GmbH · Leistungen · Unternehmen ·
   Standorte · Erreichbarkeit) sind ECHTE <h2> aus dem Contao-Über-
   schriftenfeld.

   Vorher standen sie als <p><strong>…</strong></p> im Fließtext und
   sahen nur per CSS wie Überschriften aus. Für einen Screenreader war
   der Fuß damit ein Block ohne Gliederung – man konnte nicht zwischen
   den Spalten springen (WCAG 1.3.1, Level A). Das Überschriftenfeld
   stand ohnehin schon auf h2, nur der Wert war leer.

   Die <strong>- und <p>-Selektoren bleiben absichtlich stehen: Sie
   kosten nichts, halten einen Rollback ohne CSS-Änderung möglich und
   greifen weiter, falls irgendwo noch ein alter Spaltenkopf auftaucht.

   `.rte` gibt der Absatz-Regel genug Spezifität, um die
   .content-text-Textregel (weiter unten, 0.6rem) zu schlagen. */
.footer-inhalte .rs-column .font-size-m .rte p { margin: 0 0 0.9rem; }

.footer-inhalte .rs-column .font-size-m h2,
.footer-inhalte .rs-column .font-size-m strong {
  font-family: var(--vm-font-display, "Poppins", sans-serif);
  font-weight: 700;
  font-size: 1.15rem;
  color: var(--vm-text, #575656);
}

/* h1–h6 bringen aus custom_vm_base.css eine fluide clamp()-Größe und
   eigene Abstände mit – beides hier zurücknehmen, damit der Spaltenkopf
   exakt so aussieht wie vorher der <strong>-Absatz. */
.footer-inhalte .rs-column .font-size-m h2 {
  margin: 0 0 0.9rem;
  line-height: 1.3;
  letter-spacing: normal;
}

/* Ist der Fließtext des Elements leer (Text steckt jetzt komplett in der
   Überschrift), soll der leere .rte-Rest keinen Abstand aufreißen. */
.footer-inhalte .rs-column .font-size-m .rte:empty { display: none; }

/* --- 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-accent, #c9390f); 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-primary-hover, #b6350d); }

/* 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 */
.footer-inhalte .vm-icon-text {
  margin: 0 0 0.55rem;
  --vm-icon-text-size: 1.2em;
}
.footer-inhalte .vm-icon-text .vm-icon-text-icon {
  margin-top: 0.2em;
  transition: transform .18s ease;
}
.footer-inhalte .vm-icon-text-body p { margin: 0; line-height: 1.4; }
.footer-inhalte .vm-icon-text a {
  color: var(--vm-text, #575656);
  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-accent, #c9390f);
  text-decoration: underline;
  text-underline-offset: 0.2em;
}
.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-accent, #c9390f);
  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-primary-hover, #b6350d);
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

/* 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);
}
.rechtliches > .centered-wrapper-inner {
  max-width: var(--vm-content-max, 1600px);
  margin-inline: auto;
  padding-inline: clamp(1rem, 4vw, 2rem);
}
.rechtliches ul {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.4rem 1.5rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.rechtliches li { margin: 0; }
.rechtliches a {
  color: var(--vm-text-2, #63615f);
  font-size: 0.95rem;
  text-decoration: none;
  transition: color .18s ease;
}
.rechtliches a:hover,
.rechtliches a:focus-visible {
  color: var(--vm-accent, #c9390f);
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

/* =====================================================================
   .gridlinks – Linkspalten im Fuß als ECHTE Liste
   ---------------------------------------------------------------------
   Für ein normales Textelement, das eine <ul> mit Links enthält; im
   Backend die CSS-Klasse `gridlinks` setzen.

   WARUM: Bisher war jede Fuß-Spalte eine Reihe einzelner „VM Absatz mit
   Icon"-Elemente – eines pro Link. Im HTML ergibt 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 am Stück zu überspringen,
   und in der Elementliste des Backends fünf Elemente statt einem.

   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.
   (Übernommen aus be on solar, auf das VM-C.I. umgefärbt.)

   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;
}

/* Die Flexzeile sitzt am <li>, NICHT am <a>.
   Grund: Der Marker soll auch dann erscheinen, wenn der Eintrag gar kein
   Link ist (Häkchen-Aufzählungen, s. --check weiter unten). Hinge er an
   `li a::before`, bliebe er bei linklosen Einträgen einfach weg.
   Nebeneffekt: Der Link umfasst nur noch seinen Text, nicht den Marker –
   sein zugänglicher Name ist damit exakt die Beschriftung. */
.gridlinks li {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  margin: 0 0 0.55rem;
}

/* Marker als Pseudoelement: Dekoration gehört nicht in den
   Barrierefreiheitsbaum, und Pseudoelemente stehen dort ohnehin nicht.
   Ersetzt zugleich den TAO-Bullet.

   Die Masken sind dieselben wie im VM-Icon-Set (custom_vm_icons.css).
   Sie stehen hier ein zweites Mal, weil ein Textelement keine Klasse an
   den einzelnen Listenpunkten trägt, über die sich --vm-ico vererben
   ließe. Wird ein Icon im Set geändert, also auch hier nachziehen. */
.gridlinks {
  --vm-gridlinks-maske: 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");
}

.gridlinks li::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: var(--vm-gridlinks-maske) center / contain no-repeat;
          mask: var(--vm-gridlinks-maske) center / contain no-repeat;

  transition: transform .18s ease;
}

/* Lange Begriffe dürfen umbrechen, statt die Zeile zu sprengen. */
.gridlinks li > * { min-width: 0; }

.gridlinks li a {
  text-decoration: none;
  transition: color .18s ease;
}

/* Mini-Slide nur dort, wo es auch etwas zu klicken gibt. */
.gridlinks li:has(a):hover::before,
.gridlinks li:has(a):focus-within::before { transform: translateX(3px); }

/* --- Variante: Häkchen-Aufzählung (ohne Links) ----------------------
   Für Vorteils-/Merkmalslisten im Fließtext. Im Backend am Textelement
   die Klassen `gridlinks gridlinks--check` setzen.

   Warum überhaupt eine Liste: Einzelne „VM Absatz mit Icon"-Elemente
   ergeben im HTML eine Folge unverbundener <div><p> – fürs Auge eine
   Aufzählung, für einen Screenreader zusammenhanglose Absätze. Keine
   Ansage „Liste mit 4 Einträgen", kein Überspringen der Gruppe.        */
.gridlinks--check {
  --vm-gridlinks-maske: 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");
  --vm-gridlinks-pfeil: var(--vm-primary, #c9390f);
}

/* Maße wie beim bisherigen „Absatz mit Icon" im Fließtext, damit sich
   optisch nichts verschiebt: Häkchen etwas größer, Zeilen enger. */
.gridlinks--check li {
  margin-bottom: 0.25rem;
  gap: 0.7rem;
}
.gridlinks--check li::before {
  width: 1.66em;
  height: 1.66em;
  margin-top: 0.05em;
}
.gridlinks--check li p { margin: 0; }

/* --- Farben im Fuß -------------------------------------------------
   Grauer Fuß #F3F2F0, nachgerechnet:
     Linktext  #575656  6,54:1   (Fließtext, nötig 4,5:1)
     Hover     #b6350d  5,36:1   (bewusst das Dunkelrot statt #c9390f,
                                  das mit 4,61:1 nur knapp über der
                                  Grenze läge)
     Pfeil     #c9390f  4,61:1   (Icon, nötig 3:1)                    */
.footer-inhalte .gridlinks { --vm-gridlinks-pfeil: var(--vm-primary, #c9390f); }

.footer-inhalte .gridlinks li a { color: var(--vm-text, #575656); }

.footer-inhalte .gridlinks li a:hover,
.footer-inhalte .gridlinks li a:focus-visible {
  color: var(--vm-primary-dark, #b6350d);
}

