/* 
CSS Document Themenkonfigurator
*/
:root {
	/* Default Farben, falls Farbschema durch JavaScript nicht erkannt wird */
	--calculatorPrimaryColor:226,0,26;
	--calculatorFocusColor:23,166,0;
	--calculatorTextColor:80,80,80;
	--calculatorInvertedTextColor:255,255,255;
	--calculatorHeadlineColor:0,0,0;
	--calculatorInvertedHeadlineColor:var(--calculatorInvertedTextColor);
	--calculatorBackgroundColor:255,255,255;
	--calculatorBlurBackgroundColor:240,240,240;
	--calculatorShadowColor:0,0,0;
	--calculatorSuccessColor:109, 179, 47;
}

/* /////////////////////////////////////////// 
//////////// Darkmode Adjustments ////////////
/////////////////////////////////////////// */

[data-theme="dark"] {
	--calculatorTextColor:255,255,255;
	--calculatorHeadlineColor:var(--calculatorTextColor);
	--calculatorInvertedHeadlineColor:var(--calculatorInvertedTextColor);
	--calculatorBackgroundColor:35, 45, 50;
	--calculatorBlurBackgroundColor:27, 37, 42;
}


#emastersConfiguratorButton {
	padding:0.5em 1.75em;
	border-radius: 2em;
	font-size:1.35em;
	cursor:pointer;
	float:left;
	
	background-color:rgb(var(--calculatorFocusColor));
	color:rgb(var(--calculatorInvertedTextColor));
}

.bodyIsFixed {
	overflow: hidden;
}

.configuratorWrapperDesign {
	position:absolute;
	width:100%;
	height:100%;
	position:fixed;
	top:0;
	left: 0;
	z-index:99999;

	backdrop-filter: blur(0.6em);
	background-color: rgba(var(--calculatorBlurBackgroundColor), 0.90);
}

.configuratorWrapperInitial {
	display:none;
}

@keyframes showConfiguratorAnimation {
  from {
  	display:block;
  	opacity: 0;
  } to {
    display:block;
    opacity: 1;
  }
}

.configuratorShow {
	animation-duration: 0.25s;
  animation-name: showConfiguratorAnimation;
  display:block;
}

@keyframes hideConfiguratorAnimation {
  from {
  	display:block;
    opacity: 1;
  } to {
    display:block;
  	opacity: 0;
  }
}

.configuratorHide {
	animation-duration: 0.25s;
  animation-name: hideConfiguratorAnimation;
	display:none;
}

.configuratorPageWrapper {
	position:fixed;
	height:90%;
	width:75%;
	left:calc(25% / 2);
	top:calc(10% / 2);
	background-color:rgb(var(--calculatorBackgroundColor));
}

.configuratorPageWidthSidemap {
	width:90%;
	left:calc(10% / 2);
}

.configuratorPageHeadbar {
	float:left;
	width:100%;
	background-color:rgb(var(--calculatorPrimaryColor));
	color:rgb(var(--calculatorInvertedTextColor));
	padding:0.75em 2em;
	position:sticky;
	z-index:99;
	top:0;
}

.configuratorPageHeadline {
	font-size:2em;
	float:left;
	width:calc(100% - 1.0em);
}

.configuratorPageCloseButton {
	float:right;
}

.configuratorPageCloseButton svg {
	width:2em;
	cursor:pointer;
	fill:rgb(var(--calculatorInvertedTextColor));
}

.configuratorPageDescription {
	float:left;
	width:100%;
	margin:2.0em 0;
	padding:0 2.0em;
}

.configuratorPageFormularWrapper {
	float:left;
	width:100%;
	height:calc(100% - 4.2em);
	position: relative;
}

.configuratorPageFormularSection {
	float:left;
	width:100%;
	padding:0 2.0em;
	height:100%;
	overflow-y:scroll;
}

.configuratorPageInputWrapper {
	flex-grow: 1;
	flex-shrink: 1;
	width:calc(25% - 5em);
}

.configuratorPageInputImage, .configuratorPageInputTitel {
	cursor: pointer;
}

.configuratorPageInputWrapper img {
	width:100%;
	height:auto;
}


#emastersConfiguratorWrapper img {
	animation: none;
	animation-name: none;
	filter:none;
}

#emastersConfiguratorWrapper img:hover {
	animation: none;
	animation-name: none;
	filter:none;
}

/* Radiobuttons & Checkboxes */
.configuratorDefaultCheckboxInputField {

}

.configuratorPageDefaultInputField input[type="radio"], 
.configuratorPageDefaultInputField input[type="checkbox"] {

}



