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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

blockquote {
	margin: 1em 40px;
}

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

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

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

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

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

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

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

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

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

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

sub {
	bottom: -0.2em;
}

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

dd {
	margin: 0 0 0 40px;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

/* ===========================================
 * Icon classes
 * ======================================== */
.icon-ac-unit:before {
  content: "\e947";
}
.icon-accessibility:before {
  content: "\e902";
}
.icon-accessibility-2:before {
  content: "\e949";
}
.icon-add-event:before {
  content: "\e908";
}
.icon-add-reaction:before {
  content: "\e94a";
}
.icon-address-book:before {
  content: "\e911";
}
.icon-agriculture:before {
  content: "\e94b";
}
.icon-amazon:before {
  content: "\e004";
}
.icon-anchor:before {
  content: "\e005";
}
.icon-android:before {
  content: "\e006";
}
.icon-animals:before {
  content: "\e94c";
}
.icon-animals-no:before {
  content: "\e9d6";
}
.icon-apartment:before {
  content: "\e94d";
}
.icon-aperture:before {
  content: "\e007";
}
.icon-app-registration:before {
  content: "\e94e";
}
.icon-apple:before {
  content: "\e008";
}
.icon-arrow-1-down:before {
  content: "\e93b";
}
.icon-arrow-1-left:before {
  content: "\e904";
}
.icon-arrow-1-right:before {
  content: "\e940";
}
.icon-arrow-1-top:before {
  content: "\e941";
}
.icon-arrow-2-down:before {
  content: "\e009";
}
.icon-arrow-2-left:before {
  content: "\e00a";
}
.icon-arrow-2-right:before {
  content: "\e00b";
}
.icon-arrow-2-up:before {
  content: "\e00c";
}
.icon-arrow-4-down:before {
  content: "\e011";
}
.icon-arrow-4-left:before {
  content: "\e012";
}
.icon-arrow-4-right:before {
  content: "\e013";
}
.icon-arrow-4-up:before {
  content: "\e014";
}
.icon-arrow-5-down:before {
  content: "\e015";
}
.icon-arrow-5-left:before {
  content: "\e018";
}
.icon-arrow-5-right:before {
  content: "\e019";
}
.icon-arrow-5-up:before {
  content: "\e01a";
}
.icon-arrow-down:before {
  content: "\e01d";
}
.icon-arrow-left:before {
  content: "\e943";
}
.icon-arrow-left-long-solid-full:before {
  content: "\e907";
}
.icon-arrow-right:before {
  content: "\e944";
}
.icon-arrow-right-long-solid-full:before {
  content: "\e909";
}
.icon-arrow-top-link:before {
  content: "\e90a";
}
.icon-arrow-up:before {
  content: "\e022";
}
.icon-article-person:before {
  content: "\e94f";
}
.icon-assignment-late:before {
  content: "\e950";
}
.icon-assist-walker:before {
  content: "\e951";
}
.icon-at:before {
  content: "\40";
}
.icon-auto-stories:before {
  content: "\e952";
}
.icon-auto-towing:before {
  content: "\e953";
}
.icon-award:before {
  content: "\e023";
}
.icon-award-2:before {
  content: "\e91c";
}
.icon-baby-changing-station:before {
  content: "\e954";
}
.icon-baby-solid-full:before {
  content: "\e938";
}
.icon-backspace:before {
  content: "\e024";
}
.icon-badge:before {
  content: "\e955";
}
.icon-baidu:before {
  content: "\e025";
}
.icon-bars:before {
  content: "\e026";
}
.icon-basket:before {
  content: "\e027";
}
.icon-bathroom:before {
  content: "\e956";
}
.icon-bathtub:before {
  content: "\e957";
}
.icon-beaker:before {
  content: "\e028";
}
.icon-bed:before {
  content: "\e958";
}
.icon-bed-baby:before {
  content: "\e9c3";
}
.icon-bedroom:before {
  content: "\e959";
}
.icon-beer-1:before {
  content: "\e9c4";
}
.icon-beer-2:before {
  content: "\e9c5";
}
.icon-beer-garden-chairs:before {
  content: "\e9c6";
}
.icon-bell:before {
  content: "\e029";
}
.icon-bike:before {
  content: "\e95a";
}
.icon-binoculars:before {
  content: "\e02a";
}
.icon-black-board-fill:before {
  content: "\e9e6";
}
.icon-black-board-line:before {
  content: "\e9e7";
}
.icon-bolt-2:before {
  content: "\e02e";
}
.icon-book-3:before {
  content: "\e030";
}
.icon-book-catalog:before {
  content: "\e90b";
}
.icon-bookmarks:before {
  content: "\e914";
}
.icon-books:before {
  content: "\e915";
}
.icon-bowling:before {
  content: "\e9c7";
}
.icon-box:before {
  content: "\e033";
}
.icon-briefcase:before {
  content: "\e916";
}
.icon-brush:before {
  content: "\e034";
}
.icon-bubble:before {
  content: "\e917";
}
.icon-bubble-anfrage:before {
  content: "\e913";
}
.icon-bubbles:before {
  content: "\e918";
}
.icon-building-user-solid:before {
  content: "\e9e8";
}
.icon-bus-side-solid-full:before {
  content: "\e95b";
}
.icon-cake-candles-solid-full:before {
  content: "\e96f";
}
.icon-calc:before {
  content: "\e035";
}
.icon-calculator:before {
  content: "\e919";
}
.icon-calendar:before {
  content: "\e037";
}
.icon-calendar3:before {
  content: "\e91a";
}
.icon-camera:before {
  content: "\e038";
}
.icon-cancel-storno:before {
  content: "\e906";
}
.icon-candle-flame:before {
  content: "\e9c8";
}
.icon-car:before {
  content: "\e9bd";
}
.icon-car-solid-full:before {
  content: "\e972";
}
.icon-cardiology:before {
  content: "\e95c";
}
.icon-cart:before {
  content: "\e03a";
}
.icon-cart-2:before {
  content: "\e039";
}
.icon-case:before {
  content: "\e03b";
}
.icon-catering:before {
  content: "\e9c9";
}
.icon-catering-2:before {
  content: "\e9ca";
}
.icon-cc:before {
  content: "\e03c";
}
.icon-cd:before {
  content: "\e03d";
}
.icon-chair:before {
  content: "\e95d";
}
.icon-chair-counter:before {
  content: "\e95e";
}
.icon-chalkboard-user:before {
  content: "\e9ea";
}
.icon-chart:before {
  content: "\25d5";
}
.icon-chart-down:before {
  content: "\e03f";
}
.icon-chart-down-2:before {
  content: "\e03e";
}
.icon-chart-up:before {
  content: "\e041";
}
.icon-chart-up-2:before {
  content: "\e040";
}
.icon-chat-2:before {
  content: "\e95f";
}
.icon-chat-3:before {
  content: "\e960";
}
.icon-check-2:before {
  content: "\e044";
}
.icon-check-3:before {
  content: "\2714";
}
.icon-check-solid:before {
  content: "\e9eb";
}
.icon-check-to-slot-solid:before {
  content: "\e9ec";
}
.icon-check_in_out:before {
  content: "\e961";
}
.icon-child-reaching-solid:before {
  content: "\e973";
}
.icon-children-solid-full:before {
  content: "\e974";
}
.icon-christmas-hat:before {
  content: "\e9cb";
}
.icon-christmas-stutenkerl:before {
  content: "\e9cc";
}
.icon-christmas-tree:before {
  content: "\e9cd";
}
.icon-chrome:before {
  content: "\e045";
}
.icon-circle-check-solid:before {
  content: "\e9ed";
}
.icon-climate:before {
  content: "\e9ce";
}
.icon-clipboard:before {
  content: "\e048";
}
.icon-clock:before {
  content: "\e049";
}
.icon-clock-alarm:before {
  content: "\e912";
}
.icon-clock3:before {
  content: "\e91b";
}
.icon-cloud:before {
  content: "\2601";
}
.icon-cocktail-party:before {
  content: "\e9b4";
}
.icon-code:before {
  content: "\e04c";
}
.icon-coffee:before {
  content: "\e04d";
}
.icon-coffee-cup:before {
  content: "\e9cf";
}
.icon-cogs:before {
  content: "\e04e";
}
.icon-coin-euro-2:before {
  content: "\e962";
}
.icon-coin-euro-3:before {
  content: "\e963";
}
.icon-coins-solid:before {
  content: "\e9ee";
}
.icon-comment:before {
  content: "\e964";
}
.icon-communication:before {
  content: "\e965";
}
.icon-compass-drafting-solid:before {
  content: "\e9ef";
}
.icon-compass-solid:before {
  content: "\e9f0";
}
.icon-concierge:before {
  content: "\e966";
}
.icon-cone-2:before {
  content: "\e054";
}
.icon-connecting-airports:before {
  content: "\e967";
}
.icon-construction:before {
  content: "\e968";
}
.icon-contao:before {
  content: "\e056";
}
.icon-content-cut:before {
  content: "\e969";
}
.icon-credit-card:before {
  content: "\e91d";
}
.icon-creditcard-2:before {
  content: "\e96a";
}
.icon-cubes-stacked-solid-full:before {
  content: "\e97d";
}
.icon-deskphone:before {
  content: "\e96b";
}
.icon-detector-alarm:before {
  content: "\e96c";
}
.icon-devices-wearables:before {
  content: "\e96d";
}
.icon-dgs:before {
  content: "\e981";
}
.icon-dine-in:before {
  content: "\e96e";
}
.icon-direction:before {
  content: "\e05f";
}
.icon-display:before {
  content: "\e91e";
}
.icon-document:before {
  content: "\e06a";
}
.icon-document-add:before {
  content: "\e060";
}
.icon-document-pdf:before {
  content: "\e064";
}
.icon-document-remove:before {
  content: "\e066";
}
.icon-document-zip:before {
  content: "\e069";
}
.icon-documents:before {
  content: "\e06c";
}
.icon-download:before {
  content: "\e06d";
}
.icon-download-2:before {
  content: "\2913";
}
.icon-download-rounded:before {
  content: "\e9f1";
}
.icon-download-solid:before {
  content: "\e9f2";
}
.icon-drawer:before {
  content: "\e91f";
}
.icon-dribbble:before {
  content: "\e06f";
}
.icon-droplet:before {
  content: "\e920";
}
.icon-elevator:before {
  content: "\e970";
}
.icon-ember:before {
  content: "\e071";
}
.icon-enter:before {
  content: "\e921";
}
.icon-equalizer:before {
  content: "\e072";
}
.icon-escalator-warning:before {
  content: "\e971";
}
.icon-exit:before {
  content: "\e922";
}
.icon-external:before {
  content: "\e151";
}
.icon-eye:before {
  content: "\e073";
}
.icon-family-restroom:before {
  content: "\e975";
}
.icon-fan:before {
  content: "\e077";
}
.icon-favorite:before {
  content: "\e976";
}
.icon-fax:before {
  content: "\e078";
}
.icon-fax-2:before {
  content: "\e977";
}
.icon-file-text:before {
  content: "\e923";
}
.icon-film:before {
  content: "\e924";
}
.icon-fire-truck:before {
  content: "\e978";
}
.icon-firewire:before {
  content: "\e07d";
}
.icon-fitness-center:before {
  content: "\e979";
}
.icon-flag:before {
  content: "\e07f";
}
.icon-flashlight:before {
  content: "\e97a";
}
.icon-flickr:before {
  content: "\e081";
}
.icon-folder:before {
  content: "\e083";
}
.icon-folders:before {
  content: "\e084";
}
.icon-fork:before {
  content: "\2443";
}
.icon-fork-spoon:before {
  content: "\e97b";
}
.icon-forklift:before {
  content: "\e97c";
}
.icon-forrst:before {
  content: "\e088";
}
.icon-funnel:before {
  content: "\e08b";
}
.icon-gallery:before {
  content: "\e08c";
}
.icon-game:before {
  content: "\e08d";
}
.icon-garage:before {
  content: "\e97e";
}
.icon-gifts-solid-full:before {
  content: "\e982";
}
.icon-glass:before {
  content: "\e925";
}
.icon-glasses:before {
  content: "\e094";
}
.icon-globe:before {
  content: "\e095";
}
.icon-googlemaps:before {
  content: "\e903";
}
.icon-gplus-2:before {
  content: "\e096";
}
.icon-grid:before {
  content: "\e09a";
}
.icon-grid-2:before {
  content: "\e099";
}
.icon-grocery:before {
  content: "\e97f";
}
.icon-group-discussion:before {
  content: "\ea04";
}
.icon-group-roof:before {
  content: "\ea05";
}
.icon-hairdryer:before {
  content: "\e9b5";
}
.icon-hammer:before {
  content: "\e926";
}
.icon-hand-point-right-solid-full:before {
  content: "\e986";
}
.icon-hand-point-up-solid:before {
  content: "\e9be";
}
.icon-hand-pointer-solid:before {
  content: "\e9e3";
}
.icon-handy:before {
  content: "\e90d";
}
.icon-handy-gekippt:before {
  content: "\e90e";
}
.icon-handy-hand:before {
  content: "\e90f";
}
.icon-headphones:before {
  content: "\e09c";
}
.icon-heart:before {
  content: "\e09e";
}
.icon-heartbeat:before {
  content: "\e09f";
}
.icon-heat-pump-outline:before {
  content: "\e9f3";
}
.icon-heating-square:before {
  content: "\e9f4";
}
.icon-help:before {
  content: "\e0a0";
}
.icon-hiking:before {
  content: "\e980";
}
.icon-home:before {
  content: "\e9f5";
}
.icon-home-2:before {
  content: "\e0a1";
}
.icon-home-energy:before {
  content: "\e9f6";
}
.icon-home-glas:before {
  content: "\e987";
}
.icon-home-work-rounded:before {
  content: "\e9f7";
}
.icon-honeymoon:before {
  content: "\e9b6";
}
.icon-house:before {
  content: "\e927";
}
.icon-house-bar:before {
  content: "\e9b7";
}
.icon-house-chimney-user-solid:before {
  content: "\e9f8";
}
.icon-ice-cream-cup:before {
  content: "\e9d0";
}
.icon-info:before {
  content: "\2139";
}
.icon-info-2:before {
  content: "\e0a6";
}
.icon-ipad:before {
  content: "\e0a7";
}
.icon-iphone:before {
  content: "\e0a8";
}
.icon-ipod:before {
  content: "\e0a9";
}
.icon-keyboard:before {
  content: "\e983";
}
.icon-laptop:before {
  content: "\e0ad";
}
.icon-laptop-2:before {
  content: "\e0ac";
}
.icon-laundry:before {
  content: "\e984";
}
.icon-laundry-2:before {
  content: "\e985";
}
.icon-layers:before {
  content: "\e0b0";
}
.icon-leave:before {
  content: "\e0b1";
}
.icon-left-quote:before {
  content: "\201c";
}
.icon-left-quote-2:before {
  content: "\e0b2";
}
.icon-library:before {
  content: "\e928";
}
.icon-libreoffice:before {
  content: "\e929";
}
.icon-lightbulb-2:before {
  content: "\e9bf";
}
.icon-like:before {
  content: "\e0b3";
}
.icon-link:before {
  content: "\e0b5";
}
.icon-list:before {
  content: "\e0b8";
}
.icon-list-2:before {
  content: "\e0b7";
}
.icon-local-cafe:before {
  content: "\e988";
}
.icon-local-dining:before {
  content: "\e989";
}
.icon-local-parking:before {
  content: "\e98a";
}
.icon-local-shipping:before {
  content: "\e98b";
}
.icon-location:before {
  content: "\e92a";
}
.icon-lock:before {
  content: "\e0c3";
}
.icon-login:before {
  content: "\e98c";
}
.icon-logout:before {
  content: "\e98d";
}
.icon-loop-left:before {
  content: "\e0c6";
}
.icon-loop-left-2:before {
  content: "\e0c5";
}
.icon-loop-right-2:before {
  content: "\e0c7";
}
.icon-magnifying-glass:before {
  content: "\e0cb";
}
.icon-magnifying-glass-2:before {
  content: "\e0c9";
}
.icon-mail-3:before {
  content: "\e0cd";
}
.icon-mail-stroke:before {
  content: "\e0ce";
}
.icon-man:before {
  content: "\e92b";
}
.icon-man-woman:before {
  content: "\e92c";
}
.icon-masks-theater:before {
  content: "\e9d8";
}
.icon-measuring-tape:before {
  content: "\e98e";
}
.icon-medical-info:before {
  content: "\e98f";
}
.icon-mic:before {
  content: "\e0d6";
}
.icon-minibar:before {
  content: "\e9ba";
}
.icon-minus:before {
  content: "\2212";
}
.icon-minus-2:before {
  content: "\2296";
}
.icon-mobile-1:before {
  content: "\e990";
}
.icon-mobile-2:before {
  content: "\e991";
}
.icon-mobile-3:before {
  content: "\e992";
}
.icon-mode-cool-frost:before {
  content: "\e993";
}
.icon-monitor:before {
  content: "\e0d7";
}
.icon-monitor-heart:before {
  content: "\e994";
}
.icon-moon:before {
  content: "\e0d8";
}
.icon-more-time-late:before {
  content: "\e995";
}
.icon-mouse:before {
  content: "\e0d9";
}
.icon-movie:before {
  content: "\e0db";
}
.icon-mug:before {
  content: "\e92d";
}
.icon-new-window:before {
  content: "\e0dc";
}
.icon-news:before {
  content: "\e0dd";
}
.icon-newsmode-outline-rounded:before {
  content: "\e9f9";
}
.icon-newspaper:before {
  content: "\e92e";
}
.icon-number-1:before {
  content: "\e9b1";
}
.icon-number-2:before {
  content: "\e9d9";
}
.icon-number-3:before {
  content: "\e9da";
}
.icon-number-4:before {
  content: "\e9db";
}
.icon-number-5:before {
  content: "\e9dc";
}
.icon-number-6:before {
  content: "\e9dd";
}
.icon-number-7:before {
  content: "\e9de";
}
.icon-number-8:before {
  content: "\e9df";
}
.icon-number-9:before {
  content: "\e9e4";
}
.icon-nutrition:before {
  content: "\e996";
}
.icon-office:before {
  content: "\e92f";
}
.icon-paint-format:before {
  content: "\e930";
}
.icon-paperclip:before {
  content: "\e0df";
}
.icon-paragraph:before {
  content: "\e945";
}
.icon-paragraph-bold:before {
  content: "\e946";
}
.icon-parking-sign:before {
  content: "\e997";
}
.icon-party-balloons:before {
  content: "\e9d1";
}
.icon-party-birthday-cake:before {
  content: "\e9d2";
}
.icon-party-feuerwerk:before {
  content: "\e9d3";
}
.icon-party-luftschlangen:before {
  content: "\e9d4";
}
.icon-paste:before {
  content: "\e931";
}
.icon-pause:before {
  content: "\e0e2";
}
.icon-pause-2:before {
  content: "\e0e1";
}
.icon-pen:before {
  content: "\270f";
}
.icon-pen-3:before {
  content: "\e0e5";
}
.icon-phone:before {
  content: "\e0e8";
}
.icon-phone-call:before {
  content: "\e9e9";
}
.icon-phone-call1:before {
  content: "\e910";
}
.icon-phone-call2:before {
  content: "\ea03";
}
.icon-picasa:before {
  content: "\e0ea";
}
.icon-piggy-bank-solid:before {
  content: "\e9fa";
}
.icon-pilcrow:before {
  content: "\b6";
}
.icon-pin:before {
  content: "\e0eb";
}
.icon-plane:before {
  content: "\e002";
}
.icon-play:before {
  content: "\25b6";
}
.icon-play-2:before {
  content: "\e0ee";
}
.icon-plumbing:before {
  content: "\e998";
}
.icon-plus:before {
  content: "\2b";
}
.icon-plus-2:before {
  content: "\e0ef";
}
.icon-plus-3:before {
  content: "\2295";
}
.icon-podcast-2:before {
  content: "\e0f0";
}
.icon-polaroids:before {
  content: "\e0f2";
}
.icon-pool:before {
  content: "\e999";
}
.icon-power:before {
  content: "\e0f3";
}
.icon-power-cord:before {
  content: "\e932";
}
.icon-printer:before {
  content: "\e0f5";
}
.icon-printer-2:before {
  content: "\e0f4";
}
.icon-printer3:before {
  content: "\e933";
}
.icon-produkt-hinweis:before {
  content: "\e9e2";
}
.icon-profile:before {
  content: "\e934";
}
.icon-qrcode:before {
  content: "\e935";
}
.icon-question:before {
  content: "\e0f7";
}
.icon-question-mark:before {
  content: "\3f";
}
.icon-radio-button:before {
  content: "\e99a";
}
.icon-read:before {
  content: "\e0f9";
}
.icon-recycle:before {
  content: "\e0fa";
}
.icon-responsive:before {
  content: "\e0fb";
}
.icon-restaurant:before {
  content: "\e99b";
}
.icon-right-quote:before {
  content: "\201d";
}
.icon-right-quote-2:before {
  content: "\e0fc";
}
.icon-rocket:before {
  content: "\e0fd";
}
.icon-room-service:before {
  content: "\e99c";
}
.icon-ruler:before {
  content: "\e100";
}
.icon-safari:before {
  content: "\e101";
}
.icon-safe:before {
  content: "\e9bb";
}
.icon-salt-pepper:before {
  content: "\e9d5";
}
.icon-sauna:before {
  content: "\e99d";
}
.icon-save:before {
  content: "\e102";
}
.icon-schedule:before {
  content: "\e99e";
}
.icon-schreibtisch-table:before {
  content: "\e9d7";
}
.icon-scooter:before {
  content: "\e99f";
}
.icon-screwdriver-wrench-solid:before {
  content: "\e9fb";
}
.icon-seedling-solid:before {
  content: "\e9fc";
}
.icon-services:before {
  content: "\e936";
}
.icon-services2:before {
  content: "\e937";
}
.icon-share:before {
  content: "\e105";
}
.icon-shield-2:before {
  content: "\e107";
}
.icon-shield-2-stroke:before {
  content: "\e106";
}
.icon-shopping-cart:before {
  content: "\e9a0";
}
.icon-shower:before {
  content: "\e9a1";
}
.icon-shower-2:before {
  content: "\e9b8";
}
.icon-shuffle:before {
  content: "\e109";
}
.icon-skype:before {
  content: "\e10a";
}
.icon-smart-card-reader:before {
  content: "\e9a2";
}
.icon-smoke-free:before {
  content: "\e9a3";
}
.icon-snowflake:before {
  content: "\e10c";
}
.icon-social-facebook:before {
  content: "\e901";
}
.icon-social-facebook-2:before {
  content: "\e948";
}
.icon-social-instagram:before {
  content: "\e152";
}
.icon-social-instagram-2:before {
  content: "\e9e0";
}
.icon-social-linkedin:before {
  content: "\e0b6";
}
.icon-social-pinterest:before {
  content: "\e0ed";
}
.icon-social-tictoc:before {
  content: "\e900";
}
.icon-social-whatsapp:before {
  content: "\e905";
}
.icon-social-xing:before {
  content: "\e14b";
}
.icon-social-youtube:before {
  content: "\e9e1";
}
.icon-solution-outlined:before {
  content: "\e9fd";
}
.icon-speedometer:before {
  content: "\e112";
}
.icon-speedometer-2-medium:before {
  content: "\e110";
}
.icon-sports-bar:before {
  content: "\e9a4";
}
.icon-sprinkler:before {
  content: "\e9a5";
}
.icon-square-check-solid:before {
  content: "\e9fe";
}
.icon-stairs:before {
  content: "\e9b9";
}
.icon-star:before {
  content: "\2605";
}
.icon-star-stroke:before {
  content: "\e118";
}
.icon-stars:before {
  content: "\e9a6";
}
.icon-stats-bars:before {
  content: "\e939";
}
.icon-stethoscope:before {
  content: "\e9a7";
}
.icon-stop-2:before {
  content: "\e119";
}
.icon-stop-small:before {
  content: "\25a0";
}
.icon-stoppuhr:before {
  content: "\e9e5";
}
.icon-stumbleupon:before {
  content: "\e11b";
}
.icon-stumbleupon-2:before {
  content: "\e11a";
}
.icon-sun:before {
  content: "\2600";
}
.icon-sun-stroke:before {
  content: "\263c";
}
.icon-support:before {
  content: "\e11c";
}
.icon-table-sign:before {
  content: "\e9a8";
}
.icon-tag:before {
  content: "\e120";
}
.icon-tag-right:before {
  content: "\e11e";
}
.icon-tag-stroke:before {
  content: "\e11f";
}
.icon-target:before {
  content: "\e122";
}
.icon-target-2:before {
  content: "\e121";
}
.icon-telephone:before {
  content: "\e93a";
}
.icon-temperature:before {
  content: "\e124";
}
.icon-temperature-2:before {
  content: "\e123";
}
.icon-tennis:before {
  content: "\e9c0";
}
.icon-text-bullet-list-square-toolbox-20-regular:before {
  content: "\e9ff";
}
.icon-thumb-down:before {
  content: "\e125";
}
.icon-thumb-up:before {
  content: "\e126";
}
.icon-ticket:before {
  content: "\e90c";
}
.icon-tie:before {
  content: "\e127";
}
.icon-toolbox-solid:before {
  content: "\ea00";
}
.icon-tools:before {
  content: "\e129";
}
.icon-tools-2:before {
  content: "\e128";
}
.icon-tools-3:before {
  content: "\e9a9";
}
.icon-tools-4:before {
  content: "\e9aa";
}
.icon-touch-app:before {
  content: "\e9ab";
}
.icon-trackpad_input:before {
  content: "\e9c1";
}
.icon-train:before {
  content: "\e9c2";
}
.icon-trash:before {
  content: "\e12d";
}
.icon-tree:before {
  content: "\e93c";
}
.icon-trowel-bricks-solid:before {
  content: "\ea01";
}
.icon-truck:before {
  content: "\e12e";
}
.icon-tv-sign-1:before {
  content: "\e9ac";
}
.icon-tv-sign-2:before {
  content: "\e9ad";
}
.icon-umbrella:before {
  content: "\2602";
}
.icon-user-group:before {
  content: "\e93d";
}
.icon-user-tie:before {
  content: "\e93e";
}
.icon-users:before {
  content: "\e139";
}
.icon-vacuum-cleaner:before {
  content: "\e9bc";
}
.icon-vcard:before {
  content: "\e13a";
}
.icon-video:before {
  content: "\e13d";
}
.icon-wand:before {
  content: "\e142";
}
.icon-warning:before {
  content: "\e144";
}
.icon-weekend:before {
  content: "\e9ae";
}
.icon-wheelchair:before {
  content: "\e9af";
}
.icon-wifi:before {
  content: "\e9b0";
}
.icon-wireless:before {
  content: "\e146";
}
.icon-woman:before {
  content: "\e93f";
}
.icon-woman-2:before {
  content: "\e9b2";
}
.icon-work-item-parent:before {
  content: "\ea02";
}
.icon-wrench:before {
  content: "\e149";
}
.icon-x:before {
  content: "\d7";
}
.icon-x-2:before {
  content: "\2297";
}
.icon-x-2-stroke:before {
  content: "\e14a";
}
.icon-yard:before {
  content: "\e9b3";
}
.icon-youtube:before {
  content: "\e14f";
}
.icon-youtube-2:before {
  content: "\e14e";
}
.icon-zahn:before {
  content: "\e942";
}

/*
 * 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: 1680px) {
	:root {
		--main-padding-x: 3.7037%;
	}
}
@media screen and (max-width: 1280px) {
	: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: 1em/1.7625 Manrope, sans-serif;
	color: #444444;
	-webkit-tap-highlight-color: #1e560f;
}
@media screen and (max-width: 900px) {
	html {
		font-size: 1em;
	}
}

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: 1280px) {
	.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: #1e560f;
	color: #ffffff;
	text-shadow: none !important;
}

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

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

table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	border: 1px solid #bbbbbb;
	border-radius: 16px;
	background: #ffffff;
}
table th,
table td {
	border: solid #bbbbbb;
	border-width: 1px 0 0 1px;
}
table th:first-child,
table td:first-child {
	border-left: 0;
}
table > thead > tr:first-child > th,
table > thead > tr:first-child > td,
table > tbody:first-child > tr:first-child > th,
table > tbody:first-child > tr:first-child > td,
table > tfoot:first-child + tbody > tr:first-child > th,
table > tfoot:first-child + tbody > tr:first-child > td {
	/* First row of the table */
	border-top: 0;
}
table th {
	padding: 0.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: #1e560f;
	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 #bbbbbb;
}
.content-toplink > a:before,
.ce_toplink > a:before,
.toplink > a:before {
	font: 100%/1 "RockSolid Icons";
	content: "\e00c";
	-webkit-font-smoothing: antialiased;
	font-smoothing: antialiased;
	text-rendering: geometricPrecision;
	text-indent: 0;
	display: inline-block;
	position: relative;
	margin-right: 0.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 #bbbbbb;
}

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

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

