body,
input,
textarea,
button {
	font: normal 100%/1.25 sans-serif;
}

html {
	height: 100%;
	font-size: 16px;
}

body {
	min-height: 100%;
	position: relative;
	box-sizing: border-box;
	display: flex;
	flex-flow: column nowrap;
}

body.loading {
	overflow: hidden;
}

a {
	color: #878787;
	text-decoration: none;
}

a:hover {
	color: #000;
}

h1 {
	font-size: 1.25em;
}

#sections section > h1 {
	margin-bottom: 2em;
}

table {
	border-spacing: 0;
	border-collapse: collapse;
	background-color: #fff;
	width: 100%;
}

th {
	text-align: left;
	background-color: #1b1b1d;
	color: #fff;
}

th,
td {
	padding: 0.25em 0.5em;
	vertical-align: top;
	border: 1px solid #1b1b1d;
}

tr.total td {
	font-weight: bold;
}

body > header {
	padding: 2em 4em;
	background-color: #fff;
}

#logo-configurator {
	float: left;
	width: 50%;
}

#logo-reichert {
	float: right;
	width: 50%;
	text-align: right;
}

#logo-configurator img,
#logo-reichert img {
	vertical-align: top;
	height: 100px;
}

#configuration {
	padding: 0 4em 4em;
	display: flex;
	align-items: stretch;
	justify-content: space-between;
	flex: 2;
}

#preview,
#sections,
#partlist,
#order,
#order-complete,
#offer-complete {
	background-color: #e2e2e4;
	box-shadow: rgba(0, 0, 0, 0.5) 5px 5px 10px;
	box-sizing: border-box;
	padding: 2em;
}

#order,
#order-complete,
#offer-complete {
	margin: 0 4em 4em;
	display: none;
}

#order > .inner,
#order-complete .inner,
#offer-complete .inner {
	max-width: 1440px;
	margin: 0 auto;
}

#order .overlay {
	position: fixed;
	left: 0;
	top: 0;
	right: 0;
	bottom: 0;
	z-index: 1000;
	background-color: rgba(255, 255, 255, 0.9);
}

#order .progress {
	position: fixed;
	left: 0;
	top: 0;
	right: 0;
	bottom: 0;
	z-index: 1001;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
}

#order .progress .bar {
	margin-top: 1em;
	width: 40em;
	height: 2em;
	max-width: 80%;
	background-color: #000;
}

#order .progress .bar .fill {
	width: 100%;
	height: 100%;
	background-color: #f3b725;
}

#order-warning {
	color: #f00;
	font-size: 1.125rem;
	font-weight: bold;
	margin: 2rem 0;
}

#handle-drawing-note {
	display: none;
	font-size: 1.125rem;
	font-weight: bold;
	margin: 2rem 0;
}

#overview p {
	text-align: right;
}

#bottles {
	margin-top: 1rem;
	margin-bottom: 2em;
}

#bottles .no-label {
	margin: 0;
}

#bottles label {
	display: block;
	padding: 0;
}

#bottles label + label {
	margin-top: 0.5em;
}

#overview-info-text {
	grid-column-start: 2;
}

.grid-2 {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 4rem;
}

#sections {
	width: calc(40% - 0.5em);
}

#sections > section {
	overflow: auto;
}

#sections img {
	vertical-align: bottom;
}

#sections .container:not(.list) {
	display: flex;
	flex-flow: row wrap;
	align-items: flex-start;
	justify-content: flex-start;
}

#sections .container:not(.list) > div {
	width: 160px;
	margin: 1em 10px;
}

#sections .container > div {
	cursor: pointer;
}

#sections .container > div .image,
#sections .container > div .color {
	position: relative;
}

#sections .container > div .image img,
#sections .container > div .color {
	border: 1px solid #000;
}

#sections .container > div .color,
#preview .container .color {
	padding-bottom: 106px;
}

#sections .container > div .image::before,
#sections .container > div .color::before {
	transition: border-color 0.25s linear;
	content: "";
	position: absolute;
	left: -1px;
	top: -1px;
	right: -2px;
	bottom: -2px;
	z-index: 1;
	box-sizing: border-box;
	border: 6px solid transparent;
}

#sections .container > div:hover .image::before,
#sections .container > div:hover .color::before {
	border-color: #f3b725;
}

.container img {
	width: 100%;
}

.container .text {
	text-align: center;
	margin-top: 0.5em;
	font-size: 0.825em;
}

.list > div {
	overflow: hidden;
	padding: 1em 0;
}

.list h1 {
	font-size: 1.25em;
}

.list .image,
.list .color {
	float: left;
	width: 160px;
	box-sizing: border-box;
}

.list .text {
	float: left;
	width: calc(100% - 160px - 2em);
	margin-left: 2em;
	text-align: left;
}

.list > div + div {
	border-top: 1px solid #000;
}

.grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 40px;
}

.grid h1 {
	font-size: 1.25em;
}

.grid [data-model-id="-1"] {
	position: relative;
}

.grid [data-model-id="-1"] a {
	color: #000;
}