.configuratorPageInputImage .configuratorPageInputField input[type="radio"], .configuratorPageInputImage .configuratorPageInputField input[type="checkbox"] {
  -webkit-appearance: none;
  appearance: none;
  pointer-events: none;
  background-color: transparent!important;
  margin: 0;

  font: inherit;
  color: currentColor;
  width: 4em;
  height: 4em;
  border:none;
  border-radius: 50%;
  transform: translateY(-0.075em);

  display: grid;
  place-content: center;
}

.configuratorPageInputImage .configuratorPageInputField input[type="radio"]::before, .configuratorPageInputImage .configuratorPageInputField input[type="checkbox"]::before {
  content: "";
  width: 2.0em;
  height: 2.0em;
  border-radius: 50%;
  transform: scale(0);
  transition: 120ms transform ease-in-out;
  box-shadow: inset 2em 2em rgba(var(--calculatorPrimaryColor), 0.85);
}

.configuratorPageInputImage .configuratorPageInputField input[type="radio"]:checked::before, .configuratorPageInputImage .configuratorPageInputField input[type="checkbox"]:checked::before {
	content: "\2714";
  font-size: 2em;
  line-height: 2.0em;
  text-align: center;
  color: rgb(var(--calculatorInvertedTextColor));
  transform: scale(1);
  border-radius: 50%;
  box-shadow: inset 0 0 0 2em rgba(var(--calculatorPrimaryColor), 0.85);
}

.configuratorLoadBarStepsDisplay {
	width:99.5%;
	height:1.0em;
	position:absolute;
	top:0;
	left:0.25%;
	line-height:0;

	display:flex;
	flex-direction:row;
	flex-wrap: nowrap;
	justify-content:space-evenly;
	align-items: stretch;
}

.processbarStep svg {
	height:100%;
	fill:rgb(var(--calculatorInvertedTextColor));
}

.configuratorLoadBarWrapper {
	width:100%;
	height:1.0em;
	position:absolute;
	bottom:-1.0em;
	left:0;
}

#configuratorLoadBar {
	width:0%;
	height:100%;
	background-color:rgb(var(--calculatorPrimaryColor));
	position:absolute;
	top:0;
	left:0;
}

.configuratorPageInputField input[type=text] {
	width: calc(100% - (0.8em + 2px));
  padding: 0.3em 0.4em;
  border: solid 1px rgb(var(--calculatorTextColor));
  border-radius: 0;

  font-size: 1.5em;
}


/* //////////////////////////////////////////// 
/////////////////// Buttons ///////////////////
//////////////////////////////////////////// */

.configuratorPageSteeringWrapper {
	position:absolute;
	bottom:1.0em;
	right:0;
	width:100%;
}

.configuratorButton {
	padding:0.5em 1.5em;
	cursor:pointer;
	background-color:rgb(var(--calculatorBackgroundColor));
	border:1px solid rgb(var(--calculatorPrimaryColor));
	color:rgb(var(--calculatorPrimaryColor));
}

.configuratorButtonDisabled {
	color:rgba(var(--calculatorHeadlineColor), 0.5);
	border-color:rgba(var(--calculatorHeadlineColor), 0.5);
	background-color:rgba(var(--calculatorHeadlineColor), 0.1);
	pointer-events: none;
}

.configuratorButtonHidden {
	display:none;
}

#pageHistoryBackButton {
	position:absolute;
	left:2em;
	bottom:0;
}

#pageHistoryForwardButton, #sendFormularButton, #closeFormularButton {
	position:absolute;
	right:2em;
	bottom:0;
}

.configuratorFocusButton {
	color:rgba(var(--calculatorInvertedTextColor), 1.0);
	border-color:rgba(var(--calculatorPrimaryColor), 1.0);
	background-color:rgba(var(--calculatorPrimaryColor), 1.0);
}

/* /////////////////////////////////////////// 
//////////////// Success Page ////////////////
/////////////////////////////////////////// */

.successMessageIcon {
	border:1em solid rgba(var(--calculatorSuccessColor), 0.5);
	border-radius:100%;
	display:inline-block;
	width:20em;
	height:20em;
	padding:2em;
	margin:2em 0;
}

.successMessageIcon svg {
	fill:rgba(var(--calculatorSuccessColor), 1.0);
}

.successMessageHeadline {
	margin-top:1em;
	width:100%;
	text-align:center;
	font-size:2em;
	font-weight:900;
	color:rgb(var(--calculatorSuccessColor));
}

.successMessageBody {
	margin-top:1em;
	width:70%;
	display:inline-block;
	text-align:center;
}

.configuratorSuccessMessage {
	margin-top:2em;
	width:90%;
	margin-left:5%;
	float:left;
	text-align: center;
}

#errorMessage {
	float:left;
	width:95%;
	padding:0.5em 2.5%;
	margin:1em 0;

	font-weight: 900;
	font-size:1.1em;
	line-height:1.6em;
}