.headline-hr {
	overflow: hidden;
}
.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: #1e560f;
}

.information {
	color: #1e560f;
}

.warning {
	color: #1e560f;
}

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 #bbbbbb;
	border-radius: 16px;
	color: #071504;
	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: #1e560f;
}
p.information,
div.information,
span.information {
	color: #071504;
}
p.information:before,
div.information:before,
span.information:before {
	content: "\e0a6";
	background: #1e560f;
}
p.warning,
div.warning,
span.warning {
	color: #071504;
}
p.warning:before,
div.warning:before,
span.warning:before {
	content: "\e143";
	background: #1e560f;
}

p.drop-cap:first-letter,
span.drop-cap {
	float: left;
	margin: 0.11111em 0.33333em 0 0;
	padding: 0.19444em;
	border: 1px solid #bbbbbb;
	border-radius: 16px;
	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: #bbbbbb;
	border-radius: 16px;
}

pre {
	margin: 1.71429em 0;
	padding: 0.5em 1em;
	display: block;
	overflow: auto;
	border-radius: 16px;
	font-family: "Lucida Console", monospace;
	font-size: 0.875em;
	line-height: 1.715;
	background-color: #bbbbbb;
}
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: #16400b #0f2b07 #071504;
	border-radius: 16px;
	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 #0f2b07;
	background: #1e560f;
	background: linear-gradient(#266c13, #19490d);
	box-shadow: inset 0 1px #618857;
}
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: #000000 #000000 #000000;
	text-decoration: none;
	background-image: linear-gradient(#2a7915, #153c0a);
}
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(#236311, #1c520e);
}
#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: #a8c228 #96ad24 #839820;
	color: #1e560f;
	text-shadow: 0 -1px 0 #96ad24;
	background: #b8d430;
	background: linear-gradient(#bfd845, #afcb2a);
	box-shadow: inset 0 1px #cde06e;
}
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: #71831b #5f6e17 #4d5912;
	background: linear-gradient(#c4db52, #a4be27);
}
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(#bcd73d, #b7d32c);
}

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: #d7e78c #d0e277 #c9de62;
	color: #1e560f;
	text-shadow: 0 -1px 0 #deeba1;
	background: #edf4cb;
	background: linear-gradient(#f4f8e0, #e9f1be);
	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: #d0e277 #c9de62 #c1d94d;
	background: linear-gradient(#f9fbed, #e4efb2);
}
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(#f1f7d8, #ecf3c7);
}

button.-quaternary,
.button.-quaternary,
input[type="submit"].-quaternary,
.feature-box-link.-quaternary,
.headline-box-link.-quaternary {
	border: 2px solid #444444;
	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: 1680px;
	margin-right: auto;
	margin-left: auto;
}

.centered-wrapper-inner,
.info-map-boxes {
	max-width: 1555.5555555556px;
	margin-right: auto;
	margin-left: auto;
}
@media screen and (max-width: 1680px) {
	.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: 1280px) {
	.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: #f5f5f5;
}
.page:before {
	content: "";
	display: table;
}
.page:after {
	content: "";
	display: table;
	clear: both;
}
.tao-boxed .page {
	max-width: 1680px;
	border: solid #bbbbbb;
	border-width: 0 1px;
	box-shadow: 0 0 5px rgba(0, 0, 0, 0.2);
}
@media screen and (max-width: 1680px) {
	.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 #bbbbbb;
	font-size: 0.8125em;
	background: #f5f5f5;
}
.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: 1680px;
	margin-right: auto;
	margin-left: auto;
	border-right: 1px solid #bbbbbb;
	border-left: 1px solid #bbbbbb;
}
@media screen and (max-width: 1680px) {
	.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: #444444;
}
@media screen and (max-width: 1280px) {
	.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: 1280px) {
	.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: 1280px) {
	.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: 1280px) {
	.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: #444444;
	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: #f5f5f5;
	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: 1280px) {
	.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: 16px 16px 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: #444444;
}

.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 #bbbbbb;
	border-radius: 16px 0 16px 16px;
	color: #444444;
	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: #bbbbbb;
	color: #444444;
	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 #bbbbbb;
	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: 1680px;
	margin-right: auto;
	margin-left: auto;
	border-right: 1px solid #bbbbbb;
	border-left: 1px solid #bbbbbb;
}
@media screen and (max-width: 1680px) {
	.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: #1e560f;
}
@media screen and (max-width: 1280px) {
	.header-navigation-inner {
		height: auto;
		min-height: 0;
	}
}

.logo {
	position: absolute;
	top: 10%;
	bottom: 7%;
	left: 3.7037%;
	left: calc(3.7037% + var(--safe-area-left));
	margin: 0;
	font-size: inherit;
}
@media screen and (max-width: 1280px) {
	.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: 1280px) {
	.logo a {
		display: inline;
	}
}
.logo img {
	display: block;
	width: auto;
	height: 100%;
}
@media screen and (max-width: 1280px) {
	.logo img {
		display: inline;
		height: auto;
		max-height: 4.0625em;
	}
}

.main-navigation-wrapper {
	position: relative;
	clear: both;
	border: 1px solid #bbbbbb;
	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: 1280px) {
	.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.229em;
	font-size: 0.875em;
	color: #1e560f;
}
.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 #1e560f;
	transition: right 0.4s ease-out, left 0.4s ease-out;
}
@media screen and (max-width: 1280px) {
	.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: #1e560f;
	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: #ffffff;
}
.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 #bbbbbb;
	border-width: 1px 1px 2px;
	border-top-color: #bbbbbb;
	border-radius: 0 0 16px 16px;
	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 #bbbbbb;
	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: 16px;
	color: #1e560f;
	transition: background-color 0.6s ease-in, color 0.6s ease-in;
}
.main-navigation > ul > li > ul a:hover {
	text-decoration: none;
	color: #1e560f;
	background-color: #bbbbbb;
	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: #1e560f;
}
.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 #bbbbbb;
	border-width: 1px 1px 2px;
	border-top-color: #bbbbbb;
	border-radius: 0 0 16px 16px;
	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: 1280px) {
	.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: 1280px) {
	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: #1e560f;
}
.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: #1e560f;
}
.mega-dropdown-column ul a:hover {
	color: #1e560f;
}
.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: 16px;
	overflow: hidden;
	font-size: 0.875em;
	background: #ffffff;
}
@media screen and (max-width: 1280px) {
	.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 #bbbbbb;
}
.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 #bbbbbb;
}
.main-navigation-search:hover input,
.main-navigation-search.focus input {
	margin-left: 0.85714em;
	border-color: #bbbbbb;
	box-shadow: none;
}
.main-navigation-search:hover:after,
.main-navigation-search.focus:after {
	content: none;
}
@media screen and (max-width: 1280px) {
	.main-navigation-search {
		margin-right: -1px;
		border: 1px solid #bbbbbb;
	}
	.main-navigation-search input {
		margin-left: 0.85714em;
		border-color: #bbbbbb;
		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: #1e560f;
	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: #1e560f;
}

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

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

.main-navigation-mobile-icons.main-navigation-mobile-icons {
	margin: 1em 0;
	text-align: center;
}
.main-navigation-mobile-icons.main-navigation-mobile-icons li {
	display: inline;
	padding: 0;
}
.main-navigation-mobile-icons.main-navigation-mobile-icons a {
	display: inline-block;
	width: 2.85714em;
	height: 2.85714em;
	overflow: hidden;
	padding: 0;
	border: 0;
	border-radius: 16px;
	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: #444444 !important;
}
.main-navigation-mobile-icons.main-navigation-mobile-icons a:hover:before {
	color: inherit !important;
}

.tagline {
	zoom: 1;
	border-bottom: 1px solid #bbbbbb;
	background: #f5f5f5;
}
.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: #444444;
	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: 1680px) {
	.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 #bbbbbb;
}
.centered-wrapper.-border-bottom {
	border-bottom: 1px solid #bbbbbb;
}
.centered-wrapper.-color-inverted {
	color: #ffffff;
}
.centered-wrapper.-highlight-color {
	background-color: #1e560f;
}
.centered-wrapper.-background-color-1 {
	background-color: #1e560f;
}
.centered-wrapper.-background-color-2 {
	background-color: #b8d430;
}
.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: 1280px) {
	.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: 1280px) {
	.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: 1280px) {
	.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: 1280px) {
	.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: 2em;
	font-weight: bold;
	color: #1e560f;
}
.main-content .-color-inverted h1 {
	color: #ffffff;
}
.main-content h2 {
	font-size: 2em;
	color: #1e560f;
}
.main-content .-color-inverted h2 {
	color: #bbbbbb;
}
.main-content h3 {
	font-size: 2em;
}
.main-content h4 {
	font-size: 2em;
}
.main-content h5 {
	font-size: 2em;
	line-height: 1.50056;
}
.main-content h6 {
	font-size: 2em;
	line-height: 1.50063;
	letter-spacing: 0.0625em;
	color: #444444;
	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: #1e560f;
}
.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: #444444;
}
.-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.7625;
	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: #1e560f;
}

input,
textarea {
	padding: 0.85714em 1.35714em;
	line-height: normal;
	border: 1px solid #bbbbbb;
	border-bottom-color: #aeaeae;
	border-radius: 16px;
	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: #1e560f;
}
input::-webkit-input-placeholder,
textarea::-webkit-input-placeholder {
	/* multiple rules, because user agents are required to ignore a rule with an unknown selector */
	color: #98a0ab;
}
input:-moz-placeholder,
textarea:-moz-placeholder {
	color: #98a0ab;
}
input:-ms-input-placeholder,
textarea:-ms-input-placeholder {
	color: #98a0ab;
}
input::placeholder,
textarea::placeholder {
	color: #98a0ab;
}
input:hover,
textarea:hover {
	border-color: #aeaeae #aeaeae #a4a4a4;
	box-shadow: 0 0 6px rgba(0, 0, 0, 0.1);
}
input:focus,
textarea:focus {
	border-color: #1e560f;
}
.-color-inverted input,
.-color-inverted textarea {
	background: #1e560f;
}

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

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

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

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

fieldset {
	margin: 1.125em 0;
	border: 1px solid #bbbbbb;
}
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: #444444;
}
.-color-inverted .main-content label {
	color: #bbbbbb;
}
.main-content label .mandatory {
	margin-left: 0.14286em;
	color: #1e560f;
}
.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: #444444;
}
.-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: #444444;
}

.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: 1280px) {
	.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: 1280px) {
	.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 #bbbbbb;
	border-radius: 16px;
}
.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: 16px 16px 0 0;
	font-size: 0.75em;
	font-weight: bold;
	letter-spacing: 0.08333em;
	color: #ffffff;
	text-transform: uppercase;
	background: #1e560f;
}
.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: #1e560f;
}

.ce_accordion {
	color: #444444;
}
.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 #bbbbbb;
	border-radius: 16px;
	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: #1e560f;
	text-decoration: none;
}
.ce_accordion .toggler.ui-accordion-header-active:after {
	content: "\2212";
}
.ce_accordion + .ce_accordion .toggler {
	border-radius: 0 0 16px 16px;
}
.ce_accordion .accordion {
	zoom: 1;
	position: relative;
	/* collapse borders */
	margin-bottom: -2px;
	padding: 0.0625em 1.25em;
	border: 1px solid #bbbbbb;
	border-top-color: #dddddd;
	border-radius: 0 0 16px 16px;
	background: #e5e5e5;
}
.ce_accordion .accordion:before {
	content: "";
	display: table;
}
.ce_accordion .accordion:after {
	content: "";
	display: table;
	clear: both;
}

.content-accordion {
	color: #444444;
}
.content-accordion .handorgel__header {
	display: block;
	margin: 0;
	border: 1px solid #bbbbbb;
	/* collapse borders */
	margin-bottom: -1px;
	outline: none;
	font-size: inherit;
	font-weight: bold;
	text-transform: none;
	color: #444444;
	background: #ffffff;
}
.content-accordion .handorgel__header:first-of-type {
	border-top-left-radius: 16px;
	border-top-right-radius: 16px;
}
.content-accordion .handorgel__header:last-of-type:not(.handorgel__header--open) {
	border-bottom-right-radius: 16px;
	border-bottom-left-radius: 16px;
}
.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: #1e560f;
}
.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 #bbbbbb;
	border-top-color: #dddddd;
	background: #e5e5e5;
	transition: height 0.5s ease;
}
.content-accordion .handorgel__content:last-of-type {
	border-bottom-right-radius: 16px;
	border-bottom-left-radius: 16px;
}
.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: #444444;
	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 #bbbbbb;
	border-radius: 16px;
}
.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: 16px;
}
.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 #1e560f;
	border-radius: 100%;
	font-size: 2.28571em;
	color: #1e560f;
	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: #1e560f;
	color: #ffffff;
	background-color: #1e560f;
}
.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: #1e560f;
}
.icon-boxes-item:hover.-inverted-icon:before,
.icon-boxes-item:focus.-inverted-icon:before {
	color: #1e560f;
	background-color: #ffffff;
}
.icon-boxes-item:hover.-headline-icon:before,
.icon-boxes-item:focus.-headline-icon:before {
	color: #1e560f;
	background: none;
}
.icon-boxes-item h3 {
	margin: 0 0 0.66667em;
	font-family: Manrope, sans-serif;
	font-style: normal;
	font-size: 1.5em;
	color: #444444;
}
.icon-boxes-item p {
	margin: 0.5em 0;
}

.icon-boxes-item-link.-link {
	color: #1e560f;
}
.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: #444444;
	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 #bbbbbb;
	border-radius: 16px;
	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: #1e560f;
}
.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: #1e560f;
	opacity: 0.2;
}
.rotating-boxes-item-content h3 {
	position: relative;
	margin: 0.66667em 0;
	font-size: 1.5em;
	color: #1e560f;
}
.-color-inverted .rotating-boxes-item-content h3 {
	color: #1e560f;
}
.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: #444444;
}
.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 #bbbbbb;
	border-radius: 16px;
	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: #444444;
}
.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: #777777 !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 #bbbbbb;
	border-radius: 16px;
	font-size: 1.125em;
	line-height: 1.50056;
	color: #444444;
}

.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 #bbbbbb;
	border-radius: 16px;
}
.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: #aeaeae;
	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 #bbbbbb;
	border: 1px solid rgba(187, 187, 187, 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 #bbbbbb;
	text-align: center;
}
@media screen and (max-width: 900px) {
	.pricing-table-plan {
		float: none;
		width: auto !important;
		border-radius: 16px;
		margin-bottom: 1.6875em;
	}
}
.pricing-table-plan:first-of-type {
	border-top-left-radius: 16px;
	border-bottom-left-radius: 16px;
}
.pricing-table-plan:last-of-type {
	border-top-right-radius: 16px;
	border-bottom-right-radius: 16px;
}
@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: 16px;
	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: 16px 16px 0 0;
	color: #ffffff;
	background: #1e560f;
}
.pricing-table-plan h3 {
	margin: 0;
	padding: 0.875em 0;
	border-bottom: 1px solid #bbbbbb;
	font-size: inherit;
	font-weight: bold;
	color: inherit;
}
.pricing-table-plan p {
	margin: 0;
	padding: 0.375em 0;
	border-bottom: 1px solid #bbbbbb;
	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: #444444;
}
.pricing-table-plan p i {
	display: block;
	font-style: normal;
	font-size: 0.29167em;
	color: #444444;
}
.pricing-table-plan ul {
	margin: 0 0 -1px 0;
	padding: 0;
	list-style: none;
	font-size: 0.875em;
	color: #444444;
}
.pricing-table-plan li {
	display: block;
	padding: 0.5em;
	border-bottom: 1px solid #bbbbbb;
	transition: background-color 0.3s ease-in;
}
.pricing-table-plan li:hover {
	background-color: #bbbbbb;
	transition-duration: 0.05s;
}
.pricing-table-plan 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: 1280px) {
	.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: #444444;
}
@media screen and (max-width: 1280px) {
	.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: 1280px) {
	.-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: 1280px) {
	.-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: 1280px) {
	.-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: 1280px) {
	.-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: #444444;
	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: 1280px) {
	.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: 1280px) {
	.-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: #444444;
}
.-color-inverted .counter-boxes > h3 {
	color: #bbbbbb;
}
.-color-inverted.-highlight-color .counter-boxes > h3 {
	color: #000000;
}
.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: #444444;
}
.-color-inverted .counter-boxes-item:before {
	color: #bbbbbb;
}
.-color-inverted.-highlight-color .counter-boxes-item:before {
	color: #000000;
}
.counter-boxes-item p {
	margin: 0.06944em -0.5em 0.16667em;
	font-size: 4.5em;
	line-height: 1;
	color: #1e560f;
	font-weight: 300;
}
@media screen and (max-width: 1280px) {
	.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: #000000;
}
.counter-boxes-item h3 {
	margin: 0;
	font-size: 1.5em;
	font-weight: bold;
	color: inherit;
}
@media screen and (max-width: 1280px) {
	.counter-boxes-item h3 {
		font-size: 1.25em;
	}
}
.counter-boxes-item h4 {
	margin: 0.28571em 0 0;
	font-size: 0.875em;
	color: #444444;
}
.-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: #1e560f;
	background: rgba(30, 86, 15, 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: #444444;
}
.-color-inverted.-highlight-color .headline-box h3 {
	color: #000000;
}
.-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 #bbbbbb;
	color: inherit;
}
.projects-item:nth-of-type(even) {
	border-top-color: #bbbbbb;
}
.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: 1680px) {
	.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: 1280px) {
	.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: 16px;
	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: #1e560f;
	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 #bbbbbb;
	color: #1e560f;
	font-size: 1em;
	font-weight: bold;
	text-transform: uppercase;
}
.info-map-boxes-item p {
	margin: 0.57143em 0;
}

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

.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 #444444;
	border-radius: 16px;
	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: #444444;
	background: rgba(68, 68, 68, 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: #1e560f;
}

.tab-navigation {
	margin: 2.25em 0 0;
	border: 1px solid transparent;
	border-bottom-color: #bbbbbb;
	text-align: center;
}
.tab-navigation ul,
.tab-navigation li {
	margin: 0;
	padding: 0;
}
.tab-navigation ul {
	display: table;
	table-layout: fixed;
	display: flex;
	align-items: flex-end;
	width: 100%;
}
@media screen and (max-width: 900px) {
	.tab-navigation ul {
		display: inline;
	}
}
.tab-navigation li {
	display: table-cell;
	flex-grow: 1;
	list-style-type: none;
	vertical-align: bottom;
}
@media screen and (max-width: 900px) {
	.tab-navigation li {
		display: block;
	}
}
.tab-navigation li:first-child a {
	margin-left: -1px;
}
.tab-navigation a {
	position: relative;
	display: block;
	margin: -1px -1px 0 0;
	padding: 0.5625em 1.75em;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	outline: none;
	border: 1px solid #bbbbbb;
	border-bottom-width: 0;
	background-color: #ffffff;
}
@media screen and (max-width: 900px) {
	.tab-navigation a {
		margin: 0 -1px;
	}
}
.tab-navigation a:hover,
.tab-navigation a:focus {
	text-decoration: none;
}
.tab-navigation a.is-active {
	z-index: 1;
	box-shadow: 0 10px 0 -1px #ffffff, 0 -3px #1e560f, -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: #1e560f;
		color: #ffffff;
		background: #1e560f;
		box-shadow: 0 1px #1e560f;
	}
}
.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: #1e560f;
}
.tab-navigation.-image-tabs a.is-active {
	color: #1e560f;
	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: #1e560f;
	border-bottom: 0;
}
.tab-navigation.-image-tabs a:before {
	display: block;
	margin: 0 auto 0.25em;
	font-size: 3em;
	color: #1e560f;
}
.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 #bbbbbb;
	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 #bbbbbb;
	z-index: 99;
	background-color: #ffffff;
	box-shadow: 0 -2px 5px rgba(0, 0, 0, 0.1);
}
@media screen and (max-width: 1280px) {
	.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: #1e560f;
}
@media screen and (max-width: 1280px) {
	.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: 1280px) {
	.fixed-note-column:last-child {
		text-align: left;
	}
}
@media screen and (max-width: 1280px) {
	.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: #1e560f;
	box-shadow: 0 -2px 5px rgba(0, 0, 0, 0.1);
}
@media screen and (max-width: 1680px) {
	.fixed-note-closed {
		right: 0;
		right: var(--safe-area-right);
	}
}
@media screen and (max-width: 1280px) {
	.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: #0f2b07;
}
.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 #bbbbbb;
	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 #bbbbbb;
	font-size: 1.5em;
	font-weight: bold;
	color: inherit;
}
.news-image-teaser h2 a {
	color: inherit;
}
.news-image-teaser h2 a:hover {
	color: #1e560f;
	text-decoration: none;
}
.news-image-teaser p {
	margin: 0.625em 0;
	color: #444444;
}
.news-image-teaser .news-image-teaser-info {
	margin: 0 0 0.93333em;
	font-size: 0.9375em;
	color: #444444;
}

.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 #bbbbbb;
}
@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: #444444;
	text-transform: uppercase;
}
.news-image-teaser-meta .comment-count {
	display: block;
	padding: 0.25em 0;
	border-top: 1px solid #bbbbbb;
	color: #444444;
}
.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: #1e560f;
	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 #bbbbbb;
	border-radius: 16px;
	font-size: 0.875em;
	color: #444444;
}
.news-list-boxed-item h3 {
	margin: 0.38095em 0 0;
	font-size: 1.5em;
	font-weight: bold;
	line-height: 1.38143;
	color: #1e560f;
}
.news-list-boxed-item h3 a {
	color: inherit;
	transition: color 0.3s;
}
.news-list-boxed-item h3 a:hover {
	color: #1e560f;
	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 #bbbbbb;
}

.news-list-boxed-item-image {
	position: relative;
	display: block;
	overflow: hidden;
}
.news-list-boxed-item-image.-no-image {
	padding-bottom: 56.81818%;
	background: #777777;
}
.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: #1e560f;
}
.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 #bbbbbb;
	border-top: 0;
	border-radius: 0 0 1px 1px;
	color: #444444;
	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: #1e560f;
}

.news-boxes-item-image {
	display: block;
	overflow: hidden;
}
.news-boxes-item-image.-no-image {
	padding-bottom: 56.81818%;
	background: #777777;
}
.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: #444444;
}

