@charset "utf-8";
/* CSS Document */
/* NK FORM */
/* Fieldsets */
.nkForm fieldset {
	padding: 0;
	margin-bottom: 0.5em;
	border: none;
}
.nkForm fieldset.inlineInsides > div {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    width: 100%;
	min-width: 0;
}
.nkForm .nkFormGroup .inlineInsides {
    display: flex;
    justify-content: flex-start;
    align-items: flex-end;
}
.nkForm fieldset.inlineInsides > div > * {
	-webkit-box-flex: 1;
	    -ms-flex: 1 1 20%;
	        flex: 1 1 20%;
	min-width: 0;
    	padding-right: 1em;
}
.nkForm .nkFormGroup .inlineInsides > * {
	flex: 0 0 auto;
   	padding-right: 1em;
}
.nkForm fieldset.inlineInsides > div > *:last-child,
.nkForm .nkFormGroup .inlineInsides > *:last-child {
   	padding-right: 0;
}
.nkForm fieldset.inlineInsides > div > div.inputXS {
    flex: 0 0 auto;
}
.nkForm fieldset.inlineInsides.first8em > div > *,
.nkForm fieldset.inlineInsides.first8em > div.inputXS > * {
	-ms-flex-preferred-size: 8em !important;
	    flex-basis: 8em !important;
}

/* Formgroup */
/* grid */
.checkboxGrid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.25em 1.5em;
}
@media (max-width: 600px) {
    .checkboxGrid {
        grid-template-columns: 1fr;
    }
}
.checkboxGrid > .nkfCheckbox {
	margin: 0.25em 0;
}