.grid [data-model-id="-1"] a::after {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	right: 0;
	bottom: 0;
	z-index: 1;
}

.grid .image,
.grid .color {
	width: 100%;
	box-sizing: border-box;
}

.grid .text {
	margin-top: 1rem;
	text-align: left;
}

.info-box {
	font-weight: bold;
	margin: 1.5rem 10px;
}

#preview,
#partlist {
	width: calc(30% - 0.5em);
}

#preview .image,
#preview .color {
	width: 80px;
}

#preview .image img,
#preview .color {
	border: 1px solid #000;
}

#preview .color {
	background-color: #bfbdbe;
}

#preview .image img {
	vertical-align: top;
	width: 100%;
}

#preview .text {
	float: left;
	width: calc(100% - 80px - 2em);
	margin-left: 2em;
	text-align: left;
}

#conf_name {
	margin-bottom: 2em;
}

#partlist ul {
	list-style: none;
	padding: 0;
	margin: 0;
}

#partlist li {
	position: relative;
	padding-right: 2.03571429em;
}

#partlist li + li {
	margin-top: 0.5em;
	padding-top: 0.5em;
	border-top: 1px solid #000;
}

#partlist li .buttons {
	position: absolute;
	top: 0;
	right: 0;
	z-index: 1;
}

#partlist li + li .buttons {
	top: 0.5em;
}

.buttons button {
	padding: 0.125em;
	display: block;
}

.buttons button + button {
	margin-top: 0.25em;
}

#partlist > button {
	margin-top: 2em;
}

#login-page {
	background: #fff url("../images/background_2021_optimized.jpg") center top
		no-repeat;
	background-size: cover;
	/*background-attachment: fixed;*/
	flex: 1;
	margin: 0 4em;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	position: relative;
}

#login-page::after {
	content: "Bild-Quelle: Rempp Küchen";
	position: absolute;
	right: 1rem;
	bottom: 1rem;
	color: #fff;
	font-size: 0.875rem;
}

#login-form {
	border: 1px solid #fff;
	background-color: rgba(0, 0, 0, 0.25);
	padding: 1.5em;
	box-sizing: border-box;
	color: #fff;
}

#login-form label {
	display: block;
	font-size: 0.875em;
	margin-bottom: 0.25em;
}

#login-form input[type="text"],
#login-form input[type="email"],
#login-form input[type="password"] {
	border: 1px solid #000;
	background-color: rgba(255, 255, 255, 0.75);
	color: #000;
	padding: 0.5em;
	width: 30em;
	max-width: 100%;
	min-width: 10em;
	box-sizing: border-box;
	display: block;
}

input[type="submit"],
button,
.button {
	display: inline-block;
	border: 1px solid #000;
	background-color: #1b1b1d;
	color: #fff;
	text-transform: uppercase;
	letter-spacing: 1px;
	font-weight: bold;
	box-sizing: border-box;
	text-decoration: none;
	cursor: pointer;
	width: auto;
}

.padded-button {
	padding: 0.5em 1em;
}

input[type="submit"]:hover,
button:hover,
.button:hover,
.button.active {
	background-color: #f3b725;
	color: #1b1b1d;
}

input[type="submit"][disabled],
button[disabled],
.button.disabled {
	background-color: #878787;
	color: #dadada;
	cursor: default;
}

.form-row a + a,
.form-row button + button,
.form-row a + button,
.form-row button + a,
#order button + button {
	margin-left: 0.5em;
}

form {
	display: block;
	overflow: hidden;
}

.form-col {
	float: left;
	width: 45%;
	width: calc(50% - 1em);
}

.form-col + .form-col {
	margin-left: 2em;
}

.form-clear {
	clear: both;
	padding-top: 1em;
}

.form-spacing {
	padding-top: 2em;
}

.form-half-spacing {
	padding-top: 1em;
}

.form-row p {
	margin-left: 10rem;
	font-size: 0.875em;
}

.liner-row {
	font-weight: bold;
}

#login-form .form-row + .form-row {
	margin-top: 1em;
}

#login-form .form-submit {
	overflow: hidden;
	line-height: 2.25em;
	margin-left: 8.75em;
}

#login-form .form-submit input {
	float: left;
	margin-right: 2em;
}

#login-form .form-submit a {
	text-decoration: none;
	color: #fff;
	float: left;
	font-size: 0.875em;
}

#login-form .form-submit a:hover {
	color: #f3b725;
}

#login-form .form-submit a + a {
	margin-left: 0.5em;
	padding-left: 0.5em;
	border-left: 1px solid #fff;
}

#toolbar {
	margin-bottom: 1em;
	overflow: hidden;
}

#toolbar a {
	float: left;
}

#toolbar a + a {
	margin-left: 1em;
}

#toolbar p {
	margin: 0;
	float: right;
}

#toolbar p i {
	margin-left: 0.5em;
}

#tabs {
	display: flex;
	align-items: center;
	justify-content: space-between;
}