.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: #bbbbbb;
}
.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 #bbbbbb;
	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: #1e560f;
}
.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 #bbbbbb;
	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: #1e560f;
}
.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: #444444;
}

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

.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 #bbbbbb;
	color: #444444;
}
.mod_search .highlight {
	padding: 0 0.25em;
	font-weight: bold;
	background: #d2ddcf;
}
.mod_search .url {
	padding-bottom: 1.42857em;
	border-bottom: 1px dotted #bbbbbb;
	font-size: 0.875em;
	color: #444444;
}
.mod_search .url:before {
	font: 100%/1 "RockSolid Icons";
	content: "\e0b5";
	-webkit-font-smoothing: antialiased;
	font-smoothing: antialiased;
	text-rendering: geometricPrecision;
	text-indent: 0;
	display: inline-block;
	position: relative;
	margin-right: 0.35714em;
}
.mod_search .url .filesize {
	font-size: 0.85714em;
}

.comment_default {
	margin: 1.6875em 0;
	padding: 1.25em 6.25% 0;
	border: 1px solid #bbbbbb;
	border-radius: 16px;
	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 #bbbbbb;
}
.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: #1e560f;
}
.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: 1280px) {
	.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: 1280px) {
	.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: 1280px) {
	.tao-3-columns .sidebar {
		width: auto;
	}
}
.tao-3-columns .sidebar.-right {
	left: 51.85185%;
	margin-right: -18.51852%;
}
@media screen and (max-width: 1280px) {
	.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: #444444;
}
.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: 1280px) {
	.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: #444444;
}
.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: #444444;
	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: 16px;
	color: #444444;
	text-decoration: none;
	background-color: #bbbbbb;
	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: #e6e6e6;
}
.sub-navigation ul a.trail,
.sub-navigation ul strong.trail,
.sub-navigation ul span.trail {
	color: #ffffff;
}
.sub-navigation ul ul {
	margin-left: 0.85714em;
}
.sub-navigation li {
	padding: 0.14286em 0.42857em;
	border-top: 1px solid #bbbbbb;
}
.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: #444444;
}
.footer-bar.-color-inverted {
	color: #ffffff;
	background: #1e560f;
}
.footer-bar h1,
.footer-bar h2,
.footer-bar h3 {
	margin: 1em 0;
	padding-bottom: 0.21429em;
	border-bottom: 1px solid #bbbbbb;
	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: #1e560f;
}
.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: #444444;
}
.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: #444444;
}
@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: 1280px) {
	.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 #1e560f;
	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 #bbbbbb;
}
@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 #bbbbbb;
	line-height: 0;
	/* Fixes Chrome bug */
	letter-spacing: -1em;
	color: #444444;
	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: #444444;
}
.footer-copyright .rocksolid-copyright {
	color: inherit;
	opacity: 0.6;
}
@media screen and (max-width: 1280px) {
	.footer-copyright {
		float: none;
		padding-bottom: 1em;
	}
}

.footer-links {
	float: right;
	margin: 0;
	padding: 2.14286em 0;
	font-size: 0.875em;
	color: #444444;
}
@media screen and (max-width: 1280px) {
	.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: #444444;
}
.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: #444444;
	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 #bbbbbb;
	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: #444444;
	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: #444444;
	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: #bbbbbb;
}
.rsts-skin-testimonials .rsts-prev:hover:after,
.rsts-skin-testimonials .rsts-prev:focus:after,
.rsts-skin-testimonials .rsts-next:hover:after,
.rsts-skin-testimonials .rsts-next:focus:after {
	color: #a2a2a2;
}
.rsts-skin-testimonials .rsts-next {
	right: -0.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 #bbbbbb;
	border-radius: 100%;
	background: #bbbbbb;
	background: rgba(187, 187, 187, 0.5);
}
.rsts-skin-testimonials .rsts-nav a:hover:after,
.rsts-skin-testimonials .rsts-nav a.active:after {
	background-color: #bbbbbb;
}
.rsts-skin-testimonials .rsts-nav-prev,
.rsts-skin-testimonials .rsts-nav-next {
	display: none !important;
}

.rsts-skin-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: 16px;
	background-color: #444444;
	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: 16px;
	overflow: hidden;
	text-indent: -99em;
	line-height: 0;
	background-color: #444444;
	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 16px 16px 0;
}
.tao-fullwidth .tagline .rsts-skin-tao .rsts-next {
	right: 0;
	right: var(--safe-area-right);
	border-radius: 16px 0 0 16px;
}
.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 #444444;
	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: #444444;
}
.rsts-skin-tao .rsts-nav-numbers a,
.rsts-skin-tao .rsts-nav-tabs a {
	margin: 5px;
	border: 2px solid #444444;
	border-radius: 16px;
	font-size: 0.8125em;
	line-height: 0.61538em;
	color: #444444;
	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: #444444;
	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 #444444;
	border-radius: 100%;
	background-color: rgba(68, 68, 68, 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: #444444;
}
.rsts-skin-tao .rsts-video-stop {
	top: 20px;
	right: 20px;
	left: auto;
	margin-top: 0;
	border-radius: 16px;
}
.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 #bbbbbb;
	overflow: hidden;
	text-indent: -99em;
	line-height: 0;
	background-color: #ffffff;
}
.rsts-skin-testimonials-centered .rsts-prev:hover,
.rsts-skin-testimonials-centered .rsts-prev:focus,
.rsts-skin-testimonials-centered .rsts-next:hover,
.rsts-skin-testimonials-centered .rsts-next:focus,
.rsts-skin-partner .rsts-prev:hover,
.rsts-skin-partner .rsts-prev:focus,
.rsts-skin-partner .rsts-next:hover,
.rsts-skin-partner .rsts-next:focus,
.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: #444444;
}
.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: #2b2b2b;
}
.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 #bbbbbb;
	border-radius: 100%;
	background: #bbbbbb;
	background: rgba(187, 187, 187, 0.5);
}
.rsts-skin-testimonials-centered .rsts-nav .rsts-nav-item a:hover,
.rsts-skin-testimonials-centered .rsts-nav .rsts-nav-item a.active,
.rsts-skin-partner .rsts-nav .rsts-nav-item a:hover,
.rsts-skin-partner .rsts-nav .rsts-nav-item a.active,
.rsts-skin-mega-dropdown .rsts-nav .rsts-nav-item a:hover,
.rsts-skin-mega-dropdown .rsts-nav .rsts-nav-item a.active,
.rsts-skin-carousel .rsts-nav .rsts-nav-item a:hover,
.rsts-skin-carousel .rsts-nav .rsts-nav-item a.active {
	text-decoration: none;
}
.rsts-skin-testimonials-centered .rsts-nav .rsts-nav-item a:hover:after,
.rsts-skin-testimonials-centered .rsts-nav .rsts-nav-item a.active:after,
.rsts-skin-partner .rsts-nav .rsts-nav-item a:hover:after,
.rsts-skin-partner .rsts-nav .rsts-nav-item a.active:after,
.rsts-skin-mega-dropdown .rsts-nav .rsts-nav-item a:hover:after,
.rsts-skin-mega-dropdown .rsts-nav .rsts-nav-item a.active:after,
.rsts-skin-carousel .rsts-nav .rsts-nav-item a:hover:after,
.rsts-skin-carousel .rsts-nav .rsts-nav-item a.active:after {
	background-color: #bbbbbb;
}

.rsts-skin-partner .rsts-nav {
	margin: 1.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: #444444;
}
.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: #2b2b2b;
}
.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%;
}

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

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

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

.only-800px,
.only-900px {
	display: none;
}

.margin-top-none,
.margin-top-none p {
    margin-top: 0 !important;
}

.margin-bottom-none,
.margin-bottom-none p {
    margin-bottom: 0 !important;
}

html {
	scroll-behavior: smooth;
	lang: de;
	/* Sprungmarken und Tab-Fokus nicht hinter der fixen Kopfzeile bzw. der
	   Quicknav (WCAG 2.4.11). --vm-header-space steht hier (je Breakpoint),
	   --vm-quicknav-space in custom_quicknav.css. */
	/* !important: TAOs script.js setzt ab 900px scroll-padding-top als
	   Inline-Style am <html> – mit der geschrumpften Kopfzeilenhöhe, ohne Luft
	   für den Fokusring. */
	scroll-padding-top: var(--vm-header-space, 0px) !important;
	scroll-padding-bottom: var(--vm-quicknav-space, 0px);
}

/* ==========================================================
   Barrierefreiheit – Basis (Fokus, Sprunglinks, Touch)
   Stand 14.09.2026 · übernommen aus donum vitae (13.09.2026)
   ========================================================== */

:root {
	/* Fixe Kopfzeile plus Luft für den Fokusring. Gemessen 14.09.2026:
	   85px (> 1280px, beim Scrollen 51px), 98px (≤ 1280px), 81px (≤ 520px) –
	   Werte je Breakpoint in den Media Queries unten. */
	--vm-header-space: 92px;

	/* TAO schreibt die Linkfarbe DECKEND in den Tap-Highlight -> auf Android
	   blitzt ein dunkelgrünes Rechteck ohne Rundung auf, die Beschriftung ist
	   kurz weg. Dämpfen statt abschalten: Auf Touch ist das die einzige
	   Rückmeldung, dass der Finger getroffen hat. */
	-webkit-tap-highlight-color: rgba(30, 86, 15, 0.18);
}

/* Sichtbarer Tastatur-Fokus (WCAG 2.4.7)
   TAO nimmt Ringe an vielen Stellen weg (button/.button outline:none,
   a:hover/a:active outline:0, Mobilmenü-Links outline:none). Deshalb global
   mit !important – Farbe und Abstand aber über Variablen: Eine Ausnahme
   braucht dann KEIN eigenes !important, es genügt --vm-focus-ring bzw.
   --vm-focus-offset am Container.
   Nicht currentColor: Buttons mit weißer Schrift bekämen sonst einen weißen
   Ring auf weißem Grund (Kontrast 1:1). */
body a:focus-visible,
body button:focus-visible,
body input:focus-visible,
body select:focus-visible,
body textarea:focus-visible,
body summary:focus-visible,
body [tabindex]:focus-visible {
	outline: 3px solid var(--vm-focus-ring, #1E560F) !important;
	outline-offset: var(--vm-focus-offset, 3px) !important;
}

/* Maus und Touch: kein Browser-Standardrand. normalize.css setzt
   a:focus { outline: thin dotted } – nach einem Klick (oder wenn das Menü
   den Fokus auf den Burger zurücksetzt) erscheint sonst ein gepunkteter,
   kaum erkennbarer Rand. Die Tastatur bekommt den Ring oben (:focus-visible). */
body :focus:not(:focus-visible) {
	outline: none !important;
}

/* Dunkle bzw. farbige Flächen (Footer-Kasten, Verlauf): heller Ring */
.-color-inverted,
.verlauf {
	--vm-focus-ring: #ffffff;
}

/* Nur für Screenreader (eigene Definition – TAOs .invisible wird an anderer
   Stelle umdefiniert und ist deshalb keine verlässliche Grundlage) */
.vm-nur-sr {
	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;
}

/* Icon-Glyphen aus data-icon gehören nicht in den Linknamen
   TAO: *[data-icon]:before { content: attr(data-icon) } – das Zeichen aus der
   Privatnutzungszone wird sonst Teil des Namens (Buttons, „Absatz mit Icon"):
   Screenreader lesen ein Kästchen oder einen Zufallsbuchstaben,
   Sprachsteuerung trifft den Namen nicht (WCAG 2.5.3).
   Leerer Alternativtext nach „/"; die erste Zeile ist der Rückfall für
   Browser ohne diese Syntax (Safari < 17.4). */
[data-icon]::before {
	content: attr(data-icon);
	content: attr(data-icon) / "";
}

/* Contao-Sprunglinks „Navigation überspringen" beim Fokus zeigen
   TAOs .invisible blendet sie auch im Fokus aus -> ein unsichtbarer
   Tab-Stopp, der Fokus scheint zu verschwinden (WCAG 2.4.7). Betrifft nur das
   fokussierte <a>; die leeren Ziel-<span class="invisible"> bleiben unberührt.
   Position: unten links ÜBER der Quicknav, denn Quicknav und Footer-Links
   liegen unten. Der Sprunglink der Hauptnavigation erscheint oben
   (Desktop: unter der Kopfzeile, Mobil: oben im Menü-Panel,
   custom_vm_mobilenav.css). 1rem Randabstand, sonst schneidet der Viewport
   den Fokusring ab. */
a.invisible:focus {
	position: fixed !important;
	top: auto !important;
	bottom: calc(var(--vm-quicknav-space, 0px) + 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;
	white-space: nowrap;
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.3;
	color: var(--vm-primary, #1E560F);
	text-decoration: underline;
	background: #ffffff;
	border-radius: var(--vm-radius-small, 9px);
	box-shadow: 0 6px 20px rgba(0, 0, 0, 0.22);
	/* eigene Ringfarbe: Die Marke steht immer auf Weiß, auch wenn der
	   Container (z. B. die mobile Quicknav) einen hellen Ring vorgibt */
	--vm-focus-ring: #1E560F;
	--vm-focus-offset: 2px;
	/* Die Quicknav nimmt ihrem Randbereich die Klicks weg – die Marke erbt das */
	pointer-events: auto;
}

/* Sprunglink des Desktop-Hauptmenüs: unter der Kopfzeile statt unten */
#main-navigation a.invisible:focus {
	top: calc(var(--vm-header-space, 0px) + 0.5rem) !important;
	bottom: auto !important;
}

.hyphens {
    hyphens: auto;
}

p, h1, h2, h3, h4, h5, h6,
.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 {
    letter-spacing: 0.5px;
}

.main-navigation > ul > li > ul li[class*=" icon-"].active::before {
    color: #1E560F;
    margin-left: 0.5em;
}

.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: 2em;
  padding-right: 1em;
}

.fullwidth figure,
.fullwidth figure img {
    display: block;
}

.content-image.fullwidth figcaption,
.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{
  position: absolute;
  width: fit-content !important;
  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);               /* Dunkelgrün #1E560F */
  font-size: 0.75rem;
  line-height: 1.35;
  text-align: right;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.12);
  pointer-events: none;   /* blockiert Bild-Link / Hover-Zoom nicht */
  letter-spacing: 0.5px;
}

.grafik.content-image > figure figcaption {
    position: relative;
    right: auto;
    bottom: auto;
    padding: 0;
    border-radius: 0;
    background: none;
    text-align: right;
    box-shadow: none;
    color: inherit;
    width: 100% !important;
}

/* Bildelement mit der Zusatzklasse „radius": gerundete Ecken.
   overflow: hidden, damit auch das Bild selbst beschnitten wird und nicht
   quadratisch über die Rundung hinaussteht. */
.radius.content-image {
  border-radius: 20px;
  overflow: hidden;
}

.tagline, .tagline-inner {
  overflow: visible !important;
  border: none !important;
  transform: none !important;
  opacity: 1 !important;
}

.icon-text-block::before {
  top: 0.4em;
}

.icon-buttons a {
  margin: 0;
  border-radius: 0;
  border-color: #1E560F;
  background: #fff;
  font-size: 1.5em;
}

.icon-buttons a::after {
  color: #1E560F;
}

.leistung .main-content {
  margin-top: 200px;
  margin-bottom: 170px;
}

.home-start .bg-white .rs-column {
  background: rgb(255,255,255,0.75);
  border-radius: 20px;
  padding: 2.5em;
  box-shadow: 0 18px 38px rgba(0,0,0,0.25);
  width: 700px !important;
}

.home-start.centered-wrapper {
  padding-top: 150px;
}

/* --- Hero in der Hauptspalte (seit 14.09.2026) ----------------------------
   Der Hero lag vorher im Layoutbereich „Tagline" ÜBER <main>. Dann steht die
   h1 außerhalb des Hauptbereichs – wer per Screenreader zum Hauptinhalt
   springt, landet hinter der Überschrift. Deshalb Artikel in der Hauptspalte.
   Damit die Optik gleich bleibt (vorher/nachher vermessen):
   - Die 200px Abstand für die überstehende weiße Box kamen als margin-top
     von .main-content (unter der Tagline). Jetzt trägt sie der Hero selbst
     nach unten – sonst stünden 200px Leerraum ÜBER dem Hero.
   - .main-content p (1.1em) darf den Hero-Text nicht vergrößern.
   :has(…) – Leistungsseiten ohne Hero behalten ihren Abstand.
   `.vm-hero` ist der neue Seitenkopf als EIN Element (seit 17.09.2026). */
.leistung .main-content:has(.vm-hero) {
  margin-top: 0;
}

.small-width.centered-wrapper {
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
}

.page-footer .small-width.radius {
    border-radius: 20px 20px 0 0;
    box-shadow: 0 18px 38px rgba(0,0,0,.08);
    padding: 2.5em 3em;
}

.page-footer .verlauf.centered-wrapper {
    background: linear-gradient(0deg,rgba(30, 86, 15, 1) 0%, rgba(15, 46, 13, 1) 50%, rgba(15, 46, 13, 1) 100%) !important;
}

.page-footer .normal-width .centered-wrapper-inner,
.page-footer .verlauf .centered-wrapper-inner {
    margin-left: var(--page-padding-right);
    margin-right: var(--page-padding-left);
}

.page-footer hr.ce_rsce_tao_separator {
    border-top: 1px solid #475e48;
}

.page-footer .sp-1 {
  width: 27% !important;
}

.page-footer .sp-2 {
  width: 20% !important;
}

.page-footer .sp-3 {
  width: 19% !important;
}

.page-footer .sp-4 {
  width: 22% !important;
}

.page-footer .sp-2 .icon-text-block,
.page-footer .sp-3 .icon-text-block {
  border-bottom: 1px dashed #475e48;
}

.page-footer .sp-2 .icon-text-block p,
.page-footer .sp-3 .icon-text-block p {
  margin: 0.4em 0 0.5em;
}

.page-footer .icon-text-block::before {
  color: #b8d430;
}

.page-footer .special-icon.icon-text-block::before {
  color: #D4ECAB;
}

/* --- VM Linkliste im Footer (Leistungen, Service, Kontakt) --------------
   Ersetzt seit 14.09.2026 die einzelnen „Absatz mit Icon"-Elemente – echte
   <ul>/<li> statt loser Absätze (WCAG 1.3.1). Die Optik bleibt exakt die
   alte, gemessen vorher/nachher: 30px Einzug, Lime-Pfeil 0,4em unter der
   Zeilenoberkante, gestrichelte Linie in Leistungen/Service, Zeilenhöhe
   37px bzw. in Kontakt ohne Linie mit 1em Abstand.
   Allgemeine Linklisten-Regeln: custom_vm_linkliste.css. */

/* Block statt Raster: Im Grid fallen Außenabstände nicht zusammen – die
   Abstände der alten Absätze entstanden aber genau so (Absatz-Außenabstand
   verschmilzt mit dem der Überschrift darüber). */
.page-footer ul.vm-linkliste {
  display: block;
}

.page-footer .vm-linkliste-item {
  position: relative;
  padding-left: 1.875em;          /* = TAO .icon-text-block */
  letter-spacing: 0.5px;          /* wie p oben – die alten Links standen in einem Absatz;
                                     ohne den Wert läuft der Text schmaler und bricht
                                     mobil anders um */
}

.page-footer .sp-2 .vm-linkliste-item,
.page-footer .sp-3 .vm-linkliste-item {
  margin: 0.4em 0 0;
  padding-bottom: 0.5em;
  border-bottom: 1px dashed #475e48;
}

.page-footer .sp-4 .vm-linkliste-item {
  margin: 1em 0;
}

/* Link wie Fließtext: keine Flexzeile, keine erzwungene Mindesthöhe –
   die Klickfläche kommt aus dem ::after darunter */
.page-footer .vm-linkliste-link {
  display: block;
  min-height: 0;
  gap: 0;
}

.page-footer .vm-linkliste-text,
.page-footer .vm-linkliste-sublabel {
  display: block;
}

.page-footer .vm-linkliste-label,
.page-footer .vm-linkliste-sublabel {
  font-size: inherit;
  line-height: inherit;
}

/* Klickfläche über die ganze Zeile inkl. Abstand und Linie (WCAG 2.5.8),
   ohne das Layout zu verschieben: Pseudoelement am Link, positioniert am <li> */
.page-footer .vm-linkliste-link::after {
  content: "";
  position: absolute;
  top: -0.4em;
  right: 0;
  bottom: 0;
  left: 0;
}

.page-footer .sp-4 .vm-linkliste-link::after {
  top: -0.25em;
  bottom: -0.25em;
}

/* Pfeil/Icon an derselben Stelle wie das ::before des alten Absatzes */
.page-footer .vm-linkliste-icon {
  position: absolute;
  top: 0.4em;
  left: 0;
  line-height: 1;
}

.page-footer .vm-linkliste-icon::before {
  font-size: 1em;
  color: #b8d430;
}

.header-navigation {
  box-shadow: none;
}

.main-navigation {
  margin-right: calc(3% + var(--safe-area-right));
  padding-right: 0;
}

.main-navigation > ul > li::before {
    display: none;
}

.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 {
  font-weight: 700;
  font-size: 16px;
}

.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 {
    top: 0.87em;
    color: #b8d430;
    margin-left: 0.5em;
}

.main-navigation > ul > li > ul li {
  padding: 0.25em;
  letter-spacing: 0.5px;
}

.main-navigation > ul > li > ul a {
  border-radius: 0 !important;
}

.main-navigation > ul > li > ul a:hover {
  background: #eee;
}

.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: #1e560f;
  font-weight: 700;
  background: #eee;
}

.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: #1E560F;
  background: #eee;
}

/* --- Desktop-Hauptmenü per Tastatur (> 1280px) ---------------------------
   TAO öffnet die Untermenüs nur bei :hover. Die Links darin sind trotzdem
   Tab-Stopps – der Fokus verschwand in einer unsichtbaren Klappe
   (WCAG 2.1.1, 2.4.7). :focus-within öffnet sie wie das Überfahren.
   Esc schließt (vm_basis_a11y.js setzt .vm-zu, WCAG 1.4.13); die Klasse
   fällt weg, sobald Maus bzw. Fokus den Punkt verlassen.
   Fokusring im Dropdown nach innen: TAO kappt die Klappe mit overflow:hidden. */
.main-navigation > ul > li:focus-within > ul,
.main-navigation > ul > li:focus-within > .mega-dropdown {
  z-index: 1;
  max-height: 9999px;
  padding: 0.875em 1em;
  opacity: 1;
  transition: opacity 0.2s;
  pointer-events: auto;
}
.main-navigation > ul > li:focus-within > a::after,
.main-navigation > ul > li:focus-within > strong::after {
  right: 1.42857em;
  left: 1.42857em;
}
.main-navigation > ul > li.vm-zu > ul,
.main-navigation > ul > li.vm-zu:hover > ul,
.main-navigation > ul > li.vm-zu:focus-within > ul,
.main-navigation > ul > li.vm-zu > .mega-dropdown {
  max-height: 0;
  padding: 0;
  opacity: 0;
  transition: none;
  pointer-events: none;
}
.main-navigation > ul > li > ul {
  --vm-focus-offset: -3px;
}

/* Klappen der hinteren Hauptpunkte rechtsbündig öffnen
   TAO richtet nur li.last rechts aus – das Mega-Menü vergibt die Klasse
   hier aber nicht. Links ausgerichtet ragten „Service" (bis 75px) und
   „Leistungen" (bis 16px) zwischen 1281 und 1680px über den Fensterrand,
   lange Einträge wurden abgeschnitten (WCAG 1.4.10). Gemessen 14.09.2026. */
.main-navigation > ul > li:nth-last-child(-n+3) > ul {
  left: auto;
  right: -0.125em;
}
/* Hauptpunkte: Ring nach innen, die Kopfzeile schneidet sonst oben ab */
.main-navigation > ul > li > a,
.main-navigation > ul > li > strong {
  --vm-focus-offset: -3px;
}

.dark {
	color: #444 !important;
}

.darkgreen {
    color: #1E560F !important;
}

.white, p.white, .white a, a.white {
	color: #fff !important;
}

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

.liste .vm-card-inner {   
    padding: 0 !important;
}

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

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

.main-content p {
    font-size: 1.1em;
}

.home-start.kunden .bg-white .rs-column {
  background: rgb(255,255,255,0.85);
  padding: 2.5em 3em;
  width: 800px !important;
}

.mod_rocksolid_slider.kundenstimmen .testimonial > p,
.main-content .mod_rocksolid_slider.kundenstimmen .testimonial > p {
  padding: 1.5em 1.25em 1.125em;
  background: #fff;
}

.mod_rocksolid_slider.kundenstimmen p strong {
    background: #b8d430;
    color: #1E560F;
    border-radius: 16px;
    padding: 0.35em 0.75em;
}

.mod_rocksolid_slider.kundenstimmen .testimonial-author,
.mod_rocksolid_slider.kundenstimmen .testimonial .testimonial-author {
  font-weight: 700;
  font-size: 18px;
  letter-spacing: 0.5px;
}

.mod_rocksolid_slider.kundenstimmen .testimonial-author > small b,
.mod_rocksolid_slider.kundenstimmen .testimonial .testimonial-author > small b {
  font-size: 16px;
  font-weight: 400;
  line-height: 1.25;
}

.mod_rocksolid_slider.kundenstimmen.rsts-skin-testimonials .rsts-nav a {
  width: 27px;
  height: 27px;
}

.mod_rocksolid_slider.kundenstimmen.rsts-skin-testimonials .rsts-nav a::after {
  width: 16px;
  height: 16px;
  background-color: #edf4cb;
}