/* labelsbottom */
.nkForm fieldset.labelsBottom > div > div,
.nkForm.labelsBottom fieldset.inlineInsides > div > div {
	display: flex;
	flex-direction: column;
}
.nkForm fieldset.labelsBottom label,
.nkForm.labelsBottom fieldset.inlineInsides label {
	order: 2;
	position: relative;
	top: -0.5em;
}
.nkForm fieldset.labelsBottom input,
.nkForm.labelsBottom fieldset.inlineInsides input {
	order: 1;
}
.nkForm.labelsBottom fieldset > div > div.nkfCheckbox {
	flex-direction: row; /* Not with Checkbox */
	align-items: center;
}
.nkForm.labelsBottom fieldset > div > div.nkfCheckbox label {
	top: 0;
}
@media (max-width: 30rem) {
	.nkForm fieldset.inlineInsides > div {
	    display: block;
	    -webkit-box-pack: justify;
	        -ms-flex-pack: justify;
	            justify-content: space-between;
	    -webkit-box-align: end;
	        -ms-flex-align: end;
	            align-items: flex-end;
	    width: 100%;
	}
	.nkForm fieldset.inlineInsides > div > * {
		-webkit-box-flex: 1;
		    -ms-flex: 1 1 20%;
		        flex: 1 1 20%;
	   	padding-right: 0;
	}
	.nkForm fieldset.inlineInsides.first8emdiv > div > *:first-child {
		max-width: none;
	}
}
.nkForm fieldset.buttonBox {
    margin-top: 1em;
}
.nkForm fieldset > div > *:last-child {
    margin-right: auto; /* ????????????????????????????????? */
}
/* TextInput */
.nkForm input[type="text"],
.nkForm input[type="email"],
.nkForm input[type="url"],
.nkForm input[type="password"],
.nkForm input[type="search"],
.nkForm input[type="number"],
.nkForm input[type="tel"],
.nkForm input[type="range"],
.nkForm input[type="date"],
.nkForm input[type="month"],
.nkForm input[type="week"],
.nkForm input[type="time"],
.nkForm input[type="datetime"],
.nkForm input[type="datetime-local"],
.nkForm input[type="color"],
.nkForm textarea {
	/* Remove Safari Style */
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
	display: block;
	height: auto;
    width: 100%;
    padding: 0.5em 1em;
    margin-bottom: 0.5em;
    border: solid 1px #dfe3e7;
    background: #f7f8f8;
    font-size: 1em;
    line-height: normal; /* ff2 */
    -ms-box-sizing: border-box; /* ie8 */
    -webkit-box-sizing: border-box; /* safari3 */
    -khtml-box-sizing: border-box; /* konqueror */
    box-sizing: border-box; /* css3 rec */
}
.nkForm input[type="text"]:focus,
.nkForm input[type="email"]:focus,
.nkForm input[type="url"]:focus,
.nkForm input[type="password"]:focus,
.nkForm input[type="search"]:focus,
.nkForm input[type="number"]:focus,
.nkForm input[type="tel"]:focus,
.nkForm input[type="range"]:focus,
.nkForm input[type="date"]:focus,
.nkForm input[type="month"]:focus,
.nkForm input[type="week"]:focus,
.nkForm input[type="time"]:focus,
.nkForm input[type="datetime"]:focus,
.nkForm input[type="datetime-local"]:focus,
.nkForm input[type="color"]:focus,
.nkForm textarea:focus {
    border-color: #00305e;
}
.nkForm input[type="text"],
.nkForm input[type="email"],
.nkForm input[type="tel"],
.nkForm select,
.nkForm textarea,
.nkForm button,
.nkForm button[type="submit"] {
	font-family: inherit;
	font-size: inherit;
	font-weight: inherit;
}
.nkForm .dateInputSupported div.fallbackDatefields {
	display: none;
}
.nkForm .dateInputNotSupported div.dateField {
	display: none;
}
/* TextArea */
.nkForm textarea {
	min-height: 7em;
	margin-bottom: 1em;
}
/* Dropdown */
.nkForm .jsDdClosed {
}
.nkForm .jsDdOpened {

}
.nkForm [id^="jsAltDd-"][id$="-Container"] {
    position: relative;
	border: solid 1px #dfe3e7;
	margin-bottom: 0.5em;
}
.nkForm [id^="jsAltDd-"][id$="-Container"]:hover {
    cursor: pointer;
}
.nkForm [id^="jsAltDd-"][id$="-Current"] {
    position: relative;
    padding: 0.5em 2.5em 0.5em 1em;
    margin-bottom: 0;
    background: #f7f8f8;
    font-size: 1em;
    line-height: normal;
}
.nkForm [id^="jsAltDd-"][id$="-Current"]:after {
	position: absolute;
	top: 50%;
    right: 0.72em;
	width: 0.48em;
	height: 0.48em;
	border-right: solid 0.12em #fff;
	border-bottom: solid 0.12em #fff;
	content: "";
	-webkit-transform: translateY(-65%) rotate(45deg);
	    -ms-transform: translateY(-65%) rotate(45deg);
	        transform: translateY(-65%) rotate(45deg);
	-webkit-transition: -webkit-transform ease-in-out 0.25s;
	transition: -webkit-transform ease-in-out 0.25s;
	-o-transition: transform ease-in-out 0.25s;
	transition: transform ease-in-out 0.25s;
	transition: transform ease-in-out 0.25s, -webkit-transform ease-in-out 0.25s;
}
.nkForm .jsDdOpened [id^="jsAltDd-"][id$="-Current"]:after {
	-webkit-transform: translateY(-35%) rotate(225deg);
	    -ms-transform: translateY(-35%) rotate(225deg);
	        transform: translateY(-35%) rotate(225deg);
}
.nkForm [id^="jsAltDd-"][id$="-Current"]:before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    display: block;
	width: 2em;
	border-left: solid 1px #dfe3e7;
	background: #00305e;
}
.nkForm [id^="jsAltDd-"][id$="Options"] {
    position: relative;
    left: 0;
    right: 0;
    box-sizing: border-box;
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    visibility: hidden;
    background: #00305e;
	color: #fff;
    top: -0.5rem;
    pointer-events: none;
    -webkit-transform: translateY(-0.35em);
        -ms-transform: translateY(-0.35em);
            transform: translateY(-0.35em);
    -webkit-transition: max-height 0.28s ease, opacity 0.2s ease, visibility 0s linear 0.28s, -webkit-transform 0.28s ease;
    transition: max-height 0.28s ease, opacity 0.2s ease, visibility 0s linear 0.28s, -webkit-transform 0.28s ease;
    -o-transition: max-height 0.28s ease, opacity 0.2s ease, transform 0.28s ease, visibility 0s linear 0.28s;
    transition: max-height 0.28s ease, opacity 0.2s ease, transform 0.28s ease, visibility 0s linear 0.28s;
    transition: max-height 0.28s ease, opacity 0.2s ease, transform 0.28s ease, visibility 0s linear 0.28s, -webkit-transform 0.28s ease;
}
.nkForm fieldset.inlineInsides [id^="jsAltDd-"][id$="Options"] {
   	position: absolute;
   	top: auto;
   	z-index: 9999;
}
.nkForm .jsDdClosed [id^="jsAltDd-"][id$="-Options"] {
    max-height: 0;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}