#tabs a {
	display: block;
	width: 20%;
	width: calc(20% - 0.5em);
	text-align: center;
}

#tabs a i {
	color: #f3b725;
}

#tabs a:hover i,
#tabs a.active i {
	color: #fff;
}

#tabs a.disabled i {
	color: #dadada;
}

#details_errors {
	margin-top: 2em;
	margin-left: 10em;
	color: #fe0000;
}

.form-row {
	overflow: hidden;
}

.form-row + .form-row {
	margin-top: 0.5em;
}

label {
	float: left;
	width: 10em;
	padding: 0.5em 0;
	padding: calc(0.5em + 1px) 0;
}

input,
select,
.form-row label + p,
textarea {
	float: left;
	width: calc(100% - 14em);
	box-sizing: border-box;
}

.no-label {
	margin-left: 10em;
	margin-top: 0.5em;
}

.no-label label {
	float: none;
	width: auto;
}

label input {
	float: none;
	width: auto;
	margin-right: 0.5em;
}

.form-row label + p {
	margin: 0;
	padding: 0.5rem 0;
	padding: calc(0.5rem + 1px) 0;
}

input,
textarea {
	border: 1px solid #000;
	background-color: #fff;
	color: #000;
	padding: 0.5em;
}

textarea {
	min-height: 10em;
}

input[readonly] {
	background-color: #eee;
	color: #555;
}

.form-row.error {
	color: #fe0000;
}

.form-row.error input {
	border-color: #fe0000;
}

.form-row span {
	float: left;
	width: 4em;
	padding: 0.5em;
	padding: calc(0.5em + 1px) 0.5em;
	box-sizing: border-box;
}

.form-row.button-bar {
	margin-top: 2em;
	margin-left: 10em;
}

.form-row .explanation {
	clear: both;
	padding: 0.5em 0;
	margin-left: 10em;
}

.handle-canvas-row {
	clear: both;
}

.handle-canvas-row .drawing {
	float: left;
	width: 8em;
	margin-top: 1em;
}

.canvas {
	display: block;
	margin-top: 1em;
	margin-left: 2em;
	float: left;
	width: calc(100% - 10em);
}

.dialog {
	position: fixed;
	left: 0;
	top: 0;
	right: 0;
	bottom: 0;
	z-index: 9001;
	background-color: rgba(255, 255, 255, 0.8);
	display: none;
}

.dialog .flexbox {
	display: flex;
	align-content: center;
	justify-content: center;
	flex-direction: column;
	height: 100%;
}

.dialog .inner {
	padding: 2em;
	background-color: #fff;
	border: 1px solid #000;
	margin: 0 auto;
}

.dialog .fa-times {
	color: #fe0000;
}

.dialog .fa-exclamation-triangle {
	color: #f3b725;
}

.dialog .fa-check {
	color: #00aa00;
}

.dialog ul {
	list-style: none;
	padding: 0;
	margin: 0;
	max-height: 40em;
	overflow: auto;
}

.dialog li {
	padding: 1em;
	cursor: pointer;
	position: relative;
}

.dialog li + li {
	border-top: 1px solid #000;
}

.dialog .delete {
	position: absolute;
	right: 1em;
	top: 1em;
	z-index: 1;
	display: none;
	cursor: pointer;
}

.dialog .delete:hover .fa-times {
	color: #000;
}

.dialog li:hover .delete {
	display: block;
}

.dialog .selected {
	background-color: #f3b725;
}

.dialog input {
	min-width: 20em;
}

#model .tabs {
	display: flex;
	margin-bottom: 2em;
}

#model .tabs .button + .button {
	margin-left: 1em;
}

#colors {
	margin-top: 2em;
}

#color .form-row + .form-row {
	margin-top: 0.5em;
}

#msg {
	position: fixed;
	top: 2em;
	right: 2em;
	width: 20em;
	z-index: 9001;
	background-color: #ededed;
	padding: 1em 2em;
}

#msg.msg-success {
	background-color: #acffbd;
}

#msg.msg-error {
	background-color: #ffc9cd;
}

#msg-close {
	position: absolute;
	right: 1em;
	top: 1em;
	z-index: 1;
	cursor: pointer;
}

.float-container {
	overflow: hidden;
}

.hr {
	height: 4px;
	background-color: #f3b725;
	margin: 1.5em 0;
}

.hr hr {
	display: none;
}

.clear {
	clear: both;
}

.numeric {
	text-align: right;
}

.centered {
	text-align: center;
}

.drawing {
	box-sizing: border-box;
	border: 1px solid #000;
	vertical-align: top;
}

.drawing-clone {
	max-width: 50%;
}

footer {
	padding: 0.5em 4em;
}

.version {
	font-size: 0.75em;
	text-align: right;
}

#loading {
	position: fixed;
	left: 0;
	top: 0;
	right: 0;
	bottom: 0;
	z-index: 9001;
	font-size: 2vw;
	background-color: #fff;
	display: flex;
	justify-content: center;
	align-items: center;
}

#hinweis-balkeneiche {
	display: none;
	margin-top: 2em;
}
