.flowform-box-group {
	display: flex;
	flex-wrap: wrap;
}

.flowform-input-group.flowform-box-group {
	flex-direction: row;
}

.ff-box-group-title {
	height: 20px;
	margin-top: 40px;
	margin-bottom: 20px;
	width: calc(100% - 4vw);
	padding: 0 2vw;
	box-sizing: border-box;
}

.flowform-box-group .ff-box-group-title {
    padding: 0;
}

.ff-box-group-title .btn {
	order: 2;
	margin-right: 10px;
}
	
.ff-box-group-title p {
	order: 1;
	font-size: 20px;
	line-height: 40px;
	flex: 100%;
}

.ff-box-group-title,
.flowform-box-group,
.flowform-box {
	margin-left: var(--ff-c-space);
	margin-right: var(--ff-c-space);
}

.flowform-box.flow-progress-partial:before,
.flowform-box.flow-progress-partial:after,
.flowform-box.flow-progress:after {
	content: '...';
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	transition: all 0.3s ease-out;
	
	width: 100%;
	overflow: hidden;
	text-overflow: elipsis;
	padding: 0 25px;
	box-sizing: border-box;
	text-align: right;
	
	font-size: 10px;
	font-family: arial;
	line-height: 12px;
	border-top:1px solid var(--box-progress-separator);
	background-color: var(--box-progress-none);
	color: transparent;
}

.flowform-box.flow-progress.flow-progress-issue:after {
	background-color: var(--box-progress-issue);
	content: var(--translations-box-input-missing);
	color: white;
}

.flowform-box.flow-progress.flow-progress-complete:after {
	background-color: var(--box-progress-complete);
	content: var(--translations-box-input-ready);
	color: white;
}

.flowform-box.flow-progress-partial:before {
	background-color: var(--box-progress-complete);
	color: white;
	z-index: 1;
	width: var(--data-progress);
	content: attr(data-progress);
	font-size: 9px;
	transition: all 0.5s linear;
}

.ff-print-preview .flowform-box.flow-progress:after {
	display:none;
}

.flowform-box,
.flowform-box-vertical-container {
	flex: calc(50% - 5px);
	min-height: 275px;
	min-width: calc( 375px - 5px);
	box-sizing: border-box;
	position: relative;
}

.flowform-box-33 {
	flex: calc(33% - 5px);
}

.flowform-box {
	background-color: var(--box-background);
	margin-top: 2.5px;
	margin-bottom: 2.5px;
	padding: 40px 22.5px;
}

.flowform-table-box {
	background-color: var(--box-background);
	margin-top: 2.5px;
	margin-bottom: 2.5px;
	padding: 22.5px 0;
}

.flowform-table-box-full-width {
	float:left;
	min-width: calc(100vw - 80px - 17px);
}

.flowform-input-group.flowform-box-vertical-container {
	display: block;
}

.flowform-box-vertical-container .flowform-box-full-height {
	height: calc(100% - 5px);
}

.flowform-box-highlighted {
	box-shadow: 0 0 100px 0;
	z-index: 1;
}

.modal-open .flowform-box.flowform-box-subprocess {
	z-index: 10;
}

.flowform-box.flowform-box-closed {
	margin-top: 0;
	margin-bottom: 0;	
	padding-top: 0;
	padding-bottom: 0;
	min-height: 0;
	max-height: 0;
	overflow:hidden;
	opacity: 0;
	transition: all 0.5s ease-in;
}

.ff-warning-box {
	background-color: var(--box-warning-background);
}

.ff-design-icon-box.ff-i-warning::before {
	color: var(--box-warning-background-icon);
}

.ff-highlight-box {
	background-color: var(--box-highlight-background);
	transition: all 0.2s ease-out;	
	color: var(--box-highlight-color);
	cursor: pointer;
}

.ff-highlight-box:hover {
	background-color: var(--box-highlight-hover-background);
}

.ff-highlight-box .ff-design-icon-box:before,
.ff-highlight-box .flowform-subtitle,
.ff-highlight-box .ff-main-action p {
	color: var(--box-highlight-color);
}

.ff-box-full {
	flex: calc(100% - 5px);
	min-height: 200px;
}

.ff-compact .flowform-box.ff-box-20,
.ff-box-20 {
	flex: calc(20% - 5px);
	min-width: auto;
}

.ff-compact .flowform-box.ff-box-25,
.ff-box-25 {
	flex: calc(25% - 5px);
	min-width: auto;
}

.ff-compact .flowform-box.ff-box-75,
.ff-box-75 {
	flex: calc(75% - 5px);
}

.ff-box-full .ff-design-icon-box:before {
	width: 200px;
	height: 200px;
	line-height: 200px;
	font-size: 200px;
}

.flowform-box-group .flowform-box {
	margin-left: 2.5px;
	margin-right: 2.5px;
}

.flowform-box .form-group {
	position: relative;
	z-index: 1;
}

/* Required when typeahead inputs with overlays are used in a form */
.flowform-box .ff-slim .form-group {
	z-index: initial;
}

