/* ACCORDION */

.accordion-title {
display: block;
position: relative;
padding-left: 1.5em;
padding-top: 0;
margin-top: 0.5em;
cursor: pointer;
}

/* hide till grouped */
.accordion-title:not(.accordion-ready),
.accordion-title:not(.accordion-ready) ~ * {
display: none;
}


.accordion-ready::before {
content: " ";
position: absolute;
left: 0;
top: 0;
width: 1em;
height: 1em;
background: transparent none center center no-repeat;
background-size: contain;
background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBmaWxsPSIjMWYzMjc4IiBkPSJNMTIgMGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnM1LjM3MyAxMiAxMiAxMiAxMi01LjM3MyAxMi0xMi01LjM3My0xMi0xMi0xMnptNiAxM2gtNXY1aC0ydi01aC01di0yaDV2LTVoMnY1aDV2MnoiLz48L3N2Zz4=);
}

.accordion-open::before {
background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBmaWxsPSIjMWYzMjc4IiBkPSJNMTIgMGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnM1LjM3MyAxMiAxMiAxMiAxMi01LjM3MyAxMi0xMi01LjM3My0xMi0xMi0xMnptNiAxM2gtMTJ2LTJoMTJ2MnoiLz48L3N2Zz4=);
}


.accordions {
padding-top: 0.8em;
}

.accordion-content {
display: none;
padding-left: 1.5em;
}
.accordion-content:not(:last-child) {
padding-bottom: 1em;
}
/* DOWNLOAD CENTER */

.download-group {
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
-webkit-flex-direction: row;
-ms-flex-direction: row;
flex-direction: row;
-webkit-flex-wrap: wrap;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
-webkit-justify-content: space-between;
-ms-flex-pack: justify;
justify-content: space-between;
-webkit-align-content: flex-start;
-ms-flex-line-pack: start;
align-content: flex-start;
-webkit-align-items: flex-start;
-ms-flex-align: start;
align-items: flex-start;

margin: 0 -1em;
}

.download-group > * {
width: 25%;
padding: 0.75em 1em;
box-sizing: border-box;
}

@media (max-width: 719px) {
	.download-group > * {
	width: 33.333%;
	}
}

@media (max-width: 511px) {
	.download-group > * {
	width: 50%;
	}
}

.download-preview {
position: relative;
border: 1px #333 solid;
padding: 0.5em;
box-sizing: border-box;
width: 100%;
}
.download-preview > div {
padding-top: 100%;
background: transparent none center center no-repeat;
background-size: contain;
}

.download-title {
background: transparent none top right no-repeat;
background-size: 1em 1em;
background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBmaWxsPSIjMWYzMjc4IiBkPSJNNyAydi0yaDEwdjJoLTEwem0wIDRoMTB2LTJoLTEwdjJ6bTEwIDd2LTVoLTEwdjVoLTZsMTEgMTEgMTEtMTFoLTZ6Ii8+PC9zdmc+);
padding-right: 1em;
font-size: 0.8em;
margin-top: 0.5em;
}

.download-group-title {
display: block;
font-weight: bold;
letter-spacing: 0.02em;
margin-top: 1em;
}
.download-subgroup-title {
display: block;
font-weight: normal;
margin-top: 1em;
}

.download-group-title:first-child,
.download-subgroup-title:first-child {
margin-top: 0;
}

.downloadcenter > .accordion-group {
margin-left: 1em;
}
/* FORMS */

.send-progress {
cursor: wait;

}
.send-progress .form-composer {
pointer-events: none;
opacity: 0.6;
}

.form-composer {
padding: 0;
margin: 0 -0.5em;
transition: opacity 0.2s ease;
}
.form-composer .composer-col {
padding: 0 0.5em;
}

.form-input {
padding: 0.5em 0;
}

.minimal-input {
display: block;
background-color: white;
color: #1f3278;
border: 1px #1f3278 solid;
box-sizing: border-box;
outline: 0;
-webkit-appearance: none;
-moz-appearance: none;
-ms-appearance: none;
appearance: none;
border-radius: 0px;
height: 2em;
line-height: 2em;
padding: 0px 0.2em;
margin: 0;
width: 100%;
}

.minimal-input option {
color: #1f3278;
}

textarea.minimal-input { /* no horizontal resize */
max-width: 100%;
line-height: 1.5em;
}
select.minimal-input {
cursor: pointer;
}

.input-label {
min-height: 2em;
line-height: 150%;
box-sizing: border-box;
padding-top: 0.2em;
}

