/*!*********************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./scssBuild.scss ***!
  \*********************************************************************************************************/
@charset "UTF-8";
@font-face {
  font-family: Mulish;
  src: url(/dist/Common/fonts/Mulish-Regular.ttf) format("truetype");
  font-weight: 400;
}
@font-face {
  font-family: Mulish;
  src: url(/dist/Common/fonts/Mulish-Medium.ttf) format("truetype");
  font-weight: 500;
}
@font-face {
  font-family: Mulish;
  src: url(/dist/Common/fonts/Mulish-SemiBold.ttf) format("truetype");
  font-weight: 600;
}
@font-face {
  font-family: Mulish;
  src: url(/dist/Common/fonts/Mulish-Bold.ttf) format("truetype");
  font-weight: 700;
}
.modalContainer {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 200;
  background: rgba(0, 0, 0, 0.5);
}
.modalContainer .modal, .modalContainer login-modal, .modalContainer offer-terms-modal, .modalContainer address-book-modal, .modalContainer client-data-modal, .modalContainer offer-request-modal, .modalContainer heater-select-modal:not(.modal-inline), .modalContainer clear-list-modal {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  text-align: center;
  min-width: 300px;
  background: #fff;
  border: 1px solid;
  padding: 10px 10px;
}
@media (max-width: 400px) {
  .modalContainer .modal, .modalContainer login-modal, .modalContainer offer-terms-modal, .modalContainer address-book-modal, .modalContainer client-data-modal, .modalContainer offer-request-modal, .modalContainer heater-select-modal:not(.modal-inline), .modalContainer clear-list-modal {
    min-width: 50vw;
  }
}
.modalContainer.closing .modal, .modalContainer.closing login-modal, .modalContainer.closing offer-terms-modal, .modalContainer.closing address-book-modal, .modalContainer.closing client-data-modal, .modalContainer.closing offer-request-modal, .modalContainer.closing heater-select-modal:not(.modal-inline), .modalContainer.closing clear-list-modal {
  display: none;
}

html {
  font-family: Mulish, Helvetica, Arial, Verdana, sans-serif;
  margin: 0;
  padding: 0;
  --mainA: #0075bb;
  --mainB: #0472be;
  --mainC: #008cdd;
  --mainD: #0071b1;
}

body {
  margin: 0;
  padding: 0;
}

h1 {
  margin: auto;
  padding: 118px 0 118px 0;
  max-width: 1198px;
  font-size: 96px;
  color: white;
  line-height: 0.85;
}
@media (max-width: 1000px) {
  h1 {
    font-size: 9.6vw;
    padding: 3.5vw 1.18vw;
  }
}

h2 {
  color: #0075bb;
  text-align: center;
  font-weight: 600;
  font-size: 36px;
  margin: 10px 0;
}
@media (max-width: 1100px) {
  h2 {
    font-size: 24px;
  }
}

table {
  font-size: 20px;
  border-collapse: collapse;
}
table th, table td {
  padding: 14px 16px;
}
table tbody tr:nth-child(odd) {
  background: #f2f2f2;
}
table tbody tr:nth-child(even) {
  background: #ffffff;
}