.mod_rocksolid_slider.kundenstimmen.rsts-skin-testimonials .rsts-nav a:hover::after,
.mod_rocksolid_slider.kundenstimmen.rsts-skin-testimonials .rsts-nav a.active::after{
  background-color: #b8d430;
}

.mod_rocksolid_slider.kundenstimmen.rsts-skin-testimonials .rsts-prev::after,
.mod_rocksolid_slider.kundenstimmen.rsts-skin-testimonials .rsts-next::after {
  color: #1E560F;
  font-size: 18px;
}

/* --- Siegel: Energieeffizienz-Expertenliste + GIH (28.09.2026) -----------
   Die dena erlaubt die Logos nur „in der vorgegebenen Gestalt und Form",
   grafische oder farbliche Änderungen sind untersagt. Hier deshalb NUR
   Größe, Abstand und Fokusring – nie filter, opacity oder Farbe.
   Footer (dunkelgrüner Verlauf) nutzt die Varianten mit weißer Fläche,
   „Über uns" (#f5f5f5) die transparenten.

   Gleiche Höhe ohne feste Pixelwerte: Die Seitenverhältnisse stecken im
   flex-grow (EEE 260:80 = 3,25 · GIH 180:80 = 2,25). Beide teilen sich die
   Zeilenbreite in genau diesem Verhältnis und sind dadurch automatisch
   exakt gleich hoch – egal wie breit die Spalte gerade ist. */
.vm-siegel {
  display: flex;
  align-items: center;
  gap: 0.9rem;
  margin: 1.1rem 0 0;
  padding: 0;
  max-width: 430px;   /* Stellschraube für die Größe nebeneinander */
}
.vm-siegel a { display: block; line-height: 0; border-radius: var(--vm-radius-small); }
.vm-siegel img { display: block; width: 100%; height: auto; }

/* Nur im Footer: Dort liegen die Varianten MIT weißer Fläche. Die Rundung
   muss aufs Bild selbst – am <a> allein rundet sie nichts, weil das Bild
   als Kindelement ohne overflow: hidden darüber hinaussteht. Auf „Über uns"
   sind die Logos transparent, da gäbe es nichts zu runden.
   Betroffen ist nur die weiße Fläche, die wir selbst angelegt haben –
   das dena-Logo und seine Schutzzone bleiben unangetastet. */
.page-footer .vm-siegel img { border-radius: var(--vm-radius-small); }
/* Basis = die transparenten Dateien („Über uns"): 227:55 und 148:55.
   Der Footer nutzt die Varianten mit weißer Fläche, die durch die
   Schutzzone ein anderes Verhältnis haben: 260:80 und 180:80. */
.vm-siegel-ee  { flex: 4.13 1 0; }
.vm-siegel-gih { flex: 2.69 1 0; }
.page-footer .vm-siegel-ee  { flex: 3.25 1 0; }
.page-footer .vm-siegel-gih { flex: 2.25 1 0; }
.vm-siegel a:focus-visible {
  outline: 2px solid var(--vm-accent);
  outline-offset: 3px;
}

/* ==========================================================
   Schriftgrößen
   ========================================================== */

.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: 16px !important;
}
@media screen and (max-width: 900px) {
	.font-size-s {
		font-size: 16pxem !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: 3em !important;
}
@media screen and (max-width: 900px) {
	.font-size-xxl {
		font-size: 2em !important;
	}
}

.footer-links {
    padding-bottom: 100px;
    font-size: 16px;
    float: none;
    clear: both;
}

.footer-links ul li {
    letter-spacing: 0.5px;
}

/* Footer-Links ohne Trennstriche (Kundenwunsch 22.09.2026) ----------------
   Das TAO-Theme setzt zwischen die Punkte einen senkrechten Strich: ein
   ::before-Pseudoelement von 1px Breite mit Hintergrundfarbe
   (main.css `.footer-links li:before`) – kein Textzeichen, deshalb hilft
   hier kein Suchen-und-Ersetzen im Inhalt.
   Der Strich wird nur unsichtbar gemacht, das Pseudoelement bleibt als
   reiner Abstandhalter stehen. `content: none` waere falsch: Dann fielen
   auch dessen Aussenabstaende weg und die Links klebten aneinander.
   Gleiche Spezifitaet wie die Theme-Regel (0,2,1) – es gewinnt die
   Quellreihenfolge, und custom_allgemein.css steht im kombinierten Asset
   hinter main.css. */
.footer-links li::before {
    width: 0;
    background: none;
}

/* Zielgröße der Footer-Links (WCAG 2.5.8): Polster am Link, per negativem
   Außenabstand ausgeglichen -> Klickfläche höher, Layout unverändert.
   Die aufgerufene Seite gibt Contao als <strong> aus – ohne dieselben Werte
   stünde sie als inline-Element auf der Grundlinie und damit höher als die
   Links daneben. */
.footer-links li > a,
.footer-links li > strong {
    display: inline-block;
    padding: 0.5em 0;
    margin: -0.5em 0;
    vertical-align: middle;
}

/* --- Top-Link „Nach oben" (TAO-Element rsce_tao_footer_top) --------------
   - Beschriftung NICHT per display:none verstecken: Der Link hätte dann gar
     keinen Namen (Screenreader: nur „Link"). Nur visuell ausblenden – TAO
     würde die Spans bei Hover/Fokus sonst neben dem Kreis einblenden.
   - Die Kante ist die Bedien-Information: Rahmen ≥ 3:1 (WCAG 1.4.11),
     Fläche 92 %, damit Fotos darunter nicht durchschlagen.
   - Pfeil-Glyphe mit leerem Alternativtext (/ ""), sonst landet das Zeichen
     aus der Privatnutzungszone im Linknamen. Erste Zeile = Rückfall für
     Browser ohne diese Syntax.
   - Fokus springt mit nach oben: vm_basis_a11y.js.
   - z-index: über Bildunterschriften (z-index 2), unter Quicknav (100). */
.footer-top-link {
    position: fixed;
    bottom: 0.5rem;
    right: 0.5rem;
    z-index: 90;
    border-radius: 50%;     /* Fokusring folgt dem Kreis */
    color: #444 !important;
}

.footer-top-link::after {
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.92) !important;
    border: 1px solid #767676 !important;
    box-shadow: none !important;
    content: "\e941";
    content: "\e941" / "";
}

.footer-top-link > span,
.footer-top-link:hover > span,
.footer-top-link:focus > span {
    position: absolute !important;
    width: 1px;
    height: 1px;
    margin: -1px !important;
    padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
}

/* ==========================================================
   @media (max-width: 1500px)
   ========================================================== */

@media screen and (max-width: 1500px) {

/* Siegel: Zwischen 1500px und 1280px ist die Kontaktspalte (22 %) zu
   schmal für zwei Logos nebeneinander – hier untereinander. Gleiche
   Höhe dann über eine feste Höhe statt über die Zeilenbreite. */
.page-footer .vm-siegel {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.75rem;
    max-width: none;
}
.page-footer .vm-siegel a { flex: 0 0 auto; }
.page-footer .vm-siegel img { width: auto; height: 64px; }

}

/* ==========================================================
   @media (max-width: 1280px)
   ========================================================== */

@media screen and (max-width: 1280px) {

:root {
    --vm-header-space: 106px;   /* Kopfzeile 98px */
}

.padding-right-xxs,
.padding-right-xs,
.padding-right-s,
.padding-right-m,
.padding-right-l,
.padding-right-xl,
.padding-right-xxl {
    padding-right: 0 !important;
}

.padding-left-xxs,
.padding-left-xs,
.padding-left-s,
.padding-left-m,
.padding-left-l,
.padding-left-xl,
.padding-left-xxl {
    padding-left: 0 !important;
}

.page-header {
  position: fixed;
  width: 100%;
}

.header-navigation-inner {
    height: auto !important;
}

.main-navigation-mobile-open,
.main-navigation-mobile.is-enabled {
    display: block;
}

.main-navigation-mobile-open {
  width: 64px;
  height: 49px;
}

.main-navigation-mobile-open::after {
  height: 2px;
  border-radius: 1px;
  box-shadow: 0 9px #444, 0 18px #444;
}

.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 {
    display: none;
}

.main-navigation-mobile ul li ul li a::before,
.main-navigation-mobile ul li ul li strong::before,
.main-navigation-mobile ul li ul li span.active::before,
.main-navigation-mobile ul li ul li span.trail::before,
.main-navigation-mobile ul li ul li span.forward::before {
    display: inline-block;
    color: #b8d430;
}

.main-navigation-mobile li li strong.active::before {
    color: #1E560F;
}

.main-navigation-mobile li a {
    letter-spacing: 0.5px;
}

.main-navigation {
    display: none;
}

.main-navigation-mobile-open {
  position: fixed;
}

.logo {
    text-align: center;
    margin-left: 0;
    padding-top: 0.75em;
}

.footer-links {
    padding-top: 1.5em;
}

.leistung .main-content {
    margin-bottom: 100px;
}

.page-footer .sp-1.rs-column {
    width: 61% !important;
    margin-right: 0 !important;
    clear: left;
}

.page-footer .sp-2.rs-column{
    margin-right: 4%;
}

.page-footer .sp-3.rs-column{
    margin-right: 0;
}

.page-footer .sp-2.rs-column,
.page-footer .sp-3.rs-column {
    clear: none;
    width: 48% !important;
    margin-top: 0;
}

.page-footer .sp-4.rs-column{
    margin-right: 0;
    margin-top: 1em;
    clear: left;
    /* Die Spalte steht hier allein in ihrer Zeile und bekommt sie ganz.
       fit-content machte sie so schmal, dass die beiden Siegel
       untereinander mussten. Spalte 2 und 3 bleiben bewusst nebeneinander
       (Bianka, 28.09.2026) – sp-4 rutscht deshalb nicht neben sp-3.
       Ab 800px greift weiter unten wieder fit-content. */
    width: 100% !important;
}

/* Siegel: ab hier ist wieder Platz – nebeneinander, Größe über die
   Zeilenbreite (siehe Kommentar am Basis-Block). */
.page-footer .vm-siegel {
    flex-direction: row;
    align-items: center;
    gap: 0.9rem;
    max-width: 430px;
}
/* a.vm-siegel-* statt .vm-siegel-*: Der 1500er Block oben setzt
   `.page-footer .vm-siegel a { flex: 0 0 auto }` – das ist spezifischer
   als eine reine Klasse und würde die Proportionen sonst schlagen. */
.page-footer .vm-siegel a.vm-siegel-ee  { flex: 3.25 1 0; }
.page-footer .vm-siegel a.vm-siegel-gih { flex: 2.25 1 0; }
.page-footer .vm-siegel img { width: 100%; height: auto; }

}

/* ==========================================================
   @media (max-width: 1000px)
   ========================================================== */

@media screen and (max-width: 1000px) {

.quicknav {
	padding-bottom: 0 !important;
}

/* Top-Link über der Quicknav-Leiste (Höhe zentral in custom_quicknav.css) */
.footer-top-link {
	bottom: calc(var(--vm-quicknav-space, 64px) + 0.5rem);
}

.page-footer .small-width.radius {
    max-width: 90% !important;
}

}

/* ==========================================================
   @media (max-width: 900px)
   ========================================================== */

@media screen and (max-width: 900px) {

.hide-900px {
    display: none;
}

.only-900px {
    display: block;
}

.leistung .main-content {
    margin-top: 0;
}

/* ⚠ Die 98px sind die Höhe der FIXEN Kopfzeile und müssen in jeder
   dieser Regeln stehen bleiben. Oberhalb von 900px setzt TAOs script.js
   den Ausgleich selbst als Inline-Padding an .page – bei max-width: 900px
   tut es das ausdrücklich NICHT (script.js, Zeile 217). Darunter ist
   dieses CSS also der einzige Ausgleich. Wer ihn hier auf 0 setzt, legt
   die Kopfzeile über den Seiteninhalt. */
.leistung .content-wrapper {
    padding-top: calc(98px + 1em);
}

/* Hero in der Hauptspalte: Der 1em-Abstand stand vorher zwischen Hero
   (Tagline) und Inhalt – jetzt gehört er unter den Hero. Die Kopfzeilen-
   höhe bleibt, nur die 1em fallen weg. Stand vorher auf 0 und verdeckte
   dadurch das Kopfbild – auf „Über uns" und „Kontakt" war der Kopf des
   Kunden abgeschnitten (28.09.2026). */
.leistung .content-wrapper:has(.main-content .vm-hero) {
    padding-top: 98px;
}

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

.home-start.kunden.centered-wrapper {
  padding-top: 70px;
  padding-bottom: 70px;
  margin-top: 70px;
}

.home-start.kunden .bg-white .rs-column {
  padding: 2em 2.5em;
  width: 100% !important;
}

}

/* ==========================================================
   @media (max-width: 800px)
   ========================================================== */
   
@media screen and (max-width: 800px) {

.only-800px {
	display: block;
}

.kundenbild {
    margin-top: 70px;
}

.home-start.centered-wrapper .vm-cw-caption {
    display: none;
}

.home-start.kunden.centered-wrapper {
    padding-top: 40px;
    margin-top: 0;
}

.home-start.centered-wrapper {
  padding-top: 40px;
  min-height: auto !important;
}

.home-start .centered-wrapper-background {
	background-image: none !important;
}

.home-start .bg-white .rs-column {
  width: 100% !important;
  box-shadow: none;
  padding: 1.5em;
}

.page-footer .sp-1.rs-column {
    width: 100% !important;
    margin-right: 0;
    clear: left;
}

.page-footer .sp-2.rs-column,
.page-footer .sp-3.rs-column {
    width: fit-content !important;
    margin-right: 0;
    clear: left;
}

/* Bis hierher galt die 61 % aus dem 1280er Block – ab 800px verhält sich
   die Kontaktspalte wieder wie vorher. */
.page-footer .sp-4.rs-column {
    width: fit-content !important;
}

.page-footer .sp-2.rs-column .icon-text-block,
.page-footer .sp-3.rs-column .icon-text-block,
.page-footer .sp-2.rs-column .vm-linkliste-item,
.page-footer .sp-3.rs-column .vm-linkliste-item {
    padding-right: 1em;
}

}

/* ==========================================================
   @media (max-width: 600px)
   ========================================================== */

@media screen and (max-width: 600px) {

.logo img {
    margin-left: 2em;
}

.home-start.centered-wrapper {
  padding-top: 25px;
}

.home-start.kunden.centered-wrapper {
    padding-top: 20px;
    margin-top: 0;
}

.home-start.kunden .bg-white .rs-column {
    padding: 0;
    background: transparent;
    border-radius: 0;
}

.page-footer .small-width.radius {
  padding: 2em 2em 1em;
}

.page-footer .small-width.radius .centered-wrapper-inner {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.verlauf .centered-wrapper-background {
  background-size: cover !important;
}

}

/* ==========================================================
   @media (max-width: 520px)
   ========================================================== */

@media screen and (max-width: 520px) {

:root {
    --vm-header-space: 89px;   /* Kopfzeile 81px */
}

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

/* Die .leistung-Regeln aus dem 900er Block sind spezifischer und würden
   sonst mit ihren 98px gewinnen. */
.leistung .content-wrapper {
    padding-top: calc(80px + 1em);
}
.leistung .content-wrapper:has(.main-content .vm-hero) {
    padding-top: 80px;
}

.logo {
    padding-top: 1em;
    padding-bottom: 0.5em;
}

.logo img {
    margin-left: 4em;
    max-height: 3em;
}

.page-footer .sp-2.rs-column,
.page-footer .sp-3.rs-column,
.page-footer .sp-4.rs-column {
    width: 100% !important;
}

}

/* ==========================================================
   Weniger Bewegung (WCAG 2.3.3) – bewusst am Dateiende
   Deckt CSS-Transitions, -Animationen und weiches Scrollen ab. Was
   JavaScript Frame für Frame bewegt, fragt das Skript selbst ab
   (vm_basis_a11y.js beim Top-Link). Fokusringe sind keine Animation.
   ========================================================== */

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

}

/* =====================================================================
   VM Quicknav – Baum Energieberatung
   Fixierte Schnellnavigation am unteren Bildschirmrand (Contao
   Individuelle Navigation mit CSS-Klasse „quicknav").
   Nach dem TAO-Framework-CSS laden.

   Optik: schwebende Leiste in Weiß, Einträge als abgerundete „Chips".
   Hover/aktiv füllt den Chip (nicht die harte Zelle) -> saubere Ecken.
   Desktop: Schrift fließend bis ~19px. Mobil: Icon über Label gestapelt
   (wie Kleinanzeigen-App), Schrift schrumpft -> alle Punkte in einer Reihe.
   Farb-/Maß-Tokens wie in custom_vm_icon_boxes.css (--vm-*).
   ===================================================================== */

/* 0) PLATZ RESERVIEREN ------------------------------------------------
   Die fixe Leiste liegt ÜBER dem Dokument. Eine Variable, drei Nutzer:
   html { scroll-padding-bottom } in custom_allgemein.css (Tab-Fokus landet
   nie hinter der Leiste, WCAG 2.4.11), Position des Top-Links und die
   Enthüllung der Sprunglinks. Gemessen 14.09.2026 (Leiste plus Randabstand):
   72px (> 1000px), 60px (≤ 1000px, custom_allgemein.css nimmt dort den
   Randabstand weg), 56–61px (≤ 800px) – jeweils plus Luft. */
:root {
  --vm-quicknav-space: calc(84px + env(safe-area-inset-bottom, 0px));
}
@media (max-width: 1000px) {
  :root {
    --vm-quicknav-space: calc(72px + env(safe-area-inset-bottom, 0px));
  }
}
@media (max-width: 800px) {
  :root {
    --vm-quicknav-space: calc(64px + env(safe-area-inset-bottom, 0px));
  }
}

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

  display: flex;
  justify-content: center;

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

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

  /* Fokusring knapp außerhalb des Chips – bleibt im Innenrand der Leiste */
  --vm-focus-offset: 1px;
}