.errorMessageHidden {
	display:none;
}



/* //////////////////////////////////////////// 
/////////////////// Sitemap ///////////////////
//////////////////////////////////////////// */

.configuratorContentFullsize {
	width:100%;
}

.configuratorContentHalfsize {
	width:75%;
	float:right;
}

.configuratorSidemap {
	width:25%;
	height:calc(100% - (1.5em + 2em));
	border-right:1px solid rgba(var(--calculatorHeadlineColor), 0.3);
	position:absolute;
	left:0;
	top:calc(1.5em + 2em);
}

.configuratorSidemapList {
	margin-top:1.75em;
	width:90%;
	margin-left:5%;
	float:left;
}

.configuratorSidemapHeadline {
	font-weight:600;
	font-size:1.25em;
	float:left;
	width:100%;
	margin-bottom:1.15em;
}

.configuratorSitemapPageTitle {
	float:left;
	width:100%;
	margin-bottom:0.75em;
}

.activeSitemapElement {
	color:rgb(var(--calculatorPrimaryColor));
	font-weight:500;
}


/* ///////////////////////////////////////////// 
/////////////////// Formular ///////////////////
///////////////////////////////////////////// */

/* Questions */
.configuratorQuestionWrapper, .configuratorQuestionHeadline, .configuratorQuestionText, .configuratorQuestionInputArea {
	float:left;
	width:100%;
}

.configuratorQuestionWrapper {
	margin-bottom:2.5em;
}

.configuratorDefaultWrapper {
	float:left;
	width:100%;
	text-align:left;
	padding-bottom:1em;
}

.configuratorDefaultWrapper .defaultCheckboxWrapper {
	float:left;
	width:3em;
}

.configuratorDefaultWrapper .defaultCheckboxWrapper input[type="checkbox"] {
	width:1.5em;
	height:1.5em;
	border:1px solid rgb(var(--calculatorTextColor));
	border-radius:0;
}

.configuratorDefaultWrapper .defaultLabel {
	float:left;
	width:calc(100% - 3em);
	cursor:pointer;
}

.configuratorQuestionWrapper:first-child {
	margin-top:2.5em;
}

.configuratorQuestionWrapper:last-child {
	margin-bottom:5.0em;
}

.configuratorQuestionHeadline {
	font-weight:600;
	font-size:1.10em;
	color:rgb(var(--calculatorHeadlineColor));
}

.configuratorQuestionText {
	margin:0.25em 0 1.5em 0;
	font-style: italic;
}

.configuratorQuestionInputArea {
	width:95%;
	margin-left:2.5%;
}

/* Input Field Types */


/* Toggle */
.toggleOptionLeft, .toggleFieldLeft, .toggleFieldRight, .toggleOptionRight {
	float:left;
	cursor:pointer;
}

.toggleOptionLeft, .toggleOptionRight {
	margin-top:0.25em;
}

.toggleFieldLeft, .toggleFieldRight {
	width:2.5em;
	height:1.75em;
	background-color:rgba(var(--calculatorHeadlineColor), 0.05);
	border:1px solid rgba(var(--calculatorHeadlineColor), 0.3);
}

.toggleFieldLeft {
	border-radius: 1.5em 0 0 1.5em;
	margin-left:0.75em;
}

.toggleFieldRight {
	border-radius: 0 1.5em 1.5em 0;
	margin-right:0.75em;
}

.toggleOptionActive {
	background-color:rgba(var(--calculatorPrimaryColor), 0.9);
	border:1px solid rgba(var(--calculatorHeadlineColor), 0.3);
}


/* Select */
.configuratorPageInputImage .configuratorPageInputField {
	position:absolute;
	top:calc(65% - 2.0em);
	left:calc(50% - 2.0em);
}

.configuratorPageInputImage {
	position:relative;
	float:left;
	width:100%;
}

@keyframes calculatorHoverOutRadioButton {
  from {
  	box-shadow: 0em 0.4em 0.5em rgba(var(--calculatorShadowColor), 0.85);
  } to {
    box-shadow: 0em 0.6em 0.9em rgba(var(--calculatorShadowColor), 0.5);
  }
}

.configuratorRadioInputField, .configuratorCheckboxInputField {
	animation-duration: 0.25s;
  animation-name: calculatorHoverOutRadioButton;
	float:left;
	width:15em;
	border-radius:0.5em;
	background-color:rgb(var(--calculatorBackgroundColor));
	box-shadow: 0em 0.6em 0.9em rgba(var(--calculatorShadowColor), 0.5);
	margin:1.25em 2.5em 1.25em 0;
}