.nkForm .jsDdOpened [id^="jsAltDd-"][id$="-Options"] {
    max-height: 20rem;
    overflow-y: auto;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    -webkit-transform: translateY(0);
        -ms-transform: translateY(0);
            transform: translateY(0);
    -webkit-transition-delay: 0s;
         -o-transition-delay: 0s;
            transition-delay: 0s;
}
.nkForm .jsDdOption {
    padding: 0.25em 0.5em;
    border-bottom: solid 1px #dfe3e7;
    background-color: transparent;
    -webkit-transition: background-color 0.25s ease, color 0.25s ease;
    -o-transition: background-color 0.25s ease, color 0.25s ease;
    transition: background-color 0.25s ease, color 0.25s ease;
}
.nkForm .jsDdOption:hover {
    background-color: #e75113;
    color: #fff;
}

@media (prefers-reduced-motion: reduce) {
    .nkForm [id^="jsAltDd-"][id$="Options"],
    .nkForm .jsDdOption {
        -webkit-transition: none;
        -o-transition: none;
        transition: none;
    }
}

/* Gekapselter Modul-Standard. Im Vererbungsmodus gestaltet das Template. */
.nkjsimplecontactBox.nkjsc-button-standard .nkForm button[type="submit"],
.nkjsimplecontactBox.nkjsc-button-standard .nkForm input[type="submit"] {
	padding: 0.5em 0.75em;
	background: #00305e;
	color: #fff;
	border: solid 1px #00305e;
	-webkit-transition: all ease 0.25s;
	-o-transition: all ease 0.25s;
	transition: all ease 0.25s;
}
.nkjsimplecontactBox.nkjsc-button-standard .nkForm button[type="submit"]:hover,
.nkjsimplecontactBox.nkjsc-button-standard .nkForm input[type="submit"]:hover {
	cursor: pointer;
	background: #e75113;
	border-color: #e75113;
	color: #fff;
}

/** Checkbox ------------------------ */
.nkfCheckbox {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	flex-wrap: wrap;
	margin-bottom: 1em;
}
.jsCbUnchecked,
.jsCbChecked {
  align-items: center;
  gap: 10px;
  cursor: pointer;
}
/* Box */
.jsCbBox{
  width: 1.25em;
  height: 1.25em;
  flex-shrink: 0;
  border: 2px solid #dfe3e7;
  border-radius: 4px;
  position: relative;
  box-sizing: border-box;
}
/* checkmark */
.jsCbChecked .jsCbBox::after{
  content:"";
  position:absolute;
  /* Zentrier-Anker */
  left: 50%;
  top: 50%;
  /* Größe relativ zur Box */
  width: 30%;
  height: 55%;
  /* Strichstärke relativ */
  border: solid #00305e;
  border-width: 0 0.14em 0.14em 0;
  /* erst drehen, dann sauber in die Mitte schieben */
  transform: translate(-45%, -60%) rotate(45deg);
}

/* Labels ------------------------------ */
.nkForm label,
.nkFormGroup legend {
    font-size: inherit;
    font-weight: inherit;
}
.nkForm label {
    display: block;
    padding: 0.5em 0 0.25em 0;
}
.nkForm.noLabels label {
	display: none;
}
.nkfCheckbox label {
	padding: 0 0 0 1em;
}

/* ANTI SPAM HONEY --------------------- */
.theHpo {
	max-height: 0;
	overflow: hidden;
}
 /* Error Messages --------------------- */
 .nkFormErrorMessages {
	 color: red;
	 font-weight: bold;
 }