/* 2) DIE LEISTE – Liste als schwebender Container --------------------- */
.quicknav ul {
  list-style: none;
  display: flex;
  gap: 4px;                          /* Luft zwischen den Chips */
  margin: 0 !important;
  padding: 6px !important;           /* Innenrand -> Chips schweben im Container */

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

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

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

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

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

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

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

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

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

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

.quicknav ul li strong {
  font-size: clamp(1rem, 0.72rem + 0.9vw, 1.2rem);
}

.quicknav ul li a:hover,
.quicknav ul li a:focus-visible {
  background: var(--vm-primary);
  color: var(--vm-white);
}

/* aktiver Menüpunkt – dezente Hellgrün-Fläche */
.quicknav ul li a.active,
.quicknav ul li strong.active {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.55em;
  padding: 0.7em 1.15em;
  border-radius: calc(var(--vm-radius) - 6px);
  background: var(--vm-surface);
  color: var(--vm-primary);
}

/* Icons (Icon-Font-Glyphe / <i> / <svg> / <img>) sauber ausrichten
   .vm-nav-icon = eigenes aria-hidden-<span> aus nav_vm_a11y.html5; das
   Icon hängt dann nicht mehr als ::before am Link (sonst Teil des Linknamens). */
.quicknav ul li a i,
.quicknav ul li a svg,
.quicknav ul li a img,
.quicknav ul li a::before,
.quicknav ul li .vm-nav-icon,
.quicknav ul li .vm-nav-icon::before {
  flex: 0 0 auto;
  line-height: 1;
  margin-right: 0;
}

/* 4) MOBIL – Icon über Label, alle Punkte in einer Reihe ------------- */
@media (max-width: 800px) {
  .quicknav {
    /* randlose Leiste über die volle Breite */
    padding: 0 0 env(safe-area-inset-bottom);
  }

  .quicknav ul {
    width: 100%;
    gap: 0;
    padding: 4px !important;
    border: none;
    border-top: 1px solid var(--vm-border);
    border-bottom: 1px solid var(--vm-border);
    border-radius: 0;
    box-shadow: 0 -2px 14px rgba(0, 0, 0, 0.12);
  }

  .quicknav ul li {
    flex: 1;                         /* gleiche Breite, füllt die Reihe */
    min-width: 0;
  }

  .quicknav ul li a,
  .quicknav ul li strong.active {
    flex-direction: column;         /* Icon oben, Label darunter */
    gap: 0.3em;
    padding: 0.5em 0.2em;
    border-radius: 12px;
    /* schrumpft, damit auch „Newsletter" in die Reihe passt */
    font-size: clamp(0.6875rem, 2.9vw, 0.8125rem);
    font-weight: 400;
    width: 100%;

    /* Chips füllen die Leiste bis zum Rand -> Ring nach innen, weiß auf
       der grünen Fokus-Fläche */
    --vm-focus-offset: -3px;
    --vm-focus-ring: #ffffff;
  }

  /* auf Touch kein „klebender" Hover. NUR :hover zurücknehmen –
     :focus-visible gehört NICHT in diesen Selektor, sonst ist der
     Tastatur-Fokus mobil unsichtbar. */
  .quicknav ul li a:hover {
    background: inherit;
    color: inherit;
  }
  .quicknav ul li a:focus-visible {
    background: var(--vm-primary);
    color: var(--vm-white);
  }

  /* Icon größer als das Label (Kleinanzeigen-Optik) */
  .quicknav ul li a i,
  .quicknav ul li a svg,
  .quicknav ul li a img,
  .quicknav ul li a::before,
  .quicknav ul li .vm-nav-icon::before {
    font-size: 1.3rem;              /* Icon-Font-Glyphe */
    width: auto;
  }
  .quicknav ul li a::before,
  .quicknav ul li .vm-nav-icon::before {
    margin-right: 0;
  }
  .quicknav ul li a svg,
  .quicknav ul li a img {
    width: 1.3rem;                  /* SVG/Bild-Icon */
    height: auto;
  }
}

/* 4) MOBIL – Breiten auf kleinen Displays anpassen ------------- */
@media (max-width: 500px) {
.quicknav ul {
    padding: 4px 0 !important;
  }
.quicknav ul li {
    padding-left: 0 !important;
  }
}

/* =====================================================================
   VM Component Library · Baum Energieberatung
   Component: VM Mobile-Navigation (Off-Canvas-Menü)

   Hübscht das graue TAO-Standard-Mobilmenü (.main-navigation-mobile in
   main.css) aufs Baum-Design-System auf: weißes Panel, abgerundete
   Pill-Zeilen, Hover in Hellgrün, aktive Seite Hellgrün-Fläche + Lime-
   Akzentkante, Markengrün-Text, animierte Chevrons.

   WICHTIG – Ladereihenfolge: NACH main.css laden (überschreibt die grauen
   TAO-Defaults; gleiche Spezifität → Quellreihenfolge entscheidet).
   Nutzt --vm-*-Tokens MIT Hex-Fallbacks, funktioniert also auch, falls die
   Token-Zentrale auf einer Seite mal nicht geladen ist.

   Die Slide-Mechanik (Positionierung/Transform/.is-active) wird bewusst
   NICHT angefasst – nur Optik.
   ===================================================================== */

/* --- Panel: weiß statt grau ---------------------------------------- */
.main-navigation-mobile {
  border-top: 1px solid var(--vm-border, #e8e8e8);
  padding: 0.4rem 0.5rem calc(0.6rem + var(--safe-area-bottom, 0px));
  background: #fff;
}

/* =====================================================================
   Barrierefreiheit (Stand 14.09.2026, übernommen aus donum vitae)
   Verhalten: vm_basis_a11y.js · Menü gilt bei Baum bis 1280px
   ===================================================================== */

/* Geschlossenes Panel aus Tab-Reihenfolge und Vorlesebaum nehmen: TAO
   schiebt es nur per transform aus dem Bild, die Links blieben
   fokussierbar -> 9 unsichtbare Tab-Stopps VOR dem Burger (WCAG 2.4.3,
   2.4.7). visibility schaltet beim Schließen erst NACH der Slide-Animation
   (0,2s) um, beim Öffnen sofort.
   :root davor, weil TAO die Transition mit
   .modernizr-csstransforms3d .main-navigation-mobile.is-enabled (0,3,0) setzt. */
:root .main-navigation-mobile.is-enabled {
  visibility: hidden;
  transition: transform 0.2s ease-out, left 0.2s ease-out, visibility 0s linear 0.2s;
}
:root .main-navigation-mobile.is-enabled.is-active {
  visibility: visible;
  /* visibility hier NICHT in die Transition: Im ersten Frame einer
     hidden->visible-Transition gilt noch „hidden" – der Fokus ließe sich
     beim Öffnen nicht ins Panel setzen. */
  transition: transform 0.2s ease-out, left 0.2s ease-out;
}

/* Platz oben im Panel für den Burger, der beim offenen Menü darüber liegt */
.main-navigation-mobile.is-enabled {
  padding-top: calc(78px + var(--safe-area-top, 0px));
}

/* Fokusring im Panel nach innen – die Zeilen laufen fast randbündig */
.main-navigation-mobile {
  --vm-focus-offset: -3px;
}

/* Beim Öffnen bekommt das Panel selbst den Fokus (vm_basis_a11y.js):
   Die aufgerufene Seite ist ein <strong>, „erster Link" wäre sonst Punkt 2.
   Ein Ring um die halbe Bildschirmfläche wäre nur ein Kasten. */
.main-navigation-mobile[tabindex="-1"]:focus {
  outline: none !important;
}

/* Sprunglink der Navigation oben im Panel zeigen (Standard: unten) */
:root .main-navigation-mobile a.invisible:focus {
  top: 1rem !important;
  bottom: auto !important;
}

/* --- Burger mit Beschriftung „Menü" ----------------------------------
   Sichtbar ist der ECHTE Linktext, nicht ein ::before-Zusatz: Name und
   sichtbare Beschriftung sind damit identisch (WCAG 2.5.3, Sprach-
   steuerung „Klick auf Menü"). vm_basis_a11y.js setzt den Text auf
   „Menü" und die Klasse -vm-beschriftet – ohne Skript bleibt TAOs
   englischer Text „navigation" versteckt und die reinen Balken gelten.
   Balken wie bisher (custom_allgemein.css ≤ 1280px: 2px, #444, 9px Abstand),
   hier nur absolut an den linken Rand des Kastens gesetzt.
   > 640px: „Menü" rechts neben den Balken (Kasten 111px breit); ≤ 640px klein
   darunter (54px) – das zentrierte Logo beginnt bei 601px Breite schon bei
   138px, bei 360px bei 92px. */
.main-navigation-mobile-open.-vm-beschriftet {
  width: auto;
  height: 49px;
  padding: 0 12px 0 54px;       /* links: 11px Rand + 30px Balken + 13px Luft */
  text-indent: 0;
  font-size: 16px;
  line-height: 49px;
  font-weight: 700;
  letter-spacing: 0.5px;
  color: #444;
  text-decoration: none;
  white-space: nowrap;
}
.main-navigation-mobile-open.-vm-beschriftet::after,
.main-navigation-mobile-open.-vm-beschriftet::before {
  position: absolute;
  top: 14px;
  left: 11px;
  width: 30px;
  margin: 0;
}
.main-navigation-mobile-open.-vm-beschriftet:hover,
.main-navigation-mobile-open.-vm-beschriftet:focus {
  text-decoration: none;
}

@media (max-width: 640px) {
  .main-navigation-mobile-open.-vm-beschriftet {
    width: 54px;
    padding: 27px 0 0;
    font-size: 12px;
    line-height: 18px;
    font-weight: 400;
    text-align: center;
  }
  .main-navigation-mobile-open.-vm-beschriftet::after,
  .main-navigation-mobile-open.-vm-beschriftet::before {
    top: 6px;
    left: 12px;
  }
  .main-navigation-mobile-open.-vm-beschriftet::after {
    box-shadow: 0 7px #444, 0 14px #444;
  }
}

/* Offenes Menü: Burger ÜBER dem Panel (Panel z-index 201) und als Kreuz.
   Vorher lag er darunter – Tastaturfokus auf einem verdeckten Element
   (WCAG 2.4.11), und Sehende hatten keinen sichtbaren Schließen-Knopf.
   Offen NICHT fixiert: Das Kreuz gehört zum oberen Rand des Menüs und
   scrollt mit ihm weg (vm_basis_a11y.js scrollt beim Öffnen nach oben). */
.main-navigation-mobile.is-active ~ .page .main-navigation-mobile-open {
  z-index: 210;
  position: absolute;
}
.main-navigation-mobile.is-active ~ .page .main-navigation-mobile-open::after {
  box-shadow: none;
  transform: translateY(9px) rotate(45deg);
}
.main-navigation-mobile.is-active ~ .page .main-navigation-mobile-open::before {
  content: "";
  display: block;
  position: absolute;
  top: 14px;
  left: 11px;
  width: 30px;
  height: 2px;
  border-radius: 1px;
  background: #444;
  transform: translateY(9px) rotate(-45deg);
}
@media (max-width: 640px) {
  .main-navigation-mobile.is-active ~ .page .main-navigation-mobile-open::after {
    transform: translateY(7px) rotate(45deg);
  }
  .main-navigation-mobile.is-active ~ .page .main-navigation-mobile-open::before {
    top: 6px;
    left: 12px;
    transform: translateY(7px) rotate(-45deg);
  }
}

/* Icons der Seiten (nav_vm_a11y.html5 setzt sie als eigenes aria-hidden-
   <span> in den Link): wie vorher nur in der zweiten Ebene, in Lime */
.main-navigation-mobile .vm-nav-icon {
  display: none;
}
.main-navigation-mobile li li .vm-nav-icon {
  display: inline;
}
.main-navigation-mobile li li .vm-nav-icon::before {
  display: inline-block;
  margin-right: 0.42857em;
  color: var(--vm-accent, #b8d430);
}

/* Hängender Einzug: Bricht eine Bezeichnung um („Heiztechnik, Heizlast &
   hydraulischer Abgleich"), beginnt die zweite Zeile bündig unter dem Text
   der ersten – nicht unter dem Icon. Als Flexzeile wird der Text ein eigener
   Block neben dem Icon. flex-start hält das Icon auf der Höhe der ersten
   Textzeile (baseline schob es um 2px nach oben).
   Der Hinweis „(öffnet in neuem Fenster)" ist absolut positioniert und
   stört die Zeile nicht. */
.main-navigation-mobile li li a:has(> .vm-nav-icon),
.main-navigation-mobile li li strong:has(> .vm-nav-icon) {
  display: flex;
  align-items: flex-start;
}
.main-navigation-mobile li li .vm-nav-icon {
  flex: 0 0 auto;
}
.main-navigation-mobile li li strong.active .vm-nav-icon::before {
  color: var(--vm-primary, #1e560f);
}

/* Untermenüs ohne den grauen Inset-Schatten, transparent (erben Panel-Weiß) */
.main-navigation-mobile ul ul {
  background: transparent;
  box-shadow: none;
}

/* --- Einträge als abgerundete Pill-Zeilen --------------------------
   Auf `li` gescoped, damit die Regeln NUR die Navigations-Einträge
   treffen und nicht in einen ggf. im Menü platzierten News-Teaser
   (.mobile-newsteaser, Karten-Links liegen in <article>) reinbluten. */
.main-navigation-mobile li a,
.main-navigation-mobile li strong,
.main-navigation-mobile li span.active,
.main-navigation-mobile li span.trail,
.main-navigation-mobile li span.forward {
  position: relative;
  margin: 3px 0;
  padding: 0.6em 0.9em;
  border-bottom: 0;                 /* graue Trennlinie raus */
  /* nur rechts gerundet: links schließt die Zeile bündig mit dem
     Akzentbalken ab (Wunsch Bianka, 17.09.2026) */
  border-radius: 0 12px 12px 0;
  color: var(--vm-primary, #1e560f);
  font-weight: 700;
  background: #f5f5f5;
  transition: background-color 0.2s ease, color 0.2s ease;
  box-shadow: inset 3px 0 0 #bbb;   /* dezenter grauer Akzentbalken */
}

/* Hover / Fokus = dezente Hellgrün-Fläche */
.main-navigation-mobile li a:hover,
.main-navigation-mobile li a:focus,
.main-navigation-mobile li strong:hover,
.main-navigation-mobile li strong:focus,
.main-navigation-mobile li span.active:hover,
.main-navigation-mobile li span.trail:hover,
.main-navigation-mobile li span.forward:hover {
  background: var(--vm-surface-light, #f4f8e2);
  color: var(--vm-primary, #1e560f);
  box-shadow: inset 3px 0 0 #bbb;
}

/* Aktuelle Seite = Hellgrün-Fläche + Lime-Akzentkante (wie Leistungsnav) */
.main-navigation-mobile li a.active,
.main-navigation-mobile li strong.active,
.main-navigation-mobile li span.active,
.main-navigation-mobile li a.trail {
  background: var(--vm-surface, #edf4cb);
  color: var(--vm-primary, #1e560f);
  font-weight: 700;
  box-shadow: inset 3px 0 0 var(--vm-accent, #b8d430);
}

/* Elternseiten im Pfad (Trail/Forward) dezent markiert */
.main-navigation-mobile li a.trail,
.main-navigation-mobile li strong.trail,
.main-navigation-mobile li span.trail,
.main-navigation-mobile li a.forward,
.main-navigation-mobile li strong.forward,
.main-navigation-mobile li span.forward {
  color: var(--vm-primary, #1e560f);
  font-weight: 700;
}

/* Icons (falls pro Seite gepflegt) in Markengrün */
.main-navigation-mobile li a:before,
.main-navigation-mobile li strong:before,
.main-navigation-mobile li span.active:before,
.main-navigation-mobile li span.trail:before,
.main-navigation-mobile li span.forward:before {
  color: var(--vm-primary, #1e560f);
}

/* --- Untereinträge: etwas kleiner + ruhiger ------------------------ */
.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 {
  font-size: 0.95em;
  font-weight: 400;
  background: none;
  box-shadow: none;
  margin: 0;
  padding-top: 0;
  padding-bottom: 0.5em;
}

.main-navigation-mobile li li a:hover,
.main-navigation-mobile li li strong.active {
  background: none;
  box-shadow: none;
  font-weight: bold;
}

/* --- Aufklapp-Pfeil (Chevron) rechts ------------------------------- */
.main-navigation-mobile .main-navigation-mobile-expand {
  top: 0;
  height: 46px;                    /* FESTE Höhe = eine Zeile: hält den Chevron bei
                                      geöffnetem Submenü OBEN (nicht über die volle
                                      aufgeklappte Höhe zentriert). An die Item-Höhe
                                      anpassen, falls nötig. */
  padding: 0 1.35em;               /* größere Tap-Fläche links/rechts (dicke Finger) */
  border: 0;
  border-left: 1px solid #bbb;      /* dezenter Trenner links vom Chevron */
  box-shadow: none;
  color: var(--vm-primary, #1e560f);
  transition: transform 0.2s ease;
}
/* Chevron-Glyphe unabhängig von der Button-Höhe mittig */
.main-navigation-mobile .main-navigation-mobile-expand:after {
  position: absolute;
  top: 50%;
  left: 50%;
  margin: 0;
  transform: translate(-50%, -50%);
  content: "\e01d";
}

.main-navigation-mobile .is-expanded > .main-navigation-mobile-expand {
  color: var(--vm-primary-hover, #2e7d16);
}
.main-navigation-mobile .is-expanded > .main-navigation-mobile-expand::after {
  content: "\e022";
}

/* --- Suchfeld (falls im Mobilmenü aktiv) --------------------------- */
.main-navigation-mobile-search {
  margin: 0.75rem 0.5rem 1rem;
}
.main-navigation-mobile-search input,
.main-navigation-mobile-search input:hover,
.main-navigation-mobile-search input:focus {
  border: 1px solid var(--vm-border, #e8e8e8);
  border-radius: 999px;
  padding: 0.7em 1.1em;
  background: var(--vm-white, #ffffff);
  box-shadow: none;
}
.main-navigation-mobile-search input:focus {
  border-color: var(--vm-border-accent, #d3e39a);
}
.main-navigation-mobile-search button {
  color: var(--vm-primary, #1e560f);
}

/* --- Optionale Icon-/Social-Reihe unten ---------------------------- */
.main-navigation-mobile-icons.main-navigation-mobile-icons a:before {
  color: var(--vm-primary, #1e560f) !important;
}
.main-navigation-mobile-icons.main-navigation-mobile-icons a:hover:before {
  color: var(--vm-primary-hover, #2e7d16) !important;
}

/* =====================================================================
   News-Teaser im Mobilmenü (.mobile-newsteaser)
   Modul-Template mod_newslist_mobilenav_vm + Item-Template
   news_list_boxed_mobilenav_vm (Titel „Top News" heading-frei).
   Kompakter, leiserer Karten-Look fürs Off-Canvas-Menü.
   ===================================================================== */

.mobile-newsteaser {
  margin: 0.75rem 0.5rem calc(0.75rem + var(--safe-area-bottom, 0px));
  padding-top: 0.9rem;
  border-top: 1px solid var(--vm-border, #e8e8e8);
}

/* „Top News"-Eyebrow (heading-frei, aus dem Modul-Template) */
.mobile-newsteaser-title {
  margin: 0 0 0.6rem;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--vm-primary, #1e560f);
}

/* Karte kompakter + leiser (dezenterer Schatten, kleinerer Radius) */
.mobile-newsteaser .vm-newsbox-item.vm-card {
  border-radius: var(--vm-radius-small, 9px);
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
}
.mobile-newsteaser .vm-teaser-body { padding: 0.9rem 1rem 1rem; }
.mobile-newsteaser .vm-card-action { padding-top: 0.85rem; }

/* Bild auf einheitliches, kompaktes 16:9-Format; bündig in die Karte
   (kein Padding/Balken-Bleed von den Menü-Link-Regeln). */
.mobile-newsteaser .vm-teaser-image {
  aspect-ratio: 16 / 9;
  padding: 0;
  margin: 0;
  border-radius: 0;
  background: none;
  box-shadow: none;
}
.mobile-newsteaser .vm-teaser-image img,
.mobile-newsteaser .vm-teaser-image picture {
  height: 100%;
  object-fit: cover;
}

/* Typo kleiner; Teasertext auf 3 Zeilen begrenzt (kompakte Höhe) */
.mobile-newsteaser .vm-card-title {
  font-size: 1.05rem !important;   /* überschreibt .font-size-l */
  line-height: 1.3;
}
/* Headline-Link nicht wie ein Menü-Pill aussehen lassen (grauer BG/Balken raus) */
.mobile-newsteaser .vm-card-title a {
  margin: 0;
  padding: 0;
  border-radius: 0;
  background: none;
  box-shadow: none;
}
.mobile-newsteaser .vm-card-text {
  font-size: 0.85rem;
  line-height: 1.45;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* „mehr Details"-Button kompakt + Lime (wie -secondary) */
.mobile-newsteaser .vm-card-action .button {
  padding: 0.45em 1em;
  font-size: 0.9rem !important;    /* überschreibt --vm-btn-font */
  background: var(--vm-accent, #b8d430);
  border-color: var(--vm-accent-dark, #a3bd28);
  color: var(--vm-primary, #1e560f);
}
.mobile-newsteaser .vm-card-action .button:hover,
.mobile-newsteaser .vm-card-action .button:focus-visible {
  background: var(--vm-accent-dark, #a3bd28);
  border-color: var(--vm-accent, #b8d430);
  color: var(--vm-primary, #1e560f);
}

/* =====================================================================
   VM Buttons – konsolidiert  ·  Baum Energieberatung
   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.

   Farbschema Baum:  Primär = Dunkelgrün #1E560F · Akzent = Lime #b8d430
   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);          /* Standard = Dunkelgrün */
  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/Dunkelgrün – 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 ---------------------------------------------------- */

/* Grün (Lime) – Akzent  (-secondary) */
.button.-secondary,
.headline-box-link.-secondary,
.vm-card-link.button.-secondary {
  background: var(--vm-accent); border: 2px solid var(--vm-accent-dark); color: var(--vm-primary);
}
.button.-secondary:hover, .button.-secondary:focus-visible,
.headline-box-link.-secondary:hover,
.vm-card-link.button.-secondary:hover, .vm-card-link.button.-secondary:focus-visible {
  background: var(--vm-accent-dark); border-color: var(--vm-accent); color: var(--vm-primary);
}

/* Hellgrün  (-light) */
.button.-light,
.headline-box-link.-light,
.vm-card-link.button.-light {
  background: var(--vm-surface); border: 2px solid var(--vm-primary); color: var(--vm-primary);
}
.button.-light:hover, .button.-light:focus-visible,
.headline-box-link.-light:hover,
.vm-card-link.button.-light:hover, .vm-card-link.button.-light:focus-visible {
  background: var(--vm-primary); border-color: var(--vm-primary); color: var(--vm-white);
}

/* Hellgrau  (-tertiary) */
.button.-tertiary,
.headline-box-link.-tertiary,
.vm-card-link.button.-tertiary {
  background: var(--vm-grey); border: 2px solid var(--vm-primary); color: var(--vm-primary);
}
.button.-tertiary:hover, .button.-tertiary:focus-visible,
.headline-box-link.-tertiary:hover,
.vm-card-link.button.-tertiary:hover, .vm-card-link.button.-tertiary:focus-visible {
  background: var(--vm-primary); border-color: var(--vm-primary); color: var(--vm-white);
}

/* Weiß  (-quaternary) */
.button.-quaternary,
.headline-box-link.-quaternary,
.vm-card-link.button.-quaternary {
  background: var(--vm-white); border: 2px solid var(--vm-primary); color: var(--vm-primary);
}
.button.-quaternary:hover, .button.-quaternary:focus-visible,
.headline-box-link.-quaternary:hover,
.vm-card-link.button.-quaternary:hover, .vm-card-link.button.-quaternary:focus-visible {
  background: var(--vm-primary); border-color: var(--vm-primary); color: var(--vm-white);
}

/* Buttons in invertierten (dunklen) Boxen ----------------------------
   Wird eine Box auf „Textfarbe invertieren" gestellt und der Hintergrund
   von Hand auf Dunkelgrün (#1E560F) gelegt, verschmilzt der Button mit der
   Fläche: die hellen Varianten schlagen im Hover auf #1E560F 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 Baum-Dunkelgrün, Icon aus data-icon 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; }

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

   Farbschema Baum:
   - Primär (Akzent):  Dunkelgrün #1E560F
   - Akzent:           Lime       #b8d430
   - Text:             #1E560F
   - Flächen:          Hellgrün   #edf4cb
   Radius: gerundet wie KKF (Karten 20px, Icon-Felder 9px).
   ========================================================== */

:root {
  /* Text & Dunkelgrün (Primär) */
  --vm-text: #444444;            /* Standard-Textfarbe / Fließtext */
  --vm-primary: #1E560F;         /* Dunkelgrün: Marke, Button-Schrift auf hell, Icons, Rahmen */
  --vm-primary-dark: #143f0a;
  --vm-primary-hover: #2e7d16;
  --vm-white: #ffffff;
  --vm-page-bg: #f5f5f5;         /* Website-Hintergrund – im Theme/Layout auf body setzen */

  /* Akzent (Lime) */
  --vm-accent: #b8d430;
  --vm-accent-dark: #a3bd28;

  /* Flächen (Hellgrün) */
  --vm-surface: #edf4cb;
  --vm-surface-light: #f4f8e2;
  --vm-surface-icon: #e6efc0;

  /* Rahmen & Grautöne */
  --vm-border: #e8e8e8;
  --vm-border-accent: #d3e39a;
  --vm-border-neutral: #e5e5e5;
  --vm-grey: #eeeeee;

  /* Effekte & Maße (Radius wie KKF) */
  --vm-shadow: 0 18px 38px rgba(0, 0, 0, 0.055);
  --vm-shadow-hover: 0 24px 46px rgba(0, 0, 0, 0.085);
  --vm-radius: 20px;
  --vm-radius-small: 9px;
  --vm-gap: 2.25rem;
  --vm-card-padding: 2.15rem;
  --vm-transition: 220ms 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 Dunkelgrün */
  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-primary);   /* Überschriften in Markenfarbe Dunkelgrün */
    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(30,86,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 = Hellgrün-Karte · plus neutrale Varianten
   ========================================================== */

/* --- Grüne Karte (Primär / Standard) = Hellgrün ---------- */
.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;
}

/* Rasterabstand bei rahmenlosen Karten deutlich kleiner.
   Der Standardabstand (--vm-gap, 36px) ist für Karten mit Rahmen und
   Schatten gedacht – dort trennt er sichtbare Flächen. Ohne Rahmen
   wirken 36px wie ein Loch zwischen zusammengehörenden Absätzen.
   Gesetzt am Raster, damit nur Elemente betroffen sind, deren Karten
   tatsächlich rahmenlos sind. */
.vm-grid:has(> .vm-card--bare),
.vm-grid:has(> .vm-card--plain) {
  gap: 1rem;
}

.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
   ========================================================== */

/* Grüne (Hellgrün-)Karte -> weißes Iconfeld */

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

/* Weiße/rahmenlose Karten -> hellgrünes 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 grünen Karte -> dunkelgrünes Feld */
.vm-card.vm-card--green.-inverted-icon .vm-card-icon { background: var(--vm-primary); }


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

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

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

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

  box-shadow: inset 0 0 0 1px rgba(30,86,15,.08);

}

.vm-card-icon span {
  display: inline-flex;
  line-height: 1;
  color: inherit;
}

.vm-card-icon span::before {
  content: attr(data-icon);
  font: 100%/1 "RockSolid Icons";
  font-size: 1.75rem;
  line-height: 1;
  color: var(--vm-primary);
  margin-right: 0;
  speak: never;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.vm-card-title {
  margin: 0 0 0.75rem;
  color: var(--vm-primary);   /* Überschriften in Markenfarbe Dunkelgrün */
  font-size: clamp(1.35rem, 1.1vw, 1.75rem);
  font-weight: 700;
  line-height: 1.22;
  text-transform: none;
}

/* 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: 1rem;
  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, min. 3 danach. */
  hyphens: auto;
  -webkit-hyphens: auto;
  hyphenate-limit-chars: 8 4 3;

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

  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 (Dunkelgrün)
   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: none;
}
/* Unterstrich nur unter dem Text: Der Pfeil ist ein Flex-Element – eine
   Unterstreichung am Link liefe unter ihm mit (und lässt sich dort nicht
   mehr abschalten). */
.vm-card-link.-link:hover .vm-card-link-text,
.vm-card-link.-link:focus-visible .vm-card-link-text {
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

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

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

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

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

    flex: 0 0 auto;

    line-height: 1;

    transform: translateY(0.06em);
}

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

    line-height: 1;
}

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

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

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

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

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

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

.vm-iconbox-item.-large-icon .vm-card-icon span::before {
  font-size: 2.05rem;
}

.vm-iconbox-item.-inverted-icon .vm-card-icon {
  color: var(--vm-white);
  background: var(--vm-primary);
}

.vm-iconbox-item.-inverted-icon .vm-card-icon span::before {
  color: var(--vm-white) !important;
}

.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 span::before {
  font-size: 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
   ========================================================== */
/* So weit ragt das Badge über den Kartenrand: halbe Icon-Höhe.
   Muss zur Höhe von .vm-card-icon weiter unten passen. */
.vm-iconbox.-badge-top-icon {
  --vm-badge-ueberstand: clamp(2rem, 1.7rem + 0.85vw, 2.75rem);
}

.vm-iconbox-item.-badge-top-icon {
  overflow: visible;
}

/* Der Abstand nach oben steckt komplett im Innenabstand von .vm-card-inner,
   damit er berechenbar bleibt. Die Theme-Vorgabe fuer h3 wird hier genullt. */
.vm-iconbox-item.-badge-top-icon h3 {
    margin-top: 0;
}

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

/* Das Badge sitzt mittig auf der Kartenkante – die untere Haelfte liegt
   also IN der Karte und ist genau --vm-badge-ueberstand hoch. Der Inhalt
   beginnt 1rem darunter. Frueher stand hier --vm-card-padding + 2.5rem;
   das waren 4,65rem und damit rund 30px Luft unter dem Icon. */
.vm-iconbox-item.-badge-top-icon .vm-card-inner {
  padding-top: calc(var(--vm-badge-ueberstand) + 1rem);
}

.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(30, 86, 15, 0.08),
    0 10px 24px rgba(0, 0, 0, 0.18);
}

.vm-iconbox-item.-badge-top-icon .vm-card-icon span::before {
  font-size: 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);
}

/* Kein margin-top: 0 mehr (28.09.2026). Der Abstand zwischen Text und
   Button kam vorher unfreiwillig daher, dass die Karte durch den alten
   margin-top 2,75rem zu hoch war und die ueberschuessige Hoehe sich
   zwischen Text und Aktion legte. Seit die Karte genau in die Rasterzelle
   passt, fehlte er – jetzt gilt wieder der Standardwert von
   .vm-card-action (1,75rem). */

/* Der Platz fürs Badge kommt ausschließlich vom Raster (28.09.2026).
   Vorher trug jede Karte zusätzlich margin-top: 2.75rem. Zwei Fehler auf
   einmal:
   1. Beides addierte sich, sobald die Karten untereinander standen –
      2,25rem Grundabstand wurden zu 6,75rem.
   2. Die Karte lief unten aus dem Raster und überdeckte das nächste
      Element: .vm-card hat height: 100%, und die Prozenthöhe eines
      Grid-Elements zieht den Außenabstand nicht ab, sondern kommt
      obendrauf.
   Jetzt liegt der Überstand im Innenabstand der ersten Reihe und im
   Reihenabstand der folgenden – der sichtbare Abstand entspricht damit
   überall --vm-gap. */
.vm-iconbox.-badge-top-icon .vm-grid {
  padding-top: var(--vm-badge-ueberstand);
  row-gap: calc(var(--vm-gap) + var(--vm-badge-ueberstand));
}

/* Badge-Icon (grüne Karte): Innenkontur in Themenfarbe */
.vm-card.vm-card--green.-badge-top-icon .vm-card-icon {
  box-shadow:
    inset 0 0 0 1px rgba(30, 86, 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, > 1280px, siehe „Grid engine")
     Tablet      .grid-t-1 … .grid-t-6  (≤ 1280px)
     Mobil       .grid-m-1 … .grid-m-6  (≤ 900px)
     Mobil klein .grid-s-1 … .grid-s-6  (≤ 600px)
   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 1280px und schmaler */
@media (max-width: 1280px) {
  .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 600px und schmaler */
@media (max-width: 600px) {
  .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)); }
}

/* =====================================================================
   VM Component Library · Baum Energieberatung
   Component: VM Hero (Seitenkopf)

   Zum Element „VM Hero" (rsce_vm_hero.html5 + _config.php).
   Löst den alten Aufbau ab: Bild „nur mobil" + Zentrierter Bereich mit
   Hintergrundbild + Spalten + Überschriften + HTML-Schnipsel.

   WICHTIG – Ladereihenfolge: NACH main.css und nach
   custom_vm_icon_boxes.css (Tokens) laden. Buttons kommen aus
   custom_vm_buttons.css – hier steht nur, was im Hero anders ist.

   ZWEI VARIANTEN
     -variante-transparent   Startseite: Box zu 75 % weiß, 700px breit,
                             steht IM Bild
     -variante-weiss         Leistungsseite: Box deckend weiß, 800px breit,
                             ragt unten über die Bildkante hinaus

   Die Maße sind die des bisherigen Aufbaus (vorher/nachher vermessen):
   Bild 900px bzw. 600px hoch, Box-Radius 20px, Schatten
   0 18px 38px rgba(0,0,0,.25), Innenabstand 2.5em bzw. 2.5em 3em.
   ===================================================================== */

.vm-hero {
  position: relative;
  box-sizing: border-box;

  /* Abstand von der Bildoberkante bis zur Box (wie padding-top der alten
     .home-start/.hero-Bereiche) */
  --vm-hero-luft-oben: 150px;

  /* Breite der Box je Variante */
  --vm-hero-boxbreite: 700px;
}

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

/* --- Bildhöhe ------------------------------------------------------- */
.vm-hero.-hoehe-gross { min-height: 900px; }
.vm-hero.-hoehe-mittel { min-height: 600px; }

/* --- Bild formatfüllend hinter dem Text -----------------------------
   Über <picture> statt CSS-Hintergrund: Contao spielt so die passenden
   Auflösungen (srcset) aus. Die <figure> liegt ohne z-index in
   Dokumentreihenfolge unten; die Bildunterschrift darin kann sich per
   z-index über den Inhalt stellen. */
.vm-hero-bild {
  position: absolute;
  inset: 0;
  margin: 0;
  overflow: hidden;
}

.vm-hero-bild img,
.vm-hero-bild picture,
.vm-hero-bild source {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Bildausschnitt (Feld „Bildausschnitt") */
.vm-hero.-pos-mitte .vm-hero-bild img { object-position: center center; }
.vm-hero.-pos-oben .vm-hero-bild img { object-position: center top; }
.vm-hero.-pos-unten .vm-hero-bild img { object-position: center bottom; }
.vm-hero.-pos-links .vm-hero-bild img { object-position: left center; }
.vm-hero.-pos-rechts .vm-hero-bild img { object-position: right center; }
.vm-hero.-pos-linksoben .vm-hero-bild img { object-position: left top; }

/* --- Bildunterschrift (z. B. KI-Kennzeichnung) ----------------------
   Optik wie die Bildunterschrift der Teaser-/Newskacheln
   (custom_allgemein.css): Weiß 80 %, Dunkelgrün, klein, unten rechts. */
.vm-hero-caption {
  position: absolute;
  right: 0.75rem;
  bottom: 0.75rem;
  z-index: 3;

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

  background: rgba(255, 255, 255, 0.8);
  color: var(--vm-primary, #1e560f);
  font-size: 0.75rem;
  line-height: 1.35;
  letter-spacing: 0.5px;
  text-align: right;

  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.12);
  pointer-events: none;
}

/* --- Inhaltsbreite --------------------------------------------------
   Seitenabstand aus dem Theme (--page-padding-*): So steht die Box exakt
   bündig zu den übrigen Inhaltsbereichen. */
.vm-hero-inner {
  position: relative;
  z-index: 2;
  padding-top: var(--vm-hero-luft-oben);
  padding-left: var(--page-padding-left, 3.7%);
  padding-right: var(--page-padding-right, 3.7%);
}

.vm-hero-box {
  max-width: 100%;
  width: var(--vm-hero-boxbreite);
  border-radius: var(--vm-radius, 20px);
  box-shadow: 0 18px 38px rgba(0, 0, 0, 0.25);
}

/* --- Variante „Startseite": halbtransparente Box im Bild ------------
   Deckkraft 0.85 (vorher 0.75, geändert 17.09.2026): Auf ruhigen Motiven
   (Startseite: Himmel und Rasen) sieht man den Unterschied kaum, auf
   unruhigen dagegen deutlich – auf der Kontaktseite liefen vorher
   Gesichtszüge mitten durch den Text. Der Kontrast war auch bei 0.75
   überall erfüllt (schlechtester Wert 4,78:1 bei 3,0:1 Anforderung);
   0.85 hebt ihn auf mindestens 6,2:1. Es ging also um den Lesekomfort,
   nicht um die Norm. */
.vm-hero.-variante-transparent .vm-hero-box {
  padding: 2.5em;
  background: rgba(255, 255, 255, 0.85);
}

/* --- Variante „Leistungsseite": weiße Box, unten überstehend --------
   Die Box beginnt 200px unter der Bildoberkante und ragt über die untere
   Bildkante hinaus. Der Platz dafür steht als Außenabstand am Hero – so
   rutscht der folgende Abschnitt nicht unter die Box. */
.vm-hero.-variante-weiss {
  /* 350px = die alten 200px Versatz der weißen Box PLUS die 150px
     Innenabstand des zentrierten Bereichs, in dem sie lag */
  --vm-hero-luft-oben: 350px;
  --vm-hero-boxbreite: 800px;
  margin-bottom: 200px;
}

.vm-hero.-variante-weiss .vm-hero-inner {
  position: absolute;
  inset: 0 0 auto 0;
}

.vm-hero.-variante-weiss .vm-hero-box {
  padding: 2.5em 3em;
  background: var(--vm-white, #ffffff);
}

/* --- Texte ----------------------------------------------------------
   Doppelt geklassert, weil TAO mit `.main-content h1` (0,1,1) eigene
   Größen und Abstände setzt. */
.vm-hero .vm-hero-headline {
  margin: 0 0 0.375em;
  color: var(--vm-primary, #1e560f);
  line-height: 1.3;
}

.vm-hero.-variante-transparent .vm-hero-headline { font-size: 3em; }
.vm-hero.-variante-weiss .vm-hero-headline {
  font-size: 2em;
  margin-bottom: 0.6875em;   /* 22px – wie im alten Aufbau */
}

.vm-hero .vm-hero-subline {
  margin: 0 0 1.35em;
  color: var(--vm-text, #444444);
  font-size: 1.5em;
  font-weight: 400;
  line-height: 1.5;
}

/* --- Unterzeile zwischen Überschrift und Text ------------------------
   Nur wenn ALLE DREI Textteile da sind (bisher allein „Über uns"), stand
   die Unterzeile für sich: 22px über ihr, 32px unter ihr. Sie gehört
   optisch zur Überschrift, der Text schließt direkt an.

   Beide Regeln hängen an `:has()`, greifen also ausschließlich bei der
   jeweiligen Nachbarschaft – Startseite und Ablauf (Überschrift +
   Unterzeile + Buttons) und Energieberatung (Überschrift + Text) bleiben
   unverändert. Nachgemessen. */
.vm-hero.-variante-weiss .vm-hero-headline:has(+ .vm-hero-subline) {
  margin-bottom: 0.375em;   /* 12px statt 22px */
}

.vm-hero .vm-hero-subline:has(+ .vm-hero-text) {
  margin-bottom: 0;
}

.vm-hero .vm-hero-text {
  margin: 0 0 0.5em;
  color: var(--vm-text, #444444);
}

/* TAO gibt Absätzen im Hauptbereich 1.1em (17,6px/31,02px). Im alten Aufbau
   lag der Text in `div.rte` und war damit auf Fließtextgröße normalisiert –
   ohne das Zurücksetzen wäre die Box pro vier Zeilen 11px höher. */
.vm-hero .vm-hero-text,
.vm-hero .vm-hero-text p,
.vm-hero .vm-hero-text li {
  font-size: 1rem;
  line-height: 1.7625;
}

.vm-hero .vm-hero-text p { margin: 1em 0; }
.vm-hero .vm-hero-text > *:first-child { margin-top: 0; }
.vm-hero .vm-hero-text > *:last-child { margin-bottom: 0; }

/* --- Buttons --------------------------------------------------------
   Optik kommt aus custom_vm_buttons.css. Hier nur die Anordnung:
   nebeneinander, mit Umbruch auf schmalen Breiten. */
/* Abstand über den Buttons: im alten Aufbau kam er aus dem Außenabstand
   der Überschrift/des Textes plus dem Button-Außenabstand. Hier direkt
   gesetzt – gemessen 64px (Startseite) bzw. 29px (Leistungsseite).
   Die Maße darunter stammen ebenfalls aus der Messung des alten Aufbaus:
   4px zwischen zwei Buttons nebeneinander (dort der Leerraum zwischen den
   Inline-Elementen), 19px übereinander und 13,8px unter der Reihe
   (der frühere Button-Außenabstand, sonst wäre die Box 13px flacher). */
.vm-hero-aktionen {
  display: flex;
  flex-wrap: wrap;
  column-gap: 4px;
  row-gap: 19px;
  padding-bottom: 13.8px;
}

.vm-hero.-variante-transparent .vm-hero-aktionen { margin-top: 64px; }
.vm-hero.-variante-weiss .vm-hero-aktionen { margin-top: 29px; }

.vm-hero-aktionen .button { margin: 0; }

/* Schriftstufen wie im bisherigen Aufbau (font-size-xxl/-xl plus die
   .home-start/.hero-Regeln je Breakpoint), gemessen 1440/600/390px:
   Startseite 48/32/21,6px · Leistungsseite 32/24/21,6px.
   Bewusst je Variante geschrieben und NACH den Grundregeln: Sonst gewinnt
   die Variantenregel (eine Klasse mehr) und die kleinen Stufen greifen nie. */
@media screen and (max-width: 900px) {
  .vm-hero.-variante-transparent .vm-hero-headline { font-size: 2em; }
  .vm-hero.-variante-weiss .vm-hero-headline { font-size: 1.5em; }
  .vm-hero .vm-hero-subline { font-size: 1.25em; }
}
@media screen and (max-width: 520px) {
  .vm-hero.-variante-transparent .vm-hero-headline { font-size: 1.5em; }
  .vm-hero .vm-hero-subline { font-size: 1.15em; }
}
@media screen and (max-width: 400px) {
  .vm-hero.-variante-transparent .vm-hero-headline,
  .vm-hero.-variante-weiss .vm-hero-headline { font-size: 1.35em; }
}
@media screen and (max-width: 365px) {
  .vm-hero.-variante-transparent .vm-hero-headline,
  .vm-hero.-variante-weiss .vm-hero-headline { font-size: 1.25em; }
}

/* --- Bildunterschrift bei mittleren Breiten -------------------------
   Variante „Leistungsseite": Die weiße Box ist 800px breit und ragt unten
   über die Bildkante. Wird das Fenster schmaler, wandert die Box unter die
   Bildunterschrift – die stünde dann auf dem Text. Deshalb ab 1100px oben
   rechts, wie im bisherigen Aufbau (dort ab 1024px am Centered Wrapper).
   Unterhalb des Umbruchs liegt das Bild als Streifen über dem Text; dort
   gehört die Bildunterschrift zurück nach unten rechts (siehe unten). */
@media screen and (max-width: 1100px) {
  .vm-hero.-variante-weiss .vm-hero-caption {
    top: 0.75rem;
    bottom: auto;
  }
}

/* =====================================================================
   Schmale Displays: Bild als Streifen ÜBER dem Text
   Zwei Umbruchpunkte, weil die Startseite bisher bei 800px umgebrochen
   ist und die Leistungsseiten bei 900px (Feld „Bild als Streifen ab").
   ===================================================================== */

@media screen and (max-width: 900px) {
  .vm-hero.-umbruch-900 { min-height: 0; margin-bottom: 0; }

  /* Die Leistungsseiten hatten unter dem Hero bisher 1em Abstand zum
     nächsten Abschnitt (der frühere Abstand der Hauptspalte). */
  .vm-hero.-umbruch-900.-variante-weiss { margin-bottom: 1em; }

  .vm-hero.-umbruch-900 .vm-hero-bild {
    position: relative;
    inset: auto;
    aspect-ratio: 3 / 2;
  }

    /* Abstand zwischen Bildstreifen und Box wie bisher: 33px auf der
     Startseite, 40px auf den Leistungsseiten */
  .vm-hero.-umbruch-900 .vm-hero-inner {
    position: static;
    padding-top: 33px;
  }

  .vm-hero.-umbruch-900.-variante-weiss .vm-hero-inner { padding-top: 40px; }

  .vm-hero.-umbruch-900.-variante-transparent .vm-hero-aktionen { margin-top: 38px; }
  .vm-hero.-umbruch-900.-variante-weiss .vm-hero-aktionen { margin-top: 30px; }

  .vm-hero.-umbruch-900 .vm-hero-box {
    width: 100%;
    box-shadow: none;
  }

  .vm-hero.-umbruch-900.-variante-weiss .vm-hero-box {
    padding: 0;
    background: none;
  }

  .vm-hero.-umbruch-900.-variante-transparent .vm-hero-box { padding: 1.5em; }

  .vm-hero.-umbruch-900 .vm-hero-aktionen { flex-direction: column; align-items: flex-start; }

  /* Bild steht jetzt als Streifen über dem Text – die Bildunterschrift
     wieder unten rechts im Bild (hebt die 1100px-Regel auf) */
  .vm-hero.-umbruch-900 .vm-hero-caption {
    top: auto;
    bottom: 0.75rem;
  }
}

@media screen and (max-width: 800px) {
  .vm-hero.-umbruch-800 { min-height: 0; margin-bottom: 0; }

  .vm-hero.-umbruch-800 .vm-hero-bild {
    position: relative;
    inset: auto;
    aspect-ratio: 3 / 2;
  }

    /* Abstand zwischen Bildstreifen und Box wie bisher: 33px auf der
     Startseite, 40px auf den Leistungsseiten */
  .vm-hero.-umbruch-800 .vm-hero-inner {
    position: static;
    padding-top: 33px;
  }

  .vm-hero.-umbruch-800.-variante-weiss .vm-hero-inner { padding-top: 40px; }

  .vm-hero.-umbruch-800.-variante-transparent .vm-hero-aktionen { margin-top: 38px; }
  .vm-hero.-umbruch-800.-variante-weiss .vm-hero-aktionen { margin-top: 30px; }

  .vm-hero.-umbruch-800 .vm-hero-box {
    width: 100%;
    box-shadow: none;
  }

  .vm-hero.-umbruch-800.-variante-weiss .vm-hero-box {
    padding: 0;
    background: none;
  }

  .vm-hero.-umbruch-800.-variante-transparent .vm-hero-box { padding: 1.5em; }

  .vm-hero.-umbruch-800 .vm-hero-aktionen { flex-direction: column; align-items: flex-start; }

  .vm-hero.-umbruch-800 .vm-hero-caption {
    top: auto;
    bottom: 0.75rem;
  }
}

/* =====================================================================
   VM Component Library · Baum Energieberatung (aus JCW übernommen)
   custom_vm_linkliste.css — Optik für das Element „VM Linkliste"
   Version: 1.0.0
   ---------------------------------------------------------------------
   Gehört zu templates/rsce_vm_linkliste.html5 + _config.php.

   LADEREIHENFOLGE: nach custom_vm_icon_boxes.css — von dort kommen die
   Rasterklassen (.vm-grid, .grid-*) und die --vm-*-Tokens.

   Ersetzt im Footer die Gruppen aus einzelnen „Absatz mit Icon"-
   Elementen (Leistungen, Service, Kontakt). Das Footer-Aussehen
   (Einzug, Lime-Pfeil, gestrichelte Linien) steht in
   custom_allgemein.css bei den übrigen .page-footer-Regeln.
   ===================================================================== */

/* --- Liste selbst ---------------------------------------------------- */

/* Selektor bewusst mit `ul` davor: Das Theme setzt in main.css
   `.main-content ul { list-style: disc }`, `.main-content ul { padding-left:
   1.25em }` und eine Margin-Regel — alle mit Spezifität (0,1,1). Ein
   schlichtes `.vm-linkliste` (0,1,0) verliert dagegen, und die Liste bekäme
   im Inhaltsbereich Aufzählungspunkte und Einzug. Im Footer fiel das nie auf,
   weil dort keine `.main-content`-Regeln greifen.

   `ul.vm-linkliste` ist ebenfalls (0,1,1) und gewinnt über die Reihenfolge —
   diese Datei lädt nach main.css. main.css NICHT anfassen, die schreibt der
   Theme Assistant bei jedem Speichern neu. */
ul.vm-linkliste {
  margin: 0;
  padding: 0;
  list-style: none;
  /* Zeilenabstand etwas enger als das Kartenraster, sonst wirken
     einzeilige Links im Footer verloren. */
  --vm-gap: 0.75rem 2rem;
}

.vm-linkliste-item {
  margin: 0;
  padding: 0;
}

/* --- Der Link ist die Klickfläche ------------------------------------ */

.vm-linkliste-link {
  display: flex;
  align-items: flex-start;
  gap: 0.6em;
  /* Zielgröße (WCAG 2.5.5): auch einzeilige Einträge bleiben 44px hoch.
     Zusammen mit dem Padding trägt der Link die ganze Fläche, nicht nur
     der Text — wichtig für Maus UND Touch. */
  min-height: 44px;
  padding: 0;
  text-decoration: none;
  color: inherit;
}

.vm-linkliste-link:hover .vm-linkliste-label,
.vm-linkliste-link:focus-visible .vm-linkliste-label {
  text-decoration: underline;
}

/* --- Icon: rein dekorativ, kommt aus data-icon ----------------------- */

.vm-linkliste-icon {
  flex: 0 0 auto;
  /* an der ersten Textzeile ausrichten, nicht an der Blockmitte */
  line-height: 1.45;
}

.vm-linkliste-icon::before {
  font: 1.15em/1 "RockSolid Icons";
  content: attr(data-icon);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: geometricPrecision;
  display: inline-block;
}

/* --- Text ------------------------------------------------------------ */

.vm-linkliste-text {
  display: flex;
  flex-direction: column;
  min-width: 0;                 /* erlaubt Umbruch langer Bezeichnungen */
}

.vm-linkliste-label {
  line-height: 1.3;
}

/* KEINE reduzierte Deckkraft: Weiß bei 85% über dem grünen Footer ergibt
   effektiv #d9e7df und damit nur 6,07:1 — das reicht für AA (4,5:1), reißt
   aber AAA (7:1), während der Rest der Seite bei 7,76:1 liegt. Die
   Unterscheidung zur Bezeichnung macht die Schriftgröße, nicht die Farbe.
   (Befund aus dem BITV-Bericht vom 09.09.2026, Prüf-ID 154, Kriterium 1.4.6.) */
.vm-linkliste-sublabel {
  font-size: 0.8em;
  line-height: 1.3;
}

/* --- Zusatztext neben dem Link --------------------------------------- */

/* Für Hinweise, die sichtbar bleiben MÜSSEN, aber nicht zum Linkziel
   gehören — z. B. der rechtlich verbindliche Gebührenhinweis an der
   Telefonnummer. Bewusst KEIN Untertitel: Der liegt im <a> und würde vom
   Screenreader als Teil des Linktextes vorgelesen („+49 2602 94910 Es
   fallen die üblichen Gebühren …"). Als Geschwister-Absatz mit
   aria-describedby (siehe Template) bleibt die Verknüpfung erhalten.

   Schriftgröße bewusst NICHT verkleinert und keine reduzierte Deckkraft:
   Ein rechtlich verbindlicher Hinweis darf optisch nicht zurücktreten. */
/* `p` davor aus demselben Grund wie bei ul.vm-linkliste: `.main-content p`
   (0,1,1) setzt margin 0.75em/1.5em und würde sonst gewinnen — im
   Inhaltsbereich stünde der Hinweis dann weit unter dem Link. */
/* Einträge MIT Zusatztext
   -------------------------------------------------------------------
   Der Link ist sonst über `min-height: 44px` immer 44px hoch, eine
   einzelne Textzeile füllt davon nur rund 25px. Die übrigen ~19px lagen
   als Leerraum genau zwischen Nummer und Hinweis.

   Hier wird die erzwungene Höhe zurückgenommen, damit der Hinweis direkt
   unter der Nummer steht. Die Klickfläche kommt stattdessen aus einem
   Innenabstand NACH OBEN, den der gleich große negative Außenabstand im
   Layout wieder aufhebt — dieselbe Technik wie bei den rechtlichen Links
   im Fuß. Ergebnis: rund 36px Klickfläche bei 25px Layouthöhe.

   Bewusst nur nach oben: Ein Innenabstand nach unten würde die Klick-
   fläche über den Hinweistext legen — ein Klick auf den Gebührenhinweis
   würde dann den Anruf auslösen.

   Der Abstand zum Eintrag darüber bleibt unverändert: Der stammt aus dem
   Leerraum des VORIGEN Links plus dem Rasterabstand, nicht von hier.

   `:has()` statt einer eigenen Klasse — so bleibt das Template unberührt. */
.vm-linkliste-item:has(> p.vm-linkliste-zusatz) .vm-linkliste-link {
  min-height: 0;
  padding-top: 0.6em;
  margin-top: -0.6em;
}

p.vm-linkliste-zusatz {
  margin: 0.15em 0 0;
  line-height: 1.25;
}

/* Bei Einträgen mit Icon unter dem TEXT ausrichten, nicht unter dem Icon.
   1.15em Icon-Schriftgröße + 0.6em Abstand = Breite der Icon-Spalte.
   Die Angabe bleibt in em der Zeile, deshalb hier keine eigene
   font-size — sonst würde sich der Einzug mitverkleinern. */
.vm-linkliste-item--icon p.vm-linkliste-zusatz {
  padding-left: 1.75em;
}

/* --- Hinweiszeile über der Liste ------------------------------------- */

/* Trägt z. B. „Alle Links öffnen in einem neuen Fenster." — einmal
   sichtbar für Sehende, statt neunmal als Icon. Der Hinweis FÜR
   Screenreader steckt zusätzlich in jedem Link (.vm-nur-sr im Template),
   weil viele Nutzer per Linkliste navigieren und den Absatz nie hören. */
p.vm-linkliste-hinweis {
  margin: 0 0 0.75em;
  font-size: 0.8em;
  /* Deckkraft bewusst voll — siehe Begründung beim Untertitel oben. */
}

/* --- Nur für Screenreader -------------------------------------------
   Bewusste Dublette zu custom_allgemein.css: Fällt die Klasse dort weg,
   würde „(öffnet in neuem Fenster)" hinter JEDEM Link sichtbar werden.
   Gleiche Deklarationen — bei Änderungen beide anfassen.
   -------------------------------------------------------------------- */

.vm-nur-sr {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  border: 0 !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
}

/* --- Im invertierten Footer ------------------------------------------
   Farben erbt der Link über color: inherit. Der Fokusring kommt aus
   --vm-focus-ring (custom_allgemein.css) und ist auf .-color-inverted
   und .verlauf bereits auf Weiß gestellt — hier ist nichts weiter nötig.
   -------------------------------------------------------------------- */

@media (max-width: 600px) {
  .vm-linkliste {
    --vm-gap: 0.5rem 1rem;
  }
}

/* ==========================================================
   VM Component Library  ·  Baum Energieberatung
   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 = Dunkelgrün #1E560F).
   ========================================================== */

/* 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);               /* Dunkelgrün #1E560F */
  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 span::before {
  font-size: 2.05rem; }

.vm-teaser.-inverted-icon .vm-card-icon {
  color: var(--vm-white);
  background: var(--vm-primary);
}
.vm-teaser.-inverted-icon .vm-card-icon span::before { color: var(--vm-white) !important; }

/* 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 span::before {
  font-size: 1.15rem;     /* kleineres Glyph */
}

.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 (Bild links)
   -media-image-right   -> Bild rechts, Text 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).
   WICHTIG: Direktes Kind der Karte ist bei gesetzter Bildunterschrift die
   <figure class="vm-teaser-figure">, sonst direkt .vm-teaser-image – die
   Flex-Breite muss deshalb auf BEIDE passen, sonst schrumpft die Spalte
   auf die Eigenbreite des Bildes. */
.vm-teaser.-media > .vm-teaser-figure,
.vm-teaser.-media > .vm-teaser-image {
  flex: 0 0 45%;
  min-width: 0;
  align-self: stretch;
  aspect-ratio: auto;
  height: auto;
}

/* Bild in der Spalte auf volle Breite/Höhe ziehen – auch kleine Bilder
   werden hochskaliert (bewusst, lieber unscharf als zu schmal). */
.vm-teaser.-media > .vm-teaser-figure > .vm-teaser-image {
  display: block;
  width: 100%;
  height: 100%;
  aspect-ratio: auto;
}
.vm-teaser.-media .vm-teaser-image img,
.vm-teaser.-media .vm-teaser-image picture {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Text vertikal mittig – NUR solange Bild und Text nebeneinander stehen.
   Ab dem Umbruch (≤900px: Bild oben, Text darunter) gilt wieder die
   normale Darstellung von oben nach unten.

   WICHTIG, sonst wirkt die Zentrierung nicht: .vm-teaser-content hat
   flex: 1 1 auto und wird auf die volle Body-Höhe gestreckt. Dann bleibt
   kein Platz übrig und justify-content läuft ins Leere – der Text steht
   oben in einem zu hohen Container. Gemessen am 19.09.2026 auf
   /heiztechnik: Body 449px, Content auf 303px gestreckt, Freiraum 0.
   Mit flex: 0 0 auto schrumpft der Content auf seine Texthöhe, und erst
   dadurch entsteht der Platz, den justify-content verteilt.

   Der Button (.vm-card-action) steht ohnehin auf flex: 0 0 auto und
   wandert mit dem Text in die Mitte – gewollt, denn er gehört zum Inhalt. */
@media (min-width: 901px) {
  .vm-teaser.-media .vm-teaser-body {
    justify-content: center;
  }
  .vm-teaser.-media .vm-teaser-content {
    flex: 0 0 auto;
  }
}

/* ==========================================================
   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-figure,
  .vm-teaser.-media > .vm-teaser-image {
    flex: 0 0 auto;
    height: auto;
  }
  .vm-teaser.-media > .vm-teaser-figure > .vm-teaser-image { height: auto; }
  .vm-teaser.-media .vm-teaser-image img,
  .vm-teaser.-media .vm-teaser-image picture {
    height: auto;
  }
}

/* ==========================================================
   VM Component Library  ·  Baum Energieberatung
   Component: VM News (Boxed) – Newsblog im Teaserbox-Look
   Nach custom_vm_icon_boxes.css, custom_vm_teaser_boxes.css und
   custom_vm_buttons.css laden.

   Grundidee: Die News-Kacheln geben dieselbe Markup-Struktur aus
   wie die VM Teaserbox (.vm-card / .vm-teaser / .vm-teaser-image /
   .vm-teaser-body / .vm-teaser-content / .vm-card-action) und erben
   damit Rahmen, Radius, Schatten, Hover, Bild-Zoom, „Button unten"
   und Button-Optik. Hier steht nur, was news-spezifisch fehlt.

   Templates: news_list_boxed_vm.html5 · news_list_boxed_item_vm.html5 ·
   mod_newslist_vm.html5 (Grid-Wrapper). Farb-/Maß-Tokens = --vm-*.
   ========================================================== */

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

/* Karte als vertikale Spalte.
   Die Flex-Regel für .vm-teaser ist in custom_vm_teaser_boxes.css auf
   „.vm-teaserbox .vm-teaser" gescoped -> für die News-Kachel (kein
   .vm-teaserbox-Vorfahr) hier erneut setzen. */
.vm-newsbox-item.vm-teaser {
  display: flex;
  flex-direction: column;
}

/* Headline-Link: erbt die Titelfarbe (Dunkelgrün), kein Unterstrich,
   dezenter Hover – die Karte hebt sich zusätzlich über .vm-card: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);
}

/* Button bündig an den unteren Kartenrand – auch bei unterschiedlich
   langen Headlines/Teasern. margin-top:auto schiebt die Aktion ans Ende
   der (karten­hohen) Flex-Spalte; padding-top hält den Mindestabstand
   zum Teasertext. Überschreibt die feste margin aus custom_vm_teaser_boxes.css
   (gleiche Spezifität, wird später geladen). */
.vm-newsbox-item .vm-card-action {
  margin-top: auto;
  padding-top: 1.5rem;
}

/* Pagination sitzt außerhalb des Grids, mittig unter den Kacheln. */
.vm-newsbox-pagination {
  margin-top: var(--vm-gap);
}

/* ==========================================================
   Übersicht „Wissenswertes" – Editorial Overview
   Aufmacher (erster Eintrag, voll breit, Bild neben Text) + Grid,
   dazu „Mehr laden"-Button (JS) mit No-JS-Pagination-Fallback.
   Modul-Template: mod_newslist_wissenswertes_vm.html5
   JS: vm_newslist_loadmore.js
   ========================================================== */

/* --- Featured-Aufmacher = erster Eintrag im Grid -------------------- */
.vm-newsgrid--featured-first > .vm-newsbox-item:first-child {
  grid-column: 1 / -1;                 /* volle Breite */
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
  align-items: stretch;
}

/* Bild füllt die linke Spalte auf ganze Kartenhöhe */
.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;
}

/* Textseite: vertikal zentriert, größere Headline */
.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;                      /* nicht wachsen -> Zentrierung greift */
}
.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;                  /* fixer Abstand statt „ans Ende schieben" */
}

/* 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-loadmore.is-loading { opacity: 0.7; pointer-events: none; }

/* Button ausblenden, wenn alle Beiträge geladen sind: Das JS setzt dann das
   `hidden`-Attribut. Nötig ist die Regel, weil `.button` per TAO auf
   `display: inline-block` steht und damit das UA-`[hidden] { display:none }`
   überschreiben würde. Greift auch für den Start-Zustand (Template: `hidden`). */
.vm-loadmore[hidden] { display: none !important; }

/* Nach dem Mausklick behält der Button sonst einen abweichenden Fokus-/Active-Stil
   (Theme-/Browser-Default für <button>) – bis man daneben klickt. Optik in diesen
   Zuständen wieder auf Lime festlegen; Tastatur-Fokus (:focus-visible) bleibt sichtbar. */
.vm-loadmore:focus:not(:focus-visible),
.vm-loadmore:active {
  background: var(--vm-accent);
  border-color: var(--vm-accent-dark);
  color: var(--vm-primary);
}

/* No-JS-Fallback: normale Pagination zentriert (JS blendet sie aus) */
.vm-newslist-pagination {
  margin-top: var(--vm-gap);
  text-align: center;
}

/* ==========================================================
   Button-Pfeile (individueller Icon-Zeichensatz)
   Rechtspfeil = \e909, Linkspfeil = \e907, Font "RockSolid Icons".
   Farbe erbt automatisch die Button-Textfarbe.
   Hinweis: gilt für ALLE VM-News-Kacheln (Startseite + „Wissenswertes"),
   da beide dasselbe Item-Template nutzen.
   ========================================================== */

/* „mehr Details" (News-Kachel): Rechtspfeil HINTER den Text.
   .button::after ist in custom_vm_buttons.css global display:none -> gezielt
   wieder einblenden (höhere Spezifität + !important). */
.vm-newsbox-item .vm-card-action .button::after {
  content: "\e909";
  font: 100%/1 "RockSolid Icons";
  display: inline-block !important;
  position: relative;
  top: 0.06em;                 /* optische Zentrierung – bei Bedarf justieren */
  margin-left: 0.5em;
  -webkit-font-smoothing: antialiased;
  text-rendering: geometricPrecision;
}

/* „mehr laden" (Übersicht): Rechtspfeil VOR den Text (linksseitig).
   top:0.05em kommt bereits aus .button::before (custom_vm_buttons.css). */
.vm-loadmore::before {
  content: "\e909";
  font: 100%/1 "RockSolid Icons";
  margin-right: 0.5em;
  -webkit-font-smoothing: antialiased;
  text-rendering: geometricPrecision;
}

/* ==========================================================
   VM Component Library  ·  Baum Energieberatung
   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: 1200px;
  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;
}

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

/* --- Das Blatt ------------------------------------------------------- */
.vm-reader {
  display: block;
  color: var(--vm-text);
}

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

/* ≤900px: Blatt randlos über die volle Breite (und damit auch das Kopfbild).
   Das Blatt steckt in .main-content, das ab 1280px links und rechts je
   5,55556 % Rand hat. Prozente helfen hier nicht (sie rechnen gegen die
   bereits eingerückte Breite), deshalb der Viewport-Bezug:
   margin-inline: calc(50% - 50vw) zieht den mittig stehenden Kasten exakt
   auf Fensterbreite. Unten keine Rundung mehr, seitliche Rahmen entfallen
   (sie lägen sonst als 1px-Striche auf den Bildschirmkanten); der Schatten
   bleibt und trennt das Blatt weiter vom grauen Hintergrund darunter.
   Der Textkörper behält seinen Innenabstand aus .vm-reader-body. */
@media (max-width: 900px) {
  .vm-reader-sheet {
    margin-inline: calc(50% - 50vw);
    border-right: 0;
    border-left: 0;
    border-radius: 0;
  }
}

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

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

.vm-reader-content a {
  color: var(--vm-primary-hover);
  text-decoration: underline;
  text-underline-offset: 0.2em;
}
.vm-reader-content a:hover,
.vm-reader-content a:focus-visible { color: var(--vm-primary); }

/* Blockzitat mit Lime-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::before {
  content: "\e940";
  font: 100%/1 "RockSolid Icons";
  display: inline-block !important;
  margin-right: 0.5em;
  -webkit-font-smoothing: antialiased;
  text-rendering: geometricPrecision;
}

.vm-reader-more-link {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  padding: 0.6rem;
  background: var(--vm-white);
  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);
}
.vm-reader-more-link:hover,
.vm-reader-more-link:focus-visible {
  border-color: var(--vm-border-accent);
  box-shadow: var(--vm-shadow);
  transform: translateY(-1px);
}
.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-primary);
  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). Lime (.button.-secondary), volle Sidebar-Breite, verlinkt fest
   auf die Übersicht „Wissenswertes" (Seiten-ID 170). */
.vm-reader-allposts {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  margin-top: 1rem;
  padding-left: 1em !important;
}
/* =====================================================================
   VM Component Library · Baum Energieberatung
   Component: VM Accordion (FAQ) – Aufhübschung des jQuery-UI-Accordions

   Überschreibt die graue TAO-Basis (.ce_accordion in main.css) aufs
   Baum-Grün: jede Frage eine eigenständige, gerundete Karte, Lime-Badge
   fürs +/−, grüner Hover, weißer statt grauer Aufklapp-Bereich.

   WICHTIG – Ladereihenfolge: NACH main.css (TAO-Basis) laden, sonst
   gewinnen die grauen Basis-Regeln (gleiche Spezifität → Quellreihenfolge).
   Nutzt die --vm-*-Tokens aus custom_vm_icon_boxes.css.

   Markup seit 15.09.2026 (ce_accordionSingle/-Start.html.twig, Skript in
   j_accordion.html.twig – ohne jQuery UI, Muster „Überschrift um Button"):
     <section class="ce_accordion">
       <h3|h4 class="vm-akkordeon-titel">
         <button class="toggler" aria-expanded aria-controls>Frage</button>
       </h3|h4>
       <div class="accordion" role="region" hidden> … Antwort … </div>
     </section>
   Offen = [aria-expanded="true"]. Die alten Klassen (.ui-accordion-header-
   active / .active) bleiben als Rückfall in den Selektoren stehen.
   ===================================================================== */

.ce_accordion {
  --vm-faq-radius: 14px;
  color: var(--vm-text);
  margin-bottom: 0.6rem;   /* Luft zwischen den Fragen (Basis-Kollaps aufheben) */
}
.ce_accordion:last-of-type { margin-bottom: 0; }

/* Basis stapelt die Karten (negative margins, nur letzte unten rund) –
   hier zurücksetzen, damit jede Frage eine eigene Karte ist. */
.ce_accordion + .ce_accordion .toggler {
  border-radius: var(--vm-faq-radius);
}

/* --- Überschrift um den Button: wirkt nur als Gliederung ------------
   Die h3/h4 soll nichts an der Optik ändern. TAO gibt .main-content h4 2em
   Schrift und eigene Abstände, custom_allgemein.css 0,5px Buchstabenabstand
   – alles zurück auf den Stand des früheren <div class="toggler">. */
.ce_accordion .vm-akkordeon-titel {
  margin: 0;
  padding: 0;
  font: inherit;
  line-height: inherit;
  letter-spacing: normal;
  color: inherit;
}

/* --- Frage-Zeile (Header) ------------------------------------------- */

/* Browser- und TAO-Voreinstellungen des <button> zurücksetzen – die Optik
   kommt aus der Regel darunter, genau wie vorher beim <div>.
   TAO (main.css) gibt JEDEM button einen dunklen Innenschatten an der
   Oberkante, einen dunklen Textschatten (Schrift wirkte fetter) und bei
   :hover/:focus/:active einen Farbverlauf – im Pixelvergleich gefunden,
   in den Maßen nicht sichtbar. Hover/Fokus/offen setzen ihren Schatten
   unten mit höherer Spezifität wieder. */
.ce_accordion button.toggler {
  display: block;
  width: 100%;
  box-sizing: border-box;
  margin: 0;
  text-align: left;
  font-family: inherit;
  font-style: normal;
  letter-spacing: normal;
  text-transform: none;
  -webkit-appearance: none;
          appearance: none;
  box-shadow: none;
  text-shadow: none;
  background-image: none;
}
.ce_accordion .toggler {
  position: relative;
  margin-bottom: 0;
  padding: 1em 3.4em 1em 1.25em;   /* rechts Platz fürs Badge */

  border: 1px solid var(--vm-border-neutral);
  border-radius: var(--vm-faq-radius);
  background: var(--vm-white);

  color: var(--vm-primary);
  font-weight: 600;
  line-height: 1.35;
  font-size: 1.15em;
  cursor: pointer;
  transition: border-color var(--vm-transition),
              box-shadow var(--vm-transition),
              background-color var(--vm-transition);
}

.ce_accordion .toggler:hover,
.ce_accordion .toggler:focus-visible {
  color: var(--vm-primary);
  border-color: var(--vm-border-accent);
  box-shadow: var(--vm-shadow);
  text-decoration: none;
}

/* Leeren jQuery-UI-Icon-Span (ohne UI-Theme-CSS ohnehin unsichtbar) aus */
.ce_accordion .toggler .ui-accordion-header-icon { display: none; }

/* --- +/−-Badge (RockSolid-Icon in Lime-Kreis) ----------------------- */
.ce_accordion .toggler:after {
  content: "\2b";                       /* + */
  font: 0.8125em/1 "RockSolid Icons";
  -webkit-font-smoothing: antialiased;
  text-rendering: geometricPrecision;
  text-indent: 0;

  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.15em;
  height: 2.15em;
  border-radius: 50%;
  background: var(--vm-surface);
  color: var(--vm-primary);

  position: absolute;
  top: 50%;
  right: 0.85em;
  transform: translateY(-50%);
  transition: background-color var(--vm-transition), color var(--vm-transition);
}

/* --- Aktive (offene) Frage ------------------------------------------ */
.ce_accordion .toggler[aria-expanded="true"],
.ce_accordion .toggler.ui-accordion-header-active,
.ce_accordion .toggler.active {
  background: var(--vm-surface);
  border-color: var(--vm-border-accent);
  /* verbindet sich optisch mit dem Antwort-Bereich darunter */
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}
.ce_accordion .toggler[aria-expanded="true"]:after,
.ce_accordion .toggler.ui-accordion-header-active:after,
.ce_accordion .toggler.active:after {
  content: "\2212";                     /* − */
  background: var(--vm-accent);
  color: var(--vm-primary);
}

/* --- Antwort-Bereich (Panel) ---------------------------------------- */

/* Zugeklappt über das hidden-Attribut (Skript). Sicherheitshalber explizit:
   eine display-Regel aus dem Theme darf es nicht überstimmen. */
.ce_accordion .accordion[hidden] {
  display: none;
}
.ce_accordion .accordion {
  margin-bottom: 0;
  padding: 0.35em 1.25em 1.15em;

  border: 1px solid var(--vm-border-accent);
  border-top: none;                     /* schließt bündig an die offene Frage an */
  border-radius: 0 0 var(--vm-faq-radius) var(--vm-faq-radius);
  background: var(--vm-white);          /* statt grau */
  color: var(--vm-text);
}
.ce_accordion .accordion > *:first-child { margin-top: 0; }
.ce_accordion .accordion > *:last-child { margin-bottom: 0; }

.ce_accordion .accordion a {
  color: var(--vm-primary-hover);
  text-decoration: underline;
  text-underline-offset: 0.2em;
}
.ce_accordion .accordion a:hover,
.ce_accordion .accordion a:focus-visible { color: var(--vm-primary); }

/* =====================================================================
   VM Component Library · Baum Energieberatung
   Component: VM Centered Wrapper (Zentrierter Bereich)

   Der Basis-Baukasten (`.centered-wrapper`, `.centered-wrapper-background`,
   `.centered-wrapper-inner`, Rahmen/Farben/Mindesthöhen/Parallax) steckt
   weiter in der TAO-`main.css` – der ist bereits auf Baum-Grün eingestellt
   (#1e560f / #b8d430), daher wird er hier NICHT dupliziert (sonst Gefahr,
   dass eine unvollständige Kopie das Framework übersteuert).

   Diese Datei ergänzt nur, was das umbenannte VM-Element neu mitbringt:
   die **Bildunterschrift** auf dem Hintergrundbild (z. B. KI-Kennzeichnung).
   NACH main.css laden. Nutzt --vm-*-Tokens mit Hex-Fallback.

   Templates: rsce_vm_centered_wrapper_start.html5 (+ _config.php)
   ===================================================================== */

/* Die <figure> ist nur ein semantischer Wrapper um das Hintergrundbild +
   figcaption. Sie enthält ausschließlich absolut positionierte Kinder →
   0 Höhe; margin:0 verhindert jeden Layout-Einfluss. Das Hintergrund-DIV
   positioniert sich weiterhin gegen `.centered-wrapper` (position:relative). */
.vm-cw-figure { margin: 0; }

/* Kompatibilität: Der Maus-/Parallax-Versatz zielt in main.css auf ein
   DIREKTES Kind `.centered-wrapper-background`. Mit figure-Wrapper (nur im
   Caption-Fall) ist es kein direktes Kind mehr → hier nachziehen. */
.-background-mousemove > .vm-cw-figure > .centered-wrapper-background,
.-background-mousemove-inverted > .vm-cw-figure > .centered-wrapper-background {
  right: -12%;
}

/* Bildunterschrift = dezentes Overlay unten rechts auf dem Bereich.
   Weiß 80 % + Dunkelgrün, unabhängig von der (evtl. invertierten) Textfarbe
   des Bereichs. pointer-events:none → blockiert keine Klicks im Inhalt. */
.centered-wrapper .vm-cw-caption {
  position: absolute;
  right: 0.75rem;
  bottom: 0.75rem;
  z-index: 2;

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

  background: rgba(255, 255, 255, 0.8);   /* ≥ 75 % Deckkraft */
  color: var(--vm-primary, #1e560f);      /* Dunkelgrün */
  font-size: 0.75rem;
  line-height: 1.35;
  text-align: right;

  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.12);
  pointer-events: none;
}

/* =====================================================================
   VM Component Library · Baum Energieberatung
   Component: Formulare (Contao-Formulargenerator)

   Für die Formulare „Beratung anfragen", „Termin anfragen" und den
   Kontaktbereich. Keine eigenen Templates – die Optik entsteht allein
   aus den Klassen, die Contao ohnehin ausgibt (.ce_form, .formbody,
   .widget, .widget-text …) plus den Klassen, die je Feld im Backend
   im Feld „CSS-Klasse" stehen (w50, vm-form-gruppe, vm-form-leistungen …).

   WICHTIG – Ladereihenfolge: NACH main.css und nach
   custom_vm_icon_boxes.css (Tokens) laden.

   BARRIEREFREIHEIT
   - Fokusringe kommen aus custom_allgemein.css und werden hier NICHT
     überschrieben (WCAG 2.4.7).
   - Pflichtfelder sind über den Contao-Stern gekennzeichnet; die Farbe
     ist nur Zugabe, das Zeichen trägt die Information (WCAG 1.4.1).
   - Auswahlfelder sind mindestens 44px hoch (WCAG 2.5.8).
   - Fehlermeldungen bleiben Text am Feld, nur eingefärbt.
   ===================================================================== */

.ce_form {
  box-sizing: border-box;
}

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

/* --- Die Karte um das Formular -------------------------------------- */
.ce_form .formbody {
  padding: 2.5em;
  border-radius: var(--vm-radius, 20px);
  background: var(--vm-white, #ffffff);
  box-shadow: 0 18px 38px rgba(0, 0, 0, 0.08);
}

/* --- Feldzeilen ------------------------------------------------------
   Contao setzt jedes Feld in ein .widget. Zwei Felder nebeneinander
   entstehen über die Klasse „w50" am Feld (wie im Backend gewohnt). */
/* Abstand zwischen den Feldern: bewusst knapp gehalten. Die Hinweise
   stehen sichtbar unter dem Feld (nicht als Platzhalter IM Feld – der
   verschwindet beim Tippen, siehe WCAG 3.3.2/F82), deshalb wird der
   Platz hier gespart statt an der Verständlichkeit. */
/* WICHTIG – Spezifität: main.css setzt `.main-content form .widget`
   (0,2,2) auf `margin: 1.125em 0` – also 18px OBEN und UNTEN. Gegen
   `.ce_form .widget` (0,2,0) gewinnt das Theme, egal wie spät diese
   Datei geladen wird. Deshalb hier `.main-content` davor (0,3,0) und
   margin-top ausdrücklich zurücksetzen. */
.main-content .ce_form .widget,
.ce_form .widget {
  margin-top: 0;
  margin-bottom: 0.6em;
}

/* Felder mit Hilfetext brauchen etwas mehr Luft nach unten, damit der
   Hinweis erkennbar zum Feld darüber gehört und nicht zum nächsten. */
.main-content .ce_form .widget:has(.help),
.ce_form .widget:has(.help) {
  margin-bottom: 0.9em;
}

/* Contao steckt versteckte Felder (REQUEST_TOKEN, FORM_SUBMIT) direkt in
   die .formbody. Im Flexfluss rissen sie sonst eine Lücke. */
.ce_form .formbody > input[type="hidden"] {
  display: none;
}

@media screen and (min-width: 601px) {
  /* Zwei Flexebenen, weil Contao die Felder in fieldsets verpackt: die
     .formbody trägt die Felder AUSSERHALB der Gruppen (Erklärung, ALTCHA,
     Absenden), das fieldset die Felder INNERHALB. Ohne die zweite Ebene
     stehen „w50"-Paare untereinander, obwohl sie halb so breit sind. */
  .ce_form .formbody,
  .ce_form fieldset.vm-form-gruppe {
    display: flex;
    flex-wrap: wrap;
    column-gap: 4%;
    align-items: flex-start;
  }

  .ce_form .widget {
    width: 100%;
  }

  .ce_form .widget.w50 {
    width: 48%;
  }

  /* Die Legende ist Überschrift der Gruppe und steht immer allein in der
     Zeile – in einem Flexcontainer sonst neben dem ersten Feld. */
  .ce_form fieldset.vm-form-gruppe > legend {
    width: 100%;
  }
}

/* --- Beschriftungen -------------------------------------------------- */
/* Mindestschriftgröße 16px im ganzen Formular.
   Das Theme verkleinert Formulartexte: `.explanation` auf 0.875em
   (main.css) und Beschriftungen auf 14px. Verschachtelt ergab das
   13,1px – zu klein zum bequemen Lesen. Hier alles auf 1rem zurück.
   1rem statt em, damit sich die Verkleinerungen nicht multiplizieren. */
.ce_form label,
.ce_form .explanation,
.ce_form .explanation p,
.ce_form .explanation a,
.ce_form .help,
.ce_form .altcha-label,
.ce_form .checkbox_container label,
.ce_form .radio_container label {
  font-size: 1rem;
}

.main-content .ce_form label,
.ce_form label {
  display: block;
  margin-bottom: 0.15em;
  color: var(--vm-primary, #1e560f);
  font-weight: 700;
  line-height: 1.35;
}

/* Contao stellt jeder Pflichtfeld-Beschriftung das Wort „Pflichtfeld" als
   unsichtbaren Text voran (<span class="invisible">). Das gehört den
   Screenreadern und darf NICHT sichtbar werden – sonst steht dort
   „Pflichtfeld Vor- und Nachname*". TAO definiert .invisible an anderer
   Stelle um, deshalb hier ausdrücklich für das Formular. */
.ce_form label .invisible {
  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;
}

/* Der Pflicht-Stern: Farbe ist Zugabe, das Zeichen trägt die Information */
.ce_form label .mandatory,
.ce_form .mandatory {
  color: #a4262c;
}

/* Hilfetext unter dem Feld (Backend-Feld „Hilfetext") */
.main-content .ce_form .help,
.ce_form .help {
  display: block;
  margin-top: 0.15em;
  color: var(--vm-text, #444444);
  font-size: 1rem;
  line-height: 1.4;
}

/* --- Eingabefelder --------------------------------------------------- */
.ce_form input[type="text"],
.ce_form input[type="email"],
.ce_form input[type="tel"],
.ce_form input[type="url"],
.ce_form input[type="number"],
.ce_form input[type="date"],
.ce_form select,
.ce_form textarea {
  width: 100%;
  min-height: 44px;
  padding: 0.6em 0.9em;
  border: 1px solid #c9d3c4;
  border-radius: var(--vm-radius-small, 9px);
  background: #ffffff;
  color: var(--vm-text, #444444);
  font-family: inherit;
  font-size: 1em;
  line-height: 1.5;
}

.ce_form textarea {
  min-height: 9em;
  resize: vertical;
}

.ce_form select {
  appearance: none;
  /* Pfeil als Hintergrundbild, damit die Höhe überall gleich ist */
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%231e560f'%3E%3Cpath d='M8 11.2 2.8 6l1.1-1.1L8 9l4.1-4.1L13.2 6z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.9em center;
  background-size: 16px 16px;
  padding-right: 2.6em;
}

/* Platzhalter dienen NUR als Formatbeispiel in den freiwilligen
   Förderfeldern – nie als Ersatz für die Beschriftung: Er verschwindet
   beim Tippen, genau wenn der Hinweis gebraucht wird (WCAG 3.3.2, F82).
   Farbe dunkel genug für 4.5:1 auf Weiß, damit er auch als Beispiel
   lesbar ist. */
.ce_form input::placeholder,
.ce_form textarea::placeholder,
input::placeholder,
textarea::placeholder {
  /* Muss auf BEIDEN Untergründen tragen: Weiß (freie Felder) und
     hellgrün (Pflichtfelder). Auf Grün wäre #6b7468 nur 4.04:1. */
  color: #5c6456 !important;   /* 5.9:1 auf Weiß · 4.9:1 auf Hellgrün */
  opacity: 1 !important;
}

/* --- Pflichtfelder hervorheben --------------------------------------
   Hellgrüner Grund, bewusst HELLER als das Standard-Hellgrün der
   Icon-Flächen (#e6efc0) – als zarte Andeutung, nicht als Fläche.
   Gewählt: #f3f8e3. Die Farbe
   ist ZUSÄTZLICH: Die Information „Pflichtfeld" trägt weiterhin der
   Stern in der Beschriftung und das unsichtbare Wort „Pflichtfeld" für
   Screenreader (WCAG 1.4.1 – Farbe nie als einziges Mittel).
   Contao setzt die Klasse `mandatory` am umgebenden .widget.
   Kontraste auf #f3f8e3: Fließtext 9.0:1 · Platzhalter 5.7:1
   · Rahmen 3.8:1 · Abstand zum weißen Kartengrund 1.09:1.
   Der Rahmen wird kräftiger, weil der helle Standardrahmen auf Grün nur
   1,3:1 erreicht und die Feldkante sonst verschwimmt – Bedienelemente
   brauchen 3:1 gegen ihre Umgebung (WCAG 1.4.11). */
.main-content .ce_form .widget.mandatory input[type="text"],
.main-content .ce_form .widget.mandatory input[type="email"],
.main-content .ce_form .widget.mandatory input[type="tel"],
.main-content .ce_form .widget.mandatory select,
.main-content .ce_form .widget.mandatory textarea,
.ce_form .widget.mandatory input[type="text"],
.ce_form .widget.mandatory input[type="email"],
.ce_form .widget.mandatory input[type="tel"],
.ce_form .widget.mandatory select,
.ce_form .widget.mandatory textarea {
  background: #f3f8e3;
  border-color: #6f8353;   /* 3,5:1 auf dem grünen Grund, 4,2:1 auf Weiß */
}

/* Hover/Fokus bleiben unterscheidbar */
.ce_form .widget.mandatory input:hover,
.ce_form .widget.mandatory select:hover,
.ce_form .widget.mandatory textarea:hover {
  border-color: var(--vm-primary, #1e560f);
}

/* Hover nur als leichte Verstärkung – der Fokusring bleibt unberührt */
.ce_form input:hover,
.ce_form select:hover,
.ce_form textarea:hover {
  border-color: var(--vm-primary, #1e560f);
}

/* --- Gruppen (fieldset) ---------------------------------------------- */
.main-content .ce_form fieldset,
.ce_form fieldset {
  width: 100%;
  margin: 0 0 0.8em;
  padding: 0;
  border: 0;
}

.ce_form fieldset legend {
  display: block;
  width: 100%;
  margin-bottom: 0.35em;
  padding: 0;
  color: var(--vm-primary, #1e560f);
  font-size: 1.35em;
  font-weight: 700;
  line-height: 1.3;
}

/* --- Auswahlkästchen und Auswahlknöpfe -------------------------------
   Jede Option als eigene Fläche: große Zielgröße, klare Trennung. */
.ce_form .checkbox_container,
.ce_form .radio_container {
  margin: 0;
  padding: 0;
  border: 0;
}

.ce_form .checkbox_container > span,
.ce_form .radio_container > span {
  display: block;
  margin-bottom: 0.5em;
}

/* Contao verpackt Auswahlgruppen in ein eigenes fieldset mit legend.
   Deren Überschrift ist eine Feldbeschriftung, keine Abschnitts-
   überschrift – sonst wirkt „Gewünschte Leistung" so groß wie
   „Ihre Angaben". */
.ce_form .checkbox_container legend,
.ce_form .radio_container legend,
.ce_form fieldset.checkbox_container > legend,
.ce_form fieldset.radio_container > legend {
  margin-bottom: 0.4em;
  font-size: 1em;
}

/* Contao gibt jede Option als <span><input><label></label></span> aus –
   das Kästchen ist GESCHWISTER der Beschriftung, nicht ihr Kind. Der
   Flex-Container muss deshalb auf das span, sonst steht das Kästchen
   über der Beschriftung statt daneben. Das span trägt auch die
   Zielfläche von 44px (WCAG 2.5.8). */
.ce_form .checkbox_container > span,
.ce_form .radio_container > span {
  display: flex;
  align-items: center;
  gap: 0.7em;
  min-height: 44px;
  margin-bottom: 0.35em;
  padding: 0.4em 0.9em;
  border: 1px solid #c9d3c4;
  border-radius: var(--vm-radius-small, 9px);
}

.ce_form .checkbox_container > span:hover,
.ce_form .radio_container > span:hover {
  border-color: var(--vm-primary, #1e560f);
  background: #f4f8f2;
}

/* --- Gewählte Option eines Pflichtfelds hellgrün ---------------------
   Dieselbe Farbe wie in den Eingabefeldern (#f3f8e3): Ein Pflichtfeld
   sieht damit überall gleich aus. „Terminart" im Terminformular hat
   „Telefon" vorausgewählt – ohne diese Regel wirkte die Gruppe wie ein
   freiwilliges Feld, obwohl der Stern sie als Pflicht ausweist.
   Die Farbe informiert ZUSÄTZLICH: Träger bleiben der Auswahlknopf
   selbst und der Stern in der Legende (WCAG 1.4.1).
   Nur Pflichtgruppen (`.widget.mandatory`) – die freiwillige
   „Bevorzugte Kontaktart" im Beratungsformular hat mit „E-Mail"
   ebenfalls eine Vorauswahl und bleibt bewusst weiß.
   Der Rahmen wird kräftiger: #c9d3c4 erreicht auf dem grünen Grund nur
   1,3:1, Bedienelemente brauchen 3:1 (WCAG 1.4.11) – #6f8353 schafft
   3,5:1, genau wie bei den Eingabefeldern.
   Ohne `:has()` (sehr alte Browser) passiert schlicht nichts – die
   Gruppe bleibt dann weiß wie bisher. */
.ce_form .widget.mandatory .radio_container > span:has(input:checked),
.ce_form .widget.mandatory .checkbox_container > span:has(input:checked) {
  border-color: #6f8353;
  background: #f3f8e3;
}

/* Hover bleibt spürbar: Die Fläche behält ihr Grün, der Rahmen
   verstärkt sich wie bei jeder anderen Option. */
.ce_form .widget.mandatory .radio_container > span:has(input:checked):hover,
.ce_form .widget.mandatory .checkbox_container > span:has(input:checked):hover {
  border-color: var(--vm-primary, #1e560f);
}

/* Die Beschriftung füllt den Rest der Zeile, damit der ganze Streifen
   anklickbar ist – Rahmen und Abstand trägt jetzt das span. */
.ce_form .checkbox_container label,
.ce_form .radio_container label {
  flex: 1 1 auto;
  margin: 0;
  padding: 0;
  border: 0;
  color: var(--vm-text, #444444);
  font-weight: 400;
  line-height: 1.4;
  cursor: pointer;
}

.ce_form .checkbox_container input,
.ce_form .radio_container input {
  flex: none;
  width: 20px;
  height: 20px;
  margin: 0;
  accent-color: var(--vm-primary, #1e560f);
  cursor: pointer;
}

/* Die zehn Leistungen zweispaltig, wie im Entwurf */
@media screen and (min-width: 601px) {
  .ce_form .vm-form-leistungen .checkbox_container {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 1em;
  }

  .ce_form .vm-form-leistungen .checkbox_container > legend {
    grid-column: 1 / -1;
  }

  /* Contao legt den Hilfetext INS Raster. Bei ungerader Anzahl bleibt
     rechts unten eine Zelle frei, und der Hinweis rutscht neben den
     letzten Eintrag („Mehrfachauswahl möglich" neben „Sonstiges").
     Über die volle Breite gehört er unter die Gruppe. */
  .ce_form .vm-form-leistungen .checkbox_container > .help,
  .ce_form .checkbox_container > .help,
  .ce_form .radio_container > .help {
    grid-column: 1 / -1;
  }
}

/* Kontaktart nebeneinander statt untereinander */
.ce_form .vm-form-radiozeile .radio_container {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8em;
}

.ce_form .vm-form-radiozeile .radio_container > span {
  margin-bottom: 0;
}

/* --- Erklärungstexte -------------------------------------------------- */
.ce_form .vm-form-hinweis,
.ce_form .vm-form-datenschutz {
  width: 100%;
}

.ce_form .vm-form-hinweis p,
.ce_form .vm-form-datenschutz p {
  margin: 0 0 0.5em;
  color: var(--vm-text, #444444);
  font-size: 1rem;
  line-height: 1.5;
}

.ce_form .vm-form-datenschutz {
  margin-top: 0.5em;
}

.ce_form .vm-form-datenschutz a {
  color: var(--vm-primary, #1e560f);
}

/* --- Absende-Knopf ---------------------------------------------------
   Optik wie die VM Buttons (custom_vm_buttons.css), hier nur Größe
   und Breite im Formular. */
.ce_form .submit_container {
  width: 100%;
  margin-top: 0.5em;
}

.ce_form button.submit,
.ce_form input.submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  /* TAO setzt Buttons in Versalien. Screenreader buchstabieren solche
     Beschriftungen mitunter; ausgeschrieben bleibt sie auch besser lesbar. */
  text-transform: none;
  letter-spacing: 0.5px;
  min-height: 54px;
  padding: 0.7em 2em;
  border: 2px solid var(--vm-primary, #1e560f);
  border-radius: 999px;
  background: var(--vm-primary, #1e560f);
  color: #ffffff;
  font-family: inherit;
  font-size: 1.15em;
  font-weight: 700;
  line-height: 1.3;
  cursor: pointer;
  /* TAO legt jedem Button einen inneren Schatten und einen Textschatten
     unter – beides hier weg, sonst wirkt die Fläche schmutzig. */
  box-shadow: none;
  text-shadow: none;
  background-image: none;
}

.ce_form button.submit:hover,
.ce_form input.submit:hover {
  background: #17430c;
  border-color: #17430c;
}

@media screen and (max-width: 600px) {
  .ce_form .formbody {
    padding: 1.5em;
  }

  .ce_form button.submit,
  .ce_form input.submit {
    width: 100%;
  }
}

/* --- Fehler und Bestätigung ------------------------------------------ */
.ce_form .error,
.ce_form p.error {
  margin-top: 0.4em;
  color: #a4262c;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.5;
}

.ce_form .widget.error input,
.ce_form .widget.error select,
.ce_form .widget.error textarea {
  border-color: #a4262c;
  border-width: 2px;
}

/* --- Bestaetigung nach dem Absenden ----------------------------------
   Beide Formulare senden per AJAX. Contao ersetzt dabei das ganze <form>
   durch <div class="form-confirmation"> (Template form_message.html5).
   Die Bestaetigung tritt also an die Stelle der Formularkarte und bekommt
   deshalb deren Format - sonst stuende dort, wo eben noch eine gestaltete
   Karte war, ploetzlich nackter Text auf dem Seitenhintergrund.

   Die Regel `.ce_form .confirmation` darunter stammt aus aelterem
   Contao-Markup und greift hier nicht mehr. Sie bleibt nur stehen, falls
   irgendwo noch ein altes Template haengt.

   Der Fokus landet per vm_basis_a11y.js auf der Ueberschrift; der
   Fokusring kommt aus custom_allgemein.css und wird hier nicht angefasst. */
.ce_form .form-confirmation {
  padding: 2.5em;
  border-radius: var(--vm-radius, 20px);
  border-left: 6px solid var(--vm-primary, #1e560f);
  background: var(--vm-surface-light, #f4f8e2);
  box-shadow: var(--vm-shadow, 0 18px 38px rgba(0, 0, 0, 0.055));
}

/* Kein Abstand nach aussen - die Karte bringt ihren Innenabstand mit */
.ce_form .form-confirmation > *:first-child {
  margin-top: 0;
}

.ce_form .form-confirmation > *:last-child {
  margin-bottom: 0;
}

/* Eigene Media Query, NICHT die weiter oben: die steht im File vor dieser
   Regel und wuerde bei gleicher Spezifitaet von ihr ueberschrieben. */
@media screen and (max-width: 600px) {
  .ce_form .form-confirmation {
    padding: 1.5em;
  }
}

.ce_form .confirmation {
  padding: 1em 1.2em;
  border-radius: var(--vm-radius-small, 9px);
  background: #eef5ea;
  color: var(--vm-primary, #1e560f);
  font-weight: 700;
}

/* --- ALTCHA ----------------------------------------------------------
   Das Widget bringt eigene Farben mit; hier nur einpassen. */
.ce_form .widget-altcha {
  width: 100%;
  max-width: 320px;
}

.ce_form altcha-widget {
  --altcha-border-radius: var(--vm-radius-small, 9px);
  --altcha-border-width: 1px;
  --altcha-color-border: #c9d3c4;
}

/* =====================================================================
   VM Component Library · Baum Energieberatung
   custom_vm_iconliste.css — Optik für das Element „VM Icon-Liste"
   Version: 1.0.0
   ---------------------------------------------------------------------
   Gehört zu templates/rsce_vm_iconliste.html5 + _config.php.

   LADEREIHENFOLGE: nach main.css und custom_vm_icon_boxes.css (Tokens).
   Ohne die Tokens greifen die Fallback-Farben — die Datei funktioniert
   also auch allein.

   ZIEL: pixelgleich zu einer Gruppe einzelner „VM Absatz mit Icon"-
   Elemente (.icon-text-block), damit beim Umbau einer Seite optisch
   nichts springt. Die Werte stammen aus main.css und wurden im
   JCW-Projekt live vermessen (Quelle des Elements):

     Einzug Text           1.875em      (.icon-text-block padding-left)
     Icon nach unten       0.21429em    (.icon-text-block:before top)
     Abstand zwischen      0.75em       (p margin-top, bei margin-bottom-none)
     Abstand vor / nach    0.75em / 1.5em  (= .main-content ul/p)
   ===================================================================== */

/* --- Liste selbst ---------------------------------------------------- */

/* `ul` davor aus demselben Grund wie bei ul.vm-linkliste: main.css setzt
   `.main-content ul` (0,1,1) auf list-style: disc und padding-left 1.25em.
   `ul.vm-iconliste` ist ebenfalls (0,1,1) und gewinnt über die Reihenfolge.

   Die Außenabstände entsprechen denen von .main-content p/ul — so steht
   die Liste auch AUSSERHALB des Inhaltsbereichs (Footer, Sidebar) gleich. */
ul.vm-iconliste {
  margin: 0.75em 0 1.5em;
  padding: 0;
  list-style: none;
}

/* --- Eintrag --------------------------------------------------------- */

/* Eintrag: Icon-Quader links, Text daneben. Flex statt Einzug, damit der
   Text bei mehrzeiligen Einträgen sauber an der Quaderkante bleibt. */
.vm-iconliste-item {
  display: flex;
  align-items: flex-start;
  gap: 0.85rem;
  margin: 0;
  padding: 0;
}

.vm-iconliste-item + .vm-iconliste-item {
  margin-top: 0.6rem;
}

/* Der Text füllt den Rest der Zeile */
.vm-iconliste-item > *:not(.vm-iconliste-icon) {
  flex: 1 1 auto;
  min-width: 0;
}

/* Der Text kommt aus dem Editor und steckt meist in einem <p>. Dessen
   Theme-Abstände (.main-content p, 0,1,1) würden sich zum Listenabstand
   addieren. Kindselektor mit `>` hebt die Spezifität auf (0,2,0) —
   gewinnt unabhängig von der Reihenfolge. Mehrere Absätze IN einem
   Eintrag behalten ihren normalen Abstand untereinander. */
.vm-iconliste-item > :first-child,
.vm-iconliste-item > .vm-iconliste-icon + * {
  margin-top: 0;
}

.vm-iconliste-item > :last-child {
  margin-bottom: 0;
}

/* --- Icon: rein dekorativ, kommt aus data-icon ----------------------- */

/* Icon auf hellgrünem Quader – dieselbe Optik wie in den Iconboxen
   (.vm-card-icon, Variante „Icon klein neben Überschrift"): 2,5rem
   Kantenlänge, Radius 0,7rem, Fläche --vm-surface-icon, Icon dunkelgrün.
   Schrift und content liefert die Theme-Regel `*[data-icon]:before`. */
.vm-iconliste-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 0.7rem;
  background: var(--vm-surface-icon, #e6efc0);
  box-shadow: inset 0 0 0 1px rgba(30, 86, 15, 0.08);
  line-height: 1;
}

.vm-iconliste-icon::before {
  margin-right: 0;
  font-size: 1.15rem;
  color: var(--vm-primary, #1e560f);   /* 7,4:1 auf der grünen Fläche */
}

/* Der Quader steht IMMER auf Höhe der ersten Textzeile, nicht mittig zum
   ganzen Absatz – sonst schwebt er bei mehrzeiligen Einträgen in der
   Mitte.

   Bewusst OHNE negativen Außenabstand: Ein `margin-top` am Icon wird vom
   Theme überschrieben (live gemessen: gesetzt −0.625rem, wirksam 0px).
   Stattdessen bekommt der Quader dieselbe Höhe wie die erste Zeile und
   zentriert sein Icon darin – das hält unabhängig von fremden Regeln.

   Dazu die Textgröße im Eintrag auf 1rem zurück: TAO gibt Absätzen im
   Hauptbereich 1.1em, wodurch die Zeilenhöhe auf 31px wuchs. */
.vm-iconliste-item {
  align-items: flex-start;
}

.main-content .vm-iconliste-item > *:not(.vm-iconliste-icon),
.vm-iconliste-item > *:not(.vm-iconliste-icon) {
  font-size: 1rem;
  line-height: 1.7625;   /* 28,2px – wie der übrige Fließtext */
}

/* Quaderhöhe = Höhe der ersten Zeile; das Icon sitzt darin mittig.
   Die sichtbare Fläche bleibt 2,5rem, sie wird nur vertikal zentriert
   ausgerichtet statt über einen Außenabstand verschoben. */
.main-content .vm-iconliste-icon,
.vm-iconliste-icon {
  align-self: flex-start;
  height: 2.5rem;
  margin-top: 0;
  /* Rechnerisch mittig zur Zeile wäre −5,9px ((28,2px Zeile − 40px
     Quader) / 2). Optisch wirkt der Quader dann zu hoch: Er überragt die
     28,2px hohe Zeile oben wie unten um knapp 6px, und während sich der
     Raum unten durch die Folgezeilen füllt, bleibt er oben leer.
     Deshalb bewusst tiefer gesetzt – nach Augenschein abgestimmt.
     Über translate statt margin, weil transform von keiner Theme-Regel
     angefasst wird. */
  transform: translateY(-0.15rem);
}

/* Auf dunklem Grund (Footer): heller Quader entfällt, das Icon erbt die
   helle Schriftfarbe – sonst grüner Quader auf grünem Grund. */
.-color-inverted .vm-iconliste-icon {
  background: none;
  box-shadow: none;
  width: auto;
  height: auto;
}

.-color-inverted .vm-iconliste-icon::before {
  color: inherit;
}

/* ==========================================================
   VM Component Library  ·  Baum Energieberatung
   Component: Tabellen im Inhalt (mobil)
   Version: 1.0.0
   Stand: 19.09.2026  ·  Contao 5.7 · Theme: RockSolid TAO
   ----------------------------------------------------------
   PROBLEM (gemessen am 19.09.2026 auf /datenschutz)
   Tabellen erzwangen einen horizontalen Scrollbalken der ganzen
   Seite:

     390px: Seite 482px breit – Tabelle „Zwecke" 377px, Cookie-
            Tabelle 458px (Container nur 347px)
     480px: Seite 487px breit – Cookie-Tabelle 460px
     600px und darüber: kein Überlauf

   URSACHEN
   1. `.content-table` (Contaos Wrapper) steht auf
      `overflow-x: visible` – es gibt im Theme KEINE Regel dafür,
      der Überlauf schlägt also direkt auf die Seite durch.
   2. Zellen haben `hyphens: manual` – lange deutsche Komposita
      wie „Organisationspräsentation" brechen nie um.
   3. Die dreispaltige Cookie-Tabelle hatte genau EINE Datenzeile
      und allein 458px Mindestbreite.

   VORGEHEN (Weg von Bianka, 19.09.2026)
   - Schriftgröße ab 600px etwas reduzieren
   - `hyphens: auto` für Tabelleninhalte
   - `vertical-align: top` für die Inhalte

   Bewusst NICHT verwendet: `table-layout: fixed` und
   `overflow-wrap: anywhere`. Beides sind stärkere Eingriffe –
   `fixed` nimmt den Spalten die inhaltsabhängige Breite,
   `anywhere` trennt mitten im Wort statt an Silbengrenzen und
   sieht in deutschem Fließtext unruhig aus. Nach dem Umbau der
   Cookie-Tabelle zu beschrifteten Absätzen (siehe unten) werden
   sie nicht mehr gebraucht.

   Die Cookie-Tabelle wurde im Inhalt zu beschrifteten Absätzen
   umgebaut – eine Tabelle für einen einzigen Datensatz ist
   ohnehin fragwürdig, und `csrf_https-contao_csrf_token` (28
   Zeichen) ließ sich als Tabellenspalte nicht bändigen.

   Die Tabellen bleiben TABELLEN. Der verbreitete Trick, `table`,
   `tr` und `td` mobil auf `display: block` zu setzen, zerstört die
   Tabellensemantik im Accessibility-Baum: Screenreader sagen dann
   weder „Tabelle" noch die Spaltenzuordnung an.

   SPEZIFITÄT
   Geprüft am 19.09.2026: Das Theme setzt Tabellen ausschließlich
   über Elementselektoren (`table`, `table th, table td` – 0,0,1 bis
   0,0,3) und kennt `.content-table` gar nicht. Das `.main-content`-
   Präfix hier (0,2,x) reicht deshalb sicher aus.
   ========================================================== */

/* --- Für alle Breiten ---------------------------------------------- */

/* Oben ausrichten: In einer Zeile steht links oft ein kurzer Begriff und
   rechts ein langer Satz. Mittig ausgerichtet „schwebt" der kurze Text
   dann in der Zeilenmitte und die Zuordnung wird schwerer lesbar. */
.main-content .content-table th,
.main-content .content-table td {
  vertical-align: top;
}

/* Sicherheitsnetz: Ist eine Tabelle trotz allem breiter als ihr Platz,
   scrollt sie in sich – die Seite bleibt ruhig. Gilt besonders für
   Tabellen, die der Kunde später selbst anlegt.
   WCAG 1.4.10 lässt genau das für Tabellen ausdrücklich zu. */
.main-content .content-table {
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

/* --- Ab 600px abwärts ---------------------------------------------- */
@media (max-width: 600px) {
  /* Silbentrennung statt Bandwurm. Setzt `lang="de"` am <html> voraus –
     ohne Sprachangabe kennt der Browser keine Trennmuster. */
  .main-content .content-table th,
  .main-content .content-table td {
    hyphens: auto;
    -webkit-hyphens: auto;
  }

  /* Etwas kleiner setzen: bei schmalem Platz zählt jeder Pixel */
  .main-content .content-table th,
  .main-content .content-table td {
    padding: 0.5rem 0.6rem;
    font-size: 0.9rem;
    line-height: 1.45;
  }

  .main-content .content-table th {
    font-size: 0.82rem;
  }
}

/* --- Sehr schmale Geräte ------------------------------------------- */
@media (max-width: 380px) {
  .main-content .content-table th,
  .main-content .content-table td {
    padding: 0.45rem 0.45rem;
    font-size: 0.86rem;
  }
}

/* ==========================================================
   Hinweis über einer seitlich scrollbaren Tabelle
   ----------------------------------------------------------
   Wird von vm_basis_a11y.js NUR dann eingefügt, wenn eine Tabelle
   tatsächlich breiter ist als ihr Platz. Derzeit trifft das auf
   keine Tabelle im Bestand zu – die Regeln greifen erst, wenn der
   Kunde später eine breitere Tabelle anlegt.

   WARUM ÜBERHAUPT:
   Ein Container mit overflow-x: auto hat von sich aus weder Rolle noch
   Namen – ein Screenreader landet in einem namenlosen Kasten und
   erfährt nicht, dass dort etwas zum Scrollen ist. tabindex="0" plus
   role und Name ist die dokumentierte Empfehlung für scrollbare
   Bereiche und schadet in keinem Browser.

   NICHT belastbar geprüft (19.09.2026): ob Safari scrollbare Container
   von sich aus in die Tab-Reihenfolge aufnimmt. Playwright-WebKit
   bildet Tastaturnavigation headless nicht realistisch ab – der Fokus
   springt dort nur zwischen Container und body. Chromium nimmt sie
   nachweislich auf (Treffer bei Tab #4).

   Der sichtbare Hinweis dient beidem: Er sagt sehenden Nutzern, dass
   es seitwärts weitergeht, und liefert dem Bereich per
   aria-labelledby seinen Namen. Deshalb bewusst EIN Text statt
   zusätzlich eines aria-label – sonst wird er doppelt vorgelesen.
   ========================================================== */

.vm-tabelle-hinweis {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  margin: 0 0 0.5rem;
  color: var(--vm-text, #444444);
  font-size: 0.85rem;
  line-height: 1.4;
}

/* Pfeil als reine Dekoration – die Aussage steht im Text */
.vm-tabelle-hinweis::before {
  content: "↔";
  flex: none;
  font-size: 1.05rem;
  line-height: 1;
  color: var(--vm-primary, #1E560F);
}

/* Der scrollbare Bereich bekommt einen sichtbaren Fokus, sobald er per
   Tastatur angesprungen wird – sonst weiß niemand, wo er gelandet ist. */
.main-content .content-table[tabindex]:focus-visible {
  outline: 3px solid var(--vm-focus-ring, #1E560F);
  outline-offset: 2px;
}

/* Dezente Kante als Hinweis, dass rechts noch etwas kommt */
.main-content .content-table[data-vm-scrollbar] {
  border-right: 2px solid var(--vm-border-accent, #d3e39a);
}

