.gap-10 {
    gap: 10px;
}
.flex {
    display: flex;
}
.flex-row {
    margin-left: -10px;
    margin-right: -10px;
    gap: 0;
}
.flex-row>div {
    padding-left: 10px;
    padding-right: 10px;
    margin: 0 0 20px;
}
.direction-column {
    flex-direction: column;
}
.wrap {
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
}
.between {
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
}
.around {
	-ms-flex-pack: distribute;
	justify-content: space-around;
}
.start {
	-webkit-box-pack: start;
	-ms-flex-pack: start;
	justify-content: flex-start
}
.end {
	-webkit-box-pack: end;
	-ms-flex-pack: end;
	justify-content: flex-end;
}
.justify-center {
	justify-content: center;
}
.align-top {
	-webkit-box-align: start;
	-ms-flex-align: start;
	align-items: flex-start;
}
.align-bottom {
	-webkit-box-align: end;
	-ms-flex-align: end;
	align-items: flex-end;
}
.align-self-bottom {
    align-self: flex-end
}
.align-center {
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
}

.product-extra {
    margin-bottom: 20px;
    padding: 10px;
    box-shadow: 0 0 10px rgba(0, 0, 0, .2);
}
.product-extra,
.product-extra>div {
    height: 100%;
}

#buyButton {
    display: block;
    width: 100%;
    margin: 1em 0 2em;
}
.button-primary.disabled {
    filter: grayscale();
    cursor: default;
    pointer-events: none;
	opacity: .5;
}

.calculator__presentation:not(.visible) .error-message {
	display: none;
}
.error-message {
	color: red;
	font-weight: bold;
}
.product-extra .placeholder-wrapper {
	background-color: #fff;
}
@media (max-width: 767px) {
	.product-extra .flex {
		flex-wrap: wrap;
	}
}

.warning {
    border-color: red !important;
}
small:has(~.warning) {
    color: red;
	font-weight: bold;
}