.input-select-wrapper {
position: relative;
}
.input-select-button {
position: absolute;
top: 0;
right: 0;
background: #1f3278 none 50% 54% no-repeat;
/*
https://dopiaza.org/tools/datauri/index.php
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="#ffffff" d="M0 7.33l2.829-2.83 9.175 9.339 9.167-9.339 2.829 2.83-11.996 12.17z"/></svg>
*/
background-image: url(data:image/svg+xml;charset=utf-8;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBmaWxsPSIjZmZmZmZmIiBkPSJNMCA3LjMzbDIuODI5LTIuODMgOS4xNzUgOS4zMzkgOS4xNjctOS4zMzkgMi44MjkgMi44My0xMS45OTYgMTIuMTd6Ii8+PC9zdmc+);
background-size: 0.8em 0.8em;
display: block;
width: 2em;
height: 2em;
line-height: 2em;
text-align: center;
pointer-events: none;
}

.input-button {
background: #e40816;
color: white;
text-align: center;
text-transform: uppercase;
cursor: pointer;
border-color:#e40816;

}

.minimal-input:-moz-input-placeholder {
color: #626fa0;
}
.minimal-input::-moz-input-placeholder {
color: #626fa0;
}
.minimal-input:-ms-input-placeholder {
color: #626fa0;
}
.minimal-input::-ms-input-placeholder {
color: #626fa0;
}
.minimal-input::-webkit-input-placeholder {
color: #626fa0;
}
.minimal-input::placeholder {
color: #626fa0;
}

.select-placeholder,
select.minimal-input option[value=""] {
color: #626fa0;
}


.checkbox,
.radio {
min-height: 2em;
line-height: 150%;
display: inline-block;
position: relative;
color: #1f3278;
padding-left: 3em;
padding-top: 0.2em;
box-sizing: border-box;
-webkit-user-select: none;
user-select: none;
text-decoration: none;
}



.checkbox > span,
.radio > span {
position: absolute;
top: 0px;
left: 0px;
border: 1px currentColor solid;
box-sizing: border-box;
width: 2em;
height: 2em;
background: transparent none center center no-repeat;
background-size: 1em 1em;
}
.checkbox.checked span {
/*
https://dopiaza.org/tools/datauri/index.php
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="#333" d="M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z"/></svg>
*/
background-image: url(data:image/svg+xml;charset=utf-8;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBmaWxsPSIjMzMzIiBkPSJNMjAuMjg1IDJsLTExLjI4NSAxMS41NjctNS4yODYtNS4wMTEtMy43MTQgMy43MTYgOSA4LjcyOCAxNS0xNS4yODV6Ii8+PC9zdmc+);
}

.radio > span {
border-radius: 50%;
}
.radio > span > span {
position: absolute;
top: 22%;
left: 22%;
width: 56%;
height: 56%;
background-color: #1f3278;
border-radius: 50%;
display: none;
}
.radio.checked > span > span {
display: block;
}

@media (min-width: 1000px) {
	.option-align-h .checkbox + .checkbox,
	.option-align-h .radio + .radio {
	margin-left: 1em;
	}
}
@media (max-width: 999px) { /* same like v */
	.option-align-h .checkbox,
	.option-align-h .radio {
	display: block;
	}
	.option-align-h .checkbox + .checkbox,
	.option-align-h .radio + .radio {
	margin-top: 1em;
	}
}

.option-align-v .checkbox,
.option-align-v .radio {
display: block;
}
.option-align-v .checkbox + .checkbox,
.option-align-v .radio + .radio {
margin-top: 1em;
}

/* form errors */

.form-error {
padding: 0.5em 0;
display: none;
}
.form-error-response {
background: RGBA(255,255,255,0.8);
    color: #dd2720;
    padding: 0.4em 0.2em;
line-height: 1.5em;
text-align: center;
}


.invalid input,
.invalid textarea,
.invalid select,
.invalid .checkbox > span, 
.invalid .radio > span {
border-color: #e40816;
outline: 3px red solid;
}

.minimal-input:focus,
.checkbox:focus > span,
.radio:focus > span {
  outline: 3px #1f3278 solid;
}


/* LIGHTBOX */

#lightbox {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 1019;
background-color: RGBA(255,255,255,0.82);
overflow: auto;
overflow-x: hidden;
overflow-y: auto;
-webkit-overflow-scrolling: touch;
}