.flowform-box > .flowform-nested {
	/* height: 100%; */
}

@media screen and (max-width : 740px) {
	.flowform-box-group .flowform-box {
		margin-left: 0;
		margin-right: 0;
	}
}

@media screen and (max-width : 900px) {
	.ff-box-group-title {
		margin-left: 20px;
		width: calc(100% - 2vw - 20px);
		box-sizing: border-box;
	}
	
	.flowform-box-group,
	.flowform-box {
		margin-left: 0;
		margin-right: 0;
	}	
}

/* Decision-Box */

.flowform-shift-box {
	overflow:hidden; /* is used by safari because it does not recognise overflow:clip */
	overflow:clip;
	padding-left: 0;
	padding-right: 0;
}

.flowform-shift-body {
	width: 100%;
	height: 100%;
}

.shift-choice {
	overflow: hidden;
}

.shift-choice .choice-group {
	display: inline-flex;
	margin: 0 25%;
	width: 100%;
}

.shift-choice-vertical .choice {
	background-color: var(--shift-choice-background);
	border: 0px none;
	color: white;
	margin: 2px auto;
	text-align: center;
	width: 75%;
	max-width: 400px;
}

.shift-choice .choice {
	background-color: var(--shift-choice-background);
	border: 0px none;
	color: white;
	text-align: center;
	width: 25%;
	min-width: 25%;
	max-width: 25%;
	padding: 16px 0;
}

.shift-choice .choice[data-choice-value="no"] {
	text-align: left;
}

.shift-choice .choice[data-choice-value="no"]::before {
    content: 'G';
    float: left;
    font-family: 'HypothekeIcons';
    padding: 0 20px;
}

.shift-choice .choice[data-choice-value="yes"] {
	text-align: right;
}

.shift-choice .choice[data-choice-value="yes"]::before {
    content: 'V';
    float: right;
    font-family: 'HypothekeIcons';
    padding: 0 20px;
}

.shift-choice-vertical .choice:hover,
.shift-choice .choice:hover {
	background-color: var(--shift-choice-hover-background);
}

.shift-choice-vertical .choice.choice-active,
.shift-choice .choice.choice-active:hover {
	background-color: var(--shift-choice-active-background);
}

.flowform-shift-body > .flowform-nested {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	width: 300%;
	height: 100%;
	box-sizing: border-box;
	
	transform: translateX(-33.333%);
	transition: transform 1s ease-out;
}

.flowform-shift-body > .flowform-nested > div {
	width: 100%;
	min-width: 33.33%; /* required for small screens, might be a rendering bug because even min-width:1% works. */
	box-sizing: border-box;
	padding-left: 22.5px;
	padding-right: 22.5px;
	position: relative;
}

.flowform-box-action,
.flowform-shift-action {
	position: absolute;
	bottom: 10px;
	margin: 40px;
	z-index: 1;	
}

.flowform-box-action .ff-s-btn .ff-i-close {
	font-size: 14px;
	line-height: 18px;
}

.flowform-box-action {
	bottom: -10px;
	right: 0;
	width: 120px;
	height: 20px;
	white-space: nowrap;
}

.flowform-shift-left {
	left: 0;
}

.flowform-shift-right {
	right: 0;
	margin-right: 95px;
}

.flowform-shift-right .ff-s-btn span {
    margin-right: 10px;
}

.flowform-box-action .ff-s-btn,
.flowform-shift-action .ff-s-btn {
	position: absolute;
	cursor: pointer;
	display: none;
	font-size: 18px;
	color: var(--text-color);
}

.flowform-box-action .ff-s-btn {
	display: flex;
}

.flowform-box-action .ff-s-btn span,
.flowform-shift-action .ff-s-btn span {
	display:inline-block;
	line-height: 20px;
	font-size: 10px;
	margin-left: 10px;
	opacity: 0.7;
}

.flowform-box-action .ff-s-btn span {
	margin-right: 10px;
}

.flowform-shift-action .ff-s-btn:hover {
	border-color: white;
}

.flowform-shift-box.yes > .flowform-shift-left .ff-s-btn {
	display:flex;
}

.flowform-shift-box.no > .flowform-shift-right .ff-s-btn {
	display:flex;
}

.ff-s-readonly .ff-s-btn {
	display:none !important;
}

.flowform-shift-box.yes > .flowform-shift-body > .flowform-nested {
	transform: translateX(-66.666%);
}

.flowform-shift-box.no > .flowform-shift-body > .flowform-nested {
	transform: translateX(0%);
}

.ff-design-icon-box {
	
}

.ff-main-action {
    margin-top: 20px;
    margin-bottom: 20px;
}

.ff-main-action:first-of-type {
	margin-top: 0;
}

.ff-design-icon-box:before {
	display: block;
	width: 250px;
	height: 250px;
	line-height: 250px;
	font-size: 250px;
	text-align: center;
	position: absolute;
	right: 0;
	bottom: -20px;
	
	opacity:0.25;
	color: var(--box-background-icon-color);
	z-index: 0;
}