/* Layout: lines ---------------------------------------------------------- */
.nkjsimplecontactBox.nkjsc-layout-lines {
	color: #244e73;
}
.nkjsimplecontactBox.nkjsc-layout-lines .nkContactFormContainer > div {
	width: 100%;
	max-width: 42em;
}
.nkjsimplecontactBox.nkjsc-layout-lines .nkForm fieldset {
	margin-bottom: 1.15em;
}
.nkjsimplecontactBox.nkjsc-layout-lines .nkForm fieldset.inlineInsides > div {
	align-items: stretch;
	gap: 1.25em;
}
.nkjsimplecontactBox.nkjsc-layout-lines .nkForm fieldset.inlineInsides > div > * {
	padding-right: 0;
}
.nkjsimplecontactBox.nkjsc-layout-lines .nkForm .norm {
	display: flex;
	flex-direction: column;
}
.nkjsimplecontactBox.nkjsc-layout-lines .nkForm .norm > label {
	position: static;
	order: 1;
	display: block;
	padding: 0.35em 0;
	color: inherit;
	font: inherit;
	letter-spacing: 0.03em;
	text-transform: uppercase;
}
.nkjsimplecontactBox.nkjsc-layout-lines .nkForm .norm > input[type="text"],
.nkjsimplecontactBox.nkjsc-layout-lines .nkForm .norm > input[type="email"],
.nkjsimplecontactBox.nkjsc-layout-lines .nkForm .norm > input[type="url"],
.nkjsimplecontactBox.nkjsc-layout-lines .nkForm .norm > input[type="tel"],
.nkjsimplecontactBox.nkjsc-layout-lines .nkForm .norm > input[type="number"],
.nkjsimplecontactBox.nkjsc-layout-lines .nkForm .norm > input[type="date"],
.nkjsimplecontactBox.nkjsc-layout-lines .nkForm .norm > input[type="time"],
.nkjsimplecontactBox.nkjsc-layout-lines .nkForm .norm > select {
	order: 0;
	width: 100%;
	margin: 0;
	padding: 0.4em 0 0.25em;
	border: 0;
	border-bottom: 0.125em solid currentColor;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	color: inherit;
}
.nkjsimplecontactBox.nkjsc-layout-lines .nkForm .norm > textarea {
	order: 2;
	min-height: 7em;
	margin: 0;
	padding: 0.65em;
	border: 0.125em solid currentColor;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	color: inherit;
}
.nkjsimplecontactBox.nkjsc-layout-lines .nkForm .norm > input:focus,
.nkjsimplecontactBox.nkjsc-layout-lines .nkForm .norm > select:focus,
.nkjsimplecontactBox.nkjsc-layout-lines .nkForm .norm > textarea:focus {
	border-color: currentColor;
	outline: 0.125em solid currentColor;
	outline-offset: 0.125em;
}
.nkjsimplecontactBox.nkjsc-layout-lines .nkForm .nkfCheckbox {
	align-items: flex-start;
	margin: 0.4em 0 0;
	color: inherit;
}
.nkjsimplecontactBox.nkjsc-layout-lines .nkForm .nkfCheckbox > input[type="checkbox"] {
	margin-top: 0.25em;
	accent-color: currentColor;
}
.nkjsimplecontactBox.nkjsc-layout-lines .nkForm .nkfCheckbox label,
.nkjsimplecontactBox.nkjsc-layout-lines .nkForm .nkfCheckbox .jsCbLabel {
	display: block;
	padding: 0 0 0 1em;
	color: inherit;
	font: inherit;
	font-size: 0.85em;
	letter-spacing: normal;
	line-height: 1.45;
	text-transform: none;
}
.nkjsimplecontactBox.nkjsc-layout-lines .nkForm .jsCbBox {
	border-color: currentColor;
	border-radius: 0;
}
.nkjsimplecontactBox.nkjsc-layout-lines .nkForm .jsCbChecked .jsCbBox::after {
	border-color: currentColor;
}
.nkjsimplecontactBox.nkjsc-layout-lines.nkjsc-button-standard .nkForm button[type="submit"],
.nkjsimplecontactBox.nkjsc-layout-lines.nkjsc-button-standard .nkForm input[type="submit"] {
	padding: 0.65em 1.8em;
	border: 0.125em solid currentColor;
	border-radius: 0;
	background: transparent;
	color: inherit;
	font: inherit;
	letter-spacing: 0.25em;
	text-transform: uppercase;
}
.nkjsimplecontactBox.nkjsc-layout-lines.nkjsc-button-standard .nkForm button[type="submit"]:hover,
.nkjsimplecontactBox.nkjsc-layout-lines.nkjsc-button-standard .nkForm input[type="submit"]:hover {
	background: #244e73;
	color: #fff;
}