#lightbox > div {
position: relative;
width: 100%;
min-height: 100%;

    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-flex-wrap: nowrap;
    -ms-flex-wrap: nowrap;
    flex-wrap: nowrap;
    -webkit-justify-content: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;

}

#lightbox > div > div {
position: relative;
width: 100%;
max-width: 880px;
background-color: rgba(255,255,255,0.9);
font-size: 0.8em;
}

#lightbox > div > div::after {
content: " ";
height: 1em;
display: block;
}


@media (max-width: 999px) {
	#lightbox > div {
	display: block;
	}
	#lightbox > div > div {
	margin-left: 0 !important;
	max-width: none;
	}
}


#lightbox > div > div > .image {
background-size: contain;
}



.lightbox-close {
z-index: 1020;
position: absolute;
right: 1em;
top: 1em;
width: 2em;
height: 2em;
background: transparent url(images/close-x.svg) center center no-repeat;
background-size: 1em;
}


@media (max-width: 999px) {
	.lightbox-close {
	font-size: 1.15em;
	right: 10px;
    top: 8px;
	}
}
@media (max-width: 511px) {
	.lightbox-close {
	font-size: 1.3em;
	}
}

.lightbox-template {
display: none;
}
/* MOBILE MENU */


#mobile-menu ul {
list-style-type: none;
padding-left: 0;
}

#mobile-menu {
display: none;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 1009;
overflow: auto;
overflow-x: hidden;
overflow-y: auto;
-webkit-overflow-scrolling: touch;
}

#mobile-menu-backdrop {
display: none;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 120%;
background-color: RGBA(255,255,255,0.95);
z-index: 1008;
}

@media (min-width: 1000px) {
	#mobile-menu,
	#mobile-menu-backdrop {
	display: none !important;
	}
}

#menu-button {
z-index: 1010;
position: absolute;
    right: 6px;
    top: 4px;
width: 44px;
height: 44px;
display: none;
transition: right 0.2s ease;
}

.mobile-menu-open #menu-button {
position: fixed;
}


@media (max-width: 999px) {
	#menu-button {
	display: block;
	}
	body:not(.mobile-menu-open) #menu-button {
	right: 18px;
	}
}


#menu-button span {
height: 2px;
margin-top: -1px;
width: 34px;
left: 50%;
top: 50%;
position: absolute;
background-color: #1f3278;
}


#menu-button :nth-child(1) {
-webkit-transform: translate(-17px, -13px);
transform: translate(-17px, -13px);
transition: transform ease 0.3s, width ease 0.3s, background-color 0.3s ease;
}
#menu-button :nth-child(2) {
-webkit-transform: translate(-17px, 0px);
transform: translate(-17px, 0px);
transition: opacity ease 0.15s, width ease 0.3s, background-color 0.3s ease;
}
#menu-button :nth-child(3) {
-webkit-transform: translate(-17px, 13px);
transform: translate(-17px, 13px);
transition: transform ease 0.3s, width ease 0.3s, background-color 0.3s ease;
}


.mobile-menu-open #menu-button :nth-child(1) {
-webkit-transform: translate(-22px, 0px) rotate(45deg);
transform: translate(-12px, 0px) rotate(45deg);
width: 24px;
}
.mobile-menu-open #menu-button :nth-child(2) {
opacity: 0;
width: 24px;
}
.mobile-menu-open #menu-button :nth-child(3) {
-webkit-transform: translate(-22px, 0px) rotate(-45deg);
transform: translate(-12px, 0px) rotate(-45deg);
width: 24px;
}

/* PRELOAD */

.preload,
.preload-all {
opacity: 0;
transition: opacity 0.3s ease;
}
.preload-ready,
.preload-all-ready {
opacity: 1;
}


/* EFFECT: PROGRESS */

.progress {
border: 1px #333 solid;
width: 2em;
height: 2em;
border-radius: 50%;
position: absolute;
top: 49%;
left: 50%;
z-index: 1000;
-webkit-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
box-sizing: border-box;
animation-name: progresspulse;
animation-duration: 1s;
animation-iteration-count: infinite;
animation-timing-function: ease-in-out;
pointer-events: none;
transition: opacity 0.15s ease;
opacity: 0;
}

@keyframes progresspulse {
	0%   { border-width: 1px; }
	38%  { border-width: 10px; }
	100% { border-width: 1px; }
}

/* fadein when doc is ready */
.doc-ready .progress {
opacity: 1;
}

/* fadeout when loaded */
.preload-all-ready + .progress,
.preload-ready + .progress {
opacity: 0 !important;
animation-play-state: paused;
}