.ff-print-preview .ff-design-icon-box:before {
	display:none;
}

.ff-info-box-new.ff-design-icon-box:before {
	opacity:1;
}

.flowform-shift-box .ff-design-icon-box:before {
	bottom: 0;
}

.flowform-box .ff-choice-inline {
	margin-bottom: 20px;
}

.flowform-box .ff-slim .ff-choice-inline { margin-bottom: 0; }

.flowform-box .ff-inline-help {
	opacity: 0.8;
	margin: 25px 30px;
}

.ff-box-error,
.ff-box-warning,
.ff-box-incomplete {
	z-index: 2;
	position: absolute;
	left: 50%;
	bottom: -100px;
	transform: translateX(-50%);
	opacity: 0;
	width: 60%;
	text-align: center;
	
	display:block;
	border-radius: 16px;
	padding: 0;
	color: var(--box-warning-color);
	background-color: var(--box-warning-background);
	
	transition: all 0.3s ease-in;
	height: 0;
	overflow: hidden;
	pointer-events: none;
}

@media print {
	.ff-box-error,
	.ff-box-warning,
	.ff-box-incomplete {
		display: none;
	}
}

.ff-box-error,
.ff-box-warning,
.flow-progress-issue .ff-box-incomplete {
	padding: 5px 15px;
	bottom: 30px;
	opacity: 1;
	height: auto;
}

.ff-box-error.ff-box-error-static {
	position: static;
	margin: auto;
	transform: none;
	pointer-events: all;
}

.flowform-shift-box .ff-box-error,
.flowform-shift-box .ff-box-warning,
.flowform-shift-box.flow-progress-issue .ff-box-incomplete {
	bottom: -10px;
}

.ff-box-incomplete:before {
	content: '3';
	font-family: 'HypothekeIcons';
	padding-right: 10px;
}

.flowform-box .ff-input-label {
	margin: 0 30px;
	display: block;
}

.ff-info-box-content,
.ff-info-box p {
	position: relative;
	z-index: 2;
	margin: 10px 30px;
}

.ff-info-box-content h5 {
	font-weight: bold;
}

.ff-slim .ff-info-box p {
	margin-left: 7.5px;
	margin-right: 7.5px;
}

.ff-info-box .btn-text p {
	margin: 0;
}

.flowform-box .form-input-title p {
	margin: 10px 30px;
}

.flowform-box .form-input-title p,
.flowform-box .shift-choice-vertical .ff-input-label,
.flowform-box .ff-choice-inline .ff-input-label {
	font-weight: normal;
	font-style: normal;
	color: var(--text-color);
	font-size: 20px;
	line-height: 1.2;
	margin-top: 13px; 
	margin-bottom: 35px;
	display: block;
	text-align: left;
}

@media screen and (max-width : 900px) {
	.flowform-box .form-input-title p,
	.flowform-box .ff-choice-inline .ff-input-label {
		font-size: 16px;
		margin-bottom: 15px;
	}
	
	.ff-main-action p {
		font-size: 16px;
	}
	
	.flowform-box .form-input-title p {
		margin: 10px 15px;
	}
	
	.ff-info-box p,
	.flowform-box .ff-input-label {
		margin: 0 15px;
	}
	
	.flowform-box .ff-inline-help {
		margin: 15px;
	}
	
	.shift-choice .choice-group {
		margin-left: 15px;
		margin-right: 15px;
	}
	
	.shift-choice .choice {
		min-width: calc(50% - 15px);
	}
	
	.shift-choice-vertical .choice-group {
		margin-left: 15px;
		margin-right: 15px;
	}
	
	.shift-choice-vertical .choice {
		min-width: 100%;
	}
}


.ff-box-vertical .flowform-nested {
	display: flex;
	flex-direction: column;
	height: 100%;
}

.ff-box-vertical .ff-info-box.ff-design-icon-box.app-design-icon-art::before {
	background-position: bottom center;
	width: 250px;
	height: 100%;
}

.ff-box-vertical .ff-info-box.ff-design-icon-box {
	padding-right: 250px;
	margin-top: 20px;
}

.ff-box-expander {
	flex: 5;
}

@media screen and (max-width : 1200px) {	
	.ff-box-vertical .ff-info-box.ff-design-icon-box {
		padding-right: 120px;
	}
	
	.ff-box-vertical .ff-info-box.ff-design-icon-box.app-design-icon-art::before {
		background-size: 250px;
		margin-right: -75px;
	}
	
	.ff-box-vertical .ff-info-box.ff-design-icon-box.app-design-icon-art-terrassenhaus::before {
		background-size: 200px;
		margin-right: -50px;
	}
}

.ff-box-vertical .ff-design-icon-box::before {
	bottom: 0
}

.ff-box-vertical .ff-i-owner::before,
.ff-box-vertical .ff-i-creditor-light::before {
	font-size: 200px;
	opacity: 1;
	margin-bottom: -21px;
}