@media (max-width: 30rem) {
	.nkjsimplecontactBox.nkjsc-layout-lines .nkContactFormContainer > div {
		max-width: none;
	}
	.nkjsimplecontactBox.nkjsc-layout-lines .nkForm fieldset.inlineInsides > div {
		display: block;
	}
	.nkjsimplecontactBox.nkjsc-layout-lines .nkForm fieldset.inlineInsides > div > * {
		margin-bottom: 1em;
	}
	.nkjsimplecontactBox.nkjsc-layout-lines .nkForm fieldset.inlineInsides > div > *:last-child {
		margin-bottom: 0;
	}
}

/* Semantik, Validierung und progressive Bedienoberflächen ---------------- */
.nkjscRequiredNote {
    margin: 0.65em 0 1.25em;
    text-align: left;
    font-size: 0.9em;
}

.nkjscErrorSummary {
    margin: 0 0 1.5em;
    padding: 1em 1.25em;
    border: 1px solid #b42318;
    border-left-width: 0.3em;
    background: #fff7f6;
}

.nkjscErrorSummary h3 {
    margin: 0 0 0.5em;
}

.nkjscErrorSummary ul {
    margin: 0;
}

.nkjscFieldError {
    width: 100%;
    flex: 0 0 100%;
    margin: 0.35em 0 0;
    color: #b42318;
    font-size: 0.9em;
}

/* Im Linien-Layout ist .norm eine vertikale Flexbox. Die allgemeine
   100%-Flexbasis wuerde hier zur Elementhoehe und verschiebt das Formular. */
.nkjsimplecontactBox.nkjsc-layout-lines .nkForm .norm > .nkjscFieldError {
    order: 3;
    flex: 0 0 auto;
}

.nkfCheckbox > [id^="jsAltCb-"][id$="-Container"] {
    flex: 1 1 100%;
    min-width: 0;
}

.nkjscStepValidationMessage {
    margin: 0 0 1em;
    padding: 0.65em 0.85em;
    border-left: 0.25em solid #b42318;
    background: #fff7f6;
    color: #821c14;
}

.nkForm .nkjscInvalid [id^="jsAltDd-"][id$="-Container"] {
    border-color: #b42318;
    box-shadow: 0 0 0 1px #b42318;
}

.nkForm .nkjscInvalid .jsCbBox,
.nkForm .nkjscInvalid.nkjscRadioGroup .radioOption label::before {
    border-color: #b42318;
}

.nkForm .nkjscInvalid [id^="jsAltDd-"][id$="-Current"]:focus,
.nkForm .nkjscInvalid [id^="jsAltCb-"][id$="-Container"]:focus {
    outline: 2px solid #b42318;
    outline-offset: 2px;
}

.nkForm input[aria-invalid="true"],
.nkForm select[aria-invalid="true"],
.nkForm textarea[aria-invalid="true"] {
    border-color: #b42318 !important;
    box-shadow: 0 0 0 1px #b42318;
}

.nkjscConditionalHidden {
    display: none !important;
}

/* Native Controls: echte Browser-Elemente, nur optisch an das Formular angepasst. */
.nkjsc-native-controls .nkForm select {
	display: block;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	height: auto;
	min-height: 2.5em;
	margin: 0 0 0.5em;
	padding: 0.5em 2.5em 0.5em 1em;
	border: 1px solid #dfe3e7;
	border-radius: 0;
	background-color: #f7f8f8;
	background-image:
		linear-gradient(45deg, transparent 50%, currentColor 50%),
		linear-gradient(135deg, currentColor 50%, transparent 50%);
	background-position:
		calc(100% - 1em) 50%,
		calc(100% - 0.65em) 50%;
	background-repeat: no-repeat;
	background-size: 0.4em 0.4em, 0.4em 0.4em;
	color: inherit;
	font: inherit;
	line-height: normal;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	box-sizing: border-box;
}

.nkjsc-native-controls .nkForm select:focus {
	border-color: #00305e;
	outline: 1px solid #00305e;
	outline-offset: 0;
}

.nkjsc-native-controls .nkjscNativeCheckbox {
    display: flex;
    flex-wrap: nowrap;
    align-items: flex-start;
    gap: 0.65em;
}

.nkjsc-native-controls .nkjscNativeCheckbox > label {
    flex: 1 1 0;
    width: auto;
    min-width: 0;
    padding: 0;
}

.nkjscNativeCheckbox,
.nkfCheckbox {
    margin-top: 0.45em;
    margin-bottom: 0.75em;
}