button, .button, .modalContainer .modal .modal-button, .modalContainer login-modal .modal-button, .modalContainer offer-terms-modal .modal-button, .modalContainer address-book-modal .modal-button, .modalContainer client-data-modal .modal-button, .modalContainer offer-request-modal .modal-button, .modalContainer heater-select-modal:not(.modal-inline) .modal-button, .modalContainer clear-list-modal .modal-button {
  display: inline-block;
  padding: 13px;
  border: 2px solid #0081c9;
  border-radius: 9px;
  text-align: center;
  text-decoration: none;
  font-size: 18px;
  background: linear-gradient(90deg, white 20%, #008cdd 40%, #0071b1 60%, black 80%) 0 0;
  background-size: 500%;
  transition: 300ms all;
  color: #000000;
  cursor: pointer;
  line-height: 1;
  position: relative;
}
button:hover, .button:hover, .modalContainer .modal .modal-button:hover, .modalContainer login-modal .modal-button:hover, .modalContainer offer-terms-modal .modal-button:hover, .modalContainer address-book-modal .modal-button:hover, .modalContainer client-data-modal .modal-button:hover, .modalContainer offer-request-modal .modal-button:hover, .modalContainer heater-select-modal:not(.modal-inline) .modal-button:hover, .modalContainer clear-list-modal .modal-button:hover {
  background-position: 50% 0;
  color: white;
}
button:active, .button:active, .modalContainer .modal .modal-button:active, .modalContainer login-modal .modal-button:active, .modalContainer offer-terms-modal .modal-button:active, .modalContainer address-book-modal .modal-button:active, .modalContainer client-data-modal .modal-button:active, .modalContainer offer-request-modal .modal-button:active, .modalContainer heater-select-modal:not(.modal-inline) .modal-button:active, .modalContainer clear-list-modal .modal-button:active {
  background-position: 100% 0;
  color: white;
  background-color: black;
}
button.isLoading, .button.isLoading, .modalContainer .modal .isLoading.modal-button, .modalContainer login-modal .isLoading.modal-button, .modalContainer offer-terms-modal .isLoading.modal-button, .modalContainer address-book-modal .isLoading.modal-button, .modalContainer client-data-modal .isLoading.modal-button, .modalContainer offer-request-modal .isLoading.modal-button, .modalContainer heater-select-modal:not(.modal-inline) .isLoading.modal-button, .modalContainer clear-list-modal .isLoading.modal-button {
  pointer-events: none;
  filter: grayscale(0.8);
}
button.isLoading::before, .button.isLoading::before, .modalContainer .modal .isLoading.modal-button::before, .modalContainer login-modal .isLoading.modal-button::before, .modalContainer offer-terms-modal .isLoading.modal-button::before, .modalContainer address-book-modal .isLoading.modal-button::before, .modalContainer client-data-modal .isLoading.modal-button::before, .modalContainer offer-request-modal .isLoading.modal-button::before, .modalContainer heater-select-modal:not(.modal-inline) .isLoading.modal-button::before, .modalContainer clear-list-modal .isLoading.modal-button::before {
  content: "";
  display: block;
  position: absolute;
  border: 0.3em solid;
  left: 50%;
  top: 50%;
  transform: translateY(-50%) translateX(-50%);
  width: 1.5em;
  height: 1.5em;
  border-left-color: transparent;
  border-right-color: transparent;
  border-radius: 50%;
  animation: spinLoading 1s ease-in-out infinite;
}
@keyframes spinLoading {
  0% {
    transform: translateY(-50%) translateX(-50%) rotate(0deg);
  }
  100% {
    transform: translateY(-50%) translateX(-50%) rotate(540deg);
  }
}

.buttons {
  text-align: left;
}
.buttons > * {
  margin-left: 10px;
  padding: 13px 63px;
}
@media (max-width: 1550px) {
  .buttons {
    margin: 0 16px;
  }
}
@media (max-width: 1400px) {
  .buttons {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
  }
  .buttons > * {
    display: block;
    box-sizing: border-box;
    margin: 0;
    padding: 13px;
  }
}
@media (max-width: 800px) {
  .buttons {
    grid-template-columns: 1fr;
  }
}

header {
  background: url(/dist/HeaterCalculator/background.jpg) 50% 50%;
  background-size: cover;
  padding-top: calc(10vw - 100px);
  position: relative;
}
header::before {
  content: "";
  display: block;
  background: rgba(0, 0, 0, 0.64);
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  margin: 0;
  position: absolute;
  z-index: 0;
}
header > * {
  position: relative;
  z-index: 1;
}

.mainWrapper {
  background: #fff;
  box-sizing: border-box;
}
.mainWrapper > * {
  position: relative;
  height: var(--height);
  transition: height 150ms;
  overflow: hidden;
}
.mainWrapper [data-views=main] {
  margin: 10px auto;
  max-width: 1400px;
  padding: 39px 48px;
}

.page {
  position: absolute;
  left: 0;
  right: 0;
  transform-origin: 50% 100px;
}
.page > * {
  will-change: opacity;
  animation: page-in 300ms ease-out;
}
.page .topBarButtons {
  position: fixed;
  top: 31px;
  right: 0;
  padding: calc(0.75em - 7px);
  z-index: 60;
}
.page.removing > * {
  animation: page-out 200ms ease-in forwards;
  pointer-events: none;
}
.page.stillLoading {
  animation: none;
  visibility: collapse;
}
.page .grid {
  display: flex;
  flex-wrap: wrap;
}
.page .grid > a {
  display: contents;
  color: inherit;
  text-decoration: inherit;
}
@keyframes page-in {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@keyframes page-out {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
.page > form {
  display: contents;
}

.tab-header {
  margin: auto;
  display: block;
}
.tab-header * {
  transition: 300ms ease all;
  cursor: pointer;
}
.tab-header .triangle {
  fill: #007ec6;
}
.tab-header .border {
  stroke: #007ec6;
}
.tab-header text {
  font-size: 20px;
  font-family: Mulish;
  fill: white;
  text-align: center;
  text-anchor: middle;
  font-weight: 600;
}
.tab-header .shadow {
  fill-opacity: 0.5;
}
.tab-header.active1 .card1 {
  fill: url(#gradient);
}
.tab-header.active1 .card2 {
  fill: #fff;
}
.tab-header.active1 .card2Shadow {
  fill-opacity: 0;
}
.tab-header.active1 .card1Text {
  fill: #fff;
}
.tab-header.active1 .card2Text {
  fill: #007ec6;
}
.tab-header.active1 .triangle, .tab-header.active1 .triangleShadow {
  transform: translateX(-300px);
}
.tab-header.active2 .card1 {
  fill: #fff;
}
.tab-header.active2 .card1Shadow {
  fill-opacity: 0;
}
.tab-header.active2 .card2 {
  fill: url(#gradient);
}
.tab-header.active2 .card1Text {
  fill: #007ec6;
}
.tab-header.active2 .card2Text {
  fill: #fff;
}
@media (max-width: 700px) {
  .tab-header {
    width: 100%;
    height: 11vw;
  }
  .tab-header text {
    font-size: 28px;
  }
}

.inputHolder, color-selector {
  position: relative;
  background: #f2f2f2;
  padding: 26px 5px 11px 11px;
  border-radius: 4px;
  overflow: hidden;
  display: block;
}
.inputHolder > span, color-selector > span {
  position: absolute;
  top: 19px;
  left: 12px;
  font-size: 16px;
  transform-origin: left;
  transition: ease all 300ms;
  color: #8c8c8c;
  transform: translateY(-20px) scale(0.7);
  white-space: nowrap;
}
.inputHolder:not(.selectHolder)::before, color-selector:not(.selectHolder)::before {
  position: absolute;
  bottom: 0;
  height: 4px;
  left: 0;
  right: 0;
  content: "";
  background: linear-gradient(-90deg, #bcbcbc 45%, #0073b4 55%) 100% 0;
  background-size: 250%;
  transition: ease-out all 500ms;
}
.inputHolder input, color-selector input, .inputHolder select, color-selector select, .inputHolder textarea, color-selector textarea {
  border: none;
  background: none;
  width: 100%;
  font-size: 16px;
  font-family: Mulish;
  padding: 0;
}
.inputHolder input:focus, color-selector input:focus, .inputHolder select:focus, color-selector select:focus, .inputHolder textarea:focus, color-selector textarea:focus {
  outline: none;
}
.inputHolder select, color-selector select {
  margin: 0px -4px -10px -11px;
  display: block;
  padding: 0 4px 10px 7px;
  width: calc(100% + 14px);
}
.inputHolder .range, color-selector .range {
  display: flex;
  transition: 300ms all ease;
}
.inputHolder .range span, color-selector .range span {
  margin-right: 5px;
}
.inputHolder.empty > span, color-selector.empty > span {
  transform: none;
}
.inputHolder.empty .range, color-selector.empty .range {
  opacity: 0;
}
.inputHolder:focus-within > span, color-selector:focus-within > span, .inputHolder:hover > span, color-selector:hover > span {
  transform: translateY(-20px) scale(0.7);
}
.inputHolder:focus-within .range, color-selector:focus-within .range, .inputHolder:hover .range, color-selector:hover .range {
  opacity: 1;
}
.inputHolder:focus-within > span, color-selector:focus-within > span {
  color: #0073b4;
}
.inputHolder:focus-within::before, color-selector:focus-within::before {
  background-position: 0 0;
}

.inputHolder.blink, color-selector.blink, .connections.blink, .height.blink, .length.blink {
  animation: blinkInput 3s;
}
@keyframes blinkInput {
  0% {
    outline: 2px transparent solid;
  }
  5% {
    outline: 2px red solid;
    background: #f2d2d2;
  }
  50% {
    outline: 2px red solid;
    background: #f2d2d2;
  }
  100% {
    outline: 2px transparent solid;
  }
}

color-selector {
  position: relative;
  overflow: visible;
}
color-selector > .value {
  height: 1em;
  display: block;
  font-weight: inherit;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
color-selector > .droplist {
  position: absolute;
  display: none;
  top: 100%;
  background: #f2f2f2;
  left: 0;
  right: 0;
  border-bottom-left-radius: 10px;
  border-bottom-right-radius: 10px;
  box-shadow: 0 0 40px 0 rgba(0, 0, 0, 0.26);
  padding: 8px;
  z-index: 20;
}
color-selector > .droplist input {
  background: #fff;
  margin: 8px;
  width: calc(100% - 16px);
  padding: 4px;
}
color-selector > .droplist ul {
  margin: 0;
  padding: 0;
  height: 250px;
  overflow: auto;
}
color-selector > .droplist ul li {
  display: flex;
  gap: 8px;
  padding: 8px;
  align-items: center;
  cursor: default;
  user-select: none;
}
color-selector > .droplist ul li.isHidden {
  display: none;
}
color-selector > .droplist ul li.isSelected {
  background: #2580eb;
  color: #fff;
}
color-selector > .droplist ul li .color {
  width: 2em;
  height: 2em;
  background: var(--color);
}
color-selector:focus-within > .droplist {
  display: block;
}

input[type=checkbox] {
  display: none;
}
input[type=checkbox] + * {
  display: inline-block;
  width: 19px;
  height: 19px;
  border: 1px solid #2580eb;
  border-radius: 5px;
  position: relative;
  cursor: pointer;
}
input[type=checkbox] + *::before {
  content: "";
  position: absolute;
  border-bottom: 2px solid black;
  border-right: 2px solid black;
  width: 9px;
  height: 19px;
  transform: translateX(7px) translateY(-6px) rotate(44deg) scale(0.5);
  top: 0;
  left: 0;
  opacity: 0;
  transition: all 300ms ease;
}
input[type=checkbox]:checked + ::before {
  transform: translateX(7px) translateY(-6px) rotate(44deg);
  opacity: 1;
}
input[type=checkbox]:disabled + * {
  filter: grayscale(1) contrast(0.5);
  cursor: not-allowed;
}

input[type=radio] {
  display: none;
}
input[type=radio] + * {
  display: inline-block;
  width: 19px;
  height: 19px;
  border: 1px solid #2580eb;
  border-radius: 50%;
  position: relative;
  cursor: pointer;
}
input[type=radio] + *::before {
  content: "";
  position: absolute;
  background: #000;
  width: 9px;
  height: 9px;
  transform: translateX(-50%) translateY(-50%) scale(0.5);
  top: 50%;
  left: 50%;
  opacity: 0;
  border-radius: 50%;
  transition: all 300ms ease;
}
input[type=radio]:checked + ::before {
  transform: translateX(-50%) translateY(-50%);
  opacity: 1;
}
input[type=radio]:disabled + * {
  filter: grayscale(1) contrast(0.5);
  cursor: not-allowed;
}

.isHidden {
  display: none;
}

.madeBy {
  color: rgba(0, 0, 0, 0.2);
  text-decoration: none;
  text-align: right;
  display: block;
  transition: 300ms ease all;
  padding: 5px;
}
.madeBy:hover {
  color: rgba(0, 0, 0, 0.8);
}

.scrollSnap {
  position: absolute;
  margin-top: -100px;
}

.footerFloatingLine {
  width: 100%;
  left: 0;
  right: 0;
  background-color: #fff;
  z-index: 1;
  padding: 16px;
  position: fixed;
  bottom: 0;
}
.isIframe .footerFloatingLine {
  top: calc(0px - var(--parentTop) + var(--parentHeight));
  transform: translateY(-100%);
  bottom: auto;
}
.footerFloatingLine .backBtn {
  display: inline-block;
  padding: 13px;
  border: 2px solid #0081c9;
  border-radius: 9px;
  text-align: center;
  text-decoration: none;
  font-size: 18px;
  background: linear-gradient(90deg, white 20%, #008cdd 40%, #0071b1 60%, black 80%) 0 0;
  background-size: 500%;
  transition: 300ms all;
  color: #000000;
  cursor: pointer;
  line-height: 1;
  position: relative;
}
.footerFloatingLine .backBtn:hover {
  background-position: 50% 0;
  color: white;
}
.footerFloatingLine .backBtn:active {
  background-position: 100% 0;
  color: white;
  background-color: black;
}
.footerFloatingLine .backBtn.isLoading {
  pointer-events: none;
  filter: grayscale(0.8);
}
.footerFloatingLine .backBtn.isLoading::before {
  content: "";
  display: block;
  position: absolute;
  border: 0.3em solid;
  left: 50%;
  top: 50%;
  transform: translateY(-50%) translateX(-50%);
  width: 1.5em;
  height: 1.5em;
  border-left-color: transparent;
  border-right-color: transparent;
  border-radius: 50%;
  animation: spinLoading 1s ease-in-out infinite;
}
@keyframes spinLoading {
  0% {
    transform: translateY(-50%) translateX(-50%) rotate(0deg);
  }
  100% {
    transform: translateY(-50%) translateX(-50%) rotate(540deg);
  }
}

.selectedFixtures {
  width: 100%;
  margin: 50px 0;
  text-align: left;
}
.selectedFixtures span {
  display: block;
}
.selectedFixtures span:last-child {
  font-size: 0.9em;
  color: rgba(0, 0, 0, 0.8);
}
.selectedFixtures tr.isActive {
  font-weight: 700;
}
.selectedFixtures tbody:nth-child(odd) tr:nth-child(odd) {
  background: #f2f2f2;
}
.selectedFixtures tbody:nth-child(odd) tr:nth-child(even) {
  background: #ececec;
}
.selectedFixtures tbody:nth-child(even) tr:nth-child(odd) {
  background: #ffffff;
}
.selectedFixtures tbody:nth-child(even) tr:nth-child(even) {
  background: #fafafa;
}
.selectedFixtures .btnRemove {
  cursor: pointer;
  background: url(/dist/HeaterCalculator/icon-delete.svg) no-repeat 50% 50%;
  border: none;
  font-size: 0;
  width: 30px;
  height: 30px;
  padding: 0;
  display: inline-block;
  vertical-align: middle;
}

.selectedTableWrapper {
  text-align: center;
}
.selectedTableWrapper p {
  font-size: 20px;
  margin: 37px 20px;
}
.selectedTableWrapper .fixtureAdd {
  display: inline-block;
  padding: 13px;
  border: 2px solid #0081c9;
  border-radius: 9px;
  text-align: center;
  text-decoration: none;
  font-size: 18px;
  background: linear-gradient(90deg, white 20%, #008cdd 40%, #0071b1 60%, black 80%) 0 0;
  background-size: 500%;
  transition: 300ms all;
  color: #000000;
  cursor: pointer;
  line-height: 1;
  position: relative;
}
.selectedTableWrapper .fixtureAdd:hover {
  background-position: 50% 0;
  color: white;
}
.selectedTableWrapper .fixtureAdd:active {
  background-position: 100% 0;
  color: white;
  background-color: black;
}
.selectedTableWrapper .fixtureAdd.isLoading {
  pointer-events: none;
  filter: grayscale(0.8);
}
.selectedTableWrapper .fixtureAdd.isLoading::before {
  content: "";
  display: block;
  position: absolute;
  border: 0.3em solid;
  left: 50%;
  top: 50%;
  transform: translateY(-50%) translateX(-50%);
  width: 1.5em;
  height: 1.5em;
  border-left-color: transparent;
  border-right-color: transparent;
  border-radius: 50%;
  animation: spinLoading 1s ease-in-out infinite;
}
@keyframes spinLoading {
  0% {
    transform: translateY(-50%) translateX(-50%) rotate(0deg);
  }
  100% {
    transform: translateY(-50%) translateX(-50%) rotate(540deg);
  }
}

@media (max-width: 1050px) {
  .selectedTableWrapper {
    overflow-x: scroll;
  }
  .selectedFixtures {
    width: 1050px;
  }
}
.fixtureList .fixture {
  display: grid;
  grid-template-columns: 120px 110px 1fr 0.5fr 2fr 160px;
  gap: 8px;
  padding: 8px;
}
.fixtureList .fixture:nth-child(even) {
  background: #f2f2f2;
}
.fixtureList .fixture .name {
  margin-bottom: 0px;
  font-weight: 700;
}
.fixtureList .fixture img {
  width: 120px;
  height: 120px;
  object-fit: contain;
}
.fixtureList .fixture .buttonAddWrapper {
  justify-self: center;
  text-align: center;
}
.fixtureList .fixture .buttonAddWrapper .number-input {
  margin-left: 0;
}
.fixtureList .fixture .buttonAddWrapper .buttonAdd {
  width: 100%;
}
.fixtureList.showMoney .fixture {
  grid-template-columns: 120px 110px 1fr 0.5fr 2fr 85px 160px;
}
@media (max-width: 1000px) {
  .fixtureList .fixture {
    grid-template-columns: 100px 110px 1fr 0.5fr 160px;
  }
  .fixtureList .fixture .description {
    grid-row: 2;
    grid-column: 2/6;
  }
  .fixtureList .fixture img {
    width: 100px;
    height: 100px;
  }
  .fixtureList.showMoney .fixture {
    grid-template-columns: 100px 110px 1fr 0.5fr 85px 160px;
  }
}
@media (max-width: 750px) {
  .fixtureList .fixture {
    grid-template-columns: 80px 110px 1fr 160px;
  }
  .fixtureList .fixture .fixtureName {
    grid-row: 2;
    grid-column: 2/5;
  }
  .fixtureList .fixture .description {
    grid-row: 3;
    grid-column: 2/5;
  }
  .fixtureList .fixture img {
    width: 80px;
    height: 80px;
  }
  .fixtureList.showMoney .fixture {
    grid-template-columns: 80px 110px 1fr 85px 160px;
  }
}
@media (max-width: 600px) {
  .fixtureList .fixture {
    grid-template-columns: 1fr;
  }
  .fixtureList .fixture .fixtureName {
    grid-row: auto;
    grid-column: auto;
  }
  .fixtureList .fixture .description {
    grid-row: auto;
    grid-column: auto;
  }
  .fixtureList .fixture .buttonAddWrapper {
    justify-self: end;
  }
  .fixtureList .fixture img {
    width: 100%;
    height: 80px;
  }
  .fixtureList.showMoney .fixture {
    grid-template-columns: 1fr;
  }
}

.number-input {
  display: inline-flex;
  margin-left: 15px;
  width: 80px;
  height: 30px;
  background-color: #f9f9f9;
  vertical-align: middle;
}
.number-input, .number-input * {
  box-sizing: border-box;
}
.number-input input[type=number] {
  -webkit-appearance: textfield;
  -moz-appearance: textfield;
  appearance: textfield;
  border: 0px;
  padding: 0;
  box-shadow: none !important;
  font-family: sans-serif;
  font-size: 14px;
  width: 30px;
  height: 100%;
  text-align: center;
  color: #777777;
  background-color: #f9f9f9;
}
.number-input input[type=number]::-webkit-inner-spin-button, .number-input input[type=number]::-webkit-outer-spin-button {
  -webkit-appearance: none;
}
.number-input button {
  position: relative;
  outline: none;
  -webkit-appearance: none;
  background-color: transparent;
  border: none;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 100%;
  cursor: pointer;
  margin: 0;
  font-family: "Helvetica";
  font-size: 16px;
  color: #999999;
  font-weight: normal;
  position: relative;
}
.number-input button:hover:after {
  background-color: #eee;
}
.number-input button:after {
  display: inline-flex;
  position: absolute;
  justify-content: center;
  align-items: center;
  top: 0px;
  left: 0;
  right: 0;
  width: 100%;
  height: 100%;
  bottom: 0px;
  margin: auto;
  content: "−";
}
.number-input button.plus:after {
  content: "+";
}

.grillList {
  margin-top: 32px;
}
.grillList .grill {
  display: grid;
  grid-template-columns: 120px 1fr 300px 160px;
  gap: 8px;
  padding: 8px;
}
.grillList .grill:nth-child(even) {
  background: #f2f2f2;
}
.grillList .grill .name {
  margin-bottom: 0px;
  font-weight: 700;
}
.grillList .grill img {
  width: 120px;
  height: 120px;
  object-fit: contain;
}
.grillList .grill .color color-selector {
  max-width: calc(100vw - 48px);
}
.grillList.showMoney .grill {
  grid-template-columns: 120px 1fr 160px 160px 300px 160px;
}
@media (max-width: 1150px) {
  .grillList .grillName {
    grid-column: 2/4;
  }
  .grillList.showMoney .grill {
    grid-template-columns: 120px 1fr 300px 160px;
  }
  .grillList.showMoney .grill .grillName {
    grid-column: 2;
  }
  .grillList .imageWrapper {
    grid-row: 1/3;
  }
  .grillList .color {
    grid-row: 2;
    grid-column: 3;
  }
  .grillList .buttonAddWrapper {
    grid-row: 2;
    grid-column: 4;
  }
}
@media (max-width: 800px) {
  .grillList.showMoney .grill, .grillList .grill {
    grid-template-columns: 120px 1fr;
  }
  .grillList .imageWrapper {
    grid-row: 1/5;
  }
  .grillList .color {
    grid-row: auto;
    grid-column: 2;
  }
  .grillList .buttonAddWrapper {
    grid-row: auto;
    grid-column: 2;
  }
  .grillList .priceMeter, .grillList .priceName {
    grid-row: auto;
    grid-column: 2;
  }
}
@media (max-width: 500px) {
  .grillList.showMoney .grill, .grillList .grill {
    grid-template-columns: 1fr;
  }
  .grillList.showMoney .grill .imageWrapper, .grillList .grill .imageWrapper {
    grid-row: auto;
  }
  .grillList.showMoney .grill .grillName, .grillList .grill .grillName {
    grid-row: auto;
    grid-column: 1;
  }
  .grillList.showMoney .grill .color, .grillList .grill .color {
    grid-row: auto;
    grid-column: 1;
  }
  .grillList.showMoney .grill .color color-wrapper, .grillList .grill .color color-wrapper {
    max-width: 100%;
  }
  .grillList.showMoney .grill .buttonAddWrapper, .grillList .grill .buttonAddWrapper {
    grid-row: auto;
    grid-column: 1;
  }
  .grillList.showMoney .grill .priceMeter, .grillList.showMoney .grill .priceName, .grillList.showMoney .grill .price, .grillList .grill .priceMeter, .grillList .grill .priceName, .grillList .grill .price {
    grid-row: auto;
    grid-column: 1;
  }
}

.selectedGrills {
  width: 100%;
  margin: 50px 0;
  text-align: left;
}
.selectedGrills tbody:nth-child(odd) tr:nth-child(odd) {
  background: #f2f2f2;
}
.selectedGrills tbody:nth-child(odd) tr:nth-child(even) {
  background: #ececec;
}
.selectedGrills tbody:nth-child(even) tr:nth-child(odd) {
  background: #ffffff;
}
.selectedGrills tbody:nth-child(even) tr:nth-child(even) {
  background: #fafafa;
}
.selectedGrills .btnRemove {
  cursor: pointer;
  background: url(/dist/HeaterCalculator/icon-delete.svg) no-repeat 50% 50%;
  border: none;
  font-size: 0;
  width: 30px;
  height: 30px;
  padding: 0;
  display: inline-block;
  vertical-align: middle;
}

.grillListWrapper > p {
  margin-top: 2em;
}

.step1.isHidden {
  display: none;
}

.calculatePower {
  display: none;
  grid-template-columns: 1fr 2fr;
  border: 2px solid #0472be;
  border-radius: 10px;
  padding: 12px 35px;
  margin: 30px;
  gap: 40px 55px;
}
.active2 ~ .calculatePower {
  display: grid;
}
.calculatePower h3 {
  margin: 0;
  color: #0472be;
  font-weight: 600;
  font-size: 24px;
}
.calculatePower label {
  margin: 20px 0;
}
.calculatePower .separator {
  margin: 60px;
}
.calculatePower .roomName {
  grid-column: 1;
  grid-row: 1;
}
.calculatePower .roomSize {
  grid-column: 1;
  grid-row: 2;
}
.calculatePower .additionalInfo {
  grid-column: 1;
  grid-row: 3;
}
.calculatePower .roomWalls {
  grid-column: 2;
  grid-row: 1/3;
  display: grid;
  grid-template-columns: 1fr 280px 1fr;
  align-items: center;
}
.calculatePower .roomWalls h3 {
  margin-top: 19px;
}
.calculatePower .roomWalls .wall {
  text-align: center;
  padding: 0 25px;
}
.calculatePower .roomWalls .wall .inputHolder, .calculatePower .roomWalls .wall color-selector {
  margin: 0;
}
.calculatePower .roomWalls .wall p {
  margin: 8px 0;
}
.calculatePower .roomWalls .wall1 {
  grid-column: 2;
  grid-row: 2;
  margin-top: -15px;
}
.calculatePower .roomWalls .wall2 {
  grid-column: 3;
  grid-row: 3;
  padding: 0 0 0 50px;
}
.calculatePower .roomWalls .wall3 {
  grid-column: 2;
  grid-row: 5;
}
.calculatePower .roomWalls .wall4 {
  grid-column: 1;
  grid-row: 3;
  padding: 0 50px 0 0;
}
.calculatePower .roomWalls .floor {
  grid-column: 2;
  grid-row: 3;
  background: url("/dist/HeaterCalculator/room.svg") no-repeat;
  width: 280px;
  height: 199px;
  display: grid;
  text-align: center;
  align-items: center;
}
.calculatePower .climateArea img {
  display: block;
  margin: auto;
  max-width: 100%;
}
.calculatePower .summary {
  text-align: center;
  font-size: 48px;
  grid-column: 1/3;
  font-weight: 600;
  color: #0472be;
  margin-bottom: 33px;
}
@media (max-width: 1300px) {
  .calculatePower {
    grid-template-columns: 1fr;
  }
  .calculatePower .roomWalls {
    grid-column: 1;
    grid-row: 4;
  }
  .calculatePower .climateArea {
    grid-column: 1;
    grid-row: 5;
  }
  .calculatePower .summary {
    grid-column: 1;
    grid-row: 6;
  }
}
@media (max-width: 1200px) {
  .calculatePower .summary {
    font-size: 32px;
  }
}
@media (max-width: 900px) {
  .calculatePower .roomWalls {
    grid-template-columns: 1fr 1fr 1fr;
  }
  .calculatePower .roomWalls .floor {
    width: auto;
    height: 200px;
    background-size: contain;
    background-position: 50% 50%;
  }
}
@media (max-width: 800px) {
  .calculatePower .roomWalls {
    grid-template-columns: 1fr;
  }
  .calculatePower .roomWalls h3 {
    grid-column: 1;
    grid-row: 1;
  }
  .calculatePower .roomWalls .wall1 {
    grid-column: 1;
    grid-row: 2;
    margin: 0;
    padding: 0;
  }
  .calculatePower .roomWalls .wall2 {
    grid-column: 1;
    grid-row: 3;
    margin: 0;
    padding: 0;
  }
  .calculatePower .roomWalls .wall3 {
    grid-column: 1;
    grid-row: 4;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
  }
  .calculatePower .roomWalls .wall3 p {
    order: 2;
  }
  .calculatePower .roomWalls .wall4 {
    grid-column: 1;
    grid-row: 5;
    margin: 0;
    padding: 0;
  }
  .calculatePower .roomWalls .floor {
    grid-column: 1;
    grid-row: 6;
  }
}
@media (max-width: 700px) {
  .calculatePower .summary {
    font-size: 20px;
  }
}
@media (max-width: 600px) {
  .calculatePower {
    margin: 20px 16px;
    padding: 12px 16px;
  }
}

.modal, login-modal, offer-terms-modal, address-book-modal, client-data-modal, offer-request-modal, heater-select-modal:not(.modal-inline), clear-list-modal {
  position: fixed;
  display: grid;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  perspective: 100vw;
  z-index: 100;
  overflow: hidden;
  align-items: center;
  justify-items: center;
  grid-template-rows: calc(var(--parentTop) * -1) calc(var(--parentHeight));
}
.modal > div, login-modal > div, offer-terms-modal > div, address-book-modal > div, client-data-modal > div, offer-request-modal > div, heater-select-modal:not(.modal-inline) > div, clear-list-modal > div {
  width: 1200px;
  border: 2px solid #2580eb;
  border-radius: 10px;
  box-shadow: 0 0 40px 0 rgba(0, 0, 0, 0.26);
  background: #fff;
  display: flex;
  overflow-y: auto;
  animation: heater-select-modal-appear 300ms forwards;
  transform-origin: 100% 100%;
  max-height: calc(var(--parentHeight) - 80px);
  grid-row: 2;
}
@keyframes heater-select-modal-appear {
  0% {
    transform: translateZ(-200px) rotateX(20deg);
    opacity: 0;
  }
}
@keyframes heater-select-modal-disappear {
  100% {
    transform: translateZ(-200px) rotateX(20deg);
    opacity: 0;
  }
}
.modal.removing > div, login-modal.removing > div, offer-terms-modal.removing > div, address-book-modal.removing > div, client-data-modal.removing > div, offer-request-modal.removing > div, heater-select-modal.removing:not(.modal-inline) > div, clear-list-modal.removing > div {
  animation: heater-select-modal-disappear 300ms forwards;
}

clear-list-modal {
  grid-template-rows: calc(var(--parentTopClear) * -1) calc(var(--parentHeight));
}
clear-list-modal > div {
  padding: 12px 23px;
  display: block;
}
clear-list-modal > div h3 {
  font-size: 36px;
  color: #5899cd;
  font-weight: 600;
  margin: 18px 0;
}
clear-list-modal > div .buttonHolder {
  margin: 25px 0;
  display: grid;
  gap: 30px;
  grid-template-columns: 1fr 1fr;
}
clear-list-modal button {
  margin-right: 16px;
  margin-top: 8px;
  margin-bottom: 8px;
}
@media (max-width: 1250px) {
  clear-list-modal > div:not(.dummyClass) {
    width: calc(100% - 40px);
    overflow: auto;
    display: block;
  }
}

heater-select-modal:not(.modal-inline) > div {
  overflow-y: auto;
}
heater-select-modal.modal-inline > div {
  max-height: none;
  display: flex;
}
heater-select-modal > div {
  overflow: visible;
}
heater-select-modal > div > img {
  width: 520px;
  object-fit: contain;
}
heater-select-modal > div > div {
  padding: 20px 30px 0 20px;
  box-sizing: border-box;
  flex: 1 1 auto;
}
heater-select-modal > div > div h3 {
  font-size: 36px;
  color: #5899cd;
  font-weight: 600;
  margin: 18px 0;
}
heater-select-modal > div > div h4 {
  font-size: 24px;
  font-weight: 600;
  margin: 12px 0;
}
heater-select-modal > div > div table {
  border-collapse: separate;
  width: 100%;
}
heater-select-modal > div > div table tr td {
  background: #f2f2f2;
  margin: 1px;
  text-align: center;
}
heater-select-modal > div > div table tr td:first-child {
  border-top-left-radius: 10px;
  border-bottom-left-radius: 10px;
}
heater-select-modal > div > div table tr td:last-child {
  border-top-right-radius: 10px;
  border-bottom-right-radius: 10px;
  width: 80px;
}
heater-select-modal > div > div table.grill {
  font-size: 16px;
}
heater-select-modal > div > div p {
  font-size: 20px;
  margin: 38px 0;
}
heater-select-modal > div > div .selectHolder {
  width: 233px;
}
heater-select-modal > div > div .price {
  text-align: right;
  font-size: 26px;
  font-weight: 600;
}
heater-select-modal > div > div .priceSub {
  text-align: right;
  font-size: 20px;
  font-weight: 600;
}
heater-select-modal > div > div .buttons {
  font-size: 20px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 30px;
  margin: 0;
  padding: 32px 0;
}
heater-select-modal > div > div .buttons > * {
  margin-left: 0;
}
@media (max-width: 650px) {
  heater-select-modal > div > div .buttons {
    display: block;
    margin: auto;
  }
  heater-select-modal > div > div .buttons > * {
    margin-left: 20px;
    padding-left: 10px;
    padding-right: 10px;
  }
}
heater-select-modal > div color-selector {
  max-width: 400px;
  margin: 8px 0;
}
heater-select-modal > div .connectionResizable {
  margin-top: 8px;
}
heater-select-modal > div .grillPaintType {
  display: inline-block;
  padding: 4px 8px;
}
heater-select-modal > div .grillPaintType.isHidden {
  display: none;
}
heater-select-modal.removing > div {
  animation: heater-select-modal-disappear 300ms forwards;
}
heater-select-modal td {
  position: relative;
}
heater-select-modal .tablePhoto {
  pointer-events: none;
  position: absolute;
  right: 100%;
  width: 200px;
  height: 160px;
  top: calc(50% - 80px);
  background: white;
  box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.26);
  border: 4px solid white;
  border-radius: 8px;
  object-fit: contain;
  opacity: 0;
  transform: scale(0.7);
  transform-origin: 100% 50%;
  transition: all 200ms ease;
  z-index: 1;
  overflow: visible;
}
heater-select-modal .tablePhoto::before {
  content: "";
  display: block;
  position: absolute;
  border-left: 8px solid white;
  border-bottom: 8px solid transparent;
  border-top: 8px solid transparent;
  right: -11px;
  top: calc(50% - 11px);
}
heater-select-modal tr:hover .tablePhoto {
  opacity: 1;
  transform: scale(1);
}
@media (max-width: 1250px) {
  heater-select-modal > div:not(.dummyClass) {
    width: calc(100% - 40px);
    overflow: auto;
    display: block;
  }
  heater-select-modal > div:not(.dummyClass) img {
    width: 100%;
    max-height: 30vh;
  }
}
@media (max-width: 900px) {
  heater-select-modal > div > div {
    padding: 15px;
    font-size: 0.75em;
  }
  heater-select-modal > div > div h3 {
    font-size: 24px;
  }
  heater-select-modal > div > div h4 {
    font-size: 18px;
  }
  heater-select-modal > div > div table {
    font-size: 15px;
  }
  heater-select-modal > div > div p {
    font-size: 15px;
  }
  heater-select-modal > div > div .price {
    font-size: 19.5px;
    margin-top: 15px;
  }
  heater-select-modal > div > div .priceSub {
    font-size: 15px;
  }
}
@media (max-width: 900px) and (max-width: 600px) {
  heater-select-modal div > div > table {
    display: block;
  }
  heater-select-modal div > div > table tbody {
    display: block;
  }
  heater-select-modal div > div > table tr {
    display: grid;
    align-items: center;
    justify-items: start;
    grid-template-columns: 1fr 50px;
    margin: 10px 0;
  }
  heater-select-modal div > div > table tr td:first-child {
    grid-column: 1;
    grid-row: 1;
    background: transparent;
    padding: 0;
  }
  heater-select-modal div > div > table tr td:nth-child(2) {
    grid-column: 1;
    grid-row: 2;
    background: transparent;
    padding: 0;
  }
  heater-select-modal div > div > table tr td:last-child {
    grid-column: 2;
    grid-row: 1/3;
    background: transparent;
    justify-self: center;
    width: auto;
  }
}
@media (max-width: 900px) and (max-width: 500px) {
  heater-select-modal > div > div > .selectHolder {
    width: auto;
  }
}

offer-request-modal > div {
  padding: 12px 23px;
  display: block;
}
offer-request-modal > div h3 {
  font-size: 36px;
  color: #5899cd;
  font-weight: 600;
  margin: 18px 0;
}
offer-request-modal > div .buttonHolder {
  margin: 25px 0;
  display: grid;
  gap: 30px;
  grid-template-columns: 1fr 1fr;
}
offer-request-modal > div .pendingText {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  backdrop-filter: blur(20px);
  background: rgba(255, 255, 255, 0.2);
  display: grid;
  vertical-align: middle;
  text-align: center;
  align-items: center;
  font-size: 30px;
  font-weight: 700;
  transition: background 300ms;
  animation: offerRequestIn 500ms;
}
offer-request-modal > div .pendingText.done {
  background: rgba(100, 255, 100, 0.5);
}
@keyframes offerRequestIn {
  0% {
    backdrop-filter: blur(0px);
    background: rgba(255, 255, 255, 0);
  }
  100% {
    backdrop-filter: blur(20px);
    background: rgba(255, 255, 255, 0.2);
  }
}
@media (min-width: 600px) {
  offer-request-modal > div form {
    display: grid;
    gap: 25px;
    grid-template-columns: 1fr 1fr;
    margin: 25px 0;
  }
  offer-request-modal > div form > label:nth-child(5), offer-request-modal > div form > label:nth-child(6) {
    grid-column: 1/3;
    margin: 0;
  }
  offer-request-modal > div form .buttonHolder {
    grid-column: 1/3;
    margin: 9px 0 0 0;
  }
}

client-data-modal > div {
  overflow-y: auto;
  display: block;
  padding: 12px 23px;
}
client-data-modal form {
  display: grid;
  gap: 25px;
  grid-template-columns: 1fr 1fr;
  margin: 25px 0;
}
client-data-modal form label {
  grid-column: 1/3;
}
client-data-modal form label:nth-child(2) {
  grid-column: 1;
}
client-data-modal form label:nth-child(3) {
  grid-column: 2;
}
client-data-modal form label:nth-child(5) {
  grid-column: 1;
}
client-data-modal form label:nth-child(6) {
  grid-column: 2;
}
client-data-modal form label:nth-child(7) {
  grid-column: 1;
}
client-data-modal form label:nth-child(8) {
  grid-column: 2;
}

address-book-modal > div {
  flex-direction: column;
  overflow-y: auto;
  padding: 32px 23px;
}
address-book-modal > div > ul {
  flex: 1 1 auto;
  overflow: auto;
  margin: 16px 0;
  padding: 0;
}
address-book-modal > div > ul li {
  margin: 4px 0;
  display: block;
}

offer-terms-modal > div {
  overflow-y: auto;
  display: block;
  padding: 12px 23px;
}
offer-terms-modal form {
  display: grid;
  gap: 25px;
  grid-template-columns: 1fr 1fr;
  margin: 25px 0;
}
offer-terms-modal form label {
  grid-column: 1/3;
}
offer-terms-modal form label:nth-child(5) {
  grid-column: 1;
}
offer-terms-modal form label:nth-child(6) {
  grid-column: 2;
}

login-modal > div {
  overflow-y: auto;
  display: block;
  padding: 12px 23px;
}
login-modal form {
  display: grid;
  gap: 25px;
  grid-template-columns: 1fr 1fr;
  margin: 25px 0;
}
login-modal form > label {
  grid-column: 1/3;
}
login-modal .errorMessage {
  color: #cc0000;
  font-weight: 700;
}

.knownPower {
  display: none;
  grid-template-columns: 1fr 1fr;
  border: 2px solid #0472be;
  border-radius: 10px;
  padding: 40px;
  margin: 30px;
}
.active1 ~ .knownPower {
  display: grid;
}
.knownPower > label {
  margin: 20px 40px;
}
@media (max-width: 900px) {
  .knownPower {
    grid-template-columns: 1fr;
    padding: 22px 23px;
  }
  .knownPower > label {
    margin: 10px;
  }
}
@media (max-width: 600px) {
  .knownPower {
    padding: 22px 6px;
    margin: 20px 16px;
  }
}

.roomListHeadWrapper {
  display: flex;
  justify-content: space-between;
  padding: 32px 16px 0 16px;
}
.roomListHeadWrapper .loginWrapper {
  text-align: right;
}

.roomsList {
  width: 100%;
  margin: 50px 0;
}
.roomsList tr td:last-child {
  width: 104px;
}
.roomsList .btnRemove, .roomsList .btnEdit, .roomsList .btnShop {
  cursor: pointer;
  background: 50% 50% no-repeat;
  border: none;
  font-size: 0;
  width: 30px;
  height: 30px;
  padding: 0;
  display: inline-block;
  vertical-align: middle;
}
.roomsList .btnRemove {
  background-image: url(/dist/HeaterCalculator/icon-delete.svg);
}
.roomsList .btnEdit {
  background-image: url(/dist/HeaterCalculator/icon-edit.svg);
}
.roomsList .btnShop {
  background-image: url(/dist/HeaterCalculator/icon-shop.svg);
}
.roomsList span {
  display: block;
}
.roomsList span:last-child {
  font-size: 0.9em;
  color: rgba(0, 0, 0, 0.8);
}
.roomsList tr.isActive {
  font-weight: 700;
}
.roomsList.hidePrices thead td:nth-child(5), .roomsList.hidePrices tbody td:nth-child(5) {
  display: none;
}
.roomsList.hidePrices tfoot td:nth-child(4) {
  display: none;
}
.roomsList tbody:nth-child(odd) tr:nth-child(odd) {
  background: #f2f2f2;
}
.roomsList tbody:nth-child(odd) tr:nth-child(even) {
  background: #ececec;
}
.roomsList tbody:nth-child(even) tr:nth-child(odd) {
  background: #ffffff;
}
.roomsList tbody:nth-child(even) tr:nth-child(even) {
  background: #fafafa;
}
.roomsList input {
  width: 5em;
  height: 2em;
}

.roomsListWrapper .buttons {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 16px;
  margin-left: auto;
  max-width: 1200px;
}
@media (max-width: 1260px) {
  .roomsListWrapper .buttons {
    margin: 0 16px;
    grid-template-columns: repeat(3, minmax(max-content, 1fr));
    justify-content: stretch;
  }
}
@media (max-width: 720px) {
  .roomsListWrapper .buttons {
    margin: 0 16px;
    grid-template-columns: repeat(2, minmax(max-content, 1fr));
  }
}
@media (max-width: 550px) {
  .roomsListWrapper .buttons {
    margin: 0 16px;
    grid-template-columns: 1fr;
  }
}
.roomsListWrapper .buttonAdd {
  background-image: linear-gradient(90deg, white 20%, #5ec900 40%, #52b000 60%, black 80%);
  border-color: #5ec900;
}

.legalStatement {
  font-size: 0.8em;
  color: rgba(0, 0, 0, 0.8);
}
@media (max-width: 1300px) {
  .legalStatement {
    text-align: justify;
  }
}

@media (max-width: 1050px) {
  .roomsListTabbleWrapper {
    overflow-x: scroll;
  }
  .roomsList {
    width: 1050px;
  }
}
.emptyRoomList {
  text-align: center;
  margin-bottom: 69px;
}
.emptyRoomList img {
  display: block;
  width: 129px;
  margin: 0 auto;
}
.emptyRoomList p {
  font-size: 20px;
  margin: 37px 20px;
}
.emptyRoomList strong {
  font-weight: 600;
  color: #0472be;
}
.emptyRoomList .emptyButtons {
  display: grid;
  justify-items: stretch;
  justify-content: center;
  gap: 16px;
}
.emptyRoomList .emptyButtons button {
  padding: 13px 63px;
  grid-column: 1/3;
}
.emptyRoomList .emptyButtons a {
  padding: 13px 63px;
}

.step2 {
  display: grid;
  grid-template-columns: 1fr;
  width: 1447px;
  max-width: calc(100% - 20px);
  margin: auto;
  gap: 21px 58px;
}
.step2.isHidden {
  display: none;
}
.step2 > h2 {
  grid-row: 1;
  grid-column: 1;
}
.step2 > aside {
  grid-row: 2;
  grid-column: 1;
  display: flex;
}
.step2 > aside > .inputHolder, .step2 > aside > color-selector {
  width: 422px;
  align-self: start;
  margin: 23px 0 0 16px;
  order: 2;
}
.step2 > aside .filters {
  border: 2px solid #f2f2f2;
  border-radius: 10px;
  margin-top: 23px;
  padding: 12px 23px 0 23px;
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 16px;
}
.step2 > aside .filters h3 {
  font-weight: 600;
  color: #0472be;
  margin: 0;
  font-size: 24px;
  grid-row: 1;
}
.step2 > aside .filters label {
  margin: 25px 0;
}
.step2 > aside .filters .categories > label, .step2 > aside .filters .heatSource > label, .step2 > aside .filters .connections > label, .step2 > aside .filters .fan > label {
  display: block;
  margin: 5px 0;
}
.step2 > aside .filters .categories > label div, .step2 > aside .filters .heatSource > label div, .step2 > aside .filters .connections > label div, .step2 > aside .filters .fan > label div {
  vertical-align: middle;
}
.step2 > aside .filters .connections .connectionRadio {
  text-indent: -25px;
  margin-left: 25px;
}
.step2 > aside .filters .selectHolder, .step2 > aside .filters .inputHolder, .step2 > aside .filters color-selector {
  grid-row: 3;
}
.step2 > aside .filters .filterLength {
  grid-column: 2;
}
.step2 > aside .filters .filterHeight {
  grid-column: 3;
}
@media (max-width: 960px) {
  .step2 > aside .filters {
    display: block;
  }
  .step2 > aside .filters .categories, .step2 > aside .filters .heatSource, .step2 > aside .filters .connections, .step2 > aside .filters .fan {
    margin: 25px 0;
  }
}
@media (max-width: 1500px) {
  .step2 > aside {
    display: block;
  }
  .step2 > aside > .inputHolder, .step2 > aside > color-selector {
    width: auto;
    margin: 0;
  }
}
.step2 > main {
  grid-row: 3;
  grid-column: 1;
}
.step2 > main > div {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 70px;
}
.step2 > main .item {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 30px;
  min-height: 380px;
  align-self: start;
  grid-template-rows: min-content min-content 1fr;
  animation: item-appear 200ms;
}
@keyframes item-appear {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
.step2 > main .item.remove {
  transition: opacity 200ms;
  opacity: 0;
}
.step2 > main .item .main {
  display: grid;
  grid-column: 1;
  grid-row: 1/4;
  grid-template-rows: min-content 1fr min-content min-content;
}
.step2 > main .item .main > button, .step2 > main .item .main > a {
  display: inline-block;
  padding: 13px;
  border: 2px solid #0081c9;
  border-radius: 9px;
  text-align: center;
  text-decoration: none;
  font-size: 18px;
  background: linear-gradient(90deg, white 20%, #008cdd 40%, #0071b1 60%, black 80%) 0 0;
  background-size: 500%;
  transition: 300ms all;
  color: #000000;
  cursor: pointer;
  line-height: 1;
  position: relative;
  align-self: end;
  font-size: 16px;
  margin-top: 15px;
  padding: 13px 9px;
}
.step2 > main .item .main > button:hover, .step2 > main .item .main > a:hover {
  background-position: 50% 0;
  color: white;
}
.step2 > main .item .main > button:active, .step2 > main .item .main > a:active {
  background-position: 100% 0;
  color: white;
  background-color: black;
}
.step2 > main .item .main > button.isLoading, .step2 > main .item .main > a.isLoading {
  pointer-events: none;
  filter: grayscale(0.8);
}
.step2 > main .item .main > button.isLoading::before, .step2 > main .item .main > a.isLoading::before {
  content: "";
  display: block;
  position: absolute;
  border: 0.3em solid;
  left: 50%;
  top: 50%;
  transform: translateY(-50%) translateX(-50%);
  width: 1.5em;
  height: 1.5em;
  border-left-color: transparent;
  border-right-color: transparent;
  border-radius: 50%;
  animation: spinLoading 1s ease-in-out infinite;
}
@keyframes spinLoading {
  0% {
    transform: translateY(-50%) translateX(-50%) rotate(0deg);
  }
  100% {
    transform: translateY(-50%) translateX(-50%) rotate(540deg);
  }
}
.step2 > main .item ul {
  display: contents;
}
.step2 > main .item h3 {
  font-size: 24px;
  font-weight: 600;
  color: #0075bb;
  text-transform: uppercase;
  margin: 7px 0;
}
.step2 > main .item img {
  width: 100%;
  object-fit: contain;
  object-position: top;
  aspect-ratio: 2/1;
  align-self: stretch;
}
@media (max-width: 1250px) {
  .step2 > main {
    gap: 21px 20px;
  }
  .step2 > main > div {
    grid-template-columns: 1fr;
    justify-items: center;
  }
  .step2 > main .item {
    align-self: center;
    width: 540px;
  }
}
@media (max-width: 640px) {
  .step2 > main .item {
    width: 100%;
  }
}
@media (max-width: 480px) {
  .step2 > main .item {
    grid-template-columns: 1fr;
    min-height: 0;
  }
  .step2 > main .item .main {
    display: contents;
  }
  .step2 > main .item img {
    min-height: 150px;
  }
  .step2 > main .item ul {
    grid-column: 1;
    grid-row: 3;
    display: grid;
    margin: 0;
    padding: 0;
  }
}
@media (max-width: 960px) {
  .step2 {
    width: 540px;
    margin: auto;
  }
  .step2 h2 {
    grid-column: 1;
  }
  .step2 main {
    grid-column: 1;
    grid-row: 3;
  }
}
@media (max-width: 640px) {
  .step2 {
    width: auto;
    margin: 0 10px;
  }
}

.productTypes {
  display: block;
}
.productTypes > li {
  display: none;
  border: 2px solid #f2f2f2;
  margin: 16px 0 0 0;
  padding: 10px 11px 10px 15px;
  border-radius: 10px;
  grid-template-rows: auto 8px;
  grid-template-columns: 1fr auto auto;
  align-self: start;
}
.productTypes > li:nth-child(1), .productTypes > li:nth-child(2), .productTypes > li:nth-child(3) {
  display: grid;
}
.productTypes > li:first-child {
  margin-top: 6px;
}
.productTypes > li h4 {
  margin: 0;
  grid-row: 1/3;
  font-size: 14px;
  font-weight: 700;
  grid-column: 1/3;
}
.productTypes > li .parameter {
  grid-column: 1;
  font-size: 14px;
}
.productTypes > li .price {
  grid-column: 3;
  grid-row: 1/4;
  text-align: right;
  font-weight: 700;
  font-size: 17px;
  color: #007ec5;
  padding-left: 8px;
}
.productTypes > li .priceSub {
  text-align: right;
  font-weight: 700;
  font-size: 8px;
}
.productTypes > li button {
  grid-column: 2/4;
  padding: 7px 0px;
  font-size: 11px;
  border-radius: 6px;
  border-width: 1px;
  line-height: 1;
  grid-row: 4/6;
  align-self: self-end;
  width: 78px;
  background-image: linear-gradient(90deg, #ff5a00 20%, #ff8949 40%, #ff8949 60%, black 80%);
  border-color: #ff5a00;
  color: #fff;
}
.productTypes > li button:hover {
  color: #000;
}
.productTypes > li.isSelected {
  border-color: #ff5a00;
}
.productTypes.isOpen > li {
  display: grid;
}
@media (max-width: 1470px) and (min-width: 1340.0001px), (max-width: 570px) {
  .productTypes > li .parameter {
    grid-column: 1/4;
  }
  .productTypes > li button {
    grid-row: 7;
  }
}

.knownHeaterPath {
  position: relative;
  z-index: 1;
  padding: 0 16px;
}
.knownHeaterPath.isHidden {
  display: none;
}
.knownHeaterPath .basicInfo {
  grid-template-columns: 1fr 2fr;
  border: 2px solid #0472be;
  border-radius: 10px;
  padding: 12px 35px;
  margin: 30px;
  gap: 40px 55px;
}
.knownHeaterPath .basicInfo > div {
  display: grid;
  grid-template-columns: 1fr 1fr;
}
.knownHeaterPath .basicInfo > div.additional.isHidden {
  display: none;
}
.knownHeaterPath .basicInfo > span {
  margin: 0 40px;
}
.knownHeaterPath .basicInfo label {
  margin: 20px 40px;
}
.knownHeaterPath .categories-big, .knownHeaterPath .products {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 70px;
  margin-bottom: 96px;
}
.knownHeaterPath .categories-big .subgroupHeader, .knownHeaterPath .products .subgroupHeader {
  font-weight: 600;
  color: #0472be;
  grid-column: 1/5;
  text-align: center;
  font-size: 24px;
}
.knownHeaterPath .categories-big h3, .knownHeaterPath .products h3 {
  font-weight: 600;
  color: #0472be;
  margin: 0;
  font-size: 24px;
  grid-row: 1;
}
.knownHeaterPath .categories-big img, .knownHeaterPath .products img {
  width: 100%;
  object-fit: contain;
  object-position: top;
  aspect-ratio: 2/1;
  align-self: stretch;
}
.knownHeaterPath .categories-big button, .knownHeaterPath .products button {
  display: block;
  width: 100%;
}
.knownHeaterPath .categories-big button.isSelected, .knownHeaterPath .products button.isSelected {
  background-position: 50% 50%;
  color: white;
}
@media (max-width: 1250px) {
  .knownHeaterPath .categories-big, .knownHeaterPath .products {
    grid-template-columns: repeat(2, 1fr);
  }
  .knownHeaterPath .categories-big .subgroupHeader, .knownHeaterPath .products .subgroupHeader {
    grid-column: 1/3;
  }
}
.knownHeaterPath .types {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-gap: 70px;
}
.knownHeaterPath .types.isHidden {
  display: none;
}
.knownHeaterPath .types > div > div {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
.knownHeaterPath .types > div > div label {
  display: block;
  flex: 0 0 200px;
}
.knownHeaterPath .types > div > div label div {
  vertical-align: middle;
}
.knownHeaterPath .types > div > div label span {
  vertical-align: middle;
  margin-left: 6px;
}
.knownHeaterPath .types button {
  grid-column: 1/3;
}
.knownHeaterPath .types button.isHidden {
  display: none;
}
@media (max-width: 900px) {
  .knownHeaterPath .basicInfo label {
    margin: 20px 0;
  }
  .knownHeaterPath .basicInfo > div {
    grid-template-columns: 1fr;
  }
}