@keyframes calculatorHoverRadioButton {
  from {
  	box-shadow: 0em 0.6em 0.9em rgba(var(--calculatorShadowColor), 0.5);
  } to {
    box-shadow: 0em 0.4em 0.5em rgba(var(--calculatorShadowColor), 0.85);
  }
}

.configuratorRadioInputField:hover, .configuratorCheckboxInputField:hover {
	animation-duration: 0.25s;
  animation-name: calculatorHoverRadioButton;
  box-shadow: 0em 0.4em 0.5em rgba(var(--calculatorShadowColor), 0.85);
}

.configuratorVectorContainer {
	width:100%;
	float:left;
	text-align:center;

	padding:2.5em 0;
}

.configuratorVectorContainer svg {
	height:4em;
	fill:rgba(var(--calculatorHeadlineColor), 0.65);
}

.configuratorPageInputTitel {
	float:left;
	width:100%;
	text-align:center;
	padding-bottom:1em;
	height:3.5em;
}

.configuratorRadioInputField:hover svg, .configuratorCheckboxInputField:hover svg {
	fill:rgba(var(--calculatorPrimaryColor), 1.0);
}


/* //////////////////////////////////////////// 
//////////////// Personal Data ////////////////
//////////////////////////////////////////// */

.configuratorMandatoryMark {
	font-weight:900;
	color:rgb(var(--calculatorPrimaryColor));
}

.detailsPageDescription {
	float:left;
	width:100%;
	margin-top:2em;
}

.detailsOverviewWrapper {
	float:left;
	width:100%;

	display:flex;
	flex-direction: row;
	flex-wrap: nowrap;
	justify-content:space-between;
	align-items: stretch;
	gap:0 1em;

	margin:2em 0;
}

.detailsHeadline, .personalDataHeadline {
	font-size:1.8em;
	font-weight:600;
	color:rgb(var(--calculatorHeadlineColor));
	margin-bottom:0.5em;
}

.personalDataFormularWrapper, .detailsWrapper {
	flex-grow: 1;
	min-width:40%;
}

.detailsListBlock {
	margin-bottom:1.5em;
}

.detailsListBlock, .detailsListBlockHeadline {
	float:left;
	width:100%;
}

.detailsListBlockHeadline {
	color:rgb(var(--calculatorHeadlineColor));
	font-size:1.2em;
	font-weight:600;
}

.detailsRow {
	width:97.5%;
	margin-left:2.5%;
	float:left;
	margin-top:0.5em;
}

.questionTitle {
	float:left;
	width:35%;
	color:rgb(var(--calculatorHeadlineColor));
}

.questionAnswer {
	float:right;
	width:60%;
}

.submitFormularRow {
	margin-bottom:1.5em;
	float:left;
	width:100%;

	display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: stretch;
  align-content: flex-start;
  gap: 0 2em;
}

.submitFormularRow input[type=text] {
  width: calc(100% - (0.8em + 2px));
  padding: 0.3em 0.4em;
  border: solid 1px rgb(var(--calculatorTextColor));
  border-radius: 0;
  font-weight: 300;
}

.submitFormularRow input, .submitFormularRow textarea, .submitFormularRow select {
  font-size: 1.1em!important;
  font-weight: 400;
}

.submitFormularColumn {
	flex-grow: 1;	
}

/* ///////////////////////////
///// Mobile Adjustments /////
/////////////////////////// */

@media only screen and (max-width: 480px) {
	.configuratorPageWrapper {
		width:100%;
		height:100%;
		left:0;
		top:0;
		font-size:1.15em;
	}

	.configuratorPageHeadbar {
		font-size:0.82em;
		padding:0.75em 1em;
	}

	.configuratorQuestionInputArea {
		width:100%;
		margin:0;
	}

	.configuratorPageFormularSection {
		padding:0 1em;
	}

	.configuratorRadioInputField, .configuratorCheckboxInputField {
		font-size:0.8em;
		margin:0.8em;
	}

	.configuratorSidemap {
		display:none!important;
	}

	.configuratorContentHalfsize {
		width:100%;
	} 
}

/* //////////////////////////
/// Dark Mode Adjustments ///
////////////////////////// */

[data-theme="dark"] {
	.configuratorVectorContainer svg {
		fill:rgba(var(--calculatorHeadlineColor), 1.0);
	}

	.configuratorVectorContainer:hover svg {
		fill:rgba(var(--calculatorPrimaryColor), 1.0);
	}

	.configuratorButton {
		background-color:rgb(var(--calculatorBlurBackgroundColor));
	}

	.configuratorButtonDisabled {
		background-color:rgba(var(--calculatorHeadlineColor), 0.1);
	}

	.configuratorFocusButton {
		background-color:rgba(var(--calculatorPrimaryColor), 1.0);
	}
}