.nkjscNativeCheckbox label,
.jsCbLabel {
    margin: 0;
    line-height: 1.4;
}

.nkjsc-native-controls .nkjscNativeCheckbox input[type="checkbox"],
.nkjsc-native-controls .nkjscRadioGroup input[type="radio"] {
    flex: 0 0 auto;
    width: 1.15em;
    height: 1.15em;
    margin: 0.15em 0 0;
}

.nkjscRadioGroup > div {
    display: flex;
    flex-direction: column;
    flex-wrap: wrap;
    gap: 0.65em;
}

.nkjscRadioGroup .radioOption {
    display: flex;
    align-items: flex-start;
    gap: 0.65em;
    width: 100%;
    min-width: 0;
    line-height: 1.4;
}

.nkjscRadioGroup > legend {
    margin-bottom: 0.5em;
}

.nkjscRadioGroup .radioOption > input[type="radio"] {
    flex: 0 0 auto;
    margin-top: 0.18em;
}

.nkjscRadioGroup .radioOption > label {
    display: block;
    min-width: 0;
    margin: 0;
    padding: 0;
    line-height: 1.4;
    cursor: pointer;
}

/* Nicht-native Radiodarstellung: Das echte Eingabeelement bleibt fuer
   Tastatur, Formularversand und Screenreader erhalten. */
.nkjsc-custom-controls .nkjscRadioGroup:not(.nkjscRadioCards) .radioOption {
    position: relative;
}

.nkjsc-custom-controls .nkjscRadioGroup:not(.nkjscRadioCards) input[type="radio"] {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: 0;
    opacity: 0;
}

.nkjsc-custom-controls .nkjscRadioGroup:not(.nkjscRadioCards) input[type="radio"] + label {
    position: relative;
    min-height: 1.4em;
    padding: 0 0 0 1.85em;
}

.nkjsc-custom-controls .nkjscRadioGroup:not(.nkjscRadioCards) input[type="radio"] + label::before,
.nkjsc-custom-controls .nkjscRadioGroup:not(.nkjscRadioCards) input[type="radio"] + label::after {
    position: absolute;
    content: "";
    border-radius: 50%;
    box-sizing: border-box;
}

.nkjsc-custom-controls .nkjscRadioGroup:not(.nkjscRadioCards) input[type="radio"] + label::before {
    top: 0.12em;
    left: 0;
    width: 1.15em;
    height: 1.15em;
    border: 0.12em solid #00305e;
    background: transparent;
}

.nkjsc-custom-controls .nkjscRadioGroup:not(.nkjscRadioCards) input[type="radio"] + label::after {
    top: 0.41em;
    left: 0.29em;
    width: 0.57em;
    height: 0.57em;
    background: #00305e;
    opacity: 0;
    transform: scale(0.35);
    transition: opacity 0.18s ease, transform 0.18s ease;
}

.nkjsc-custom-controls .nkjscRadioGroup:not(.nkjscRadioCards) input[type="radio"]:checked + label::after {
    opacity: 1;
    transform: scale(1);
}

.nkjsc-custom-controls .nkjscRadioGroup:not(.nkjscRadioCards) input[type="radio"]:focus + label::before {
    outline: 2px solid #00305e;
    outline-offset: 2px;
}

.nkjscRadioCards > div {
    flex-direction: row;
    align-items: stretch;
}

.nkjscRadioCards .radioOption {
    position: relative;
    flex: 1 1 12em;
    width: auto;
}

.nkjscRadioCards input[type="radio"] {
    position: absolute;
    top: 0.85em;
    left: 0.85em;
    z-index: 1;
}

.nkjscRadioCards label {
    display: block;
    width: 100%;
    min-height: 100%;
    padding: 0.8em 0.9em 0.8em 2.65em;
    border: 1px solid;
    border-radius: 0.45em;
    box-sizing: border-box;
    cursor: pointer;
}

.nkjscRadioCards input[type="radio"]:checked + label {
    box-shadow: 0 0 0 2px currentColor;
}

/* Schritte --------------------------------------------------------------- */
.nkjscProgress {
    width: 100%;
    margin: 0 0 1.5em;
    box-sizing: border-box;
}

.nkjscProgress > .nkjscRequiredNote {
    margin: 0 0 0.65em;
    text-align: left;
}

.nkjscProgressText {
    display: inline-block;
    margin: 0 0 0.65em;
    padding: 0.3em 0.8em;
    border-radius: 999px;
    background: #00305e;
    color: #fff;
    line-height: 1.25;
}

.nkjscProgressBar {
    display: block;
    width: 100%;
    height: 0.55em;
}

.nkjscProgressSteps {
    display: flex;
    justify-content: space-between;
    width: 100%;
    margin: 0;
    padding: 0;
    list-style: none;
}

.nkjscProgressStep {
    position: relative;
    display: flex;
    flex: 1 1 0;
    justify-content: center;
    min-width: 2.75em;
}

.nkjscProgressStep:not(:last-child)::after {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100%;
    height: 2px;
    background: #dfe3e7;
    content: "";
    transform: translateY(-50%);
}

.nkjscProgressStepNumber {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.5em;
    height: 2.5em;
    margin: 0;
    padding: 0;
    border: 2px solid #dfe3e7;
    border-radius: 50%;
    background: #f7f8f8;
    color: inherit;
    font: inherit;
    line-height: 1;
    cursor: pointer;
    box-sizing: border-box;
    -webkit-appearance: none;
    appearance: none;
    transition: background-color 0.25s ease, border-color 0.25s ease, color 0.25s ease, transform 0.2s ease;
}

.nkjscProgressStepNumber:hover,
.nkjscProgressStepNumber:focus {
    transform: scale(1.08);
}

.nkjscProgressStepNumber:focus {
    outline: 2px solid currentColor;
    outline-offset: 3px;
}

.nkjscProgressStep.is-current .nkjscProgressStepNumber {
    border-color: #00305e;
    background: #00305e;
    color: #fff;
    transform: scale(1.08);
}

.nkjscProgressStep.is-complete .nkjscProgressStepNumber {
    border-color: #00305e;
    background: #00305e;
    color: #fff;
}

.nkjscProgressStep.is-complete::after {
    background: #00305e;
}

.nkjscStep[hidden],
.nkjscAccordionPanel[hidden] {
    display: none;
}

.nkjscStep:focus {
    outline: none;
}

.nkjscStepTitle {
    margin: 0 0 0.4em;
}

.nkjscStepIntro {
    margin: 0 0 1.25em;
}

.nkjscStepNavigation {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.75em;
    margin-top: 1.5em;
}

.nkjscStepButton {
    min-width: 7em;
    padding: 0.58em 1.25em 0.72em;
    border: 1px solid currentColor;
    font: inherit;
    cursor: pointer;
}

.nkjscStepNext {
    margin: 0;
    color: #fff;
}

.nkjscStepBack {
    margin: 0;
    background: transparent;
}

.nkjscReviewStep > .nkjscReviewNavigation {
	margin-top: 0.75em;
	margin-bottom: 0;
}

.nkjscReviewNavigation > fieldset.buttonBox {
	margin: 0;
}

.nkjscReviewNavigation > fieldset.buttonBox > div {
	display: flex;
	align-items: center;
}

.nkjscReviewNavigation > fieldset.buttonBox button[type="submit"] {
	display: inline-block;
	margin: 0;
}

.nkjscReviewList {
    margin: 1em 0;
}

.nkjscReviewItem {
    display: flex;
    justify-content: space-between;
    gap: 1em;
    padding: 0.65em 0;
    border-bottom: 1px solid #dfe3e7;
}

.nkjscReviewItem dt {
    font-weight: 600;
}

.nkjscReviewItem dd {
    margin: 0;
    text-align: right;
}

/* Akkordeon -------------------------------------------------------------- */
.nkjscAccordionItem {
    border-bottom: 1px solid #dfe3e7;
}

.nkjscAccordionButton {
    display: block;
    position: relative;
    width: 100%;
    padding: 1em 2.2em 1em 0;
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    font-weight: 600;
    text-align: left;
    cursor: pointer;
}

.nkjscAccordionButton::after {
    content: "+";
    position: absolute;
    right: 0.35em;
}

.nkjscAccordionButton[aria-expanded="true"]::after {
    content: "−";
}

.nkjscAccordionPanel {
    padding: 0 0 1.25em;
}

@media (max-width: 40rem) {
    .nkjscReviewItem {
        display: block;
    }
    .nkjscReviewItem dd {
        margin-top: 0.2em;
        text-align: left;
    }
}
